@c8y/ngx-components 1021.66.0 → 1021.70.1
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/core/common/bytes.pipe.d.ts +26 -10
- package/core/common/bytes.pipe.d.ts.map +1 -1
- package/echart/charts.component.d.ts +14 -3
- package/echart/charts.component.d.ts.map +1 -1
- package/esm2022/core/common/bytes.pipe.mjs +47 -18
- package/esm2022/core/data-grid/data-grid.component.mjs +3 -3
- package/esm2022/echart/charts.component.mjs +50 -3
- package/esm2022/messaging-management/api/model/backlogQuota.mjs +2 -0
- package/esm2022/messaging-management/api/model/namespace.mjs +2 -0
- package/esm2022/messaging-management/api/model/namespaceDetails.mjs +2 -0
- package/esm2022/messaging-management/api/model/namespaceList.mjs +2 -0
- package/esm2022/messaging-management/api/model/namespacePolicies.mjs +2 -0
- package/esm2022/messaging-management/api/model/namespacePublishers.mjs +2 -0
- package/esm2022/messaging-management/api/model/namespaceSubscribers.mjs +2 -0
- package/esm2022/messaging-management/api/model/namespaceTopics.mjs +2 -0
- package/esm2022/messaging-management/api/model/pageStatistics.mjs +2 -0
- package/esm2022/messaging-management/api/model/pageable.mjs +2 -0
- package/esm2022/messaging-management/api/model/sortable.mjs +2 -0
- package/esm2022/messaging-management/api/model/subscriber.mjs +2 -0
- package/esm2022/messaging-management/api/model/subscriberFilters.mjs +2 -0
- package/esm2022/messaging-management/api/model/subscriberList.mjs +2 -0
- package/esm2022/messaging-management/api/model/subscriberToDelete.mjs +2 -0
- package/esm2022/messaging-management/api/model/topic.mjs +2 -0
- package/esm2022/messaging-management/api/model/topicDetailFilters.mjs +2 -0
- package/esm2022/messaging-management/api/model/topicList.mjs +2 -0
- package/esm2022/messaging-management/api/model/topicListFilters.mjs +2 -0
- package/esm2022/messaging-management/api/model/topicType.mjs +9 -0
- package/esm2022/messaging-management/api/services/messaging-namespaces.service.mjs +83 -0
- package/esm2022/messaging-management/api/services/messaging-subscribers.service.mjs +55 -0
- package/esm2022/messaging-management/api/services/messaging-topics.service.mjs +48 -0
- package/esm2022/messaging-management/c8y-ngx-components-messaging-management.mjs +5 -0
- package/esm2022/messaging-management/constants.mjs +4 -0
- package/esm2022/messaging-management/index.mjs +2 -0
- package/esm2022/messaging-management/messaging/namespace-list/namespace-item/namespace-item-card/namespace-item-card.component.mjs +43 -0
- package/esm2022/messaging-management/messaging/namespace-list/namespace-item/namespace-item.component.mjs +36 -0
- package/esm2022/messaging-management/messaging/namespace-list/namespace-list.component.mjs +51 -0
- package/esm2022/messaging-management/messaging/shared/usage/usage.component.mjs +68 -0
- package/esm2022/messaging-management/messaging/topic/topic-list-view.component.mjs +81 -0
- package/esm2022/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-data-grid.service.mjs +220 -0
- package/esm2022/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-view.component.mjs +137 -0
- package/esm2022/messaging-management/messaging/topic/topics-data-grid.service.mjs +113 -0
- package/esm2022/messaging-management/messaging-management.guard.mjs +40 -0
- package/esm2022/messaging-management/messaging-management.module.mjs +72 -0
- package/esm2022/messaging-management/navigator/messaging-navigator-factory.mjs +55 -0
- package/esm2022/messaging-management/navigator/topic-details-tab.factory.mjs +33 -0
- package/esm2022/messaging-management/utils/backlog-quota-limit.pipe.mjs +32 -0
- package/esm2022/messaging-management/utils/namespace-props.mjs +23 -0
- package/esm2022/messaging-management/utils/time-to-live.pipe.mjs +122 -0
- package/esm2022/operations/device-selector/device-selector.component.mjs +5 -1
- package/esm2022/widgets/cockpit/index.mjs +3 -1
- package/esm2022/widgets/cockpit-exports/index.mjs +8 -1
- package/esm2022/widgets/definitions/index.mjs +2 -1
- package/esm2022/widgets/definitions/radial-gauge/c8y-ngx-components-widgets-definitions-radial-gauge.mjs +5 -0
- package/esm2022/widgets/definitions/radial-gauge/index.mjs +33 -0
- package/esm2022/widgets/implementations/datapoints-graph/datapoints-graph-view/datapoints-graph-widget-view.component.mjs +18 -3
- package/esm2022/widgets/implementations/info-gauge/index.mjs +2 -2
- package/esm2022/widgets/implementations/info-gauge/info-gauge-widget-config/gauge.model.mjs +295 -0
- package/esm2022/widgets/implementations/info-gauge/info-gauge-widget-config/info-gauge-widget-config.component.mjs +141 -11
- package/esm2022/widgets/implementations/info-gauge/info-gauge-widget-config/preset-preview/preset-preview.component.mjs +67 -0
- package/esm2022/widgets/implementations/info-gauge/info-gauge-widget-view/info-gauge-widget-view.component.mjs +34 -6
- package/esm2022/widgets/implementations/info-gauge/info-gauge-widget.module.mjs +9 -4
- package/esm2022/widgets/implementations/info-gauge/radial-gauge/radial-gauge.component.mjs +97 -0
- package/esm2022/widgets/implementations/info-gauge/radial-gauge/radial-gauge.service.mjs +369 -0
- package/fesm2022/c8y-ngx-components-echart.mjs +49 -2
- package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-messaging-management.mjs +1225 -0
- package/fesm2022/c8y-ngx-components-messaging-management.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-operations-device-selector.mjs +4 -0
- package/fesm2022/c8y-ngx-components-operations-device-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs +7 -0
- package/fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-cockpit.mjs +2 -0
- package/fesm2022/c8y-ngx-components-widgets-cockpit.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs +40 -0
- package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-widgets-definitions.mjs +1 -0
- package/fesm2022/c8y-ngx-components-widgets-definitions.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +17 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +991 -28
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +49 -22
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/locales/de.po +272 -5
- package/locales/es.po +271 -4
- package/locales/fr.po +272 -5
- package/locales/ja_JP.po +272 -5
- package/locales/ko.po +271 -4
- package/locales/locales.pot +271 -4
- package/locales/nl.po +271 -4
- package/locales/pl.po +271 -4
- package/locales/pt_BR.po +272 -5
- package/locales/zh_CN.po +271 -4
- package/locales/zh_TW.po +272 -5
- package/messaging-management/api/model/backlogQuota.d.ts +14 -0
- package/messaging-management/api/model/backlogQuota.d.ts.map +1 -0
- package/messaging-management/api/model/namespace.d.ts +13 -0
- package/messaging-management/api/model/namespace.d.ts.map +1 -0
- package/messaging-management/api/model/namespaceDetails.d.ts +8 -0
- package/messaging-management/api/model/namespaceDetails.d.ts.map +1 -0
- package/messaging-management/api/model/namespaceList.d.ts +5 -0
- package/messaging-management/api/model/namespaceList.d.ts.map +1 -0
- package/messaging-management/api/model/namespacePolicies.d.ts +10 -0
- package/messaging-management/api/model/namespacePolicies.d.ts.map +1 -0
- package/messaging-management/api/model/namespacePublishers.d.ts +4 -0
- package/messaging-management/api/model/namespacePublishers.d.ts.map +1 -0
- package/messaging-management/api/model/namespaceSubscribers.d.ts +4 -0
- package/messaging-management/api/model/namespaceSubscribers.d.ts.map +1 -0
- package/messaging-management/api/model/namespaceTopics.d.ts +5 -0
- package/messaging-management/api/model/namespaceTopics.d.ts.map +1 -0
- package/messaging-management/api/model/pageStatistics.d.ts +12 -0
- package/messaging-management/api/model/pageStatistics.d.ts.map +1 -0
- package/messaging-management/api/model/pageable.d.ts +8 -0
- package/messaging-management/api/model/pageable.d.ts.map +1 -0
- package/messaging-management/api/model/sortable.d.ts +6 -0
- package/messaging-management/api/model/sortable.d.ts.map +1 -0
- package/messaging-management/api/model/subscriber.d.ts +28 -0
- package/messaging-management/api/model/subscriber.d.ts.map +1 -0
- package/messaging-management/api/model/subscriberFilters.d.ts +13 -0
- package/messaging-management/api/model/subscriberFilters.d.ts.map +1 -0
- package/messaging-management/api/model/subscriberList.d.ts +7 -0
- package/messaging-management/api/model/subscriberList.d.ts.map +1 -0
- package/messaging-management/api/model/subscriberToDelete.d.ts +12 -0
- package/messaging-management/api/model/subscriberToDelete.d.ts.map +1 -0
- package/messaging-management/api/model/topic.d.ts +52 -0
- package/messaging-management/api/model/topic.d.ts.map +1 -0
- package/messaging-management/api/model/topicDetailFilters.d.ts +9 -0
- package/messaging-management/api/model/topicDetailFilters.d.ts.map +1 -0
- package/messaging-management/api/model/topicList.d.ts +7 -0
- package/messaging-management/api/model/topicList.d.ts.map +1 -0
- package/messaging-management/api/model/topicListFilters.d.ts +12 -0
- package/messaging-management/api/model/topicListFilters.d.ts.map +1 -0
- package/messaging-management/api/model/topicType.d.ts +8 -0
- package/messaging-management/api/model/topicType.d.ts.map +1 -0
- package/messaging-management/api/services/messaging-namespaces.service.d.ts +52 -0
- package/messaging-management/api/services/messaging-namespaces.service.d.ts.map +1 -0
- package/messaging-management/api/services/messaging-subscribers.service.d.ts +30 -0
- package/messaging-management/api/services/messaging-subscribers.service.d.ts.map +1 -0
- package/messaging-management/api/services/messaging-topics.service.d.ts +21 -0
- package/messaging-management/api/services/messaging-topics.service.d.ts.map +1 -0
- package/messaging-management/c8y-ngx-components-messaging-management.d.ts.map +1 -0
- package/messaging-management/constants.d.ts +4 -0
- package/messaging-management/constants.d.ts.map +1 -0
- package/messaging-management/index.d.ts +2 -0
- package/messaging-management/index.d.ts.map +1 -0
- package/messaging-management/messaging/namespace-list/namespace-item/namespace-item-card/namespace-item-card.component.d.ts +29 -0
- package/messaging-management/messaging/namespace-list/namespace-item/namespace-item-card/namespace-item-card.component.d.ts.map +1 -0
- package/messaging-management/messaging/namespace-list/namespace-item/namespace-item.component.d.ts +15 -0
- package/messaging-management/messaging/namespace-list/namespace-item/namespace-item.component.d.ts.map +1 -0
- package/messaging-management/messaging/namespace-list/namespace-list.component.d.ts +17 -0
- package/messaging-management/messaging/namespace-list/namespace-list.component.d.ts.map +1 -0
- package/messaging-management/messaging/shared/usage/usage.component.d.ts +40 -0
- package/messaging-management/messaging/shared/usage/usage.component.d.ts.map +1 -0
- package/messaging-management/messaging/topic/topic-list-view.component.d.ts +38 -0
- package/messaging-management/messaging/topic/topic-list-view.component.d.ts.map +1 -0
- package/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-data-grid.service.d.ts +21 -0
- package/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-data-grid.service.d.ts.map +1 -0
- package/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-view.component.d.ts +52 -0
- package/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-view.component.d.ts.map +1 -0
- package/messaging-management/messaging/topic/topics-data-grid.service.d.ts +13 -0
- package/messaging-management/messaging/topic/topics-data-grid.service.d.ts.map +1 -0
- package/messaging-management/messaging-management.guard.d.ts +12 -0
- package/messaging-management/messaging-management.guard.d.ts.map +1 -0
- package/messaging-management/messaging-management.module.d.ts +7 -0
- package/messaging-management/messaging-management.module.d.ts.map +1 -0
- package/messaging-management/navigator/messaging-navigator-factory.d.ts +18 -0
- package/messaging-management/navigator/messaging-navigator-factory.d.ts.map +1 -0
- package/messaging-management/navigator/topic-details-tab.factory.d.ts +15 -0
- package/messaging-management/navigator/topic-details-tab.factory.d.ts.map +1 -0
- package/messaging-management/utils/backlog-quota-limit.pipe.d.ts +13 -0
- package/messaging-management/utils/backlog-quota-limit.pipe.d.ts.map +1 -0
- package/messaging-management/utils/namespace-props.d.ts +10 -0
- package/messaging-management/utils/namespace-props.d.ts.map +1 -0
- package/messaging-management/utils/time-to-live.pipe.d.ts +16 -0
- package/messaging-management/utils/time-to-live.pipe.d.ts.map +1 -0
- package/operations/device-selector/device-selector.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/widgets/cockpit/index.d.ts +29 -0
- package/widgets/cockpit/index.d.ts.map +1 -1
- package/widgets/cockpit-exports/index.d.ts +6 -0
- package/widgets/cockpit-exports/index.d.ts.map +1 -1
- package/widgets/definitions/index.d.ts +1 -0
- package/widgets/definitions/index.d.ts.map +1 -1
- package/widgets/definitions/radial-gauge/c8y-ngx-components-widgets-definitions-radial-gauge.d.ts.map +1 -0
- package/widgets/definitions/radial-gauge/index.d.ts +33 -0
- package/widgets/definitions/radial-gauge/index.d.ts.map +1 -0
- package/widgets/implementations/datapoints-graph/datapoints-graph-view/datapoints-graph-widget-view.component.d.ts +2 -0
- package/widgets/implementations/datapoints-graph/datapoints-graph-view/datapoints-graph-widget-view.component.d.ts.map +1 -1
- package/widgets/implementations/info-gauge/index.d.ts +1 -1
- package/widgets/implementations/info-gauge/index.d.ts.map +1 -1
- package/widgets/implementations/info-gauge/info-gauge-widget-config/gauge.model.d.ts +339 -0
- package/widgets/implementations/info-gauge/info-gauge-widget-config/gauge.model.d.ts.map +1 -0
- package/widgets/implementations/info-gauge/info-gauge-widget-config/info-gauge-widget-config.component.d.ts +27 -7
- package/widgets/implementations/info-gauge/info-gauge-widget-config/info-gauge-widget-config.component.d.ts.map +1 -1
- package/widgets/implementations/info-gauge/info-gauge-widget-config/preset-preview/preset-preview.component.d.ts +33 -0
- package/widgets/implementations/info-gauge/info-gauge-widget-config/preset-preview/preset-preview.component.d.ts.map +1 -0
- package/widgets/implementations/info-gauge/info-gauge-widget-view/info-gauge-widget-view.component.d.ts +7 -3
- package/widgets/implementations/info-gauge/info-gauge-widget-view/info-gauge-widget-view.component.d.ts.map +1 -1
- package/widgets/implementations/info-gauge/info-gauge-widget.module.d.ts +2 -1
- package/widgets/implementations/info-gauge/info-gauge-widget.module.d.ts.map +1 -1
- package/widgets/implementations/info-gauge/radial-gauge/radial-gauge.component.d.ts +37 -0
- package/widgets/implementations/info-gauge/radial-gauge/radial-gauge.component.d.ts.map +1 -0
- package/widgets/implementations/info-gauge/radial-gauge/radial-gauge.service.d.ts +146 -0
- package/widgets/implementations/info-gauge/radial-gauge/radial-gauge.service.d.ts.map +1 -0
- package/esm2022/widgets/implementations/info-gauge/info-gauge.model.mjs +0 -2
- package/widgets/implementations/info-gauge/info-gauge.model.d.ts +0 -7
- package/widgets/implementations/info-gauge/info-gauge.model.d.ts.map +0 -1
|
@@ -1,24 +1,40 @@
|
|
|
1
1
|
import { PipeTransform } from '@angular/core';
|
|
2
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
interface BytesOptions {
|
|
5
|
+
precision?: number;
|
|
6
|
+
binary?: boolean;
|
|
7
|
+
}
|
|
3
8
|
/**
|
|
4
9
|
* Converts the file size to a readable format.
|
|
5
|
-
*
|
|
10
|
+
* Supports both decimal (default) and binary units.
|
|
6
11
|
*
|
|
12
|
+
* Usage:
|
|
7
13
|
* ```html
|
|
8
|
-
*
|
|
14
|
+
* {{ myData | bytes }} <!-- e.g. 100.1 MB (decimal) -->
|
|
15
|
+
* {{ myData | bytes:2 }} <!-- e.g. 100.12 MB (decimal) -->
|
|
16
|
+
* {{ myData | bytes:1:true }} <!-- e.g. 97.7 MiB (binary) -->
|
|
17
|
+
* {{ myData | bytes:{binary: true} }} <!-- e.g. 97.7 MiB (binary) -->
|
|
18
|
+
* {{ myData | bytes:{precision: 2, binary: true} }} <!-- e.g. 97.66 MiB (binary) -->
|
|
9
19
|
* ```
|
|
10
20
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
21
|
+
* @param value The number of bytes to convert
|
|
22
|
+
* @param precisionOrOptions Number of decimal places or options object
|
|
23
|
+
* @param binary Whether to use binary (1024) or decimal (1000) units (legacy parameter)
|
|
24
|
+
*
|
|
25
|
+
* Options object properties:
|
|
26
|
+
* - precision: number of decimal places (default: 1)
|
|
27
|
+
* - binary: whether to use binary units (default: false)
|
|
28
|
+
*
|
|
29
|
+
* Decimal units: bytes, kB, MB, GB, TB, PB
|
|
30
|
+
* Binary units: bytes, KiB, MiB, GiB, TiB, PiB
|
|
17
31
|
*/
|
|
18
32
|
export declare class BytesPipe implements PipeTransform {
|
|
19
|
-
static bytes(bytes: number,
|
|
20
|
-
|
|
33
|
+
static bytes(bytes: number, precisionOrOptions?: number | BytesOptions, binary?: boolean, translateService?: TranslateService): string | number;
|
|
34
|
+
private translateService;
|
|
35
|
+
transform(value: number, precisionOrOptions?: number | BytesOptions, binary?: boolean): string | number;
|
|
21
36
|
static ɵfac: i0.ɵɵFactoryDeclaration<BytesPipe, never>;
|
|
22
37
|
static ɵpipe: i0.ɵɵPipeDeclaration<BytesPipe, "bytes", true>;
|
|
23
38
|
}
|
|
39
|
+
export {};
|
|
24
40
|
//# sourceMappingURL=bytes.pipe.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bytes.pipe.d.ts","sourceRoot":"","sources":["../../../core/common/bytes.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"bytes.pipe.d.ts","sourceRoot":"","sources":["../../../core/common/bytes.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,aAAa,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;;AAGvD,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBACa,SAAU,YAAW,aAAa;IAC7C,MAAM,CAAC,KAAK,CACV,KAAK,EAAE,MAAM,EACb,kBAAkB,GAAE,MAAM,GAAG,YAAgB,EAC7C,MAAM,UAAQ,EACd,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,MAAM,GAAG,MAAM;IAiClB,OAAO,CAAC,gBAAgB,CAA4B;IAEpD,SAAS,CACP,KAAK,EAAE,MAAM,EACb,kBAAkB,GAAE,MAAM,GAAG,YAAgB,EAC7C,MAAM,UAAQ,GACb,MAAM,GAAG,MAAM;yCA7CP,SAAS;uCAAT,SAAS;CAgDrB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit } from '@angular/core';
|
|
1
|
+
import { ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
|
|
2
2
|
import type { ECharts, EChartsOption } from 'echarts';
|
|
3
|
-
import { AlarmOrEventExtended, DatapointsGraphKPIDetails, DatapointsGraphWidgetConfig } from './models';
|
|
3
|
+
import { AlarmDetailsExtended, AlarmOrEventExtended, DatapointsGraphKPIDetails, DatapointsGraphWidgetConfig, EventDetailsExtended } from './models';
|
|
4
4
|
import { Observable } from 'rxjs';
|
|
5
5
|
import { DynamicComponentAlertAggregator } from '@c8y/ngx-components';
|
|
6
6
|
import { IAlarm, IEvent } from '@c8y/client';
|
|
@@ -32,8 +32,9 @@ export declare class ChartsComponent implements OnChanges, OnInit, OnDestroy {
|
|
|
32
32
|
private readonly chartEventsService;
|
|
33
33
|
private readonly chartAlarmsService;
|
|
34
34
|
private readonly widgetTimeContextDateRangeService;
|
|
35
|
+
private loadedTimeRange;
|
|
35
36
|
constructor();
|
|
36
|
-
ngOnChanges(): void;
|
|
37
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
37
38
|
ngOnInit(): void;
|
|
38
39
|
ngOnDestroy(): void;
|
|
39
40
|
onChartInit(ec: ECharts): void;
|
|
@@ -47,6 +48,16 @@ export declare class ChartsComponent implements OnChanges, OnInit, OnDestroy {
|
|
|
47
48
|
saveAsImage(): void;
|
|
48
49
|
loadMoreData(): void;
|
|
49
50
|
debounce<T extends (...args: any[]) => void>(func: T, wait: number): (...args: Parameters<T>) => void;
|
|
51
|
+
/**
|
|
52
|
+
* Toggles the visibility of a series in the chart based on the provided datapoint.
|
|
53
|
+
* @param datapoint - The datapoint to toggle visibility for.
|
|
54
|
+
*/
|
|
55
|
+
toggleDatapointSeriesVisibility(datapoint: DatapointsGraphKPIDetails): void;
|
|
56
|
+
/**
|
|
57
|
+
* Toggles the visibility of a series in the chart based on the provided alarm or event.
|
|
58
|
+
* @param alarmOrEvent - The alarm or event to toggle visibility for.
|
|
59
|
+
*/
|
|
60
|
+
toggleAlarmEventSeriesVisibility(alarmOrEvent: AlarmDetailsExtended | EventDetailsExtended): void;
|
|
50
61
|
private getDefaultChartOptions;
|
|
51
62
|
private getMarkedAreaData;
|
|
52
63
|
private getMarkedLineData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charts.component.d.ts","sourceRoot":"","sources":["../../echart/charts.component.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,UAAU,EACV,YAAY,EAGZ,SAAS,EACT,SAAS,EACT,MAAM,
|
|
1
|
+
{"version":3,"file":"charts.component.d.ts","sourceRoot":"","sources":["../../echart/charts.component.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,UAAU,EACV,YAAY,EAGZ,SAAS,EACT,SAAS,EACT,MAAM,EAEN,aAAa,EAEd,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAgB,MAAM,SAAS,CAAC;AACpE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAE3B,oBAAoB,EAGrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAA4C,UAAU,EAAM,MAAM,MAAM,CAAC;AAGhF,OAAO,EAKL,+BAA+B,EAKhC,MAAM,qBAAqB,CAAC;AAe7B,OAAO,EAAgC,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAU3E,OAAO,EAAE,QAAQ,EAAa,MAAM,qCAAqC,CAAC;;AAE1E,qBA2Ba,eAAgB,YAAW,SAAS,EAAE,MAAM,EAAE,SAAS;IAClE,YAAY,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;IACxC,eAAe,EAAG,OAAO,CAAC;IAC1B,YAAY,UAAS;IACrB,MAAM,EAAE,MAAM,EAAE,CAAM;IACtB,MAAM,EAAE,MAAM,EAAE,CAAM;IACtB,cAAc,UAAS;IACd,MAAM,EAAG,2BAA2B,CAAC;IACrC,MAAM,EAAG,+BAA+B,CAAC;IACxC,qBAAqB;kBACnB,IAAI;gBACN,IAAI;mBACD,QAAQ,CAAC,IAAI,CAAC;OACtB;IACK,yBAAyB,yEAE/B;IACM,kBAAkB,0CAAiD;IACnE,qBAAqB,uCAA8C;IACnE,mBAAmB,wBAA+B;IACxC,KAAK,EAAE,UAAU,CAAC;IACtC,OAAO,CAAC,oBAAoB,CAA0C;IAEtE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoC;IACvE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiC;IACvE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgC;IACrE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8B;IACjE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8B;IACjE,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAA6C;IAC/F,OAAO,CAAC,eAAe,CAAqD;;IAyC5E,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAezC,QAAQ;IASR,WAAW;IAIX,WAAW,CAAC,EAAE,EAAE,OAAO;IAwEvB,YAAY,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAAG,IAAI;IAoC1D,YAAY,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO;IAIlC,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAIlC,WAAW,IAAI,IAAI;IAgBnB,YAAY,IAAI,IAAI;IA0BpB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EACzC,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,MAAM,GACX,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI;IAQnC;;;OAGG;IACH,+BAA+B,CAAC,SAAS,EAAE,yBAAyB,GAAG,IAAI;IAY3E;;;OAGG;IACH,gCAAgC,CAC9B,YAAY,EAAE,oBAAoB,GAAG,oBAAoB,GACxD,IAAI;IAiBP,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,iBAAiB;YA8BX,mBAAmB;IA6BjC,OAAO,CAAC,uBAAuB;YAqBjB,eAAe;YAoBf,eAAe;IA4E7B,OAAO,CAAC,yBAAyB;IA4CjC,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,YAAY;yCAnkBT,eAAe;2CAAf,eAAe;CA+lB3B"}
|
|
@@ -1,37 +1,66 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
1
|
+
import { inject, Pipe } from '@angular/core';
|
|
2
|
+
import { gettext } from '@c8y/ngx-components/gettext';
|
|
3
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
2
4
|
import { isNaN, isFinite } from 'lodash-es';
|
|
3
5
|
import * as i0 from "@angular/core";
|
|
4
6
|
/**
|
|
5
7
|
* Converts the file size to a readable format.
|
|
6
|
-
*
|
|
8
|
+
* Supports both decimal (default) and binary units.
|
|
7
9
|
*
|
|
10
|
+
* Usage:
|
|
8
11
|
* ```html
|
|
9
|
-
*
|
|
12
|
+
* {{ myData | bytes }} <!-- e.g. 100.1 MB (decimal) -->
|
|
13
|
+
* {{ myData | bytes:2 }} <!-- e.g. 100.12 MB (decimal) -->
|
|
14
|
+
* {{ myData | bytes:1:true }} <!-- e.g. 97.7 MiB (binary) -->
|
|
15
|
+
* {{ myData | bytes:{binary: true} }} <!-- e.g. 97.7 MiB (binary) -->
|
|
16
|
+
* {{ myData | bytes:{precision: 2, binary: true} }} <!-- e.g. 97.66 MiB (binary) -->
|
|
10
17
|
* ```
|
|
11
18
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
19
|
+
* @param value The number of bytes to convert
|
|
20
|
+
* @param precisionOrOptions Number of decimal places or options object
|
|
21
|
+
* @param binary Whether to use binary (1024) or decimal (1000) units (legacy parameter)
|
|
22
|
+
*
|
|
23
|
+
* Options object properties:
|
|
24
|
+
* - precision: number of decimal places (default: 1)
|
|
25
|
+
* - binary: whether to use binary units (default: false)
|
|
26
|
+
*
|
|
27
|
+
* Decimal units: bytes, kB, MB, GB, TB, PB
|
|
28
|
+
* Binary units: bytes, KiB, MiB, GiB, TiB, PiB
|
|
18
29
|
*/
|
|
19
30
|
export class BytesPipe {
|
|
20
|
-
|
|
31
|
+
constructor() {
|
|
32
|
+
this.translateService = inject(TranslateService);
|
|
33
|
+
}
|
|
34
|
+
static bytes(bytes, precisionOrOptions = 1, binary = false, translateService) {
|
|
35
|
+
let bytesLabel = 'bytes';
|
|
36
|
+
if (translateService) {
|
|
37
|
+
bytesLabel = translateService.instant(gettext('bytes'));
|
|
38
|
+
}
|
|
21
39
|
if (isNaN(bytes) || !isFinite(bytes)) {
|
|
22
40
|
return '-';
|
|
23
41
|
}
|
|
24
42
|
if (bytes === 0) {
|
|
25
|
-
return 0
|
|
43
|
+
return `0 ${bytesLabel}`;
|
|
44
|
+
}
|
|
45
|
+
let precision;
|
|
46
|
+
let isBinary = binary;
|
|
47
|
+
if (typeof precisionOrOptions === 'object') {
|
|
48
|
+
precision = precisionOrOptions.precision ?? 1;
|
|
49
|
+
isBinary = precisionOrOptions.binary ?? false;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
precision = precisionOrOptions;
|
|
26
53
|
}
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
const
|
|
54
|
+
const base = isBinary ? 1024 : 1000;
|
|
55
|
+
const decimalUnits = [bytesLabel, 'kB', 'MB', 'GB', 'TB', 'PB'];
|
|
56
|
+
const binaryUnits = [bytesLabel, 'KiB', 'MiB', 'GiB', 'TiB', 'PiB'];
|
|
57
|
+
const units = isBinary ? binaryUnits : decimalUnits;
|
|
58
|
+
const num = Math.floor(Math.log(bytes) / Math.log(base));
|
|
59
|
+
const result = (bytes / base ** Math.floor(num)).toFixed(precision);
|
|
31
60
|
return `${result} ${units[num]}`;
|
|
32
61
|
}
|
|
33
|
-
transform(value,
|
|
34
|
-
return BytesPipe.bytes(value,
|
|
62
|
+
transform(value, precisionOrOptions = 1, binary = false) {
|
|
63
|
+
return BytesPipe.bytes(value, precisionOrOptions, binary, this.translateService);
|
|
35
64
|
}
|
|
36
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
37
66
|
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: BytesPipe, isStandalone: true, name: "bytes" }); }
|
|
@@ -40,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
40
69
|
type: Pipe,
|
|
41
70
|
args: [{ name: 'bytes', standalone: true }]
|
|
42
71
|
}] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZXMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvY29tbW9uL2J5dGVzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFPNUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBRUgsTUFBTSxPQUFPLFNBQVM7SUFEdEI7UUF3Q1UscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0FTckQ7SUEvQ0MsTUFBTSxDQUFDLEtBQUssQ0FDVixLQUFhLEVBQ2IscUJBQTRDLENBQUMsRUFDN0MsTUFBTSxHQUFHLEtBQUssRUFDZCxnQkFBbUM7UUFFbkMsSUFBSSxVQUFVLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixVQUFVLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztRQUNELElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxTQUFpQixDQUFDO1FBQ3RCLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUV0QixJQUFJLE9BQU8sa0JBQWtCLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDM0MsU0FBUyxHQUFHLGtCQUFrQixDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUM7WUFDOUMsUUFBUSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUM7UUFDaEQsQ0FBQzthQUFNLENBQUM7WUFDTixTQUFTLEdBQUcsa0JBQWtCLENBQUM7UUFDakMsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDcEMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sV0FBVyxHQUFHLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO1FBRXBELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEUsT0FBTyxHQUFHLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBSUQsU0FBUyxDQUNQLEtBQWEsRUFDYixxQkFBNEMsQ0FBQyxFQUM3QyxNQUFNLEdBQUcsS0FBSztRQUVkLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25GLENBQUM7K0dBL0NVLFNBQVM7NkdBQVQsU0FBUzs7NEZBQVQsU0FBUztrQkFEckIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZ2V0dGV4dCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBpc05hTiwgaXNGaW5pdGUgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbnRlcmZhY2UgQnl0ZXNPcHRpb25zIHtcbiAgcHJlY2lzaW9uPzogbnVtYmVyO1xuICBiaW5hcnk/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIHRoZSBmaWxlIHNpemUgdG8gYSByZWFkYWJsZSBmb3JtYXQuXG4gKiBTdXBwb3J0cyBib3RoIGRlY2ltYWwgKGRlZmF1bHQpIGFuZCBiaW5hcnkgdW5pdHMuXG4gKlxuICogVXNhZ2U6XG4gKiBgYGBodG1sXG4gKiB7eyBteURhdGEgfCBieXRlcyB9fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gZS5nLiAxMDAuMSBNQiAoZGVjaW1hbCkgLS0+XG4gKiB7eyBteURhdGEgfCBieXRlczoyIH19ICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBlLmcuIDEwMC4xMiBNQiAoZGVjaW1hbCkgLS0+XG4gKiB7eyBteURhdGEgfCBieXRlczoxOnRydWUgfX0gICAgICAgICAgICAgICAgICAgICAgPCEtLSBlLmcuIDk3LjcgTWlCIChiaW5hcnkpIC0tPlxuICoge3sgbXlEYXRhIHwgYnl0ZXM6e2JpbmFyeTogdHJ1ZX0gfX0gICAgICAgICAgICAgIDwhLS0gZS5nLiA5Ny43IE1pQiAoYmluYXJ5KSAtLT5cbiAqIHt7IG15RGF0YSB8IGJ5dGVzOntwcmVjaXNpb246IDIsIGJpbmFyeTogdHJ1ZX0gfX0gPCEtLSBlLmcuIDk3LjY2IE1pQiAoYmluYXJ5KSAtLT5cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB2YWx1ZSBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIGNvbnZlcnRcbiAqIEBwYXJhbSBwcmVjaXNpb25Pck9wdGlvbnMgTnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIG9yIG9wdGlvbnMgb2JqZWN0XG4gKiBAcGFyYW0gYmluYXJ5IFdoZXRoZXIgdG8gdXNlIGJpbmFyeSAoMTAyNCkgb3IgZGVjaW1hbCAoMTAwMCkgdW5pdHMgKGxlZ2FjeSBwYXJhbWV0ZXIpXG4gKlxuICogT3B0aW9ucyBvYmplY3QgcHJvcGVydGllczpcbiAqIC0gcHJlY2lzaW9uOiBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgKGRlZmF1bHQ6IDEpXG4gKiAtIGJpbmFyeTogd2hldGhlciB0byB1c2UgYmluYXJ5IHVuaXRzIChkZWZhdWx0OiBmYWxzZSlcbiAqXG4gKiBEZWNpbWFsIHVuaXRzOiBieXRlcywga0IsIE1CLCBHQiwgVEIsIFBCXG4gKiBCaW5hcnkgdW5pdHM6IGJ5dGVzLCBLaUIsIE1pQiwgR2lCLCBUaUIsIFBpQlxuICovXG5AUGlwZSh7IG5hbWU6ICdieXRlcycsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBCeXRlc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgc3RhdGljIGJ5dGVzKFxuICAgIGJ5dGVzOiBudW1iZXIsXG4gICAgcHJlY2lzaW9uT3JPcHRpb25zOiBudW1iZXIgfCBCeXRlc09wdGlvbnMgPSAxLFxuICAgIGJpbmFyeSA9IGZhbHNlLFxuICAgIHRyYW5zbGF0ZVNlcnZpY2U/OiBUcmFuc2xhdGVTZXJ2aWNlXG4gICk6IHN0cmluZyB8IG51bWJlciB7XG4gICAgbGV0IGJ5dGVzTGFiZWwgPSAnYnl0ZXMnO1xuICAgIGlmICh0cmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgICBieXRlc0xhYmVsID0gdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGdldHRleHQoJ2J5dGVzJykpO1xuICAgIH1cblxuICAgIGlmIChpc05hTihieXRlcykgfHwgIWlzRmluaXRlKGJ5dGVzKSkge1xuICAgICAgcmV0dXJuICctJztcbiAgICB9XG4gICAgaWYgKGJ5dGVzID09PSAwKSB7XG4gICAgICByZXR1cm4gYDAgJHtieXRlc0xhYmVsfWA7XG4gICAgfVxuICAgIGxldCBwcmVjaXNpb246IG51bWJlcjtcbiAgICBsZXQgaXNCaW5hcnkgPSBiaW5hcnk7XG5cbiAgICBpZiAodHlwZW9mIHByZWNpc2lvbk9yT3B0aW9ucyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHByZWNpc2lvbiA9IHByZWNpc2lvbk9yT3B0aW9ucy5wcmVjaXNpb24gPz8gMTtcbiAgICAgIGlzQmluYXJ5ID0gcHJlY2lzaW9uT3JPcHRpb25zLmJpbmFyeSA/PyBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJlY2lzaW9uID0gcHJlY2lzaW9uT3JPcHRpb25zO1xuICAgIH1cblxuICAgIGNvbnN0IGJhc2UgPSBpc0JpbmFyeSA/IDEwMjQgOiAxMDAwO1xuICAgIGNvbnN0IGRlY2ltYWxVbml0cyA9IFtieXRlc0xhYmVsLCAna0InLCAnTUInLCAnR0InLCAnVEInLCAnUEInXTtcbiAgICBjb25zdCBiaW5hcnlVbml0cyA9IFtieXRlc0xhYmVsLCAnS2lCJywgJ01pQicsICdHaUInLCAnVGlCJywgJ1BpQiddO1xuICAgIGNvbnN0IHVuaXRzID0gaXNCaW5hcnkgPyBiaW5hcnlVbml0cyA6IGRlY2ltYWxVbml0cztcblxuICAgIGNvbnN0IG51bSA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coYmFzZSkpO1xuICAgIGNvbnN0IHJlc3VsdCA9IChieXRlcyAvIGJhc2UgKiogTWF0aC5mbG9vcihudW0pKS50b0ZpeGVkKHByZWNpc2lvbik7XG5cbiAgICByZXR1cm4gYCR7cmVzdWx0fSAke3VuaXRzW251bV19YDtcbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICB0cmFuc2Zvcm0oXG4gICAgdmFsdWU6IG51bWJlcixcbiAgICBwcmVjaXNpb25Pck9wdGlvbnM6IG51bWJlciB8IEJ5dGVzT3B0aW9ucyA9IDEsXG4gICAgYmluYXJ5ID0gZmFsc2VcbiAgKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICByZXR1cm4gQnl0ZXNQaXBlLmJ5dGVzKHZhbHVlLCBwcmVjaXNpb25Pck9wdGlvbnMsIGJpbmFyeSwgdGhpcy50cmFuc2xhdGVTZXJ2aWNlKTtcbiAgfVxufVxuIl19
|