@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
1 lines • 17.2 kB
Source Map (JSON)
{"version":3,"file":"c8y-ngx-components-branding-shared.mjs","sources":["../../branding/shared/supports-branding.service.ts","../../branding/shared/branding-tab.factory.ts","../../branding/shared/shared-branding.module.ts","../../branding/shared/c8y-ngx-components-branding-shared.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { CanActivate, UrlTree } from '@angular/router';\nimport { AppStateService, ExtensionFactory, NavigatorNode } from '@c8y/ngx-components';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class SupportsBrandingService implements CanActivate, ExtensionFactory<NavigatorNode> {\n private supportsBranding$: Observable<boolean>;\n private node: NavigatorNode;\n constructor(private appState: AppStateService) {\n this.supportsBranding$ = this.appState.currentAppsOfUser.pipe(\n map(apps => {\n const brandingFeatureApp = apps.find(\n app => app.name === 'feature-branding' && app.owner?.tenant?.id === 'management'\n );\n return !!brandingFeatureApp;\n }),\n shareReplay(1)\n );\n this.node = new NavigatorNode({\n featureId: 'branding-editor',\n label: 'Branding',\n path: 'branding-editor',\n icon: 'palette',\n parent: 'Settings',\n routerLinkExact: false\n });\n }\n\n get(): Observable<NavigatorNode | NavigatorNode[]> {\n return this.supportsBranding$.pipe(\n map(supported => {\n if (supported) {\n return this.node;\n }\n return [];\n })\n );\n }\n\n canActivate(): boolean | UrlTree | Observable<boolean | UrlTree> | Promise<boolean | UrlTree> {\n return this.supportsBranding$;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ExtensionFactory, Tab } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { Observable, merge, of } from 'rxjs';\nimport { distinctUntilChanged, map, filter, switchMap } from 'rxjs/operators';\n\nexport const lightThemeTabName = gettext('Light theme');\nexport const genericTabName = gettext('Generic');\n\n@Injectable({ providedIn: 'root' })\nexport class BrandingTabFactory implements ExtensionFactory<Tab> {\n get(activatedRoute?: ActivatedRoute): Observable<Tab | Tab[]> {\n const routes = activatedRoute.pathFromRoot.map(route => route.url);\n return this.shouldShowTab$().pipe(\n distinctUntilChanged(),\n switchMap(value => {\n if (!value) {\n return of([]);\n }\n return merge(...routes).pipe(\n filter(urlSegments =>\n urlSegments.some(urlSegment => urlSegment.path === 'branding-editor')\n ),\n switchMap(() => this.shouldShowTab$()),\n filter(shouldShow => !!shouldShow),\n switchMap(() =>\n activatedRoute.parent?.params.pipe(\n map(params => params.name),\n distinctUntilChanged(),\n filter(name => !!name),\n map(name => this.getTabsForVersion(name))\n )\n )\n );\n })\n );\n }\n\n protected shouldShowTab$(): Observable<boolean> {\n return of(true);\n }\n\n protected getPathForBranding<T extends string>(brandingName: string, subPath: T) {\n return `branding-editor/variants/${brandingName}/edit/${subPath}` as const;\n }\n\n protected getTabsForVersion(name: string): Tab[] {\n return [\n {\n path: this.getPathForBranding(name, 'generic'),\n label: genericTabName,\n icon: 'palette',\n priority: 600\n },\n {\n path: this.getPathForBranding(name, 'light'),\n label: lightThemeTabName,\n icon: 'sun',\n priority: 500\n }\n ];\n }\n}\n","import { Injectable, NgModule, inject } from '@angular/core';\nimport { RouterStateSnapshot, ActivatedRouteSnapshot, ResolveFn, Router } from '@angular/router';\nimport { SupportsBrandingService } from './supports-branding.service';\nimport {\n AppStateService,\n ExtensionFactory,\n hookNavigator,\n HookProviderTypes,\n hookRoute,\n hookTab,\n Route,\n Tab\n} from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { BrandingTabFactory, lightThemeTabName, genericTabName } from './branding-tab.factory';\nimport {\n BrandingFileDetails,\n BrandingOptionsJson,\n StoreBrandingService\n} from '@c8y/ngx-components/branding/shared/data';\n\nexport const BRANDING_EDIT_CHILD_ROUTES: Route[] = [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'generic'\n },\n {\n path: 'generic',\n loadComponent: () =>\n import('@c8y/ngx-components/branding/shared/lazy').then(m => m.BrandingFormComponent),\n data: {\n tabName: genericTabName\n }\n },\n {\n path: 'light',\n loadComponent: () =>\n import('@c8y/ngx-components/branding/shared/lazy').then(m => m.BrandingThemeFormComponent),\n data: {\n tabName: lightThemeTabName\n }\n }\n];\n\nexport const BRANDING_ROUTING: Route[] = [\n {\n path: 'branding-editor',\n canActivate: [SupportsBrandingService],\n children: [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'variants'\n },\n {\n path: 'variants',\n children: [\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () =>\n import('@c8y/ngx-components/branding/shared/lazy').then(m => m.BrandingComponent)\n },\n {\n path: ':name',\n resolve: {\n branding: ((route: ActivatedRouteSnapshot, _state: RouterStateSnapshot) => {\n return inject(StoreBrandingService).getBrandingOptionsForVersion(route.params.name);\n }) as ResolveFn<BrandingFileDetails[]>,\n tags: (async (route: ActivatedRouteSnapshot, _state: RouterStateSnapshot) => {\n const store = inject(StoreBrandingService);\n const { variants } = await store.loadBrandingVariants();\n return variants.find(v => v?.tags?.includes(route.params.name))?.tags;\n }) as ResolveFn<string[]>,\n fallbackBranding: (async (\n _route: ActivatedRouteSnapshot,\n _state: RouterStateSnapshot\n ) => {\n try {\n const store = inject(StoreBrandingService);\n const appState = inject(AppStateService);\n // management tenant should be free to change what every they want, so we do not provide a fallback branding\n if (appState.currentTenant.value?.name === 'management') {\n return {};\n }\n const fallbackBranding = await store.getBrandingOptionsForVersion('fallback');\n return fallbackBranding;\n } catch (e) {\n return {};\n }\n }) as ResolveFn<BrandingOptionsJson>\n },\n children: [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'edit'\n },\n {\n path: 'edit',\n loadComponent: () =>\n import('@c8y/ngx-components/branding/shared/lazy').then(\n m => m.EditBrandingRouterOutletComponent\n ),\n children: BRANDING_EDIT_CHILD_ROUTES\n }\n ]\n }\n ]\n },\n {\n path: 'assets',\n loadComponent: () =>\n import('@c8y/ngx-components/branding/shared/lazy').then(m => m.BrandingAssetsComponent)\n },\n // Redirect old paths (like \"/branding-editor/default\" to \"/branding-editor/variants/default\")\n {\n path: '**',\n redirectTo: redirectData => {\n const { url } = redirectData;\n const urlToAppend = url.map(segment => segment.path).join('/');\n return `/branding-editor/variants/${urlToAppend}`;\n }\n }\n ]\n },\n // Redirects for legacy paths from old angularJS implementation\n // allows to keep old links working and to use the old branding manager (as long as we still ship it) when the new plugins are removed from admin app\n {\n path: 'enterprise/branding',\n pathMatch: 'full',\n redirectTo: 'branding-editor'\n },\n {\n path: 'branding',\n pathMatch: 'full',\n redirectTo: 'branding-editor'\n }\n];\n\n@Injectable({ providedIn: 'root' })\nexport class BrandingVariantsAndAssetsTabFactory implements ExtensionFactory<Tab> {\n tabs: Tab[] = [\n {\n path: '/branding-editor/variants',\n label: gettext('Variants'),\n icon: 'folder',\n priority: 500\n },\n {\n path: '/branding-editor/assets',\n label: gettext('Branding assets'),\n icon: 'file',\n priority: 100\n }\n ];\n constructor(private router: Router) {}\n get(): Tab[] {\n if (this.tabs.map(tab => tab.path).includes(this.router.url)) {\n return this.tabs;\n }\n return [];\n }\n}\n\n@NgModule({\n imports: [],\n providers: [\n // providerType: HookProviderTypes.ExistingProvider is used to ensure that the hook is only applied once even if the module is imported multiple times\n hookNavigator(SupportsBrandingService, { providerType: HookProviderTypes.ExistingProvider }),\n hookTab(BrandingTabFactory),\n hookTab(BrandingVariantsAndAssetsTabFactory),\n hookRoute(BRANDING_ROUTING)\n ]\n})\nexport class SharedBrandingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}