{"version":3,"file":"chunk-e5kl2kau.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","ɵɵ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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"}