{"version":3,"file":"chunk-j4vzxibu.js","sources":["packages/sports/web/app/src/banner/banner-tick.component.ts","packages/sports/web/app/src/banner/banner-tick.html","packages/sports/web/app/src/banner/jackpot.service.ts","packages/sports/web/app/src/banner/banner-jackpot.html","packages/sports/web/app/src/banner/banner-jackpot.component.ts"],"sourcesContent":["import { Component, ElementRef, Input, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'ms-banner-tick',\n templateUrl: 'banner-tick.html',\n standalone: true,\n})\nexport class BannerTickComponent implements OnChanges, OnInit {\n @Input() model: number;\n value: number;\n newValue: number;\n private classList = ['animate', 'new-tick', 'old-tick'];\n @ViewChild('numberClone', { static: true }) numberClone: ElementRef;\n @ViewChild('number', { static: true }) number: ElementRef;\n private container1: any;\n private container2: any;\n\n ngOnInit(): void {\n this.container1 = this.number.nativeElement;\n this.container2 = this.numberClone.nativeElement;\n\n this.animate();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const change = changes['model'];\n\n if (!change) {\n return;\n }\n\n this.newValue = change.currentValue;\n\n if (change.firstChange) {\n return;\n }\n\n this.animate();\n }\n\n private animate(): void {\n if (this.value !== this.newValue) {\n this.animateCounterPart();\n this.value = this.newValue;\n }\n }\n\n private animateCounterPart(): void {\n this.removeClasses(this.container1, this.classList);\n this.removeClasses(this.container2, this.classList);\n\n this.container1.innerHTML = this.newValue.toString();\n this.container1.classList.add('new-tick');\n\n this.container2.classList.add('old-tick');\n this.container2.classList.add('animate');\n\n const t = this.container1;\n this.container1 = this.container2;\n this.container2 = t;\n }\n\n private removeClasses(element: Element, classes: string[]): void {\n for (const _class of classes) {\n element.classList.remove(_class);\n }\n }\n}\n","
\n
\n\n
\n
\n","import { DestroyRef, Injectable, NgZone, OnDestroy } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { BannersConfig } from '@frontend/sports/common/client-config-data-access';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { StringDictionary } from '@frontend/sports/common/core/utils/extended-types';\nimport { TickerInterval, TickerService } from '@frontend/sports/common/core/utils/timer';\nimport { fromSportsEnter, fromSportsLeave } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { isEmpty } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { windowCount } from 'rxjs/operators';\n\nimport { JackpotEvent, JackpotIncrementEvent, JackpotRefreshEvent } from './banner.model';\nimport { BannersService } from './banners.service';\n\n@Injectable({ providedIn: 'root' })\nexport class JackpotService implements OnDestroy {\n private eventsSubject = new Subject();\n private tick = new Subject();\n\n readonly events = this.eventsSubject.asObservable();\n jackpotGroups: StringDictionary = {};\n\n private readonly logger: SportsRemoteLogger;\n\n constructor(\n private bannersService: BannersService,\n private bannerConfig: BannersConfig,\n private timer: TickerService,\n loggerFactory: LoggerFactory,\n private zone: NgZone,\n destroyRef: DestroyRef,\n ) {\n this.initTimer();\n fromSportsEnter()\n .pipe(takeUntilDestroyed(destroyRef))\n .subscribe(() => this.initTimer());\n fromSportsLeave()\n .pipe(takeUntilDestroyed(destroyRef))\n .subscribe(() => this.deInitTimer());\n\n this.logger = loggerFactory.getLogger('JackpotService');\n }\n\n private initTimer() {\n this.deInitTimer();\n\n this.timer.subscribe({ id: 'jackpotBanner', onTick: () => this.tick.next(), interval: TickerInterval.Second });\n\n this.tick.pipe(windowCount(this.bannerConfig.jackpot.incrementTime)).subscribe(this.onIncrement);\n this.tick.pipe(windowCount(this.bannerConfig.jackpot.refreshTime)).subscribe(this.onRefresh);\n }\n\n private deInitTimer() {\n this.timer.unsubscribe('jackpotBanner');\n }\n\n private onRefresh = async () => {\n const jackpots = Object.keys(this.jackpotGroups);\n if (!jackpots.length) {\n return;\n }\n\n try {\n const response = await this.bannersService.getJackpotValues(jackpots);\n this.zone.run(() => this.eventsSubject.next(new JackpotRefreshEvent(response.values)));\n } catch (error) {\n this.logger.error(error, 'Failed to get jackpot values.');\n }\n };\n\n private onIncrement = () => {\n if (isEmpty(this.jackpotGroups)) {\n return;\n }\n\n this.zone.run(() => this.eventsSubject.next(new JackpotIncrementEvent(this.bannerConfig.jackpot.incrementValue)));\n };\n\n ngOnDestroy(): void {\n this.deInitTimer();\n }\n\n registerGroup(jackpotGroup: string): void {\n if (this.jackpotGroups[jackpotGroup] === undefined) {\n this.jackpotGroups[jackpotGroup] = 1;\n } else {\n this.jackpotGroups[jackpotGroup]++;\n }\n }\n\n unregisterGroup(jackpotGroup: string): void {\n if (this.jackpotGroups[jackpotGroup] === 1) {\n delete this.jackpotGroups[jackpotGroup];\n } else {\n this.jackpotGroups[jackpotGroup]--;\n }\n }\n}\n","\n \n
\n
{{ model.title }}
\n
{{ model.subtitle }}
\n
\n \n
{{ character.currency }}
\n
{{ character.separator }}
\n \n
\n
\n \n
\n
\n","import { AsyncPipe, NgClass, NgFor, NgIf, NgOptimizedImage, getCurrencySymbol } from '@angular/common';\nimport { Component, DestroyRef, EventEmitter, HostBinding, Input, OnChanges, OnDestroy, OnInit, Output, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { MoneyService } from '@frontend/sports/common/core/feature/money';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { SportsJackpotBannerViewModel } from '@frontend/sports/types/components/banners/models';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { NativeAppService } from '@frontend/vanilla/core';\nimport { Observable } from 'rxjs';\n\nimport { ArcRestrictionService } from '../arc/arc-restriction.service';\nimport { RedirectHelperService } from '../navigation-core/redirect-helper.service';\nimport { UrlHelperService } from '../navigation-core/url-helper.service';\nimport { BannerTickComponent } from './banner-tick.component';\nimport { BannerTrackingService } from './banner-tracking.service';\nimport { JackpotEvent, JackpotIncrementEvent, JackpotRefreshEvent, TickModel } from './banner.model';\nimport { JackpotService } from './jackpot.service';\n\n@Component({\n selector: 'ms-banner-jackpot',\n templateUrl: 'banner-jackpot.html',\n standalone: true,\n imports: [NgIf, NgOptimizedImage, NgFor, NgClass, BannerTickComponent, AsyncPipe],\n})\nexport class BannerJackpotComponent implements OnInit, OnDestroy, OnChanges {\n @Input() model: SportsJackpotBannerViewModel;\n @Input() position = '';\n @Input() listIndex: number;\n @Output() bannerDataLoaded = new EventEmitter();\n @HostBinding('class') className = 'banner-jackpot';\n\n link: string;\n characters: TickModel[] = [];\n backgroundImage?: string;\n private value: number;\n hideGamingCrossSellByArc$: Observable;\n private readonly destroyRef = inject(DestroyRef);\n constructor(\n private jackpotService: JackpotService,\n private userService: UserService,\n private currency: MoneyService,\n private trackingService: BannerTrackingService,\n private urlHelper: UrlHelperService,\n private nativeAppService: NativeAppService,\n private redirectHelper: RedirectHelperService,\n private arcRestrictionService: ArcRestrictionService,\n ) {\n this.hideGamingCrossSellByArc$ = this.arcRestrictionService.gamingCrossSellEnabled$;\n }\n\n ngOnChanges(changes: ISimpleChanges): void {\n if (changes.model?.currentValue.value) {\n this.update(changes.model.currentValue.value);\n }\n }\n\n ngOnInit(): void {\n this.jackpotService.events.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.onEvent);\n if (this.model.jackpotGroup) {\n this.jackpotService.registerGroup(this.model.jackpotGroup);\n }\n }\n\n ngOnDestroy(): void {\n if (this.model.jackpotGroup) {\n this.jackpotService.unregisterGroup(this.model.jackpotGroup);\n }\n }\n\n trackByFn(index: any, item: any): string {\n return index;\n }\n\n onJackpotBannerClick(): void {\n if (this.model.title) {\n this.trackingService.trackBannerClickCrossSell(this.model.title, this.position, this.link);\n }\n\n this.redirectHelper.goToPage(this.link);\n }\n\n private onEvent = (event: JackpotEvent) => {\n let newValue: number | undefined;\n\n if (event instanceof JackpotIncrementEvent) {\n newValue = event.incrementBy ? this.value + event.incrementBy : undefined;\n } else if (event instanceof JackpotRefreshEvent && this.model.jackpotGroup) {\n newValue = event.newValues[this.model.jackpotGroup];\n }\n\n if (newValue !== undefined) {\n this.update(newValue);\n }\n };\n\n private update = (value: number) => {\n this.value = value;\n\n const formattedValue = this.currency.transform(value);\n\n if (!formattedValue) {\n this.bannerDataLoaded.emit(false);\n\n return;\n }\n\n const currencySymbol = getCurrencySymbol(this.userService.currency, 'narrow');\n\n this.link = this.getBannerLink();\n this.characters = this.createModel(formattedValue, currencySymbol);\n this.backgroundImage = this.model.background;\n this.bannerDataLoaded.emit(true);\n };\n\n private createModel(formattedValue: string, currencySymbol: string): TickModel[] {\n const characters: TickModel[] = currencySymbol.split('').map((character) => ({ isCurrency: true, currency: character }));\n\n formattedValue.split('').forEach((character) => {\n if (this.isNumber(character)) {\n characters.push({ isDigit: true, digit: parseInt(character) });\n } else {\n characters.push({ isSeparator: true, separator: character });\n }\n });\n\n return characters;\n }\n\n private getBannerLink(): string {\n const href = this.model.link?.href;\n\n if (!href) {\n return '#';\n }\n\n if (href.startsWith('/')) {\n return this.urlHelper.getUrl(href);\n }\n\n if (this.model.link) {\n this.model.link.target = this.nativeAppService.isNative ? '_self' : this.model.link.target || '_self';\n }\n\n return href;\n }\n\n private isNumber(character: string): boolean {\n return '0123456789'.indexOf(character) !== -1;\n }\n}\n"],"names":["BannerTickComponent","constructor","classList","ngOnInit","container1","number","nativeElement","container2","numberClone","animate","ngOnChanges","changes","change","newValue","currentValue","firstChange","value","animateCounterPart","removeClasses","innerHTML","toString","add","t","element","classes","_class","remove","j","selectors","viewQuery","rf","ctx","D","J","G","I","B","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","_BannerTickComponent","JackpotService","bannersService","bannerConfig","timer","loggerFactory","zone","destroyRef","eventsSubject","Subject","tick","events","asObservable","jackpotGroups","onRefresh","__async","jackpots","Object","keys","length","response","getJackpotValues","run","next","JackpotRefreshEvent","values","error","logger","onIncrement","isEmpty","JackpotIncrementEvent","jackpot","incrementValue","initTimer","fromSportsEnter","pipe","takeUntilDestroyed","subscribe","fromSportsLeave","deInitTimer","getLogger","id","onTick","interval","TickerInterval","Second","windowCount","incrementTime","refreshTime","unsubscribe","ngOnDestroy","registerGroup","jackpotGroup","undefined","unregisterGroup","ɵɵinject","BannersService","BannersConfig","TickerService","LoggerFactory","NgZone","DestroyRef","factory","ɵfac","providedIn","_JackpotService","ɵɵproperty","ctx_r1","model","background","listIndex","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate","character_r3","currency","u","separator","digit","ɵɵtemplate","BannerJackpotComponent_a_0_div_8_div_1_Template","BannerJackpotComponent_a_0_div_8_div_2_Template","BannerJackpotComponent_a_0_div_8_ms_banner_tick_3_Template","ɵɵpureFunction2","_c0","isCurrency","isSeparator","isDigit","icon","ɵɵlistener","ɵɵrestoreView","_r1","ɵɵnextContext","ɵɵresetView","onJackpotBannerClick","BannerJackpotComponent_a_0_img_1_Template","BannerJackpotComponent_a_0_div_8_Template","BannerJackpotComponent_a_0_img_10_Template","title","subtitle","characters","trackByFn","BannerJackpotComponent","jackpotService","userService","trackingService","urlHelper","nativeAppService","redirectHelper","arcRestrictionService","position","bannerDataLoaded","EventEmitter","className","inject","onEvent","event","incrementBy","newValues","update","formattedValue","transform","emit","currencySymbol","getCurrencySymbol","link","getBannerLink","createModel","backgroundImage","hideGamingCrossSellByArc$","gamingCrossSellEnabled$","_a","index","item","trackBannerClickCrossSell","goToPage","split","map","character","forEach","isNumber","push","parseInt","href","startsWith","getUrl","target","isNative","indexOf","ɵɵdirectiveInject","UserService","MoneyService","BannerTrackingService","UrlHelperService","NativeAppService","RedirectHelperService","ArcRestrictionService","hostVars","hostBindings","ɵɵclassMap","BannerJackpotComponent_a_0_Template","ɵɵpipeBind1","NgIf","NgOptimizedImage","NgFor","NgClass","AsyncPipe","encapsulation","_BannerJackpotComponent"],"mappings":"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"}