{"version":3,"file":"chunk-lhhaz4wv.js","sources":["packages/sports/web/app/src/banner/games.service.ts"],"sourcesContent":["import { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { BannersConfig } from '@frontend/sports/common/client-config-data-access';\nimport { CookieProvider } from '@frontend/sports/common/core/utils/cookie-provider';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { AppInfoConfig, DeviceService, Page, UrlService } from '@frontend/vanilla/core';\n\nimport { ChannelIds } from './banner.model';\n\n@Injectable({ providedIn: 'root' })\nexport class GamesService {\n culturePattern = '{culture}';\n langPattern = '{lang}';\n\n constructor(\n private bannerConfig: BannersConfig,\n private urlService: UrlService,\n private page: Page,\n private userService: UserService,\n private deviceService: DeviceService,\n private appInfoConfig: AppInfoConfig,\n private cookieProvider: CookieProvider,\n ) {}\n\n getLaunchUrl(name: string): string {\n if (!this.deviceService.isMobile) {\n let url = this.bannerConfig.games.launchUrl;\n url = this.formatUrlForDesktop(url, name);\n\n return this.urlService.parse(url.toString()).absUrl();\n } else {\n let url = new HttpParams({ fromString: this.formatUrl(this.bannerConfig.games.launchUrl) + '?' });\n\n url = url.set('gameVariantName', name);\n url = url.set('langId', this.getPageCulture());\n url = url.set('invokerProduct', 'BETTING');\n url = url.set('channelId', this.deviceService.isiOS ? ChannelIds.IOS : ChannelIds.Android);\n\n if (this.bannerConfig.appendSessionKey) {\n url = url.set('ssoKey', this.userService.ssoToken === null ? '' : this.userService.ssoToken.toString());\n } else {\n url = url.set('&sessionKey={sessionKey}', '');\n this.cookieProvider.setCookie('ssoToken', this.userService.ssoToken as string, { expires: 1 });\n }\n\n url = url.set('lobbyURL', this.formatUrl(this.bannerConfig.parentUrl));\n url = url.set('keepAliveURL', this.formatUrl(this.bannerConfig.keepAliveUrl));\n url = url.set('depositURL', this.formatUrl(this.bannerConfig.depositUrl));\n url = url.set('parentUrl', this.formatUrl(this.bannerConfig.parentUrl));\n url = url.set('rgURL', this.formatUrl(this.bannerConfig.responsibleGamingUrl));\n if (this.page.homePage) {\n url = url.set('returnUrl', this.page.homePage);\n }\n url = url.set('lobbyType', this.bannerConfig.lobbyType);\n url = url.set('clickTimeStamp', this.getTimeStamp());\n\n return this.urlService.parse(url.toString()).absUrl();\n }\n }\n\n private getPageCulture(): string {\n return this.page.culture.replace('-', '_');\n }\n\n private formatUrl(url: string): string {\n const cultureRegex = new RegExp(this.culturePattern);\n const langRegex = new RegExp(this.langPattern);\n\n if (cultureRegex.test(url)) {\n url = url.replace(this.culturePattern, this.getPageCulture());\n }\n\n if (langRegex.test(url)) {\n url = url.replace(this.langPattern, this.page.lang);\n }\n\n return url;\n }\n\n private formatUrlForDesktop(url: string, name: string): string {\n url = url.replace('{SL}', this.getPageCulture());\n url = url.replace('{CASINO_GAME_NAME}', name);\n url = url.replace('{invokerProduct}', 'BETTING');\n url = url.replace('{invokerChannel}', ChannelIds.WC);\n url = url.replace('{lang}', this.getPageCulture());\n url = url.replace('{currency}', this.userService.currency);\n\n if (this.bannerConfig.appendSessionKey) {\n url = url.replace('{sessionKey}', this.userService.ssoToken as string);\n } else {\n url = url.replace('&sessionKey={sessionKey}', '');\n this.cookieProvider.setCookie('ssoToken', this.userService.ssoToken as string, { expires: 1 });\n }\n url = url.replace('{hostUrl}', this.page.homePage);\n url = url.replace('{frontend}', this.appInfoConfig.frontend);\n url = url.replace('{brand}', this.appInfoConfig.brand);\n url = url.replace('{PortalLanguage}', this.page.culture);\n url = url.replace('{clicktime}', this.getTimeStamp());\n\n return url;\n }\n\n private getTimeStamp(): string {\n return new Date().getTime().toString();\n }\n}\n"],"names":["GamesService","constructor","bannerConfig","urlService","page","userService","deviceService","appInfoConfig","cookieProvider","culturePattern","langPattern","getLaunchUrl","name","isMobile","url","HttpParams","fromString","formatUrl","games","launchUrl","set","getPageCulture","isiOS","ChannelIds","IOS","Android","appendSessionKey","ssoToken","toString","setCookie","expires","parentUrl","keepAliveUrl","depositUrl","responsibleGamingUrl","homePage","lobbyType","getTimeStamp","parse","absUrl","formatUrlForDesktop","culture","replace","cultureRegex","RegExp","langRegex","test","lang","WC","currency","frontend","brand","Date","getTime","ɵɵinject","BannersConfig","UrlService","Page","UserService","DeviceService","AppInfoConfig","CookieProvider","a","factory","ɵfac","providedIn","_GamesService"],"mappings":"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"}