{ "version": 3, "sources": ["apps/vendor-center-client/src/app/core/addon.service.ts"], "sourcesContent": ["import { catchError, filter, map, share, shareReplay, switchMap, take } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport {\n Addon,\n AddonsListResponse,\n ListAddonsRequest,\n MarketplaceApp,\n MarketplaceAppsApiService,\n} from '@galaxy/marketplace-apps/v1';\nimport { Observable, of, ReplaySubject } from 'rxjs';\nimport { MarketplaceAppService } from './marketplace-app/marketplace-app.service';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\n\n@Injectable()\nexport class AddonService {\n private currentAddonId$$: ReplaySubject = new ReplaySubject(1);\n private currentAddon$$: ReplaySubject = new ReplaySubject(1);\n\n constructor(\n private marketplaceAppsService: MarketplaceAppsApiService,\n private appService: MarketplaceAppService,\n private snackbarService: SnackbarService,\n ) {\n this.currentAddonId$\n .pipe(\n switchMap((addonId) => {\n if (!addonId) {\n return of(null);\n }\n return this.appService.getDraft(addonId).pipe(\n take(1),\n catchError(() => {\n this.snackbarService.openErrorSnack('Error loading addon. Please try again');\n return of(null);\n }),\n );\n }),\n )\n .subscribe((addon) => this.currentAddon$$.next(addon));\n }\n\n get currentAddonId$(): Observable {\n return this.currentAddonId$$.asObservable().pipe(share());\n }\n\n get currentAddon$(): Observable {\n return this.currentAddon$$.asObservable().pipe(filter((a) => !!a));\n }\n\n set currentAddon(addon: MarketplaceApp) {\n this.currentAddon$$.next(addon);\n }\n\n set currentAddonId(addonId: string) {\n this.currentAddonId$$.next(addonId);\n }\n\n public list(appId: string): Observable {\n const request = new ListAddonsRequest();\n request.appId = appId;\n return this.marketplaceAppsService.listAddons(request).pipe(\n map((response: AddonsListResponse) => {\n const addons = response.addons as Addon[];\n if (addons) {\n return addons.sort((a, b) => (a.title || '').localeCompare(b.title));\n }\n return [];\n }),\n shareReplay(1),\n );\n }\n}\n"], "mappings": "kPAcA,IAAaA,GAAY,IAAA,CAAnB,IAAOA,EAAP,MAAOA,CAAY,CAIvBC,YACUC,EACAC,EACAC,EAAgC,CAFhC,KAAAF,uBAAAA,EACA,KAAAC,WAAAA,EACA,KAAAC,gBAAAA,EANF,KAAAC,iBAA0C,IAAIC,EAAsB,CAAC,EACrE,KAAAC,eAAgD,IAAID,EAA8B,CAAC,EAOzF,KAAKE,gBACFC,KACCC,EAAWC,GACJA,EAGE,KAAKR,WAAWS,SAASD,CAAO,EAAEF,KACvCI,EAAK,CAAC,EACNC,EAAW,KACT,KAAKV,gBAAgBW,eAAe,uCAAuC,EACpEC,EAAG,IAAI,EACf,CAAC,EAPKA,EAAG,IAAI,CASjB,CAAC,EAEHC,UAAWC,GAAU,KAAKX,eAAeY,KAAKD,CAAK,CAAC,CACzD,CAEA,IAAIV,iBAAe,CACjB,OAAO,KAAKH,iBAAiBe,aAAY,EAAGX,KAAKY,EAAK,CAAE,CAC1D,CAEA,IAAIC,eAAa,CACf,OAAO,KAAKf,eAAea,aAAY,EAAGX,KAAKc,EAAQC,GAAM,CAAC,CAACA,CAAC,CAAC,CACnE,CAEA,IAAIC,aAAaP,EAAqB,CACpC,KAAKX,eAAeY,KAAKD,CAAK,CAChC,CAEA,IAAIQ,eAAef,EAAe,CAChC,KAAKN,iBAAiBc,KAAKR,CAAO,CACpC,CAEOgB,KAAKC,EAAa,CACvB,IAAMC,EAAU,IAAIC,EACpBD,OAAAA,EAAQD,MAAQA,EACT,KAAK1B,uBAAuB6B,WAAWF,CAAO,EAAEpB,KACrDuB,EAAKC,GAAgC,CACnC,IAAMC,EAASD,EAASC,OACxB,OAAIA,EACKA,EAAOC,KAAK,CAACX,EAAGY,KAAOZ,EAAEa,OAAS,IAAIC,cAAcF,EAAEC,KAAK,CAAC,EAE9D,CAAA,CACT,CAAC,EACDE,EAAY,CAAC,CAAC,CAElB,yCAxDWvC,GAAYwC,EAAAC,CAAA,EAAAD,EAAAE,CAAA,EAAAF,EAAAG,CAAA,CAAA,CAAA,wBAAZ3C,EAAY4C,QAAZ5C,EAAY6C,SAAA,CAAA,EAAnB,IAAO7C,EAAP8C,SAAO9C,CAAY,GAAA", "names": ["AddonService", "constructor", "marketplaceAppsService", "appService", "snackbarService", "currentAddonId$$", "ReplaySubject", "currentAddon$$", "currentAddonId$", "pipe", "switchMap", "addonId", "getDraft", "take", "catchError", "openErrorSnack", "of", "subscribe", "addon", "next", "asObservable", "share", "currentAddon$", "filter", "a", "currentAddon", "currentAddonId", "list", "appId", "request", "ListAddonsRequest", "listAddons", "map", "response", "addons", "sort", "b", "title", "localeCompare", "shareReplay", "\u0275\u0275inject", "MarketplaceAppsApiService", "MarketplaceAppService", "SnackbarService", "factory", "\u0275fac", "_AddonService"] }