UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

69 lines 8.2 kB
import { Injectable, inject } from '@angular/core'; import { ContextRouteService, Permissions, ViewContext } from '@c8y/ngx-components'; import { AddDashboardComponent } from './add-dashboard.component'; import * as i0 from "@angular/core"; export class AddDashboardFactory { constructor() { this.permissions = inject(Permissions); this.contextRoute = inject(ContextRouteService); } async get(activatedRoute) { this.currentContext = this.contextRoute.getContextData(activatedRoute); if (this.currentContext?.context === this.targetContext && (await this.hasPermission(this.currentContext.contextData))) { return [ { component: AddDashboardComponent, priority: -Infinity, showAlways: true } ]; } return []; } async hasPermission(context) { if (context?.id) { return await this.permissions.canEdit([ Permissions.ROLE_INVENTORY_ADMIN, Permissions.ROLE_INVENTORY_CREATE, Permissions.ROLE_MANAGED_OBJECT_ADMIN, Permissions.ROLE_MANAGED_OBJECT_CREATE ], context); } return this.permissions.hasAnyRole([ Permissions.ROLE_INVENTORY_ADMIN, Permissions.ROLE_INVENTORY_CREATE, Permissions.ROLE_MANAGED_OBJECT_ADMIN, Permissions.ROLE_MANAGED_OBJECT_CREATE ]); } } export class AddDeviceDashboardFactory extends AddDashboardFactory { constructor() { super(...arguments); this.targetContext = ViewContext.Device; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddDeviceDashboardFactory, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddDeviceDashboardFactory, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddDeviceDashboardFactory, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }] }); export class AddGroupDashboardFactory extends AddDashboardFactory { constructor() { super(...arguments); this.targetContext = ViewContext.Group; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddGroupDashboardFactory, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddGroupDashboardFactory, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddGroupDashboardFactory, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWRhc2hib2FyZC5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29udGV4dC1kYXNoYm9hcmQvYWRkLWRhc2hib2FyZC5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFFTCxtQkFBbUIsRUFFbkIsV0FBVyxFQUVYLFdBQVcsRUFDWixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUVsRSxNQUFNLE9BQWdCLG1CQUFtQjtJQUF6QztRQUlVLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFzQ3JELENBQUM7SUFwQ0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxjQUErQjtRQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZFLElBQ0UsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPLEtBQUssSUFBSSxDQUFDLGFBQWE7WUFDbkQsQ0FBQyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUMzRCxDQUFDO1lBQ0QsT0FBTztnQkFDTDtvQkFDRSxTQUFTLEVBQUUscUJBQXFCO29CQUNoQyxRQUFRLEVBQUUsQ0FBQyxRQUFRO29CQUNuQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7YUFDRixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVPLEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBb0I7UUFDOUMsSUFBSSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEIsT0FBTyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUNuQztnQkFDRSxXQUFXLENBQUMsb0JBQW9CO2dCQUNoQyxXQUFXLENBQUMscUJBQXFCO2dCQUNqQyxXQUFXLENBQUMseUJBQXlCO2dCQUNyQyxXQUFXLENBQUMsMEJBQTBCO2FBQ3ZDLEVBQ0QsT0FBTyxDQUNSLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUNqQyxXQUFXLENBQUMsb0JBQW9CO1lBQ2hDLFdBQVcsQ0FBQyxxQkFBcUI7WUFDakMsV0FBVyxDQUFDLHlCQUF5QjtZQUNyQyxXQUFXLENBQUMsMEJBQTBCO1NBQ3ZDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQUtELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxtQkFBbUI7SUFIbEU7O1FBSVksa0JBQWEsR0FBMkMsV0FBVyxDQUFDLE1BQU0sQ0FBQztLQUN0RjsrR0FGWSx5QkFBeUI7bUhBQXpCLHlCQUF5QixjQUZ4QixNQUFNOzs0RkFFUCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQVFELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxtQkFBbUI7SUFIakU7O1FBSVksa0JBQWEsR0FBMkMsV0FBVyxDQUFDLEtBQUssQ0FBQztLQUNyRjsrR0FGWSx3QkFBd0I7bUhBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzs0RkFFUCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJSWRlbnRpZmllZCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIENvbnRleHREYXRhLFxuICBDb250ZXh0Um91dGVTZXJ2aWNlLFxuICBFeHRlbnNpb25GYWN0b3J5LFxuICBQZXJtaXNzaW9ucyxcbiAgVGFiLFxuICBWaWV3Q29udGV4dFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEFkZERhc2hib2FyZENvbXBvbmVudCB9IGZyb20gJy4vYWRkLWRhc2hib2FyZC5jb21wb25lbnQnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWRkRGFzaGJvYXJkRmFjdG9yeSBpbXBsZW1lbnRzIEV4dGVuc2lvbkZhY3Rvcnk8VGFiPiB7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCB0YXJnZXRDb250ZXh0OiBWaWV3Q29udGV4dC5EZXZpY2UgfCBWaWV3Q29udGV4dC5Hcm91cDtcbiAgY3VycmVudENvbnRleHQ6IENvbnRleHREYXRhO1xuXG4gIHByaXZhdGUgcGVybWlzc2lvbnMgPSBpbmplY3QoUGVybWlzc2lvbnMpO1xuICBwcml2YXRlIGNvbnRleHRSb3V0ZSA9IGluamVjdChDb250ZXh0Um91dGVTZXJ2aWNlKTtcblxuICBhc3luYyBnZXQoYWN0aXZhdGVkUm91dGU/OiBBY3RpdmF0ZWRSb3V0ZSk6IFByb21pc2U8VGFiIHwgVGFiW10+IHtcbiAgICB0aGlzLmN1cnJlbnRDb250ZXh0ID0gdGhpcy5jb250ZXh0Um91dGUuZ2V0Q29udGV4dERhdGEoYWN0aXZhdGVkUm91dGUpO1xuICAgIGlmIChcbiAgICAgIHRoaXMuY3VycmVudENvbnRleHQ/LmNvbnRleHQgPT09IHRoaXMudGFyZ2V0Q29udGV4dCAmJlxuICAgICAgKGF3YWl0IHRoaXMuaGFzUGVybWlzc2lvbih0aGlzLmN1cnJlbnRDb250ZXh0LmNvbnRleHREYXRhKSlcbiAgICApIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb21wb25lbnQ6IEFkZERhc2hib2FyZENvbXBvbmVudCxcbiAgICAgICAgICBwcmlvcml0eTogLUluZmluaXR5LFxuICAgICAgICAgIHNob3dBbHdheXM6IHRydWVcbiAgICAgICAgfVxuICAgICAgXTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYXNQZXJtaXNzaW9uKGNvbnRleHQ6IElJZGVudGlmaWVkKSB7XG4gICAgaWYgKGNvbnRleHQ/LmlkKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5wZXJtaXNzaW9ucy5jYW5FZGl0KFxuICAgICAgICBbXG4gICAgICAgICAgUGVybWlzc2lvbnMuUk9MRV9JTlZFTlRPUllfQURNSU4sXG4gICAgICAgICAgUGVybWlzc2lvbnMuUk9MRV9JTlZFTlRPUllfQ1JFQVRFLFxuICAgICAgICAgIFBlcm1pc3Npb25zLlJPTEVfTUFOQUdFRF9PQkpFQ1RfQURNSU4sXG4gICAgICAgICAgUGVybWlzc2lvbnMuUk9MRV9NQU5BR0VEX09CSkVDVF9DUkVBVEVcbiAgICAgICAgXSxcbiAgICAgICAgY29udGV4dFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucGVybWlzc2lvbnMuaGFzQW55Um9sZShbXG4gICAgICBQZXJtaXNzaW9ucy5ST0xFX0lOVkVOVE9SWV9BRE1JTixcbiAgICAgIFBlcm1pc3Npb25zLlJPTEVfSU5WRU5UT1JZX0NSRUFURSxcbiAgICAgIFBlcm1pc3Npb25zLlJPTEVfTUFOQUdFRF9PQkpFQ1RfQURNSU4sXG4gICAgICBQZXJtaXNzaW9ucy5ST0xFX01BTkFHRURfT0JKRUNUX0NSRUFURVxuICAgIF0pO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFkZERldmljZURhc2hib2FyZEZhY3RvcnkgZXh0ZW5kcyBBZGREYXNoYm9hcmRGYWN0b3J5IHtcbiAgcHJvdGVjdGVkIHRhcmdldENvbnRleHQ6IFZpZXdDb250ZXh0LkRldmljZSB8IFZpZXdDb250ZXh0Lkdyb3VwID0gVmlld0NvbnRleHQuRGV2aWNlO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBZGRHcm91cERhc2hib2FyZEZhY3RvcnkgZXh0ZW5kcyBBZGREYXNoYm9hcmRGYWN0b3J5IHtcbiAgcHJvdGVjdGVkIHRhcmdldENvbnRleHQ6IFZpZXdDb250ZXh0LkRldmljZSB8IFZpZXdDb250ZXh0Lkdyb3VwID0gVmlld0NvbnRleHQuR3JvdXA7XG59XG4iXX0=