{"version":3,"file":"chunk-53um2tj0.js","sources":["packages/vanilla/lib/features/balance-properties/src/balance-properties.client-config.ts","packages/vanilla/lib/features/balance-properties/src/balance-properties.service.ts","packages/vanilla/lib/features/balance-properties/src/balance-properties-bootstrap.service.ts","packages/vanilla/lib/features/balance-properties/src/balance-properties-dsl-values-provider.ts","packages/vanilla/lib/features/balance-properties/src/balance-properties.feature.ts","packages/vanilla/lib/features/balance-properties/src/balance-properties.models.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { BalanceProperties, ClientConfigProductName, LazyClientConfig, LazyClientConfigBase, LazyClientConfigService } from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'vnBalanceProperties', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: balancePropertiesConfigFactory,\n})\nexport class BalancePropertiesConfig extends LazyClientConfigBase {\n balanceProperties: BalanceProperties;\n}\n\nexport function balancePropertiesConfigFactory(service: LazyClientConfigService) {\n return service.get(BalancePropertiesConfig);\n}\n","import { Injectable, signal } from '@angular/core';\n\nimport { BalanceProperties, BalanceSettingsConfig, SharedFeaturesApiService, UserService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { BalanceTransfer, BalanceUpdate } from './balance-properties.models';\n\n/**\n * @whatItDoes Provides access to users balance and means to refresh it or transfer between types.\n *\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class BalancePropertiesService {\n readonly balanceInfo = signal(null);\n\n get balanceProperties(): Observable {\n return this.balancePropertiesEvents;\n }\n\n private readonly balancePropertiesEvents = new BehaviorSubject(null);\n\n constructor(\n private userService: UserService,\n private apiService: SharedFeaturesApiService,\n private balanceSettingsConfig: BalanceSettingsConfig,\n ) {}\n\n refresh(propagate: boolean = true) {\n if (this.userService.isAuthenticated) {\n this.apiService.get('balance', undefined, { showSpinner: false }).subscribe((response: BalanceUpdate) => {\n this.balanceInfo.set({ ...response.balance, propagateRefresh: propagate });\n this.balancePropertiesEvents.next({ ...response.balance, propagateRefresh: propagate });\n });\n }\n }\n\n update(balanceProperties: BalanceProperties) {\n this.balanceInfo.set(balanceProperties);\n this.balancePropertiesEvents.next(balanceProperties);\n }\n\n transfer(data: BalanceTransfer): Observable {\n return this.apiService.post('balance/transfer', data);\n }\n\n isLow(balance: number): boolean {\n const lowBalanceThreshold =\n this.balanceSettingsConfig.lowThresholds[this.userService.currency] || this.balanceSettingsConfig.lowThresholds['*'];\n\n if (lowBalanceThreshold == null) {\n return false;\n }\n\n return balance <= lowBalanceThreshold;\n }\n}\n","import { Injectable, NgZone, inject } from '@angular/core';\n\nimport {\n BalanceProperties,\n BalancePropertiesCoreService,\n LocalStoreKey,\n LocalStoreService,\n NativeAppService,\n NativeEvent,\n NativeEventType,\n OnFeatureInit,\n TrackingService,\n UserPreHooksLoginEvent,\n UserService,\n UserUpdateEvent,\n WINDOW,\n WindowEvent,\n} from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { BalancePropertiesConfig } from './balance-properties.client-config';\nimport { BalancePropertiesService } from './balance-properties.service';\n\n@Injectable()\nexport class BalancePropertiesBootstrapService implements OnFeatureInit {\n readonly #window = inject(WINDOW);\n\n constructor(\n private balancePropertiesService: BalancePropertiesService,\n private balancePropertiesConfig: BalancePropertiesConfig,\n private userService: UserService,\n private nativeAppService: NativeAppService,\n private localStoreService: LocalStoreService,\n private zone: NgZone,\n private trackingService: TrackingService,\n private balancePropertiesCoreService: BalancePropertiesCoreService,\n ) {}\n\n async onFeatureInit() {\n await firstValueFrom(this.balancePropertiesConfig.whenReady);\n\n this.balancePropertiesService.update(this.balancePropertiesConfig.balanceProperties);\n this.balancePropertiesCoreService.set(this.balancePropertiesService);\n //Necessary for betstation gridconnect login as it's a new login on top of anonymous user.\n this.userService.events.pipe(filter((e) => e instanceof UserPreHooksLoginEvent)).subscribe(() => {\n this.balancePropertiesService.refresh();\n });\n\n this.zone.runOutsideAngular(() => {\n // Refresh balance on focus but do not propagate it to other balances.\n this.#window.addEventListener(WindowEvent.Focus, () => {\n if (this.userService.isAuthenticated) {\n this.balancePropertiesService.refresh(false);\n }\n });\n\n this.#window.addEventListener(WindowEvent.Storage, (event: StorageEvent) => {\n if (event.storageArea == localStorage) {\n const authKey = this.localStoreService.get(LocalStoreKey.AuthStorageKey);\n\n if (authKey === 0 && this.userService.isAuthenticated) {\n this.balancePropertiesService.refresh();\n }\n }\n });\n });\n\n this.nativeAppService.eventsFromNative.subscribe((e: NativeEvent) => {\n const eventName = e.eventName.toUpperCase();\n if (eventName === NativeEventType.GETBALANCE) {\n this.nativeAppService.sendToNative({\n eventName: NativeEventType.USERBALANCE,\n parameters: {\n amount: this.balancePropertiesConfig.balanceProperties.accountBalance,\n currencyCode: this.userService.currency,\n },\n });\n } else if (eventName === NativeEventType.UPDATEBALANCE) {\n this.balancePropertiesService.refresh();\n }\n });\n\n this.balancePropertiesService.balanceProperties.pipe(filter(Boolean)).subscribe((balance: BalanceProperties) => {\n this.userService.triggerEvent(new UserUpdateEvent(new Map([['balanceProperties', balance]])));\n\n this.trackingService.triggerEvent('Event.Balance_Refresh', {\n 'user.profile.bal': balance.accountBalance,\n 'user.profile.previousBal': this.balancePropertiesConfig.balanceProperties.accountBalance,\n });\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n BalanceProperties,\n DSL_NOT_READY,\n DslCacheService,\n DslRecordable,\n DslRecorderService,\n DslValuesProvider,\n IntlService,\n} from '@frontend/vanilla/core';\n\nimport { BalancePropertiesService } from './balance-properties.service';\n\n@Injectable()\nexport class BalancePropertiesDslValuesProvider implements DslValuesProvider {\n private balanceProperties: BalanceProperties | null;\n\n constructor(\n private readonly dslRecorderService: DslRecorderService,\n private readonly intlService: IntlService,\n readonly balancePropertiesService: BalancePropertiesService,\n readonly dslCacheService: DslCacheService,\n ) {\n balancePropertiesService.balanceProperties.subscribe((balanceProperties: BalanceProperties | null) => {\n this.balanceProperties = balanceProperties;\n dslCacheService.invalidate(['balance']);\n });\n }\n\n getProviders(): { [provider: string]: DslRecordable } {\n const recordable = this.dslRecorderService.createRecordable('balance');\n const createProperty = (name: string, getProperty: (b: BalanceProperties) => number) => {\n recordable.createProperty({\n name,\n get: () => (this.balanceProperties ? getProperty(this.balanceProperties) : DSL_NOT_READY),\n deps: ['balance'],\n });\n };\n\n createProperty('AccountBalance', (b) => b.accountBalance);\n createProperty('PayPalBalance', (b) => b.payPalBalance);\n createProperty('PayPalRestrictedBalance', (b) => b.payPalRestrictedBalance);\n createProperty('PayPalCashoutableBalance', (b) => b.payPalCashoutableBalance);\n createProperty('BalanceForGameType', (b) => b.balanceForGameType);\n createProperty('BonusWinningsRestrictedBalance', (b) => b.bonusWinningsRestrictedBalance);\n createProperty('CashoutRestrictedBalance', (b) => b.cashoutRestrictedBalance);\n createProperty('CashoutableBalance', (b) => b.cashoutableBalance);\n createProperty('CashoutableBalanceReal', (b) => b.cashoutableBalanceReal);\n createProperty('AvailableBalance', (b) => b.availableBalance);\n createProperty('DepositRestrictedBalance', (b) => b.depositRestrictedBalance);\n createProperty('InPlayAmount', (b) => b.inPlayAmount);\n createProperty('ReleaseRestrictedBalance', (b) => b.releaseRestrictedBalance);\n createProperty('PlayMoneyBalance', (b) => b.playMoneyBalance);\n createProperty('PlayMoneyInPlayAmount', (b) => b.playMoneyInPlayAmount);\n createProperty('OwedAmount', (b) => b.owedAmount);\n createProperty('TaxWithheldAmount', (b) => b.taxWithheldAmount);\n createProperty('PokerWinningsRestrictedBalance', (b) => b.pokerWinningsRestrictedBalance);\n createProperty('CashoutRestrictedCashBalance', (b) => b.cashoutRestrictedCashBalance);\n createProperty('CashoutableBalanceAtOnline', (b) => b.cashoutableBalanceAtOnline);\n createProperty('CashoutableBalanceAtRetail', (b) => b.cashoutableBalanceAtRetail);\n createProperty('CreditCardDepositBalance', (b) => b.creditCardDepositBalance);\n createProperty('CreditCardWinningsBalance', (b) => b.creditCardWinningsBalance);\n createProperty('DebitCardDepositBalance', (b) => b.debitCardDepositBalance);\n createProperty('MainRealBalance', (b) => b.mainRealBalance);\n createProperty('UncollectedFunds', (b) => b.uncollectedFunds);\n createProperty('SportsDepositBalance', (b) => b.sportsDepositBalance);\n createProperty('SportsExclusiveBalance', (b) => b.sportsExclusiveBalance);\n createProperty('GamesDepositBalance', (b) => b.gamesDepositBalance);\n createProperty('SportsWinningsBalance', (b) => b.sportsWinningsBalance);\n createProperty('PokerWinningsBalance', (b) => b.pokerWinningsBalance);\n createProperty('SlotsWinningsBalance', (b) => b.slotsWinningsBalance);\n createProperty('SportsRestrictedBalance', (b) => b.sportsRestrictedBalance);\n createProperty('PokerRestrictedBalance', (b) => b.pokerRestrictedBalance);\n createProperty('SlotsRestrictedBalance', (b) => b.slotsRestrictedBalance);\n createProperty('AllWinningsBalance', (b) => b.allWinningsBalance);\n createProperty('MaxLimitExceededBalance', (b) => b.maxLimitExceededBalance);\n createProperty('PrepaidCardDepositBalance', (b) => b.prepaidCardDepositBalance);\n\n recordable.createFunction({ name: 'IsLow', get: (balance: number) => this.balancePropertiesService.isLow(balance), deps: [] });\n recordable.createFunction({ name: 'Format', get: (balance: number) => this.intlService.formatCurrency(balance), deps: [] });\n\n return { Balance: recordable };\n }\n}\n","import { registerLazyDslOnModuleInit, runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { BalancePropertiesBootstrapService } from './balance-properties-bootstrap.service';\nimport { BalancePropertiesDslValuesProvider } from './balance-properties-dsl-values-provider';\n\nexport function provide() {\n return [runOnFeatureInit(BalancePropertiesBootstrapService), registerLazyDslOnModuleInit(BalancePropertiesDslValuesProvider)];\n}\n","/**\n * @whatItDoes Represents balance transfer model.\n *\n * @stable\n */\nimport { BalanceProperties } from '@frontend/vanilla/core';\n\nexport interface BalanceTransfer {\n amount: number;\n fromBalanceType: BalanceType;\n toBalanceType: BalanceType;\n}\n\n/**\n * @whatItDoes Represents supported balance types for transfers from/to.\n *\n * @stable\n */\nexport enum BalanceType {\n PayPalBal = 'PAYPAL_BAL',\n MainRealBal = 'MAIN_REAL_BAL',\n}\n\n/**\n * @whatItDoes Represents balance update model.\n */\nexport interface BalanceUpdate {\n balance: BalanceProperties;\n}\n"],"names":["BalancePropertiesConfig","_a","LazyClientConfigBase","__ngFactoryType__","o","factory","__ngConditionalFactory__","balancePropertiesConfigFactory","ɵɵinject","LazyClientConfigService","__decorate","LazyClientConfig","key","product","ClientConfigProductName","SF","service","get","BalancePropertiesService","balanceProperties","balancePropertiesEvents","constructor","userService","apiService","balanceSettingsConfig","balanceInfo","signal","BehaviorSubject","refresh","propagate","isAuthenticated","undefined","showSpinner","subscribe","response","set","__spreadProps","__spreadValues","balance","propagateRefresh","next","update","transfer","data","post","isLow","lowBalanceThreshold","lowThresholds","currency","UserService","SharedFeaturesApiService","BalanceSettingsConfig","ɵfac","providedIn","_BalancePropertiesService","BalancePropertiesBootstrapService","_window","balancePropertiesService","balancePropertiesConfig","nativeAppService","localStoreService","zone","trackingService","balancePropertiesCoreService","__privateAdd","inject","WINDOW","onFeatureInit","__async","firstValueFrom","whenReady","events","pipe","filter","e","UserPreHooksLoginEvent","runOutsideAngular","__privateGet","addEventListener","WindowEvent","Focus","Storage","event","storageArea","localStorage","LocalStoreKey","AuthStorageKey","eventsFromNative","eventName","toUpperCase","NativeEventType","GETBALANCE","sendToNative","USERBALANCE","parameters","amount","accountBalance","currencyCode","UPDATEBALANCE","Boolean","triggerEvent","UserUpdateEvent","Map","NativeAppService","LocalStoreService","NgZone","TrackingService","BalancePropertiesCoreService","_BalancePropertiesBootstrapService","BalancePropertiesDslValuesProvider","dslRecorderService","intlService","dslCacheService","invalidate","getProviders","recordable","createRecordable","createProperty","name","getProperty","DSL_NOT_READY","deps","b","payPalBalance","payPalRestrictedBalance","payPalCashoutableBalance","balanceForGameType","bonusWinningsRestrictedBalance","cashoutRestrictedBalance","cashoutableBalance","cashoutableBalanceReal","availableBalance","depositRestrictedBalance","inPlayAmount","releaseRestrictedBalance","playMoneyBalance","playMoneyInPlayAmount","owedAmount","taxWithheldAmount","pokerWinningsRestrictedBalance","cashoutRestrictedCashBalance","cashoutableBalanceAtOnline","cashoutableBalanceAtRetail","creditCardDepositBalance","creditCardWinningsBalance","debitCardDepositBalance","mainRealBalance","uncollectedFunds","sportsDepositBalance","sportsExclusiveBalance","gamesDepositBalance","sportsWinningsBalance","pokerWinningsBalance","slotsWinningsBalance","sportsRestrictedBalance","pokerRestrictedBalance","slotsRestrictedBalance","allWinningsBalance","maxLimitExceededBalance","prepaidCardDepositBalance","createFunction","formatCurrency","Balance","DslRecorderService","IntlService","DslCacheService","_BalancePropertiesDslValuesProvider","provide","runOnFeatureInit","registerLazyDslOnModuleInit","BalanceType"],"mappings":"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"}