@c8y/ngx-components 1024.19.5 → 1024.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/fesm2022/c8y-ngx-components-ai-agents-html.mjs +0 -9
  2. package/fesm2022/c8y-ngx-components-ai-agents-html.mjs.map +1 -1
  3. package/fesm2022/c8y-ngx-components-ai-agents-scada.mjs +0 -4
  4. package/fesm2022/c8y-ngx-components-ai-agents-scada.mjs.map +1 -1
  5. package/fesm2022/c8y-ngx-components-ai.mjs +10 -10
  6. package/fesm2022/c8y-ngx-components-ai.mjs.map +1 -1
  7. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +13 -9
  8. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
  9. package/fesm2022/c8y-ngx-components-asset-properties.mjs +4 -3
  10. package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
  11. package/fesm2022/{c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-CG8k844T.mjs → c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-1WsTSnO_.mjs} +9 -5
  12. package/fesm2022/c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-1WsTSnO_.mjs.map +1 -0
  13. package/fesm2022/{c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-CTXM7Dkc.mjs → c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-C3KZGqlc.mjs} +2 -2
  14. package/fesm2022/{c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-CTXM7Dkc.mjs.map → c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-C3KZGqlc.mjs.map} +1 -1
  15. package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-Da3QVvuf.mjs → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-DOmwNU6m.mjs} +2 -2
  16. package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-Da3QVvuf.mjs.map → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-DOmwNU6m.mjs.map} +1 -1
  17. package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs +1 -1
  18. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +30 -9
  19. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  20. package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs +2 -2
  21. package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs.map +1 -1
  22. package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs +12 -5
  23. package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs.map +1 -1
  24. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +41 -12
  25. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  26. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +10 -6
  27. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
  28. package/fesm2022/c8y-ngx-components-echart.mjs +38 -25
  29. package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
  30. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +21 -9
  31. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
  32. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-list.mjs +7 -4
  33. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-list.mjs.map +1 -1
  34. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +9 -5
  35. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
  36. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +18 -12
  37. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
  38. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs +4 -3
  39. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs.map +1 -1
  40. package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs +1 -1
  41. package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs.map +1 -1
  42. package/fesm2022/c8y-ngx-components-widgets-implementations-pie-chart.mjs +3 -3
  43. package/fesm2022/c8y-ngx-components-widgets-implementations-pie-chart.mjs.map +1 -1
  44. package/fesm2022/c8y-ngx-components.mjs +166 -29
  45. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  46. package/locales/locales.pot +6 -0
  47. package/package.json +1 -1
  48. package/types/c8y-ngx-components-ai-agents-html.d.ts.map +1 -1
  49. package/types/c8y-ngx-components-ai-agents-scada.d.ts.map +1 -1
  50. package/types/c8y-ngx-components-ai.d.ts +1 -1
  51. package/types/c8y-ngx-components-ai.d.ts.map +1 -1
  52. package/types/c8y-ngx-components-alarm-event-selector.d.ts.map +1 -1
  53. package/types/c8y-ngx-components-asset-properties.d.ts +0 -1
  54. package/types/c8y-ngx-components-asset-properties.d.ts.map +1 -1
  55. package/types/c8y-ngx-components-context-dashboard.d.ts +5 -0
  56. package/types/c8y-ngx-components-context-dashboard.d.ts.map +1 -1
  57. package/types/c8y-ngx-components-datapoint-library-list.d.ts.map +1 -1
  58. package/types/c8y-ngx-components-datapoint-selector.d.ts +13 -3
  59. package/types/c8y-ngx-components-datapoint-selector.d.ts.map +1 -1
  60. package/types/c8y-ngx-components-datapoints-export-selector.d.ts +2 -0
  61. package/types/c8y-ngx-components-datapoints-export-selector.d.ts.map +1 -1
  62. package/types/c8y-ngx-components-echart.d.ts +1 -0
  63. package/types/c8y-ngx-components-echart.d.ts.map +1 -1
  64. package/types/c8y-ngx-components-widgets-implementations-datapoints-graph.d.ts +7 -0
  65. package/types/c8y-ngx-components-widgets-implementations-datapoints-graph.d.ts.map +1 -1
  66. package/types/c8y-ngx-components-widgets-implementations-datapoints-list.d.ts.map +1 -1
  67. package/types/c8y-ngx-components-widgets-implementations-datapoints-table.d.ts.map +1 -1
  68. package/types/c8y-ngx-components-widgets-implementations-info-gauge.d.ts.map +1 -1
  69. package/types/c8y-ngx-components-widgets-implementations-kpi.d.ts.map +1 -1
  70. package/types/c8y-ngx-components-widgets-implementations-pie-chart.d.ts.map +1 -1
  71. package/types/c8y-ngx-components.d.ts +111 -5
  72. package/types/c8y-ngx-components.d.ts.map +1 -1
  73. package/fesm2022/c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-CG8k844T.mjs.map +0 -1
