@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
43 lines • 4.4 kB
JavaScript
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
export class DatapointParserService {
constructor() {
this.attributeToParse = [
'target',
'yellowRangeMin',
'yellowRangeMax',
'redRangeMin',
'redRangeMax',
'min',
'max'
];
}
parseDatapoints(datapoints) {
return datapoints.map(dp => this.parseDatapoint(dp));
}
parseDatapoint(datapoint) {
if (!datapoint.c8y_Kpi) {
return datapoint;
}
const kpi = datapoint.c8y_Kpi;
for (const key of this.attributeToParse) {
if (typeof kpi[key] === 'string') {
const num = Number.parseFloat(kpi[key]);
if (!Number.isNaN(num)) {
kpi[key] = num;
}
else {
delete kpi[key];
}
}
}
return datapoint;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatapointParserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatapointParserService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatapointParserService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50LXBhcnNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZGF0YXBvaW50LWxpYnJhcnkvc2VydmljZXMvZGF0YXBvaW50LXBhcnNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTNDLE1BQU0sT0FBTyxzQkFBc0I7SUFEbkM7UUFFcUIscUJBQWdCLEdBQUc7WUFDcEMsUUFBUTtZQUNSLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGFBQWE7WUFDYixLQUFLO1lBQ0wsS0FBSztTQUNHLENBQUM7S0F5Qlo7SUF2QkMsZUFBZSxDQUFDLFVBQTRCO1FBQzFDLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsY0FBYyxDQUFDLFNBQXlCO1FBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkIsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDOUIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QyxJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNqQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUN2QixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO2dCQUNqQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7K0dBakNVLHNCQUFzQjttSEFBdEIsc0JBQXNCLGNBRFQsTUFBTTs7NEZBQ25CLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBEYXRhcG9pbnRQYXJzZXJTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGF0dHJpYnV0ZVRvUGFyc2UgPSBbXG4gICAgJ3RhcmdldCcsXG4gICAgJ3llbGxvd1JhbmdlTWluJyxcbiAgICAneWVsbG93UmFuZ2VNYXgnLFxuICAgICdyZWRSYW5nZU1pbicsXG4gICAgJ3JlZFJhbmdlTWF4JyxcbiAgICAnbWluJyxcbiAgICAnbWF4J1xuICBdIGFzIGNvbnN0O1xuXG4gIHBhcnNlRGF0YXBvaW50cyhkYXRhcG9pbnRzOiBJTWFuYWdlZE9iamVjdFtdKSB7XG4gICAgcmV0dXJuIGRhdGFwb2ludHMubWFwKGRwID0+IHRoaXMucGFyc2VEYXRhcG9pbnQoZHApKTtcbiAgfVxuXG4gIHBhcnNlRGF0YXBvaW50KGRhdGFwb2ludDogSU1hbmFnZWRPYmplY3QpOiBJTWFuYWdlZE9iamVjdCB7XG4gICAgaWYgKCFkYXRhcG9pbnQuYzh5X0twaSkge1xuICAgICAgcmV0dXJuIGRhdGFwb2ludDtcbiAgICB9XG5cbiAgICBjb25zdCBrcGkgPSBkYXRhcG9pbnQuYzh5X0twaTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiB0aGlzLmF0dHJpYnV0ZVRvUGFyc2UpIHtcbiAgICAgIGlmICh0eXBlb2Yga3BpW2tleV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IG51bSA9IE51bWJlci5wYXJzZUZsb2F0KGtwaVtrZXldKTtcbiAgICAgICAgaWYgKCFOdW1iZXIuaXNOYU4obnVtKSkge1xuICAgICAgICAgIGtwaVtrZXldID0gbnVtO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZSBrcGlba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkYXRhcG9pbnQ7XG4gIH1cbn1cbiJdfQ==