{ "version": 3, "sources": ["apps/partner-center-client/src/app/core/billing/billing-feature.service.ts", "apps/partner-center-client/src/app/core/billing/metrics.service.ts"], "sourcesContent": ["import { Injectable } from '@angular/core';\nimport { Observable, zip } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\nimport { AppConfigService } from '../../app-config.service';\nimport { ContractDetailsService } from '../contract-details.service';\nimport { PartnerService } from '../partner.service';\nimport { BillingFeatures, PartnerBillingInfo } from './billing-feature.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class BillingFeatureService {\n private partner$: Observable;\n\n constructor(\n private appConfig: AppConfigService,\n private partnerService: PartnerService,\n private contractDetailsService: ContractDetailsService,\n ) {\n this.partner$ = this.appConfig.config$.pipe(\n map((config) => config.partnerId),\n switchMap((partnerId) => this.partnerService.getPartnerByPartnerId(partnerId)),\n map((partnerData) => {\n return { id: partnerData.pid, stripeBilling: partnerData.stripe_billing };\n }),\n );\n }\n\n isSuperadminOrImpersonated(): boolean {\n return this.appConfig.config.isSuperAdmin || this.appConfig.config.isImpersonated;\n }\n\n features(): Observable {\n return zip(this.showStripeBillingFeatures(), this.showVerifiedContractBillingFeatures()).pipe(\n map(([stripe, verified]) => {\n return { stripe, verified };\n }),\n );\n }\n\n showVerifiedContractBillingFeatures(): Observable {\n return this.contractDetailsService.contractVerified.pipe(\n map((verified) => verified || this.isSuperadminOrImpersonated()),\n );\n }\n\n showStripeBillingFeatures(): Observable {\n return this.partner$.pipe(\n map((partner) => {\n return partner.stripeBilling;\n }),\n );\n }\n}\n", "import { Injectable } from '@angular/core';\nimport { Balance, MerchantService } from '@galaxy/billing';\nimport { RetryConfig, retryer } from '@vendasta/rx-utils';\nimport { Observable } from 'rxjs';\nimport { shareReplay } from 'rxjs/operators';\nimport { ApiService } from '../../api-service/api.service';\n\nconst retryConfig: RetryConfig = {\n maxAttempts: 5,\n retryDelay: 200,\n timeoutMilliseconds: 10000,\n};\n@Injectable({ providedIn: 'root' })\nexport class BillingMetricsService {\n constructor(private apiService: ApiService, private merchantService: MerchantService) {}\n\n public saasMetrics(dateRange: string, groupByMarket = false): Observable {\n const url = '/_ajax/v1/saas-metrics/';\n const body = {\n groupByMarket: groupByMarket,\n dateRange: dateRange,\n };\n return this.apiService.post(url, body);\n }\n\n public getOutstandingBalance(merchantId: string): Observable {\n return this.merchantService.getOutstandingBalance(merchantId).pipe(retryer(retryConfig), shareReplay(1));\n }\n}\n"], "mappings": "+TASA,IAAaA,GAAqB,IAAA,CAA5B,IAAOA,EAAP,MAAOA,CAAqB,CAGhCC,YACUC,EACAC,EACAC,EAA8C,CAF9C,KAAAF,UAAAA,EACA,KAAAC,eAAAA,EACA,KAAAC,uBAAAA,EAER,KAAKC,SAAW,KAAKH,UAAUI,QAAQC,KACrCC,EAAKC,GAAWA,EAAOC,SAAS,EAChCC,EAAWD,GAAc,KAAKP,eAAeS,sBAAsBF,CAAS,CAAC,EAC7EF,EAAKK,IACI,CAAEC,GAAID,EAAYE,IAAKC,cAAeH,EAAYI,cAAc,EACxE,CAAC,CAEN,CAEAC,4BAA0B,CACxB,OAAO,KAAKhB,UAAUO,OAAOU,cAAgB,KAAKjB,UAAUO,OAAOW,cACrE,CAEAC,UAAQ,CACN,OAAOC,EAAI,KAAKC,0BAAyB,EAAI,KAAKC,oCAAmC,CAAE,EAAEjB,KACvFC,EAAI,CAAC,CAACiB,EAAQC,CAAQ,KACb,CAAED,OAAAA,EAAQC,SAAAA,CAAQ,EAC1B,CAAC,CAEN,CAEAF,qCAAmC,CACjC,OAAO,KAAKpB,uBAAuBuB,iBAAiBpB,KAClDC,EAAKkB,GAAaA,GAAY,KAAKR,2BAA0B,CAAE,CAAC,CAEpE,CAEAK,2BAAyB,CACvB,OAAO,KAAKlB,SAASE,KACnBC,EAAKoB,GACIA,EAAQZ,aAChB,CAAC,CAEN,yCAzCWhB,GAAqB6B,EAAAC,CAAA,EAAAD,EAAAE,CAAA,EAAAF,EAAAG,CAAA,CAAA,CAAA,wBAArBhC,EAAqBiC,QAArBjC,EAAqBkC,UAAAC,WADR,MAAM,CAAA,EAC1B,IAAOnC,EAAPoC,SAAOpC,CAAqB,GAAA,ECFlC,IAAMqC,EAA2B,CAC/BC,YAAa,EACbC,WAAY,IACZC,oBAAqB,KAGVC,GAAqB,IAAA,CAA5B,IAAOA,EAAP,MAAOA,CAAqB,CAChCC,YAAoBC,EAAgCC,EAAgC,CAAhE,KAAAD,WAAAA,EAAgC,KAAAC,gBAAAA,CAAmC,CAEhFC,YAAYC,EAAmBC,EAAgB,GAAK,CACzD,IAAMC,EAAM,0BACNC,EAAO,CACXF,cAAeA,EACfD,UAAWA,GAEb,OAAO,KAAKH,WAAWO,KAAKF,EAAKC,CAAI,CACvC,CAEOE,sBAAsBC,EAAkB,CAC7C,OAAO,KAAKR,gBAAgBO,sBAAsBC,CAAU,EAAEC,KAAKC,EAAQjB,CAAW,EAAGkB,EAAY,CAAC,CAAC,CACzG,yCAdWd,GAAqBe,EAAAC,CAAA,EAAAD,EAAAE,CAAA,CAAA,CAAA,wBAArBjB,EAAqBkB,QAArBlB,EAAqBmB,UAAAC,WADR,MAAM,CAAA,EAC1B,IAAOpB,EAAPqB,SAAOrB,CAAqB,GAAA", "names": ["BillingFeatureService", "constructor", "appConfig", "partnerService", "contractDetailsService", "partner$", "config$", "pipe", "map", "config", "partnerId", "switchMap", "getPartnerByPartnerId", "partnerData", "id", "pid", "stripeBilling", "stripe_billing", "isSuperadminOrImpersonated", "isSuperAdmin", "isImpersonated", "features", "zip", "showStripeBillingFeatures", "showVerifiedContractBillingFeatures", "stripe", "verified", "contractVerified", "partner", "\u0275\u0275inject", "AppConfigService", "PartnerService", "ContractDetailsService", "factory", "\u0275fac", "providedIn", "_BillingFeatureService", "retryConfig", "maxAttempts", "retryDelay", "timeoutMilliseconds", "BillingMetricsService", "constructor", "apiService", "merchantService", "saasMetrics", "dateRange", "groupByMarket", "url", "body", "post", "getOutstandingBalance", "merchantId", "pipe", "retryer", "shareReplay", "\u0275\u0275inject", "ApiService", "MerchantService", "factory", "\u0275fac", "providedIn", "_BillingMetricsService"] }