{"version":3,"file":"chunk-i7hqvxhr.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","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","ye","ke","Te","xe","M","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵproperty","Ne","ɵɵadvance","ɵɵclassMap","CommonModule","NgClass","encapsulation","changeDetection","_CashierIframeComponent","Ce","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","close","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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"}