@koobiq/components 18.36.0 → 18.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/autocomplete/autocomplete.scss +2 -17
  2. package/breadcrumbs/breadcrumbs.d.ts +2 -1
  3. package/breadcrumbs/breadcrumbs.scss +4 -4
  4. package/button/button.component.d.ts +1 -0
  5. package/button-toggle/button-toggle.scss +0 -2
  6. package/content-panel/content-panel.d.ts +1 -1
  7. package/content-panel/index.d.ts +0 -1
  8. package/core/common-behaviors/hover.d.ts +15 -0
  9. package/core/common-behaviors/index.d.ts +1 -1
  10. package/core/locales/en-US.d.ts +6 -0
  11. package/core/locales/es-LA.d.ts +6 -0
  12. package/core/locales/formatters.d.ts +0 -72
  13. package/core/locales/index.d.ts +0 -2
  14. package/core/locales/locale-service.d.ts +24 -386
  15. package/core/locales/pt-BR.d.ts +6 -0
  16. package/core/locales/ru-RU.d.ts +6 -0
  17. package/core/locales/tk-TM.d.ts +6 -0
  18. package/core/option/option.d.ts +3 -2
  19. package/core/pop-up/pop-up-trigger.d.ts +3 -1
  20. package/core/pop-up/pop-up.d.ts +1 -0
  21. package/core/select/common.d.ts +3 -1
  22. package/core/styles/common/_select.scss +20 -0
  23. package/core/styles/typography/_typography.scss +23 -82
  24. package/datepicker/datepicker-module.d.ts +2 -1
  25. package/dropdown/dropdown-item.scss +8 -7
  26. package/dropdown/dropdown.scss +5 -14
  27. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +4 -4
  28. package/esm2022/breadcrumbs/breadcrumbs.mjs +46 -37
  29. package/esm2022/button/button.component.mjs +6 -4
  30. package/esm2022/button-toggle/button-toggle.component.mjs +2 -2
  31. package/esm2022/code-block/code-block-highlight.mjs +6 -1
  32. package/esm2022/content-panel/content-panel.mjs +2 -2
  33. package/esm2022/content-panel/index.mjs +1 -2
  34. package/esm2022/core/common-behaviors/color.mjs +2 -1
  35. package/esm2022/core/common-behaviors/common-module.mjs +2 -1
  36. package/esm2022/core/common-behaviors/disabled.mjs +2 -1
  37. package/esm2022/core/common-behaviors/error-state.mjs +2 -1
  38. package/esm2022/core/common-behaviors/hover.mjs +34 -0
  39. package/esm2022/core/common-behaviors/index.mjs +2 -2
  40. package/esm2022/core/common-behaviors/tabindex.mjs +2 -1
  41. package/esm2022/core/form-field/field-sizing-content.mjs +5 -2
  42. package/esm2022/core/formatters/number/formatter.mjs +2 -2
  43. package/esm2022/core/locales/en-US.mjs +7 -1
  44. package/esm2022/core/locales/es-LA.mjs +16 -10
  45. package/esm2022/core/locales/formatters.mjs +1 -73
  46. package/esm2022/core/locales/index.mjs +1 -3
  47. package/esm2022/core/locales/locale-service.mjs +5 -8
  48. package/esm2022/core/locales/pt-BR.mjs +25 -19
  49. package/esm2022/core/locales/ru-RU.mjs +7 -1
  50. package/esm2022/core/locales/tk-TM.mjs +30 -24
  51. package/esm2022/core/option/option.mjs +10 -6
  52. package/esm2022/core/pop-up/pop-up-trigger.mjs +2 -1
  53. package/esm2022/core/pop-up/pop-up.mjs +36 -2
  54. package/esm2022/core/select/common.mjs +10 -4
  55. package/esm2022/core/version.mjs +2 -2
  56. package/esm2022/datepicker/calendar-header.component.mjs +5 -4
  57. package/esm2022/datepicker/datepicker-module.mjs +7 -4
  58. package/esm2022/dropdown/dropdown-item.component.mjs +2 -2
  59. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  60. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +5 -2
  61. package/esm2022/file-upload/file-drop.mjs +5 -3
  62. package/esm2022/file-upload/multiple-file-upload.component.mjs +9 -13
  63. package/esm2022/file-upload/single-file-upload.component.mjs +9 -4
  64. package/esm2022/filter-bar/filter-bar.mjs +6 -2
  65. package/esm2022/filter-bar/filter-search.mjs +3 -3
  66. package/esm2022/filter-bar/filters.mjs +10 -5
  67. package/esm2022/filter-bar/pipe-add.mjs +3 -2
  68. package/esm2022/filter-bar/pipes/base-pipe.mjs +11 -3
  69. package/esm2022/filter-bar/pipes/pipe-date.mjs +3 -3
  70. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +3 -3
  71. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +5 -4
  72. package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +2 -2
  73. package/esm2022/filter-bar/pipes/pipe-select.mjs +2 -2
  74. package/esm2022/filter-bar/pipes/pipe-text.mjs +2 -2
  75. package/esm2022/filter-bar/pipes/pipe-title.mjs +24 -19
  76. package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +2 -2
  77. package/esm2022/form-field/fieldset.mjs +2 -2
  78. package/esm2022/form-field/form-field.mjs +2 -2
  79. package/esm2022/form-field/stepper.mjs +41 -10
  80. package/esm2022/inline-edit/inline-edit.mjs +9 -5
  81. package/esm2022/input/input-number.mjs +7 -6
  82. package/esm2022/input/input.module.mjs +7 -4
  83. package/esm2022/list/list-selection.component.mjs +31 -15
  84. package/esm2022/markdown/markdown.component.mjs +7 -7
  85. package/esm2022/modal/modal-util.mjs +7 -3
  86. package/esm2022/modal/modal.component.mjs +2 -2
  87. package/esm2022/modal/modal.service.mjs +2 -1
  88. package/esm2022/navbar/navbar-brand.component.mjs +105 -0
  89. package/esm2022/navbar/navbar-item.component.mjs +18 -170
  90. package/esm2022/navbar/navbar-toggle.component.mjs +88 -0
  91. package/esm2022/navbar/navbar.component.mjs +8 -4
  92. package/esm2022/navbar/navbar.module.mjs +4 -2
  93. package/esm2022/navbar/public-api.mjs +3 -1
  94. package/esm2022/navbar/vertical-navbar.component.mjs +28 -6
  95. package/esm2022/navbar-ic/navbar-ic-header.mjs +20 -4
  96. package/esm2022/navbar-ic/navbar-ic-item.mjs +7 -8
  97. package/esm2022/navbar-ic/navbar-ic.animation.mjs +10 -2
  98. package/esm2022/navbar-ic/navbar-ic.mjs +33 -9
  99. package/esm2022/notification-center/notification-center.mjs +9 -33
  100. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  101. package/esm2022/popover/popover.component.mjs +24 -5
  102. package/esm2022/resizer/index.mjs +3 -0
  103. package/esm2022/resizer/koobiq-components-resizer.mjs +5 -0
  104. package/esm2022/resizer/module.mjs +17 -0
  105. package/esm2022/resizer/resizer.mjs +135 -0
  106. package/esm2022/scrollbar/scrollbar.directive.mjs +4 -3
  107. package/esm2022/search-expandable/search-expandable.mjs +5 -5
  108. package/esm2022/select/select.component.mjs +2 -14
  109. package/esm2022/select/select.module.mjs +8 -4
  110. package/esm2022/sidepanel/sidepanel-container.component.mjs +3 -3
  111. package/esm2022/split-button/split-button.mjs +47 -6
  112. package/esm2022/tags/tag-input.mjs +24 -28
  113. package/esm2022/tags/tag-list.component.mjs +76 -87
  114. package/esm2022/tags/tag.component.mjs +29 -34
  115. package/esm2022/textarea/textarea.module.mjs +5 -4
  116. package/esm2022/time-range/constants.mjs +22 -1
  117. package/esm2022/time-range/time-range-editor.mjs +11 -6
  118. package/esm2022/time-range/time-range-title-as-form-field.mjs +2 -1
  119. package/esm2022/time-range/time-range.mjs +8 -3
  120. package/esm2022/time-range/time-range.service.mjs +43 -106
  121. package/esm2022/time-range/types.mjs +1 -1
  122. package/esm2022/timepicker/timepicker.module.mjs +5 -4
  123. package/esm2022/timezone/timezone-option.component.mjs +2 -2
  124. package/esm2022/timezone/timezone.module.mjs +6 -4
  125. package/esm2022/title/title.directive.mjs +6 -2
  126. package/esm2022/toggle/toggle.component.mjs +3 -3
  127. package/esm2022/top-bar/top-bar.mjs +2 -2
  128. package/esm2022/tree/tree-option.component.mjs +7 -6
  129. package/esm2022/tree/tree-selection.component.mjs +23 -13
  130. package/esm2022/tree-select/tree-select.component.mjs +97 -79
  131. package/esm2022/tree-select/tree-select.module.mjs +7 -4
  132. package/fesm2022/koobiq-components-autocomplete.mjs +3 -3
  133. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-breadcrumbs.mjs +45 -36
  135. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-button-toggle.mjs +2 -2
  137. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-button.mjs +5 -3
  139. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-code-block.mjs +5 -0
  141. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  142. package/fesm2022/koobiq-components-content-panel.mjs +3 -137
  143. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  144. package/fesm2022/koobiq-components-core.mjs +156 -478
  145. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  146. package/fesm2022/koobiq-components-datepicker.mjs +8 -5
  147. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  148. package/fesm2022/koobiq-components-dropdown.mjs +4 -4
  149. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  150. package/fesm2022/koobiq-components-ellipsis-center.mjs +4 -1
  151. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  152. package/fesm2022/koobiq-components-file-upload.mjs +19 -17
  153. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  154. package/fesm2022/koobiq-components-filter-bar.mjs +64 -41
  155. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  156. package/fesm2022/koobiq-components-form-field.mjs +44 -17
  157. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  158. package/fesm2022/koobiq-components-inline-edit.mjs +8 -4
  159. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  160. package/fesm2022/koobiq-components-input.mjs +12 -9
  161. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  162. package/fesm2022/koobiq-components-list.mjs +30 -14
  163. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  164. package/fesm2022/koobiq-components-markdown.mjs +6 -6
  165. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  166. package/fesm2022/koobiq-components-modal.mjs +9 -4
  167. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  168. package/fesm2022/koobiq-components-navbar-ic.mjs +70 -26
  169. package/fesm2022/koobiq-components-navbar-ic.mjs.map +1 -1
  170. package/fesm2022/koobiq-components-navbar.mjs +792 -740
  171. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  172. package/fesm2022/koobiq-components-notification-center.mjs +8 -32
  173. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  174. package/fesm2022/koobiq-components-popover.mjs +25 -6
  175. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  176. package/fesm2022/koobiq-components-resizer.mjs +156 -0
  177. package/fesm2022/koobiq-components-resizer.mjs.map +1 -0
  178. package/fesm2022/koobiq-components-scrollbar.mjs +3 -2
  179. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  180. package/fesm2022/koobiq-components-search-expandable.mjs +4 -4
  181. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  182. package/fesm2022/koobiq-components-select.mjs +8 -17
  183. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  184. package/fesm2022/koobiq-components-sidepanel.mjs +2 -2
  185. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  186. package/fesm2022/koobiq-components-split-button.mjs +46 -5
  187. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  188. package/fesm2022/koobiq-components-tags.mjs +125 -146
  189. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  190. package/fesm2022/koobiq-components-textarea.mjs +4 -4
  191. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  192. package/fesm2022/koobiq-components-time-range.mjs +81 -112
  193. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  194. package/fesm2022/koobiq-components-timepicker.mjs +4 -4
  195. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  196. package/fesm2022/koobiq-components-timezone.mjs +7 -5
  197. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  198. package/fesm2022/koobiq-components-title.mjs +5 -1
  199. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  200. package/fesm2022/koobiq-components-toggle.mjs +2 -2
  201. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  202. package/fesm2022/koobiq-components-top-bar.mjs +2 -2
  203. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  204. package/fesm2022/koobiq-components-tree-select.mjs +102 -82
  205. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  206. package/fesm2022/koobiq-components-tree.mjs +28 -17
  207. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  208. package/file-upload/_file-upload-theme.scss +32 -34
  209. package/file-upload/file-upload-tokens.scss +1 -2
  210. package/file-upload/file-upload.scss +4 -7
  211. package/file-upload/multiple-file-upload.component.d.ts +1 -1
  212. package/file-upload/multiple-file-upload.component.scss +12 -14
  213. package/file-upload/single-file-upload.component.d.ts +1 -0
  214. package/file-upload/single-file-upload.component.scss +5 -7
  215. package/filter-bar/filter-bar.d.ts +3 -1
  216. package/filter-bar/filter-search.scss +1 -3
  217. package/filter-bar/filters.d.ts +1 -0
  218. package/filter-bar/pipes/base-pipe.d.ts +5 -1
  219. package/filter-bar/pipes/pipe-date.scss +4 -2
  220. package/filter-bar/pipes/pipe-title.d.ts +2 -0
  221. package/form-field/fieldset-tokens.scss +2 -1
  222. package/form-field/form-field-tokens.scss +2 -2
  223. package/form-field/form-field.scss +9 -1
  224. package/form-field/stepper.d.ts +28 -6
  225. package/inline-edit/inline-edit.d.ts +5 -1
  226. package/input/input.module.d.ts +2 -1
  227. package/list/list-selection.component.d.ts +12 -1
  228. package/markdown/_markdown-theme.scss +0 -1
  229. package/markdown/markdown.scss +2 -4
  230. package/modal/modal-tokens.scss +2 -1
  231. package/modal/modal-util.d.ts +5 -2
  232. package/modal/modal.scss +3 -4
  233. package/navbar/_navbar-item_vertical.scss +44 -43
  234. package/navbar/_navbar-theme.scss +14 -35
  235. package/navbar/navbar-brand.component.d.ts +39 -0
  236. package/navbar/navbar-brand.scss +78 -45
  237. package/navbar/navbar-divider.scss +1 -1
  238. package/navbar/navbar-item.component.d.ts +4 -36
  239. package/navbar/navbar-toggle.component.d.ts +23 -0
  240. package/navbar/navbar-toggle.scss +64 -0
  241. package/navbar/navbar-tokens.scss +1 -0
  242. package/navbar/navbar.module.d.ts +8 -6
  243. package/navbar/public-api.d.ts +2 -0
  244. package/navbar/vertical-navbar.component.d.ts +20 -2
  245. package/navbar/vertical-navbar.scss +14 -9
  246. package/navbar-ic/navbar-ic-header.d.ts +3 -2
  247. package/navbar-ic/navbar-ic-header.scss +0 -4
  248. package/navbar-ic/navbar-ic-item.d.ts +1 -0
  249. package/navbar-ic/navbar-ic-item.scss +0 -4
  250. package/navbar-ic/navbar-ic.animation.d.ts +1 -0
  251. package/navbar-ic/navbar-ic.d.ts +7 -0
  252. package/notification-center/notification-center.d.ts +12 -9
  253. package/package.json +16 -10
  254. package/popover/popover-tokens.scss +1 -0
  255. package/popover/popover.component.d.ts +12 -1
  256. package/popover/popover.scss +3 -4
  257. package/prebuilt-themes/dark-theme.css +1 -1
  258. package/prebuilt-themes/light-theme.css +1 -1
  259. package/prebuilt-themes/theme.css +1 -1
  260. package/resizer/index.d.ts +2 -0
  261. package/resizer/module.d.ts +7 -0
  262. package/{content-panel/resizable.d.ts → resizer/resizer.d.ts} +18 -13
  263. package/schematics/collection.json +5 -0
  264. package/schematics/migrations/icons-replacement/README.md +93 -0
  265. package/schematics/migrations/icons-replacement/data.js +92 -0
  266. package/schematics/migrations/icons-replacement/index.js +84 -0
  267. package/schematics/migrations/icons-replacement/schema.json +32 -0
  268. package/schematics/ng-add/index.js +6 -6
  269. package/scrollbar/scrollbar.component.scss +2 -3
  270. package/select/select.module.d.ts +2 -1
  271. package/select/select.scss +1 -17
  272. package/sidepanel/sidepanel-tokens.scss +2 -0
  273. package/sidepanel/sidepanel.scss +2 -0
  274. package/split-button/_split-button-theme.scss +89 -34
  275. package/split-button/split-button.d.ts +11 -5
  276. package/split-button/split-button.scss +40 -51
  277. package/tags/tag-input.d.ts +16 -7
  278. package/tags/tag-list.component.d.ts +44 -21
  279. package/tags/tag-list.scss +13 -14
  280. package/tags/tag.component.d.ts +20 -15
  281. package/textarea/textarea-tokens.scss +6 -1
  282. package/textarea/textarea.module.d.ts +2 -1
  283. package/textarea/textarea.scss +4 -0
  284. package/time-range/constants.d.ts +12 -1
  285. package/time-range/time-range-editor.d.ts +7 -9
  286. package/time-range/time-range-title-as-form-field.d.ts +1 -0
  287. package/time-range/time-range.d.ts +5 -2
  288. package/time-range/time-range.service.d.ts +7 -11
  289. package/time-range/types.d.ts +37 -11
  290. package/timepicker/timepicker.module.d.ts +2 -1
  291. package/timezone/timezone-option.component.scss +6 -0
  292. package/timezone/timezone.module.d.ts +1 -1
  293. package/toggle/_toggle-theme.scss +8 -5
  294. package/toggle/toggle-tokens.scss +0 -1
  295. package/toggle/toggle.scss +11 -15
  296. package/top-bar/top-bar-tokens.scss +1 -1
  297. package/top-bar/top-bar.scss +3 -0
  298. package/tree/tree-option.component.d.ts +1 -0
  299. package/tree/tree-selection.component.d.ts +11 -2
  300. package/tree-select/tree-select.component.d.ts +5 -5
  301. package/tree-select/tree-select.module.d.ts +2 -1
  302. package/tree-select/tree-select.scss +4 -0
  303. package/core/common-behaviors/hovered.d.ts +0 -13
  304. package/core/locales/fa-IR.d.ts +0 -162
  305. package/core/locales/zh-CN.d.ts +0 -162
  306. package/esm2022/content-panel/resizable.mjs +0 -138
  307. package/esm2022/core/common-behaviors/hovered.mjs +0 -31
  308. package/esm2022/core/locales/fa-IR.mjs +0 -173
  309. package/esm2022/core/locales/zh-CN.mjs +0 -161
@@ -36,6 +36,8 @@ export class KbqTimeRangeEditor {
36
36
  this.rangeValue = input(this.timeRangeService.getDefaultRangeValue());
37
37
  this.showRangeAsDefault = input.required();
38
38
  this.localeConfiguration = input.required();
39
+ /** Customizable option output */
40
+ this.optionTemplate = input();
39
41
  /** @docs-private */
40
42
  this.isRangeVisible = computed(() => this.showRangeAsDefault() || this.availableTimeRangeTypes().includes('range'));
41
43
  /** @docs-private */
@@ -46,6 +48,7 @@ export class KbqTimeRangeEditor {
46
48
  .map((type) => ({
47
49
  type,
48
50
  translationType: this.timeRangeService.getTimeRangeUnitByType(type),
51
+ units: this.timeRangeService.getTimeRangeTypeUnits(type),
49
52
  formattedValue: this.getFormattedOption(type, localeConfig)
50
53
  }));
51
54
  });