@@ -1,16 +1,17 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Pipe, Injectable, inject, ViewChild, Input, ChangeDetectionStrategy, Component, Optional, EventEmitter, forwardRef, Output } from '@angular/core';
3
3
  import * as i1 from '@c8y/ngx-components';
4
- import { ThemeSwitcherService, MeasurementRealtimeService, DatePipe, CommonModule, FormGroupComponent, FormsModule, GuideDocsComponent, MessagesComponent } from '@c8y/ngx-components';
4
+ import { translateDatapointUnit, ThemeSwitcherService, MeasurementRealtimeService, DatePipe, IconDirective, C8yTranslatePipe, DatapointLabelPipe, DatapointUnitPipe, CommonModule, FormGroupComponent, FormsModule, GuideDocsComponent, MessagesComponent } from '@c8y/ngx-components';
5
5
  import * as i1$2 from '@angular/common';
6
6
  import { AsyncPipe, NgStyle, DecimalPipe } from '@angular/common';
7
7
  import { of, BehaviorSubject, switchMap, tap, Subject, takeUntil, debounceTime } from 'rxjs';
8
8
  import { map, catchError } from 'rxjs/operators';
9
- import * as i2 from '@c8y/ngx-components/context-dashboard';
9
+ import * as i2$1 from '@c8y/ngx-components/context-dashboard';
10
10
  import { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';
11
11
  import * as i1$1 from 'ngx-echarts';
12
12
  import { NgxEchartsModule, NGX_ECHARTS_CONFIG } from 'ngx-echarts';
13
13
  import { gettext } from '@c8y/ngx-components/gettext';
14
+ import * as i2 from '@ngx-translate/core';
14
15
  import * as i1$3 from '@angular/forms';
15
16
  import { NG_VALUE_ACCESSOR, Validators, NgForm, ControlContainer, ReactiveFormsModule } from '@angular/forms';
16
17
  import { DatapointSelectorModule } from '@c8y/ngx-components/datapoint-selector';
@@ -384,8 +385,9 @@ const GAUGE_PRESETS = [
384
385
  ];
385
386
 
386
387
  class RadialGaugeService {
387
- constructor(c8yDatePipe) {
388
+ constructor(c8yDatePipe, translate) {
388
389
  this.c8yDatePipe = c8yDatePipe;
390
+ this.translate = translate;
389
391
  this.containerSize = 400;
390
392
  }
391
393
  setChart(chart) {
@@ -531,7 +533,7 @@ class RadialGaugeService {
531
533
  : gaugeOptions?.detailOffsetCenter || [0, 0],
532
534
  formatter: () => {
533
535
  const value = measurement?.value.toFixed(fractionSize) || 0;
534
- const unit = activeDatapointGauge?.unit || measurement?.unit || '';
536
+ const unit = translateDatapointUnit(activeDatapointGauge?.unit || measurement?.unit, this.translate);
535
537
  const date = new Date(measurement?.date);
536
538
  const formattedDate = this.c8yDatePipe.transform(date);
537
539
  return `{value|${value}}{unit|${unit}} \n {date|${formattedDate}} `;
@@ -584,7 +586,7 @@ class RadialGaugeService {
584
586
  show: gaugeOptions?.showMarkPoint,
585
587
  formatter: () => {
586
588
  const value = measurement?.value.toFixed(fractionSize) || 0;
587
- const unit = activeDatapointGauge?.unit || measurement?.unit || '';
589
+ const unit = translateDatapointUnit(activeDatapointGauge?.unit || measurement?.unit, this.translate);
588
590
  // use -- as fallback in case date is not set (e.g. no measurement yet available for datapoint)
589
591
  let formattedDate = '--';
590
592
  if (measurement?.date) {
@@ -742,7 +744,7 @@ class RadialGaugeService {
742
744
  return clampedValue;
743
745
  }
744
746
  }
745
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: RadialGaugeService, deps: [{ token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Injectable }); }
747
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: RadialGaugeService, deps: [{ token: i1.DatePipe }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
746
748
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: RadialGaugeService, providedIn: 'root' }); }
747
749
  }
748
750
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: RadialGaugeService, decorators: [{
@@ -750,7 +752,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
750
752
  args: [{
751
753
  providedIn: 'root'
752
754
  }]
753
- }], ctorParameters: () => [{ type: i1.DatePipe }] });
755
+ }], ctorParameters: () => [{ type: i1.DatePipe }, { type: i2.TranslateService }] });
754
756
 
