@wavemaker/app-ng-runtime 11.10.3-next.25128 → 11.10.3-rc.6079

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 (155) hide show
  1. package/components/basic/default/bundles/index.umd.js +68 -68
  2. package/components/basic/default/esm2022/anchor/anchor.component.mjs +18 -18
  3. package/components/basic/default/esm2022/icon/icon.component.mjs +13 -12
  4. package/components/basic/default/esm2022/iframe/iframe.component.mjs +10 -9
  5. package/components/basic/default/esm2022/spinner/spinner.component.mjs +21 -21
  6. package/components/basic/default/esm2022/video/video.component.mjs +15 -14
  7. package/components/basic/default/fesm2022/index.mjs +68 -68
  8. package/components/basic/default/fesm2022/index.mjs.map +1 -1
  9. package/components/basic/progress/bundles/index.umd.js +17 -16
  10. package/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +8 -7
  11. package/components/basic/progress/fesm2022/index.mjs +9 -8
  12. package/components/basic/progress/fesm2022/index.mjs.map +1 -1
  13. package/components/basic/rich-text-editor/bundles/index.umd.js +12 -11
  14. package/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +9 -8
  15. package/components/basic/rich-text-editor/fesm2022/index.mjs +8 -7
  16. package/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  17. package/components/basic/search/bundles/index.umd.js +67 -63
  18. package/components/basic/search/esm2022/search.component.mjs +67 -63
  19. package/components/basic/search/esm2022/search.module.mjs +2 -2
  20. package/components/basic/search/fesm2022/index.mjs +67 -63
  21. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  22. package/components/chart/bundles/index.umd.js +17 -17
  23. package/components/chart/esm2022/chart.component.mjs +18 -18
  24. package/components/chart/fesm2022/index.mjs +17 -17
  25. package/components/chart/fesm2022/index.mjs.map +1 -1
  26. package/components/containers/panel/bundles/index.umd.js +39 -39
  27. package/components/containers/panel/esm2022/panel.component.mjs +40 -40
  28. package/components/containers/panel/fesm2022/index.mjs +39 -39
  29. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  30. package/components/containers/tabs/bundles/index.umd.js +29 -29
  31. package/components/containers/tabs/esm2022/tabs.component.mjs +30 -30
  32. package/components/containers/tabs/fesm2022/index.mjs +29 -29
  33. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  34. package/components/containers/wizard/bundles/index.umd.js +49 -49
  35. package/components/containers/wizard/esm2022/wizard.component.mjs +50 -50
  36. package/components/containers/wizard/fesm2022/index.mjs +49 -49
  37. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  38. package/components/data/card/bundles/index.umd.js +29 -29
  39. package/components/data/card/esm2022/card.component.mjs +30 -30
  40. package/components/data/card/fesm2022/index.mjs +29 -29
  41. package/components/data/card/fesm2022/index.mjs.map +1 -1
  42. package/components/data/form/bundles/index.umd.js +96 -91
  43. package/components/data/form/esm2022/form.component.mjs +97 -92
  44. package/components/data/form/fesm2022/index.mjs +96 -91
  45. package/components/data/form/fesm2022/index.mjs.map +1 -1
  46. package/components/data/list/bundles/index.umd.js +173 -171
  47. package/components/data/list/esm2022/list.component.mjs +173 -171
  48. package/components/data/list/esm2022/list.module.mjs +2 -2
  49. package/components/data/list/fesm2022/index.mjs +173 -171
  50. package/components/data/list/fesm2022/index.mjs.map +1 -1
  51. package/components/data/pagination/bundles/index.umd.js +32 -32
  52. package/components/data/pagination/esm2022/pagination.component.mjs +33 -33
  53. package/components/data/pagination/fesm2022/index.mjs +32 -32
  54. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  55. package/components/data/table/bundles/index.umd.js +38 -39
  56. package/components/data/table/esm2022/table.component.mjs +39 -40
  57. package/components/data/table/fesm2022/index.mjs +38 -39
  58. package/components/data/table/fesm2022/index.mjs.map +1 -1
  59. package/components/dialogs/default/bundles/index.umd.js +95 -66
  60. package/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +96 -67
  61. package/components/dialogs/default/fesm2022/index.mjs +95 -66
  62. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  63. package/components/dialogs/design-dialog/bundles/index.umd.js +7 -7
  64. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +8 -8
  65. package/components/dialogs/design-dialog/fesm2022/index.mjs +7 -7
  66. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  67. package/components/dialogs/iframe-dialog/bundles/index.umd.js +25 -24
  68. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +16 -15
  69. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +15 -14
  70. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  71. package/components/dialogs/partial-dialog/bundles/index.umd.js +8 -8
  72. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +9 -9
  73. package/components/dialogs/partial-dialog/fesm2022/index.mjs +8 -8
  74. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  75. package/components/input/chips/bundles/index.umd.js +21 -21
  76. package/components/input/chips/esm2022/chips.component.mjs +22 -22
  77. package/components/input/chips/fesm2022/index.mjs +21 -21
  78. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  79. package/components/input/default/bundles/index.umd.js +209 -201
  80. package/components/input/default/esm2022/button/button.component.mjs +18 -18
  81. package/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +69 -68
  82. package/components/input/default/esm2022/radioset/radioset.component.mjs +69 -68
  83. package/components/input/default/esm2022/select/select.component.mjs +27 -21
  84. package/components/input/default/esm2022/switch/switch.component.mjs +24 -24
  85. package/components/input/default/esm2022/textarea/textarea.component.mjs +8 -8
  86. package/components/input/default/fesm2022/index.mjs +209 -201
  87. package/components/input/default/fesm2022/index.mjs.map +1 -1
  88. package/components/input/epoch/bundles/index.umd.js +164 -171
  89. package/components/input/epoch/esm2022/date/date.component.mjs +15 -14
  90. package/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +59 -64
  91. package/components/input/epoch/esm2022/date-time/date-time.component.mjs +19 -18
  92. package/components/input/epoch/esm2022/picker/picker.component.mjs +25 -26
  93. package/components/input/epoch/esm2022/time/time.component.mjs +18 -17
  94. package/components/input/epoch/fesm2022/index.mjs +117 -124
  95. package/components/input/epoch/fesm2022/index.mjs.map +1 -1
  96. package/components/input/file-upload/bundles/index.umd.js +114 -111
  97. package/components/input/file-upload/esm2022/file-upload.component.mjs +115 -112
  98. package/components/input/file-upload/fesm2022/index.mjs +114 -111
  99. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  100. package/components/input/rating/bundles/index.umd.js +14 -14
  101. package/components/input/rating/esm2022/rating.component.mjs +15 -15
  102. package/components/input/rating/fesm2022/index.mjs +14 -14
  103. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  104. package/components/input/slider/bundles/index.umd.js +40 -39
  105. package/components/input/slider/esm2022/slider.component.mjs +11 -10
  106. package/components/input/slider/fesm2022/index.mjs +10 -9
  107. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  108. package/components/navigation/breadcrumb/bundles/index.umd.js +15 -16
  109. package/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +16 -17
  110. package/components/navigation/breadcrumb/fesm2022/index.mjs +15 -16
  111. package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  112. package/components/navigation/menu/bundles/index.umd.js +71 -69
  113. package/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +7 -7
  114. package/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +15 -15
  115. package/components/navigation/menu/esm2022/menu.component.mjs +26 -22
  116. package/components/navigation/menu/esm2022/menu.module.mjs +4 -4
  117. package/components/navigation/menu/esm2022/nav/nav.component.mjs +24 -26
  118. package/components/navigation/menu/fesm2022/index.mjs +71 -69
  119. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  120. package/components/navigation/navbar/bundles/index.umd.js +12 -12
  121. package/components/navigation/navbar/esm2022/navbar.component.mjs +13 -13
  122. package/components/navigation/navbar/fesm2022/index.mjs +12 -12
  123. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  124. package/mobile/components/basic/default/bundles/index.umd.js +111 -102
  125. package/mobile/components/basic/default/esm2022/file-browser/file-browser.component.mjs +40 -39
  126. package/mobile/components/basic/default/esm2022/network-info-toaster/network-info-toaster.component.mjs +44 -35
  127. package/mobile/components/basic/default/esm2022/process-manager/process-manager.component.mjs +28 -27
  128. package/mobile/components/basic/default/fesm2022/index.mjs +107 -98
  129. package/mobile/components/basic/default/fesm2022/index.mjs.map +1 -1
  130. package/mobile/components/containers/segmented-control/bundles/index.umd.js +16 -16
  131. package/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +9 -8
  132. package/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +10 -10
  133. package/mobile/components/containers/segmented-control/fesm2022/index.mjs +16 -16
  134. package/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +1 -1
  135. package/mobile/components/data/media-list/bundles/index.umd.js +28 -28
  136. package/mobile/components/data/media-list/esm2022/media-list.component.mjs +29 -29
  137. package/mobile/components/data/media-list/fesm2022/index.mjs +28 -28
  138. package/mobile/components/data/media-list/fesm2022/index.mjs.map +1 -1
  139. package/mobile/components/page/mobile-navbar/bundles/index.umd.js +29 -29
  140. package/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.component.mjs +30 -30
  141. package/mobile/components/page/mobile-navbar/fesm2022/index.mjs +29 -29
  142. package/mobile/components/page/mobile-navbar/fesm2022/index.mjs.map +1 -1
  143. package/mobile/components/page/tab-bar/bundles/index.umd.js +28 -28
  144. package/mobile/components/page/tab-bar/esm2022/tabbar.component.mjs +29 -29
  145. package/mobile/components/page/tab-bar/fesm2022/index.mjs +28 -28
  146. package/mobile/components/page/tab-bar/fesm2022/index.mjs.map +1 -1
  147. package/npm-shrinkwrap.json +2 -2
  148. package/package-lock.json +2 -2
  149. package/package.json +1 -1
  150. package/runtime/base/bundles/index.umd.js +215 -219
  151. package/runtime/base/esm2022/components/app-component/app.component.mjs +41 -38
  152. package/runtime/base/esm2022/components/app-spinner.component.mjs +21 -25
  153. package/runtime/base/esm2022/components/custom-toaster.component.mjs +16 -18
  154. package/runtime/base/fesm2022/index.mjs +95 -99
  155. package/runtime/base/fesm2022/index.mjs.map +1 -1
