{ "version": 3, "sources": ["apps/business-center-client/src/app/account-group/account-group.ts", "apps/business-center-client/src/app/account-group/authed-account-group-client.service.ts", "apps/business-center-client/src/app/account-group/account-group.service.ts", "apps/business-center-client/src/app/account-group/index.ts"], "sourcesContent": ["export class AccountGroup {\n accountGroupId: string;\n partnerId: string;\n companyName: string;\n marketId: string;\n suspended: boolean;\n latitude: number;\n longitude: number;\n address: string;\n address2?: string;\n country: string;\n state: string;\n city: string;\n taxIds: string[];\n zip: string;\n website: string;\n workNumber?: string[];\n serviceAreaBusiness?: boolean;\n hasRepMan?: boolean;\n isRepManExpired?: boolean;\n repManEditionID?: string;\n email?: string;\n vCategoryIds?: string[];\n externalCustomerId?: string;\n\n constructor(data?: Partial) {\n Object.assign(this, data);\n }\n\n get title(): string {\n return this.companyName;\n }\n\n get subtitle(): string {\n return getLocation(this);\n }\n}\n\nexport function getLocation(accountGroup: AccountGroup): string {\n let location = '';\n if (accountGroup && (accountGroup.address || accountGroup.city || accountGroup.state)) {\n const locationItems = [accountGroup.address, accountGroup.address2, accountGroup.city, accountGroup.state];\n location = locationItems.filter((i) => !!i).join(', ');\n }\n return location;\n}\n\nexport function fullAddress(accountGroup: AccountGroup): string {\n return [accountGroup.address, accountGroup.address2, accountGroup.city, accountGroup.state, accountGroup.country]\n .filter((p) => !!p)\n .join(', ');\n}\n", "import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n AccountGroup as SDKAccountGroup,\n AccountGroupService as AccountGroupSDK,\n ProjectionFilter,\n} from '@galaxy/account-group';\nimport { AtlasApiService } from '@vendasta/atlas';\nimport { Observable, of, throwError } from 'rxjs';\nimport { filter, map, mergeMap, retryWhen, take } from 'rxjs/operators';\nimport { AccountGroup } from './account-group';\n\n@Injectable({ providedIn: 'root' })\nexport class AuthedAccountGroupClientService {\n constructor(\n protected http: HttpClient,\n protected accountGroupSDK: AccountGroupSDK,\n protected atlasApi: AtlasApiService,\n ) {}\n\n getAccountGroups(accountGroupIds: string[]): Observable {\n const pf = new ProjectionFilter({\n napData: true,\n accounts: true,\n accountGroupExternalIdentifiers: true,\n contactDetails: true,\n status: true,\n legacyProductDetails: true,\n });\n return this.accountGroupSDK.getMulti(accountGroupIds, pf).pipe(\n filter((accountGroup) => !!accountGroup),\n map((accountGroups) =>\n accountGroups\n .filter((accountGroup) => accountGroup !== null)\n .map((accountGroup) => this._extractAccountGroup(accountGroup)),\n ),\n retryWhen((errors$) =>\n errors$.pipe(\n mergeMap((err) => (err.status === 403 ? throwError(err) : of(err))),\n take(5),\n ),\n ),\n );\n }\n\n _extractAccountGroup(sdkAccountGroup: SDKAccountGroup): AccountGroup {\n const accountGroup = new AccountGroup();\n\n accountGroup.accountGroupId = sdkAccountGroup.accountGroupId;\n\n accountGroup.partnerId = sdkAccountGroup.externalIdentifiers.partnerId;\n accountGroup.marketId = sdkAccountGroup.externalIdentifiers.marketId;\n accountGroup.taxIds = sdkAccountGroup.externalIdentifiers.taxIds;\n accountGroup.vCategoryIds = sdkAccountGroup.externalIdentifiers.vCategoryIds;\n accountGroup.externalCustomerId = sdkAccountGroup.externalIdentifiers.customerIdentifier;\n\n accountGroup.companyName = sdkAccountGroup.napData.companyName;\n accountGroup.address = sdkAccountGroup.napData.address;\n accountGroup.address2 = sdkAccountGroup.napData.address2;\n accountGroup.country = sdkAccountGroup.napData.country;\n accountGroup.state = sdkAccountGroup.napData.state;\n accountGroup.city = sdkAccountGroup.napData.city;\n accountGroup.website = sdkAccountGroup.napData.website;\n accountGroup.zip = sdkAccountGroup.napData.zip;\n accountGroup.workNumber = sdkAccountGroup.napData.workNumber;\n if (sdkAccountGroup.napData.location !== null) {\n accountGroup.latitude = sdkAccountGroup.napData.location.latitude;\n accountGroup.longitude = sdkAccountGroup.napData.location.longitude;\n }\n\n accountGroup.serviceAreaBusiness = !!sdkAccountGroup.napData.serviceAreaBusiness;\n accountGroup.suspended = sdkAccountGroup.status.suspended;\n\n const repManAccount = sdkAccountGroup.accounts.find((account) => account.marketplaceAppId === 'RM');\n if (repManAccount) {\n accountGroup.hasRepMan = true;\n accountGroup.repManEditionID = repManAccount.editionId;\n\n // TODO: Update the refresh expired listing button for all partners; for now, enable disabling it for only INHE.\n // Do not forget to update REFRESH_EXPIRED_LISTING_TOOLTIP to use a whitelabel product name or more generic word.\n const showRefreshExpiredListing = ['VUNI', 'INHE'].some((partnerID) => accountGroup.partnerId === partnerID);\n if (showRefreshExpiredListing) {\n accountGroup.isRepManExpired = repManAccount.isTrial && repManAccount.expired();\n }\n }\n if (sdkAccountGroup.contactDetails) {\n accountGroup.email = sdkAccountGroup.contactDetails.email;\n } else {\n accountGroup.email = sdkAccountGroup?.legacyProductDetails?.email;\n }\n return accountGroup;\n }\n}\n", "import { Injectable } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, Observable, zip } from 'rxjs';\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\nimport { AccountGroup } from './account-group';\nimport { AuthedAccountGroupClientService } from './authed-account-group-client.service';\n\nconst GET_MULTI_BATCH_SIZE = 50;\n\n@Injectable({ providedIn: 'root' })\nexport class AccountGroupService {\n currentAccountGroup$$ = new BehaviorSubject(null);\n\n public readonly currentAccountGroup$ = this.currentAccountGroup$$.pipe(\n filter((accountGroup) => accountGroup !== null),\n distinctUntilChanged((p: AccountGroup, q: AccountGroup) => p.accountGroupId === q.accountGroupId),\n );\n\n public readonly currentAccountGroup = toSignal(this.currentAccountGroup$);\n\n public readonly currentAccountGroupId = toSignal(\n this.currentAccountGroup$.pipe(map((accountGroup) => accountGroup.accountGroupId)),\n );\n\n constructor(private _accountGroupClient: AuthedAccountGroupClientService) {}\n\n switchAccountGroup(accountGroup: AccountGroup): void {\n this.currentAccountGroup$$.next(accountGroup);\n }\n\n getAccountGroup(accountGroupId: string): Observable {\n return this._accountGroupClient\n .getAccountGroups([accountGroupId])\n .pipe(map((accountGroups) => accountGroups[0] || null));\n }\n\n getAccountGroups(accountGroupIds: string[]): Observable {\n let batchIds: string[] = [];\n const requests$: Observable[] = [];\n accountGroupIds.forEach((accountGroupId) => {\n batchIds.push(accountGroupId);\n if (batchIds.length === GET_MULTI_BATCH_SIZE) {\n // TODO: Retrys\n requests$.push(this._accountGroupClient.getAccountGroups(batchIds));\n batchIds = [];\n }\n });\n if (batchIds.length > 0) {\n requests$.push(this._accountGroupClient.getAccountGroups(batchIds));\n batchIds = [];\n }\n\n // Return the joined stream once all batches are complete\n return zip(...requests$).pipe(\n map((responses) => {\n return responses.reduce((out, response) => out.concat(response), []);\n }),\n );\n }\n\n get currentAccountGroupId$(): Observable {\n return this.currentAccountGroup$.pipe(map((accountGroup) => accountGroup.accountGroupId));\n }\n}\n", "export { AccountGroup } from './account-group';\nexport { AccountGroupService } from './account-group.service';\n"], "mappings": "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", "names": ["getLocation", "accountGroup", "location", "address", "city", "state", "address2", "filter", "i", "join", "fullAddress", "country", "p", "AccountGroup", "init_account_group", "__esmMin", "constructor", "data", "Object", "assign", "title", "companyName", "subtitle", "AuthedAccountGroupClientService", "init_authed_account_group_client_service", "__esmMin", "init_src", "init_esm", "init_operators", "init_account_group", "constructor", "http", "accountGroupSDK", "atlasApi", "getAccountGroups", "accountGroupIds", "pf", "ProjectionFilter", "napData", "accounts", "accountGroupExternalIdentifiers", "contactDetails", "status", "legacyProductDetails", "getMulti", "pipe", "filter", "accountGroup", "map", "accountGroups", "_extractAccountGroup", "retryWhen", "errors$", "mergeMap", "err", "throwError", "of", "take", "sdkAccountGroup", "AccountGroup", "accountGroupId", "partnerId", "externalIdentifiers", "marketId", "taxIds", "vCategoryIds", "externalCustomerId", "customerIdentifier", "companyName", "address", "address2", "country", "state", "city", "website", "zip", "workNumber", "location", "latitude", "longitude", "serviceAreaBusiness", "suspended", "repManAccount", "find", "account", "marketplaceAppId", "hasRepMan", "repManEditionID", "editionId", "some", "partnerID", "isRepManExpired", "isTrial", "expired", "email", "\u0275\u0275inject", "HttpClient", "AccountGroupService", "AtlasApiService", "factory", "\u0275fac", "providedIn", "GET_MULTI_BATCH_SIZE", "AccountGroupService", "init_account_group_service", "__esmMin", "init_rxjs_interop", "init_esm", "init_operators", "constructor", "_accountGroupClient", "currentAccountGroup$$", "BehaviorSubject", "currentAccountGroup$", "pipe", "filter", "accountGroup", "distinctUntilChanged", "p", "q", "accountGroupId", "currentAccountGroup", "toSignal", "currentAccountGroupId", "map", "switchAccountGroup", "next", "getAccountGroup", "getAccountGroups", "accountGroups", "accountGroupIds", "batchIds", "requests$", "forEach", "push", "length", "zip", "responses", "reduce", "out", "response", "concat", "currentAccountGroupId$", "\u0275\u0275inject", "AuthedAccountGroupClientService", "factory", "\u0275fac", "providedIn", "init_account_group", "__esmMin", "init_account_group_service"] }