{"version":3,"sources":["webpack://CoveoForSitecore/./src/ui/analytics/ValidateAnalyticsIncluded.ts"],"names":["coveo_search_ui_1","__webpack_require__","ContextEvents_1","ValidateAnalyticsIncluded","_super","element","options","bindings","_this","call","this","ID","ComponentOptions","initComponentOptions","bind","onRootElement","SitecoreContextEvents","onSitecoreContextInitialization","__extends","prototype","sitecoreContextArgs","shouldHaveAnalyticsComponent","searchInterfaceHasNoBoundAnalyticsComponent","isInExperienceEditor","errorMessage","componentName","checkIfErrorInErrorMessage","console","warn","appendChild","createErrorMessageElement","index","children","length","textContent","indexOf","searchInterface","getComponents","errorSpan","document","createElement","classList","add","buildStringOption","defaultValue","attrName","Component","exports","Initialization","registerAutoCreateComponent"],"mappings":"2fAAA,IAAAA,EAAAC,EAAA,GACAC,EAAAD,EAAA,GAMAE,EAAA,SAAAC,GAUI,SAAAD,EACWE,EACAC,EACAC,GAHX,IAAAC,EAKIJ,EAAAK,KAAAC,KAAML,EAASF,EAA0BQ,GAAIJ,IAASG,YAJ/CF,EAAAH,UACAG,EAAAF,UACAE,EAAAD,WAIPC,EAAKF,QAAUN,EAAAY,iBAAiBC,qBAAqBR,EAASF,EAA2BG,GAEzFE,EAAKM,KAAKC,cACNb,EAAAc,sBAAsBC,gCACtBT,EAAKS,mCA2CjB,OAhE+CC,EAAAf,EAAAC,GAyBnCD,EAAAgB,UAAAF,gCAAR,SAAwCG,GACpC,GAAIA,EAAoBC,8BAAgCX,KAAKY,+CACrDF,EAAoBG,qBAAsB,CAC1C,IAAIC,EAuCT,iDAvCwCd,KAAKJ,QAAQmB,eAAiB,oBAuCb,0FArC/Cf,KAAKgB,2BAA2BF,KACjCG,QAAQC,KAAKJ,GACbd,KAAKL,QAAQwB,YAAYnB,KAAKoB,0BAA0BN,OAMhErB,EAAAgB,UAAAO,2BAAR,SAAmCF,GAC/B,IAAK,IAAIO,EAAQ,EAAGA,EAAQrB,KAAKL,QAAQ2B,SAASC,OAAQF,IAAS,CAE/D,IAAsD,IADtCrB,KAAKL,QAAQ2B,SAASD,GAC1BG,YAAYC,QAAQX,EAAc,GAC1C,OAAO,EAIf,OAAO,GAGHrB,EAAAgB,UAAAG,4CAAR,WACI,OAC+D,IAA3DZ,KAAK0B,gBAAgBC,cAAc,aAAaJ,QACsB,IAAtEvB,KAAK0B,gBAAgBC,cAAc,wBAAwBJ,QAI3D9B,EAAAgB,UAAAW,0BAAR,SAAkCN,GAC9B,IAAMc,EAAYC,SAASC,cAAc,QAKzC,OAHAF,EAAUG,UAAUC,IAAI,gBACxBJ,EAAUJ,YAAcV,EAEjBc,GA7DJnC,EAAAQ,GAAK,4BAELR,EAAAG,QAA6C,CAChDmB,cAAezB,EAAAY,iBAAiB+B,kBAAkB,CAC9CC,aAAc,GACdC,SAAU,yBA0DtB1C,EAhEA,CAA+CH,EAAA8C,WAAlCC,EAAA5C,4BAsEbH,EAAAgD,eAAeC,4BAA4B9C","file":"ValidateAnalyticsIncluded.min.js","sourcesContent":["import { Component, ComponentOptions, IComponentBindings, Initialization } from 'coveo-search-ui';\r\nimport { SitecoreContextEvents, ISitecoreContextInitializationEventArgs } from '../../events/ContextEvents';\r\n\r\nexport interface IValidateAnalyticsIncludedOptions {\r\n componentName: string;\r\n}\r\n\r\nexport class ValidateAnalyticsIncluded extends Component {\r\n static ID = 'ValidateAnalyticsIncluded';\r\n\r\n static options: IValidateAnalyticsIncludedOptions = {\r\n componentName: ComponentOptions.buildStringOption({\r\n defaultValue: '',\r\n attrName: 'data-component-name',\r\n }),\r\n };\r\n\r\n constructor(\r\n public element: HTMLElement,\r\n public options: IValidateAnalyticsIncludedOptions,\r\n public bindings: IComponentBindings\r\n ) {\r\n super(element, ValidateAnalyticsIncluded.ID, bindings);\r\n\r\n this.options = ComponentOptions.initComponentOptions(element, ValidateAnalyticsIncluded, options);\r\n\r\n this.bind.onRootElement(\r\n SitecoreContextEvents.onSitecoreContextInitialization,\r\n this.onSitecoreContextInitialization\r\n );\r\n }\r\n\r\n private onSitecoreContextInitialization(sitecoreContextArgs: ISitecoreContextInitializationEventArgs): void {\r\n if (sitecoreContextArgs.shouldHaveAnalyticsComponent && this.searchInterfaceHasNoBoundAnalyticsComponent()) {\r\n if (sitecoreContextArgs.isInExperienceEditor) {\r\n let errorMessage = getErrorMessage(this.options.componentName || 'Search Interface');\r\n\r\n if (!this.checkIfErrorInErrorMessage(errorMessage)) {\r\n console.warn(errorMessage);\r\n this.element.appendChild(this.createErrorMessageElement(errorMessage));\r\n }\r\n }\r\n }\r\n }\r\n\r\n private checkIfErrorInErrorMessage(errorMessage: string): boolean {\r\n for (let index = 0; index < this.element.children.length; index++) {\r\n const element = this.element.children[index];\r\n if (element.textContent.indexOf(errorMessage, 0) !== -1) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private searchInterfaceHasNoBoundAnalyticsComponent(): boolean {\r\n return (\r\n this.searchInterface.getComponents('Analytics').length === 0 &&\r\n this.searchInterface.getComponents('ForSitecoreAnalytics').length === 0\r\n );\r\n }\r\n\r\n private createErrorMessageElement(errorMessage: string): HTMLElement {\r\n const errorSpan = document.createElement('span');\r\n\r\n errorSpan.classList.add('errorMessage');\r\n errorSpan.textContent = errorMessage;\r\n\r\n return errorSpan;\r\n }\r\n}\r\n\r\nfunction getErrorMessage(component: string): string {\r\n return `The Coveo Analytics are not enabled for this ${component}. Insert a Coveo For Sitecore Analytics component to record Coveo Usage Analytics data.`;\r\n}\r\n\r\nInitialization.registerAutoCreateComponent(ValidateAnalyticsIncluded);\r\n"],"sourceRoot":""}