@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
25 lines • 3.87 kB
JavaScript
import { Injectable } from '@angular/core';
import { get, has } from 'lodash-es';
import * as i0 from "@angular/core";
export class SoftwareDeviceTabGuard {
constructor() {
this.operations = ['c8y_SoftwareUpdate', 'c8y_SoftwareList', 'c8y_Software'];
}
canActivate(route) {
const device = get(route, 'data.contextData') || get(route, 'parent.data.contextData');
return (this.isAnyOperationSupported(device) ||
has(device, 'c8y_Software') ||
has(device, 'c8y_SoftwareList') ||
has(device, 'c8y_SupportedSoftwareTypes'));
}
isAnyOperationSupported(device) {
const supportedOperations = device?.c8y_SupportedOperations || [];
return this.operations.some(operation => supportedOperations.indexOf(operation) >= 0);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SoftwareDeviceTabGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SoftwareDeviceTabGuard }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SoftwareDeviceTabGuard, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdHdhcmUtZGV2aWNlLXRhYi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvc29mdHdhcmUvZGV2aWNlLXRhYi9zb2Z0d2FyZS1kZXZpY2UtdGFiLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBR3JDLE1BQU0sT0FBTyxzQkFBc0I7SUFEbkM7UUFFbUIsZUFBVSxHQUFHLENBQUMsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxDQUFDLENBQUM7S0FnQjFGO0lBZEMsV0FBVyxDQUFDLEtBQTZCO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLHlCQUF5QixDQUFDLENBQUM7UUFDdkYsT0FBTyxDQUNMLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUM7WUFDcEMsR0FBRyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUM7WUFDM0IsR0FBRyxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQztZQUMvQixHQUFHLENBQUMsTUFBTSxFQUFFLDRCQUE0QixDQUFDLENBQzFDLENBQUM7SUFDSixDQUFDO0lBRU8sdUJBQXVCLENBQUMsTUFBc0I7UUFDcEQsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLEVBQUUsdUJBQXVCLElBQUksRUFBRSxDQUFDO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQzsrR0FoQlUsc0JBQXNCO21IQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgZ2V0LCBoYXMgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU29mdHdhcmVEZXZpY2VUYWJHdWFyZCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3BlcmF0aW9ucyA9IFsnYzh5X1NvZnR3YXJlVXBkYXRlJywgJ2M4eV9Tb2Z0d2FyZUxpc3QnLCAnYzh5X1NvZnR3YXJlJ107XG5cbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpIHtcbiAgICBjb25zdCBkZXZpY2UgPSBnZXQocm91dGUsICdkYXRhLmNvbnRleHREYXRhJykgfHwgZ2V0KHJvdXRlLCAncGFyZW50LmRhdGEuY29udGV4dERhdGEnKTtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pc0FueU9wZXJhdGlvblN1cHBvcnRlZChkZXZpY2UpIHx8XG4gICAgICBoYXMoZGV2aWNlLCAnYzh5X1NvZnR3YXJlJykgfHxcbiAgICAgIGhhcyhkZXZpY2UsICdjOHlfU29mdHdhcmVMaXN0JykgfHxcbiAgICAgIGhhcyhkZXZpY2UsICdjOHlfU3VwcG9ydGVkU29mdHdhcmVUeXBlcycpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNBbnlPcGVyYXRpb25TdXBwb3J0ZWQoZGV2aWNlOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIGNvbnN0IHN1cHBvcnRlZE9wZXJhdGlvbnMgPSBkZXZpY2U/LmM4eV9TdXBwb3J0ZWRPcGVyYXRpb25zIHx8IFtdO1xuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbnMuc29tZShvcGVyYXRpb24gPT4gc3VwcG9ydGVkT3BlcmF0aW9ucy5pbmRleE9mKG9wZXJhdGlvbikgPj0gMCk7XG4gIH1cbn1cbiJdfQ==