{ "version": 3, "sources": ["libs/business-nav/src/lib/config.service.ts", "libs/business-nav/src/lib/globals.ts", "libs/business-nav/src/lib/data.service.ts", "libs/business-nav/src/lib/core-components/nav-tabs-container/nav-tabs-container.interface.ts", "libs/business-nav/src/lib/core-components/nav-tabs-container/nav-tabs-container.component.ts", "libs/business-nav/src/lib/core-components/nav-tabs-container/nav-tabs-container.component.html"], "sourcesContent": ["import { Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { filter, map, shareReplay } from 'rxjs/operators';\n\nexport interface Config {\n partnerId: string;\n marketId: string | null;\n accountId: string | null;\n groupPath: string | null;\n serviceProviderId: string;\n defaultURL: string;\n}\n\nexport enum SidenavType {\n NOT_SET = 0,\n ACCOUNT_GROUP = 1,\n BRAND = 2,\n}\n\n@Injectable({ providedIn: 'root' })\nexport class BusinessNavConfigService {\n private readonly config$$ = new ReplaySubject(1);\n public readonly config$ = this.config$$.asObservable();\n public readonly navType$: Observable;\n public readonly isBrandType$: Observable;\n public readonly isAccountGroupType$: Observable;\n public readonly partnerId$: Observable;\n public readonly marketId$: Observable;\n public readonly accountGroupId$: Observable;\n public readonly groupPath$: Observable;\n public readonly serviceProviderId$: Observable;\n public readonly locationId$: Observable;\n\n constructor() {\n this.navType$ = this.config$.pipe(\n filter((config) => !!config && (!!config.accountId || !!config.groupPath)),\n map((config: Config) => {\n if (config.accountId) {\n return SidenavType.ACCOUNT_GROUP;\n } else if (config.groupPath) {\n return SidenavType.BRAND;\n }\n return SidenavType.NOT_SET;\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n this.isBrandType$ = this.navType$.pipe(\n map((type: SidenavType) => type === SidenavType.BRAND),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n this.isAccountGroupType$ = this.navType$.pipe(\n map((type: SidenavType) => type === SidenavType.ACCOUNT_GROUP),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n this.partnerId$ = this.config$.pipe(\n map((config: Config) => config?.partnerId),\n filter((pid) => pid !== null && pid !== undefined),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n this.marketId$ = this.config$.pipe(\n map((config: Config) => config.marketId),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n this.accountGroupId$ = this.config$.pipe(\n filter((config) => !!config && (!!config.accountId || !!config.groupPath)),\n map((config: Config) => config.accountId),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n this.groupPath$ = this.config$.pipe(\n filter((config) => !!config && (!!config.accountId || !!config.groupPath)),\n map((config: Config) => config.groupPath),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n this.serviceProviderId$ = this.config$.pipe(\n map((config: Config) => config.serviceProviderId),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n this.locationId$ = this.config$.pipe(\n filter((config) => !!config && (!!config.accountId || !!config.groupPath)),\n map((config: Config) => (config.accountId ? config.accountId : config.groupPath)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n }\n\n public initialize(\n partnerId: string,\n marketId: string,\n accountId: string,\n groupPath: string,\n serviceProviderId: string,\n defaultURL?: string,\n ): void {\n this.config$$.next({\n partnerId: partnerId,\n marketId: marketId || null,\n accountId: accountId || null,\n groupPath: groupPath || null,\n serviceProviderId: serviceProviderId,\n defaultURL: defaultURL,\n });\n }\n}\n", "export const signOutLabel = 'Sign Out';\nexport const stopImpersonatingLabel = 'Stop Impersonating';\n", "import { HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Capacitor } from '@capacitor/core';\nimport {\n AtlasApiService,\n DropdownItem,\n ExitLinkConfiguration,\n GetNavigationDataRequest,\n GetNavigationDataResponse,\n GetSalesInfoRequest,\n GetSalesInfoResponse,\n PinnedItem,\n PlatformMode,\n SalesContact,\n SideNavigationItem,\n SideNavigationLink,\n UserViewType,\n} from '@vendasta/atlas';\nimport {\n Observable,\n Subject,\n combineLatest,\n distinctUntilChanged,\n filter,\n map,\n merge,\n shareReplay,\n startWith,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport { BusinessNavConfigService, Config } from './config.service';\nimport { signOutLabel } from './globals';\n\ninterface CachedGetNavigationDataResponse {\n locationId: string;\n response: GetNavigationDataResponse;\n}\n\nconst DEFAULT_IMAGE_URL =\n 'https://lh3.googleusercontent.com/70DGcv8fyAzy1n_cWh8GyVbsCIWzPGZMdBFiwJa8Ot-Ss5Rf_oZY8hKOG2wAttY4_iuU5TlO9NLlDrBGuEJBj6DHwRnGd2CJ32J2Im3c1g';\n\n@Injectable({ providedIn: 'root' })\nexport class BusinessNavDataService {\n private readonly platformMode = Capacitor.isNativePlatform() ? PlatformMode.MOBILE : PlatformMode.WEB;\n private navigationData$ = this.cfgService.config$.pipe(\n filter((config) => !!config && (!!config.accountId || !!config.groupPath)),\n distinctUntilChanged((a, b) => {\n return (\n a.accountId === b.accountId &&\n a.groupPath === b.groupPath &&\n a.partnerId === b.partnerId &&\n a.marketId === b.marketId\n );\n }),\n switchMap((config) => {\n const locationId = BusinessNavDataService.locationIdFromConfig(config);\n const lastResponse = BusinessNavDataService.getLastResponse();\n return this.apiService\n .getNavigationData(\n new GetNavigationDataRequest({\n accountGroupId: config.accountId,\n groupPath: config.groupPath,\n partnerId: config.partnerId,\n marketId: config.marketId,\n platformMode: this.platformMode,\n }),\n )\n .pipe(\n tap((response) => BusinessNavDataService.rememberLastResponse({ locationId, response })),\n startWith(lastResponse?.locationId === locationId ? lastResponse.response : ('LOADING' as const)),\n );\n }),\n shareReplay({ refCount: false, bufferSize: 1 }),\n filter((res): res is GetNavigationDataResponse => res !== 'LOADING'),\n );\n\n readonly navigationLinks$ = this.navigationData$.pipe(\n map((res) => res?.navigationItems || []),\n map((allItems: SideNavigationItem[]) => {\n const pushlinks = (items: SideNavigationItem[]): SideNavigationLink[] => {\n return items.reduce((acc, item) => {\n if (item.sideNavigationContainer) {\n acc.push(...pushlinks(item.sideNavigationContainer.sideNavigationItems));\n }\n if (item.sideNavigationLink) {\n acc.push(item.sideNavigationLink);\n acc.push(...(item.sideNavigationLink.subLinks || []));\n }\n return acc;\n }, []);\n };\n\n return pushlinks(allItems);\n }),\n );\n readonly navigationIds$ = this.navigationLinks$.pipe(map((links) => links.map((link) => link.navigationId)));\n\n readonly linksWithSublinks$ = this.navigationData$.pipe(\n map((res) => res?.navigationItems || []),\n map((allItems: SideNavigationItem[]) => {\n return allItems\n .reduce(\n (accumulator, item) =>\n item.sideNavigationLink\n ? [...accumulator, item]\n : item.sideNavigationContainer\n ? [...accumulator, ...item.sideNavigationContainer.sideNavigationItems]\n : accumulator,\n [] as SideNavigationItem[],\n )\n .filter((item) => item.sideNavigationLink && item.sideNavigationLink.subLinks?.length > 0)\n .map((item) => item.sideNavigationLink);\n }),\n );\n\n private salesInfo$: Observable;\n public disableBusinessNav$: Observable;\n public disableProductSwitcher$: Observable;\n public businessCenterName$: Observable;\n public partnerName$: Observable;\n public cobrandingLogoURL$: Observable;\n public marketName$: Observable;\n public marketLogoUrl$: Observable;\n public darkMarketLogoUrl$: Observable;\n public salespersonName$: Observable;\n public salespersonPictureUrl$: Observable;\n public currentBrandName$: Observable;\n public salespersonContact$: Observable;\n public navigationItems$: Observable;\n public dropdownItems$: Observable;\n public pinnedItems$: Observable;\n public language$: Observable;\n public userViewType$: Observable;\n public locationSwitchable$: Observable;\n public businessAppBranding$: Observable;\n public exitLinkConfiguration$: Observable;\n\n public userId$: Observable;\n public readonly defaultLocation$: Observable<{\n accountGroupId?: string;\n groupId?: string;\n }>;\n private defaultLocationUpdate$$ = new Subject<{ accountGroupId: string; groupId: string }>();\n\n private static rememberLastResponse(res: CachedGetNavigationDataResponse): void {\n localStorage.setItem(\n 'business-nav-last-response',\n JSON.stringify({\n locationId: res.locationId,\n response: res.response.toApiJson(),\n }),\n );\n }\n\n private static getLastResponse(): CachedGetNavigationDataResponse {\n // eslint-disable-next-line @typescript-eslint/ban-types\n const o: { locationId: string; response: object } = JSON.parse(localStorage.getItem('business-nav-last-response'));\n if (!o || !o.response) {\n return null;\n }\n return {\n locationId: o.locationId,\n response: GetNavigationDataResponse.fromProto(o.response),\n };\n }\n\n private static locationIdFromConfig(cfg: Config): string {\n return cfg.accountId ? cfg.accountId : cfg.groupPath;\n }\n\n constructor(\n private apiService: AtlasApiService,\n private cfgService: BusinessNavConfigService,\n ) {\n this.salesInfo$ = this.cfgService.config$.pipe(\n filter((config: Config) => !!config && (!!config.accountId || !!config.groupPath)),\n distinctUntilChanged(),\n switchMap((config: Config) =>\n this.apiService\n .getSalesInfo(\n new GetSalesInfoRequest({\n accountGroupId: config.accountId,\n groupPath: config.groupPath,\n }),\n )\n .pipe(filter((res: GetSalesInfoResponse) => JSON.stringify(res.toApiJson()) !== '{}')),\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.dropdownItems$ = combineLatest([this.cfgService.serviceProviderId$, this.navigationData$]).pipe(\n map(([serviceProviderId, res]: [string, GetNavigationDataResponse]) => {\n if (!res.dropdownItems) {\n return [];\n }\n // Disable all dropdown items except for logout when business nav is disabled\n if (serviceProviderId !== 'VBC' && res.disableBusinessNav) {\n return res.dropdownItems.filter(\n (dropdownItem: DropdownItem) => dropdownItem.translationId === 'NAVIGATION.MENU.SIGN_OUT',\n );\n }\n return res.dropdownItems;\n }),\n startWith([\n {\n label: signOutLabel,\n translationId: 'NAVIGATION.MENU.SIGN_OUT',\n url: '/logout/',\n } as DropdownItem,\n ]),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.disableBusinessNav$ = this.navigationData$.pipe(\n filter((res: GetNavigationDataResponse) => !!res.disableBusinessNav),\n map((res: GetNavigationDataResponse) => res.disableBusinessNav),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.disableProductSwitcher$ = this.navigationData$.pipe(\n filter((res: GetNavigationDataResponse) => !!res.disableProductSwitcher),\n map((res: GetNavigationDataResponse) => res.disableProductSwitcher),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.exitLinkConfiguration$ = this.navigationData$.pipe(\n filter((res: GetNavigationDataResponse) => !!res.branding),\n map((res: GetNavigationDataResponse) => res.branding.exitLinkConfiguration),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.businessCenterName$ = this.navigationData$.pipe(\n filter((res) => !!res.branding),\n map((res) => res.branding.centerName),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.marketLogoUrl$ = this.navigationData$.pipe(\n filter((res) => !!res.branding),\n map((res) => res.branding.logoUrl),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.darkMarketLogoUrl$ = this.navigationData$.pipe(\n filter((res) => !!res.branding),\n map((res) => res.branding.darkModeLogoUrl),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.partnerName$ = this.navigationData$.pipe(\n filter((res) => !!res.branding),\n map((res) => res.branding.partnerName),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.cobrandingLogoURL$ = this.navigationData$.pipe(\n filter((res) => !!res.branding),\n map((res) => res.branding.cobrandingLogoUrl),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.marketName$ = this.navigationData$.pipe(\n filter((res) => !!res.branding),\n map((res) => res.branding.marketName),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.salespersonName$ = this.salesInfo$.pipe(\n filter((res) => !!res.salesInfo && !!res.salesInfo.salesContact),\n map((res) => {\n const { firstName, lastName } = res.salesInfo.salesContact;\n if (!firstName) {\n return '';\n } else {\n return firstName + (lastName ? ' ' + lastName : '');\n }\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n this.salespersonPictureUrl$ = this.salesInfo$.pipe(\n filter((res) => !!res.salesInfo?.salesContact?.photoUrlSecure),\n map((res) => res.salesInfo.salesContact.photoUrlSecure || DEFAULT_IMAGE_URL),\n startWith(DEFAULT_IMAGE_URL),\n );\n\n this.salespersonContact$ = this.salesInfo$.pipe(\n filter((res) => !!res.salesInfo && !!res.salesInfo.salesContact),\n map((res) => res.salesInfo.salesContact),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.navigationItems$ = this.navigationData$.pipe(\n map((res) => res.navigationItems),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.pinnedItems$ = this.navigationData$.pipe(\n map((res) => res.pinnedItems),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.language$ = this.navigationData$.pipe(\n map((res) => res.language),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.currentBrandName$ = this.navigationData$.pipe(\n map((res) => res.currentBrandName),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.userViewType$ = this.navigationData$.pipe(\n map((res) => {\n if (!res.userView) {\n return UserViewType.USER_VIEW_TYPE_SMB;\n }\n return res.userView;\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.locationSwitchable$ = this.navigationData$.pipe(\n map((res) => {\n return (\n res.userView === UserViewType.USER_VIEW_TYPE_ADMIN ||\n (res.associatedLocationIds.accountGroupIds?.length ?? 0) +\n (res.associatedLocationIds.groupPaths?.length ?? 0) >\n 1\n );\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.userId$ = this.navigationData$.pipe(\n map((resp: GetNavigationDataResponse) => resp.userId),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.defaultLocation$ = merge(\n this.defaultLocationUpdate$$,\n this.cfgService.partnerId$.pipe(switchMap((partnerId) => this.apiService.getDefaultLocation({ partnerId }))),\n ).pipe(shareReplay({ refCount: true, bufferSize: 1 }));\n\n this.businessAppBranding$ = this.navigationData$.pipe(\n map((data) => data.businessAppBranding ?? false),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n }\n\n setDefaultLocation(accountGroupId: string, groupId: string): Observable> {\n return this.cfgService.partnerId$.pipe(\n switchMap((partnerId) => this.apiService.setDefaultLocation({ partnerId, accountGroupId, groupId })),\n tap(() => this.defaultLocationUpdate$$.next({ accountGroupId, groupId })),\n take(1),\n );\n }\n}\n", "import { InjectionToken, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, createUrlTreeFromSnapshot } from '@angular/router';\nimport { SideNavigationLink } from '@vendasta/atlas';\nimport { filterNullAndUndefined } from '@vendasta/rx-utils';\nimport { Observable, defaultIfEmpty, map, take } from 'rxjs';\nimport { BusinessNavDataService } from '../../data.service';\n\nexport const NAV_TABS_CONTAINER_CONFIG_TOKEN = new InjectionToken>(\n 'NAV_TABS_CONTAINER_CONFIG',\n);\nexport type NavTabsContainerConfig = {\n link: SideNavigationLink;\n tabs: SideNavigationLink[];\n};\n\nexport const NAV_TABS_CONTAINER_ID_TOKEN = new InjectionToken('NAV_TABS_CONTAINER_ID');\nexport const configFactory = (\n navigationService: BusinessNavDataService,\n containerId: string,\n): Observable => {\n return navigationService.linksWithSublinks$.pipe(\n map((container) => container.find((c) => c.navigationId === containerId)),\n filterNullAndUndefined(),\n map((link) => {\n return {\n link: link,\n tabs: link.subLinks,\n };\n }),\n );\n};\n\n// route guard that will always route to the first tab\nexport const defaultRouteGuard = (r: ActivatedRouteSnapshot, s: RouterStateSnapshot) => {\n const c = inject(NAV_TABS_CONTAINER_CONFIG_TOKEN);\n\n return c.pipe(\n take(1),\n map((config) => {\n if (!config || !config.tabs) return false;\n if (!config.tabs?.find((t) => s.url.includes(t.path))) {\n return createUrlTreeFromSnapshot(r, [config.tabs?.[0].path]);\n }\n\n return true;\n }),\n );\n};\n\n// route resolver that adds the app url to the route data pageOptions field\nexport const AppUrlResolver = () => {\n const c = inject(NAV_TABS_CONTAINER_CONFIG_TOKEN);\n\n return c.pipe(\n take(1),\n filterNullAndUndefined(),\n map((config) => config.link.launchUrl),\n defaultIfEmpty(''),\n );\n};\n", "import { AsyncPipe, NgClass } from '@angular/common';\nimport { Component, Inject } from '@angular/core';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { NavigationEnd, Route, Router, RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SideNavigationLink } from '@vendasta/atlas';\nimport { Observable, filter, map, startWith, switchMap } from 'rxjs';\nimport { BusinessNavDataService } from '../../data.service';\nimport {\n AppUrlResolver,\n NAV_TABS_CONTAINER_CONFIG_TOKEN,\n NAV_TABS_CONTAINER_ID_TOKEN,\n NavTabsContainerConfig,\n configFactory,\n defaultRouteGuard,\n} from './nav-tabs-container.interface';\n\n@Component({\n selector: 'bc-nav-tabs-container',\n imports: [AsyncPipe, NgClass, MatTabsModule, RouterModule, TranslateModule],\n templateUrl: './nav-tabs-container.component.html',\n styleUrls: ['./nav-tabs-container.component.scss'],\n})\nexport class NavTabsContainerComponent {\n protected readonly tabs$: Observable;\n protected readonly activeTab$ = this.router.events.pipe(\n filter((e) => e instanceof NavigationEnd),\n map((e: NavigationEnd) => e.url),\n startWith(this.router.url),\n switchMap((url) => this.tabs$.pipe(map((tabs) => tabs.find((t) => url.includes(t.path))?.navigationId ?? ''))),\n );\n protected readonly showTabs$: Observable;\n\n constructor(\n @Inject(NAV_TABS_CONTAINER_CONFIG_TOKEN) config: Observable,\n private readonly router: Router,\n ) {\n this.tabs$ = config.pipe(map((c) => c.tabs));\n this.showTabs$ = config.pipe(map((c) => c.tabs.length > 1));\n }\n}\n\ntype TabbedRouteOverrides = Omit &\n Required>;\n\n/**\n * Creates a route for a set of pages that use tabs for navigation.\n * @param navigationId the navigationId of the parent route to the tabbed pages.\n * @param overrides are a subset of Route params, additive where applicable\n */\nexport function tabbedRoute(navigationId: string, overrides: TabbedRouteOverrides): Route {\n return tabbedContainerRoute(navigationId, overrides, false);\n}\n\n/**\n * Creates a route for a tabbed container.\n * Overrides are additive where applicable.\n */\nexport function tabbedContainerRoute(\n navigationId: string,\n overrides: TabbedRouteOverrides,\n withNavTabsContainer: false,\n): Route;\n/**\n * @Deprecated: Use `tabbedRoute` instead. Requires use of `nav-tabs.component` on page.\n */\nexport function tabbedContainerRoute(navigationId: string, overrides: TabbedRouteOverrides): Route;\n/**\n * @Deprecated: Use `tabbedRoute` instead. Requires use of `nav-tabs.component` on page.\n */\nexport function tabbedContainerRoute(\n navigationId: string,\n overrides: TabbedRouteOverrides,\n withNavTabsContainer: true,\n): Route;\nexport function tabbedContainerRoute(\n navigationId: string,\n overrides: TabbedRouteOverrides,\n withNavTabsContainer = true,\n): Route {\n const routeDefaults: Partial = {\n providers: [\n { provide: NAV_TABS_CONTAINER_ID_TOKEN, useValue: navigationId },\n {\n provide: NAV_TABS_CONTAINER_CONFIG_TOKEN,\n useFactory: configFactory,\n deps: [BusinessNavDataService, NAV_TABS_CONTAINER_ID_TOKEN],\n },\n ],\n loadComponent: withNavTabsContainer\n ? () => import('./nav-tabs-container.component').then((m) => m.NavTabsContainerComponent)\n : undefined,\n runGuardsAndResolvers: 'always',\n canActivate: [defaultRouteGuard],\n resolve: {\n appUrl: AppUrlResolver,\n },\n };\n\n const route: Route = {\n ...routeDefaults,\n ...overrides,\n };\n\n for (const key in overrides) {\n if (Object.prototype.hasOwnProperty.call(overrides, key) && Array.isArray(overrides[key])) {\n route[key] = [...(routeDefaults[key] || []), ...(overrides[key] || [])];\n }\n }\n\n return route;\n}\n", "@if ((showTabs$ | async) === true) {\n \n}\n\n\n
\n \n
\n
\n"], "mappings": "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", "names": ["SidenavType", "BusinessNavConfigService", "init_config_service", "__esmMin", "init_esm", "init_operators", "constructor", "config$$", "ReplaySubject", "config$", "asObservable", "navType$", "pipe", "filter", "config", "accountId", "groupPath", "map", "ACCOUNT_GROUP", "BRAND", "NOT_SET", "shareReplay", "refCount", "bufferSize", "isBrandType$", "type", "isAccountGroupType$", "partnerId$", "partnerId", "pid", "marketId$", "marketId", "accountGroupId$", "groupPath$", "serviceProviderId$", "serviceProviderId", "locationId$", "initialize", "defaultURL", "next", "factory", "\u0275fac", "providedIn", "signOutLabel", "stopImpersonatingLabel", "init_globals", "__esmMin", "DEFAULT_IMAGE_URL", "BusinessNavDataService", "init_data_service", "__esmMin", "init_dist", "init_vendasta_atlas", "init_esm", "init_globals", "rememberLastResponse", "res", "localStorage", "setItem", "JSON", "stringify", "locationId", "response", "toApiJson", "getLastResponse", "o", "parse", "getItem", "GetNavigationDataResponse", "fromProto", "locationIdFromConfig", "cfg", "accountId", "groupPath", "constructor", "apiService", "cfgService", "platformMode", "Capacitor", "isNativePlatform", "PlatformMode", "MOBILE", "WEB", "navigationData$", "config$", "pipe", "filter", "config", "distinctUntilChanged", "a", "b", "partnerId", "marketId", "switchMap", "lastResponse", "getNavigationData", "GetNavigationDataRequest", "accountGroupId", "tap", "startWith", "shareReplay", "refCount", "bufferSize", "navigationLinks$", "map", "navigationItems", "allItems", "pushlinks", "items", "reduce", "acc", "item", "sideNavigationContainer", "push", "sideNavigationItems", "sideNavigationLink", "subLinks", "navigationIds$", "links", "link", "navigationId", "linksWithSublinks$", "accumulator", "length", "defaultLocationUpdate$$", "Subject", "salesInfo$", "getSalesInfo", "GetSalesInfoRequest", "dropdownItems$", "combineLatest", "serviceProviderId$", "serviceProviderId", "dropdownItems", "disableBusinessNav", "dropdownItem", "translationId", "label", "signOutLabel", "url", "disableBusinessNav$", "disableProductSwitcher$", "disableProductSwitcher", "exitLinkConfiguration$", "branding", "exitLinkConfiguration", "businessCenterName$", "centerName", "marketLogoUrl$", "logoUrl", "darkMarketLogoUrl$", "darkModeLogoUrl", "partnerName$", "partnerName", "cobrandingLogoURL$", "cobrandingLogoUrl", "marketName$", "marketName", "salespersonName$", "salesInfo", "salesContact", "firstName", "lastName", "salespersonPictureUrl$", "photoUrlSecure", "salespersonContact$", "navigationItems$", "pinnedItems$", "pinnedItems", "language$", "language", "currentBrandName$", "currentBrandName", "userViewType$", "userView", "UserViewType", "USER_VIEW_TYPE_SMB", "locationSwitchable$", "USER_VIEW_TYPE_ADMIN", "associatedLocationIds", "accountGroupIds", "groupPaths", "userId$", "resp", "userId", "defaultLocation$", "merge", "partnerId$", "getDefaultLocation", "businessAppBranding$", "data", "businessAppBranding", "setDefaultLocation", "groupId", "next", "take", "\u0275\u0275inject", "AtlasApiService", "BusinessNavConfigService", "factory", "\u0275fac", "providedIn", "NAV_TABS_CONTAINER_CONFIG_TOKEN", "NAV_TABS_CONTAINER_ID_TOKEN", "configFactory", "defaultRouteGuard", "AppUrlResolver", "init_nav_tabs_container_interface", "__esmMin", "init_core", "init_router", "init_src", "init_esm", "InjectionToken", "navigationService", "containerId", "linksWithSublinks$", "pipe", "map", "container", "find", "c", "navigationId", "filterNullAndUndefined", "link", "tabs", "subLinks", "r", "s", "inject", "take", "config", "t", "url", "includes", "path", "createUrlTreeFromSnapshot", "launchUrl", "defaultIfEmpty", "nav_tabs_container_component_exports", "__export", "NavTabsContainerComponent", "tabbedContainerRoute", "tabbedRoute", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "tab_r1", "path", "navigationId", "\u0275\u0275pipeBind1", "ctx_r1", "activeTab$", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "label", "\u0275\u0275repeaterCreate", "NavTabsContainerComponent_Conditional_0_For_2_Template", "\u0275\u0275repeaterTrackByIdentity", "panel_r3", "\u0275\u0275repeater", "tabs$", "overrides", "withNavTabsContainer", "routeDefaults", "providers", "provide", "NAV_TABS_CONTAINER_ID_TOKEN", "useValue", "NAV_TABS_CONTAINER_CONFIG_TOKEN", "useFactory", "configFactory", "deps", "BusinessNavDataService", "loadComponent", "then", "m", "undefined", "runGuardsAndResolvers", "canActivate", "defaultRouteGuard", "resolve", "appUrl", "AppUrlResolver", "route", "__spreadValues", "key", "Object", "prototype", "hasOwnProperty", "call", "Array", "isArray", "init_nav_tabs_container_component", "__esmMin", "init_common", "init_tabs", "init_router", "init_ngx_translate_core", "init_esm", "init_data_service", "init_nav_tabs_container_interface", "constructor", "config", "router", "events", "pipe", "filter", "e", "NavigationEnd", "map", "url", "startWith", "switchMap", "tabs", "find", "t", "includes", "c", "showTabs$", "length", "\u0275\u0275directiveInject", "Router", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "NavTabsContainerComponent_Conditional_0_Template", "\u0275\u0275element", "\u0275\u0275conditional", "\u0275\u0275pureFunction1", "_c0", "AsyncPipe", "NgClass", "MatTabsModule", "MatTabNav", "MatTabNavPanel", "MatTabLink", "RouterModule", "RouterOutlet", "RouterLink", "TranslateModule", "styles"] }