{"version":3,"file":"chunk-b0k1i1y1.js","sources":["packages/sports/web/app/src/banner/vyml.service.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\n\nimport { BannersConfig } from '@frontend/sports/common/client-config-data-access';\nimport { ExpiringCache, ExpiringCacheFactory } from '@frontend/sports/common/core/utils/expiring-cache';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { DeviceService, WINDOW } from '@frontend/vanilla/core';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { RedirectHelperService } from '../navigation-core/redirect-helper.service';\nimport { BannerTrackingService } from './banner-tracking.service';\nimport { VymlGamesModel } from './banner.model';\nimport { BannersService } from './banners.service';\nimport { CrossSaleTracking } from './cross-sale-tracking.model';\n\n@Injectable({ providedIn: 'root' })\nexport class VymlService {\n private cache: ExpiringCache;\n\n constructor(\n private user: UserService,\n private bannerConfig: BannersConfig,\n private bannerService: BannersService,\n private device: DeviceService,\n private trackingService: BannerTrackingService,\n private redirectService: RedirectHelperService,\n cacheFactory: ExpiringCacheFactory,\n ) {\n this.cache = cacheFactory.create(this.bannerConfig.virtuals.cachingTimeout);\n }\n\n isEnabled(): boolean {\n const userCountry = this.user.isAuthenticated ? this.user.country : this.user.geoCountry;\n\n return !this.isBlacklistedCountry(userCountry);\n }\n\n get(imageSize: number = 200): Observable {\n if (!this.isEnabled()) {\n return of([]);\n }\n\n return this.cache.getOrCreate('games', this.bannerService.getVirtualSportsforVyml()).pipe(\n map((games) =>\n games.map((game, index) => ({\n ...game,\n tilePosition: index,\n imageSrc: game.imageSrc.includes('?') ? `${game.imageSrc}&w=${imageSize}` : `${game.imageSrc}?w=${imageSize}`,\n })),\n ),\n );\n }\n\n open(\n game: VymlGamesModel,\n section: CrossSaleTracking.GameSectionOnDemand | CrossSaleTracking.GameSectionVyml,\n tracking: { position: string; pageName: string } = { position: '', pageName: '' },\n ): void {\n if (!this.user.isAuthenticated) {\n this.redirectService.goToLogin({ appendReferrer: true });\n\n return;\n }\n\n this.trackingService.trackVymlLaunch({\n name: game.sportName,\n index: game.tilePosition,\n displayName: game.title,\n lobbyPosition: tracking.position,\n url: game.launchUrl,\n pageName: tracking.pageName,\n section,\n });\n\n if (this.device.isMobile) {\n this.redirectService.goToPage(game.launchUrl);\n } else {\n this.#window.open(game.launchUrl, '_blank', 'width=800,height=600');\n }\n }\n\n private isBlacklistedCountry(country: string | null): boolean {\n if (!country) {\n return false;\n }\n\n return this.bannerConfig.virtuals.blackListedCountries.some((currentCountry) => currentCountry.toUpperCase() === country.toUpperCase());\n }\n\n readonly #window = inject(WINDOW);\n}\n"],"names":["VymlService","_window","constructor","user","bannerConfig","bannerService","device","trackingService","redirectService","cacheFactory","__privateAdd","inject","WINDOW","cache","create","virtuals","cachingTimeout","isEnabled","userCountry","isAuthenticated","country","geoCountry","isBlacklistedCountry","get","imageSize","getOrCreate","getVirtualSportsforVyml","pipe","map","games","game","index","__spreadProps","__spreadValues","tilePosition","imageSrc","includes","of","open","section","tracking","position","pageName","goToLogin","appendReferrer","trackVymlLaunch","name","sportName","displayName","title","lobbyPosition","url","launchUrl","isMobile","goToPage","__privateGet","blackListedCountries","some","currentCountry","toUpperCase","ɵɵinject","UserService","BannersConfig","BannersService","DeviceService","BannerTrackingService","RedirectHelperService","ExpiringCacheFactory","factory","ɵfac","providedIn","_VymlService"],"mappings":"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"}