755
757
  class RadialGaugeViewComponent {
756
758
  constructor() {
@@ -885,7 +887,7 @@ class InfoGaugeWidgetViewComponent {
885
887
  datapoint.__target = { name, id };
886
888
  }
887
889
  }
888
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: InfoGaugeWidgetViewComponent, deps: [{ token: i2.ContextDashboardComponent, optional: true }, { token: i1.DynamicComponentComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
890
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: InfoGaugeWidgetViewComponent, deps: [{ token: i2$1.ContextDashboardComponent, optional: true }, { token: i1.DynamicComponentComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
889
891
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: InfoGaugeWidgetViewComponent, isStandalone: true, selector: "c8y-info-gauge-widget-view", inputs: { config: "config" }, host: { classAttribute: "d-contents" }, providers: [MeasurementRealtimeService], usesOnChanges: true, ngImport: i0, template: "@if (isInfoGauge) {\n <div class=\"label-value-unit-gauge new-radial\">\n @if (activeDatapointLabels?.length && isInfoGauge) {\n <div class=\"gauge-legend\">\n @for (dp of activeDatapointLabels; track dp) {\n @if (dp | infoGaugeCurrentMeasurement | async; as measurement) {\n <label\n class=\"text-truncate\"\n title=\"{{ dp.label }}\"\n >\n {{ dp.label }}\n </label>\n @if (!measurement.notFound) {\n <h3\n class=\"text-truncate\"\n title=\"{{ measurement.value | number: fractionSize }} {{\n dp.unit || measurement.unit\n }}\"\n >\n {{ measurement.value | number: fractionSize }} {{ dp.unit || measurement.unit }}\n </h3>\n } @else {\n <h3>--</h3>\n }\n <p class=\"text-muted m-b-8\">\n <small>\n <div>{{ measurement.date | c8yDate: 'mediumDate' }}</div>\n <div>{{ measurement.date | c8yDate: 'mediumTime' }}</div>\n </small>\n </p>\n }\n }\n </div>\n }\n @if (activeDatapointGauge && isInfoGauge) {\n @if (activeDatapointGauge | infoGaugeCurrentMeasurement: true | async; as measurement) {\n <div class=\"gauge-svg\">\n <svg\n height=\"214px\"\n width=\"214px\"\n viewBox=\"0 0 214 214\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <desc>radial gauge</desc>\n <g\n id=\"scale\"\n stroke=\"none\"\n stroke-width=\"1\"\n fill=\"none\"\n fill-rule=\"evenodd\"\n stroke-dasharray=\"1,5\"\n >\n <circle\n id=\"Oval\"\n stroke=\"#CACECE\"\n stroke-width=\"7\"\n cx=\"107\"\n cy=\"107\"\n r=\"103\"\n ></circle>\n <rect\n id=\"mask\"\n height=\"214\"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n x=\"0\"\n y=\"0\"\n width=\"214\"\n transform=\"rotate(-45 290 182)\"\n ></rect>\n </g>\n <path\n class=\"track\"\n d=\"M 107 27 a 80 80 0 1 0.1 0 Z\"\n transform=\"rotate(-135 107 107)\"\n ></path>\n <path\n class=\"track-value\"\n [ngStyle]=\"{\n stroke: measurement.color,\n 'stroke-dashoffset': -measurement.strokeDashOffset\n }\"\n d=\"M 107 27 a 80 80 0 1 0.1 0 Z\"\n transform=\"rotate(-135 107 107)\"\n ></path>\n <foreignObject\n class=\"d-flex a-i-center j-c-center\"\n height=\"100%\"\n width=\"100%\"\n requiredFeatures=\"http://www.w3.org/TR/SVG11/feature#Extensibility\"\n >\n <div\n class=\"d-flex d-col fit-h a-i-center j-c-center\"\n style=\"padding: 3rem\"\n xmlns=\"http://www.w3.org/1999/xhtml\"\n >\n <p\n class=\"text-truncate text-center\"\n title=\"{{ activeDatapointGauge.label }}\"\n >\n {{ activeDatapointGauge.label }}\n </p>\n @if (!measurement.notFound) {\n <p\n class=\"center-value text-truncate\"\n title=\"{{ measurement.value | number: fractionSize }}\"\n >\n {{ measurement.value | number: fractionSize }}\n </p>\n } @else {\n <p class=\"center-value\">--</p>\n }\n <p class=\"center-unit strong\">\n {{ activeDatapointGauge.unit || measurement.unit }}\n </p>\n <div class=\"center-date-time\">{{ measurement.date | c8yDate: 'mediumDate' }}</div>\n <div class=\"center-date-time\">{{ measurement.date | c8yDate: 'mediumTime' }}</div>\n </div>\n </foreignObject>\n </svg>\n </div>\n }\n }\n <div class=\"clearfix\"></div>\n </div>\n}\n@if (!isInfoGauge) {\n @if (activeDatapointGauge | infoGaugeCurrentMeasurement | async; as measurement) {\n <c8y-radial-gauge\n [activeDatapointGauge]=\"activeDatapointGauge\"\n [measurement]=\"measurement\"\n [fractionSize]=\"config.fractionSize\"\n [gaugeOptions]=\"config.gaugeOptions\"\n [selectedPresetId]=\"config.selectedPresetId\"\n ></c8y-radial-gauge>\n }\n}\n", dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: RadialGaugeViewComponent, selector: "c8y-radial-gauge", inputs: ["activeDatapointGauge", "measurement", "fractionSize", "gaugeOptions", "selectedPresetId"] }, { kind: "pipe", type: InfoGaugeCurrentMeasurementPipe, name: "infoGaugeCurrentMeasurement" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: DecimalPipe, name: "number" }, { kind: "pipe", type: DatePipe, name: "c8yDate" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
890
892
  }
891
893
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: InfoGaugeWidgetViewComponent, decorators: [{
@@ -896,9 +898,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
896
898
  AsyncPipe,
897
899
  DecimalPipe,
898
900
  DatePipe,
899
- RadialGaugeViewComponent
901
+ RadialGaugeViewComponent,
902
+ IconDirective,
903
+ C8yTranslatePipe,
904
+ DatapointLabelPipe,
905
+ DatapointUnitPipe
900
906
  ], template: "@if (isInfoGauge) {\n <div class=\"label-value-unit-gauge new-radial\">\n @if (activeDatapointLabels?.length && isInfoGauge) {\n <div class=\"gauge-legend\">\n @for (dp of activeDatapointLabels; track dp) {\n @if (dp | infoGaugeCurrentMeasurement | async; as measurement) {\n <label\n class=\"text-truncate\"\n title=\"{{ dp.label }}\"\n >\n {{ dp.label }}\n </label>\n @if (!measurement.notFound) {\n <h3\n class=\"text-truncate\"\n title=\"{{ measurement.value | number: fractionSize }} {{\n dp.unit || measurement.unit\n }}\"\n >\n {{ measurement.value | number: fractionSize }} {{ dp.unit || measurement.unit }}\n </h3>\n } @else {\n <h3>--</h3>\n }\n <p class=\"text-muted m-b-8\">\n <small>\n <div>{{ measurement.date | c8yDate: 'mediumDate' }}</div>\n <div>{{ measurement.date | c8yDate: 'mediumTime' }}</div>\n </small>\n </p>\n }\n }\n </div>\n }\n @if (activeDatapointGauge && isInfoGauge) {\n @if (activeDatapointGauge | infoGaugeCurrentMeasurement: true | async; as measurement) {\n <div class=\"gauge-svg\">\n <svg\n height=\"214px\"\n width=\"214px\"\n viewBox=\"0 0 214 214\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <desc>radial gauge</desc>\n <g\n id=\"scale\"\n stroke=\"none\"\n stroke-width=\"1\"\n fill=\"none\"\n fill-rule=\"evenodd\"\n stroke-dasharray=\"1,5\"\n >\n <circle\n id=\"Oval\"\n stroke=\"#CACECE\"\n stroke-width=\"7\"\n cx=\"107\"\n cy=\"107\"\n r=\"103\"\n ></circle>\n <rect\n id=\"mask\"\n height=\"214\"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n x=\"0\"\n y=\"0\"\n width=\"214\"\n transform=\"rotate(-45 290 182)\"\n ></rect>\n </g>\n <path\n class=\"track\"\n d=\"M 107 27 a 80 80 0 1 0.1 0 Z\"\n transform=\"rotate(-135 107 107)\"\n ></path>\n <path\n class=\"track-value\"\n [ngStyle]=\"{\n stroke: measurement.color,\n 'stroke-dashoffset': -measurement.strokeDashOffset\n }\"\n d=\"M 107 27 a 80 80 0 1 0.1 0 Z\"\n transform=\"rotate(-135 107 107)\"\n ></path>\n <foreignObject\n class=\"d-flex a-i-center j-c-center\"\n height=\"100%\"\n width=\"100%\"\n requiredFeatures=\"http://www.w3.org/TR/SVG11/feature#Extensibility\"\n >\n <div\n class=\"d-flex d-col fit-h a-i-center j-c-center\"\n style=\"padding: 3rem\"\n xmlns=\"http://www.w3.org/1999/xhtml\"\n >\n <p\n class=\"text-truncate text-center\"\n title=\"{{ activeDatapointGauge.label }}\"\n >\n {{ activeDatapointGauge.label }}\n </p>\n @if (!measurement.notFound) {\n <p\n class=\"center-value text-truncate\"\n title=\"{{ measurement.value | number: fractionSize }}\"\n >\n {{ measurement.value | number: fractionSize }}\n </p>\n } @else {\n <p class=\"center-value\">--</p>\n }\n <p class=\"center-unit strong\">\n {{ activeDatapointGauge.unit || measurement.unit }}\n </p>\n <div class=\"center-date-time\">{{ measurement.date | c8yDate: 'mediumDate' }}</div>\n <div class=\"center-date-time\">{{ measurement.date | c8yDate: 'mediumTime' }}</div>\n </div>\n </foreignObject>\n </svg>\n </div>\n }\n }\n <div class=\"clearfix\"></div>\n </div>\n}\n@if (!isInfoGauge) {\n @if (activeDatapointGauge | infoGaugeCurrentMeasurement | async; as measurement) {\n <c8y-radial-gauge\n [activeDatapointGauge]=\"activeDatapointGauge\"\n [measurement]=\"measurement\"\n [fractionSize]=\"config.fractionSize\"\n [gaugeOptions]=\"config.gaugeOptions\"\n [selectedPresetId]=\"config.selectedPresetId\"\n ></c8y-radial-gauge>\n }\n}\n" }]
901
- }], ctorParameters: () => [{ type: i2.ContextDashboardComponent, decorators: [{
907
+ }], ctorParameters: () => [{ type: i2$1.ContextDashboardComponent, decorators: [{
902
908
  type: Optional
903
909
  }] }, { type: i1.DynamicComponentComponent, decorators: [{
904
910
  type: Optional
@@ -1170,7 +1176,7 @@ class InfoGaugeWidgetConfigComponent {
1170
1176
  gaugePresetId: [this.config.selectedPresetId || 'default']
1171
1177
  });
1172
1178
  }
1173
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: InfoGaugeWidgetConfigComponent, deps: [{ token: i1$3.FormBuilder }, { token: i1$3.NgForm }, { token: i2.WidgetConfigComponent }, { token: i2.WidgetConfigService }, { token: i1.DynamicComponentComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
1179
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: InfoGaugeWidgetConfigComponent, deps: [{ token: i1$3.FormBuilder }, { token: i1$3.NgForm }, { token: i2$1.WidgetConfigComponent }, { token: i2$1.WidgetConfigService }, { token: i1.DynamicComponentComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
1174
1180
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: InfoGaugeWidgetConfigComponent, isStandalone: true, selector: "c8y-info-gauge-widget-config", inputs: { config: "config" }, providers: [MeasurementRealtimeService], viewQueries: [{ propertyName: "editorComponent", first: true, predicate: EditorComponent, descendants: true }, { propertyName: "previewMapSet", first: true, predicate: ["gaugePreview"], descendants: true }], ngImport: i0, template: "<form [formGroup]=\"formGroup\">\n @if (isInfoGauge) {\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Decimal places' | translate }}</legend>\n <c8y-form-group>\n <input\n class=\"form-control\"\n name=\"fractionSize\"\n type=\"number\"\n formControlName=\"fractionSize\"\n step=\"1\"\n />\n </c8y-form-group>\n </fieldset>\n @if (formGroup.errors?.noActiveDatapoint) {\n <div\n class=\"alert alert-info\"\n role=\"alert\"\n translate\n >\n At least one data point for the labels or the gauge needs to be selected.\n </div>\n }\n } @else {\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Decimal places' | translate }}</legend>\n <c8y-form-group>\n <input\n class=\"form-control\"\n name=\"fractionSize\"\n type=\"number\"\n formControlName=\"fractionSize\"\n step=\"1\"\n />\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Presets' | translate }}</legend>\n <c8y-preset-preview\n formControlName=\"gaugePresetId\"\n [ALL_GAUGE_PRESETS]=\"ALL_GAUGE_PRESETS\"\n (onPresetChange)=\"onRadioPresetChange($event)\"\n ></c8y-preset-preview>\n </fieldset>\n\n <div class=\"p-16\">\n <button\n class=\"btn btn-default\"\n aria-controls=\"advancedCollapse\"\n [attr.aria-expanded]=\"showAdvancedOptions\"\n type=\"button\"\n (click)=\"showAdvancedOptions = !showAdvancedOptions\"\n >\n {{ showAdvancedOptions ? hideAdvancedOptionsLabel : showAdvancedOptionsLabel }}\n </button>\n </div>\n\n <div\n class=\"collapse\"\n id=\"advancedCollapse\"\n [collapse]=\"!showAdvancedOptions\"\n [isAnimated]=\"true\"\n >\n <div\n class=\"fit-h\"\n style=\"min-height: 400px\"\n >\n <c8y-editor\n [ngModel]=\"gaugeOptionsString\"\n (ngModelChange)=\"gaugeJSONChange($event)\"\n (editorInit)=\"assignSchema()\"\n [ngModelOptions]=\"{ standalone: true }\"\n monacoEditorMarkerValidator\n ></c8y-editor>\n </div>\n </div>\n }\n</form>\n\n<ng-template #gaugePreview>\n @if (\n (datapointsGauge?.length > 0 && activeDatapointGauge) ||\n (datapointsLabels?.length > 0 && activeDatapointLabel)\n ) {\n <div>\n <c8y-info-gauge-widget-view [config]=\"previewConfig\"></c8y-info-gauge-widget-view>\n </div>\n } @else {\n <div class=\"d-col a-i-start j-c-center\">\n <c8y-ui-empty-state\n [icon]=\"'c8y-data-points'\"\n [title]=\"'No data points selected' | translate\"\n [subtitle]=\"'Select data point to render content' | translate\"\n [horizontal]=\"false\"\n data-cy=\"info-gauge--empty-state-no-data-point-selected\"\n >\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"/docs/cockpit/widgets-collection/#info-gauge\">user documentation</a>.\n </small>\n </p>\n </c8y-ui-empty-state>\n </div>\n }\n</ng-template>\n", dependencies: [{ kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: i1.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "ngmodule", type: CollapseModule }, { kind: "directive", type: i4.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: EditorComponent, selector: "c8y-editor", inputs: ["editorOptions", "theme"], outputs: ["editorInit"] }, { kind: "directive", type: MonacoEditorMarkerValidatorDirective, selector: "c8y-editor [monacoEditorMarkerValidator]" }, { kind: "ngmodule", type: DatapointSelectorModule }, { kind: "component", type: PresetPreviewComponent, selector: "c8y-preset-preview", inputs: ["ALL_GAUGE_PRESETS"], outputs: ["onPresetChange"] }, { kind: "component", type: InfoGaugeWidgetViewComponent, selector: "c8y-info-gauge-widget-view", inputs: ["config"] }, { kind: "component", type: GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
1175
1181
  }
1176
1182
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: InfoGaugeWidgetConfigComponent, decorators: [{
@@ -1189,7 +1195,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
1189
1195
  InfoGaugeWidgetViewComponent,
1190
1196
  GuideDocsComponent
1191
1197
  ], template: "<form [formGroup]=\"formGroup\">\n @if (isInfoGauge) {\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Decimal places' | translate }}</legend>\n <c8y-form-group>\n <input\n class=\"form-control\"\n name=\"fractionSize\"\n type=\"number\"\n formControlName=\"fractionSize\"\n step=\"1\"\n />\n </c8y-form-group>\n </fieldset>\n @if (formGroup.errors?.noActiveDatapoint) {\n <div\n class=\"alert alert-info\"\n role=\"alert\"\n translate\n >\n At least one data point for the labels or the gauge needs to be selected.\n </div>\n }\n } @else {\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Decimal places' | translate }}</legend>\n <c8y-form-group>\n <input\n class=\"form-control\"\n name=\"fractionSize\"\n type=\"number\"\n formControlName=\"fractionSize\"\n step=\"1\"\n />\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Presets' | translate }}</legend>\n <c8y-preset-preview\n formControlName=\"gaugePresetId\"\n [ALL_GAUGE_PRESETS]=\"ALL_GAUGE_PRESETS\"\n (onPresetChange)=\"onRadioPresetChange($event)\"\n ></c8y-preset-preview>\n </fieldset>\n\n <div class=\"p-16\">\n <button\n class=\"btn btn-default\"\n aria-controls=\"advancedCollapse\"\n [attr.aria-expanded]=\"showAdvancedOptions\"\n type=\"button\"\n (click)=\"showAdvancedOptions = !showAdvancedOptions\"\n >\n {{ showAdvancedOptions ? hideAdvancedOptionsLabel : showAdvancedOptionsLabel }}\n </button>\n </div>\n\n <div\n class=\"collapse\"\n id=\"advancedCollapse\"\n [collapse]=\"!showAdvancedOptions\"\n [isAnimated]=\"true\"\n >\n <div\n class=\"fit-h\"\n style=\"min-height: 400px\"\n >\n <c8y-editor\n [ngModel]=\"gaugeOptionsString\"\n (ngModelChange)=\"gaugeJSONChange($event)\"\n (editorInit)=\"assignSchema()\"\n [ngModelOptions]=\"{ standalone: true }\"\n monacoEditorMarkerValidator\n ></c8y-editor>\n </div>\n </div>\n }\n</form>\n\n<ng-template #gaugePreview>\n @if (\n (datapointsGauge?.length > 0 && activeDatapointGauge) ||\n (datapointsLabels?.length > 0 && activeDatapointLabel)\n ) {\n <div>\n <c8y-info-gauge-widget-view [config]=\"previewConfig\"></c8y-info-gauge-widget-view>\n </div>\n } @else {\n <div class=\"d-col a-i-start j-c-center\">\n <c8y-ui-empty-state\n [icon]=\"'c8y-data-points'\"\n [title]=\"'No data points selected' | translate\"\n [subtitle]=\"'Select data point to render content' | translate\"\n [horizontal]=\"false\"\n data-cy=\"info-gauge--empty-state-no-data-point-selected\"\n >\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"/docs/cockpit/widgets-collection/#info-gauge\">user documentation</a>.\n </small>\n </p>\n </c8y-ui-empty-state>\n </div>\n }\n</ng-template>\n" }]
1192
- }], ctorParameters: () => [{ type: i1$3.FormBuilder }, { type: i1$3.NgForm }, { type: i2.WidgetConfigComponent }, { type: i2.WidgetConfigService }, { type: i1.DynamicComponentComponent, decorators: [{
1198
+ }], ctorParameters: () => [{ type: i1$3.FormBuilder }, { type: i1$3.NgForm }, { type: i2$1.WidgetConfigComponent }, { type: i2$1.WidgetConfigService }, { type: i1.DynamicComponentComponent, decorators: [{
1193
1199
  type: Optional
1194
1200
  }] }], propDecorators: { config: [{
1195
1201
  type: Input