@iotize/ionic
Version:
Iotize specific building blocks on top of @ionic/angular.
1 lines • 486 kB
Source Map (JSON)
{"version":3,"file":"iotize-ionic-monitoring.mjs","sources":["../../../../projects/iotize-ionic/monitoring/src/lib/tap-monitoring-settings/monitoring-settings.service.ts","../../../../projects/iotize-ionic/monitoring/src/lib/tap-monitoring-settings/tap-monitoring-settings.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/tap-monitoring-settings/tap-monitoring-settings.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/tap-monitoring-settings/tap-monitoring-settings.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/ChartDataModel.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/ExportDataFormat.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-data-popup/tap-variable-data-popup.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-data-popup/tap-variable-data-popup.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-directive/export-data.service.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-directive/export-data.directive.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/bar-chart-stacked/bar-chart-stacked.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/bar-chart-stacked/bar-chart-stacked.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-data-popup/tap-variable-data-popup.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-directive/export-data.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/bar-chart-stacked/bar-chart-stacked.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/debug.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/gauge-card/gauge-card.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/gauge-card/gauge-card.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/gauge-card/gauge-card.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/monitoring-actions/monitoring-actions.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/monitoring-actions/monitoring-actions.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/monitoring-actions/monitoring-actions.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/monitoring-edit-text/monitoring-edit-text.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/monitoring-edit-text/monitoring-edit-text.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/monitoring-edit-text/monitoring-edit-text.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/monitoring-range/monitoring-range.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/monitoring-range/monitoring-range.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/monitoring-range/monitoring-range.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/monitoring-table/monitoring-table.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/monitoring-table/monitoring-table.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/monitoring-table/monitoring-table.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/monitoring-variable-value/monitoring-variable-value.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/monitoring-variable-value/monitoring-variable-value.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/monitoring-variable-value/monitoring-variable-value.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/metadata/metadata.ts","../../../../projects/iotize-ionic/monitoring/src/lib/metadata/decorators.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-bar-chart-group/tap-variable-bar-chart-group.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-bar-chart-group/tap-variable-bar-chart-group.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-bar-chart-group/tap-variable-bar-chart-group.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-bar-chart/tap-variable-bar-chart.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-bar-chart/tap-variable-bar-chart.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-bar-chart/tap-variable-bar-chart.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-bits-editor/tap-variable-bits-editor-info-modal/tap-variable-bits-editor-info-modal.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-bits-editor/tap-variable-bits-editor-info-modal/tap-variable-bits-editor-info-modal.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-bits-editor/tap-variable-bits-editor-info-modal/tap-variable-bits-editor-info-modal.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-bits-editor/tap-variable-bits-editor.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-bits-editor/tap-variable-bits-editor.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-bits-editor/tap-variable-bits-editor.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-buttons/tap-variable-buttons.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-buttons/tap-variable-buttons.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-buttons/tap-variable-buttons.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-color-picker/tap-variable-color-picker.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-color-picker/tap-variable-color-picker.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-color-picker/tap-variable-color-picker.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-context/tap-variable-context.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-context/tap-variable-context.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-context/tap-variable-context.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-date-time-picker/tap-variable-date-time-picker.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-date-time-picker/tap-variable-date-time-picker.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-date-time-picker/tap-variable-date-time-picker.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-gauge/tap-variable-gauge.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-gauge/tap-variable-gauge.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-select/tap-variable-select.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-select/tap-variable-select.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-select/tap-variable-select.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-gpio-mode/tap-variable-gpio-mode.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-gpio-mode/tap-variable-gpio-mode.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-gpio-mode/tap-variable-gpio-mode.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-toggle/tap-variable-toggle.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-toggle/tap-variable-toggle.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-gpio-value/tap-variable-gpio-value.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-gpio-value/tap-variable-gpio-value.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-toggle/tap-variable-toggle.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-gpio-value/tap-variable-gpio-value.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-heat-map-chart/tap-variable-heat-map-chart.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-heat-map-chart/tap-variable-heat-map-chart.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-heat-map-chart/tap-variable-heat-map-chart.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-line-chart/tap-variable-line-chart.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-line-chart/tap-variable-line-chart.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-line-chart/tap-variable-line-chart.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-linear-gauge/tap-variable-linear-gauge.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-linear-gauge/tap-variable-linear-gauge.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-linear-gauge/tap-variable-linear-gauge.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-number-chart/tap-variable-number-chart.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-number-chart/tap-variable-number-chart.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-number-chart/tap-variable-number-chart.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-number/tap-variable-number.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-number/tap-variable-number.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-pie-chart-advanced/tap-variable-pie-chart-advanced.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-pie-chart-advanced/tap-variable-pie-chart-advanced.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-pie-chart-advanced/tap-variable-pie-chart-advanced.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-pie-chart-grid/tap-variable-pie-chart-grid.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-pie-chart-grid/tap-variable-pie-chart-grid.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-pie-chart-grid/tap-variable-pie-chart-grid.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-polar-radar-chart/tap-variable-polar-radar-chart.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-polar-radar-chart/tap-variable-polar-radar-chart.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-polar-radar-chart/tap-variable-polar-radar-chart.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-push-button/tap-variable-push-button.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-push-button/tap-variable-push-button.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-push-button/tap-variable-push-button.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-range/tap-variable-range.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-range/tap-variable-range.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-range/tap-variable-range.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-switch-picture/tap-variable-switch-picture.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-switch-picture/tap-variable-switch-picture.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-switch-picture/tap-variable-switch-picture.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-table/tap-variable-table.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-table/tap-variable-table.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-table/tap-variable-table.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/utility.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-text/tap-variable-text.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-text/tap-variable-text.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/text-card/text-card.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/text-card/text-card.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/text-card/text-card.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/variable-card/variable-card.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/variable-card/variable-card.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/variable-card/variable-card.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/chart-container/chart-container.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/chart-container/chart-container.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/chart-container/chart-container.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-monitoring-components.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-pipes/hexstring.pipe.ts","../../../../projects/iotize-ionic/monitoring/src/lib/tap-monitoring.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-datalog-table/tap-datalog-table.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-datalog-table/tap-datalog-table.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-datalog-table/tap-datalog-table.module.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-image-and-value/label-value/label-value.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-image-and-value/label-value/label-value.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-image-and-value/tap-variable-image-and-value.component.ts","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-image-and-value/tap-variable-image-and-value.component.html","../../../../projects/iotize-ionic/monitoring/src/lib/ui-components/tap-variable-image-and-value/tap-variable-image-and-value.module.ts","../../../../projects/iotize-ionic/monitoring/src/iotize-ionic-monitoring.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Observable, BehaviorSubject } from 'rxjs';\n\nexport interface MonitoringSettings {\n period: number;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MonitoringSettingsService {\n private subject = new BehaviorSubject({\n period: 1000,\n });\n\n constructor() {}\n\n set settings(value: MonitoringSettings) {\n this.subject.next(value);\n }\n\n get settings() {\n return this.subject.value;\n }\n\n get settings$(): Observable<MonitoringSettings> {\n return this.subject;\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { MonitoringSettingsService } from './monitoring-settings.service';\nimport { ModalController } from '@ionic/angular';\nimport { throwError } from 'rxjs';\nimport { getFormFieldOrError } from '@iotize/ionic';\n\n@Component({\n selector: 'tap-monitoring-settings',\n templateUrl: './tap-monitoring-settings.component.html',\n styleUrls: ['./tap-monitoring-settings.component.scss'],\n})\nexport class TapMonitoringSettingsComponent implements OnInit {\n @Input() showDataSource = false;\n\n public form: FormGroup;\n\n get period() {\n return getFormFieldOrError(this.form, 'period');\n }\n\n get dataSource() {\n return getFormFieldOrError(this.form, 'dataSource');\n }\n\n constructor(\n public formBuilder: FormBuilder,\n public monitoringSettingsService: MonitoringSettingsService,\n public modalController: ModalController\n ) {\n this.form = this.formBuilder.group({\n period: [this.monitoringSettingsService.settings.period],\n dataSource: ['live'],\n });\n }\n\n ngOnInit() {\n this.form.valueChanges.subscribe(() => {\n this.monitoringSettingsService.settings = {\n period: this.period.value,\n };\n });\n }\n\n async dismiss() {\n const topOverlay = await this.modalController.getTop();\n if (topOverlay) {\n await this.modalController.dismiss(topOverlay.id);\n }\n }\n}\n","<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-buttons slot=\"start\">\n <ion-button (click)=\"dismiss()\">\n <ion-icon name=\"arrow-back\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-title class=\"text-center\">\n Monitoring Settings\n </ion-title>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <form [formGroup]=\"form\">\n <ion-list>\n <ion-item>\n <ion-label>Frequency (in milliseconds)</ion-label>\n <ion-input\n [formControlName]=\"'period'\"\n slot=\"end\"\n text-right\n type=\"number\"\n ></ion-input>\n </ion-item>\n <ion-item *ngIf=\"showDataSource\">\n <ion-label>Data source</ion-label>\n <ion-select [formControlName]=\"'dataSource'\" slot=\"end\">\n <ion-select-option value=\"live\">Live data</ion-select-option>\n <ion-select-option value=\"datalog\">Data log</ion-select-option>\n </ion-select>\n </ion-item>\n </ion-list>\n </form>\n</ion-content>\n<ion-footer>\n <ion-toolbar>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"dismiss()\">Ok</ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-footer>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IonicModule } from '@ionic/angular';\n\nimport { TapMonitoringSettingsComponent } from './tap-monitoring-settings.component';\n\n@NgModule({\n declarations: [TapMonitoringSettingsComponent],\n exports: [TapMonitoringSettingsComponent],\n entryComponents: [TapMonitoringSettingsComponent],\n imports: [CommonModule, IonicModule, ReactiveFormsModule],\n})\nexport class TapMonitoringSettingsModule {}\n","import { Type } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport { Observable, Subscription } from 'rxjs';\nimport { OnSelectChartValueEvent } from './shared-types';\n\nexport interface ChartInputSingle {\n name: string | Date;\n value: number | string;\n extra: number | string;\n}\n\nexport type ChartInputTable = {\n name: string | Date;\n} & {\n [vals: number]: number;\n};\n\nexport interface ChartInputMutli {\n name: string | Date;\n series: ChartInputSingle[];\n}\n\nexport interface ChartInputStreamVar {\n stream: Observable<number | number[]>;\n label: string;\n}\n\nexport class ChartDataModel {\n labels: string | string[] | undefined | Function;\n\n subList: Subscription[] = [];\n\n currentData: ChartInputStreamVar | ChartInputStreamVar[] = [];\n\n public initLabel(indexOrArray: string | string[] | undefined | Function) {\n if (indexOrArray) {\n this.labels = indexOrArray;\n }\n }\n\n public initVariable(\n variableOrArray:\n | AbstractVariable<number | number[]>\n | AbstractVariable<number | number[]>[]\n | undefined\n ): ChartInputStreamVar[] {\n if (!variableOrArray) {\n return [];\n }\n const vArray = Array.isArray(variableOrArray)\n ? variableOrArray\n : [variableOrArray];\n return vArray.map((variable) => {\n return {\n stream: variable.values,\n label: variable.id?.toString() || '',\n };\n });\n }\n\n /**\n * @param inputs data inputs\n * @param history to show data with time\n * @param valueCountLimit when history has true, this one define the limit of length\n */\n public defineInputStreamSingle(\n inputs: ChartInputStreamVar | ChartInputStreamVar[],\n history: boolean,\n valueCountLimit: number,\n forceHistory?: boolean\n ): Observable<any> {\n this.currentData = inputs;\n return new Observable((observer: any) => {\n let results = [] as ChartInputSingle[];\n if (inputs) {\n if (!Array.isArray(inputs)) {\n inputs = [inputs];\n }\n\n inputs.forEach((input: ChartInputStreamVar) => {\n if (input as ChartInputStreamVar) {\n const inputStream = input as ChartInputStreamVar;\n this.subList.push(\n inputStream.stream.subscribe({\n next: (data) => {\n if (Array.isArray(data) && !forceHistory) {\n if (data.length > 1) {\n history = false;\n }\n }\n let i = 0;\n if (history) {\n if (Array.isArray(data)) {\n const vals = JSON.parse(\n '{\"name\": \"' + this.currentDate() + '\"}'\n );\n data.forEach((d) => {\n vals[i] = d as number;\n i++;\n });\n results.push(vals);\n results = [\n ...results.map((r) => {\n let newKeys: Record<string | number, string> = {};\n let i = 0;\n for (const [key, value] of Object.entries(r)) {\n if (key !== 'name') {\n if (typeof key === 'number') {\n newKeys[key] = this.labelConfig(\n key,\n input.label\n );\n } else {\n newKeys[key] = this.labelConfig(i, input.label);\n }\n } else {\n newKeys[key] = key;\n }\n if (!(key === 'name' && i === 0)) {\n i++;\n }\n }\n const renamedObj = this.renameKeys(r, newKeys);\n const mappedObj: Record<\n string | number,\n string | Date | number\n > = {};\n mappedObj['name'] = renamedObj['name'];\n for (const [key, v] of Object.entries(renamedObj)) {\n if (key !== 'name') {\n mappedObj[key] = v;\n }\n }\n return mappedObj as any;\n }),\n ];\n const itemCount = results.length;\n if (\n valueCountLimit !== undefined &&\n itemCount > valueCountLimit\n ) {\n const toRemove = itemCount - valueCountLimit;\n results.splice(0, toRemove);\n }\n } else {\n results.push({\n name: this.currentDate(),\n value: data,\n extra: 0,\n });\n const itemCount = results.length;\n if (\n valueCountLimit !== undefined &&\n itemCount > valueCountLimit\n ) {\n const toRemove = itemCount - valueCountLimit;\n results.splice(0, toRemove);\n }\n }\n } else {\n if (Array.isArray(data)) {\n data.map(() => {\n results[i] = {\n name: this.labelConfig(i, input.label),\n value: data[i],\n extra: i,\n };\n i++;\n });\n } else {\n results[i] = {\n name: this.labelConfig(i, input.label),\n value: data,\n extra: i,\n };\n }\n }\n results = [...results];\n observer.next(results);\n },\n error: (err) => {\n console.log(err);\n observer.next([]);\n },\n })\n );\n }\n });\n }\n });\n }\n\n public defineMultiInputStream(\n inputs: ChartInputStreamVar[]\n ): Observable<ChartInputMutli[]> {\n this.currentData = inputs;\n return new Observable((observer: any) => {\n let results: ChartInputMutli[] = [];\n let indexInputs = 0;\n inputs.forEach((input) => {\n this.subList.push(\n input.stream.subscribe({\n next: (values) => {\n let indexInput = 0;\n if (!Array.isArray(values)) {\n values = [values];\n }\n values.map((value) => {\n let indexOfLabel = 0;\n for (const inputLabel of inputs) {\n if (inputLabel.label === input.label) {\n indexInputs = indexOfLabel;\n }\n indexOfLabel++;\n }\n if (!results[indexInput]) {\n results[indexInput] = {\n name: this.labelConfig(indexInput, 'Index '),\n series: [],\n };\n }\n results[indexInput].series[indexInputs] = {\n name: inputs[indexInputs].label,\n value: value,\n extra: indexInput,\n };\n indexInput++;\n });\n results = [...results];\n observer.next(results);\n },\n error: (err) => {\n console.log(err);\n observer.next([]);\n },\n })\n );\n });\n });\n }\n\n public defineMultiInputStreamTable(\n inputs: ChartInputStreamVar[]\n ): Observable<ChartInputTable[]> {\n this.currentData = inputs;\n return new Observable((observer: any) => {\n let results = [] as ChartInputTable[];\n\n inputs.forEach((input) => {\n let indexValues = 0;\n\n this.subList.push(\n input.stream.subscribe({\n next: (values) => {\n let indexOfLabel = 0;\n for (const inputLabel of inputs) {\n if (inputLabel.label === input.label) {\n indexValues = indexOfLabel;\n }\n indexOfLabel++;\n }\n const vals = JSON.parse('{\"Name\": \"' + input.label + '\"}');\n let turn = 0;\n if (!Array.isArray(values)) {\n values = [values];\n }\n for (const val of values) {\n vals[this.labelConfig(turn, 'Index')] = val as number;\n turn++;\n }\n results[indexValues] = vals as ChartInputTable;\n results = [...results];\n observer.next(results);\n },\n error: (error) => {\n console.log(error);\n observer.next([]);\n },\n })\n );\n });\n });\n }\n\n public defineInputStreamMulti(\n inputs: ChartInputStreamVar | ChartInputStreamVar[],\n history: boolean,\n valueCountLimit: number\n ): Observable<ChartInputMutli[]> {\n this.currentData = inputs;\n return new Observable((observer: any) => {\n let results = [] as ChartInputMutli[];\n if (inputs) {\n if (!Array.isArray(inputs)) {\n inputs = [inputs];\n }\n inputs.map((input: ChartInputStreamVar) => {\n const inputStream = input as ChartInputStreamVar;\n this.subList.push(\n inputStream.stream.subscribe({\n next: (data) => {\n const seriesData: ChartInputSingle[] = [];\n let indexLabel = 0;\n if (history) {\n if (Array.isArray(data)) {\n data.forEach((element) => {\n seriesData.push({\n name: this.labelConfig(indexLabel, inputStream.label),\n value: element,\n extra: indexLabel,\n });\n indexLabel++;\n });\n results.push({\n name: this.currentDate(),\n series: seriesData,\n });\n\n const itemCount = results.length;\n if (\n valueCountLimit !== undefined &&\n itemCount > valueCountLimit\n ) {\n const toRemove = itemCount - valueCountLimit;\n results.splice(0, toRemove);\n }\n } else {\n results.push({\n name: new Date(),\n series: [\n {\n name: inputStream.label,\n value: data,\n extra: 0,\n },\n ],\n });\n const itemCount = results.length;\n if (\n valueCountLimit !== undefined &&\n itemCount > valueCountLimit\n ) {\n const toRemove = itemCount - valueCountLimit;\n results.splice(0, toRemove);\n }\n }\n } else {\n if (Array.isArray(data)) {\n data.map((element) => {\n seriesData.push({\n name: this.labelConfig(indexLabel, inputStream.label),\n value: element,\n extra: indexLabel,\n });\n indexLabel++;\n });\n\n results = [\n {\n name: inputStream.label,\n series: seriesData,\n },\n ];\n } else {\n results = [\n {\n name: inputStream.label,\n series: [\n {\n name: this.labelConfig(\n indexLabel,\n inputStream.label\n ),\n value: data,\n extra: indexLabel,\n },\n ],\n },\n ];\n }\n }\n results = [...results];\n observer.next(results);\n },\n error: (err) => {\n console.log(err);\n observer.next([]);\n },\n })\n );\n });\n }\n });\n }\n\n public defineInputStreamHistoryMultiLegend(\n inputs: ChartInputStreamVar[],\n valueCountLimit: number\n ): Observable<ChartInputMutli[]> {\n this.currentData = inputs;\n return new Observable((observer: any) => {\n let results = [] as ChartInputMutli[];\n if (inputs) {\n if (!Array.isArray(inputs)) {\n inputs = [inputs];\n }\n results = [];\n inputs.map((input: ChartInputStreamVar) => {\n if (input.stream) {\n const inputStream = input as ChartInputStreamVar;\n this.subList.push(\n inputStream.stream.subscribe({\n next: (value) => {\n let indexLabel = 0;\n\n if (Array.isArray(value)) {\n value.map(() => {\n if (!results[indexLabel]) {\n results.push({\n name: this.labelConfig(indexLabel, inputStream.label),\n series: [],\n });\n } else {\n results[indexLabel].name = this.labelConfig(\n indexLabel,\n inputStream.label\n );\n }\n results[indexLabel].series.push({\n name: new Date(),\n value: value[indexLabel],\n extra: indexLabel,\n });\n const itemCount = results[indexLabel].series.length;\n if (\n valueCountLimit !== undefined &&\n itemCount > valueCountLimit\n ) {\n const toRemove = itemCount - valueCountLimit;\n results[indexLabel].series.splice(0, toRemove);\n }\n indexLabel++;\n });\n } else {\n if (!results[0]) {\n results.push({\n name: inputStream.label,\n series: [],\n });\n }\n\n results[0].series.push({\n name: new Date(),\n value: value,\n extra: 0,\n });\n\n const itemCount = results[0].series.length;\n if (\n valueCountLimit !== undefined &&\n itemCount > valueCountLimit\n ) {\n const toRemove = itemCount - valueCountLimit;\n results[0].series.splice(0, toRemove);\n }\n }\n results = [...results];\n observer.next(results);\n },\n error: (err) => {\n console.log(err);\n observer.next([]);\n },\n })\n );\n }\n });\n }\n });\n }\n\n labelConfig(index: number, labelBundle: string) {\n let labelToReturn = '';\n if (typeof this.labels === 'function') {\n labelToReturn = this.labels(index);\n } else if (!this.labels) {\n labelToReturn = labelBundle + (index + 1);\n } else {\n if (Array.isArray(this.labels)) {\n if (this.labels[index]) {\n labelToReturn = this.labels[index];\n } else {\n labelToReturn = labelBundle + (index + 1);\n }\n } else if (!Array.isArray(this.labels) && index < 1) {\n labelToReturn = this.labels;\n } else if (!Array.isArray(this.labels) && index > 0) {\n labelToReturn = labelBundle + (index + 1);\n }\n }\n return labelToReturn;\n }\n\n digit(n: number) {\n return n > 9 ? '' + n : '0' + n;\n }\n\n renameKeys(\n obj: ChartInputSingle,\n newKeys: { [x: string]: string }\n ): Record<string | number, string | Date | number> {\n const keyValues = Object.entries(obj).map(([key, value]) => {\n const newKey = newKeys[key] || key;\n return { [newKey]: value };\n });\n return Object.assign({}, ...keyValues);\n }\n\n async showDetail(\n event: OnSelectChartValueEvent,\n mod: ModalController,\n component: Type<any>\n ) {\n const modal = await mod.create({\n component: component,\n cssClass: 'modal-class',\n componentProps: {\n label: event.label,\n value: event.value,\n index: event.extra,\n variable: (this.currentData as any)[0],\n },\n });\n return await modal.present();\n }\n\n currentDate(): string | Date {\n return (\n '' +\n this.digit(+new Date().getHours()) +\n ':' +\n this.digit(+new Date().getMinutes()) +\n ':' +\n this.digit(+new Date().getSeconds())\n );\n }\n\n public destroyCurrentSub() {\n for (const sub of this.subList) {\n sub.unsubscribe();\n }\n }\n}\n","import { ChartInputSingle } from './ChartDataModel';\n\nexport class ExportDataFormat {}\n\nexport function dataWithSeriesToCsv(dataReceive: any[]) {\n if (dataReceive.length === 0) {\n return [];\n } else {\n const data: any[] = [];\n dataReceive[0].series.forEach((value: { name: string; value: number }) => {\n const element: Record<string, string> = {};\n if (!isNaN(new Date(value.name).getDate())) {\n element['time'] = value.name;\n } else {\n element['label'] = value.name;\n }\n dataReceive.forEach((a) => {\n const tab = a.series.filter(\n (n: ChartInputSingle) => value.name.toString() === n.name.toString()\n );\n if (tab.length !== 0) {\n if (!element[a.name]) {\n element[a.name] = tab[0].value;\n }\n }\n });\n data.push(element);\n });\n return data;\n }\n}\n","import { Component, Input, OnDestroy } from '@angular/core';\nimport { ChartInputMutli, ChartInputStreamVar } from '../ChartDataModel';\nimport { ModalController } from '@ionic/angular';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'tap-tap-variable-data-popup',\n templateUrl: './tap-variable-data-popup.component.html',\n styleUrls: ['./tap-variable-data-popup.component.scss'],\n})\nexport class TapVariableDataPopupComponent implements OnDestroy {\n legend = false;\n showLabels = false;\n animations = true;\n xAxis = true;\n yAxis = true;\n showYAxisLabel = false;\n showXAxisLabel = false;\n timeline = false;\n currentValue!: number;\n currentDate!: string;\n\n colorScheme = {\n domain: ['#5AA454', '#A10A28', '#C7B42C', '#AAAAAA'],\n };\n\n results: ChartInputMutli[] = [];\n\n private destroyed = new Subject<void>();\n\n @Input() value!: string;\n @Input() label!: string;\n @Input() index!: number;\n @Input() set variable(inputs: ChartInputStreamVar) {\n this.results.push({\n name: this.label,\n series: [],\n });\n inputs.stream.pipe(takeUntil(this.destroyed)).subscribe((value) => {\n if (Array.isArray(value)) {\n this.currentValue = value[this.index];\n } else {\n this.currentValue = value;\n }\n const seriesData = {\n name: new Date(),\n value: this.currentValue,\n extra: 0,\n };\n this.results[0].series.push(seriesData);\n\n const itemCount = this.results[0].series.length;\n if (itemCount > 10) {\n const toRemove = itemCount - 10;\n this.results[0].series.splice(0, toRemove);\n }\n this.results = [...this.results];\n });\n }\n\n constructor(private modalController: ModalController) {\n this.currentDate =\n '' +\n this.digit(+new Date().getHours()) +\n ':' +\n this.digit(+new Date().getMinutes()) +\n ':' +\n this.digit(+new Date().getSeconds());\n }\n\n ngOnDestroy(): void {\n this.destroyed.next();\n }\n\n public async dismissModal() {\n await this.modalController.dismiss();\n }\n\n digit(n: number) {\n return n > 9 ? '' + n : '0' + n;\n }\n}\n","<ion-header translucent>\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-button (click)=\"dismissModal()\"\n ><ion-icon name=\"arrow-back-outline\"></ion-icon\n ></ion-button>\n </ion-buttons>\n <ion-title>{{ label }}</ion-title>\n <ion-buttons slot=\"end\">\n <span>Details</span>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <ion-list>\n <ion-item>\n <ion-label>Value on click</ion-label>\n <ion-note class=\"value\" slot=\"end\">{{ value }}</ion-note>\n </ion-item>\n <ion-item>\n <ion-label>Time on click</ion-label>\n <ion-note class=\"value\" slot=\"end\">{{ currentDate }}</ion-note>\n </ion-item>\n\n <ion-item>\n <ion-label>Current value</ion-label>\n <ion-note class=\"value\" slot=\"end\">{{ currentValue }}</ion-note>\n </ion-item>\n\n <!-- <ion-item>\n <ion-label>Dynamic graphic</ion-label>\n <div #containerRef style=\"height: 30vh; width: 100%\">\n <ngx-charts-line-chart\n [view]=\"[containerRef.offsetWidth, containerRef.offsetHeight]\"\n [scheme]=\"colorScheme\"\n [showXAxisLabel]=\"showXAxisLabel\"\n [showYAxisLabel]=\"showYAxisLabel\"\n [legend]=\"legend\"\n [xAxis]=\"xAxis\"\n [yAxis]=\"yAxis\"\n [timeline]=\"timeline\"\n [results]=\"results\"\n >\n </ngx-charts-line-chart>\n </div>\n </ion-item> -->\n </ion-list>\n</ion-content>\n","import { Injectable } from '@angular/core';\nimport { File } from '@awesome-cordova-plugins/file/ngx';\nimport { Platform } from '@ionic/angular';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ExportDataService {\n constructor(private file: File, private platform: Platform) {}\n\n async triggerDownload(blob: Blob, filename: string) {\n if (this.platform.is('cordova')) {\n const directory = this.getDownloadDirectory();\n filename = await this.ensureFileNameAvailable(directory, filename);\n await this.file.writeFile(directory, filename, blob);\n return directory;\n } else {\n const link = document.createElement('a');\n link.href = URL.createObjectURL(blob);\n link.setAttribute('visibility', 'hidden');\n link.download = filename;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n return undefined;\n }\n }\n\n private getDownloadDirectory() {\n let directory: string | undefined;\n if (this.file.externalRootDirectory) {\n directory = this.file.externalRootDirectory;\n if (this.platform.is('android')) {\n directory += 'Download/';\n }\n } else if (this.file.dataDirectory) {\n directory = this.file.dataDirectory;\n } else if (this.file.documentsDirectory) {\n directory = this.file.documentsDirectory;\n }\n if (!directory) {\n throw new Error('Cannot find a valid directory to download the log file');\n }\n return directory;\n }\n\n private async ensureFileNameAvailable(\n directory: string,\n filename: string\n ): Promise<string> {\n const parts = filename.split('.');\n const extension = parts.length > 1 ? '.' + parts[parts.length - 1] : '';\n const filenameWithoutExt =\n parts.length > 1 ? parts.slice(0, parts.length - 1).join('.') : parts[0];\n let count = 1;\n while (\n await this.file\n .checkFile(directory, filename)\n .then((_) => true)\n .catch((err) => {\n console.log('Check file err', err);\n return false;\n })\n ) {\n filename = `${filenameWithoutExt} (${count})${extension}`;\n count++;\n }\n return filename;\n }\n}\n","import {\n Directive,\n EventEmitter,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\nimport { AlertController, Platform } from '@ionic/angular';\nimport { ExportToCsv } from '@iotize/ionic';\nimport { ExportDataService } from './export-data.service';\n\n@Directive({\n selector: '[tapExportData]',\n})\nexport class ExportDataDirective {\n constructor(\n public alertController: AlertController,\n public platform: Platform,\n private dataToExportService: ExportDataService\n ) {}\n\n @Output() exportDataError = new EventEmitter<Error>();\n @Input() exportedFileName?: string;\n @Input() dataToExport?: any[] | (() => any[]);\n @Input() format?: 'csv' | 'json';\n\n @HostListener('click')\n async onClickEvent() {\n if (this.exportedFileName === undefined) {\n this.exportedFileName = 'data';\n }\n let alert: HTMLIonAlertElement;\n let data =\n typeof this.dataToExport === 'function'\n ? this.dataToExport()\n : this.dataToExport;\n if (data?.length !== 0) {\n if (!this.format) {\n alert = await this.alertController.create({\n header: 'Export data',\n cssClass: 'custom-alert',\n message: 'Select file format',\n buttons: [\n {\n text: 'CSV',\n handler: async () => {\n this.exportToCsv(data as any);\n },\n },\n {\n text: 'JSON',\n handler: () => {\n this.exportToJson(data);\n },\n },\n ],\n });\n await alert.present();\n } else {\n switch (this.format) {\n case 'csv':\n await this.exportToCsv(data);\n break;\n case 'json':\n await this.exportToJson(data);\n break;\n }\n }\n } else {\n const alert = await this.alertController.create({\n header: 'Export data',\n message: 'Cannot export empty data.',\n buttons: [\n {\n text: 'OK',\n },\n ],\n });\n await alert.present();\n }\n }\n\n private exportToJson(data: any[] | undefined) {\n try {\n this.dataToExportService.triggerDownload(\n new Blob([JSON.stringify(data, null, 4)]),\n `${this.exportedFileName}.json`\n );\n } catch (e: any) {\n this.exportDataError.emit(e);\n }\n }\n\n private async exportToCsv(data: any) {\n try {\n if (data) {\n if (!this.exportedFileName) {\n this.exportedFileName = 'data';\n }\n const csvExport = new ExportToCsv(data, this.exportedFileName, {\n headers: Object.keys(data[0]),\n });\n const csvString = csvExport.csvToString();\n await this.dataToExportService.triggerDownload(\n new Blob([csvString]),\n `${this.exportedFileName}.csv`\n );\n }\n } catch (e: any) {\n this.exportDataError.emit(e);\n }\n }\n}\n","import {\n AfterViewChecked,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n PLATFORM_ID,\n ViewChild,\n} from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport {\n BarHorizontal2DComponent,\n BarVertical2DComponent,\n BaseChartComponent,\n LegendPosition,\n} from '@swimlane/ngx-charts';\nimport { Subscription } from 'rxjs';\nimport { ChartDataModel, ChartInputMutli } from '../ChartDataModel';\nimport { dataWithSeriesToCsv } from '../ExportDataFormat';\nimport { OnChartSelectEvent } from '../shared-types';\nimport { TapVariableDataPopupComponent } from '../tap-variable-data-popup/tap-variable-data-popup.component';\n\n@Component({\n selector: 'iotize-dashboard-bar-chart-stacked',\n templateUrl: './bar-chart-stacked.component.html',\n styleUrls: ['./bar-chart-stacked.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BarChartStackedComponent\n extends BaseChartComponent\n implements AfterViewChecked, OnDestroy\n{\n @ViewChild('containerRef') divContainer!: ElementRef;\n @ViewChild('barChartHor') barChartHor!: BarHorizontal2DComponent;\n @ViewChild('barChartVer') barChartVer!: BarVertical2DComponent;\n\n constructor(\n myChartElement: ElementRef<any>,\n zone: NgZone,\n cd: ChangeDetectorRef,\n @Inject(PLATFORM_ID) platformId: string,\n public modalController: ModalController\n ) {\n super(myChartElement, zone, cd, platformId);\n }\n\n legendPosition: LegendPosition = LegendPosition.Below;\n\n showExportButton: boolean = false;\n\n exportedFileName?: string;\n\n legend: boolean = true;\n\n colorScheme = {\n domain: [\n '#5DADE2',\n '#9B59B6',\n '#F39C12',\n '#5AA454',\n '#A10A28',\n '#C7B42C',\n '#AAAAAA',\n ],\n };\n\n @Input()\n orientation: string = 'vertical';\n\n @Input()\n showDetails: boolean = false;\n\n @Input()\n noBarWhenZero: boolean = false;\n\n @Input()\n showXAxis = true;\n\n @Input()\n showYAxis = true;\n\n @Input()\n history: boolean = false;\n\n @Input()\n valueCountLimit = 10;\n\n @Input()\n set label(indexOrArray: string | string[] | undefined | Function) {\n this.chartModel.initLabel(indexOrArray);\n }\n\n @Input() set data(results: ChartInputMutli[]) {\n this.results = results;\n }\n\n results: ChartInputMutli[] = [\n {\n name: '---',\n series: [\n {\n name: '---',\n value: 0,\n extra: 0,\n },\n ],\n },\n ];\n\n @Input() scrollableChart = false;\n\n widthChart?: number;\n heightChart?: number;\n\n private chartModel: ChartDataModel = new ChartDataModel();\n\n private subscription?: Subscription;\n\n createExportedData() {\n return dataWithSeriesToCsv(this.results);\n }\n\n onSelect(event: OnChartSelectEvent) {\n if (typeof event === 'object') {\n if (this.showDetails) {\n this.chartModel\n .showDetail(\n event,\n this.modalController,\n TapVariableDataPopupComponent\n )\n .catch((err) => {\n console.log(err);\n });\n }\n }\n }\n\n ngAfterViewChecked(): void {\n if (!this.scrollableChart) {\n this.widthChart = this.divContainer.nativeElement.offsetWidth;\n this.heightChart = this.divContainer.nativeElement.offsetHeight;\n }\n this.cd.detectChanges();\n }\n\n resizeToScroll(size: number, seriesSize: number) {\n if (this.orientation === 'vertical') {\n if (\n this.divContainer.nativeElement.offsetWidth <=\n size * 50 * seriesSize\n ) {\n this.barChartVer.view = [\n size * 50 * seriesSize,\n this.divContainer.nativeElement.offsetHeight,\n ];\n }\n } else if (this.orientation === 'horizontal') {\n if (\n this.divContainer.nativeElement.offsetHeight <=\n size * 50 * seriesSize\n ) {\n this.barChartHor.view = [\n this.divContainer.nativeElement.offsetWidth,\n size * 50 * seriesSize,\n ];\n }\n }\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n this.chartModel.destroyCurrentSub();\n }\n}\n","<div\n [ngClass]=\"\n scrollableChart\n ? orientation === 'vertical'\n ? 'verticalContainer'\n : 'horizontalContainer'\n : {}\n \"\n>\n <div\n #containerRef\n [ngClass]=\"\n legendPosition === 'below' && legend ? 'belowLegend' : 'rightLegend'\n \"\n [ngSwitch]=\"orientation\"\n style=\"position: relative\"\n >\n <ngx-charts-bar-horizontal-stacked\n *ngSwitchCase=\"'horizontal'\"\n #barChartHor\n [view]=\"[containerRef.offsetWidth, containerRef.offsetHeight]\"\n [scheme]=\"colorScheme\"\n [results]=\"results\"\n [legend]=\"legend\"\n [legendPosition]=\"legendPosition\"\n [xAxis]=\"showXAxis\"\n [noBarWhenZero]=\"noBarWhenZero\"\n [yAxis]=\"showYAxis\"\n (select)=\"onSelect($event)\"\n >\n </ngx-charts-bar-horizontal-stacked>\n <ngx-charts-bar-vertical-stacked\n *ngSwitchCase=\"'vertical'\"\n #barChartVer\n [view]=\"[containerRef.offsetWidth, containerRef.offsetHeight]\"\n [scheme]=\"colorScheme\"\n [results]=\"results\"\n [legend]=\"legend\"\n [legendPosition]=\"legendPosition\"\n [noBarWhenZero]=\"noBarWhenZero\"\n [xAxis]=\"showXAxis\"\n [yAxis]=\"showYAxis\"\n (select)=\"onSelect($event)\"\n >\n </ngx-charts-bar-vertical-stacked>\n <ion-fab-button\n id=\"exportFabButton\"\n size=\"small\"\n tapExportData\n *ngIf=\"showExportButton\"\n [dataToExport]=\"createExportedData.bind(this)\"\n [exportedFileName]=\"exportedFileName\"\n >\n <ion-icon name=\"download\"></ion-icon>\n </ion-fab-button>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\nimport { IonicModule } from '@ionic/angular';\nimport { TapVariableDataPopupComponent } from './tap-variable-data-popup.component';\n\n@NgModule({\n declarations: [TapVariableDataPopupComponent],\n exports: [TapVariableDataPopupComponent],\n imports: [CommonModule, NgxChartsModule, IonicModule],\n entryComponents: [TapVariableDataPopupComponent],\n})\nexport class TapVariableDataPopupModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { File } from '@awesome-cordova-plugins/file/ngx';\nimport { ExportDataDirective } from './export-data.directive';\nimport { IonicModule } from '@ionic/angular';\nimport { ExportDataService } from './export-data.service';\n\n@NgModule({\n exports: [ExportDataDirective],\n declarations: [ExportDataDirective],\n imports: [CommonModule, IonicModule],\n providers: [ExportDataService, File],\n})\nexport class ExportDataModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BarChartStackedComponent } from './bar-chart-stacked.component';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\nimport { TapVariableDataPopupModule } from '../tap-variable-data-popup/tap-variable-data-popup.module';\nimport { IonicModule } from '@ionic/angular';\nimport { ExportDataModule } from '../../ui-directive/export-data.module';\n\n@NgModule({\n declarations: [BarChartStackedComponent],\n exports: [BarChartStackedComponent],\n imports: [\n CommonModule,\n NgxChartsModule,\n TapVariableDataPopupModule,\n IonicModule,\n ExportDataModule,\n ],\n})\nexport class BarChartStackedModule {}\n","import { createDebugger } from '@iotize/common/debug';\r\n\r\nexport const debug = createDebugger('@iotize/ionic:monitoring');\r\n","import { DecimalPipe } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Output,\n PLATFORM_ID,\n ViewChild,\n} from '@angular/core';\nimport { GaugeComponent } from '@swimlane/ngx-charts';\nimport { Observable, Subscription } from 'rxjs';\nimport { debug } from '../../debug';\nimport { AppGenField } from '../../metadata/decorators';\nimport { ChartDataModel } from '../ChartDataModel';\nimport {\n COLOR_SCHEME_SCHEMA,\n DIGITS_INFO_SCHEMA,\n EXPORT_DATA_FILE_NAME_SCHEMA,\n SHOW_EXPORT_DATA_BUTTON_SCHEMA,\n SHOW_LEGEND_SCHEMA,\n} from '../shared-schema';\nimport { OnChartSelectEvent } from '../shared-types';\n\n@Component({\n selector: 'monitoring-gauge-card',\n templateUrl: './gauge-card.component.html',\n styleUrls: ['./gauge-card.component.scss'],\n})\nexport class GaugeCardComponent\n extends GaugeComponent\n implements AfterViewInit, OnDestroy\n{\n @ViewChild('ngxChartsGauge') gaugeChart!: GaugeComponent;\n\n @ViewChild('ngxChartsGauge') ngxChartsGauge!: ElementRef;\n\n @Input()\n showText = true;\n\n /**\n * Automatically set min/max range according to input values\n */\n @Input()\n dynamicRange: boolean = true;\n\n @Input()\n min!: number;\n\n @Input()\n max!: number;\n\n @Input()\n set digitsInfo(digitsInfo: string) {\n debug('set valueFormatting from ', digitsInfo);\n this.valueFormatting = (value: any): string => {\n if (typeof value === 'number') {\n const formattedOrNull = this.decimalPipe?.transform(value, digitsInfo);\n return formattedOrNull || value.toString();\n } else {\n return value.toString();\n }\n };\n }\n\n @Input()\n legend: boolean = false;\n\n @Input()\n legendTitle!: string;\n\n @Input()\n units: string = '';\n\n @Input()\n showExportButton: boolean = false;\n\n @Input()\n exportedFileName?: string;\n\n @Input()\n set label(indexOrArray: string | string[] | undefined | Function) {\n this.chartModel.initLabel(indexOrArray);\n }\n\n @Input()\n colorScheme = {\n domain: [\n '#5DADE2',\n '#9B59B6',\n '#F39C12',\n '#5AA454',\n '#A10A28',\n '#C7B42C',\n '#AAAAAA',\n ],\n };\n\n @Input()\n set inputStream(stream: Observable<any>) {\n this.subscription?.unsubscribe();\n if (!stream) {\n return;\n }\n this.subscription = stream.subscribe({\n next: (value) => {\n if (this.dynamicRange) {\n if (this.max == undefined || value > this.max!) {\n this.max = value;\n debug('dynamic max range updated with: ', value);\n }\n if (this.min == undefined || value < this.min!) {\n this.min = value;\n debug('dynamic min range updated with: ', value);\n }\n }\n\n if (Array.isArray(value)) {\n value.forEach((val, index) => {\n if (!this.results[index]) {\n this.results.push({\n name: this.chartModel.labelConfig(index, 'Index'),\n value: val,\n });\n } else {\n this.results[index].value = val;\n }\n });\n } else {\n this.setSingleValue(value);\n }\n this.results = [...this.results];\n },\n error: (err) => {\n debug(err);\n this.onError.emit(err);\n },\n });\n }\n\n protected setSingleValue(value: any) {\n value = Number(value);\n if (!this.results?.[0]) {\n this.results = [\n {\n name: 'Value',\n value: value,\n },\n ];\n } else {\n this.results[0].value = value;\n this.results = [...this.results];\n }\n }\n\n // @Input() view: [number, number];\n\n @Output() onError = new EventEmitter<Error>();\n\n private chartModel: ChartDataModel = new ChartDataModel();\n\n public results: { name: string; value: any }[] = [\n {\n name: 'Value',\n value: 0,\n },\n ];\n\n private subscription?: Subscription;\n\n constructor(\n myChartElement: ElementRef<any>,\n zone: NgZone,\n cd: ChangeDetectorRef,\n @Inject(PLATFORM_ID) platformId: string,\n public decimalPipe: DecimalPipe\n ) {\n super(myChartElement, zone, cd, platformId);\n }\n\n ngAfterViewInit(): void {\n if (this.gaugeChart.height > 250) {\n this.gaugeChart.margin = [80, 80, 0, 80];\n } else {\n this.gaugeChart.margin = [0, 80, 0, 80];\n }\n this.gaugeChart.update();\n }\n\n scaleText(repeat: boolean = true) {\n // if (this.textSize) {\n // this.textTransform = ``;\n // return;\n // }\n if (!this.textEl) {\n return;\n }\n return super.scaleText(repeat);\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.subscription?.unsubscribe();\n }\n\n onSelect(event: OnChartSelectEvent) {}\n}\n","<div class=\"chart-container\" style=\"position: relative\">\n <ngx-charts-gauge\n #ngxChartsGauge\n [scheme]=\"colorScheme\"\n [results]=\"results\"\n [min]=\"min\"\n [max]=\"max\"\n [angleSpan]=\"angleSpan\"\n [startAngle]=\"startAngle\"\n [units]=\"units\"\n [bigSegments]=\"bigSegments\"\n [smallSegments]=\"smallSegments\"\n [legend]=\"legend\"\n [legendTitle]=\"legendTitle\"\n [valueFormatting]=\"valueFormatting\"\n [showText]=\"showText\"\n [view]=\"view\"\n (select)=\"onSelect($event)\"\n >\n </ngx-charts-gauge>\n <ion-fab-button\n id=\"exportFabButton\"\n size=\"small\"\n tapExportData\n [dataToExport]=\"results\"\n [exportedFileName]=\"exportedFileName\"\n *ngIf=\"showExportButton\"\n >\n <ion-icon name=\"download\"></ion-icon>\n </ion-fab-button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\nimport { ExportDataModule } from '../../ui-directive/export-data.module';\nimport { GaugeCardComponent } from './gauge-card.component';\n\n@NgModule({\n declarations: [GaugeCardComponent],\n exports: [GaugeCardComponent, NgxChartsModule],\n imports: [CommonModule, NgxChartsModule, IonicModule, ExportDataModule],\n})\nexport class GaugeCardModule {}\n","import { Component, Input } from '@angular/core';\n\nexport interface ActionItem {\n label: string;\n icon?: string;\n value: any;\n disabled?: boolean;\n action: () => Promise<any>;\n}\n\n@Component({\n selector: 'app-monitoring-actions',\n templateUrl: './monitoring-actions.component.html',\n styleUrls: ['./monitoring-actions.component.scss'],\n})\nexport class MonitoringActionsComponent {\n @Input() segment = true;\n\n @Input() actions: ActionItem[] = [];\n\n value?: any;\n\n @Input() set checkedButtonIndex(index: number) {\n if (index !== undefined) {\n this.value = this.actions[index]?.value;\n }\n }\n\n @Input() disabled = false;\n\n @Input() color: string = 'primary';\n\n constructor() {}\n}\n","<ion-buttons *ngIf=\"!segment\">\n <ion-button\n *ngFor=\"let action of actions\"\n [disabled]=\"disabled || action.disabled\"\n (click)=\"action.action()\"\n >\n <app-common-icon\n *ngIf=\"action.icon\"\n [image]=\"action.icon\"\n ></app-common-icon>\n {{ action.label }}\n </ion-button>\n</ion-buttons>\n<ion-segment\n *ngIf=\"segment\"\n [value]=\"value\"\n [scrollable]=\"true\"\n [color]=\"color\"\n style=\"overflow: auto; width: 100%\"\n>\n <ion-segment-button\n *ngFor=\"let action of actions; let i = index\"\n [value]=\"action.value\"\n [disabled]=\"disabled || action.disabled\"\n (click)=\"action.action()\"\n >\n <app-common-icon\n *ngIf=\"action.icon\"\n [image]=\"action.icon\"\n ></app-common-icon>\n {{ action.label }}\n </ion-segment-button>\n</ion-segment>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MonitoringActionsComponent } from './monitoring-actions.component';\nimport { IonicModule } from '@ionic/angular';\nimport { IconModule } from '@iotize/app-common';\n\n@NgModule({\n declarations: [MonitoringActionsComponent],\n exports: [MonitoringActionsComponent],\n imports: [CommonModule, IonicModule, IconModule],\n})\nexport class MonitoringActionsModule {}\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { FormBuilder, FormControl, Validators } from '@angular/forms';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport {\n CurrentDeviceService,\n LibError,\n PendingCallManager,\n} from '@iotize/ionic';\nimport { Observable, Subject, Subscription } from 'rxjs';\n\nexport interface MonitoringEditTextEvent {\n type: 'CLOSE' | 'WRITE_SUCCESS' | 'WRITE_ERROR';\n payload?: any;\n}\n\n/**\n * @deprecated\n */\n@Component({\n selector: 'monitoring-edit-text',\n templateUrl: './monitoring-edit-text.component.html',\n styleUrls: ['./monitoring-edit-text.component.scss'],\n})\nexport class MonitoringEditTextComponent implements OnInit, AfterViewInit {\n loading = false;\n\n validationMessages = {\n required: 'Input is required',\n minlength: 'Input is too short',\n maxlength: 'Input is too long',\n pattern: 'Input does not match pattern',\n };\n\n private subscription?: Subscription;\n\n _variable?: AbstractVariable<any>;\n\n @ViewChild('inputref', { static: false }) inputref: any;\n pendingCallManager: PendingCallManager;\n\n @Input()\n set inputStream(stream: Observable<any> | undefined) {\n this.setStream(stream);\n }\n\n @Input() set variable(variable: AbstractVariable<any>) {\n this._variable = variable;\n }\n\n @Input() label?: string = undefined;\n @Input() input = 'string';\n @Input() type = 'string';\n @Input() actions?: Subject<any>;\n\n @Input() clearInput = false;\n @Input() clearOnEdit = false;\n @Input() color = 'primary';\n @Input() disabled = false;\n @Input() inputMode = 'text';\n @Input() max?: number = undefined;\n @Input() min?: number = undefined;\n @Input() maxLength?: number = undefined;\n @Input() minLength?: number = undefined;\n @Input() name? = undefined;\n @Input() pattern? = undefined;\n @Input() placeholder? = undefined;\n @Input() readonly = false;\n @Input() required = false;\n\n @Input() set value(v: any) {\n this.myControl.setValue(v);\n }\n\n @Output() outEvent = new EventEmitter<MonitoringEditTextEvent>();\n\n public myControl: FormControl = new FormControl(\n '',\n Validators.compose([\n Validators.required,\n // Validators.maxLength(this.minLength),\n // Validators.minLength(this.maxLength),\n // Validators.pattern(this.pattern),\n ])\n );\n\n myGroup = this.formBuilder.group({\n myControl: this.myControl,\n });\n\n errorToString(item: { key: string; value: any }) {\n if (item.key in this.validationMessages) {\n return (this.validationMessages as any)[item.key];\n }\n return item.value;\n }\n\n submit() {\n const newValue = this.myControl.value;\n if (this.actions) {\n this.actions.next(newValue);\n }\n if (!this._variable) {\n throw LibError.componentArgumentRequired(\n this.constructor.name,\n 'variable'\n );\n }\n\n this.pendingCallManager\n .exec(async () => {\n if (this._variable) {\n await this.startAction(\n this._variable.write(newValue).then(() => {\n this.myControl.setErrors(null);\n this.outEvent.emit({\n type: 'WRITE_SUCCESS',\n payload: {\n newValue: newValue,\n },\n });\n })\n );\n }\n })\n .catch((err) => {\n this.addFormError.bind(err);\n throw err;\n });\n }\n\n onKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.submit();\n } else if (event.key === 'Escape') {\n this.close();\n }\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n // if (!this.inputref.nativeElement) {\n // console.warn('no this.inputref');\n // return;\n // }\n this.inputref.setFocus();\n }, 200);\n }\n\n close() {\n this.outEvent.emit({\n type: 'CLOSE',\n });\n }\n\n private addFormError(err: Error) {\n console.warn('Form error', err);\n this.myControl.setErrors({\n write: err.message,\n });\n this.outEvent.emit({\n type: 'WRITE_ERROR',\n payload: {\n error: err,\n },\n });\n }\n\n refresh() {\n if (!this._variable) {\n throw LibError.componentArgumentRequired(\n this.constructor.name,\n 'variable'\n );\n }\n this.startAction(\n this._variable\n .read()\n .then((v) => {\n this.value = v;\n })\n .catch(this.addFormError.bind(this))\n ).catch((err) => {\n console.log(err);\n });\n }\n\n private startAction(actions: Promise<any>): Promise<any> {\n this.setLoading(true);\n return actions.finally(() => this.setLoading(false));\n }\n\n setLoading(value: boolean): void {\n this.loading = value;\n if (this.loading) {\n this.myControl.disable();\n } else {\n this.myControl.enable();\n }\n }\n\n private setStream(stream: Observable<any> | undefined) {\n this.subscription?.unsubscribe();\n if (stream) {\n this.subscription = stream.subscribe({\n next: (value) => {\n this.value = value;\n },\n error: (err) => {\n this.myControl.setErrors({\n refresh: err.message,\n });\n },\n });\n }\n }\n\n constructor(\n protected formBuilder: FormBuilder,\n tapService: CurrentDeviceService\n ) {\n this.pendingCallManager = PendingCallManager.create(tapService);\n this.loading = false;\n }\n\n ngOnInit() {\n this.refresh();\n }\n}\n","<ion-item [formGroup]=\"myGroup\">\n <ion-label *ngIf=\"label\">{{ label }}</ion-label>\n <ion-input\n auto-focus\n (keydown)=\"onKeydown($event)\"\n #inputref\n formControlName=\"myControl\"\n [max]=\"max\"\n [maxlength]=\"maxLength\"\n [min]=\"min\"\n [minlength]=\"minLength\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [type]=\"type\"\n >\n </ion-input>\n <ion-buttons>\n <ion-button [disabled]=\"loading\" (click)=\"submit()\">\n <ion-icon name=\"send\" slot=\"start\"></ion-icon>\n <!-- Write -->\n </ion-button>\n <ion-button [disabled]=\"loading\" (click)=\"refresh()\">\n <ion-icon name=\"refresh\" slot=\"start\"></ion-icon>\n <!-- Refresh -->\n </ion-button>\n <ion-button [disabled]=\"loading\" (click)=\"close()\">\n <ion-icon name=\"close\" slot=\"start\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-spinner [hidden]=\"!loading\" name=\"lines\"></ion-spinner>\n</ion-item>\n<ion-item\n class=\"validation-errors\"\n *ngIf=\"\n myControl.dirty &&\n myControl.errors &&\n (myControl.errors | keyvalue).length > 0\n \"\n>\n <!-- {{ myControl.errors | json}} -->\n <ng-container *ngFor=\"let item of myControl.errors | keyvalue\">\n <ion-text color=\"danger error-message \">{{ errorToString(item) }}</ion-text>\n </ng-container>\n</ion-item>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MonitoringEditTextComponent } from './monitoring-edit-text.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { IonicModule } from '@ionic/angular';\n\n@NgModule({\n declarations: [MonitoringEditTextComponent],\n exports: [MonitoringEditTextComponent, FormsModule],\n imports: [CommonModule, FormsModule, IonicModule, ReactiveFormsModule],\n})\nexport class MonitoringEditTextModule {}\n","import {\n Component,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IonRange } from '@ionic/angular';\nimport { BehaviorSubject, NEVER, Observable, Subscription } from 'rxjs';\nimport { shareReplay, switchMap } from 'rxjs/operators';\nimport { debug } from '../../debug';\n\ntype ColorType = any;\n\n@Directive({\n selector: '[monitoringRangeContent]',\n})\nexport class MonitoringRangeContentDirective {\n constructor(public tpl: TemplateRef<any>) {}\n}\n@Component({\n selector: 'monitoring-range',\n templateUrl: './monitoring-range.component.html',\n styleUrls: ['./monitoring-range.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class MonitoringRangeComponent implements OnDestroy {\n public focusChange = new BehaviorSubject<boolean>(false);\n public dualKnobs = false;\n\n private _valueSub?: Subscription;\n currentValue: number | undefined = undefined;\n private previousValue: number | undefined = undefined;\n\n @ContentChild(MonitoringRangeContentDirective, {\n read: TemplateRef,\n static: true,\n })\n rangeTemplate?: TemplateRef<any>;\n\n get rangeTemplateContext(): object {\n return { $implicit: this };\n }\n\n @ViewChild('range', { static: true }) range?: IonRange;\n\n @Output() onValueChanged = new EventEmitter<number>();\n\n @Input()\n set inputStream(stream: Observable<number> | undefined) {\n this._valueSub?.unsubscribe();\n if (stream) {\n this._valueSub = this.focusChange\n .pipe(\n switchMap((hasFocus) => {\n if (hasFocus) {\n return NEVER;\n } else {\n return stream;\n }\n }),\n shareReplay(1)\n )\n .subscribe((v) => {\n this.currentValue = v;\n });\n } else {\n this.currentValue = undefined;\n }\n }\n\n @Input() min = 0;\n @Input() max = 100;\n\n _step: number = 1;\n\n @Input() set step(step: number) {\n if (step == 0) {\n step = 1;\n }\n this._step = step;\n }\n\n @Input() debounce = 0;\n @Input() pin = true;\n @Input() disabled = false;\n @Input() snaps = true;\n @Input() ticks = true;\n @Input() writeValueForEveryChange: boolean = false;\n\n @Input() leftIcon?: string;\n @Input() leftIconColor?: string;\n @Input() rightIcon?: string;\n @Input() rightIconColor?: string;\n\n @Input() color?: ColorType;\n\n @ViewChild('.range-knob') el!: ElementRef;\n\n constructor() {}\n\n ngOnDestroy(): void {\n this._valueSub?.unsubscribe();\n }\n\n _onValueChanged(event: CustomEvent<{ value: number }>) {\n this.previousValue = this.currentValue;\n this.currentValue = event.detail.value;\n if (this.writeValueForEveryChange) {\n this.onSliderReleased(event);\n }\n }\n\n onSliderReleased($event: CustomEvent) {\n let currentValue = this.currentValue;\n // Issue on mobile: onSliderReleased() may be called before _onValueChanged() event\n // So we directly read the value from the range HTML element if available\n if (typeof this.range?.value === 'number') {\n currentValue = this.range.value;\n }\n if (this.previousValue !== currentValue) {\n this.onValueChanged.emit(currentValue);\n this.previousValue = currentValue;\n }\n }\n}\n","<ion-range\n #range\n [value]=\"currentValue\"\n [class.disableRange]=\"disabled\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"_step\"\n [color]=\"color\"\n [snaps]=\"snaps\"\n [debounce]=\"debounce\"\n [pin]=\"pin\"\n [ticks]=\"ticks\"\n [dualKnobs]=\"dualKnobs\"\n [disabled]=\"disabled\"\n (ionChange)=\"_onValueChanged($event)\"\n (ionKnobMoveEnd)=\"onSliderReleased($event)\"\n [ngClass]=\"disabled ? 'rangeDisabled' : ''\"\n>\n <app-common-icon\n *ngIf=\"leftIcon\"\n slot=\"start\"\n [image]=\"leftIcon\"\n [color]=\"leftIconColor\"\n ></app-common-icon>\n <ng-container\n *ngTemplateOutlet=\"\n rangeTemplate || defaultRangeTemplate;\n context: rangeTemplateContext\n \"\n ></ng-container>\n <app-common-icon\n *ngIf=\"rightIcon\"\n slot=\"end\"\n [image]=\"rightIcon\"\n [color]=\"rightIconColor\"\n ></app-common-icon>\n</ion-range>\n\n<ng-template #defaultRangeTemplate>\n <ion-label slot=\"start\">{{ min }}</ion-label>\n <ion-label slot=\"end\">{{ max }}</ion-label>\n</ng-template>\n","import { NgModule, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n MonitoringRangeComponent,\n MonitoringRangeContentDirective,\n} from './monitoring-range.component';\nimport { IonicModule } from '@ionic/angular';\nimport { FormsModule } from '@angular/forms';\nimport { IconModule } from '@iotize/app-common';\n\n@NgModule({\n declarations: [MonitoringRangeComponent, MonitoringRangeContentDirective],\n exports: [MonitoringRangeComponent, MonitoringRangeContentDirective],\n imports: [CommonModule, IonicModule, FormsModule, IconModule],\n})\nexport class MonitoringRangeModule {}\n","import { Component, Input } from '@angular/core';\nimport { DataSource } from '@angular/cdk/table';\nimport { Observable, Subject, combineLatest } from 'rxjs';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport { debug } from '../../debug';\n\nexport interface TableDataEntry {\n __date?: number;\n [key: string]: any;\n}\n\nexport interface TableColumnType {\n header: string;\n columnDef: string;\n cell: (row: any) => string;\n}\n\n@Component({\n selector: 'tap-app-monitoring-table',\n templateUrl: './monitoring-table.component.html',\n styleUrls: ['./monitoring-table.component.scss'],\n})\nexport class MonitoringTableComponent {\n /** Table columns */\n @Input() columns?: TableColumnType[] = undefined;\n\n @Input() dataSource = new MonitoringTableComponentDataSource();\n\n @Input() set columnsMap(mapping: { [key: string]: string }) {\n if (mapping) {\n if (!this.columns) {\n this.setupColumns();\n }\n for (const key in mapping) {\n if (!this.columns?.find((info) => info.columnDef === key)) {\n debug('Column ', key, 'is not in columns', this.columns);\n this.addColumn(key, mapping[key]);\n }\n }\n // Removing old columns\n const toRemove: number[] = [];\n this.columns?.forEach((column, index) => {\n if (!(column.columnDef in mapping)) {\n debug('Deleting column: ', column);\n toRemove.push(index);\n }\n });\n toRemove.reverse().forEach((index) => this.columns?.splice(index, 1));\n // debug(`COLUMNS:`, this.columns)\n this.displayedColumns = this.columns?.map((x) => x.columnDef);\n\n // refresh data\n this.dataSource.refresh();\n }\n }\n\n /** Column definitions in order */\n @Input() displayedColumns: string[] | undefined = [];\n\n @Input() set variables(variables: AbstractVariable<any>[]) {\n combineLatest(variables.map((variable) => variable.values)).subscribe(\n (values) => {\n if (this.columns) {\n const item: Record<string, any> = {};\n this.columns.forEach((column, index: number) => {\n if (column.columnDef === '__date') {\n item[column.columnDef] = new Date().toLocaleTimeString();\n } else {\n item[column.columnDef] = values[index - (this.date ? 1 : 0)];\n }\n });\n this.dataSource.add(item as TableDataEntry);\n }\n }\n );\n }\n\n @Input() set data$(stream: Observable<any>) {\n if (stream) {\n stream.subscribe((value) => {\n if (this.columns) {\n this.dataSource.add(value);\n }\n });\n }\n }\n\n @Input() set data(data: TableDataEntry[]) {\n debug('Setting table data: ', data);\n this.dataSource.data = data;\n }\n\n @Input() date = true;\n\n constructor() {}\n\n private setupColumns() {\n debug('setupColumns');\n if (this.columns) {\n this.columns.splice(0, this.columns.length);\n } else {\n this.columns = [];\n }\n if (this.date) {\n this.addColumn('__date', 'Date');\n }\n }\n\n private addColumn(id: string, header: string): any {\n if (!this.columns) {\n this.columns = [];\n }\n const columnInfo = {\n header: header,\n columnDef: id,\n cell: (row: any) => `${row[id]}`,\n };\n this.columns.push(columnInfo);\n }\n}\n\nexport class MonitoringTableComponentDataSource extends DataSource<TableDataEntry> {\n _data: TableDataEntry[] = [];\n\n private _subject = new Subject<TableDataEntry[]>();\n\n constructor(\n public options: {\n max: number;\n newItemOnTop: boolean;\n } = {\n max: -1,\n newItemOnTop: true,\n }\n ) {\n super();\n }\n\n add(item: TableDataEntry) {\n if (this.options.newItemOnTop) {\n this._data.unshift(item);\n if (this.options.max >= 0 && this._data.length > this.options.max) {\n this._data.pop();\n }\n } else {\n this._data.push(item);\n if (this.options.max >= 0 && this._data.length > this.options.max) {\n this._data.shift();\n }\n }\n this._subject.next(this._data);\n // debug(`Adding values: `, item)\n }\n\n set data(d: TableDataEntry[]) {\n this._data = d;\n this._subject.next(this._data);\n }\n\n connect(): Observable<TableDataEntry[]> {\n return this._subject;\n }\n\n refresh() {\n this._data = [...this._data];\n this._subject.next(this._data);\n }\n\n disconnect() {}\n\n clear() {\n this._data = [];\n this._subject.next(this._data);\n }\n}\n","<mat-table\n *ngIf=\"columns && columns.length > 0\"\n [dataSource]=\"dataSource\"\n #table\n>\n <ng-container\n *ngFor=\"let column of columns\"\n [cdkColumnDef]=\"column.columnDef\"\n >\n <mat-header-cell *cdkHeaderCellDef>{{ column.header }}</mat-header-cell>\n <mat-cell *cdkCellDef=\"let row\">{{ column.cell(row) }}</mat-cell>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\n <mat-row *matRowDef=\"let row; columns: displayedColumns\"></mat-row>\n</mat-table>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatTableModule } from '@angular/material/table';\nimport { MonitoringTableComponent } from './monitoring-table.component';\nimport { CdkTableModule } from '@angular/cdk/table';\n\n@NgModule({\n declarations: [MonitoringTableComponent],\n exports: [MonitoringTableComponent],\n imports: [CommonModule, MatTableModule, CdkTableModule],\n})\nexport class MonitoringTableModule {}\n","import { DecimalPipe } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n Input,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n InlineEditorComponent,\n TapValueEditorContainerComponent,\n} from '@iotize/ionic';\nimport { VariableConfig } from '@iotize/tap/config/schema/v1';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport { Subscription } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\n@Component({\n selector: 'monitoring-variable-value',\n templateUrl: './monitoring-variable-value.component.html',\n styleUrls: ['./monitoring-variable-value.component.scss'],\n})\nexport class MonitoringVariableValueComponent<ValueType = any>\n implements AfterViewInit, OnDestroy\n{\n @ViewChild('ctx') ctx?: TapValueEditorContainerComponent;\n\n @Input() lines?: string;\n\n @Input()\n unitValue?: string;\n\n @Input() set error(err: Error) {\n this.fieldError = err;\n }\n\n @Input()\n set variable(v: AbstractVariable<ValueType>) {\n this._variable = v;\n }\n\n /**\n * @deprecated\n */\n @Input() set config(config: VariableConfig) {\n if (!this.inputOptions) {\n switch (config.type) {\n case 'FLOAT32':\n this.inputOptions = {\n type: 'number',\n };\n break;\n case 'STRING':\n this.inputOptions = {\n type: 'text',\n maxLength: config.length,\n };\n break;\n case 'UINT32':\n this.inputOptions = {\n type: 'number',\n min: 0,\n max: 0xffffffff,\n };\n break;\n case 'UINT16':\n this.inputOptions = {\n type: 'number',\n min: 0,\n max: 0xffff,\n };\n break;\n case 'UINT8':\n this.inputOptions = {\n type: 'number',\n min: 0,\n max: 0xff,\n };\n break;\n case 'INT32':\n this.inputOptions = {\n type: 'number',\n min: -2147483648,\n max: 2147483647,\n };\n break;\n case 'INT16':\n this.inputOptions = {\n type: 'number',\n min: -32768,\n max: 32767,\n };\n break;\n case 'INT8':\n this.inputOptions = {\n type: 'number',\n min: -128,\n max: 127,\n };\n break;\n }\n }\n }\n\n @Input() inputOptions: InlineEditorComponent.InputOptions = {\n type: 'text',\n };\n\n @Input()\n editable = false;\n\n @Input()\n modalEdition = false;\n\n @Input()\n valueStyle?: any;\n\n /**\n * See digitsInfo doc on @{link https://angular.io/api/common/DecimalPipe#parameters}\n * Will be used only if value is a number\n */\n @Input()\n digitsInfo?: string;\n\n @Input()\n refreshable = false;\n\n @Input() valueFormatting?: (value: ValueType) => ValueType;\n\n public _variable?: AbstractVariable<ValueType>;\n\n public fieldError?: Error;\n\n _value?: any;\n\n forceValue: any = undefined;\n\n valueSub?: Subscription;\n\n constructor(private decimalPipe: DecimalPipe) {}\n\n ngOnDestroy(): void {\n this.valueSub?.unsubscribe();\n }\n\n ngAfterViewInit(): void {\n this.valueSub = this.ctx?.valueToDisplay\n ?.pipe(\n map((value) => {\n if (this.valueFormatting) {\n value = this.valueFormatting(value);\n }\n if (this.digitsInfo && typeof value === 'number') {\n value = this.decimalPipe.transform(value, this.digitsInfo);\n }\n return value;\n }),\n shareReplay(1)\n )\n .subscribe((v) => {\n this._value = v;\n });\n }\n\n onSubmit(newValue: any) {\n this.ctx?.notifyValueChange(newValue);\n }\n\n onSubmitValue() {\n this.ctx?.submitValue();\n }\n\n onValueChange(event: any) {\n this.ctx!.valueToSubmit = event;\n }\n\n onEditModeChange(newValue: any) {\n if (newValue) {\n this.ctx?.enableEditMode();\n } else {\n this.ctx?.cancelEdit();\n }\n }\n}\n","<tap-value-editor-container\n #ctx\n [variable]=\"_variable\"\n [showRefreshButton]=\"refreshable\"\n [showEditButton]=\"editable\"\n [showSubmitButton]=\"true\"\n [modalEdition]=\"modalEdition\"\n [inputOptions]=\"inputOptions\"\n [lines]=\"lines\"\n>\n <tap-inline-editor\n [forceValue]=\"forceValue\"\n [value]=\"\n ctx.pendingSubmitValue === undefined ? _value : ctx.pendingSubmitValue\n \"\n [editMode]=\"ctx.editModeChange | async\"\n (editModeChange)=\"onEditModeChange($event)\"\n [editable]=\"editable && ctx.pendingSubmitValue === undefined\"\n [fieldError]=\"fieldError\"\n [inputOptions]=\"inputOptions\"\n [unitValue]=\"unitValue\"\n [valueStyle]=\"valueStyle\"\n (valueChange)=\"onValueChange($event)\"\n (onSubmit)=\"onSubmit($event)\"\n >\n </tap-inline-editor>\n</tap-value-editor-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule, DecimalPipe } from '@angular/common';\nimport { MonitoringVariableValueComponent } from './monitoring-variable-value.component';\nimport { IonicModule } from '@ionic/angular';\nimport {\n InlineEditorModule,\n TapValueEditorContainerModule,\n} from '@iotize/ionic';\n\n@NgModule({\n declarations: [MonitoringVariableValueComponent],\n exports: [MonitoringVariableValueComponent],\n providers: [DecimalPipe],\n imports: [\n CommonModule,\n IonicModule,\n TapValueEditorContainerModule,\n InlineEditorModule,\n ],\n})\nexport class MonitoringVariableValueModule {}\n","import { MonitoringAppGenComponent } from './definitions';\n\nexport const MONITORING_COMPONENTS_METADATA: Record<\n string,\n {\n decorator?: MonitoringAppGenComponent;\n fields: Record<\n string,\n {\n decorator: any;\n }\n >;\n extends?: string;\n }\n> = {};\n","import { AppGenFieldParam, MonitoringAppGenComponent } from './definitions';\nimport { MONITORING_COMPONENTS_METADATA } from './metadata';\n\nfunction getExtendsClassName(target: any): string | undefined {\n const proto = Object.getPrototypeOf(target);\n\n return proto.constructor.name !== 'Object'\n ? proto.constructor.name\n : undefined;\n}\n\n/**\n * @deprecated\n */\nexport function AppGenField(options: AppGenFieldParam) {\n return function (\n target: any,\n propertyKey: string,\n descriptor?: PropertyDescriptor\n ) {\n const componentId = target.constructor.name;\n if (!MONITORING_COMPONENTS_METADATA[componentId]) {\n let fields = {};\n MONITORING_COMPONENTS_METADATA[componentId] = {\n fields,\n decorator: undefined,\n extends: getExtendsClassName(target),\n };\n }\n MONITORING_COMPONENTS_METADATA[componentId].fields[propertyKey] = {\n decorator: options,\n };\n };\n}\n\n/**\n * @deprecated\n */\nexport function MonitoringAppGenComponent(\n decorator: MonitoringAppGenComponent\n) {\n return function (constructor: any) {\n if (!MONITORING_COMPONENTS_METADATA[constructor.name]) {\n MONITORING_COMPONENTS_METADATA[constructor.name] = {\n decorator,\n fields: {},\n extends: getExtendsClassName(constructor.prototype),\n };\n } else {\n MONITORING_COMPONENTS_METADATA[constructor.name].decorator = decorator;\n }\n };\n}\n","import {\n AfterViewChecked,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n PLATFORM_ID,\n ViewChild,\n} from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport {\n BarHorizontal2DComponent,\n BarVertical2DComponent,\n BaseChartComponent,\n LegendPosition,\n} from '@swimlane/ngx-charts';\nimport { Subscription } from 'rxjs';\nimport { MonitoringAppGenComponent } from '../../metadata/decorators';\nimport {\n ChartDataModel,\n ChartInputMutli,\n ChartInputStreamVar,\n} from '../ChartDataModel';\nimport { dataWithSeriesToCsv } from '../ExportDataFormat';\nimport { OnChartSelectEvent } from '../shared-types';\nimport { TapVariableDataPopupComponent } from '../tap-variable-data-popup/tap-variable-data-popup.component';\n\n@MonitoringAppGenComponent({})\n@Component({\n selector: 'tap-variable-bar-chart-group',\n templateUrl: './tap-variable-bar-chart-group.component.html',\n styleUrls: ['./tap-variable-bar-chart-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TapVariableBarChartGroupComponent\n extends BaseChartComponent\n implements AfterViewChecked, OnDestroy\n{\n @ViewChild('containerRef') divContainer!: ElementRef;\n @ViewChild('barChartHor') barChartHor!: BarHorizontal2DComponent;\n @ViewChild('barChartVer') barChartVer!: BarVertical2DComponent;\n\n constructor(\n myChartElement: ElementRef<any>,\n zone: NgZone,\n cd: ChangeDetectorRef,\n @Inject(PLATFORM_ID) platformId: string,\n public modalController: ModalController\n ) {\n super(myChartElement, zone, cd, platformId);\n }\n\n @Input()\n legendPosition: LegendPosition = LegendPosition.Below;\n\n @Input()\n showExportButton: boolean = false;\n\n @Input()\n exportedFileName?: string;\n\n @Input()\n legend: boolean = true;\n\n @Input()\n legendTitle?: string;\n\n @Input()\n colorScheme = {\n domain: [\n '#5DADE2',\n '#9B59B6',\n '#F39C12',\n '#5AA454',\n '#A10A28',\n '#C7B42C',\n '#AAAAAA',\n ],\n };\n\n @Input()\n orientation: string = 'vertical';\n\n @Input()\n showDetails: boolean = false;\n\n @Input() noBarWhenZero: boolean = false;\n\n @Input() trimXAxisTicks?: boolean;\n\n @Input() maxXAxisTickLength?: boolean;\n\n @Input() trimYAxisTicks?: boolean;\n\n @Input() maxYAxisTickLength?: boolean;\n\n @Input() animations: boolean = true;\n\n @Input() roundDomains?: boolean;\n\n @Input() roundEdges = true;\n\n @Input() barPadding?: number;\n\n @Input() showYAxisLabel?: boolean;\n\n @Input() yAxisLabel?: string;\n\n @Input() showXAxisLabel?: boolean;\n\n @Input() xAxisLabel?: string;\n\n @Input() showGridLines?: boolean;\n\n @Input() scaleMax?: number;\n\n /**\n * @deprecated use xAxis\n */\n @Input()\n set showXAxis(v: boolean) {\n this.xAxis = v;\n }\n\n @Input()\n xAxis: boolean = true;\n\n /**\n * @deprecated use yAxis\n */\n @Input()\n set showYAxis(v: boolean) {\n this.yAxis = v;\n }\n\n @Input()\n yAxis: boolean = true;\n\n @Input()\n history: boolean = false;\n\n @Input()\n valueCountLimit = 10;\n\n @Input()\n set label(indexOrArray: string | string[] | undefined | Function) {\n this.chartModel.initLabel(indexOrArray);\n }\n\n @Input()\n set variable(variableOrArray: AbstractVariable<number | number[]>[]) {\n this.mutlipleVar = variableOrArray.length > 1;\n this.input = this.chartModel.initVariable(variableOrArray);\n }\n\n @Input()\n set input(inputs: ChartInputStreamVar[]) {\n if (this.mutlipleVar) {\n this.subscription = this.chartModel\n .defineMultiInputStream(inputs)\n .subscribe((result) => {\n if (this.scrollableChart) {\n this.resizeToScroll(result.length, result[0].series.length);\n }\n this.results = result;\n });\n } else {\n this.subscription = this.chartModel\n .defineInputStreamMulti(inputs, this.history, this.valueCountLimit)\n .subscribe((result) => {\n if (this.scrollableChart) {\n this.resizeToScroll(result.length, result[0].series.length);\n }\n this.results = result;\n });\n }\n this.cd.detectChanges();\n }\n\n @Input() set data(results: ChartInputMutli[]) {\n this.results = results;\n }\n\n results: ChartInputMutli[] = [\n {\n name: '---',\n series: [\n {\n name: '---',\n value: 0,\n extra: 0,\n },\n ],\n },\n ];\n\n @Input() scrollableChart = false;\n\n widthChart?: number;\n heightChart?: number;\n\n private chartModel: ChartDataModel = new ChartDataModel();\n\n private subscription?: Subscription;\n\n private mutlipleVar?: boolean;\n\n createExportedData() {\n return dataWithSeriesToCsv(this.results);\n }\n\n onSelect(event: OnChartSelectEvent) {\n if (typeof event === 'object') {\n if (this.showDetails) {\n this.chartModel\n .showDetail(\n event,\n this.modalController,\n TapVariableDataPopupComponent\n )\n .catch((err) => {\n console.log(err);\n });\n }\n }\n }\n\n ngAfterViewChecked(): void {\n if (!this.scrollableChart) {\n this.widthChart = this.divContainer.nativeElement.offsetWidth;\n this.heightChart = this.divContainer.nativeElement.offsetHeight;\n }\n this.cd.detectChanges();\n }\n\n resizeToScroll(size: number, seriesSize: number) {\n if (this.orientation === 'vertical') {\n if (\n this.divContainer.nativeElement.offsetWidth <=\n size * 50 * seriesSize\n ) {\n this.barChartVer.view = [\n size * 50 * seriesSize,\n this.divContainer.nativeElement.offsetHeight,\n ];\n }\n } else if (this.orientation === 'horizontal') {\n if (\n this.divContainer.nativeElement.offsetHeight <=\n size * 50 * seriesSize\n ) {\n this.barChartHor.view = [\n this.divContainer.nativeElement.offsetWidth,\n size * 50 * seriesSize,\n ];\n }\n }\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n this.chartModel.destroyCurrentSub();\n }\n}\n","<div\n [ngClass]=\"\n scrollableChart\n ? orientation === 'vertical'\n ? 'verticalContainer'\n : 'horizontalContainer'\n : {}\n \"\n>\n <div\n #containerRef\n [ngClass]=\"\n legendPosition === 'below' && legend ? 'belowLegend' : 'rightLegend'\n \"\n [ngSwitch]=\"orientation\"\n style=\"position: relative\"\n >\n <ngx-charts-bar-horizontal-2d\n *ngSwitchCase=\"'horizontal'\"\n #barChartHor\n [view]=\"[containerRef.offsetWidth, containerRef.offsetHeight]\"\n [scheme]=\"colorScheme\"\n [results]=\"results\"\n [legend]=\"legend\"\n [legendTitle]=\"legendTitle\"\n [legendPosition]=\"legendPosition\"\n [noBarWhenZero]=\"noBarWhenZero\"\n [xAxis]=\"xAxis\"\n [showYAxisLabel]=\"showYAxisLabel\"\n [yAxisLabel]=\"yAxisLabel\"\n [yAxis]=\"yAxis\"\n [showXAxisLabel]=\"showXAxisLabel\"\n [xAxisLabel]=\"xAxisLabel\"\n [showGridLines]=\"showGridLines\"\n [trimXAxisTicks]=\"trimXAxisTicks\"\n [maxXAxisTickLength]=\"maxXAxisTickLength\"\n [trimYAxisTicks]=\"trimYAxisTicks\"\n [maxYAxisTickLength]=\"maxYAxisTickLength\"\n [animations]=\"animations\"\n [roundDomains]=\"roundDomains\"\n [roundEdges]=\"roundEdges\"\n [barPadding]=\"barPadding\"\n [xScaleMax]=\"scaleMax\"\n (select)=\"onSelect($event)\"\n >\n </ngx-charts-bar-horizontal-2d>\n <ngx-charts-bar-vertical-2d\n *ngSwitchCase=\"'vertical'\"\n #barChartVer\n [view]=\"[containerRef.offsetWidth, containerRef.offsetHeight]\"\n [scheme]=\"colorScheme\"\n [results]=\"results\"\n [roundEdges]=\"roundEdges\"\n [legend]=\"legend\"\n [legendTitle]=\"legendTitle\"\n [legendPosition]=\"legendPosition\"\n [noBarWhenZero]=\"noBarWhenZero\"\n [xAxis]=\"xAxis\"\n [showYAxisLabel]=\"showYAxisLabel\"\n [yAxisLabel]=\"yAxisLabel\"\n [yAxis]=\"yAxis\"\n [showXAxisLabel]=\"showXAxisLabel\"\n [xAxisLabel]=\"xAxisLabel\"\n [showGridLines]=\"showGridLines\"\n [trimXAxisTicks]=\"trimXAxisTicks\"\n [maxXAxisTickLength]=\"maxXAxisTickLength\"\n [trimYAxisTicks]=\"trimYAxisTicks\"\n [maxYAxisTickLength]=\"maxYAxisTickLength\"\n [animations]=\"animations\"\n [roundDomains]=\"roundDomains\"\n [roundEdges]=\"roundEdges\"\n [barPadding]=\"barPadding\"\n [yScaleMax]=\"scaleMax\"\n (select)=\"onSelect($event)\"\n >\n </ngx-charts-bar-vertical-2d>\n <ion-fab-button\n id=\"exportFabButton\"\n size=\"small\"\n tapExportData\n *ngIf=\"showExportButton\"\n [dataToExport]=\"createExportedData.bind(this)\"\n [exportedFileName]=\"exportedFileName\"\n >\n <ion-icon name=\"download\"></ion-icon>\n </ion-fab-button>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TapVariableBarChartGroupComponent } from './tap-variable-bar-chart-group.component';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\nimport { TapVariableDataPopupModule } from '../tap-variable-data-popup/tap-variable-data-popup.module';\nimport { IonicModule } from '@ionic/angular';\nimport { ExportDataModule } from '../../ui-directive/export-data.module';\n\n@NgModule({\n declarations: [TapVariableBarChartGroupComponent],\n exports: [TapVariableBarChartGroupComponent],\n imports: [\n CommonModule,\n NgxChartsModule,\n TapVariableDataPopupModule,\n IonicModule,\n ExportDataModule,\n ],\n})\nexport class TapVariableBarChartGroupModule {}\n","import {\n AfterContentChecked,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n ViewChild,\n} from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport {\n BarHorizontalComponent,\n BarVerticalComponent,\n BaseChartComponent,\n LegendPosition,\n} from '@swimlane/ngx-charts';\nimport { BehaviorSubject, Subject, Subscription, combineLatest } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MonitoringAppGenComponent } from '../../metadata/decorators';\nimport {\n ChartDataModel,\n ChartInputSingle,\n ChartInputStreamVar,\n} from '../ChartDataModel';\nimport { OnChartSelectEvent } from '../shared-types';\nimport { TapVariableDataPopupComponent } from '../tap-variable-data-popup/tap-variable-data-popup.component';\n\n@MonitoringAppGenComponent({\n constraints: {\n isNumber: 'YES',\n },\n})\n@Component({\n selector: 'tap-variable-bar-chart',\n templateUrl: './tap-variable-bar-chart.component.html',\n styleUrls: ['./tap-variable-bar-chart.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TapVariableBarChartComponent\n extends BaseChartComponent\n implements AfterContentChecked, OnDestroy, OnInit\n{\n @ViewChild('containerRef') divContainer!: ElementRef;\n @ViewChild('chartsHor') barChartHor!: BarHorizontalComponent;\n @ViewChild('chartsVer') barChartVer!: BarVerticalComponent;\n\n results: ChartInputSingle[] = [];\n\n @Input()\n orientation = 'vertical';\n\n @Input()\n legend: boolean = false;\n\n @Input()\n legendTitle?: string;\n\n @Input()\n legendPosition: LegendPosition = LegendPosition.Below;\n\n @Input()\n showGridLines = false;\n\n @Input()\n showDetails = false;\n\n /**\n * @deprecated use xAxis\n */\n @Input()\n set showXAxis(v: boolean) {\n this.xAxis = v;\n }\n\n @Input()\n xAxis: boolean = true;\n\n @Input()\n showXAxisLabel: boolean = false;\n\n @Input()\n xAxisLabel = '';\n\n /**\n * @deprecated use yAxis\n */\n @Input()\n set showYAxis(v: boolean) {\n this.yAxis = v;\n }\n\n @Input()\n yAxis: boolean = true;\n\n @Input()\n showYAxisLabel: boolean = false;\n\n @Input()\n yAxisLabel = '';\n\n @Input() trimXAxisTicks?: boolean;\n\n @Input() maxXAxisTickLength?: boolean;\n\n @Input() trimYAxisTicks?: boolean;\n\n @Input() maxYAxisTickLength?: boolean;\n\n @Input() animations: boolean = true;\n\n @Input() roundDomains?: boolean;\n\n @Input() roundEdges = true;\n\n @Input() barPadding?: number;\n\n @Input()\n noBarWhenZero = false;\n\n @Input()\n showExportButton: boolean = false;\n\n @Input()\n exportedFileName?: string;\n\n @Input()\n set variable(\n variableOrArray: AbstractVariable<number | number[]> | undefined\n ) {\n this.input = this.chartModel.initVariable(variableOrArray);\n }\n\n @Input() xAxisTickFormatting: (input: any) => string =\n this.defaultDateTickFormatting.bind(this);\n\n @Input()\n set history(enable: boolean) {\n this._history.next(enable);\n }\n\n @Input()\n set valueCountLimit(limit: number | undefined) {\n if (limit === undefined) {\n limit = 30;\n }\n this._valueCountLimit.next(limit);\n }\n\n @Input()\n set input(inputs: ChartInputStreamVar[]) {\n this._input.next(inputs);\n }\n\n @Input() set data(results: ChartInputSingle[]) {\n this.results = results;\n }\n\n @Input() scrollableChart = false;\n\n @Input()\n public scaleMax?: number;\n\n @Input()\n public scaleMin?: number;\n\n @Input()\n set label(indexOrArray: string | string[] | undefined | Function) {\n this.chartModel.initLabel(indexOrArray);\n }\n\n @Input()\n colorScheme = {\n domain: [\n '#5DADE2',\n '#9B59B6',\n '#f69b05',\n '#5AA454',\n '#A10A28',\n '#C7B42C',\n '#AAAAAA',\n ],\n };\n\n private _history = new BehaviorSubject<boolean>(true);\n\n private _valueCountLimit = new BehaviorSubject<number>(30);\n\n private _input = new BehaviorSubject<ChartInputStreamVar[]>([]);\n\n private oldColorScheme: any;\n\n private destroyed = new Subject<void>();\n\n widthChart?: number;\n\n heightChart?: number;\n\n private chartModel: ChartDataModel = new ChartDataModel();\n private subscription?: Subscription;\n\n constructor(\n myChartElement: ElementRef,\n zone: NgZone,\n public cd: ChangeDetectorRef,\n @Inject(PLATFORM_ID) platformId: string,\n private modalController: ModalController\n ) {\n super(myChartElement, zone, cd, platformId);\n }\n\n ngOnInit(): void {\n combineLatest([this._valueCountLimit, this._input, this._history])\n .pipe(takeUntil(this.destroyed))\n .subscribe(([valueCountLimit, input, history]) => {\n this.chartModel.destroyCurrentSub();\n if (history) {\n this.oldColorScheme = this.colorScheme;\n this.colorScheme = { domain: [this.colorScheme.domain[0]] };\n } else {\n if (this.oldColorScheme !== undefined) {\n this.colorScheme = this.oldColorScheme;\n }\n }\n this.subscription = this.chartModel\n .defineInputStreamSingle(input, history, valueCountLimit)\n .subscribe((result: ChartInputSingle[]) => {\n if (this.scrollableChart) {\n this.resizeToScroll(result.length);\n }\n this.results = result as ChartInputSingle[];\n });\n this.cd.detectChanges();\n });\n }\n\n ngAfterContentChecked() {\n this.cd.detectChanges();\n if (!this.scrollableChart) {\n this.widthChart = this.divContainer.nativeElement.offsetWidth;\n this.heightChart = this.divContainer.nativeElement.offsetHeight;\n }\n }\n\n resizeToScroll(size: number) {\n if (this.orientation === 'vertical') {\n if (this.divContainer.nativeElement.offsetWidth <= size * 100) {\n this.barChartVer.view = [\n size * 100,\n this.divContainer.nativeElement.offsetHeight,\n ];\n }\n } else if (this.orientation === 'horizontal') {\n if (this.divContainer.nativeElement.offsetHeight <= size * 100) {\n this.barChartHor.view = [\n this.divContainer.nativeElement.offsetWidth,\n size * 100,\n ];\n }\n }\n }\n\n onSelect(event: OnChartSelectEvent) {\n if (typeof event === 'object') {\n if (this.showDetails) {\n this.chartModel\n .showDetail(\n event,\n this.modalController,\n TapVariableDataPopupComponent\n )\n .catch((err) => {\n console.log(err);\n });\n }\n }\n }\n\n defaultDateTickFormatting(val: any): string {\n if (val.time) {\n return new Date(val.time).toLocaleDateString();\n }\n return val;\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n this.chartModel.destroyCurrentSub();\n }\n}\n","<div\n [ngClass]=\"\n scrollableChart\n ? orientation == 'vertical'\n ? 'verticalContainer'\n : 'horizontalContainer'\n : {}\n \"\n>\n <div\n #containerRef\n [ngClass]=\"\n legendPosition === 'below' && legend ? 'belowLegend' : 'rightLegend'\n \"\n [ngSwitch]=\"orientation\"\n style=\"position: relative\"\n >\n <ngx-charts-bar-horizontal\n *ngSwitchCase=\"'horizontal'\"\n #chartsHor\n [view]=\"[containerRef.offsetWidth, containerRef.offsetHeight]\"\n [scheme]=\"colorScheme\"\n [results]=\"results\"\n [roundEdges]=\"roundEdges\"\n [showXAxisLabel]=\"showXAxisLabel\"\n [showYAxisLabel]=\"showYAxisLabel\"\n [xAxis]=\"xAxis\"\n [yAxisLabel]=\"yAxisLabel\"\n [yAxis]=\"yAxis\"\n [xAxisLabel]=\"xAxisLabel\"\n [legend]=\"legend\"\n [legendTitle]=\"legendTitle\"\n [legendPosition]=\"legendPosition\"\n [noBarWhenZero]=\"noBarWhenZero\"\n [xAxisTickFormatting]=\"xAxisTickFormatting\"\n [xScaleMax]=\"scaleMax\"\n [xScaleMin]=\"scaleMin\"\n [showGridLines]=\"showGridLines\"\n [trimXAxisTicks]=\"trimXAxisTicks\"\n [maxXAxisTickLength]=\"maxXAxisTickLength\"\n [trimYAxisTicks]=\"trimYAxisTicks\"\n [maxYAxisTickLength]=\"maxYAxisTickLength\"\n [animations]=\"animations\"\n [roundDomains]=\"roundDomains\"\n [roundEdges]=\"roundEdges\"\n [barPadding]=\"barPadding\"\n (select)=\"onSelect($event)\"\n >\n </ngx-charts-bar-horizontal>\n <ngx-charts-bar-vertical\n *ngSwitchCase=\"'vertical'\"\n #chartsVer\n [view]=\"[containerRef.offsetWidth, containerRef.offsetHeight]\"\n [noBarWhenZero]=\"noBarWhenZero\"\n [scheme]=\"colorScheme\"\n [results]=\"results\"\n [showXAxisLabel]=\"showXAxisLabel\"\n [showYAxisLabel]=\"showYAxisLabel\"\n [yAxisLabel]=\"yAxisLabel\"\n [xAxisLabel]=\"xAxisLabel\"\n [legend]=\"legend\"\n [legendTitle]=\"legendTitle\"\n [legendPosition]=\"legendPosition\"\n [xAxis]=\"xAxis\"\n [yAxis]=\"yAxis\"\n [yAxisTickFormatting]=\"xAxisTickFormatting\"\n [showGridLines]=\"showGridLines\"\n [trimXAxisTicks]=\"trimXAxisTicks\"\n [maxXAxisTickLength]=\"maxXAxisTickLength\"\n [trimYAxisTicks]=\"trimYAxisTicks\"\n [maxYAxisTickLength]=\"maxYAxisTickLength\"\n [animations]=\"animations\"\n [roundDomains]=\"roundDomains\"\n [roundEdges]=\"roundEdges\"\n [barPadding]=\"barPadding\"\n [yScaleMax]=\"scaleMax\"\n [yScaleMin]=\"scaleMin\"\n (select)=\"onSelect($event)\"\n >\n </ngx-charts-bar-vertical>\n <ion-fab-button\n id=\"exportFabButton\"\n size=\"small\"\n tapExportData\n [dataToExport]=\"results\"\n *ngIf=\"showExportButton\"\n [exportedFileName]=\"exportedFileName\"\n >\n <ion-icon name=\"download\"></ion-icon>\n </ion-fab-button>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\nimport { TapVariableBarChartComponent } from './tap-variable-bar-chart.component';\nimport { TapVariableDataPopupModule } from '../tap-variable-data-popup/tap-variable-data-popup.module';\nimport { IonicModule } from '@ionic/angular';\nimport { ExportDataModule } from '../../ui-directive/export-data.module';\n\n@NgModule({\n declarations: [TapVariableBarChartComponent],\n exports: [TapVariableBarChartComponent],\n imports: [\n CommonModule,\n NgxChartsModule,\n TapVariableDataPopupModule,\n IonicModule,\n ExportDataModule,\n ],\n})\nexport class TapVariableBarChartModule {}\n","import { Component, Input } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { Bit } from '../definitions';\n\n@Component({\n selector: 'app-tap-variable-bits-editor-info-modal',\n templateUrl: './tap-variable-bits-editor-info-modal.component.html',\n styleUrls: ['./tap-variable-bits-editor-info-modal.component.scss'],\n})\nexport class TapVariableBitsEditorInfoModalComponent {\n @Input() rows: Bit[][] = [];\n\n @Input()\n bitOffColor: string = 'danger';\n\n @Input()\n bitOnColor: string = 'success';\n\n constructor(private modalController: ModalController) {}\n\n dismiss() {\n this.modalController.dismiss();\n }\n}\n","<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-buttons slot=\"start\">\n <ion-button (click)=\"dismiss()\">\n <ion-icon name=\"arrow-back\"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-title>Information</ion-title>\n </ion-toolbar>\n</ion-header>\n<ion-content class=\"ion-padding\">\n <div *ngFor=\"let row of rows\">\n <ion-item *ngFor=\"let bit of row\" fill=\"clear\">\n <ion-fab-button\n size=\"small\"\n slot=\"start\"\n [color]=\"bit.value ? bitOnColor : bitOffColor\"\n [disabled]=\"'true'\"\n >\n {{ bit.index | number: '2.0' }}\n </ion-fab-button>\n <ion-label>\n <h3>{{ bit.label }}</h3>\n <p class=\"span-description\">{{ bit.description }}</p>\n </ion-label>\n </ion-item>\n </div>\n</ion-content>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { TapVariableBitsEditorInfoModalComponent } from './tap-variable-bits-editor-info-modal.component';\n\n@NgModule({\n declarations: [TapVariableBitsEditorInfoModalComponent],\n exports: [TapVariableBitsEditorInfoModalComponent],\n imports: [CommonModule, IonicModule],\n})\nexport class TapVariableBitsEditorInfoModalModule {}\n","import {\n Component,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { deepCopy } from '@iotize/common/utility';\nimport { TapValueEditorContainerComponent } from '@iotize/ionic';\nimport {\n NumberConverter,\n TapStreamReader,\n TapStreamWriter,\n} from '@iotize/tap/client/impl';\nimport {\n AbstractVariable,\n TapVariable,\n variableDataTypeToByteSize,\n} from '@iotize/tap/data';\nimport { KeyTypeType } from '@iotize/tap/data/lib/utility/editable-data-stream';\nimport { VariableType } from '@iotize/tap/service/impl/variable';\nimport { BehaviorSubject, NEVER, Subject } from 'rxjs';\nimport { switchMap, takeUntil } from 'rxjs/operators';\nimport { MonitoringAppGenComponent } from '../../metadata/decorators';\nimport { Bit, BitTemplate } from './definitions';\nimport { TapVariableBitsEditorInfoModalComponent } from './tap-variable-bits-editor-info-modal/tap-variable-bits-editor-info-modal.component';\n\n@MonitoringAppGenComponent({\n constraints: {\n isNumber: 'YES',\n isArray: 'NO',\n },\n events: [\n {\n name: 'submit',\n dataType: 'number',\n },\n ],\n})\n@Component({\n selector: 'tap-variable-bits-editor',\n templateUrl: './tap-variable-bits-editor.component.html',\n styleUrls: ['./tap-variable-bits-editor.component.scss'],\n})\nexport class TapVariableBitsEditorComponent implements OnInit, OnDestroy {\n @ViewChild('ctx') ctx!: TapValueEditorContainerComponent;\n\n bitsArrayEditable: Bit[][] = [];\n\n _variableChange = new BehaviorSubject<\n AbstractVariable<number | Uint8Array> | undefined\n >(undefined);\n\n @Output() dataSuccessfullyUpdated = new EventEmitter<string>();\n\n @Input()\n set variable(variable: AbstractVariable<number | Uint8Array> | undefined) {\n this._variableChange.next(variable);\n }\n\n @Input() showHelpButton = true;\n\n @Input()\n bitOffColor: string = 'danger';\n\n @Input()\n bitOnColor: string = 'success';\n\n @Input()\n editable = true;\n\n @Input()\n editButtonsColor?: string = 'primary';\n\n @Input() msb?: boolean;\n\n @Input() numberByteLength: 1 | 2 | 4 = 4;\n\n @Input()\n set bitsTemplate(template: BitTemplate[][] | undefined) {\n template = sanitizeBitsTemplateParameter(template);\n this._bitsTemplate = template;\n if (template) {\n this.bitsArrayEditable = deepCopy(template);\n } else {\n this.bitsArrayEditable = [];\n }\n this._restoreLastValueReceived();\n }\n\n @Input()\n set value(v: number | Uint8Array | undefined) {\n if (v === undefined) {\n v = 0;\n }\n this._setRawValue(v);\n }\n\n private _bitsTemplate: BitTemplate[][] | undefined;\n\n private destroyed = new Subject<void>();\n\n loaded: boolean = false;\n onSaving: boolean = false;\n editMode: boolean = false;\n\n rawStored?: Uint8Array;\n\n private _infoModal?: Promise<HTMLIonModalElement>;\n\n constructor(private modalController: ModalController) {}\n\n ngOnDestroy(): void {\n this.destroyed.next();\n }\n\n ngOnInit() {\n this._variableChange\n .pipe(\n switchMap((variable) => {\n if (variable) {\n return variable.values;\n } else {\n return NEVER;\n }\n }),\n takeUntil(this.destroyed)\n )\n .subscribe((rawVariableValue) => {\n this._setRawValue(rawVariableValue);\n });\n }\n\n private _setRawValue(value: Uint8Array | number) {\n const rawValue = this._valueToBuffer(value);\n this.rawStored = rawValue;\n if (!this.editMode) {\n this.rawToView(rawValue);\n this.loaded = true;\n }\n }\n\n private rawToView(rawVariableValue: Uint8Array) {\n const tapStreamReader = TapStreamReader.fromArray(rawVariableValue);\n if (this.bitsArrayEditable.length === 0) {\n this._initBitsTemplate(rawVariableValue);\n }\n const bitSize = rawVariableValue.length * 8 - 1;\n this.bitsArrayEditable.forEach((row) => {\n for (let bit of row) {\n const bitPosition = this._bitIndexToBufferPosition(bitSize, bit.index);\n tapStreamReader.setBitPosition(bitPosition);\n bit.value = tapStreamReader.readBoolean(1);\n }\n });\n }\n\n private _initBitsTemplate(raw: Uint8Array) {\n let template = this._bitsTemplate;\n if (!Array.isArray(template)) {\n template = [[]];\n for (let i = 0; i < raw.length * 8; i++) {\n template[0].push({\n description: 'No description',\n label: i.toString(),\n index: i,\n });\n }\n }\n for (let i = 0; i < template.length; i++) {\n this.bitsArrayEditable.push([]);\n for (let bit of template[i]) {\n this.bitsArrayEditable[i].push({\n ...bit,\n });\n }\n }\n }\n\n cancelEdit() {\n this.editMode = false;\n this._restoreLastValueReceived();\n }\n\n onEditMode() {\n this.editMode = true;\n }\n\n async onClickEdit(bit: Bit) {\n bit.value = !bit.value;\n }\n\n async onSaveEdit(\n variable: AbstractVariable<number | Uint8Array> | undefined\n ) {\n try {\n if (!variable) {\n return;\n }\n const variableByteLength = this.getNumberByteLength();\n const bufferValue = this._userInputToBuffer(variableByteLength);\n this.editMode = false;\n this.onSaving = true;\n if (typeof variable.writeRaw === 'function') {\n await variable.writeRaw(bufferValue);\n } else {\n const decodedValue = variable.converter\n ? variable.converter.decode(bufferValue)\n : bufferValue;\n await variable.write(decodedValue);\n }\n this.dataSuccessfullyUpdated.next('Data successfully updated !');\n } catch (error) {\n this._restoreLastValueReceived();\n this.ctx.error = error as Error;\n }\n this.onSaving = false;\n }\n\n private getNumberByteLength() {\n return this.numberByteLength\n ? this.numberByteLength\n : this._guessDataLength();\n }\n\n private _restoreLastValueReceived() {\n if (this.rawStored) {\n this.rawToView(this.rawStored);\n }\n }\n\n private _valueToBuffer(value: number | Uint8Array) {\n if (typeof value === 'number') {\n const variableByteLength = this.getNumberByteLength();\n if (variableByteLength > 4) {\n throw new Error(\n `Variable on ${variableByteLength} bytes are not supported.`\n );\n } else if (variableByteLength === 0) {\n return new Uint8Array([]);\n } else {\n const converter = new NumberConverter({\n sizeOf: (variableByteLength * 8) as 8 | 16 | 32,\n signed: false,\n leastSignificantBitFirst: false,\n });\n return converter.encode(value);\n }\n } else {\n return value;\n }\n }\n\n private _bitIndexToBufferPosition(bitLength: number, index: number) {\n return this.msb ? index : bitLength - index;\n }\n\n private _userInputToBuffer(byteLength: number): Uint8Array {\n const tapStreamWriter = TapStreamWriter.create(byteLength);\n const bitLength = byteLength * 8 - 1;\n this.bitsArrayEditable.forEach((row) => {\n for (let bit of row) {\n tapStreamWriter.setBitPosition(\n this._bitIndexToBufferPosition(bitLength, bit.index)\n );\n tapStreamWriter.writeBoolean(bit.value || false, 1);\n }\n });\n tapStreamWriter.setBitPosition(bitLength);\n const result = tapStreamWriter.toBytes;\n console.log(\n 'DEBUG USER INPUT TO BUFFER',\n bitLength,\n deepCopy(this.bitsArrayEditable),\n 'result',\n result\n );\n if (result.length !== byteLength) {\n console.warn(\n `TapVariableBitsEditorComponent encoded value to write does not have the expected byte length of ${byteLength} bytes:`,\n result\n );\n }\n return result;\n }\n\n /**\n * @deprecated use numberByteLength parameter instead\n * @param variable\n * @returns\n */\n private _guessDataLength(variable = this._variableChange.value): number {\n if (!variable) {\n console.warn(`Cannot guess data length, variable is not set yet`);\n return 0;\n }\n const tapVariableConfig = (variable as TapVariable<unknown, KeyTypeType>)\n .config;\n const quantity = tapVariableConfig?.length || 1;\n let unit: VariableType.Data;\n if (tapVariableConfig?.dataType === undefined) {\n // TODO fix with API change\n console.warn(\n `TapVariableBitsEditorComponent failed to guess variable size. use 1 byte size. It may trigger error if size is not valid.`,\n variable\n );\n unit = VariableType.Data.UINT32;\n } else {\n unit = tapVariableConfig.dataType;\n }\n const length = quantity * variableDataTypeToByteSize(unit);\n return length;\n }\n\n async showInfo() {\n this._infoModal = this.modalController.create({\n component: TapVariableBitsEditorInfoModalComponent,\n componentProps: {\n bitOnColor: this.bitOnColor,\n bitOffColor: this.bitOffColor,\n rows: this.bitsArrayEditable,\n },\n });\n try {\n const modal = await await this._infoModal;\n modal.present();\n await modal.onDidDismiss();\n } finally {\n this._infoModal = undefined;\n }\n }\n}\n\nexport function sanitizeBitsTemplateParameter(\n template: BitTemplate[][] | undefined\n): BitTemplate[][] | undefined {\n if (\n Array.isArray(template) &&\n template.length > 0 &&\n !Array.isArray(template[0])\n ) {\n template = [template as unknown as BitTemplate[]];\n }\n if (template && !Array.isArray(template)) {\n template = [];\n }\n if (template) {\n template = template.filter((row) => {\n return !!row && Array.isArray(row);\n });\n template.forEach((row, index) => {\n template!![index] = row.filter((item) => {\n return !!item && typeof item === 'object';\n });\n });\n }\n return template;\n}\n","<tap-value-editor-container\n #ctx\n [variable]=\"_variableChange.value\"\n [showEditButton]=\"false\"\n [showSubmitButton]=\"false\"\n [lines]=\"'none'\"\n *ngIf=\"bitsArrayEditable.length > 0; else noBitsTemplate\"\n>\n <ion-grid id=\"ionGrid\">\n <ion-row *ngFor=\"let row of bitsArrayEditable\" class=\"row-bits\">\n <div class=\"bit-div\" *ngFor=\"let bit of row\">\n <ion-fab-button\n (click)=\"onClickEdit(bit)\"\n class=\"fab-row\"\n size=\"small\"\n [color]=\"\n (bit.value && !bit.reverse) || (!bit.value && bit.reverse)\n ? bitOnColor\n : bitOffColor\n \"\n [disabled]=\"!editMode\"\n >\n </ion-fab-button>\n <ion-label class=\"label-under\">\n {{ bit.label }}\n </ion-label>\n </div>\n </ion-row>\n <ion-item lines=\"none\" *ngIf=\"editable || showHelpButton\">\n <ion-buttons id=\"buttonsBottom\">\n <ion-button\n fill=\"clear\"\n (click)=\"showInfo()\"\n [color]=\"editButtonsColor\"\n *ngIf=\"showHelpButton\"\n >\n <ion-icon\n class=\"button-edit-icon\"\n name=\"information-circle\"\n ></ion-icon>\n </ion-button>\n <ng-container *ngIf=\"editable\">\n <ion-button\n [color]=\"editButtonsColor\"\n fill=\"clear\"\n [disabled]=\"onSaving\"\n (click)=\"onEditMode()\"\n *ngIf=\"!editMode\"\n >\n <ion-icon class=\"button-edit-icon\" name=\"pencil\"></ion-icon>\n </ion-button>\n <ion-button\n fill=\"clear\"\n (click)=\"cancelEdit()\"\n *ngIf=\"editMode\"\n [color]=\"editButtonsColor\"\n >\n <ion-icon class=\"button-edit-icon\" name=\"close\"></ion-icon>\n </ion-button>\n <ion-button\n fill=\"clear\"\n [color]=\"editButtonsColor\"\n [disabled]=\"!editMode\"\n (click)=\"onSaveEdit(_variableChange.value)\"\n *ngIf=\"!onSaving; else saveLoader\"\n >\n <ion-icon class=\"button-edit-icon\" name=\"save\"></ion-icon>\n </ion-button>\n <ng-template #saveLoader>\n <ion-spinner\n [color]=\"editButtonsColor\"\n name=\"crescent\"\n ></ion-spinner> </ng-template\n ></ng-container>\n </ion-buttons>\n </ion-item>\n </ion-grid>\n</tap-value-editor-container>\n<ng-template #noBitsTemplate>\n <ion-progress-bar type=\"indeterminate\"></ion-progress-bar>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { TapValueEditorContainerModule } from '@iotize/ionic';\nimport { TapVariableBitsEditorInfoModalModule } from './tap-variable-bits-editor-info-modal/tap-variable-bits-editor-info-modal.module';\nimport { TapVariableBitsEditorComponent } from './tap-variable-bits-editor.component';\n\n@NgModule({\n declarations: [TapVariableBitsEditorComponent],\n exports: [TapVariableBitsEditorComponent],\n imports: [\n CommonModule,\n TapValueEditorContainerModule,\n IonicModule,\n TapVariableBitsEditorInfoModalModule,\n ],\n})\nexport class TapVariableBitsEditorModule {}\n","import {\n AfterViewInit,\n Component,\n Input,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport { TapValueEditorContainerComponent } from '@iotize/ionic';\nimport { EditableValueDataStreamInterface } from '@iotize/tap/data';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n AppGenField,\n MonitoringAppGenComponent,\n} from '../../metadata/decorators';\nimport { ActionItem } from '../monitoring-actions/monitoring-actions.component';\nimport {\n ICON_OR_SVG_SCHEMA,\n IONIC_COLOR_SCHEMA,\n TAP_VARIABLE_SCHEMA,\n VALUE_STREAM_FIELD,\n} from '../shared-schema';\n\nexport interface TapVariableButton {\n label: string;\n value: any;\n icon?: string;\n disabled?: boolean;\n}\n\n@MonitoringAppGenComponent({\n constraints: {\n isArray: 'NO',\n },\n events: [\n {\n name: 'submit',\n dataType: 'number',\n },\n ],\n})\n@Component({\n selector: 'tap-variable-buttons',\n templateUrl: './tap-variable-buttons.component.html',\n styleUrls: ['./tap-variable-buttons.component.scss'],\n})\nexport class TapVariableButtonsComponent implements AfterViewInit, OnDestroy {\n @ViewChild('ctx') ctx!: TapValueEditorContainerComponent;\n\n private destroyed = new Subject<void>();\n\n checkedButtonIndex?: number;\n\n @Input()\n variable?: EditableValueDataStreamInterface<number, any>;\n\n @Input()\n editable: boolean = true;\n\n @Input()\n color = 'primary';\n\n @Input() segment = true;\n\n @Input()\n set buttons(buttons: TapVariableButton[] | undefined) {\n this.actions = (buttons || [])\n .filter((button) => !!button)\n .map((button): ActionItem => {\n return {\n // active: false,\n label: button.label,\n icon: button.icon,\n action: async () => {\n await this.ctx.notifyValueChange(button.value);\n },\n value: button.value,\n disabled: button.disabled,\n };\n });\n }\n\n set value(newValue: number) {\n this._setActiveButton(newValue);\n }\n\n public actions: ActionItem[] = [];\n\n constructor() {}\n\n ngAfterViewInit() {\n this.ctx?.valueToDisplay\n ?.pipe(takeUntil(this.destroyed))\n .subscribe((newValue) => {\n this._setActiveButton(newValue);\n });\n }\n\n ngOnDestroy() {\n this.destroyed.next();\n }\n\n private _setActiveButton(newValue: number) {\n this.checkedButtonIndex = this.actions.findIndex((action) => {\n return action.value === newValue;\n });\n }\n}\n","<tap-value-editor-container #ctx [variable]=\"variable\">\n <app-monitoring-actions\n style=\"width: 100%\"\n [disabled]=\"!editable || (ctx.loadingChange | async)\"\n [actions]=\"actions\"\n [segment]=\"segment\"\n [color]=\"color\"\n [checkedButtonIndex]=\"checkedButtonIndex\"\n >\n </app-monitoring-actions>\n</tap-value-editor-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TapVariableButtonsComponent } from './tap-variable-buttons.component';\nimport { IonicModule } from '@ionic/angular';\nimport { MonitoringActionsModule } from '../monitoring-actions/monitoring-actions.module';\nimport { TapValueEditorContainerModule } from '@iotize/ionic';\n\n@NgModule({\n declarations: [TapVariableButtonsComponent],\n exports: [TapVariableButtonsComponent],\n imports: [\n CommonModule,\n IonicModule,\n MonitoringActionsModule,\n TapValueEditorContainerModule,\n ],\n})\nexport class TapVariableButtonsModule {}\n","import {\n Component,\n Input,\n OnDestroy,\n AfterViewInit,\n ViewChild,\n ElementRef,\n} from '@angular/core';\nimport {\n CurrentDeviceService,\n PendingCallManager,\n TapValueEditorContainerComponent,\n} from '@iotize/ionic';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n AppGenField,\n MonitoringAppGenComponent,\n} from '../../metadata/decorators';\nimport { EDITABLE_SCHEMA, TAP_VARIABLE_SCHEMA } from '../shared-schema';\n\n@MonitoringAppGenComponent({\n constraints: { isNumber: 'YES', isArray: 'NO', isString: 'NO' },\n events: [\n {\n name: 'submit',\n dataType: 'number',\n },\n ],\n})\n@Component({\n selector: 'tap-variable-color-picker',\n templateUrl: './tap-variable-color-picker.component.html',\n styleUrls: ['./tap-variable-color-picker.component.scss'],\n})\nexport class TapVariableColorPickerComponent\n implements AfterViewInit, OnDestroy\n{\n @Input()\n editable: boolean = true;\n\n @Input()\n showHexValue: boolean = true;\n\n @Input()\n set variable(variable: AbstractVariable<any> | undefined) {\n this._variable = variable;\n }\n\n @ViewChild('ctx') ctx!: TapValueEditorContainerComponent;\n\n private destroyed = new Subject<void>();\n\n pendingCallManager: PendingCallManager;\n\n pendingSubmitValue: any;\n\n _variable?: AbstractVariable<any>;\n\n // loaded = false;\n\n _color: string | number = '#000000';\n\n get pending(): boolean {\n return this.pendingCallManager.pendingCall !== undefined;\n }\n\n constructor(tapService: CurrentDeviceService) {\n this.pendingCallManager = PendingCallManager.create(tapService);\n }\n\n ngAfterViewInit() {\n this.ctx?.valueToDisplay\n ?.pipe(takeUntil(this.destroyed))\n .subscribe((newValue) => {\n this._color = asColorString(newValue);\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed.next();\n this.pendingCallManager.destroy();\n }\n\n onColorChange(color: string) {\n this._color = color;\n this.ctx.notifyValueChange(asColorInt(color));\n }\n}\n\nexport const CSS_COLOR_REGEX: RegExp = /^#([a-fA-F0-9]{6})$/;\n\nfunction asColorString(input: string | number | undefined): string {\n if (input === undefined) {\n input = '#000000';\n }\n if (typeof input === 'string' && input.startsWith('0x')) {\n input = parseInt(input, 16);\n }\n if (typeof input === 'number') {\n if (input < 0) {\n input = 0;\n } else if (input > 0xffffff) {\n input = 0xffffff;\n }\n input = '#' + input.toString(16).padStart(6, '0');\n }\n if (!input.match(CSS_COLOR_REGEX)) {\n throw new Error(\n `Invalid CSS color \"${input}\". It must formatted as #AD3033`\n );\n }\n return input;\n}\n\nfunction asColorInt(input: string | number): number {\n return parseInt(asColorString(input).substr(1), 16);\n}\n","<tap-value-editor-container #ctx [variable]=\"_variable\">\n <span id=\"spanColor\" *ngIf=\"showHexValue\">{{ _color }}</span>\n <input\n id=\"inputColor\"\n #inputElement\n type=\"color\"\n [disabled]=\"!editable\"\n [(ngModel)]=\"_color\"\n (ngModelChange)=\"onColorChange($event)\"\n />\n <!-- <ion-spinner *ngIf=\"!loaded\" name=\"crescent\" color=\"primary\"></ion-spinner> -->\n</tap-value-editor-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IonicModule } from '@ionic/angular';\nimport { TapVariableColorPickerComponent } from './tap-variable-color-picker.component';\nimport { TapValueEditorContainerModule } from '@iotize/ionic';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [TapVariableColorPickerComponent],\n exports: [TapVariableColorPickerComponent],\n imports: [\n CommonModule,\n IonicModule,\n FormsModule,\n TapValueEditorContainerModule,\n ],\n})\nexport class TapVariableColorPickerModule {}\n","import { Component, Input, OnDestroy } from '@angular/core';\nimport { AbstractVariable, TapVariable } from '@iotize/tap/data';\nimport { Observable, Subscription } from 'rxjs';\nimport {\n AppGenField,\n MonitoringAppGenComponent,\n} from '../../metadata/decorators';\nimport { TAP_VARIABLE_SCHEMA } from '../shared-schema';\n\n@MonitoringAppGenComponent({})\n@Component({\n selector: 'tap-variable-context',\n templateUrl: './tap-variable-context.component.html',\n styleUrls: ['./tap-variable-context.component.scss'],\n})\nexport class TapVariableContextComponent<ValueType = any> implements OnDestroy {\n private sub?: Subscription;\n\n _variable?: AbstractVariable<ValueType>;\n value?: ValueType;\n\n get values(): Observable<ValueType> | undefined {\n return this.variable?.values;\n }\n\n get config(): TapVariable.Config | undefined {\n const variable = this._variable;\n if (variable && variable instanceof TapVariable) {\n return variable.config;\n }\n return undefined;\n }\n\n @Input()\n set variable(v: AbstractVariable<ValueType>) {\n if (this.sub) {\n this.sub.unsubscribe();\n this.sub = undefined;\n }\n if (v) {\n this._variable = v;\n this.sub = v.values.subscribe((value: any) => (this.value = value));\n }\n }\n\n constructor() {}\n\n ngOnDestroy(): void {\n this.sub?.unsubscribe();\n this.sub = undefined;\n }\n}\n","<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IonicModule } from '@ionic/angular';\nimport { TapVariableContextComponent } from './tap-variable-context.component';\n\n@NgModule({\n declarations: [TapVariableContextComponent],\n exports: [TapVariableContextComponent],\n imports: [CommonModule, IonicModule],\n})\nexport class TapVariableContextModule {}\n","import {\n AfterViewInit,\n Component,\n Input,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport { IonModal } from '@ionic/angular';\nimport { EncoderDecoder } from '@iotize/common/converter/api';\nimport {\n CurrentDeviceService,\n PendingCallManager,\n TapValueEditorContainerComponent,\n} from '@iotize/ionic';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n AppGenField,\n MonitoringAppGenComponent,\n} from '../../metadata/decorators';\nimport {\n EDITABLE_SCHEMA,\n IONIC_COLOR_SCHEMA,\n TAP_VARIABLE_SCHEMA,\n} from '../shared-schema';\n\n@MonitoringAppGenComponent({\n constraints: {\n isArray: 'NO',\n },\n})\n@Component({\n selector: 'tap-variable-date-time-picker',\n templateUrl: './tap-variable-date-time-picker.component.html',\n styleUrls: ['./tap-variable-date-time-picker.component.scss'],\n})\nexport class TapVariableDateTimePickerComponent\n implements AfterViewInit, OnDestroy\n{\n @ViewChild('ctx') ctx!: TapValueEditorContainerComponent;\n @ViewChild('dateTimeModal') dateTimeModal!: IonModal;\n\n pendingCallManager: PendingCallManager;\n pendingSubmitValue: any;\n private destroyed = new Subject<void>();\n\n public error?: Error;\n\n // loaded = false;\n\n @Input() set fieldError(err: Error) {\n this.error = err;\n }\n\n get pending(): boolean {\n return this.pendingCallManager.pendingCall !== undefined;\n }\n\n @Input()\n format: string = 'medium';\n\n @Input()\n showCalendarPickerTitle: boolean = true;\n\n @Input()\n editable: boolean = true;\n\n @Input()\n color = 'primary';\n\n @Input()\n showCalendarIcon: boolean = true;\n\n @Input()\n iconCalendarColor = 'primary';\n\n @Input() set encodingType(type: string) {\n if (type in DATE_TIME_PICKER_ENCODING) {\n const converter =\n DATE_TIME_PICKER_ENCODING[\n type as keyof typeof DATE_TIME_PICKER_ENCODING\n ];\n this.formatDataRead = converter.decode.bind(converter);\n this.formatDataWrite = converter.encode.bind(converter);\n } else {\n this.formatDataRead = undefined;\n this.formatDataWrite = undefined;\n }\n }\n\n @Input()\n formatDataRead: ((date: number) => string) | undefined;\n\n @Input()\n formatDataWrite: ((date: string) => number) | undefined;\n\n _variable?: AbstractVariable<any>;\n\n @Input()\n set variable(variable: AbstractVariable<any> | undefined) {\n this._variable = variable;\n }\n\n dateTimeValue: string = '2023-01-01T00:00:00';\n\n constructor(tapService: CurrentDeviceService) {\n this.pendingCallManager = PendingCallManager.create(tapService);\n }\n\n ngOnDestroy(): void {\n this.destroyed.next();\n this.pendingCallManager.destroy();\n }\n\n ngAfterViewInit() {\n this.ctx?.valueToDisplay\n ?.pipe(takeUntil(this.destroyed))\n .subscribe((newValue) => {\n this.dateTimeValue = this.formatDataRead\n ? this.formatDataRead(newValue)\n : newValue;\n });\n }\n\n async onPendingChange(event: CustomEvent<{ value: string }>) {\n const value = event.detail.value;\n const timeStamp = this.formatDataWrite\n ? this.formatDataWrite(value)\n : value;\n await this.ctx.notifyValueChange(timeStamp);\n }\n\n onValueClick() {\n if (this.editable) {\n this.pendingSubmitValue = this.dateTimeValue;\n this.dateTimeModal.present();\n }\n }\n}\n\nconst DATE_TIME_PICKER_ENCODING = {\n timestamp_ms: createTimestampEncoder(1),\n timestamp_s: createTimestampEncoder(1000),\n};\n\nfunction createTimestampEncoder(\n multiplier = 1\n): EncoderDecoder<string, number> {\n return {\n decode: (timestampInSeconds: number | undefined | string): string => {\n timestampInSeconds =\n typeof timestampInSeconds === 'string'\n ? parseInt(timestampInSeconds)\n : timestampInSeconds;\n if (timestampInSeconds === undefined || isNaN(timestampInSeconds)) {\n timestampInSeconds = 0;\n }\n const date = new Date(timestampInSeconds * multiplier);\n return date.toISOString().slice(0, -1);\n },\n encode: (value: string): number => {\n if (!value) {\n return 0;\n }\n const date = Date.parse(value);\n return new Date(date).getTime() / multiplier;\n },\n };\n}\n","<tap-value-editor-container\n #ctx\n [button]=\"editable\"\n [variable]=\"_variable\"\n (click)=\"onValueClick()\"\n>\n <!-- <ion-spinner *ngIf=\"!loaded\" name=\"crescent\" color=\"primary\"></ion-spinner> -->\n\n <ion-modal #dateTimeModal>\n <ng-template>\n <ion-content>\n <ion-datetime\n #ionDateTime\n [showDefaultTitle]=\"showCalendarPickerTitle\"\n [showDefaultButtons]=\"true\"\n [color]=\"color\"\n size=\"cover\"\n [value]=\"pendingSubmitValue\"\n (ionChange)=\"onPendingChange($event)\"\n >\n <!-- <ion-buttons slot=\"buttons\">\n <ion-button\n fill=\"clear\"\n [color]=\"color\"\n (click)=\"ionDateTime.confirm(); onConfirm()\"\n >Confirm</ion-button\n >\n <ion-button\n fill=\"clear\"\n color=\"dark\"\n (click)=\"ionDateTime.cancel(); dateTimeModal.dismiss()\"\n >Cancel</ion-button\n >\n </ion-buttons> -->\n </ion-datetime>\n </ion-content>\n </ng-template>\n </ion-modal>\n <ion-icon\n [color]=\"iconCalendarColor\"\n slot=\"start\"\n name=\"calendar\"\n *ngIf=\"showCalendarIcon\"\n ></ion-icon>\n <ion-label>\n {{ dateTimeValue | date: (format ? format : 'MMM d, y, h:mm:ss a') }}\n </ion-label>\n <!--\n <ion-datetime\n *ngIf=\"loaded\"\n \n [displayFormat]=\"format\"\n [value]=\"dateTimeValue\"\n (ionChange)=\n ></ion-datetime>\n -->\n</tap-value-editor-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TapVariableDateTimePickerComponent } from './tap-variable-date-time-picker.component';\nimport { IonicModule } from '@ionic/angular';\nimport { TapValueEditorContainerModule } from '@iotize/ionic';\n\n@NgModule({\n declarations: [TapVariableDateTimePickerComponent],\n exports: [TapVariableDateTimePickerComponent],\n imports: [CommonModule, IonicModule, TapValueEditorContainerModule],\n})\nexport class TapVariableDateTimePickerModule {}\n","import { Component, Input } from '@angular/core';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport { NEVER } from 'rxjs';\nimport {\n AppGenField,\n MonitoringAppGenComponent,\n} from '../../metadata/decorators';\nimport { GaugeCardComponent } from '../gauge-card/gauge-card.component';\nimport { TAP_VARIABLE_SCHEMA, VALUE_STREAM_FIELD } from '../shared-schema';\n\n@MonitoringAppGenComponent({\n constraints: {\n isNumber: 'YES',\n },\n})\n@Component({\n selector: 'tap-variable-gauge',\n templateUrl: '../gauge-card/gauge-card.component.html',\n styleUrls: ['../gauge-card/gauge-card.component.scss'],\n})\nexport class TapVariableGaugeComponent extends GaugeCardComponent {\n /**\n * @deprecated directly use value input\n */\n @Input()\n set variable(v: AbstractVariable<number | number[]> | undefined) {\n if (v) {\n this.inputStream = v.values;\n } else {\n this.inputStream = NEVER;\n }\n }\n\n @Input()\n set value(value: number | string) {\n this.setSingleValue(value);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule, DecimalPipe } from '@angular/common';\n\nimport { TapVariableGaugeComponent } from './tap-variable-gauge.component';\nimport { GaugeCardModule } from '../gauge-card/gauge-card.module';\nimport { IonicModule } from '@ionic/angular';\nimport { ExportDataModule } from '../../ui-directive/export-data.module';\n\n@NgModule({\n declarations: [TapVariableGaugeComponent],\n providers: [DecimalPipe],\n exports: [TapVariableGaugeComponent],\n imports: [CommonModule, GaugeCardModule, IonicModule, ExportDataModule],\n})\nexport class TapVariableGaugeModule {}\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { IonSelect } from '@ionic/angular';\nimport {\n InlineEditorComponent,\n TapValueEditorContainerComponent,\n} from '@iotize/ionic';\nimport { EditableValueDataStreamInterface } from '@iotize/tap/data';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MonitoringAppGenComponent } from '../../metadata/decorators';\n\n@MonitoringAppGenComponent({\n constraints: {\n isArray: 'NO',\n },\n events: [\n {\n name: 'submit',\n dataType: 'number',\n },\n ],\n})\n@Component({\n selector: 'tap-variable-select',\n templateUrl: './tap-variable-select.component.html',\n styleUrls: ['./tap-variable-select.component.scss'],\n})\nexport class TapVariableSelectComponent implements AfterViewInit, OnDestroy {\n @ViewChild('ctx') ctx!: TapValueEditorContainerComponent;\n @ViewChild('selectView') selectView!: IonSelect;\n\n @Input()\n variable?: EditableValueDataStreamInterface<number, any>;\n\n @Input()\n value?: number;\n\n @Output()\n valueChange = new EventEmitter<any>();\n\n @Input()\n editable?: boolean;\n\n @Input()\n refreshable: boolean = false;\n\n @Input()\n multiple = false;\n\n @Input()\n lines = 'none';\n\n @Input()\n set options(\n selectOptions: InlineEditorComponent.SelectOptions.Options | undefined\n ) {\n this._selectOptions = selectOptions?.filter((option) => !!option);\n }\n\n _selectOptions: InlineEditorComponent.SelectOptions.Options | undefined;\n lastValue?: any;\n private _destroyed = new Subject<void>();\n\n constructor() {}\n\n ngOnDestroy(): void {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n ngAfterViewInit(): void {\n this.ctx.variableValuesStream\n .pipe(takeUntil(this._destroyed))\n .subscribe((value) => {\n this.lastValue = value;\n });\n\n this.ctx.editModeChange\n .pipe(takeUntil(this._destroyed))\n .subscribe((isEditModeOn) => {\n if (isEditModeOn) {\n this.openSelectDialog();\n }\n });\n }\n\n private async openSelectDialog() {\n await this.selectView?.open();\n }\n\n onSelectValueChange(event: CustomEvent<{ value: string }>) {\n const value = event.detail.value;\n if (this.lastValue !== value) {\n this.valueChange.emit(value);\n this.ctx.notifyValueChange(value);\n }\n }\n\n onSelectCancelChange() {\n this.ctx.cancelEdit();\n }\n}\n","<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","import { NgModule } from '@angular/core';\nimport { CommonModule, DecimalPipe } from '@angular/common';\nimport { TapVariableSelectComponent } from './tap-variable-select.component';\nimport { IonicModule } from '@ionic/angular';\nimport {\n InlineEditorModule,\n TapValueEditorContainerModule,\n} from '@iotize/ionic';\n\n@NgModule({\n declarations: [TapVariableSelectComponent],\n exports: [TapVariableSelectComponent],\n providers: [DecimalPipe],\n imports: [\n CommonModule,\n IonicModule,\n InlineEditorModule,\n TapValueEditorContainerModule,\n ],\n})\nexport class TapVariableSelectModule {}\n","import { Component, Input } from '@angular/core';\nimport { listEnumKeys } from '@iotize/common/utility';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport { GPIOMode } from '@iotize/tap/service/impl/gpio';\nimport {\n AppGenField,\n MonitoringAppGenComponent,\n} from '../../metadata/decorators';\nimport { TAP_VARIABLE_SCHEMA } from '../shared-schema';\n\nconst GPIO_MODE_OPTIONS = listEnumKeys(GPIOMode)\n .sort()\n .map((text: string) => {\n return {\n key: GPIOMode[text as keyof typeof GPIOMode],\n text: text.replace(/_/g, ' '),\n };\n });\n\n@MonitoringAppGenComponent({\n constraints: {\n isArray: 'NO',\n isNumber: 'YES',\n },\n events: [\n {\n name: 'submit',\n dataType: 'number',\n },\n ],\n})\n@Component({\n selector: 'tap-variable-gpio-mode',\n templateUrl: './tap-variable-gpio-mode.component.html',\n styleUrls: ['./tap-variable-gpio-mode.component.scss'],\n})\nexport class TapVariableGpioModeComponent {\n public options = GPIO_MODE_OPTIONS;\n\n @Input()\n editable?: boolean;\n\n @Input()\n variable?: AbstractVariable<GPIOMode>;\n\n constructor() {}\n}\n","<tap-variable-select\n slot=\"end\"\n [lines]=\"'none'\"\n [variable]=\"variable\"\n [multiple]=\"false\"\n [options]=\"options\"\n [editable]=\"editable\"\n>\n</tap-variable-select>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { TapVariableSelectModule } from '../tap-variable-select/tap-variable-select.module';\nimport { TapVariableGpioModeComponent } from './tap-variable-gpio-mode.component';\n\n@NgModule({\n declarations: [TapVariableGpioModeComponent],\n exports: [TapVariableGpioModeComponent],\n imports: [CommonModule, IonicModule, TapVariableSelectModule],\n})\nexport class TapVariableGpioModeModule {}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport { IonToggle } from '@ionic/angular';\nimport { TapValueEditorContainerComponent } from '@iotize/ionic';\nimport { EditableValueDataStreamInterface } from '@iotize/tap/data';\nimport { Subscription } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport {\n AppGenField,\n MonitoringAppGenComponent,\n} from '../../metadata/decorators';\nimport {\n COLOR_SCHEME_SCHEMA,\n IONIC_COLOR_SCHEMA,\n TAP_VARIABLE_SCHEMA,\n} from '../shared-schema';\n\n@MonitoringAppGenComponent({\n constraints: {\n isArray: 'NO',\n isNumber: 'YES',\n },\n events: [\n {\n name: 'submit',\n dataType: 'boolean',\n },\n ],\n})\n@Component({\n selector: 'tap-variable-toggle',\n templateUrl: './tap-variable-toggle.component.html',\n styleUrls: ['./tap-variable-toggle.component.scss'],\n})\nexport class TapVariableToggleComponent implements AfterViewInit, OnDestroy {\n @ViewChild('toggle') toggle!: IonToggle;\n @ViewChild('ctx') ctx!: TapValueEditorContainerComponent;\n\n error?: Error;\n\n @Input()\n textOnLeft = 'Off';\n\n @Input()\n textOnRight = 'On';\n\n @Input()\n lines = 'none';\n\n @Input()\n toggleColor = 'primary';\n\n @Input()\n variable?: EditableValueDataStreamInterface<number, any>;\n\n @Input()\n editable = false;\n\n @Input()\n valueOn = 1;\n\n @Input()\n valueOff = 0;\n\n @Input()\n chip: { outline?: boolean; color?: string } = {\n outline: false,\n color: '',\n };\n\n chipOutline = false;\n\n _valueSub?: Subscription;\n\n private _lastValueDisplayed?: boolean;\n\n inputOptions = {\n type: 'toggle',\n };\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n this._valueSub = this.ctx?.valueToDisplay\n .pipe(\n map((value) => {\n if (value === this.valueOn) {\n value = true;\n } else if (value === this.valueOff) {\n value = false;\n }\n value = !!value;\n return value;\n })\n )\n .subscribe((value) => {\n this._lastValueDisplayed = value;\n if (this.ctx.pendingSubmitValue === undefined) {\n this.toggle.checked = value;\n this.changeDetectorRef.detectChanges();\n }\n });\n }\n\n ngOnDestroy(): void {\n this._valueSub?.unsubscribe();\n }\n\n switchToggle() {\n if (!this.toggle.disabled) {\n this.toggle.checked = !this.toggle.checked;\n }\n }\n\n onValueChange(event: CustomEvent<{ value: string; checked: boolean }>) {\n if (this._lastValueDisplayed !== event.detail.checked) {\n const value = event.detail.checked ? this.valueOn : this.valueOff;\n this.ctx?.notifyValueChange(value);\n }\n }\n}\n","<tap-value-editor-container #ctx [variable]=\"variable\" [lines]=\"lines\">\n <ion-chip\n [color]=\"chip?.color\"\n [outline]=\"chip?.outline\"\n (click)=\"switchToggle()\"\n [disabled]=\"!editable || (ctx.loadingChange | async)\"\n >\n <span class=\"spanToggle\"> {{ textOnLeft }} </span>\n <ion-toggle\n [color]=\"toggleColor\"\n #toggle\n [disabled]=\"!editable || (ctx.loadingChange | async)\"\n style=\"pointer-events: none\"\n (ionChange)=\"onValueChange($event)\"\n ></ion-toggle>\n <span class=\"spanToggle\"> {{ textOnRight }} </span>\n </ion-chip>\n</tap-value-editor-container>\n","import { Component, Input } from '@angular/core';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport {\n MonitoringAppGenComponent,\n AppGenField,\n} from '../../metadata/decorators';\nimport { TAP_VARIABLE_SCHEMA } from '../shared-schema';\n\n@MonitoringAppGenComponent({\n constraints: {\n isArray: 'NO',\n isNumber: 'YES',\n },\n events: [\n {\n name: 'submit',\n dataType: 'number',\n },\n ],\n})\n@Component({\n selector: 'tap-variable-gpio-value',\n templateUrl: './tap-variable-gpio-value.component.html',\n styleUrls: ['./tap-variable-gpio-value.component.scss'],\n})\nexport class TapVariableGpioValueComponent {\n @Input()\n variable?: AbstractVariable<any>;\n\n @Input()\n editable?: boolean;\n\n constructor() {}\n}\n","<tap-variable-toggle [variable]=\"variable\" [editable]=\"editable\">\n</tap-variable-toggle>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { TapValueEditorContainerModule } from '@iotize/ionic';\nimport { TapVariableToggleComponent } from './tap-variable-toggle.component';\n\n@NgModule({\n declarations: [TapVariableToggleComponent],\n exports: [TapVariableToggleComponent],\n imports: [CommonModule, IonicModule, TapValueEditorContainerModule],\n})\nexport class TapVariableToggleModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TapVariableGpioValueComponent } from './tap-variable-gpio-value.component';\nimport { IonicModule } from '@ionic/angular';\nimport { TapVariableToggleModule } from '../tap-variable-toggle/tap-variable-toggle.module';\n\n@NgModule({\n declarations: [TapVariableGpioValueComponent],\n exports: [TapVariableGpioValueComponent],\n imports: [CommonModule, IonicModule, TapVariableToggleModule],\n})\nexport class TapVariableGpioValueModule {}\n","import {\n AfterContentChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n PLATFORM_ID,\n ViewChild,\n} from '@angular/core';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport { HeatMapComponent, LegendPosition } from '@swimlane/ngx-charts';\nimport { Subscription } from 'rxjs';\nimport { MonitoringAppGenComponent } from '../../metadata/decorators';\nimport {\n ChartDataModel,\n ChartInputMutli,\n ChartInputStreamVar,\n} from '../ChartDataModel';\nimport { dataWithSeriesToCsv } from '../ExportDataFormat';\nimport { OnChartSelectEvent } from '../shared-types';\n\n@MonitoringAppGenComponent({})\n@Component({\n selector: 'tap-variable-heat-map-chart',\n templateUrl: './tap-variable-heat-map-chart.component.html',\n styleUrls: ['./tap-variable-heat-map-chart.component.scss'],\n})\nexport class TapVariableHeatMapChartComponent\n extends HeatMapComponent\n implements AfterContentChecked, OnDestroy\n{\n @ViewChild(HeatMapComponent) heatChart!: HeatMapComponent;\n\n @Input()\n colorScheme = {\n domain: [\n '#e0f7fa',\n '#b2ebf2',\n '#80deea',\n '#4dd0e1',\n '#26c6da',\n '#00bcd4',\n '#00acc1',\n '#0097a7',\n '#00838f',\n '#006064',\n ],\n };\n\n @Input()\n showExportButton: boolean = false;\n\n @Input()\n exportedFileName?: string;\n\n @Input()\n yAxis: boolean = true;\n\n @Input()\n showYAxisLabel = true;\n\n @Input()\n xAxis: boolean = true;\n\n @Input()\n showXAxisLabel = false;\n\n @Input()\n legend = true;\n\n @Input()\n legendPosition: LegendPosition = LegendPosition.Below;\n\n @Input()\n valueCountLimit = 15;\n\n @Input()\n history: boolean = false;\n\n @Input()\n set label(indexOrArray: string | string[] | undefined | Function) {\n this.chartModel.initLabel(indexOrArray);\n }\n\n @Input() xAxisTickFormatting: (input: any) => string =\n this.defaultDateTickFormatting.bind(this);\n\n isArray?: boolean;\n chartHeight = 100;\n maxValue = 1;\n\n @Input()\n set variable(\n variableOrArray:\n | AbstractVariable<number | number[]>\n | AbstractVariable<number | number[]>[]\n | undefined\n ) {\n this.inputStream = this.chartModel.initVariable(variableOrArray);\n }\n\n @Input()\n set inputStream(inputs: ChartInputStreamVar[]) {\n this.subscription = this.chartModel\n .defineInputStreamMulti(inputs, this.history, this.valueCountLimit)\n .subscribe((result) => {\n result.map((e) => {\n e.series.map((v) => {\n if (typeof v.value === 'number' && v.value > this.maxValue) {\n this.maxValue = v.value;\n }\n });\n });\n this.heatChart.max = this.maxValue;\n this.chartHeight = result[0].series.length * 50;\n if (this.chartHeight <= 100) {\n this.chartHeight = 100;\n }\n this.results = result;\n });\n }\n\n results: ChartInputMutli[] = [\n {\n name: '---',\n series: [\n {\n name: '---',\n value: 0,\n extra: 0,\n },\n ],\n },\n ];\n\n private chartModel = new ChartDataModel();\n\n private subscription?: Subscription;\n\n constructor(\n myChartElement: ElementRef<any>,\n zone: NgZone,\n @Inject(PLATFORM_ID) platformId: string,\n cd: ChangeDetectorRef\n ) {\n super(myChartElement, zone, cd, platformId);\n }\n\n createExportedData() {\n return dataWithSeriesToCsv(this.results);\n }\n\n ngAfterContentChecked() {\n this.cd.detectChanges();\n }\n\n defaultDateTickFormatting(val: any): string {\n if (val instanceof Date) {\n return val.toLocaleTimeString();\n }\n return val;\n }\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n this.chartModel.destroyCurrentSub();\n }\n\n onSelect(event: OnChartSelectEvent) {\n /* Not implemented\n this.chartModel.showDetail(event, this.modalController, TapVariableDataPopupComponent);\n */\n }\n}\n","<div\n style=\"position: relative\"\n #containerRef\n [style.height.px]=\"chartHeight\"\n [ngClass]=\"legendPosition === 'below' ? 'belowLegend' : 'rightLegend'\"\n>\n <ngx-charts-heat-map\n [view]=\"[containerRef.offsetWidth, containerRef.offsetHeight]\"\n [scheme]=\"colorScheme\"\n [animations]=\"false\"\n [legend]=\"legend\"\n [legendPosition]=\"legendPosition\"\n [xAxis]=\"xAxis\"\n [yAxis]=\"yAxis\"\n [showXAxisLabel]=\"false\"\n [showYAxisLabel]=\"false\"\n [innerPadding]=\"[1.5, 1, 1, 1]\"\n [results]=\"results\"\n [xAxisTickFormatting]=\"xAxisTickFormatting\"\n (select)=\"onSelect($event)\"\n >\n </ngx-charts-heat-map>\n <ion-fab-button\n id=\"exportFabButton\"\n size=\"small\"\n tapExportData\n [dataToExport]=\"createExportedData.bind(this)\"\n [exportedFileName]=\"exportedFileName\"\n *ngIf=\"showExportButton\"\n >\n <ion-icon name=\"download\"></ion-icon>\n </ion-fab-button>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TapVariableHeatMapChartComponent } from './tap-variable-heat-map-chart.component';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\nimport { ExportDataModule } from '../../ui-directive/export-data.module';\nimport { IonicModule } from '@ionic/angular';\n\n@NgModule({\n declarations: [TapVariableHeatMapChartComponent],\n exports: [TapVariableHeatMapChartComponent],\n imports: [CommonModule, NgxChartsModule, ExportDataModule, IonicModule],\n})\nexport class TapVariableHeatMapChartModule {}\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n ViewChild,\n} from '@angular/core';\nimport { AlertController } from '@ionic/angular';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport { LegendPosition, LineChartComponent } from '@swimlane/ngx-charts';\nimport * as shape from 'd3-shape';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n Subscription,\n combineLatest,\n} from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n AppGenField,\n MonitoringAppGenComponent,\n} from '../../metadata/decorators';\nimport {\n ChartDataModel,\n ChartInputMutli,\n ChartInputStreamVar,\n} from '../ChartDataModel';\nimport { dataWithSeriesToCsv } from '../ExportDataFormat';\nimport {\n COLOR_SCHEME_SCHEMA,\n EXPORT_DATA_FILE_NAME_SCHEMA,\n LEGEND_POSITION_SCHEMA,\n LEGEND_TITLE_SCHEMA,\n SHOW_EXPORT_DATA_BUTTON_SCHEMA,\n SHOW_LEGEND_SCHEMA,\n SHOW_X_AXIS_LABEL_SCHEMA,\n SHOW_X_AXIS_SCHEMA,\n SHOW_Y_AXIS_LABEL_SCHEMA,\n SHOW_Y_AXIS_SCHEMA,\n TAP_VARIABLE_SCHEMA,\n X_AXIS_LABEL_SCHEMA,\n Y_AXIS_LABEL_SCHEMA,\n Y_SCALE_MAX_SCHEMA,\n Y_SCALE_MIN_SCHEMA,\n} from '../shared-schema';\nimport { OnChartSelectEvent } from '../shared-types';\n\nconst CURVES = {\n Basis: shape.curveBasis,\n BasisClosed: shape.curveBasisClosed,\n Bundle: shape.curveBundle.beta(1),\n Cardinal: shape.curveCardinal,\n CardinalClosed: shape.curveCardinalClosed,\n CatmullRom: shape.curveCatmullRom,\n CatmullRomClosed: shape.curveCatmullRomClosed,\n Linear: shape.curveLinear,\n Linear_Closed: shape.curveLinearClosed,\n MonotoneX: shape.curveMonotoneX,\n MonotoneY: shape.curveMonotoneY,\n Natural: shape.curveNatural,\n Step: shape.curveStep,\n Step_After: shape.curveStepAfter,\n Step_Before: shape.curveStepBefore,\n Default: shape.curveLinear,\n};\ninterface SerieItem {\n name: string | Date;\n value: number;\n}\n\nexport interface ChartInputData {\n name: string;\n series?: SerieItem[];\n}\n\nexport interface ChartInputStream {\n stream: Observable<number>;\n label: string;\n}\n\nconst DEFAULT_VALUE_COUNT_LIMIT = 30;\n\n@MonitoringAppGenComponent({\n constraints: {\n isNumber: 'YES',\n },\n})\n@Component({\n selector: 'tap-variable-line-chart',\n templateUrl: './tap-variable-line-chart.component.html',\n styleUrls: ['./tap-variable-line-chart.component.scss'],\n})\nexport class TapVariableLineChartComponent\n extends LineChartComponent\n implements OnDestroy, OnInit\n{\n id?: KeyType;\n\n @ViewChild(LineChartComponent) lineChart!: LineChartComponent;\n\n /**\n * @deprecated use\n */\n @Input()\n set linearCurve(curve: string) {\n this.predefinedCurve = curve;\n }\n\n @Input() set predefinedCurve(curveFctOrId: string) {\n if (Object.keys(CURVES).includes(curveFctOrId)) {\n this._curve = CURVES[curveFctOrId as keyof typeof CURVES];\n } else {\n this._curve = CURVES.Default;\n }\n }\n\n _curve: shape.CurveFactory | shape.CurveBundleFactory = CURVES.Default;\n\n @Input()\n legendTitle: string = '';\n\n /**\n * @deprecated use showLegend instead\n */\n @Input()\n legend: boolean = true;\n\n /**\n * CHARTS OPTIONS\n */\n /**\n * @deprecated use legend instead\n */\n @Input()\n set showLegend(v: boolean) {\n this.legend = v;\n }\n\n @Input()\n legendPosition: LegendPosition = LegendPosition.Below;\n\n @Input()\n xAxis: boolean = true;\n\n @Input()\n showXAxisLabel: boolean = false;\n\n @Input()\n xAxisLabel = '';\n\n @Input()\n yAxis: boolean = true;\n\n @Input()\n showYAxisLabel: boolean = false;\n\n @Input()\n yAxisLabel = '';\n\n @Input()\n yScaleMin: number = 0;\n\n @Input()\n showExportButton: boolean = false;\n\n @Input()\n exportedFileName?: string;\n\n @Input()\n set history(enable: boolean) {\n this._history.next(enable);\n }\n\n @Input()\n set valueCountLimit(limit: number | undefined) {\n if (limit === undefined) {\n limit = DEFAULT_VALUE_COUNT_LIMIT;\n }\n this._valueCountLimit.next(limit);\n }\n\n @Input() xAxisTickFormatting: (input: any) => string =\n this.defaultDateTickFormatting.bind(this);\n\n @Input()\n set label(indexOrArray: string | string[] | undefined | Function) {\n this.chartModel.initLabel(indexOrArray);\n }\n\n @Input()\n colorScheme = {\n domain: [\n '#5DADE2',\n '#9B59B6',\n '#F39C12',\n '#5AA454',\n '#A10A28',\n '#C7B42C',\n '#AAAAAA',\n ],\n };\n\n private _history = new BehaviorSubject<boolean>(true);\n\n private _valueCountLimit = new BehaviorSubject<number>(30);\n\n @Input()\n set variable(\n variableOrArray:\n | AbstractVariable<number | number[]>\n | AbstractVariable<number | number[]>[]\n | undefined\n ) {\n this.multiple = !!Array.isArray(variableOrArray);\n this.input = this.chartModel.initVariable(variableOrArray);\n }\n\n private _input = new BehaviorSubject<ChartInputStreamVar[]>([]);\n\n @Input()\n set input(inputs: ChartInputStreamVar[]) {\n this._input.next(inputs);\n }\n\n @Input() set data(results: ChartInputMutli[] | number | string) {\n // TODO | ChartInputSingle[]\n if (typeof results === 'number' || typeof results === 'string') {\n if (!this.results?.[0]) {\n this.results = [\n {\n name: 'Value',\n series: [],\n },\n ];\n }\n this.results[0].series.push({\n name: new Date(),\n value: results,\n extra: results,\n });\n } else if (results) {\n if (!Array.isArray(results)) {\n const result = results as ChartInputMutli;\n const existingSerieIndex = this.results.findIndex((r) => result.name);\n if (existingSerieIndex >= 0) {\n this.results[existingSerieIndex] = result;\n } else {\n this.results.push(result);\n }\n } else {\n this.results = results;\n }\n }\n }\n\n private destroyed = new Subject<void>();\n\n ngOnInit(): void {\n combineLatest([this._valueCountLimit, this._input, this._history])\n .pipe(takeUntil(this.destroyed))\n .subscribe(([valueCountLimit, input, history]) => {\n this.chartModel.destroyCurrentSub();\n if (this.multiple) {\n this.subscription = this.chartModel\n .defineMultiInputStream(input)\n .subscribe((result) => {\n this.results = result;\n });\n } else if (history && !this.multiple) {\n this.subscription = this.chartModel\n .defineInputStreamHistoryMultiLegend(input, valueCountLimit!!)\n .subscribe((result) => {\n this.results = result;\n });\n } else if (!this.multiple) {\n this.subscription = this.chartModel\n .defineInputStreamMulti(input, false, valueCountLimit!!)\n .subscribe((result) => {\n this.results = result as ChartInputMutli[];\n });\n }\n });\n }\n\n results: ChartInputMutli[] = [\n {\n name: 'Value',\n series: [],\n },\n ];\n\n private subscription?: Subscription;\n\n private multiple?: boolean;\n\n private chartModel: ChartDataModel = new ChartDataModel();\n\n constructor(\n myChartElement: ElementRef,\n zone: NgZone,\n cd: ChangeDetectorRef,\n @Inject(PLATFORM_ID) platformId: string,\n public alertController: AlertController\n ) {\n super(myChartElement, zone, cd, platformId);\n }\n\n createExportedData() {\n return dataWithSeriesToCsv(this.results);\n }\n\n defaultDateTickFormatting(val: any): string {\n if (val instanceof Date) {\n return val.toLocaleTimeString();\n }\n return val;\n }\n\n onSelect(event: OnChartSelectEvent) {\n /* Not implemented\n this.chartModel.showDetail(event, this.modalController, TapVariableDataPopupComponent);\n */\n }\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n this.chartModel.destroyCurrentSub();\n this.destroyed.next();\n }\n}\n","<div\n style=\"position: relative\"\n #containerRef\n class=\"chart-container\"\n [ngClass]=\"\n legendPosition === 'below' && legend ? 'belowLegend' : 'rightLegend'\n \"\n>\n <ngx-charts-line-chart\n [view]=\"[containerRef.offsetWidth, containerRef.offsetHeight]\"\n [scheme]=\"colorScheme\"\n [results]=\"results\"\n [gradient]=\"gradient\"\n [legendPosition]=\"legendPosition\"\n [xAxis]=\"xAxis\"\n [yAxis]=\"yAxis\"\n [legendTitle]=\"legendTitle\"\n [legend]=\"legend\"\n [showXAxisLabel]=\"showXAxisLabel\"\n [showYAxisLabel]=\"showYAxisLabel\"\n [timeline]=\"timeline\"\n [yAxisLabel]=\"yAxisLabel\"\n [xAxisLabel]=\"xAxisLabel\"\n [xAxisTickFormatting]=\"xAxisTickFormatting\"\n [curve]=\"_curve\"\n [autoScale]=\"autoScale\"\n [xScaleMin]=\"xScaleMin\"\n [xScaleMax]=\"xScaleMax\"\n [yScaleMin]=\"yScaleMin\"\n [yScaleMax]=\"yScaleMax\"\n [showGridLines]=\"showGridLines\"\n [animations]=\"animations\"\n [trimXAxisTicks]=\"trimXAxisTicks\"\n [maxXAxisTickLength]=\"maxXAxisTickLength\"\n [trimYAxisTicks]=\"trimYAxisTicks\"\n [maxYAxisTickLength]=\"maxYAxisTickLength\"\n [rangeFillOpacity]=\"rangeFillOpacity\"\n [roundDomains]=\"roundDomains\"\n [showRefLines]=\"showRefLines\"\n [showRefLabels]=\"showRefLabels\"\n [referenceLines]=\"referenceLines\"\n (select)=\"onSelect($event)\"\n >\n </ngx-charts-line-chart>\n <ion-fab-button\n id=\"exportFabButton\"\n size=\"small\"\n tapExportData\n [dataToExport]=\"createExportedData.bind(this)\"\n [exportedFileName]=\"exportedFileName\"\n *ngIf=\"showExportButton\"\n >\n <ion-icon name=\"download\"></ion-icon>\n </ion-fab-button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\n\nimport { IonicModule } from '@ionic/angular';\nimport { ExportDataModule } from '../../ui-directive/export-data.module';\nimport { TapVariableLineChartComponent } from './tap-variable-line-chart.component';\n\n@NgModule({\n declarations: [TapVariableLineChartComponent],\n exports: [TapVariableLineChartComponent],\n imports: [CommonModule, NgxChartsModule, IonicModule, ExportDataModule],\n})\nexport class TapVariableLineChartModule {}\n","import { Component, Input, OnDestroy } from '@angular/core';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n AppGenField,\n MonitoringAppGenComponent,\n} from '../../metadata/decorators';\nimport {\n DIGITS_INFO_SCHEMA,\n IONIC_COLOR_SCHEMA,\n TAP_VARIABLE_SCHEMA,\n VALUE_STREAM_FIELD,\n} from '../shared-schema';\n\n@MonitoringAppGenComponent({\n constraints: {\n isNumber: 'YES',\n },\n})\n@Component({\n selector: 'tap-variable-linear-gauge',\n templateUrl: './tap-variable-linear-gauge.component.html',\n styleUrls: ['./tap-variable-linear-gauge.component.scss'],\n})\nexport class TapVariableLinearGaugeComponent implements OnDestroy {\n dataValue = 0;\n dataPercent = 0;\n _variable?: AbstractVariable<any>;\n\n private destroyed = new Subject<void>();\n\n @Input()\n unit?: string;\n\n @Input()\n digitsInfo?: string;\n\n /**\n * @deprecated use unit instead\n */\n @Input() set units(v: string) {\n this.unit = v;\n }\n\n @Input()\n min?: number = 0;\n\n @Input()\n max?: number = 100;\n\n @Input()\n color = 'primary';\n\n @Input()\n textColor = 'dark';\n\n @Input()\n reversed = false;\n\n @Input()\n set value(v: number | string | undefined) {\n if (v === undefined || v === null) {\n v = 0;\n }\n if (typeof v === 'string') {\n v = parseInt(v, 10);\n if (isNaN(v)) {\n v = 0;\n }\n }\n if (typeof v !== 'number') {\n console.warn(\n `TapVariableLinearGauge: Invalid value type: ${typeof v}`,\n v\n );\n }\n this.setValue(v);\n }\n\n /**\n * @deprecated use [value]=\"...\" instead\n */\n @Input()\n set variable(variable: AbstractVariable<number | number[]> | undefined) {\n this._variable = variable;\n if (variable) {\n this.inputStream = variable.values;\n }\n }\n\n /**\n * @deprecated use [value]=\"...\" instead\n */\n @Input()\n set inputStream(inputs: Observable<any>) {\n inputs.pipe(takeUntil(this.destroyed)).subscribe((value) => {\n this.setValue(value);\n });\n }\n\n setValue(value: number | string | undefined | null) {\n if (this.min === null) {\n this.min = 0;\n }\n if (this.max == null) {\n this.max = 100;\n }\n if (typeof value === 'string') {\n value = parseInt(value);\n }\n if (typeof value !== 'number') {\n value = this.min!;\n }\n this.dataValue = value;\n if (value <= this.min!) {\n this.min = value;\n this.dataPercent = 0;\n } else if (value >= this.max) {\n this.dataPercent = 1;\n this.max = value;\n } else {\n this.dataPercent = (value - this.min!) / (this.max - this.min!);\n }\n }\n\n ngOnDestroy(): void {\n this.destroyed.next();\n }\n}\n","<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","import { NgModule } from '@angular/core';\nimport { CommonModule, DecimalPipe } from '@angular/common';\nimport { IonicModule } from '@ionic/angular';\nimport { TapVariableLinearGaugeComponent } from './tap-variable-linear-gauge.component';\n\n@NgModule({\n exports: [TapVariableLinearGaugeComponent],\n declarations: [TapVariableLinearGaugeComponent],\n providers: [DecimalPipe],\n imports: [CommonModule, IonicModule],\n})\nexport class TapVariableLinearGaugeModule {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n PLATFORM_ID,\n} from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport { NumberCardComponent } from '@swimlane/ngx-charts';\nimport { Subscription } from 'rxjs';\nimport { MonitoringAppGenComponent } from '../../metadata/decorators';\nimport {\n ChartDataModel,\n ChartInputSingle,\n ChartInputStreamVar,\n} from '../ChartDataModel';\nimport { OnChartSelectEvent } from '../shared-types';\nimport { TapVariableDataPopupComponent } from '../tap-variable-data-popup/tap-variable-data-popup.component';\n\n/**\n * @deprecated it will probably be removed as it's not very usefull\n */\n@MonitoringAppGenComponent({\n constraints: {\n isNumber: 'YES',\n },\n})\n@Component({\n selector: 'tap-variable-number-chart',\n templateUrl: './tap-variable-number-chart.component.html',\n styleUrls: ['./tap-variable-number-chart.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TapVariableNumberChartComponent\n extends NumberCardComponent\n implements AfterViewInit, OnDestroy\n{\n @Input()\n showDetails = false;\n\n @Input()\n cardColor = '#232837';\n\n @Input()\n showExportButton: boolean = false;\n\n @Input()\n exportedFileName?: string;\n\n @Input()\n set label(indexOrArray: string | string[] | undefined | Function) {\n this.chartModel.initLabel(indexOrArray);\n }\n\n @Input()\n colorScheme = {\n domain: [\n '#5AA454',\n '#E44D25',\n '#CFC0BB',\n '#7aa3e5',\n '#a8385d',\n '#aae3f5',\n '#5DADE2',\n '#9B59B6',\n '#F39C12',\n '#5AA454',\n '#A10A28',\n '#C7B42C',\n '#AAAAAA',\n ],\n };\n\n @Input()\n set variable(\n variableOrArray: AbstractVariable<number | number[]> | undefined\n ) {\n this.input = this.chartModel.initVariable(variableOrArray);\n }\n\n @Input()\n set input(inputs: ChartInputStreamVar[]) {\n this.subscription = this.chartModel\n .defineInputStreamSingle(inputs, false, 0)\n .subscribe((result: ChartInputSingle[]) => {\n let index = 0;\n for (const item of result as ChartInputSingle[]) {\n if (!this.results[index]) {\n if (item.value !== this.results[index].value) {\n this.results = result as ChartInputSingle[];\n }\n } else {\n this.results = result as ChartInputSingle[];\n }\n index++;\n }\n this.resizeComponent();\n this.loaded = true;\n });\n }\n\n results: ChartInputSingle[] = [\n {\n name: '---',\n value: 0,\n extra: 0,\n },\n ];\n\n private subscription?: Subscription;\n\n innerWidth!: number;\n innerHeight?: number;\n loaded = false;\n\n private chartModel: ChartDataModel = new ChartDataModel();\n\n constructor(\n myChartElement: ElementRef<any>,\n zone: NgZone,\n cd: ChangeDetectorRef,\n @Inject(PLATFORM_ID) platformId: string,\n private modalController: ModalController\n ) {\n super(myChartElement, zone, cd, platformId);\n }\n\n onSelect(event: OnChartSelectEvent) {\n if (typeof event === 'object') {\n if (this.showDetails) {\n this.chartModel\n .showDetail(\n event,\n this.modalController,\n TapVariableDataPopupComponent\n )\n .catch((err) => {\n console.warn('Failed to show value detail', err);\n });\n }\n }\n }\n\n ngAfterViewInit() {\n this.innerWidth = window.innerWidth;\n this.resizeComponent();\n }\n\n resizeComponent() {\n if (this.innerWidth <= 400) {\n this.innerWidth = 400;\n }\n this.innerHeight = (150 * this.results.length) / (this.innerWidth / 300);\n if (this.results.length === 1) {\n this.innerHeight = 150;\n } else {\n if (this.innerHeight <= 210) {\n this.innerHeight = 210;\n }\n }\n this.cd.detectChanges();\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(event: any) {\n this.innerWidth = window.innerWidth;\n this.resizeComponent();\n }\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n this.chartModel.destroyCurrentSub();\n }\n}\n","<div #containerRef style=\"width: 100%; overflow: auto; position: relative\">\n <ngx-charts-number-card\n #charts\n [view]=\"[containerRef.offsetWidth, innerHeight]\"\n [scheme]=\"colorScheme\"\n [results]=\"results\"\n [cardColor]=\"cardColor\"\n (select)=\"onSelect($event)\"\n >\n </ngx-charts-number-card>\n <ion-fab-button\n id=\"exportFabButton\"\n size=\"small\"\n tapExportData\n *ngIf=\"showExportButton\"\n [exportedFileName]=\"exportedFileName\"\n [dataToExport]=\"results\"\n >\n <ion-icon name=\"download\"></ion-icon>\n </ion-fab-button>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TapVariableNumberChartComponent } from './tap-variable-number-chart.component';\nimport { TapVariableDataPopupModule } from '../tap-variable-data-popup/tap-variable-data-popup.module';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\nimport { ExportDataModule } from '../../ui-directive/export-data.module';\nimport { IonicModule } from '@ionic/angular';\n\n@NgModule({\n declarations: [TapVariableNumberChartComponent],\n exports: [TapVariableNumberChartComponent],\n imports: [\n CommonModule,\n NgxChartsModule,\n TapVariableDataPopupModule,\n ExportDataModule,\n IonicModule,\n ],\n})\nexport class TapVariableNumberChartModule {}\n","import { Component, Input } from '@angular/core';\nimport { InlineEditorComponent } from '@iotize/ionic';\nimport {\n MonitoringAppGenComponent,\n AppGenField,\n} from '../../metadata/decorators';\nimport { MonitoringVariableValueComponent } from '../monitoring-variable-value/monitoring-variable-value.component';\nimport { VALUE_STREAM_FIELD } from '../shared-schema';\n\n@MonitoringAppGenComponent({\n constraints: {\n isArray: 'NO',\n isNumber: 'YES',\n },\n events: [\n {\n name: 'submit',\n dataType: 'string',\n },\n ],\n})\n@Component({\n selector: 'tap-variable-number',\n templateUrl:\n '../monitoring-variable-value/monitoring-variable-value.component.html',\n styleUrls: [\n '../monitoring-variable-value/monitoring-variable-value.component.scss',\n ],\n})\nexport class TapVariableNumberComponent extends MonitoringVariableValueComponent {\n inputOptions: InlineEditorComponent.NumberOptions = {\n type: 'number',\n };\n\n @Input()\n set min(value: number | undefined) {\n this.inputOptions.min = value;\n }\n\n @Input()\n set max(value: number | undefined) {\n this.inputOptions.max = value;\n }\n\n @Input()\n set value(value: number) {\n this._value = value;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule, DecimalPipe } from '@angular/common';\nimport { TapVariableNumberComponent } from './tap-variable-number.component';\nimport { IonicModule } from '@ionic/angular';\nimport {\n InlineEditorModule,\n TapValueEditorContainerModule,\n} from '@iotize/ionic';\n\n@NgModule({\n declarations: [TapVariableNumberComponent],\n exports: [TapVariableNumberComponent],\n providers: [DecimalPipe],\n imports: [\n CommonModule,\n IonicModule,\n InlineEditorModule,\n TapValueEditorContainerModule,\n ],\n})\nexport class TapVariableNumberModule {}\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport { PieChartComponent } from '@swimlane/ngx-charts';\nimport { BehaviorSubject, Subject, Subscription, combineLatest } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MonitoringAppGenComponent } from '../../metadata/decorators';\nimport {\n ChartDataModel,\n ChartInputSingle,\n ChartInputStreamVar,\n} from '../ChartDataModel';\nimport { OnChartSelectEvent } from '../shared-types';\nimport { TapVariableDataPopupComponent } from '../tap-variable-data-popup/tap-variable-data-popup.component';\n\n@MonitoringAppGenComponent({\n constraints: {\n isNumber: 'YES',\n isArray: 'YES',\n },\n})\n@Component({\n selector: 'tap-variable-pie-chart-advanced',\n templateUrl: './tap-variable-pie-chart-advanced.component.html',\n styleUrls: ['./tap-variable-pie-chart-advanced.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TapVariablePieChartAdvancedComponent\n extends PieChartComponent\n implements AfterViewChecked, OnDestroy, OnInit\n{\n @Input()\n showDetails: boolean = false;\n\n @Input()\n showExportButton: boolean = false;\n\n @Input()\n exportedFileName?: string;\n\n @Input()\n set variable(\n variableOrArray: AbstractVariable<number | number[]> | undefined\n ) {\n this.input = this.chartModel.initVariable(variableOrArray);\n }\n\n @Input()\n set history(enable: boolean) {\n this._history.next(enable);\n }\n\n @Input()\n set valueCountLimit(limit: number | undefined) {\n if (limit === undefined) {\n limit = 30;\n }\n this._valueCountLimit.next(limit);\n }\n\n @Input()\n set label(indexOrArray: string | string[] | undefined | Function) {\n this.chartModel.initLabel(indexOrArray);\n }\n\n @Input()\n colorScheme = {\n domain: [\n '#5DADE2',\n '#9B59B6',\n '#F39C12',\n '#5AA454',\n '#A10A28',\n '#C7B42C',\n '#AAAAAA',\n ],\n };\n\n private _history = new BehaviorSubject<boolean>(true);\n\n private _valueCountLimit = new BehaviorSubject<number>(30);\n\n private _input = new BehaviorSubject<ChartInputStreamVar[]>([]);\n\n @Input()\n set input(inputs: ChartInputStreamVar[]) {\n this._input.next(inputs);\n }\n\n private destroyed = new Subject<void>();\n\n ngOnInit(): void {\n combineLatest([this._valueCountLimit, this._input, this._history])\n .pipe(takeUntil(this.destroyed))\n .subscribe(([valueCountLimit, input, history]) => {\n this.chartModel.destroyCurrentSub();\n this.subscription = this.chartModel\n .defineInputStreamSingle(input, history, valueCountLimit)\n .subscribe((result: ChartInputSingle[]) => {\n this.results = result as ChartInputSingle[];\n });\n this.cd.detectChanges();\n });\n }\n\n results: ChartInputSingle[] = [\n {\n name: '---',\n value: 0,\n extra: 0,\n },\n ];\n\n private chartModel: ChartDataModel = new ChartDataModel();\n\n private subscription?: Subscription;\n\n constructor(\n myChartElement: ElementRef<any>,\n zone: NgZone,\n cd: ChangeDetectorRef,\n @Inject(PLATFORM_ID) platformId: string,\n private modalController: ModalController\n ) {\n super(myChartElement, zone, cd, platformId);\n }\n\n ngAfterViewChecked() {\n this.cd.detectChanges();\n }\n\n onSelect(event: OnChartSelectEvent) {\n if (typeof event === 'object') {\n if (this.showDetails) {\n this.chartModel\n .showDetail(\n event,\n this.modalController,\n TapVariableDataPopupComponent\n )\n .catch((err) => {\n console.log(err);\n });\n }\n }\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n this.chartModel.destroyCurrentSub();\n }\n}\n","<div #containerRef style=\"width: 100%; position: relative\">\n <ngx-charts-advanced-pie-chart\n #charts\n [view]=\"[containerRef.offsetWidth, containerRef.offsetHeight]\"\n [scheme]=\"colorScheme\"\n [results]=\"results\"\n (select)=\"onSelect($event)\"\n >\n </ngx-charts-advanced-pie-chart>\n <ion-fab-button\n id=\"exportFabButton\"\n size=\"small\"\n tapExportData\n [dataToExport]=\"results\"\n [exportedFileName]=\"exportedFileName\"\n *ngIf=\"showExportButton\"\n >\n <ion-icon name=\"download\"></ion-icon>\n </ion-fab-button>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TapVariablePieChartAdvancedComponent } from './tap-variable-pie-chart-advanced.component';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\nimport { TapVariableDataPopupModule } from '../tap-variable-data-popup/tap-variable-data-popup.module';\nimport { IonicModule } from '@ionic/angular';\nimport { ExportDataModule } from '../../ui-directive/export-data.module';\n\n@NgModule({\n declarations: [TapVariablePieChartAdvancedComponent],\n exports: [TapVariablePieChartAdvancedComponent],\n imports: [\n CommonModule,\n NgxChartsModule,\n TapVariableDataPopupModule,\n IonicModule,\n ExportDataModule,\n ],\n})\nexport class TapVariablePieChartAdvancedModule {}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n PLATFORM_ID,\n} from '@angular/core';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport { PieChartComponent } from '@swimlane/ngx-charts';\nimport { Subscription } from 'rxjs';\nimport { MonitoringAppGenComponent } from '../../metadata/decorators';\nimport {\n ChartDataModel,\n ChartInputSingle,\n ChartInputStreamVar,\n} from '../ChartDataModel';\nimport { OnChartSelectEvent } from '../shared-types';\n\n@MonitoringAppGenComponent({\n constraints: {\n isNumber: 'YES',\n },\n})\n@Component({\n selector: 'tap-variable-pie-chart-grid',\n templateUrl: './tap-variable-pie-chart-grid.component.html',\n styleUrls: ['./tap-variable-pie-chart-grid.component.scss'],\n})\nexport class TapVariablePieChartGridComponent\n extends PieChartComponent\n implements AfterContentInit, OnDestroy\n{\n results: ChartInputSingle[] = [\n {\n name: '---',\n value: 0,\n extra: 0,\n },\n ];\n\n innerWidth!: number;\n innerHeight?: number;\n\n private chartModel: ChartDataModel = new ChartDataModel();\n\n private subscription?: Subscription;\n\n @Input()\n colorScheme = {\n domain: [\n '#5DADE2',\n '#9B59B6',\n '#F39C12',\n '#5AA454',\n '#A10A28',\n '#C7B42C',\n '#AAAAAA',\n ],\n };\n\n @Input()\n showExportButton: boolean = false;\n\n @Input()\n exportedFileName?: string;\n\n @Input()\n set label(indexOrArray: string | string[] | undefined | Function) {\n this.chartModel.initLabel(indexOrArray);\n }\n\n @Input()\n set variable(\n variableOrArray: AbstractVariable<number | number[]> | undefined\n ) {\n this.input = this.chartModel.initVariable(variableOrArray);\n }\n\n @Input()\n set input(inputs: ChartInputStreamVar[]) {\n this.subscription = this.chartModel\n .defineInputStreamSingle(inputs, false, 0)\n .subscribe((result: ChartInputSingle[]) => {\n let index = 0;\n for (const item of result as ChartInputSingle[]) {\n if (this.results[index] !== undefined) {\n if (item.value !== this.results[index].value) {\n this.results = result as ChartInputSingle[];\n }\n } else {\n this.results = result as ChartInputSingle[];\n }\n index++;\n }\n this.resizeComponent();\n });\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(event: any) {\n this.innerWidth = window.innerWidth;\n this.resizeComponent();\n }\n\n constructor(\n myChartElement: ElementRef<any>,\n zone: NgZone,\n cd: ChangeDetectorRef,\n @Inject(PLATFORM_ID) platformId: string,\n private cdr: ChangeDetectorRef\n ) {\n super(myChartElement, zone, cd, platformId);\n }\n\n ngAfterContentInit() {\n this.innerWidth = window.innerWidth;\n this.resizeComponent();\n this.cdr.detectChanges();\n }\n\n onSelect(event: OnChartSelectEvent) {\n /* Not implemented\n this.chartModel.showDetail(event, this.modalController, TapVariableDataPopupComponent);\n */\n }\n\n resizeComponent() {\n if (this.innerWidth <= 400) {\n this.innerWidth = 400;\n }\n this.innerHeight = (150 * this.results.length) / (this.innerWidth / 300);\n if (this.innerHeight <= 150) {\n this.innerHeight = 150;\n }\n this.cdr.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n this.chartModel.destroyCurrentSub();\n }\n}\n","<div #containerRef style=\"width: 100%; overflow: auto; position: relative\">\n <ngx-charts-pie-grid\n #charts\n [view]=\"[containerRef.offsetWidth, innerHeight]\"\n [scheme]=\"colorScheme\"\n [animations]=\"false\"\n [results]=\"results\"\n (select)=\"onSelect($event)\"\n >\n </ngx-charts-pie-grid>\n <ion-fab-button\n id=\"exportFabButton\"\n size=\"small\"\n tapExportData\n *ngIf=\"showExportButton\"\n [exportedFileName]=\"exportedFileName\"\n [dataToExport]=\"results\"\n >\n <ion-icon name=\"download\"></ion-icon>\n </ion-fab-button>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TapVariablePieChartGridComponent } from './tap-variable-pie-chart-grid.component';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\nimport { IonicModule } from '@ionic/angular';\nimport { ExportDataModule } from '../../ui-directive/export-data.module';\n\n@NgModule({\n declarations: [TapVariablePieChartGridComponent],\n exports: [TapVariablePieChartGridComponent],\n imports: [CommonModule, NgxChartsModule, IonicModule, ExportDataModule],\n})\nexport class TapVariablePieChartGridModule {}\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n PLATFORM_ID,\n} from '@angular/core';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport { PolarChartComponent, LegendPosition } from '@swimlane/ngx-charts';\nimport { Subscription } from 'rxjs';\nimport {\n MonitoringAppGenComponent,\n AppGenField,\n} from '../../metadata/decorators';\nimport {\n ChartDataModel,\n ChartInputMutli,\n ChartInputStreamVar,\n} from '../ChartDataModel';\nimport { dataWithSeriesToCsv } from '../ExportDataFormat';\nimport {\n COLOR_SCHEME_SCHEMA,\n EXPORT_DATA_FILE_NAME_SCHEMA,\n LEGEND_POSITION_SCHEMA,\n SHOW_EXPORT_DATA_BUTTON_SCHEMA,\n TAP_VARIABLE_SCHEMA,\n} from '../shared-schema';\nimport { OnChartSelectEvent } from '../shared-types';\n\n@MonitoringAppGenComponent({\n constraints: {\n isNumber: 'YES',\n },\n})\n@Component({\n selector: 'tap-variable-polar-radar-chart',\n templateUrl: './tap-variable-polar-radar-chart.component.html',\n styleUrls: ['./tap-variable-polar-radar-chart.component.scss'],\n})\nexport class TapVariablePolarRadarChartComponent\n extends PolarChartComponent\n implements OnDestroy\n{\n @Input()\n colorScheme = {\n domain: [\n '#5DADE2',\n '#9B59B6',\n '#F39C12',\n '#5AA454',\n '#A10A28',\n '#C7B42C',\n '#AAAAAA',\n ],\n };\n\n @Input()\n legend: boolean = true;\n\n @Input()\n legendPosition: LegendPosition = LegendPosition.Below;\n\n @Input()\n showExportButton: boolean = false;\n\n @Input()\n exportedFileName?: string;\n\n @Input()\n xAxis: boolean = true;\n\n @Input()\n showXAxisLabel: boolean = true;\n\n @Input()\n yAxis: boolean = true;\n\n @Input()\n showYAxisLabel: boolean = true;\n\n @Input()\n valueCountLimit = 4;\n\n @Input()\n set variable(\n variableOrArray:\n | AbstractVariable<number | number[]>\n | AbstractVariable<number | number[]>[]\n | undefined\n ) {\n this.input = this.chartModel.initVariable(variableOrArray);\n }\n\n @Input()\n set input(inputs: ChartInputStreamVar[]) {\n this.subscription = this.chartModel\n .defineMultiInputStream(inputs)\n .subscribe((result) => {\n this.results = result as ChartInputMutli[];\n this.loaded = true;\n });\n }\n\n loaded: boolean = false;\n\n results: ChartInputMutli[] = [\n {\n name: 'Value',\n series: [],\n },\n ];\n\n private chartModel = new ChartDataModel();\n\n private subscription?: Subscription;\n\n constructor(\n myChartElement: ElementRef<any>,\n zone: NgZone,\n @Inject(PLATFORM_ID) platformId: string,\n cd: ChangeDetectorRef\n ) {\n super(myChartElement, zone, cd, platformId);\n }\n\n createExportedData() {\n return dataWithSeriesToCsv(this.results);\n }\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n this.chartModel.destroyCurrentSub();\n }\n\n onSelect(event: OnChartSelectEvent) {\n /* Not implemented\n this.chartModel.showDetail(event, this.modalController, TapVariableDataPopupComponent);\n */\n }\n}\n","<div\n #containerRef\n [ngClass]=\"legendPosition === 'below' ? 'belowLegend' : 'rightLegend'\"\n style=\"position: relative\"\n>\n <ngx-charts-polar-chart\n *ngIf=\"loaded\"\n #polarChart\n [view]=\"[containerRef.offsetWidth, containerRef.offsetHeight]\"\n [scheme]=\"colorScheme\"\n [legend]=\"legend\"\n [legendPosition]=\"legendPosition\"\n [showXAxisLabel]=\"showXAxisLabel\"\n [showYAxisLabel]=\"showYAxisLabel\"\n [xAxis]=\"xAxis\"\n [yAxis]=\"yAxis\"\n [results]=\"results\"\n (select)=\"onSelect($event)\"\n >\n </ngx-charts-polar-chart>\n <ion-fab-button\n id=\"exportFabButton\"\n size=\"small\"\n tapExportData\n *ngIf=\"showExportButton\"\n [exportedFileName]=\"exportedFileName\"\n [dataToExport]=\"createExportedData.bind(this)\"\n >\n <ion-icon name=\"download\"></ion-icon>\n </ion-fab-button>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\nimport { TapVariablePolarRadarChartComponent } from './tap-variable-polar-radar-chart.component';\nimport { IonicModule } from '@ionic/angular';\nimport { ExportDataModule } from '../../ui-directive/export-data.module';\n\n@NgModule({\n declarations: [TapVariablePolarRadarChartComponent],\n exports: [TapVariablePolarRadarChartComponent],\n imports: [CommonModule, NgxChartsModule, IonicModule, ExportDataModule],\n})\nexport class TapVariablePolarRadarChartModule {}\n","import {\n Component,\n HostListener,\n Input,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport { ActionSheetController, Platform } from '@ionic/angular';\nimport { TapValueEditorContainerComponent } from '@iotize/ionic';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MonitoringAppGenComponent } from '../../metadata/decorators';\n\n@MonitoringAppGenComponent({\n constraints: {\n isArray: 'NO',\n isNumber: 'YES',\n },\n events: [\n {\n name: 'submit',\n dataType: 'void',\n },\n {\n dataType: 'void',\n name: 'mouseUp',\n },\n {\n dataType: 'void',\n name: 'mouseDown',\n },\n ],\n})\n@Component({\n selector: 'tap-variable-push-button',\n templateUrl: './tap-variable-push-button.component.html',\n styleUrls: ['./tap-variable-push-button.component.scss'],\n})\nexport class TapVariablePushButtonComponent implements OnDestroy {\n @ViewChild('ctx') ctx!: TapValueEditorContainerComponent;\n\n private _handleMouseUp?: (\n this: Document,\n ev: DocumentEventMap['mouseup']\n ) => any;\n\n @HostListener('touchstart') onTouchStart() {\n this._onTouchStartOrMouseDown();\n }\n\n @HostListener('mousedown') onMouseDown() {\n if (this.platform.is('desktop')) {\n this._onTouchStartOrMouseDown();\n if (this._handleMouseUp) {\n document.removeEventListener('mouseup', this._handleMouseUp);\n }\n this._handleMouseUp = () => {\n if (this._handleMouseUp) {\n document.removeEventListener('mouseup', this._handleMouseUp);\n }\n this._onTouchEndOrMouseUp();\n };\n document.addEventListener('mouseup', this._handleMouseUp);\n }\n }\n\n @HostListener('touchend') onTouchEnd() {\n this._onTouchEndOrMouseUp();\n }\n\n private _onTouchStartOrMouseDown() {\n if (isConfiguredValue(this.mouseDownValue))\n this.writeValue(this.mouseDownValue);\n }\n\n private _onTouchEndOrMouseUp() {\n if (isConfiguredValue(this.mouseUpValue))\n this.writeValue(this.mouseUpValue);\n }\n\n @Input()\n mouseDownValue?: number = undefined;\n\n @Input()\n mouseUpValue?: number = undefined;\n\n @Input()\n value = 1;\n\n @Input()\n buttonText = 'Write';\n\n @Input()\n size = 'default';\n\n @Input()\n color: string = 'primary';\n\n @Input()\n icon?: string;\n\n @Input()\n iconPosition: string = 'start';\n\n @Input()\n fill?: string;\n\n @Input()\n expand?: string;\n\n @Input()\n strong = false;\n\n @Input()\n shape?: boolean;\n\n @Input()\n confirm = false;\n\n @Input()\n confirmMessage = 'Are you sure ?';\n\n @Input()\n editable = true;\n\n /**\n * @deprecated\n */\n @Input()\n set defineValueOnClick(v: number) {\n this.value = v;\n }\n\n @Input() set fieldError(err: Error) {\n this.error = err;\n }\n\n @Input()\n set variable(variable: AbstractVariable<any | any[]> | undefined) {\n this._variable = variable;\n }\n\n private destroyed = new Subject<void>();\n\n public error?: Error;\n pendingSubmitValue: any;\n loading = false;\n _variable?: AbstractVariable<any>;\n\n constructor(\n public actionSheetController: ActionSheetController,\n private platform: Platform\n ) {}\n\n ngAfterViewInit() {\n this.ctx?.valueToDisplay\n ?.pipe(takeUntil(this.destroyed))\n .subscribe((newValue) => {});\n }\n\n ngOnDestroy() {\n this.destroyed.next();\n }\n\n async onClick() {\n if (!isConfiguredValue(this.value)) {\n return;\n }\n if (this.confirm) {\n const actionSheet = await this.actionSheetController.create({\n header: this.confirmMessage,\n buttons: [\n {\n text: 'Confirm',\n icon: 'checkmark',\n handler: () => {\n this.writeValue(this.value);\n },\n },\n {\n text: 'Cancel',\n icon: 'close',\n },\n ],\n });\n await actionSheet.present();\n } else {\n this.writeValue(this.value);\n }\n }\n\n public async writeValue(valueToWrite: number) {\n this.loading = true;\n await this.ctx.notifyValueChange(valueToWrite, true);\n this.loading = false;\n }\n}\n\nfunction isConfiguredValue(value: number | undefined): value is number {\n return value !== undefined && value !== null;\n}\n","<tap-value-editor-container #ctx [variable]=\"_variable\">\n <ion-button\n [disabled]=\"loading || !editable\"\n [color]=\"color\"\n [size]=\"size\"\n [fill]=\"fill\"\n [strong]=\"strong\"\n [shape]=\"shape\"\n [expand]=\"expand\"\n [ngClass]=\"{ 'full-width': expand === 'block' || expand === 'full' }\"\n (click)=\"onClick()\"\n >\n <span *ngIf=\"icon\" [slot]=\"iconPosition\">\n \n <app-common-icon [image]=\"icon\"> </app-common-icon>\n \n </span>\n <ion-text *ngIf=\"buttonText\">{{ buttonText }}</ion-text>\n </ion-button>\n</tap-value-editor-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TapVariablePushButtonComponent } from './tap-variable-push-button.component';\nimport { IonicModule } from '@ionic/angular';\nimport { TapValueEditorContainerModule } from '@iotize/ionic';\nimport { IconModule } from '@iotize/app-common';\n\n@NgModule({\n declarations: [TapVariablePushButtonComponent],\n exports: [TapVariablePushButtonComponent],\n imports: [\n CommonModule,\n IonicModule,\n TapValueEditorContainerModule,\n IconModule,\n ],\n})\nexport class TapVariablePushButtonModule {}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { TapValueEditorContainerComponent } from '@iotize/ionic';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport {\n AppGenField,\n MonitoringAppGenComponent,\n} from '../../metadata/decorators';\nimport {\n EVENT_STREAM_FIELD,\n ICON_OR_SVG_SCHEMA,\n IONIC_COLOR_SCHEMA,\n TAP_VARIABLE_SCHEMA,\n VALUE_STREAM_FIELD,\n} from '../shared-schema';\n\n@MonitoringAppGenComponent({\n constraints: {\n isArray: 'YES',\n isNumber: 'YES',\n },\n events: [\n {\n name: 'submit',\n dataType: 'number',\n },\n ],\n})\n@Component({\n selector: 'tap-variable-range',\n templateUrl: './tap-variable-range.component.html',\n styleUrls: ['./tap-variable-range.component.scss'],\n})\nexport class TapVariableRangeComponent {\n @Input()\n set variable(variable: AbstractVariable<number> | undefined) {\n this._variable = variable;\n }\n\n @Input()\n editable = true;\n\n @Input()\n writeValueForEveryChange: boolean = false;\n\n @Input()\n min = 0;\n\n @Input()\n max = 100;\n\n @Input()\n step = 1;\n\n @Input()\n color = 'primary';\n\n @Input()\n pin = true;\n\n @Input()\n snaps = true;\n\n @Input()\n ticks = true;\n\n @Input()\n debounce = 0;\n\n @Input()\n leftIcon?: string;\n\n @Input()\n leftIconColor?: string;\n\n @Input()\n rightIcon?: string;\n\n @Input()\n rightIconColor?: string;\n\n @Input()\n value?: number;\n\n @Output()\n valueChange = new EventEmitter<any>();\n\n _variable?: AbstractVariable<number>;\n\n @ViewChild('ctx') ctx?: TapValueEditorContainerComponent;\n\n constructor() {}\n\n onValueChange(newValue: number) {\n // const newValue = $event.detail.value;\n this.valueChange.emit(newValue);\n this.ctx?.notifyValueChange(newValue);\n }\n}\n","<tap-value-editor-container #ctx [variable]=\"_variable\" [value]=\"value\">\n <monitoring-range\n [disabled]=\"!editable || (ctx.loadingChange | async)\"\n [inputStream]=\"ctx.valueToDisplay\"\n [ticks]=\"ticks\"\n [pin]=\"pin\"\n [snaps]=\"snaps\"\n [max]=\"max\"\n [min]=\"min\"\n [step]=\"step\"\n [color]=\"color\"\n [debounce]=\"debounce\"\n [writeValueForEveryChange]=\"writeValueForEveryChange\"\n [leftIcon]=\"leftIcon\"\n [leftIconColor]=\"leftIconColor\"\n [rightIconColor]=\"rightIconColor\"\n [rightIcon]=\"rightIcon\"\n style=\"width: 100%\"\n (onValueChanged)=\"onValueChange($event)\"\n >\n <ng-template monitoringRangeContent>\n <ion-label slot=\"start\">{{ min }}</ion-label>\n <ion-label slot=\"end\">{{ max }}</ion-label>\n </ng-template>\n </monitoring-range>\n</tap-value-editor-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { TapValueEditorContainerModule } from '@iotize/ionic';\nimport { MonitoringRangeModule } from '../monitoring-range/monitoring-range.module';\nimport { TapVariableRangeComponent } from './tap-variable-range.component';\n\n@NgModule({\n declarations: [TapVariableRangeComponent],\n exports: [TapVariableRangeComponent],\n imports: [\n CommonModule,\n IonicModule,\n MonitoringRangeModule,\n TapValueEditorContainerModule,\n ],\n})\nexport class TapVariableRangeModule {}\n","import { ChangeDetectorRef, Component, Input, OnDestroy } from '@angular/core';\nimport { CurrentDeviceService, PendingCallManager } from '@iotize/ionic';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport { Observable, Subscription } from 'rxjs';\nimport { AppGenField } from '../../metadata/decorators';\nimport { TAP_VARIABLE_SCHEMA } from '../shared-schema';\n\nexport interface PictureData {\n index: number;\n src: string;\n}\n\n@Component({\n selector: 'tap-variable-switch-picture',\n templateUrl: './tap-variable-switch-picture.component.html',\n styleUrls: ['./tap-variable-switch-picture.component.scss'],\n})\nexport class TapVariableSwitchPictureComponent implements OnDestroy {\n state = 0;\n currentSrc?: string;\n\n subscription?: Subscription;\n pendingCallManager: PendingCallManager;\n pendingSubmitValue: any;\n\n public error?: Error;\n\n loaded = false;\n\n _variable?: AbstractVariable<any>;\n\n @Input() set fieldError(err: Error) {\n this.error = err;\n }\n\n get pending(): boolean {\n return this.pendingCallManager.pendingCall !== undefined;\n }\n\n @Input() pictures!: PictureData[];\n\n @Input() stateText = 'State';\n\n @Input()\n editable?: boolean;\n\n @Input()\n set variable(variable: AbstractVariable<any | any[]> | undefined) {\n this._variable = variable;\n if (variable) {\n this.inputStream = variable.values;\n }\n }\n\n @Input()\n set inputStream(inputs: Observable<any>) {\n this.subscription = inputs.subscribe((value) => {\n this.state = value;\n this.pictures.filter((picture) => {\n if (picture.index === this.state) {\n this.currentSrc = picture.src;\n this.loaded = true;\n }\n });\n });\n }\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n tapService: CurrentDeviceService\n ) {\n this.pendingCallManager = PendingCallManager.create(tapService);\n }\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n this.pendingCallManager.destroy();\n }\n\n switchPicture() {\n if (this.editable) {\n this.state++;\n if (this.state === this.pictures.length + 1) {\n this.state = 1;\n }\n this.pictures.filter((value) => {\n if (value.index === this.state) {\n this.pendingCallManager\n .exec(async () =>\n this._variable?.write(value.src).then(() => {\n this.changeDetectorRef.detectChanges();\n })\n )\n .catch((err) => {\n if (!this.pending) {\n this.fieldError = err;\n } else {\n this.pendingSubmitValue = value.src;\n }\n this.changeDetectorRef.detectChanges();\n });\n this.currentSrc = value.src;\n }\n });\n }\n }\n}\n","<ion-item-sliding [disabled]=\"!error\">\n <ion-item>\n <ion-thumbnail slot=\"start\">\n <img *ngIf=\"loaded\" (click)=\"switchPicture()\" [src]=\"currentSrc\" />\n <ion-spinner\n style=\"height: 100%; width: 100%\"\n *ngIf=\"!loaded\"\n name=\"crescent\"\n color=\"primary\"\n ></ion-spinner>\n </ion-thumbnail>\n <ion-label>{{ stateText }} : {{ state }}</ion-label>\n <ion-icon\n slot=\"end\"\n *ngIf=\"error\"\n name=\"alert-outline\"\n color=\"danger\"\n ></ion-icon>\n </ion-item>\n\n <ion-item-options side=\"end\" style=\"max-width: 85%\">\n <ion-item-option color=\"danger\">\n <ion-text *ngIf=\"error\" color=\"light\" style=\"max-width: 100%\">\n <span style=\"text-transform: none !important\">{{ error.message }}</span>\n </ion-text>\n </ion-item-option>\n </ion-item-options>\n</ion-item-sliding>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IonicModule } from '@ionic/angular';\nimport { TapVariableSwitchPictureComponent } from './tap-variable-switch-picture.component';\n\n@NgModule({\n declarations: [TapVariableSwitchPictureComponent],\n exports: [TapVariableSwitchPictureComponent],\n imports: [CommonModule, IonicModule],\n})\nexport class TapVariableSwitchPictureModule {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n} from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport { ColumnMode } from '@swimlane/ngx-datatable';\nimport { BehaviorSubject, Subject, combineLatest } from 'rxjs';\nimport { switchMap, takeUntil } from 'rxjs/operators';\nimport { MonitoringAppGenComponent } from '../../metadata/decorators';\nimport {\n ChartDataModel,\n ChartInputSingle,\n ChartInputStreamVar,\n ChartInputTable,\n} from '../ChartDataModel';\nimport { OnChartSelectEvent } from '../shared-types';\nimport { TapVariableDataPopupComponent } from '../tap-variable-data-popup/tap-variable-data-popup.component';\n\nconst TABLE_LIMIT = 10;\n\n@MonitoringAppGenComponent({})\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'tap-variable-table',\n templateUrl: './tap-variable-table.component.html',\n styleUrls: ['./tap-variable-table.component.scss'],\n})\nexport class TapVariableTableComponent implements AfterViewInit, OnDestroy {\n rows: ChartInputSingle[] | ChartInputTable[] = [];\n\n columns!: any[];\n darkModeStatus?: boolean;\n\n private chartModel: ChartDataModel = new ChartDataModel();\n\n @Input()\n loadingIndicator = true;\n\n @Input()\n reorderable = false;\n\n @Input()\n columnMode = ColumnMode.force;\n\n @Input()\n limit: number = TABLE_LIMIT;\n\n @Input()\n valueLabel = 'Value';\n\n @Input()\n nameLabel?: string;\n\n @Input()\n set history(enable: boolean) {\n this._history.next(enable);\n }\n\n @Input()\n set valueCountLimit(limit: number | undefined) {\n if (limit === undefined) {\n limit = 30;\n }\n this._valueCountLimit.next(limit);\n }\n\n @Input()\n showExportButton: boolean = false;\n\n @Input()\n exportedFileName?: string;\n\n @Input()\n set label(indexOrArray: string | string[] | undefined | Function) {\n this.chartModel.initLabel(indexOrArray);\n }\n\n private _history = new BehaviorSubject<boolean>(true);\n\n private _valueCountLimit = new BehaviorSubject<number>(30);\n\n private destroyed = new Subject<void>();\n\n private _input = new BehaviorSubject<ChartInputStreamVar[]>([]);\n\n private multiple: boolean = false;\n\n @Input()\n set variable(\n variableOrArray:\n | AbstractVariable<number | number[]>\n | AbstractVariable<number | number[]>[]\n | undefined\n ) {\n this.multiple = !!Array.isArray(variableOrArray);\n this.input = this.chartModel.initVariable(variableOrArray);\n }\n\n @Input()\n set input(inputs: ChartInputStreamVar[]) {\n this._input.next(inputs);\n }\n\n columnsPushForEachKey(key: string) {\n console.log('DEBUG columnsPushForEachKey', key, this.columns);\n if (this.history && key === 'name') {\n this.columns.push({\n prop: key,\n name: !this.nameLabel\n ? this.history\n ? 'Time'\n : 'Name'\n : this.nameLabel,\n sortable: true,\n });\n } else if (key === 'value') {\n this.columns.push({ prop: key, name: this.valueLabel, sortable: true });\n } else if (key !== 'extra') {\n this.columns.push({ prop: key, name: key, sortable: true });\n }\n }\n\n constructor(\n public modalController: ModalController,\n private cdr: ChangeDetectorRef\n ) {}\n\n createExportedData() {\n return this.rows;\n }\n\n ngAfterViewInit(): void {\n this.darkModeStatus =\n window.matchMedia &&\n window.matchMedia('(prefers-color-scheme: dark)').matches;\n combineLatest([this._valueCountLimit, this._input, this._history])\n .pipe(\n takeUntil(this.destroyed),\n switchMap(([valueCountLimit, input, history]) => {\n this.chartModel.destroyCurrentSub();\n if (this.multiple) {\n return this.chartModel.defineMultiInputStream(input);\n } else {\n return this.chartModel.defineInputStreamSingle(\n input,\n history,\n valueCountLimit,\n true\n );\n }\n })\n )\n .subscribe((result) => {\n this.resultToTableData(result);\n });\n }\n\n resultToTableData(result: any) {\n this.rows = result;\n this.columns = [];\n const jsonData = JSON.parse(JSON.stringify(this.rows[0]));\n for (const key of Object.keys(jsonData)) {\n if (key === 'series') {\n jsonData['series'].forEach((k: { name: string }) =>\n this.columnsPushForEachKey(k.name)\n );\n } else {\n this.columnsPushForEachKey(key);\n }\n }\n this.loadingIndicator = false;\n this.cdr.detectChanges();\n }\n\n onSelect(event: OnChartSelectEvent) {\n if (typeof event === 'object') {\n this.chartModel\n .showDetail(event, this.modalController, TapVariableDataPopupComponent)\n .catch((err) => {\n console.warn(err);\n });\n }\n }\n\n ngOnDestroy(): void {\n this.chartModel.destroyCurrentSub();\n this.destroyed.next();\n this.destroyed.complete();\n }\n}\n","<div style=\"position: relative\">\n <ngx-datatable\n [ngClass]=\"darkModeStatus ? 'dark' : 'material'\"\n [rows]=\"rows\"\n [loadingIndicator]=\"loadingIndicator\"\n [columns]=\"columns\"\n [columnMode]=\"columnMode\"\n [headerHeight]=\"50\"\n [footerHeight]=\"50\"\n [rowHeight]=\"50\"\n [reorderable]=\"reorderable\"\n [scrollbarH]=\"true\"\n [limit]=\"limit\"\n >\n </ngx-datatable>\n <!--\n [targetMarkerTemplate]=\"targetMarkerTemplate\"\n <ng-template #targetMarkerTemplate let-class=\"class\">\n <div [ngClass]=\"class\">\n <div class=\"icon datatable-icon-down\"></div>\n <div class=\"icon datatable-icon-up\"></div>\n </div>\n </ng-template>\n -->\n\n <ion-fab-button\n id=\"exportFabButton\"\n size=\"small\"\n tapExportData\n [dataToExport]=\"createExportedData.bind(this)\"\n [exportedFileName]=\"exportedFileName\"\n *ngIf=\"showExportButton\"\n >\n <ion-icon name=\"download\"></ion-icon>\n </ion-fab-button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\nimport { ExportDataModule } from '../../ui-directive/export-data.module';\nimport { TapVariableTableComponent } from './tap-variable-table.component';\n\n@NgModule({\n declarations: [TapVariableTableComponent],\n exports: [TapVariableTableComponent],\n imports: [\n CommonModule,\n NgxDatatableModule.forRoot({\n messages: {\n emptyMessage: 'No data to display', // Message to show when array is presented, but contains no values\n totalMessage: 'total', // Footer total message\n selectedMessage: 'selected', // Footer selected message\n },\n }),\n IonicModule,\n ExportDataModule,\n ],\n})\nexport class TapVariableTableModule {}\n","export function stringToRegex(str: string): RegExp {\n const matchResult = str.match(/\\/(.+)\\/(.*)/);\n if (!matchResult) {\n throw new Error(\n `Invalid regex string format \"${str}\". Regex should be surrended with '/' character.`\n );\n }\n return new RegExp(matchResult[1], matchResult[2]);\n}\n","import { Component, Input } from '@angular/core';\nimport { InlineEditorComponent } from '@iotize/ionic';\nimport {\n MonitoringAppGenComponent,\n AppGenField,\n} from '../../metadata/decorators';\nimport { stringToRegex } from '../../utility';\nimport { MonitoringVariableValueComponent } from '../monitoring-variable-value/monitoring-variable-value.component';\nimport { VALUE_STREAM_FIELD } from '../shared-schema';\n\n@MonitoringAppGenComponent({\n constraints: {\n isArray: 'NO',\n },\n events: [\n {\n name: 'submit',\n dataType: 'string',\n },\n ],\n})\n@Component({\n selector: 'tap-variable-text',\n templateUrl:\n '../monitoring-variable-value/monitoring-variable-value.component.html',\n styleUrls: [\n '../monitoring-variable-value/monitoring-variable-value.component.scss',\n ],\n})\nexport class TapVariableTextComponent extends MonitoringVariableValueComponent {\n inputOptions: InlineEditorComponent.TextOptions = {\n type: 'text',\n };\n\n @Input()\n set placeholder(value: string | undefined) {\n this.inputOptions.placeholder = value;\n }\n\n @Input()\n set minLength(value: number | undefined) {\n this.inputOptions.minLength = value || 0;\n }\n\n @Input()\n set maxLength(value: number | undefined) {\n this.inputOptions.maxLength = value || 0;\n }\n\n @Input()\n set pattern(regex: RegExp | string) {\n if (typeof regex === 'string') {\n regex = stringToRegex(regex);\n }\n this.inputOptions.pattern = regex;\n }\n\n @Input()\n value?: string;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule, DecimalPipe } from '@angular/common';\nimport { TapVariableTextComponent } from './tap-variable-text.component';\nimport { IonicModule } from '@ionic/angular';\nimport {\n InlineEditorModule,\n TapValueEditorContainerModule,\n} from '@iotize/ionic';\n\n@NgModule({\n declarations: [TapVariableTextComponent],\n exports: [TapVariableTextComponent],\n providers: [DecimalPipe],\n imports: [\n CommonModule,\n IonicModule,\n InlineEditorModule,\n TapValueEditorContainerModule,\n ],\n})\nexport class TapVariableTextModule {}\n","import { Component, Input, OnDestroy } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\n\nexport interface TextCardComponentOptions {\n initialValue: any;\n}\n\n@Component({\n selector: 'monitoring-text-card',\n templateUrl: './text-card.component.html',\n styleUrls: ['./text-card.component.scss'],\n})\nexport class TextCardComponent implements OnDestroy {\n @Input() options: TextCardComponentOptions = {\n initialValue: '0',\n };\n\n @Input() title?: string;\n\n @Input() subtitle?: string;\n\n @Input() template?: string;\n\n @Input() unit?: string;\n\n @Input() icon?: string;\n\n @Input() color = 'dark';\n\n subscription?: Subscription;\n\n @Input()\n set inputStream(stream: Observable<any>) {\n if (stream) {\n this.subscription?.unsubscribe();\n this.subscription = stream.subscribe({\n next: (value) => {\n if (this.template) {\n value = this.template.replace('#value#', value);\n }\n this.value = value;\n },\n error: (err) => {\n this.error = err;\n },\n });\n }\n }\n\n value = this.options.initialValue;\n\n error?: Error;\n\n constructor() {}\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n }\n}\n","<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","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TextCardComponent } from './text-card.component';\nimport { IonicModule } from '@ionic/angular';\n\n@NgModule({\n declarations: [TextCardComponent],\n exports: [TextCardComponent],\n imports: [CommonModule, IonicModule],\n})\nexport class TextCardModule {}\n","import { Component, Input, OnDestroy } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { getAbstractVariableOrError, LibError } from '@iotize/ionic';\nimport { AbstractVariable, TapVariable } from '@iotize/tap/data';\nimport { Subscription } from 'rxjs';\nimport { TapVariableButton } from '../tap-variable-buttons/tap-variable-buttons.component';\n\ntype CardType =\n | 'gauge'\n | 'text'\n | 'chart'\n | 'switch'\n | 'buttons'\n | 'range'\n | 'select';\n\n@Component({\n selector: 'app-variable-card',\n templateUrl: './variable-card.component.html',\n styleUrls: ['./variable-card.component.scss'],\n})\nexport class VariableCardComponent implements OnDestroy {\n waitForSubmit = false;\n\n @Input() cardType: CardType = 'text';\n\n @Input() cardTypes: CardType[] = [\n // 'chart',\n 'gauge',\n 'switch',\n 'text',\n 'buttons',\n 'range',\n 'select',\n ];\n\n @Input() editMode = false;\n\n @Input() monitor = true;\n\n @Input() showStartStopMonitoring = false;\n\n @Input() unit = '';\n\n @Input() bundleName = '...';\n\n error?: Error;\n value: any = 'Unknown';\n refreshValues = false;\n\n monitoringButtons: TapVariableButton[] = [0, 1, 2, 3, 4, 5].map((v) => {\n return {\n label: `${v}`,\n value: v,\n };\n });\n\n selectOptions = [0, 1, 2, 3, 4, 5].map((v) => {\n return {\n key: v,\n text: `Value ${v}`,\n };\n });\n\n public _variable?: AbstractVariable<any>;\n private _subscription?: Subscription;\n // private _switchButtonSubscription?: Subscription;\n\n @Input() set variable(variable: AbstractVariable<any>) {\n // console.log('VariableCardComponent', 'SET VARIABLE', variable);\n this._variable = variable;\n if (this._subscription) {\n this._subscription.unsubscribe();\n }\n this._subscription = variable.values.subscribe({\n next: (value) => {\n if (this.refreshValues) {\n this.value = value;\n }\n },\n error: (error) => {\n // console.warn(`Monitoring error: `, error);\n this.error = error;\n },\n complete: () => {\n // console.warn('VariableCardComponent', 'values observable is complete')\n },\n });\n }\n\n get variable(): AbstractVariable<any> {\n return getAbstractVariableOrError(this._variable);\n }\n\n constructor(public router: Router) {}\n\n get variableConfig(): TapVariable.Config | undefined {\n if (this._variable instanceof TapVariable) {\n return this._variable.context.config;\n }\n return undefined;\n }\n\n // editConfig() {\n // this.router.navigate(['/device/monitoring/add']);\n // }\n\n async switchButtonToggleAction(checked: boolean) {\n if (!this._variable) {\n throw LibError.componentArgumentRequired(\n 'VariableCardComponent',\n 'variable'\n );\n }\n const value = checked ? 1 : 0;\n await this._variable.write(value);\n // .catch((error) => {\n // console.warn(`Cannot write ${this._variable.identifier()}: ${error}`)\n // this.error = error;\n // })\n }\n\n // onEditEvent(event: MonitoringEditTextEvent) {\n // console.log('EDIT EVENT => ', event);\n // switch (event.type) {\n // case 'CLOSE':\n // this.editMode = false;\n // break;\n // case 'WRITE_SUCCESS':\n // this.editMode = false;\n // break;\n // }\n // }\n\n ngOnDestroy() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n }\n // if (this._switchButtonSubscription) {\n // this._switchButtonSubscription.unsubscribe();\n // }\n }\n\n onCardTypeChange($event: CustomEvent<{ value: CardType }>) {\n // console.log('onCardTypeChange', $event);\n // this.cardType = $event.detail.value;\n }\n\n toggleMonitoring() {\n // if (this.monitor) {\n // if (!this._variable) {\n // throw LibError.componentArgumentRequired('VariableCardComponent', 'variable');\n // }\n this.refreshValues = !this.refreshValues;\n // if (this.refreshValues) {\n // // console.log('Start monitoring with period: ', this.monitoringPeriod);\n // this._variable.monitor().start({\n // forceChange: false,\n // period: this.monitoringPeriod\n // });\n // } else {\n // // console.log('Pause monitoring');\n // this._variable.monitor().pause();\n // }\n // }\n }\n}\n","<ion-card *ngIf=\"_variable\">\n <ion-item lines=\"none\">\n <ion-label slot=\"start\">{{ bundleName }}</ion-label>\n <ion-label slot=\"end\">#{{ _variable.id }}</ion-label>\n </ion-item>\n <!-- <ion-item>\n <ion-icon *ngIf=\"icon\" name=\"{{icon}}\" slot=\"start\"></ion-icon>\n <ion-label>{{variable.identifier() || variableConfig.id }}</ion-label>\n </ion-item> -->\n <ion-card-content *ngIf=\"monitor\">\n <ng-container [ngSwitch]=\"cardType\">\n <ion-item *ngSwitchCase=\"'text'\" lines=\"none\" class=\"ion-no-padding\">\n <monitoring-variable-value\n style=\"margin: auto\"\n [lines]=\"'none'\"\n [variable]=\"variable\"\n [editable]=\"editMode\"\n ></monitoring-variable-value>\n <span slot=\"end\" *ngIf=\"unit\" class=\"unit\">{{ unit }}</span>\n </ion-item>\n <ion-item *ngSwitchCase=\"'select'\" lines=\"none\" class=\"ion-no-padding\">\n <tap-variable-select\n style=\"margin: auto\"\n [lines]=\"'none'\"\n [variable]=\"variable\"\n [options]=\"selectOptions\"\n [editable]=\"editMode\"\n ></tap-variable-select>\n <span slot=\"end\" *ngIf=\"unit\" class=\"unit\">{{ unit }}</span>\n </ion-item>\n <tap-variable-toggle\n *ngSwitchCase=\"'switch'\"\n [variable]=\"_variable\"\n ></tap-variable-toggle>\n <tap-variable-buttons\n *ngSwitchCase=\"'buttons'\"\n [variable]=\"variable\"\n [buttons]=\"monitoringButtons\"\n ></tap-variable-buttons>\n <tap-variable-range\n *ngSwitchCase=\"'range'\"\n [variable]=\"_variable\"\n [pin]=\"true\"\n [snaps]=\"true\"\n [ticks]=\"true\"\n [min]=\"0\"\n [max]=\"100\"\n ></tap-variable-range>\n <ion-text color=\"danger\" *ngSwitchDefault>\n <ion-icon name=\"alert\"></ion-icon> Unknown card type {{ cardType }}\n </ion-text>\n </ng-container>\n </ion-card-content>\n <ion-card-content *ngIf=\"error\">\n <ion-text color=\"danger\">{{ error }}</ion-text>\n </ion-card-content>\n <!--\n <ion-item>\n <ion-select\n [(ngModel)]=\"cardType\"\n okText=\"Select\"\n cancelText=\"Dismiss\"\n (ionChange)=\"onCardTypeChange($event)\"\n >\n <ion-select-option\n *ngFor=\"let cardType of cardTypes\"\n value=\"{{ cardType }}\"\n >{{ cardType }}</ion-select-option\n >\n </ion-select>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"toggleMonitoring()\" *ngIf=\"showStartStopMonitoring\">\n <ion-icon *ngIf=\"!playMonitoring\" name=\"play\"></ion-icon>\n <ion-icon *ngIf=\"playMonitoring\" name=\"pause\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"editMode = !editMode\">\n <ion-icon *ngIf=\"!editMode\" name=\"create\"></ion-icon> <span *ngIf=\"!editMode\"></span>\n <ion-icon *ngIf=\"editMode\" name=\"close\"></ion-icon> \n </ion-button>\n <ion-button (click)=\"editConfig()\">\n \n <ion-icon name=\"cog\"></ion-icon> \n </ion-button>\n </ion-buttons>\n </ion-item>\n -->\n</ion-card>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { IonicModule } from '@ionic/angular';\nimport { GaugeCardModule } from '../gauge-card/gauge-card.module';\nimport { MonitoringVariableValueModule } from '../monitoring-variable-value/monitoring-variable-value.module';\nimport { TapVariableButtonsModule } from '../tap-variable-buttons/tap-variable-buttons.module';\nimport { TapVariableLineChartModule } from '../tap-variable-line-chart/tap-variable-line-chart.module';\nimport { TapVariableRangeModule } from '../tap-variable-range/tap-variable-range.module';\nimport { TapVariableSelectModule } from '../tap-variable-select/tap-variable-select.module';\nimport { TapVariableTextModule } from '../tap-variable-text/tap-variable-text.module';\nimport { TapVariableToggleModule } from '../tap-variable-toggle/tap-variable-toggle.module';\nimport { VariableCardComponent } from './variable-card.component';\n\n@NgModule({\n declarations: [VariableCardComponent],\n exports: [VariableCardComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n IonicModule,\n GaugeCardModule,\n MonitoringVariableValueModule,\n TapVariableRangeModule,\n TapVariableLineChartModule,\n TapVariableButtonsModule,\n TapVariableToggleModule,\n TapVariableTextModule,\n TapVariableSelectModule,\n ],\n})\nexport class VariableCardModule {}\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'dashboard-component-chart-container',\n templateUrl: './chart-container.component.html',\n styleUrls: ['./chart-container.component.scss'],\n})\nexport class ChartContainerComponent {\n @Input() legendPosition?: string;\n\n @Input() legend?: boolean;\n\n @ViewChild('containerRef') containerRef?: ElementRef;\n\n constructor() {}\n\n get offsetWidth() {\n return this.containerRef?.nativeElement.offsetWidth || 0;\n }\n\n get offsetHeight() {\n return this.containerRef?.nativeElement.offsetHeight || 0;\n }\n}\n","<div\n #containerRef\n style=\"position: relative\"\n class=\"chart-container\"\n [ngClass]=\"\n legendPosition === 'below' && legend ? 'belowLegend' : 'rightLegend'\n \"\n>\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ChartContainerComponent } from './chart-container.component';\nimport { IonicModule } from '@ionic/angular';\n\n@NgModule({\n declarations: [ChartContainerComponent],\n exports: [ChartContainerComponent],\n imports: [CommonModule, IonicModule],\n})\nexport class ChartContainerModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { LibCommonModule } from '@iotize/ionic';\nimport { BarChartStackedModule } from './bar-chart-stacked/bar-chart-stacked.module';\nimport { GaugeCardModule } from './gauge-card/gauge-card.module';\nimport { MonitoringActionsModule } from './monitoring-actions/monitoring-actions.module';\nimport { MonitoringEditTextModule } from './monitoring-edit-text/monitoring-edit-text.module';\nimport { MonitoringRangeModule } from './monitoring-range/monitoring-range.module';\nimport { MonitoringTableModule } from './monitoring-table/monitoring-table.module';\nimport { MonitoringVariableValueModule } from './monitoring-variable-value/monitoring-variable-value.module';\nimport { TapVariableBarChartGroupModule } from './tap-variable-bar-chart-group/tap-variable-bar-chart-group.module';\nimport { TapVariableBarChartModule } from './tap-variable-bar-chart/tap-variable-bar-chart.module';\nimport { TapVariableBitsEditorModule } from './tap-variable-bits-editor/tap-variable-bits-editor.module';\nimport { TapVariableButtonsModule } from './tap-variable-buttons/tap-variable-buttons.module';\nimport { TapVariableColorPickerModule } from './tap-variable-color-picker/tap-variable-color-picker.module';\nimport { TapVariableContextModule } from './tap-variable-context/tap-variable-context.module';\nimport { TapVariableDataPopupModule } from './tap-variable-data-popup/tap-variable-data-popup.module';\nimport { TapVariableDateTimePickerModule } from './tap-variable-date-time-picker/tap-variable-date-time-picker.module';\nimport { TapVariableGaugeModule } from './tap-variable-gauge/tap-variable-gauge.module';\nimport { TapVariableGpioModeModule } from './tap-variable-gpio-mode/tap-variable-gpio-mode.module';\nimport { TapVariableGpioValueModule } from './tap-variable-gpio-value/tap-variable-gpio-value.module';\nimport { TapVariableHeatMapChartModule } from './tap-variable-heat-map-chart/tap-variable-heat-map-chart.module';\nimport { TapVariableLineChartModule } from './tap-variable-line-chart/tap-variable-line-chart.module';\nimport { TapVariableLinearGaugeModule } from './tap-variable-linear-gauge/tap-variable-linear-gauge.module';\nimport { TapVariableNumberChartModule } from './tap-variable-number-chart/tap-variable-number-chart.module';\nimport { TapVariableNumberModule } from './tap-variable-number/tap-variable-number.module';\nimport { TapVariablePieChartAdvancedModule } from './tap-variable-pie-chart-advanced/tap-variable-pie-chart-advanced.module';\nimport { TapVariablePieChartGridModule } from './tap-variable-pie-chart-grid/tap-variable-pie-chart-grid.module';\nimport { TapVariablePolarRadarChartModule } from './tap-variable-polar-radar-chart/tap-variable-polar-radar-chart.module';\nimport { TapVariablePushButtonModule } from './tap-variable-push-button/tap-variable-push-button.module';\nimport { TapVariableRangeModule } from './tap-variable-range/tap-variable-range.module';\nimport { TapVariableSelectModule } from './tap-variable-select/tap-variable-select.module';\nimport { TapVariableSwitchPictureModule } from './tap-variable-switch-picture/tap-variable-switch-picture.module';\nimport { TapVariableTableModule } from './tap-variable-table/tap-variable-table.module';\nimport { TapVariableTextModule } from './tap-variable-text/tap-variable-text.module';\nimport { TapVariableToggleModule } from './tap-variable-toggle/tap-variable-toggle.module';\nimport { TextCardModule } from './text-card/text-card.module';\nimport { VariableCardModule } from './variable-card/variable-card.module';\nimport { ChartContainerModule } from './chart-container/chart-container.module';\nimport { NgxChartsModule, PieChartModule } from '@swimlane/ngx-charts';\n\n@NgModule({\n declarations: [],\n exports: [\n LibCommonModule,\n MonitoringActionsModule,\n MonitoringVariableValueModule,\n GaugeCardModule,\n MonitoringEditTextModule,\n MonitoringTableModule,\n VariableCardModule,\n MonitoringRangeModule,\n BarChartStackedModule,\n TextCardModule,\n ChartContainerModule,\n TapVariableButtonsModule,\n TapVariableBarChartModule,\n TapVariableBarChartGroupModule,\n TapVariableLineChartModule,\n TapVariableContextModule,\n TapVariableDataPopupModule,\n TapVariableDateTimePickerModule,\n TapVariableGaugeModule,\n TapVariableGpioModeModule,\n TapVariableGpioValueModule,\n TapVariableHeatMapChartModule,\n TapVariableNumberChartModule,\n TapVariableNumberModule,\n TapVariablePieChartAdvancedModule,\n TapVariablePieChartGridModule,\n TapVariablePolarRadarChartModule,\n TapVariableRangeModule,\n TapVariableSelectModule,\n TapVariableSwitchPictureModule,\n TapVariableTableModule,\n TapVariableTextModule,\n TapVariableToggleModule,\n TapVariableColorPickerModule,\n TapVariableLinearGaugeModule,\n TapVariablePushButtonModule,\n TapVariableBitsEditorModule,\n PieChartModule,\n NgxChartsModule,\n ],\n imports: [CommonModule, IonicModule],\n})\nexport class TapMonitoringComponentsModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { bufferToHexString } from '@iotize/common/byte-converter';\n\n@Pipe({\n name: 'hexstring',\n})\nexport class HexstringPipe implements PipeTransform {\n transform(value: Uint8Array, args?: any): any {\n return bufferToHexString(value);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TapMonitoringComponentsModule } from './ui-components/tap-monitoring-components.module';\nimport { IonicModule } from '@ionic/angular';\nimport { HexstringPipe } from './ui-pipes/hexstring.pipe';\nimport { TapMonitoringSettingsModule } from './tap-monitoring-settings/tap-monitoring-settings.module';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\n\n@NgModule({\n declarations: [HexstringPipe],\n imports: [CommonModule, IonicModule],\n exports: [\n TapMonitoringComponentsModule,\n TapMonitoringSettingsModule,\n NgxChartsModule,\n HexstringPipe,\n ],\n})\nexport class TapMonitoringModule {}\n","import {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { bufferToHexString } from '@iotize/common/byte-converter';\nimport { IonicDataLogger, SyncableDatalogPacket } from '@iotize/ionic';\n\n@Component({\n selector: 'tap-datalog-table',\n templateUrl: './tap-datalog-table.component.html',\n styleUrls: ['./tap-datalog-table.component.scss'],\n})\nexport class TapDatalogTableComponent {\n _packets?: IonicDataLogger.PacketInfo[];\n\n @Input() dataColumns: { key: string; title: string }[] = [];\n\n @Input() date = true;\n\n @Input() sync = true;\n\n @Output() onSyncEvent = new EventEmitter<SyncableDatalogPacket>();\n\n constructor(protected changeRefDetector: ChangeDetectorRef) {}\n\n @Input() set dataLogger(dataLogger: IonicDataLogger | undefined) {\n if (dataLogger) {\n dataLogger.stream.subscribe(\n (p: IonicDataLogger.PacketInfo<Record<string, any>>) => {\n if (this.dataColumns.length === 0) {\n this.initColumnsFromPacket(p);\n }\n if (!this._packets) {\n this._packets = [];\n }\n this._packets.push(p);\n this.changeRefDetector.detectChanges();\n }\n );\n }\n }\n\n @Input() set packets(packets: IonicDataLogger.PacketInfo[] | undefined) {\n this._packets = packets;\n if (packets && this.dataColumns.length === 0 && packets.length > 0) {\n this.initColumnsFromPacket(packets[0]);\n }\n }\n\n @Output() onRetrySync = new EventEmitter<SyncableDatalogPacket>();\n\n get packets() {\n return this._packets;\n }\n\n packetVariableValue(packet: IonicDataLogger.PacketInfo, key: string): string {\n let value = packet.decodedData[key];\n if (value instanceof Uint8Array) {\n value = `0x${bufferToHexString(value)}`;\n }\n return value;\n }\n\n packetId(packet: IonicDataLogger.PacketInfo): number {\n return packet.meta.packetId;\n }\n\n packetDate(packet: IonicDataLogger.PacketInfo): Date {\n return packet.meta.logTime;\n }\n\n isPacketSync(packetInfo: SyncableDatalogPacket | IonicDataLogger.PacketInfo) {\n if (!('syncInfo' in packetInfo)) {\n return false;\n }\n return packetInfo.syncInfo && packetInfo.syncInfo.isSync;\n }\n\n syncPacket(packetInfo: SyncableDatalogPacket) {\n this.onRetrySync.emit(packetInfo);\n }\n\n private initColumnsFromPacket(\n p: IonicDataLogger.PacketInfo<Record<string, any>>\n ) {\n this.dataColumns = Object.keys(p.decodedData).map((key) => {\n return {\n key: key,\n title: key,\n };\n });\n }\n}\n","<table *ngIf=\"dataColumns\" class=\"table\" mat-table>\n <thead>\n <th *ngIf=\"date\"><ion-icon name=\"time\"></ion-icon> Date</th>\n <th><ion-icon name=\"document\"></ion-icon> ID</th>\n <th *ngFor=\"let dataColumn of dataColumns\">\n <ion-icon name=\"analytics\"></ion-icon> {{ dataColumn.title }}\n </th>\n <th *ngIf=\"sync\"><ion-icon name=\"cloud\"></ion-icon> Cloud sync</th>\n </thead>\n <tbody>\n <tr *ngFor=\"let packet of packets\">\n <td *ngIf=\"date\">\n {{ packetDate(packet) | date: 'short' }}\n </td>\n <td>\n {{ packetId(packet) }}\n </td>\n <td *ngFor=\"let info of dataColumns\">\n {{ packetVariableValue(packet, info.key) }}\n </td>\n <td *ngIf=\"sync\">\n <ion-text *ngIf=\"isPacketSync(packet)\" color=\"success\">\n <ion-icon [name]=\"'checkmark'\"></ion-icon> Sync\n </ion-text>\n <ion-text *ngIf=\"!isPacketSync(packet)\" color=\"danger\">\n <ion-icon [name]=\"'alert'\"></ion-icon> Not sync \n <a (click)=\"syncPacket(packet)\"> retry </a>\n </ion-text>\n <!-- <ion-buttons slot=\"end\">\n <ion-button (click)=\"syncPacket(packet)\" [color]=\"isPacketSync(packet) ? 'success': ''\" [disabled]=\"isPacketSync(packet)\">\n <ion-icon [name]=\"isPacketSync(packet) ? 'checkmark' : 'sync'\"></ion-icon>\n Sync\n </ion-button>\n <ion-button (click)=\"decodePacket(syncInfo)\">\n <ion-icon name=\"sync\"></ion-icon>\n Decode\n </ion-button> \n <ion-button (click)=\"detail(syncInfo)\">\n <ion-icon name=\"more\"></ion-icon>\n Detail\n </ion-button> \n </ion-buttons>-->\n </td>\n </tr>\n </tbody>\n</table>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TapDatalogTableComponent } from './tap-datalog-table.component';\nimport { IonicModule } from '@ionic/angular';\n\n@NgModule({\n declarations: [TapDatalogTableComponent],\n exports: [TapDatalogTableComponent],\n imports: [CommonModule, IonicModule],\n})\nexport class TapDatalogTableModule {}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'tap-label-value',\n templateUrl: './label-value.component.html',\n styleUrls: ['./label-value.component.scss'],\n})\nexport class LabelValueComponent implements OnInit {\n @Input() unit?: string;\n @Input() color?: string;\n @Input() valueStyle?: string;\n @Input() value?: any;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","<ion-label\n *ngIf=\"value; else loadingTemplate\"\n [color]=\"color\"\n [ngStyle]=\"valueStyle\"\n >{{ value }}<span *ngIf=\"unit\">{{ unit }}</span></ion-label\n>\n<ng-template #loadingTemplate>\n <ion-spinner [color]=\"color\" name=\"dots\"></ion-spinner>\n</ng-template>\n","import { DecimalPipe } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n Input,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport { TapValueEditorContainerComponent } from '@iotize/ionic';\nimport { AbstractVariable } from '@iotize/tap/data';\nimport { Subject } from 'rxjs';\nimport { map, shareReplay, takeUntil } from 'rxjs/operators';\nimport {\n AppGenField,\n MonitoringAppGenComponent,\n} from '../../metadata/decorators';\nimport {\n DIGITS_INFO_SCHEMA,\n ICON_OR_SVG_SCHEMA,\n IONIC_COLOR_SCHEMA,\n TAP_VARIABLE_SCHEMA,\n} from '../shared-schema';\n\n/**\n * @deprecated not usefull anymore with new dashboard editor\n */\n@MonitoringAppGenComponent({\n constraints: {\n isNumber: 'YES',\n isArray: 'NO',\n },\n})\n@Component({\n selector: 'tap-variable-image-and-value',\n templateUrl: './tap-variable-image-and-value.component.html',\n styleUrls: ['./tap-variable-image-and-value.component.scss'],\n})\nexport class TapVariableImageAndValueComponent\n implements AfterViewInit, OnDestroy\n{\n @ViewChild('ctx') ctx?: TapValueEditorContainerComponent;\n\n private _destroyed = new Subject<void>();\n\n _variable?: AbstractVariable<number>;\n valueToDisplay: any;\n\n @Input()\n image?: string;\n\n @Input()\n imageSize: string = '90px';\n\n @Input()\n valuePosition: 'top' | 'bottom' | 'left' | 'right' = 'bottom';\n\n @Input()\n unit: string = '°C';\n\n @Input()\n imageColor?: string;\n\n @Input()\n labelColor?: string;\n\n @Input()\n editable: boolean = false;\n\n @Input()\n set variable(variable: AbstractVariable<number>) {\n if (variable !== undefined) {\n this._variable = variable;\n this._destroyed.next();\n }\n }\n\n @Input()\n valueStyle: any = {\n 'font-size': '1.4em',\n };\n\n @Input()\n digitsInfo?: string;\n\n constructor(private decimalPipe: DecimalPipe) {}\n\n ngOnDestroy(): void {\n this._destroyed.next();\n }\n\n ngAfterViewInit() {\n this.ctx?.valueToDisplay\n ?.pipe(\n takeUntil(this._destroyed),\n map((value) => {\n return this.digitsInfo\n ? this.decimalPipe.transform(value, this.digitsInfo)\n : value;\n }),\n shareReplay(1)\n )\n .subscribe((v) => {\n this.valueToDisplay = v;\n });\n }\n\n async onEditMode() {\n if (this.editable) {\n await this.ctx?.enableEditMode();\n }\n }\n}\n","<tap-value-editor-container\n #ctx\n [variable]=\"_variable\"\n [modalEdition]=\"editable\"\n [lines]=\"'none'\"\n [button]=\"editable\"\n (click)=\"onEditMode()\"\n>\n <div class=\"div-icon-and-value\">\n <div class=\"top-label\" *ngIf=\"valuePosition === 'top'\">\n <tap-label-value\n [color]=\"labelColor\"\n [valueStyle]=\"valueStyle\"\n [unit]=\"unit\"\n [value]=\"valueToDisplay\"\n >\n </tap-label-value>\n </div>\n <div class=\"div-icon-and-value-center\">\n <tap-label-value\n *ngIf=\"valuePosition === 'left'\"\n class=\"left-label\"\n [color]=\"labelColor\"\n [valueStyle]=\"valueStyle\"\n [unit]=\"unit\"\n [value]=\"valueToDisplay\"\n >\n </tap-label-value>\n <app-common-icon\n [color]=\"imageColor\"\n [image]=\"image\"\n [imageSize]=\"imageSize\"\n >\n </app-common-icon>\n <tap-label-value\n *ngIf=\"valuePosition === 'right'\"\n class=\"right-label\"\n [color]=\"labelColor\"\n [valueStyle]=\"valueStyle\"\n [unit]=\"unit\"\n [value]=\"valueToDisplay\"\n >\n </tap-label-value>\n </div>\n <div class=\"bottom-label\" *ngIf=\"valuePosition === 'bottom'\">\n <tap-label-value\n [color]=\"labelColor\"\n [valueStyle]=\"valueStyle\"\n [unit]=\"unit\"\n [value]=\"valueToDisplay\"\n >\n </tap-label-value>\n </div>\n </div>\n</tap-value-editor-container>\n","import { CommonModule, DecimalPipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { IconModule } from '@iotize/app-common';\nimport { TapValueEditorContainerModule } from '@iotize/ionic';\nimport { LabelValueComponent } from './label-value/label-value.component';\nimport { TapVariableImageAndValueComponent } from './tap-variable-image-and-value.component';\n\n@NgModule({\n exports: [TapVariableImageAndValueComponent],\n declarations: [TapVariableImageAndValueComponent, LabelValueComponent],\n imports: [\n CommonModule,\n IonicModule,\n TapValueEditorContainerModule,\n IconModule,\n ],\n providers: [DecimalPipe],\n})\nexport class TapVariableImageAndValueModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2.MonitoringSettingsService","i3","i4","i1","i2","i2.ExportDataService","i4.ExportDataDirective","i1.MonitoringActionsComponent","i1.TapVariableSelectComponent","i1.TapVariableToggleComponent","i3.ExportDataDirective","i2.MonitoringRangeComponent","i2.MonitoringRangeContentDirective","i4.MonitoringVariableValueComponent","i5.TapVariableRangeComponent","i6.TapVariableButtonsComponent","i7.TapVariableToggleComponent","i8.TapVariableSelectComponent","i4.LabelValueComponent"],"mappings":"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"}