{ "version": 3, "sources": ["libs/business-nav/src/lib/config.service.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", "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';\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: 'Sign Out',\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 standalone: true,\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": "wtBAaA,IAAYA,EAAZ,SAAYA,EAAW,CACrBA,OAAAA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,cAAA,CAAA,EAAA,gBACAA,EAAAA,EAAA,MAAA,CAAA,EAAA,QAHUA,CAIZ,EAJYA,GAAW,CAAA,CAAA,EAOVC,IAAwB,IAAA,CAA/B,IAAOA,EAAP,MAAOA,CAAwB,CAanCC,aAAA,CAZiB,KAAAC,SAAW,IAAIC,EAAsB,CAAC,EACvC,KAAAC,QAAU,KAAKF,SAASG,aAAY,EAYlD,KAAKC,SAAW,KAAKF,QAAQG,KAC3BC,EAAQC,GAAW,CAAC,CAACA,IAAW,CAAC,CAACA,EAAOC,WAAa,CAAC,CAACD,EAAOE,UAAU,EACzEC,EAAKH,GACCA,EAAOC,UACFX,EAAYc,cACVJ,EAAOE,UACTZ,EAAYe,MAEdf,EAAYgB,OACpB,EACDC,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAEhD,KAAKC,aAAe,KAAKb,SAASC,KAChCK,EAAKQ,GAAsBA,IAASrB,EAAYe,KAAK,EACrDE,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAEhD,KAAKG,oBAAsB,KAAKf,SAASC,KACvCK,EAAKQ,GAAsBA,IAASrB,EAAYc,aAAa,EAC7DG,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAEhD,KAAKI,WAAa,KAAKlB,QAAQG,KAC7BK,EAAKH,GAAmBA,GAAQc,SAAS,EACzCf,EAAQgB,GAAQA,GAAQ,IAAyB,EACjDR,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAEhD,KAAKO,UAAY,KAAKrB,QAAQG,KAC5BK,EAAKH,GAAmBA,EAAOiB,QAAQ,EACvCV,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAEhD,KAAKS,gBAAkB,KAAKvB,QAAQG,KAClCC,EAAQC,GAAW,CAAC,CAACA,IAAW,CAAC,CAACA,EAAOC,WAAa,CAAC,CAACD,EAAOE,UAAU,EACzEC,EAAKH,GAAmBA,EAAOC,SAAS,EACxCM,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAEhD,KAAKU,WAAa,KAAKxB,QAAQG,KAC7BC,EAAQC,GAAW,CAAC,CAACA,IAAW,CAAC,CAACA,EAAOC,WAAa,CAAC,CAACD,EAAOE,UAAU,EACzEC,EAAKH,GAAmBA,EAAOE,SAAS,EACxCK,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAEhD,KAAKW,mBAAqB,KAAKzB,QAAQG,KACrCK,EAAKH,GAAmBA,EAAOqB,iBAAiB,EAChDd,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAEhD,KAAKa,YAAc,KAAK3B,QAAQG,KAC9BC,EAAQC,GAAW,CAAC,CAACA,IAAW,CAAC,CAACA,EAAOC,WAAa,CAAC,CAACD,EAAOE,UAAU,EACzEC,EAAKH,GAAoBA,EAAOC,UAAYD,EAAOC,UAAYD,EAAOE,SAAU,EAChFK,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,CAElD,CAEOc,WACLT,EACAG,EACAhB,EACAC,EACAmB,EACAG,EAAmB,CAEnB,KAAK/B,SAASgC,KAAK,CACjBX,UAAWA,EACXG,SAAUA,GAAY,KACtBhB,UAAWA,GAAa,KACxBC,UAAWA,GAAa,KACxBmB,kBAAmBA,EACnBG,WAAYA,EACb,CACH,yCAhFWjC,EAAwB,wBAAxBA,EAAwBmC,QAAxBnC,EAAwBoC,UAAAC,WADX,MAAM,CAAA,EAC1B,IAAOrC,EAAPsC,SAAOtC,CAAwB,GAAA,ECmBrC,IAAMuC,GACJ,+IAGWC,IAAsB,IAAA,CAA7B,IAAOA,EAAP,MAAOA,CAAsB,CAsGzB,OAAOC,qBAAqBC,EAAoC,CACtEC,aAAaC,QACX,6BACAC,KAAKC,UAAU,CACbC,WAAYL,EAAIK,WAChBC,SAAUN,EAAIM,SAASC,UAAS,EACjC,CAAC,CAEN,CAEQ,OAAOC,iBAAe,CAE5B,IAAMC,EAA8CN,KAAKO,MAAMT,aAAaU,QAAQ,4BAA4B,CAAC,EACjH,MAAI,CAACF,GAAK,CAACA,EAAEH,SACJ,KAEF,CACLD,WAAYI,EAAEJ,WACdC,SAAUM,GAA0BC,UAAUJ,EAAEH,QAAQ,EAE5D,CAEQ,OAAOQ,qBAAqBC,EAAW,CAC7C,OAAOA,EAAIC,UAAYD,EAAIC,UAAYD,EAAIE,SAC7C,CAEAC,YACUC,EACAC,EAAoC,CADpC,KAAAD,WAAAA,EACA,KAAAC,WAAAA,EAjIO,KAAAC,aAAeC,GAAUC,iBAAgB,EAAKC,EAAaC,OAASD,EAAaE,IAC1F,KAAAC,gBAAkB,KAAKP,WAAWQ,QAAQC,KAChDC,EAAQC,GAAW,CAAC,CAACA,IAAW,CAAC,CAACA,EAAOf,WAAa,CAAC,CAACe,EAAOd,UAAU,EACzEe,EAAqB,CAACC,EAAGC,IAErBD,EAAEjB,YAAckB,EAAElB,WAClBiB,EAAEhB,YAAciB,EAAEjB,WAClBgB,EAAEE,YAAcD,EAAEC,WAClBF,EAAEG,WAAaF,EAAEE,QAEpB,EACDC,EAAWN,GAAU,CACnB,IAAM1B,EAAaP,EAAuBgB,qBAAqBiB,CAAM,EAC/DO,EAAexC,EAAuBU,gBAAe,EAC3D,OAAO,KAAKW,WACToB,kBACC,IAAIC,GAAyB,CAC3BC,eAAgBV,EAAOf,UACvBC,UAAWc,EAAOd,UAClBkB,UAAWJ,EAAOI,UAClBC,SAAUL,EAAOK,SACjBf,aAAc,KAAKA,aACpB,CAAC,EAEHQ,KACCa,EAAKpC,GAAaR,EAAuBC,qBAAqB,CAAEM,WAAAA,EAAYC,SAAAA,CAAQ,CAAE,CAAC,EACvFqC,EAAUL,GAAcjC,aAAeA,EAAaiC,EAAahC,SAAY,SAAmB,CAAC,CAEvG,CAAC,EACDsC,EAAY,CAAEC,SAAU,GAAOC,WAAY,CAAC,CAAE,EAC9ChB,EAAQ9B,GAA0CA,IAAQ,SAAS,CAAC,EAG7D,KAAA+C,iBAAmB,KAAKpB,gBAAgBE,KAC/CmB,EAAKhD,GAAQA,GAAKiD,iBAAmB,CAAA,CAAE,EACvCD,EAAKE,GAAkC,CACrC,IAAMC,EAAaC,GACVA,EAAMC,OAAO,CAACC,EAAKC,KACpBA,EAAKC,yBACPF,EAAIG,KAAK,GAAGN,EAAUI,EAAKC,wBAAwBE,mBAAmB,CAAC,EAErEH,EAAKI,qBACPL,EAAIG,KAAKF,EAAKI,kBAAkB,EAChCL,EAAIG,KAAK,GAAIF,EAAKI,mBAAmBC,UAAY,CAAA,CAAG,GAE/CN,GACN,CAAA,CAAE,EAGP,OAAOH,EAAUD,CAAQ,CAC3B,CAAC,CAAC,EAEK,KAAAW,eAAiB,KAAKd,iBAAiBlB,KAAKmB,EAAKc,GAAUA,EAAMd,IAAKe,GAASA,EAAKC,YAAY,CAAC,CAAC,EAElG,KAAAC,mBAAqB,KAAKtC,gBAAgBE,KACjDmB,EAAKhD,GAAQA,GAAKiD,iBAAmB,CAAA,CAAE,EACvCD,EAAKE,GACIA,EACJG,OACC,CAACa,EAAaX,IACZA,EAAKI,mBACD,CAAC,GAAGO,EAAaX,CAAI,EACrBA,EAAKC,wBACH,CAAC,GAAGU,EAAa,GAAGX,EAAKC,wBAAwBE,mBAAmB,EACpEQ,EACR,CAAA,CAA0B,EAE3BpC,OAAQyB,GAASA,EAAKI,oBAAsBJ,EAAKI,mBAAmBC,UAAUO,OAAS,CAAC,EACxFnB,IAAKO,GAASA,EAAKI,kBAAkB,CACzC,CAAC,EA8BI,KAAAS,wBAA0B,IAAIC,EAgCpC,KAAKC,WAAa,KAAKlD,WAAWQ,QAAQC,KACxCC,EAAQC,GAAmB,CAAC,CAACA,IAAW,CAAC,CAACA,EAAOf,WAAa,CAAC,CAACe,EAAOd,UAAU,EACjFe,EAAoB,EACpBK,EAAWN,GACT,KAAKZ,WACFoD,aACC,IAAIC,GAAoB,CACtB/B,eAAgBV,EAAOf,UACvBC,UAAWc,EAAOd,UACnB,CAAC,EAEHY,KAAKC,EAAQ9B,GAA8BG,KAAKC,UAAUJ,EAAIO,UAAS,CAAE,IAAM,IAAI,CAAC,CAAC,EAE1FqC,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAGhD,KAAK2B,eAAiBC,EAAc,CAAC,KAAKtD,WAAWuD,mBAAoB,KAAKhD,eAAe,CAAC,EAAEE,KAC9FmB,EAAI,CAAC,CAAC4B,EAAmB5E,CAAG,IACrBA,EAAI6E,cAILD,IAAsB,OAAS5E,EAAI8E,mBAC9B9E,EAAI6E,cAAc/C,OACtBiD,GAA+BA,EAAaC,gBAAkB,0BAA0B,EAGtFhF,EAAI6E,cARF,CAAA,CASV,EACDlC,EAAU,CACR,CACEsC,MAAO,WACPD,cAAe,2BACfE,IAAK,WACU,CAClB,EACDtC,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAGhD,KAAKqC,oBAAsB,KAAKxD,gBAAgBE,KAC9CC,EAAQ9B,GAAmC,CAAC,CAACA,EAAI8E,kBAAkB,EACnE9B,EAAKhD,GAAmCA,EAAI8E,kBAAkB,EAC9DlC,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAGhD,KAAKsC,wBAA0B,KAAKzD,gBAAgBE,KAClDC,EAAQ9B,GAAmC,CAAC,CAACA,EAAIqF,sBAAsB,EACvErC,EAAKhD,GAAmCA,EAAIqF,sBAAsB,EAClEzC,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAGhD,KAAKwC,uBAAyB,KAAK3D,gBAAgBE,KACjDC,EAAQ9B,GAAmC,CAAC,CAACA,EAAIuF,QAAQ,EACzDvC,EAAKhD,GAAmCA,EAAIuF,SAASC,qBAAqB,EAC1E5C,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAGhD,KAAK2C,oBAAsB,KAAK9D,gBAAgBE,KAC9CC,EAAQ9B,GAAQ,CAAC,CAACA,EAAIuF,QAAQ,EAC9BvC,EAAKhD,GAAQA,EAAIuF,SAASG,UAAU,EACpC9C,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAGhD,KAAK6C,eAAiB,KAAKhE,gBAAgBE,KACzCC,EAAQ9B,GAAQ,CAAC,CAACA,EAAIuF,QAAQ,EAC9BvC,EAAKhD,GAAQA,EAAIuF,SAASK,OAAO,EACjChD,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAGhD,KAAK+C,mBAAqB,KAAKlE,gBAAgBE,KAC7CC,EAAQ9B,GAAQ,CAAC,CAACA,EAAIuF,QAAQ,EAC9BvC,EAAKhD,GAAQA,EAAIuF,SAASO,eAAe,EACzClD,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAGhD,KAAKiD,aAAe,KAAKpE,gBAAgBE,KACvCC,EAAQ9B,GAAQ,CAAC,CAACA,EAAIuF,QAAQ,EAC9BvC,EAAKhD,GAAQA,EAAIuF,SAASS,WAAW,EACrCpD,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAGhD,KAAKmD,mBAAqB,KAAKtE,gBAAgBE,KAC7CC,EAAQ9B,GAAQ,CAAC,CAACA,EAAIuF,QAAQ,EAC9BvC,EAAKhD,GAAQA,EAAIuF,SAASW,iBAAiB,EAC3CtD,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAGhD,KAAKqD,YAAc,KAAKxE,gBAAgBE,KACtCC,EAAQ9B,GAAQ,CAAC,CAACA,EAAIuF,QAAQ,EAC9BvC,EAAKhD,GAAQA,EAAIuF,SAASa,UAAU,EACpCxD,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAGhD,KAAKuD,iBAAmB,KAAK/B,WAAWzC,KACtCC,EAAQ9B,GAAQ,CAAC,CAACA,EAAIsG,WAAa,CAAC,CAACtG,EAAIsG,UAAUC,YAAY,EAC/DvD,EAAKhD,GAAO,CACV,GAAM,CAAEwG,UAAAA,EAAWC,SAAAA,CAAQ,EAAKzG,EAAIsG,UAAUC,aAC9C,OAAKC,EAGIA,GAAaC,EAAW,IAAMA,EAAW,IAFzC,EAIX,CAAC,EACD7D,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAEhD,KAAK4D,uBAAyB,KAAKpC,WAAWzC,KAC5CC,EAAQ9B,GAAQ,CAAC,CAACA,EAAIsG,WAAWC,cAAcI,cAAc,EAC7D3D,EAAKhD,GAAQA,EAAIsG,UAAUC,aAAaI,gBAAkB9G,EAAiB,EAC3E8C,EAAU9C,EAAiB,CAAC,EAG9B,KAAK+G,oBAAsB,KAAKtC,WAAWzC,KACzCC,EAAQ9B,GAAQ,CAAC,CAACA,EAAIsG,WAAa,CAAC,CAACtG,EAAIsG,UAAUC,YAAY,EAC/DvD,EAAKhD,GAAQA,EAAIsG,UAAUC,YAAY,EACvC3D,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAGhD,KAAK+D,iBAAmB,KAAKlF,gBAAgBE,KAC3CmB,EAAKhD,GAAQA,EAAIiD,eAAe,EAChCL,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAGhD,KAAKgE,aAAe,KAAKnF,gBAAgBE,KACvCmB,EAAKhD,GAAQA,EAAI+G,WAAW,EAC5BnE,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAGhD,KAAKkE,UAAY,KAAKrF,gBAAgBE,KACpCmB,EAAKhD,GAAQA,EAAIiH,QAAQ,EACzBrE,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAGhD,KAAKoE,kBAAoB,KAAKvF,gBAAgBE,KAC5CmB,EAAKhD,GAAQA,EAAImH,gBAAgB,EACjCvE,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAGhD,KAAKsE,cAAgB,KAAKzF,gBAAgBE,KACxCmB,EAAKhD,GACEA,EAAIqH,SAGFrH,EAAIqH,SAFFC,EAAaC,kBAGvB,EACD3E,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAGhD,KAAK0E,oBAAsB,KAAK7F,gBAAgBE,KAC9CmB,EAAKhD,GAEDA,EAAIqH,WAAaC,EAAaG,uBAC7BzH,EAAI0H,sBAAsBC,iBAAiBxD,QAAU,IACnDnE,EAAI0H,sBAAsBE,YAAYzD,QAAU,GACjD,CAEL,EACDvB,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAGhD,KAAK+E,QAAU,KAAKlG,gBAAgBE,KAClCmB,EAAK8E,GAAoCA,EAAKC,MAAM,EACpD/F,EAAoB,EACpBY,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAGhD,KAAKkF,iBAAmBC,EACtB,KAAK7D,wBACL,KAAKhD,WAAW8G,WAAWrG,KAAKQ,EAAWF,GAAc,KAAKhB,WAAWgH,mBAAmB,CAAEhG,UAAAA,CAAS,CAAE,CAAC,CAAC,CAAC,EAC5GN,KAAKe,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAErD,KAAKsF,qBAAuB,KAAKzG,gBAAgBE,KAC/CmB,EAAKqF,GAASA,EAAKC,qBAAuB,EAAK,EAC/C1F,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,CAElD,CAEAyF,mBAAmB9F,EAAwB+F,EAAe,CACxD,OAAO,KAAKpH,WAAW8G,WAAWrG,KAChCQ,EAAWF,GAAc,KAAKhB,WAAWoH,mBAAmB,CAAEpG,UAAAA,EAAWM,eAAAA,EAAgB+F,QAAAA,CAAO,CAAE,CAAC,EACnG9F,EAAI,IAAM,KAAK0B,wBAAwBqE,KAAK,CAAEhG,eAAAA,EAAgB+F,QAAAA,CAAO,CAAE,CAAC,EACxEE,EAAK,CAAC,CAAC,CAEX,yCA1TW5I,GAAsB6I,EAAAC,EAAA,EAAAD,EAAAE,EAAA,CAAA,CAAA,wBAAtB/I,EAAsBgJ,QAAtBhJ,EAAsBiJ,UAAAC,WADT,MAAM,CAAA,EAC1B,IAAOlJ,EAAPmJ,SAAOnJ,CAAsB,GAAA,ECpC5B,IAAMoJ,EAAkC,IAAIC,EACjD,2BAA2B,EAOhBC,EAA8B,IAAID,EAAuB,uBAAuB,EAChFE,GAAgBA,CAC3BC,EACAC,IAEOD,EAAkBE,mBAAmBC,KAC1CC,EAAKC,GAAcA,EAAUC,KAAMC,GAAMA,EAAEC,eAAiBP,CAAW,CAAC,EACxEQ,EAAsB,EACtBL,EAAKM,IACI,CACLA,KAAMA,EACNC,KAAMD,EAAKE,UAEd,CAAC,EAKOC,GAAoBA,CAACC,EAA2BC,IACjDC,EAAOpB,CAA+B,EAEvCO,KACPc,EAAK,CAAC,EACNb,EAAKc,GACC,CAACA,GAAU,CAACA,EAAOP,KAAa,GAC/BO,EAAOP,MAAML,KAAMa,GAAMJ,EAAEK,IAAIC,SAASF,EAAEG,IAAI,CAAC,EAI7C,GAHEC,GAA0BT,EAAG,CAACI,EAAOP,OAAO,CAAC,EAAEW,IAAI,CAAC,CAI9D,CAAC,EAKOE,GAAiBA,IAClBR,EAAOpB,CAA+B,EAEvCO,KACPc,EAAK,CAAC,EACNR,EAAsB,EACtBL,EAAKc,GAAWA,EAAOR,KAAKe,SAAS,EACrCC,EAAe,EAAE,CAAC,uDEtDhBC,EAAA,EAAA,IAAA,CAAA,eACEC,EAAA,CAAA,EACFC,EAAA,iCAFgBC,EAAA,aAAAC,EAAAC,IAAA,EAAuB,SAAAD,EAAAE,eAAAC,EAAA,EAAA,EAAAC,EAAAC,UAAA,CAAA,EACrCC,EAAA,CAAA,EAAAC,EAAA,IAAAP,EAAAQ,MAAA,GAAA,6BAHNZ,EAAA,EAAA,MAAA,CAAA,EACEa,EAAA,EAAAC,GAAA,EAAA,EAAA,IAAA,EAAAC,CAAA,eAKFb,EAAA,yBANqBC,EAAA,mBAAA,EAAA,EAA0B,WAAAa,CAAA,EAC7CN,EAAA,EAAAO,EAAAV,EAAA,EAAA,EAAAC,EAAAU,KAAA,CAAA,GDsBJ,IAAaC,IAAyB,IAAA,CAAhC,IAAOA,EAAP,MAAOA,CAAyB,CAUpCC,YAC2CC,EACxBC,EAAc,CAAd,KAAAA,OAAAA,EAVA,KAAAb,WAAa,KAAKa,OAAOC,OAAOC,KACjDC,EAAQC,GAAMA,aAAaC,EAAa,EACxCC,EAAKF,GAAqBA,EAAEG,GAAG,EAC/BC,EAAU,KAAKR,OAAOO,GAAG,EACzBE,EAAWF,GAAQ,KAAKX,MAAMM,KAAKI,EAAKI,GAASA,EAAKC,KAAMC,GAAML,EAAIM,SAASD,EAAE7B,IAAI,CAAC,GAAGC,cAAgB,EAAE,CAAC,CAAC,CAAC,EAQ9G,KAAKY,MAAQG,EAAOG,KAAKI,EAAKQ,GAAMA,EAAEJ,IAAI,CAAC,EAC3C,KAAKK,UAAYhB,EAAOG,KAAKI,EAAKQ,GAAMA,EAAEJ,KAAKM,OAAS,CAAC,CAAC,CAC5D,yCAhBWnB,GAAyBoB,EAW1BC,CAA+B,EAAAD,EAAAE,EAAA,CAAA,CAAA,sBAX9BtB,EAAyBuB,UAAA,CAAA,CAAA,uBAAA,CAAA,EAAAC,WAAA,GAAAC,SAAA,CAAAC,CAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,CAAA,CAAA,QAAA,EAAA,EAAA,CAAA,kBAAA,GAAA,EAAA,mBAAA,UAAA,EAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,eAAA,GAAA,EAAA,aAAA,QAAA,CAAA,EAAAC,SAAA,SAAAC,EAAAC,EAAA,CAAAD,EAAA,ICxBtCE,EAAA,EAAAC,GAAA,EAAA,EAAA,MAAA,CAAA,eAUArD,EAAA,EAAA,oBAAA,KAAA,CAAA,EAA0B,EAAA,MAAA,CAAA,eAEtBsD,EAAA,EAAA,eAAA,EACFpD,EAAA,EAAM,SAbRqD,EAAAhD,EAAA,EAAA,EAAA4C,EAAAd,SAAA,IAAA,GAAA,EAAA,EAAA,EAWsB3B,EAAA,CAAA,EAAAP,EAAA,UAAAqD,EAAA,EAAAC,GAAAlD,EAAA,EAAA,EAAA4C,EAAAd,SAAA,IAAA,EAAA,CAAA,kBDSVqB,GAAWC,GAASC,GAAaC,GAAAC,GAAAC,GAAEC,GAAYC,GAAAC,GAAEC,EAAe,EAAAC,OAAA,CAAA;sHAAA,CAAA,CAAA,EAItE,IAAOjD,EAAPkD,SAAOlD,CAAyB,GAAA,EA2BhC,SAAUmD,GAAYhE,EAAsBiE,EAA+B,CAC/E,OAAOC,GAAqBlE,EAAciE,EAAW,EAAK,CAC5D,CAuBM,SAAUC,GACdlE,EACAiE,EACAE,EAAuB,GAAI,CAE3B,IAAMC,EAAgC,CACpCC,UAAW,CACT,CAAEC,QAASC,EAA6BC,SAAUxE,CAAY,EAC9D,CACEsE,QAASpC,EACTuC,WAAYC,GACZC,KAAM,CAACC,GAAwBL,CAA2B,EAC3D,EAEHM,cAAeV,EACX,IAAM,mEAAyCW,KAAMC,GAAMA,EAAElE,yBAAyB,EACtFmE,OACJC,sBAAuB,SACvBC,YAAa,CAACC,EAAiB,EAC/BC,QAAS,CACPC,OAAQC,KAINC,EAAeC,IAAA,GAChBpB,GACAH,GAGL,QAAWwB,KAAOxB,EACZyB,OAAOC,UAAUC,eAAeC,KAAK5B,EAAWwB,CAAG,GAAKK,MAAMC,QAAQ9B,EAAUwB,CAAG,CAAC,IACtFF,EAAME,CAAG,EAAI,CAAC,GAAIrB,EAAcqB,CAAG,GAAK,CAAA,EAAK,GAAIxB,EAAUwB,CAAG,GAAK,CAAA,CAAG,GAI1E,OAAOF,CACT", "names": ["SidenavType", "BusinessNavConfigService", "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", "_BusinessNavConfigService", "DEFAULT_IMAGE_URL", "BusinessNavDataService", "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", "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", "_BusinessNavDataService", "NAV_TABS_CONTAINER_CONFIG_TOKEN", "InjectionToken", "NAV_TABS_CONTAINER_ID_TOKEN", "configFactory", "navigationService", "containerId", "linksWithSublinks$", "pipe", "map", "container", "find", "c", "navigationId", "filterNullAndUndefined", "link", "tabs", "subLinks", "defaultRouteGuard", "r", "s", "inject", "take", "config", "t", "url", "includes", "path", "createUrlTreeFromSnapshot", "AppUrlResolver", "launchUrl", "defaultIfEmpty", "\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$", "NavTabsContainerComponent", "constructor", "config", "router", "events", "pipe", "filter", "e", "NavigationEnd", "map", "url", "startWith", "switchMap", "tabs", "find", "t", "includes", "c", "showTabs$", "length", "\u0275\u0275directiveInject", "NAV_TABS_CONTAINER_CONFIG_TOKEN", "Router", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "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", "_NavTabsContainerComponent", "tabbedRoute", "overrides", "tabbedContainerRoute", "withNavTabsContainer", "routeDefaults", "providers", "provide", "NAV_TABS_CONTAINER_ID_TOKEN", "useValue", "useFactory", "configFactory", "deps", "BusinessNavDataService", "loadComponent", "then", "m", "undefined", "runGuardsAndResolvers", "canActivate", "defaultRouteGuard", "resolve", "appUrl", "AppUrlResolver", "route", "__spreadValues", "key", "Object", "prototype", "hasOwnProperty", "call", "Array", "isArray"] }