{"version":3,"file":"chunk-nfhhgi6g.js","sources":["packages/vanilla/lib/features/cashier/src/cashier.client-config.ts","packages/vanilla/lib/features/cashier/src/cashier.models.ts","packages/vanilla/lib/features/cashier/src/cashier-resource.service.ts","packages/vanilla/lib/features/cashier/src/quick-deposit/quick-deposit.models.ts","packages/vanilla/lib/features/cashier/src/quick-deposit/quick-deposit.service.ts","packages/vanilla/lib/features/cashier/src/cashier.service.ts","packages/vanilla/lib/features/cashier/src/cashier-iframe.models.ts","packages/vanilla/lib/features/cashier/src/cashier-iframe.component.ts","packages/vanilla/lib/features/cashier/src/cashier-iframe.html","packages/vanilla/lib/features/cashier/src/quick-deposit/quick-deposit-responsive.component.html","packages/vanilla/lib/features/cashier/src/quick-deposit/quick-deposit-responsive.component.ts","packages/vanilla/lib/features/cashier/src/quick-deposit/quick-deposit-overlay.service.ts","packages/vanilla/lib/features/cashier/src/cashier-bootstrap.service.ts","packages/vanilla/lib/features/cashier/src/cashier.feature.ts","packages/vanilla/lib/features/cashier/src/cashier.component.ts","packages/vanilla/lib/features/cashier/src/cashier.guard.ts","packages/vanilla/lib/features/cashier/src/quick-deposit/quick-deposit.guard.ts","packages/vanilla/lib/features/cashier/src/cashier-routing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigBase, LazyClientConfigService } from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'vnCashier', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: cashierConfigFactory,\n})\nexport class CashierConfig extends LazyClientConfigBase {\n depositUrlTemplate: string;\n withdrawUrlTemplate: string;\n transactionHistoryUrlTemplate: string;\n urlTemplate: string;\n manageMyCardsUrlTemplate: string;\n paymentPreferencesUrlTemplate: string;\n host: string;\n singleSignOnIntegrationType: string = 'query' || 'cookie';\n trackerIds: { [origin: string]: string };\n quickDepositAllowedOrigins: { [origin: string]: boolean };\n quickDepositUrlTemplate: string;\n isQuickDepositEnabled: boolean;\n isPaymentsAppEnabled: boolean;\n isPaymentsAppQuickDepositEnabled: boolean;\n paymentsAppUrl: string;\n}\n\nexport function cashierConfigFactory(service: LazyClientConfigService) {\n return service.get(CashierConfig);\n}\n","/**\n * @stable\n */\nexport enum CashierRouteAction {\n Deposit = 'deposit',\n Withdrawal = 'withdrawal',\n TransactionHistory = 'transactionhistory',\n PaymentPreferences = 'paymentpreferences',\n}\n\nexport enum DepositType {\n Quick = 'Quick',\n Normal = 'Normal',\n}\n","import { Injectable } from '@angular/core';\n\nimport { SharedFeaturesApiService } from '@frontend/vanilla/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * @whatItDoes Provides cashier resource methods.\n *\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class CashierResourceService {\n constructor(private api: SharedFeaturesApiService) {}\n\n quickDepositEnabled(): Observable {\n return this.api.get('cashier/quickdepositenabled').pipe(map((data) => data.enabled));\n }\n}\n","/** @stable */\nexport interface QuickDepositEvent {\n action: QuickDepositAction;\n options: QuickDepositOptions;\n}\n\n/** @stable */\nexport interface QuickDepositOptions {\n showKYCVerifiedMessage?: boolean;\n}\n\n/** @stable */\nexport enum QuickDepositAction {\n Open = 'Open',\n}\n","import { Injectable, InjectionToken } from '@angular/core';\n\nimport { UserService } from '@frontend/vanilla/core';\nimport { Observable, Subject, of } from 'rxjs';\n\nimport { CashierResourceService } from '../cashier-resource.service';\nimport { CashierConfig } from '../cashier.client-config';\nimport { QuickDepositAction, QuickDepositEvent, QuickDepositOptions } from './quick-deposit.models';\n\n/**\n * @whatItDoes Opens quick deposit overlay\n *\n * @howToUse\n *\n * ```this.quickDepositService.open();```\n *\n * @description\n *\n * Cashier will be opened within the modal dialog. User balance gets updated if deposit is made.\n *\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class QuickDepositService {\n readonly events = new Subject();\n\n constructor(\n private cashierConfig: CashierConfig,\n private userService: UserService,\n private cashierResourceService: CashierResourceService,\n ) {}\n\n open(options: QuickDepositOptions) {\n this.events.next({ action: QuickDepositAction.Open, options });\n }\n\n isEnabled(): Observable {\n if (!this.cashierConfig.isQuickDepositEnabled || !this.userService.isAuthenticated) {\n return of(false);\n }\n\n return this.cashierResourceService.quickDepositEnabled();\n }\n}\n\nexport const QUICK_DEPOSIT_OPTIONS = new InjectionToken('QUICK_DEPOSIT_OPTIONS');\n","import { Injectable, inject } from '@angular/core';\n\nimport {\n AppInfoConfig,\n CashierNewOptions,\n ClaimType,\n FrontendHelperService,\n NativeAppService,\n NavigationService,\n Page,\n ProductHomepagesConfig,\n ProductService,\n TrackingService,\n UserService,\n WINDOW,\n replacePlaceholders,\n} from '@frontend/vanilla/core';\nimport { mapValues } from 'lodash-es';\n\nimport { CashierConfig } from './cashier.client-config';\nimport { DepositType } from './cashier.models';\nimport { QuickDepositService } from './quick-deposit/quick-deposit.service';\n\n/**\n * @whatItDoes Provides cashier navigation methods.\n *\n * @stable\n */\n@Injectable({ providedIn: 'root' })\nexport class CashierService {\n readonly #window = inject(WINDOW);\n\n constructor(\n private user: UserService,\n private cashierConfig: CashierConfig,\n private nativeApp: NativeAppService,\n private page: Page,\n private quickDepositService: QuickDepositService,\n private appInfoConfig: AppInfoConfig,\n private productHomepagesConfig: ProductHomepagesConfig,\n private navigation: NavigationService,\n private frontendHelperService: FrontendHelperService,\n private trackingService: TrackingService,\n private productService: ProductService,\n ) {}\n\n /** Navigates to cashier entry page. */\n goToCashier(options: CashierNewOptions) {\n this.goToCashierInternal(options);\n }\n\n goToCashierDeposit(options: CashierNewOptions) {\n options = options || {};\n options.pathTemplate = this.cashierConfig.depositUrlTemplate;\n options.paymentsType = 'deposit';\n if (options.skipQuickDeposit) {\n /** Navigates to cashier standalone deposit page. If user is allowed to quick deposit opens quick deposit overlay. */\n this.goToCashierInternal(options);\n } else {\n this.quickDepositService.isEnabled().subscribe((enabled: boolean) => {\n if (enabled) {\n this.track(DepositType.Quick, options);\n this.quickDepositService.open({\n showKYCVerifiedMessage: options.queryParameters ? options.queryParameters['showKYCVerifiedMessage'] === 'true' : false,\n });\n } else {\n this.goToCashierInternal(options);\n }\n });\n }\n }\n\n /** Navigates to cashier withdrawal page. */\n goToCashierWithdrawal(options: CashierNewOptions) {\n options.pathTemplate = this.cashierConfig.withdrawUrlTemplate;\n options.paymentsType = 'withdrawal';\n this.goToCashierInternal(options);\n }\n\n /** Navigates to cashier manage my cards page. */\n goToManageMyCards(options: CashierNewOptions) {\n options.pathTemplate = this.cashierConfig.manageMyCardsUrlTemplate;\n options.paymentsType = 'manage-cards';\n this.goToCashierInternal(options);\n }\n\n /** Navigates to cashier payment history page. */\n goToTransactionHistory(options: CashierNewOptions) {\n options.paymentsType = 'transaction-history';\n this.goToCashierInternal(\n Object.assign(\n {},\n { pathTemplate: this.cashierConfig.transactionHistoryUrlTemplate, skipTracking: true },\n options,\n ),\n );\n }\n\n /** Navigates to payment preferences page. */\n goToPaymentPreferences(options: CashierNewOptions) {\n options = options || {};\n options.pathTemplate = this.cashierConfig.paymentPreferencesUrlTemplate;\n options.paymentsType = 'payment-preferences';\n this.goToCashierInternal(options);\n }\n\n /** Generates Single domain payments URL */\n generatePaymentsAppUrl(options: CashierNewOptions): string {\n options = this.updateReturnUrl(options);\n let url = options.paymentsAppUrl ?? this.cashierConfig.paymentsAppUrl;\n\n url = url.replace('{0}', options.paymentsType || 'deposit');\n url = url.replace('{1}', encodeURIComponent(options.returnUrl!));\n\n options.queryParameters = options.queryParameters ?? {};\n Object.keys(options.queryParameters).forEach((key) => {\n url += `&${key}=${encodeURIComponent(options.queryParameters![key]!)}`;\n });\n return url;\n }\n /** Generates cashier url */\n generateCashierUrl(options: CashierNewOptions): string {\n if (!options.quickDeposit && this.productService.isSingleDomainApp && this.cashierConfig.isPaymentsAppEnabled) {\n return this.generatePaymentsAppUrl(options);\n }\n\n const defaultOptions = {\n trackerId: '',\n replaceInHistory: false,\n pathTemplate: this.cashierConfig.urlTemplate,\n };\n options = Object.assign({}, defaultOptions, options || {});\n\n options = this.updateReturnUrl(options);\n\n let url = (this.cashierConfig.host ?? '') + options.pathTemplate;\n\n if (this.cashierConfig.singleSignOnIntegrationType === 'cookie') {\n url = url.replace('sessionKey={0}&', ''); // TODO: update dynacon entries and remove sessionKey={0} once singleSignOnIntegrationType is cookie everywhere. also remove this line after.\n }\n\n url = url.replace('{0}', this.user.ssoToken || ''); // TODO: remove this line once singleSignOnIntegrationType is cookie everywhere\n url = url.replace('{1}', this.page.lang);\n url = url.replace('{2}', encodeURIComponent(options.returnUrl!));\n url = url.replace('{3}', options.trackerId || '');\n\n options.queryParameters = options.queryParameters ?? {};\n\n if (this.user.id) {\n options.queryParameters['userId'] = this.user.id;\n }\n\n options.queryParameters['channelId'] = this.appInfoConfig.channel;\n options.queryParameters['brandId'] = this.appInfoConfig.brand;\n options.queryParameters['productId'] = this.appInfoConfig.product;\n options.queryParameters['frontend'] = this.frontendHelperService.getFrontendDescription();\n\n if (this.nativeApp.isNativeApp) {\n options.queryParameters['clientAppPath'] = '1';\n } else if (this.nativeApp.isNativeWrapper) {\n options.queryParameters['clientAppPath'] = '2';\n }\n\n Object.keys(options.queryParameters).forEach((key) => {\n url += `&${key}=${encodeURIComponent(options.queryParameters![key]!)}`;\n });\n\n return url;\n }\n\n private updateReturnUrl(options: CashierNewOptions): CashierNewOptions {\n if (!options.returnUrl) {\n options.returnUrl = this.#window.location.href;\n }\n return options;\n }\n\n handlePartialRegistration(origin: string, returnUrl?: string, options?: CashierNewOptions) {\n if (this.user.claims.get(ClaimType.IsPartiallyRegistered) === 'True') {\n /** Navigates to partial registration if user claim matches. Otherwise, invokes cashier deposit. */\n const depositUrl = this.generateCashierUrl(\n Object.assign({ pathTemplate: this.cashierConfig.depositUrlTemplate, paymentsType: 'deposit' }, options),\n );\n this.navigation.goTo(`${this.productHomepagesConfig.portal}/mobileportal/partialregistration?rurl=${depositUrl}`);\n } else {\n const newOptions = Object.assign(this.getOptions(origin, returnUrl), options || {});\n this.goToCashierDeposit(newOptions);\n }\n }\n\n private getOptions(origin: string, returnUrl?: string): CashierNewOptions {\n const trackerId = this.cashierConfig.trackerIds[origin.toLowerCase()] || '';\n returnUrl = returnUrl || this.navigation.location.absUrl();\n\n return {\n trackerId,\n returnUrl,\n };\n }\n\n private goToCashierInternal(options: CashierNewOptions) {\n this.track(DepositType.Normal, options);\n\n const targetWindow = options.cashierTargetWindow ? this.#window[options.cashierTargetWindow] : this.#window;\n\n if (!targetWindow) {\n return;\n }\n\n if (this.productService.isSingleDomainApp && this.cashierConfig.isPaymentsAppEnabled) {\n this.goToPaymentsUrl(options);\n } else {\n const url = this.generateCashierUrl(options);\n if (options.replaceInHistory) {\n targetWindow.location.replace(url);\n } else {\n targetWindow.location.href = url;\n }\n }\n }\n\n private track(type: DepositType, options: CashierNewOptions) {\n if (options.skipTracking || !options.customTracking) {\n return;\n }\n\n const placeholders = {\n type,\n };\n\n const event = replacePlaceholders(options.customTracking.eventName, placeholders)!;\n const data = mapValues(options.customTracking.data || {}, (value) => replacePlaceholders(value, placeholders));\n\n this.trackingService.triggerEvent(event, data);\n }\n\n private goToPaymentsUrl(options: CashierNewOptions) {\n this.navigation.goTo(this.generateCashierUrl(options));\n }\n}\n","/**\n * @stable\n */\nexport enum CashierIframeAction {\n Chat = 'CHAT',\n Close = 'CLOSE',\n DepositSuccess = 'DEPOSITSUCCESSQD',\n FetchLocation = 'FETCHLOCATION',\n Open = 'OPEN',\n Resize = 'RESIZE',\n UpdateBalance = 'UPDATEBALANCE',\n}\n\n/**\n * @stable\n */\nexport enum CashierIframeType {\n PaymentPreferences = 'paymentpreferences',\n QuickDeposit = 'quickdeposit',\n}\n\n/**\n * @stable\n * @param {target}: quickDeposit by default\n */\nexport interface CashierIframeEvent {\n action?: string;\n target?: string;\n\n [key: string]: any;\n}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n OnChanges,\n OnInit,\n Output,\n ViewChild,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport {\n BalancePropertiesCoreService,\n CashierService,\n DeviceService,\n ElementRepositoryService,\n EventsService,\n MediaQueryService,\n NativeAppService,\n NativeEventType,\n NavigationService,\n VanillaElements,\n VanillaEventNames,\n WINDOW,\n} from '@frontend/vanilla/core';\nimport { IFrameComponent } from '@frontend/vanilla/shared/browser';\nimport { firstValueFrom } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { CashierIframeAction, CashierIframeEvent } from './cashier-iframe.models';\nimport { CashierConfig } from './cashier.client-config';\n\n@Component({\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, IFrameComponent],\n selector: 'vn-cashier-iframe',\n templateUrl: 'cashier-iframe.html',\n})\nexport class CashierIframeComponent implements OnInit, AfterViewInit, OnChanges {\n @ViewChild(IFrameComponent) iframe: IFrameComponent;\n @ViewChild('wrapper') wrapper: ElementRef;\n\n url = input('');\n /** Indicates cashier page. Possible values: deposit */\n readonly page = input('');\n readonly iframeClass = input('');\n readonly cssClass = input('');\n\n @Output() onLoaded = new EventEmitter();\n @Output() onClosed = new EventEmitter();\n @Output() onResized = new EventEmitter();\n\n readonly host = signal('');\n readonly #window = inject(WINDOW);\n\n constructor(\n public deviceService: DeviceService,\n private config: CashierConfig,\n private navigation: NavigationService,\n private balancePropertiesService: BalancePropertiesCoreService,\n private cashierService: CashierService,\n private mediaQueryService: MediaQueryService,\n private navigationService: NavigationService,\n private eventsService: EventsService,\n private nativeAppService: NativeAppService,\n private elementRepositoryService: ElementRepositoryService,\n private changeDetectorRef: ChangeDetectorRef,\n private destroyRef: DestroyRef,\n ) {}\n\n // Note: ngOnChanges runs before ngOnInit\n ngOnChanges() {\n if (!this.url() && this.host()) {\n this.setUrl();\n }\n }\n\n async ngOnInit() {\n await Promise.all([firstValueFrom(this.config.whenReady), firstValueFrom(this.cashierService.whenReady)]);\n this.host.set(this.config.host);\n this.changeDetectorRef.detectChanges();\n\n if (!this.url()) {\n this.setUrl();\n }\n }\n\n ngAfterViewInit() {\n this.iframe.events\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n map((uri: any) => decodeURIComponent(uri)),\n )\n .subscribe((data: string) => {\n const message: CashierIframeEvent = data.split('&').reduce((seed: Record, cur: string) => {\n const param = cur.trim().split('=');\n\n if (param[0] && param[1]) {\n seed[param[0]] = param[1];\n }\n\n return seed;\n }, {});\n\n switch (message.action?.toUpperCase()) {\n case CashierIframeAction.Close:\n if (this.onClosed.observers.length) {\n this.onClosed.next(message);\n break;\n }\n // for now, until known where to redirect\n this.navigation.goToLastKnownProduct();\n break;\n case CashierIframeAction.Open:\n this.onLoaded.next();\n if (this.onResized.observers.length) {\n this.onResized.next(message);\n } else {\n this.resize(message);\n this.#window.scrollTo(0, 0);\n }\n break;\n case CashierIframeAction.Resize:\n if (this.onResized.observers.length) {\n this.onResized.next(message);\n } else {\n this.resize(message);\n this.#window.scrollTo(0, 0);\n }\n break;\n case CashierIframeAction.UpdateBalance:\n this.balancePropertiesService.refresh();\n break;\n case CashierIframeAction.Chat:\n this.onClosed.next(message);\n const url = this.navigationService.location.clone();\n url.search.set('cashierId', message['Web_site_URL']);\n url.search.set('chat', 'open');\n this.navigationService.goTo(url);\n break;\n case CashierIframeAction.DepositSuccess:\n this.eventsService.raise({\n eventName: VanillaEventNames.DepositSuccessQD,\n data: { currency: message['currency'], value: message['amount'] },\n });\n this.onClosed.next(message);\n break;\n case CashierIframeAction.FetchLocation:\n this.nativeAppService.sendToNative({\n eventName: NativeEventType.TRIGGER_GEO_LOCATION,\n parameters: message,\n });\n break;\n }\n });\n }\n\n private setUrl() {\n const pathTemplate = (this.config as any)[`${this.page()}UrlTemplate`];\n this.url = this.cashierService.generateCashierUrl({ pathTemplate, quickDeposit: true });\n }\n\n private resize(message: CashierIframeEvent) {\n // Resize targeted by URL iframe\n const isValidTarget = this.wrapper.nativeElement.dataset['url']?.toLowerCase().indexOf(message.target?.toLowerCase() || '') !== -1;\n\n if (!isValidTarget) {\n return;\n }\n\n const isNotMobile = this.mediaQueryService.isActive('gt-xs');\n const parsedWidth = isNotMobile && message['width'].length ? `${parseInt(message['width'], 10)}px` : null;\n const parsedHeight = message['height'].length ? `${parseInt(message['height'], 10)}px` : null;\n\n if (parsedWidth != null) {\n this.wrapper.nativeElement.style.width = parsedWidth;\n }\n\n if (parsedHeight != null) {\n this.wrapper.nativeElement.style.height = parsedHeight;\n }\n\n const mainSlot = this.elementRepositoryService.get(VanillaElements.MAIN_SLOT);\n\n if (mainSlot) {\n this.wrapper.nativeElement.getBoundingClientRect().height > mainSlot.getBoundingClientRect().height\n ? mainSlot.classList.add('overflow-visible')\n : mainSlot.classList.remove('overflow-visible');\n }\n }\n}\n","
\n \n
\n","@if (deviceService.isMobilePhone) {\n
\n
\n
\n
\n \n
\n
\n
\n
\n} @else {\n
\n
\n \n
\n
\n}\n","import { OverlayModule, OverlayRef } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Inject, OnInit, ViewEncapsulation, inject, signal } from '@angular/core';\n\nimport {\n AppInfoConfig,\n CashierService,\n CommonMessages,\n DeviceService,\n ElementKeyDirective,\n ElementRepositoryService,\n Logger,\n MenuItemsService,\n MenuSection,\n Page,\n ProductService,\n UserService,\n UtilsService,\n VanillaElements,\n WINDOW,\n} from '@frontend/vanilla/core';\n\nimport { CashierIframeComponent } from '../cashier-iframe.component';\nimport { CashierIframeEvent, CashierIframeType } from '../cashier-iframe.models';\nimport { CashierConfig } from '../cashier.client-config';\nimport { QuickDepositOptions } from './quick-deposit.models';\nimport { QUICK_DEPOSIT_OPTIONS } from './quick-deposit.service';\n\n@Component({\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [OverlayModule, CommonModule, ElementKeyDirective, CashierIframeComponent],\n selector: 'lh-quick-deposit-responsive',\n templateUrl: 'quick-deposit-responsive.component.html',\n styleUrl: '../../../../../../themepark/themes/whitelabel/components/quick-deposit/styles.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class QuickDepositResponsiveComponent implements OnInit {\n readonly url = signal('');\n readonly VanillaElements = VanillaElements;\n readonly #window = inject(WINDOW);\n\n constructor(\n public deviceService: DeviceService,\n public commonMessages: CommonMessages,\n private cashierService: CashierService,\n private elementRepositoryService: ElementRepositoryService,\n private cashierConfig: CashierConfig,\n private user: UserService,\n private page: Page,\n private appInfoConfig: AppInfoConfig,\n private utils: UtilsService,\n private overlayRef: OverlayRef,\n private menuItemsService: MenuItemsService,\n private logger: Logger,\n @Inject(QUICK_DEPOSIT_OPTIONS) private options: QuickDepositOptions,\n private productService: ProductService,\n ) {}\n\n ngOnInit() {\n let urlTemplate = this.cashierConfig.quickDepositUrlTemplate;\n\n if (this.cashierConfig.singleSignOnIntegrationType === 'cookie') {\n urlTemplate = urlTemplate.replace('&sessionKey={5}', ''); // TODO: update dynacon entries and remove sessionKey={5} from them once singleSignOnIntegrationType is cookie everywhere. also remove this line after.\n }\n\n this.url.set(\n this.utils.format(\n this.cashierConfig.host + urlTemplate,\n this.user.id,\n this.appInfoConfig.brand,\n this.appInfoConfig.product,\n this.appInfoConfig.channel,\n this.page.lang,\n this.user.ssoToken, // TODO: remove this line once singleSignOnIntegrationType is cookie everywhere\n encodeURIComponent(this.#window.location.href),\n ),\n );\n\n if (this.options.showKYCVerifiedMessage) {\n this.url.update((url: string) => url + '&showKYCVerifiedMessage=true');\n }\n }\n\n close(message: { action: string; [key: string]: any }) {\n if (message['showAllOptions'] === 'true') {\n //TODO remove this condition once all labels went live with payments single domain\n if (this.productService.isSingleDomainApp && this.cashierConfig.isPaymentsAppEnabled) {\n this.overlayRef.detach();\n }\n this.cashierService.goToCashierDeposit({ skipQuickDeposit: true });\n } else {\n this.overlayRef.detach();\n this.menuItemsService.setActive(MenuSection.Menu, null);\n }\n }\n\n resize(message: CashierIframeEvent) {\n try {\n const element = this.elementRepositoryService\n .get(VanillaElements.QUICK_DEPOSIT_WRAPPER)\n ?.querySelector('.player-quickdeposit-iframe-wrapper');\n\n if (element?.style && (!message.target || message.target.toLowerCase() === CashierIframeType.QuickDeposit)) {\n const isNotMobile = !this.deviceService.isMobilePhone;\n const parsedWidth = isNotMobile && message['width'] && message['width'].length ? `${parseInt(message['width'], 10)}px` : null;\n const parsedHeight = message['height'] && message['height'].length ? `${parseInt(message['height'], 10)}px` : null;\n\n // mobile phone and v2: theme specify width 100%\n if (parsedWidth != null) {\n element.style.width = parsedWidth;\n }\n\n if (parsedHeight != null) {\n element.style.height = parsedHeight;\n }\n }\n } catch (err: any) {\n this.logger.warn(`Failed to resize.`, err);\n }\n }\n}\n","import { FlexibleConnectedPositionStrategy, GlobalPositionStrategy, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Injectable, Injector } from '@angular/core';\n\nimport { DeviceService, DomChangeService, ElementRepositoryService, HtmlNode, MediaQueryService, VanillaElements } from '@frontend/vanilla/core';\nimport { OverlayFactory } from '@frontend/vanilla/shared/overlay-factory';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { QuickDepositResponsiveComponent } from './quick-deposit-responsive.component';\nimport { QuickDepositOptions } from './quick-deposit.models';\nimport { QUICK_DEPOSIT_OPTIONS } from './quick-deposit.service';\n\n@Injectable({ providedIn: 'root' })\nexport class QuickDepositOverlayService {\n private currentRef: OverlayRef | null;\n private unsubscribe: Subject | null;\n private removeScrollBlockOnClose = false;\n\n constructor(\n private overlay: OverlayFactory,\n private elementRepositoryService: ElementRepositoryService,\n private injector: Injector,\n private media: MediaQueryService,\n private domChangeService: DomChangeService,\n private htmlNode: HtmlNode,\n private deviceService: DeviceService,\n ) {}\n\n private get isDesktop(): boolean {\n return this.media.isActive('gt-sm');\n }\n\n private static getInjector(overlayRef: OverlayRef, options: QuickDepositOptions, parentInjector: Injector): Injector {\n return Injector.create({\n providers: [\n { provide: OverlayRef, useValue: overlayRef },\n { provide: QUICK_DEPOSIT_OPTIONS, useValue: options },\n ],\n parent: parentInjector,\n });\n }\n\n show(options: QuickDepositOptions) {\n if (!this.currentRef) {\n // check if 'cdk-global-scrollblock'-class was added by some other component e.g. menu\n this.removeScrollBlockOnClose = !this.htmlNode.hasBlockScrolling();\n const panelclass = this.deviceService.isMobilePhone\n ? ['lh-quick-deposit-container', 'generic-modal-drawer']\n : ['lh-quick-deposit-container'];\n const overlayRef = this.overlay.create({\n backdropClass: 'lh-backdrop',\n panelClass: panelclass,\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n positionStrategy: this.createPositionStrategy(),\n });\n overlayRef.backdropClick().subscribe(() => overlayRef.detach());\n overlayRef.detachments().subscribe(() => {\n this.stopReactingToMediaChanges();\n this.overlay.dispose(this.currentRef);\n this.currentRef = null;\n\n if (this.removeScrollBlockOnClose) {\n this.htmlNode.blockScrolling(false);\n }\n });\n\n const injector = QuickDepositOverlayService.getInjector(overlayRef, options, this.injector);\n\n const portal = new ComponentPortal(QuickDepositResponsiveComponent, null, injector);\n overlayRef.attach(portal);\n\n this.currentRef = overlayRef;\n\n this.reactToMediaChanges();\n\n this.htmlNode.blockScrolling(true);\n }\n }\n\n private createPositionStrategy(): FlexibleConnectedPositionStrategy | GlobalPositionStrategy {\n if (this.isDesktop) {\n const anchor = this.elementRepositoryService.get(VanillaElements.DEPOSIT_BUTTON_ANCHOR)!;\n\n return this.overlay.position\n .flexibleConnectedTo(anchor)\n .withPositions([{ originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' }])\n .withPush(false)\n .withFlexibleDimensions(false);\n }\n\n return this.overlay.position.global().top();\n }\n\n private reactToMediaChanges() {\n this.unsubscribe = new Subject();\n this.media\n .observe()\n .pipe(takeUntil(this.unsubscribe))\n .subscribe(() => {\n this.currentRef!.updatePositionStrategy(this.createPositionStrategy());\n });\n\n this.domChangeService\n .observe(this.elementRepositoryService.get(VanillaElements.AUTH_HEADER_SECTION)!)\n .pipe(\n takeUntil(this.unsubscribe),\n filter(\n (m: MutationRecord) =>\n this.isDesktop &&\n Array.from(m.addedNodes).some((n: Node) => n.nodeType == 1 && (n).innerHTML.includes('deposit-button-anchor')),\n ),\n )\n .subscribe(() => {\n this.currentRef!.updatePositionStrategy(this.createPositionStrategy());\n });\n }\n\n private stopReactingToMediaChanges() {\n this.unsubscribe?.next();\n this.unsubscribe?.complete();\n this.unsubscribe = null;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n CashierNewOptions,\n CashierService as CoreCashierService,\n MenuAction,\n MenuActionOrigin,\n MenuActionsService,\n NavigationService,\n OnFeatureInit,\n ProductHomepagesConfig,\n ToastrQueueService,\n TrackingService,\n UserEvent,\n UserLoginEvent,\n UserService,\n} from '@frontend/vanilla/core';\nimport { AccountMenuDataService } from '@frontend/vanilla/shared/account-menu';\nimport { firstValueFrom } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { CashierConfig } from './cashier.client-config';\nimport { CashierService } from './cashier.service';\nimport { QuickDepositOverlayService } from './quick-deposit/quick-deposit-overlay.service';\nimport { QuickDepositAction, QuickDepositEvent } from './quick-deposit/quick-deposit.models';\nimport { QuickDepositService } from './quick-deposit/quick-deposit.service';\n\n@Injectable()\nexport class CashierBootstrapService implements OnFeatureInit {\n constructor(\n private cashierConfig: CashierConfig,\n private cashierService: CashierService,\n private coreCashierService: CoreCashierService,\n private navigation: NavigationService,\n private menuActionsService: MenuActionsService,\n private accountMenuService: AccountMenuDataService,\n private toastrQueueService: ToastrQueueService,\n private user: UserService,\n private productHomepagesConfig: ProductHomepagesConfig,\n private quickDepositService: QuickDepositService,\n private quickDepositOverlayService: QuickDepositOverlayService,\n private trackingService: TrackingService,\n ) {}\n\n async onFeatureInit() {\n await firstValueFrom(this.cashierConfig.whenReady);\n\n this.coreCashierService.set(this.cashierService);\n\n this.menuActionsService.register(MenuAction.GOTO_CASHIER, (origin: string) => {\n const options = this.getCashierOptions(origin);\n\n if (origin === MenuActionOrigin.Header) {\n // use deposit action here\n this.cashierService.goToCashierDeposit(options);\n } else {\n this.cashierService.goToCashier(options);\n }\n });\n this.menuActionsService.register(MenuAction.GOTO_DEPOSIT, async (origin: string) => {\n const hookDetected = await this.coreCashierService.runDepositHooks();\n if (hookDetected) return;\n\n const options = this.getCashierOptions(origin);\n options.skipQuickDeposit = !this.cashierConfig.quickDepositAllowedOrigins[origin.toLowerCase()];\n this.cashierService.handlePartialRegistration(origin, this.accountMenuService.routerModeReturnUrl, options);\n });\n this.menuActionsService.register(MenuAction.GOTO_WITHDRAWAL, (origin: string) => {\n const options = this.getCashierOptions(origin);\n this.cashierService.goToCashierWithdrawal(options);\n });\n this.menuActionsService.register(MenuAction.GOTO_MANAGE_MY_CARDS, (origin: string) => {\n const options = this.getCashierOptions(origin);\n this.cashierService.goToManageMyCards(options);\n });\n this.menuActionsService.register(MenuAction.GOTO_TRANSACTION_HISTORY, (origin: string) => {\n const options = this.getCashierOptions(origin);\n this.cashierService.goToTransactionHistory(options);\n });\n this.menuActionsService.register(MenuAction.GOTO_PAYMENT_PREFERENCES, (origin: string) => {\n const options = this.getCashierOptions(origin);\n this.cashierService.goToPaymentPreferences(options);\n });\n this.menuActionsService.register(MenuAction.DEPOSIT_PROMPT_ACTION, (origin: string) => {\n const options = this.getCashierOptions(origin);\n\n if (this.toastrQueueService.currentToast) {\n const contextToastContent = this.toastrQueueService.currentToast.content;\n this.trackingService.getContentItemTracking(contextToastContent.parameters, 'tracking.ActionEvent').subscribe((tracking) => {\n if (tracking) {\n options.customTracking = {\n eventName: tracking.event,\n data: tracking.data,\n };\n }\n });\n }\n\n this.cashierService.goToCashierDeposit(options);\n });\n this.menuActionsService.register(MenuAction.HEADER_BALANCE_ACTION, () => {\n if (!this.user.realPlayer) {\n this.cashierService.goToCashierDeposit({});\n } else if (!this.navigation.location.absUrl().includes('/mobileportal/balancebreakdown')) {\n //Todo: Avoid appending rurl multiple times to the url. Remove when fixed on Vanilla side\n this.navigation.goTo(this.productHomepagesConfig.portal + '/mobileportal/balancebreakdown', {\n appendReferrer: this.navigation.location.absUrl(),\n });\n }\n });\n\n if (this.cashierConfig.isQuickDepositEnabled) {\n if (this.user.isAuthenticated) {\n this.initQuickDeposit();\n } else {\n this.user.events.pipe(filter((event: UserEvent) => event instanceof UserLoginEvent)).subscribe(() => this.initQuickDeposit());\n }\n }\n }\n\n private initQuickDeposit() {\n this.quickDepositService.events.subscribe((event: QuickDepositEvent) => {\n if (event.action === QuickDepositAction.Open) {\n this.quickDepositOverlayService.show(event.options);\n }\n });\n }\n\n private getCashierOptions(origin: string): CashierNewOptions {\n const trackerId = this.cashierConfig.trackerIds[origin.toLowerCase()] || '';\n const returnUrl = this.navigation.location.absUrl() || this.accountMenuService.routerModeReturnUrl;\n\n return {\n trackerId,\n returnUrl,\n };\n }\n}\n","import { runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { CashierBootstrapService } from './cashier-bootstrap.service';\n\nexport function provide() {\n return [runOnFeatureInit(CashierBootstrapService)];\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CashierNewOptions, LastKnownProductService, NavigationService } from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\n\nimport { CashierConfig } from './cashier.client-config';\nimport { CashierRouteAction } from './cashier.models';\nimport { CashierService } from './cashier.service';\n\n/**\n * @stable\n */\n@Component({\n standalone: true,\n imports: [OverlayModule],\n selector: 'lh-cashier',\n template: '',\n})\nexport class CashierComponent implements OnInit {\n constructor(\n private activatedRoute: ActivatedRoute,\n private cashierConfig: CashierConfig,\n private navigation: NavigationService,\n private lastKnownProductService: LastKnownProductService,\n private cashierService: CashierService,\n ) {}\n\n async ngOnInit() {\n await firstValueFrom(this.cashierConfig.whenReady);\n\n const options: CashierNewOptions = {\n trackerId: this.navigation.location.search.get('trackerId') || this.cashierConfig.trackerIds.menu,\n returnUrl: this.navigation.location.search.get('returnUrl') || this.lastKnownProductService.get().url,\n replaceInHistory: true,\n };\n\n switch ((this.activatedRoute.snapshot.params.action || '').toLowerCase()) {\n case CashierRouteAction.Deposit:\n this.cashierService.goToCashierDeposit(options);\n break;\n case CashierRouteAction.Withdrawal:\n this.cashierService.goToCashierWithdrawal(options);\n break;\n case CashierRouteAction.TransactionHistory:\n this.cashierService.goToTransactionHistory(options);\n break;\n case CashierRouteAction.PaymentPreferences:\n this.cashierService.goToPaymentPreferences(options);\n break;\n default:\n this.cashierService.goToCashier(options);\n break;\n }\n }\n}\n","import { inject } from '@angular/core';\n\nimport { UserService } from '@frontend/vanilla/core';\n\nexport const cashierGuard = () => {\n const user = inject(UserService);\n return user.isAuthenticated;\n};\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { firstValueFrom } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { CashierConfig } from '../cashier.client-config';\nimport { QuickDepositService } from './quick-deposit.service';\n\nexport const quickDepositGuard = async (route: ActivatedRouteSnapshot) => {\n const quickDepositService = inject(QuickDepositService);\n const config = inject(CashierConfig);\n\n if (route.params['action'] !== 'deposit') {\n return true;\n }\n\n await firstValueFrom(config.whenReady);\n\n return firstValueFrom(\n quickDepositService.isEnabled().pipe(\n map((enabled: boolean) => {\n if (enabled) {\n quickDepositService.open({ showKYCVerifiedMessage: false });\n return false;\n }\n return true;\n }),\n ),\n );\n};\n","import { Route } from '@angular/router';\n\nimport { routeData } from '@frontend/vanilla/core';\n\nimport { CashierComponent } from './cashier.component';\nimport { cashierGuard } from './cashier.guard';\nimport { quickDepositGuard } from './quick-deposit/quick-deposit.guard';\n\nexport const ROUTES: Route[] = [\n {\n path: ':action',\n component: CashierComponent,\n canActivate: [cashierGuard, quickDepositGuard],\n data: routeData({ authorized: true }),\n },\n {\n path: '',\n component: CashierComponent,\n canActivate: [cashierGuard],\n data: routeData({ authorized: true }),\n },\n];\n"],"names":["CashierConfig","_a","LazyClientConfigBase","constructor","singleSignOnIntegrationType","__ngFactoryType__","u","factory","__ngConditionalFactory__","cashierConfigFactory","ɵɵinject","LazyClientConfigService","__decorate","LazyClientConfig","key","product","ClientConfigProductName","SF","service","get","CashierRouteAction","DepositType","CashierResourceService","api","quickDepositEnabled","pipe","map","data","enabled","SharedFeaturesApiService","ɵfac","providedIn","_CashierResourceService","QuickDepositAction","QuickDepositService","cashierConfig","userService","cashierResourceService","events","Subject","open","options","next","action","Open","isEnabled","isQuickDepositEnabled","isAuthenticated","of","UserService","_QuickDepositService","QUICK_DEPOSIT_OPTIONS","InjectionToken","CashierService","_window","user","nativeApp","page","quickDepositService","appInfoConfig","productHomepagesConfig","navigation","frontendHelperService","trackingService","productService","__privateAdd","inject","WINDOW","goToCashier","goToCashierInternal","goToCashierDeposit","pathTemplate","depositUrlTemplate","paymentsType","skipQuickDeposit","subscribe","track","Quick","showKYCVerifiedMessage","queryParameters","goToCashierWithdrawal","withdrawUrlTemplate","goToManageMyCards","manageMyCardsUrlTemplate","goToTransactionHistory","Object","assign","transactionHistoryUrlTemplate","skipTracking","goToPaymentPreferences","paymentPreferencesUrlTemplate","generatePaymentsAppUrl","updateReturnUrl","url","paymentsAppUrl","replace","encodeURIComponent","returnUrl","keys","forEach","generateCashierUrl","quickDeposit","isSingleDomainApp","isPaymentsAppEnabled","defaultOptions","trackerId","replaceInHistory","urlTemplate","host","ssoToken","lang","id","channel","brand","getFrontendDescription","isNativeApp","isNativeWrapper","__privateGet","location","href","handlePartialRegistration","origin","claims","ClaimType","IsPartiallyRegistered","depositUrl","goTo","portal","newOptions","getOptions","trackerIds","toLowerCase","absUrl","Normal","targetWindow","cashierTargetWindow","goToPaymentsUrl","type","customTracking","placeholders","event","replacePlaceholders","eventName","mapValues","value","triggerEvent","NativeAppService","Page","AppInfoConfig","ProductHomepagesConfig","NavigationService","FrontendHelperService","TrackingService","ProductService","_CashierService","CashierIframeAction","CashierIframeType","CashierIframeComponent","deviceService","config","balancePropertiesService","cashierService","mediaQueryService","navigationService","eventsService","nativeAppService","elementRepositoryService","changeDetectorRef","destroyRef","input","iframeClass","cssClass","onLoaded","EventEmitter","onClosed","onResized","signal","__privateSet","ngOnChanges","setUrl","ngOnInit","__async","Promise","all","firstValueFrom","whenReady","set","detectChanges","ngAfterViewInit","iframe","takeUntilDestroyed","uri","decodeURIComponent","message","split","reduce","seed","cur","param","trim","toUpperCase","Close","observers","length","goToLastKnownProduct","resize","scrollTo","Resize","UpdateBalance","refresh","Chat","clone","search","DepositSuccess","raise","VanillaEventNames","DepositSuccessQD","currency","FetchLocation","sendToNative","NativeEventType","TRIGGER_GEO_LOCATION","parameters","_b","wrapper","nativeElement","dataset","indexOf","target","parsedWidth","isActive","parseInt","parsedHeight","style","width","height","mainSlot","VanillaElements","MAIN_SLOT","getBoundingClientRect","classList","add","remove","ɵɵdirectiveInject","DeviceService","BalancePropertiesCoreService","MediaQueryService","EventsService","ElementRepositoryService","ChangeDetectorRef","DestroyRef","selectors","viewQuery","rf","ctx","IFrameComponent","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵproperty","Ne","ɵɵadvance","ɵɵclassMap","CommonModule","NgClass","encapsulation","changeDetection","_CashierIframeComponent","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","close","E","QUICK_DEPOSIT_WRAPPER","_r3","QuickDepositResponsiveComponent","commonMessages","utils","overlayRef","menuItemsService","logger","quickDepositUrlTemplate","format","update","detach","setActive","MenuSection","Menu","element","querySelector","QuickDeposit","isMobilePhone","err","warn","CommonMessages","UtilsService","OverlayRef","MenuItemsService","Logger","_","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","ɵɵtemplate","QuickDepositResponsiveComponent_Conditional_0_Template","QuickDepositResponsiveComponent_Conditional_1_Template","ɵɵconditional","OverlayModule","ElementKeyDirective","styles","_QuickDepositResponsiveComponent","QuickDepositOverlayService","overlay","injector","media","domChangeService","htmlNode","removeScrollBlockOnClose","isDesktop","getInjector","parentInjector","Injector","create","providers","provide","useValue","parent","show","currentRef","hasBlockScrolling","panelclass","backdropClass","panelClass","scrollStrategy","scrollStrategies","noop","positionStrategy","createPositionStrategy","backdropClick","detachments","stopReactingToMediaChanges","dispose","blockScrolling","ComponentPortal","attach","reactToMediaChanges","anchor","DEPOSIT_BUTTON_ANCHOR","position","flexibleConnectedTo","withPositions","originX","originY","overlayX","overlayY","withPush","withFlexibleDimensions","global","top","unsubscribe","observe","takeUntil","updatePositionStrategy","AUTH_HEADER_SECTION","filter","m","Array","from","addedNodes","some","n","nodeType","innerHTML","includes","complete","OverlayFactory","DomChangeService","HtmlNode","_QuickDepositOverlayService","CashierBootstrapService","coreCashierService","menuActionsService","accountMenuService","toastrQueueService","quickDepositOverlayService","onFeatureInit","register","MenuAction","GOTO_CASHIER","getCashierOptions","MenuActionOrigin","Header","GOTO_DEPOSIT","runDepositHooks","quickDepositAllowedOrigins","routerModeReturnUrl","GOTO_WITHDRAWAL","GOTO_MANAGE_MY_CARDS","GOTO_TRANSACTION_HISTORY","GOTO_PAYMENT_PREFERENCES","DEPOSIT_PROMPT_ACTION","currentToast","contextToastContent","content","getContentItemTracking","tracking","HEADER_BALANCE_ACTION","realPlayer","appendReferrer","initQuickDeposit","UserLoginEvent","MenuActionsService","AccountMenuDataService","ToastrQueueService","_CashierBootstrapService","runOnFeatureInit","CashierComponent","activatedRoute","lastKnownProductService","menu","snapshot","params","Deposit","Withdrawal","TransactionHistory","PaymentPreferences","ActivatedRoute","LastKnownProductService","dependencies","_CashierComponent","cashierGuard","quickDepositGuard","route","ROUTES","path","component","canActivate","authorized"],"mappings":"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"}