@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
47 lines • 7.63 kB
JavaScript
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=