@c8y/ngx-components 1021.52.0 → 1021.54.4

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 (259) hide show
  1. package/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.d.ts +10 -2
  2. package/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.d.ts.map +1 -1
  3. package/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.model.d.ts +11 -0
  4. package/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.model.d.ts.map +1 -0
  5. package/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.d.ts +10 -4
  6. package/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.d.ts.map +1 -1
  7. package/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.d.ts +3 -1
  8. package/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.d.ts.map +1 -1
  9. package/alarm-event-selector/alarm-event-selector.model.d.ts +7 -0
  10. package/alarm-event-selector/alarm-event-selector.model.d.ts.map +1 -1
  11. package/core/application/app-icon.component.d.ts.map +1 -1
  12. package/core/dashboard/dashboard-child-action.component.d.ts +1 -1
  13. package/core/dashboard/dashboard-child-action.component.d.ts.map +1 -1
  14. package/core/dashboard/dashboard.module.d.ts +29 -29
  15. package/core/dashboard/index.d.ts +3 -0
  16. package/core/dashboard/index.d.ts.map +1 -1
  17. package/core/dashboard/widgets-dashboard.component.d.ts +1 -1
  18. package/core/dashboard/widgets-dashboard.component.d.ts.map +1 -1
  19. package/core/dashboard/wiget-time-context/aggregation-picker/aggregation-picker.component.d.ts +1 -1
  20. package/core/dashboard/wiget-time-context/aggregation-picker/aggregation-picker.component.d.ts.map +1 -1
  21. package/core/dashboard/wiget-time-context/realtime-control/realtime-control.component.d.ts +1 -1
  22. package/core/dashboard/wiget-time-context/realtime-control/realtime-control.component.d.ts.map +1 -1
  23. package/core/dashboard/wiget-time-context/widget-time-context-date-range.service.d.ts +10 -0
  24. package/core/dashboard/wiget-time-context/widget-time-context-date-range.service.d.ts.map +1 -0
  25. package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts +7 -4
  26. package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts.map +1 -1
  27. package/core/dashboard/wiget-time-context/widget-time-context.model.d.ts +0 -1
  28. package/core/dashboard/wiget-time-context/widget-time-context.model.d.ts.map +1 -1
  29. package/core/date-picker/date-picker.component.d.ts +1 -1
  30. package/core/date-picker/date-picker.component.d.ts.map +1 -1
  31. package/core/date-picker/date-picker.module.d.ts +9 -9
  32. package/core/date-time-picker/close-date-picker.directive.d.ts +1 -1
  33. package/core/date-time-picker/close-date-picker.directive.d.ts.map +1 -1
  34. package/core/date-time-picker/date-time-picker.component.d.ts +6 -3
  35. package/core/date-time-picker/date-time-picker.component.d.ts.map +1 -1
  36. package/core/date-time-picker/date-time-picker.module.d.ts +11 -11
  37. package/core/date-time-picker/date-time-picker.module.d.ts.map +1 -1
  38. package/core/forms/forms.module.d.ts +18 -18
  39. package/core/forms/required-input-placeholder.directive.d.ts +1 -1
  40. package/core/forms/required-input-placeholder.directive.d.ts.map +1 -1
  41. package/core/router/router.service.d.ts.map +1 -1
  42. package/core/user/user-menu.service.d.ts +36 -11
  43. package/core/user/user-menu.service.d.ts.map +1 -1
  44. package/datapoint-explorer/c8y-ngx-components-datapoint-explorer.d.ts.map +1 -0
  45. package/datapoint-explorer/datapoint-explorer.module.d.ts +7 -0
  46. package/datapoint-explorer/datapoint-explorer.module.d.ts.map +1 -0
  47. package/datapoint-explorer/index.d.ts +2 -0
  48. package/datapoint-explorer/index.d.ts.map +1 -0
  49. package/datapoint-explorer/view/c8y-ngx-components-datapoint-explorer-view.d.ts.map +1 -0
  50. package/datapoint-explorer/view/configuration/naming-dictionary.d.ts +3 -0
  51. package/datapoint-explorer/view/configuration/naming-dictionary.d.ts.map +1 -0
  52. package/datapoint-explorer/view/configuration/workspace-configuration.component.d.ts +38 -0
  53. package/datapoint-explorer/view/configuration/workspace-configuration.component.d.ts.map +1 -0
  54. package/datapoint-explorer/view/configuration/workspace-configuration.model.d.ts +7 -0
  55. package/datapoint-explorer/view/configuration/workspace-configuration.model.d.ts.map +1 -0
  56. package/datapoint-explorer/view/configuration/workspace-configuration.service.d.ts +15 -0
  57. package/datapoint-explorer/view/configuration/workspace-configuration.service.d.ts.map +1 -0
  58. package/datapoint-explorer/view/create-new-report-modal/create-new-report-modal.component.d.ts +25 -0
  59. package/datapoint-explorer/view/create-new-report-modal/create-new-report-modal.component.d.ts.map +1 -0
  60. package/datapoint-explorer/view/datapoint-explorer.component.d.ts +67 -0
  61. package/datapoint-explorer/view/datapoint-explorer.component.d.ts.map +1 -0
  62. package/datapoint-explorer/view/datapoint-explorer.service.d.ts +9 -0
  63. package/datapoint-explorer/view/datapoint-explorer.service.d.ts.map +1 -0
  64. package/datapoint-explorer/view/index.d.ts +2 -0
  65. package/datapoint-explorer/view/index.d.ts.map +1 -0
  66. package/datapoint-explorer/view/send-as-widget-to-report-modal/send-as-widget-to-report-modal.component.d.ts +23 -0
  67. package/datapoint-explorer/view/send-as-widget-to-report-modal/send-as-widget-to-report-modal.component.d.ts.map +1 -0
  68. package/echart/c8y-ngx-components-echart.d.ts.map +1 -0
  69. package/echart/chart-alerts/chart-alerts.component.d.ts +8 -0
  70. package/echart/chart-alerts/chart-alerts.component.d.ts.map +1 -0
  71. package/echart/charts.component.d.ts +63 -0
  72. package/echart/charts.component.d.ts.map +1 -0
  73. package/echart/index.d.ts +5 -0
  74. package/echart/index.d.ts.map +1 -0
  75. package/echart/models/c8y-ngx-components-echart-models.d.ts.map +1 -0
  76. package/echart/models/chart.model.d.ts +37 -0
  77. package/echart/models/chart.model.d.ts.map +1 -0
  78. package/echart/models/datapoints-graph-widget.model.d.ts +126 -0
  79. package/echart/models/datapoints-graph-widget.model.d.ts.map +1 -0
  80. package/echart/models/index.d.ts +4 -0
  81. package/echart/models/index.d.ts.map +1 -0
  82. package/echart/models/svg-icons.model.d.ts +22 -0
  83. package/echart/models/svg-icons.model.d.ts.map +1 -0
  84. package/echart/services/chart-alarms.service.d.ts +17 -0
  85. package/echart/services/chart-alarms.service.d.ts.map +1 -0
  86. package/echart/services/chart-events.service.d.ts +17 -0
  87. package/echart/services/chart-events.service.d.ts.map +1 -0
  88. package/echart/services/chart-realtime.service.d.ts +35 -0
  89. package/echart/services/chart-realtime.service.d.ts.map +1 -0
  90. package/echart/services/chart-types.service.d.ts +15 -0
  91. package/echart/services/chart-types.service.d.ts.map +1 -0
  92. package/echart/services/custom-measurements.service.d.ts +12 -0
  93. package/echart/services/custom-measurements.service.d.ts.map +1 -0
  94. package/echart/services/echarts-options.service.d.ts +143 -0
  95. package/echart/services/echarts-options.service.d.ts.map +1 -0
  96. package/echart/services/y-axis.service.d.ts +17 -0
  97. package/echart/services/y-axis.service.d.ts.map +1 -0
  98. package/esm2022/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.mjs +37 -12
  99. package/esm2022/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.model.mjs +2 -0
  100. package/esm2022/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.mjs +39 -12
  101. package/esm2022/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.mjs +6 -4
  102. package/esm2022/alarm-event-selector/alarm-event-selector.component.mjs +1 -1
  103. package/esm2022/alarm-event-selector/alarm-event-selector.model.mjs +1 -1
  104. package/esm2022/alarm-event-selector/custom-alarm-event-form/custom-alarm-event-form.component.mjs +1 -1
  105. package/esm2022/alarms/alarms-filter.component.mjs +3 -3
  106. package/esm2022/core/application/app-icon.component.mjs +4 -4
  107. package/esm2022/core/dashboard/dashboard-child-action.component.mjs +3 -3
  108. package/esm2022/core/dashboard/dashboard.module.mjs +17 -14
  109. package/esm2022/core/dashboard/index.mjs +4 -1
  110. package/esm2022/core/dashboard/widgets-dashboard.component.mjs +9 -9
  111. package/esm2022/core/dashboard/wiget-time-context/aggregation-picker/aggregation-picker.component.mjs +11 -9
  112. package/esm2022/core/dashboard/wiget-time-context/realtime-control/realtime-control.component.mjs +8 -7
  113. package/esm2022/core/dashboard/wiget-time-context/widget-time-context-date-range.service.mjs +23 -0
  114. package/esm2022/core/dashboard/wiget-time-context/widget-time-context.component.mjs +70 -26
  115. package/esm2022/core/dashboard/wiget-time-context/widget-time-context.model.mjs +1 -1
  116. package/esm2022/core/date-picker/date-picker.component.mjs +29 -14
  117. package/esm2022/core/date-picker/date-picker.module.mjs +9 -7
  118. package/esm2022/core/date-time-picker/close-date-picker.directive.mjs +4 -3
  119. package/esm2022/core/date-time-picker/date-time-picker.component.mjs +57 -29
  120. package/esm2022/core/date-time-picker/date-time-picker.module.mjs +11 -7
  121. package/esm2022/core/forms/forms.module.mjs +3 -3
  122. package/esm2022/core/forms/ip-range-input-list.component.mjs +5 -5
  123. package/esm2022/core/forms/required-input-placeholder.directive.mjs +4 -3
  124. package/esm2022/core/router/router.service.mjs +1 -1
  125. package/esm2022/core/time-interval/time-interval.component.mjs +3 -3
  126. package/esm2022/core/user/user-menu.service.mjs +57 -17
  127. package/esm2022/datapoint-explorer/c8y-ngx-components-datapoint-explorer.mjs +5 -0
  128. package/esm2022/datapoint-explorer/datapoint-explorer.module.mjs +65 -0
  129. package/esm2022/datapoint-explorer/index.mjs +2 -0
  130. package/esm2022/datapoint-explorer/view/c8y-ngx-components-datapoint-explorer-view.mjs +5 -0
  131. package/esm2022/datapoint-explorer/view/configuration/naming-dictionary.mjs +65 -0
  132. package/esm2022/datapoint-explorer/view/configuration/workspace-configuration.component.mjs +169 -0
  133. package/esm2022/datapoint-explorer/view/configuration/workspace-configuration.model.mjs +2 -0
  134. package/esm2022/datapoint-explorer/view/configuration/workspace-configuration.service.mjs +40 -0
  135. package/esm2022/datapoint-explorer/view/create-new-report-modal/create-new-report-modal.component.mjs +64 -0
  136. package/esm2022/datapoint-explorer/view/datapoint-explorer.component.mjs +279 -0
  137. package/esm2022/datapoint-explorer/view/datapoint-explorer.service.mjs +23 -0
  138. package/esm2022/datapoint-explorer/view/index.mjs +2 -0
  139. package/esm2022/datapoint-explorer/view/send-as-widget-to-report-modal/send-as-widget-to-report-modal.component.mjs +48 -0
  140. package/esm2022/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.mjs +3 -3
  141. package/esm2022/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.mjs +3 -3
  142. package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-file-types/datapoints-exports-selector-file-types.component.mjs +3 -3
  143. package/esm2022/datapoints-export-selector/datapoints-export-selector.component.mjs +3 -3
  144. package/esm2022/device-list/add-smart-group.component.mjs +3 -3
  145. package/esm2022/echart/c8y-ngx-components-echart.mjs +5 -0
  146. package/esm2022/echart/chart-alerts/chart-alerts.component.mjs +16 -0
  147. package/esm2022/echart/charts.component.mjs +560 -0
  148. package/esm2022/echart/index.mjs +5 -0
  149. package/esm2022/echart/models/c8y-ngx-components-echart-models.mjs +5 -0
  150. package/esm2022/echart/models/chart.model.mjs +2 -0
  151. package/esm2022/echart/models/datapoints-graph-widget.model.mjs +17 -0
  152. package/esm2022/echart/models/index.mjs +4 -0
  153. package/esm2022/echart/models/svg-icons.model.mjs +22 -0
  154. package/esm2022/echart/services/chart-alarms.service.mjs +58 -0
  155. package/esm2022/echart/services/chart-events.service.mjs +44 -0
  156. package/esm2022/echart/services/chart-realtime.service.mjs +193 -0
  157. package/esm2022/echart/services/chart-types.service.mjs +102 -0
  158. package/esm2022/echart/services/custom-measurements.service.mjs +52 -0
  159. package/esm2022/echart/services/echarts-options.service.mjs +857 -0
  160. package/esm2022/echart/services/y-axis.service.mjs +150 -0
  161. package/esm2022/interval-picker/interval-picker.component.mjs +3 -3
  162. package/esm2022/interval-picker/interval-picker.model.mjs +1 -1
  163. package/esm2022/map/map.component.mjs +4 -1
  164. package/esm2022/report-dashboard/index.mjs +2 -1
  165. package/esm2022/time-context/c8y-ngx-components-time-context.mjs +5 -0
  166. package/esm2022/time-context/index.mjs +2 -0
  167. package/esm2022/time-context/time-context.component.mjs +217 -0
  168. package/esm2022/time-context/time-context.service.mjs +83 -0
  169. package/esm2022/tracking/tracking.component.mjs +5 -6
  170. package/esm2022/tracking/tracking.service.mjs +7 -3
  171. package/esm2022/translation-editor/lazy/translation-editor/translation-editor.component.mjs +6 -5
  172. package/esm2022/widgets/cockpit-exports/index.mjs +8 -1
  173. package/esm2022/widgets/definitions/datapoints-graph/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +5 -0
  174. package/esm2022/widgets/definitions/datapoints-graph/index.mjs +31 -0
  175. package/esm2022/widgets/definitions/index.mjs +3 -2
  176. package/esm2022/widgets/implementations/datapoints-graph/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +5 -0
  177. package/esm2022/widgets/implementations/datapoints-graph/datapoints-graph-config/datapoints-graph-widget-config.component.mjs +239 -0
  178. package/esm2022/widgets/implementations/datapoints-graph/datapoints-graph-view/datapoints-graph-widget-view.component.mjs +241 -0
  179. package/esm2022/widgets/implementations/datapoints-graph/index.mjs +3 -0
  180. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +80 -28
  181. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
  182. package/fesm2022/c8y-ngx-components-alarms.mjs +2 -2
  183. package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
  184. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +658 -0
  185. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -0
  186. package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs +72 -0
  187. package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs.map +1 -0
  188. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +4 -4
  189. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  190. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +4 -4
  191. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
  192. package/fesm2022/c8y-ngx-components-device-list.mjs +2 -2
  193. package/fesm2022/c8y-ngx-components-device-list.mjs.map +1 -1
  194. package/fesm2022/c8y-ngx-components-echart-models.mjs +46 -0
  195. package/fesm2022/c8y-ngx-components-echart-models.mjs.map +1 -0
  196. package/fesm2022/c8y-ngx-components-echart.mjs +2023 -0
  197. package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -0
  198. package/fesm2022/c8y-ngx-components-interval-picker.mjs +2 -2
  199. package/fesm2022/c8y-ngx-components-interval-picker.mjs.map +1 -1
  200. package/fesm2022/c8y-ngx-components-map.mjs +3 -0
  201. package/fesm2022/c8y-ngx-components-map.mjs.map +1 -1
  202. package/fesm2022/c8y-ngx-components-report-dashboard.mjs +1 -1
  203. package/fesm2022/c8y-ngx-components-time-context.mjs +300 -0
  204. package/fesm2022/c8y-ngx-components-time-context.mjs.map +1 -0
  205. package/fesm2022/c8y-ngx-components-tracking.mjs +10 -7
  206. package/fesm2022/c8y-ngx-components-tracking.mjs.map +1 -1
  207. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +5 -4
  208. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs.map +1 -1
  209. package/fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs +7 -0
  210. package/fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs.map +1 -1
  211. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +38 -0
  212. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs.map +1 -0
  213. package/fesm2022/c8y-ngx-components-widgets-definitions.mjs +2 -1
  214. package/fesm2022/c8y-ngx-components-widgets-definitions.mjs.map +1 -1
  215. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +467 -0
  216. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -0
  217. package/fesm2022/c8y-ngx-components.mjs +433 -281
  218. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  219. package/interval-picker/interval-picker.component.d.ts.map +1 -1
  220. package/interval-picker/interval-picker.model.d.ts.map +1 -1
  221. package/locales/de.po +206 -279
  222. package/locales/es.po +206 -279
  223. package/locales/fr.po +206 -279
  224. package/locales/ja_JP.po +196 -279
  225. package/locales/ko.po +455 -444
  226. package/locales/locales.pot +200 -0
  227. package/locales/nl.po +206 -279
  228. package/locales/pl.po +206 -279
  229. package/locales/pt_BR.po +206 -279
  230. package/locales/zh_CN.po +450 -443
  231. package/locales/zh_TW.po +452 -445
  232. package/map/map.component.d.ts.map +1 -1
  233. package/package.json +1 -1
  234. package/report-dashboard/index.d.ts +1 -0
  235. package/report-dashboard/index.d.ts.map +1 -1
  236. package/time-context/c8y-ngx-components-time-context.d.ts.map +1 -0
  237. package/time-context/index.d.ts +2 -0
  238. package/time-context/index.d.ts.map +1 -0
  239. package/time-context/time-context.component.d.ts +61 -0
  240. package/time-context/time-context.component.d.ts.map +1 -0
  241. package/time-context/time-context.service.d.ts +25 -0
  242. package/time-context/time-context.service.d.ts.map +1 -0
  243. package/tracking/tracking.component.d.ts.map +1 -1
  244. package/tracking/tracking.service.d.ts.map +1 -1
  245. package/translation-editor/lazy/translation-editor/translation-editor.component.d.ts.map +1 -1
  246. package/widgets/cockpit-exports/index.d.ts +6 -0
  247. package/widgets/cockpit-exports/index.d.ts.map +1 -1
  248. package/widgets/definitions/datapoints-graph/c8y-ngx-components-widgets-definitions-datapoints-graph.d.ts.map +1 -0
  249. package/widgets/definitions/datapoints-graph/index.d.ts +16 -0
  250. package/widgets/definitions/datapoints-graph/index.d.ts.map +1 -0
  251. package/widgets/definitions/index.d.ts +1 -0
  252. package/widgets/definitions/index.d.ts.map +1 -1
  253. package/widgets/implementations/datapoints-graph/c8y-ngx-components-widgets-implementations-datapoints-graph.d.ts.map +1 -0
  254. package/widgets/implementations/datapoints-graph/datapoints-graph-config/datapoints-graph-widget-config.component.d.ts +43 -0
  255. package/widgets/implementations/datapoints-graph/datapoints-graph-config/datapoints-graph-widget-config.component.d.ts.map +1 -0
  256. package/widgets/implementations/datapoints-graph/datapoints-graph-view/datapoints-graph-widget-view.component.d.ts +54 -0
  257. package/widgets/implementations/datapoints-graph/datapoints-graph-view/datapoints-graph-widget-view.component.d.ts.map +1 -0
  258. package/widgets/implementations/datapoints-graph/index.d.ts +3 -0
  259. package/widgets/implementations/datapoints-graph/index.d.ts.map +1 -0