@@ -5,31 +5,32 @@ import { App } from '@wm/core';
5
5
  import { filter } from "lodash-es";
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "ngx-bootstrap/modal";
8
- import * as i2 from "ngx-bootstrap/datepicker";
9
- import * as i3 from "../picker/picker.component";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "ngx-bootstrap/datepicker";
10
+ import * as i4 from "../picker/picker.component";
10
11
  const _c0 = ["datetimepickerTemplate"];
11
- function DateTimePickerComponent_ng_template_0_Conditional_3_Template(rf, ctx) { if (rf & 1) {
12
+ function DateTimePickerComponent_ng_template_0_bs_datepicker_inline_3_Template(rf, ctx) { if (rf & 1) {
12
13
  const _r2 = i0.ɵɵgetCurrentView();
13
14
  i0.ɵɵelementStart(0, "bs-datepicker-inline", 11);
14
- i0.ɵɵlistener("bsValueChange", function DateTimePickerComponent_ng_template_0_Conditional_3_Template_bs_datepicker_inline_bsValueChange_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onDateUpdate($event)); });
15
+ i0.ɵɵlistener("bsValueChange", function DateTimePickerComponent_ng_template_0_bs_datepicker_inline_3_Template_bs_datepicker_inline_bsValueChange_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onDateUpdate($event)); });
15
16
  i0.ɵɵelementEnd();
16
17
  } if (rf & 2) {
17
18
  const ctx_r2 = i0.ɵɵnextContext(2);
18
19
  i0.ɵɵproperty("bsConfig", ctx_r2.bsDatepickerConfig)("datesDisabled", ctx_r2.excludedDatesToDisable)("bsValue", ctx_r2.changedValue);
19
20
  } }
20
- function DateTimePickerComponent_ng_template_0_Conditional_4_Template(rf, ctx) { if (rf & 1) {
21
+ function DateTimePickerComponent_ng_template_0_wm_timepicker_4_Template(rf, ctx) { if (rf & 1) {
21
22
  const _r4 = i0.ɵɵgetCurrentView();
22
23
  i0.ɵɵelementStart(0, "wm-timepicker", 12);
23
- i0.ɵɵlistener("change", function DateTimePickerComponent_ng_template_0_Conditional_4_Template_wm_timepicker_change_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onTimeUpdate($event)); });
24
+ i0.ɵɵlistener("change", function DateTimePickerComponent_ng_template_0_wm_timepicker_4_Template_wm_timepicker_change_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onTimeUpdate($event)); });
24
25
  i0.ɵɵelementEnd();
25
26
  } if (rf & 2) {
26
27
  const ctx_r2 = i0.ɵɵnextContext(2);
27
28
  i0.ɵɵproperty("value", ctx_r2.changedValue)("min", ctx_r2.minTime)("max", ctx_r2.maxTime);
28
29
  } }
29
- function DateTimePickerComponent_ng_template_0_Conditional_8_Template(rf, ctx) { if (rf & 1) {
30
+ function DateTimePickerComponent_ng_template_0_button_8_Template(rf, ctx) { if (rf & 1) {
30
31
  const _r5 = i0.ɵɵgetCurrentView();
31
32
  i0.ɵɵelementStart(0, "button", 13);
32
- i0.ɵɵlistener("click", function DateTimePickerComponent_ng_template_0_Conditional_8_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.setToday()); });
33
+ i0.ɵɵlistener("click", function DateTimePickerComponent_ng_template_0_button_8_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.setToday()); });
33
34
  i0.ɵɵtext(1);
34
35
  i0.ɵɵelementEnd();
35
36
  } if (rf & 2) {
@@ -37,10 +38,10 @@ function DateTimePickerComponent_ng_template_0_Conditional_8_Template(rf, ctx) {
37
38
  i0.ɵɵadvance();
38
39
  i0.ɵɵtextInterpolate(ctx_r2.appLocale.LABEL_TODAY_DATE || "Today");
39
40
  } }
40
- function DateTimePickerComponent_ng_template_0_Conditional_9_Template(rf, ctx) { if (rf & 1) {
41
+ function DateTimePickerComponent_ng_template_0_button_9_Template(rf, ctx) { if (rf & 1) {
41
42
  const _r6 = i0.ɵɵgetCurrentView();
42
43
  i0.ɵɵelementStart(0, "button", 14);
43
- i0.ɵɵlistener("click", function DateTimePickerComponent_ng_template_0_Conditional_9_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onOkClick()); });
44
+ i0.ɵɵlistener("click", function DateTimePickerComponent_ng_template_0_button_9_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onOkClick()); });
44
45
  i0.ɵɵtext(1);
45
46
  i0.ɵɵelementEnd();
46
47
  } if (rf & 2) {
@@ -52,12 +53,12 @@ function DateTimePickerComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
52
53
  const _r1 = i0.ɵɵgetCurrentView();
53
54
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
54
55
  i0.ɵɵelement(2, "div", 3);
55
- i0.ɵɵtemplate(3, DateTimePickerComponent_ng_template_0_Conditional_3_Template, 1, 3, "bs-datepicker-inline", 4)(4, DateTimePickerComponent_ng_template_0_Conditional_4_Template, 1, 3, "wm-timepicker", 5);
56
+ i0.ɵɵtemplate(3, DateTimePickerComponent_ng_template_0_bs_datepicker_inline_3_Template, 1, 3, "bs-datepicker-inline", 4)(4, DateTimePickerComponent_ng_template_0_wm_timepicker_4_Template, 1, 3, "wm-timepicker", 5);
56
57
  i0.ɵɵelementStart(5, "span", 6);
57
58
  i0.ɵɵtext(6);
58
59
  i0.ɵɵelementEnd()();
59
60
  i0.ɵɵelementStart(7, "div", 7);
60
- i0.ɵɵtemplate(8, DateTimePickerComponent_ng_template_0_Conditional_8_Template, 2, 1, "button", 8)(9, DateTimePickerComponent_ng_template_0_Conditional_9_Template, 2, 1, "button", 9);
61
+ i0.ɵɵtemplate(8, DateTimePickerComponent_ng_template_0_button_8_Template, 2, 1, "button", 8)(9, DateTimePickerComponent_ng_template_0_button_9_Template, 2, 1, "button", 9);
61
62
  i0.ɵɵelementStart(10, "button", 10);
62
63
  i0.ɵɵlistener("click", function DateTimePickerComponent_ng_template_0_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.clear()); });
63
64
  i0.ɵɵtext(11);
@@ -65,15 +66,15 @@ function DateTimePickerComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
65
66
  } if (rf & 2) {
66
67
  const ctx_r2 = i0.ɵɵnextContext();
67
68
  i0.ɵɵadvance(3);
68
- i0.ɵɵconditional(ctx_r2.mode === "DATE_TIME" || ctx_r2.mode === "DATE" ? 3 : -1);
69
+ i0.ɵɵproperty("ngIf", ctx_r2.mode === "DATE_TIME" || ctx_r2.mode === "DATE");
69
70
  i0.ɵɵadvance();
70
- i0.ɵɵconditional(ctx_r2.mode === "DATE_TIME" || ctx_r2.mode === "TIME" ? 4 : -1);
71
+ i0.ɵɵproperty("ngIf", ctx_r2.mode === "DATE_TIME" || ctx_r2.mode === "TIME");
71
72
  i0.ɵɵadvance(2);
72
73
  i0.ɵɵtextInterpolate1(" ", ctx_r2.getDateLabel(), " ");
73
74
  i0.ɵɵadvance(2);
74
- i0.ɵɵconditional(ctx_r2.mode === "DATE_TIME" || ctx_r2.mode === "DATE" ? 8 : -1);
75
+ i0.ɵɵproperty("ngIf", ctx_r2.mode === "DATE_TIME" || ctx_r2.mode === "DATE");
75
76
  i0.ɵɵadvance();
76
- i0.ɵɵconditional(ctx_r2.mode === "DATE_TIME" || ctx_r2.mode === "TIME" ? 9 : -1);
77
+ i0.ɵɵproperty("ngIf", ctx_r2.mode === "DATE_TIME" || ctx_r2.mode === "TIME");
77
78
  i0.ɵɵadvance(2);
78
79
  i0.ɵɵtextInterpolate(ctx_r2.appLocale.LABEL_CLEAR_DATE || "Clear");
79
80
  } }
