UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

46 lines 6.8 kB
import { Inject, Injectable, Optional } from '@angular/core'; import { flatten, get, uniqBy } from 'lodash-es'; import { HOOK_DYNAMIC_PROVIDER_CONFIG } from './provider-configuration-hook'; import { ProviderConfigurationComponent } from './provider-configuration.component'; import { ConditionalTabsOutletComponent } from '../tabs'; import * as i0 from "@angular/core"; export class ProviderConfigurationRouteFactory { constructor(config) { this.config = flatten(config); } get() { const navigationRoutes = uniqBy(this.config.filter(c => c.tab), 'navigation.path').map(c => { return { path: c.navigation.path, component: ConditionalTabsOutletComponent }; }); const navigationWithTabsRoutes = this.config.map(c => ({ path: c.tab ? `${c.navigation.path.replace(/^\/|\/$/g, '')}/${c.tab.path.replace(/^\/|\/$/g, '')}` : c.navigation.path, component: ProviderConfigurationComponent, canActivate: [ ...(c.navigation.canActivate || []), ...(get(c, 'tab.canActivate') || []) ].filter(g => !!g), data: { layout: c.layout, endpoint: c.endpoint } })); return [...navigationRoutes, ...navigationWithTabsRoutes]; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProviderConfigurationRouteFactory, deps: [{ token: HOOK_DYNAMIC_PROVIDER_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProviderConfigurationRouteFactory, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProviderConfigurationRouteFactory, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [HOOK_DYNAMIC_PROVIDER_CONFIG] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItY29uZmlndXJhdGlvbi1yb3V0ZS5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9wcm92aWRlci1jb25maWd1cmF0aW9uL3Byb3ZpZGVyLWNvbmZpZ3VyYXRpb24tcm91dGUuZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFLekQsTUFBTSxPQUFPLGlDQUFpQztJQUc1QyxZQUE4RCxNQUFpQztRQUM3RixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsR0FBRztRQUNELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDOUIsaUJBQWlCLENBQ2xCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1IsT0FBTztnQkFDTCxJQUFJLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJO2dCQUN2QixTQUFTLEVBQUUsOEJBQThCO2FBQzFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JELElBQUksRUFBRSxDQUFDLENBQUMsR0FBRztnQkFDVCxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RGLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUk7WUFDckIsU0FBUyxFQUFFLDhCQUE4QjtZQUN6QyxXQUFXLEVBQUU7Z0JBQ1gsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztnQkFDbkMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDckMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU07Z0JBQ2hCLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTthQUNyQjtTQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUosT0FBTyxDQUFDLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzVELENBQUM7K0dBbENVLGlDQUFpQyxrQkFHWiw0QkFBNEI7bUhBSGpELGlDQUFpQyxjQURwQixNQUFNOzs0RkFDbkIsaUNBQWlDO2tCQUQ3QyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBSW5CLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmxhdHRlbiwgZ2V0LCB1bmlxQnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgRHluYW1pY1Byb3ZpZGVyQ29uZmlnIH0gZnJvbSAnLi9tb2RlbC9keW5hbWljLXByb3ZpZGVyLWNvbmZpZy5tb2RlbCc7XG5pbXBvcnQgeyBIT09LX0RZTkFNSUNfUFJPVklERVJfQ09ORklHIH0gZnJvbSAnLi9wcm92aWRlci1jb25maWd1cmF0aW9uLWhvb2snO1xuaW1wb3J0IHsgUHJvdmlkZXJDb25maWd1cmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wcm92aWRlci1jb25maWd1cmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25kaXRpb25hbFRhYnNPdXRsZXRDb21wb25lbnQgfSBmcm9tICcuLi90YWJzJztcbmltcG9ydCB7IEV4dGVuc2lvbkZhY3RvcnkgfSBmcm9tICcuLi9jb21tb24vZXh0ZW5zaW9uLWhvb2tzJztcbmltcG9ydCB7IFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQcm92aWRlckNvbmZpZ3VyYXRpb25Sb3V0ZUZhY3RvcnkgaW1wbGVtZW50cyBFeHRlbnNpb25GYWN0b3J5PFJvdXRlPiB7XG4gIHByaXZhdGUgY29uZmlnOiBEeW5hbWljUHJvdmlkZXJDb25maWdbXTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KEhPT0tfRFlOQU1JQ19QUk9WSURFUl9DT05GSUcpIGNvbmZpZzogRHluYW1pY1Byb3ZpZGVyQ29uZmlnW11bXSkge1xuICAgIHRoaXMuY29uZmlnID0gZmxhdHRlbihjb25maWcpO1xuICB9XG5cbiAgZ2V0KCkge1xuICAgIGNvbnN0IG5hdmlnYXRpb25Sb3V0ZXMgPSB1bmlxQnkoXG4gICAgICB0aGlzLmNvbmZpZy5maWx0ZXIoYyA9PiBjLnRhYiksXG4gICAgICAnbmF2aWdhdGlvbi5wYXRoJ1xuICAgICkubWFwKGMgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGF0aDogYy5uYXZpZ2F0aW9uLnBhdGgsXG4gICAgICAgIGNvbXBvbmVudDogQ29uZGl0aW9uYWxUYWJzT3V0bGV0Q29tcG9uZW50XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgbmF2aWdhdGlvbldpdGhUYWJzUm91dGVzID0gdGhpcy5jb25maWcubWFwKGMgPT4gKHtcbiAgICAgIHBhdGg6IGMudGFiXG4gICAgICAgID8gYCR7Yy5uYXZpZ2F0aW9uLnBhdGgucmVwbGFjZSgvXlxcL3xcXC8kL2csICcnKX0vJHtjLnRhYi5wYXRoLnJlcGxhY2UoL15cXC98XFwvJC9nLCAnJyl9YFxuICAgICAgICA6IGMubmF2aWdhdGlvbi5wYXRoLFxuICAgICAgY29tcG9uZW50OiBQcm92aWRlckNvbmZpZ3VyYXRpb25Db21wb25lbnQsXG4gICAgICBjYW5BY3RpdmF0ZTogW1xuICAgICAgICAuLi4oYy5uYXZpZ2F0aW9uLmNhbkFjdGl2YXRlIHx8IFtdKSxcbiAgICAgICAgLi4uKGdldChjLCAndGFiLmNhbkFjdGl2YXRlJykgfHwgW10pXG4gICAgICBdLmZpbHRlcihnID0+ICEhZyksXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGxheW91dDogYy5sYXlvdXQsXG4gICAgICAgIGVuZHBvaW50OiBjLmVuZHBvaW50XG4gICAgICB9XG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIFsuLi5uYXZpZ2F0aW9uUm91dGVzLCAuLi5uYXZpZ2F0aW9uV2l0aFRhYnNSb3V0ZXNdO1xuICB9XG59XG4iXX0=