@@ -0,0 +1,150 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { AppStateService } from '@c8y/ngx-components';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@c8y/ngx-components";
5
+ export class YAxisService {
6
+ constructor(appStateService) {
7
+ this.appStateService = appStateService;
8
+ this.Y_AXIS_OFFSET = 48;
9
+ this.intlNumberFormatCompliantLocale = this.appStateService.state.lang.replace('_', '-');
10
+ }
11
+ getYAxis(datapointsWithValues, YAxisOptions) {
12
+ const YAxisPlacement = this.getYAxisPlacement(datapointsWithValues);
13
+ const matchingDpSet = new Set();
14
+ const firstOccurrence = new Set();
15
+ return datapointsWithValues.map((dp, index) => {
16
+ const isDefined = (value) => value !== null && value !== undefined;
17
+ const isMatchingDp = (dp1, dp2) => dp1.min === dp2.min &&
18
+ dp1.max === dp2.max &&
19
+ isDefined(dp1.min) &&
20
+ isDefined(dp1.max) &&
21
+ isDefined(dp2.min) &&
22
+ isDefined(dp2.max);
23
+ const matchingDpRange = datapointsWithValues.some((dp2, index2) => isMatchingDp(dp, dp2) && index2 < index);
24
+ const anyMatchingDp = datapointsWithValues.some((dp2, index2) => isMatchingDp(dp, dp2) && index2 !== index);
25
+ if (anyMatchingDp &&
26
+ !matchingDpRange &&
27
+ YAxisOptions.mergeMatchingDatapoints &&
28
+ !firstOccurrence.has(dp)) {
29
+ firstOccurrence.add(dp);
30
+ }
31
+ if (firstOccurrence.has(dp)) {
32
+ datapointsWithValues.forEach(dp2 => {
33
+ if (isMatchingDp(dp, dp2)) {
34
+ matchingDpSet.add(dp2);
35
+ }
36
+ });
37
+ }
38
+ return {
39
+ name: YAxisOptions.showLabelAndUnit
40
+ ? YAxisOptions.mergeMatchingDatapoints
41
+ ? firstOccurrence.has(dp)
42
+ ? Array.from(matchingDpSet)
43
+ .map(dp => `{${dp.__target?.id}|${dp.unit}}`)
44
+ .join(' /')
45
+ : matchingDpRange
46
+ ? ''
47
+ : `${dp.label} [${dp.unit}]`
48
+ : `${dp.label} [${dp.unit}]`
49
+ : '',
50
+ nameLocation: 'middle',
51
+ nameGap: 20,
52
+ nameTextStyle: {
53
+ // add rich text to support multiple colors for different dp units
54
+ rich: {
55
+ ...Array.from(matchingDpSet).reduce((acc, dp) => {
56
+ const accKey = `${dp.__target?.id}`;
57
+ acc[accKey] = {
58
+ color: dp.color
59
+ };
60
+ return acc;
61
+ }, {})
62
+ }
63
+ },
64
+ type: 'value',
65
+ animation: true,
66
+ axisLine: {
67
+ show: matchingDpRange && YAxisOptions.mergeMatchingDatapoints ? false : true,
68
+ lineStyle: {
69
+ color: firstOccurrence.has(dp) ? 'black' : dp.color
70
+ },
71
+ onZero: false
72
+ },
73
+ axisLabel: {
74
+ fontSize: 10,
75
+ show: !matchingDpRange || !YAxisOptions.mergeMatchingDatapoints,
76
+ formatter: val => {
77
+ if (dp.min != undefined && dp.max != undefined) {
78
+ const range = dp.max - dp.min;
79
+ const decimalPlaces = this.getDecimalPlaces(range);
80
+ return val.toFixed(decimalPlaces);
81
+ }
82
+ return new Intl.NumberFormat(this.intlNumberFormatCompliantLocale, {
83
+ notation: 'compact',
84
+ compactDisplay: 'short'
85
+ }).format(val);
86
+ }
87
+ },
88
+ splitLine: {
89
+ show: YAxisOptions.showSplitLines && !matchingDpRange,
90
+ lineStyle: { color: dp.color, opacity: 0.4, type: 'dashed' }
91
+ },
92
+ position: YAxisPlacement.get(dp)?.position,
93
+ offset: YAxisPlacement.get(dp)?.offset,
94
+ axisTick: {
95
+ show: !matchingDpRange || !YAxisOptions.mergeMatchingDatapoints
96
+ },
97
+ axisPointer: {
98
+ show: false,
99
+ label: {
100
+ show: false
101
+ }
102
+ },
103
+ ...(dp.min && { min: dp.min }),
104
+ ...(dp.max && { max: dp.max })
105
+ };
106
+ });
107
+ }
108
+ getDecimalPlaces(num) {
109
+ const numStr = num.toString();
110
+ const decimalIndex = numStr.indexOf('.');
111
+ if (decimalIndex === -1) {
112
+ return 0;
113
+ }
114
+ return numStr.length - decimalIndex - 1;
115
+ }
116
+ getYAxisPlacement(datapointsWithValues) {
117
+ const YAxisPositions = new Map();
118
+ datapointsWithValues.forEach(dp => {
119
+ const position = this.getYAxisPosition(dp, datapointsWithValues);
120
+ YAxisPositions.set(dp, { position });
121
+ });
122
+ const dpLeft = datapointsWithValues.filter(dp => YAxisPositions.get(dp).position === 'left');
123
+ const dpRight = datapointsWithValues.filter(dp => YAxisPositions.get(dp).position === 'right');
124
+ const YAxisPlacement = new Map();
125
+ YAxisPositions.forEach(({ position }, key) => {
126
+ const offset = (position === 'left' ? dpLeft : dpRight).indexOf(key) * this.Y_AXIS_OFFSET;
127
+ YAxisPlacement.set(key, { position: position, offset });
128
+ });
129
+ return YAxisPlacement;
130
+ }
131
+ getYAxisPosition(datapoint, datapointsWithValues) {
132
+ if (datapoint.yAxisType) {
133
+ return datapoint.yAxisType;
134
+ }
135
+ const currentIndex = datapointsWithValues.indexOf(datapoint);
136
+ const otherIndexLeft = datapointsWithValues.findIndex(dp => dp !== datapoint && (!dp.yAxisType || dp.yAxisType === 'left'));
137
+ if (otherIndexLeft > -1 && otherIndexLeft < currentIndex) {
138
+ return 'right';
139
+ }
140
+ else {
141
+ return 'left';
142
+ }
143
+ }
144
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: YAxisService, deps: [{ token: i1.AppStateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
145
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: YAxisService }); }
146
+ }
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: YAxisService, decorators: [{
148
+ type: Injectable
149
+ }], ctorParameters: () => [{ type: i1.AppStateService }] });
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieS1heGlzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9lY2hhcnQvc2VydmljZXMveS1heGlzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUd0RCxNQUFNLE9BQU8sWUFBWTtJQUl2QixZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFIcEQsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFJakIsSUFBSSxDQUFDLCtCQUErQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxRQUFRLENBQUMsb0JBQW9DLEVBQUUsWUFBMEI7UUFDdkUsTUFBTSxjQUFjLEdBQ2xCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRS9DLE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxFQUFnQixDQUFDO1FBQzlDLE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxFQUFnQixDQUFDO1FBRWhELE9BQU8sb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzVDLE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBeUIsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDO1lBQ3ZGLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBaUIsRUFBRSxHQUFpQixFQUFFLEVBQUUsQ0FDNUQsR0FBRyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRztnQkFDbkIsR0FBRyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRztnQkFD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QUUsQ0FBQyxFQUFFLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxTQUFTLEtBQUssTUFBTSxDQUFDLENBQ3JFLENBQUM7UUFDRixJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUMsSUFBSSxjQUFjLEdBQUcsWUFBWSxFQUFFLENBQUM7WUFDekQsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQzs4R0F6S1UsWUFBWTtrSEFBWixZQUFZOzsyRkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YXBvaW50QXhpc1R5cGUsIERwV2l0aFZhbHVlcywgWUF4aXNPcHRpb25zIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB0eXBlIHsgWUFYaXNPcHRpb24gfSBmcm9tICdlY2hhcnRzL3R5cGVzL3NyYy9jb29yZC9jYXJ0ZXNpYW4vQXhpc01vZGVsJztcbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgWUF4aXNTZXJ2aWNlIHtcbiAgWV9BWElTX09GRlNFVCA9IDQ4O1xuICBwcml2YXRlIGludGxOdW1iZXJGb3JtYXRDb21wbGlhbnRMb2NhbGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwcFN0YXRlU2VydmljZTogQXBwU3RhdGVTZXJ2aWNlKSB7XG4gICAgdGhpcy5pbnRsTnVtYmVyRm9ybWF0Q29tcGxpYW50TG9jYWxlID0gdGhpcy5hcHBTdGF0ZVNlcnZpY2Uuc3RhdGUubGFuZy5yZXBsYWNlKCdfJywgJy0nKTtcbiAgfVxuXG4gIGdldFlBeGlzKGRhdGFwb2ludHNXaXRoVmFsdWVzOiBEcFdpdGhWYWx1ZXNbXSwgWUF4aXNPcHRpb25zOiBZQXhpc09wdGlvbnMpOiBZQVhpc09wdGlvbltdIHtcbiAgICBjb25zdCBZQXhpc1BsYWNlbWVudDogTWFwPERwV2l0aFZhbHVlcywgeyBwb3NpdGlvbjogRGF0YXBvaW50QXhpc1R5cGU7IG9mZnNldDogbnVtYmVyIH0+ID1cbiAgICAgIHRoaXMuZ2V0WUF4aXNQbGFjZW1lbnQoZGF0YXBvaW50c1dpdGhWYWx1ZXMpO1xuXG4gICAgY29uc3QgbWF0Y2hpbmdEcFNldCA9IG5ldyBTZXQ8RHBXaXRoVmFsdWVzPigpO1xuICAgIGNvbnN0IGZpcnN0T2NjdXJyZW5jZSA9IG5ldyBTZXQ8RHBXaXRoVmFsdWVzPigpO1xuXG4gICAgcmV0dXJuIGRhdGFwb2ludHNXaXRoVmFsdWVzLm1hcCgoZHAsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBpc0RlZmluZWQgPSAodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkgPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IGlzTWF0Y2hpbmdEcCA9IChkcDE6IERwV2l0aFZhbHVlcywgZHAyOiBEcFdpdGhWYWx1ZXMpID0+XG4gICAgICAgIGRwMS5taW4gPT09IGRwMi5taW4gJiZcbiAgICAgICAgZHAxLm1heCA9PT0gZHAyLm1heCAmJlxuICAgICAgICBpc0RlZmluZWQoZHAxLm1pbikgJiZcbiAgICAgICAgaXNEZWZpbmVkKGRwMS5tYXgpICYmXG4gICAgICAgIGlzRGVmaW5lZChkcDIubWluKSAmJlxuICAgICAgICBpc0RlZmluZWQoZHAyLm1heCk7XG5cbiAgICAgIGNvbnN0IG1hdGNoaW5nRHBSYW5nZSA9IGRhdGFwb2ludHNXaXRoVmFsdWVzLnNvbWUoXG4gICAgICAgIChkcDIsIGluZGV4MikgPT4gaXNNYXRjaGluZ0RwKGRwLCBkcDIpICYmIGluZGV4MiA8IGluZGV4XG4gICAgICApO1xuXG4gICAgICBjb25zdCBhbnlNYXRjaGluZ0RwID0gZGF0YXBvaW50c1dpdGhWYWx1ZXMuc29tZShcbiAgICAgICAgKGRwMiwgaW5kZXgyKSA9PiBpc01hdGNoaW5nRHAoZHAsIGRwMikgJiYgaW5kZXgyICE9PSBpbmRleFxuICAgICAgKTtcblxuICAgICAgaWYgKFxuICAgICAgICBhbnlNYXRjaGluZ0RwICYmXG4gICAgICAgICFtYXRjaGluZ0RwUmFuZ2UgJiZcbiAgICAgICAgWUF4aXNPcHRpb25zLm1lcmdlTWF0Y2hpbmdEYXRhcG9pbnRzICYmXG4gICAgICAgICFmaXJzdE9jY3VycmVuY2UuaGFzKGRwKVxuICAgICAgKSB7XG4gICAgICAgIGZpcnN0T2NjdXJyZW5jZS5hZGQoZHApO1xuICAgICAgfVxuXG4gICAgICBpZiAoZmlyc3RPY2N1cnJlbmNlLmhhcyhkcCkpIHtcbiAgICAgICAgZGF0YXBvaW50c1dpdGhWYWx1ZXMuZm9yRWFjaChkcDIgPT4ge1xuICAgICAgICAgIGlmIChpc01hdGNoaW5nRHAoZHAsIGRwMikpIHtcbiAgICAgICAgICAgIG1hdGNoaW5nRHBTZXQuYWRkKGRwMik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogWUF4aXNPcHRpb25zLnNob3dMYWJlbEFuZFVuaXRcbiAgICAgICAgICA/IFlBeGlzT3B0aW9ucy5tZXJnZU1hdGNoaW5nRGF0YXBvaW50c1xuICAgICAgICAgICAgPyBmaXJzdE9jY3VycmVuY2UuaGFzKGRwKVxuICAgICAgICAgICAgICA/IEFycmF5LmZyb20obWF0Y2hpbmdEcFNldClcbiAgICAgICAgICAgICAgICAgIC5tYXAoZHAgPT4gYHske2RwLl9fdGFyZ2V0Py5pZH18JHtkcC51bml0fX1gKVxuICAgICAgICAgICAgICAgICAgLmpvaW4oJyAvJylcbiAgICAgICAgICAgICAgOiBtYXRjaGluZ0RwUmFuZ2VcbiAgICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgICAgOiBgJHtkcC5sYWJlbH0gWyR7ZHAudW5pdH1dYFxuICAgICAgICAgICAgOiBgJHtkcC5sYWJlbH0gWyR7ZHAudW5pdH1dYFxuICAgICAgICAgIDogJycsXG4gICAgICAgIG5hbWVMb2NhdGlvbjogJ21pZGRsZScsXG4gICAgICAgIG5hbWVHYXA6IDIwLFxuICAgICAgICBuYW1lVGV4dFN0eWxlOiB7XG4gICAgICAgICAgLy8gYWRkIHJpY2ggdGV4dCB0byBzdXBwb3J0IG11bHRpcGxlIGNvbG9ycyBmb3IgZGlmZmVyZW50IGRwIHVuaXRzXG4gICAgICAgICAgcmljaDoge1xuICAgICAgICAgICAgLi4uQXJyYXkuZnJvbShtYXRjaGluZ0RwU2V0KS5yZWR1Y2UoKGFjYywgZHApID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgYWNjS2V5ID0gYCR7ZHAuX190YXJnZXQ/LmlkfWA7XG4gICAgICAgICAgICAgIGFjY1thY2NLZXldID0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBkcC5jb2xvclxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfSwge30pXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB0eXBlOiAndmFsdWUnLFxuICAgICAgICBhbmltYXRpb246IHRydWUsXG4gICAgICAgIGF4aXNMaW5lOiB7XG4gICAgICAgICAgc2hvdzogbWF0Y2hpbmdEcFJhbmdlICYmIFlBeGlzT3B0aW9ucy5tZXJnZU1hdGNoaW5nRGF0YXBvaW50cyA/IGZhbHNlIDogdHJ1ZSxcbiAgICAgICAgICBsaW5lU3R5bGU6IHtcbiAgICAgICAgICAgIGNvbG9yOiBmaXJzdE9jY3VycmVuY2UuaGFzKGRwKSA/ICdibGFjaycgOiBkcC5jb2xvclxuICAgICAgICAgIH0sXG4gICAgICAgICAgb25aZXJvOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBheGlzTGFiZWw6IHtcbiAgICAgICAgICBmb250U2l6ZTogMTAsXG4gICAgICAgICAgc2hvdzogIW1hdGNoaW5nRHBSYW5nZSB8fCAhWUF4aXNPcHRpb25zLm1lcmdlTWF0Y2hpbmdEYXRhcG9pbnRzLFxuICAgICAgICAgIGZvcm1hdHRlcjogdmFsID0+IHtcbiAgICAgICAgICAgIGlmIChkcC5taW4gIT0gdW5kZWZpbmVkICYmIGRwLm1heCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBkcC5tYXggLSBkcC5taW47XG4gICAgICAgICAgICAgIGNvbnN0IGRlY2ltYWxQbGFjZXMgPSB0aGlzLmdldERlY2ltYWxQbGFjZXMocmFuZ2UpO1xuICAgICAgICAgICAgICByZXR1cm4gdmFsLnRvRml4ZWQoZGVjaW1hbFBsYWNlcyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQodGhpcy5pbnRsTnVtYmVyRm9ybWF0Q29tcGxpYW50TG9jYWxlLCB7XG4gICAgICAgICAgICAgIG5vdGF0aW9uOiAnY29tcGFjdCcsXG4gICAgICAgICAgICAgIGNvbXBhY3REaXNwbGF5OiAnc2hvcnQnXG4gICAgICAgICAgICB9KS5mb3JtYXQodmFsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHNwbGl0TGluZToge1xuICAgICAgICAgIHNob3c6IFlBeGlzT3B0aW9ucy5zaG93U3BsaXRMaW5lcyAmJiAhbWF0Y2hpbmdEcFJhbmdlLFxuICAgICAgICAgIGxpbmVTdHlsZTogeyBjb2xvcjogZHAuY29sb3IsIG9wYWNpdHk6IDAuNCwgdHlwZTogJ2Rhc2hlZCcgfVxuICAgICAgICB9LFxuICAgICAgICBwb3NpdGlvbjogWUF4aXNQbGFjZW1lbnQuZ2V0KGRwKT8ucG9zaXRpb24sXG4gICAgICAgIG9mZnNldDogWUF4aXNQbGFjZW1lbnQuZ2V0KGRwKT8ub2Zmc2V0LFxuICAgICAgICBheGlzVGljazoge1xuICAgICAgICAgIHNob3c6ICFtYXRjaGluZ0RwUmFuZ2UgfHwgIVlBeGlzT3B0aW9ucy5tZXJnZU1hdGNoaW5nRGF0YXBvaW50c1xuICAgICAgICB9LFxuICAgICAgICBheGlzUG9pbnRlcjoge1xuICAgICAgICAgIHNob3c6IGZhbHNlLFxuICAgICAgICAgIGxhYmVsOiB7XG4gICAgICAgICAgICBzaG93OiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgLi4uKGRwLm1pbiAmJiB7IG1pbjogZHAubWluIH0pLFxuICAgICAgICAuLi4oZHAubWF4ICYmIHsgbWF4OiBkcC5tYXggfSlcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldERlY2ltYWxQbGFjZXMobnVtOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IG51bVN0ciA9IG51bS50b1N0cmluZygpO1xuICAgIGNvbnN0IGRlY2ltYWxJbmRleCA9IG51bVN0ci5pbmRleE9mKCcuJyk7XG4gICAgaWYgKGRlY2ltYWxJbmRleCA9PT0gLTEpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gbnVtU3RyLmxlbmd0aCAtIGRlY2ltYWxJbmRleCAtIDE7XG4gIH1cblxuICBwcml2YXRlIGdldFlBeGlzUGxhY2VtZW50KFxuICAgIGRhdGFwb2ludHNXaXRoVmFsdWVzOiBEcFdpdGhWYWx1ZXNbXVxuICApOiBNYXA8RHBXaXRoVmFsdWVzLCB7IHBvc2l0aW9uOiBEYXRhcG9pbnRBeGlzVHlwZTsgb2Zmc2V0OiBudW1iZXIgfT4ge1xuICAgIGNvbnN0IFlBeGlzUG9zaXRpb25zID0gbmV3IE1hcDxEcFdpdGhWYWx1ZXMsIHsgcG9zaXRpb246IERhdGFwb2ludEF4aXNUeXBlIH0+KCk7XG5cbiAgICBkYXRhcG9pbnRzV2l0aFZhbHVlcy5mb3JFYWNoKGRwID0+IHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5nZXRZQXhpc1Bvc2l0aW9uKGRwLCBkYXRhcG9pbnRzV2l0aFZhbHVlcyk7XG4gICAgICBZQXhpc1Bvc2l0aW9ucy5zZXQoZHAsIHsgcG9zaXRpb24gfSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBkcExlZnQgPSBkYXRhcG9pbnRzV2l0aFZhbHVlcy5maWx0ZXIoZHAgPT4gWUF4aXNQb3NpdGlvbnMuZ2V0KGRwKS5wb3NpdGlvbiA9PT0gJ2xlZnQnKTtcbiAgICBjb25zdCBkcFJpZ2h0ID0gZGF0YXBvaW50c1dpdGhWYWx1ZXMuZmlsdGVyKGRwID0+IFlBeGlzUG9zaXRpb25zLmdldChkcCkucG9zaXRpb24gPT09ICdyaWdodCcpO1xuXG4gICAgY29uc3QgWUF4aXNQbGFjZW1lbnQgPSBuZXcgTWFwPERwV2l0aFZhbHVlcywgeyBwb3NpdGlvbjogRGF0YXBvaW50QXhpc1R5cGU7IG9mZnNldDogbnVtYmVyIH0+KCk7XG4gICAgWUF4aXNQb3NpdGlvbnMuZm9yRWFjaCgoeyBwb3NpdGlvbiB9LCBrZXkpID0+IHtcbiAgICAgIGNvbnN0IG9mZnNldCA9IChwb3NpdGlvbiA9PT0gJ2xlZnQnID8gZHBMZWZ0IDogZHBSaWdodCkuaW5kZXhPZihrZXkpICogdGhpcy5ZX0FYSVNfT0ZGU0VUO1xuICAgICAgWUF4aXNQbGFjZW1lbnQuc2V0KGtleSwgeyBwb3NpdGlvbjogcG9zaXRpb24sIG9mZnNldCB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBZQXhpc1BsYWNlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0WUF4aXNQb3NpdGlvbihcbiAgICBkYXRhcG9pbnQ6IERhdGFwb2ludEF4aXNUeXBlLFxuICAgIGRhdGFwb2ludHNXaXRoVmFsdWVzOiBEcFdpdGhWYWx1ZXNbXVxuICApOiBEYXRhcG9pbnRBeGlzVHlwZSB7XG4gICAgaWYgKGRhdGFwb2ludC55QXhpc1R5cGUpIHtcbiAgICAgIHJldHVybiBkYXRhcG9pbnQueUF4aXNUeXBlO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSBkYXRhcG9pbnRzV2l0aFZhbHVlcy5pbmRleE9mKGRhdGFwb2ludCk7XG4gICAgY29uc3Qgb3RoZXJJbmRleExlZnQgPSBkYXRhcG9pbnRzV2l0aFZhbHVlcy5maW5kSW5kZXgoXG4gICAgICBkcCA9PiBkcCAhPT0gZGF0YXBvaW50ICYmICghZHAueUF4aXNUeXBlIHx8IGRwLnlBeGlzVHlwZSA9PT0gJ2xlZnQnKVxuICAgICk7XG4gICAgaWYgKG90aGVySW5kZXhMZWZ0ID4gLTEgJiYgb3RoZXJJbmRleExlZnQgPCBjdXJyZW50SW5kZXgpIHtcbiAgICAgIHJldHVybiAncmlnaHQnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ2xlZnQnO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -55,14 +55,14 @@ export class IntervalPickerComponent {
55
55
  }
