UNPKG

@iotize/ionic

Version:

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

1 lines 472 kB
{"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\"> Monitoring Settings </ion-title>\n  </ion-toolbar>\n</ion-header>\n<ion-content>\n  <form [formGroup]=\"form\">\n    <ion-list>\n      <ion-item>\n        <ion-input\n          [formControlName]=\"'period'\"\n          slot=\"end\"\n          text-right\n          type=\"number\"\n          labelPlacement=\"start\"\n          label=\"Frequency (in milliseconds)\"\n        ></ion-input>\n      </ion-item>\n      <ion-item *ngIf=\"showDataSource\">\n        <ion-select\n          [formControlName]=\"'dataSource'\"\n          slot=\"end\"\n          labelPlacement=\"start\"\n          label=\"Data source\"\n        >\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  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})\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  declare min: number;\n\n  @Input()\n  declare 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  declare 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  inject,\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  protected formBuilder = inject(FormBuilder);\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(tapService: CurrentDeviceService) {\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-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    label=\"label\"\n    labelPlacement=\"start\"\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 [style.opacity]=\"loading ? 1 : 0\" 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      &nbsp;\n      <app-common-icon [image]=\"icon\"> </app-common-icon>\n      &nbsp;\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> &nbsp; Sync\n        </ion-text>\n        <ion-text *ngIf=\"!isPacketSync(packet)\" color=\"danger\">\n          <ion-icon [name]=\"'alert'\"></ion-icon> &nbsp; Not sync &nbsp;\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":["i1","i2.MonitoringSettingsService","i3","i4","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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"}