@@ -62,7 +65,9 @@ export class KbqTimeRangeEditor {
62
65
  this.onTouch = () => { };
63
66
  const defaultRangeValue = this.rangeValue();
64
67
  this.form = new FormGroup({
65
- type: new FormControl(KbqTimeRangeService.DEFAULT_RANGE_TYPE, { nonNullable: true }),
68
+ type: new FormControl(this.timeRangeService.DEFAULT_RANGE_TYPE, {
69
+ nonNullable: true
70
+ }),
66
71
  fromTime: new FormControl(defaultRangeValue.fromTime, { nonNullable: true }),
67
72
  fromDate: new FormControl(defaultRangeValue.fromDate, { nonNullable: true }),
68
73
  toTime: new FormControl(defaultRangeValue.toTime, { nonNullable: true }),
@@ -144,7 +149,7 @@ export class KbqTimeRangeEditor {
144
149
  }
145
150
  mapTimeRange({ type }) {
146
151
  if (!type)
147
- return undefined;
152
+ return;
148
153
  return {
149
154
  type,
150
155
  ...this.timeRangeService.calculateTimeRange(type, {
@@ -176,7 +181,7 @@ export class KbqTimeRangeEditor {
176
181
  return result;
177
182
  }
178
183
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqTimeRangeEditor, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
179
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: KbqTimeRangeEditor, isStandalone: true, selector: "kbq-time-range-editor", inputs: { maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, availableTimeRangeTypes: { classPropertyName: "availableTimeRangeTypes", publicName: "availableTimeRangeTypes", isSignal: true, isRequired: false, transformFunction: null }, rangeValue: { classPropertyName: "rangeValue", publicName: "rangeValue", isSignal: true, isRequired: false, transformFunction: null }, showRangeAsDefault: { classPropertyName: "showRangeAsDefault", publicName: "showRangeAsDefault", isSignal: true, isRequired: true, transformFunction: null }, localeConfiguration: { classPropertyName: "localeConfiguration", publicName: "localeConfiguration", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "kbq-time-range__editor" }, providers: [
184
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: KbqTimeRangeEditor, isStandalone: true, selector: "kbq-time-range-editor", inputs: { maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, availableTimeRangeTypes: { classPropertyName: "availableTimeRangeTypes", publicName: "availableTimeRangeTypes", isSignal: true, isRequired: false, transformFunction: null }, rangeValue: { classPropertyName: "rangeValue", publicName: "rangeValue", isSignal: true, isRequired: false, transformFunction: null }, showRangeAsDefault: { classPropertyName: "showRangeAsDefault", publicName: "showRangeAsDefault", isSignal: true, isRequired: true, transformFunction: null }, localeConfiguration: { classPropertyName: "localeConfiguration", publicName: "localeConfiguration", isSignal: true, isRequired: true, transformFunction: null }, optionTemplate: { classPropertyName: "optionTemplate", publicName: "optionTemplate", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "kbq-time-range__editor" }, providers: [
180
185
  {
181
186
  multi: true,
182
187
  provide: NG_VALUE_ACCESSOR,
@@ -187,7 +192,7 @@ export class KbqTimeRangeEditor {
187
192
  provide: NG_VALIDATORS,
188
193
  useExisting: KbqTimeRangeEditor
189
194
  }
190
- ], viewQueries: [{ propertyName: "timepickerList", predicate: KbqTimepicker, descendants: true, isSignal: true }], ngImport: i0, template: "<form [formGroup]=\"form\">\n <kbq-radio-group class=\"kbq-time-range-editor__container\" [formControl]=\"form.controls.type\">\n @let types = timeRangeTypesWithoutRange();\n\n @if (types.length) {\n <div class=\"kbq-time-range-editor__predefined\">\n @for (type of types; track type) {\n <kbq-radio-button class=\"kbq-time-range-editor__predefined-option\" [value]=\"type.type\">\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { $implicit: type }\" />\n </kbq-radio-button>\n }\n </div>\n }\n\n @if (isRangeVisible()) {\n @let localeConfig = localeConfiguration();\n\n <div class=\"kbq-time-range-editor__range\" role=\"group\">\n @if (types.length) {\n <kbq-radio-button [value]=\"'range'\">{{ localeConfig.editor.rangeLabel }}</kbq-radio-button>\n }\n\n <div class=\"kbq-time-range-editor__date-time\">\n <span class=\"kbq-time-range-editor__date-time-prefix\" [attr.aria-label]=\"localeConfig.editor.from\">\n {{ localeConfig.editor.from }}\n </span>\n <kbq-fieldset>\n <kbq-form-field kbqFieldsetItem>\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix [autoColor]=\"true\"></i>\n <input kbqTimepicker [format]=\"timepickerFormat\" [formControl]=\"form.controls.fromTime\" />\n </kbq-form-field>\n\n <kbq-form-field>\n <input\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n [kbqDatepicker]=\"datepickerFrom\"\n [formControl]=\"form.controls.fromDate\"\n [errorStateMatcher]=\"rangeStateMatcher\"\n />\n <kbq-datepicker-toggle-icon kbqSuffix [for]=\"datepickerFrom\" />\n <kbq-datepicker #datepickerFrom [minDate]=\"minDate()\" [maxDate]=\"maxDate()\" />\n </kbq-form-field>\n </kbq-fieldset>\n </div>\n\n <div class=\"kbq-time-range-editor__date-time\">\n <span class=\"kbq-time-range-editor__date-time-prefix\" [attr.aria-label]=\"localeConfig.editor.to\">\n {{ localeConfig.editor.to }}\n </span>\n <kbq-fieldset>\n <kbq-form-field kbqFieldsetItem>\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix [autoColor]=\"true\"></i>\n <input kbqTimepicker [format]=\"timepickerFormat\" [formControl]=\"form.controls.toTime\" />\n </kbq-form-field>\n\n <kbq-form-field>\n <input\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n [kbqDatepicker]=\"datepickerTo\"\n [formControl]=\"form.controls.toDate\"\n [errorStateMatcher]=\"rangeStateMatcher\"\n />\n <kbq-datepicker-toggle-icon kbqSuffix [for]=\"datepickerTo\" />\n <kbq-datepicker #datepickerTo [minDate]=\"minDate()\" [maxDate]=\"maxDate()\" />\n </kbq-form-field>\n </kbq-fieldset>\n </div>\n </div>\n }\n </kbq-radio-group>\n</form>\n\n<ng-template #optionTemplate let-context>\n @let localeConfig = localeConfiguration();\n @switch (context.translationType) {\n @case ('other') {\n @switch (context.type) {\n @case ('allTime') {\n {{ localeConfig.editor.allTime }}\n }\n @case ('currentQuarter') {\n {{ localeConfig.editor.currentQuarter }}\n }\n @case ('currentYear') {\n {{ localeConfig.editor.currentYear }}\n }\n }\n }\n @default {\n {{ context.formattedValue }}\n }\n }\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: KbqFieldset, selector: "kbq-fieldset" }, { kind: "directive", type: KbqFieldsetItem, selector: "[kbqFieldsetItem]" }, { kind: "ngmodule", type: KbqDatepickerModule }, { kind: "component", type: i2.KbqDatepicker, selector: "kbq-datepicker", inputs: ["hasBackdrop", "startAt", "disabled", "opened", "minDate", "maxDate", "panelClass", "dateClass", "backdropClass"], outputs: ["yearSelected", "monthSelected", "opened", "closed"], exportAs: ["kbqDatepicker"] }, { kind: "directive", type: i2.KbqDatepickerInput, selector: "input[kbqDatepicker], input[kbqCalendar]", inputs: ["errorStateMatcher", "placeholder", "required", "kbqDatepicker", "kbqCalendar", "kbqDatepickerFilter", "value", "min", "max", "disabled", "id", "kbqValidationTooltip"], outputs: ["incorrectInput", "dateChange", "dateInput"], exportAs: ["kbqDatepickerInput"] }, { kind: "component", type: i2.KbqDatepickerToggleIconComponent, selector: "kbq-datepicker-toggle-icon", inputs: ["disabled", "for"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i3.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i3.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "directive", type: i3.KbqSuffix, selector: "[kbqSuffix]" }, { kind: "directive", type: i3.KbqValidateDirective, selector: " input[kbqInput], input[kbqNumberInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "ngmodule", type: KbqTimepickerModule }, { kind: "directive", type: i4.KbqTimepicker, selector: "input[kbqTimepicker]", inputs: ["placeholder", "disabled", "id", "required", "format", "min", "max", "value", "kbqValidationTooltip"], outputs: ["incorrectInput"], exportAs: ["kbqTimepicker"] }, { kind: "ngmodule", type: KbqRadioModule }, { kind: "directive", type: i5.KbqRadioGroup, selector: "kbq-radio-group", inputs: ["big", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["kbqRadioGroup"] }, { kind: "component", type: i5.KbqRadioButton, selector: "kbq-radio-button", inputs: ["checked", "value", "disabled", "tabIndex", "required", "labelPosition", "name", "isFocused", "id"], outputs: ["change"], exportAs: ["kbqRadioButton"] }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
195
+ ], viewQueries: [{ propertyName: "timepickerList", predicate: KbqTimepicker, descendants: true, isSignal: true }], ngImport: i0, template: "<form [formGroup]=\"form\">\n <kbq-radio-group class=\"kbq-time-range-editor__container\" [formControl]=\"form.controls.type\">\n @let types = timeRangeTypesWithoutRange();\n\n @if (types.length) {\n <div class=\"kbq-time-range-editor__predefined\">\n @for (type of types; track type) {\n <kbq-radio-button class=\"kbq-time-range-editor__predefined-option\" [value]=\"type.type\">\n <ng-container\n *ngTemplateOutlet=\"optionTemplate() || defaultOptionTemplate; context: { $implicit: type }\"\n />\n </kbq-radio-button>\n }\n </div>\n }\n\n @if (isRangeVisible()) {\n @let localeConfig = localeConfiguration();\n\n <div class=\"kbq-time-range-editor__range\" role=\"group\">\n @if (types.length) {\n <kbq-radio-button [value]=\"'range'\">{{ localeConfig.editor.rangeLabel }}</kbq-radio-button>\n }\n\n <div class=\"kbq-time-range-editor__date-time\">\n <span class=\"kbq-time-range-editor__date-time-prefix\" [attr.aria-label]=\"localeConfig.editor.from\">\n {{ localeConfig.editor.from }}\n </span>\n <kbq-fieldset>\n <kbq-form-field kbqFieldsetItem>\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix [autoColor]=\"true\"></i>\n <input kbqTimepicker [format]=\"timepickerFormat\" [formControl]=\"form.controls.fromTime\" />\n </kbq-form-field>\n\n <kbq-form-field>\n <input\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n [kbqDatepicker]=\"datepickerFrom\"\n [formControl]=\"form.controls.fromDate\"\n [errorStateMatcher]=\"rangeStateMatcher\"\n />\n <kbq-datepicker-toggle-icon kbqSuffix [for]=\"datepickerFrom\" />\n <kbq-datepicker #datepickerFrom [minDate]=\"minDate()\" [maxDate]=\"maxDate()\" />\n </kbq-form-field>\n </kbq-fieldset>\n </div>\n\n <div class=\"kbq-time-range-editor__date-time\">\n <span class=\"kbq-time-range-editor__date-time-prefix\" [attr.aria-label]=\"localeConfig.editor.to\">\n {{ localeConfig.editor.to }}\n </span>\n <kbq-fieldset>\n <kbq-form-field kbqFieldsetItem>\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix [autoColor]=\"true\"></i>\n <input kbqTimepicker [format]=\"timepickerFormat\" [formControl]=\"form.controls.toTime\" />\n </kbq-form-field>\n\n <kbq-form-field>\n <input\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n [kbqDatepicker]=\"datepickerTo\"\n [formControl]=\"form.controls.toDate\"\n [errorStateMatcher]=\"rangeStateMatcher\"\n />\n <kbq-datepicker-toggle-icon kbqSuffix [for]=\"datepickerTo\" />\n <kbq-datepicker #datepickerTo [minDate]=\"minDate()\" [maxDate]=\"maxDate()\" />\n </kbq-form-field>\n </kbq-fieldset>\n </div>\n </div>\n }\n </kbq-radio-group>\n</form>\n\n<ng-template #defaultOptionTemplate let-context>\n @let localeConfig = localeConfiguration();\n @switch (context.translationType) {\n @case ('other') {\n @switch (context.type) {\n @case ('allTime') {\n {{ localeConfig.editor.allTime }}\n }\n @case ('currentQuarter') {\n {{ localeConfig.editor.currentQuarter }}\n }\n @case ('currentYear') {\n {{ localeConfig.editor.currentYear }}\n }\n }\n }\n @default {\n {{ context.formattedValue }}\n }\n }\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: KbqFieldset, selector: "kbq-fieldset" }, { kind: "directive", type: KbqFieldsetItem, selector: "[kbqFieldsetItem]" }, { kind: "ngmodule", type: KbqDatepickerModule }, { kind: "component", type: i2.KbqDatepicker, selector: "kbq-datepicker", inputs: ["hasBackdrop", "startAt", "disabled", "opened", "minDate", "maxDate", "panelClass", "dateClass", "backdropClass"], outputs: ["yearSelected", "monthSelected", "opened", "closed"], exportAs: ["kbqDatepicker"] }, { kind: "directive", type: i2.KbqDatepickerInput, selector: "input[kbqDatepicker], input[kbqCalendar]", inputs: ["errorStateMatcher", "placeholder", "required", "kbqDatepicker", "kbqCalendar", "kbqDatepickerFilter", "value", "min", "max", "disabled", "id", "kbqValidationTooltip"], outputs: ["incorrectInput", "dateChange", "dateInput"], exportAs: ["kbqDatepickerInput"] }, { kind: "component", type: i2.KbqDatepickerToggleIconComponent, selector: "kbq-datepicker-toggle-icon", inputs: ["disabled", "for"] }, { kind: "component", type: i3.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i3.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "directive", type: i3.KbqSuffix, selector: "[kbqSuffix]" }, { kind: "directive", type: i3.KbqValidateDirective, selector: " input[kbqInput], input[kbqNumberInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "ngmodule", type: KbqTimepickerModule }, { kind: "directive", type: i4.KbqTimepicker, selector: "input[kbqTimepicker]", inputs: ["placeholder", "disabled", "id", "required", "format", "min", "max", "value", "kbqValidationTooltip"], outputs: ["incorrectInput"], exportAs: ["kbqTimepicker"] }, { kind: "ngmodule", type: KbqRadioModule }, { kind: "directive", type: i5.KbqRadioGroup, selector: "kbq-radio-group", inputs: ["big", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["kbqRadioGroup"] }, { kind: "component", type: i5.KbqRadioButton, selector: "kbq-radio-button", inputs: ["checked", "value", "disabled", "tabIndex", "required", "labelPosition", "name", "isFocused", "id"], outputs: ["change"], exportAs: ["kbqRadioButton"] }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
191
196
  }
192
197
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqTimeRangeEditor, decorators: [{
193
198
  type: Component,
@@ -214,6 +219,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
214
219
  provide: NG_VALIDATORS,
215
220
  useExisting: KbqTimeRangeEditor
216
221
  }
217
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<form [formGroup]=\"form\">\n <kbq-radio-group class=\"kbq-time-range-editor__container\" [formControl]=\"form.controls.type\">\n @let types = timeRangeTypesWithoutRange();\n\n @if (types.length) {\n <div class=\"kbq-time-range-editor__predefined\">\n @for (type of types; track type) {\n <kbq-radio-button class=\"kbq-time-range-editor__predefined-option\" [value]=\"type.type\">\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { $implicit: type }\" />\n </kbq-radio-button>\n }\n </div>\n }\n\n @if (isRangeVisible()) {\n @let localeConfig = localeConfiguration();\n\n <div class=\"kbq-time-range-editor__range\" role=\"group\">\n @if (types.length) {\n <kbq-radio-button [value]=\"'range'\">{{ localeConfig.editor.rangeLabel }}</kbq-radio-button>\n }\n\n <div class=\"kbq-time-range-editor__date-time\">\n <span class=\"kbq-time-range-editor__date-time-prefix\" [attr.aria-label]=\"localeConfig.editor.from\">\n {{ localeConfig.editor.from }}\n </span>\n <kbq-fieldset>\n <kbq-form-field kbqFieldsetItem>\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix [autoColor]=\"true\"></i>\n <input kbqTimepicker [format]=\"timepickerFormat\" [formControl]=\"form.controls.fromTime\" />\n </kbq-form-field>\n\n <kbq-form-field>\n <input\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n [kbqDatepicker]=\"datepickerFrom\"\n [formControl]=\"form.controls.fromDate\"\n [errorStateMatcher]=\"rangeStateMatcher\"\n />\n <kbq-datepicker-toggle-icon kbqSuffix [for]=\"datepickerFrom\" />\n <kbq-datepicker #datepickerFrom [minDate]=\"minDate()\" [maxDate]=\"maxDate()\" />\n </kbq-form-field>\n </kbq-fieldset>\n </div>\n\n <div class=\"kbq-time-range-editor__date-time\">\n <span class=\"kbq-time-range-editor__date-time-prefix\" [attr.aria-label]=\"localeConfig.editor.to\">\n {{ localeConfig.editor.to }}\n </span>\n <kbq-fieldset>\n <kbq-form-field kbqFieldsetItem>\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix [autoColor]=\"true\"></i>\n <input kbqTimepicker [format]=\"timepickerFormat\" [formControl]=\"form.controls.toTime\" />\n </kbq-form-field>\n\n <kbq-form-field>\n <input\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n [kbqDatepicker]=\"datepickerTo\"\n [formControl]=\"form.controls.toDate\"\n [errorStateMatcher]=\"rangeStateMatcher\"\n />\n <kbq-datepicker-toggle-icon kbqSuffix [for]=\"datepickerTo\" />\n <kbq-datepicker #datepickerTo [minDate]=\"minDate()\" [maxDate]=\"maxDate()\" />\n </kbq-form-field>\n </kbq-fieldset>\n </div>\n </div>\n }\n </kbq-radio-group>\n</form>\n\n<ng-template #optionTemplate let-context>\n @let localeConfig = localeConfiguration();\n @switch (context.translationType) {\n @case ('other') {\n @switch (context.type) {\n @case ('allTime') {\n {{ localeConfig.editor.allTime }}\n }\n @case ('currentQuarter') {\n {{ localeConfig.editor.currentQuarter }}\n }\n @case ('currentYear') {\n {{ localeConfig.editor.currentYear }}\n }\n }\n }\n @default {\n {{ context.formattedValue }}\n }\n }\n</ng-template>\n" }]
222
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<form [formGroup]=\"form\">\n <kbq-radio-group class=\"kbq-time-range-editor__container\" [formControl]=\"form.controls.type\">\n @let types = timeRangeTypesWithoutRange();\n\n @if (types.length) {\n <div class=\"kbq-time-range-editor__predefined\">\n @for (type of types; track type) {\n <kbq-radio-button class=\"kbq-time-range-editor__predefined-option\" [value]=\"type.type\">\n <ng-container\n *ngTemplateOutlet=\"optionTemplate() || defaultOptionTemplate; context: { $implicit: type }\"\n />\n </kbq-radio-button>\n }\n </div>\n }\n\n @if (isRangeVisible()) {\n @let localeConfig = localeConfiguration();\n\n <div class=\"kbq-time-range-editor__range\" role=\"group\">\n @if (types.length) {\n <kbq-radio-button [value]=\"'range'\">{{ localeConfig.editor.rangeLabel }}</kbq-radio-button>\n }\n\n <div class=\"kbq-time-range-editor__date-time\">\n <span class=\"kbq-time-range-editor__date-time-prefix\" [attr.aria-label]=\"localeConfig.editor.from\">\n {{ localeConfig.editor.from }}\n </span>\n <kbq-fieldset>\n <kbq-form-field kbqFieldsetItem>\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix [autoColor]=\"true\"></i>\n <input kbqTimepicker [format]=\"timepickerFormat\" [formControl]=\"form.controls.fromTime\" />\n </kbq-form-field>\n\n <kbq-form-field>\n <input\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n [kbqDatepicker]=\"datepickerFrom\"\n [formControl]=\"form.controls.fromDate\"\n [errorStateMatcher]=\"rangeStateMatcher\"\n />\n <kbq-datepicker-toggle-icon kbqSuffix [for]=\"datepickerFrom\" />\n <kbq-datepicker #datepickerFrom [minDate]=\"minDate()\" [maxDate]=\"maxDate()\" />\n </kbq-form-field>\n </kbq-fieldset>\n </div>\n\n <div class=\"kbq-time-range-editor__date-time\">\n <span class=\"kbq-time-range-editor__date-time-prefix\" [attr.aria-label]=\"localeConfig.editor.to\">\n {{ localeConfig.editor.to }}\n </span>\n <kbq-fieldset>\n <kbq-form-field kbqFieldsetItem>\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix [autoColor]=\"true\"></i>\n <input kbqTimepicker [format]=\"timepickerFormat\" [formControl]=\"form.controls.toTime\" />\n </kbq-form-field>\n\n <kbq-form-field>\n <input\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n [kbqDatepicker]=\"datepickerTo\"\n [formControl]=\"form.controls.toDate\"\n [errorStateMatcher]=\"rangeStateMatcher\"\n />\n <kbq-datepicker-toggle-icon kbqSuffix [for]=\"datepickerTo\" />\n <kbq-datepicker #datepickerTo [minDate]=\"minDate()\" [maxDate]=\"maxDate()\" />\n </kbq-form-field>\n </kbq-fieldset>\n </div>\n </div>\n }\n </kbq-radio-group>\n</form>\n\n<ng-template #defaultOptionTemplate let-context>\n @let localeConfig = localeConfiguration();\n @switch (context.translationType) {\n @case ('other') {\n @switch (context.type) {\n @case ('allTime') {\n {{ localeConfig.editor.allTime }}\n }\n @case ('currentQuarter') {\n {{ localeConfig.editor.currentQuarter }}\n }\n @case ('currentYear') {\n {{ localeConfig.editor.currentYear }}\n }\n }\n }\n @default {\n {{ context.formattedValue }}\n }\n }\n</ng-template>\n" }]
218
223
  }], ctorParameters: () => [] });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1yYW5nZS1lZGl0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RpbWUtcmFuZ2UvdGltZS1yYW5nZS1lZGl0b3IudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RpbWUtcmFuZ2UvdGltZS1yYW5nZS1lZGl0b3IuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssRUFFTCxZQUFZLEVBQ1osaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFHSCxXQUFXLEVBQ1gsU0FBUyxFQUVULGFBQWEsRUFDYixpQkFBaUIsRUFFakIsbUJBQW1CLEVBR3RCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFN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QWEsZ0VDdEhwRixxM0lBK0ZBLDRDRHZDUSxnQkFBZ0IsbUpBQ2hCLG1CQUFtQixnK0JBQ25CLFdBQVcseURBQ1gsZUFBZSw2REFDZixtQkFBbUIsK3pCQUNuQixrQkFBa0IsNG9CQUNsQixtQkFBbUIseVJBQ25CLGNBQWMsbWVBQ2QsT0FBTzs7NEZBcUJGLGtCQUFrQjtrQkFqQzlCLFNBQVM7K0JBQ0ksdUJBQXVCLGNBQ3JCLElBQUksV0FDUDt3QkFDTCxnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsT0FBTztxQkFDVixRQUVLO3dCQUNGLEtBQUssRUFBRSx3QkFBd0I7cUJBQ2xDLGFBQ1U7d0JBQ1A7NEJBQ0ksS0FBSyxFQUFFLElBQUk7NEJBQ1gsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxvQkFBb0I7eUJBQ2xDO3dCQUNEOzRCQUNJLEtBQUssRUFBRSxJQUFJOzRCQUNYLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLG9CQUFvQjt5QkFDbEM7cUJBQ0osbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIGluamVjdCxcbiAgICBpbnB1dCxcbiAgICBPbkluaXQsXG4gICAgdmlld0NoaWxkcmVuLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgRm9ybUNvbnRyb2wsXG4gICAgRm9ybUdyb3VwLFxuICAgIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICBOR19WQUxJREFUT1JTLFxuICAgIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIE5nRm9ybSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgVmFsaWRhdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVycm9yU3RhdGVNYXRjaGVyLCBLYnFUaW1lUmFuZ2VMb2NhbGVDb25maWcgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBLYnFEYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgS2JxRmllbGRzZXQsIEticUZpZWxkc2V0SXRlbSwgS2JxRm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgS2JxSWNvbiB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IEticVJhZGlvTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3JhZGlvJztcbmltcG9ydCB7IEticVRpbWVwaWNrZXIsIEticVRpbWVwaWNrZXJNb2R1bGUsIFRpbWVGb3JtYXRzIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3RpbWVwaWNrZXInO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyByYW5nZVZhbGlkYXRvciB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IEticVRpbWVSYW5nZVNlcnZpY2UgfSBmcm9tICcuL3RpbWUtcmFuZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBLYnFSYW5nZVZhbHVlLCBLYnFUaW1lUmFuZ2VSYW5nZSwgS2JxVGltZVJhbmdlVHlwZSwgS2JxVGltZVJhbmdlVHlwZUNvbnRleHQgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIEZvcm1WYWx1ZTxUPiB7XG4gICAgdHlwZTogRm9ybUNvbnRyb2w8S2JxVGltZVJhbmdlVHlwZT47XG4gICAgZnJvbVRpbWU6IEZvcm1Db250cm9sPFQ+O1xuICAgIGZyb21EYXRlOiBGb3JtQ29udHJvbDxUPjtcbiAgICB0b1RpbWU6IEZvcm1Db250cm9sPFQ+O1xuICAgIHRvRGF0ZTogRm9ybUNvbnRyb2w8VD47XG59XG5cbmNsYXNzIFJhbmdlRXJyb3JTdGF0ZU1hdGNoZXIgaW1wbGVtZW50cyBFcnJvclN0YXRlTWF0Y2hlciB7XG4gICAgaXNFcnJvclN0YXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwsIGZvcm06IEZvcm1Hcm91cERpcmVjdGl2ZSB8IE5nRm9ybSB8IG51bGwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhZm9ybT8uaW52YWxpZCB8fCAhIWNvbnRyb2w/LmludmFsaWQ7XG4gICAgfVxufVxuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrYnEtdGltZS1yYW5nZS1lZGl0b3InLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBLYnFGaWVsZHNldCxcbiAgICAgICAgS2JxRmllbGRzZXRJdGVtLFxuICAgICAgICBLYnFEYXRlcGlja2VyTW9kdWxlLFxuICAgICAgICBLYnFGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIEticVRpbWVwaWNrZXJNb2R1bGUsXG4gICAgICAgIEticVJhZGlvTW9kdWxlLFxuICAgICAgICBLYnFJY29uXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGltZS1yYW5nZS1lZGl0b3IuaHRtbCcsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS10aW1lLXJhbmdlX19lZGl0b3InXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBLYnFUaW1lUmFuZ2VFZGl0b3JcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IEticVRpbWVSYW5nZUVkaXRvclxuICAgICAgICB9XG4gICAgXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEticVRpbWVSYW5nZUVkaXRvcjxUPiBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0aW1lUmFuZ2VTZXJ2aWNlID0gaW5qZWN0KEticVRpbWVSYW5nZVNlcnZpY2UpO1xuXG4gICAgLyoqIFRoZSBtYXhpbXVtIHNlbGVjdGFibGUgZGF0ZS4gKi9cbiAgICByZWFkb25seSBtYXhEYXRlID0gaW5wdXQ8VCB8IG51bGw+KG51bGwpO1xuICAgIC8qKiBUaGUgbWluaW11bSBzZWxlY3RhYmxlIGRhdGUuICovXG4gICAgcmVhZG9ubHkgbWluRGF0ZSA9IGlucHV0PFQgfCBudWxsPihudWxsKTtcbiAgICAvKiogUHJlc2V0IG9mIHNlbGVjdGFibGUgcmFuZ2VzICovXG4gICAgcmVhZG9ubHkgYXZhaWxhYmxlVGltZVJhbmdlVHlwZXMgPSBpbnB1dDxLYnFUaW1lUmFuZ2VUeXBlW10+KHRoaXMudGltZVJhbmdlU2VydmljZS5wcm92aWRlZERlZmF1bHRUaW1lUmFuZ2VUeXBlcyk7XG4gICAgLyoqIFByb3ZpZGVkIHZhbHVlIG9mIHNlbGVjdGVkIHJhbmdlICovXG4gICAgcmVhZG9ubHkgcmFuZ2VWYWx1ZSA9IGlucHV0PFJlcXVpcmVkPEticVJhbmdlVmFsdWU8VD4+Pih0aGlzLnRpbWVSYW5nZVNlcnZpY2UuZ2V0RGVmYXVsdFJhbmdlVmFsdWUoKSk7XG4gICAgcmVhZG9ubHkgc2hvd1JhbmdlQXNEZWZhdWx0ID0gaW5wdXQucmVxdWlyZWQ8Ym9vbGVhbj4oKTtcbiAgICByZWFkb25seSBsb2NhbGVDb25maWd1cmF0aW9uID0gaW5wdXQucmVxdWlyZWQ8S2JxVGltZVJhbmdlTG9jYWxlQ29uZmlnPigpO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNSYW5nZVZpc2libGUgPSBjb21wdXRlZChcbiAgICAgICAgKCkgPT4gdGhpcy5zaG93UmFuZ2VBc0RlZmF1bHQoKSB8fCB0aGlzLmF2YWlsYWJsZVRpbWVSYW5nZVR5cGVzKCkuaW5jbHVkZXMoJ3JhbmdlJylcbiAgICApO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGltZVJhbmdlVHlwZXNXaXRob3V0UmFuZ2UgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGxvY2FsZUNvbmZpZyA9IHRoaXMubG9jYWxlQ29uZmlndXJhdGlvbigpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmF2YWlsYWJsZVRpbWVSYW5nZVR5cGVzKClcbiAgICAgICAgICAgIC5maWx0ZXIoKHR5cGUpID0+IHR5cGUgIT09ICdyYW5nZScpXG4gICAgICAgICAgICAubWFwKCh0eXBlKSA9PiAoe1xuICAgICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRpb25UeXBlOiB0aGlzLnRpbWVSYW5nZVNlcnZpY2UuZ2V0VGltZVJhbmdlVW5pdEJ5VHlwZSh0eXBlKSxcbiAgICAgICAgICAgICAgICBmb3JtYXR0ZWRWYWx1ZTogdGhpcy5nZXRGb3JtYXR0ZWRPcHRpb24odHlwZSwgbG9jYWxlQ29uZmlnKVxuICAgICAgICAgICAgfSkpO1xuICAgIH0pO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGltZXBpY2tlckxpc3QgPSB2aWV3Q2hpbGRyZW48S2JxVGltZXBpY2tlcjxUPj4oS2JxVGltZXBpY2tlcik7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBmb3JtOiBGb3JtR3JvdXA8Rm9ybVZhbHVlPFQ+PjtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSB0aW1lcGlja2VyRm9ybWF0ID0gVGltZUZvcm1hdHMuSEhtbXNzO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJhbmdlU3RhdGVNYXRjaGVyID0gbmV3IFJhbmdlRXJyb3JTdGF0ZU1hdGNoZXIoKTtcblxuICAgIHByaXZhdGUgbGFzdFZhbGlkYXRpb25FcnJvck9uRW1pdDogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRSYW5nZVZhbHVlID0gdGhpcy5yYW5nZVZhbHVlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtID0gbmV3IEZvcm1Hcm91cChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiBuZXcgRm9ybUNvbnRyb2w8S2JxVGltZVJhbmdlVHlwZT4oS2JxVGltZVJhbmdlU2VydmljZS5ERUZBVUxUX1JBTkdFX1RZUEUsIHsgbm9uTnVsbGFibGU6IHRydWUgfSksXG4gICAgICAgICAgICAgICAgZnJvbVRpbWU6IG5ldyBGb3JtQ29udHJvbDxUPihkZWZhdWx0UmFuZ2VWYWx1ZS5mcm9tVGltZSwgeyBub25OdWxsYWJsZTogdHJ1ZSB9KSxcbiAgICAgICAgICAgICAgICBmcm9tRGF0ZTogbmV3IEZvcm1Db250cm9sPFQ+KGRlZmF1bHRSYW5nZVZhbHVlLmZyb21EYXRlLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pLFxuICAgICAgICAgICAgICAgIHRvVGltZTogbmV3IEZvcm1Db250cm9sPFQ+KGRlZmF1bHRSYW5nZVZhbHVlLnRvVGltZSwgeyBub25OdWxsYWJsZTogdHJ1ZSB9KSxcbiAgICAgICAgICAgICAgICB0b0RhdGU6IG5ldyBGb3JtQ29udHJvbDxUPihkZWZhdWx0UmFuZ2VWYWx1ZS50b0RhdGUsIHsgbm9uTnVsbGFibGU6IHRydWUgfSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IHZhbGlkYXRvcnM6IHJhbmdlVmFsaWRhdG9yKHRoaXMudGltZVJhbmdlU2VydmljZSkgfVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHJhbmdlQ29udHJvbHMgPSBbXG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuZnJvbVRpbWUsXG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuZnJvbURhdGUsXG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMudG9UaW1lLFxuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnRvRGF0ZVxuICAgICAgICBdO1xuXG4gICAgICAgIG1lcmdlKC4uLnJhbmdlQ29udHJvbHMubWFwKChjb250cm9sKSA9PiBjb250cm9sLnN0YXR1c0NoYW5nZXMpKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+ICh0aGlzLmxhc3RWYWxpZGF0aW9uRXJyb3JPbkVtaXQgPSB0aGlzLmNvbmNhdENvbnRyb2xWYWxpZGF0aW9uRXJyb3JzKCkpKTtcblxuICAgICAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGZvcm1WYWx1ZSkgPT4gZm9ybVZhbHVlLnR5cGUpLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHR5cGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0Rpc2FibGVkID0gdHlwZSAhPT0gJ3JhbmdlJztcblxuICAgICAgICAgICAgICAgIHJhbmdlQ29udHJvbHMuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKGZvcm1WYWx1ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSB0aGlzLm1hcFRpbWVSYW5nZShmb3JtVmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAocmFuZ2UpIHRoaXMub25DaGFuZ2UocmFuZ2UpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZvcm0uc3RhdHVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGltZXBpY2tlckxpc3QgPSB0aGlzLnRpbWVwaWNrZXJMaXN0KCk7XG5cbiAgICAgICAgICAgIGlmICh0aW1lcGlja2VyTGlzdC5hdCgwKSkge1xuICAgICAgICAgICAgICAgIHRpbWVwaWNrZXJMaXN0LmF0KDApIS5lcnJvclN0YXRlID0gc3RhdHVzID09PSAnSU5WQUxJRCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBkZWZhdWx0UmFuZ2VWYWx1ZSA9IHRoaXMucmFuZ2VWYWx1ZSgpO1xuICAgICAgICBjb25zdCBhdmFpbGFibGVUaW1lUmFuZ2VUeXBlcyA9IHRoaXMuYXZhaWxhYmxlVGltZVJhbmdlVHlwZXMoKTtcblxuICAgICAgICB0aGlzLmZvcm0uc2V0VmFsdWUoe1xuICAgICAgICAgICAgdHlwZTogKGF2YWlsYWJsZVRpbWVSYW5nZVR5cGVzLmxlbmd0aCAmJiBhdmFpbGFibGVUaW1lUmFuZ2VUeXBlc1swXSkgfHwgJ3JhbmdlJyxcbiAgICAgICAgICAgIGZyb21UaW1lOiBkZWZhdWx0UmFuZ2VWYWx1ZS5mcm9tVGltZSxcbiAgICAgICAgICAgIGZyb21EYXRlOiBkZWZhdWx0UmFuZ2VWYWx1ZS5mcm9tRGF0ZSxcbiAgICAgICAgICAgIHRvVGltZTogZGVmYXVsdFJhbmdlVmFsdWUudG9UaW1lLFxuICAgICAgICAgICAgdG9EYXRlOiBkZWZhdWx0UmFuZ2VWYWx1ZS50b0RhdGVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICB2YWxpZGF0ZSgpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZXJyb3JzIHx8IHRoaXMubGFzdFZhbGlkYXRpb25FcnJvck9uRW1pdDtcbiAgICB9XG5cbiAgICAvKiogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3NvciAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IEticVRpbWVSYW5nZVJhbmdlIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgICAgIGlmICghdmFsdWUpIHJldHVybjtcblxuICAgICAgICBjb25zdCBjb3JyZWN0ZWQgPSB0aGlzLnRpbWVSYW5nZVNlcnZpY2UuY2hlY2tBbmRDb3JyZWN0VGltZVJhbmdlVmFsdWUoXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIHRoaXMuYXZhaWxhYmxlVGltZVJhbmdlVHlwZXMoKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybS52YWx1ZVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9scy50eXBlLnNldFZhbHVlKGNvcnJlY3RlZC50eXBlKTtcblxuICAgICAgICBpZiAoY29ycmVjdGVkLnR5cGUgPT09ICdyYW5nZScgJiYgY29ycmVjdGVkLnN0YXJ0RGF0ZVRpbWUgJiYgY29ycmVjdGVkLmVuZERhdGVUaW1lKSB7XG4gICAgICAgICAgICBjb25zdCBmcm9tOiBUID0gdGhpcy50aW1lUmFuZ2VTZXJ2aWNlLmRhdGVBZGFwdGVyLmRlc2VyaWFsaXplKGNvcnJlY3RlZC5zdGFydERhdGVUaW1lKTtcbiAgICAgICAgICAgIGNvbnN0IHRvOiBUID0gdGhpcy50aW1lUmFuZ2VTZXJ2aWNlLmRhdGVBZGFwdGVyLmRlc2VyaWFsaXplKGNvcnJlY3RlZC5lbmREYXRlVGltZSk7XG5cbiAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICBmcm9tVGltZTogZnJvbSxcbiAgICAgICAgICAgICAgICBmcm9tRGF0ZTogZnJvbSxcbiAgICAgICAgICAgICAgICB0b1RpbWU6IHRvLFxuICAgICAgICAgICAgICAgIHRvRGF0ZTogdG9cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBvbkNoYW5nZSA9IChfdmFsdWU6IEticVRpbWVSYW5nZVJhbmdlKSA9PiB7fTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIG9uVG91Y2ggPSAoKSA9PiB7fTtcbiAgICAvKiogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3NvciAqL1xuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogS2JxVGltZVJhbmdlUmFuZ2UpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cbiAgICAvKiogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3NvciAqL1xuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWFwVGltZVJhbmdlKHsgdHlwZSB9OiBQYXJ0aWFsPEticVRpbWVSYW5nZVR5cGVDb250ZXh0PiAmIEticVJhbmdlVmFsdWU8VD4pOiBLYnFUaW1lUmFuZ2VSYW5nZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICghdHlwZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIC4uLnRoaXMudGltZVJhbmdlU2VydmljZS5jYWxjdWxhdGVUaW1lUmFuZ2UodHlwZSwge1xuICAgICAgICAgICAgICAgIC8vIHVzZSBjb250cm9sLnZhbHVlLCBzaW5jZSB2aWEgZm9ybS52YWx1ZSBjb250cm9sIHZhbHVlcyBjYW4gYmUgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgZnJvbVRpbWU6IHRoaXMuZm9ybS5jb250cm9scy5mcm9tVGltZS52YWx1ZSxcbiAgICAgICAgICAgICAgICBmcm9tRGF0ZTogdGhpcy5mb3JtLmNvbnRyb2xzLmZyb21EYXRlLnZhbHVlLFxuICAgICAgICAgICAgICAgIHRvRGF0ZTogdGhpcy5mb3JtLmNvbnRyb2xzLnRvVGltZS52YWx1ZSxcbiAgICAgICAgICAgICAgICB0b1RpbWU6IHRoaXMuZm9ybS5jb250cm9scy50b1RpbWUudmFsdWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGb3JtYXR0ZWRPcHRpb24odHlwZTogS2JxVGltZVJhbmdlVHlwZSwgbG9jYWxlQ29uZmlnOiBLYnFUaW1lUmFuZ2VMb2NhbGVDb25maWcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB0cmFuc2xhdGlvblR5cGUgPSB0aGlzLnRpbWVSYW5nZVNlcnZpY2UuZ2V0VGltZVJhbmdlVW5pdEJ5VHlwZSh0eXBlKTtcblxuICAgICAgICBpZiAodHJhbnNsYXRpb25UeXBlID09PSAnb3RoZXInKSByZXR1cm4gJyc7XG5cbiAgICAgICAgY29uc3QgcmFuZ2UgPSB0aGlzLnRpbWVSYW5nZVNlcnZpY2UuY2FsY3VsYXRlVGltZVJhbmdlKHR5cGUpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnRpbWVSYW5nZVNlcnZpY2UuZGF0ZUZvcm1hdHRlci5kdXJhdGlvbihcbiAgICAgICAgICAgIHRoaXMudGltZVJhbmdlU2VydmljZS5kYXRlQWRhcHRlci5kZXNlcmlhbGl6ZShyYW5nZS5zdGFydERhdGVUaW1lISksXG4gICAgICAgICAgICB0aGlzLnRpbWVSYW5nZVNlcnZpY2UuZGF0ZUFkYXB0ZXIudG9kYXkoKSxcbiAgICAgICAgICAgIFt0cmFuc2xhdGlvblR5cGVdLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICBsb2NhbGVDb25maWcuZHVyYXRpb25UZW1wbGF0ZS5vcHRpb25cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbmNhdENvbnRyb2xWYWxpZGF0aW9uRXJyb3JzKCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgbGV0IHJlc3VsdDogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSB0aGlzLmZvcm0uZXJyb3JzO1xuXG4gICAgICAgIE9iamVjdC52YWx1ZXModGhpcy5mb3JtLmNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgICAgICAgIGlmIChjb250cm9sLmVycm9ycykge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAuLi5jb250cm9sLmVycm9yc1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgPGticS1yYWRpby1ncm91cCBjbGFzcz1cImticS10aW1lLXJhbmdlLWVkaXRvcl9fY29udGFpbmVyXCIgW2Zvcm1Db250cm9sXT1cImZvcm0uY29udHJvbHMudHlwZVwiPlxuICAgICAgICBAbGV0IHR5cGVzID0gdGltZVJhbmdlVHlwZXNXaXRob3V0UmFuZ2UoKTtcblxuICAgICAgICBAaWYgKHR5cGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS10aW1lLXJhbmdlLWVkaXRvcl9fcHJlZGVmaW5lZFwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKHR5cGUgb2YgdHlwZXM7IHRyYWNrIHR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGticS1yYWRpby1idXR0b24gY2xhc3M9XCJrYnEtdGltZS1yYW5nZS1lZGl0b3JfX3ByZWRlZmluZWQtb3B0aW9uXCIgW3ZhbHVlXT1cInR5cGUudHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm9wdGlvblRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogdHlwZSB9XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9rYnEtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChpc1JhbmdlVmlzaWJsZSgpKSB7XG4gICAgICAgICAgICBAbGV0IGxvY2FsZUNvbmZpZyA9IGxvY2FsZUNvbmZpZ3VyYXRpb24oKTtcblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS10aW1lLXJhbmdlLWVkaXRvcl9fcmFuZ2VcIiByb2xlPVwiZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHR5cGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICA8a2JxLXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwiJ3JhbmdlJ1wiPnt7IGxvY2FsZUNvbmZpZy5lZGl0b3IucmFuZ2VMYWJlbCB9fTwva2JxLXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLXRpbWUtcmFuZ2UtZWRpdG9yX19kYXRlLXRpbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJrYnEtdGltZS1yYW5nZS1lZGl0b3JfX2RhdGUtdGltZS1wcmVmaXhcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImxvY2FsZUNvbmZpZy5lZGl0b3IuZnJvbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbG9jYWxlQ29uZmlnLmVkaXRvci5mcm9tIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGticS1maWVsZHNldD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxrYnEtZm9ybS1maWVsZCBrYnFGaWVsZHNldEl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEtY2xvY2tfMTZcIiBrYnFQcmVmaXggW2F1dG9Db2xvcl09XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBrYnFUaW1lcGlja2VyIFtmb3JtYXRdPVwidGltZXBpY2tlckZvcm1hdFwiIFtmb3JtQ29udHJvbF09XCJmb3JtLmNvbnRyb2xzLmZyb21UaW1lXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwva2JxLWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxrYnEtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCJtaW5EYXRlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIm1heERhdGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrYnFEYXRlcGlja2VyXT1cImRhdGVwaWNrZXJGcm9tXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm0uY29udHJvbHMuZnJvbURhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwicmFuZ2VTdGF0ZU1hdGNoZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGticS1kYXRlcGlja2VyLXRvZ2dsZS1pY29uIGticVN1ZmZpeCBbZm9yXT1cImRhdGVwaWNrZXJGcm9tXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8a2JxLWRhdGVwaWNrZXIgI2RhdGVwaWNrZXJGcm9tIFttaW5EYXRlXT1cIm1pbkRhdGUoKVwiIFttYXhEYXRlXT1cIm1heERhdGUoKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ticS1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8L2ticS1maWVsZHNldD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtdGltZS1yYW5nZS1lZGl0b3JfX2RhdGUtdGltZVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImticS10aW1lLXJhbmdlLWVkaXRvcl9fZGF0ZS10aW1lLXByZWZpeFwiIFthdHRyLmFyaWEtbGFiZWxdPVwibG9jYWxlQ29uZmlnLmVkaXRvci50b1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbG9jYWxlQ29uZmlnLmVkaXRvci50byB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxrYnEtZmllbGRzZXQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8a2JxLWZvcm0tZmllbGQga2JxRmllbGRzZXRJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLWNsb2NrXzE2XCIga2JxUHJlZml4IFthdXRvQ29sb3JdPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQga2JxVGltZXBpY2tlciBbZm9ybWF0XT1cInRpbWVwaWNrZXJGb3JtYXRcIiBbZm9ybUNvbnRyb2xdPVwiZm9ybS5jb250cm9scy50b1RpbWVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9rYnEtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGticS1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cIm1pbkRhdGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwibWF4RGF0ZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ticURhdGVwaWNrZXJdPVwiZGF0ZXBpY2tlclRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm0uY29udHJvbHMudG9EYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cInJhbmdlU3RhdGVNYXRjaGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxrYnEtZGF0ZXBpY2tlci10b2dnbGUtaWNvbiBrYnFTdWZmaXggW2Zvcl09XCJkYXRlcGlja2VyVG9cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxrYnEtZGF0ZXBpY2tlciAjZGF0ZXBpY2tlclRvIFttaW5EYXRlXT1cIm1pbkRhdGUoKVwiIFttYXhEYXRlXT1cIm1heERhdGUoKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ticS1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8L2ticS1maWVsZHNldD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9rYnEtcmFkaW8tZ3JvdXA+XG48L2Zvcm0+XG5cbjxuZy10ZW1wbGF0ZSAjb3B0aW9uVGVtcGxhdGUgbGV0LWNvbnRleHQ+XG4gICAgQGxldCBsb2NhbGVDb25maWcgPSBsb2NhbGVDb25maWd1cmF0aW9uKCk7XG4gICAgQHN3aXRjaCAoY29udGV4dC50cmFuc2xhdGlvblR5cGUpIHtcbiAgICAgICAgQGNhc2UgKCdvdGhlcicpIHtcbiAgICAgICAgICAgIEBzd2l0Y2ggKGNvbnRleHQudHlwZSkge1xuICAgICAgICAgICAgICAgIEBjYXNlICgnYWxsVGltZScpIHtcbiAgICAgICAgICAgICAgICAgICAge3sgbG9jYWxlQ29uZmlnLmVkaXRvci5hbGxUaW1lIH19XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBjYXNlICgnY3VycmVudFF1YXJ0ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgIHt7IGxvY2FsZUNvbmZpZy5lZGl0b3IuY3VycmVudFF1YXJ0ZXIgfX1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGNhc2UgKCdjdXJyZW50WWVhcicpIHtcbiAgICAgICAgICAgICAgICAgICAge3sgbG9jYWxlQ29uZmlnLmVkaXRvci5jdXJyZW50WWVhciB9fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICB7eyBjb250ZXh0LmZvcm1hdHRlZFZhbHVlIH19XG4gICAgICAgIH1cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuIl19
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1yYW5nZS1lZGl0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RpbWUtcmFuZ2UvdGltZS1yYW5nZS1lZGl0b3IudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RpbWUtcmFuZ2UvdGltZS1yYW5nZS1lZGl0b3IuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssRUFHTCxZQUFZLEVBQ1osaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFHSCxXQUFXLEVBQ1gsU0FBUyxFQUVULGFBQWEsRUFDYixpQkFBaUIsRUFFakIsbUJBQW1CLEVBR3RCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFN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LEVBQUUsa0JBQWtCO2FBQ2xDO1lBQ0Q7Z0JBQ0ksS0FBSyxFQUFFLElBQUk7Z0JBQ1gsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLFdBQVcsRUFBRSxrQkFBa0I7YUFDbEM7U0FDSiw2REF3Q2tFLGFBQWEsZ0VDaElwRiw2OElBaUdBLDRDRGxDUSxnQkFBZ0IsbUpBQ2hCLG1CQUFtQixnK0JBQ25CLFdBQVcseURBQ1gsZUFBZSw2REFDZixtQkFBbUIsNjZDQUNuQixrQkFBa0IsOEJBQ2xCLG1CQUFtQix5UkFDbkIsY0FBYyxtZUFDZCxPQUFPOzs0RkFxQkYsa0JBQWtCO2tCQWpDOUIsU0FBUzsrQkFDSSx1QkFBdUIsY0FDckIsSUFBSSxXQUNQO3dCQUNMLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxPQUFPO3FCQUNWLFFBRUs7d0JBQ0YsS0FBSyxFQUFFLHdCQUF3QjtxQkFDbEMsYUFDVTt3QkFDUDs0QkFDSSxLQUFLLEVBQUUsSUFBSTs0QkFDWCxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLG9CQUFvQjt5QkFDbEM7d0JBQ0Q7NEJBQ0ksS0FBSyxFQUFFLElBQUk7NEJBQ1gsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsb0JBQW9CO3lCQUNsQztxQkFDSixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIE9uSW5pdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICB2aWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBGb3JtQ29udHJvbCxcbiAgICBGb3JtR3JvdXAsXG4gICAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIE5HX1ZBTElEQVRPUlMsXG4gICAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgTmdGb3JtLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgVmFsaWRhdGlvbkVycm9ycyxcbiAgICBWYWxpZGF0b3Jcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRXJyb3JTdGF0ZU1hdGNoZXIsIEticVRpbWVSYW5nZUxvY2FsZUNvbmZpZyB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticURhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBLYnFGaWVsZHNldCwgS2JxRmllbGRzZXRJdGVtLCBLYnFGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBLYnFJY29uIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgS2JxUmFkaW9Nb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvcmFkaW8nO1xuaW1wb3J0IHsgS2JxVGltZXBpY2tlciwgS2JxVGltZXBpY2tlck1vZHVsZSwgVGltZUZvcm1hdHMgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvdGltZXBpY2tlcic7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHJhbmdlVmFsaWRhdG9yIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgS2JxVGltZVJhbmdlU2VydmljZSB9IGZyb20gJy4vdGltZS1yYW5nZS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgS2JxUmFuZ2VWYWx1ZSxcbiAgICBLYnFUaW1lUmFuZ2VPcHRpb25Db250ZXh0LFxuICAgIEticVRpbWVSYW5nZVJhbmdlLFxuICAgIEticVRpbWVSYW5nZVR5cGUsXG4gICAgS2JxVGltZVJhbmdlVHlwZUNvbnRleHRcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmludGVyZmFjZSBGb3JtVmFsdWU8VD4ge1xuICAgIHR5cGU6IEZvcm1Db250cm9sPEticVRpbWVSYW5nZVR5cGU+O1xuICAgIGZyb21UaW1lOiBGb3JtQ29udHJvbDxUPjtcbiAgICBmcm9tRGF0ZTogRm9ybUNvbnRyb2w8VD47XG4gICAgdG9UaW1lOiBGb3JtQ29udHJvbDxUPjtcbiAgICB0b0RhdGU6IEZvcm1Db250cm9sPFQ+O1xufVxuXG5jbGFzcyBSYW5nZUVycm9yU3RhdGVNYXRjaGVyIGltcGxlbWVudHMgRXJyb3JTdGF0ZU1hdGNoZXIge1xuICAgIGlzRXJyb3JTdGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsLCBmb3JtOiBGb3JtR3JvdXBEaXJlY3RpdmUgfCBOZ0Zvcm0gfCBudWxsKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIWZvcm0/LmludmFsaWQgfHwgISFjb250cm9sPy5pbnZhbGlkO1xuICAgIH1cbn1cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2JxLXRpbWUtcmFuZ2UtZWRpdG9yJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgS2JxRmllbGRzZXQsXG4gICAgICAgIEticUZpZWxkc2V0SXRlbSxcbiAgICAgICAgS2JxRGF0ZXBpY2tlck1vZHVsZSxcbiAgICAgICAgS2JxRm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBLYnFUaW1lcGlja2VyTW9kdWxlLFxuICAgICAgICBLYnFSYWRpb01vZHVsZSxcbiAgICAgICAgS2JxSWNvblxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtcmFuZ2UtZWRpdG9yLmh0bWwnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtdGltZS1yYW5nZV9fZWRpdG9yJ1xuICAgIH0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogS2JxVGltZVJhbmdlRWRpdG9yXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBLYnFUaW1lUmFuZ2VFZGl0b3JcbiAgICAgICAgfVxuICAgIF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBLYnFUaW1lUmFuZ2VFZGl0b3I8VD4gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGltZVJhbmdlU2VydmljZSA9IGluamVjdChLYnFUaW1lUmFuZ2VTZXJ2aWNlKTtcblxuICAgIC8qKiBUaGUgbWF4aW11bSBzZWxlY3RhYmxlIGRhdGUuICovXG4gICAgcmVhZG9ubHkgbWF4RGF0ZSA9IGlucHV0PFQgfCBudWxsPihudWxsKTtcbiAgICAvKiogVGhlIG1pbmltdW0gc2VsZWN0YWJsZSBkYXRlLiAqL1xuICAgIHJlYWRvbmx5IG1pbkRhdGUgPSBpbnB1dDxUIHwgbnVsbD4obnVsbCk7XG4gICAgLyoqIFByZXNldCBvZiBzZWxlY3RhYmxlIHJhbmdlcyAqL1xuICAgIHJlYWRvbmx5IGF2YWlsYWJsZVRpbWVSYW5nZVR5cGVzID0gaW5wdXQ8S2JxVGltZVJhbmdlVHlwZVtdPih0aGlzLnRpbWVSYW5nZVNlcnZpY2UucHJvdmlkZWREZWZhdWx0VGltZVJhbmdlVHlwZXMpO1xuICAgIC8qKiBQcm92aWRlZCB2YWx1ZSBvZiBzZWxlY3RlZCByYW5nZSAqL1xuICAgIHJlYWRvbmx5IHJhbmdlVmFsdWUgPSBpbnB1dDxSZXF1aXJlZDxLYnFSYW5nZVZhbHVlPFQ+Pj4odGhpcy50aW1lUmFuZ2VTZXJ2aWNlLmdldERlZmF1bHRSYW5nZVZhbHVlKCkpO1xuICAgIHJlYWRvbmx5IHNob3dSYW5nZUFzRGVmYXVsdCA9IGlucHV0LnJlcXVpcmVkPGJvb2xlYW4+KCk7XG4gICAgcmVhZG9ubHkgbG9jYWxlQ29uZmlndXJhdGlvbiA9IGlucHV0LnJlcXVpcmVkPEticVRpbWVSYW5nZUxvY2FsZUNvbmZpZz4oKTtcbiAgICAvKiogQ3VzdG9taXphYmxlIG9wdGlvbiBvdXRwdXQgKi9cbiAgICByZWFkb25seSBvcHRpb25UZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPEticVRpbWVSYW5nZU9wdGlvbkNvbnRleHQ+PigpO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNSYW5nZVZpc2libGUgPSBjb21wdXRlZChcbiAgICAgICAgKCkgPT4gdGhpcy5zaG93UmFuZ2VBc0RlZmF1bHQoKSB8fCB0aGlzLmF2YWlsYWJsZVRpbWVSYW5nZVR5cGVzKCkuaW5jbHVkZXMoJ3JhbmdlJylcbiAgICApO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGltZVJhbmdlVHlwZXNXaXRob3V0UmFuZ2UgPSBjb21wdXRlZDxLYnFUaW1lUmFuZ2VPcHRpb25Db250ZXh0W10+KCgpID0+IHtcbiAgICAgICAgY29uc3QgbG9jYWxlQ29uZmlnID0gdGhpcy5sb2NhbGVDb25maWd1cmF0aW9uKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlVGltZVJhbmdlVHlwZXMoKVxuICAgICAgICAgICAgLmZpbHRlcigodHlwZSkgPT4gdHlwZSAhPT0gJ3JhbmdlJylcbiAgICAgICAgICAgIC5tYXAoKHR5cGUpID0+ICh7XG4gICAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGlvblR5cGU6IHRoaXMudGltZVJhbmdlU2VydmljZS5nZXRUaW1lUmFuZ2VVbml0QnlUeXBlKHR5cGUpLFxuICAgICAgICAgICAgICAgIHVuaXRzOiB0aGlzLnRpbWVSYW5nZVNlcnZpY2UuZ2V0VGltZVJhbmdlVHlwZVVuaXRzKHR5cGUpLFxuICAgICAgICAgICAgICAgIGZvcm1hdHRlZFZhbHVlOiB0aGlzLmdldEZvcm1hdHRlZE9wdGlvbih0eXBlLCBsb2NhbGVDb25maWcpXG4gICAgICAgICAgICB9KSk7XG4gICAgfSk7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSB0aW1lcGlja2VyTGlzdCA9IHZpZXdDaGlsZHJlbjxLYnFUaW1lcGlja2VyPFQ+PihLYnFUaW1lcGlja2VyKTtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm06IEZvcm1Hcm91cDxGb3JtVmFsdWU8VD4+O1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRpbWVwaWNrZXJGb3JtYXQgPSBUaW1lRm9ybWF0cy5ISG1tc3M7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmFuZ2VTdGF0ZU1hdGNoZXIgPSBuZXcgUmFuZ2VFcnJvclN0YXRlTWF0Y2hlcigpO1xuXG4gICAgcHJpdmF0ZSBsYXN0VmFsaWRhdGlvbkVycm9yT25FbWl0OiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdFJhbmdlVmFsdWUgPSB0aGlzLnJhbmdlVmFsdWUoKTtcblxuICAgICAgICB0aGlzLmZvcm0gPSBuZXcgRm9ybUdyb3VwKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6IG5ldyBGb3JtQ29udHJvbDxLYnFUaW1lUmFuZ2VUeXBlPih0aGlzLnRpbWVSYW5nZVNlcnZpY2UuREVGQVVMVF9SQU5HRV9UWVBFLCB7XG4gICAgICAgICAgICAgICAgICAgIG5vbk51bGxhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZnJvbVRpbWU6IG5ldyBGb3JtQ29udHJvbDxUPihkZWZhdWx0UmFuZ2VWYWx1ZS5mcm9tVGltZSwgeyBub25OdWxsYWJsZTogdHJ1ZSB9KSxcbiAgICAgICAgICAgICAgICBmcm9tRGF0ZTogbmV3IEZvcm1Db250cm9sPFQ+KGRlZmF1bHRSYW5nZVZhbHVlLmZyb21EYXRlLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pLFxuICAgICAgICAgICAgICAgIHRvVGltZTogbmV3IEZvcm1Db250cm9sPFQ+KGRlZmF1bHRSYW5nZVZhbHVlLnRvVGltZSwgeyBub25OdWxsYWJsZTogdHJ1ZSB9KSxcbiAgICAgICAgICAgICAgICB0b0RhdGU6IG5ldyBGb3JtQ29udHJvbDxUPihkZWZhdWx0UmFuZ2VWYWx1ZS50b0RhdGUsIHsgbm9uTnVsbGFibGU6IHRydWUgfSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IHZhbGlkYXRvcnM6IHJhbmdlVmFsaWRhdG9yKHRoaXMudGltZVJhbmdlU2VydmljZSkgfVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHJhbmdlQ29udHJvbHMgPSBbXG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuZnJvbVRpbWUsXG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuZnJvbURhdGUsXG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMudG9UaW1lLFxuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnRvRGF0ZVxuICAgICAgICBdO1xuXG4gICAgICAgIG1lcmdlKC4uLnJhbmdlQ29udHJvbHMubWFwKChjb250cm9sKSA9PiBjb250cm9sLnN0YXR1c0NoYW5nZXMpKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+ICh0aGlzLmxhc3RWYWxpZGF0aW9uRXJyb3JPbkVtaXQgPSB0aGlzLmNvbmNhdENvbnRyb2xWYWxpZGF0aW9uRXJyb3JzKCkpKTtcblxuICAgICAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGZvcm1WYWx1ZSkgPT4gZm9ybVZhbHVlLnR5cGUpLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHR5cGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0Rpc2FibGVkID0gdHlwZSAhPT0gJ3JhbmdlJztcblxuICAgICAgICAgICAgICAgIHJhbmdlQ29udHJvbHMuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKGZvcm1WYWx1ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSB0aGlzLm1hcFRpbWVSYW5nZShmb3JtVmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAocmFuZ2UpIHRoaXMub25DaGFuZ2UocmFuZ2UpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZvcm0uc3RhdHVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGltZXBpY2tlckxpc3QgPSB0aGlzLnRpbWVwaWNrZXJMaXN0KCk7XG5cbiAgICAgICAgICAgIGlmICh0aW1lcGlja2VyTGlzdC5hdCgwKSkge1xuICAgICAgICAgICAgICAgIHRpbWVwaWNrZXJMaXN0LmF0KDApIS5lcnJvclN0YXRlID0gc3RhdHVzID09PSAnSU5WQUxJRCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBkZWZhdWx0UmFuZ2VWYWx1ZSA9IHRoaXMucmFuZ2VWYWx1ZSgpO1xuICAgICAgICBjb25zdCBhdmFpbGFibGVUaW1lUmFuZ2VUeXBlcyA9IHRoaXMuYXZhaWxhYmxlVGltZVJhbmdlVHlwZXMoKTtcblxuICAgICAgICB0aGlzLmZvcm0uc2V0VmFsdWUoe1xuICAgICAgICAgICAgdHlwZTogKGF2YWlsYWJsZVRpbWVSYW5nZVR5cGVzLmxlbmd0aCAmJiBhdmFpbGFibGVUaW1lUmFuZ2VUeXBlc1swXSkgfHwgJ3JhbmdlJyxcbiAgICAgICAgICAgIGZyb21UaW1lOiBkZWZhdWx0UmFuZ2VWYWx1ZS5mcm9tVGltZSxcbiAgICAgICAgICAgIGZyb21EYXRlOiBkZWZhdWx0UmFuZ2VWYWx1ZS5mcm9tRGF0ZSxcbiAgICAgICAgICAgIHRvVGltZTogZGVmYXVsdFJhbmdlVmFsdWUudG9UaW1lLFxuICAgICAgICAgICAgdG9EYXRlOiBkZWZhdWx0UmFuZ2VWYWx1ZS50b0RhdGVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICB2YWxpZGF0ZSgpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZXJyb3JzIHx8IHRoaXMubGFzdFZhbGlkYXRpb25FcnJvck9uRW1pdDtcbiAgICB9XG5cbiAgICAvKiogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3NvciAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU/OiBLYnFUaW1lUmFuZ2VSYW5nZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgY29ycmVjdGVkID0gdGhpcy50aW1lUmFuZ2VTZXJ2aWNlLmNoZWNrQW5kQ29ycmVjdFRpbWVSYW5nZVZhbHVlKFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICB0aGlzLmF2YWlsYWJsZVRpbWVSYW5nZVR5cGVzKCksXG4gICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMudHlwZS5zZXRWYWx1ZShjb3JyZWN0ZWQudHlwZSk7XG5cbiAgICAgICAgaWYgKGNvcnJlY3RlZC50eXBlID09PSAncmFuZ2UnICYmIGNvcnJlY3RlZC5zdGFydERhdGVUaW1lICYmIGNvcnJlY3RlZC5lbmREYXRlVGltZSkge1xuICAgICAgICAgICAgY29uc3QgZnJvbTogVCA9IHRoaXMudGltZVJhbmdlU2VydmljZS5kYXRlQWRhcHRlci5kZXNlcmlhbGl6ZShjb3JyZWN0ZWQuc3RhcnREYXRlVGltZSk7XG4gICAgICAgICAgICBjb25zdCB0bzogVCA9IHRoaXMudGltZVJhbmdlU2VydmljZS5kYXRlQWRhcHRlci5kZXNlcmlhbGl6ZShjb3JyZWN0ZWQuZW5kRGF0ZVRpbWUpO1xuXG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgZnJvbVRpbWU6IGZyb20sXG4gICAgICAgICAgICAgICAgZnJvbURhdGU6IGZyb20sXG4gICAgICAgICAgICAgICAgdG9UaW1lOiB0byxcbiAgICAgICAgICAgICAgICB0b0RhdGU6IHRvXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgb25DaGFuZ2UgPSAoX3ZhbHVlOiBLYnFUaW1lUmFuZ2VSYW5nZSkgPT4ge307XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBvblRvdWNoID0gKCkgPT4ge307XG4gICAgLyoqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IgKi9cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IEticVRpbWVSYW5nZVJhbmdlKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG4gICAgLyoqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IgKi9cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hcFRpbWVSYW5nZSh7IHR5cGUgfTogUGFydGlhbDxLYnFUaW1lUmFuZ2VUeXBlQ29udGV4dD4gJiBLYnFSYW5nZVZhbHVlPFQ+KTogS2JxVGltZVJhbmdlUmFuZ2UgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIXR5cGUpIHJldHVybjtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIC4uLnRoaXMudGltZVJhbmdlU2VydmljZS5jYWxjdWxhdGVUaW1lUmFuZ2UodHlwZSwge1xuICAgICAgICAgICAgICAgIC8vIHVzZSBjb250cm9sLnZhbHVlLCBzaW5jZSB2aWEgZm9ybS52YWx1ZSBjb250cm9sIHZhbHVlcyBjYW4gYmUgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgZnJvbVRpbWU6IHRoaXMuZm9ybS5jb250cm9scy5mcm9tVGltZS52YWx1ZSxcbiAgICAgICAgICAgICAgICBmcm9tRGF0ZTogdGhpcy5mb3JtLmNvbnRyb2xzLmZyb21EYXRlLnZhbHVlLFxuICAgICAgICAgICAgICAgIHRvRGF0ZTogdGhpcy5mb3JtLmNvbnRyb2xzLnRvVGltZS52YWx1ZSxcbiAgICAgICAgICAgICAgICB0b1RpbWU6IHRoaXMuZm9ybS5jb250cm9scy50b1RpbWUudmFsdWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGb3JtYXR0ZWRPcHRpb24odHlwZTogS2JxVGltZVJhbmdlVHlwZSwgbG9jYWxlQ29uZmlnOiBLYnFUaW1lUmFuZ2VMb2NhbGVDb25maWcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB0cmFuc2xhdGlvblR5cGUgPSB0aGlzLnRpbWVSYW5nZVNlcnZpY2UuZ2V0VGltZVJhbmdlVW5pdEJ5VHlwZSh0eXBlKTtcblxuICAgICAgICBpZiAodHJhbnNsYXRpb25UeXBlID09PSAnb3RoZXInKSByZXR1cm4gJyc7XG5cbiAgICAgICAgY29uc3QgcmFuZ2UgPSB0aGlzLnRpbWVSYW5nZVNlcnZpY2UuY2FsY3VsYXRlVGltZVJhbmdlKHR5cGUpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnRpbWVSYW5nZVNlcnZpY2UuZGF0ZUZvcm1hdHRlci5kdXJhdGlvbihcbiAgICAgICAgICAgIHRoaXMudGltZVJhbmdlU2VydmljZS5kYXRlQWRhcHRlci5kZXNlcmlhbGl6ZShyYW5nZS5zdGFydERhdGVUaW1lISksXG4gICAgICAgICAgICB0aGlzLnRpbWVSYW5nZVNlcnZpY2UuZGF0ZUFkYXB0ZXIudG9kYXkoKSxcbiAgICAgICAgICAgIFt0cmFuc2xhdGlvblR5cGVdLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICBsb2NhbGVDb25maWcuZHVyYXRpb25UZW1wbGF0ZS5vcHRpb25cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbmNhdENvbnRyb2xWYWxpZGF0aW9uRXJyb3JzKCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgbGV0IHJlc3VsdDogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSB0aGlzLmZvcm0uZXJyb3JzO1xuXG4gICAgICAgIE9iamVjdC52YWx1ZXModGhpcy5mb3JtLmNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgICAgICAgIGlmIChjb250cm9sLmVycm9ycykge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAuLi5jb250cm9sLmVycm9yc1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgPGticS1yYWRpby1ncm91cCBjbGFzcz1cImticS10aW1lLXJhbmdlLWVkaXRvcl9fY29udGFpbmVyXCIgW2Zvcm1Db250cm9sXT1cImZvcm0uY29udHJvbHMudHlwZVwiPlxuICAgICAgICBAbGV0IHR5cGVzID0gdGltZVJhbmdlVHlwZXNXaXRob3V0UmFuZ2UoKTtcblxuICAgICAgICBAaWYgKHR5cGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS10aW1lLXJhbmdlLWVkaXRvcl9fcHJlZGVmaW5lZFwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKHR5cGUgb2YgdHlwZXM7IHRyYWNrIHR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGticS1yYWRpby1idXR0b24gY2xhc3M9XCJrYnEtdGltZS1yYW5nZS1lZGl0b3JfX3ByZWRlZmluZWQtb3B0aW9uXCIgW3ZhbHVlXT1cInR5cGUudHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwib3B0aW9uVGVtcGxhdGUoKSB8fCBkZWZhdWx0T3B0aW9uVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiB0eXBlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9rYnEtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChpc1JhbmdlVmlzaWJsZSgpKSB7XG4gICAgICAgICAgICBAbGV0IGxvY2FsZUNvbmZpZyA9IGxvY2FsZUNvbmZpZ3VyYXRpb24oKTtcblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS10aW1lLXJhbmdlLWVkaXRvcl9fcmFuZ2VcIiByb2xlPVwiZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHR5cGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICA8a2JxLXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwiJ3JhbmdlJ1wiPnt7IGxvY2FsZUNvbmZpZy5lZGl0b3IucmFuZ2VMYWJlbCB9fTwva2JxLXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLXRpbWUtcmFuZ2UtZWRpdG9yX19kYXRlLXRpbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJrYnEtdGltZS1yYW5nZS1lZGl0b3JfX2RhdGUtdGltZS1wcmVmaXhcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImxvY2FsZUNvbmZpZy5lZGl0b3IuZnJvbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbG9jYWxlQ29uZmlnLmVkaXRvci5mcm9tIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGticS1maWVsZHNldD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxrYnEtZm9ybS1maWVsZCBrYnFGaWVsZHNldEl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEtY2xvY2tfMTZcIiBrYnFQcmVmaXggW2F1dG9Db2xvcl09XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBrYnFUaW1lcGlja2VyIFtmb3JtYXRdPVwidGltZXBpY2tlckZvcm1hdFwiIFtmb3JtQ29udHJvbF09XCJmb3JtLmNvbnRyb2xzLmZyb21UaW1lXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwva2JxLWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxrYnEtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCJtaW5EYXRlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIm1heERhdGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrYnFEYXRlcGlja2VyXT1cImRhdGVwaWNrZXJGcm9tXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm0uY29udHJvbHMuZnJvbURhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwicmFuZ2VTdGF0ZU1hdGNoZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGticS1kYXRlcGlja2VyLXRvZ2dsZS1pY29uIGticVN1ZmZpeCBbZm9yXT1cImRhdGVwaWNrZXJGcm9tXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8a2JxLWRhdGVwaWNrZXIgI2RhdGVwaWNrZXJGcm9tIFttaW5EYXRlXT1cIm1pbkRhdGUoKVwiIFttYXhEYXRlXT1cIm1heERhdGUoKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ticS1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8L2ticS1maWVsZHNldD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtdGltZS1yYW5nZS1lZGl0b3JfX2RhdGUtdGltZVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImticS10aW1lLXJhbmdlLWVkaXRvcl9fZGF0ZS10aW1lLXByZWZpeFwiIFthdHRyLmFyaWEtbGFiZWxdPVwibG9jYWxlQ29uZmlnLmVkaXRvci50b1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbG9jYWxlQ29uZmlnLmVkaXRvci50byB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxrYnEtZmllbGRzZXQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8a2JxLWZvcm0tZmllbGQga2JxRmllbGRzZXRJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLWNsb2NrXzE2XCIga2JxUHJlZml4IFthdXRvQ29sb3JdPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQga2JxVGltZXBpY2tlciBbZm9ybWF0XT1cInRpbWVwaWNrZXJGb3JtYXRcIiBbZm9ybUNvbnRyb2xdPVwiZm9ybS5jb250cm9scy50b1RpbWVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9rYnEtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGticS1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cIm1pbkRhdGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwibWF4RGF0ZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ticURhdGVwaWNrZXJdPVwiZGF0ZXBpY2tlclRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm0uY29udHJvbHMudG9EYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cInJhbmdlU3RhdGVNYXRjaGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxrYnEtZGF0ZXBpY2tlci10b2dnbGUtaWNvbiBrYnFTdWZmaXggW2Zvcl09XCJkYXRlcGlja2VyVG9cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxrYnEtZGF0ZXBpY2tlciAjZGF0ZXBpY2tlclRvIFttaW5EYXRlXT1cIm1pbkRhdGUoKVwiIFttYXhEYXRlXT1cIm1heERhdGUoKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ticS1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8L2ticS1maWVsZHNldD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9rYnEtcmFkaW8tZ3JvdXA+XG48L2Zvcm0+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdE9wdGlvblRlbXBsYXRlIGxldC1jb250ZXh0PlxuICAgIEBsZXQgbG9jYWxlQ29uZmlnID0gbG9jYWxlQ29uZmlndXJhdGlvbigpO1xuICAgIEBzd2l0Y2ggKGNvbnRleHQudHJhbnNsYXRpb25UeXBlKSB7XG4gICAgICAgIEBjYXNlICgnb3RoZXInKSB7XG4gICAgICAgICAgICBAc3dpdGNoIChjb250ZXh0LnR5cGUpIHtcbiAgICAgICAgICAgICAgICBAY2FzZSAoJ2FsbFRpbWUnKSB7XG4gICAgICAgICAgICAgICAgICAgIHt7IGxvY2FsZUNvbmZpZy5lZGl0b3IuYWxsVGltZSB9fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAY2FzZSAoJ2N1cnJlbnRRdWFydGVyJykge1xuICAgICAgICAgICAgICAgICAgICB7eyBsb2NhbGVDb25maWcuZWRpdG9yLmN1cnJlbnRRdWFydGVyIH19XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBjYXNlICgnY3VycmVudFllYXInKSB7XG4gICAgICAgICAgICAgICAgICAgIHt7IGxvY2FsZUNvbmZpZy5lZGl0b3IuY3VycmVudFllYXIgfX1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAge3sgY29udGV4dC5mb3JtYXR0ZWRWYWx1ZSB9fVxuICAgICAgICB9XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -22,6 +22,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
22
22
  export class KbqTimeRangeTitleAsControl {
23
23
  constructor() {
24
24
  this.timeRange = inject(KbqTimeRange);
25
+ /** @docs-private */
25
26
  this.controlType = 'select';
26
27
  /** @docs-private */
27
28
  this.stateChanges = new Subject();
@@ -56,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
56
57
  class: 'kbq-time-range-title-as-form-field'
57
58
  }, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:flex;align-items:center}:host:focus-visible{outline:none}\n"] }]
58
59
  }] });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1yYW5nZS10aXRsZS1hcy1mb3JtLWZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90aW1lLXJhbmdlL3RpbWUtcmFuZ2UtdGl0bGUtYXMtZm9ybS1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUU1QywwRUFBMEU7QUFRMUUsTUFBTSxPQUFPLDRCQUE0QjtrSUFBNUIsNEJBQTRCO3NIQUE1Qiw0QkFBNEI7OzRGQUE1Qiw0QkFBNEI7a0JBUHhDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxnQ0FBZ0M7b0JBQzFDLElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsbUNBQW1DO3FCQUM3QztpQkFDSjs7QUFHRCx5R0FBeUc7QUE0QnpHLE1BQU0sT0FBTywwQkFBMEI7SUEzQnZDO1FBNEJZLGNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFekMsZ0JBQVcsR0FBRyxRQUFRLENBQUM7UUFDdkIsb0JBQW9CO1FBQ3BCLGlCQUFZLEdBQXFCLElBQUksT0FBTyxFQUFRLENBQUM7UUFDckQsb0JBQW9CO1FBQ3BCLGNBQVMsR0FBcUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7S0FxQjFEO0lBSkcsb0JBQW9CO0lBQ3BCLGdCQUFnQixDQUFDLE1BQWtCLElBQVMsQ0FBQztJQUM3QyxvQkFBb0I7SUFDcEIsS0FBSyxDQUFDLFFBQXVCLElBQVMsQ0FBQztrSUEzQjlCLDBCQUEwQjtzSEFBMUIsMEJBQTBCLG9MQXJCeEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixXQUFXLEVBQUUsMEJBQTBCO2FBQzFDO1NBQ0osMEJBUlM7O0tBRVQ7OzRGQXNCUSwwQkFBMEI7a0JBM0J0QyxTQUFTO2lDQUNNLElBQUksWUFDTixpQ0FBaUMsWUFDakM7O0tBRVQsYUFDVTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLDRCQUE0Qjt5QkFDMUM7cUJBQ0osUUFDSzt3QkFDRixpQkFBaUIsRUFBRSxHQUFHO3dCQUN0QixLQUFLLEVBQUUsb0NBQW9DO3FCQUM5QyxtQkFVZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERpcmVjdGl2ZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBLYnFGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgS2JxVGltZVJhbmdlIH0gZnJvbSAnLi90aW1lLXJhbmdlJztcblxuLyoqIERpcmVjdGl2ZSBmb3IgZWFzeSB1c2luZyBzdHlsZXMgb2YgdGltZS1yYW5nZSBwbGFjZWhvbGRlciBwdWJsaWNseS4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdba2JxVGltZVJhbmdlVGl0bGVQbGFjZWhvbGRlcl0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtdGltZS1yYW5nZS10aXRsZV9fcGxhY2Vob2xkZXInXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFUaW1lUmFuZ2VUaXRsZVBsYWNlaG9sZGVyIHt9XG5cbi8qKiBDb21wb25lbnQgc2ltdWxhdGVzIGBLYnFGb3JtRmllbGRDb250cm9sYCBhbGxvd2luZyB0byBwcm92aWRlIGN1c3RvbSBjb250ZW50IGluc2lkZSBgS2JxRm9ybUZpZWxkYCAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2ticS10aW1lLXJhbmdlLXRpdGxlLWFzLWNvbnRyb2wnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgYCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogS2JxRm9ybUZpZWxkQ29udHJvbCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBLYnFUaW1lUmFuZ2VUaXRsZUFzQ29udHJvbFxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAnMCcsXG4gICAgICAgIGNsYXNzOiAna2JxLXRpbWUtcmFuZ2UtdGl0bGUtYXMtZm9ybS1maWVsZCdcbiAgICB9LFxuICAgIHN0eWxlczogYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgS2JxVGltZVJhbmdlVGl0bGVBc0NvbnRyb2wgaW1wbGVtZW50cyBLYnFGb3JtRmllbGRDb250cm9sPGFueT4ge1xuICAgIHByaXZhdGUgdGltZVJhbmdlID0gaW5qZWN0KEticVRpbWVSYW5nZSk7XG5cbiAgICBjb250cm9sVHlwZSA9ICdzZWxlY3QnO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgc3RhdGVDaGFuZ2VzOiBPYnNlcnZhYmxlPHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIG5nQ29udHJvbDogTmdDb250cm9sIHwgbnVsbCA9IHRoaXMudGltZVJhbmdlLm5nQ29udHJvbDtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHZhbHVlOiBhbnk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIGZvY3VzZWQ6IGJvb2xlYW47XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBlbXB0eTogYm9vbGVhbjtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHJlcXVpcmVkOiBib29sZWFuO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBlcnJvclN0YXRlOiBib29sZWFuO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgb25Db250YWluZXJDbGljayhfZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHt9XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBmb2N1cyhfb3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge31cbn1cbiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1yYW5nZS10aXRsZS1hcy1mb3JtLWZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90aW1lLXJhbmdlL3RpbWUtcmFuZ2UtdGl0bGUtYXMtZm9ybS1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUU1QywwRUFBMEU7QUFRMUUsTUFBTSxPQUFPLDRCQUE0QjtrSUFBNUIsNEJBQTRCO3NIQUE1Qiw0QkFBNEI7OzRGQUE1Qiw0QkFBNEI7a0JBUHhDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxnQ0FBZ0M7b0JBQzFDLElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsbUNBQW1DO3FCQUM3QztpQkFDSjs7QUFHRCx5R0FBeUc7QUE0QnpHLE1BQU0sT0FBTywwQkFBMEI7SUEzQnZDO1FBNEJZLGNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFekMsb0JBQW9CO1FBQ3BCLGdCQUFXLEdBQUcsUUFBUSxDQUFDO1FBQ3ZCLG9CQUFvQjtRQUNwQixpQkFBWSxHQUFxQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3JELG9CQUFvQjtRQUNwQixjQUFTLEdBQXFCLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO0tBcUIxRDtJQUpHLG9CQUFvQjtJQUNwQixnQkFBZ0IsQ0FBQyxNQUFrQixJQUFTLENBQUM7SUFDN0Msb0JBQW9CO0lBQ3BCLEtBQUssQ0FBQyxRQUF1QixJQUFTLENBQUM7a0lBNUI5QiwwQkFBMEI7c0hBQTFCLDBCQUEwQixvTEFyQnhCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLG1CQUFtQjtnQkFDNUIsV0FBVyxFQUFFLDBCQUEwQjthQUMxQztTQUNKLDBCQVJTOztLQUVUOzs0RkFzQlEsMEJBQTBCO2tCQTNCdEMsU0FBUztpQ0FDTSxJQUFJLFlBQ04saUNBQWlDLFlBQ2pDOztLQUVULGFBQ1U7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyw0QkFBNEI7eUJBQzFDO3FCQUNKLFFBQ0s7d0JBQ0YsaUJBQWlCLEVBQUUsR0FBRzt3QkFDdEIsS0FBSyxFQUFFLG9DQUFvQztxQkFDOUMsbUJBVWdCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgS2JxRm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEticVRpbWVSYW5nZSB9IGZyb20gJy4vdGltZS1yYW5nZSc7XG5cbi8qKiBEaXJlY3RpdmUgZm9yIGVhc3kgdXNpbmcgc3R5bGVzIG9mIHRpbWUtcmFuZ2UgcGxhY2Vob2xkZXIgcHVibGljbHkuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW2ticVRpbWVSYW5nZVRpdGxlUGxhY2Vob2xkZXJdJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLXRpbWUtcmFuZ2UtdGl0bGVfX3BsYWNlaG9sZGVyJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxVGltZVJhbmdlVGl0bGVQbGFjZWhvbGRlciB7fVxuXG4vKiogQ29tcG9uZW50IHNpbXVsYXRlcyBgS2JxRm9ybUZpZWxkQ29udHJvbGAgYWxsb3dpbmcgdG8gcHJvdmlkZSBjdXN0b20gY29udGVudCBpbnNpZGUgYEticUZvcm1GaWVsZGAgKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdrYnEtdGltZS1yYW5nZS10aXRsZS1hcy1jb250cm9sJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgIGAsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEticUZvcm1GaWVsZENvbnRyb2wsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogS2JxVGltZVJhbmdlVGl0bGVBc0NvbnRyb2xcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogJzAnLFxuICAgICAgICBjbGFzczogJ2ticS10aW1lLXJhbmdlLXRpdGxlLWFzLWZvcm0tZmllbGQnXG4gICAgfSxcbiAgICBzdHlsZXM6IGBcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEticVRpbWVSYW5nZVRpdGxlQXNDb250cm9sIGltcGxlbWVudHMgS2JxRm9ybUZpZWxkQ29udHJvbDxhbnk+IHtcbiAgICBwcml2YXRlIHRpbWVSYW5nZSA9IGluamVjdChLYnFUaW1lUmFuZ2UpO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBjb250cm9sVHlwZSA9ICdzZWxlY3QnO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgc3RhdGVDaGFuZ2VzOiBPYnNlcnZhYmxlPHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIG5nQ29udHJvbDogTmdDb250cm9sIHwgbnVsbCA9IHRoaXMudGltZVJhbmdlLm5nQ29udHJvbDtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHZhbHVlOiBhbnk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIGZvY3VzZWQ6IGJvb2xlYW47XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBlbXB0eTogYm9vbGVhbjtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHJlcXVpcmVkOiBib29sZWFuO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBlcnJvclN0YXRlOiBib29sZWFuO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgb25Db250YWluZXJDbGljayhfZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHt9XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBmb2N1cyhfb3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge31cbn1cbiJdfQ==