56
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IntervalPickerComponent, decorators: [{
57
57
  type: Component,
58
- args: [{ selector: 'c8y-interval-picker', providers: [
58
+ args: [{ selector: 'c8y-interval-picker', standalone: true, imports: [CommonModule, FormsModule, A11yModule, ReactiveFormsModule, BsDropdownModule], providers: [
59
59
  {
60
60
  provide: NG_VALUE_ACCESSOR,
61
61
  useExisting: forwardRef(() => IntervalPickerComponent),
62
62
  multi: true
63
63
  }
64
- ], standalone: true, imports: [CommonModule, FormsModule, A11yModule, ReactiveFormsModule, BsDropdownModule], template: "<li\n *ngFor=\"let interval of translatedIntervals\"\n [ngClass]=\"{\n active: interval.id === value\n }\"\n>\n <button\n type=\"button\"\n (click)=\"onChange(interval.id)\"\n >\n <span\n [ngClass]=\"{\n 'text-primary': interval.id === value\n }\"\n >\n <span\n c8yIcon=\"check\"\n [ngStyle]=\"{ visibility: interval.id === value ? 'visible' : 'hidden' }\"\n ></span>\n {{ interval.title }}\n </span>\n </button>\n</li>\n" }]
64
+ ], template: "<li\n *ngFor=\"let interval of translatedIntervals\"\n [ngClass]=\"{\n active: interval.id === value\n }\"\n>\n <button\n type=\"button\"\n (click)=\"onChange(interval.id)\"\n >\n <span\n [ngClass]=\"{\n 'text-primary': interval.id === value\n }\"\n >\n <span\n c8yIcon=\"check\"\n [ngStyle]=\"{ visibility: interval.id === value ? 'visible' : 'hidden' }\"\n ></span>\n {{ interval.title }}\n </span>\n </button>\n</li>\n" }]
65
65
  }], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { INTERVALS: [{
66
66
  type: Input
67
67
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2ludGVydmFsLXBpY2tlci9pbnRlcnZhbC1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vaW50ZXJ2YWwtcGlja2VyL2ludGVydmFsLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsbUJBQW1CLEVBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQWlDLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBZXZELE1BQU0sT0FBTyx1QkFBdUI7SUFRbEMsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFQdEMsY0FBUyxHQUF1QyxTQUFTLENBQUM7UUFHbkUsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLHdCQUFtQixHQUFvQyxFQUFFLENBQUM7UUFXMUQsZ0VBQWdFO1FBQ2hFLGFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNuQixnRUFBZ0U7UUFDaEUsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQVo2QixDQUFDO0lBRW5ELFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pELEdBQUcsUUFBUTtZQUNYLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1NBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQU9ELFVBQVUsQ0FBQyxLQUFxQjtRQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBaUI7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQzs4R0EzQ1UsdUJBQXVCO2tHQUF2Qix1QkFBdUIsc0dBVnZCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDdEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQ3RCSCw2ZUF1QkEsMkNEQ1ksWUFBWSw4VUFBRSxXQUFXLDhCQUFFLFVBQVUsOEJBQUUsbUJBQW1CLDhCQUFFLGdCQUFnQjs7MkZBRTNFLHVCQUF1QjtrQkFibkMsU0FBUzsrQkFDRSxxQkFBcUIsYUFFcEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLGNBQ1csSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLENBQUM7cUZBRzlFLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIEZvcm1zTW9kdWxlLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCc0Ryb3Bkb3duTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kcm9wZG93bic7XG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQWxhcm1GaWx0ZXJJbnRlcnZhbCwgSW50ZXJ2YWwsIElOVEVSVkFMUyB9IGZyb20gJy4vaW50ZXJ2YWwtcGlja2VyLm1vZGVsJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWludGVydmFsLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnRlcnZhbC1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEludGVydmFsUGlja2VyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgQTExeU1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgQnNEcm9wZG93bk1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgSW50ZXJ2YWxQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIElOVEVSVkFMUzogSW50ZXJ2YWxbXSB8IEFsYXJtRmlsdGVySW50ZXJ2YWxbXSA9IElOVEVSVkFMUztcblxuICB2YWx1ZTogSW50ZXJ2YWxbJ2lkJ107XG4gIHRvdWNoZWQgPSBmYWxzZTtcbiAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgdHJhbnNsYXRlZEludGVydmFsczogeyBpZDogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudHJhbnNsYXRlZEludGVydmFscyA9IHRoaXMuSU5URVJWQUxTLm1hcChpbnRlcnZhbCA9PiAoe1xuICAgICAgLi4uaW50ZXJ2YWwsXG4gICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChpbnRlcnZhbC50aXRsZSlcbiAgICB9KSk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uQ2hhbmdlID0gXyA9PiB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiBJbnRlcnZhbFsnaWQnXSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gIH1cblxuICBtYXJrQXNUb3VjaGVkKCkge1xuICAgIGlmICghdGhpcy50b3VjaGVkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgdGhpcy50b3VjaGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICB9XG59XG4iLCI8bGlcbiAgKm5nRm9yPVwibGV0IGludGVydmFsIG9mIHRyYW5zbGF0ZWRJbnRlcnZhbHNcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgYWN0aXZlOiBpbnRlcnZhbC5pZCA9PT0gdmFsdWVcbiAgfVwiXG4+XG4gIDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAoY2xpY2spPVwib25DaGFuZ2UoaW50ZXJ2YWwuaWQpXCJcbiAgPlxuICAgIDxzcGFuXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICd0ZXh0LXByaW1hcnknOiBpbnRlcnZhbC5pZCA9PT0gdmFsdWVcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxzcGFuXG4gICAgICAgIGM4eUljb249XCJjaGVja1wiXG4gICAgICAgIFtuZ1N0eWxlXT1cInsgdmlzaWJpbGl0eTogaW50ZXJ2YWwuaWQgPT09IHZhbHVlID8gJ3Zpc2libGUnIDogJ2hpZGRlbicgfVwiXG4gICAgICA+PC9zcGFuPlxuICAgICAge3sgaW50ZXJ2YWwudGl0bGUgfX1cbiAgICA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9saT5cbiJdfQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2ludGVydmFsLXBpY2tlci9pbnRlcnZhbC1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vaW50ZXJ2YWwtcGlja2VyL2ludGVydmFsLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsbUJBQW1CLEVBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQWlDLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBZXZELE1BQU0sT0FBTyx1QkFBdUI7SUFTbEMsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFSdEMsY0FBUyxHQUF1QyxTQUFTLENBQUM7UUFHbkUsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLHdCQUFtQixHQUFvQyxFQUFFLENBQUM7UUFXMUQsZ0VBQWdFO1FBQ2hFLGFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNuQixnRUFBZ0U7UUFDaEUsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQVo2QixDQUFDO0lBRW5ELFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pELEdBQUcsUUFBUTtZQUNYLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1NBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQU9ELFVBQVUsQ0FBQyxLQUFxQjtRQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBaUI7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQzs4R0E1Q1UsdUJBQXVCO2tHQUF2Qix1QkFBdUIsc0dBUnZCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDdEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQ3hCSCw2ZUF1QkEsMkNETlksWUFBWSw4VUFBRSxXQUFXLDhCQUFFLFVBQVUsOEJBQUUsbUJBQW1CLDhCQUFFLGdCQUFnQjs7MkZBUzNFLHVCQUF1QjtrQkFibkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FFbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLENBQUMsYUFDNUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3FGQUdRLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIEZvcm1zTW9kdWxlLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCc0Ryb3Bkb3duTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kcm9wZG93bic7XG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQWxhcm1GaWx0ZXJJbnRlcnZhbCwgSW50ZXJ2YWwsIElOVEVSVkFMUyB9IGZyb20gJy4vaW50ZXJ2YWwtcGlja2VyLm1vZGVsJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWludGVydmFsLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnRlcnZhbC1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgQTExeU1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgQnNEcm9wZG93bk1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW50ZXJ2YWxQaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSW50ZXJ2YWxQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIElOVEVSVkFMUzogSW50ZXJ2YWxbXSB8IEFsYXJtRmlsdGVySW50ZXJ2YWxbXSA9IElOVEVSVkFMUztcblxuICB2YWx1ZTogSW50ZXJ2YWxbJ2lkJ107XG4gIHRvdWNoZWQgPSBmYWxzZTtcbiAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICB0cmFuc2xhdGVkSW50ZXJ2YWxzOiB7IGlkOiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy50cmFuc2xhdGVkSW50ZXJ2YWxzID0gdGhpcy5JTlRFUlZBTFMubWFwKGludGVydmFsID0+ICh7XG4gICAgICAuLi5pbnRlcnZhbCxcbiAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGludGVydmFsLnRpdGxlKVxuICAgIH0pKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgb25DaGFuZ2UgPSBfID0+IHt9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IEludGVydmFsWydpZCddKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgfVxuXG4gIG1hcmtBc1RvdWNoZWQoKSB7XG4gICAgaWYgKCF0aGlzLnRvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQ7XG4gIH1cbn1cbiIsIjxsaVxuICAqbmdGb3I9XCJsZXQgaW50ZXJ2YWwgb2YgdHJhbnNsYXRlZEludGVydmFsc1wiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICBhY3RpdmU6IGludGVydmFsLmlkID09PSB2YWx1ZVxuICB9XCJcbj5cbiAgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIChjbGljayk9XCJvbkNoYW5nZShpbnRlcnZhbC5pZClcIlxuICA+XG4gICAgPHNwYW5cbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3RleHQtcHJpbWFyeSc6IGludGVydmFsLmlkID09PSB2YWx1ZVxuICAgICAgfVwiXG4gICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgYzh5SWNvbj1cImNoZWNrXCJcbiAgICAgICAgW25nU3R5bGVdPVwieyB2aXNpYmlsaXR5OiBpbnRlcnZhbC5pZCA9PT0gdmFsdWUgPyAndmlzaWJsZScgOiAnaGlkZGVuJyB9XCJcbiAgICAgID48L3NwYW4+XG4gICAgICB7eyBpbnRlcnZhbC50aXRsZSB9fVxuICAgIDwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2xpPlxuIl19
@@ -48,4 +48,4 @@ export const INTERVAL_VALUES = Object.keys(INTERVAL_TITLES).reduce((acc, key) =>
48
48
  ...acc,
49
49
  [key]: key
50
50
  }), {});
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwtcGlja2VyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vaW50ZXJ2YWwtcGlja2VyL2ludGVydmFsLXBpY2tlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztBQUM3QixNQUFNLENBQU4sSUFBWSxZQU1YO0FBTkQsV0FBWSxZQUFZO0lBQ3RCLHVEQUFvQixDQUFBO0lBQ3BCLHFEQUF1QixDQUFBO0lBQ3ZCLG9EQUEyQixDQUFBO0lBQzNCLHVEQUFnQyxDQUFBO0lBQ2hDLHFDQUFVLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxXQUFBLENBQUE7QUFDbEcsQ0FBQyxFQU5XLFlBQVksS0FBWixZQUFZLFFBTXZCO0FBZ0JELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBZTtJQUNuQztRQUNFLEVBQUUsRUFBRSxTQUFTO1FBQ2IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDN0IsWUFBWSxFQUFFLFlBQVksQ0FBQyxNQUFNO0tBQ2xDO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsT0FBTztRQUNYLEtBQUssRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQzNCLFlBQVksRUFBRSxZQUFZLENBQUMsSUFBSTtLQUNoQztJQUNEO1FBQ0UsRUFBRSxFQUFFLE1BQU07UUFDVixLQUFLLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUMxQixZQUFZLEVBQUUsWUFBWSxDQUFDLEdBQUc7S0FDL0I7SUFDRDtRQUNFLEVBQUUsRUFBRSxPQUFPO1FBQ1gsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDM0IsWUFBWSxFQUFFLFlBQVksQ0FBQyxJQUFJO0tBQ2hDO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsUUFBUTtRQUNaLEtBQUssRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQzVCLFlBQVksRUFBRSxZQUFZLENBQUMsS0FBSztLQUNqQztJQUNELEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO0NBQzNDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQW1DO0lBQzdELE9BQU8sRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDO0lBQy9CLEtBQUssRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDO0lBQzNCLElBQUksRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO0lBQ3pCLEtBQUssRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDO0lBQzNCLE1BQU0sRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDO0lBQzdCLE1BQU0sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDO0NBQzFCLENBQUM7QUFLRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNLENBQ2hFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNiLEdBQUcsR0FBRztJQUNOLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRztDQUNYLENBQUMsRUFDRixFQUFpQixDQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZ2V0dGV4dCc7XG5cbmNvbnN0IHRvZGF5RGF0ZSA9IG5ldyBEYXRlKCk7XG5leHBvcnQgZW51bSBUaW1lU3BhbkluTXMge1xuICAnTUlOVVRFJyA9IDEwMDAgKiA2MCxcbiAgJ0hPVVInID0gMTAwMCAqIDYwICogNjAsXG4gICdEQVknID0gMTAwMCAqIDYwICogNjAgKiAyNCxcbiAgJ1dFRUsnID0gMTAwMCAqIDYwICogNjAgKiAyNCAqIDcsXG4gICdNT05USCcgPSB0b2RheURhdGUudmFsdWVPZigpIC0gbmV3IERhdGUodG9kYXlEYXRlLnNldE1vbnRoKHRvZGF5RGF0ZS5nZXRNb250aCgpIC0gMSkpLnZhbHVlT2YoKVxufVxuXG5leHBvcnQgdHlwZSBJbnRlcnZhbCA9IHtcbiAgaWQ6ICdtaW51dGVzJyB8ICdob3VycycgfCAnZGF5cycgfCAnd2Vla3MnIHwgJ21vbnRocycgfCAnY3VzdG9tJztcbiAgdGl0bGU6IHN0cmluZztcbiAgdGltZXNwYW5Jbk1zPzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQWxhcm1GaWx0ZXJJbnRlcnZhbCA9XG4gIHwgSW50ZXJ2YWxcbiAgfCB7XG4gICAgICBpZDogJ25vbmUnO1xuICAgICAgdGl0bGU6IHN0cmluZztcbiAgICAgIHRpbWVzcGFuSW5Ncz86IG51bWJlcjtcbiAgICB9O1xuXG5leHBvcnQgY29uc3QgSU5URVJWQUxTOiBJbnRlcnZhbFtdID0gW1xuICB7XG4gICAgaWQ6ICdtaW51dGVzJyxcbiAgICB0aXRsZTogZ2V0dGV4dCgnTGFzdCBtaW51dGUnKSxcbiAgICB0aW1lc3BhbkluTXM6IFRpbWVTcGFuSW5Ncy5NSU5VVEVcbiAgfSxcbiAge1xuICAgIGlkOiAnaG91cnMnLFxuICAgIHRpdGxlOiBnZXR0ZXh0KCdMYXN0IGhvdXInKSxcbiAgICB0aW1lc3BhbkluTXM6IFRpbWVTcGFuSW5Ncy5IT1VSXG4gIH0sXG4gIHtcbiAgICBpZDogJ2RheXMnLFxuICAgIHRpdGxlOiBnZXR0ZXh0KCdMYXN0IGRheScpLFxuICAgIHRpbWVzcGFuSW5NczogVGltZVNwYW5Jbk1zLkRBWVxuICB9LFxuICB7XG4gICAgaWQ6ICd3ZWVrcycsXG4gICAgdGl0bGU6IGdldHRleHQoJ0xhc3Qgd2VlaycpLFxuICAgIHRpbWVzcGFuSW5NczogVGltZVNwYW5Jbk1zLldFRUtcbiAgfSxcbiAge1xuICAgIGlkOiAnbW9udGhzJyxcbiAgICB0aXRsZTogZ2V0dGV4dCgnTGFzdCBtb250aCcpLFxuICAgIHRpbWVzcGFuSW5NczogVGltZVNwYW5Jbk1zLk1PTlRIXG4gIH0sXG4gIHsgaWQ6ICdjdXN0b20nLCB0aXRsZTogZ2V0dGV4dCgnQ3VzdG9tJykgfVxuXTtcblxuZXhwb3J0IGNvbnN0IElOVEVSVkFMX1RJVExFUzogUmVjb3JkPEludGVydmFsWydpZCddLCBzdHJpbmc+ID0ge1xuICBtaW51dGVzOiBnZXR0ZXh0KCdMYXN0IG1pbnV0ZScpLFxuICBob3VyczogZ2V0dGV4dCgnTGFzdCBob3VyJyksXG4gIGRheXM6IGdldHRleHQoJ0xhc3QgZGF5JyksXG4gIHdlZWtzOiBnZXR0ZXh0KCdMYXN0IHdlZWsnKSxcbiAgbW9udGhzOiBnZXR0ZXh0KCdMYXN0IG1vbnRoJyksXG4gIGN1c3RvbTogZ2V0dGV4dCgnQ3VzdG9tJylcbn07XG5cbnR5cGUgSW50ZXJ2YWxLZXkgPSBJbnRlcnZhbFsnaWQnXTtcbnR5cGUgSW50ZXJ2YWxNYXAgPSB7IFtLIGluIEludGVydmFsS2V5XTogSyB9O1xuXG5leHBvcnQgY29uc3QgSU5URVJWQUxfVkFMVUVTID0gT2JqZWN0LmtleXMoSU5URVJWQUxfVElUTEVTKS5yZWR1Y2UoXG4gIChhY2MsIGtleSkgPT4gKHtcbiAgICAuLi5hY2MsXG4gICAgW2tleV06IGtleVxuICB9KSxcbiAge30gYXMgSW50ZXJ2YWxNYXBcbik7XG4iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwtcGlja2VyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vaW50ZXJ2YWwtcGlja2VyL2ludGVydmFsLXBpY2tlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztBQUM3QixNQUFNLENBQU4sSUFBWSxZQU1YO0FBTkQsV0FBWSxZQUFZO0lBQ3RCLHVEQUFvQixDQUFBO0lBQ3BCLHFEQUF1QixDQUFBO0lBQ3ZCLG9EQUEyQixDQUFBO0lBQzNCLHVEQUFnQyxDQUFBO0lBQ2hDLHFDQUFVLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxXQUFBLENBQUE7QUFDbEcsQ0FBQyxFQU5XLFlBQVksS0FBWixZQUFZLFFBTXZCO0FBZUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFlO0lBQ25DO1FBQ0UsRUFBRSxFQUFFLFNBQVM7UUFDYixLQUFLLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUM3QixZQUFZLEVBQUUsWUFBWSxDQUFDLE1BQU07S0FDbEM7SUFDRDtRQUNFLEVBQUUsRUFBRSxPQUFPO1FBQ1gsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDM0IsWUFBWSxFQUFFLFlBQVksQ0FBQyxJQUFJO0tBQ2hDO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsTUFBTTtRQUNWLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQzFCLFlBQVksRUFBRSxZQUFZLENBQUMsR0FBRztLQUMvQjtJQUNEO1FBQ0UsRUFBRSxFQUFFLE9BQU87UUFDWCxLQUFLLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUMzQixZQUFZLEVBQUUsWUFBWSxDQUFDLElBQUk7S0FDaEM7SUFDRDtRQUNFLEVBQUUsRUFBRSxRQUFRO1FBQ1osS0FBSyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDNUIsWUFBWSxFQUFFLFlBQVksQ0FBQyxLQUFLO0tBQ2pDO0lBQ0QsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7Q0FDM0MsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBbUM7SUFDN0QsT0FBTyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUM7SUFDL0IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDM0IsSUFBSSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDekIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDM0IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFDN0IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUM7Q0FDMUIsQ0FBQztBQUtGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sQ0FDaEUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2IsR0FBRyxHQUFHO0lBQ04sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHO0NBQ1gsQ0FBQyxFQUNGLEVBQWlCLENBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9nZXR0ZXh0JztcblxuY29uc3QgdG9kYXlEYXRlID0gbmV3IERhdGUoKTtcbmV4cG9ydCBlbnVtIFRpbWVTcGFuSW5NcyB7XG4gICdNSU5VVEUnID0gMTAwMCAqIDYwLFxuICAnSE9VUicgPSAxMDAwICogNjAgKiA2MCxcbiAgJ0RBWScgPSAxMDAwICogNjAgKiA2MCAqIDI0LFxuICAnV0VFSycgPSAxMDAwICogNjAgKiA2MCAqIDI0ICogNyxcbiAgJ01PTlRIJyA9IHRvZGF5RGF0ZS52YWx1ZU9mKCkgLSBuZXcgRGF0ZSh0b2RheURhdGUuc2V0TW9udGgodG9kYXlEYXRlLmdldE1vbnRoKCkgLSAxKSkudmFsdWVPZigpXG59XG5leHBvcnQgdHlwZSBJbnRlcnZhbCA9IHtcbiAgaWQ6ICdtaW51dGVzJyB8ICdob3VycycgfCAnZGF5cycgfCAnd2Vla3MnIHwgJ21vbnRocycgfCAnY3VzdG9tJztcbiAgdGl0bGU6IHN0cmluZztcbiAgdGltZXNwYW5Jbk1zPzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQWxhcm1GaWx0ZXJJbnRlcnZhbCA9XG4gIHwgSW50ZXJ2YWxcbiAgfCB7XG4gICAgICBpZDogJ25vbmUnO1xuICAgICAgdGl0bGU6IHN0cmluZztcbiAgICAgIHRpbWVzcGFuSW5Ncz86IG51bWJlcjtcbiAgICB9O1xuXG5leHBvcnQgY29uc3QgSU5URVJWQUxTOiBJbnRlcnZhbFtdID0gW1xuICB7XG4gICAgaWQ6ICdtaW51dGVzJyxcbiAgICB0aXRsZTogZ2V0dGV4dCgnTGFzdCBtaW51dGUnKSxcbiAgICB0aW1lc3BhbkluTXM6IFRpbWVTcGFuSW5Ncy5NSU5VVEVcbiAgfSxcbiAge1xuICAgIGlkOiAnaG91cnMnLFxuICAgIHRpdGxlOiBnZXR0ZXh0KCdMYXN0IGhvdXInKSxcbiAgICB0aW1lc3BhbkluTXM6IFRpbWVTcGFuSW5Ncy5IT1VSXG4gIH0sXG4gIHtcbiAgICBpZDogJ2RheXMnLFxuICAgIHRpdGxlOiBnZXR0ZXh0KCdMYXN0IGRheScpLFxuICAgIHRpbWVzcGFuSW5NczogVGltZVNwYW5Jbk1zLkRBWVxuICB9LFxuICB7XG4gICAgaWQ6ICd3ZWVrcycsXG4gICAgdGl0bGU6IGdldHRleHQoJ0xhc3Qgd2VlaycpLFxuICAgIHRpbWVzcGFuSW5NczogVGltZVNwYW5Jbk1zLldFRUtcbiAgfSxcbiAge1xuICAgIGlkOiAnbW9udGhzJyxcbiAgICB0aXRsZTogZ2V0dGV4dCgnTGFzdCBtb250aCcpLFxuICAgIHRpbWVzcGFuSW5NczogVGltZVNwYW5Jbk1zLk1PTlRIXG4gIH0sXG4gIHsgaWQ6ICdjdXN0b20nLCB0aXRsZTogZ2V0dGV4dCgnQ3VzdG9tJykgfVxuXTtcblxuZXhwb3J0IGNvbnN0IElOVEVSVkFMX1RJVExFUzogUmVjb3JkPEludGVydmFsWydpZCddLCBzdHJpbmc+ID0ge1xuICBtaW51dGVzOiBnZXR0ZXh0KCdMYXN0IG1pbnV0ZScpLFxuICBob3VyczogZ2V0dGV4dCgnTGFzdCBob3VyJyksXG4gIGRheXM6IGdldHRleHQoJ0xhc3QgZGF5JyksXG4gIHdlZWtzOiBnZXR0ZXh0KCdMYXN0IHdlZWsnKSxcbiAgbW9udGhzOiBnZXR0ZXh0KCdMYXN0IG1vbnRoJyksXG4gIGN1c3RvbTogZ2V0dGV4dCgnQ3VzdG9tJylcbn07XG5cbnR5cGUgSW50ZXJ2YWxLZXkgPSBJbnRlcnZhbFsnaWQnXTtcbnR5cGUgSW50ZXJ2YWxNYXAgPSB7IFtLIGluIEludGVydmFsS2V5XTogSyB9O1xuXG5leHBvcnQgY29uc3QgSU5URVJWQUxfVkFMVUVTID0gT2JqZWN0LmtleXMoSU5URVJWQUxfVElUTEVTKS5yZWR1Y2UoXG4gIChhY2MsIGtleSkgPT4gKHtcbiAgICAuLi5hY2MsXG4gICAgW2tleV06IGtleVxuICB9KSxcbiAge30gYXMgSW50ZXJ2YWxNYXBcbik7XG4iXX0=
@@ -235,6 +235,9 @@ export class MapComponent {
235
235
  this.addLayers(layers);
236
236
  this.handleMobile();
237
237
  this.onMap.next(this.map);
238
+ if (this.config.realtime) {
239
+ this.startRealtime();
240
+ }
238
241
  this.isInit = true;
239
242
  this.onInit.emit(this.leaflet);
240
243
  }
@@ -439,4 +442,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
439
442
  }], onInit: [{
440
443
  type: Output
441
444
  }] } });
