{ "version": 3, "sources": ["apps/partner-center-client/src/app/core/tos-unified.service.ts"], "sourcesContent": ["import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\n\nimport { HttpClient } from '@angular/common/http';\nimport { SubscriptionTierInterface, SubscriptionTiersService } from '@galaxy/partner';\nimport { filter, finalize, shareReplay, switchMap, tap } from 'rxjs/operators';\n\nexport interface UnifiedTermsOfServiceAPIResponse {\n data?: UnifiedTermsOfServiceData;\n}\n\nexport interface UnifiedTermsOfServiceData {\n unifiedTermsOfService?: string;\n isImpersonated?: boolean;\n hasAcceptedLatestUnifiedTermsOfService?: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class UnifiedTOSService {\n private getUrl = '/_ajax/v1/unified-terms-of-service/';\n private postUrl = '/_ajax/v1/accept-unified-terms-of-service';\n private unifiedTermsOfServiceData$$: BehaviorSubject = new BehaviorSubject(null);\n private tosDataLoaded$$: BehaviorSubject = new BehaviorSubject(false);\n private _tosDataLoaded$ = this.tosDataLoaded$$.asObservable();\n private _unifiedTermsOfServiceData$ = this.unifiedTermsOfServiceData$$.asObservable();\n\n public readonly hasAcceptedTerms$ = this._tosDataLoaded$.pipe(\n filter(Boolean),\n switchMap(() => this.unifiedTermsOfServiceData$$),\n filter(Boolean),\n map((data) => data?.data?.hasAcceptedLatestUnifiedTermsOfService ?? false),\n );\n private hasAcceptedTerms: boolean;\n public unifiedTermsOfService: string;\n public isImpersonated: boolean;\n public isClassicSubscription: boolean;\n\n constructor(\n private httpClient: HttpClient,\n public dialog: MatDialog,\n ) {}\n\n get tosDataLoaded$(): Observable {\n return this._tosDataLoaded$;\n }\n\n get unifiedTermsOfServiceData$(): Observable {\n return this._unifiedTermsOfServiceData$;\n }\n\n get hasAcceptedTOS(): boolean {\n return this.hasAcceptedTerms;\n }\n\n set hasAcceptedTOS(newAcceptedValue: boolean) {\n this.hasAcceptedTerms = newAcceptedValue;\n }\n\n acceptTermsOfService(): Observable {\n return this.httpClient.post(this.postUrl, null);\n }\n\n reloadTermsOfServiceData(): void {\n const getUrl = this.getUrl + '?loadTerms=true';\n this.loadTermsOfService(getUrl);\n }\n\n getTermsOfServiceData(subscription: SubscriptionTierInterface): void {\n if (subscription) {\n this.isClassicSubscription = SubscriptionTiersService.isClassicSubscription(subscription);\n }\n this.loadTermsOfService(this.getUrl);\n }\n\n private loadTermsOfService(getUrl: string): void {\n this.httpClient\n .get(getUrl)\n .pipe(\n tap((tosData) => {\n this.unifiedTermsOfService = tosData?.data?.unifiedTermsOfService;\n this.isImpersonated = tosData?.data?.isImpersonated;\n this.hasAcceptedTerms = tosData?.data?.hasAcceptedLatestUnifiedTermsOfService;\n }),\n shareReplay(1),\n finalize(() => this.tosDataLoaded$$.next(true)),\n )\n .subscribe((tosData) => {\n this.unifiedTermsOfServiceData$$.next(tosData);\n });\n }\n}\n"], "mappings": "+NAmBA,IAAaA,GAAiB,IAAA,CAAxB,IAAOA,EAAP,MAAOA,CAAiB,CAmB5BC,YACUC,EACDC,EAAiB,CADhB,KAAAD,WAAAA,EACD,KAAAC,OAAAA,EApBD,KAAAC,OAAS,sCACT,KAAAC,QAAU,4CACV,KAAAC,4BAAiF,IAAIC,EAAgB,IAAI,EACzG,KAAAC,gBAA4C,IAAID,EAAgB,EAAK,EACrE,KAAAE,gBAAkB,KAAKD,gBAAgBE,aAAY,EACnD,KAAAC,4BAA8B,KAAKL,4BAA4BI,aAAY,EAEnE,KAAAE,kBAAoB,KAAKH,gBAAgBI,KACvDC,EAAOC,OAAO,EACdC,EAAU,IAAM,KAAKV,2BAA2B,EAChDQ,EAAOC,OAAO,EACdE,EAAKC,GAASA,GAAMA,MAAMC,wCAA0C,EAAK,CAAC,CAUzE,CAEH,IAAIC,gBAAc,CAChB,OAAO,KAAKX,eACd,CAEA,IAAIY,4BAA0B,CAC5B,OAAO,KAAKV,2BACd,CAEA,IAAIW,gBAAc,CAChB,OAAO,KAAKC,gBACd,CAEA,IAAID,eAAeE,EAAyB,CAC1C,KAAKD,iBAAmBC,CAC1B,CAEAC,sBAAoB,CAClB,OAAO,KAAKvB,WAAWwB,KAAK,KAAKrB,QAAS,IAAI,CAChD,CAEAsB,0BAAwB,CACtB,IAAMvB,EAAS,KAAKA,OAAS,kBAC7B,KAAKwB,mBAAmBxB,CAAM,CAChC,CAEAyB,sBAAsBC,EAAuC,CACvDA,IACF,KAAKC,sBAAwBC,EAAyBD,sBAAsBD,CAAY,GAE1F,KAAKF,mBAAmB,KAAKxB,MAAM,CACrC,CAEQwB,mBAAmBxB,EAAc,CACvC,KAAKF,WACF+B,IAAsC7B,CAAM,EAC5CS,KACCqB,EAAKC,GAAW,CACd,KAAKC,sBAAwBD,GAASjB,MAAMkB,sBAC5C,KAAKC,eAAiBF,GAASjB,MAAMmB,eACrC,KAAKd,iBAAmBY,GAASjB,MAAMC,sCACzC,CAAC,EACDmB,EAAY,CAAC,EACbC,EAAS,IAAM,KAAK/B,gBAAgBgC,KAAK,EAAI,CAAC,CAAC,EAEhDC,UAAWN,GAAW,CACrB,KAAK7B,4BAA4BkC,KAAKL,CAAO,CAC/C,CAAC,CACL,yCAvEWnC,GAAiB0C,EAAAC,CAAA,EAAAD,EAAAE,CAAA,CAAA,CAAA,wBAAjB5C,EAAiB6C,QAAjB7C,EAAiB8C,UAAAC,WADJ,MAAM,CAAA,EAC1B,IAAO/C,EAAPgD,SAAOhD,CAAiB,GAAA", "names": ["UnifiedTOSService", "constructor", "httpClient", "dialog", "getUrl", "postUrl", "unifiedTermsOfServiceData$$", "BehaviorSubject", "tosDataLoaded$$", "_tosDataLoaded$", "asObservable", "_unifiedTermsOfServiceData$", "hasAcceptedTerms$", "pipe", "filter", "Boolean", "switchMap", "map", "data", "hasAcceptedLatestUnifiedTermsOfService", "tosDataLoaded$", "unifiedTermsOfServiceData$", "hasAcceptedTOS", "hasAcceptedTerms", "newAcceptedValue", "acceptTermsOfService", "post", "reloadTermsOfServiceData", "loadTermsOfService", "getTermsOfServiceData", "subscription", "isClassicSubscription", "SubscriptionTiersService", "get", "tap", "tosData", "unifiedTermsOfService", "isImpersonated", "shareReplay", "finalize", "next", "subscribe", "\u0275\u0275inject", "HttpClient", "MatDialog", "factory", "\u0275fac", "providedIn", "_UnifiedTOSService"] }