@c8y/ngx-components 1023.14.219 → 1023.14.222
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.
- package/alarm-event-selector/index.d.ts.map +1 -1
- package/context-dashboard/index.d.ts.map +1 -1
- package/datapoint-library/list/index.d.ts.map +1 -1
- package/datapoint-selector/index.d.ts +25 -7
- package/datapoint-selector/index.d.ts.map +1 -1
- package/echart/index.d.ts +1 -0
- package/echart/index.d.ts.map +1 -1
- package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +13 -8
- package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs +8 -3
- package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +5 -3
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs +2 -2
- package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs +13 -5
- package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +66 -39
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart.mjs +25 -14
- package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +15 -6
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +10 -6
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +20 -16
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs +4 -4
- package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +145 -3
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/index.d.ts +123 -2
- package/index.d.ts.map +1 -1
- package/locales/de.po +3 -0
- package/locales/es.po +3 -0
- package/locales/fr.po +3 -0
- package/locales/ja_JP.po +3 -0
- package/locales/ko.po +3 -0
- package/locales/locales.pot +14 -8
- package/locales/nl.po +3 -0
- package/locales/pl.po +3 -0
- package/locales/pt_BR.po +3 -0
- package/locales/zh_CN.po +3 -0
- package/locales/zh_TW.po +3 -0
- package/package.json +1 -1
- package/widgets/implementations/datapoints-graph/index.d.ts +6 -0
- package/widgets/implementations/datapoints-graph/index.d.ts.map +1 -1
- package/widgets/implementations/datapoints-table/index.d.ts.map +1 -1
- package/widgets/implementations/info-gauge/index.d.ts.map +1 -1
|
@@ -4,7 +4,7 @@ import { gettext } from '@c8y/ngx-components/gettext';
|
|
|
4
4
|
import { from, merge, interval, BehaviorSubject, of, lastValueFrom, defer, forkJoin } from 'rxjs';
|
|
5
5
|
import { mergeMap, map, tap, throttleTime, buffer, switchMap } from 'rxjs/operators';
|
|
6
6
|
import * as i1$1 from '@c8y/ngx-components';
|
|
7
|
-
import { CommonModule, FormsModule, IconDirective, C8yTranslatePipe, WidgetTimeContextMediatorService, WidgetTimeContextDateRangeService, ThemeSwitcherService, DismissAlertStrategy, DynamicComponentAlert, CoreModule, MeasurementRealtimeService, AlarmRealtimeService, EventRealtimeService } from '@c8y/ngx-components';
|
|
7
|
+
import { translateDatapointUnit, translateDatapointLabel, CommonModule, FormsModule, IconDirective, C8yTranslatePipe, WidgetTimeContextMediatorService, WidgetTimeContextDateRangeService, ThemeSwitcherService, DismissAlertStrategy, DynamicComponentAlert, CoreModule, MeasurementRealtimeService, AlarmRealtimeService, EventRealtimeService } from '@c8y/ngx-components';
|
|
8
8
|
import * as echarts from 'echarts';
|
|
9
9
|
import * as i1 from '@ngx-translate/core';
|
|
10
10
|
import { TranslateService } from '@ngx-translate/core';
|
|
@@ -15,7 +15,7 @@ import * as i4 from '@c8y/ngx-components/alarms';
|
|
|
15
15
|
import { AlarmsModule, AlarmSeverityToIconPipe, AlarmSeverityToLabelPipe } from '@c8y/ngx-components/alarms';
|
|
16
16
|
import { INTERVALS } from '@c8y/ngx-components/interval-picker';
|
|
17
17
|
import * as i1$2 from '@angular/common';
|
|
18
|
-
import {
|
|
18
|
+
import { CommonModule as CommonModule$1 } from '@angular/common';
|
|
19
19
|
import * as i2$1 from 'ngx-echarts';
|
|
20
20
|
import { NgxEchartsModule, NGX_ECHARTS_CONFIG } from 'ngx-echarts';
|
|
21
21
|
import { TooltipModule } from 'ngx-bootstrap/tooltip';
|
|
@@ -26,6 +26,7 @@ import * as i2 from 'ngx-bootstrap/dropdown';
|
|
|
26
26
|
import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
|
|
27
27
|
import * as i3 from '@angular/cdk/a11y';
|
|
28
28
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
29
|
+
import { DatapointLabelPipe } from '@c8y/ngx-components/datapoint-selector';
|
|
29
30
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
30
31
|
|
|
31
32
|
var DATE_SELECTION_EXTENDED;
|
|
@@ -105,7 +106,7 @@ class YAxisService {
|
|
|
105
106
|
if (YAxisOptions.forceMergeDatapoints) {
|
|
106
107
|
return {
|
|
107
108
|
name: Array.from(datapointsWithValues)
|
|
108
|
-
.map((dp, index) => `{${index}|${dp.
|
|
109
|
+
.map((dp, index) => `{${index}|${translateDatapointUnit(dp, this.translate)}}`)
|
|
109
110
|
.join(' /'),
|
|
110
111
|
nameLocation: 'middle',
|
|
111
112
|
nameTruncate: {
|
|
@@ -276,9 +277,11 @@ class YAxisService {
|
|
|
276
277
|
return '';
|
|
277
278
|
}
|
|
278
279
|
if (!options.mergeMatchingDatapoints || !isFirstOccurrence) {
|
|
279
|
-
return `${dp.
|
|
280
|
+
return `${translateDatapointLabel(dp, this.translate)} [${translateDatapointUnit(dp, this.translate)}]`;
|
|
280
281
|
}
|
|
281
|
-
return uniqueUnitDps
|
|
282
|
+
return uniqueUnitDps
|
|
283
|
+
.map((dp, index) => `{${index}|${translateDatapointUnit(dp, this.translate)}}`)
|
|
284
|
+
.join(' / ');
|
|
282
285
|
}
|
|
283
286
|
getDecimalPlaces(num) {
|
|
284
287
|
const numStr = num.toString();
|
|
@@ -1459,6 +1462,14 @@ class EchartsOptionsService {
|
|
|
1459
1462
|
}
|
|
1460
1463
|
}, []);
|
|
1461
1464
|
}
|
|
1465
|
+
/**
|
|
1466
|
+
* Builds the display name of a datapoint. Passing the whole datapoint lets `translateDatapointLabel`
|
|
1467
|
+
* apply its `fragment → series` fallback, so an unlabeled datapoint still gets an informative
|
|
1468
|
+
* name.
|
|
1469
|
+
*/
|
|
1470
|
+
getTranslatedLabel(dp) {
|
|
1471
|
+
return translateDatapointLabel(dp, this.translate);
|
|
1472
|
+
}
|
|
1462
1473
|
getSingleSeries(dp, renderType, idx, isMinMaxChart = false, displayOptions, seriesType = '') {
|
|
1463
1474
|
const datapointId = dp.__target?.id + dp.fragment + dp.series;
|
|
1464
1475
|
const isAggr = seriesType === this.AGGREGATED_SERIES_TYPE;
|
|
@@ -1470,13 +1481,13 @@ class EchartsOptionsService {
|
|
|
1470
1481
|
]);
|
|
1471
1482
|
return {
|
|
1472
1483
|
datapointId,
|
|
1473
|
-
datapointUnit: renderType !== 'count' ? dp.
|
|
1484
|
+
datapointUnit: renderType !== 'count' ? translateDatapointUnit(dp, this.translate) : '',
|
|
1474
1485
|
// 'id' property is needed as 'seriesId' in tooltip formatter
|
|
1475
1486
|
id: isMinMaxChart
|
|
1476
1487
|
? `${datapointId}/${renderType}${seriesType}`
|
|
1477
1488
|
: `${datapointId}${seriesType}`,
|
|
1478
|
-
name: `${dp
|
|
1479
|
-
datapointLabel: dp
|
|
1489
|
+
name: `${this.getTranslatedLabel(dp)} (${dp.__target?.['name']})`,
|
|
1490
|
+
datapointLabel: this.getTranslatedLabel(dp),
|
|
1480
1491
|
data,
|
|
1481
1492
|
...(displayOptions.forceMergeDatapoints ? {} : { yAxisIndex: idx }),
|
|
1482
1493
|
...this.chartTypesService.getSeriesOptions(dp, isMinMaxChart, renderType)
|
|
@@ -2068,6 +2079,7 @@ class SelectAggregatedDatapointComponent {
|
|
|
2068
2079
|
this.value = null;
|
|
2069
2080
|
this.valueChange = new EventEmitter();
|
|
2070
2081
|
this.chartHelpersService = inject(ChartHelpersService);
|
|
2082
|
+
this.translate = inject(TranslateService);
|
|
2071
2083
|
this.selectedDatapointLabel = gettext('Select data point');
|
|
2072
2084
|
this.selectedDatapointColor = '';
|
|
2073
2085
|
}
|
|
@@ -2090,15 +2102,15 @@ class SelectAggregatedDatapointComponent {
|
|
|
2090
2102
|
}
|
|
2091
2103
|
const found = this.chartHelpersService.findMatchingDatapoint(this.activeDatapoints, this.value);
|
|
2092
2104
|
if (this.value && !found) {
|
|
2093
|
-
this.selectedDatapointLabel = this.value.
|
|
2105
|
+
this.selectedDatapointLabel = translateDatapointLabel(this.value, this.translate);
|
|
2094
2106
|
this.selectedDatapointColor = this.value.color || '';
|
|
2095
2107
|
return;
|
|
2096
2108
|
}
|
|
2097
|
-
this.selectedDatapointLabel = found
|
|
2109
|
+
this.selectedDatapointLabel = translateDatapointLabel(found, this.translate);
|
|
2098
2110
|
this.selectedDatapointColor = found?.color || '';
|
|
2099
2111
|
}
|
|
2100
2112
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SelectAggregatedDatapointComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2101
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2113
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SelectAggregatedDatapointComponent, isStandalone: true, selector: "c8y-select-aggregated-datapoint", inputs: { activeDatapoints: "activeDatapoints", value: "value" }, outputs: { valueChange: "valueChange" }, host: { classAttribute: "d-contents" }, usesOnChanges: true, ngImport: i0, template: "@if (activeDatapoints?.length > 0) {\n <div\n class=\"dropdown dropup\"\n dropdown\n #datapointDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"datapointDropdown.isOpen\"\n >\n <ng-template #selectedDatapoint>\n <div class=\"text-left\">\n <strong>{{ selectedDatapointLabel }}</strong>\n <br />\n {{ 'Click to change' | translate }}\n </div>\n </ng-template>\n <button\n class=\"btn btn-default d-flex a-i-center dropdown-toggle c8y-dropdown\"\n title=\"{{\n 'Select a data point to view its aggregated values in the time slider.' | translate\n }}\"\n type=\"button\"\n dropdownToggle\n >\n <span\n [style.background-color]=\"selectedDatapointColor\"\n style=\"display: inline-block; width: 16px; height: 16px; border-radius: 50%\"\n ></span>\n <span class=\"caret\"></span>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n *dropdownMenu\n >\n @for (datapoint of activeDatapoints; track datapoint) {\n <li>\n <button\n class=\"p-r-8\"\n type=\"button\"\n (click)=\"changeDatapointSelection(datapoint)\"\n >\n <span\n class=\"d-inline-block m-r-4\"\n [style.background-color]=\"datapoint?.color\"\n style=\"width: 16px; height: 16px; border-radius: 50%\"\n ></span>\n <span\n class=\"text-truncate\"\n style=\"max-width: 220px !important\"\n title=\"{{ datapoint | datapointLabel }}\"\n >\n {{ datapoint | datapointLabel }}\n </span>\n @if (\n datapoint.__target.id === value?.__target.id &&\n datapoint.fragment === value?.fragment &&\n datapoint.series === value?.series\n ) {\n <span class=\"m-l-auto flex-no-shrink\">\n <i\n class=\"text-success h4\"\n [c8yIcon]=\"'check'\"\n ></i>\n </span>\n }\n </button>\n </li>\n }\n </ul>\n </div>\n}\n<button\n class=\"btn-help\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Select a data point to view its aggregated values in the time slider.' | translate\n }}\"\n placement=\"left\"\n triggers=\"focus\"\n container=\"body\"\n></button>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: PopoverModule }, { kind: "directive", type: i1$4.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: BsDropdownModule }, { kind: "directive", type: i2.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i2.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i2.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: DatapointLabelPipe, name: "datapointLabel" }] }); }
|
|
2102
2114
|
}
|
|
2103
2115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SelectAggregatedDatapointComponent, decorators: [{
|
|
2104
2116
|
type: Component,
|
|
@@ -2112,9 +2124,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
2112
2124
|
BsDropdownModule,
|
|
2113
2125
|
A11yModule,
|
|
2114
2126
|
IconDirective,
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
], template: "<div\n class=\"dropdown dropup\"\n dropdown\n #datapointDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"datapointDropdown.isOpen\"\n *ngIf=\"activeDatapoints?.length > 0\"\n>\n <ng-template #selectedDatapoint>\n <div class=\"text-left\">\n <strong>{{ selectedDatapointLabel }}</strong>\n <br />\n {{ 'Click to change' | translate }}\n </div>\n </ng-template>\n <button\n class=\"btn btn-default d-flex a-i-center dropdown-toggle c8y-dropdown\"\n title=\"{{'Select a data point to view its aggregated values in the time slider.' | translate }}\"\n type=\"button\"\n dropdownToggle\n >\n <span\n [style.background-color]=\"selectedDatapointColor\"\n style=\"display: inline-block; width: 16px; height: 16px; border-radius: 50%\"\n ></span>\n <span class=\"caret\"></span>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n *dropdownMenu\n >\n <li *ngFor=\"let datapoint of activeDatapoints\">\n <button\n class=\"p-r-8\"\n type=\"button\"\n (click)=\"changeDatapointSelection(datapoint)\"\n >\n <span\n class=\"d-inline-block m-r-4\"\n [style.background-color]=\"datapoint?.color\"\n style=\"width: 16px; height: 16px; border-radius: 50%\"\n ></span>\n <span class=\"text-truncate\" style=\"max-width:220px!important\" title=\"{{ datapoint?.label || `${datapoint?.fragment}-${datapoint?.series}` }}\">\n {{ datapoint?.label || `${datapoint?.fragment}-${datapoint?.series}` }}\n </span>\n <span\n class=\"m-l-auto flex-no-shrink\"\n *ngIf=\"\n datapoint.__target.id === value?.__target.id &&\n datapoint.fragment === value?.fragment &&\n datapoint.series === value?.series\n \"\n >\n <i\n class=\"text-success h4\"\n [c8yIcon]=\"'check'\"\n ></i>\n </span>\n </button>\n </li>\n </ul>\n</div>\n<button\n class=\"btn-help\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Select a data point to view its aggregated values in the time slider.' | translate\n }}\"\n placement=\"left\"\n triggers=\"focus\"\n container=\"body\"\n></button>\n" }]
|
|
2127
|
+
DatapointLabelPipe
|
|
2128
|
+
], template: "@if (activeDatapoints?.length > 0) {\n <div\n class=\"dropdown dropup\"\n dropdown\n #datapointDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"datapointDropdown.isOpen\"\n >\n <ng-template #selectedDatapoint>\n <div class=\"text-left\">\n <strong>{{ selectedDatapointLabel }}</strong>\n <br />\n {{ 'Click to change' | translate }}\n </div>\n </ng-template>\n <button\n class=\"btn btn-default d-flex a-i-center dropdown-toggle c8y-dropdown\"\n title=\"{{\n 'Select a data point to view its aggregated values in the time slider.' | translate\n }}\"\n type=\"button\"\n dropdownToggle\n >\n <span\n [style.background-color]=\"selectedDatapointColor\"\n style=\"display: inline-block; width: 16px; height: 16px; border-radius: 50%\"\n ></span>\n <span class=\"caret\"></span>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n *dropdownMenu\n >\n @for (datapoint of activeDatapoints; track datapoint) {\n <li>\n <button\n class=\"p-r-8\"\n type=\"button\"\n (click)=\"changeDatapointSelection(datapoint)\"\n >\n <span\n class=\"d-inline-block m-r-4\"\n [style.background-color]=\"datapoint?.color\"\n style=\"width: 16px; height: 16px; border-radius: 50%\"\n ></span>\n <span\n class=\"text-truncate\"\n style=\"max-width: 220px !important\"\n title=\"{{ datapoint | datapointLabel }}\"\n >\n {{ datapoint | datapointLabel }}\n </span>\n @if (\n datapoint.__target.id === value?.__target.id &&\n datapoint.fragment === value?.fragment &&\n datapoint.series === value?.series\n ) {\n <span class=\"m-l-auto flex-no-shrink\">\n <i\n class=\"text-success h4\"\n [c8yIcon]=\"'check'\"\n ></i>\n </span>\n }\n </button>\n </li>\n }\n </ul>\n </div>\n}\n<button\n class=\"btn-help\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Select a data point to view its aggregated values in the time slider.' | translate\n }}\"\n placement=\"left\"\n triggers=\"focus\"\n container=\"body\"\n></button>\n" }]
|
|
2118
2129
|
}], propDecorators: { activeDatapoints: [{
|
|
2119
2130
|
type: Input
|
|
2120
2131
|
}], value: [{
|