442
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL21hcC9tYXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vbWFwL21hcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUdOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQ0wsUUFBUSxFQUNSLFVBQVUsRUFDVixPQUFPLEVBQ1AsNEJBQTRCLEVBQzVCLGNBQWMsRUFDZCw4QkFBOEIsRUFDL0IsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakYsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsU0FBUyxFQUNULEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUVSLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUdMLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsY0FBYyxFQUdmLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQU8zQyxNQUFNLE9BQU8s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S0FoRDVCLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxLQUFLO2dCQUloQixLQUFLO3NCQURKLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUkvQixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLE1BQU07Z0JBSVAsTUFBTTtzQkFETCxNQUFNO2dCQUlQLFNBQVM7c0JBRFIsTUFBTTtnQkFJUCxXQUFXO3NCQURWLE1BQU07Z0JBSVAsU0FBUztzQkFEUixNQUFNO2dCQUlQLEtBQUs7c0JBREosTUFBTTtnQkFJUCxNQUFNO3NCQURMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZSxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgRGF0ZVBpcGUsXG4gIEdlb1NlcnZpY2UsXG4gIGdldHRleHQsXG4gIE1hbmFnZWRPYmplY3RSZWFsdGltZVNlcnZpY2UsXG4gIHNvcnRCeVByaW9yaXR5LFxuICBXaWRnZXRHbG9iYWxBdXRvUmVmcmVzaFNlcnZpY2Vcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1hcERlZmF1bHRDb25maWcsIE1hcFRpbGVMYXllciB9IGZyb20gJ0BjOHkvb3B0aW9ucyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgdHlwZSAqIGFzIEwgZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgeyBldmVyeSwgZmxhdHRlbiwgaXNFbXB0eSwgaXNOdWxsLCBpc1VuZGVmaW5lZCwgcmVtb3ZlIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZnJvbUV2ZW50LFxuICBORVZFUixcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCwgbWFwLCBzY2FuLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1hcFBvcHVwRGlyZWN0aXZlIH0gZnJvbSAnLi9tYXAtcG9wdXAuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gIEM4eU1hcmtlcixcbiAgQzh5TWFya2VyQXR0cmlidXRlcyxcbiAgZ2V0Qzh5TWFya2VyLFxuICBNQVBfREVGQVVMVF9DT05GSUcsXG4gIE1BUF9USUxFX0xBWUVSLFxuICBNYXBDb25maWcsXG4gIFBvc2l0aW9uTWFuYWdlZE9iamVjdFxufSBmcm9tICcuL21hcC5tb2RlbCc7XG5pbXBvcnQgeyBNYXBTZXJ2aWNlIH0gZnJvbSAnLi9tYXAuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1tYXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFwLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbTWFuYWdlZE9iamVjdFJlYWx0aW1lU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgTWFwQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZSBsZWFmbGV0IG1hcCBvYmplY3QuXG4gICAqL1xuICBtYXA6IEwuTWFwO1xuICAvKipcbiAgICogVGhlIG1hcmtlcnMgcGxhY2VkIG9uIHRoZSBtYXAuXG4gICAqL1xuICBtYXJrZXJzOiBBcnJheTxDOHlNYXJrZXIgfCBMLk1hcmtlcj4gPSBbXTtcbiAgLyoqXG4gICAqIFRoZSBsZWFmbGV0IHJlcHJlc2VudGF0aW9uIHVzZWQuXG4gICAqL1xuICBsZWFmbGV0OiB0eXBlb2YgTDtcbiAgLyoqXG4gICAqIFRlbGxzIGlmIHRoZSBtYXAgd2FzIGFscmVhZHkgaW5pdGlhbGl6ZWQuXG4gICAqL1xuICBpc0luaXQgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdtYXAnKVxuICBtYXBFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gIEBDb250ZW50Q2hpbGQoTWFwUG9wdXBEaXJlY3RpdmUpXG4gIHBvcHVwOiBNYXBQb3B1cERpcmVjdGl2ZTtcblxuICBASW5wdXQoKVxuICBjb25maWc6IE1hcENvbmZpZyA9IHt9O1xuXG4gIEBJbnB1dCgpXG4gIGFzc2V0czogUG9zaXRpb25NYW5hZ2VkT2JqZWN0IHwgUG9zaXRpb25NYW5hZ2VkT2JqZWN0W107XG5cbiAgQElucHV0KClcbiAgcG9seWxpbmUkOiBPYnNlcnZhYmxlPEwuTGF0TG5nRXhwcmVzc2lvbltdIHwgTC5MYXRMbmdFeHByZXNzaW9uW11bXT4gPSBORVZFUjtcblxuICBASW5wdXQoKVxuICBwb2x5bGluZU9wdGlvbnM6IEwuUG9seWxpbmVPcHRpb25zO1xuXG4gIEBPdXRwdXQoKVxuICBvblJlYWx0aW1lVXBkYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxQb3NpdGlvbk1hbmFnZWRPYmplY3Q+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uTW92ZTogT2JzZXJ2YWJsZTxMLkxlYWZsZXRFdmVudD47XG5cbiAgQE91dHB1dCgpXG4gIG9uTW92ZUVuZDogT2JzZXJ2YWJsZTxMLkxlYWZsZXRFdmVudD47XG5cbiAgQE91dHB1dCgpXG4gIG9uWm9vbVN0YXJ0OiBPYnNlcnZhYmxlPEwuTGVhZmxldEV2ZW50PjtcblxuICBAT3V0cHV0KClcbiAgb25ab29tRW5kOiBPYnNlcnZhYmxlPEwuTGVhZmxldEV2ZW50PjtcblxuICBAT3V0cHV0KClcbiAgb25NYXAgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEwuTWFwIHwgbnVsbD4obnVsbCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uSW5pdCA9IG5ldyBFdmVudEVtaXR0ZXI8dHlwZW9mIEw+KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWx0aW1lU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByb3RlY3RlZCB1bnN1YnNjcmliZVRyaWdnZXIkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJvdGVjdGVkIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIG1hcmtlclRpdGxlID0gZ2V0dGV4dCgnTWFya2VyIGF0IHBvc2l0aW9uIHt7bGF0fX0sIHt7bG5nfX0nKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgbW9SZWFsdGltZVNlcnZpY2U6IE1hbmFnZWRPYmplY3RSZWFsdGltZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG1hcFNlcnZpY2U6IE1hcFNlcnZpY2UsXG4gICAgQEluamVjdChNQVBfVElMRV9MQVlFUikgcHJvdGVjdGVkIGxheWVycyQ6IE9ic2VydmFibGU8TWFwVGlsZUxheWVyW10+LFxuICAgIEBJbmplY3QoTUFQX0RFRkFVTFRfQ09ORklHKVxuICAgIHByb3RlY3RlZCBkZWZhdWx0Q29uZmlnJDogT2JzZXJ2YWJsZTxNYXBEZWZhdWx0Q29uZmlnPixcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgZ2VvOiBHZW9TZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBkYXRlUGlwZTogRGF0ZVBpcGUsXG4gICAgcHJvdGVjdGVkIHdpZGdldEdsb2JhbEF1dG9SZWZyZXNoU2VydmljZTogV2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2hTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuaW5pdE91dHB1dHMoKTtcbiAgfVxuXG4gIHN0YXJ0UmVhbHRpbWUoKSB7XG4gICAgaWYgKCF0aGlzLmFzc2V0cyB8fCAoQXJyYXkuaXNBcnJheSh0aGlzLmFzc2V0cykgJiYgdGhpcy5hc3NldHMubGVuZ3RoID4gMSkpIHtcbiAgICAgIHRoaXMuY29uZmlnLnJlYWx0aW1lID0gZmFsc2U7XG4gICAgICB0aGlzLnN0b3BSZWFsdGltZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBhc3NldCA9IEFycmF5LmlzQXJyYXkodGhpcy5hc3NldHMpID8gdGhpcy5hc3NldHNbMF0gOiB0aGlzLmFzc2V0cztcbiAgICB0aGlzLnJlYWx0aW1lU3Vic2NyaXB0aW9uID0gdGhpcy5tb1JlYWx0aW1lU2VydmljZVxuICAgICAgLm9uVXBkYXRlJChhc3NldClcbiAgICAgIC5zdWJzY3JpYmUoKGFzc2V0OiBQb3NpdGlvbk1hbmFnZWRPYmplY3QpID0+IHtcbiAgICAgICAgY29uc3QgbWFya2VyID0gdGhpcy5maW5kTWFya2VyKGFzc2V0LmlkKTtcbiAgICAgICAgY29uc3QgaWNvbiA9IHRoaXMuZ2V0QXNzZXRJY29uKGFzc2V0KTtcbiAgICAgICAgbWFya2VyLnNldEljb24oaWNvbik7XG4gICAgICAgIG1hcmtlci5zZXRMYXRMbmcodGhpcy5nZW8uZ2V0TGF0TG9uZyhhc3NldCkpO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmFzc2V0cykpIHtcbiAgICAgICAgICB0aGlzLmFzc2V0c1swXSA9IGFzc2V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYXNzZXRzID0gYXNzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tb3ZlVG9Qb3NpdGlvbk9mTW8oYXNzZXQpO1xuICAgICAgICB0aGlzLm9uUmVhbHRpbWVVcGRhdGUuZW1pdChhc3NldCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG1vdmVUb1Bvc2l0aW9uT2ZNbyhwb3NpdGlvbnM6IFBvc2l0aW9uTWFuYWdlZE9iamVjdCB8IFBvc2l0aW9uTWFuYWdlZE9iamVjdFtdKSB7XG4gICAgY29uc3QgcG9zaXRpb24gPSBBcnJheS5pc0FycmF5KHBvc2l0aW9ucykgPyBwb3NpdGlvbnNbMF0gOiBwb3NpdGlvbnM7XG4gICAgaWYgKHRoaXMuY29uZmlnLmZvbGxvdykge1xuICAgICAgdGhpcy5tYXAuc2V0VmlldyhbcG9zaXRpb24uYzh5X1Bvc2l0aW9uLmxhdCwgcG9zaXRpb24uYzh5X1Bvc2l0aW9uLmxuZ10pO1xuICAgIH1cbiAgfVxuXG4gIHN0b3BSZWFsdGltZSgpIHtcbiAgICBpZiAodGhpcy5yZWFsdGltZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5yZWFsdGltZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGZpbmRNYXJrZXIobW9PcklkOiBzdHJpbmcgfCBJRXZlbnQgfCBQb3NpdGlvbk1hbmFnZWRPYmplY3QpIHtcbiAgICBjb25zdCBnZXRJZCA9IG1vT3JJZCA9PiAodHlwZW9mIG1vT3JJZCA9PT0gJ3N0cmluZycgPyBtb09ySWQgOiBtb09ySWQ/LmlkKTtcbiAgICByZXR1cm4gdGhpcy5tYXJrZXJzLmZpbmQoXG4gICAgICAobWFya2VyOiBDOHlNYXJrZXIpID0+XG4gICAgICAgIG1hcmtlci5hc3NldD8uaWQgPT09IGdldElkKG1vT3JJZCkgfHwgbWFya2VyLmV2ZW50Py5pZCA9PT0gZ2V0SWQobW9PcklkKVxuICAgICk7XG4gIH1cblxuICBhZGRNYXJrZXJUb01hcChtYXJrZXI6IEM4eU1hcmtlciB8IEwuTWFya2VyKSB7XG4gICAgdGhpcy5tYXJrZXJzLnB1c2gobWFya2VyKTtcbiAgICBtYXJrZXIuYWRkVG8odGhpcy5tYXApO1xuICB9XG5cbiAgZ2V0QXNzZXRNYXJrZXIoYXNzZXQ6IFBvc2l0aW9uTWFuYWdlZE9iamVjdCkge1xuICAgIGlmICghYXNzZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpY29uID0gdGhpcy5nZXRBc3NldEljb24oYXNzZXQpO1xuICAgIGNvbnN0IHsgbGF0LCBsbmcgfSA9IGFzc2V0LmM4eV9Qb3NpdGlvbjtcbiAgICBjb25zdCBsZWFmbGV0TWFya2VyID0gdGhpcy5sZWFmbGV0Lm1hcmtlcih0aGlzLmdlby5nZXRMYXRMb25nKGFzc2V0KSwge1xuICAgICAgaWNvbixcbiAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLm1hcmtlclRpdGxlLCB7IGxhdCwgbG5nIH0pXG4gICAgfSk7XG4gICAgY29uc3QgbWFya2VyID0gZ2V0Qzh5TWFya2VyKGxlYWZsZXRNYXJrZXIsIGFzc2V0KTtcbiAgICB0aGlzLmJpbmRQb3B1cChtYXJrZXIsIGFzc2V0KTtcblxuICAgIHJldHVybiBtYXJrZXI7XG4gIH1cblxuICBnZXRUcmFja2luZ01hcmtlcihldmVudDogSUV2ZW50KSB7XG4gICAgaWYgKCFldmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGljb24gPSB0aGlzLmdldFRyYWNraW5nSWNvbigpO1xuICAgIGNvbnN0IHsgbGF0LCBsbmcgfSA9IGV2ZW50LmM4eV9Qb3NpdGlvbjtcbiAgICBjb25zdCBsZWFmbGV0TWFya2VyID0gdGhpcy5sZWFmbGV0Lm1hcmtlcih0aGlzLmdlby5nZXRMYXRMb25nKGV2ZW50KSwge1xuICAgICAgaWNvbixcbiAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLm1hcmtlclRpdGxlLCB7IGxhdCwgbG5nIH0pXG4gICAgfSk7XG4gICAgY29uc3QgbWFya2VyID0gZ2V0Qzh5TWFya2VyKGxlYWZsZXRNYXJrZXIsIG51bGwsIGV2ZW50KTtcbiAgICB0aGlzLmJpbmRQb3B1cChtYXJrZXIsIGV2ZW50KTtcblxuICAgIHJldHVybiBtYXJrZXI7XG4gIH1cblxuICBnZXRBc3NldEljb24oYXNzZXQ6IFBvc2l0aW9uTWFuYWdlZE9iamVjdCkge1xuICAgIGNvbnN0IGFzc2V0VHlwZUljb24gPSB0aGlzLmNvbmZpZy5pY29uIHx8IGFzc2V0Lmljb24/Lm5hbWU7XG4gICAgY29uc3Qgc3RhdHVzID0gTWFwU2VydmljZS5nZXRTdGF0dXMoYXNzZXQpO1xuICAgIGNvbnN0IGNvbG9yID0gdGhpcy5jb25maWcuY29sb3IgPyBgc3R5bGU9J2NvbG9yOiAke3RoaXMuY29uZmlnLmNvbG9yfTsnYCA6ICcnO1xuICAgIGNvbnN0IGljb24gPSB0aGlzLmxlYWZsZXQuZGl2SWNvbih7XG4gICAgICBodG1sOiBgPGRpdiBjbGFzcz1cImRsdC1jOHktaWNvbi1tYXJrZXIgaWNvbi0zeCAke3N0YXR1c31cIiAke2NvbG9yfT48aSBjbGFzcz1cImRsdC1jOHktaWNvbi0ke1xuICAgICAgICBhc3NldFR5cGVJY29uIHx8ICdkYXRhLXRyYW5zZmVyJ1xuICAgICAgfVwiIC8+PC9kaXY+YCxcbiAgICAgIGNsYXNzTmFtZTogJ2M4eS1tYXAtbWFya2VyLWljb24nLFxuICAgICAgLy8gaWNvbkFuY2hvciBpcyB1c2VkIHRvIHNldCB0aGUgbWFya2VyIGFjY3VyYXRlbHkgb24gY2xpY2tcbiAgICAgIGljb25BbmNob3I6IFs4LCA4XVxuICAgIH0pO1xuICAgIHJldHVybiBpY29uO1xuICB9XG5cbiAgZ2V0VHJhY2tpbmdJY29uKCkge1xuICAgIGNvbnN0IGljb24gPSB0aGlzLmxlYWZsZXQuZGl2SWNvbih7XG4gICAgICBodG1sOiBgPGRpdiBjbGFzcz1cImRsdC1jOHktaWNvbi1tYXJrZXIgaWNvbi0zeCB0ZXh0LW11dGVkXCI+PC9kaXY+YCxcbiAgICAgIGNsYXNzTmFtZTogJ2M4eS1tYXAtbWFya2VyLWljb24nLFxuICAgICAgLy8gaWNvbkFuY2hvciBpcyB1c2VkIHRvIHNldCB0aGUgbWFya2VyIGFjY3VyYXRlbHkgb24gY2xpY2tcbiAgICAgIGljb25BbmNob3I6IFs4LCA4XVxuICAgIH0pO1xuICAgIHJldHVybiBpY29uO1xuICB9XG5cbiAgcmVtb3ZlTWFya2VyKG1hcmtlcjogQzh5TWFya2VyIHwgTC5NYXJrZXIpIHtcbiAgICBpZiAobWFya2VyKSB7XG4gICAgICBtYXJrZXIucmVtb3ZlKCk7XG4gICAgICByZW1vdmUodGhpcy5tYXJrZXJzLCBtID0+IG0gPT09IG1hcmtlcik7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJNYXJrZXJzKGZyYWdtZW50PzogQzh5TWFya2VyQXR0cmlidXRlcykge1xuICAgIGNvbnN0IG1hdGNoaW5nTWFya2VycyA9IG1hcmtlciA9PiAhZnJhZ21lbnQgfHwgISFtYXJrZXJbZnJhZ21lbnRdO1xuICAgIHRoaXMubWFya2Vycy5maWx0ZXIobWF0Y2hpbmdNYXJrZXJzKS5mb3JFYWNoKG1hcmtlciA9PiBtYXJrZXIucmVtb3ZlKCkpO1xuICAgIHRoaXMubWFya2VycyA9IHRoaXMubWFya2Vycy5maWx0ZXIobWFya2VyID0+ICFtYXRjaGluZ01hcmtlcnMobWFya2VyKSk7XG4gIH1cblxuICByZWZyZXNoTWFya2VycygpIHtcbiAgICB0aGlzLmNsZWFyTWFya2VycygpO1xuICAgIGxldCBhc3NldHM6IFBvc2l0aW9uTWFuYWdlZE9iamVjdFtdID0gW107XG4gICAgaWYgKCFpc1VuZGVmaW5lZCh0aGlzLmFzc2V0cykpIHtcbiAgICAgIGFzc2V0cyA9IEFycmF5LmlzQXJyYXkodGhpcy5hc3NldHMpID8gdGhpcy5hc3NldHMgOiBbdGhpcy5hc3NldHNdO1xuICAgIH1cbiAgICBhc3NldHMuZm9yRWFjaChhc3NldCA9PiB7XG4gICAgICBjb25zdCBtYXJrZXIgPSB0aGlzLmdldEFzc2V0TWFya2VyKGFzc2V0KTtcbiAgICAgIHRoaXMuYWRkTWFya2VyVG9NYXAobWFya2VyKTtcbiAgICB9KTtcbiAgICBpZiAoIXRoaXMuY29uZmlnLmNlbnRlcikge1xuICAgICAgdGhpcy56b29tVG9Cb3VuZChhc3NldHMpO1xuICAgIH1cbiAgICB0aGlzLnRvZ2dsZUNvbnRyb2xzKCk7XG4gIH1cblxuICBjZW50ZXIoKSB7XG4gICAgdGhpcy5tYXA/LnNldFZpZXcodGhpcy5jb25maWcuY2VudGVyKTtcbiAgfVxuXG4gIHJlZnJlc2goKSB7XG4gICAgaWYgKHRoaXMuaXNJbml0KSB7XG4gICAgICB0aGlzLnJlZnJlc2hNYXJrZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmxlYWZsZXQgPSBhd2FpdCB0aGlzLm1hcFNlcnZpY2UuZ2V0TGVhZmxldCgpO1xuICAgIGNvbnN0IGluaXRpYWxpemVkJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMubGF5ZXJzJCwgdGhpcy5kZWZhdWx0Q29uZmlnJF0pLnBpcGUoXG4gICAgICBmaXJzdCgpLFxuICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVUcmlnZ2VyJClcbiAgICApO1xuXG4gICAgaW5pdGlhbGl6ZWQkLnN1YnNjcmliZSgoW2xheWVycywgZGVmYXVsdENvbmZpZ10pID0+IHtcbiAgICAgIHRoaXMuaW5pdE1hcChsYXllcnMsIGRlZmF1bHRDb25maWcpO1xuICAgICAgdGhpcy5yZWZyZXNoTWFya2VycygpO1xuICAgIH0pO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5wb2x5bGluZSQsIGluaXRpYWxpemVkJF0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChbZXhwcmVzc2lvbnNdKSA9PiB0aGlzLmxlYWZsZXQucG9seWxpbmUoZXhwcmVzc2lvbnMsIHRoaXMucG9seWxpbmVPcHRpb25zKSksXG4gICAgICAgIHNjYW4oKG9sZFBvbHlsaW5lLCBuZXdQb2x5bGluZSkgPT4ge1xuICAgICAgICAgIGlmICghIW9sZFBvbHlsaW5lKSB7XG4gICAgICAgICAgICB0aGlzLm1hcC5yZW1vdmVMYXllcihvbGRQb2x5bGluZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghIW5ld1BvbHlsaW5lKSB7XG4gICAgICAgICAgICBuZXdQb2x5bGluZS5hZGRUbyh0aGlzLm1hcCk7XG4gICAgICAgICAgICB0aGlzLmZpdEJvdW5kcyhuZXdQb2x5bGluZS5nZXRCb3VuZHMoKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG5ld1BvbHlsaW5lO1xuICAgICAgICB9LCBudWxsKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVUcmlnZ2VyJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1hcCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5hc3NldHM/LmN1cnJlbnRWYWx1ZSAmJiAhY2hhbmdlcy5hc3NldHM/LmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLnJlZnJlc2hNYXJrZXJzKCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuY29uZmlnPy5jdXJyZW50VmFsdWUgJiYgIWNoYW5nZXMuY29uZmlnPy5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5jaGFuZ2VDb25maWcoY2hhbmdlcy5jb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlQWxsTGlzdGVuZXJzKCk7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVuc3Vic2NyaWJlQWxsTGlzdGVuZXJzKCkge1xuICAgIHRoaXMudW5zdWJzY3JpYmVUcmlnZ2VyJC5uZXh0KCk7XG4gICAgdGhpcy5zdG9wUmVhbHRpbWUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0T3V0cHV0cygpIHtcbiAgICBjb25zdCBnZXRNYXBFdmVudE9ic2VydmFibGUgPSBldmVudE5hbWUgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMub25NYXAucGlwZShcbiAgICAgICAgZmlsdGVyKG1hcCA9PiAhIW1hcCksXG4gICAgICAgIHN3aXRjaE1hcChtYXAgPT4gZnJvbUV2ZW50PEwuTGVhZmxldEV2ZW50PihtYXAsIGV2ZW50TmFtZSkpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKVxuICAgICAgKTtcbiAgICB9O1xuICAgIGNvbnN0IGRyYWdTdGFydCQgPSBnZXRNYXBFdmVudE9ic2VydmFibGUoJ2RyYWdzdGFydCcpO1xuICAgIGNvbnN0IG1vdmUkID0gZ2V0TWFwRXZlbnRPYnNlcnZhYmxlKCdtb3ZlJyk7XG4gICAgY29uc3QgZHJhZ0VuZCQgPSBnZXRNYXBFdmVudE9ic2VydmFibGUoJ2RyYWdlbmQnKTtcblxuICAgIHRoaXMub25Nb3ZlID0gZHJhZ1N0YXJ0JC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IG1vdmUkLnBpcGUodGFrZVVudGlsKGRyYWdFbmQkKSkpLFxuICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVUcmlnZ2VyJClcbiAgICApO1xuXG4gICAgdGhpcy5vbk1vdmVFbmQgPSBnZXRNYXBFdmVudE9ic2VydmFibGUoJ21vdmVlbmQnKTtcblxuICAgIHRoaXMub25ab29tRW5kID0gZ2V0TWFwRXZlbnRPYnNlcnZhYmxlKCd6b29tZW5kJyk7XG5cbiAgICB0aGlzLm9uWm9vbVN0YXJ0ID0gZ2V0TWFwRXZlbnRPYnNlcnZhYmxlKCd6b29tc3RhcnQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0TWFwKGxheWVyczogTWFwVGlsZUxheWVyW10sIGRlZmF1bHRDb25maWc6IE1hcENvbmZpZyk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHRPcHRpb25zID0ge1xuICAgICAgY2VudGVyOiB0aGlzLmNvbmZpZy5jZW50ZXIgfHwgZGVmYXVsdENvbmZpZy5jZW50ZXIsXG4gICAgICB6b29tU25hcDogMCxcbiAgICAgIHpvb206IHRoaXMuY29uZmlnLnpvb21MZXZlbCB8fCBkZWZhdWx0Q29uZmlnLnpvb21MZXZlbCxcbiAgICAgIHdvcmxkQ29weUp1bXA6IHRydWVcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMubWFwKSB7XG4gICAgICB0aGlzLm1hcC5yZW1vdmUoKTtcbiAgICB9XG4gICAgdGhpcy5tYXAgPSB0aGlzLmxlYWZsZXQubWFwKHRoaXMubWFwRWxlbWVudC5uYXRpdmVFbGVtZW50LCBkZWZhdWx0T3B0aW9ucyk7XG5cbiAgICB0aGlzLm1hcC5hdHRyaWJ1dGlvbkNvbnRyb2wuc2V0UHJlZml4KCcnKTtcblxuICAgIHRoaXMuZml0Qm91bmRzKHRoaXMuY29uZmlnLmJvdW5kcyk7XG5cbiAgICB0aGlzLmFkZExheWVycyhsYXllcnMpO1xuXG4gICAgdGhpcy5oYW5kbGVNb2JpbGUoKTtcblxuICAgIHRoaXMub25NYXAubmV4dCh0aGlzLm1hcCk7XG5cbiAgICB0aGlzLmlzSW5pdCA9IHRydWU7XG4gICAgdGhpcy5vbkluaXQuZW1pdCh0aGlzLmxlYWZsZXQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU1vYmlsZSgpIHtcbiAgICAvLyBhZGRpbmcgZXZlbnQgbGlzdGVuZXIgdG8gZG8gbW9iaWxlIDIgZmluZ2VyIHNjcm9sbGluZ1xuICAgIGlmICh0aGlzLmxlYWZsZXQuQnJvd3Nlci5tb2JpbGUpIHtcbiAgICAgIGNvbnN0IHRvdWNoTXNnID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnVXNlIHR3byBmaW5nZXJzIHRvIG1vdmUgdGhlIG1hcC4nKSk7XG4gICAgICB0aGlzLm1hcC5kcmFnZ2luZy5kaXNhYmxlKCk7XG4gICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLm1hcC5nZXRDb250YWluZXIoKTtcbiAgICAgIGNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2RhdGEtdG91Y2gtd2FybmluZy1jb250ZW50JywgdG91Y2hNc2cpO1xuICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBldmVudCA9PiB0aGlzLmhhbmRsZVRvdWNoKGV2ZW50KSk7XG4gICAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgZXZlbnQgPT4gdGhpcy5oYW5kbGVUb3VjaChldmVudCkpO1xuICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZXZlbnQgPT4gdGhpcy5oYW5kbGVUb3VjaChldmVudCkpO1xuICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZXZlbnQgPT4gdGhpcy5oYW5kbGVUb3VjaChldmVudCkpO1xuICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZXZlbnQgPT4gdGhpcy5oYW5kbGVUb3VjaChldmVudCkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRMYXllcnMobGF5ZXJzOiBNYXBUaWxlTGF5ZXJbXSkge1xuICAgIGNvbnN0IGZsYXR0ZW5MYXllcnM6IE1hcFRpbGVMYXllcltdID0gZmxhdHRlbihsYXllcnMpO1xuICAgIGNvbnN0IGJhc2VMYXllcnM6IEwuQ29udHJvbC5MYXllcnNPYmplY3QgPSB7fTtcbiAgICBjb25zdCBvdmVybGF5czogTC5Db250cm9sLkxheWVyc09iamVjdCA9IHt9O1xuICAgIGxldCBmaXJzdExheWVyID0gdHJ1ZTtcbiAgICBmb3IgKGNvbnN0IGxheWVyIG9mIHNvcnRCeVByaW9yaXR5KGZsYXR0ZW5MYXllcnMpKSB7XG4gICAgICBjb25zdCBvYmplY3RUb0FkZFRvID0gbGF5ZXIuaXNPdmVybGF5ID8gb3ZlcmxheXMgOiBiYXNlTGF5ZXJzO1xuICAgICAgaWYgKG9iamVjdFRvQWRkVG9bbGF5ZXIubGFiZWxdKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0aWxlcyA9IHRoaXMubGVhZmxldC50aWxlTGF5ZXIobGF5ZXIubGF5ZXJVcmwsIGxheWVyLm9wdGlvbnMpO1xuICAgICAgaWYgKCFsYXllci5pc092ZXJsYXkgJiYgZmlyc3RMYXllcikge1xuICAgICAgICBmaXJzdExheWVyID0gZmFsc2U7XG4gICAgICAgIHRpbGVzLmFkZFRvKHRoaXMubWFwKTtcbiAgICAgIH1cbiAgICAgIG9iamVjdFRvQWRkVG9bbGF5ZXIubGFiZWxdID0gdGlsZXM7XG4gICAgfVxuICAgIGlmIChmbGF0dGVuTGF5ZXJzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRoaXMubGVhZmxldC5jb250cm9sLmxheWVycyhiYXNlTGF5ZXJzLCBvdmVybGF5cywgeyBwb3NpdGlvbjogJ2JvdHRvbWxlZnQnIH0pLmFkZFRvKHRoaXMubWFwKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hhbmdlQ29uZmlnKGNoYW5nZTogU2ltcGxlQ2hhbmdlKSB7XG4gICAgaWYgKHRoaXMuaGFzQ2hhbmdlZChjaGFuZ2UsICd6b29tTGV2ZWwnKSkge1xuICAgICAgdGhpcy5tYXAuc2V0Wm9vbSh0aGlzLmNvbmZpZy56b29tTGV2ZWwpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhhc0NoYW5nZWQoY2hhbmdlLCAnY2VudGVyJykgJiYgZXZlcnkoY2hhbmdlLmN1cnJlbnRWYWx1ZS5jZW50ZXIsIHAgPT4gIWlzTnVsbChwKSkpIHtcbiAgICAgIHRoaXMubWFwLnNldFZpZXcoY2hhbmdlLmN1cnJlbnRWYWx1ZS5jZW50ZXIpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhhc0NoYW5nZWQoY2hhbmdlLCAnaWNvbicpIHx8IHRoaXMuaGFzQ2hhbmdlZChjaGFuZ2UsICdjb2xvcicpKSB7XG4gICAgICB0aGlzLnJlZnJlc2hNYXJrZXJzKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzQ2hhbmdlZChjaGFuZ2UsICdyZWFsdGltZScpICYmIGNoYW5nZS5jdXJyZW50VmFsdWUucmVhbHRpbWUpIHtcbiAgICAgIHRoaXMuc3RhcnRSZWFsdGltZSgpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2UuY3VycmVudFZhbHVlLnJlYWx0aW1lID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5zdG9wUmVhbHRpbWUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oYXNDaGFuZ2VkKGNoYW5nZSwgJ2ZvbGxvdycpKSB7XG4gICAgICB0aGlzLm1vdmVUb1Bvc2l0aW9uT2ZNbyh0aGlzLmFzc2V0cyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzQ2hhbmdlZChjaGFuZ2UsICdkaXNhYmxlUGFuJykgfHwgdGhpcy5oYXNDaGFuZ2VkKGNoYW5nZSwgJ2Rpc2FibGVab29tJykpIHtcbiAgICAgIHRoaXMudG9nZ2xlQ29udHJvbHMoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFzQ2hhbmdlZChjaGFuZ2U6IFNpbXBsZUNoYW5nZSwgcHJvcDoga2V5b2YgTWFwQ29uZmlnKSB7XG4gICAgcmV0dXJuIGNoYW5nZS5jdXJyZW50VmFsdWVbcHJvcF0gIT09IGNoYW5nZS5wcmV2aW91c1ZhbHVlW3Byb3BdO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvZ2dsZUNvbnRyb2xzKCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5kaXNhYmxlWm9vbSkge1xuICAgICAgdGhpcy5tYXAucmVtb3ZlQ29udHJvbCh0aGlzLm1hcC56b29tQ29udHJvbCk7XG4gICAgICB0aGlzLm1hcC5zY3JvbGxXaGVlbFpvb20uZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1hcC5hZGRDb250cm9sKHRoaXMubWFwLnpvb21Db250cm9sKTtcbiAgICAgIHRoaXMubWFwLnNjcm9sbFdoZWVsWm9vbS5lbmFibGUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29uZmlnLmRpc2FibGVQYW4pIHtcbiAgICAgIHRoaXMubWFwLmRyYWdnaW5nLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tYXAuZHJhZ2dpbmcuZW5hYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVUb3VjaChlOiBFdmVudCkge1xuICAgIC8vIERpc3JlZ2FyZCB0b3VjaCBldmVudHMgb24gdGhlIG1pbmltYXAgaWYgcHJlc2VudFxuICAgIGNvbnN0IGlnbm9yZUxpc3QgPSBbXG4gICAgICAnbGVhZmxldC1jb250cm9sLW1pbmltYXAnLFxuICAgICAgJ2xlYWZsZXQtaW50ZXJhY3RpdmUnLFxuICAgICAgJ2xlYWZsZXQtcG9wdXAtY29udGVudCcsXG4gICAgICAnbGVhZmxldC1wb3B1cC1jb250ZW50LXdyYXBwZXInLFxuICAgICAgJ2xlYWZsZXQtcG9wdXAtY2xvc2UtYnV0dG9uJyxcbiAgICAgICdsZWFmbGV0LWNvbnRyb2wtem9vbS1pbicsXG4gICAgICAnbGVhZmxldC1jb250cm9sLXpvb20tb3V0J1xuICAgIF07XG5cbiAgICBsZXQgaWdub3JlRWxlbWVudCA9IGZhbHNlO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaWdub3JlTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHRoaXMubGVhZmxldC5Eb21VdGlsLmhhc0NsYXNzKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50LCBpZ25vcmVMaXN0W2ldKSkge1xuICAgICAgICBpZ25vcmVFbGVtZW50ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLm1hcC5nZXRDb250YWluZXIoKTtcbiAgICBpZiAoaWdub3JlRWxlbWVudCkge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmxlYWZsZXQuRG9tVXRpbC5oYXNDbGFzcyhlLnRhcmdldCBhcyBIVE1MRWxlbWVudCwgJ2xlYWZsZXQtaW50ZXJhY3RpdmUnKSAmJlxuICAgICAgICBlLnR5cGUgPT09ICd0b3VjaG1vdmUnICYmXG4gICAgICAgIChlIGFzIFRvdWNoRXZlbnQpLnRvdWNoZXMubGVuZ3RoID09PSAxXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5sZWFmbGV0LkRvbVV0aWwuYWRkQ2xhc3MoY29udGFpbmVyLCAndG91Y2gtd2FybmluZycpO1xuICAgICAgICB0aGlzLm1hcC5kcmFnZ2luZy5kaXNhYmxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxlYWZsZXQuRG9tVXRpbC5yZW1vdmVDbGFzcyhjb250YWluZXIsICd0b3VjaC13YXJuaW5nJyk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGUudHlwZSAhPT0gJ3RvdWNobW92ZScgJiYgZS50eXBlICE9PSAndG91Y2hzdGFydCcpIHtcbiAgICAgIHRoaXMubGVhZmxldC5Eb21VdGlsLnJlbW92ZUNsYXNzKGNvbnRhaW5lciwgJ3RvdWNoLXdhcm5pbmcnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKChlIGFzIFRvdWNoRXZlbnQpLnRvdWNoZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLmxlYWZsZXQuRG9tVXRpbC5hZGRDbGFzcyhjb250YWluZXIsICd0b3VjaC13YXJuaW5nJyk7XG4gICAgICB0aGlzLm1hcC5kcmFnZ2luZy5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWFwLmRyYWdnaW5nLmVuYWJsZSgpO1xuICAgICAgdGhpcy5sZWFmbGV0LkRvbVV0aWwucmVtb3ZlQ2xhc3MoY29udGFpbmVyLCAndG91Y2gtd2FybmluZycpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgem9vbVRvQm91bmQoYXNzZXRzOiBQb3NpdGlvbk1hbmFnZWRPYmplY3RbXSkge1xuICAgIGlmIChpc0VtcHR5KGFzc2V0cykpIHJldHVybjtcblxuICAgIGNvbnN0IGJvdW5kczogW251bWJlciwgbnVtYmVyXVtdID0gYXNzZXRzLm1hcChhc3NldCA9PiBbXG4gICAgICBhc3NldC5jOHlfUG9zaXRpb24ubGF0LFxuICAgICAgYXNzZXQuYzh5X1Bvc2l0aW9uLmxuZ1xuICAgIF0pO1xuICAgIGlmIChhc3NldHMubGVuZ3RoID4gMSkge1xuICAgICAgdGhpcy5tYXAuZmx5VG9Cb3VuZHMoYm91bmRzLCB7IGFuaW1hdGU6IGZhbHNlIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm1hcC5mbHlUbyhcbiAgICAgIFthc3NldHNbMF0uYzh5X1Bvc2l0aW9uLmxhdCwgYXNzZXRzWzBdLmM4eV9Qb3NpdGlvbi5sbmddLFxuICAgICAgdGhpcy5tYXAub3B0aW9ucy56b29tLFxuICAgICAge1xuICAgICAgICBhbmltYXRlOiBmYWxzZVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZpdEJvdW5kcyhib3VuZHM6IEwuTGF0TG5nQm91bmRzKSB7XG4gICAgaWYgKGJvdW5kcz8uaXNWYWxpZCgpKSB7XG4gICAgICB0aGlzLm1hcC5maXRCb3VuZHMoYm91bmRzLCB0aGlzLmNvbmZpZy5maXRCb3VuZHNPcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJpbmRQb3B1cChtYXJrZXI6IEM4eU1hcmtlciwgY29udGV4dDogUG9zaXRpb25NYW5hZ2VkT2JqZWN0IHwgSUV2ZW50KSB7XG4gICAgaWYgKHRoaXMucG9wdXApIHtcbiAgICAgIG1hcmtlci5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgIHRoaXMucG9wdXAudmlld0NvbnRhaW5lci5jbGVhcigpO1xuICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy5wb3B1cC52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnBvcHVwLnRlbXBsYXRlLCB7XG4gICAgICAgICAgJGltcGxpY2l0OiBjb250ZXh0XG4gICAgICAgIH0pO1xuICAgICAgICB2aWV3LmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgbWFya2VyXG4gICAgICAgICAgLnVuYmluZFBvcHVwKClcbiAgICAgICAgICAuYmluZFBvcHVwKHRoaXMucG9wdXAuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnByZXZpb3VzU2libGluZywge1xuICAgICAgICAgICAgb2Zmc2V0OiBbLTMsIC00MF0sXG4gICAgICAgICAgICBtYXhXaWR0aDogMTQwLFxuICAgICAgICAgICAgYXV0b1BhbjogdHJ1ZSxcbiAgICAgICAgICAgIGNsb3NlQnV0dG9uOiBmYWxzZVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLm9wZW5Qb3B1cCgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYzh5LW1hcFwiPlxuICA8ZGl2ICNtYXA+PC9kaXY+XG48L2Rpdj5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
445
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL21hcC9tYXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vbWFwL21hcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUdOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQ0wsUUFBUSxFQUNSLFVBQVUsRUFDVixPQUFPLEVBQ1AsNEJBQTRCLEVBQzVCLGNBQWMsRUFDZCw4QkFBOEIsRUFDL0IsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakYsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsU0FBUyxFQUNULEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUVSLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUdMLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsY0FBYyxFQUdmLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQU8zQyxNQUFNLE9BQU8s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QVM7K0JBQ0UsU0FBUyxhQUVSLENBQUMsNEJBQTRCLENBQUM7OzBCQW9FdEMsTUFBTTsyQkFBQyxjQUFjOzswQkFDckIsTUFBTTsyQkFBQyxrQkFBa0I7cUtBaEQ1QixVQUFVO3NCQURULFNBQVM7dUJBQUMsS0FBSztnQkFJaEIsS0FBSztzQkFESixZQUFZO3VCQUFDLGlCQUFpQjtnQkFJL0IsTUFBTTtzQkFETCxLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixNQUFNO2dCQUlQLE1BQU07c0JBREwsTUFBTTtnQkFJUCxTQUFTO3NCQURSLE1BQU07Z0JBSVAsV0FBVztzQkFEVixNQUFNO2dCQUlQLFNBQVM7c0JBRFIsTUFBTTtnQkFJUCxLQUFLO3NCQURKLE1BQU07Z0JBSVAsTUFBTTtzQkFETCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2UsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIERhdGVQaXBlLFxuICBHZW9TZXJ2aWNlLFxuICBnZXR0ZXh0LFxuICBNYW5hZ2VkT2JqZWN0UmVhbHRpbWVTZXJ2aWNlLFxuICBzb3J0QnlQcmlvcml0eSxcbiAgV2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2hTZXJ2aWNlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNYXBEZWZhdWx0Q29uZmlnLCBNYXBUaWxlTGF5ZXIgfSBmcm9tICdAYzh5L29wdGlvbnMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHR5cGUgKiBhcyBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IHsgZXZlcnksIGZsYXR0ZW4sIGlzRW1wdHksIGlzTnVsbCwgaXNVbmRlZmluZWQsIHJlbW92ZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZyb21FdmVudCxcbiAgTkVWRVIsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIFN1YnNjcmlwdGlvblxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgZmlyc3QsIG1hcCwgc2Nhbiwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNYXBQb3B1cERpcmVjdGl2ZSB9IGZyb20gJy4vbWFwLXBvcHVwLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICBDOHlNYXJrZXIsXG4gIEM4eU1hcmtlckF0dHJpYnV0ZXMsXG4gIGdldEM4eU1hcmtlcixcbiAgTUFQX0RFRkFVTFRfQ09ORklHLFxuICBNQVBfVElMRV9MQVlFUixcbiAgTWFwQ29uZmlnLFxuICBQb3NpdGlvbk1hbmFnZWRPYmplY3Rcbn0gZnJvbSAnLi9tYXAubW9kZWwnO1xuaW1wb3J0IHsgTWFwU2VydmljZSB9IGZyb20gJy4vbWFwLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktbWFwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hcC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW01hbmFnZWRPYmplY3RSZWFsdGltZVNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIE1hcENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUaGUgbGVhZmxldCBtYXAgb2JqZWN0LlxuICAgKi9cbiAgbWFwOiBMLk1hcDtcbiAgLyoqXG4gICAqIFRoZSBtYXJrZXJzIHBsYWNlZCBvbiB0aGUgbWFwLlxuICAgKi9cbiAgbWFya2VyczogQXJyYXk8Qzh5TWFya2VyIHwgTC5NYXJrZXI+ID0gW107XG4gIC8qKlxuICAgKiBUaGUgbGVhZmxldCByZXByZXNlbnRhdGlvbiB1c2VkLlxuICAgKi9cbiAgbGVhZmxldDogdHlwZW9mIEw7XG4gIC8qKlxuICAgKiBUZWxscyBpZiB0aGUgbWFwIHdhcyBhbHJlYWR5IGluaXRpYWxpemVkLlxuICAgKi9cbiAgaXNJbml0ID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnbWFwJylcbiAgbWFwRWxlbWVudDogRWxlbWVudFJlZjtcblxuICBAQ29udGVudENoaWxkKE1hcFBvcHVwRGlyZWN0aXZlKVxuICBwb3B1cDogTWFwUG9wdXBEaXJlY3RpdmU7XG5cbiAgQElucHV0KClcbiAgY29uZmlnOiBNYXBDb25maWcgPSB7fTtcblxuICBASW5wdXQoKVxuICBhc3NldHM6IFBvc2l0aW9uTWFuYWdlZE9iamVjdCB8IFBvc2l0aW9uTWFuYWdlZE9iamVjdFtdO1xuXG4gIEBJbnB1dCgpXG4gIHBvbHlsaW5lJDogT2JzZXJ2YWJsZTxMLkxhdExuZ0V4cHJlc3Npb25bXSB8IEwuTGF0TG5nRXhwcmVzc2lvbltdW10+ID0gTkVWRVI7XG5cbiAgQElucHV0KClcbiAgcG9seWxpbmVPcHRpb25zOiBMLlBvbHlsaW5lT3B0aW9ucztcblxuICBAT3V0cHV0KClcbiAgb25SZWFsdGltZVVwZGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8UG9zaXRpb25NYW5hZ2VkT2JqZWN0PigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbk1vdmU6IE9ic2VydmFibGU8TC5MZWFmbGV0RXZlbnQ+O1xuXG4gIEBPdXRwdXQoKVxuICBvbk1vdmVFbmQ6IE9ic2VydmFibGU8TC5MZWFmbGV0RXZlbnQ+O1xuXG4gIEBPdXRwdXQoKVxuICBvblpvb21TdGFydDogT2JzZXJ2YWJsZTxMLkxlYWZsZXRFdmVudD47XG5cbiAgQE91dHB1dCgpXG4gIG9uWm9vbUVuZDogT2JzZXJ2YWJsZTxMLkxlYWZsZXRFdmVudD47XG5cbiAgQE91dHB1dCgpXG4gIG9uTWFwID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMLk1hcCB8IG51bGw+KG51bGwpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkluaXQgPSBuZXcgRXZlbnRFbWl0dGVyPHR5cGVvZiBMPigpO1xuXG4gIHByb3RlY3RlZCByZWFsdGltZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcm90ZWN0ZWQgdW5zdWJzY3JpYmVUcmlnZ2VyJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByb3RlY3RlZCBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBtYXJrZXJUaXRsZSA9IGdldHRleHQoJ01hcmtlciBhdCBwb3NpdGlvbiB7e2xhdH19LCB7e2xuZ319Jyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG1vUmVhbHRpbWVTZXJ2aWNlOiBNYW5hZ2VkT2JqZWN0UmVhbHRpbWVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBtYXBTZXJ2aWNlOiBNYXBTZXJ2aWNlLFxuICAgIEBJbmplY3QoTUFQX1RJTEVfTEFZRVIpIHByb3RlY3RlZCBsYXllcnMkOiBPYnNlcnZhYmxlPE1hcFRpbGVMYXllcltdPixcbiAgICBASW5qZWN0KE1BUF9ERUZBVUxUX0NPTkZJRylcbiAgICBwcm90ZWN0ZWQgZGVmYXVsdENvbmZpZyQ6IE9ic2VydmFibGU8TWFwRGVmYXVsdENvbmZpZz4sXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGdlbzogR2VvU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgZGF0ZVBpcGU6IERhdGVQaXBlLFxuICAgIHByb3RlY3RlZCB3aWRnZXRHbG9iYWxBdXRvUmVmcmVzaFNlcnZpY2U6IFdpZGdldEdsb2JhbEF1dG9SZWZyZXNoU2VydmljZVxuICApIHtcbiAgICB0aGlzLmluaXRPdXRwdXRzKCk7XG4gIH1cblxuICBzdGFydFJlYWx0aW1lKCkge1xuICAgIGlmICghdGhpcy5hc3NldHMgfHwgKEFycmF5LmlzQXJyYXkodGhpcy5hc3NldHMpICYmIHRoaXMuYXNzZXRzLmxlbmd0aCA+IDEpKSB7XG4gICAgICB0aGlzLmNvbmZpZy5yZWFsdGltZSA9IGZhbHNlO1xuICAgICAgdGhpcy5zdG9wUmVhbHRpbWUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgYXNzZXQgPSBBcnJheS5pc0FycmF5KHRoaXMuYXNzZXRzKSA/IHRoaXMuYXNzZXRzWzBdIDogdGhpcy5hc3NldHM7XG4gICAgdGhpcy5yZWFsdGltZVN1YnNjcmlwdGlvbiA9IHRoaXMubW9SZWFsdGltZVNlcnZpY2VcbiAgICAgIC5vblVwZGF0ZSQoYXNzZXQpXG4gICAgICAuc3Vic2NyaWJlKChhc3NldDogUG9zaXRpb25NYW5hZ2VkT2JqZWN0KSA9PiB7XG4gICAgICAgIGNvbnN0IG1hcmtlciA9IHRoaXMuZmluZE1hcmtlcihhc3NldC5pZCk7XG4gICAgICAgIGNvbnN0IGljb24gPSB0aGlzLmdldEFzc2V0SWNvbihhc3NldCk7XG4gICAgICAgIG1hcmtlci5zZXRJY29uKGljb24pO1xuICAgICAgICBtYXJrZXIuc2V0TGF0TG5nKHRoaXMuZ2VvLmdldExhdExvbmcoYXNzZXQpKTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5hc3NldHMpKSB7XG4gICAgICAgICAgdGhpcy5hc3NldHNbMF0gPSBhc3NldDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmFzc2V0cyA9IGFzc2V0O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubW92ZVRvUG9zaXRpb25PZk1vKGFzc2V0KTtcbiAgICAgICAgdGhpcy5vblJlYWx0aW1lVXBkYXRlLmVtaXQoYXNzZXQpO1xuICAgICAgfSk7XG4gIH1cblxuICBtb3ZlVG9Qb3NpdGlvbk9mTW8ocG9zaXRpb25zOiBQb3NpdGlvbk1hbmFnZWRPYmplY3QgfCBQb3NpdGlvbk1hbmFnZWRPYmplY3RbXSkge1xuICAgIGNvbnN0IHBvc2l0aW9uID0gQXJyYXkuaXNBcnJheShwb3NpdGlvbnMpID8gcG9zaXRpb25zWzBdIDogcG9zaXRpb25zO1xuICAgIGlmICh0aGlzLmNvbmZpZy5mb2xsb3cpIHtcbiAgICAgIHRoaXMubWFwLnNldFZpZXcoW3Bvc2l0aW9uLmM4eV9Qb3NpdGlvbi5sYXQsIHBvc2l0aW9uLmM4eV9Qb3NpdGlvbi5sbmddKTtcbiAgICB9XG4gIH1cblxuICBzdG9wUmVhbHRpbWUoKSB7XG4gICAgaWYgKHRoaXMucmVhbHRpbWVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucmVhbHRpbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBmaW5kTWFya2VyKG1vT3JJZDogc3RyaW5nIHwgSUV2ZW50IHwgUG9zaXRpb25NYW5hZ2VkT2JqZWN0KSB7XG4gICAgY29uc3QgZ2V0SWQgPSBtb09ySWQgPT4gKHR5cGVvZiBtb09ySWQgPT09ICdzdHJpbmcnID8gbW9PcklkIDogbW9PcklkPy5pZCk7XG4gICAgcmV0dXJuIHRoaXMubWFya2Vycy5maW5kKFxuICAgICAgKG1hcmtlcjogQzh5TWFya2VyKSA9PlxuICAgICAgICBtYXJrZXIuYXNzZXQ/LmlkID09PSBnZXRJZChtb09ySWQpIHx8IG1hcmtlci5ldmVudD8uaWQgPT09IGdldElkKG1vT3JJZClcbiAgICApO1xuICB9XG5cbiAgYWRkTWFya2VyVG9NYXAobWFya2VyOiBDOHlNYXJrZXIgfCBMLk1hcmtlcikge1xuICAgIHRoaXMubWFya2Vycy5wdXNoKG1hcmtlcik7XG4gICAgbWFya2VyLmFkZFRvKHRoaXMubWFwKTtcbiAgfVxuXG4gIGdldEFzc2V0TWFya2VyKGFzc2V0OiBQb3NpdGlvbk1hbmFnZWRPYmplY3QpIHtcbiAgICBpZiAoIWFzc2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaWNvbiA9IHRoaXMuZ2V0QXNzZXRJY29uKGFzc2V0KTtcbiAgICBjb25zdCB7IGxhdCwgbG5nIH0gPSBhc3NldC5jOHlfUG9zaXRpb247XG4gICAgY29uc3QgbGVhZmxldE1hcmtlciA9IHRoaXMubGVhZmxldC5tYXJrZXIodGhpcy5nZW8uZ2V0TGF0TG9uZyhhc3NldCksIHtcbiAgICAgIGljb24sXG4gICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy5tYXJrZXJUaXRsZSwgeyBsYXQsIGxuZyB9KVxuICAgIH0pO1xuICAgIGNvbnN0IG1hcmtlciA9IGdldEM4eU1hcmtlcihsZWFmbGV0TWFya2VyLCBhc3NldCk7XG4gICAgdGhpcy5iaW5kUG9wdXAobWFya2VyLCBhc3NldCk7XG5cbiAgICByZXR1cm4gbWFya2VyO1xuICB9XG5cbiAgZ2V0VHJhY2tpbmdNYXJrZXIoZXZlbnQ6IElFdmVudCkge1xuICAgIGlmICghZXZlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpY29uID0gdGhpcy5nZXRUcmFja2luZ0ljb24oKTtcbiAgICBjb25zdCB7IGxhdCwgbG5nIH0gPSBldmVudC5jOHlfUG9zaXRpb247XG4gICAgY29uc3QgbGVhZmxldE1hcmtlciA9IHRoaXMubGVhZmxldC5tYXJrZXIodGhpcy5nZW8uZ2V0TGF0TG9uZyhldmVudCksIHtcbiAgICAgIGljb24sXG4gICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy5tYXJrZXJUaXRsZSwgeyBsYXQsIGxuZyB9KVxuICAgIH0pO1xuICAgIGNvbnN0IG1hcmtlciA9IGdldEM4eU1hcmtlcihsZWFmbGV0TWFya2VyLCBudWxsLCBldmVudCk7XG4gICAgdGhpcy5iaW5kUG9wdXAobWFya2VyLCBldmVudCk7XG5cbiAgICByZXR1cm4gbWFya2VyO1xuICB9XG5cbiAgZ2V0QXNzZXRJY29uKGFzc2V0OiBQb3NpdGlvbk1hbmFnZWRPYmplY3QpIHtcbiAgICBjb25zdCBhc3NldFR5cGVJY29uID0gdGhpcy5jb25maWcuaWNvbiB8fCBhc3NldC5pY29uPy5uYW1lO1xuICAgIGNvbnN0IHN0YXR1cyA9IE1hcFNlcnZpY2UuZ2V0U3RhdHVzKGFzc2V0KTtcbiAgICBjb25zdCBjb2xvciA9IHRoaXMuY29uZmlnLmNvbG9yID8gYHN0eWxlPSdjb2xvcjogJHt0aGlzLmNvbmZpZy5jb2xvcn07J2AgOiAnJztcbiAgICBjb25zdCBpY29uID0gdGhpcy5sZWFmbGV0LmRpdkljb24oe1xuICAgICAgaHRtbDogYDxkaXYgY2xhc3M9XCJkbHQtYzh5LWljb24tbWFya2VyIGljb24tM3ggJHtzdGF0dXN9XCIgJHtjb2xvcn0+PGkgY2xhc3M9XCJkbHQtYzh5LWljb24tJHtcbiAgICAgICAgYXNzZXRUeXBlSWNvbiB8fCAnZGF0YS10cmFuc2ZlcidcbiAgICAgIH1cIiAvPjwvZGl2PmAsXG4gICAgICBjbGFzc05hbWU6ICdjOHktbWFwLW1hcmtlci1pY29uJyxcbiAgICAgIC8vIGljb25BbmNob3IgaXMgdXNlZCB0byBzZXQgdGhlIG1hcmtlciBhY2N1cmF0ZWx5IG9uIGNsaWNrXG4gICAgICBpY29uQW5jaG9yOiBbOCwgOF1cbiAgICB9KTtcbiAgICByZXR1cm4gaWNvbjtcbiAgfVxuXG4gIGdldFRyYWNraW5nSWNvbigpIHtcbiAgICBjb25zdCBpY29uID0gdGhpcy5sZWFmbGV0LmRpdkljb24oe1xuICAgICAgaHRtbDogYDxkaXYgY2xhc3M9XCJkbHQtYzh5LWljb24tbWFya2VyIGljb24tM3ggdGV4dC1tdXRlZFwiPjwvZGl2PmAsXG4gICAgICBjbGFzc05hbWU6ICdjOHktbWFwLW1hcmtlci1pY29uJyxcbiAgICAgIC8vIGljb25BbmNob3IgaXMgdXNlZCB0byBzZXQgdGhlIG1hcmtlciBhY2N1cmF0ZWx5IG9uIGNsaWNrXG4gICAgICBpY29uQW5jaG9yOiBbOCwgOF1cbiAgICB9KTtcbiAgICByZXR1cm4gaWNvbjtcbiAgfVxuXG4gIHJlbW92ZU1hcmtlcihtYXJrZXI6IEM4eU1hcmtlciB8IEwuTWFya2VyKSB7XG4gICAgaWYgKG1hcmtlcikge1xuICAgICAgbWFya2VyLnJlbW92ZSgpO1xuICAgICAgcmVtb3ZlKHRoaXMubWFya2VycywgbSA9PiBtID09PSBtYXJrZXIpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyTWFya2VycyhmcmFnbWVudD86IEM4eU1hcmtlckF0dHJpYnV0ZXMpIHtcbiAgICBjb25zdCBtYXRjaGluZ01hcmtlcnMgPSBtYXJrZXIgPT4gIWZyYWdtZW50IHx8ICEhbWFya2VyW2ZyYWdtZW50XTtcbiAgICB0aGlzLm1hcmtlcnMuZmlsdGVyKG1hdGNoaW5nTWFya2VycykuZm9yRWFjaChtYXJrZXIgPT4gbWFya2VyLnJlbW92ZSgpKTtcbiAgICB0aGlzLm1hcmtlcnMgPSB0aGlzLm1hcmtlcnMuZmlsdGVyKG1hcmtlciA9PiAhbWF0Y2hpbmdNYXJrZXJzKG1hcmtlcikpO1xuICB9XG5cbiAgcmVmcmVzaE1hcmtlcnMoKSB7XG4gICAgdGhpcy5jbGVhck1hcmtlcnMoKTtcbiAgICBsZXQgYXNzZXRzOiBQb3NpdGlvbk1hbmFnZWRPYmplY3RbXSA9IFtdO1xuICAgIGlmICghaXNVbmRlZmluZWQodGhpcy5hc3NldHMpKSB7XG4gICAgICBhc3NldHMgPSBBcnJheS5pc0FycmF5KHRoaXMuYXNzZXRzKSA/IHRoaXMuYXNzZXRzIDogW3RoaXMuYXNzZXRzXTtcbiAgICB9XG4gICAgYXNzZXRzLmZvckVhY2goYXNzZXQgPT4ge1xuICAgICAgY29uc3QgbWFya2VyID0gdGhpcy5nZXRBc3NldE1hcmtlcihhc3NldCk7XG4gICAgICB0aGlzLmFkZE1hcmtlclRvTWFwKG1hcmtlcik7XG4gICAgfSk7XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5jZW50ZXIpIHtcbiAgICAgIHRoaXMuem9vbVRvQm91bmQoYXNzZXRzKTtcbiAgICB9XG4gICAgdGhpcy50b2dnbGVDb250cm9scygpO1xuICB9XG5cbiAgY2VudGVyKCkge1xuICAgIHRoaXMubWFwPy5zZXRWaWV3KHRoaXMuY29uZmlnLmNlbnRlcik7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIGlmICh0aGlzLmlzSW5pdCkge1xuICAgICAgdGhpcy5yZWZyZXNoTWFya2VycygpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5sZWFmbGV0ID0gYXdhaXQgdGhpcy5tYXBTZXJ2aWNlLmdldExlYWZsZXQoKTtcbiAgICBjb25zdCBpbml0aWFsaXplZCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmxheWVycyQsIHRoaXMuZGVmYXVsdENvbmZpZyRdKS5waXBlKFxuICAgICAgZmlyc3QoKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlVHJpZ2dlciQpXG4gICAgKTtcblxuICAgIGluaXRpYWxpemVkJC5zdWJzY3JpYmUoKFtsYXllcnMsIGRlZmF1bHRDb25maWddKSA9PiB7XG4gICAgICB0aGlzLmluaXRNYXAobGF5ZXJzLCBkZWZhdWx0Q29uZmlnKTtcbiAgICAgIHRoaXMucmVmcmVzaE1hcmtlcnMoKTtcbiAgICB9KTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMucG9seWxpbmUkLCBpbml0aWFsaXplZCRdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoW2V4cHJlc3Npb25zXSkgPT4gdGhpcy5sZWFmbGV0LnBvbHlsaW5lKGV4cHJlc3Npb25zLCB0aGlzLnBvbHlsaW5lT3B0aW9ucykpLFxuICAgICAgICBzY2FuKChvbGRQb2x5bGluZSwgbmV3UG9seWxpbmUpID0+IHtcbiAgICAgICAgICBpZiAoISFvbGRQb2x5bGluZSkge1xuICAgICAgICAgICAgdGhpcy5tYXAucmVtb3ZlTGF5ZXIob2xkUG9seWxpbmUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoISFuZXdQb2x5bGluZSkge1xuICAgICAgICAgICAgbmV3UG9seWxpbmUuYWRkVG8odGhpcy5tYXApO1xuICAgICAgICAgICAgdGhpcy5maXRCb3VuZHMobmV3UG9seWxpbmUuZ2V0Qm91bmRzKCkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXdQb2x5bGluZTtcbiAgICAgICAgfSwgbnVsbCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlVHJpZ2dlciQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tYXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXMuYXNzZXRzPy5jdXJyZW50VmFsdWUgJiYgIWNoYW5nZXMuYXNzZXRzPy5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5yZWZyZXNoTWFya2VycygpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLmNvbmZpZz8uY3VycmVudFZhbHVlICYmICFjaGFuZ2VzLmNvbmZpZz8uZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMuY2hhbmdlQ29uZmlnKGNoYW5nZXMuY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bnN1YnNjcmliZUFsbExpc3RlbmVycygpO1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1bnN1YnNjcmliZUFsbExpc3RlbmVycygpIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlVHJpZ2dlciQubmV4dCgpO1xuICAgIHRoaXMuc3RvcFJlYWx0aW1lKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdE91dHB1dHMoKSB7XG4gICAgY29uc3QgZ2V0TWFwRXZlbnRPYnNlcnZhYmxlID0gZXZlbnROYW1lID0+IHtcbiAgICAgIHJldHVybiB0aGlzLm9uTWFwLnBpcGUoXG4gICAgICAgIGZpbHRlcihtYXAgPT4gISFtYXApLFxuICAgICAgICBzd2l0Y2hNYXAobWFwID0+IGZyb21FdmVudDxMLkxlYWZsZXRFdmVudD4obWFwLCBldmVudE5hbWUpKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKClcbiAgICAgICk7XG4gICAgfTtcbiAgICBjb25zdCBkcmFnU3RhcnQkID0gZ2V0TWFwRXZlbnRPYnNlcnZhYmxlKCdkcmFnc3RhcnQnKTtcbiAgICBjb25zdCBtb3ZlJCA9IGdldE1hcEV2ZW50T2JzZXJ2YWJsZSgnbW92ZScpO1xuICAgIGNvbnN0IGRyYWdFbmQkID0gZ2V0TWFwRXZlbnRPYnNlcnZhYmxlKCdkcmFnZW5kJyk7XG5cbiAgICB0aGlzLm9uTW92ZSA9IGRyYWdTdGFydCQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiBtb3ZlJC5waXBlKHRha2VVbnRpbChkcmFnRW5kJCkpKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlVHJpZ2dlciQpXG4gICAgKTtcblxuICAgIHRoaXMub25Nb3ZlRW5kID0gZ2V0TWFwRXZlbnRPYnNlcnZhYmxlKCdtb3ZlZW5kJyk7XG5cbiAgICB0aGlzLm9uWm9vbUVuZCA9IGdldE1hcEV2ZW50T2JzZXJ2YWJsZSgnem9vbWVuZCcpO1xuXG4gICAgdGhpcy5vblpvb21TdGFydCA9IGdldE1hcEV2ZW50T2JzZXJ2YWJsZSgnem9vbXN0YXJ0Jyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdE1hcChsYXllcnM6IE1hcFRpbGVMYXllcltdLCBkZWZhdWx0Q29uZmlnOiBNYXBDb25maWcpOiB2b2lkIHtcbiAgICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IHtcbiAgICAgIGNlbnRlcjogdGhpcy5jb25maWcuY2VudGVyIHx8IGRlZmF1bHRDb25maWcuY2VudGVyLFxuICAgICAgem9vbVNuYXA6IDAsXG4gICAgICB6b29tOiB0aGlzLmNvbmZpZy56b29tTGV2ZWwgfHwgZGVmYXVsdENvbmZpZy56b29tTGV2ZWwsXG4gICAgICB3b3JsZENvcHlKdW1wOiB0cnVlXG4gICAgfTtcblxuICAgIGlmICh0aGlzLm1hcCkge1xuICAgICAgdGhpcy5tYXAucmVtb3ZlKCk7XG4gICAgfVxuICAgIHRoaXMubWFwID0gdGhpcy5sZWFmbGV0Lm1hcCh0aGlzLm1hcEVsZW1lbnQubmF0aXZlRWxlbWVudCwgZGVmYXVsdE9wdGlvbnMpO1xuXG4gICAgdGhpcy5tYXAuYXR0cmlidXRpb25Db250cm9sLnNldFByZWZpeCgnJyk7XG5cbiAgICB0aGlzLmZpdEJvdW5kcyh0aGlzLmNvbmZpZy5ib3VuZHMpO1xuXG4gICAgdGhpcy5hZGRMYXllcnMobGF5ZXJzKTtcblxuICAgIHRoaXMuaGFuZGxlTW9iaWxlKCk7XG5cbiAgICB0aGlzLm9uTWFwLm5leHQodGhpcy5tYXApO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLnJlYWx0aW1lKSB7XG4gICAgICB0aGlzLnN0YXJ0UmVhbHRpbWUoKTtcbiAgICB9XG5cbiAgICB0aGlzLmlzSW5pdCA9IHRydWU7XG4gICAgdGhpcy5vbkluaXQuZW1pdCh0aGlzLmxlYWZsZXQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU1vYmlsZSgpIHtcbiAgICAvLyBhZGRpbmcgZXZlbnQgbGlzdGVuZXIgdG8gZG8gbW9iaWxlIDIgZmluZ2VyIHNjcm9sbGluZ1xuICAgIGlmICh0aGlzLmxlYWZsZXQuQnJvd3Nlci5tb2JpbGUpIHtcbiAgICAgIGNvbnN0IHRvdWNoTXNnID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnVXNlIHR3byBmaW5nZXJzIHRvIG1vdmUgdGhlIG1hcC4nKSk7XG4gICAgICB0aGlzLm1hcC5kcmFnZ2luZy5kaXNhYmxlKCk7XG4gICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLm1hcC5nZXRDb250YWluZXIoKTtcbiAgICAgIGNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2RhdGEtdG91Y2gtd2FybmluZy1jb250ZW50JywgdG91Y2hNc2cpO1xuICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBldmVudCA9PiB0aGlzLmhhbmRsZVRvdWNoKGV2ZW50KSk7XG4gICAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgZXZlbnQgPT4gdGhpcy5oYW5kbGVUb3VjaChldmVudCkpO1xuICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZXZlbnQgPT4gdGhpcy5oYW5kbGVUb3VjaChldmVudCkpO1xuICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZXZlbnQgPT4gdGhpcy5oYW5kbGVUb3VjaChldmVudCkpO1xuICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZXZlbnQgPT4gdGhpcy5oYW5kbGVUb3VjaChldmVudCkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRMYXllcnMobGF5ZXJzOiBNYXBUaWxlTGF5ZXJbXSkge1xuICAgIGNvbnN0IGZsYXR0ZW5MYXllcnM6IE1hcFRpbGVMYXllcltdID0gZmxhdHRlbihsYXllcnMpO1xuICAgIGNvbnN0IGJhc2VMYXllcnM6IEwuQ29udHJvbC5MYXllcnNPYmplY3QgPSB7fTtcbiAgICBjb25zdCBvdmVybGF5czogTC5Db250cm9sLkxheWVyc09iamVjdCA9IHt9O1xuICAgIGxldCBmaXJzdExheWVyID0gdHJ1ZTtcbiAgICBmb3IgKGNvbnN0IGxheWVyIG9mIHNvcnRCeVByaW9yaXR5KGZsYXR0ZW5MYXllcnMpKSB7XG4gICAgICBjb25zdCBvYmplY3RUb0FkZFRvID0gbGF5ZXIuaXNPdmVybGF5ID8gb3ZlcmxheXMgOiBiYXNlTGF5ZXJzO1xuICAgICAgaWYgKG9iamVjdFRvQWRkVG9bbGF5ZXIubGFiZWxdKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0aWxlcyA9IHRoaXMubGVhZmxldC50aWxlTGF5ZXIobGF5ZXIubGF5ZXJVcmwsIGxheWVyLm9wdGlvbnMpO1xuICAgICAgaWYgKCFsYXllci5pc092ZXJsYXkgJiYgZmlyc3RMYXllcikge1xuICAgICAgICBmaXJzdExheWVyID0gZmFsc2U7XG4gICAgICAgIHRpbGVzLmFkZFRvKHRoaXMubWFwKTtcbiAgICAgIH1cbiAgICAgIG9iamVjdFRvQWRkVG9bbGF5ZXIubGFiZWxdID0gdGlsZXM7XG4gICAgfVxuICAgIGlmIChmbGF0dGVuTGF5ZXJzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRoaXMubGVhZmxldC5jb250cm9sLmxheWVycyhiYXNlTGF5ZXJzLCBvdmVybGF5cywgeyBwb3NpdGlvbjogJ2JvdHRvbWxlZnQnIH0pLmFkZFRvKHRoaXMubWFwKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hhbmdlQ29uZmlnKGNoYW5nZTogU2ltcGxlQ2hhbmdlKSB7XG4gICAgaWYgKHRoaXMuaGFzQ2hhbmdlZChjaGFuZ2UsICd6b29tTGV2ZWwnKSkge1xuICAgICAgdGhpcy5tYXAuc2V0Wm9vbSh0aGlzLmNvbmZpZy56b29tTGV2ZWwpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhhc0NoYW5nZWQoY2hhbmdlLCAnY2VudGVyJykgJiYgZXZlcnkoY2hhbmdlLmN1cnJlbnRWYWx1ZS5jZW50ZXIsIHAgPT4gIWlzTnVsbChwKSkpIHtcbiAgICAgIHRoaXMubWFwLnNldFZpZXcoY2hhbmdlLmN1cnJlbnRWYWx1ZS5jZW50ZXIpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhhc0NoYW5nZWQoY2hhbmdlLCAnaWNvbicpIHx8IHRoaXMuaGFzQ2hhbmdlZChjaGFuZ2UsICdjb2xvcicpKSB7XG4gICAgICB0aGlzLnJlZnJlc2hNYXJrZXJzKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzQ2hhbmdlZChjaGFuZ2UsICdyZWFsdGltZScpICYmIGNoYW5nZS5jdXJyZW50VmFsdWUucmVhbHRpbWUpIHtcbiAgICAgIHRoaXMuc3RhcnRSZWFsdGltZSgpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2UuY3VycmVudFZhbHVlLnJlYWx0aW1lID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5zdG9wUmVhbHRpbWUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oYXNDaGFuZ2VkKGNoYW5nZSwgJ2ZvbGxvdycpKSB7XG4gICAgICB0aGlzLm1vdmVUb1Bvc2l0aW9uT2ZNbyh0aGlzLmFzc2V0cyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzQ2hhbmdlZChjaGFuZ2UsICdkaXNhYmxlUGFuJykgfHwgdGhpcy5oYXNDaGFuZ2VkKGNoYW5nZSwgJ2Rpc2FibGVab29tJykpIHtcbiAgICAgIHRoaXMudG9nZ2xlQ29udHJvbHMoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFzQ2hhbmdlZChjaGFuZ2U6IFNpbXBsZUNoYW5nZSwgcHJvcDoga2V5b2YgTWFwQ29uZmlnKSB7XG4gICAgcmV0dXJuIGNoYW5nZS5jdXJyZW50VmFsdWVbcHJvcF0gIT09IGNoYW5nZS5wcmV2aW91c1ZhbHVlW3Byb3BdO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvZ2dsZUNvbnRyb2xzKCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5kaXNhYmxlWm9vbSkge1xuICAgICAgdGhpcy5tYXAucmVtb3ZlQ29udHJvbCh0aGlzLm1hcC56b29tQ29udHJvbCk7XG4gICAgICB0aGlzLm1hcC5zY3JvbGxXaGVlbFpvb20uZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1hcC5hZGRDb250cm9sKHRoaXMubWFwLnpvb21Db250cm9sKTtcbiAgICAgIHRoaXMubWFwLnNjcm9sbFdoZWVsWm9vbS5lbmFibGUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29uZmlnLmRpc2FibGVQYW4pIHtcbiAgICAgIHRoaXMubWFwLmRyYWdnaW5nLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tYXAuZHJhZ2dpbmcuZW5hYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVUb3VjaChlOiBFdmVudCkge1xuICAgIC8vIERpc3JlZ2FyZCB0b3VjaCBldmVudHMgb24gdGhlIG1pbmltYXAgaWYgcHJlc2VudFxuICAgIGNvbnN0IGlnbm9yZUxpc3QgPSBbXG4gICAgICAnbGVhZmxldC1jb250cm9sLW1pbmltYXAnLFxuICAgICAgJ2xlYWZsZXQtaW50ZXJhY3RpdmUnLFxuICAgICAgJ2xlYWZsZXQtcG9wdXAtY29udGVudCcsXG4gICAgICAnbGVhZmxldC1wb3B1cC1jb250ZW50LXdyYXBwZXInLFxuICAgICAgJ2xlYWZsZXQtcG9wdXAtY2xvc2UtYnV0dG9uJyxcbiAgICAgICdsZWFmbGV0LWNvbnRyb2wtem9vbS1pbicsXG4gICAgICAnbGVhZmxldC1jb250cm9sLXpvb20tb3V0J1xuICAgIF07XG5cbiAgICBsZXQgaWdub3JlRWxlbWVudCA9IGZhbHNlO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaWdub3JlTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHRoaXMubGVhZmxldC5Eb21VdGlsLmhhc0NsYXNzKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50LCBpZ25vcmVMaXN0W2ldKSkge1xuICAgICAgICBpZ25vcmVFbGVtZW50ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLm1hcC5nZXRDb250YWluZXIoKTtcbiAgICBpZiAoaWdub3JlRWxlbWVudCkge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmxlYWZsZXQuRG9tVXRpbC5oYXNDbGFzcyhlLnRhcmdldCBhcyBIVE1MRWxlbWVudCwgJ2xlYWZsZXQtaW50ZXJhY3RpdmUnKSAmJlxuICAgICAgICBlLnR5cGUgPT09ICd0b3VjaG1vdmUnICYmXG4gICAgICAgIChlIGFzIFRvdWNoRXZlbnQpLnRvdWNoZXMubGVuZ3RoID09PSAxXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5sZWFmbGV0LkRvbVV0aWwuYWRkQ2xhc3MoY29udGFpbmVyLCAndG91Y2gtd2FybmluZycpO1xuICAgICAgICB0aGlzLm1hcC5kcmFnZ2luZy5kaXNhYmxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxlYWZsZXQuRG9tVXRpbC5yZW1vdmVDbGFzcyhjb250YWluZXIsICd0b3VjaC13YXJuaW5nJyk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGUudHlwZSAhPT0gJ3RvdWNobW92ZScgJiYgZS50eXBlICE9PSAndG91Y2hzdGFydCcpIHtcbiAgICAgIHRoaXMubGVhZmxldC5Eb21VdGlsLnJlbW92ZUNsYXNzKGNvbnRhaW5lciwgJ3RvdWNoLXdhcm5pbmcnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKChlIGFzIFRvdWNoRXZlbnQpLnRvdWNoZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLmxlYWZsZXQuRG9tVXRpbC5hZGRDbGFzcyhjb250YWluZXIsICd0b3VjaC13YXJuaW5nJyk7XG4gICAgICB0aGlzLm1hcC5kcmFnZ2luZy5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWFwLmRyYWdnaW5nLmVuYWJsZSgpO1xuICAgICAgdGhpcy5sZWFmbGV0LkRvbVV0aWwucmVtb3ZlQ2xhc3MoY29udGFpbmVyLCAndG91Y2gtd2FybmluZycpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgem9vbVRvQm91bmQoYXNzZXRzOiBQb3NpdGlvbk1hbmFnZWRPYmplY3RbXSkge1xuICAgIGlmIChpc0VtcHR5KGFzc2V0cykpIHJldHVybjtcblxuICAgIGNvbnN0IGJvdW5kczogW251bWJlciwgbnVtYmVyXVtdID0gYXNzZXRzLm1hcChhc3NldCA9PiBbXG4gICAgICBhc3NldC5jOHlfUG9zaXRpb24ubGF0LFxuICAgICAgYXNzZXQuYzh5X1Bvc2l0aW9uLmxuZ1xuICAgIF0pO1xuICAgIGlmIChhc3NldHMubGVuZ3RoID4gMSkge1xuICAgICAgdGhpcy5tYXAuZmx5VG9Cb3VuZHMoYm91bmRzLCB7IGFuaW1hdGU6IGZhbHNlIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm1hcC5mbHlUbyhcbiAgICAgIFthc3NldHNbMF0uYzh5X1Bvc2l0aW9uLmxhdCwgYXNzZXRzWzBdLmM4eV9Qb3NpdGlvbi5sbmddLFxuICAgICAgdGhpcy5tYXAub3B0aW9ucy56b29tLFxuICAgICAge1xuICAgICAgICBhbmltYXRlOiBmYWxzZVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZpdEJvdW5kcyhib3VuZHM6IEwuTGF0TG5nQm91bmRzKSB7XG4gICAgaWYgKGJvdW5kcz8uaXNWYWxpZCgpKSB7XG4gICAgICB0aGlzLm1hcC5maXRCb3VuZHMoYm91bmRzLCB0aGlzLmNvbmZpZy5maXRCb3VuZHNPcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJpbmRQb3B1cChtYXJrZXI6IEM4eU1hcmtlciwgY29udGV4dDogUG9zaXRpb25NYW5hZ2VkT2JqZWN0IHwgSUV2ZW50KSB7XG4gICAgaWYgKHRoaXMucG9wdXApIHtcbiAgICAgIG1hcmtlci5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgIHRoaXMucG9wdXAudmlld0NvbnRhaW5lci5jbGVhcigpO1xuICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy5wb3B1cC52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnBvcHVwLnRlbXBsYXRlLCB7XG4gICAgICAgICAgJGltcGxpY2l0OiBjb250ZXh0XG4gICAgICAgIH0pO1xuICAgICAgICB2aWV3LmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgbWFya2VyXG4gICAgICAgICAgLnVuYmluZFBvcHVwKClcbiAgICAgICAgICAuYmluZFBvcHVwKHRoaXMucG9wdXAuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnByZXZpb3VzU2libGluZywge1xuICAgICAgICAgICAgb2Zmc2V0OiBbLTMsIC00MF0sXG4gICAgICAgICAgICBtYXhXaWR0aDogMTQwLFxuICAgICAgICAgICAgYXV0b1BhbjogdHJ1ZSxcbiAgICAgICAgICAgIGNsb3NlQnV0dG9uOiBmYWxzZVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLm9wZW5Qb3B1cCgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYzh5LW1hcFwiPlxuICA8ZGl2ICNtYXA+PC9kaXY+XG48L2Rpdj5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  export * from './report-dashboard.module';
2
2
  export * from './report-dashboard-navigation.factory';
3
3
  export * from './report-dashboard.guard';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9yZXBvcnQtZGFzaGJvYXJkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXBvcnQtZGFzaGJvYXJkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3JlcG9ydC1kYXNoYm9hcmQtbmF2aWdhdGlvbi5mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vcmVwb3J0LWRhc2hib2FyZC5ndWFyZCc7XG4iXX0=
4
+ export * from './report-dashboard.service';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9yZXBvcnQtZGFzaGJvYXJkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3JlcG9ydC1kYXNoYm9hcmQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVwb3J0LWRhc2hib2FyZC1uYXZpZ2F0aW9uLmZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9yZXBvcnQtZGFzaGJvYXJkLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vcmVwb3J0LWRhc2hib2FyZC5zZXJ2aWNlJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzh5LW5neC1jb21wb25lbnRzLXRpbWUtY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RpbWUtY29udGV4dC9jOHktbmd4LWNvbXBvbmVudHMtdGltZS1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './time-context.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90aW1lLWNvbnRleHQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGltZS1jb250ZXh0LmNvbXBvbmVudCc7XG4iXX0=