{"version":3,"file":"chunk-cvpgwy3p.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, map, of } from 'rxjs';\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 private readonly _window = inject(WINDOW);\n}\n"],"names":["VymlService","constructor","user","bannerConfig","bannerService","device","trackingService","redirectService","cacheFactory","_window","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","blackListedCountries","some","currentCountry","toUpperCase","ɵɵinject","UserService","BannersConfig","BannersService","DeviceService","BannerTrackingService","RedirectHelperService","ExpiringCacheFactory","factory","ɵfac","providedIn","_VymlService"],"mappings":"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"}