{"version":3,"file":"chunk-nunc2t1g.js","sources":["packages/myaccount/app/src/tracking/tracking.model.ts","packages/myaccount/app/src/tracking/tracking-resource.service.ts"],"sourcesContent":["export class TrackingEvent {\n CategoryEvent?: string;\n LabelEvent?: string;\n ActionEvent?: string;\n PositionEvent?: string;\n LocationEvent?: string;\n EventDetails?: string;\n UrlClicked?: string;\n PageName?: string;\n SiteSection?: string;\n RefferingAction?: string;\n Value?: number | string | null;\n RegistrationType?: string | null;\n Product?: string;\n HccCategory?: string | null;\n HccArticle?: string | null;\n AffordabilityJourney?: string | null;\n ContentPosition?: number | string | null;\n RegistrationSourcePath?: string | null;\n Progress?: string;\n KycVerifcationProcess?: string;\n LimitDetails?: string;\n UserAccountId?: string | null;\n offerId?: string | null;\n type?: string | null;\n flowName?: string | null;\n AffordabilityGroups?: string | null;\n AffLimitType?: string | null;\n AffAgeGroups?: string | null;\n}\n\nexport const EventNameConst = {\n HelpAndContact: 'Event.HCC',\n Tracking: 'Event.Tracking',\n Value: 'Event.Value',\n ContentView: 'contentView',\n AccountOptions: 'Event.AccountOptions',\n};\n\nexport class ErrorDetail {\n [key: string]: string | number | undefined;\n}\n\nexport const TrackingConstants: { [key: string]: string } = {\n COMPONENT_CATEGORY_EVENT: 'component.CategoryEvent',\n COMPONENT_LABEL_EVENT: 'component.LabelEvent',\n COMPONENT_ACTION_EVENT: 'component.ActionEvent',\n COMPONENT_POSITION_EVENT: 'component.PositionEvent',\n COMPONENT_LOCATION_EVENT: 'component.LocationEvent',\n COMPONENT_EVENT_DETAILS: 'component.EventDetails',\n COMPONENT_URL_CLICKED: 'component.URLClicked',\n};\n\nexport const TrackingConstantsV2: { [key: string]: string } = {\n CATEGORY_EVENT: 'CategoryEvent',\n LABEL_EVENT: 'LabelEvent',\n ACTION_EVENT: 'ActionEvent',\n POSITION_EVENT: 'PositionEvent',\n LOCATION_EVENT: 'LocationEvent',\n EVENT_DETAILS: 'EventDetails',\n URL_CLICKED: 'UrlClicked',\n};\n\nexport type TrackingConstantsType = (typeof TrackingConstants)[keyof typeof TrackingConstants];\n\nexport enum FieldEvent {\n Click = 'click',\n Blur = 'blur',\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n AppInfoConfig,\n DeviceService,\n NativeAppService,\n Page,\n TrackingService,\n UserService,\n ViewTemplateForClient,\n WindowRef,\n} from '@frontend/vanilla/core';\n\nimport { ErrorDetail, EventNameConst, TrackingEvent } from './tracking.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PortalTrackingService {\n trackingEvents: TrackingEvent;\n constructor(\n private trackingService: TrackingService,\n private nativeAppService: NativeAppService,\n public page: Page,\n private user: UserService,\n private appInfoConfig: AppInfoConfig,\n public device: DeviceService,\n private windowRef: WindowRef,\n ) {}\n\n triggerTrackingEvent(trackingEvents: TrackingEvent) {\n this.trackEvents(trackingEvents);\n }\n\n reportErrorObject(errorDetail: ErrorDetail) {\n this.trackingService.reportErrorObject(errorDetail);\n }\n\n trackEvents(trackingEvents: TrackingEvent, siteSection: string = '', EventName: string = '', overrideEvents: TrackingEvent = {}) {\n const siteSectionEvent = {\n 'page.siteSection': siteSection,\n };\n let trackEvents = {\n 'component.CategoryEvent': IsNullOrEmpty(trackingEvents.CategoryEvent) ? 'not applicable' : trackingEvents.CategoryEvent,\n 'component.LabelEvent': IsNullOrEmpty(trackingEvents.LabelEvent) ? 'not applicable' : trackingEvents.LabelEvent,\n 'component.ActionEvent': IsNullOrEmpty(trackingEvents.ActionEvent) ? 'not applicable' : trackingEvents.ActionEvent,\n 'component.PositionEvent': IsNullOrEmpty(trackingEvents.PositionEvent) ? 'not applicable' : trackingEvents.PositionEvent,\n 'component.LocationEvent': IsNullOrEmpty(trackingEvents.LocationEvent) ? 'not applicable' : trackingEvents.LocationEvent,\n 'component.EventDetails': IsNullOrEmpty(trackingEvents.EventDetails) ? 'not applicable' : trackingEvents.EventDetails,\n };\n if (!IsNullOrEmpty(trackingEvents.UrlClicked)) {\n const eventTrackingEvents = {\n 'component.URLClicked': IsNullOrEmpty(trackingEvents.UrlClicked) ? 'not applicable' : trackingEvents.UrlClicked,\n };\n trackEvents = { ...trackEvents, ...eventTrackingEvents };\n }\n if (!IsNullOrEmpty(trackingEvents.Value)) {\n const valueTrackingEvents: ValueTrackingEvents = {\n 'component.value': IsNullOrEmpty(trackingEvents.Value) ? 'not applicable' : trackingEvents.Value,\n };\n if (!IsNullOrEmpty(trackingEvents.Product)) {\n valueTrackingEvents['component.Product'] = trackingEvents.Product;\n }\n EventName = IsNullOrEmpty(EventName) ? 'Event.Value' : EventName;\n trackEvents = { ...trackEvents, ...valueTrackingEvents };\n } else {\n const eventTrackingEvents = {\n 'component.URLClicked': IsNullOrEmpty(trackingEvents.UrlClicked) ? 'not applicable' : trackingEvents.UrlClicked,\n };\n trackEvents = { ...trackEvents, ...eventTrackingEvents };\n }\n if (!IsNullOrEmpty(trackingEvents.AffordabilityJourney)) {\n const journeyTrackingEvent = {\n 'component.AffordabilityJourney': trackingEvents.AffordabilityJourney,\n };\n trackEvents = { ...trackEvents, ...journeyTrackingEvent };\n }\n if (!IsNullOrEmpty(trackingEvents.AffAgeGroups)) {\n const affAgeGroupEvent = {\n 'component.AffAgeGroups': trackingEvents.AffAgeGroups,\n };\n trackEvents = { ...trackEvents, ...affAgeGroupEvent };\n }\n if (!IsNullOrEmpty(trackingEvents.AffordabilityGroups)) {\n const affordabilityGroupsEvent = {\n 'component.AffordabilityGroups': trackingEvents.AffordabilityGroups,\n };\n trackEvents = { ...trackEvents, ...affordabilityGroupsEvent };\n }\n if (!IsNullOrEmpty(trackingEvents.AffLimitType)) {\n const affLimitTypeEvent = {\n 'component.AffLimitType': trackingEvents.AffLimitType,\n };\n trackEvents = { ...trackEvents, ...affLimitTypeEvent };\n }\n if (!IsNullOrEmpty(trackingEvents.flowName)) {\n const affLimitTypeEvent = {\n 'component.flowName': trackingEvents.flowName,\n };\n trackEvents = { ...trackEvents, ...affLimitTypeEvent };\n }\n if (!IsNullOrEmpty(trackingEvents.RegistrationType)) {\n const registrationTypeTrackingEvent = {\n 'page.registrationType': trackingEvents.RegistrationType,\n };\n trackEvents = { ...trackEvents, ...registrationTypeTrackingEvent };\n }\n if (!IsNullOrEmpty(trackingEvents.offerId)) {\n const offerIdTrackingEvent = {\n 'page.offerId': trackingEvents.offerId,\n };\n trackEvents = { ...trackEvents, ...offerIdTrackingEvent };\n }\n if (!IsNullOrEmpty(trackingEvents.ContentPosition)) {\n const ContentPositionTrackingEvent = {\n 'component.ContentPosition': trackingEvents.ContentPosition,\n };\n trackEvents = { ...trackEvents, ...ContentPositionTrackingEvent };\n }\n if (!IsNullOrEmpty(trackingEvents.RegistrationSourcePath)) {\n const registrationTypeTrackingEvent = {\n 'page.registrationSourcePath': trackingEvents.RegistrationSourcePath,\n };\n trackEvents = { ...trackEvents, ...registrationTypeTrackingEvent };\n }\n if (!IsNullOrEmpty(trackingEvents.Progress)) {\n const registrationTypeTrackingEvent = {\n 'page.registrationProgress': trackingEvents.Progress,\n };\n trackEvents = { ...trackEvents, ...registrationTypeTrackingEvent };\n }\n if (!IsNullOrEmpty(overrideEvents)) {\n Object.keys(overrideEvents).map((key) => {\n const overriddenKey = 'component.' + key;\n trackEvents = {\n ...trackEvents,\n [overriddenKey]: IsNullOrEmpty(overrideEvents[key as keyof TrackingEvent])\n ? 'not applicable'\n : overrideEvents[key as keyof TrackingEvent],\n };\n });\n }\n if (EventName == EventNameConst.HelpAndContact) {\n const eventTrackingEvents = {\n 'component.hccCategory': IsNullOrEmpty(trackingEvents.HccCategory) ? 'not applicable' : trackingEvents.HccCategory,\n 'component.hccArticle': IsNullOrEmpty(trackingEvents.HccArticle) ? 'not applicable' : trackingEvents.HccArticle,\n };\n trackEvents = { ...trackEvents, ...eventTrackingEvents };\n }\n if (!IsNullOrEmpty(trackingEvents.LimitDetails)) {\n const limitDetailsEvent = { 'component.LimitDetails': trackingEvents.LimitDetails };\n trackEvents = { ...trackEvents, ...limitDetailsEvent };\n }\n if (!IsNullOrEmpty(trackingEvents.UserAccountId)) {\n const userAccountIdTrackingEvent = {\n 'user.profile.accountID': trackingEvents.UserAccountId,\n };\n trackEvents = { ...trackEvents, ...userAccountIdTrackingEvent };\n }\n if (trackingEvents.type == 'standard logout') {\n const userLogoutTrackingEvent = {\n 'logout.type': trackingEvents.type,\n };\n trackEvents = { ...trackEvents, ...userLogoutTrackingEvent };\n }\n if (!IsNullOrEmpty(trackingEvents.flowName)) {\n const expiryflow = {\n 'component.flowName': trackingEvents.flowName,\n };\n trackEvents = { ...trackEvents, ...expiryflow };\n }\n if (!IsNullOrEmpty(siteSection) && IsNotEmptyObject(trackingEvents))\n this.trackingService.triggerEvent(EventName === '' ? 'Event.Tracking' : EventName, { ...siteSectionEvent, ...trackEvents });\n else if (IsNotEmptyObject(trackingEvents)) this.trackingService.triggerEvent(EventName === '' ? 'Event.Tracking' : EventName, trackEvents);\n }\n\n trackEventsWithoutVariables(trackingEvents: TrackingEvent, siteSection: string = '', EventName: string = '', overrideEvents: TrackingEvent = {}) {\n const siteSectionEvent = {\n 'page.siteSection': siteSection,\n };\n let trackEvents = {};\n if (!IsNullOrEmpty(trackingEvents.CategoryEvent)) {\n const categoryTrackingEvent = {\n 'component.CategoryEvent': trackingEvents.CategoryEvent,\n };\n trackEvents = { ...trackEvents, ...categoryTrackingEvent };\n }\n\n if (!IsNullOrEmpty(trackingEvents.LabelEvent)) {\n const labelTrackingEvent = {\n 'component.LabelEvent': trackingEvents.LabelEvent,\n };\n trackEvents = { ...trackEvents, ...labelTrackingEvent };\n }\n\n if (!IsNullOrEmpty(trackingEvents.LabelEvent)) {\n const actionTrackingEvent = {\n 'component.ActionEvent': trackingEvents.ActionEvent,\n };\n trackEvents = { ...trackEvents, ...actionTrackingEvent };\n }\n\n if (!IsNullOrEmpty(trackingEvents.LabelEvent)) {\n const positionTrackingEvent = {\n 'component.PositionEvent': trackingEvents.PositionEvent,\n };\n trackEvents = { ...trackEvents, ...positionTrackingEvent };\n }\n\n if (!IsNullOrEmpty(trackingEvents.LabelEvent)) {\n const locationTrackingEvent = {\n 'component.LocationEvent': trackingEvents.LocationEvent,\n };\n trackEvents = { ...trackEvents, ...locationTrackingEvent };\n }\n\n if (!IsNullOrEmpty(trackingEvents.LabelEvent)) {\n const eventTrackingEvent = {\n 'component.EventDetails': trackingEvents.EventDetails,\n };\n trackEvents = { ...trackEvents, ...eventTrackingEvent };\n }\n if (!IsNullOrEmpty(trackingEvents.Value)) {\n const valueTrackingEvents: ValueTrackingEvents = {\n 'component.value': IsNullOrEmpty(trackingEvents.Value) ? 'not applicable' : trackingEvents.Value,\n };\n if (!IsNullOrEmpty(trackingEvents.Product)) {\n valueTrackingEvents['component.Product'] = trackingEvents.Product;\n }\n EventName = IsNullOrEmpty(EventName) ? 'Event.Value' : EventName;\n trackEvents = { ...trackEvents, ...valueTrackingEvents };\n } else {\n const eventTrackingEvents = {\n 'component.URLClicked': !IsNullOrEmpty(trackingEvents.UrlClicked) ? 'not applicable' : trackingEvents.UrlClicked,\n };\n trackEvents = { ...trackEvents, ...eventTrackingEvents };\n }\n if (!IsNullOrEmpty(trackingEvents.AffordabilityJourney)) {\n const journeyTrackingEvent = {\n 'component.AffordabilityJourney': IsNullOrEmpty(trackingEvents.AffordabilityJourney)\n ? 'not applicable'\n : trackingEvents.AffordabilityJourney,\n };\n trackEvents = { ...trackEvents, ...journeyTrackingEvent };\n }\n if (!IsNullOrEmpty(trackingEvents.AffordabilityGroups)) {\n const affordabilitygroupData = trackingEvents.AffordabilityGroups;\n const affordabilityGroupsEvent = {\n 'component.AffordabilityGroups': IsNullOrEmpty(trackingEvents.AffordabilityGroups)\n ? 'not applicable'\n : affordabilitygroupData?.toLocaleLowerCase() == 'not applicable'\n ? 'not applicable'\n : 'group ' + trackingEvents.AffordabilityGroups,\n };\n trackEvents = { ...trackEvents, ...affordabilityGroupsEvent };\n }\n if (!IsNullOrEmpty(trackingEvents.RegistrationType)) {\n const registrationTypeTrackingEvent = {\n 'page.registrationType': trackingEvents.RegistrationType,\n };\n trackEvents = { ...trackEvents, ...registrationTypeTrackingEvent };\n }\n if (!IsNullOrEmpty(overrideEvents)) {\n Object.keys(overrideEvents).map((key) => {\n const overriddenKey = 'component.' + key;\n trackEvents = {\n ...trackEvents,\n [overriddenKey]: IsNullOrEmpty(overrideEvents[key as keyof TrackingEvent])\n ? 'not applicable'\n : overrideEvents[key as keyof TrackingEvent],\n };\n });\n }\n if (EventName == EventNameConst.HelpAndContact) {\n const eventTrackingEvents = {\n 'component.hccCategory': IsNullOrEmpty(trackingEvents.HccCategory) ? 'not applicable' : trackingEvents.HccCategory,\n 'component.hccArticle': IsNullOrEmpty(trackingEvents.HccArticle) ? 'not applicable' : trackingEvents.HccArticle,\n };\n trackEvents = { ...trackEvents, ...eventTrackingEvents };\n }\n if (!IsNullOrEmpty(siteSection) && IsNotEmptyObject(trackingEvents))\n this.trackingService.triggerEvent(EventName === '' ? 'Event.Tracking' : EventName, { ...siteSectionEvent, ...trackEvents });\n else if (IsNotEmptyObject(trackingEvents)) this.trackingService.triggerEvent(EventName === '' ? 'Event.Tracking' : EventName, trackEvents);\n }\n\n trackLegacyEvents(eventName: any, trackingEvents: TrackingEvent) {\n if (IsNotEmptyObject(trackingEvents)) {\n if (!IsNullOrEmpty(trackingEvents.SiteSection)) {\n this.trackingService.triggerEvent(eventName, {\n 'page.siteSection': trackingEvents.SiteSection,\n 'page.name': trackingEvents.PageName,\n });\n } else {\n this.trackingService.triggerEvent(eventName, {\n 'page.name': trackingEvents.PageName,\n });\n }\n }\n }\n trackArrayOfEvents(setLimits: any) {\n this.trackingService.triggerEvent('Event.OptionLoad', { setLimits });\n }\n //--Start Tracking if TrackingService/TrackingEvents site templates are available : Its dynamic tracking need to send track envent name mapped in site core and error message instead of event details(if its not dynamic).--//\n trackingDynamicService(\n trackEvents: ViewTemplateForClient,\n prefix: string = '',\n verificationStatus: any = undefined,\n daysLeft: string = '',\n attempts: any = undefined,\n screenName: any = '',\n attemptCountLeft: any = '',\n ) {\n if (trackEvents !== undefined && trackEvents.messages !== undefined) {\n const PositionEvent =\n trackEvents.messages[prefix + 'PositionEvent'] !== undefined && verificationStatus !== undefined\n ? trackEvents.messages[prefix + 'PositionEvent'].replace('{0}', verificationStatus)\n : trackEvents.messages[prefix + 'PositionEvent'] !== undefined\n ? trackEvents.messages[prefix + 'PositionEvent']\n : '';\n const EventDetails =\n trackEvents.messages[prefix + 'EventDetails'] !== undefined && screenName != ''\n ? trackEvents.messages[prefix + 'EventDetails'].replace('{0}', screenName)\n : trackEvents.messages[prefix + 'EventDetails'] !== undefined && attemptCountLeft\n ? trackEvents.messages[prefix + 'EventDetails'].replace('{0}', attemptCountLeft)\n : trackEvents.messages[prefix + 'EventDetails'] !== undefined && daysLeft\n ? trackEvents.messages[prefix + 'EventDetails'].replace('{daysLeft}', daysLeft)\n : trackEvents.messages[prefix + 'EventDetails'] !== undefined\n ? trackEvents.messages[prefix + 'EventDetails']\n : '';\n const LocationEvent =\n trackEvents.messages[prefix + 'LocationEvent'] !== undefined && screenName != ''\n ? trackEvents.messages[prefix + 'LocationEvent'].replace('{0}', screenName)\n : trackEvents.messages[prefix + 'LocationEvent'] !== undefined && attempts !== undefined\n ? trackEvents.messages[prefix + 'LocationEvent'].replace('{0}', attempts)\n : trackEvents.messages[prefix + 'LocationEvent'] !== undefined\n ? trackEvents.messages[prefix + 'LocationEvent']\n : '';\n this.trackingEvents = {\n CategoryEvent: trackEvents.messages[prefix + 'CategoryEvent'] !== undefined ? trackEvents.messages[prefix + 'CategoryEvent'] : '',\n LabelEvent: trackEvents.messages[prefix + 'LabelEvent'] !== undefined ? trackEvents.messages[prefix + 'LabelEvent'] : '',\n ActionEvent: trackEvents.messages[prefix + 'ActionEvent'] !== undefined ? trackEvents.messages[prefix + 'ActionEvent'] : '',\n PositionEvent: PositionEvent,\n LocationEvent: LocationEvent,\n EventDetails: EventDetails, //trackEvents.messages[prefix + 'EventDetails'] !== undefined ? trackEvents.messages[prefix + 'EventDetails'] : '',\n UrlClicked: trackEvents.messages[prefix + 'URLClicked'] !== undefined ? trackEvents.messages[prefix + 'URLClicked'] : '',\n };\n this.trackEvents(\n this.trackingEvents,\n trackEvents.messages[prefix + 'SiteSection'] !== undefined ? trackEvents.messages[prefix + 'SiteSection'] : '',\n trackEvents.messages[prefix + 'EventName'],\n );\n }\n }\n //--End Tracking--//\n //---API Trcking\n public getClientID(): any {\n if (\n this.windowRef.nativeWindow['ga']?.getAll &&\n typeof this.windowRef.nativeWindow['ga'].getAll === 'function' &&\n this.windowRef.nativeWindow['ga'].getAll()[0]\n ) {\n return this.windowRef.nativeWindow['ga'].getAll()[0].get('clientId');\n }\n\n const cookie: string[] | undefined = document.cookie\n .split(';')\n .find((x) => x.includes('_ga='))\n ?.split('.');\n return cookie && cookie.length == 4 ? cookie[2] + '.' + cookie[3] : null;\n }\n\n getGaParameter() {\n let gaparm: any = this.windowRef.nativeWindow['ga']?.getAll && this.windowRef.nativeWindow['ga']?.getAll()[0].get('linkerParam');\n if (gaparm) {\n gaparm = gaparm.toString().replace('_ga=', '');\n return gaparm;\n } else return null;\n }\n\n private getPageName() {\n return window.location?.pathname?.replace('/' + this.page.lang + '/', '')?.toLowerCase();\n }\n\n private getCookieValue(name: string) {\n return document.cookie\n ?.split(';')\n .find((x) => x.includes(name))\n ?.split('=')[1];\n }\n\n getSessionValue(sessionId: string) {\n const item: any = document.cookie?.split(';').find((x) => x.includes(sessionId));\n const sessionValue: any = item?.split('.')[2];\n return sessionValue?.match(/^\\d{10}$/) ? sessionValue : '';\n }\n\n private async trackAPI(url: string, params: any, body: any) {\n const xhr = new XMLHttpRequest();\n xhr.open('POST', url + '?' + new URLSearchParams(params));\n xhr.send(body);\n }\n\n trackRemote(trackingData: any) {\n const url = trackingData.configtrackingAPIData.endPoint['GA4'];\n const payload = this.getGA4Payload(trackingData);\n if (url && payload) this.trackAPI(url, payload.params, payload.body);\n }\n private getChannel() {\n let channelID = 'desktop';\n if (this.nativeAppService.isNative) {\n channelID = this.nativeAppService.applicationName;\n } else if (this.device.isMobile) channelID = 'mobile';\n return channelID;\n }\n\n //GA4\n private getGA4Payload(trackingData: any) {\n const params: any = {\n measurement_id: trackingData.configtrackingAPIData.gA4['MeasurementId'],\n api_secret: trackingData.configtrackingAPIData.gA4['APISecretKey'],\n };\n const data: any = {\n client_id: this.getClientID(),\n timestamp_micros: new Date().getTime() * 1000,\n user_id: trackingData.accountID,\n user_properties: {\n base_currency: {\n value: this.user.currency?.toLowerCase(),\n },\n prof_country: {\n value: this.user.country?.toLowerCase(),\n },\n appinfo: {\n value: this.appInfoConfig.channel?.toLowerCase(),\n },\n prof_customerid: {\n value: trackingData.accountID,\n },\n prof_loggedin: {\n value: 'not_logged_in',\n },\n page_fe: {\n value: this.getChannel(),\n },\n },\n events: [\n {\n name: 'registration_success_api',\n params: {\n // tid: trackingData.configtrackingAPIData.gA4['MeasurementId'], //measurement id\n ua: navigator.userAgent?.toLowerCase(),\n user_agent: navigator.userAgent,\n page_title: document.title,\n page_location: document.URL,\n page_referrer: document.referrer,\n page_hostname: document.location.host,\n ul: this.page.culture?.toLowerCase(),\n session_id: this.getSessionValue(trackingData.configtrackingAPIData.gA4['SessionId']), // sesssion_id,\n category_event: 'registration_api - ' + trackingData.RegistrationType, // {registration type e.g.conversational_registration}\n label_event: this.getPageName()?.toLowerCase(),\n action_event: 'success',\n test_abtest: this.getCookieValue('gvc_expt'),\n registration_progress: 100,\n registration_source: trackingData.socaialreg,\n registration_type: trackingData.RegistrationType,\n clean_page_URL: document.location.origin + document.location.pathname,\n custom_timestamp: new Date().getTime() * 1000,\n page_name: '/registration_success',\n page_site_section: 'registration',\n // page_fe: this.getChannel(),\n },\n },\n ],\n };\n const body = JSON.stringify(data);\n return { params, body };\n }\n //--API Tacking End\n changeArrayAsTracking(array: TrackingEvent[]) {\n const resultArray: any[] = [];\n array.map((s: TrackingEvent) => {\n resultArray.push({\n 'component.CategoryEvent': IsNullOrEmpty(s.CategoryEvent) ? 'not applicable' : s.CategoryEvent,\n 'component.LabelEvent': IsNullOrEmpty(s.LabelEvent) ? 'not applicable' : s.LabelEvent,\n 'component.ActionEvent': IsNullOrEmpty(s.ActionEvent) ? 'not applicable' : s.ActionEvent,\n 'component.PositionEvent': IsNullOrEmpty(s.PositionEvent) ? 'not applicable' : s.PositionEvent,\n 'component.LocationEvent': IsNullOrEmpty(s.LocationEvent) ? 'not applicable' : s.LocationEvent,\n 'component.EventDetails': IsNullOrEmpty(s.EventDetails) ? 'not applicable' : s.EventDetails,\n 'component.value': IsNullOrEmpty(s.Value) ? 'not applicable' : s.Value,\n 'component.Product': IsNullOrEmpty(s.Product) ? 'not applicable' : s.Product,\n });\n });\n return resultArray as any;\n }\n trackingEventsZendeskService(actionEvent: string, eventDetails: string) {\n this.trackEvents({\n CategoryEvent: 'hcc',\n LabelEvent: 'livechat',\n ActionEvent: actionEvent,\n EventDetails: eventDetails,\n });\n }\n\n trackingDomicileControlEvents(\n actionEvent: string,\n locationEvent: string,\n registrationType: string,\n positionEvent?: string,\n categoryEvent?: string,\n labelEvent?: string,\n eventDetails?: string,\n ) {\n const trackingEvents: TrackingEvent = {\n CategoryEvent: categoryEvent ? categoryEvent : 'registration process',\n LabelEvent: labelEvent ? labelEvent : 'registration field tracking',\n UrlClicked: 'not applicable',\n PositionEvent: positionEvent ? positionEvent : 'not applicable',\n EventDetails: eventDetails ? eventDetails : 'domicile address',\n ActionEvent: actionEvent,\n LocationEvent: locationEvent,\n RegistrationType: registrationType ? registrationType : null,\n };\n this.trackEvents(trackingEvents, '', '');\n }\n}\n\nfunction IsNullOrEmpty(value: any): boolean {\n return value == null || value.length === 0 || value == '' || value == undefined;\n}\n\nfunction IsNotEmptyObject(valueObject: any): boolean {\n return Object.keys(valueObject).length !== 0;\n}\n\ninterface ValueTrackingEvents {\n 'component.value': string | number | null | undefined;\n 'component.Product'?: string | number | null | undefined;\n // Add more properties as needed\n}\n"],"names":["TrackingEvent","EventNameConst","HelpAndContact","Tracking","Value","ContentView","AccountOptions","TrackingConstants","COMPONENT_CATEGORY_EVENT","COMPONENT_LABEL_EVENT","COMPONENT_ACTION_EVENT","COMPONENT_POSITION_EVENT","COMPONENT_LOCATION_EVENT","COMPONENT_EVENT_DETAILS","COMPONENT_URL_CLICKED","TrackingConstantsV2","CATEGORY_EVENT","LABEL_EVENT","ACTION_EVENT","POSITION_EVENT","LOCATION_EVENT","EVENT_DETAILS","URL_CLICKED","FieldEvent","PortalTrackingService","constructor","trackingService","nativeAppService","page","user","appInfoConfig","device","windowRef","triggerTrackingEvent","trackingEvents","trackEvents","reportErrorObject","errorDetail","siteSection","EventName","overrideEvents","siteSectionEvent","IsNullOrEmpty","CategoryEvent","LabelEvent","ActionEvent","PositionEvent","LocationEvent","EventDetails","UrlClicked","eventTrackingEvents","__spreadValues","valueTrackingEvents","Product","AffordabilityJourney","journeyTrackingEvent","n","AffAgeGroups","affAgeGroupEvent","AffordabilityGroups","affordabilityGroupsEvent","AffLimitType","affLimitTypeEvent","flowName","RegistrationType","registrationTypeTrackingEvent","offerId","offerIdTrackingEvent","ContentPosition","ContentPositionTrackingEvent","RegistrationSourcePath","Progress","Object","keys","map","key","overriddenKey","__spreadProps","HccCategory","HccArticle","LimitDetails","limitDetailsEvent","UserAccountId","userAccountIdTrackingEvent","type","userLogoutTrackingEvent","expiryflow","IsNotEmptyObject","triggerEvent","trackEventsWithoutVariables","categoryTrackingEvent","labelTrackingEvent","actionTrackingEvent","positionTrackingEvent","locationTrackingEvent","eventTrackingEvent","affordabilitygroupData","toLocaleLowerCase","trackLegacyEvents","eventName","SiteSection","PageName","trackArrayOfEvents","setLimits","trackingDynamicService","prefix","verificationStatus","undefined","daysLeft","attempts","screenName","attemptCountLeft","messages","replace","getClientID","nativeWindow","getAll","get","cookie","document","split","find","x","includes","length","getGaParameter","gaparm","toString","getPageName","window","location","pathname","lang","toLowerCase","getCookieValue","name","getSessionValue","sessionId","sessionValue","match","trackAPI","url","params","body","__async","xhr","XMLHttpRequest","open","URLSearchParams","send","trackRemote","trackingData","configtrackingAPIData","endPoint","payload","getGA4Payload","getChannel","channelID","isNative","applicationName","isMobile","measurement_id","gA4","api_secret","data","client_id","timestamp_micros","Date","getTime","user_id","accountID","user_properties","base_currency","value","currency","prof_country","country","appinfo","channel","prof_customerid","prof_loggedin","page_fe","events","ua","navigator","userAgent","user_agent","page_title","title","page_location","URL","page_referrer","referrer","page_hostname","host","ul","culture","session_id","category_event","label_event","action_event","test_abtest","registration_progress","registration_source","socaialreg","registration_type","clean_page_URL","origin","custom_timestamp","page_name","page_site_section","JSON","stringify","changeArrayAsTracking","array","resultArray","s","push","trackingEventsZendeskService","actionEvent","eventDetails","trackingDomicileControlEvents","locationEvent","registrationType","positionEvent","categoryEvent","labelEvent","ɵɵinject","TrackingService","NativeAppService","Page","UserService","AppInfoConfig","DeviceService","WindowRef","factory","ɵfac","providedIn","_PortalTrackingService","valueObject"],"mappings":"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"}