UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

47 lines 7.63 kB
import { Injectable } from '@angular/core'; import { gettext } from '@c8y/ngx-components'; import { merge, of } from 'rxjs'; import { distinctUntilChanged, map, filter, switchMap } from 'rxjs/operators'; import * as i0 from "@angular/core"; export const lightThemeTabName = gettext('Light theme'); export const genericTabName = gettext('Generic'); export class BrandingTabFactory { get(activatedRoute) { const routes = activatedRoute.pathFromRoot.map(route => route.url); return this.shouldShowTab$().pipe(distinctUntilChanged(), switchMap(value => { if (!value) { return of([]); } return merge(...routes).pipe(filter(urlSegments => urlSegments.some(urlSegment => urlSegment.path === 'branding-editor')), switchMap(() => this.shouldShowTab$()), filter(shouldShow => !!shouldShow), switchMap(() => activatedRoute.parent?.params.pipe(map(params => params.name), distinctUntilChanged(), filter(name => !!name), map(name => this.getTabsForVersion(name))))); })); } shouldShowTab$() { return of(true); } getPathForBranding(brandingName, subPath) { return `branding-editor/${brandingName}/edit/${subPath}`; } getTabsForVersion(name) { return [ { path: this.getPathForBranding(name, 'generic'), label: genericTabName, icon: 'palette', priority: 600 }, { path: this.getPathForBranding(name, 'light'), label: lightThemeTabName, icon: 'sun', priority: 500 } ]; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BrandingTabFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BrandingTabFactory, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BrandingTabFactory, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmRpbmctdGFiLmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9icmFuZGluZy9zaGFyZWQvYnJhbmRpbmctdGFiLmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQXlCLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sRUFBYyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUU5RSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDeEQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUdqRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLEdBQUcsQ0FBQyxjQUErQjtRQUNqQyxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRSxPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQy9CLG9CQUFvQixFQUFFLEVBQ3RCLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEIsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUMxQixNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FDbkIsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssaUJBQWlCLENBQUMsQ0FDdEUsRUFDRCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLEVBQ3RDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFDbEMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUNiLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FDaEMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUMxQixvQkFBb0IsRUFBRSxFQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQ3RCLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUMxQyxDQUNGLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRVMsY0FBYztRQUN0QixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRVMsa0JBQWtCLENBQW1CLFlBQW9CLEVBQUUsT0FBVTtRQUM3RSxPQUFPLG1CQUFtQixZQUFZLFNBQVMsT0FBTyxFQUFXLENBQUM7SUFDcEUsQ0FBQztJQUVTLGlCQUFpQixDQUFDLElBQVk7UUFDdEMsT0FBTztZQUNMO2dCQUNFLElBQUksRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztnQkFDOUMsS0FBSyxFQUFFLGNBQWM7Z0JBQ3JCLElBQUksRUFBRSxTQUFTO2dCQUNmLFFBQVEsRUFBRSxHQUFHO2FBQ2Q7WUFDRDtnQkFDRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7Z0JBQzVDLEtBQUssRUFBRSxpQkFBaUI7Z0JBQ3hCLElBQUksRUFBRSxLQUFLO2dCQUNYLFFBQVEsRUFBRSxHQUFHO2FBQ2Q7U0FDRixDQUFDO0lBQ0osQ0FBQzsrR0FuRFUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FETCxNQUFNOzs0RkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEV4dGVuc2lvbkZhY3RvcnksIFRhYiwgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWVyZ2UsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBmaWx0ZXIsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNvbnN0IGxpZ2h0VGhlbWVUYWJOYW1lID0gZ2V0dGV4dCgnTGlnaHQgdGhlbWUnKTtcbmV4cG9ydCBjb25zdCBnZW5lcmljVGFiTmFtZSA9IGdldHRleHQoJ0dlbmVyaWMnKTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBCcmFuZGluZ1RhYkZhY3RvcnkgaW1wbGVtZW50cyBFeHRlbnNpb25GYWN0b3J5PFRhYj4ge1xuICBnZXQoYWN0aXZhdGVkUm91dGU/OiBBY3RpdmF0ZWRSb3V0ZSk6IE9ic2VydmFibGU8VGFiIHwgVGFiW10+IHtcbiAgICBjb25zdCByb3V0ZXMgPSBhY3RpdmF0ZWRSb3V0ZS5wYXRoRnJvbVJvb3QubWFwKHJvdXRlID0+IHJvdXRlLnVybCk7XG4gICAgcmV0dXJuIHRoaXMuc2hvdWxkU2hvd1RhYiQoKS5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcCh2YWx1ZSA9PiB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtZXJnZSguLi5yb3V0ZXMpLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKHVybFNlZ21lbnRzID0+XG4gICAgICAgICAgICB1cmxTZWdtZW50cy5zb21lKHVybFNlZ21lbnQgPT4gdXJsU2VnbWVudC5wYXRoID09PSAnYnJhbmRpbmctZWRpdG9yJylcbiAgICAgICAgICApLFxuICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnNob3VsZFNob3dUYWIkKCkpLFxuICAgICAgICAgIGZpbHRlcihzaG91bGRTaG93ID0+ICEhc2hvdWxkU2hvdyksXG4gICAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgICBhY3RpdmF0ZWRSb3V0ZS5wYXJlbnQ/LnBhcmFtcy5waXBlKFxuICAgICAgICAgICAgICBtYXAocGFyYW1zID0+IHBhcmFtcy5uYW1lKSxcbiAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgICAgZmlsdGVyKG5hbWUgPT4gISFuYW1lKSxcbiAgICAgICAgICAgICAgbWFwKG5hbWUgPT4gdGhpcy5nZXRUYWJzRm9yVmVyc2lvbihuYW1lKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2hvdWxkU2hvd1RhYiQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG9mKHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFBhdGhGb3JCcmFuZGluZzxUIGV4dGVuZHMgc3RyaW5nPihicmFuZGluZ05hbWU6IHN0cmluZywgc3ViUGF0aDogVCkge1xuICAgIHJldHVybiBgYnJhbmRpbmctZWRpdG9yLyR7YnJhbmRpbmdOYW1lfS9lZGl0LyR7c3ViUGF0aH1gIGFzIGNvbnN0O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFRhYnNGb3JWZXJzaW9uKG5hbWU6IHN0cmluZyk6IFRhYltdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBwYXRoOiB0aGlzLmdldFBhdGhGb3JCcmFuZGluZyhuYW1lLCAnZ2VuZXJpYycpLFxuICAgICAgICBsYWJlbDogZ2VuZXJpY1RhYk5hbWUsXG4gICAgICAgIGljb246ICdwYWxldHRlJyxcbiAgICAgICAgcHJpb3JpdHk6IDYwMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogdGhpcy5nZXRQYXRoRm9yQnJhbmRpbmcobmFtZSwgJ2xpZ2h0JyksXG4gICAgICAgIGxhYmVsOiBsaWdodFRoZW1lVGFiTmFtZSxcbiAgICAgICAgaWNvbjogJ3N1bicsXG4gICAgICAgIHByaW9yaXR5OiA1MDBcbiAgICAgIH1cbiAgICBdO1xuICB9XG59XG4iXX0=