{"version":3,"sources":["webpack://CoveoForSitecore/./src/ui/analytics/ValidateAnalyticsIncluded.ts"],"names":["coveo_search_ui_1","__webpack_require__","ContextEvents_1","ValidateAnalyticsIncluded","exports","_super","element","options","bindings","_this","call","this","ID","ComponentOptions","initComponentOptions","bind","onRootElement","SitecoreContextEvents","onSitecoreContextInitialization","__extends","prototype","sitecoreContextArgs","shouldHaveAnalyticsComponent","searchInterfaceHasNoBoundAnalyticsComponent","isInExperienceEditor","errorMessage","component","componentName","concat","checkIfErrorInErrorMessage","console","warn","appendChild","createErrorMessageElement","index","children","length","textContent","indexOf","searchInterface","getComponents","errorSpan","document","createElement","classList","add","buildStringOption","defaultValue","attrName","Component","Initialization","registerAutoCreateComponent"],"mappings":"4qBAAA,IAAAA,EAAAC,EAAA,GACAC,EAAAD,EAAA,GAMAE,EAAAC,EAAAD,0BAAA,SAAAE,GAUI,SAAAF,EACWG,EACAC,EACAC,GAHX,IAAAC,EAKIJ,EAAAK,KAAAC,KAAML,EAASH,EAA0BS,GAAIJ,IAASG,YAJ/CF,EAAAH,UACAG,EAAAF,UACAE,EAAAD,WAIPC,EAAKF,QAAUP,EAAAa,iBAAiBC,qBAAqBR,EAASH,EAA2BI,GAEzFE,EAAKM,KAAKC,cACNd,EAAAe,sBAAsBC,gCACtBT,EAAKS,mCA2CjB,OAhE+CC,EAAAhB,EAAAE,GAyBnCF,EAAAiB,UAAAF,gCAAR,SAAwCG,GACpC,GAAIA,EAAoBC,8BAAgCX,KAAKY,+CACrDF,EAAoBG,qBAAsB,CAC1C,IAAIC,GAsCKC,EAtC0Bf,KAAKJ,QAAQoB,eAAiB,mBAuCtE,gDAAAC,OAAgDF,EAAS,4FArC/Cf,KAAKkB,2BAA2BJ,KACjCK,QAAQC,KAAKN,GACbd,KAAKL,QAAQ0B,YAAYrB,KAAKsB,0BAA0BR,KAkC5E,IAAyBC,GA5BbvB,EAAAiB,UAAAS,2BAAR,SAAmCJ,GAC/B,IAAK,IAAIS,EAAQ,EAAGA,EAAQvB,KAAKL,QAAQ6B,SAASC,OAAQF,IAAS,CAE/D,IAAsD,IADtCvB,KAAKL,QAAQ6B,SAASD,GAC1BG,YAAYC,QAAQb,EAAc,GAC1C,OAAO,EAIf,OAAO,GAGHtB,EAAAiB,UAAAG,4CAAR,WACI,OAC+D,IAA3DZ,KAAK4B,gBAAgBC,cAAc,aAAaJ,QACsB,IAAtEzB,KAAK4B,gBAAgBC,cAAc,wBAAwBJ,QAI3DjC,EAAAiB,UAAAa,0BAAR,SAAkCR,GAC9B,IAAMgB,EAAYC,SAASC,cAAc,QAKzC,OAHAF,EAAUG,UAAUC,IAAI,gBACxBJ,EAAUJ,YAAcZ,EAEjBgB,GA7DJtC,EAAAS,GAAK,4BAELT,EAAAI,QAA6C,CAChDoB,cAAe3B,EAAAa,iBAAiBiC,kBAAkB,CAC9CC,aAAc,GACdC,SAAU,yBA0DtB7C,EAhEA,CAA+CH,EAAAiD,WAsE/CjD,EAAAkD,eAAeC,4BAA4BhD","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":""}