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