{"version":3,"sources":["webpack://CoveoForSitecore/./src/ui/analytics/CoveoForSitecoreAnalytics.ts"],"names":["coveo_search_ui_1","__webpack_require__","ContextEvents_1","CoveoForSitecoreAnalytics","exports","_super","element","options","bindings","_this","call","this","ID","ComponentOptions","initComponentOptions","bind","onRootElement","InitializationEvents","afterInitialization","onAfterInitialization","SitecoreContextEvents","onSitecoreContextInitialization","args","__extends","prototype","usageAnalytics","scOriginContext","setOriginContext","sitecoreContext","completeAnalyticsCustomDataWithSitecoreContext","setUsageAnalyticsEnpointServiceUrl","AnalyticsEvents","changeAnalyticsCustomData","scOverrideCurrentLanguage","currentLanguage","language","scOverrideOriginWithPageName","sitecorePageName","originLevel1","customMetadata","pageFullPath","sitecorePageFullPath","sitename","siteName","userContext","window","handler","context","getContext","key","_","extend","_a","scAnalyticsCustomMetadata","metaObject","endpoint","serviceUrl","analyticsEndpointUri","buildJsonOption","buildStringOption","defaultValue","buildBooleanOption","Component","Initialization","registerAutoCreateComponent"],"mappings":"2qBAAA,IAAAA,EAAAC,EAAA,GAWAC,EAAAD,EAAA,GAUAE,EAAAC,EAAAD,0BAAA,SAAAE,GAiBI,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,cAAchB,EAAAiB,qBAAqBC,oBAAqB,WAAM,OAAAT,EAAKU,0BAC7EV,EAAKM,KAAKC,cACNd,EAAAkB,sBAAsBC,gCACtB,SAACC,GAAS,OAAAb,EAAKY,gCAAgCC,OAoE3D,OAjG+CC,EAAApB,EAAAE,GAiCnCF,EAAAqB,UAAAL,sBAAR,WACQR,KAAKH,SAASiB,gBAAkBd,KAAKJ,QAAQmB,iBAC7Cf,KAAKH,SAASiB,eAAeE,iBAAiBhB,KAAKJ,QAAQmB,kBAI3DvB,EAAAqB,UAAAH,gCAAR,SAAwCO,GACpCjB,KAAKkB,+CAA+CD,GACpDjB,KAAKmB,mCAAmCF,IAGpCzB,EAAAqB,UAAAK,+CAAR,SACID,GADJ,IAAAnB,EAAAE,KAGIA,KAAKI,KAAKC,cACNhB,EAAA+B,gBAAgBC,0BAChB,SAACV,SACSf,EAAUE,EAAKF,QACrB,GAAIA,EAAS,CACLA,EAAQ0B,2BAA+BL,EAAgBM,kBACvDZ,EAAKa,SAAWP,EAAgBM,iBAEhC3B,EAAQ6B,8BAAkCR,EAAgBS,mBAC1Df,EAAKgB,aAAeV,EAAgBS,kBAGxC,IAAME,EAAiB,CACnBC,aAAcZ,EAAgBa,qBAC9BC,SAAUd,EAAgBe,SAC1BA,SAAUf,EAAgBe,UAGxBC,EAAcC,OAAoC,4BACxD,GAAMD,GAAiBA,EAAYE,QAAS,CACxC,IAAMC,EAAUH,EAAYE,QAAQE,aACpC,GAAMD,EACF,IAAK,IAAME,KAAOF,EACdG,EAAEC,OAAOZ,IAAca,EAAA,IAClB,WAAaH,GAAMF,EAAQE,OAMxC1C,EAAQ8C,2BACRH,EAAEC,OAAOZ,EAAgBhC,EAAQ8C,2BAGrCH,EAAEC,OAAO7B,EAAKgC,WAAYf,OAMlCpC,EAAAqB,UAAAM,mCAAR,SAA2CF,GAEnCjB,KAAKH,SAASiB,gBACdd,KAAKH,SAASiB,eAAe8B,UAC7B5C,KAAKH,SAASiB,eAAe8B,SAAShD,UAEtCI,KAAKH,SAASiB,eAAe8B,SAAShD,QAAQiD,WAC1C7C,KAAKJ,QAAQgD,UAAY3B,EAAgB6B,uBA7F9CtD,EAAAS,GAAK,uBAELT,EAAAI,QAA6C,CAChD8C,0BAA2BrD,EAAAa,iBAAiB6C,kBAC5ChC,gBAAiB1B,EAAAa,iBAAiB8C,kBAAkB,CAChDC,aAAc,kBAElBxB,6BAA8BpC,EAAAa,iBAAiBgD,mBAAmB,CAC9DD,cAAc,IAElB3B,0BAA2BjC,EAAAa,iBAAiBgD,mBAAmB,CAC3DD,cAAc,IAElBL,SAAUvD,EAAAa,iBAAiB8C,qBAmFnCxD,EAjGA,CAA+CH,EAAA8D,WAmG/C9D,EAAA+D,eAAeC,4BAA4B7D","file":"CoveoForSitecoreAnalytics.min.js","sourcesContent":["import {\r\n Component,\r\n AnalyticsEvents,\r\n ComponentOptions,\r\n IComponentBindings,\r\n IChangeAnalyticsCustomDataEventArgs,\r\n InitializationEvents,\r\n Initialization,\r\n IStringMap,\r\n} from 'coveo-search-ui';\r\n\r\nimport { ISitecoreContextInitializationEventArgs, SitecoreContextEvents } from '../../events/ContextEvents';\r\n\r\nexport interface ICoveoForSitecoreAnalyticsOptions {\r\n scAnalyticsCustomMetadata: IStringMap;\r\n scOriginContext: string;\r\n scOverrideOriginWithPageName: boolean;\r\n scOverrideCurrentLanguage: boolean;\r\n endpoint: string;\r\n}\r\n\r\nexport class CoveoForSitecoreAnalytics extends Component {\r\n static ID = 'ForSitecoreAnalytics';\r\n\r\n static options: ICoveoForSitecoreAnalyticsOptions = {\r\n scAnalyticsCustomMetadata: ComponentOptions.buildJsonOption(),\r\n scOriginContext: ComponentOptions.buildStringOption({\r\n defaultValue: 'WebsiteSearch',\r\n }),\r\n scOverrideOriginWithPageName: ComponentOptions.buildBooleanOption({\r\n defaultValue: false,\r\n }),\r\n scOverrideCurrentLanguage: ComponentOptions.buildBooleanOption({\r\n defaultValue: true,\r\n }),\r\n endpoint: ComponentOptions.buildStringOption(),\r\n };\r\n\r\n constructor(\r\n public element: HTMLElement,\r\n public options: ICoveoForSitecoreAnalyticsOptions,\r\n public bindings: IComponentBindings\r\n ) {\r\n super(element, CoveoForSitecoreAnalytics.ID, bindings);\r\n\r\n this.options = ComponentOptions.initComponentOptions(element, CoveoForSitecoreAnalytics, options);\r\n\r\n this.bind.onRootElement(InitializationEvents.afterInitialization, () => this.onAfterInitialization());\r\n this.bind.onRootElement(\r\n SitecoreContextEvents.onSitecoreContextInitialization,\r\n (args) => this.onSitecoreContextInitialization(args)\r\n );\r\n }\r\n\r\n private onAfterInitialization(): void {\r\n if (this.bindings.usageAnalytics && this.options.scOriginContext) {\r\n this.bindings.usageAnalytics.setOriginContext(this.options.scOriginContext);\r\n }\r\n }\r\n\r\n private onSitecoreContextInitialization(sitecoreContext: ISitecoreContextInitializationEventArgs): void {\r\n this.completeAnalyticsCustomDataWithSitecoreContext(sitecoreContext);\r\n this.setUsageAnalyticsEnpointServiceUrl(sitecoreContext);\r\n }\r\n\r\n private completeAnalyticsCustomDataWithSitecoreContext(\r\n sitecoreContext: ISitecoreContextInitializationEventArgs\r\n ): void {\r\n this.bind.onRootElement(\r\n AnalyticsEvents.changeAnalyticsCustomData,\r\n (args: IChangeAnalyticsCustomDataEventArgs) => {\r\n const options = this.options;\r\n if (options) {\r\n if (options.scOverrideCurrentLanguage && !!sitecoreContext.currentLanguage) {\r\n args.language = sitecoreContext.currentLanguage;\r\n }\r\n if (options.scOverrideOriginWithPageName && !!sitecoreContext.sitecorePageName) {\r\n args.originLevel1 = sitecoreContext.sitecorePageName;\r\n }\r\n\r\n const customMetadata = {\r\n pageFullPath: sitecoreContext.sitecorePageFullPath,\r\n sitename: sitecoreContext.siteName, // Kept for backward-compatibility with legacy components\r\n siteName: sitecoreContext.siteName,\r\n };\r\n\r\n const userContext = window['CoveoForSitecoreUserContext'];\r\n if (!!userContext && !!userContext.handler) {\r\n const context = userContext.handler.getContext();\r\n if (!!context) {\r\n for (const key in context) {\r\n _.extend(customMetadata, {\r\n ['context_' + key]: context[key],\r\n });\r\n }\r\n }\r\n }\r\n\r\n if (options.scAnalyticsCustomMetadata) {\r\n _.extend(customMetadata, options.scAnalyticsCustomMetadata);\r\n }\r\n\r\n _.extend(args.metaObject, customMetadata);\r\n }\r\n }\r\n );\r\n }\r\n\r\n private setUsageAnalyticsEnpointServiceUrl(sitecoreContext: ISitecoreContextInitializationEventArgs): void {\r\n if (\r\n this.bindings.usageAnalytics &&\r\n this.bindings.usageAnalytics.endpoint &&\r\n this.bindings.usageAnalytics.endpoint.options\r\n ) {\r\n this.bindings.usageAnalytics.endpoint.options.serviceUrl =\r\n this.options.endpoint || sitecoreContext.analyticsEndpointUri;\r\n }\r\n }\r\n}\r\n\r\nInitialization.registerAutoCreateComponent(CoveoForSitecoreAnalytics);\r\n"],"sourceRoot":""}