@@ -22,6 +22,7 @@ export class KbqTimeRange {
22
22
  constructor() {
23
23
  this.timeRangeService = inject(KbqTimeRangeService);
24
24
  this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
25
+ /** @docs-private */
25
26
  this.ngControl = inject(NgControl, { optional: true, self: true });
26
27
  /** The minimum selectable date. */
27
28
  this.minDate = input();
@@ -33,6 +34,8 @@ export class KbqTimeRange {
33
34
  this.availableTimeRangeTypes = input(this.timeRangeService.providedDefaultTimeRangeTypes);
34
35
  /** Customizable trigger output */
35
36
  this.titleTemplate = input();
37
+ /** Customizable option output */
38
+ this.optionTemplate = input();
36
39
  /** Whether to show popover with arrow */
37
40
  this.arrow = input(true, { transform: booleanAttribute });
38
41
  /**
@@ -124,7 +127,7 @@ export class KbqTimeRange {
124
127
  this.onTouch = fn;
125
128
  }
126
129
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqTimeRange, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
127
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: KbqTimeRange, isStandalone: true, selector: "kbq-time-range", inputs: { minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, defaultRangeValue: { classPropertyName: "defaultRangeValue", publicName: "defaultRangeValue", isSignal: true, isRequired: false, transformFunction: null }, availableTimeRangeTypes: { classPropertyName: "availableTimeRangeTypes", publicName: "availableTimeRangeTypes", isSignal: true, isRequired: false, transformFunction: null }, titleTemplate: { classPropertyName: "titleTemplate", publicName: "titleTemplate", isSignal: true, isRequired: false, transformFunction: null }, arrow: { classPropertyName: "arrow", publicName: "arrow", isSignal: true, isRequired: false, transformFunction: null }, showRangeAsDefault: { classPropertyName: "showRangeAsDefault", publicName: "showRangeAsDefault", isSignal: true, isRequired: false, transformFunction: null }, nonNullable: { classPropertyName: "nonNullable", publicName: "nonNullable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueCorrected: "valueCorrected" }, host: { classAttribute: "kbq-time-range" }, providers: [KbqTimeRangeService], ngImport: i0, template: `
130
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: KbqTimeRange, isStandalone: true, selector: "kbq-time-range", inputs: { minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, defaultRangeValue: { classPropertyName: "defaultRangeValue", publicName: "defaultRangeValue", isSignal: true, isRequired: false, transformFunction: null }, availableTimeRangeTypes: { classPropertyName: "availableTimeRangeTypes", publicName: "availableTimeRangeTypes", isSignal: true, isRequired: false, transformFunction: null }, titleTemplate: { classPropertyName: "titleTemplate", publicName: "titleTemplate", isSignal: true, isRequired: false, transformFunction: null }, optionTemplate: { classPropertyName: "optionTemplate", publicName: "optionTemplate", isSignal: true, isRequired: false, transformFunction: null }, arrow: { classPropertyName: "arrow", publicName: "arrow", isSignal: true, isRequired: false, transformFunction: null }, showRangeAsDefault: { classPropertyName: "showRangeAsDefault", publicName: "showRangeAsDefault", isSignal: true, isRequired: false, transformFunction: null }, nonNullable: { classPropertyName: "nonNullable", publicName: "nonNullable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueCorrected: "valueCorrected" }, host: { classAttribute: "kbq-time-range" }, providers: [KbqTimeRangeService], ngImport: i0, template: `
128
131
  @let localeConfig = localeConfiguration();
129
132
  <kbq-time-range-title
130
133
  #popover="kbqPopover"
@@ -151,6 +154,7 @@ export class KbqTimeRange {
151
154
  [showRangeAsDefault]="showRangeAsDefault()"
152
155
  [rangeValue]="normalizedDefaultRangeValue()"
153
156
  [availableTimeRangeTypes]="availableTimeRangeTypes()"
157
+ [optionTemplate]="optionTemplate()"
154
158
  />
155
159
  </ng-template>
156
160
 
@@ -168,7 +172,7 @@ export class KbqTimeRange {
168
172
  <button kbq-button (click)="onCancel(popover)">{{ localeConfig.editor.cancel }}</button>
169
173
  </div>
170
174
  </ng-template>
171
- `, isInline: true, styles: [".kbq-time-range .kbq-time-range__trigger{display:block}.kbq-time-range__popover .kbq-time-range__buttons{display:flex;flex-direction:row;gap:var(--kbq-size-l)}.kbq-time-range__editor{display:block}.kbq-time-range__editor .kbq-time-range-editor__container{width:100%}.kbq-time-range__editor .kbq-time-range-editor__predefined{column-count:2}.kbq-time-range__editor .kbq-time-range-editor__predefined .kbq-time-range-editor__predefined-option{display:block;margin-bottom:var(--kbq-size-s)}.kbq-time-range__editor .kbq-time-range-editor__range{display:flex;flex-direction:column;gap:var(--kbq-size-s)}.kbq-time-range__editor .kbq-time-range-editor__range .kbq-time-range-editor__predefined{column-count:2}.kbq-time-range__editor .kbq-time-range-editor__range .kbq-time-range-editor__predefined .kbq-time-range-editor__predefined-option{display:block}.kbq-time-range__editor .kbq-time-range-editor__range .kbq-time-range-editor__date-time{display:flex;flex-direction:row;justify-content:space-between;gap:var(--kbq-size-s)}.kbq-time-range__editor .kbq-time-range-editor__range .kbq-time-range-editor__date-time .kbq-time-range-editor__date-time-prefix{align-self:center;width:57px}.kbq-time-range-title-as-form-field{white-space:nowrap;text-overflow:ellipsis;min-height:calc(var(--kbq-form-field-size-height) - 2 * var(--kbq-size-border-width))}.kbq-time-range-title-as-form-field .kbq-time-range-title__placeholder{color:var(--kbq-foreground-contrast-tertiary)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: KbqPopoverModule }, { kind: "directive", type: i2.KbqPopoverTrigger, selector: "[kbqPopover]", inputs: ["kbqPopoverPreventClose", "defaultPaddings", "kbqPopoverVisible", "kbqPopoverPlacement", "kbqPopoverPlacementPriority", "hasBackdrop", "kbqPopoverHeader", "kbqPopoverContent", "kbqPopoverFooter", "kbqPopoverDisabled", "kbqTrigger", "kbqPopoverSize", "kbqPopoverClass", "hasCloseButton", "closeOnScroll", "backdropClass", "kbqPopoverArrow", "kbqPopoverOffset", "kbqLeaveDelay"], outputs: ["kbqPopoverPlacementChange", "kbqPopoverVisibleChange"], exportAs: ["kbqPopover"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i3.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i3.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: KbqTimeRangeEditor, selector: "kbq-time-range-editor", inputs: ["maxDate", "minDate", "availableTimeRangeTypes", "rangeValue", "showRangeAsDefault", "localeConfiguration"] }, { kind: "component", type: KbqTimeRangeTitle, selector: "kbq-time-range-title", inputs: ["timeRange", "localeConfiguration", "titleTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
175
+ `, isInline: true, styles: [".kbq-time-range .kbq-time-range__trigger{display:block}.kbq-time-range__popover .kbq-time-range__buttons{display:flex;flex-direction:row;gap:var(--kbq-size-l)}.kbq-time-range__editor{display:block}.kbq-time-range__editor .kbq-time-range-editor__container{width:100%}.kbq-time-range__editor .kbq-time-range-editor__predefined{column-count:2}.kbq-time-range__editor .kbq-time-range-editor__predefined .kbq-time-range-editor__predefined-option{display:block;margin-bottom:var(--kbq-size-s)}.kbq-time-range__editor .kbq-time-range-editor__range{display:flex;flex-direction:column;gap:var(--kbq-size-s)}.kbq-time-range__editor .kbq-time-range-editor__range .kbq-time-range-editor__predefined{column-count:2}.kbq-time-range__editor .kbq-time-range-editor__range .kbq-time-range-editor__predefined .kbq-time-range-editor__predefined-option{display:block}.kbq-time-range__editor .kbq-time-range-editor__range .kbq-time-range-editor__date-time{display:flex;flex-direction:row;justify-content:space-between;gap:var(--kbq-size-s)}.kbq-time-range__editor .kbq-time-range-editor__range .kbq-time-range-editor__date-time .kbq-time-range-editor__date-time-prefix{align-self:center;width:57px}.kbq-time-range-title-as-form-field{white-space:nowrap;text-overflow:ellipsis;min-height:calc(var(--kbq-form-field-size-height) - 2 * var(--kbq-size-border-width))}.kbq-time-range-title-as-form-field .kbq-time-range-title__placeholder{color:var(--kbq-foreground-contrast-tertiary)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: KbqPopoverModule }, { kind: "directive", type: i2.KbqPopoverTrigger, selector: "[kbqPopover]", inputs: ["kbqPopoverPreventClose", "defaultPaddings", "kbqPopoverVisible", "kbqPopoverPlacement", "kbqPopoverPlacementPriority", "kbqPopoverStickToWindow", "container", "hasBackdrop", "kbqPopoverHeader", "kbqPopoverContent", "kbqPopoverFooter", "kbqPopoverDisabled", "kbqTrigger", "kbqPopoverSize", "kbqPopoverClass", "kbqPopoverContext", "hasCloseButton", "closeOnScroll", "backdropClass", "kbqPopoverArrow", "kbqPopoverOffset", "kbqLeaveDelay"], outputs: ["kbqPopoverPlacementChange", "kbqPopoverVisibleChange"], exportAs: ["kbqPopover"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i3.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i3.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: KbqTimeRangeEditor, selector: "kbq-time-range-editor", inputs: ["maxDate", "minDate", "availableTimeRangeTypes", "rangeValue", "showRangeAsDefault", "localeConfiguration", "optionTemplate"] }, { kind: "component", type: KbqTimeRangeTitle, selector: "kbq-time-range-title", inputs: ["timeRange", "localeConfiguration", "titleTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
172
176
  }
173
177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqTimeRange, decorators: [{
174
178
  type: Component,
@@ -199,6 +203,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
199
203
  [showRangeAsDefault]="showRangeAsDefault()"
200
204
  [rangeValue]="normalizedDefaultRangeValue()"
201
205
  [availableTimeRangeTypes]="availableTimeRangeTypes()"
206
+ [optionTemplate]="optionTemplate()"
202
207
  />
203
208
  </ng-template>
204
209
 
@@ -226,4 +231,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
226
231
  class: 'kbq-time-range'
227
232
  }, providers: [KbqTimeRangeService], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".kbq-time-range .kbq-time-range__trigger{display:block}.kbq-time-range__popover .kbq-time-range__buttons{display:flex;flex-direction:row;gap:var(--kbq-size-l)}.kbq-time-range__editor{display:block}.kbq-time-range__editor .kbq-time-range-editor__container{width:100%}.kbq-time-range__editor .kbq-time-range-editor__predefined{column-count:2}.kbq-time-range__editor .kbq-time-range-editor__predefined .kbq-time-range-editor__predefined-option{display:block;margin-bottom:var(--kbq-size-s)}.kbq-time-range__editor .kbq-time-range-editor__range{display:flex;flex-direction:column;gap:var(--kbq-size-s)}.kbq-time-range__editor .kbq-time-range-editor__range .kbq-time-range-editor__predefined{column-count:2}.kbq-time-range__editor .kbq-time-range-editor__range .kbq-time-range-editor__predefined .kbq-time-range-editor__predefined-option{display:block}.kbq-time-range__editor .kbq-time-range-editor__range .kbq-time-range-editor__date-time{display:flex;flex-direction:row;justify-content:space-between;gap:var(--kbq-size-s)}.kbq-time-range__editor .kbq-time-range-editor__range .kbq-time-range-editor__date-time .kbq-time-range-editor__date-time-prefix{align-self:center;width:57px}.kbq-time-range-title-as-form-field{white-space:nowrap;text-overflow:ellipsis;min-height:calc(var(--kbq-form-field-size-height) - 2 * var(--kbq-size-border-width))}.kbq-time-range-title-as-form-field .kbq-time-range-title__placeholder{color:var(--kbq-foreground-contrast-tertiary)}\n"] }]
228
233
  }], ctorParameters: () => [] });
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1yYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvdGltZS1yYW5nZS90aW1lLXJhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBRUwsTUFBTSxFQUVOLE1BQU0sRUFFTixpQkFBaUIsRUFFcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBd0IsV0FBVyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQ0gsa0JBQWtCLEVBRWxCLGVBQWUsRUFDZixVQUFVLEVBQ1YsY0FBYyxFQUNqQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBcUIsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFHM0QsMkNBQTJDO0FBQzNDLE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFHLElBQUksY0FBYyxDQUNqRSxxQ0FBcUMsRUFDckMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUM5QyxDQUFDO0FBRUYsa0VBQWtFO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLHVDQUF1QyxHQUFHLENBQUMsYUFB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LEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQWtCO1FBQzlCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVyQyxJQUFJLENBQUMsU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNMLENBQUM7SUFNRCxrREFBa0Q7SUFDbEQsZ0JBQWdCLENBQUMsRUFBdUM7UUFDcEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUNELGtEQUFrRDtJQUNsRCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7a0lBbElRLFlBQVk7c0hBQVosWUFBWSwyeENBSlYsQ0FBQyxtQkFBbUIsQ0FBQywwQkF4RHRCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQTRDVCw2L0NBR0csbUJBQW1CLHlUQUNuQixnQkFBZ0IsMmtCQUNoQixlQUFlLGdPQUNmLGtCQUFrQix3TEFDbEIsaUJBQWlCOzs0RkFTWixZQUFZO2tCQS9EeEIsU0FBUztpQ0FDTSxJQUFJLFlBQ04sZ0JBQWdCLFlBQ2hCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQTRDVCxXQUVRO3dCQUNMLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3FCQUNwQixRQUNLO3dCQUNGLEtBQUssRUFBRSxnQkFBZ0I7cUJBQzFCLGFBQ1UsQ0FBQyxtQkFBbUIsQ0FBQyxtQkFDZix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgaW5wdXQsXG4gICAgT25Jbml0LFxuICAgIG91dHB1dCxcbiAgICBQcm92aWRlcixcbiAgICBzaWduYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgV3JpdGFibGVTaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTmdDb250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgS2JxQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQge1xuICAgIEtCUV9MT0NBTEVfU0VSVklDRSxcbiAgICBLYnFUaW1lUmFuZ2VMb2NhbGVDb25maWcsXG4gICAgUG9wVXBQbGFjZW1lbnRzLFxuICAgIFBvcFVwU2l6ZXMsXG4gICAgcnVSVUxvY2FsZURhdGFcbn0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgS2JxUG9wb3Zlck1vZHVsZSwgS2JxUG9wb3ZlclRyaWdnZXIgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBLYnFUaW1lUmFuZ2VFZGl0b3IgfSBmcm9tICcuL3RpbWUtcmFuZ2UtZWRpdG9yJztcbmltcG9ydCB7IEticVRpbWVSYW5nZVRpdGxlIH0gZnJvbSAnLi90aW1lLXJhbmdlLXRpdGxlJztcbmltcG9ydCB7IEticVRpbWVSYW5nZVNlcnZpY2UgfSBmcm9tICcuL3RpbWUtcmFuZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBLYnFSYW5nZVZhbHVlLCBLYnFUaW1lUmFuZ2VDdXN0b21pemFibGVUaXRsZUNvbnRleHQsIEticVRpbWVSYW5nZVJhbmdlLCBLYnFUaW1lUmFuZ2VUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKiBMb2NhbGl6YXRpb24gY29uZmlndXJhdGlvbiBwcm92aWRlci4gKi9cbmV4cG9ydCBjb25zdCBLQlFfVElNRV9SQU5HRV9MT0NBTEVfQ09ORklHVVJBVElPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxLYnFUaW1lUmFuZ2VMb2NhbGVDb25maWc+KFxuICAgICdLQlFfVElNRV9SQU5HRV9MT0NBTEVfQ09ORklHVVJBVElPTicsXG4gICAgeyBmYWN0b3J5OiAoKSA9PiBydVJVTG9jYWxlRGF0YS50aW1lUmFuZ2UgfVxuKTtcblxuLyoqIFV0aWxpdHkgcHJvdmlkZXIgZm9yIGBLQlFfVElNRV9SQU5HRV9MT0NBTEVfQ09ORklHVVJBVElPTmAuICovXG5leHBvcnQgY29uc3Qga2JxVGltZVJhbmdlTG9jYWxlQ29uZmlndXJhdGlvblByb3ZpZGVyID0gKGNvbmZpZ3VyYXRpb246IEticVRpbWVSYW5nZUxvY2FsZUNvbmZpZyk6IFByb3ZpZGVyID0+ICh7XG4gICAgcHJvdmlkZTogS0JRX1RJTUVfUkFOR0VfTE9DQUxFX0NPTkZJR1VSQVRJT04sXG4gICAgdXNlVmFsdWU6IGNvbmZpZ3VyYXRpb25cbn0pO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAna2JxLXRpbWUtcmFuZ2UnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBsZXQgbG9jYWxlQ29uZmlnID0gbG9jYWxlQ29uZmlndXJhdGlvbigpO1xuICAgICAgICA8a2JxLXRpbWUtcmFuZ2UtdGl0bGVcbiAgICAgICAgICAgICNwb3BvdmVyPVwia2JxUG9wb3ZlclwiXG4gICAgICAgICAgICBjbGFzcz1cImticS10aW1lLXJhbmdlX190cmlnZ2VyXCJcbiAgICAgICAgICAgIGticVBvcG92ZXJcbiAgICAgICAgICAgIGticVBvcG92ZXJDbGFzcz1cImticS10aW1lLXJhbmdlX19wb3BvdmVyXCJcbiAgICAgICAgICAgIFtrYnFQb3BvdmVyU2l6ZV09XCJwb3BvdmVyU2l6ZVwiXG4gICAgICAgICAgICBba2JxUG9wb3ZlckNvbnRlbnRdPVwidGltZVJhbmdlUG9wb3ZlckNvbnRlbnRcIlxuICAgICAgICAgICAgW2ticVBvcG92ZXJGb290ZXJdPVwidGltZVJhbmdlUG9wb3ZlckZvb3RlclwiXG4gICAgICAgICAgICBba2JxUG9wb3ZlclBsYWNlbWVudF09XCJwb3B1cFBsYWNlbWVudFwiXG4gICAgICAgICAgICBba2JxUG9wb3ZlckFycm93XT1cImFycm93KClcIlxuICAgICAgICAgICAgW3RpdGxlVGVtcGxhdGVdPVwidGl0bGVUZW1wbGF0ZSgpXCJcbiAgICAgICAgICAgIFt0aW1lUmFuZ2VdPVwidGl0bGVWYWx1ZSgpXCJcbiAgICAgICAgICAgIFtsb2NhbGVDb25maWd1cmF0aW9uXT1cImxvY2FsZUNvbmZpZ1wiXG4gICAgICAgICAgICAoa2JxUG9wb3ZlclZpc2libGVDaGFuZ2UpPVwib25WaXNpYmxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdGltZVJhbmdlUG9wb3ZlckNvbnRlbnQ+XG4gICAgICAgICAgICA8a2JxLXRpbWUtcmFuZ2UtZWRpdG9yXG4gICAgICAgICAgICAgICAgW21heERhdGVdPVwibWF4RGF0ZSgpXCJcbiAgICAgICAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlKClcIlxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJyYW5nZUVkaXRvckNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFtsb2NhbGVDb25maWd1cmF0aW9uXT1cImxvY2FsZUNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgW3Nob3dSYW5nZUFzRGVmYXVsdF09XCJzaG93UmFuZ2VBc0RlZmF1bHQoKVwiXG4gICAgICAgICAgICAgICAgW3JhbmdlVmFsdWVdPVwibm9ybWFsaXplZERlZmF1bHRSYW5nZVZhbHVlKClcIlxuICAgICAgICAgICAgICAgIFthdmFpbGFibGVUaW1lUmFuZ2VUeXBlc109XCJhdmFpbGFibGVUaW1lUmFuZ2VUeXBlcygpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0aW1lUmFuZ2VQb3BvdmVyRm9vdGVyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS10aW1lLXJhbmdlX19idXR0b25zXCIgcm9sZT1cImdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBrYnEtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCInY29udHJhc3QnXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJhbmdlRWRpdG9yQ29udHJvbC5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXBwbHkocG9wb3ZlcilcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgbG9jYWxlQ29uZmlnLmVkaXRvci5hcHBseSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBrYnEtYnV0dG9uIChjbGljayk9XCJvbkNhbmNlbChwb3BvdmVyKVwiPnt7IGxvY2FsZUNvbmZpZy5lZGl0b3IuY2FuY2VsIH19PC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICBgLFxuICAgIHN0eWxlVXJsczogWycuL3RpbWUtcmFuZ2Uuc2NzcyddLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgS2JxUG9wb3Zlck1vZHVsZSxcbiAgICAgICAgS2JxQnV0dG9uTW9kdWxlLFxuICAgICAgICBLYnFUaW1lUmFuZ2VFZGl0b3IsXG4gICAgICAgIEticVRpbWVSYW5nZVRpdGxlXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLXRpbWUtcmFuZ2UnXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtLYnFUaW1lUmFuZ2VTZXJ2aWNlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEticVRpbWVSYW5nZTxUPiBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGltZVJhbmdlU2VydmljZSA9IGluamVjdDxLYnFUaW1lUmFuZ2VTZXJ2aWNlPFQ+PihLYnFUaW1lUmFuZ2VTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2UgPSBpbmplY3QoS0JRX0xPQ0FMRV9TRVJWSUNFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgIHJlYWRvbmx5IG5nQ29udHJvbCA9IGluamVjdChOZ0NvbnRyb2wsIHsgb3B0aW9uYWw6IHRydWUsIHNlbGY6IHRydWUgfSk7XG5cbiAgICAvKiogVGhlIG1pbmltdW0gc2VsZWN0YWJsZSBkYXRlLiAqL1xuICAgIHJlYWRvbmx5IG1pbkRhdGUgPSBpbnB1dDxUPigpO1xuICAgIC8qKiBUaGUgbWF4aW11bSBzZWxlY3RhYmxlIGRhdGUuICovXG4gICAgcmVhZG9ubHkgbWF4RGF0ZSA9IGlucHV0PFQ+KCk7XG4gICAgLyoqIHByb3ZpZGVkIHZhbHVlIG9mIHNlbGVjdGVkIHJhbmdlICovXG4gICAgcmVhZG9ubHkgZGVmYXVsdFJhbmdlVmFsdWUgPSBpbnB1dDxLYnFSYW5nZVZhbHVlPFQ+PigpO1xuICAgIC8qKiBQcmVzZXQgb2Ygc2VsZWN0YWJsZSByYW5nZXMgKi9cbiAgICByZWFkb25seSBhdmFpbGFibGVUaW1lUmFuZ2VUeXBlcyA9IGlucHV0PEticVRpbWVSYW5nZVR5cGVbXT4odGhpcy50aW1lUmFuZ2VTZXJ2aWNlLnByb3ZpZGVkRGVmYXVsdFRpbWVSYW5nZVR5cGVzKTtcbiAgICAvKiogQ3VzdG9taXphYmxlIHRyaWdnZXIgb3V0cHV0ICovXG4gICAgcmVhZG9ubHkgdGl0bGVUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPEticVRpbWVSYW5nZUN1c3RvbWl6YWJsZVRpdGxlQ29udGV4dD4+KCk7XG4gICAgLyoqIFdoZXRoZXIgdG8gc2hvdyBwb3BvdmVyIHdpdGggYXJyb3cgKi9cbiAgICByZWFkb25seSBhcnJvdyA9IGlucHV0KHRydWUsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gc2hvdyByYW5nZSBpbiBwb3BvdmVyIGlmIG5vdCBwcm92aWRlZFxuICAgICAqIEBzZWUgYXZhaWxhYmxlVGltZVJhbmdlVHlwZXNcbiAgICAgKi9cbiAgICByZWFkb25seSBzaG93UmFuZ2VBc0RlZmF1bHQgPSBpbnB1dCh0cnVlKTtcbiAgICAvKiogV2hldGhlciBjb21wb25lbnQgc2hvdWxkIGZhbGxiYWNrIHRvIGRlZmF1bHQgdmFsdWUgaWYgbnVsbCBwcm92aWRlZCAqL1xuICAgIHJlYWRvbmx5IG5vbk51bGxhYmxlID0gaW5wdXQodHJ1ZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICAvKiogRW1pdCB2YWx1ZSB1cGRhdGUgaWYgcHJvdmlkZWQgdmFsdWUgdmlhIGZvcm1Db250cm9sIHdhc24ndCB2YWxpZCAqL1xuICAgIHJlYWRvbmx5IHZhbHVlQ29ycmVjdGVkID0gb3V0cHV0PEticVRpbWVSYW5nZVJhbmdlPigpO1xuXG4gICAgLyoqXG4gICAgICogVXNlZCB0byBjYWxjdWxhdGUgdGltZSByYW5nZS5cbiAgICAgKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5vcm1hbGl6ZWREZWZhdWx0UmFuZ2VWYWx1ZSA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgICAgIC4uLnRoaXMudGltZVJhbmdlU2VydmljZS5nZXREZWZhdWx0UmFuZ2VWYWx1ZSgpLFxuICAgICAgICAuLi50aGlzLmRlZmF1bHRSYW5nZVZhbHVlKClcbiAgICB9KSk7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSB0aXRsZVZhbHVlOiBXcml0YWJsZVNpZ25hbDxLYnFUaW1lUmFuZ2VSYW5nZSB8IG51bGw+O1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJhbmdlRWRpdG9yQ29udHJvbDogRm9ybUNvbnRyb2w8S2JxVGltZVJhbmdlUmFuZ2U+O1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcG9wb3ZlclNpemUgPSBQb3BVcFNpemVzLk1lZGl1bTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBwb3B1cFBsYWNlbWVudCA9IFBvcFVwUGxhY2VtZW50cy5Cb3R0b21MZWZ0O1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9jYWxlQ29uZmlndXJhdGlvbiA9IHNpZ25hbChpbmplY3QoS0JRX1RJTUVfUkFOR0VfTE9DQUxFX0NPTkZJR1VSQVRJT04pKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVmYXVsdFZhbHVlID0gdGhpcy50aW1lUmFuZ2VTZXJ2aWNlLmdldFRpbWVSYW5nZURlZmF1bHRWYWx1ZShcbiAgICAgICAgICAgIHRoaXMubm9ybWFsaXplZERlZmF1bHRSYW5nZVZhbHVlKCksXG4gICAgICAgICAgICB0aGlzLmF2YWlsYWJsZVRpbWVSYW5nZVR5cGVzKClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnRpdGxlVmFsdWUgPSBzaWduYWwodGhpcy5ub25OdWxsYWJsZSgpID8gZGVmYXVsdFZhbHVlIDogbnVsbCk7XG4gICAgICAgIHRoaXMucmFuZ2VFZGl0b3JDb250cm9sID0gbmV3IEZvcm1Db250cm9sPEticVRpbWVSYW5nZVJhbmdlPihkZWZhdWx0VmFsdWUsIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG5cbiAgICAgICAgdGhpcy5sb2NhbGVTZXJ2aWNlPy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsZUNvbmZpZ3VyYXRpb24uc2V0KHRoaXMubG9jYWxlU2VydmljZT8uZ2V0UGFyYW1zKCd0aW1lUmFuZ2UnKSA/PyBydVJVTG9jYWxlRGF0YS50aW1lUmFuZ2UpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0b09ic2VydmFibGUodGhpcy5hdmFpbGFibGVUaW1lUmFuZ2VUeXBlcylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh0aGlzLmhhbmRsZUF2YWlsYWJsZVR5cGVzQ2hhbmdlKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gY2FsbCBhZ2FpbiBvbiBpbml0LCBzbyBpbnB1dCBzaWduYWxzIHZhbHVlcyB3aWxsIGJlIGNvcnJlY3RcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMubmdDb250cm9sPy52YWx1ZSA/PyBudWxsKTtcbiAgICB9XG5cbiAgICAvKiogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3NvciAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IEticVRpbWVSYW5nZVJhbmdlIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBjb25zdCBub25OdWxsYWJsZSA9IHRoaXMubm9uTnVsbGFibGUoKTtcblxuICAgICAgICBjb25zdCBhdmFpbGFibGVUaW1lUmFuZ2VUeXBlcyA9IHRoaXMuYXZhaWxhYmxlVGltZVJhbmdlVHlwZXMoKTtcblxuICAgICAgICBjb25zdCBjb3JyZWN0ZWQgPSB0aGlzLnRpbWVSYW5nZVNlcnZpY2UuY2hlY2tBbmRDb3JyZWN0VGltZVJhbmdlVmFsdWUoXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIGF2YWlsYWJsZVRpbWVSYW5nZVR5cGVzLFxuICAgICAgICAgICAgdGhpcy5ub3JtYWxpemVkRGVmYXVsdFJhbmdlVmFsdWUoKVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICh2YWx1ZSAmJiB2YWx1ZS50eXBlICYmICEoJ3N0YXJ0RGF0ZVRpbWUnIGluIHZhbHVlICYmIGF2YWlsYWJsZVRpbWVSYW5nZVR5cGVzLmluY2x1ZGVzKHZhbHVlLnR5cGUpKSkgfHxcbiAgICAgICAgICAgIChub25OdWxsYWJsZSAmJiB2YWx1ZSA9PT0gbnVsbClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ29ycmVjdGVkLmVtaXQoY29ycmVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGl0bGVWYWx1ZS5zZXQobm9uTnVsbGFibGUgfHwgdmFsdWUgIT09IG51bGwgPyBjb3JyZWN0ZWQgOiBudWxsKTtcbiAgICAgICAgdGhpcy5yYW5nZUVkaXRvckNvbnRyb2wuc2V0VmFsdWUoY29ycmVjdGVkKTtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIG9uQXBwbHkocG9wb3ZlcjogS2JxUG9wb3ZlclRyaWdnZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aXRsZVZhbHVlLnNldCh0aGlzLnJhbmdlRWRpdG9yQ29udHJvbC52YWx1ZSk7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5yYW5nZUVkaXRvckNvbnRyb2wudmFsdWUpO1xuICAgICAgICBwb3BvdmVyLmhpZGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIG9uQ2FuY2VsKHBvcG92ZXI6IEticVBvcG92ZXJUcmlnZ2VyKTogdm9pZCB7XG4gICAgICAgIHBvcG92ZXIuaGlkZSgpO1xuICAgIH1cblxuICAgIG9uVmlzaWJsZUNoYW5nZShpc1Zpc2libGU6IGJvb2xlYW4pIHtcbiAgICAgICAgY29uc3QgdGl0bGVWYWx1ZSA9IHRoaXMudGl0bGVWYWx1ZSgpO1xuXG4gICAgICAgIGlmICghaXNWaXNpYmxlICYmIHRpdGxlVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMucmFuZ2VFZGl0b3JDb250cm9sLnNldFZhbHVlKHRpdGxlVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBvbkNoYW5nZSA9IChfdmFsdWU6IEticVRpbWVSYW5nZVJhbmdlKSA9PiB7fTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIG9uVG91Y2ggPSAoKSA9PiB7fTtcbiAgICAvKiogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3NvciAqL1xuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfdmFsdWU6IEticVRpbWVSYW5nZVJhbmdlKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG4gICAgLyoqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IgKi9cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUF2YWlsYWJsZVR5cGVzQ2hhbmdlID0gKHR5cGVzOiBLYnFUaW1lUmFuZ2VUeXBlW10pOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKHR5cGVzLmluY2x1ZGVzKHRoaXMucmFuZ2VFZGl0b3JDb250cm9sLnZhbHVlLnR5cGUpIHx8IHRoaXMucmFuZ2VFZGl0b3JDb250cm9sLnZhbHVlLnR5cGUgPT09ICdyYW5nZScpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRpbWVSYW5nZURlZmF1bHRWYWx1ZSA9IHRoaXMudGltZVJhbmdlU2VydmljZS5nZXRUaW1lUmFuZ2VEZWZhdWx0VmFsdWUoXG4gICAgICAgICAgICB0aGlzLm5vcm1hbGl6ZWREZWZhdWx0UmFuZ2VWYWx1ZSgpLFxuICAgICAgICAgICAgdHlwZXMubGVuZ3RoID8gdHlwZXMgOiBbJ3JhbmdlJ11cbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnRpdGxlVmFsdWUuc2V0KHRpbWVSYW5nZURlZmF1bHRWYWx1ZSk7XG4gICAgICAgIHRoaXMucmFuZ2VFZGl0b3JDb250cm9sLnNldFZhbHVlKHRpbWVSYW5nZURlZmF1bHRWYWx1ZSk7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGltZVJhbmdlRGVmYXVsdFZhbHVlKTtcbiAgICB9O1xufVxuIl19
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1yYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvdGltZS1yYW5nZS90aW1lLXJhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBRUwsTUFBTSxFQUVOLE1BQU0sRUFFTixpQkFBaUIsRUFFcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBd0IsV0FBVyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQ0gsa0JBQWtCLEVBRWxCLGVBQWUsRUFDZixVQUFVLEVBQ1YsY0FBYyxFQUNqQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBcUIsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFTM0QsMkNBQTJDO0FBQzNDLE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFHLElBQUksY0FBYyxDQUNqRSxxQ0FBcUMsRUFDckMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUM5QyxDQUFDO0FBRUYsa0VBQWtFO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLHVDQUF1QyxHQUFHLENBQUMsYUFB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bnQiOlsiaW1wb3J0IHtcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgaW5wdXQsXG4gICAgT25Jbml0LFxuICAgIG91dHB1dCxcbiAgICBQcm92aWRlcixcbiAgICBzaWduYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgV3JpdGFibGVTaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTmdDb250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgS2JxQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQge1xuICAgIEtCUV9MT0NBTEVfU0VSVklDRSxcbiAgICBLYnFUaW1lUmFuZ2VMb2NhbGVDb25maWcsXG4gICAgUG9wVXBQbGFjZW1lbnRzLFxuICAgIFBvcFVwU2l6ZXMsXG4gICAgcnVSVUxvY2FsZURhdGFcbn0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgS2JxUG9wb3Zlck1vZHVsZSwgS2JxUG9wb3ZlclRyaWdnZXIgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBLYnFUaW1lUmFuZ2VFZGl0b3IgfSBmcm9tICcuL3RpbWUtcmFuZ2UtZWRpdG9yJztcbmltcG9ydCB7IEticVRpbWVSYW5nZVRpdGxlIH0gZnJvbSAnLi90aW1lLXJhbmdlLXRpdGxlJztcbmltcG9ydCB7IEticVRpbWVSYW5nZVNlcnZpY2UgfSBmcm9tICcuL3RpbWUtcmFuZ2Uuc2VydmljZSc7XG5pbXBvcnQge1xuICAgIEticVJhbmdlVmFsdWUsXG4gICAgS2JxVGltZVJhbmdlQ3VzdG9taXphYmxlVGl0bGVDb250ZXh0LFxuICAgIEticVRpbWVSYW5nZU9wdGlvbkNvbnRleHQsXG4gICAgS2JxVGltZVJhbmdlUmFuZ2UsXG4gICAgS2JxVGltZVJhbmdlVHlwZVxufSBmcm9tICcuL3R5cGVzJztcblxuLyoqIExvY2FsaXphdGlvbiBjb25maWd1cmF0aW9uIHByb3ZpZGVyLiAqL1xuZXhwb3J0IGNvbnN0IEtCUV9USU1FX1JBTkdFX0xPQ0FMRV9DT05GSUdVUkFUSU9OID0gbmV3IEluamVjdGlvblRva2VuPEticVRpbWVSYW5nZUxvY2FsZUNvbmZpZz4oXG4gICAgJ0tCUV9USU1FX1JBTkdFX0xPQ0FMRV9DT05GSUdVUkFUSU9OJyxcbiAgICB7IGZhY3Rvcnk6ICgpID0+IHJ1UlVMb2NhbGVEYXRhLnRpbWVSYW5nZSB9XG4pO1xuXG4vKiogVXRpbGl0eSBwcm92aWRlciBmb3IgYEtCUV9USU1FX1JBTkdFX0xPQ0FMRV9DT05GSUdVUkFUSU9OYC4gKi9cbmV4cG9ydCBjb25zdCBrYnFUaW1lUmFuZ2VMb2NhbGVDb25maWd1cmF0aW9uUHJvdmlkZXIgPSAoY29uZmlndXJhdGlvbjogS2JxVGltZVJhbmdlTG9jYWxlQ29uZmlnKTogUHJvdmlkZXIgPT4gKHtcbiAgICBwcm92aWRlOiBLQlFfVElNRV9SQU5HRV9MT0NBTEVfQ09ORklHVVJBVElPTixcbiAgICB1c2VWYWx1ZTogY29uZmlndXJhdGlvblxufSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdrYnEtdGltZS1yYW5nZScsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGxldCBsb2NhbGVDb25maWcgPSBsb2NhbGVDb25maWd1cmF0aW9uKCk7XG4gICAgICAgIDxrYnEtdGltZS1yYW5nZS10aXRsZVxuICAgICAgICAgICAgI3BvcG92ZXI9XCJrYnFQb3BvdmVyXCJcbiAgICAgICAgICAgIGNsYXNzPVwia2JxLXRpbWUtcmFuZ2VfX3RyaWdnZXJcIlxuICAgICAgICAgICAga2JxUG9wb3ZlclxuICAgICAgICAgICAga2JxUG9wb3ZlckNsYXNzPVwia2JxLXRpbWUtcmFuZ2VfX3BvcG92ZXJcIlxuICAgICAgICAgICAgW2ticVBvcG92ZXJTaXplXT1cInBvcG92ZXJTaXplXCJcbiAgICAgICAgICAgIFtrYnFQb3BvdmVyQ29udGVudF09XCJ0aW1lUmFuZ2VQb3BvdmVyQ29udGVudFwiXG4gICAgICAgICAgICBba2JxUG9wb3ZlckZvb3Rlcl09XCJ0aW1lUmFuZ2VQb3BvdmVyRm9vdGVyXCJcbiAgICAgICAgICAgIFtrYnFQb3BvdmVyUGxhY2VtZW50XT1cInBvcHVwUGxhY2VtZW50XCJcbiAgICAgICAgICAgIFtrYnFQb3BvdmVyQXJyb3ddPVwiYXJyb3coKVwiXG4gICAgICAgICAgICBbdGl0bGVUZW1wbGF0ZV09XCJ0aXRsZVRlbXBsYXRlKClcIlxuICAgICAgICAgICAgW3RpbWVSYW5nZV09XCJ0aXRsZVZhbHVlKClcIlxuICAgICAgICAgICAgW2xvY2FsZUNvbmZpZ3VyYXRpb25dPVwibG9jYWxlQ29uZmlnXCJcbiAgICAgICAgICAgIChrYnFQb3BvdmVyVmlzaWJsZUNoYW5nZSk9XCJvblZpc2libGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIC8+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0aW1lUmFuZ2VQb3BvdmVyQ29udGVudD5cbiAgICAgICAgICAgIDxrYnEtdGltZS1yYW5nZS1lZGl0b3JcbiAgICAgICAgICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlKClcIlxuICAgICAgICAgICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGUoKVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInJhbmdlRWRpdG9yQ29udHJvbFwiXG4gICAgICAgICAgICAgICAgW2xvY2FsZUNvbmZpZ3VyYXRpb25dPVwibG9jYWxlQ29uZmlnXCJcbiAgICAgICAgICAgICAgICBbc2hvd1JhbmdlQXNEZWZhdWx0XT1cInNob3dSYW5nZUFzRGVmYXVsdCgpXCJcbiAgICAgICAgICAgICAgICBbcmFuZ2VWYWx1ZV09XCJub3JtYWxpemVkRGVmYXVsdFJhbmdlVmFsdWUoKVwiXG4gICAgICAgICAgICAgICAgW2F2YWlsYWJsZVRpbWVSYW5nZVR5cGVzXT1cImF2YWlsYWJsZVRpbWVSYW5nZVR5cGVzKClcIlxuICAgICAgICAgICAgICAgIFtvcHRpb25UZW1wbGF0ZV09XCJvcHRpb25UZW1wbGF0ZSgpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0aW1lUmFuZ2VQb3BvdmVyRm9vdGVyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS10aW1lLXJhbmdlX19idXR0b25zXCIgcm9sZT1cImdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBrYnEtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCInY29udHJhc3QnXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJhbmdlRWRpdG9yQ29udHJvbC5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXBwbHkocG9wb3ZlcilcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgbG9jYWxlQ29uZmlnLmVkaXRvci5hcHBseSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBrYnEtYnV0dG9uIChjbGljayk9XCJvbkNhbmNlbChwb3BvdmVyKVwiPnt7IGxvY2FsZUNvbmZpZy5lZGl0b3IuY2FuY2VsIH19PC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICBgLFxuICAgIHN0eWxlVXJsczogWycuL3RpbWUtcmFuZ2Uuc2NzcyddLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgS2JxUG9wb3Zlck1vZHVsZSxcbiAgICAgICAgS2JxQnV0dG9uTW9kdWxlLFxuICAgICAgICBLYnFUaW1lUmFuZ2VFZGl0b3IsXG4gICAgICAgIEticVRpbWVSYW5nZVRpdGxlXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLXRpbWUtcmFuZ2UnXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtLYnFUaW1lUmFuZ2VTZXJ2aWNlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEticVRpbWVSYW5nZTxUPiBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGltZVJhbmdlU2VydmljZSA9IGluamVjdDxLYnFUaW1lUmFuZ2VTZXJ2aWNlPFQ+PihLYnFUaW1lUmFuZ2VTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2UgPSBpbmplY3QoS0JRX0xPQ0FMRV9TRVJWSUNFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcmVhZG9ubHkgbmdDb250cm9sID0gaW5qZWN0KE5nQ29udHJvbCwgeyBvcHRpb25hbDogdHJ1ZSwgc2VsZjogdHJ1ZSB9KTtcblxuICAgIC8qKiBUaGUgbWluaW11bSBzZWxlY3RhYmxlIGRhdGUuICovXG4gICAgcmVhZG9ubHkgbWluRGF0ZSA9IGlucHV0PFQ+KCk7XG4gICAgLyoqIFRoZSBtYXhpbXVtIHNlbGVjdGFibGUgZGF0ZS4gKi9cbiAgICByZWFkb25seSBtYXhEYXRlID0gaW5wdXQ8VD4oKTtcbiAgICAvKiogcHJvdmlkZWQgdmFsdWUgb2Ygc2VsZWN0ZWQgcmFuZ2UgKi9cbiAgICByZWFkb25seSBkZWZhdWx0UmFuZ2VWYWx1ZSA9IGlucHV0PEticVJhbmdlVmFsdWU8VD4+KCk7XG4gICAgLyoqIFByZXNldCBvZiBzZWxlY3RhYmxlIHJhbmdlcyAqL1xuICAgIHJlYWRvbmx5IGF2YWlsYWJsZVRpbWVSYW5nZVR5cGVzID0gaW5wdXQ8S2JxVGltZVJhbmdlVHlwZVtdPih0aGlzLnRpbWVSYW5nZVNlcnZpY2UucHJvdmlkZWREZWZhdWx0VGltZVJhbmdlVHlwZXMpO1xuICAgIC8qKiBDdXN0b21pemFibGUgdHJpZ2dlciBvdXRwdXQgKi9cbiAgICByZWFkb25seSB0aXRsZVRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8S2JxVGltZVJhbmdlQ3VzdG9taXphYmxlVGl0bGVDb250ZXh0Pj4oKTtcbiAgICAvKiogQ3VzdG9taXphYmxlIG9wdGlvbiBvdXRwdXQgKi9cbiAgICByZWFkb25seSBvcHRpb25UZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPEticVRpbWVSYW5nZU9wdGlvbkNvbnRleHQ+PigpO1xuICAgIC8qKiBXaGV0aGVyIHRvIHNob3cgcG9wb3ZlciB3aXRoIGFycm93ICovXG4gICAgcmVhZG9ubHkgYXJyb3cgPSBpbnB1dCh0cnVlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIHNob3cgcmFuZ2UgaW4gcG9wb3ZlciBpZiBub3QgcHJvdmlkZWRcbiAgICAgKiBAc2VlIGF2YWlsYWJsZVRpbWVSYW5nZVR5cGVzXG4gICAgICovXG4gICAgcmVhZG9ubHkgc2hvd1JhbmdlQXNEZWZhdWx0ID0gaW5wdXQodHJ1ZSk7XG4gICAgLyoqIFdoZXRoZXIgY29tcG9uZW50IHNob3VsZCBmYWxsYmFjayB0byBkZWZhdWx0IHZhbHVlIGlmIG51bGwgcHJvdmlkZWQgKi9cbiAgICByZWFkb25seSBub25OdWxsYWJsZSA9IGlucHV0KHRydWUsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gICAgLyoqIEVtaXQgdmFsdWUgdXBkYXRlIGlmIHByb3ZpZGVkIHZhbHVlIHZpYSBmb3JtQ29udHJvbCB3YXNuJ3QgdmFsaWQgKi9cbiAgICByZWFkb25seSB2YWx1ZUNvcnJlY3RlZCA9IG91dHB1dDxLYnFUaW1lUmFuZ2VSYW5nZT4oKTtcblxuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gY2FsY3VsYXRlIHRpbWUgcmFuZ2UuXG4gICAgICogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBub3JtYWxpemVkRGVmYXVsdFJhbmdlVmFsdWUgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgICAgICAuLi50aGlzLnRpbWVSYW5nZVNlcnZpY2UuZ2V0RGVmYXVsdFJhbmdlVmFsdWUoKSxcbiAgICAgICAgLi4udGhpcy5kZWZhdWx0UmFuZ2VWYWx1ZSgpXG4gICAgfSkpO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGl0bGVWYWx1ZTogV3JpdGFibGVTaWduYWw8S2JxVGltZVJhbmdlUmFuZ2UgfCBudWxsPjtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSByYW5nZUVkaXRvckNvbnRyb2w6IEZvcm1Db250cm9sPEticVRpbWVSYW5nZVJhbmdlPjtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHBvcG92ZXJTaXplID0gUG9wVXBTaXplcy5NZWRpdW07XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcG9wdXBQbGFjZW1lbnQgPSBQb3BVcFBsYWNlbWVudHMuQm90dG9tTGVmdDtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvY2FsZUNvbmZpZ3VyYXRpb24gPSBzaWduYWwoaW5qZWN0KEtCUV9USU1FX1JBTkdFX0xPQ0FMRV9DT05GSUdVUkFUSU9OKSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHRoaXMudGltZVJhbmdlU2VydmljZS5nZXRUaW1lUmFuZ2VEZWZhdWx0VmFsdWUoXG4gICAgICAgICAgICB0aGlzLm5vcm1hbGl6ZWREZWZhdWx0UmFuZ2VWYWx1ZSgpLFxuICAgICAgICAgICAgdGhpcy5hdmFpbGFibGVUaW1lUmFuZ2VUeXBlcygpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy50aXRsZVZhbHVlID0gc2lnbmFsKHRoaXMubm9uTnVsbGFibGUoKSA/IGRlZmF1bHRWYWx1ZSA6IG51bGwpO1xuICAgICAgICB0aGlzLnJhbmdlRWRpdG9yQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxLYnFUaW1lUmFuZ2VSYW5nZT4oZGVmYXVsdFZhbHVlLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pO1xuXG4gICAgICAgIHRoaXMubG9jYWxlU2VydmljZT8uY2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2NhbGVDb25maWd1cmF0aW9uLnNldCh0aGlzLmxvY2FsZVNlcnZpY2U/LmdldFBhcmFtcygndGltZVJhbmdlJykgPz8gcnVSVUxvY2FsZURhdGEudGltZVJhbmdlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdG9PYnNlcnZhYmxlKHRoaXMuYXZhaWxhYmxlVGltZVJhbmdlVHlwZXMpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy5oYW5kbGVBdmFpbGFibGVUeXBlc0NoYW5nZSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIGNhbGwgYWdhaW4gb24gaW5pdCwgc28gaW5wdXQgc2lnbmFscyB2YWx1ZXMgd2lsbCBiZSBjb3JyZWN0XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLm5nQ29udHJvbD8udmFsdWUgPz8gbnVsbCk7XG4gICAgfVxuXG4gICAgLyoqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IgKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBLYnFUaW1lUmFuZ2VSYW5nZSB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgbm9uTnVsbGFibGUgPSB0aGlzLm5vbk51bGxhYmxlKCk7XG5cbiAgICAgICAgY29uc3QgYXZhaWxhYmxlVGltZVJhbmdlVHlwZXMgPSB0aGlzLmF2YWlsYWJsZVRpbWVSYW5nZVR5cGVzKCk7XG5cbiAgICAgICAgY29uc3QgY29ycmVjdGVkID0gdGhpcy50aW1lUmFuZ2VTZXJ2aWNlLmNoZWNrQW5kQ29ycmVjdFRpbWVSYW5nZVZhbHVlKFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBhdmFpbGFibGVUaW1lUmFuZ2VUeXBlcyxcbiAgICAgICAgICAgIHRoaXMubm9ybWFsaXplZERlZmF1bHRSYW5nZVZhbHVlKClcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAodmFsdWUgJiYgdmFsdWUudHlwZSAmJiAhKCdzdGFydERhdGVUaW1lJyBpbiB2YWx1ZSAmJiBhdmFpbGFibGVUaW1lUmFuZ2VUeXBlcy5pbmNsdWRlcyh2YWx1ZS50eXBlKSkpIHx8XG4gICAgICAgICAgICAobm9uTnVsbGFibGUgJiYgdmFsdWUgPT09IG51bGwpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNvcnJlY3RlZC5lbWl0KGNvcnJlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRpdGxlVmFsdWUuc2V0KG5vbk51bGxhYmxlIHx8IHZhbHVlICE9PSBudWxsID8gY29ycmVjdGVkIDogbnVsbCk7XG4gICAgICAgIHRoaXMucmFuZ2VFZGl0b3JDb250cm9sLnNldFZhbHVlKGNvcnJlY3RlZCk7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBvbkFwcGx5KHBvcG92ZXI6IEticVBvcG92ZXJUcmlnZ2VyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGl0bGVWYWx1ZS5zZXQodGhpcy5yYW5nZUVkaXRvckNvbnRyb2wudmFsdWUpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMucmFuZ2VFZGl0b3JDb250cm9sLnZhbHVlKTtcbiAgICAgICAgcG9wb3Zlci5oaWRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBvbkNhbmNlbChwb3BvdmVyOiBLYnFQb3BvdmVyVHJpZ2dlcik6IHZvaWQge1xuICAgICAgICBwb3BvdmVyLmhpZGUoKTtcbiAgICB9XG5cbiAgICBvblZpc2libGVDaGFuZ2UoaXNWaXNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIGNvbnN0IHRpdGxlVmFsdWUgPSB0aGlzLnRpdGxlVmFsdWUoKTtcblxuICAgICAgICBpZiAoIWlzVmlzaWJsZSAmJiB0aXRsZVZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnJhbmdlRWRpdG9yQ29udHJvbC5zZXRWYWx1ZSh0aXRsZVZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgb25DaGFuZ2UgPSAoX3ZhbHVlOiBLYnFUaW1lUmFuZ2VSYW5nZSkgPT4ge307XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBvblRvdWNoID0gKCkgPT4ge307XG4gICAgLyoqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IgKi9cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoX3ZhbHVlOiBLYnFUaW1lUmFuZ2VSYW5nZSkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuICAgIC8qKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yICovXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoID0gZm47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVBdmFpbGFibGVUeXBlc0NoYW5nZSA9ICh0eXBlczogS2JxVGltZVJhbmdlVHlwZVtdKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICh0eXBlcy5pbmNsdWRlcyh0aGlzLnJhbmdlRWRpdG9yQ29udHJvbC52YWx1ZS50eXBlKSB8fCB0aGlzLnJhbmdlRWRpdG9yQ29udHJvbC52YWx1ZS50eXBlID09PSAncmFuZ2UnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0aW1lUmFuZ2VEZWZhdWx0VmFsdWUgPSB0aGlzLnRpbWVSYW5nZVNlcnZpY2UuZ2V0VGltZVJhbmdlRGVmYXVsdFZhbHVlKFxuICAgICAgICAgICAgdGhpcy5ub3JtYWxpemVkRGVmYXVsdFJhbmdlVmFsdWUoKSxcbiAgICAgICAgICAgIHR5cGVzLmxlbmd0aCA/IHR5cGVzIDogWydyYW5nZSddXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy50aXRsZVZhbHVlLnNldCh0aW1lUmFuZ2VEZWZhdWx0VmFsdWUpO1xuICAgICAgICB0aGlzLnJhbmdlRWRpdG9yQ29udHJvbC5zZXRWYWx1ZSh0aW1lUmFuZ2VEZWZhdWx0VmFsdWUpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRpbWVSYW5nZURlZmF1bHRWYWx1ZSk7XG4gICAgfTtcbn1cbiJdfQ==