{ "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"], "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 hasTaskManager?: boolean;\n email?: string;\n vCategoryIds?: 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 AccountGroupService as AccountGroupSDK,\n ProjectionFilter,\n AccountGroup as SDKAccountGroup,\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 { productIds } from '../../globals';\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 });\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\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 const taskManagerProductID = productIds.taskManager;\n accountGroup.hasTaskManager = sdkAccountGroup.accounts.some(\n (account) => account.marketplaceAppId === taskManagerProductID,\n );\n if (sdkAccountGroup.contactDetails) {\n accountGroup.email = sdkAccountGroup.contactDetails.email;\n }\n return accountGroup;\n }\n}\n", "import { Injectable } from '@angular/core';\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 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"], "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_globals", "init_account_group", "constructor", "http", "accountGroupSDK", "atlasApi", "getAccountGroups", "accountGroupIds", "pf", "ProjectionFilter", "napData", "accounts", "accountGroupExternalIdentifiers", "contactDetails", "status", "getMulti", "pipe", "filter", "accountGroup", "map", "accountGroups", "_extractAccountGroup", "retryWhen", "errors$", "mergeMap", "err", "throwError", "of", "take", "sdkAccountGroup", "AccountGroup", "accountGroupId", "partnerId", "externalIdentifiers", "marketId", "taxIds", "vCategoryIds", "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", "taskManagerProductID", "productIds", "taskManager", "hasTaskManager", "email", "\u0275\u0275inject", "HttpClient", "AccountGroupService", "AtlasApiService", "factory", "\u0275fac", "providedIn", "_AuthedAccountGroupClientService", "GET_MULTI_BATCH_SIZE", "AccountGroupService", "init_account_group_service", "__esmMin", "init_esm", "init_operators", "constructor", "_accountGroupClient", "currentAccountGroup$$", "BehaviorSubject", "currentAccountGroup$", "pipe", "filter", "accountGroup", "distinctUntilChanged", "p", "q", "accountGroupId", "switchAccountGroup", "next", "getAccountGroup", "getAccountGroups", "map", "accountGroups", "accountGroupIds", "batchIds", "requests$", "forEach", "push", "length", "zip", "responses", "reduce", "out", "response", "concat", "currentAccountGroupId$", "\u0275\u0275inject", "AuthedAccountGroupClientService", "factory", "\u0275fac", "providedIn", "_AccountGroupService"] }