UNPKG

@iotize/ionic

Version:

Iotize specific building blocks on top of @ionic/angular.

124 lines 14.9 kB
import { __decorate } from "tslib"; import { Component, Input } from '@angular/core'; import { Observable, Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { MonitoringAppGenComponent, } from '../../metadata/decorators'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; import * as i2 from "@ionic/angular"; let TapVariableLinearGaugeComponent = class TapVariableLinearGaugeComponent { constructor() { this.dataValue = 0; this.dataPercent = 0; this.destroyed = new Subject(); this.min = 0; this.max = 100; this.color = 'primary'; this.textColor = 'dark'; this.reversed = false; } /** * @deprecated use unit instead */ set units(v) { this.unit = v; } set value(v) { if (v === undefined || v === null) { v = 0; } if (typeof v === 'string') { v = parseInt(v, 10); if (isNaN(v)) { v = 0; } } if (typeof v !== 'number') { console.warn(`TapVariableLinearGauge: Invalid value type: ${typeof v}`, v); } this.setValue(v); } /** * @deprecated use [value]="..." instead */ set variable(variable) { this._variable = variable; if (variable) { this.inputStream = variable.values; } } /** * @deprecated use [value]="..." instead */ set inputStream(inputs) { inputs.pipe(takeUntil(this.destroyed)).subscribe((value) => { this.setValue(value); }); } setValue(value) { if (this.min === null) { this.min = 0; } if (this.max == null) { this.max = 100; } if (typeof value === 'string') { value = parseInt(value); } if (typeof value !== 'number') { value = this.min; } this.dataValue = value; if (value <= this.min) { this.min = value; this.dataPercent = 0; } else if (value >= this.max) { this.dataPercent = 1; this.max = value; } else { this.dataPercent = (value - this.min) / (this.max - this.min); } } ngOnDestroy() { this.destroyed.next(); } }; /** @nocollapse */ TapVariableLinearGaugeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TapVariableLinearGaugeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); /** @nocollapse */ TapVariableLinearGaugeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TapVariableLinearGaugeComponent, selector: "tap-variable-linear-gauge", inputs: { unit: "unit", digitsInfo: "digitsInfo", units: "units", min: "min", max: "max", color: "color", textColor: "textColor", reversed: "reversed", value: "value", variable: "variable", inputStream: "inputStream" }, ngImport: i0, template: "<div id=\"divBloc\">\n <ion-label id=\"labelValue\" [color]=\"textColor\"\n >{{ dataValue | number: digitsInfo }}\n <span *ngIf=\"unit\">{{ unit }}</span></ion-label\n >\n <ion-label id=\"labelMin\">\n {{ reversed ? max : min }}\n </ion-label>\n <ion-label id=\"labelMax\">\n {{ reversed ? min : max }}\n </ion-label>\n <ion-progress-bar\n id=\"progressBar\"\n [reversed]=\"reversed\"\n [color]=\"color\"\n [value]=\"dataPercent\"\n ></ion-progress-bar>\n</div>\n", styles: ["#divBloc{width:100%;position:relative;text-align:center;padding:10px 10px 20px}#labelValue{margin:5px;font-size:2em}#labelMin{left:10px;top:20px;position:absolute}#progressBar{box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;border-radius:5px}#labelMax{position:absolute;top:20px;right:10px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }] }); TapVariableLinearGaugeComponent = __decorate([ MonitoringAppGenComponent({ constraints: { isNumber: 'YES', }, }) ], TapVariableLinearGaugeComponent); export { TapVariableLinearGaugeComponent }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TapVariableLinearGaugeComponent, decorators: [{ type: Component, args: [{ selector: 'tap-variable-linear-gauge', template: "<div id=\"divBloc\">\n <ion-label id=\"labelValue\" [color]=\"textColor\"\n >{{ dataValue | number: digitsInfo }}\n <span *ngIf=\"unit\">{{ unit }}</span></ion-label\n >\n <ion-label id=\"labelMin\">\n {{ reversed ? max : min }}\n </ion-label>\n <ion-label id=\"labelMax\">\n {{ reversed ? min : max }}\n </ion-label>\n <ion-progress-bar\n id=\"progressBar\"\n [reversed]=\"reversed\"\n [color]=\"color\"\n [value]=\"dataPercent\"\n ></ion-progress-bar>\n</div>\n", styles: ["#divBloc{width:100%;position:relative;text-align:center;padding:10px 10px 20px}#labelValue{margin:5px;font-size:2em}#labelMin{left:10px;top:20px;position:absolute}#progressBar{box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;border-radius:5px}#labelMax{position:absolute;top:20px;right:10px}\n"] }] }], propDecorators: { unit: [{ type: Input }], digitsInfo: [{ type: Input }], units: [{ type: Input }], min: [{ type: Input }], max: [{ type: Input }], color: [{ type: Input }], textColor: [{ type: Input }], reversed: [{ type: Input }], value: [{ type: Input }], variable: [{ type: Input }], inputStream: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwLXZhcmlhYmxlLWxpbmVhci1nYXVnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pb3RpemUtaW9uaWMvbW9uaXRvcmluZy9zcmMvbGliL3VpLWNvbXBvbmVudHMvdGFwLXZhcmlhYmxlLWxpbmVhci1nYXVnZS90YXAtdmFyaWFibGUtbGluZWFyLWdhdWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lvdGl6ZS1pb25pYy9tb25pdG9yaW5nL3NyYy9saWIvdWktY29tcG9uZW50cy90YXAtdmFyaWFibGUtbGluZWFyLWdhdWdlL3RhcC12YXJpYWJsZS1saW5lYXItZ2F1Z2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBRUwseUJBQXlCLEdBQzFCLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFrQjVCLElBQU0sK0JBQStCLEdBQXJDLE1BQU0sK0JBQStCO0lBQXJDO1FBQ0wsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBR1IsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFnQnhDLFFBQUcsR0FBWSxDQUFDLENBQUM7UUFHakIsUUFBRyxHQUFZLEdBQUcsQ0FBQztRQUduQixVQUFLLEdBQUcsU0FBUyxDQUFDO1FBR2xCLGNBQVMsR0FBRyxNQUFNLENBQUM7UUFHbkIsYUFBUSxHQUFHLEtBQUssQ0FBQztLQXVFbEI7SUEzRkM7O09BRUc7SUFDSCxJQUFhLEtBQUssQ0FBQyxD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WSwrQkFBK0I7NEZBQS9CLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDRSwyQkFBMkI7OEJBWXJDLElBQUk7c0JBREgsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBTU8sS0FBSztzQkFBakIsS0FBSztnQkFLTixHQUFHO3NCQURGLEtBQUs7Z0JBSU4sR0FBRztzQkFERixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlGLEtBQUs7c0JBRFIsS0FBSztnQkF3QkYsUUFBUTtzQkFEWCxLQUFLO2dCQVlGLFdBQVc7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RWYXJpYWJsZSB9IGZyb20gJ0Bpb3RpemUvdGFwL2RhdGEnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQXBwR2VuRmllbGQsXG4gIE1vbml0b3JpbmdBcHBHZW5Db21wb25lbnQsXG59IGZyb20gJy4uLy4uL21ldGFkYXRhL2RlY29yYXRvcnMnO1xuaW1wb3J0IHtcbiAgRElHSVRTX0lORk9fU0NIRU1BLFxuICBJT05JQ19DT0xPUl9TQ0hFTUEsXG4gIFRBUF9WQVJJQUJMRV9TQ0hFTUEsXG4gIFZBTFVFX1NUUkVBTV9GSUVMRCxcbn0gZnJvbSAnLi4vc2hhcmVkLXNjaGVtYSc7XG5cbkBNb25pdG9yaW5nQXBwR2VuQ29tcG9uZW50KHtcbiAgY29uc3RyYWludHM6IHtcbiAgICBpc051bWJlcjogJ1lFUycsXG4gIH0sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGFwLXZhcmlhYmxlLWxpbmVhci1nYXVnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90YXAtdmFyaWFibGUtbGluZWFyLWdhdWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFwLXZhcmlhYmxlLWxpbmVhci1nYXVnZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUYXBWYXJpYWJsZUxpbmVhckdhdWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgZGF0YVZhbHVlID0gMDtcbiAgZGF0YVBlcmNlbnQgPSAwO1xuICBfdmFyaWFibGU/OiBBYnN0cmFjdFZhcmlhYmxlPGFueT47XG5cbiAgcHJpdmF0ZSBkZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIEBJbnB1dCgpXG4gIHVuaXQ/OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgZGlnaXRzSW5mbz86IHN0cmluZztcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIHVuaXQgaW5zdGVhZFxuICAgKi9cbiAgQElucHV0KCkgc2V0IHVuaXRzKHY6IHN0cmluZykge1xuICAgIHRoaXMudW5pdCA9IHY7XG4gIH1cblxuICBASW5wdXQoKVxuICBtaW4/OiBudW1iZXIgPSAwO1xuXG4gIEBJbnB1dCgpXG4gIG1heD86IG51bWJlciA9IDEwMDtcblxuICBASW5wdXQoKVxuICBjb2xvciA9ICdwcmltYXJ5JztcblxuICBASW5wdXQoKVxuICB0ZXh0Q29sb3IgPSAnZGFyayc7XG5cbiAgQElucHV0KClcbiAgcmV2ZXJzZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZXQgdmFsdWUodjogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHYgPT09IHVuZGVmaW5lZCB8fCB2ID09PSBudWxsKSB7XG4gICAgICB2ID0gMDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2ID09PSAnc3RyaW5nJykge1xuICAgICAgdiA9IHBhcnNlSW50KHYsIDEwKTtcbiAgICAgIGlmIChpc05hTih2KSkge1xuICAgICAgICB2ID0gMDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2ICE9PSAnbnVtYmVyJykge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgVGFwVmFyaWFibGVMaW5lYXJHYXVnZTogSW52YWxpZCB2YWx1ZSB0eXBlOiAke3R5cGVvZiB2fWAsXG4gICAgICAgIHZcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuc2V0VmFsdWUodik7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIFt2YWx1ZV09XCIuLi5cIiBpbnN0ZWFkXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgdmFyaWFibGUodmFyaWFibGU6IEFic3RyYWN0VmFyaWFibGU8bnVtYmVyIHwgbnVtYmVyW10+IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fdmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICBpZiAodmFyaWFibGUpIHtcbiAgICAgIHRoaXMuaW5wdXRTdHJlYW0gPSB2YXJpYWJsZS52YWx1ZXM7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBbdmFsdWVdPVwiLi4uXCIgaW5zdGVhZFxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGlucHV0U3RyZWFtKGlucHV0czogT2JzZXJ2YWJsZTxhbnk+KSB7XG4gICAgaW5wdXRzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBzZXRWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIGlmICh0aGlzLm1pbiA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5taW4gPSAwO1xuICAgIH1cbiAgICBpZiAodGhpcy5tYXggPT0gbnVsbCkge1xuICAgICAgdGhpcy5tYXggPSAxMDA7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICB2YWx1ZSA9IHBhcnNlSW50KHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ251bWJlcicpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5taW4hO1xuICAgIH1cbiAgICB0aGlzLmRhdGFWYWx1ZSA9IHZhbHVlO1xuICAgIGlmICh2YWx1ZSA8PSB0aGlzLm1pbiEpIHtcbiAgICAgIHRoaXMubWluID0gdmFsdWU7XG4gICAgICB0aGlzLmRhdGFQZXJjZW50ID0gMDtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID49IHRoaXMubWF4KSB7XG4gICAgICB0aGlzLmRhdGFQZXJjZW50ID0gMTtcbiAgICAgIHRoaXMubWF4ID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGF0YVBlcmNlbnQgPSAodmFsdWUgLSB0aGlzLm1pbiEpIC8gKHRoaXMubWF4IC0gdGhpcy5taW4hKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XG4gIH1cbn1cbiIsIjxkaXYgaWQ9XCJkaXZCbG9jXCI+XG4gIDxpb24tbGFiZWwgaWQ9XCJsYWJlbFZhbHVlXCIgW2NvbG9yXT1cInRleHRDb2xvclwiXG4gICAgPnt7IGRhdGFWYWx1ZSB8IG51bWJlcjogZGlnaXRzSW5mbyB9fVxuICAgIDxzcGFuICpuZ0lmPVwidW5pdFwiPnt7IHVuaXQgfX08L3NwYW4+PC9pb24tbGFiZWxcbiAgPlxuICA8aW9uLWxhYmVsIGlkPVwibGFiZWxNaW5cIj5cbiAgICB7eyByZXZlcnNlZCA/IG1heCA6IG1pbiB9fVxuICA8L2lvbi1sYWJlbD5cbiAgPGlvbi1sYWJlbCBpZD1cImxhYmVsTWF4XCI+XG4gICAge3sgcmV2ZXJzZWQgPyBtaW4gOiBtYXggfX1cbiAgPC9pb24tbGFiZWw+XG4gIDxpb24tcHJvZ3Jlc3MtYmFyXG4gICAgaWQ9XCJwcm9ncmVzc0JhclwiXG4gICAgW3JldmVyc2VkXT1cInJldmVyc2VkXCJcbiAgICBbY29sb3JdPVwiY29sb3JcIlxuICAgIFt2YWx1ZV09XCJkYXRhUGVyY2VudFwiXG4gID48L2lvbi1wcm9ncmVzcy1iYXI+XG48L2Rpdj5cbiJdfQ==