{"version":3,"file":"chunk-f258dgie.js","sources":["packages/vanilla/lib/shared/limits/src/deposit-limits.service.ts","packages/vanilla/lib/shared/limits/src/player-limits.service.ts","packages/vanilla/lib/shared/limits/src/limits.service.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { SharedFeaturesApiService, UserService } from '@frontend/vanilla/core';\nimport { Observable, ReplaySubject } from 'rxjs';\n\nexport interface DepositLimit {\n currentLimit?: number;\n type: string;\n limitSet: boolean;\n}\n\nexport interface DepositLimitsResonse {\n limits: DepositLimit[];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DepositLimitsService {\n private depositLimitsEvents = new ReplaySubject(1);\n private loaded: boolean = false;\n\n get limits(): Observable {\n return this.depositLimitsEvents;\n }\n\n constructor(\n private apiService: SharedFeaturesApiService,\n private user: UserService,\n ) {}\n\n load() {\n if (this.user.isAuthenticated && !this.loaded) {\n this.loaded = true;\n this.get().subscribe((depositLimits: DepositLimitsResonse) => {\n this.depositLimitsEvents.next(depositLimits.limits);\n });\n }\n }\n\n get(): Observable {\n return this.apiService.get('depositlimits');\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { SharedFeaturesApiService, UserService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n/**\n * @stable\n */\nexport interface PlayerLimit {\n limitType: string;\n currentLimit: number;\n}\n\n/**\n * @stable\n */\nexport interface PlayerLimitResponse {\n limits: PlayerLimit[];\n}\n\n/**\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class PlayerLimitsService {\n private loaded: boolean;\n private playerLimitsEvents = new BehaviorSubject(null);\n\n constructor(\n private apiService: SharedFeaturesApiService,\n private user: UserService,\n ) {}\n\n getLimits(): Observable {\n return this.playerLimitsEvents;\n }\n\n refresh() {\n this.loaded = false;\n\n if (!this.user.isAuthenticated) {\n return;\n }\n\n this.load();\n }\n\n get(): Observable {\n return this.apiService.get('playerlimits');\n }\n\n private load() {\n if (this.user.isAuthenticated && !this.loaded) {\n this.loaded = true;\n\n this.get().subscribe({\n next: (response: PlayerLimitResponse) => this.playerLimitsEvents.next(response.limits),\n error: () => this.playerLimitsEvents.next(null),\n });\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { CommonMessages, IntlService, UserService } from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\n\nimport { DepositLimit, DepositLimitsResonse, DepositLimitsService } from './deposit-limits.service';\nimport { PlayerLimit, PlayerLimitsService } from './player-limits.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LimitsService {\n constructor(\n private depositLimitsService: DepositLimitsService,\n private commonMessages: CommonMessages,\n private playerLimitsService: PlayerLimitsService,\n private userService: UserService,\n private intlService: IntlService,\n ) {}\n\n async getToasterPlaceholders(): Promise<{ [key: string]: string }> {\n const depositLimitsResponse: DepositLimitsResonse = await firstValueFrom(this.depositLimitsService.get());\n const depositLimits = depositLimitsResponse.limits\n .filter((limit: DepositLimit) => limit.limitSet && ['MONTHLY', 'WEEKLY', 'DAILY'].includes(limit.type))\n .map((depositLimit) => {\n return `${this.commonMessages[`DepositLimitType:${depositLimit.type}`]} ${this.intlService.formatCurrency(\n depositLimit.currentLimit || 0,\n )}`;\n })\n .join(', ');\n\n const playerLimitsResponse = await firstValueFrom(this.playerLimitsService.get());\n const sessionLimits = playerLimitsResponse.limits\n .filter((l: PlayerLimit) =>\n ['LOGIN_TIME_PER_MONTH_IN_MINUTES', 'LOGIN_TIME_PER_WEEK_IN_MINUTES', 'LOGIN_TIME_PER_DAY_IN_MINUTES'].includes(l.limitType),\n )\n .map(\n (sessionLimit) =>\n `${this.commonMessages[`PlayerLimitType:${sessionLimit.limitType}`]} ${\n Math.round(((sessionLimit.currentLimit || 0) / 60) * 100) / 100\n } ${this.commonMessages['Hours']}`,\n )\n .join(', ');\n\n const creditLimit = playerLimitsResponse.limits.find((l: PlayerLimit) => l.limitType === 'AUTOPAYOUT_LIMIT_ON_WINNING');\n\n return {\n displayName: this.userService.displayName,\n lastLoginTime: this.userService.lastLoginTimeFormatted || this.commonMessages['NotAvailable']!,\n depositLimits: depositLimits || this.commonMessages['NotAvailable']!,\n sessionLimits: sessionLimits,\n creditLimit: creditLimit ? this.intlService.formatCurrency(creditLimit.currentLimit) : this.commonMessages['NotAvailable']!,\n };\n }\n}\n"],"names":["DepositLimitsService","limits","depositLimitsEvents","constructor","apiService","user","ReplaySubject","loaded","load","isAuthenticated","get","subscribe","depositLimits","next","ɵɵinject","SharedFeaturesApiService","UserService","factory","ɵfac","providedIn","_DepositLimitsService","PlayerLimitsService","playerLimitsEvents","BehaviorSubject","getLimits","refresh","response","error","_PlayerLimitsService","LimitsService","depositLimitsService","commonMessages","playerLimitsService","userService","intlService","getToasterPlaceholders","__async","firstValueFrom","filter","limit","limitSet","includes","type","map","depositLimit","formatCurrency","currentLimit","join","playerLimitsResponse","sessionLimits","l","limitType","sessionLimit","Math","round","creditLimit","find","displayName","lastLoginTime","lastLoginTimeFormatted","CommonMessages","IntlService","_LimitsService"],"mappings":"uHAkBaA,IAAAA,CAAAA,CAAAA,CAAoB,IAAA,CAA3B,IAAOA,EAAP,MAAOA,CAAoB,CAI7B,IAAIC,MAAAA,EAAM,CACN,OAAO,IAAA,CAAKC,mBAChB,CAEAC,WAAAA,CACYC,EACAC,CAAiB,CAAA,CADjB,IAAAD,CAAAA,UAAAA,CAAAA,CACA,CAAA,IAAA,CAAAC,KAAAA,CATJ,CAAA,IAAA,CAAAH,oBAAsB,IAAII,EAAAA,CAA8B,CAAC,CACzD,CAAA,IAAA,CAAAC,MAAkB,CAAA,CAAA,EASvB,CAEHC,IAAAA,EAAI,CACI,IAAKH,CAAAA,IAAAA,CAAKI,iBAAmB,CAAC,IAAA,CAAKF,SACnC,IAAKA,CAAAA,MAAAA,CAAS,CACd,CAAA,CAAA,IAAA,CAAKG,GAAG,EAAA,CAAGC,UAAWC,CAAuC,EAAA,CACzD,KAAKV,mBAAoBW,CAAAA,IAAAA,CAAKD,EAAcX,MAAM,EACtD,CAAC,CAAA,EAET,CAEAS,GAAAA,EAAG,CACC,OAAO,IAAA,CAAKN,WAAWM,GAAI,CAAA,eAAe,CAC9C,CAxBSV,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAAoBc,EAAAC,CAAAA,EAAA,CAAAD,CAAAA,EAAAA,CAAAE,CAAA,CAAA,CAAA,0BAApBhB,CAAoBiB,CAAAA,OAAAA,CAApBjB,EAAoBkB,SAAAC,CAAAA,UAAAA,CAFjB,MAAM,CAAA,CAEhB,CAAA,IAAOnB,EAAPoB,CAAOpB,CAAAA,OAAAA,CAAoB,KCQjC,IAAaqB,GAAmB,IAAA,CAA1B,IAAOA,CAAAA,CAAP,MAAOA,CAAmB,CAI5BlB,WACYC,CAAAA,CAAAA,CACAC,EAAiB,CADjB,IAAA,CAAAD,WAAAA,CACA,CAAA,IAAA,CAAAC,KAAAA,CAJJ,CAAA,IAAA,CAAAiB,mBAAqB,IAAIC,EAAAA,CAAsC,IAAI,EAKxE,CAEHC,WAAS,CACL,OAAO,IAAKF,CAAAA,kBAChB,CAEAG,OAAAA,EAAO,CACH,IAAKlB,CAAAA,MAAAA,CAAS,GAET,IAAKF,CAAAA,IAAAA,CAAKI,iBAIf,IAAKD,CAAAA,IAAAA,GACT,CAEAE,GAAG,EAAA,CACC,OAAO,IAAKN,CAAAA,UAAAA,CAAWM,IAAI,cAAc,CAC7C,CAEQF,IAAI,EAAA,CACJ,IAAKH,CAAAA,IAAAA,CAAKI,eAAmB,EAAA,CAAC,KAAKF,MACnC,GAAA,IAAA,CAAKA,OAAS,CAEd,CAAA,CAAA,IAAA,CAAKG,KAAMC,CAAAA,SAAAA,CAAU,CACjBE,IAAAA,CAAOa,CAAkC,EAAA,IAAA,CAAKJ,mBAAmBT,IAAKa,CAAAA,CAAAA,CAASzB,MAAM,CACrF0B,CAAAA,KAAAA,CAAOA,IAAM,IAAKL,CAAAA,kBAAAA,CAAmBT,IAAK,CAAA,IAAI,CACjD,CAAA,CAAA,EAET,yCApCSQ,CAAmBP,EAAAA,EAAAA,CAAAC,EAAA,CAAAD,CAAAA,EAAAA,CAAAE,CAAA,CAAA,CAAA,CAAnBK,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAmBJ,OAAnBI,CAAAA,CAAAA,CAAmBH,UAAAC,UAFhB,CAAA,MAAM,CAAA,CAEhB,CAAA,IAAOE,EAAPO,CAAOP,CAAAA,OAAAA,CAAmB,CAAA,ICfnBQ,IAAAA,CAAAA,CAAAA,CAAa,IAAA,CAApB,IAAOA,EAAP,MAAOA,CAAa,CACtB1B,WACY2B,CAAAA,CAAAA,CACAC,EACAC,CACAC,CAAAA,CAAAA,CACAC,EAAwB,CAJxB,IAAA,CAAAJ,qBAAAA,CACA,CAAA,IAAA,CAAAC,eAAAA,CACA,CAAA,IAAA,CAAAC,mBAAAA,CAAAA,CAAAA,CACA,IAAAC,CAAAA,WAAAA,CAAAA,EACA,IAAAC,CAAAA,WAAAA,CAAAA,EACT,CAEGC,sBAAAA,EAAsB,QAAAC,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAExB,IAAMxB,CAAAA,CAAAA,CAD8C,MAAMyB,EAAAA,CAAe,KAAKP,oBAAqBpB,CAAAA,GAAAA,EAAK,CAC5DT,EAAAA,MAAAA,CACvCqC,OAAQC,CAAwBA,EAAAA,CAAAA,CAAMC,QAAY,EAAA,CAAC,SAAW,CAAA,QAAA,CAAU,OAAO,CAAEC,CAAAA,QAAAA,CAASF,EAAMG,IAAI,CAAC,EACrGC,GAAKC,CAAAA,CAAAA,EACK,CAAG,EAAA,IAAA,CAAKb,cAAe,CAAA,CAAA,iBAAA,EAAoBa,EAAaF,IAAI,CAAA,CAAE,CAAC,CAAI,CAAA,EAAA,IAAA,CAAKR,YAAYW,cACvFD,CAAAA,CAAAA,CAAaE,YAAgB,EAAA,CAAC,CACjC,CAAA,CACJ,EACAC,IAAK,CAAA,IAAI,EAERC,CAAuB,CAAA,MAAMX,GAAe,IAAKL,CAAAA,mBAAAA,CAAoBtB,GAAG,EAAE,CAC1EuC,CAAAA,CAAAA,CAAgBD,EAAqB/C,MACtCqC,CAAAA,MAAAA,CAAQY,GACL,CAAC,iCAAA,CAAmC,iCAAkC,+BAA+B,CAAA,CAAET,QAASS,CAAAA,CAAAA,CAAEC,SAAS,CAAC,EAE/HR,GACIS,CAAAA,CAAAA,EACG,GAAG,IAAKrB,CAAAA,cAAAA,CAAe,mBAAmBqB,CAAaD,CAAAA,SAAS,EAAE,CAAC,CAAA,CAAA,EAC/DE,KAAKC,KAAQF,CAAAA,CAAAA,CAAAA,CAAaN,cAAgB,CAAK,EAAA,EAAA,CAAM,GAAG,CAAI,CAAA,GAChE,CAAI,CAAA,EAAA,IAAA,CAAKf,cAAe,CAAA,KAAQ,EAAE,CAEzCgB,CAAAA,IAAAA,CAAK,IAAI,CAERQ,CAAAA,CAAAA,CAAcP,EAAqB/C,MAAOuD,CAAAA,IAAAA,CAAMN,CAAmBA,EAAAA,CAAAA,CAAEC,SAAc,GAAA,6BAA6B,EAEtH,OAAO,CACHM,YAAa,IAAKxB,CAAAA,WAAAA,CAAYwB,YAC9BC,aAAe,CAAA,IAAA,CAAKzB,WAAY0B,CAAAA,sBAAAA,EAA0B,IAAK5B,CAAAA,cAAAA,CAAe,aAC9EnB,aAAeA,CAAAA,CAAAA,EAAiB,KAAKmB,cAAe,CAAA,YAAA,CACpDkB,cAAeA,CACfM,CAAAA,WAAAA,CAAaA,CAAc,CAAA,IAAA,CAAKrB,WAAYW,CAAAA,cAAAA,CAAeU,EAAYT,YAAY,CAAA,CAAI,KAAKf,cAAe,CAAA,YAAA,CAEnH,2CA1CSF,CAAaf,EAAAA,EAAAA,CAAAd,CAAA,CAAA,CAAAc,EAAA8C,CAAAA,EAAA,EAAA9C,EAAAO,CAAAA,CAAA,EAAAP,EAAAE,CAAAA,CAAA,EAAAF,EAAA+C,CAAAA,EAAA,CAAA,CAAA,CAAbhC,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAaZ,QAAbY,CAAaX,CAAAA,SAAAA,CAAAC,WAFV,MAAM,CAAA,EAEhB,IAAOU,CAAAA,CAAPiC,CAAOjC,CAAAA,OAAAA,CAAa,CAAA"}