{"version":3,"file":"chunk-hwsc85av.js","sources":["packages/sports/web/app/src/banner/cross-sale-tracking.model.ts","packages/sports/web/app/src/banner/banner-tracking.service.ts","packages/sports/web/app/src/banner/banner.model.ts"],"sourcesContent":["export enum CrossSaleTracking {\n CrossSellCategoryEvent = 'X - Sell',\n CrossSellClick = 'Cross Sell - Click',\n SeeAllClick = 'See All - Click',\n\n Virtuals = 'Virtuals',\n VirtualGames = 'Virtual Games',\n Casino = 'Casino',\n\n Vyml = 'Virtuals You Might Like',\n LinkBanner = 'Link Banner',\n Gyml = 'Games You Might Like',\n JackpotBanner = 'Jackpot Banner',\n\n TopPage = 'Top Page',\n MidPage = 'Mid Page',\n BottomPage = 'Bottom Page',\n\n Fralis = 'Fralis',\n\n GameSectionGyml = 'sports/GamesYouMightLike',\n GameSectionLinkBanner = 'sports/LinkBanner',\n GameSectionJackpotBanner = 'sports/JackpotBanner',\n GameSectionVyml = 'sports/VirtualsYouMightLike',\n GameSectionOnDemand = 'sports/OnDemand',\n}\n","import { Injectable, Optional } from '@angular/core';\n\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\nimport { EsportTrackingValues, NOT_APPLICABLE, TrackCrossSaleData, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { isNil } from 'lodash-es';\n\nimport { ModularConfigAccessorService } from '../widget/core/modular-config-accessor.service';\nimport { BannerTrackingModel, GymlTrackingModel, VymlTrackingModel } from './banner.model';\nimport { CrossSaleTracking } from './cross-sale-tracking.model';\n\n@Injectable({ providedIn: 'root' })\nexport class BannerTrackingService {\n constructor(\n private trackingService: TrackingService,\n @Optional() private configAccessor: ModularConfigAccessorService | null,\n ) {}\n\n clearBannerTracking(): void {\n this.trackingService.update({\n [trackingConstants.PAGE_DISPLAYED_ELEMENT]: '',\n [trackingConstants.PAGE_REFERRING_ACTION]: '',\n });\n }\n\n trackEsportBanner(isCloseEvent: boolean): void {\n this.trackingService.track(isCloseEvent ? trackingConstants.EVENT_TRACKING : trackingConstants.EVENT_CONTENT_VIEW, {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Sports Teaser Banners',\n [trackingConstants.COMPONENT_LABEL_EVENT]: EsportTrackingValues.Esports,\n [trackingConstants.COMPONENT_ACTION_EVENT]: isCloseEvent ? 'close' : 'load',\n [trackingConstants.COMPONENT_POSITION_EVENT]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: this.configAccessor?.getPage() ?? NOT_APPLICABLE,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: EsportTrackingValues.BannerMessage,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n });\n }\n\n trackGymlLaunch(trackingParams: GymlTrackingModel): void {\n this.trackingService.track(trackingConstants.EVENT_GAME_OPEN, {\n [trackingConstants.COMPONENT_GAME_SECTION]: CrossSaleTracking.GameSectionGyml,\n [trackingConstants.COMPONENT_GAME_POSITION]: trackingParams.index,\n [trackingConstants.COMPONENT_GAME_NAME]: trackingParams.name,\n [trackingConstants.COMPONENT_GAME_TYPE]: trackingParams.provider,\n [trackingConstants.COMPONENT_GAME_DISPLAY_NAME]: trackingParams.displayName,\n [trackingConstants.COMPONENT_CONTENT_POSITION]: trackingParams.index?.toString() ?? NOT_APPLICABLE,\n });\n\n this.trackCrossSell({\n crossSellProduct: CrossSaleTracking.Casino,\n lobbyPosition: this.getLobbyPosition(trackingParams.lobbyPosition, trackingParams.pageName),\n gameName: trackingParams.name,\n url: trackingParams.url,\n crossSellName: CrossSaleTracking.Gyml,\n crossSellActionEvent: CrossSaleTracking.CrossSellClick,\n index: trackingParams.index,\n });\n }\n\n trackGymlSeeAllCrossSell(lobbyPosition: string, url: string): void {\n this.trackCrossSell({\n crossSellProduct: CrossSaleTracking.Casino,\n lobbyPosition: this.getLobbyPosition(lobbyPosition, ''),\n gameName: '',\n url,\n crossSellName: CrossSaleTracking.Gyml,\n crossSellActionEvent: CrossSaleTracking.SeeAllClick,\n });\n }\n\n trackLinkGameLaunch(name: string): void {\n this.trackingService.track(trackingConstants.EVENT_GAME_OPEN, {\n [trackingConstants.COMPONENT_GAME_SECTION]: CrossSaleTracking.GameSectionLinkBanner,\n [trackingConstants.COMPONENT_GAME_NAME]: name,\n });\n }\n\n trackJackpotGameLaunch(name: string): void {\n this.trackingService.track(trackingConstants.EVENT_GAME_OPEN, {\n [trackingConstants.COMPONENT_GAME_SECTION]: CrossSaleTracking.GameSectionJackpotBanner,\n [trackingConstants.COMPONENT_GAME_NAME]: name,\n });\n }\n\n trackBannerClickCrossSell(name: string, lobbyPosition: string, url: string): void {\n this.trackCrossSell({\n crossSellProduct: CrossSaleTracking.Casino,\n lobbyPosition: this.getLobbyPosition(lobbyPosition, ''),\n gameName: name,\n url,\n crossSellName: CrossSaleTracking.JackpotBanner,\n crossSellActionEvent: CrossSaleTracking.CrossSellClick,\n });\n }\n\n trackVymlLaunch(trackingParams: VymlTrackingModel): void {\n const tracking: Record = {\n [trackingConstants.COMPONENT_GAME_NAME]: trackingParams.name,\n [trackingConstants.COMPONENT_GAME_POSITION]: trackingParams.index,\n [trackingConstants.COMPONENT_GAME_SECTION]: trackingParams.section,\n [trackingConstants.COMPONENT_GAME_DISPLAY_NAME]: trackingParams.displayName,\n [trackingConstants.COMPONENT_GAME_TYPE]: CrossSaleTracking.Fralis,\n [trackingConstants.COMPONENT_CONTENT_POSITION]: trackingParams.index?.toString() ?? NOT_APPLICABLE,\n };\n\n if (trackingParams.section === CrossSaleTracking.GameSectionOnDemand) {\n tracking[trackingConstants.COMPONENT_GAME_GRID_POSITION] = NOT_APPLICABLE;\n tracking[trackingConstants.COMPONENT_GAME_STATUS] = NOT_APPLICABLE;\n tracking[trackingConstants.COMPONENT_GAME_CONTAINER_LOCATION] = NOT_APPLICABLE;\n tracking[trackingConstants.COMPONENT_GAME_CONTAINER_DESCRIPTION] = NOT_APPLICABLE;\n tracking[trackingConstants.COMPONENT_GAME_FAVOURITE] = NOT_APPLICABLE;\n tracking[trackingConstants.COMPONENT_GAME_PLAYING_STATUS] = NOT_APPLICABLE;\n tracking[trackingConstants.COMPONENT_CATEGORY_TYPE] = CrossSaleTracking.Virtuals;\n tracking[trackingConstants.COMPONENT_CATEGORY_SUB_TYPE] = CrossSaleTracking.VirtualGames;\n }\n\n this.trackingService.track(trackingConstants.EVENT_VIRTUAL_OPEN, tracking);\n\n if (trackingParams.section === CrossSaleTracking.GameSectionVyml) {\n this.trackCrossSell({\n crossSellProduct: CrossSaleTracking.Virtuals,\n lobbyPosition: this.getLobbyPosition(trackingParams.lobbyPosition, trackingParams.pageName),\n gameName: trackingParams.displayName,\n url: trackingParams.url,\n crossSellName: CrossSaleTracking.Vyml,\n crossSellActionEvent: CrossSaleTracking.CrossSellClick,\n index: trackingParams.index,\n });\n }\n }\n\n private trackCrossSell(trackingModel: BannerTrackingModel): void {\n const crossSaleData: TrackCrossSaleData & { [trackingConstants.COMPONENT_CONTENT_POSITION]: string | undefined } = {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: CrossSaleTracking.CrossSellCategoryEvent,\n [trackingConstants.COMPONENT_LABEL_EVENT]: trackingModel.crossSellProduct,\n [trackingConstants.COMPONENT_ACTION_EVENT]: trackingModel.crossSellActionEvent,\n [trackingConstants.COMPONENT_POSITION_EVENT]: trackingModel.lobbyPosition,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: trackingModel.crossSellName,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: trackingModel.gameName,\n [trackingConstants.COMPONENT_URL_CLICKED]: trackingModel.url,\n } as TrackCrossSaleData & { [trackingConstants.COMPONENT_CONTENT_POSITION]: string | undefined };\n\n if (!isNil(trackingModel.index)) {\n crossSaleData[trackingConstants.COMPONENT_CONTENT_POSITION] = trackingModel.index.toString();\n }\n\n this.trackingService.track(trackingConstants.EVENT_CLICKS, crossSaleData);\n }\n\n private getLobbyPosition(position: string, pageName: string): string {\n if (pageName === RouteTag.LiveSport) {\n return CrossSaleTracking.MidPage;\n }\n\n if (pageName === RouteTag.SportList || pageName === RouteTag.Horses) {\n return CrossSaleTracking.BottomPage;\n }\n\n switch (position) {\n case 'LobbyTopBanner':\n return CrossSaleTracking.TopPage;\n case 'LobbyMiddleBanner':\n return CrossSaleTracking.MidPage;\n case 'LobbyBottomBanner':\n return CrossSaleTracking.BottomPage;\n case NOT_APPLICABLE:\n return NOT_APPLICABLE;\n default:\n return '';\n }\n }\n}\n","import {\n BannerType,\n BannerViewModel,\n EsportsBannerViewModel,\n SportsGamesBannerViewModel,\n SportsJackpotBannerViewModel,\n SportsLinkBannerViewModel,\n VirtualSportsBannerViewModel,\n} from '@frontend/sports/types/components/banners/models';\nimport { VymlGame } from '@frontend/sports/types/components/banners/vyml';\n\nimport { CrossSaleTracking } from './cross-sale-tracking.model';\n\nexport enum ChannelIds {\n Android = 'AW',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n IOS = 'IW',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n WC = 'WC',\n}\n\nexport interface TickModel {\n isDigit?: boolean;\n isCurrency?: boolean;\n isSeparator?: boolean;\n currency?: string;\n digit?: number;\n separator?: string;\n}\n\nexport interface JackpotValues {\n [jackpotGroup: string]: number;\n}\n\nexport abstract class JackpotEvent {}\n\nexport class JackpotIncrementEvent extends JackpotEvent {\n constructor(public incrementBy: number) {\n super();\n }\n}\n\nexport interface VymlGamesModel extends VymlGame {\n tilePosition: number;\n}\n\nexport class JackpotRefreshEvent extends JackpotEvent {\n constructor(public newValues: JackpotValues) {\n super();\n }\n}\n\nexport interface BannerTrackingModel {\n crossSellProduct: string;\n lobbyPosition: string;\n crossSellName: string;\n gameName: string;\n url: string;\n crossSellActionEvent: string;\n index?: number;\n}\n\nexport interface GameTrackingModel {\n name: string;\n index: number;\n displayName: string;\n lobbyPosition: string;\n pageName: string;\n url: string;\n}\n\nexport interface VymlTrackingModel extends GameTrackingModel {\n section: CrossSaleTracking;\n}\n\nexport interface GymlTrackingModel extends GameTrackingModel {\n provider: string;\n}\n\nexport enum KycStatus {\n Default = 0,\n Verified = 1,\n NonVerified = 2,\n}\n\nexport function ofType(model: BannerViewModel, type: 'CasinoLink' | 'SportLink'): model is SportsLinkBannerViewModel;\nexport function ofType(model: BannerViewModel, type: 'Esport'): model is EsportsBannerViewModel;\nexport function ofType(model: BannerViewModel, type: 'Games'): model is SportsGamesBannerViewModel;\nexport function ofType(model: BannerViewModel, type: 'Jackpot'): model is SportsJackpotBannerViewModel;\nexport function ofType(model: BannerViewModel, type: 'Vyml'): model is VirtualSportsBannerViewModel;\nexport function ofType(model: BannerViewModel, type: `${BannerType}`) {\n return model.type === type;\n}\n"],"names":["CrossSaleTracking","BannerTrackingService","constructor","trackingService","configAccessor","clearBannerTracking","update","trackingConstants","PAGE_DISPLAYED_ELEMENT","PAGE_REFERRING_ACTION","trackEsportBanner","isCloseEvent","_a","track","EVENT_TRACKING","EVENT_CONTENT_VIEW","COMPONENT_CATEGORY_EVENT","COMPONENT_LABEL_EVENT","EsportTrackingValues","Esports","COMPONENT_ACTION_EVENT","COMPONENT_POSITION_EVENT","NOT_APPLICABLE","COMPONENT_LOCATION_EVENT","getPage","COMPONENT_EVENT_DETAILS","BannerMessage","COMPONENT_URL_CLICKED","trackGymlLaunch","trackingParams","EVENT_GAME_OPEN","COMPONENT_GAME_SECTION","GameSectionGyml","COMPONENT_GAME_POSITION","index","COMPONENT_GAME_NAME","name","COMPONENT_GAME_TYPE","provider","COMPONENT_GAME_DISPLAY_NAME","displayName","COMPONENT_CONTENT_POSITION","toString","trackCrossSell","crossSellProduct","Casino","lobbyPosition","getLobbyPosition","pageName","gameName","url","crossSellName","Gyml","crossSellActionEvent","CrossSellClick","trackGymlSeeAllCrossSell","SeeAllClick","trackLinkGameLaunch","GameSectionLinkBanner","trackJackpotGameLaunch","GameSectionJackpotBanner","trackBannerClickCrossSell","JackpotBanner","trackVymlLaunch","tracking","section","Fralis","GameSectionOnDemand","COMPONENT_GAME_GRID_POSITION","COMPONENT_GAME_STATUS","COMPONENT_GAME_CONTAINER_LOCATION","COMPONENT_GAME_CONTAINER_DESCRIPTION","COMPONENT_GAME_FAVOURITE","COMPONENT_GAME_PLAYING_STATUS","COMPONENT_CATEGORY_TYPE","Virtuals","COMPONENT_CATEGORY_SUB_TYPE","VirtualGames","EVENT_VIRTUAL_OPEN","GameSectionVyml","Vyml","trackingModel","crossSaleData","CrossSellCategoryEvent","isNil","EVENT_CLICKS","position","RouteTag","LiveSport","MidPage","SportList","Horses","BottomPage","TopPage","O","ɵɵinject","TrackingService","ModularConfigAccessorService","factory","ɵfac","providedIn","_BannerTrackingService","ChannelIds","JackpotEvent","JackpotIncrementEvent","incrementBy","JackpotRefreshEvent","newValues","KycStatus","ofType","model","type"],"mappings":"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"}