@@ -250,9 +251,9 @@ export class DateTimePickerComponent {
250
251
  } if (rf & 2) {
251
252
  let _t;
252
253
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.datetimepickerTemplate = _t.first);
253
- } }, inputs: { mode: "mode", placement: "placement", _bsDatepickerConfig: [0, "config", "_bsDatepickerConfig"], minTime: "minTime", maxTime: "maxTime", _displayFormat: "_displayFormat", excludedDatesToDisable: "excludedDatesToDisable", value: "value", bsDatepickerConfig: [0, "config", "bsDatepickerConfig"], excludedDaysToDisable: "excludedDaysToDisable", displayFormat: "displayFormat" }, outputs: { change: "change" }, decls: 2, vars: 0, consts: [["datetimepickerTemplate", ""], [1, "app-datetime-picker"], [1, "modal-body"], [1, "mobile-datetime-picker-options"], ["bsDatepicker", "", 3, "bsConfig", "datesDisabled", "bsValue"], [3, "value", "min", "max"], [1, "text-primary", "date-picker-value"], [1, "modal-footer"], [1, "btn", "btn-secondary", "today-btn"], [1, "btn", "btn-primary", "pull-right", "ok-btn"], [1, "btn", "btn-secondary", "pull-right", "clear-btn", 3, "click"], ["bsDatepicker", "", 3, "bsValueChange", "bsConfig", "datesDisabled", "bsValue"], [3, "change", "value", "min", "max"], [1, "btn", "btn-secondary", "today-btn", 3, "click"], [1, "btn", "btn-primary", "pull-right", "ok-btn", 3, "click"]], template: function DateTimePickerComponent_Template(rf, ctx) { if (rf & 1) {
254
+ } }, inputs: { mode: "mode", placement: "placement", _bsDatepickerConfig: [0, "config", "_bsDatepickerConfig"], minTime: "minTime", maxTime: "maxTime", _displayFormat: "_displayFormat", excludedDatesToDisable: "excludedDatesToDisable", value: "value", bsDatepickerConfig: [0, "config", "bsDatepickerConfig"], excludedDaysToDisable: "excludedDaysToDisable", displayFormat: "displayFormat" }, outputs: { change: "change" }, decls: 2, vars: 0, consts: [["datetimepickerTemplate", ""], [1, "app-datetime-picker"], [1, "modal-body"], [1, "mobile-datetime-picker-options"], ["bsDatepicker", "", 3, "bsConfig", "datesDisabled", "bsValue", "bsValueChange", 4, "ngIf"], [3, "value", "min", "max", "change", 4, "ngIf"], [1, "text-primary", "date-picker-value"], [1, "modal-footer"], ["class", "btn btn-secondary today-btn", 3, "click", 4, "ngIf"], ["class", "btn btn-primary pull-right ok-btn", 3, "click", 4, "ngIf"], [1, "btn", "btn-secondary", "pull-right", "clear-btn", 3, "click"], ["bsDatepicker", "", 3, "bsValueChange", "bsConfig", "datesDisabled", "bsValue"], [3, "change", "value", "min", "max"], [1, "btn", "btn-secondary", "today-btn", 3, "click"], [1, "btn", "btn-primary", "pull-right", "ok-btn", 3, "click"]], template: function DateTimePickerComponent_Template(rf, ctx) { if (rf & 1) {
254
255
  i0.ɵɵtemplate(0, DateTimePickerComponent_ng_template_0_Template, 12, 6, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
255
- } }, dependencies: () => [i2.BsDatepickerDirective, i2.BsDatepickerInlineDirective, TimePickerComponent], encapsulation: 2 }); }
256
+ } }, dependencies: () => [i2.NgIf, i3.BsDatepickerDirective, i3.BsDatepickerInlineDirective, TimePickerComponent], encapsulation: 2 }); }
256
257
  }
257
258
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DateTimePickerComponent, [{
258
259
  type: Component,
@@ -260,49 +261,43 @@ export class DateTimePickerComponent {
260
261
  selector: 'wm-datetimepicker',
261
262
  template: `
262
263
  <ng-template #datetimepickerTemplate>
263
- <div class="app-datetime-picker">
264
- <div class="modal-body">
265
- <div class="mobile-datetime-picker-options">
266
-
267
- </div>
268
- @if (mode === 'DATE_TIME' || mode === 'DATE') {
269
- <bs-datepicker-inline
270
- [bsConfig]="bsDatepickerConfig"
271
- [datesDisabled]="excludedDatesToDisable"
272
- bsDatepicker
273
- [bsValue]="changedValue"
274
- (bsValueChange)="onDateUpdate($event)"
275
- >
276
- </bs-datepicker-inline>
277
- }
278
- @if (mode === 'DATE_TIME' || mode === 'TIME') {
279
- <wm-timepicker
280
- [value]="changedValue"
281
- [min]="minTime"
282
- [max]="maxTime"
283
- (change)="onTimeUpdate($event)"
284
- ></wm-timepicker>
285
- }
286
- <span class="text-primary date-picker-value">
287
- {{getDateLabel()}}
288
- </span>
264
+ <div class="app-datetime-picker">
265
+ <div class="modal-body">
266
+ <div class="mobile-datetime-picker-options">
267
+
268
+ </div>
269
+ <bs-datepicker-inline
270
+ [bsConfig]="bsDatepickerConfig"
271
+ [datesDisabled]="excludedDatesToDisable"
272
+ bsDatepicker
273
+ [bsValue]="changedValue"
274
+ (bsValueChange)="onDateUpdate($event)"
275
+ *ngIf="mode === 'DATE_TIME' || mode === 'DATE'">
276
+ </bs-datepicker-inline>
277
+ <wm-timepicker
278
+ [value]="changedValue"
279
+ [min]="minTime"
280
+ [max]="maxTime"
281
+ (change)="onTimeUpdate($event)"
282
+ *ngIf="mode === 'DATE_TIME' || mode === 'TIME'"></wm-timepicker>
283
+ <span class="text-primary date-picker-value">
284
+ {{getDateLabel()}}
285
+ </span>
286
+ </div>
287
+ <div class="modal-footer">
288
+ <button
289
+ *ngIf="mode === 'DATE_TIME' || mode === 'DATE'"
290
+ class="btn btn-secondary today-btn"
291
+ (click)="setToday()">{{appLocale.LABEL_TODAY_DATE || "Today" }}</button>
292
+ <button
293
+ class="btn btn-primary pull-right ok-btn"
294
+ *ngIf="mode === 'DATE_TIME' || mode === 'TIME'"
295
+ (click)="onOkClick()">{{appLocale.LABEL_OK || "Ok" }}</button>
296
+ <button
297
+ class="btn btn-secondary pull-right clear-btn"
298
+ (click)="clear()">{{appLocale.LABEL_CLEAR_DATE || "Clear" }}</button>
299
+ </div>
289
300
  </div>
290
- <div class="modal-footer">
291
- @if (mode === 'DATE_TIME' || mode === 'DATE') {
292
- <button
293
- class="btn btn-secondary today-btn"
294
- (click)="setToday()">{{appLocale.LABEL_TODAY_DATE || "Today" }}</button>
295
- }
296
- @if (mode === 'DATE_TIME' || mode === 'TIME') {
297
- <button
298
- class="btn btn-primary pull-right ok-btn"
299
- (click)="onOkClick()">{{appLocale.LABEL_OK || "Ok" }}</button>
300
- }
301
- <button
302
- class="btn btn-secondary pull-right clear-btn"
303
- (click)="clear()">{{appLocale.LABEL_CLEAR_DATE || "Clear" }}</button>
304
- </div>
305
- </div>
306
301
  </ng-template>
307
302
  `
308
303
  }]
@@ -336,7 +331,7 @@ export class DateTimePickerComponent {
336
331
  }], displayFormat: [{
337
332
  type: Input
338
333
  }] }); })();
339
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DateTimePickerComponent, { className: "DateTimePickerComponent", filePath: "date-time/date-time-picker.component.ts", lineNumber: 60 }); })();
334
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DateTimePickerComponent, { className: "DateTimePickerComponent", filePath: "date-time/date-time-picker.component.ts", lineNumber: 54 }); })();
340
335
  export class TimePickerComponent {
341
336
  constructor(inj) {
342
337
  this.inj = inj;
@@ -426,7 +421,7 @@ export class TimePickerComponent {
426
421
  i0.ɵɵproperty("options", ctx.options.minute)("selectedValue", ctx.minute);
427
422
  i0.ɵɵadvance(3);
428
423
  i0.ɵɵproperty("options", ctx.options.minute)("selectedValue", ctx.second);
429
- } }, dependencies: [i3.PickerComponent, i3.PickerGroupComponent], encapsulation: 2 }); }
424
+ } }, dependencies: [i4.PickerComponent, i4.PickerGroupComponent], encapsulation: 2 }); }
430
425
  }
431
426
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimePickerComponent, [{
432
427
  type: Component,
@@ -460,5 +455,5 @@ export class TimePickerComponent {
460
455
  }], change: [{
461
456
  type: Output
462
457
  }] }); })();
