@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.
Files changed (207) hide show
  1. package/core/common/bytes.pipe.d.ts +26 -10
  2. package/core/common/bytes.pipe.d.ts.map +1 -1
  3. package/echart/charts.component.d.ts +14 -3
  4. package/echart/charts.component.d.ts.map +1 -1
  5. package/esm2022/core/common/bytes.pipe.mjs +47 -18
  6. package/esm2022/core/data-grid/data-grid.component.mjs +3 -3
  7. package/esm2022/echart/charts.component.mjs +50 -3
  8. package/esm2022/messaging-management/api/model/backlogQuota.mjs +2 -0
  9. package/esm2022/messaging-management/api/model/namespace.mjs +2 -0
  10. package/esm2022/messaging-management/api/model/namespaceDetails.mjs +2 -0
  11. package/esm2022/messaging-management/api/model/namespaceList.mjs +2 -0
  12. package/esm2022/messaging-management/api/model/namespacePolicies.mjs +2 -0
  13. package/esm2022/messaging-management/api/model/namespacePublishers.mjs +2 -0
  14. package/esm2022/messaging-management/api/model/namespaceSubscribers.mjs +2 -0
  15. package/esm2022/messaging-management/api/model/namespaceTopics.mjs +2 -0
  16. package/esm2022/messaging-management/api/model/pageStatistics.mjs +2 -0
  17. package/esm2022/messaging-management/api/model/pageable.mjs +2 -0
  18. package/esm2022/messaging-management/api/model/sortable.mjs +2 -0
  19. package/esm2022/messaging-management/api/model/subscriber.mjs +2 -0
  20. package/esm2022/messaging-management/api/model/subscriberFilters.mjs +2 -0
  21. package/esm2022/messaging-management/api/model/subscriberList.mjs +2 -0
  22. package/esm2022/messaging-management/api/model/subscriberToDelete.mjs +2 -0
  23. package/esm2022/messaging-management/api/model/topic.mjs +2 -0
  24. package/esm2022/messaging-management/api/model/topicDetailFilters.mjs +2 -0
  25. package/esm2022/messaging-management/api/model/topicList.mjs +2 -0
  26. package/esm2022/messaging-management/api/model/topicListFilters.mjs +2 -0
  27. package/esm2022/messaging-management/api/model/topicType.mjs +9 -0
  28. package/esm2022/messaging-management/api/services/messaging-namespaces.service.mjs +83 -0
  29. package/esm2022/messaging-management/api/services/messaging-subscribers.service.mjs +55 -0
  30. package/esm2022/messaging-management/api/services/messaging-topics.service.mjs +48 -0
  31. package/esm2022/messaging-management/c8y-ngx-components-messaging-management.mjs +5 -0
  32. package/esm2022/messaging-management/constants.mjs +4 -0
  33. package/esm2022/messaging-management/index.mjs +2 -0
  34. package/esm2022/messaging-management/messaging/namespace-list/namespace-item/namespace-item-card/namespace-item-card.component.mjs +43 -0
  35. package/esm2022/messaging-management/messaging/namespace-list/namespace-item/namespace-item.component.mjs +36 -0
  36. package/esm2022/messaging-management/messaging/namespace-list/namespace-list.component.mjs +51 -0
  37. package/esm2022/messaging-management/messaging/shared/usage/usage.component.mjs +68 -0
  38. package/esm2022/messaging-management/messaging/topic/topic-list-view.component.mjs +81 -0
  39. package/esm2022/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-data-grid.service.mjs +220 -0
  40. package/esm2022/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-view.component.mjs +137 -0
  41. package/esm2022/messaging-management/messaging/topic/topics-data-grid.service.mjs +113 -0
  42. package/esm2022/messaging-management/messaging-management.guard.mjs +40 -0
  43. package/esm2022/messaging-management/messaging-management.module.mjs +72 -0
  44. package/esm2022/messaging-management/navigator/messaging-navigator-factory.mjs +55 -0
  45. package/esm2022/messaging-management/navigator/topic-details-tab.factory.mjs +33 -0
  46. package/esm2022/messaging-management/utils/backlog-quota-limit.pipe.mjs +32 -0
  47. package/esm2022/messaging-management/utils/namespace-props.mjs +23 -0
  48. package/esm2022/messaging-management/utils/time-to-live.pipe.mjs +122 -0
  49. package/esm2022/operations/device-selector/device-selector.component.mjs +5 -1
  50. package/esm2022/widgets/cockpit/index.mjs +3 -1
  51. package/esm2022/widgets/cockpit-exports/index.mjs +8 -1
  52. package/esm2022/widgets/definitions/index.mjs +2 -1
  53. package/esm2022/widgets/definitions/radial-gauge/c8y-ngx-components-widgets-definitions-radial-gauge.mjs +5 -0
  54. package/esm2022/widgets/definitions/radial-gauge/index.mjs +33 -0
  55. package/esm2022/widgets/implementations/datapoints-graph/datapoints-graph-view/datapoints-graph-widget-view.component.mjs +18 -3
  56. package/esm2022/widgets/implementations/info-gauge/index.mjs +2 -2
  57. package/esm2022/widgets/implementations/info-gauge/info-gauge-widget-config/gauge.model.mjs +295 -0
  58. package/esm2022/widgets/implementations/info-gauge/info-gauge-widget-config/info-gauge-widget-config.component.mjs +141 -11
  59. package/esm2022/widgets/implementations/info-gauge/info-gauge-widget-config/preset-preview/preset-preview.component.mjs +67 -0
  60. package/esm2022/widgets/implementations/info-gauge/info-gauge-widget-view/info-gauge-widget-view.component.mjs +34 -6
  61. package/esm2022/widgets/implementations/info-gauge/info-gauge-widget.module.mjs +9 -4
  62. package/esm2022/widgets/implementations/info-gauge/radial-gauge/radial-gauge.component.mjs +97 -0
  63. package/esm2022/widgets/implementations/info-gauge/radial-gauge/radial-gauge.service.mjs +369 -0
  64. package/fesm2022/c8y-ngx-components-echart.mjs +49 -2
  65. package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
  66. package/fesm2022/c8y-ngx-components-messaging-management.mjs +1225 -0
  67. package/fesm2022/c8y-ngx-components-messaging-management.mjs.map +1 -0
  68. package/fesm2022/c8y-ngx-components-operations-device-selector.mjs +4 -0
  69. package/fesm2022/c8y-ngx-components-operations-device-selector.mjs.map +1 -1
  70. package/fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs +7 -0
  71. package/fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs.map +1 -1
  72. package/fesm2022/c8y-ngx-components-widgets-cockpit.mjs +2 -0
  73. package/fesm2022/c8y-ngx-components-widgets-cockpit.mjs.map +1 -1
  74. package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs +40 -0
  75. package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs.map +1 -0
  76. package/fesm2022/c8y-ngx-components-widgets-definitions.mjs +1 -0
  77. package/fesm2022/c8y-ngx-components-widgets-definitions.mjs.map +1 -1
  78. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +17 -2
  79. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
  80. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +991 -28
  81. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
  82. package/fesm2022/c8y-ngx-components.mjs +49 -22
  83. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  84. package/locales/de.po +272 -5
  85. package/locales/es.po +271 -4
  86. package/locales/fr.po +272 -5
  87. package/locales/ja_JP.po +272 -5
  88. package/locales/ko.po +271 -4
  89. package/locales/locales.pot +271 -4
  90. package/locales/nl.po +271 -4
  91. package/locales/pl.po +271 -4
  92. package/locales/pt_BR.po +272 -5
  93. package/locales/zh_CN.po +271 -4
  94. package/locales/zh_TW.po +272 -5
  95. package/messaging-management/api/model/backlogQuota.d.ts +14 -0
  96. package/messaging-management/api/model/backlogQuota.d.ts.map +1 -0
  97. package/messaging-management/api/model/namespace.d.ts +13 -0
  98. package/messaging-management/api/model/namespace.d.ts.map +1 -0
  99. package/messaging-management/api/model/namespaceDetails.d.ts +8 -0
  100. package/messaging-management/api/model/namespaceDetails.d.ts.map +1 -0
  101. package/messaging-management/api/model/namespaceList.d.ts +5 -0
  102. package/messaging-management/api/model/namespaceList.d.ts.map +1 -0
  103. package/messaging-management/api/model/namespacePolicies.d.ts +10 -0
  104. package/messaging-management/api/model/namespacePolicies.d.ts.map +1 -0
  105. package/messaging-management/api/model/namespacePublishers.d.ts +4 -0
  106. package/messaging-management/api/model/namespacePublishers.d.ts.map +1 -0
  107. package/messaging-management/api/model/namespaceSubscribers.d.ts +4 -0
  108. package/messaging-management/api/model/namespaceSubscribers.d.ts.map +1 -0
  109. package/messaging-management/api/model/namespaceTopics.d.ts +5 -0
  110. package/messaging-management/api/model/namespaceTopics.d.ts.map +1 -0
  111. package/messaging-management/api/model/pageStatistics.d.ts +12 -0
  112. package/messaging-management/api/model/pageStatistics.d.ts.map +1 -0
  113. package/messaging-management/api/model/pageable.d.ts +8 -0
  114. package/messaging-management/api/model/pageable.d.ts.map +1 -0
  115. package/messaging-management/api/model/sortable.d.ts +6 -0
  116. package/messaging-management/api/model/sortable.d.ts.map +1 -0
  117. package/messaging-management/api/model/subscriber.d.ts +28 -0
  118. package/messaging-management/api/model/subscriber.d.ts.map +1 -0
  119. package/messaging-management/api/model/subscriberFilters.d.ts +13 -0
  120. package/messaging-management/api/model/subscriberFilters.d.ts.map +1 -0
  121. package/messaging-management/api/model/subscriberList.d.ts +7 -0
  122. package/messaging-management/api/model/subscriberList.d.ts.map +1 -0
  123. package/messaging-management/api/model/subscriberToDelete.d.ts +12 -0
  124. package/messaging-management/api/model/subscriberToDelete.d.ts.map +1 -0
  125. package/messaging-management/api/model/topic.d.ts +52 -0
  126. package/messaging-management/api/model/topic.d.ts.map +1 -0
  127. package/messaging-management/api/model/topicDetailFilters.d.ts +9 -0
  128. package/messaging-management/api/model/topicDetailFilters.d.ts.map +1 -0
  129. package/messaging-management/api/model/topicList.d.ts +7 -0
  130. package/messaging-management/api/model/topicList.d.ts.map +1 -0
  131. package/messaging-management/api/model/topicListFilters.d.ts +12 -0
  132. package/messaging-management/api/model/topicListFilters.d.ts.map +1 -0
  133. package/messaging-management/api/model/topicType.d.ts +8 -0
  134. package/messaging-management/api/model/topicType.d.ts.map +1 -0
  135. package/messaging-management/api/services/messaging-namespaces.service.d.ts +52 -0
  136. package/messaging-management/api/services/messaging-namespaces.service.d.ts.map +1 -0
  137. package/messaging-management/api/services/messaging-subscribers.service.d.ts +30 -0
  138. package/messaging-management/api/services/messaging-subscribers.service.d.ts.map +1 -0
  139. package/messaging-management/api/services/messaging-topics.service.d.ts +21 -0
  140. package/messaging-management/api/services/messaging-topics.service.d.ts.map +1 -0
  141. package/messaging-management/c8y-ngx-components-messaging-management.d.ts.map +1 -0
  142. package/messaging-management/constants.d.ts +4 -0
  143. package/messaging-management/constants.d.ts.map +1 -0
  144. package/messaging-management/index.d.ts +2 -0
  145. package/messaging-management/index.d.ts.map +1 -0
  146. package/messaging-management/messaging/namespace-list/namespace-item/namespace-item-card/namespace-item-card.component.d.ts +29 -0
  147. package/messaging-management/messaging/namespace-list/namespace-item/namespace-item-card/namespace-item-card.component.d.ts.map +1 -0
  148. package/messaging-management/messaging/namespace-list/namespace-item/namespace-item.component.d.ts +15 -0
  149. package/messaging-management/messaging/namespace-list/namespace-item/namespace-item.component.d.ts.map +1 -0
  150. package/messaging-management/messaging/namespace-list/namespace-list.component.d.ts +17 -0
  151. package/messaging-management/messaging/namespace-list/namespace-list.component.d.ts.map +1 -0
  152. package/messaging-management/messaging/shared/usage/usage.component.d.ts +40 -0
  153. package/messaging-management/messaging/shared/usage/usage.component.d.ts.map +1 -0
  154. package/messaging-management/messaging/topic/topic-list-view.component.d.ts +38 -0
  155. package/messaging-management/messaging/topic/topic-list-view.component.d.ts.map +1 -0
  156. package/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-data-grid.service.d.ts +21 -0
  157. package/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-data-grid.service.d.ts.map +1 -0
  158. package/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-view.component.d.ts +52 -0
  159. package/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-view.component.d.ts.map +1 -0
  160. package/messaging-management/messaging/topic/topics-data-grid.service.d.ts +13 -0
  161. package/messaging-management/messaging/topic/topics-data-grid.service.d.ts.map +1 -0
  162. package/messaging-management/messaging-management.guard.d.ts +12 -0
  163. package/messaging-management/messaging-management.guard.d.ts.map +1 -0
  164. package/messaging-management/messaging-management.module.d.ts +7 -0
  165. package/messaging-management/messaging-management.module.d.ts.map +1 -0
  166. package/messaging-management/navigator/messaging-navigator-factory.d.ts +18 -0
  167. package/messaging-management/navigator/messaging-navigator-factory.d.ts.map +1 -0
  168. package/messaging-management/navigator/topic-details-tab.factory.d.ts +15 -0
  169. package/messaging-management/navigator/topic-details-tab.factory.d.ts.map +1 -0
  170. package/messaging-management/utils/backlog-quota-limit.pipe.d.ts +13 -0
  171. package/messaging-management/utils/backlog-quota-limit.pipe.d.ts.map +1 -0
  172. package/messaging-management/utils/namespace-props.d.ts +10 -0
  173. package/messaging-management/utils/namespace-props.d.ts.map +1 -0
  174. package/messaging-management/utils/time-to-live.pipe.d.ts +16 -0
  175. package/messaging-management/utils/time-to-live.pipe.d.ts.map +1 -0
  176. package/operations/device-selector/device-selector.component.d.ts.map +1 -1
  177. package/package.json +1 -1
  178. package/widgets/cockpit/index.d.ts +29 -0
  179. package/widgets/cockpit/index.d.ts.map +1 -1
  180. package/widgets/cockpit-exports/index.d.ts +6 -0
  181. package/widgets/cockpit-exports/index.d.ts.map +1 -1
  182. package/widgets/definitions/index.d.ts +1 -0
  183. package/widgets/definitions/index.d.ts.map +1 -1
  184. package/widgets/definitions/radial-gauge/c8y-ngx-components-widgets-definitions-radial-gauge.d.ts.map +1 -0
  185. package/widgets/definitions/radial-gauge/index.d.ts +33 -0
  186. package/widgets/definitions/radial-gauge/index.d.ts.map +1 -0
  187. package/widgets/implementations/datapoints-graph/datapoints-graph-view/datapoints-graph-widget-view.component.d.ts +2 -0
  188. package/widgets/implementations/datapoints-graph/datapoints-graph-view/datapoints-graph-widget-view.component.d.ts.map +1 -1
  189. package/widgets/implementations/info-gauge/index.d.ts +1 -1
  190. package/widgets/implementations/info-gauge/index.d.ts.map +1 -1
  191. package/widgets/implementations/info-gauge/info-gauge-widget-config/gauge.model.d.ts +339 -0
  192. package/widgets/implementations/info-gauge/info-gauge-widget-config/gauge.model.d.ts.map +1 -0
  193. package/widgets/implementations/info-gauge/info-gauge-widget-config/info-gauge-widget-config.component.d.ts +27 -7
  194. package/widgets/implementations/info-gauge/info-gauge-widget-config/info-gauge-widget-config.component.d.ts.map +1 -1
  195. package/widgets/implementations/info-gauge/info-gauge-widget-config/preset-preview/preset-preview.component.d.ts +33 -0
  196. package/widgets/implementations/info-gauge/info-gauge-widget-config/preset-preview/preset-preview.component.d.ts.map +1 -0
  197. package/widgets/implementations/info-gauge/info-gauge-widget-view/info-gauge-widget-view.component.d.ts +7 -3
  198. package/widgets/implementations/info-gauge/info-gauge-widget-view/info-gauge-widget-view.component.d.ts.map +1 -1
  199. package/widgets/implementations/info-gauge/info-gauge-widget.module.d.ts +2 -1
  200. package/widgets/implementations/info-gauge/info-gauge-widget.module.d.ts.map +1 -1
  201. package/widgets/implementations/info-gauge/radial-gauge/radial-gauge.component.d.ts +37 -0
  202. package/widgets/implementations/info-gauge/radial-gauge/radial-gauge.component.d.ts.map +1 -0
  203. package/widgets/implementations/info-gauge/radial-gauge/radial-gauge.service.d.ts +146 -0
  204. package/widgets/implementations/info-gauge/radial-gauge/radial-gauge.service.d.ts.map +1 -0
  205. package/esm2022/widgets/implementations/info-gauge/info-gauge.model.mjs +0 -2
  206. package/widgets/implementations/info-gauge/info-gauge.model.d.ts +0 -7
  207. 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
