UNPKG

@iotize/ionic

Version:

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

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