UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

1 lines 9.39 kB
{"version":3,"file":"c8y-ngx-components-device-parameters.mjs","sources":["../../device-parameters/device-parameters-list.component.ts","../../device-parameters/device-parameters-list.component.html","../../device-parameters/device-parameters-tab.guard.ts","../../device-parameters/index.ts","../../device-parameters/c8y-ngx-components-device-parameters.ts"],"sourcesContent":["import { Component, inject, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n Column,\n DataGridComponent,\n Pagination,\n AssetPropertyService,\n C8yTranslatePipe,\n EmptyStateComponent,\n IconDirective,\n DeviceParameter,\n gettext\n} from '@c8y/ngx-components';\nimport { ActivatedRoute } from '@angular/router';\nimport { IManagedObject } from '@c8y/client';\nimport { difference } from 'lodash-es';\n\n@Component({\n standalone: true,\n selector: 'c8y-device-parameters-list',\n imports: [CommonModule, IconDirective, C8yTranslatePipe, EmptyStateComponent, DataGridComponent],\n templateUrl: 'device-parameters-list.component.html'\n})\nexport class DeviceParametersListComponent implements OnInit {\n private readonly route = inject(ActivatedRoute);\n private readonly assetPropertyService: AssetPropertyService = inject(AssetPropertyService);\n private readonly device: IManagedObject = this.route.snapshot.parent?.data?.contextData;\n\n rows: DeviceParameter[] = [];\n pagination: Pagination = { currentPage: 1, pageSize: 25 };\n columns: Column[] = [\n { name: 'Title', path: 'title', header: gettext('Title') },\n { name: 'Key', path: 'key', header: gettext('Key') },\n { name: 'Value', path: 'value', header: gettext('Value') },\n { name: 'Type', path: 'type', header: gettext('Type') }\n ];\n\n async ngOnInit() {\n await this.loadData();\n }\n\n async loadData() {\n const paramKeys = this.getParameterKeys(this.device);\n\n if (!paramKeys.length) {\n return {\n data: [],\n res: {} as any,\n size: 0,\n filteredSize: 0\n };\n }\n\n const result = await this.assetPropertyService.list({ identifiers: paramKeys });\n const definitions = result.data || [];\n\n this.rows = paramKeys.map(key => {\n const def = definitions.find(d => d.identifier === key);\n const value = this.device[key];\n\n return {\n title: def?.jsonSchema?.title || '',\n key,\n value: typeof value === 'object' ? JSON.stringify(value) : value,\n type: def?.jsonSchema?.type || typeof value\n };\n });\n }\n\n private getParameterKeys(device: IManagedObject): string[] {\n const excluded = [\n 'id',\n 'self',\n 'owner',\n 'name',\n 'type',\n 'lastUpdated',\n 'creationTime',\n 'childDevices',\n 'childAssets',\n 'childAdditions',\n 'deviceParents',\n 'assetParents',\n 'additionParents',\n 'c8y_IsDevice',\n 'com_cumulocity_model_Agent'\n ];\n return difference(Object.keys(device), excluded);\n }\n}\n","<div class=\"content-fullpage\">\n <c8y-data-grid\n [title]=\"'Parameters' | translate\"\n [columns]=\"columns\"\n [rows]=\"rows\"\n [pagination]=\"pagination\"\n (onReload)=\"loadData()\"\n >\n <c8y-ui-empty-state\n icon=\"search\"\n [title]=\"'No parameters to display.' | translate\"\n [subtitle]=\"'Parameters used in the device will be displayed here' | translate\"\n horizontal\n ></c8y-ui-empty-state>\n </c8y-data-grid>\n</div>\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { ApplicationService } from '@c8y/client';\n\nconst DEVICE_PARAMETERS_MICROSERVICE = 'device-parameters';\nconst DTM_MICROSERVICE = 'dtm';\n\n@Injectable({ providedIn: 'root' })\nexport class DeviceParametersTabGuard implements CanActivate {\n constructor(private applicationService: ApplicationService) {}\n\n async canActivate(): Promise<boolean> {\n const deviceParametersAvailable = await this.applicationService\n .isAvailable(DEVICE_PARAMETERS_MICROSERVICE)\n .then(({ data }) => data)\n .catch(() => false);\n\n const dtmAvailable = await this.applicationService\n .isAvailable(DTM_MICROSERVICE)\n .then(({ data }) => data)\n .catch(() => false);\n\n return deviceParametersAvailable && dtmAvailable;\n }\n}\n","import { hookRoute, Route, ViewContext, gettext } from '@c8y/ngx-components';\nimport { DeviceParametersListComponent } from './device-parameters-list.component';\nimport { DeviceParametersTabGuard } from './device-parameters-tab.guard';\n\nconst DEVICE_PARAMETERS_ROUTE: Route = {\n path: 'parameters',\n context: ViewContext.Device,\n component: DeviceParametersListComponent,\n label: gettext('Parameters'),\n icon: 'sliders',\n priority: 650,\n canActivate: [DeviceParametersTabGuard]\n};\n\nexport const deviceParametersFeatureProvider = [hookRoute(DEVICE_PARAMETERS_ROUTE)];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}