{"version":3,"file":"chunk-g4xz0ikb.js","sources":["packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration-constants.ts","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration.client-config.ts","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration.service.ts","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration-bootstrap.service.ts","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration-tracking.service.ts","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration.feature.ts","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration.html","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration.component.ts","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration.guard.ts","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration.resolver.ts","packages/vanilla/lib/features/player-gaming-declaration/src/player-gaming-declaration.routes.ts"],"sourcesContent":["export const ACCEPTED_STATUS = 'Y';\nexport const NOT_ACCEPTED_STATUS = 'N';\nexport const GAMING_DECLARATION_PATH = '/gaming-declaration';\nexport const IS_POST_LOGIN = '1';\n","import { Injectable } from '@angular/core';\n\nimport {\n ClientConfigProductName,\n LazyClientConfig,\n LazyClientConfigBase,\n LazyClientConfigService,\n ViewTemplateForClient,\n} from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'vnPlayerGamingDeclaration', product: ClientConfigProductName.SF })\n@Injectable()\nexport class PlayerGamingDeclarationConfig extends LazyClientConfigBase {\n isEnabledCondition: string;\n content: ViewTemplateForClient;\n}\n\nexport function playerGamingDeclarationConfigFactory(service: LazyClientConfigService) {\n return service.get(PlayerGamingDeclarationConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { CookieName, CookieService, DslService, SharedFeaturesApiService, UserService } from '@frontend/vanilla/core';\nimport { Observable, ReplaySubject, firstValueFrom } from 'rxjs';\n\nimport { ACCEPTED_STATUS } from './player-gaming-declaration-constants';\nimport { PlayerGamingDeclarationConfig } from './player-gaming-declaration.client-config';\n\nexport interface GamingDeclaration {\n status: string;\n acceptedDate?: Date;\n}\n\n@Injectable()\nexport class PlayerGamingDeclarationService {\n private gamingDeclarationEvents = new ReplaySubject(1);\n private loaded: boolean = false;\n\n get gamingDeclaration(): Observable {\n return this.gamingDeclarationEvents;\n }\n\n constructor(\n private api: SharedFeaturesApiService,\n private user: UserService,\n private cookieService: CookieService,\n private config: PlayerGamingDeclarationConfig,\n private dslService: DslService,\n ) {}\n\n /** @internal */\n load() {\n if (this.user.isAuthenticated && !this.loaded) {\n this.loaded = true;\n this.api.get('gamingdeclaration').subscribe((gamingDeclaration: GamingDeclaration) => {\n this.gamingDeclarationEvents.next(gamingDeclaration);\n });\n }\n }\n\n accept(status: {}) {\n return this.api.post('gamingdeclaration/accept', status);\n }\n\n setCookie() {\n this.cookieService.put(CookieName.GdAccepted, ACCEPTED_STATUS);\n }\n\n removeCookie() {\n this.cookieService.remove(CookieName.GdAccepted);\n }\n\n isAccepted() {\n return this.cookieService.get(CookieName.GdAccepted) == ACCEPTED_STATUS;\n }\n\n setReturnPath(url: string) {\n this.cookieService.put(CookieName.GdReturnPath, url);\n }\n\n removeReturnPath() {\n this.cookieService.remove(CookieName.GdReturnPath);\n }\n\n returnPath() {\n return this.cookieService.get(CookieName.GdReturnPath);\n }\n\n /** @description Gets the enablement status of the player gaming declaration. */\n async isEnabled(): Promise {\n await firstValueFrom(this.config.whenReady);\n\n return await firstValueFrom(this.dslService.evaluateExpression(this.config.isEnabledCondition));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router, RoutesRecognized } from '@angular/router';\n\nimport { NativeAppService, NavigationService, OnFeatureInit, UserService } from '@frontend/vanilla/core';\nimport { filter } from 'rxjs/operators';\n\nimport { ACCEPTED_STATUS, GAMING_DECLARATION_PATH, NOT_ACCEPTED_STATUS } from './player-gaming-declaration-constants';\nimport { PlayerGamingDeclarationService } from './player-gaming-declaration.service';\n\n@Injectable()\nexport class PlayerGamingDeclarationBootstrapService implements OnFeatureInit {\n constructor(\n private gamingDeclarationService: PlayerGamingDeclarationService,\n private user: UserService,\n private navigationService: NavigationService,\n private nativeApp: NativeAppService,\n private router: Router,\n ) {}\n\n async onFeatureInit() {\n const isEnabled = await this.gamingDeclarationService.isEnabled();\n\n if (!isEnabled) {\n return;\n }\n\n this.router.events.pipe(filter((e): e is RoutesRecognized => e instanceof RoutesRecognized)).subscribe((e: RoutesRecognized) => {\n if (e.url.includes('gaming-declaration')) {\n this.nativeApp.sendToNative({ eventName: 'hideCloseButton' });\n }\n });\n\n if (\n this.user.isFirstLogin ||\n this.user.gamingDeclarationFlag?.toUpperCase() == ACCEPTED_STATUS ||\n this.gamingDeclarationService.isAccepted()\n ) {\n return;\n }\n\n this.gamingDeclarationService.gamingDeclaration.subscribe((gamingDeclaration) => {\n // Platform will send Y|N for Austrian users and null to non Austrian users so this makes sure redirect happens only for Austrian users that did not accept yet.\n if (gamingDeclaration?.status?.toUpperCase() === NOT_ACCEPTED_STATUS) {\n this.gamingDeclarationService.setReturnPath(this.navigationService.location.absUrl());\n this.navigationService.goTo(GAMING_DECLARATION_PATH);\n } else {\n this.gamingDeclarationService.removeCookie();\n }\n });\n\n if (this.user.isAuthenticated) {\n this.gamingDeclarationService.load();\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { TrackingService } from '@frontend/vanilla/core';\n\n@Injectable()\nexport class PlayerGamingDeclarationTrackingService {\n constructor(private trackingService: TrackingService) {}\n\n trackLoad(isPostLogin: boolean) {\n this.track('contentView', 'load', 'updated tnc interceptor', isPostLogin);\n }\n\n trackAccept(isPostLogin: boolean) {\n this.track('Event.Tracking', 'click', 'accept cta', isPostLogin);\n }\n\n private track(eventName: string, action: string, details: string, isPostLogin: boolean) {\n this.trackingService.triggerEvent(eventName, {\n 'component.CategoryEvent': 'interceptor',\n 'component.LabelEvent': 'updated tnc interceptor',\n 'component.ActionEvent': action,\n 'component.PositionEvent': isPostLogin ? 'post login' : 'product switch',\n 'component.LocationEvent': 'updated tnc interceptor',\n 'component.EventDetails': details,\n 'component.URLClicked': 'not applicable',\n });\n }\n}\n","import { LazyClientConfigService, runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { PlayerGamingDeclarationBootstrapService } from './player-gaming-declaration-bootstrap.service';\nimport { PlayerGamingDeclarationTrackingService } from './player-gaming-declaration-tracking.service';\nimport { PlayerGamingDeclarationConfig, playerGamingDeclarationConfigFactory } from './player-gaming-declaration.client-config';\nimport { PlayerGamingDeclarationService } from './player-gaming-declaration.service';\n\nexport function provide() {\n return [\n PlayerGamingDeclarationService,\n PlayerGamingDeclarationTrackingService,\n { provide: PlayerGamingDeclarationConfig, useFactory: playerGamingDeclarationConfigFactory, deps: [LazyClientConfigService] },\n runOnFeatureInit(PlayerGamingDeclarationBootstrapService),\n ];\n}\n","\n
\n \n @if (content(); as content) {\n
\n \n }\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnDestroy, OnInit, signal } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport {\n ClaimsConfig,\n ClientConfigService,\n DslService,\n HtmlNode,\n MessageScope,\n NativeAppService,\n NativeEventType,\n NavigationService,\n UserService,\n ViewTemplateForClient,\n} from '@frontend/vanilla/core';\nimport { CrossProductLayoutComponent } from '@frontend/vanilla/features/cross-product-layout';\nimport { MessagePanelComponent } from '@frontend/vanilla/features/message-panel';\nimport { TrustAsHtmlPipe } from '@frontend/vanilla/shared/browser';\nimport { RouteDataService } from '@frontend/vanilla/shared/routing';\nimport { first } from 'rxjs';\n\nimport { ACCEPTED_STATUS, IS_POST_LOGIN } from './player-gaming-declaration-constants';\nimport { PlayerGamingDeclarationTrackingService } from './player-gaming-declaration-tracking.service';\nimport { PlayerGamingDeclarationService } from './player-gaming-declaration.service';\n\n@Component({\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, TrustAsHtmlPipe, CrossProductLayoutComponent, MessagePanelComponent],\n selector: 'vn-gaming-declaration-page',\n templateUrl: 'player-gaming-declaration.html',\n})\nexport class PlayerGamingDeclarationComponent implements OnInit, OnDestroy {\n readonly content = signal(undefined);\n readonly MessageScope = MessageScope;\n\n private isPostLogin: boolean;\n\n constructor(\n private gamingDeclarationService: PlayerGamingDeclarationService,\n private routeData: RouteDataService,\n private navigationService: NavigationService,\n private clientConfig: ClientConfigService,\n private user: UserService,\n private trackingService: PlayerGamingDeclarationTrackingService,\n private activatedRoute: ActivatedRoute,\n private nativeApp: NativeAppService,\n private html: HtmlNode,\n private dslService: DslService,\n ) {}\n\n ngOnInit() {\n this.isPostLogin = this.activatedRoute.snapshot.queryParamMap.get('_isPostLogin') === IS_POST_LOGIN;\n this.dslService\n .evaluateContent(this.routeData.getInitData())\n .pipe(first())\n .subscribe((item: ViewTemplateForClient) => {\n this.content.set(item);\n });\n this.trackingService.trackLoad(this.isPostLogin);\n this.html.setCssClass('gaming-declaration', true);\n }\n\n ngOnDestroy() {\n this.html.setCssClass('gaming-declaration', false);\n }\n\n accept() {\n this.gamingDeclarationService.accept({ status: ACCEPTED_STATUS }).subscribe(() => {\n this.trackingService.trackAccept(this.isPostLogin);\n this.clientConfig.reload([ClaimsConfig]).then(() => {\n if (this.user.gamingDeclarationFlag?.toUpperCase() !== ACCEPTED_STATUS) {\n //Saving to cookie just in case Claim is not refreshed at this point.\n this.gamingDeclarationService.setCookie();\n }\n this.nativeApp.sendToNative({ eventName: NativeEventType.GAMING_DECLARATION_ACCEPTED });\n const returnUrl = this.gamingDeclarationService.returnPath();\n\n if (returnUrl) {\n this.navigationService.goTo(returnUrl, { isBackNavigation: true });\n this.gamingDeclarationService.removeReturnPath();\n } else {\n this.navigationService.goToLastKnownProduct({ forceReload: true });\n }\n });\n });\n }\n}\n","import { inject } from '@angular/core';\n\nimport { UserService } from '@frontend/vanilla/core';\n\nimport { ACCEPTED_STATUS } from './player-gaming-declaration-constants';\nimport { PlayerGamingDeclarationService } from './player-gaming-declaration.service';\n\nexport const playerGamingDeclarationCanActivateGuard = async () => {\n const user = inject(UserService);\n const gamingDeclarationService = inject(PlayerGamingDeclarationService);\n const isEnabled = await gamingDeclarationService.isEnabled();\n\n if (\n !isEnabled ||\n !user.isAuthenticated ||\n user.gamingDeclarationFlag?.toUpperCase() == ACCEPTED_STATUS ||\n gamingDeclarationService.isAccepted()\n ) {\n return false;\n }\n\n return true;\n};\n\nexport const playerGamingDeclarationCanDeactivateGuard = async () => {\n const user = inject(UserService);\n const gamingDeclarationService = inject(PlayerGamingDeclarationService);\n return user.gamingDeclarationFlag?.toUpperCase() == ACCEPTED_STATUS || gamingDeclarationService.isAccepted();\n};\n","import { inject } from '@angular/core';\n\nimport { map } from 'rxjs/operators';\n\nimport { PlayerGamingDeclarationConfig } from './player-gaming-declaration.client-config';\n\nexport const playerGamingDeclarationResolver = () => {\n const config = inject(PlayerGamingDeclarationConfig);\n return config.whenReady.pipe(map(() => config.content));\n};\n","import { Routes } from '@angular/router';\n\nimport { PlayerGamingDeclarationComponent } from './player-gaming-declaration.component';\nimport { provide } from './player-gaming-declaration.feature';\nimport { playerGamingDeclarationCanActivateGuard, playerGamingDeclarationCanDeactivateGuard } from './player-gaming-declaration.guard';\nimport { playerGamingDeclarationResolver } from './player-gaming-declaration.resolver';\n\nexport const ROUTES: Routes = [\n {\n path: '',\n component: PlayerGamingDeclarationComponent,\n resolve: {\n initData: playerGamingDeclarationResolver,\n },\n canActivate: [playerGamingDeclarationCanActivateGuard],\n canDeactivate: [playerGamingDeclarationCanDeactivateGuard],\n providers: provide(),\n },\n];\n"],"names":["ACCEPTED_STATUS","NOT_ACCEPTED_STATUS","GAMING_DECLARATION_PATH","IS_POST_LOGIN","PlayerGamingDeclarationConfig","_a","LazyClientConfigBase","M","__ngFactoryType__","f","factory","ɵfac","__decorate","LazyClientConfig","key","product","ClientConfigProductName","SF","playerGamingDeclarationConfigFactory","service","get","PlayerGamingDeclarationService","gamingDeclaration","gamingDeclarationEvents","constructor","api","user","cookieService","config","dslService","ReplaySubject","loaded","load","isAuthenticated","subscribe","next","accept","status","post","setCookie","put","CookieName","GdAccepted","removeCookie","remove","isAccepted","setReturnPath","url","GdReturnPath","removeReturnPath","returnPath","isEnabled","__async","firstValueFrom","whenReady","evaluateExpression","isEnabledCondition","ɵɵinject","SharedFeaturesApiService","UserService","CookieService","DslService","_PlayerGamingDeclarationService","PlayerGamingDeclarationBootstrapService","gamingDeclarationService","navigationService","nativeApp","router","onFeatureInit","events","pipe","filter","e","RoutesRecognized","includes","sendToNative","eventName","isFirstLogin","gamingDeclarationFlag","toUpperCase","location","absUrl","goTo","NavigationService","NativeAppService","Router","_PlayerGamingDeclarationBootstrapService","PlayerGamingDeclarationTrackingService","trackingService","trackLoad","isPostLogin","track","trackAccept","action","details","triggerEvent","TrackingService","_PlayerGamingDeclarationTrackingService","provide","useFactory","deps","LazyClientConfigService","runOnFeatureInit","q","ɵɵelement","Q","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","ɵɵelementEnd","ɵɵproperty","ɵɵpipeBind1","content_r3","text","ɵɵsanitizeHtml","ɵɵadvance","form","htmlAttributes","class","undefined","label","PlayerGamingDeclarationComponent","routeData","clientConfig","activatedRoute","html","content","signal","MessageScope","ngOnInit","snapshot","queryParamMap","evaluateContent","getInitData","first","item","set","setCssClass","ngOnDestroy","reload","ClaimsConfig","then","NativeEventType","GAMING_DECLARATION_ACCEPTED","returnUrl","isBackNavigation","goToLastKnownProduct","forceReload","ɵɵdirectiveInject","RouteDataService","ClientConfigService","ActivatedRoute","HtmlNode","w","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","PlayerGamingDeclarationComponent_Conditional_3_Template","GamingDeclaration","ɵɵconditional","tmp_1_0","CommonModule","NgClass","TrustAsHtmlPipe","CrossProductLayoutComponent","MessagePanelComponent","encapsulation","changeDetection","_PlayerGamingDeclarationComponent","playerGamingDeclarationCanActivateGuard","inject","playerGamingDeclarationCanDeactivateGuard","playerGamingDeclarationResolver","map","ROUTES","path","component","resolve","initData","canActivate","canDeactivate","providers"],"mappings":"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"}