- * Usage:
10
+ * Supports both decimal (default) and binary units.
6
11
  *
12
+ * Usage:
7
13
  * ```html
8
- * {{ myData | bytes }} <!-- e.g. 100.1 MB -->
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
- * Default precision is set to 1 decimal place.
12
- * To change the precision, pass an additional argument to pipe.
13
-
14
- * ```html
15
- * {{ myData | bytes: 5 }} <!-- e.g. 100.12345 MB -->
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, precision: number): string | number;
20
- transform(value: number, precision?: number): string | number;
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,EAAQ,aAAa,EAAE,MAAM,eAAe,CAAC;;AAGpD;;;;;;;;;;;;;;GAcG;AACH,qBACa,SAAU,YAAW,aAAa;IAC7C,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAe/D,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,MAAM,GAAG,MAAM;yCAhB7C,SAAS;uCAAT,SAAS;CAmBrB"}
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,EAGP,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAgB,MAAM,SAAS,CAAC;AACpE,OAAO,EAEL,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAI5B,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;;IAkC/F,WAAW;IAIX,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,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;yCAzgBT,eAAe;2CAAf,eAAe;CAqiB3B"}
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
- * Usage:
8
+ * Supports both decimal (default) and binary units.
7
9
  *
10
+ * Usage:
8
11
  * ```html
9
- * {{ myData | bytes }} <!-- e.g. 100.1 MB -->
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
- * Default precision is set to 1 decimal place.
13
- * To change the precision, pass an additional argument to pipe.
14
-
15
- * ```html
16
- * {{ myData | bytes: 5 }} <!-- e.g. 100.12345 MB -->
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
- static bytes(bytes, precision) {
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 units = ['bytes', 'kB', 'MB', 'GB', 'TB', 'PB'];
28
- const num = Math.floor(Math.log(bytes) / Math.log(1024));
29
- // eslint-disable-next-line no-mixed-operators
30
- const result = (bytes / 1024 ** Math.floor(num)).toFixed(precision);
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, precision = 1) {
34
- return BytesPipe.bytes(value, precision);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZXMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvY29tbW9uL2J5dGVzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBRTVDOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsTUFBTSxPQUFPLFNBQVM7SUFDcEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFhLEVBQUUsU0FBaUI7UUFDM0MsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFDRCxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN6RCw4Q0FBOEM7UUFDOUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEUsT0FBTyxHQUFHLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWEsRUFBRSxTQUFTLEdBQUcsQ0FBQztRQUNwQyxPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7K0dBbEJVLFNBQVM7NkdBQVQsU0FBUzs7NEZBQVQsU0FBUztrQkFEckIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzTmFOLCBpc0Zpbml0ZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbi8qKlxuICogQ29udmVydHMgdGhlIGZpbGUgc2l6ZSB0byBhIHJlYWRhYmxlIGZvcm1hdC5cbiAqIFVzYWdlOlxuICpcbiAqIGBgYGh0bWxcbiAqICB7eyBteURhdGEgfCBieXRlcyB9fSA8IS0tIGUuZy4gMTAwLjEgTUIgLS0+XG4gKiBgYGBcbiAqXG4gKiBEZWZhdWx0IHByZWNpc2lvbiBpcyBzZXQgdG8gMSBkZWNpbWFsIHBsYWNlLlxuICogVG8gY2hhbmdlIHRoZSBwcmVjaXNpb24sIHBhc3MgYW4gYWRkaXRpb25hbCBhcmd1bWVudCB0byBwaXBlLlxuXG4gKiBgYGBodG1sXG4gKiB7eyBteURhdGEgfCBieXRlczogNSB9fSA8IS0tIGUuZy4gMTAwLjEyMzQ1IE1CIC0tPlxuICogYGBgXG4gKi9cbkBQaXBlKHsgbmFtZTogJ2J5dGVzJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIEJ5dGVzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBzdGF0aWMgYnl0ZXMoYnl0ZXM6IG51bWJlciwgcHJlY2lzaW9uOiBudW1iZXIpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgIGlmIChpc05hTihieXRlcykgfHwgIWlzRmluaXRlKGJ5dGVzKSkge1xuICAgICAgcmV0dXJuICctJztcbiAgICB9XG4gICAgaWYgKGJ5dGVzID09PSAwKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgY29uc3QgdW5pdHMgPSBbJ2J5dGVzJywgJ2tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJ107XG4gICAgY29uc3QgbnVtID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZygxMDI0KSk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW1peGVkLW9wZXJhdG9yc1xuICAgIGNvbnN0IHJlc3VsdCA9IChieXRlcyAvIDEwMjQgKiogTWF0aC5mbG9vcihudW0pKS50b0ZpeGVkKHByZWNpc2lvbik7XG5cbiAgICByZXR1cm4gYCR7cmVzdWx0fSAke3VuaXRzW251bV19YDtcbiAgfVxuXG4gIHRyYW5zZm9ybSh2YWx1ZTogbnVtYmVyLCBwcmVjaXNpb24gPSAxKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICByZXR1cm4gQnl0ZXNQaXBlLmJ5dGVzKHZhbHVlLCBwcmVjaXNpb24pO1xuICB9XG59XG4iXX0=
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZXMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvY29tbW9uL2J5dGVzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFPNUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBRUgsTUFBTSxPQUFPLFNBQVM7SUFEdEI7UUF3Q1UscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0FTckQ7SUEvQ0MsTUFBTSxDQUFDLEtBQUssQ0FDVixLQUFhLEVBQ2IscUJBQTRDLENBQUMsRUFDN0MsTUFBTSxHQUFHLEtBQUssRUFDZCxnQkFBbUM7UUFFbkMsSUFBSSxVQUFVLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixVQUFVLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztRQUNELElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxTQUFpQixDQUFDO1FBQ3RCLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUV0QixJQUFJLE9BQU8sa0JBQWtCLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDM0MsU0FBUyxHQUFHLGtCQUFrQixDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUM7WUFDOUMsUUFBUSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUM7UUFDaEQsQ0FBQzthQUFNLENBQUM7WUFDTixTQUFTLEdBQUcsa0JBQWtCLENBQUM7UUFDakMsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDcEMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sV0FBVyxHQUFHLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO1FBRXBELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEUsT0FBTyxHQUFHLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBSUQsU0FBUyxDQUNQLEtBQWEsRUFDYixxQkFBNEMsQ0FBQyxFQUM3QyxNQUFNLEdBQUcsS0FBSztRQUVkLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25GLENBQUM7K0dBL0NVLFNBQVM7NkdBQVQsU0FBUzs7NEZBQVQsU0FBUztrQkFEckIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZ2V0dGV4dCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBpc05hTiwgaXNGaW5pdGUgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbnRlcmZhY2UgQnl0ZXNPcHRpb25zIHtcbiAgcHJlY2lzaW9uPzogbnVtYmVyO1xuICBiaW5hcnk/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIHRoZSBmaWxlIHNpemUgdG8gYSByZWFkYWJsZSBmb3JtYXQuXG4gKiBTdXBwb3J0cyBib3RoIGRlY2ltYWwgKGRlZmF1bHQpIGFuZCBiaW5hcnkgdW5pdHMuXG4gKlxuICogVXNhZ2U6XG4gKiBgYGBodG1sXG4gKiB7eyBteURhdGEgfCBieXRlcyB9fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gZS5nLiAxMDAuMSBNQiAoZGVjaW1hbCkgLS0+XG4gKiB7eyBteURhdGEgfCBieXRlczoyIH19ICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBlLmcuIDEwMC4xMiBNQiAoZGVjaW1hbCkgLS0+XG4gKiB7eyBteURhdGEgfCBieXRlczoxOnRydWUgfX0gICAgICAgICAgICAgICAgICAgICAgPCEtLSBlLmcuIDk3LjcgTWlCIChiaW5hcnkpIC0tPlxuICoge3sgbXlEYXRhIHwgYnl0ZXM6e2JpbmFyeTogdHJ1ZX0gfX0gICAgICAgICAgICAgIDwhLS0gZS5nLiA5Ny43IE1pQiAoYmluYXJ5KSAtLT5cbiAqIHt7IG15RGF0YSB8IGJ5dGVzOntwcmVjaXNpb246IDIsIGJpbmFyeTogdHJ1ZX0gfX0gPCEtLSBlLmcuIDk3LjY2IE1pQiAoYmluYXJ5KSAtLT5cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB2YWx1ZSBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIGNvbnZlcnRcbiAqIEBwYXJhbSBwcmVjaXNpb25Pck9wdGlvbnMgTnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIG9yIG9wdGlvbnMgb2JqZWN0XG4gKiBAcGFyYW0gYmluYXJ5IFdoZXRoZXIgdG8gdXNlIGJpbmFyeSAoMTAyNCkgb3IgZGVjaW1hbCAoMTAwMCkgdW5pdHMgKGxlZ2FjeSBwYXJhbWV0ZXIpXG4gKlxuICogT3B0aW9ucyBvYmplY3QgcHJvcGVydGllczpcbiAqIC0gcHJlY2lzaW9uOiBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgKGRlZmF1bHQ6IDEpXG4gKiAtIGJpbmFyeTogd2hldGhlciB0byB1c2UgYmluYXJ5IHVuaXRzIChkZWZhdWx0OiBmYWxzZSlcbiAqXG4gKiBEZWNpbWFsIHVuaXRzOiBieXRlcywga0IsIE1CLCBHQiwgVEIsIFBCXG4gKiBCaW5hcnkgdW5pdHM6IGJ5dGVzLCBLaUIsIE1pQiwgR2lCLCBUaUIsIFBpQlxuICovXG5AUGlwZSh7IG5hbWU6ICdieXRlcycsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBCeXRlc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgc3RhdGljIGJ5dGVzKFxuICAgIGJ5dGVzOiBudW1iZXIsXG4gICAgcHJlY2lzaW9uT3JPcHRpb25zOiBudW1iZXIgfCBCeXRlc09wdGlvbnMgPSAxLFxuICAgIGJpbmFyeSA9IGZhbHNlLFxuICAgIHRyYW5zbGF0ZVNlcnZpY2U/OiBUcmFuc2xhdGVTZXJ2aWNlXG4gICk6IHN0cmluZyB8IG51bWJlciB7XG4gICAgbGV0IGJ5dGVzTGFiZWwgPSAnYnl0ZXMnO1xuICAgIGlmICh0cmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgICBieXRlc0xhYmVsID0gdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGdldHRleHQoJ2J5dGVzJykpO1xuICAgIH1cblxuICAgIGlmIChpc05hTihieXRlcykgfHwgIWlzRmluaXRlKGJ5dGVzKSkge1xuICAgICAgcmV0dXJuICctJztcbiAgICB9XG4gICAgaWYgKGJ5dGVzID09PSAwKSB7XG4gICAgICByZXR1cm4gYDAgJHtieXRlc0xhYmVsfWA7XG4gICAgfVxuICAgIGxldCBwcmVjaXNpb246IG51bWJlcjtcbiAgICBsZXQgaXNCaW5hcnkgPSBiaW5hcnk7XG5cbiAgICBpZiAodHlwZW9mIHByZWNpc2lvbk9yT3B0aW9ucyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHByZWNpc2lvbiA9IHByZWNpc2lvbk9yT3B0aW9ucy5wcmVjaXNpb24gPz8gMTtcbiAgICAgIGlzQmluYXJ5ID0gcHJlY2lzaW9uT3JPcHRpb25zLmJpbmFyeSA/PyBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJlY2lzaW9uID0gcHJlY2lzaW9uT3JPcHRpb25zO1xuICAgIH1cblxuICAgIGNvbnN0IGJhc2UgPSBpc0JpbmFyeSA/IDEwMjQgOiAxMDAwO1xuICAgIGNvbnN0IGRlY2ltYWxVbml0cyA9IFtieXRlc0xhYmVsLCAna0InLCAnTUInLCAnR0InLCAnVEInLCAnUEInXTtcbiAgICBjb25zdCBiaW5hcnlVbml0cyA9IFtieXRlc0xhYmVsLCAnS2lCJywgJ01pQicsICdHaUInLCAnVGlCJywgJ1BpQiddO1xuICAgIGNvbnN0IHVuaXRzID0gaXNCaW5hcnkgPyBiaW5hcnlVbml0cyA6IGRlY2ltYWxVbml0cztcblxuICAgIGNvbnN0IG51bSA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coYmFzZSkpO1xuICAgIGNvbnN0IHJlc3VsdCA9IChieXRlcyAvIGJhc2UgKiogTWF0aC5mbG9vcihudW0pKS50b0ZpeGVkKHByZWNpc2lvbik7XG5cbiAgICByZXR1cm4gYCR7cmVzdWx0fSAke3VuaXRzW251bV19YDtcbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICB0cmFuc2Zvcm0oXG4gICAgdmFsdWU6IG51bWJlcixcbiAgICBwcmVjaXNpb25Pck9wdGlvbnM6IG51bWJlciB8IEJ5dGVzT3B0aW9ucyA9IDEsXG4gICAgYmluYXJ5ID0gZmFsc2VcbiAgKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICByZXR1cm4gQnl0ZXNQaXBlLmJ5dGVzKHZhbHVlLCBwcmVjaXNpb25Pck9wdGlvbnMsIGJpbmFyeSwgdGhpcy50cmFuc2xhdGVTZXJ2aWNlKTtcbiAgfVxufVxuIl19