@iotize/ionic
Version:
Iotize specific building blocks on top of @ionic/angular.
98 lines • 14 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
import { IonSelect } from '@ionic/angular';
import { TapValueEditorContainerComponent, } from '@iotize/ionic';
import { 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";
import * as i3 from "@iotize/ionic";
let TapVariableSelectComponent = class TapVariableSelectComponent {
set options(selectOptions) {
this._selectOptions = selectOptions?.filter((option) => !!option);
}
constructor() {
this.valueChange = new EventEmitter();
this.refreshable = false;
this.multiple = false;
this.lines = 'none';
this._destroyed = new Subject();
}
ngOnDestroy() {
this._destroyed.next();
this._destroyed.complete();
}
ngAfterViewInit() {
this.ctx.variableValuesStream
.pipe(takeUntil(this._destroyed))
.subscribe((value) => {
this.lastValue = value;
});
this.ctx.editModeChange
.pipe(takeUntil(this._destroyed))
.subscribe((isEditModeOn) => {
if (isEditModeOn) {
this.openSelectDialog();
}
});
}
async openSelectDialog() {
await this.selectView?.open();
}
onSelectValueChange(event) {
const value = event.detail.value;
if (this.lastValue !== value) {
this.valueChange.emit(value);
this.ctx.notifyValueChange(value);
}
}
onSelectCancelChange() {
this.ctx.cancelEdit();
}
};
/** @nocollapse */ TapVariableSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TapVariableSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
/** @nocollapse */ TapVariableSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TapVariableSelectComponent, selector: "tap-variable-select", inputs: { variable: "variable", value: "value", editable: "editable", refreshable: "refreshable", multiple: "multiple", lines: "lines", options: "options" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "ctx", first: true, predicate: ["ctx"], descendants: true }, { propertyName: "selectView", first: true, predicate: ["selectView"], descendants: true }], ngImport: i0, template: "<tap-value-editor-container\n #ctx\n [variable]=\"variable\"\n [showEditButton]=\"editable\"\n [showRefreshButton]=\"refreshable\"\n [value]=\"value\"\n [lines]=\"lines\"\n>\n <ion-select\n #selectView\n [multiple]=\"multiple\"\n [value]=\"\n ctx.pendingSubmitValue !== undefined ? ctx.pendingSubmitValue : lastValue\n \"\n [disabled]=\"!editable\"\n (ionChange)=\"onSelectValueChange($event)\"\n (ionCancel)=\"onSelectCancelChange()\"\n >\n <ion-select-option\n *ngFor=\"let option of _selectOptions\"\n [value]=\"option.key\"\n >\n {{ option.text }}\n </ion-select-option>\n </ion-select>\n</tap-value-editor-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.IonSelect, selector: "ion-select", inputs: ["cancelText", "compareWith", "disabled", "interface", "interfaceOptions", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "value"] }, { kind: "component", type: i2.IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }, { kind: "directive", type: i2.SelectValueAccessor, selector: "ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "component", type: i3.TapValueEditorContainerComponent, selector: "tap-value-editor-container", inputs: ["button", "variable", "inputOptions", "showRefreshButton", "showSubmitButton", "showEditButton", "error", "lines", "modalEdition", "value"], outputs: ["submit", "refresh"] }] });
TapVariableSelectComponent = __decorate([
MonitoringAppGenComponent({
constraints: {
isArray: 'NO',
},
events: [
{
name: 'submit',
dataType: 'number',
},
],
}),
__metadata("design:paramtypes", [])
], TapVariableSelectComponent);
export { TapVariableSelectComponent };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TapVariableSelectComponent, decorators: [{
type: Component,
args: [{ selector: 'tap-variable-select', template: "<tap-value-editor-container\n #ctx\n [variable]=\"variable\"\n [showEditButton]=\"editable\"\n [showRefreshButton]=\"refreshable\"\n [value]=\"value\"\n [lines]=\"lines\"\n>\n <ion-select\n #selectView\n [multiple]=\"multiple\"\n [value]=\"\n ctx.pendingSubmitValue !== undefined ? ctx.pendingSubmitValue : lastValue\n \"\n [disabled]=\"!editable\"\n (ionChange)=\"onSelectValueChange($event)\"\n (ionCancel)=\"onSelectCancelChange()\"\n >\n <ion-select-option\n *ngFor=\"let option of _selectOptions\"\n [value]=\"option.key\"\n >\n {{ option.text }}\n </ion-select-option>\n </ion-select>\n</tap-value-editor-container>\n" }]
}], ctorParameters: function () { return []; }, propDecorators: { ctx: [{
type: ViewChild,
args: ['ctx']
}], selectView: [{
type: ViewChild,
args: ['selectView']
}], variable: [{
type: Input
}], value: [{
type: Input
}], valueChange: [{
type: Output
}], editable: [{
type: Input
}], refreshable: [{
type: Input
}], multiple: [{
type: Input
}], lines: [{
type: Input
}], options: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwLXZhcmlhYmxlLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pb3RpemUtaW9uaWMvbW9uaXRvcmluZy9zcmMvbGliL3VpLWNvbXBvbmVudHMvdGFwLXZhcmlhYmxlLXNlbGVjdC90YXAtdmFyaWFibGUtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lvdGl6ZS1pb25pYy9tb25pdG9yaW5nL3NyYy9saWIvdWktY29tcG9uZW50cy90YXAtdmFyaWFibGUtc2VsZWN0L3RhcC12YXJpYWJsZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBRUwsZ0NBQWdDLEdBQ2pDLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7OztBQWtCL0QsSUFBTSwwQkFBMEIsR0FBaEMsTUFBTSwwQkFBMEI7SUF5QnJDLElBQ0ksT0FBTyxDQUNULGFBQXNFO1FBRXRFLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFNRDtRQXpCQSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFNdEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFHN0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdqQixVQUFLLEdBQUcsTUFBTSxDQUFDO1FBV1AsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFMUIsQ0FBQztJQUVoQixXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0I7YUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDaEMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWM7YUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDaEMsU0FBUyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDMUIsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sS0FBSyxDQUFDLGdCQUFnQjtRQUM1QixNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQXFDO1FBQ3ZELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuQztJQUNILENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN4QixDQUFDOzsySUF6RVUsMEJBQTBCOytIQUExQiwwQkFBMEIseWJDbkN2Qyw0cUJBMEJBO0FEU2EsMEJBQTBCO0lBaEJ0Qyx5QkFBeUIsQ0FBQztRQUN6QixXQUFXLEVBQUU7WUFDWCxPQUFPLEVBQUUsSUFBSTtTQUNkO1FBQ0QsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsUUFBUSxFQUFFLFFBQVE7YUFDbkI7U0FDRjtLQUNGLENBQUM7O0dBTVcsMEJBQTBCLENBMEV0QztTQTFFWSwwQkFBMEI7NEZBQTFCLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSxxQkFBcUI7MEVBS2IsR0FBRztzQkFBcEIsU0FBUzt1QkFBQyxLQUFLO2dCQUNTLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFHdkIsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixXQUFXO3NCQURWLE1BQU07Z0JBSVAsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlGLE9BQU87c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25TZWxlY3QgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge1xuICBJbmxpbmVFZGl0b3JDb21wb25lbnQsXG4gIFRhcFZhbHVlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50LFxufSBmcm9tICdAaW90aXplL2lvbmljJztcbmltcG9ydCB7IEVkaXRhYmxlVmFsdWVEYXRhU3RyZWFtSW50ZXJmYWNlIH0gZnJvbSAnQGlvdGl6ZS90YXAvZGF0YSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNb25pdG9yaW5nQXBwR2VuQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbWV0YWRhdGEvZGVjb3JhdG9ycyc7XG5cbkBNb25pdG9yaW5nQXBwR2VuQ29tcG9uZW50KHtcbiAgY29uc3RyYWludHM6IHtcbiAgICBpc0FycmF5OiAnTk8nLFxuICB9LFxuICBldmVudHM6IFtcbiAgICB7XG4gICAgICBuYW1lOiAnc3VibWl0JyxcbiAgICAgIGRhdGFUeXBlOiAnbnVtYmVyJyxcbiAgICB9LFxuICBdLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RhcC12YXJpYWJsZS1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFwLXZhcmlhYmxlLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhcC12YXJpYWJsZS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFwVmFyaWFibGVTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdjdHgnKSBjdHghOiBUYXBWYWx1ZUVkaXRvckNvbnRhaW5lckNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnc2VsZWN0VmlldycpIHNlbGVjdFZpZXchOiBJb25TZWxlY3Q7XG5cbiAgQElucHV0KClcbiAgdmFyaWFibGU/OiBFZGl0YWJsZVZhbHVlRGF0YVN0cmVhbUludGVyZmFjZTxudW1iZXIsIGFueT47XG5cbiAgQElucHV0KClcbiAgdmFsdWU/OiBudW1iZXI7XG5cbiAgQE91dHB1dCgpXG4gIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQElucHV0KClcbiAgZWRpdGFibGU/OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHJlZnJlc2hhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgbXVsdGlwbGUgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBsaW5lcyA9ICdub25lJztcblxuICBASW5wdXQoKVxuICBzZXQgb3B0aW9ucyhcbiAgICBzZWxlY3RPcHRpb25zOiBJbmxpbmVFZGl0b3JDb21wb25lbnQuU2VsZWN0T3B0aW9ucy5PcHRpb25zIHwgdW5kZWZpbmVkXG4gICkge1xuICAgIHRoaXMuX3NlbGVjdE9wdGlvbnMgPSBzZWxlY3RPcHRpb25zPy5maWx0ZXIoKG9wdGlvbikgPT4gISFvcHRpb24pO1xuICB9XG5cbiAgX3NlbGVjdE9wdGlvbnM6IElubGluZUVkaXRvckNvbXBvbmVudC5TZWxlY3RPcHRpb25zLk9wdGlvbnMgfCB1bmRlZmluZWQ7XG4gIGxhc3RWYWx1ZT86IGFueTtcbiAgcHJpdmF0ZSBfZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveWVkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmN0eC52YXJpYWJsZVZhbHVlc1N0cmVhbVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmN0eC5lZGl0TW9kZUNoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpXG4gICAgICAuc3Vic2NyaWJlKChpc0VkaXRNb2RlT24pID0+IHtcbiAgICAgICAgaWYgKGlzRWRpdE1vZGVPbikge1xuICAgICAgICAgIHRoaXMub3BlblNlbGVjdERpYWxvZygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgb3BlblNlbGVjdERpYWxvZygpIHtcbiAgICBhd2FpdCB0aGlzLnNlbGVjdFZpZXc/Lm9wZW4oKTtcbiAgfVxuXG4gIG9uU2VsZWN0VmFsdWVDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50PHsgdmFsdWU6IHN0cmluZyB9Pikge1xuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQuZGV0YWlsLnZhbHVlO1xuICAgIGlmICh0aGlzLmxhc3RWYWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICB0aGlzLmN0eC5ub3RpZnlWYWx1ZUNoYW5nZSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgb25TZWxlY3RDYW5jZWxDaGFuZ2UoKSB7XG4gICAgdGhpcy5jdHguY2FuY2VsRWRpdCgpO1xuICB9XG59XG4iLCI8dGFwLXZhbHVlLWVkaXRvci1jb250YWluZXJcbiAgI2N0eFxuICBbdmFyaWFibGVdPVwidmFyaWFibGVcIlxuICBbc2hvd0VkaXRCdXR0b25dPVwiZWRpdGFibGVcIlxuICBbc2hvd1JlZnJlc2hCdXR0b25dPVwicmVmcmVzaGFibGVcIlxuICBbdmFsdWVdPVwidmFsdWVcIlxuICBbbGluZXNdPVwibGluZXNcIlxuPlxuICA8aW9uLXNlbGVjdFxuICAgICNzZWxlY3RWaWV3XG4gICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICBbdmFsdWVdPVwiXG4gICAgICBjdHgucGVuZGluZ1N1Ym1pdFZhbHVlICE9PSB1bmRlZmluZWQgPyBjdHgucGVuZGluZ1N1Ym1pdFZhbHVlIDogbGFzdFZhbHVlXG4gICAgXCJcbiAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlXCJcbiAgICAoaW9uQ2hhbmdlKT1cIm9uU2VsZWN0VmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGlvbkNhbmNlbCk9XCJvblNlbGVjdENhbmNlbENoYW5nZSgpXCJcbiAgPlxuICAgIDxpb24tc2VsZWN0LW9wdGlvblxuICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBfc2VsZWN0T3B0aW9uc1wiXG4gICAgICBbdmFsdWVdPVwib3B0aW9uLmtleVwiXG4gICAgPlxuICAgICAge3sgb3B0aW9uLnRleHQgfX1cbiAgICA8L2lvbi1zZWxlY3Qtb3B0aW9uPlxuICA8L2lvbi1zZWxlY3Q+XG48L3RhcC12YWx1ZS1lZGl0b3ItY29udGFpbmVyPlxuIl19