@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
71 lines • 8.1 kB
JavaScript
import { Injectable } from '@angular/core';
import { find, get, isUndefined, some } from 'lodash-es';
import * as i0 from "@angular/core";
export class DeviceService {
static { this.FRAGMENTS_FOR_NO_DEVICE = [
'c8y_Dashboard',
'c8y_Report',
'c8y_Kpi',
'c8y_ExportConfiguration',
'c8y_IsBinary',
'c8y_NoDevice',
'c8y_IsDeviceGroup',
'c8y_IsDynamicGroup',
'c8y_Group',
'com_cumulocity_model_smartrest_SmartRestTemplate',
'com_cumulocity_model_devicesimulator_SensorTemplate',
'_attachments',
'c8y_IsDeviceType',
'c8y_objectmapping_ObjectMapping',
'c8y_IsAssetType'
]; }
static { this.TYPES_FOR_NO_DEVICE = [
'c8y_ConfigurationDump',
'c8y_Firmware',
'c8y_SmartRule',
'c8y_Software',
'impact_object_mapping',
'c8y_UserPreference',
'c8y_TenantPolicy',
'c8y_PrivateSmartRule',
'c8y_SmartRest2Template',
'c8y_JsonSchema',
'c8y_DeviceShellTemplate',
'c8y_DemoStatus',
'c8y_DataBroker',
'c8y_Application_',
'brandingVariables',
'c8y_DeviceSimulator',
'c8y_CertificateMetadata',
'lwm2m_post_registration',
'c8y_microservice_manifest_'
]; }
static { this.DEVICE_FRAGMENT_TYPE = 'c8y_IsDevice'; }
static isAnyDevice(mo) {
const isDevice = DeviceService.isRootDevice(mo) || !DeviceService.hasFragmentOrTypeFromBlacklist(mo);
return isDevice;
}
static hasFragmentOrTypeFromBlacklist(mo) {
return DeviceService.hasTypeFromBlacklist(mo) || DeviceService.hasFragmentFromBlacklist(mo);
}
static hasTypeFromBlacklist(mo) {
const moType = get(mo, 'type', '');
return some(DeviceService.TYPES_FOR_NO_DEVICE, (type) => moType.includes(type));
}
static hasFragmentFromBlacklist(mo) {
const result = find(DeviceService.FRAGMENTS_FOR_NO_DEVICE, (fragment) => !isUndefined(mo[fragment]));
return !!result;
}
static isRootDevice(mo) {
return !!mo[DeviceService.DEVICE_FRAGMENT_TYPE];
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeviceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeviceService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeviceService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2NvbW1vbi9kZXZpY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBS3pELE1BQU0sT0FBTyxhQUFhO2FBQ2pCLDRCQUF1QixHQUFHO1FBQy9CLGVBQWU7UUFDZixZQUFZO1FBQ1osU0FBUztRQUNULHlCQUF5QjtRQUN6QixjQUFjO1FBQ2QsY0FBYztRQUNkLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFDcEIsV0FBVztRQUNYLGtEQUFrRDtRQUNsRCxxREFBcUQ7UUFDckQsY0FBYztRQUNkLGtCQUFrQjtRQUNsQixpQ0FBaUM7UUFDakMsaUJBQWlCO0tBQ1QsQUFoQm9CLENBZ0JuQjthQUNKLHdCQUFtQixHQUFHO1FBQzNCLHVCQUF1QjtRQUN2QixjQUFjO1FBQ2QsZUFBZTtRQUNmLGNBQWM7UUFDZCx1QkFBdUI7UUFDdkIsb0JBQW9CO1FBQ3BCLGtCQUFrQjtRQUNsQixzQkFBc0I7UUFDdEIsd0JBQXdCO1FBQ3hCLGdCQUFnQjtRQUNoQix5QkFBeUI7UUFDekIsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixrQkFBa0I7UUFDbEIsbUJBQW1CO1FBQ25CLHFCQUFxQjtRQUNyQix5QkFBeUI7UUFDekIseUJBQXlCO1FBQ3pCLDRCQUE0QjtLQUNwQixBQXBCZ0IsQ0FvQmY7YUFDSix5QkFBb0IsR0FBRyxjQUF1QixBQUExQixDQUEyQjtJQUV0RCxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQWtCO1FBQ25DLE1BQU0sUUFBUSxHQUNaLGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsOEJBQThCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEYsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxFQUFrQjtRQUN0RCxPQUFPLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxhQUFhLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxFQUFrQjtRQUM1QyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsTUFBTSxDQUFDLHdCQUF3QixDQUFDLEVBQWtCO1FBQ2hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FDakIsYUFBYSxDQUFDLHVCQUF1QixFQUNyQyxDQUFDLFFBQXlCLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUMxRCxDQUFDO1FBQ0YsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQWtCO1FBQ3BDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNsRCxDQUFDOytHQWxFVSxhQUFhO21IQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgZmluZCwgZ2V0LCBpc1VuZGVmaW5lZCwgc29tZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERldmljZVNlcnZpY2Uge1xuICBzdGF0aWMgRlJBR01FTlRTX0ZPUl9OT19ERVZJQ0UgPSBbXG4gICAgJ2M4eV9EYXNoYm9hcmQnLFxuICAgICdjOHlfUmVwb3J0JyxcbiAgICAnYzh5X0twaScsXG4gICAgJ2M4eV9FeHBvcnRDb25maWd1cmF0aW9uJyxcbiAgICAnYzh5X0lzQmluYXJ5JyxcbiAgICAnYzh5X05vRGV2aWNlJyxcbiAgICAnYzh5X0lzRGV2aWNlR3JvdXAnLFxuICAgICdjOHlfSXNEeW5hbWljR3JvdXAnLFxuICAgICdjOHlfR3JvdXAnLFxuICAgICdjb21fY3VtdWxvY2l0eV9tb2RlbF9zbWFydHJlc3RfU21hcnRSZXN0VGVtcGxhdGUnLFxuICAgICdjb21fY3VtdWxvY2l0eV9tb2RlbF9kZXZpY2VzaW11bGF0b3JfU2Vuc29yVGVtcGxhdGUnLFxuICAgICdfYXR0YWNobWVudHMnLFxuICAgICdjOHlfSXNEZXZpY2VUeXBlJyxcbiAgICAnYzh5X29iamVjdG1hcHBpbmdfT2JqZWN0TWFwcGluZycsXG4gICAgJ2M4eV9Jc0Fzc2V0VHlwZSdcbiAgXSBhcyBjb25zdDtcbiAgc3RhdGljIFRZUEVTX0ZPUl9OT19ERVZJQ0UgPSBbXG4gICAgJ2M4eV9Db25maWd1cmF0aW9uRHVtcCcsXG4gICAgJ2M4eV9GaXJtd2FyZScsXG4gICAgJ2M4eV9TbWFydFJ1bGUnLFxuICAgICdjOHlfU29mdHdhcmUnLFxuICAgICdpbXBhY3Rfb2JqZWN0X21hcHBpbmcnLFxuICAgICdjOHlfVXNlclByZWZlcmVuY2UnLFxuICAgICdjOHlfVGVuYW50UG9saWN5JyxcbiAgICAnYzh5X1ByaXZhdGVTbWFydFJ1bGUnLFxuICAgICdjOHlfU21hcnRSZXN0MlRlbXBsYXRlJyxcbiAgICAnYzh5X0pzb25TY2hlbWEnLFxuICAgICdjOHlfRGV2aWNlU2hlbGxUZW1wbGF0ZScsXG4gICAgJ2M4eV9EZW1vU3RhdHVzJyxcbiAgICAnYzh5X0RhdGFCcm9rZXInLFxuICAgICdjOHlfQXBwbGljYXRpb25fJyxcbiAgICAnYnJhbmRpbmdWYXJpYWJsZXMnLFxuICAgICdjOHlfRGV2aWNlU2ltdWxhdG9yJyxcbiAgICAnYzh5X0NlcnRpZmljYXRlTWV0YWRhdGEnLFxuICAgICdsd20ybV9wb3N0X3JlZ2lzdHJhdGlvbicsXG4gICAgJ2M4eV9taWNyb3NlcnZpY2VfbWFuaWZlc3RfJ1xuICBdIGFzIGNvbnN0O1xuICBzdGF0aWMgREVWSUNFX0ZSQUdNRU5UX1RZUEUgPSAnYzh5X0lzRGV2aWNlJyBhcyBjb25zdDtcblxuICBzdGF0aWMgaXNBbnlEZXZpY2UobW86IElNYW5hZ2VkT2JqZWN0KTogYm9vbGVhbiB7XG4gICAgY29uc3QgaXNEZXZpY2UgPVxuICAgICAgRGV2aWNlU2VydmljZS5pc1Jvb3REZXZpY2UobW8pIHx8ICFEZXZpY2VTZXJ2aWNlLmhhc0ZyYWdtZW50T3JUeXBlRnJvbUJsYWNrbGlzdChtbyk7XG4gICAgcmV0dXJuIGlzRGV2aWNlO1xuICB9XG5cbiAgc3RhdGljIGhhc0ZyYWdtZW50T3JUeXBlRnJvbUJsYWNrbGlzdChtbzogSU1hbmFnZWRPYmplY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRGV2aWNlU2VydmljZS5oYXNUeXBlRnJvbUJsYWNrbGlzdChtbykgfHwgRGV2aWNlU2VydmljZS5oYXNGcmFnbWVudEZyb21CbGFja2xpc3QobW8pO1xuICB9XG5cbiAgc3RhdGljIGhhc1R5cGVGcm9tQmxhY2tsaXN0KG1vOiBJTWFuYWdlZE9iamVjdCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG1vVHlwZSA9IGdldChtbywgJ3R5cGUnLCAnJyk7XG4gICAgcmV0dXJuIHNvbWUoRGV2aWNlU2VydmljZS5UWVBFU19GT1JfTk9fREVWSUNFLCAodHlwZTogYW55KSA9PiBtb1R5cGUuaW5jbHVkZXModHlwZSkpO1xuICB9XG5cbiAgc3RhdGljIGhhc0ZyYWdtZW50RnJvbUJsYWNrbGlzdChtbzogSU1hbmFnZWRPYmplY3QpOiBib29sZWFuIHtcbiAgICBjb25zdCByZXN1bHQgPSBmaW5kKFxuICAgICAgRGV2aWNlU2VydmljZS5GUkFHTUVOVFNfRk9SX05PX0RFVklDRSxcbiAgICAgIChmcmFnbWVudDogc3RyaW5nIHwgbnVtYmVyKSA9PiAhaXNVbmRlZmluZWQobW9bZnJhZ21lbnRdKVxuICAgICk7XG4gICAgcmV0dXJuICEhcmVzdWx0O1xuICB9XG5cbiAgc3RhdGljIGlzUm9vdERldmljZShtbzogSU1hbmFnZWRPYmplY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFtb1tEZXZpY2VTZXJ2aWNlLkRFVklDRV9GUkFHTUVOVF9UWVBFXTtcbiAgfVxufVxuIl19