463
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TimePickerComponent, { className: "TimePickerComponent", filePath: "date-time/date-time-picker.component.ts", lineNumber: 311 }); })();
464
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvZXBvY2gvc3JjL2RhdGUtdGltZS9kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQVUsUUFBUSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0osT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFjLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0IsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7SUFlckIsZ0RBTUc7SUFERCw4T0FBaUIsMkJBQW9CLEtBQUM7SUFFeEMsaUJBQXVCOzs7SUFIckIsQUFGQSxBQURBLG9EQUErQixnREFDUyxnQ0FFaEI7Ozs7SUFNMUIseUNBS0M7SUFEQyx5TkFBVSwyQkFBb0IsS0FBQztJQUNoQyxpQkFBZ0I7OztJQUZmLEFBREEsQUFEQSwyQ0FBc0IsdUJBQ1AsdUJBQ0E7Ozs7SUFVakIsa0NBRXFCO0lBQXJCLDBNQUFTLGlCQUFVLEtBQUM7SUFBQyxZQUEwQztJQUFBLGlCQUFTOzs7SUFBbkQsY0FBMEM7SUFBMUMsa0VBQTBDOzs7O0lBRy9ELGtDQUVzQjtJQUF0QiwwTUFBUyxrQkFBVyxLQUFDO0lBQUMsWUFBK0I7SUFBQSxpQkFBUzs7O0lBQXhDLGNBQStCO0lBQS9CLHVEQUErQjs7OztJQW5DekQsQUFERiw4QkFBaUMsYUFDUDtJQUN0Qix5QkFFTTtJQVdOLEFBVkEsK0dBQStDLDJGQVVBO0lB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SUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckUsQ0FBQzthQUFNLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckUsQ0FBQzthQUFNLElBQUksSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0QsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFlBQVksQ0FBQyxNQUFNO1FBQ3RCLFFBQVEsQ0FBQztJQUNiLENBQUM7SUFFRCxlQUFlO0lBRWYsQ0FBQztvSEEvRVEsbUJBQW1CO29FQUFuQixtQkFBbUI7WUFqQnBCLEFBREosc0NBQWdCLG1CQUl1QjtZQUEvQiwyR0FBVSxnQkFBWSxNQUFNLENBQUMsSUFBQztZQUFDLGlCQUFZO1lBQy9DLCtCQUFpQztZQUFBLGlCQUFDO1lBQUEsaUJBQU87WUFDekMsb0NBR3FDO1lBQWpDLDJHQUFVLGdCQUFZLFFBQVEsQ0FBQyxJQUFDO1lBQUMsaUJBQVk7WUFDakQsK0JBQWlDO1lBQUEsaUJBQUM7WUFBQSxpQkFBTztZQUN6QyxvQ0FHcUM7WUFBakMsMkdBQVUsZ0JBQVksUUFBUSxDQUFDLElBQUM7WUFDeEMsQUFEeUMsaUJBQVksRUFDcEM7O1lBYlQsY0FBd0I7WUFDeEIsQUFEQSwwQ0FBd0IsMkJBQ0Y7WUFJdEIsZUFBMEI7WUFDMUIsQUFEQSw0Q0FBMEIsNkJBQ0Y7WUFJeEIsZUFBMEI7WUFDMUIsQUFEQSw0Q0FBMEIsNkJBQ0Y7OztpRkFLM0IsbUJBQW1CO2NBckIvQixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FpQlQ7YUFDSjt5Q0FXVyxLQUFLO2tCQURaLEtBQUs7WUFJRSxHQUFHO2tCQURWLEtBQUs7WUFJRSxHQUFHO2tCQURWLEtBQUs7WUFHSSxNQUFNO2tCQUFmLE1BQU07O2tGQWxCRSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbmplY3RvciwgSW5wdXQsIE5nWm9uZSwgT25EZXN0cm95LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJzRGF0ZXBpY2tlckNvbmZpZyB9IGZyb20gJ25neC1ib290c3RyYXAvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBCc01vZGFsUmVmLCBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgQXBwIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHtmaWx0ZXJ9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuZGVjbGFyZSBjb25zdCAkO1xuZGVjbGFyZSBjb25zdCBtb21lbnQ7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnd20tZGF0ZXRpbWVwaWNrZXInLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPG5nLXRlbXBsYXRlICNkYXRldGltZXBpY2tlclRlbXBsYXRlPlxuICAgICAgPGRpdiBjbGFzcz1cImFwcC1kYXRldGltZS1waWNrZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLWRhdGV0aW1lLXBpY2tlci1vcHRpb25zXCI+XG4gICAgXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgQGlmIChtb2RlID09PSAnREFURV9USU1FJyB8fCBtb2RlID09PSAnREFURScpIHtcbiAgICAgICAgICAgIDxicy1kYXRlcGlja2VyLWlubGluZVxuICAgICAgICAgICAgICBbYnNDb25maWddPVwiYnNEYXRlcGlja2VyQ29uZmlnXCJcbiAgICAgICAgICAgICAgW2RhdGVzRGlzYWJsZWRdPVwiZXhjbHVkZWREYXRlc1RvRGlzYWJsZVwiXG4gICAgICAgICAgICAgIGJzRGF0ZXBpY2tlclxuICAgICAgICAgICAgICBbYnNWYWx1ZV09XCJjaGFuZ2VkVmFsdWVcIlxuICAgICAgICAgICAgICAoYnNWYWx1ZUNoYW5nZSk9XCJvbkRhdGVVcGRhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvYnMtZGF0ZXBpY2tlci1pbmxpbmU+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAobW9kZSA9PT0gJ0RBVEVfVElNRScgfHwgbW9kZSA9PT0gJ1RJTUUnKSB7XG4gICAgICAgICAgICA8d20tdGltZXBpY2tlclxuICAgICAgICAgICAgICBbdmFsdWVdPVwiY2hhbmdlZFZhbHVlXCJcbiAgICAgICAgICAgICAgW21pbl09XCJtaW5UaW1lXCJcbiAgICAgICAgICAgICAgW21heF09XCJtYXhUaW1lXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblRpbWVVcGRhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC93bS10aW1lcGlja2VyPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcHJpbWFyeSBkYXRlLXBpY2tlci12YWx1ZVwiPlxuICAgICAgICAgICAge3tnZXREYXRlTGFiZWwoKX19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgICAgICAgIEBpZiAobW9kZSA9PT0gJ0RBVEVfVElNRScgfHwgbW9kZSA9PT0gJ0RBVEUnKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgdG9kYXktYnRuXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRUb2RheSgpXCI+e3thcHBMb2NhbGUuTEFCRUxfVE9EQVlfREFURSB8fCBcIlRvZGF5XCIgfX08L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChtb2RlID09PSAnREFURV9USU1FJyB8fCBtb2RlID09PSAnVElNRScpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHVsbC1yaWdodCBvay1idG5cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uT2tDbGljaygpXCI+e3thcHBMb2NhbGUuTEFCRUxfT0sgfHwgXCJPa1wiIH19PC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgcHVsbC1yaWdodCBjbGVhci1idG5cIlxuICAgICAgICAgIChjbGljayk9XCJjbGVhcigpXCI+e3thcHBMb2NhbGUuTEFCRUxfQ0xFQVJfREFURSB8fCBcIkNsZWFyXCIgfX08L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIGBcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgcHJpdmF0ZSBpc0RhdGVPcGVuID0gdHJ1ZTtcblxuICAgIHByaXZhdGUgaXNUaW1lT3BlbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBhcHBMb2NhbGU6IGFueTtcblxuICAgIEBWaWV3Q2hpbGQoJ2RhdGV0aW1lcGlja2VyVGVtcGxhdGUnICwgeyBzdGF0aWM6IHRydWUgfSkgZGF0ZXRpbWVwaWNrZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHJpdmF0ZSBtb2RlOiAnREFURScgfCAnVElNRScgfCAnREFURV9USU1FJyA9ICdEQVRFX1RJTUUnO1xuXG4gICAgQElucHV0KClcbiAgICBwcml2YXRlIHBsYWNlbWVudDogJ01PREFMJyB8ICdJTkxJTkUnID0gJ01PREFMJztcblxuICAgIEBJbnB1dChcImNvbmZpZ1wiKVxuICAgIHByaXZhdGUgX2JzRGF0ZXBpY2tlckNvbmZpZzogQnNEYXRlcGlja2VyQ29uZmlnO1xuXG4gICAgQElucHV0KClcbiAgICBwcml2YXRlIG1pblRpbWU6IERhdGU7XG5cbiAgICBASW5wdXQoKVxuICAgIHByaXZhdGUgbWF4VGltZTogRGF0ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHJpdmF0ZSBfZGlzcGxheUZvcm1hdDogc3RyaW5nO1xuXG4gICAgQE91dHB1dCgpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcblxuICAgIHByaXZhdGUgX3ZhbHVlID0gbmV3IERhdGUoKTtcblxuICAgIHByaXZhdGUgY2hhbmdlZFZhbHVlID0gbnVsbDtcblxuICAgIHByaXZhdGUgbW9kYWxSZWY6IEJzTW9kYWxSZWY7XG5cbiAgICBASW5wdXQoKVxuICAgIHByaXZhdGUgZXhjbHVkZWREYXRlc1RvRGlzYWJsZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgaW5qOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBic01vZGFsU2VydmljZTogQnNNb2RhbFNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5hcHBMb2NhbGUgPSBpbmouZ2V0KEFwcCkuYXBwTG9jYWxlIHx8IHt9O1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhbHVlKGQ6IERhdGUpIHtcbiAgICAgICAgZCA9IGQgfHwgbmV3IERhdGUoKTtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBkO1xuICAgICAgICB0aGlzLmNoYW5nZWRWYWx1ZSA9IGQ7XG4gICAgfVxuXG5cbiAgICBASW5wdXQoXCJjb25maWdcIilcbiAgICBzZXQgYnNEYXRlcGlja2VyQ29uZmlnKGNvbmZpZzogQnNEYXRlcGlja2VyQ29uZmlnKSB7XG4gICAgICAgIHRoaXMuX2JzRGF0ZXBpY2tlckNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgdGhpcy5fYnNEYXRlcGlja2VyQ29uZmlnLnNob3dDbGVhckJ1dHRvbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9ic0RhdGVwaWNrZXJDb25maWcuc2hvd1RvZGF5QnV0dG9uID0gZmFsc2U7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgZXhjbHVkZWREYXlzVG9EaXNhYmxlKHY6IG51bWJlcltdKSB7XG4gICAgICAgIHRoaXMuX2JzRGF0ZXBpY2tlckNvbmZpZy5kYXlzRGlzYWJsZWQgPSB2O1xuICAgIH1cblxuICAgIGdldCBic0RhdGVwaWNrZXJDb25maWcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ic0RhdGVwaWNrZXJDb25maWc7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgZGlzcGxheUZvcm1hdChmb3JtYXQ6IHN0cmluZykge1xuICAgICAgICBpZiAoZm9ybWF0KSB7XG4gICAgICAgICAgICB0aGlzLl9kaXNwbGF5Rm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoL3kvZywgXCJZXCIpLnJlcGxhY2UoL2QvZywgXCJEXCIpLnJlcGxhY2UoXCJhXCIsIFwiQVwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhbGlkYXRlU2VsZWN0ZWREYXRlKCkge1xuICAgICAgICBpZiAoIXRoaXMuY2hhbmdlZFZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjZCA9IG1vbWVudCh0aGlzLmNoYW5nZWRWYWx1ZSk7XG4gICAgICAgIGNvbnN0IG1pbkRhdGUgPSB0aGlzLl9ic0RhdGVwaWNrZXJDb25maWc/Lm1pbkRhdGU7XG4gICAgICAgIGNvbnN0IG1heERhdGUgPSB0aGlzLl9ic0RhdGVwaWNrZXJDb25maWc/Lm1heERhdGU7XG4gICAgICAgIGlmIChtaW5EYXRlXG4gICAgICAgICAgICAmJiAoKHRoaXMubW9kZSA9PT0gJ0RBVEUnXG4gICAgICAgICAgICAgICAgICAgICYmIG1vbWVudChtaW5EYXRlKS5zdGFydE9mKCdkYXknKS50b0RhdGUoKSA+IHRoaXMuY2hhbmdlZFZhbHVlKVxuICAgICAgICAgICAgICAgIHx8ICh0aGlzLm1vZGUgIT09ICdEQVRFJ1xuICAgICAgICAgICAgICAgICAgICAmJiBtaW5EYXRlID4gdGhpcy5jaGFuZ2VkVmFsdWUpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtYXhEYXRlXG4gICAgICAgICAgICAmJiAoKHRoaXMubW9kZSA9PT0gJ0RBVEUnXG4gICAgICAgICAgICAgICAgICAgICYmIG1vbWVudChtYXhEYXRlKS5lbmRPZignZGF5JykudG9EYXRlKCkgPCB0aGlzLmNoYW5nZWRWYWx1ZSlcbiAgICAgICAgICAgICAgICB8fCAodGhpcy5tb2RlICE9PSAnREFURSdcbiAgICAgICAgICAgICAgICAgICAgJiYgbWF4RGF0ZSA8IHRoaXMuY2hhbmdlZFZhbHVlKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fYnNEYXRlcGlja2VyQ29uZmlnPy5kYXlzRGlzYWJsZWQ/LmluZGV4T2YoY2QuZGF5KCkpID49IDApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjZFN0ID0gY2Quc3RhcnRPZignZGF5JykudG9EYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgICBpZiAodGhpcy5leGNsdWRlZERhdGVzVG9EaXNhYmxlPy5maW5kKGQgPT4gZC5nZXRUaW1lKCkgPT09IGNkU3QpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZ2V0IGRpc3BsYXlGb3JtYXQoKSB7XG4gICAgICAgIGlmICh0aGlzLl9kaXNwbGF5Rm9ybWF0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheUZvcm1hdDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGhpZ2hsaWdodCB0aGUgY3VycmVudCBkYXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBoaWdodGxpZ2h0VG9kYXkoKSB7XG4gICAgICAgIGNvbnN0IHRvRGF5ID0gbmV3IERhdGUoKS5nZXREYXRlKCkudG9TdHJpbmcoKTtcbiAgICAgICAgZmlsdGVyKCQoYGJvZHkgPiBtb2RhbC1jb250YWluZXIgLmRhdGUtcGlja2VyLW1vZGFsIHNwYW46Y29udGFpbnMoJHt0b0RheX0pYClcbiAgICAgICAgICAgIC5ub3QoJy5pcy1vdGhlci1tb250aCwuY3VycmVudC1kYXRlJyksIChvYmopID0+IHtcbiAgICAgICAgICAgIGlmICgkKG9iaikudGV4dCgpID09PSB0b0RheSkge1xuICAgICAgICAgICAgICAgICQob2JqKS5hZGRDbGFzcygnY3VycmVudC1kYXRlIHRleHQtaW5mbycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGVPbkNsaWNrKCkge1xuICAgICAgICAkKCdib2R5Pm1vZGFsLWNvbnRhaW5lciAuZGF0ZS1waWNrZXItbW9kYWwgLmFwcC1kYXRldGltZS1waWNrZXInKVxuICAgICAgICAgICAgLmNsaWNrKCgkZXZlbnQpID0+ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKSk7XG4gICAgICAgICQoJ2JvZHk+bW9kYWwtY29udGFpbmVyIC5kYXRlLXBpY2tlci1tb2RhbCcpLmNsaWNrKCgpID0+IHRoaXMub25DYW5jZWxDbGljaygpKTtcbiAgICB9XG5cbiAgICBnZXREYXRlTGFiZWwoKSB7XG4gICAgICAgIHJldHVybiBtb21lbnQodGhpcy5jaGFuZ2VkVmFsdWUpLmZvcm1hdCh0aGlzLmRpc3BsYXlGb3JtYXQpO1xuICAgIH1cblxuICAgIG9wZW5EYXRlUGlja2VyKCkge1xuICAgICAgICB0aGlzLmlzVGltZU9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc0RhdGVPcGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvcGVuVGltZVBpY2tlcigpIHtcbiAgICAgICAgdGhpcy5pc1RpbWVPcGVuID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc0RhdGVPcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRGF0ZVVwZGF0ZShuZXdWYWwpIHtcbiAgICAgICAgY29uc3Qgb2xkVmFsID0gdGhpcy5jaGFuZ2VkVmFsdWU7XG4gICAgICAgICBpZiAodGhpcy5tb2RlID09PSAnREFURScpIHtcbiAgICAgICAgICAgIG5ld1ZhbC5zZXRIb3VycygwKTtcbiAgICAgICAgICAgIG5ld1ZhbC5zZXRNaW51dGVzKDApO1xuICAgICAgICAgICAgbmV3VmFsLnNldFNlY29uZHMoMCk7XG4gICAgICAgICAgICBuZXdWYWwuc2V0TWlsbGlzZWNvbmRzKDApO1xuICAgICAgICB9IGVsc2UgaWYgKG9sZFZhbCAmJiBuZXdWYWwpIHtcbiAgICAgICAgICAgIG5ld1ZhbC5zZXRIb3VycyhvbGRWYWwuZ2V0SG91cnMoKSk7XG4gICAgICAgICAgICBuZXdWYWwuc2V0TWludXRlcyhvbGRWYWwuZ2V0TWludXRlcygpKTtcbiAgICAgICAgICAgIG5ld1ZhbC5zZXRTZWNvbmRzKG9sZFZhbC5nZXRTZWNvbmRzKCkpO1xuICAgICAgICAgICAgbmV3VmFsLnNldE1pbGxpc2Vjb25kcyhvbGRWYWwuZ2V0TWlsbGlzZWNvbmRzKCkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2hhbmdlZFZhbHVlID0gbmV3VmFsO1xuICAgICAgICBpZiAodGhpcy5tb2RlID09PSAnREFURSdcbiAgICAgICAgICAgICYmIG9sZFZhbCAhPT0gbmV3VmFsXG4gICAgICAgICAgICAmJiB0aGlzLnZhbGlkYXRlU2VsZWN0ZWREYXRlKCkpIHtcbiAgICAgICAgICAgIHRoaXMub25Pa0NsaWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25UaW1lVXBkYXRlKG5ld1ZhbCkge1xuICAgICAgICB0aGlzLmNoYW5nZWRWYWx1ZSA9IG5ld1ZhbDtcbiAgICB9XG5cbiAgICBzaG93KCkge1xuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgIHRoaXMubW9kYWxSZWYgPSB0aGlzLmJzTW9kYWxTZXJ2aWNlLnNob3codGhpcy5kYXRldGltZXBpY2tlclRlbXBsYXRlLCB7XG4gICAgICAgICAgICBhbmltYXRlZDogdHJ1ZSxcbiAgICAgICAgICAgIGJhY2tkcm9wOiAnc3RhdGljJyxcbiAgICAgICAgICAgIGNsYXNzOiAnZGF0ZS1waWNrZXItbW9kYWwgbW9kYWwtZGlhbG9nLWNlbnRlcmVkJ1xuICAgICAgICB9KTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IHRoaXMuaGlkZU9uQ2xpY2soKX0sIDUwMCk7XG4gICAgfVxuXG4gICAgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuY2hhbmdlZFZhbHVlID0gbnVsbDtcbiAgICAgICAgdGhpcy50cmlnZ2VyQ2hhbmdlKCk7XG4gICAgICAgIHRoaXMuaGlkZU1vZGFsKCk7XG4gICAgfVxuXG4gICAgc2V0VG9kYXkoKSB7XG4gICAgICAgIGNvbnN0IHRvZGF5ID0gbW9tZW50KCkuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG4gICAgICAgIHRoaXMub25EYXRlVXBkYXRlKHRvZGF5KTtcbiAgICB9XG5cbiAgICByZXNldCgpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VkVmFsdWUgPSB0aGlzLl92YWx1ZTtcbiAgICB9XG5cbiAgICBoaWRlTW9kYWwoKSB7XG4gICAgICAgIGlmICh0aGlzLm1vZGFsUmVmPy5pZCkge1xuICAgICAgICAgICAgdGhpcy5ic01vZGFsU2VydmljZS5oaWRlKHRoaXMubW9kYWxSZWYuaWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DYW5jZWxDbGljaygpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VkVmFsdWUgPSB0aGlzLl92YWx1ZTtcbiAgICAgICAgdGhpcy5oaWRlTW9kYWwoKTtcbiAgICB9XG5cbiAgICBvbk9rQ2xpY2soKSB7XG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXRlU2VsZWN0ZWREYXRlKCkpIHtcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlckNoYW5nZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGlkZU1vZGFsKCk7XG4gICAgfVxuXG4gICAgdHJpZ2dlckNoYW5nZSgpIHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgIT09IHRoaXMuY2hhbmdlZFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuY2hhbmdlZFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcblxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpZGVNb2RhbCgpO1xuICAgIH1cblxufVxuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnd20tdGltZXBpY2tlcicsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHdtLXBpY2tlcmdyb3VwPlxuICAgICAgICAgICAgPHdtLXBpY2tlclxuICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cIm9wdGlvbnMuaG91clwiXG4gICAgICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwiaG91clwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXQoJGV2ZW50LCAnSE9VUicpXCI+PC93bS1waWNrZXI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwcC10aW1lLXNlcGFyYXRvclwiPjo8L3NwYW4+XG4gICAgICAgICAgICA8d20tcGlja2VyXG4gICAgICAgICAgICAgICAgW29wdGlvbnNdPVwib3B0aW9ucy5taW51dGVcIlxuICAgICAgICAgICAgICAgIFtzZWxlY3RlZFZhbHVlXT1cIm1pbnV0ZVwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXQoJGV2ZW50LCAnTUlOVVRFJylcIj48L3dtLXBpY2tlcj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBwLXRpbWUtc2VwYXJhdG9yXCI+Ojwvc3Bhbj5cbiAgICAgICAgICAgIDx3bS1waWNrZXJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJvcHRpb25zLm1pbnV0ZVwiXG4gICAgICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwic2Vjb25kXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNldCgkZXZlbnQsICdTRUNPTkQnKVwiPjwvd20tcGlja2VyPlxuICAgICAgICA8L3dtLXBpY2tlcmdyb3VwPlxuICAgIGBcbn0pXG5leHBvcnQgY2xhc3MgVGltZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gICAgb3B0aW9ucyA9IHtcbiAgICAgICAgaG91cjogW10sXG4gICAgICAgIG1pbnV0ZTogW10sXG4gICAgICAgIHNlY29uZDogW10sXG4gICAgICAgIG1lcmlkaWFuOiBbJ0FNJywgJ1BNJ11cbiAgICB9O1xuXG4gICAgQElucHV0KClcbiAgICBwcml2YXRlIHZhbHVlID0gbmV3IERhdGUoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHJpdmF0ZSBtaW46IERhdGUgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBwcml2YXRlIG1heDogRGF0ZSA9IG51bGw7XG5cbiAgICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBpbmo6IEluamVjdG9yKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy5ob3VyID0gdGhpcy5wb3B1bGF0ZU51bWJlcnMoMCwgMjMpO1xuICAgICAgICB0aGlzLm9wdGlvbnMubWludXRlID0gdGhpcy5wb3B1bGF0ZU51bWJlcnMoMCwgNTkpO1xuICAgICAgICB0aGlzLm9wdGlvbnMuc2Vjb25kID0gdGhpcy5wb3B1bGF0ZU51bWJlcnMoMCwgNTkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcG9wdWxhdGVOdW1iZXJzKHN0YXJ0OiBudW1iZXIsIHRvOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgYXJyID0gW107XG4gICAgICAgIGZvcihsZXQgaSA9IHN0YXJ0OyBpIDw9IHRvOyBpKyspIHtcbiAgICAgICAgICAgIGFyci5wdXNoKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogKGkgPCAxMCA/ICcwJyA6ICcnKSArIGksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFycjtcbiAgICB9XG5cbiAgICBzZXQoe2luZGV4LCB2YWx1ZX0sIHVuaXQ6ICdIT1VSJyB8ICdNSU5VVEUnIHwgJ1NFQ09ORCcgfCAnTUVSSURJQU4nKSB7XG4gICAgICAgIGlmICh1bml0ID09PSAnSE9VUicpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBtb21lbnQodGhpcy52YWx1ZSkuaG91cihwYXJzZUludCh2YWx1ZSkpLnRvRGF0ZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKHVuaXQgPT09ICdNSU5VVEUnKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbW9tZW50KHRoaXMudmFsdWUpLm1pbnV0ZShwYXJzZUludCh2YWx1ZSkpLnRvRGF0ZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKHVuaXQgPT09ICdTRUNPTkQnKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbW9tZW50KHRoaXMudmFsdWUpLnNlY29uZChwYXJzZUludCh2YWx1ZSkpLnRvRGF0ZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKHVuaXQgPT09ICdNRVJJRElBTicpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBtb21lbnQodGhpcy52YWx1ZSkubWludXRlKHZhbHVlKS50b0RhdGUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5taW4gJiYgdGhpcy52YWx1ZSA8IHRoaXMubWluKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5taW47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubWF4ICYmIHRoaXMudmFsdWUgPiB0aGlzLm1heCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubWF4O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGhvdXIoKSB7XG4gICAgICAgIHJldHVybiBtb21lbnQodGhpcy52YWx1ZSkuaG91cigpO1xuICAgIH1cblxuICAgIGdldCBtaW51dGUoKSB7XG4gICAgICAgIHJldHVybiBtb21lbnQodGhpcy52YWx1ZSkubWludXRlKCk7XG4gICAgfVxuXG4gICAgZ2V0IHNlY29uZCgpIHtcbiAgICAgICAgcmV0dXJuIG1vbWVudCh0aGlzLnZhbHVlKS5zZWNvbmQoKTtcbiAgICB9XG5cbiAgICBnZXQgbWVyaWRpYW4oKSB7XG4gICAgICAgIHJldHVybiAnQU0nO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkRhdGVVcGRhdGUobmV3VmFsKSB7XG4gICAgICAgIGRlYnVnZ2VyO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcblxuICAgIH1cblxufVxuIl19
458
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TimePickerComponent, { className: "TimePickerComponent", filePath: "date-time/date-time-picker.component.ts", lineNumber: 305 }); })();
459
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvZXBvY2gvc3JjL2RhdGUtdGltZS9kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQVUsUUFBUSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0osT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFjLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0IsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7O0lBY2pCLGdEQU1vRDtJQURoRCx1UEFBaUIsMkJBQW9CLEtBQUM7SUFFMUMsaUJBQXVCOzs7SUFIbkIsQUFGQSxBQURBLG9EQUErQixnREFDUyxnQ0FFaEI7Ozs7SUFJNUIseUNBS29EO0lBRGhELDJOQUFVLDJCQUFvQixLQUFDO0lBQ2lCLGlCQUFnQjs7O0lBRmhFLEFBREEsQUFEQSwyQ0FBc0IsdUJBQ1AsdUJBQ0E7Ozs7SUFRbkIsa0NBR3lCO0lBQXJCLHFNQUFTLGlCQUFVLEtBQUM7SUFBQyxZQUEwQztJQUFBLGlCQUFTOzs7SUFBbkQsY0FBMEM7SUFBMUMsa0VBQTBDOzs7O0lBQ25FLGtDQUcwQjtJQUF0QixxTUFBUyxrQkFBVyxLQUFDO0lBQUMsWUFBK0I7SUFBQSxpQkFBUzs7O0lBQXhDLGNBQStCO0lBQS9CLHVEQUErQjs7OztJQTlCN0QsQUFESiw4QkFBaUMsYUFDTDtJQUNwQix5QkFFTTtJQVNOLEFBUkEsd0hBTW9ELDZG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Q0FBQzthQUFNLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckUsQ0FBQzthQUFNLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckUsQ0FBQzthQUFNLElBQUksSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0QsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFlBQVksQ0FBQyxNQUFNO1FBQ3RCLFFBQVEsQ0FBQztJQUNiLENBQUM7SUFFRCxlQUFlO0lBRWYsQ0FBQztvSEEvRVEsbUJBQW1CO29FQUFuQixtQkFBbUI7WUFqQnBCLEFBREosc0NBQWdCLG1CQUl1QjtZQUEvQiwyR0FBVSxnQkFBWSxNQUFNLENBQUMsSUFBQztZQUFDLGlCQUFZO1lBQy9DLCtCQUFpQztZQUFBLGlCQUFDO1lBQUEsaUJBQU87WUFDekMsb0NBR3FDO1lBQWpDLDJHQUFVLGdCQUFZLFFBQVEsQ0FBQyxJQUFDO1lBQUMsaUJBQVk7WUFDakQsK0JBQWlDO1lBQUEsaUJBQUM7WUFBQSxpQkFBTztZQUN6QyxvQ0FHcUM7WUFBakMsMkdBQVUsZ0JBQVksUUFBUSxDQUFDLElBQUM7WUFDeEMsQUFEeUMsaUJBQVksRUFDcEM7O1lBYlQsY0FBd0I7WUFDeEIsQUFEQSwwQ0FBd0IsMkJBQ0Y7WUFJdEIsZUFBMEI7WUFDMUIsQUFEQSw0Q0FBMEIsNkJBQ0Y7WUFJeEIsZUFBMEI7WUFDMUIsQUFEQSw0Q0FBMEIsNkJBQ0Y7OztpRkFLM0IsbUJBQW1CO2NBckIvQixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FpQlQ7YUFDSjt5Q0FXVyxLQUFLO2tCQURaLEtBQUs7WUFJRSxHQUFHO2tCQURWLEtBQUs7WUFJRSxHQUFHO2tCQURWLEtBQUs7WUFHSSxNQUFNO2tCQUFmLE1BQU07O2tGQWxCRSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbmplY3RvciwgSW5wdXQsIE5nWm9uZSwgT25EZXN0cm95LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJzRGF0ZXBpY2tlckNvbmZpZyB9IGZyb20gJ25neC1ib290c3RyYXAvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBCc01vZGFsUmVmLCBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgQXBwIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHtmaWx0ZXJ9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuZGVjbGFyZSBjb25zdCAkO1xuZGVjbGFyZSBjb25zdCBtb21lbnQ7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnd20tZGF0ZXRpbWVwaWNrZXInLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPG5nLXRlbXBsYXRlICNkYXRldGltZXBpY2tlclRlbXBsYXRlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwLWRhdGV0aW1lLXBpY2tlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLWRhdGV0aW1lLXBpY2tlci1vcHRpb25zXCI+XG5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8YnMtZGF0ZXBpY2tlci1pbmxpbmVcbiAgICAgICAgICAgICAgICAgICAgW2JzQ29uZmlnXT1cImJzRGF0ZXBpY2tlckNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgIFtkYXRlc0Rpc2FibGVkXT1cImV4Y2x1ZGVkRGF0ZXNUb0Rpc2FibGVcIlxuICAgICAgICAgICAgICAgICAgICBic0RhdGVwaWNrZXJcbiAgICAgICAgICAgICAgICAgICAgW2JzVmFsdWVdPVwiY2hhbmdlZFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgKGJzVmFsdWVDaGFuZ2UpPVwib25EYXRlVXBkYXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm1vZGUgPT09ICdEQVRFX1RJTUUnIHx8IG1vZGUgPT09ICdEQVRFJ1wiPlxuICAgICAgICAgICAgICAgIDwvYnMtZGF0ZXBpY2tlci1pbmxpbmU+XG4gICAgICAgICAgICAgICAgPHdtLXRpbWVwaWNrZXJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNoYW5nZWRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFttaW5dPVwibWluVGltZVwiXG4gICAgICAgICAgICAgICAgICAgIFttYXhdPVwibWF4VGltZVwiXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25UaW1lVXBkYXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm1vZGUgPT09ICdEQVRFX1RJTUUnIHx8IG1vZGUgPT09ICdUSU1FJ1wiPjwvd20tdGltZXBpY2tlcj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcHJpbWFyeSBkYXRlLXBpY2tlci12YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICB7e2dldERhdGVMYWJlbCgpfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibW9kZSA9PT0gJ0RBVEVfVElNRScgfHwgbW9kZSA9PT0gJ0RBVEUnXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSB0b2RheS1idG5cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0VG9kYXkoKVwiPnt7YXBwTG9jYWxlLkxBQkVMX1RPREFZX0RBVEUgfHwgXCJUb2RheVwiIH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBwdWxsLXJpZ2h0IG9rLWJ0blwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibW9kZSA9PT0gJ0RBVEVfVElNRScgfHwgbW9kZSA9PT0gJ1RJTUUnXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uT2tDbGljaygpXCI+e3thcHBMb2NhbGUuTEFCRUxfT0sgfHwgXCJPa1wiIH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHB1bGwtcmlnaHQgY2xlYXItYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyKClcIj57e2FwcExvY2FsZS5MQUJFTF9DTEVBUl9EQVRFIHx8IFwiQ2xlYXJcIiB9fTwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlVGltZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgICBwcml2YXRlIGlzRGF0ZU9wZW4gPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBpc1RpbWVPcGVuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGFwcExvY2FsZTogYW55O1xuXG4gICAgQFZpZXdDaGlsZCgnZGF0ZXRpbWVwaWNrZXJUZW1wbGF0ZScgLCB7IHN0YXRpYzogdHJ1ZSB9KSBkYXRldGltZXBpY2tlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQElucHV0KClcbiAgICBwcml2YXRlIG1vZGU6ICdEQVRFJyB8ICdUSU1FJyB8ICdEQVRFX1RJTUUnID0gJ0RBVEVfVElNRSc7XG5cbiAgICBASW5wdXQoKVxuICAgIHByaXZhdGUgcGxhY2VtZW50OiAnTU9EQUwnIHwgJ0lOTElORScgPSAnTU9EQUwnO1xuXG4gICAgQElucHV0KFwiY29uZmlnXCIpXG4gICAgcHJpdmF0ZSBfYnNEYXRlcGlja2VyQ29uZmlnOiBCc0RhdGVwaWNrZXJDb25maWc7XG5cbiAgICBASW5wdXQoKVxuICAgIHByaXZhdGUgbWluVGltZTogRGF0ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHJpdmF0ZSBtYXhUaW1lOiBEYXRlO1xuXG4gICAgQElucHV0KClcbiAgICBwcml2YXRlIF9kaXNwbGF5Rm9ybWF0OiBzdHJpbmc7XG5cbiAgICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gICAgcHJpdmF0ZSBfdmFsdWUgPSBuZXcgRGF0ZSgpO1xuXG4gICAgcHJpdmF0ZSBjaGFuZ2VkVmFsdWUgPSBudWxsO1xuXG4gICAgcHJpdmF0ZSBtb2RhbFJlZjogQnNNb2RhbFJlZjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHJpdmF0ZSBleGNsdWRlZERhdGVzVG9EaXNhYmxlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBpbmo6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIGJzTW9kYWxTZXJ2aWNlOiBCc01vZGFsU2VydmljZSkge1xuICAgICAgICB0aGlzLmFwcExvY2FsZSA9IGluai5nZXQoQXBwKS5hcHBMb2NhbGUgfHwge307XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgdmFsdWUoZDogRGF0ZSkge1xuICAgICAgICBkID0gZCB8fCBuZXcgRGF0ZSgpO1xuICAgICAgICB0aGlzLl92YWx1ZSA9IGQ7XG4gICAgICAgIHRoaXMuY2hhbmdlZFZhbHVlID0gZDtcbiAgICB9XG5cblxuICAgIEBJbnB1dChcImNvbmZpZ1wiKVxuICAgIHNldCBic0RhdGVwaWNrZXJDb25maWcoY29uZmlnOiBCc0RhdGVwaWNrZXJDb25maWcpIHtcbiAgICAgICAgdGhpcy5fYnNEYXRlcGlja2VyQ29uZmlnID0gY29uZmlnO1xuICAgICAgICB0aGlzLl9ic0RhdGVwaWNrZXJDb25maWcuc2hvd0NsZWFyQnV0dG9uID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2JzRGF0ZXBpY2tlckNvbmZpZy5zaG93VG9kYXlCdXR0b24gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBleGNsdWRlZERheXNUb0Rpc2FibGUodjogbnVtYmVyW10pIHtcbiAgICAgICAgdGhpcy5fYnNEYXRlcGlja2VyQ29uZmlnLmRheXNEaXNhYmxlZCA9IHY7XG4gICAgfVxuXG4gICAgZ2V0IGJzRGF0ZXBpY2tlckNvbmZpZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JzRGF0ZXBpY2tlckNvbmZpZztcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBkaXNwbGF5Rm9ybWF0KGZvcm1hdDogc3RyaW5nKSB7XG4gICAgICAgIGlmIChmb3JtYXQpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc3BsYXlGb3JtYXQgPSBmb3JtYXQucmVwbGFjZSgveS9nLCBcIllcIikucmVwbGFjZSgvZC9nLCBcIkRcIikucmVwbGFjZShcImFcIiwgXCJBXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFsaWRhdGVTZWxlY3RlZERhdGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5jaGFuZ2VkVmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNkID0gbW9tZW50KHRoaXMuY2hhbmdlZFZhbHVlKTtcbiAgICAgICAgY29uc3QgbWluRGF0ZSA9IHRoaXMuX2JzRGF0ZXBpY2tlckNvbmZpZz8ubWluRGF0ZTtcbiAgICAgICAgY29uc3QgbWF4RGF0ZSA9IHRoaXMuX2JzRGF0ZXBpY2tlckNvbmZpZz8ubWF4RGF0ZTtcbiAgICAgICAgaWYgKG1pbkRhdGVcbiAgICAgICAgICAgICYmICgodGhpcy5tb2RlID09PSAnREFURSdcbiAgICAgICAgICAgICAgICAgICAgJiYgbW9tZW50KG1pbkRhdGUpLnN0YXJ0T2YoJ2RheScpLnRvRGF0ZSgpID4gdGhpcy5jaGFuZ2VkVmFsdWUpXG4gICAgICAgICAgICAgICAgfHwgKHRoaXMubW9kZSAhPT0gJ0RBVEUnXG4gICAgICAgICAgICAgICAgICAgICYmIG1pbkRhdGUgPiB0aGlzLmNoYW5nZWRWYWx1ZSkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1heERhdGVcbiAgICAgICAgICAgICYmICgodGhpcy5tb2RlID09PSAnREFURSdcbiAgICAgICAgICAgICAgICAgICAgJiYgbW9tZW50KG1heERhdGUpLmVuZE9mKCdkYXknKS50b0RhdGUoKSA8IHRoaXMuY2hhbmdlZFZhbHVlKVxuICAgICAgICAgICAgICAgIHx8ICh0aGlzLm1vZGUgIT09ICdEQVRFJ1xuICAgICAgICAgICAgICAgICAgICAmJiBtYXhEYXRlIDwgdGhpcy5jaGFuZ2VkVmFsdWUpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9ic0RhdGVwaWNrZXJDb25maWc/LmRheXNEaXNhYmxlZD8uaW5kZXhPZihjZC5kYXkoKSkgPj0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNkU3QgPSBjZC5zdGFydE9mKCdkYXknKS50b0RhdGUoKS5nZXRUaW1lKCk7XG4gICAgICAgIGlmICh0aGlzLmV4Y2x1ZGVkRGF0ZXNUb0Rpc2FibGU/LmZpbmQoZCA9PiBkLmdldFRpbWUoKSA9PT0gY2RTdCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBnZXQgZGlzcGxheUZvcm1hdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2Rpc3BsYXlGb3JtYXQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kaXNwbGF5Rm9ybWF0O1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gaGlnaGxpZ2h0IHRoZSBjdXJyZW50IGRhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGhpZ2h0bGlnaHRUb2RheSgpIHtcbiAgICAgICAgY29uc3QgdG9EYXkgPSBuZXcgRGF0ZSgpLmdldERhdGUoKS50b1N0cmluZygpO1xuICAgICAgICBmaWx0ZXIoJChgYm9keSA+IG1vZGFsLWNvbnRhaW5lciAuZGF0ZS1waWNrZXItbW9kYWwgc3Bhbjpjb250YWlucygke3RvRGF5fSlgKVxuICAgICAgICAgICAgLm5vdCgnLmlzLW90aGVyLW1vbnRoLC5jdXJyZW50LWRhdGUnKSwgKG9iaikgPT4ge1xuICAgICAgICAgICAgaWYgKCQob2JqKS50ZXh0KCkgPT09IHRvRGF5KSB7XG4gICAgICAgICAgICAgICAgJChvYmopLmFkZENsYXNzKCdjdXJyZW50LWRhdGUgdGV4dC1pbmZvJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGlkZU9uQ2xpY2soKSB7XG4gICAgICAgICQoJ2JvZHk+bW9kYWwtY29udGFpbmVyIC5kYXRlLXBpY2tlci1tb2RhbCAuYXBwLWRhdGV0aW1lLXBpY2tlcicpXG4gICAgICAgICAgICAuY2xpY2soKCRldmVudCkgPT4gJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpKTtcbiAgICAgICAgJCgnYm9keT5tb2RhbC1jb250YWluZXIgLmRhdGUtcGlja2VyLW1vZGFsJykuY2xpY2soKCkgPT4gdGhpcy5vbkNhbmNlbENsaWNrKCkpO1xuICAgIH1cblxuICAgIGdldERhdGVMYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIG1vbWVudCh0aGlzLmNoYW5nZWRWYWx1ZSkuZm9ybWF0KHRoaXMuZGlzcGxheUZvcm1hdCk7XG4gICAgfVxuXG4gICAgb3BlbkRhdGVQaWNrZXIoKSB7XG4gICAgICAgIHRoaXMuaXNUaW1lT3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzRGF0ZU9wZW4gPSB0cnVlO1xuICAgIH1cblxuICAgIG9wZW5UaW1lUGlja2VyKCkge1xuICAgICAgICB0aGlzLmlzVGltZU9wZW4gPSB0cnVlO1xuICAgICAgICB0aGlzLmlzRGF0ZU9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25EYXRlVXBkYXRlKG5ld1ZhbCkge1xuICAgICAgICBjb25zdCBvbGRWYWwgPSB0aGlzLmNoYW5nZWRWYWx1ZTtcbiAgICAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdEQVRFJykge1xuICAgICAgICAgICAgbmV3VmFsLnNldEhvdXJzKDApO1xuICAgICAgICAgICAgbmV3VmFsLnNldE1pbnV0ZXMoMCk7XG4gICAgICAgICAgICBuZXdWYWwuc2V0U2Vjb25kcygwKTtcbiAgICAgICAgICAgIG5ld1ZhbC5zZXRNaWxsaXNlY29uZHMoMCk7XG4gICAgICAgIH0gZWxzZSBpZiAob2xkVmFsICYmIG5ld1ZhbCkge1xuICAgICAgICAgICAgbmV3VmFsLnNldEhvdXJzKG9sZFZhbC5nZXRIb3VycygpKTtcbiAgICAgICAgICAgIG5ld1ZhbC5zZXRNaW51dGVzKG9sZFZhbC5nZXRNaW51dGVzKCkpO1xuICAgICAgICAgICAgbmV3VmFsLnNldFNlY29uZHMob2xkVmFsLmdldFNlY29uZHMoKSk7XG4gICAgICAgICAgICBuZXdWYWwuc2V0TWlsbGlzZWNvbmRzKG9sZFZhbC5nZXRNaWxsaXNlY29uZHMoKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGFuZ2VkVmFsdWUgPSBuZXdWYWw7XG4gICAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdEQVRFJ1xuICAgICAgICAgICAgJiYgb2xkVmFsICE9PSBuZXdWYWxcbiAgICAgICAgICAgICYmIHRoaXMudmFsaWRhdGVTZWxlY3RlZERhdGUoKSkge1xuICAgICAgICAgICAgdGhpcy5vbk9rQ2xpY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblRpbWVVcGRhdGUobmV3VmFsKSB7XG4gICAgICAgIHRoaXMuY2hhbmdlZFZhbHVlID0gbmV3VmFsO1xuICAgIH1cblxuICAgIHNob3coKSB7XG4gICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgdGhpcy5tb2RhbFJlZiA9IHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdyh0aGlzLmRhdGV0aW1lcGlja2VyVGVtcGxhdGUsIHtcbiAgICAgICAgICAgIGFuaW1hdGVkOiB0cnVlLFxuICAgICAgICAgICAgYmFja2Ryb3A6ICdzdGF0aWMnLFxuICAgICAgICAgICAgY2xhc3M6ICdkYXRlLXBpY2tlci1tb2RhbCBtb2RhbC1kaWFsb2ctY2VudGVyZWQnXG4gICAgICAgIH0pO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgdGhpcy5oaWRlT25DbGljaygpfSwgNTAwKTtcbiAgICB9XG5cbiAgICBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VkVmFsdWUgPSBudWxsO1xuICAgICAgICB0aGlzLnRyaWdnZXJDaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5oaWRlTW9kYWwoKTtcbiAgICB9XG5cbiAgICBzZXRUb2RheSgpIHtcbiAgICAgICAgY29uc3QgdG9kYXkgPSBtb21lbnQoKS5zdGFydE9mKCdkYXknKS50b0RhdGUoKTtcbiAgICAgICAgdGhpcy5vbkRhdGVVcGRhdGUodG9kYXkpO1xuICAgIH1cblxuICAgIHJlc2V0KCkge1xuICAgICAgICB0aGlzLmNoYW5nZWRWYWx1ZSA9IHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIGhpZGVNb2RhbCgpIHtcbiAgICAgICAgaWYgKHRoaXMubW9kYWxSZWY/LmlkKSB7XG4gICAgICAgICAgICB0aGlzLmJzTW9kYWxTZXJ2aWNlLmhpZGUodGhpcy5tb2RhbFJlZi5pZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNhbmNlbENsaWNrKCkge1xuICAgICAgICB0aGlzLmNoYW5nZWRWYWx1ZSA9IHRoaXMuX3ZhbHVlO1xuICAgICAgICB0aGlzLmhpZGVNb2RhbCgpO1xuICAgIH1cblxuICAgIG9uT2tDbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGVTZWxlY3RlZERhdGUoKSkge1xuICAgICAgICAgICAgdGhpcy50cmlnZ2VyQ2hhbmdlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oaWRlTW9kYWwoKTtcbiAgICB9XG5cbiAgICB0cmlnZ2VyQ2hhbmdlKCkge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSAhPT0gdGhpcy5jaGFuZ2VkVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5jaGFuZ2VkVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuXG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlkZU1vZGFsKCk7XG4gICAgfVxuXG59XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd3bS10aW1lcGlja2VyJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8d20tcGlja2VyZ3JvdXA+XG4gICAgICAgICAgICA8d20tcGlja2VyXG4gICAgICAgICAgICAgICAgW29wdGlvbnNdPVwib3B0aW9ucy5ob3VyXCJcbiAgICAgICAgICAgICAgICBbc2VsZWN0ZWRWYWx1ZV09XCJob3VyXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNldCgkZXZlbnQsICdIT1VSJylcIj48L3dtLXBpY2tlcj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBwLXRpbWUtc2VwYXJhdG9yXCI+Ojwvc3Bhbj5cbiAgICAgICAgICAgIDx3bS1waWNrZXJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJvcHRpb25zLm1pbnV0ZVwiXG4gICAgICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwibWludXRlXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNldCgkZXZlbnQsICdNSU5VVEUnKVwiPjwvd20tcGlja2VyPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHAtdGltZS1zZXBhcmF0b3JcIj46PC9zcGFuPlxuICAgICAgICAgICAgPHdtLXBpY2tlclxuICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cIm9wdGlvbnMubWludXRlXCJcbiAgICAgICAgICAgICAgICBbc2VsZWN0ZWRWYWx1ZV09XCJzZWNvbmRcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0KCRldmVudCwgJ1NFQ09ORCcpXCI+PC93bS1waWNrZXI+XG4gICAgICAgIDwvd20tcGlja2VyZ3JvdXA+XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBUaW1lUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBvcHRpb25zID0ge1xuICAgICAgICBob3VyOiBbXSxcbiAgICAgICAgbWludXRlOiBbXSxcbiAgICAgICAgc2Vjb25kOiBbXSxcbiAgICAgICAgbWVyaWRpYW46IFsnQU0nLCAnUE0nXVxuICAgIH07XG5cbiAgICBASW5wdXQoKVxuICAgIHByaXZhdGUgdmFsdWUgPSBuZXcgRGF0ZSgpO1xuXG4gICAgQElucHV0KClcbiAgICBwcml2YXRlIG1pbjogRGF0ZSA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHByaXZhdGUgbWF4OiBEYXRlID0gbnVsbDtcblxuICAgIEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGluajogSW5qZWN0b3IpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLmhvdXIgPSB0aGlzLnBvcHVsYXRlTnVtYmVycygwLCAyMyk7XG4gICAgICAgIHRoaXMub3B0aW9ucy5taW51dGUgPSB0aGlzLnBvcHVsYXRlTnVtYmVycygwLCA1OSk7XG4gICAgICAgIHRoaXMub3B0aW9ucy5zZWNvbmQgPSB0aGlzLnBvcHVsYXRlTnVtYmVycygwLCA1OSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwb3B1bGF0ZU51bWJlcnMoc3RhcnQ6IG51bWJlciwgdG86IG51bWJlcikge1xuICAgICAgICBjb25zdCBhcnIgPSBbXTtcbiAgICAgICAgZm9yKGxldCBpID0gc3RhcnQ7IGkgPD0gdG87IGkrKykge1xuICAgICAgICAgICAgYXJyLnB1c2goe1xuICAgICAgICAgICAgICAgIGxhYmVsOiAoaSA8IDEwID8gJzAnIDogJycpICsgaSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogaVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXJyO1xuICAgIH1cblxuICAgIHNldCh7aW5kZXgsIHZhbHVlfSwgdW5pdDogJ0hPVVInIHwgJ01JTlVURScgfCAnU0VDT05EJyB8ICdNRVJJRElBTicpIHtcbiAgICAgICAgaWYgKHVuaXQgPT09ICdIT1VSJykge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG1vbWVudCh0aGlzLnZhbHVlKS5ob3VyKHBhcnNlSW50KHZhbHVlKSkudG9EYXRlKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodW5pdCA9PT0gJ01JTlVURScpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBtb21lbnQodGhpcy52YWx1ZSkubWludXRlKHBhcnNlSW50KHZhbHVlKSkudG9EYXRlKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodW5pdCA9PT0gJ1NFQ09ORCcpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBtb21lbnQodGhpcy52YWx1ZSkuc2Vjb25kKHBhcnNlSW50KHZhbHVlKSkudG9EYXRlKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodW5pdCA9PT0gJ01FUklESUFOJykge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG1vbWVudCh0aGlzLnZhbHVlKS5taW51dGUodmFsdWUpLnRvRGF0ZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1pbiAmJiB0aGlzLnZhbHVlIDwgdGhpcy5taW4pIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm1pbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tYXggJiYgdGhpcy52YWx1ZSA+IHRoaXMubWF4KSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5tYXg7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgaG91cigpIHtcbiAgICAgICAgcmV0dXJuIG1vbWVudCh0aGlzLnZhbHVlKS5ob3VyKCk7XG4gICAgfVxuXG4gICAgZ2V0IG1pbnV0ZSgpIHtcbiAgICAgICAgcmV0dXJuIG1vbWVudCh0aGlzLnZhbHVlKS5taW51dGUoKTtcbiAgICB9XG5cbiAgICBnZXQgc2Vjb25kKCkge1xuICAgICAgICByZXR1cm4gbW9tZW50KHRoaXMudmFsdWUpLnNlY29uZCgpO1xuICAgIH1cblxuICAgIGdldCBtZXJpZGlhbigpIHtcbiAgICAgICAgcmV0dXJuICdBTSc7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRGF0ZVVwZGF0ZShuZXdWYWwpIHtcbiAgICAgICAgZGVidWdnZXI7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuXG4gICAgfVxuXG59XG4iXX0=