@iotize/ionic
Version:
Iotize specific building blocks on top of @ionic/angular.
56 lines • 9.83 kB
JavaScript
import { Component, Input } from '@angular/core';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "@ionic/angular";
export class TextCardComponent {
set inputStream(stream) {
if (stream) {
this.subscription?.unsubscribe();
this.subscription = stream.subscribe({
next: (value) => {
if (this.template) {
value = this.template.replace('#value#', value);
}
this.value = value;
},
error: (err) => {
this.error = err;
},
});
}
}
constructor() {
this.options = {
initialValue: '0',
};
this.color = 'dark';
this.value = this.options.initialValue;
}
ngOnDestroy() {
this.subscription?.unsubscribe();
}
}
/** @nocollapse */ TextCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TextCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
/** @nocollapse */ TextCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TextCardComponent, selector: "monitoring-text-card", inputs: { options: "options", title: "title", subtitle: "subtitle", template: "template", unit: "unit", icon: "icon", color: "color", inputStream: "inputStream" }, ngImport: i0, template: "<ion-card>\n <ion-item *ngIf=\"title || icon\" lines=\"full\" [color]=\"color\">\n <ion-icon *ngIf=\"icon\" name=\"{{ icon }}\" slot=\"start\"></ion-icon>\n <ion-label *ngIf=\"title\">{{ title }}</ion-label>\n <ion-icon *ngIf=\"icon\" slot=\"end\"></ion-icon>\n </ion-item>\n <ion-card-content>\n <span class=\"variable-value\" *ngIf=\"value\">{{ value }}</span>\n <br *ngIf=\"unit\" />\n <span *ngIf=\"unit\" class=\"unit\">{{ unit }}</span>\n </ion-card-content>\n <ion-card-content *ngIf=\"error\">\n {{ error }}\n </ion-card-content>\n <ion-card-content *ngIf=\"subtitle\" class=\"text-center\">\n <ion-text class=\"description\">{{ subtitle }}</ion-text>\n </ion-card-content>\n</ion-card>\n", styles: [".variable-value{font-size:1.4em;font-weight:700}ion-card,ion-card ion-item,ion-card-subtitle,ion-item ion-card-subtitle{text-align:center}.description{font-size:.9em;color:#777;text-align:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TextCardComponent, decorators: [{
type: Component,
args: [{ selector: 'monitoring-text-card', template: "<ion-card>\n <ion-item *ngIf=\"title || icon\" lines=\"full\" [color]=\"color\">\n <ion-icon *ngIf=\"icon\" name=\"{{ icon }}\" slot=\"start\"></ion-icon>\n <ion-label *ngIf=\"title\">{{ title }}</ion-label>\n <ion-icon *ngIf=\"icon\" slot=\"end\"></ion-icon>\n </ion-item>\n <ion-card-content>\n <span class=\"variable-value\" *ngIf=\"value\">{{ value }}</span>\n <br *ngIf=\"unit\" />\n <span *ngIf=\"unit\" class=\"unit\">{{ unit }}</span>\n </ion-card-content>\n <ion-card-content *ngIf=\"error\">\n {{ error }}\n </ion-card-content>\n <ion-card-content *ngIf=\"subtitle\" class=\"text-center\">\n <ion-text class=\"description\">{{ subtitle }}</ion-text>\n </ion-card-content>\n</ion-card>\n", styles: [".variable-value{font-size:1.4em;font-weight:700}ion-card,ion-card ion-item,ion-card-subtitle,ion-item ion-card-subtitle{text-align:center}.description{font-size:.9em;color:#777;text-align:center}\n"] }]
}], ctorParameters: function () { return []; }, propDecorators: { options: [{
type: Input
}], title: [{
type: Input
}], subtitle: [{
type: Input
}], template: [{
type: Input
}], unit: [{
type: Input
}], icon: [{
type: Input
}], color: [{
type: Input
}], inputStream: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lvdGl6ZS1pb25pYy9tb25pdG9yaW5nL3NyYy9saWIvdWktY29tcG9uZW50cy90ZXh0LWNhcmQvdGV4dC1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lvdGl6ZS1pb25pYy9tb25pdG9yaW5nL3NyYy9saWIvdWktY29tcG9uZW50cy90ZXh0LWNhcmQvdGV4dC1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0sTUFBTSxDQUFDOzs7O0FBV2hELE1BQU0sT0FBTyxpQkFBaUI7SUFtQjVCLElBQ0ksV0FBVyxDQUFDLE1BQXVCO1FBQ3JDLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7Z0JBQ25DLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTt3QkFDakIsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztxQkFDakQ7b0JBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7Z0JBQ25CLENBQUM7YUFDRixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFNRDtRQXhDUyxZQUFPLEdBQTZCO1lBQzNDLFlBQVksRUFBRSxHQUFHO1NBQ2xCLENBQUM7UUFZTyxVQUFLLEdBQUcsTUFBTSxDQUFDO1FBc0J4QixVQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFJbkIsQ0FBQztJQUVoQixXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDOztrSUE3Q1UsaUJBQWlCO3NIQUFqQixpQkFBaUIsZ09DWjlCLDB0QkFrQkE7NEZETmEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLHNCQUFzQjswRUFLdkIsT0FBTztzQkFBZixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0YsV0FBVztzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBUZXh0Q2FyZENvbXBvbmVudE9wdGlvbnMge1xuICBpbml0aWFsVmFsdWU6IGFueTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9uaXRvcmluZy10ZXh0LWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRleHRDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KCkgb3B0aW9uczogVGV4dENhcmRDb21wb25lbnRPcHRpb25zID0ge1xuICAgIGluaXRpYWxWYWx1ZTogJzAnLFxuICB9O1xuXG4gIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHN1YnRpdGxlPzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHRlbXBsYXRlPzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHVuaXQ/OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgaWNvbj86IHN0cmluZztcblxuICBASW5wdXQoKSBjb2xvciA9ICdkYXJrJztcblxuICBzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgQElucHV0KClcbiAgc2V0IGlucHV0U3RyZWFtKHN0cmVhbTogT2JzZXJ2YWJsZTxhbnk+KSB7XG4gICAgaWYgKHN0cmVhbSkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHN0cmVhbS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAodmFsdWUpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy50ZW1wbGF0ZSkge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLnRlbXBsYXRlLnJlcGxhY2UoJyN2YWx1ZSMnLCB2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yID0gZXJyO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdmFsdWUgPSB0aGlzLm9wdGlvbnMuaW5pdGlhbFZhbHVlO1xuXG4gIGVycm9yPzogRXJyb3I7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8aW9uLWNhcmQ+XG4gIDxpb24taXRlbSAqbmdJZj1cInRpdGxlIHx8IGljb25cIiBsaW5lcz1cImZ1bGxcIiBbY29sb3JdPVwiY29sb3JcIj5cbiAgICA8aW9uLWljb24gKm5nSWY9XCJpY29uXCIgbmFtZT1cInt7IGljb24gfX1cIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPlxuICAgIDxpb24tbGFiZWwgKm5nSWY9XCJ0aXRsZVwiPnt7IHRpdGxlIH19PC9pb24tbGFiZWw+XG4gICAgPGlvbi1pY29uICpuZ0lmPVwiaWNvblwiIHNsb3Q9XCJlbmRcIj48L2lvbi1pY29uPlxuICA8L2lvbi1pdGVtPlxuICA8aW9uLWNhcmQtY29udGVudD5cbiAgICA8c3BhbiBjbGFzcz1cInZhcmlhYmxlLXZhbHVlXCIgKm5nSWY9XCJ2YWx1ZVwiPnt7IHZhbHVlIH19PC9zcGFuPlxuICAgIDxiciAqbmdJZj1cInVuaXRcIiAvPlxuICAgIDxzcGFuICpuZ0lmPVwidW5pdFwiIGNsYXNzPVwidW5pdFwiPnt7IHVuaXQgfX08L3NwYW4+XG4gIDwvaW9uLWNhcmQtY29udGVudD5cbiAgPGlvbi1jYXJkLWNvbnRlbnQgKm5nSWY9XCJlcnJvclwiPlxuICAgIHt7IGVycm9yIH19XG4gIDwvaW9uLWNhcmQtY29udGVudD5cbiAgPGlvbi1jYXJkLWNvbnRlbnQgKm5nSWY9XCJzdWJ0aXRsZVwiIGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cbiAgICA8aW9uLXRleHQgY2xhc3M9XCJkZXNjcmlwdGlvblwiPnt7IHN1YnRpdGxlIH19PC9pb24tdGV4dD5cbiAgPC9pb24tY2FyZC1jb250ZW50PlxuPC9pb24tY2FyZD5cbiJdfQ==