UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

25 lines 3.87 kB
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==