{"version":3,"sources":["webpack://CoveoForSitecore/./src/ui/analytics/CoveoForSitecoreAnalytics.ts"],"names":["element","options","bindings","CoveoForSitecoreAnalytics","ID","ComponentOptions","initComponentOptions","bind","onRootElement","InitializationEvents","afterInitialization","onAfterInitialization","SitecoreContextEvents","onSitecoreContextInitialization","args","this","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","scAnalyticsCustomMetadata","metaObject","endpoint","serviceUrl","analyticsEndpointUri","buildJsonOption","buildStringOption","defaultValue","buildBooleanOption","Component","Initialization","registerAutoCreateComponent"],"mappings":"2qBAAA,WAWA,OAUA,0CAiBI,WACWA,EACAC,EACAC,GAHX,MAKI,YAAMF,EAASG,EAA0BC,GAAIF,IAAS,K,OAJ/C,EAAAF,UACA,EAAAC,UACA,EAAAC,WAIP,EAAKD,QAAU,EAAAI,iBAAiBC,qBAAqBN,EAASG,EAA2BF,GAEzF,EAAKM,KAAKC,cAAc,EAAAC,qBAAqBC,qBAAqB,WAAM,SAAKC,2BAC7E,EAAKJ,KAAKC,cACN,EAAAI,sBAAsBC,iCACtB,SAACC,GAAS,SAAKD,gCAAgCC,M,EAoE3D,OAjG+C,OAiCnC,YAAAH,sBAAR,WACQI,KAAKb,SAASc,gBAAkBD,KAAKd,QAAQgB,iBAC7CF,KAAKb,SAASc,eAAeE,iBAAiBH,KAAKd,QAAQgB,kBAI3D,YAAAJ,gCAAR,SAAwCM,GACpCJ,KAAKK,+CAA+CD,GACpDJ,KAAKM,mCAAmCF,IAGpC,YAAAC,+CAAR,SACID,GADJ,WAGIJ,KAAKR,KAAKC,cACN,EAAAc,gBAAgBC,2BAChB,SAACT,G,MACSb,EAAU,EAAKA,QACrB,GAAIA,EAAS,CACLA,EAAQuB,2BAA+BL,EAAgBM,kBACvDX,EAAKY,SAAWP,EAAgBM,iBAEhCxB,EAAQ0B,8BAAkCR,EAAgBS,mBAC1Dd,EAAKe,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,IAAc,MAClB,WAAaU,GAAMF,EAAQE,G,IAMxCvC,EAAQ0C,2BACRF,EAAEC,OAAOZ,EAAgB7B,EAAQ0C,2BAGrCF,EAAEC,OAAO5B,EAAK8B,WAAYd,QAMlC,YAAAT,mCAAR,SAA2CF,GAEnCJ,KAAKb,SAASc,gBACdD,KAAKb,SAASc,eAAe6B,UAC7B9B,KAAKb,SAASc,eAAe6B,SAAS5C,UAEtCc,KAAKb,SAASc,eAAe6B,SAAS5C,QAAQ6C,WAC1C/B,KAAKd,QAAQ4C,UAAY1B,EAAgB4B,uBA7F9C,EAAA3C,GAAK,uBAEL,EAAAH,QAA6C,CAChD0C,0BAA2B,EAAAtC,iBAAiB2C,kBAC5C/B,gBAAiB,EAAAZ,iBAAiB4C,kBAAkB,CAChDC,aAAc,kBAElBvB,6BAA8B,EAAAtB,iBAAiB8C,mBAAmB,CAC9DD,cAAc,IAElB1B,0BAA2B,EAAAnB,iBAAiB8C,mBAAmB,CAC3DD,cAAc,IAElBL,SAAU,EAAAxC,iBAAiB4C,qBAmFnC,EAjGA,CAA+C,EAAAG,WAmG/C,EAAAC,eAAeC,4BAA4BnD","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":""}