mis-crystal-design-system 17.0.0 → 17.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/analytics/analytics.service.d.ts +5 -1
  2. package/assets/images/close.svg +5 -0
  3. package/async-search-dropdown/async-dropdown.component.d.ts +9 -1
  4. package/async-search-dropdown/async-dropdown.module.d.ts +2 -1
  5. package/datepicker_v2/datepicker.module.d.ts +2 -1
  6. package/datepicker_v2/tz-datepicker.directive.d.ts +2 -0
  7. package/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +18 -1
  8. package/daterangepicker_v2/daterangepicker.module.d.ts +2 -1
  9. package/daterangepicker_v2/models/drp-config.model.d.ts +6 -0
  10. package/daterangepicker_v2/tz-daterangepicker.directive.d.ts +2 -0
  11. package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +5 -1
  12. package/dropdown/calculate-container-height.directive.d.ts +1 -1
  13. package/dropdown/dropdown.component.d.ts +4 -1
  14. package/dropdown/dropdown.module.d.ts +2 -1
  15. package/dynamic-form/dynamic-form.component.d.ts +14 -3
  16. package/dynamic-form/dynamic-form.namespace.d.ts +1 -0
  17. package/esm2022/action-list/action-list.component.mjs +1 -1
  18. package/esm2022/analytics/analytics.service.mjs +7 -6
  19. package/esm2022/async-search-dropdown/async-dropdown.component.mjs +97 -46
  20. package/esm2022/async-search-dropdown/async-dropdown.module.mjs +5 -4
  21. package/esm2022/button/button.directive.mjs +1 -1
  22. package/esm2022/checkbox/checkbox.component.mjs +4 -4
  23. package/esm2022/chip/chip.component.mjs +13 -13
  24. package/esm2022/datepicker_v2/datepicker.module.mjs +5 -4
  25. package/esm2022/datepicker_v2/public_api.mjs +1 -1
  26. package/esm2022/datepicker_v2/tz-datepicker.directive.mjs +21 -2
  27. package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +259 -73
  28. package/esm2022/datepicker_v2/utils/index.mjs +1 -1
  29. package/esm2022/daterangepicker_v2/daterangepicker.module.mjs +5 -4
  30. package/esm2022/daterangepicker_v2/models/drp-config.model.mjs +1 -1
  31. package/esm2022/daterangepicker_v2/public_api.mjs +1 -1
  32. package/esm2022/daterangepicker_v2/tz-daterangepicker.directive.mjs +24 -3
  33. package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +179 -78
  34. package/esm2022/daterangepicker_v2/utils/index.mjs +1 -1
  35. package/esm2022/dropdown/calculate-container-height.directive.mjs +5 -5
  36. package/esm2022/dropdown/dropdown.component.mjs +156 -96
  37. package/esm2022/dropdown/dropdown.module.mjs +5 -4
  38. package/esm2022/dynamic-form/dynamic-form.component.mjs +599 -216
  39. package/esm2022/dynamic-form/dynamic-form.namespace.mjs +1 -1
  40. package/esm2022/fab/fab.component.mjs +1 -1
  41. package/esm2022/filter/animations/slideFromRight.mjs +12 -0
  42. package/esm2022/filter/filter-panel/filter-panel.component.mjs +396 -0
  43. package/esm2022/filter/filters.module.mjs +66 -0
  44. package/esm2022/filter/has-value.pipe.mjs +31 -0
  45. package/esm2022/filter/index.mjs +2 -0
  46. package/esm2022/filter/mis-crystal-design-system-filter.mjs +5 -0
  47. package/esm2022/filter/public_api.mjs +4 -0
  48. package/esm2022/input/mis-input.component.mjs +1 -1
  49. package/esm2022/input-stepper/input-stepper/input-stepper.component.mjs +4 -4
  50. package/esm2022/mobile-filter/mobile-filter.component.mjs +9 -7
  51. package/esm2022/modal/modal.service.mjs +1 -1
  52. package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +26 -14
  53. package/esm2022/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +14 -7
  54. package/esm2022/phone-input/phone-input.component.mjs +6 -50
  55. package/esm2022/radio-button/radio-button.component.mjs +4 -4
  56. package/esm2022/ske-loader/ske-loader.component.mjs +4 -4
  57. package/esm2022/snackbar/snackbar.service.mjs +1 -1
  58. package/esm2022/specificdatepicker/public_api.mjs +3 -3
  59. package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +39 -26
  60. package/esm2022/specificdatepicker/tz-specificdatepicker.directive.mjs +1 -1
  61. package/esm2022/specificdatepicker/utils/index.mjs +1 -1
  62. package/esm2022/star-rating/star-rating.component.mjs +1 -1
  63. package/esm2022/table/custom-table-cell.directive.mjs +1 -1
  64. package/esm2022/table/filter/filter.component.mjs +12 -4
  65. package/esm2022/table/public_api.mjs +2 -3
  66. package/esm2022/table/sub-table/sub-table.component.mjs +1 -1
  67. package/esm2022/table/table.component.mjs +27 -11
  68. package/esm2022/timepicker/timepicker.component.mjs +16 -12
  69. package/esm2022/timerangepicker/public_api.mjs +1 -1
  70. package/esm2022/timerangepicker/timerangepicker.component.mjs +13 -7
  71. package/esm2022/toast/toast.service.mjs +1 -1
  72. package/esm2022/tooltip/tooltip-container/tooltip.component.mjs +10 -9
  73. package/esm2022/tooltip/tooltip.directive.mjs +9 -3
  74. package/esm2022/virtual-scroll/virtual-scroll.component.mjs +1 -1
  75. package/esm2022/widgets/classes/async-widget.mjs +1 -1
  76. package/esm2022/widgets/classes/base-widget.mjs +1 -1
  77. package/esm2022/widgets/classes/sync-widget.mjs +1 -1
  78. package/fesm2022/mis-crystal-design-system-action-list.mjs +1 -1
  79. package/fesm2022/mis-crystal-design-system-action-list.mjs.map +1 -1
  80. package/fesm2022/mis-crystal-design-system-analytics.mjs +6 -5
  81. package/fesm2022/mis-crystal-design-system-analytics.mjs.map +1 -1
  82. package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs +100 -48
  83. package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
  84. package/fesm2022/mis-crystal-design-system-button.mjs +1 -1
  85. package/fesm2022/mis-crystal-design-system-button.mjs.map +1 -1
  86. package/fesm2022/mis-crystal-design-system-checkbox.mjs +4 -4
  87. package/fesm2022/mis-crystal-design-system-checkbox.mjs.map +1 -1
  88. package/fesm2022/mis-crystal-design-system-chip.mjs +13 -13
  89. package/fesm2022/mis-crystal-design-system-chip.mjs.map +1 -1
  90. package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs +282 -76
  91. package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
  92. package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +205 -83
  93. package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
  94. package/fesm2022/mis-crystal-design-system-drawer.mjs.map +1 -1
  95. package/fesm2022/mis-crystal-design-system-dropdown.mjs +163 -102
  96. package/fesm2022/mis-crystal-design-system-dropdown.mjs.map +1 -1
  97. package/fesm2022/mis-crystal-design-system-dynamic-form.mjs +598 -216
  98. package/fesm2022/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
  99. package/fesm2022/mis-crystal-design-system-fab.mjs +1 -1
  100. package/fesm2022/mis-crystal-design-system-fab.mjs.map +1 -1
  101. package/fesm2022/mis-crystal-design-system-filter.mjs +503 -0
  102. package/fesm2022/mis-crystal-design-system-filter.mjs.map +1 -0
  103. package/fesm2022/mis-crystal-design-system-input-stepper.mjs +4 -4
  104. package/fesm2022/mis-crystal-design-system-input-stepper.mjs.map +1 -1
  105. package/fesm2022/mis-crystal-design-system-input.mjs +1 -1
  106. package/fesm2022/mis-crystal-design-system-input.mjs.map +1 -1
  107. package/fesm2022/mis-crystal-design-system-loader.mjs.map +1 -1
  108. package/fesm2022/mis-crystal-design-system-menu.mjs +1 -1
  109. package/fesm2022/mis-crystal-design-system-menu.mjs.map +1 -1
  110. package/fesm2022/mis-crystal-design-system-mobile-filter.mjs +9 -7
  111. package/fesm2022/mis-crystal-design-system-mobile-filter.mjs.map +1 -1
  112. package/fesm2022/mis-crystal-design-system-modal.mjs.map +1 -1
  113. package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs +26 -14
  114. package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
  115. package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs +14 -7
  116. package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -1
  117. package/fesm2022/mis-crystal-design-system-phone-input.mjs +5 -49
  118. package/fesm2022/mis-crystal-design-system-phone-input.mjs.map +1 -1
  119. package/fesm2022/mis-crystal-design-system-radio-button.mjs +4 -4
  120. package/fesm2022/mis-crystal-design-system-radio-button.mjs.map +1 -1
  121. package/fesm2022/mis-crystal-design-system-ske-loader.mjs +3 -3
  122. package/fesm2022/mis-crystal-design-system-ske-loader.mjs.map +1 -1
  123. package/fesm2022/mis-crystal-design-system-slider.mjs +1 -1
  124. package/fesm2022/mis-crystal-design-system-slider.mjs.map +1 -1
  125. package/fesm2022/mis-crystal-design-system-snackbar.mjs +1 -1
  126. package/fesm2022/mis-crystal-design-system-snackbar.mjs.map +1 -1
  127. package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +39 -26
  128. package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
  129. package/fesm2022/mis-crystal-design-system-star-rating.mjs +1 -1
  130. package/fesm2022/mis-crystal-design-system-star-rating.mjs.map +1 -1
  131. package/fesm2022/mis-crystal-design-system-switch.mjs +1 -1
  132. package/fesm2022/mis-crystal-design-system-switch.mjs.map +1 -1
  133. package/fesm2022/mis-crystal-design-system-table.mjs +41 -17
  134. package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
  135. package/fesm2022/mis-crystal-design-system-timepicker.mjs +16 -12
  136. package/fesm2022/mis-crystal-design-system-timepicker.mjs.map +1 -1
  137. package/fesm2022/mis-crystal-design-system-timerangepicker.mjs +13 -7
  138. package/fesm2022/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
  139. package/fesm2022/mis-crystal-design-system-toast.mjs.map +1 -1
  140. package/fesm2022/mis-crystal-design-system-tooltip.mjs +18 -11
  141. package/fesm2022/mis-crystal-design-system-tooltip.mjs.map +1 -1
  142. package/fesm2022/mis-crystal-design-system-utils.mjs.map +1 -1
  143. package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs +1 -1
  144. package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs.map +1 -1
  145. package/fesm2022/mis-crystal-design-system-widgets.mjs.map +1 -1
  146. package/filter/animations/slideFromRight.d.ts +1 -0
  147. package/filter/filter-panel/filter-panel.component.d.ts +51 -0
  148. package/filter/filters.module.d.ts +18 -0
  149. package/filter/has-value.pipe.d.ts +12 -0
  150. package/filter/index.d.ts +1 -0
  151. package/filter/public_api.d.ts +4 -0
  152. package/multi-select-dropdown/multi-select-dropdown.component.d.ts +3 -1
  153. package/package.json +24 -18
  154. package/phone-input/phone-input.component.d.ts +6 -15
  155. package/specificdatepicker/public_api.d.ts +2 -3
  156. package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +1 -0
  157. package/styles/mis-mixins.scss +46 -0
  158. package/styles/mis-old-icon-styles.scss +498 -0
  159. package/table/public_api.d.ts +1 -2
  160. package/timepicker/timepicker.component.d.ts +3 -2
  161. package/timerangepicker/public_api.d.ts +1 -0
  162. package/timerangepicker/timerangepicker.component.d.ts +3 -1
  163. package/tooltip/tooltip-container/tooltip.component.d.ts +2 -1
  164. package/tooltip/tooltip.directive.d.ts +3 -1
@@ -16,7 +16,10 @@ const _c8 = a0 => ({ width: a0 });
16
16
  const _c9 = a0 => ({ "t-col-container-hover": a0 });
17
17
  const _c10 = (a0, a1) => ({ width: "100%", cursor: a0, "justify-content": a1 });
18
18
  const _c11 = a0 => ({ color: a0 });
19
- const _c12 = a0 => ({ "page-active": a0 });
19
+ const _c12 = () => ({ display: "flex", justifyContent: "center", alignItems: "center", padding: "16px" });
20
+ const _c13 = a0 => ({ "page-active": a0 });
21
+ const _c14 = () => ({ display: "flex" });
22
+ const _c15 = () => ({ "margin-right": "4px" });
20
23
  function TableComponent_mis_table_filter_1_Template(rf, ctx) { if (rf & 1) {
21
24
  const _r1 = i0.ɵɵgetCurrentView();
22
25
  i0.ɵɵelementStart(0, "mis-table-filter", 11, 1);
@@ -121,16 +124,22 @@ function TableComponent_div_7_div_2_Template(rf, ctx) { if (rf & 1) {
121
124
  function TableComponent_div_7_div_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
122
125
  i0.ɵɵelementContainerStart(0);
123
126
  i0.ɵɵelementStart(1, "div", 32);
124
- i0.ɵɵtext(2, "Loading...");
127
+ i0.ɵɵtext(2, " Loading... ");
125
128
  i0.ɵɵelementEnd();
126
129
  i0.ɵɵelementContainerEnd();
130
+ } if (rf & 2) {
131
+ i0.ɵɵadvance();
132
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(1, _c12));
127
133
  } }
128
134
  function TableComponent_div_7_div_3_ng_container_2_Template(rf, ctx) { if (rf & 1) {
129
135
  i0.ɵɵelementContainerStart(0);
130
136
  i0.ɵɵelementStart(1, "div", 32);
131
- i0.ɵɵtext(2, "No Data Available...");
137
+ i0.ɵɵtext(2, " No Data Available... ");
132
138
  i0.ɵɵelementEnd();
133
139
  i0.ɵɵelementContainerEnd();
140
+ } if (rf & 2) {
141
+ i0.ɵɵadvance();
142
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(1, _c12));
134
143
  } }
135
144
  function TableComponent_div_7_div_3_ng_container_3_Template(rf, ctx) { if (rf & 1) {
136
145
  i0.ɵɵelementContainerStart(0);
@@ -143,7 +152,7 @@ function TableComponent_div_7_div_3_ng_container_3_Template(rf, ctx) { if (rf &
143
152
  } }
144
153
  function TableComponent_div_7_div_3_Template(rf, ctx) { if (rf & 1) {
145
154
  i0.ɵɵelementStart(0, "div", 31);
146
- i0.ɵɵtemplate(1, TableComponent_div_7_div_3_ng_container_1_Template, 3, 0, "ng-container", 15)(2, TableComponent_div_7_div_3_ng_container_2_Template, 3, 0, "ng-container", 15)(3, TableComponent_div_7_div_3_ng_container_3_Template, 2, 2, "ng-container", 15);
155
+ i0.ɵɵtemplate(1, TableComponent_div_7_div_3_ng_container_1_Template, 3, 2, "ng-container", 15)(2, TableComponent_div_7_div_3_ng_container_2_Template, 3, 2, "ng-container", 15)(3, TableComponent_div_7_div_3_ng_container_3_Template, 2, 2, "ng-container", 15);
147
156
  i0.ɵɵelementEnd();
148
157
  } if (rf & 2) {
149
158
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -182,18 +191,25 @@ function TableComponent_div_8_div_7_span_1_Template(rf, ctx) { if (rf & 1) {
182
191
  } if (rf & 2) {
183
192
  const pageNumber_r16 = i0.ɵɵnextContext().$implicit;
184
193
  const ctx_r1 = i0.ɵɵnextContext(2);
185
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c12, pageNumber_r16 == (ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.selectedPage)));
194
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c13, pageNumber_r16 == (ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.selectedPage)));
186
195
  i0.ɵɵadvance();
187
196
  i0.ɵɵtextInterpolate(pageNumber_r16);
188
197
  } }
189
198
  function TableComponent_div_8_div_7_span_2_Template(rf, ctx) { if (rf & 1) {
190
- i0.ɵɵelementStart(0, "span", 45)(1, "div", 46);
191
- i0.ɵɵelement(2, "span", 47)(3, "span", 47)(4, "span", 48);
199
+ i0.ɵɵelementStart(0, "span", 45)(1, "div", 32);
200
+ i0.ɵɵelement(2, "span", 46)(3, "span", 46)(4, "span", 47);
192
201
  i0.ɵɵelementEnd()();
202
+ } if (rf & 2) {
203
+ i0.ɵɵadvance();
204
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(3, _c14));
205
+ i0.ɵɵadvance();
206
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(4, _c15));
207
+ i0.ɵɵadvance();
208
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(5, _c15));
193
209
  } }
194
210
  function TableComponent_div_8_div_7_Template(rf, ctx) { if (rf & 1) {
195
211
  i0.ɵɵelementStart(0, "div");
196
- i0.ɵɵtemplate(1, TableComponent_div_8_div_7_span_1_Template, 2, 4, "span", 42)(2, TableComponent_div_8_div_7_span_2_Template, 5, 0, "span", 43);
212
+ i0.ɵɵtemplate(1, TableComponent_div_8_div_7_span_1_Template, 2, 4, "span", 42)(2, TableComponent_div_8_div_7_span_2_Template, 5, 6, "span", 43);
197
213
  i0.ɵɵelementEnd();
198
214
  } if (rf & 2) {
199
215
  const pageNumber_r16 = ctx.$implicit;
@@ -406,7 +422,7 @@ export class TableComponent {
406
422
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filter = _t.first);
407
423
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.table = _t.first);
408
424
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.colHeaders = _t);
409
- } }, inputs: { config: [i0.ɵɵInputFlags.None, "tableConfig", "config"], subTableconfig: "subTableconfig", tableDataLoading: "tableDataLoading", expandedIndex: "expandedIndex", tableData: "tableData", subTableData: "subTableData", subTableDataLoading: "subTableDataLoading" }, outputs: { filtersUpdated: "filtersUpdated", pageSelected: "pageSelected" }, features: [i0.ɵɵNgOnChangesFeature], decls: 9, vars: 15, consts: [["table", ""], ["filter", ""], ["colHeaderRef", ""], ["id", "main-container", 3, "ngStyle"], [3, "containerStyles", "filtersData", "filtersApplied", 4, "ngIf"], ["id", "table-container", 3, "ngClass"], ["id", "col-headers-container", 3, "ngStyle"], ["class", "col-header", 3, "ngStyle", "click", 4, "ngFor", "ngForOf"], ["id", "data-container"], ["class", "row-wrapper", 4, "ngFor", "ngForOf"], ["id", "pagination-container", 4, "ngIf"], [3, "filtersApplied", "containerStyles", "filtersData"], [1, "col-header", 3, "click", "ngStyle"], ["class", "col-header-text", 4, "ngIf"], ["class", "filter-icon", 3, "click", 4, "ngIf"], [4, "ngIf"], [1, "col-header-text"], [1, "filter-icon", 3, "click"], ["id", "filter-active", 4, "ngIf"], ["fill", "none", "height", "10", "viewBox", "0 0 13 10", "width", "13", "xmlns", "http://www.w3.org/2000/svg"], ["clip-rule", "evenodd", "d", "M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z", "fill", "#181F33", "fill-rule", "evenodd"], ["id", "filter-active"], ["customTableCell", "", 3, "customComponent", "data"], [1, "row-wrapper"], [1, "t-row", 3, "click", "ngClass", "ngStyle"], ["class", "t-col-container", 3, "ngStyle", "ngClass", "click", 4, "ngFor", "ngForOf"], ["class", "sub-row", 4, "ngIf"], [1, "t-col-container", 3, "click", "ngStyle", "ngClass"], [1, "t-col", 3, "ngStyle"], ["class", "t-col-text", 3, "ngStyle", 4, "ngIf"], [1, "t-col-text", 3, "ngStyle"], [1, "sub-row"], [2, "display", "flex", "justify-content", "center", "align-items", "center", "padding", "16px"], [3, "config", "tableData"], ["id", "pagination-container"], ["id", "pagination-text"], ["id", "pages-container"], [1, "page", 3, "click"], ["fill", "none", "height", "10", "viewBox", "0 0 7 10", "width", "7", "xmlns", "http://www.w3.org/2000/svg"], ["clip-rule", "evenodd", "d", "M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z", "fill", "#181F33", "fill-rule", "evenodd"], [4, "ngFor", "ngForOf"], ["clip-rule", "evenodd", "d", "M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z", "fill", "#181F33", "fill-rule", "evenodd"], ["class", "page", 3, "ngClass", "click", 4, "ngIf"], ["class", "page-seperator", 4, "ngIf"], [1, "page", 3, "click", "ngClass"], [1, "page-seperator"], [2, "display", "flex"], [1, "dot", 2, "margin-right", "4px"], [1, "dot"]], template: function TableComponent_Template(rf, ctx) { if (rf & 1) {
425
+ } }, inputs: { config: [i0.ɵɵInputFlags.None, "tableConfig", "config"], subTableconfig: "subTableconfig", tableDataLoading: "tableDataLoading", expandedIndex: "expandedIndex", tableData: "tableData", subTableData: "subTableData", subTableDataLoading: "subTableDataLoading" }, outputs: { filtersUpdated: "filtersUpdated", pageSelected: "pageSelected" }, features: [i0.ɵɵNgOnChangesFeature], decls: 9, vars: 15, consts: [["table", ""], ["filter", ""], ["colHeaderRef", ""], ["id", "main-container", 3, "ngStyle"], [3, "containerStyles", "filtersData", "filtersApplied", 4, "ngIf"], ["id", "table-container", 3, "ngClass"], ["id", "col-headers-container", 3, "ngStyle"], ["class", "col-header", 3, "ngStyle", "click", 4, "ngFor", "ngForOf"], ["id", "data-container"], ["class", "row-wrapper", 4, "ngFor", "ngForOf"], ["id", "pagination-container", 4, "ngIf"], [3, "filtersApplied", "containerStyles", "filtersData"], [1, "col-header", 3, "click", "ngStyle"], ["class", "col-header-text", 4, "ngIf"], ["class", "filter-icon", 3, "click", 4, "ngIf"], [4, "ngIf"], [1, "col-header-text"], [1, "filter-icon", 3, "click"], ["id", "filter-active", 4, "ngIf"], ["fill", "none", "height", "10", "viewBox", "0 0 13 10", "width", "13", "xmlns", "http://www.w3.org/2000/svg"], ["clip-rule", "evenodd", "d", "M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z", "fill", "#181F33", "fill-rule", "evenodd"], ["id", "filter-active"], ["customTableCell", "", 3, "customComponent", "data"], [1, "row-wrapper"], [1, "t-row", 3, "click", "ngClass", "ngStyle"], ["class", "t-col-container", 3, "ngStyle", "ngClass", "click", 4, "ngFor", "ngForOf"], ["class", "sub-row", 4, "ngIf"], [1, "t-col-container", 3, "click", "ngStyle", "ngClass"], [1, "t-col", 3, "ngStyle"], ["class", "t-col-text", 3, "ngStyle", 4, "ngIf"], [1, "t-col-text", 3, "ngStyle"], [1, "sub-row"], [3, "ngStyle"], [3, "config", "tableData"], ["id", "pagination-container"], ["id", "pagination-text"], ["id", "pages-container"], [1, "page", 3, "click"], ["fill", "none", "height", "10", "viewBox", "0 0 7 10", "width", "7", "xmlns", "http://www.w3.org/2000/svg"], ["clip-rule", "evenodd", "d", "M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z", "fill", "#181F33", "fill-rule", "evenodd"], [4, "ngFor", "ngForOf"], ["clip-rule", "evenodd", "d", "M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z", "fill", "#181F33", "fill-rule", "evenodd"], ["class", "page", 3, "ngClass", "click", 4, "ngIf"], ["class", "page-seperator", 4, "ngIf"], [1, "page", 3, "click", "ngClass"], [1, "page-seperator"], [1, "dot", 3, "ngStyle"], [1, "dot"]], template: function TableComponent_Template(rf, ctx) { if (rf & 1) {
410
426
  i0.ɵɵelementStart(0, "div", 3);
411
427
  i0.ɵɵtemplate(1, TableComponent_mis_table_filter_1_Template, 2, 2, "mis-table-filter", 4);
412
428
  i0.ɵɵelementStart(2, "div", 5, 0)(4, "div", 6);
@@ -435,7 +451,7 @@ export class TableComponent {
435
451
  }
436
452
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableComponent, [{
437
453
  type: Component,
438
- args: [{ selector: "mis-table", template: "<div\n [ngStyle]=\"{\n height: getContainerHeight(),\n width: getContainerWidth(),\n 'overflow-x': config.canScrollHorizontally ? 'auto' : 'unset'\n }\"\n id=\"main-container\"\n>\n <mis-table-filter\n #filter\n (filtersApplied)=\"updateAppliedFilters($event)\"\n *ngIf=\"showFilter\"\n [containerStyles]=\"filterContainerStyles\"\n [filtersData]=\"filterData\"\n ></mis-table-filter>\n <div\n #table\n id=\"table-container\"\n [ngClass]=\"{ 'no-scrollbar': expandedIndex < 0, scrollbar: !(expandedIndex < 0), 'scroll-horizontally': config.canScrollHorizontally }\"\n >\n <div\n [ngStyle]=\"getColHeadersRowStyles()\"\n id=\"col-headers-container\"\n >\n <div\n #colHeaderRef\n (click)=\"colHeader?.action ? colHeader?.action(colHeader) : null\"\n *ngFor=\"let colHeader of config?.colHeaderConfig\"\n class=\"col-header\"\n [ngStyle]=\"{\n width: colHeader?.style?.width || '',\n cursor: colHeader.action ? 'pointer' : 'default',\n 'justify-content': colHeader?.style?.justifyContent\n ? colHeader?.style?.justifyContent\n : colHeader.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p *ngIf=\"colHeader?.type !== 'custom'\" class=\"col-header-text\">\n {{ colHeader?.data || \" \" }}\n </p>\n <span\n (click)=\"filterData = colHeader.filters; toggleFilter(colHeader.data); $event.stopPropagation()\"\n *ngIf=\"colHeader?.type !== 'custom' && colHeader?.filters && colHeader?.filters?.length > 0\"\n class=\"filter-icon\"\n >\n <span *ngIf=\"appliedFilters[colHeader.data]?.length > 0\" id=\"filter-active\"></span>\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 13 10\" width=\"13\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <ng-template\n *ngIf=\"colHeader?.type === 'custom'\"\n [customComponent]=\"colHeader?.componentRef\"\n [data]=\"colHeader.data\"\n customTableCell\n ></ng-template>\n </div>\n </div>\n <div id=\"data-container\">\n <div class=\"row-wrapper\" *ngFor=\"let row of tableData; let i = index\">\n <div\n class=\"t-row\"\n [ngClass]=\"{ 't-row-hover': config.cellHover, 'active-row': i === activeRowIndex }\"\n [ngStyle]=\"{ 'min-height': config?.rowConfig?.height ? config.rowConfig.height : '44px' }\"\n (click)=\"selectRow(i)\"\n >\n <div\n (click)=\"config?.colConfig[i]?.action ? config?.colConfig[i]?.action(col) : null\"\n *ngFor=\"let col of row; let i = index\"\n [ngStyle]=\"{\n width: config?.colConfig[i]?.style?.width || config?.colHeaderConfig[i]?.style?.width || ''\n }\"\n class=\"t-col-container\"\n [ngClass]=\"{ 't-col-container-hover': config.cellHover }\"\n >\n <div\n class=\"t-col\"\n [style]=\"config.colConfig[i]?.style\"\n [ngStyle]=\"{\n width: '100%',\n cursor: config.colConfig[i]?.action ? 'pointer' : 'default',\n 'justify-content': config.colConfig[i]?.style?.justifyContent\n ? config.colConfig[i]?.style?.justifyContent\n : config.colConfig[i]?.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p\n *ngIf=\"config.colConfig[i]?.type !== 'custom'\"\n [ngStyle]=\"{\n color: config?.colConfig[i]?.style?.color ? config?.colConfig[i]?.style?.color : ''\n }\"\n class=\"t-col-text\"\n >\n {{ col }}\n </p>\n <ng-template\n *ngIf=\"config.colConfig[i]?.type === 'custom'\"\n [customComponent]=\"config.colConfig[i].componentRef\"\n [data]=\"col\"\n customTableCell\n ></ng-template>\n </div>\n </div>\n </div>\n <div *ngIf=\"config?.canExpand && expandedIndex === i\" class=\"sub-row\">\n <ng-container *ngIf=\"subTableDataLoading\">\n <div style=\"display: flex; justify-content: center; align-items: center; padding: 16px\">Loading...</div>\n </ng-container>\n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length === 0\">\n <div style=\"display: flex; justify-content: center; align-items: center; padding: 16px\">No Data Available...</div>\n </ng-container>\n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length > 0\">\n <sub-table [config]=\"subTableconfig\" [tableData]=\"subTableData\"></sub-table>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"config?.paginationConfig && (tableLength >= config.paginationConfig.rowsPerPage || config.paginationConfig?.selectedPage !== 1)\"\n id=\"pagination-container\"\n >\n <p id=\"pagination-text\">\n Showing\n {{ (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + 1 }}-{{\n (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + tableLength\n }}\n of {{ config.paginationConfig.totalNoOfRows }} items\n </p>\n <div id=\"pages-container\">\n <span (click)=\"updateSelectedPage(config.paginationConfig?.selectedPage - 1)\" class=\"page\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <div *ngFor=\"let pageNumber of pages\">\n <span\n (click)=\"updateSelectedPage(pageNumber)\"\n *ngIf=\"pageNumber != 0\"\n [ngClass]=\"{ 'page-active': pageNumber == config.paginationConfig?.selectedPage }\"\n class=\"page\"\n >{{ pageNumber }}</span\n >\n <span *ngIf=\"pageNumber == 0\" class=\"page-seperator\">\n <div style=\"display: flex\">\n <span class=\"dot\" style=\"margin-right: 4px\"></span>\n <span class=\"dot\" style=\"margin-right: 4px\"></span>\n <span class=\"dot\"></span>\n </div>\n </span>\n </div>\n <span (click)=\"updateSelectedPage(config.paginationConfig?.selectedPage + 1)\" class=\"page\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n </div>\n </div>\n</div>\n", styles: ["#main-container{font-family:Lato,sans-serif;position:relative}.no-scrollbar::-webkit-scrollbar{width:0}.scrollbar::-webkit-scrollbar{width:8px;height:8px;border-radius:15px}.scrollbar::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:15px}#table-container{height:inherit;overflow-y:auto}.scroll-horizontally{height:inherit;width:fit-content;overflow-y:unset!important;overflow-x:visible}#col-headers-container{display:flex;align-items:center;position:sticky;background-color:#fff;width:100%;z-index:1;min-height:44px;border-bottom:1px solid #e0e0e0;top:0;left:0;right:0}.col-header{padding:0 16px;display:flex;align-items:center;height:100%}.col-header-text{font-style:normal;font-weight:700;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.filter-icon{margin-left:8px;padding:0 8px;position:relative;cursor:pointer}#filter-active{height:8px;width:8px;background:#16cbbc;border-radius:50%;position:absolute;top:4px;right:4px}.sub-row{height:auto;border-bottom:none}.loader ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#0937b2}.t-row{display:flex;min-height:44px;background-color:#fff;width:100%;border-bottom:1px solid #e0e0e0}.t-row:hover{background-color:#e7eefd}.active-row{background-color:#e6f6fd}.t-col-container{padding:0 16px}.t-row-hover:hover{background-color:#0000}.t-col-container-hover:hover{background-color:#e6ebf7}.t-col-container-hover:first-child{border-left:1px solid #e0e0e0}.t-col-container-hover{border-right:1px solid #e0e0e0}.t-col{display:flex;align-items:center;height:100%}.t-col-text{font-style:normal;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}#pagination-container{display:flex;justify-content:flex-end;align-items:center;height:56px}#pagination-text{font-style:normal;font-weight:400;font-size:12px;line-height:18px;letter-spacing:.4px;color:#6a737d;margin:0 96px 0 0}#pages-container{display:flex;margin-right:32px}.page{display:flex;justify-content:center;align-items:center;border:1px solid #6a737d;box-sizing:border-box;border-radius:4px;width:32px;height:32px;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d;margin-right:8px;cursor:pointer}.page-seperator{display:flex;justify-content:center;align-items:center;width:32px;height:32px;margin-right:8px}.dot{height:3px;width:3px;border-radius:50%;background:#6a737d}.page-active{color:#0937b2;border:1px solid #0937b2}\n"] }]
454
+ args: [{ selector: "mis-table", template: "<div\n [ngStyle]=\"{\n height: getContainerHeight(),\n width: getContainerWidth(),\n 'overflow-x': config.canScrollHorizontally ? 'auto' : 'unset'\n }\"\n id=\"main-container\"\n>\n <mis-table-filter\n #filter\n (filtersApplied)=\"updateAppliedFilters($event)\"\n *ngIf=\"showFilter\"\n [containerStyles]=\"filterContainerStyles\"\n [filtersData]=\"filterData\"\n ></mis-table-filter>\n <div\n #table\n id=\"table-container\"\n [ngClass]=\"{ 'no-scrollbar': expandedIndex < 0, scrollbar: !(expandedIndex < 0), 'scroll-horizontally': config.canScrollHorizontally }\"\n >\n <div\n [ngStyle]=\"getColHeadersRowStyles()\"\n id=\"col-headers-container\"\n >\n <div\n #colHeaderRef\n (click)=\"colHeader?.action ? colHeader?.action(colHeader) : null\"\n *ngFor=\"let colHeader of config?.colHeaderConfig\"\n class=\"col-header\"\n [ngStyle]=\"{\n width: colHeader?.style?.width || '',\n cursor: colHeader.action ? 'pointer' : 'default',\n 'justify-content': colHeader?.style?.justifyContent\n ? colHeader?.style?.justifyContent\n : colHeader.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p *ngIf=\"colHeader?.type !== 'custom'\" class=\"col-header-text\">\n {{ colHeader?.data || \" \" }}\n </p>\n <span\n (click)=\"filterData = colHeader.filters; toggleFilter(colHeader.data); $event.stopPropagation()\"\n *ngIf=\"colHeader?.type !== 'custom' && colHeader?.filters && colHeader?.filters?.length > 0\"\n class=\"filter-icon\"\n >\n <span *ngIf=\"appliedFilters[colHeader.data]?.length > 0\" id=\"filter-active\"></span>\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 13 10\" width=\"13\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <ng-template\n *ngIf=\"colHeader?.type === 'custom'\"\n [customComponent]=\"colHeader?.componentRef\"\n [data]=\"colHeader.data\"\n customTableCell\n ></ng-template>\n </div>\n </div>\n <div id=\"data-container\">\n <div class=\"row-wrapper\" *ngFor=\"let row of tableData; let i = index\">\n <div\n class=\"t-row\"\n [ngClass]=\"{ 't-row-hover': config.cellHover, 'active-row': i === activeRowIndex }\"\n [ngStyle]=\"{ 'min-height': config?.rowConfig?.height ? config.rowConfig.height : '44px' }\"\n (click)=\"selectRow(i)\"\n >\n <div\n (click)=\"config?.colConfig[i]?.action ? config?.colConfig[i]?.action(col) : null\"\n *ngFor=\"let col of row; let i = index\"\n [ngStyle]=\"{\n width: config?.colConfig[i]?.style?.width || config?.colHeaderConfig[i]?.style?.width || ''\n }\"\n class=\"t-col-container\"\n [ngClass]=\"{ 't-col-container-hover': config.cellHover }\"\n >\n <div\n class=\"t-col\"\n [style]=\"config.colConfig[i]?.style\"\n [ngStyle]=\"{\n width: '100%',\n cursor: config.colConfig[i]?.action ? 'pointer' : 'default',\n 'justify-content': config.colConfig[i]?.style?.justifyContent\n ? config.colConfig[i]?.style?.justifyContent\n : config.colConfig[i]?.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p\n *ngIf=\"config.colConfig[i]?.type !== 'custom'\"\n [ngStyle]=\"{\n color: config?.colConfig[i]?.style?.color ? config?.colConfig[i]?.style?.color : ''\n }\"\n class=\"t-col-text\"\n >\n {{ col }}\n </p>\n <ng-template\n *ngIf=\"config.colConfig[i]?.type === 'custom'\"\n [customComponent]=\"config.colConfig[i].componentRef\"\n [data]=\"col\"\n customTableCell\n ></ng-template>\n </div>\n </div>\n </div>\n <div *ngIf=\"config?.canExpand && expandedIndex === i\" class=\"sub-row\">\n <ng-container *ngIf=\"subTableDataLoading\">\n <div [ngStyle]=\"{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: '16px'\n }\">\n Loading...\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length === 0\">\n <div [ngStyle]=\"{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: '16px'\n }\">\n No Data Available...\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length > 0\">\n <sub-table [config]=\"subTableconfig\" [tableData]=\"subTableData\"></sub-table>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"config?.paginationConfig && (tableLength >= config.paginationConfig.rowsPerPage || config.paginationConfig?.selectedPage !== 1)\"\n id=\"pagination-container\"\n >\n <p id=\"pagination-text\">\n Showing\n {{ (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + 1 }}-{{\n (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + tableLength\n }}\n of {{ config.paginationConfig.totalNoOfRows }} items\n </p>\n <div id=\"pages-container\">\n <span (click)=\"updateSelectedPage(config.paginationConfig?.selectedPage - 1)\" class=\"page\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <div *ngFor=\"let pageNumber of pages\">\n <span\n (click)=\"updateSelectedPage(pageNumber)\"\n *ngIf=\"pageNumber != 0\"\n [ngClass]=\"{ 'page-active': pageNumber == config.paginationConfig?.selectedPage }\"\n class=\"page\"\n >{{ pageNumber }}</span\n >\n <span *ngIf=\"pageNumber == 0\" class=\"page-seperator\">\n <div [ngStyle]=\"{ display: 'flex' }\">\n <span class=\"dot\" [ngStyle]=\"{ 'margin-right': '4px' }\"></span>\n <span class=\"dot\" [ngStyle]=\"{ 'margin-right': '4px' }\"></span>\n <span class=\"dot\"></span>\n </div> \n </span>\n </div>\n <span (click)=\"updateSelectedPage(config.paginationConfig?.selectedPage + 1)\" class=\"page\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n </div>\n </div>\n</div>\n", styles: ["#main-container{font-family:Lato,sans-serif;position:relative}.no-scrollbar::-webkit-scrollbar{width:0}.scrollbar::-webkit-scrollbar{width:8px;height:8px;border-radius:15px}.scrollbar::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:15px}#table-container{height:inherit;overflow-y:auto}.scroll-horizontally{height:inherit;width:fit-content;overflow-y:unset!important;overflow-x:visible}#col-headers-container{display:flex;align-items:center;position:sticky;background-color:#fff;width:100%;z-index:1;min-height:44px;border-bottom:1px solid #e0e0e0;top:0;left:0;right:0}.col-header{padding:0 16px;display:flex;align-items:center;height:100%}.col-header-text{font-style:normal;font-weight:700;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.filter-icon{margin-left:8px;padding:0 8px;position:relative;cursor:pointer}#filter-active{height:8px;width:8px;background:#16cbbc;border-radius:50%;position:absolute;top:4px;right:4px}.sub-row{height:auto;border-bottom:none}.loader ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#0937b2}.t-row{display:flex;min-height:44px;background-color:#fff;width:100%;border-bottom:1px solid #e0e0e0}.t-row:hover{background-color:#e7eefd}.active-row{background-color:#e6f6fd}.t-col-container{padding:0 16px}.t-row-hover:hover{background-color:#0000}.t-col-container-hover:hover{background-color:#e6ebf7}.t-col-container-hover:first-child{border-left:1px solid #e0e0e0}.t-col-container-hover{border-right:1px solid #e0e0e0}.t-col{display:flex;align-items:center;height:100%}.t-col-text{font-style:normal;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}#pagination-container{display:flex;justify-content:flex-end;align-items:center;height:56px}#pagination-text{font-style:normal;font-weight:400;font-size:12px;line-height:18px;letter-spacing:.4px;color:#6a737d;margin:0 96px 0 0}#pages-container{display:flex;margin-right:32px}.page{display:flex;justify-content:center;align-items:center;border:1px solid #6a737d;box-sizing:border-box;border-radius:4px;width:32px;height:32px;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d;margin-right:8px;cursor:pointer}.page-seperator{display:flex;justify-content:center;align-items:center;width:32px;height:32px;margin-right:8px}.dot{height:3px;width:3px;border-radius:50%;background:#6a737d}.page-active{color:#0937b2;border:1px solid #0937b2}\n"] }]
439
455
  }], () => [{ type: i0.Renderer2 }], { filtersUpdated: [{
440
456
  type: Output
441
457
  }], filter: [{
@@ -466,4 +482,4 @@ export class TableComponent {
466
482
  args: ["table"]
467
483
  }] }); })();
468
484
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TableComponent, { className: "TableComponent" }); })();
469
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1QsWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNMckIsK0NBTUM7SUFKQyx5TkFBa0IsbUNBQTRCLEtBQUM7SUFJaEQsaUJBQW1COzs7SUFEbEIsQUFEQSw4REFBeUMsa0NBQ2Y7OztJQTBCdEIsNkJBQWdFO0lBQzlELFlBQ0Y7SUFBQSxpQkFBSTs7O0lBREYsY0FDRjtJQURFLHlGQUNGOzs7SUFNRSwyQkFBbUY7Ozs7SUFMckYsZ0NBSUM7SUFIQyw0UEFBeUMsc0NBQTRCLHdCQUFFLHdCQUF3QixLQUFDO0lBSWhHLCtFQUE0RTs7SUFDNUUsK0JBQStGO0lBQzdGLDJCQUtFO0lBRU4sQUFERSxpQkFBTSxFQUNEOzs7O0lBVEUsY0FBZ0Q7SUFBaEQsc0lBQWdEOzs7O0lBVXpELHdGQUtDOzs7SUFGQyxBQURBLHlGQUEyQywyQkFDcEI7Ozs7SUFwQzNCLGtDQWNDO0lBWkMsMlJBQTRELElBQUksS0FBQztJQStCakUsQUFmQSxBQUhBLGtFQUFnRSwyREFPL0Qsb0RBZ0JBO0lBQ0gsaUJBQU07OztJQWxDSixrZEFRRTtJQUVFLGVBQWtDO0lBQWxDLHFGQUFrQztJQUtuQyxjQUEwRjtJQUExRixzUEFBMEY7SUFjMUYsY0FBa0M7SUFBbEMscUZBQWtDOzs7SUFxQy9CLDZCQU1DO0lBQ0MsWUFDRjtJQUFBLGlCQUFJOzs7Ozs7SUFORiwrWkFFRTtJQUdGLGNBQ0Y7SUFE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RSxpQkFBTSxFQUNGO1lBQ04saUVBR0M7WUErQ0gsaUJBQU07O1lBaExKLDRKQUlFO1lBTUMsY0FBZ0I7WUFBaEIscUNBQWdCO1lBT2pCLGNBQXVJO1lBQXZJLHdJQUF1STtZQUd2SSxlQUFvQztZQUFwQyxzREFBb0M7WUFNVixjQUEwQjtZQUExQixnRkFBMEI7WUF1Q1QsZUFBYztZQUFkLHVDQUFjO1lBOER4RCxjQUFxSTtZQUFySSxpUEFBcUk7OztpRkQzRzdILGNBQWM7Y0FMMUIsU0FBUzsyQkFDRSxXQUFXOzBDQWVYLGNBQWM7a0JBQXZCLE1BQU07WUFJYyxNQUFNO2tCQUExQixTQUFTO21CQUFDLFFBQVE7WUFDVyxVQUFVO2tCQUF2QyxZQUFZO21CQUFDLGNBQWM7WUFLbEIsWUFBWTtrQkFBckIsTUFBTTtZQUVlLE1BQU07a0JBQTNCLEtBQUs7bUJBQUMsYUFBYTtZQUNYLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csU0FBUztrQkFBakIsS0FBSztZQUNHLFlBQVk7a0JBQXBCLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDYyxLQUFLO2tCQUF4QixTQUFTO21CQUFDLE9BQU87O2tGQTlCUCxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW5cbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZpbHRlciwgVGFibGVGaWx0ZXJDb21wb25lbnQgfSBmcm9tIFwiLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwibWlzLXRhYmxlXCIsXG4gIHRlbXBsYXRlVXJsOiBcInRhYmxlLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1widGFibGUuY29tcG9uZW50LmNzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcblxuICAvLyBJbml0aWFsaXplIHdpdGggLTEgdG8gaW5kaWNhdGUgbm8gcm93IGlzIGNvbG9yZWQgYXQgdGhlIGJlZ2lubmluZ1xuICBhY3RpdmVSb3dJbmRleDogbnVtYmVyID0gMDsgXG5cbiAgLy8gRmlsdGVyIHJlbGF0ZWQgdmFyaWFibGVzXG4gIHNob3dGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZmlsdGVyTmFtZTogc3RyaW5nID0gXCJcIjtcbiAgZmlsdGVyRGF0YTogQXJyYXk8RmlsdGVyPiA9IFtdO1xuICBmaWx0ZXJDb250YWluZXJTdHlsZXM6IGFueSA9IHt9O1xuICBhcHBsaWVkRmlsdGVyczogeyBba2V5OiBzdHJpbmddOiBBcnJheTx7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PiB9ID0ge307XG4gIEBPdXRwdXQoKSBmaWx0ZXJzVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIFtrZXk6IHN0cmluZ106IEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+O1xuICB9PigpO1xuXG4gIEBWaWV3Q2hpbGQoXCJmaWx0ZXJcIikgZmlsdGVyOiBUYWJsZUZpbHRlckNvbXBvbmVudCB8IGFueTtcbiAgQFZpZXdDaGlsZHJlbihcImNvbEhlYWRlclJlZlwiKSBjb2xIZWFkZXJzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj4gfCBhbnk7XG5cbiAgLy8gUGFnaW5hdGlvbiByZWxhdGVkIHZhcmlhYmxlc1xuICBwYWdlczogQXJyYXk8bnVtYmVyPiA9IFtdO1xuICB0YWJsZUxlbmd0aDogbnVtYmVyO1xuICBAT3V0cHV0KCkgcGFnZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQElucHV0KFwidGFibGVDb25maWdcIikgY29uZmlnOiBUYWJsZUNvbmZpZyB8IGFueTtcbiAgQElucHV0KCkgc3ViVGFibGVjb25maWc6IFRhYmxlQ29uZmlnIHwgYW55O1xuICBASW5wdXQoKSB0YWJsZURhdGFMb2FkaW5nOiBib29sZWFuIHwgYW55O1xuICBASW5wdXQoKSBleHBhbmRlZEluZGV4OiBudW1iZXIgfCBhbnk7XG4gIEBJbnB1dCgpIHRhYmxlRGF0YTogQXJyYXk8QXJyYXk8YW55Pj4gPSBbXTtcbiAgQElucHV0KCkgc3ViVGFibGVEYXRhOiBBcnJheTxBcnJheTxhbnk+PiA9IFtdO1xuICBASW5wdXQoKSBzdWJUYWJsZURhdGFMb2FkaW5nOiBib29sZWFuIHwgYW55O1xuICBAVmlld0NoaWxkKFwidGFibGVcIikgdGFibGU6IEVsZW1lbnRSZWYgfCBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7IH1cblxuICAvLyBGdW5jdGlvbiB0byBoYW5kbGUgcm93IGNsaWNrXG4gIHNlbGVjdFJvdyhpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5hY3RpdmVSb3dJbmRleCA9IGluZGV4OyAvLyBTZXQgdGhlIHNlbGVjdGVkIGluZGV4IHRvIHRoZSBjbGlja2VkIHJvdydzIGluZGV4XG4gICAgISF0aGlzLmNvbmZpZy5yb3dDb25maWcuYWN0aW9uICYmIHRoaXMuY29uZmlnLnJvd0NvbmZpZy5hY3Rpb24oaW5kZXgpO1xuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudGFibGVMZW5ndGggPSAhIXRoaXMudGFibGVEYXRhID8gdGhpcy50YWJsZURhdGEubGVuZ3RoIDogMDtcbiAgICB0aGlzLmluaXRpYWxpemVGaWx0ZXJzKCk7XG4gICAgaWYgKHRoaXMuY29uZmlnLnBhZ2luYXRpb25Db25maWcpIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2luYXRpb24oKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29uZmlnLmNhblNjcm9sbEhvcml6b250YWxseSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNvbmZpZy5jYW5TY3JvbGxIb3Jpem9udGFsbHkgPSBmYWxzZTtcbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGV2ZW50ID0+IHtcbiAgICAgIGlmICh0aGlzLmZpbHRlcikge1xuICAgICAgICBsZXQgaXNDaGVja0JveENsaWNrZWQgPSB0cnVlO1xuICAgICAgICBsZXQgdGFyZ2V0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MU3BhbkVsZW1lbnQ7XG4gICAgICAgIGlmICh0YXJnZXRFbGVtZW50LmNsYXNzTmFtZSA9PT0gXCJjaGVja21hcmtcIikge1xuICAgICAgICAgIGlzQ2hlY2tCb3hDbGlja2VkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnNob3dGaWx0ZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBpc0NsaWNrSW5zaWRlRWxlbWVudCA9IHRoaXMuZmlsdGVyLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGlmICghaXNDbGlja0luc2lkZUVsZW1lbnQgJiYgIWlzQ2hlY2tCb3hDbGlja2VkKSB7XG4gICAgICAgICAgdGhpcy50b2dnbGVGaWx0ZXIodGhpcy5maWx0ZXJOYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb25maWcucGFnaW5hdGlvbkNvbmZpZykge1xuICAgICAgbGV0IGhlaWdodCA9IHRoaXMuY29uZmlnLmhlaWdodDtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50YWJsZS5uYXRpdmVFbGVtZW50LCBcImhlaWdodFwiLCBoZWlnaHQgLSA1NiArIFwicHhcIik7XG4gICAgfVxuICB9XG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIHRoaXMudGFibGVMZW5ndGggPSAhIXRoaXMudGFibGVEYXRhID8gdGhpcy50YWJsZURhdGEubGVuZ3RoIDogMDtcbiAgICB0aGlzLmFjdGl2ZVJvd0luZGV4ID0gdGhpcy5jb25maWcuYWN0aXZlUm93SW5kZXggfHwgMDtcbiAgfVxuXG4gIC8vIEZpbHRlciByZWxhdGVkIGZ1bmN0aW9uc1xuICBpbml0aWFsaXplRmlsdGVycygpIHtcbiAgICBmb3IgKGxldCBjb2xIZWFkZXIgb2YgdGhpcy5jb25maWc/LmNvbEhlYWRlckNvbmZpZykge1xuICAgICAgaWYgKGNvbEhlYWRlci5maWx0ZXJzKSB7XG4gICAgICAgIGxldCBmaWx0ZXJzID0gW107XG4gICAgICAgIGZvciAobGV0IGZpbHRlciBvZiBjb2xIZWFkZXIuZmlsdGVycykge1xuICAgICAgICAgIGlmIChmaWx0ZXIuY2hlY2tlZCkge1xuICAgICAgICAgICAgZmlsdGVycy5wdXNoKHtcbiAgICAgICAgICAgICAgbmFtZTogZmlsdGVyLm5hbWUsXG4gICAgICAgICAgICAgIHZhbHVlOiBmaWx0ZXIudmFsdWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVycy5sZW5ndGggPiAwKSB0aGlzLmFwcGxpZWRGaWx0ZXJzW2NvbEhlYWRlci5kYXRhXSA9IGZpbHRlcnM7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHRvZ2dsZUZpbHRlcihmaWx0ZXJOYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuc2hvd0ZpbHRlcikge1xuICAgICAgdGhpcy5maWx0ZXJOYW1lID0gZmlsdGVyTmFtZTtcbiAgICAgIHRoaXMuc2hvd0ZpbHRlciA9IHRydWU7XG5cbiAgICAgIGxldCBvZmZTZXQgPSAwO1xuICAgICAgbGV0IGNvbEhlYWRlcnNSZXZlcnNlZCA9IHRoaXMuY29sSGVhZGVycy50b0FycmF5KCkucmV2ZXJzZSgpO1xuXG4gICAgICBmb3IgKGxldCBoZWFkZXIgb2YgY29sSGVhZGVyc1JldmVyc2VkKSB7XG4gICAgICAgIGlmIChoZWFkZXIubmF0aXZlRWxlbWVudC5pbm5lclRleHQgPT09IGZpbHRlck5hbWUpIGJyZWFrO1xuICAgICAgICBvZmZTZXQgKz0gaGVhZGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICB9XG4gICAgICB0aGlzLmZpbHRlckNvbnRhaW5lclN0eWxlcyA9IHtcbiAgICAgICAgdG9wOiBcIjQ0cHhcIixcbiAgICAgICAgcmlnaHQ6IG9mZlNldCA+IDAgPyBvZmZTZXQgLSAxMTYgKyBcInB4XCIgOiBcIjEycHhcIlxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJOYW1lID0gXCJcIjtcbiAgICAgIHRoaXMuZmlsdGVyRGF0YSA9IFtdO1xuICAgICAgdGhpcy5zaG93RmlsdGVyID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIHVwZGF0ZUFwcGxpZWRGaWx0ZXJzKGFwcGxpZWRGaWx0ZXJzOiBBcnJheTx7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9Pikge1xuICAgIGlmIChhcHBsaWVkRmlsdGVycy5sZW5ndGggPT0gMCkge1xuICAgICAgZGVsZXRlIHRoaXMuYXBwbGllZEZpbHRlcnNbdGhpcy5maWx0ZXJOYW1lXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hcHBsaWVkRmlsdGVyc1t0aGlzLmZpbHRlck5hbWVdID0gYXBwbGllZEZpbHRlcnM7XG4gICAgfVxuICAgIHRoaXMuZmlsdGVyc1VwZGF0ZWQuZW1pdCh7IC4uLnRoaXMuYXBwbGllZEZpbHRlcnMgfSk7XG4gICAgdGhpcy50b2dnbGVGaWx0ZXIodGhpcy5maWx0ZXJOYW1lKTtcbiAgfVxuXG4gIC8vIFBhZ2luYXRpb24gcmVsYXRlZCBmdW5jdGlvbnNcbiAgaW5pdGlhbGl6ZVBhZ2luYXRpb24oKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLnBhZ2luYXRpb25Db25maWcpIHtcbiAgICAgIGxldCBsZW4gPSB0aGlzLmNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnLm5vT2ZQYWdlcztcbiAgICAgIGlmIChsZW4gPD0gNykge1xuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBsZW47IGkrKykge1xuICAgICAgICAgIHRoaXMucGFnZXMucHVzaChpKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wYWdlcyA9IFsxLCAyLCAzLCA0LCAwLCBsZW5dO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICB1cGRhdGVTZWxlY3RlZFBhZ2UocGFnZU51bWJlcjogbnVtYmVyKSB7XG4gICAgaWYgKHBhZ2VOdW1iZXIgPCAxIHx8IHBhZ2VOdW1iZXIgPiB0aGlzLmNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnLm5vT2ZQYWdlcykgcmV0dXJuO1xuICAgIHRoaXMuY29uZmlnLnBhZ2luYXRpb25Db25maWcuc2VsZWN0ZWRQYWdlID0gcGFnZU51bWJlcjtcbiAgICBsZXQgbGVuID0gdGhpcy5jb25maWcucGFnaW5hdGlvbkNvbmZpZy5ub09mUGFnZXM7XG4gICAgaWYgKGxlbiA+IDcpIHtcbiAgICAgIGlmIChwYWdlTnVtYmVyIC0gMiA8PSAxKSB7XG4gICAgICAgIHRoaXMucGFnZXMgPSBbMSwgMiwgMywgNCwgMCwgbGVuXTtcbiAgICAgIH0gZWxzZSBpZiAocGFnZU51bWJlciAtIDIgPiAxICYmIHBhZ2VOdW1iZXIgKyAyIDwgbGVuKSB7XG4gICAgICAgIHRoaXMucGFnZXMgPSBbMSwgMCwgcGFnZU51bWJlciAtIDEsIHBhZ2VOdW1iZXIsIHBhZ2VOdW1iZXIgKyAxLCAwLCBsZW5dO1xuICAgICAgfSBlbHNlIGlmIChwYWdlTnVtYmVyICsgMiA+PSBsZW4pIHtcbiAgICAgICAgdGhpcy5wYWdlcyA9IFsxLCAwLCBsZW4gLSAzLCBsZW4gLSAyLCBsZW4gLSAxLCBsZW5dO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnBhZ2VTZWxlY3RlZC5lbWl0KHRoaXMuY29uZmlnLnBhZ2luYXRpb25Db25maWc/LnNlbGVjdGVkUGFnZSk7XG4gIH1cblxuICAvLyBNYWluIGNvbnRhaW5lciByZWxhdGVkIGZ1bmN0aW9uc1xuICBnZXRDb250YWluZXJIZWlnaHQoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnPy5oZWlnaHQpIHJldHVybiB0aGlzLmNvbmZpZy5oZWlnaHQ7XG4gICAgZWxzZSByZXR1cm4gXCJcIjtcbiAgfVxuICBnZXRDb250YWluZXJXaWR0aCgpIHtcbiAgICBpZiAodGhpcy5jb25maWc/LndpZHRoKSByZXR1cm4gdGhpcy5jb25maWcud2lkdGg7XG4gICAgZWxzZSByZXR1cm4gXCJcIjtcbiAgfVxuXG4gIC8vIENvbHVtbiBIZWFkZXJzIHJlbGF0ZWQgZnVuY3Rpb25zXG4gIGdldENvbEhlYWRlcnNSb3dTdHlsZXMoKSB7XG4gICAgY29uc3QgeyBjb2xIZWFkZXJzUm93Q29uZmlnIH0gPSB0aGlzLmNvbmZpZztcbiAgICBjb25zdCBtaW5IZWlnaHQgPSBjb2xIZWFkZXJzUm93Q29uZmlnPy5oZWlnaHQgfHwgXCI0NHB4XCI7XG4gICAgY29uc3QgYm9yZGVyVG9wID0gY29sSGVhZGVyc1Jvd0NvbmZpZz8uc3R5bGU/LmJvcmRlclRvcCB8fCBcIlwiO1xuICAgIGNvbnN0IGJvcmRlckJvdHRvbSA9IGNvbEhlYWRlcnNSb3dDb25maWc/LnN0eWxlPy5ib3JkZXJCb3R0b20gfHwgXCIxcHggc29saWQgI0UwRTBFMFwiO1xuICAgIGNvbnN0IGJhY2tncm91bmRDb2xvciA9IGNvbEhlYWRlcnNSb3dDb25maWc/LnN0eWxlPy5iYWNrZ3JvdW5kQ29sb3IgfHwgXCIjRkZGRkZGXCI7XG4gICAgY29uc3QgZm9udFNpemUgPSBjb2xIZWFkZXJzUm93Q29uZmlnPy5zdHlsZT8uZm9udFNpemUgfHwgXCIxNHB4XCI7XG4gICAgcmV0dXJuIHtcbiAgICAgICdtaW4taGVpZ2h0JzogbWluSGVpZ2h0LFxuICAgICAgJ2JvcmRlci10b3AnOiBib3JkZXJUb3AsXG4gICAgICAnYm9yZGVyLWJvdHRvbSc6IGJvcmRlckJvdHRvbSxcbiAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogYmFja2dyb3VuZENvbG9yLFxuICAgICAgJ2ZvbnQtc2l6ZSc6IGZvbnRTaXplXG4gICAgfTtcbiAgfVxuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVDb25maWcge1xuICBoZWlnaHQ6IHN0cmluZyB8IFwiMTAwJVwiO1xuICB3aWR0aDogc3RyaW5nIHwgXCIxMDAlXCI7XG4gIHBhZ2luYXRpb25Db25maWc/OiBQYWdpbmF0aW9uQ29uZmlnIHwgdW5kZWZpbmVkIHwgbnVsbDtcbiAgY29sSGVhZGVyc1Jvd0NvbmZpZzogUm93Q29uZmlnIHwgdW5kZWZpbmVkIHwgbnVsbDtcbiAgcm93Q29uZmlnOiBSb3dDb25maWcgfCB1bmRlZmluZWQgfCBudWxsO1xuICBjb2xIZWFkZXJDb25maWc6IEFycmF5PENvbEhlYWRlckNvbmZpZz47XG4gIGNvbENvbmZpZzogQXJyYXk8Q29sQ29uZmlnPjtcbiAgY2FuRXhwYW5kPzogYm9vbGVhbjtcbiAgY2FuU2Nyb2xsSG9yaXpvbnRhbGx5PzogYm9vbGVhbjtcbiAgY2VsbEhvdmVyPzogYm9vbGVhbjtcbiAgYWN0aXZlUm93SW5kZXg/OiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb25Db25maWcge1xuICBub09mUGFnZXM6IG51bWJlcjtcbiAgcm93c1BlclBhZ2U6IG51bWJlcjtcbiAgdG90YWxOb09mUm93czogbnVtYmVyO1xuICBzZWxlY3RlZFBhZ2U/OiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIFJvd0NvbmZpZyB7XG4gIGhlaWdodD86IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw7XG4gIHN0eWxlPzoge307XG4gIGFjdGlvbj86IGFueTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29sSGVhZGVyQ29uZmlnIHtcbiAgdHlwZTogXCJ0ZXh0XCIgfCBcIm51bWJlclwiIHwgXCJjdXN0b21cIjtcbiAgZGF0YTogYW55O1xuICBjb21wb25lbnRSZWY/OiBhbnk7XG4gIGZpbHRlcnM/OiBBcnJheTxGaWx0ZXI+IHwgbnVsbDtcbiAgc3R5bGU/OiB7fTtcbiAgYWN0aW9uPzogYW55O1xufVxuZXhwb3J0IGludGVyZmFjZSBDb2xDb25maWcge1xuICB0eXBlOiBcInRleHRcIiB8IFwibnVtYmVyXCIgfCBcImN1c3RvbVwiO1xuICBjb21wb25lbnRSZWY/OiBhbnk7XG4gIHN0eWxlPzoge307XG4gIGFjdGlvbj86IGFueTtcbn1cbiIsIjxkaXZcbiAgW25nU3R5bGVdPVwie1xuICAgIGhlaWdodDogZ2V0Q29udGFpbmVySGVpZ2h0KCksXG4gICAgd2lkdGg6IGdldENvbnRhaW5lcldpZHRoKCksXG4gICAgJ292ZXJmbG93LXgnOiBjb25maWcuY2FuU2Nyb2xsSG9yaXpvbnRhbGx5ID8gJ2F1dG8nIDogJ3Vuc2V0J1xuICB9XCJcbiAgaWQ9XCJtYWluLWNvbnRhaW5lclwiXG4+XG4gIDxtaXMtdGFibGUtZmlsdGVyXG4gICAgI2ZpbHRlclxuICAgIChmaWx0ZXJzQXBwbGllZCk9XCJ1cGRhdGVBcHBsaWVkRmlsdGVycygkZXZlbnQpXCJcbiAgICAqbmdJZj1cInNob3dGaWx0ZXJcIlxuICAgIFtjb250YWluZXJTdHlsZXNdPVwiZmlsdGVyQ29udGFpbmVyU3R5bGVzXCJcbiAgICBbZmlsdGVyc0RhdGFdPVwiZmlsdGVyRGF0YVwiXG4gID48L21pcy10YWJsZS1maWx0ZXI+XG4gIDxkaXZcbiAgICAjdGFibGVcbiAgICBpZD1cInRhYmxlLWNvbnRhaW5lclwiXG4gICAgW25nQ2xhc3NdPVwieyAnbm8tc2Nyb2xsYmFyJzogZXhwYW5kZWRJbmRleCA8IDAsIHNjcm9sbGJhcjogIShleHBhbmRlZEluZGV4IDwgMCksICdzY3JvbGwtaG9yaXpvbnRhbGx5JzogY29uZmlnLmNhblNjcm9sbEhvcml6b250YWxseSB9XCJcbiAgPlxuICAgIDxkaXZcbiAgICBbbmdTdHlsZV09XCJnZXRDb2xIZWFkZXJzUm93U3R5bGVzKClcIlxuICAgICAgaWQ9XCJjb2wtaGVhZGVycy1jb250YWluZXJcIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgI2NvbEhlYWRlclJlZlxuICAgICAgICAoY2xpY2spPVwiY29sSGVhZGVyPy5hY3Rpb24gPyBjb2xIZWFkZXI/LmFjdGlvbihjb2xIZWFkZXIpIDogbnVsbFwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb2xIZWFkZXIgb2YgY29uZmlnPy5jb2xIZWFkZXJDb25maWdcIlxuICAgICAgICBjbGFzcz1cImNvbC1oZWFkZXJcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgd2lkdGg6IGNvbEhlYWRlcj8uc3R5bGU/LndpZHRoIHx8ICcnLFxuICAgICAgICAgIGN1cnNvcjogY29sSGVhZGVyLmFjdGlvbiA/ICdwb2ludGVyJyA6ICdkZWZhdWx0JyxcbiAgICAgICAgICAnanVzdGlmeS1jb250ZW50JzogY29sSGVhZGVyPy5zdHlsZT8uanVzdGlmeUNvbnRlbnRcbiAgICAgICAgICAgID8gY29sSGVhZGVyPy5zdHlsZT8uanVzdGlmeUNvbnRlbnRcbiAgICAgICAgICAgIDogY29sSGVhZGVyLnR5cGUgPT09ICdudW1iZXInXG4gICAgICAgICAgICA/ICdmbGV4LWVuZCdcbiAgICAgICAgICAgIDogJ3NwYWNlLWJldHdlZW4nXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICA8cCAqbmdJZj1cImNvbEhlYWRlcj8udHlwZSAhPT0gJ2N1c3RvbSdcIiBjbGFzcz1cImNvbC1oZWFkZXItdGV4dFwiPlxuICAgICAgICAgIHt7IGNvbEhlYWRlcj8uZGF0YSB8fCBcIiBcIiB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgKGNsaWNrKT1cImZpbHRlckRhdGEgPSBjb2xIZWFkZXIuZmlsdGVyczsgdG9nZ2xlRmlsdGVyKGNvbEhlYWRlci5kYXRhKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAqbmdJZj1cImNvbEhlYWRlcj8udHlwZSAhPT0gJ2N1c3RvbScgJiYgY29sSGVhZGVyPy5maWx0ZXJzICYmIGNvbEhlYWRlcj8uZmlsdGVycz8ubGVuZ3RoID4gMFwiXG4gICAgICAgICAgY2xhc3M9XCJmaWx0ZXItaWNvblwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImFwcGxpZWRGaWx0ZXJzW2NvbEhlYWRlci5kYXRhXT8ubGVuZ3RoID4gMFwiIGlkPVwiZmlsdGVyLWFjdGl2ZVwiPjwvc3Bhbj5cbiAgICAgICAgICA8c3ZnIGZpbGw9XCJub25lXCIgaGVpZ2h0PVwiMTBcIiB2aWV3Qm94PVwiMCAwIDEzIDEwXCIgd2lkdGg9XCIxM1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICBkPVwiTTQuOTc1NDYgMTBINy42NDIxM1Y4SDQuOTc1NDZWMTBaTTAuMzA4NDcyIDBWMkgxMi4zMDg1VjBIMC4zMDg0NzJaTTIuMzA4NDcgNkgxMC4zMDg1VjRIMi4zMDg0N1Y2WlwiXG4gICAgICAgICAgICAgIGZpbGw9XCIjMTgxRjMzXCJcbiAgICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICpuZ0lmPVwiY29sSGVhZGVyPy50eXBlID09PSAnY3VzdG9tJ1wiXG4gICAgICAgICAgW2N1c3RvbUNvbXBvbmVudF09XCJjb2xIZWFkZXI/LmNvbXBvbmVudFJlZlwiXG4gICAgICAgICAgW2RhdGFdPVwiY29sSGVhZGVyLmRhdGFcIlxuICAgICAgICAgIGN1c3RvbVRhYmxlQ2VsbFxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgaWQ9XCJkYXRhLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvdy13cmFwcGVyXCIgKm5nRm9yPVwibGV0IHJvdyBvZiB0YWJsZURhdGE7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidC1yb3dcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3Qtcm93LWhvdmVyJzogY29uZmlnLmNlbGxIb3ZlciwgJ2FjdGl2ZS1yb3cnOiBpID09PSBhY3RpdmVSb3dJbmRleCB9XCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdtaW4taGVpZ2h0JzogY29uZmlnPy5yb3dDb25maWc/LmhlaWdodCA/IGNvbmZpZy5yb3dDb25maWcuaGVpZ2h0IDogJzQ0cHgnIH1cIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RSb3coaSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAoY2xpY2spPVwiY29uZmlnPy5jb2xDb25maWdbaV0/LmFjdGlvbiA/IGNvbmZpZz8uY29sQ29uZmlnW2ldPy5hY3Rpb24oY29sKSA6IG51bGxcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbCBvZiByb3c7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICB3aWR0aDogY29uZmlnPy5jb2xDb25maWdbaV0/LnN0eWxlPy53aWR0aCB8fCBjb25maWc/LmNvbEhlYWRlckNvbmZpZ1tpXT8uc3R5bGU/LndpZHRoIHx8ICcnXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1jb2wtY29udGFpbmVyXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3QtY29sLWNvbnRhaW5lci1ob3Zlcic6IGNvbmZpZy5jZWxsSG92ZXIgfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInQtY29sXCJcbiAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbmZpZy5jb2xDb25maWdbaV0/LnN0eWxlXCJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgY3Vyc29yOiBjb25maWcuY29sQ29uZmlnW2ldPy5hY3Rpb24gPyAncG9pbnRlcicgOiAnZGVmYXVsdCcsXG4gICAgICAgICAgICAgICAgJ2p1c3RpZnktY29udGVudCc6IGNvbmZpZy5jb2xDb25maWdbaV0/LnN0eWxlPy5qdXN0aWZ5Q29udGVudFxuICAgICAgICAgICAgICAgICAgPyBjb25maWcuY29sQ29uZmlnW2ldPy5zdHlsZT8uanVzdGlmeUNvbnRlbnRcbiAgICAgICAgICAgICAgICAgIDogY29uZmlnLmNvbENvbmZpZ1tpXT8udHlwZSA9PT0gJ251bWJlcidcbiAgICAgICAgICAgICAgICAgID8gJ2ZsZXgtZW5kJ1xuICAgICAgICAgICAgICAgICAgOiAnc3BhY2UtYmV0d2VlbidcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb25maWcuY29sQ29uZmlnW2ldPy50eXBlICE9PSAnY3VzdG9tJ1wiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICAgY29sb3I6IGNvbmZpZz8uY29sQ29uZmlnW2ldPy5zdHlsZT8uY29sb3IgPyBjb25maWc/LmNvbENvbmZpZ1tpXT8uc3R5bGU/LmNvbG9yIDogJydcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtY29sLXRleHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgY29sIH19XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb25maWcuY29sQ29uZmlnW2ldPy50eXBlID09PSAnY3VzdG9tJ1wiXG4gICAgICAgICAgICAgICAgW2N1c3RvbUNvbXBvbmVudF09XCJjb25maWcuY29sQ29uZmlnW2ldLmNvbXBvbmVudFJlZlwiXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwiY29sXCJcbiAgICAgICAgICAgICAgICBjdXN0b21UYWJsZUNlbGxcbiAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWc/LmNhbkV4cGFuZCAmJiBleHBhbmRlZEluZGV4ID09PSBpXCIgY2xhc3M9XCJzdWItcm93XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN1YlRhYmxlRGF0YUxvYWRpbmdcIj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgcGFkZGluZzogMTZweFwiPkxvYWRpbmcuLi48L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXN1YlRhYmxlRGF0YUxvYWRpbmcgJiYgc3ViVGFibGVEYXRhLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBhbGlnbi1pdGVtczogY2VudGVyOyBwYWRkaW5nOiAxNnB4XCI+Tm8gRGF0YSBBdmFpbGFibGUuLi48L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXN1YlRhYmxlRGF0YUxvYWRpbmcgJiYgc3ViVGFibGVEYXRhLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDxzdWItdGFibGUgW2NvbmZpZ109XCJzdWJUYWJsZWNvbmZpZ1wiIFt0YWJsZURhdGFdPVwic3ViVGFibGVEYXRhXCI+PC9zdWItdGFibGU+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgKm5nSWY9XCJjb25maWc/LnBhZ2luYXRpb25Db25maWcgJiYgKHRhYmxlTGVuZ3RoID49IGNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnLnJvd3NQZXJQYWdlIHx8IGNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnPy5zZWxlY3RlZFBhZ2UgIT09IDEpXCJcbiAgICBpZD1cInBhZ2luYXRpb24tY29udGFpbmVyXCJcbiAgPlxuICAgIDxwIGlkPVwicGFnaW5hdGlvbi10ZXh0XCI+XG4gICAgICBTaG93aW5nXG4gICAgICB7eyAoY29uZmlnLnBhZ2luYXRpb25Db25maWc/LnNlbGVjdGVkUGFnZSAtIDEpICogY29uZmlnLnBhZ2luYXRpb25Db25maWcucm93c1BlclBhZ2UgKyAxIH19LXt7XG4gICAgICAgIChjb25maWcucGFnaW5hdGlvbkNvbmZpZz8uc2VsZWN0ZWRQYWdlIC0gMSkgKiBjb25maWcucGFnaW5hdGlvbkNvbmZpZy5yb3dzUGVyUGFnZSArIHRhYmxlTGVuZ3RoXG4gICAgICB9fVxuICAgICAgb2Yge3sgY29uZmlnLnBhZ2luYXRpb25Db25maWcudG90YWxOb09mUm93cyB9fSBpdGVtc1xuICAgIDwvcD5cbiAgICA8ZGl2IGlkPVwicGFnZXMtY29udGFpbmVyXCI+XG4gICAgICA8c3BhbiAoY2xpY2spPVwidXBkYXRlU2VsZWN0ZWRQYWdlKGNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnPy5zZWxlY3RlZFBhZ2UgLSAxKVwiIGNsYXNzPVwicGFnZVwiPlxuICAgICAgICA8c3ZnIGZpbGw9XCJub25lXCIgaGVpZ2h0PVwiMTBcIiB2aWV3Qm94PVwiMCAwIDcgMTBcIiB3aWR0aD1cIjdcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgZD1cIk0wLjg1NzQwNSA1LjU2Mjk1QzAuODU1Nzk0IDUuNTYxMzkgMC44NTQxODggNS41NTk4MiAwLjg1MjU4OCA1LjU1ODI0QzAuNjk1OTU1IDUuNDA0MDggMC42MTc2NDEgNS4yMDIwMyAwLjYxNzY0NyA0Ljk5OTk4QzAuNjE3NjQxIDQuNzk3OTMgMC42OTU5NTUgNC41OTU4OCAwLjg1MjU4OCA0LjQ0MTcyQzAuODU0MTg4IDQuNDQwMTQgMC44NTU3OTQgNC40Mzg1OCAwLjg1NzQwNCA0LjQzNzAyTDUuMTMwNjYgMC4yMzEyMzFDNS40NDM5MiAtMC4wNzcwNzcxIDUuOTUxOCAtMC4wNzcwNzcxIDYuMjY1MDYgMC4yMzEyMzFDNi41NzgzMSAwLjUzOTU0IDYuNTc4MzEgMS4wMzk0MSA2LjI2NTA2IDEuMzQ3NzJMMi41NTQyIDQuOTk5OThMNi4yNjUwNiA4LjY1MjI1QzYuNTc4MzEgOC45NjA1NSA2LjU3ODMxIDkuNDYwNDIgNi4yNjUwNiA5Ljc2ODczQzUuOTUxOCAxMC4wNzcgNS40NDM5MiAxMC4wNzcgNS4xMzA2NiA5Ljc2ODczTDAuODU3NDA1IDUuNTYyOTVaXCJcbiAgICAgICAgICAgIGZpbGw9XCIjMTgxRjMzXCJcbiAgICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9zcGFuPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcGFnZU51bWJlciBvZiBwYWdlc1wiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIChjbGljayk9XCJ1cGRhdGVTZWxlY3RlZFBhZ2UocGFnZU51bWJlcilcIlxuICAgICAgICAgICpuZ0lmPVwicGFnZU51bWJlciAhPSAwXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICdwYWdlLWFjdGl2ZSc6IHBhZ2VOdW1iZXIgPT0gY29uZmlnLnBhZ2luYXRpb25Db25maWc/LnNlbGVjdGVkUGFnZSB9XCJcbiAgICAgICAgICBjbGFzcz1cInBhZ2VcIlxuICAgICAgICAgID57eyBwYWdlTnVtYmVyIH19PC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJwYWdlTnVtYmVyID09IDBcIiBjbGFzcz1cInBhZ2Utc2VwZXJhdG9yXCI+XG4gICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXhcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZG90XCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDRweFwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZG90XCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDRweFwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZG90XCI+PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzcGFuIChjbGljayk9XCJ1cGRhdGVTZWxlY3RlZFBhZ2UoY29uZmlnLnBhZ2luYXRpb25Db25maWc/LnNlbGVjdGVkUGFnZSArIDEpXCIgY2xhc3M9XCJwYWdlXCI+XG4gICAgICAgIDxzdmcgZmlsbD1cIm5vbmVcIiBoZWlnaHQ9XCIxMFwiIHZpZXdCb3g9XCIwIDAgNyAxMFwiIHdpZHRoPVwiN1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICBkPVwiTTYuMTQyNiA1LjU2Mjk1QzYuMTQ0MjEgNS41NjEzOSA2LjE0NTgxIDUuNTU5ODIgNi4xNDc0MSA1LjU1ODI0QzYuMzA0MDUgNS40MDQwOCA2LjM4MjM2IDUuMjAyMDMgNi4zODIzNiA0Ljk5OTk4QzYuMzgyMzYgNC43OTc5MyA2LjMwNDA1IDQuNTk1ODggNi4xNDc0MSA0LjQ0MTcyQzYuMTQ1ODEgNC40NDAxNCA2LjE0NDIxIDQuNDM4NTggNi4xNDI2IDQuNDM3MDJMMS44NjkzNCAwLjIzMTIzMUMxLjU1NjA4IC0wLjA3NzA3NzEgMS4wNDgyIC0wLjA3NzA3NzEgMC43MzQ5NDIgMC4yMzEyMzFDMC40MjE2ODggMC41Mzk1NCAwLjQyMTY4OCAxLjAzOTQxIDAuNzM0OTQyIDEuMzQ3NzJMNC40NDU4IDQuOTk5OThMMC43MzQ5NDEgOC42NTIyNUMwLjQyMTY4NiA4Ljk2MDU1IDAuNDIxNjg2IDkuNDYwNDIgMC43MzQ5NDEgOS43Njg3M0MxLjA0ODIgMTAuMDc3IDEuNTU2MDggMTAuMDc3IDEuODY5MzQgOS43Njg3M0w2LjE0MjYgNS41NjI5NVpcIlxuICAgICAgICAgICAgZmlsbD1cIiMxODFGMzNcIlxuICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
485
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1QsWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNMckIsK0NBTUM7SUFKQyx5TkFBa0IsbUNBQTRCLEtBQUM7SUFJaEQsaUJBQW1COzs7SUFEbEIsQUFEQSw4REFBeUMsa0NBQ2Y7OztJQTBCdEIsNkJBQWdFO0lBQzlELFlBQ0Y7SUFBQSxpQkFBSTs7O0lBREYsY0FDRjtJQURFLHlGQUNGOzs7SUFNRSwyQkFBbUY7Ozs7SUFMckYsZ0NBSUM7SUFIQyw0UEFBeUMsc0NBQTRCLHdCQUFFLHdCQUF3QixLQUFDO0lBSWhHLCtFQUE0RTs7SUFDNUUsK0JBQStGO0lBQzdGLDJCQUtFO0lBRU4sQUFERSxpQkFBTSxFQUNEOzs7O0lBVEUsY0FBZ0Q7SUFBaEQsc0lBQWdEOzs7O0lBVXpELHdGQUtDOzs7SUFGQyxBQURBLHlGQUEyQywyQkFDcEI7Ozs7SUFwQzNCLGtDQWNDO0lBWkMsMlJBQTRELElBQUksS0FBQztJQStCakUsQUFmQSxBQUhBLGtFQUFnRSwyREFPL0Qsb0RBZ0JBO0lBQ0gsaUJBQU07OztJQWxDSixrZEFRRTtJQUVFLGVBQWtDO0lBQWxDLHFGQUFrQztJQUtuQyxjQUEwRjtJQUExRixzUEFBMEY7SUFjMUYsY0FBa0M7SUFBbEMscUZBQWtDOzs7SUFxQy9CLDZCQU1DO0lBQ0MsWUFDRjtJQUFBLGlCQUFJOzs7Ozs7SUFORiwrWkFFRTtJQUdGLGNBQ0Y7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WUFBcEMsc0RBQW9DO1lBTVYsY0FBMEI7WUFBMUIsZ0ZBQTBCO1lBdUNULGVBQWM7WUFBZCx1Q0FBYztZQThFeEQsY0FBcUk7WUFBckksaVBBQXFJOzs7aUZEM0g3SCxjQUFjO2NBTDFCLFNBQVM7MkJBQ0UsV0FBVzswQ0FlWCxjQUFjO2tCQUF2QixNQUFNO1lBSWMsTUFBTTtrQkFBMUIsU0FBUzttQkFBQyxRQUFRO1lBQ1csVUFBVTtrQkFBdkMsWUFBWTttQkFBQyxjQUFjO1lBS2xCLFlBQVk7a0JBQXJCLE1BQU07WUFFZSxNQUFNO2tCQUEzQixLQUFLO21CQUFDLGFBQWE7WUFDWCxjQUFjO2tCQUF0QixLQUFLO1lBQ0csZ0JBQWdCO2tCQUF4QixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLFNBQVM7a0JBQWpCLEtBQUs7WUFDRyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csbUJBQW1CO2tCQUEzQixLQUFLO1lBQ2MsS0FBSztrQkFBeEIsU0FBUzttQkFBQyxPQUFPOztrRkE5QlAsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGaWx0ZXIsIFRhYmxlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSBcIi4vZmlsdGVyL2ZpbHRlci5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy10YWJsZVwiLFxuICB0ZW1wbGF0ZVVybDogXCJ0YWJsZS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcInRhYmxlLmNvbXBvbmVudC5jc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG5cbiAgLy8gSW5pdGlhbGl6ZSB3aXRoIC0xIHRvIGluZGljYXRlIG5vIHJvdyBpcyBjb2xvcmVkIGF0IHRoZSBiZWdpbm5pbmdcbiAgYWN0aXZlUm93SW5kZXg6IG51bWJlciA9IDA7IFxuXG4gIC8vIEZpbHRlciByZWxhdGVkIHZhcmlhYmxlc1xuICBzaG93RmlsdGVyOiBib29sZWFuID0gZmFsc2U7XG4gIGZpbHRlck5hbWU6IHN0cmluZyA9IFwiXCI7XG4gIGZpbHRlckRhdGE6IEFycmF5PEZpbHRlcj4gPSBbXTtcbiAgZmlsdGVyQ29udGFpbmVyU3R5bGVzOiBhbnkgPSB7fTtcbiAgYXBwbGllZEZpbHRlcnM6IHsgW2tleTogc3RyaW5nXTogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4gfSA9IHt9O1xuICBAT3V0cHV0KCkgZmlsdGVyc1VwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBba2V5OiBzdHJpbmddOiBBcnJheTx7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PjtcbiAgfT4oKTtcblxuICBAVmlld0NoaWxkKFwiZmlsdGVyXCIpIGZpbHRlcjogVGFibGVGaWx0ZXJDb21wb25lbnQgfCBhbnk7XG4gIEBWaWV3Q2hpbGRyZW4oXCJjb2xIZWFkZXJSZWZcIikgY29sSGVhZGVyczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+IHwgYW55O1xuXG4gIC8vIFBhZ2luYXRpb24gcmVsYXRlZCB2YXJpYWJsZXNcbiAgcGFnZXM6IEFycmF5PG51bWJlcj4gPSBbXTtcbiAgdGFibGVMZW5ndGg6IG51bWJlcjtcbiAgQE91dHB1dCgpIHBhZ2VTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBJbnB1dChcInRhYmxlQ29uZmlnXCIpIGNvbmZpZzogVGFibGVDb25maWcgfCBhbnk7XG4gIEBJbnB1dCgpIHN1YlRhYmxlY29uZmlnOiBUYWJsZUNvbmZpZyB8IGFueTtcbiAgQElucHV0KCkgdGFibGVEYXRhTG9hZGluZzogYm9vbGVhbiB8IGFueTtcbiAgQElucHV0KCkgZXhwYW5kZWRJbmRleDogbnVtYmVyIHwgYW55O1xuICBASW5wdXQoKSB0YWJsZURhdGE6IEFycmF5PEFycmF5PGFueT4+ID0gW107XG4gIEBJbnB1dCgpIHN1YlRhYmxlRGF0YTogQXJyYXk8QXJyYXk8YW55Pj4gPSBbXTtcbiAgQElucHV0KCkgc3ViVGFibGVEYXRhTG9hZGluZzogYm9vbGVhbiB8IGFueTtcbiAgQFZpZXdDaGlsZChcInRhYmxlXCIpIHRhYmxlOiBFbGVtZW50UmVmIHwgYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikgeyB9XG5cbiAgLy8gRnVuY3Rpb24gdG8gaGFuZGxlIHJvdyBjbGlja1xuICBzZWxlY3RSb3coaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuYWN0aXZlUm93SW5kZXggPSBpbmRleDsgLy8gU2V0IHRoZSBzZWxlY3RlZCBpbmRleCB0byB0aGUgY2xpY2tlZCByb3cncyBpbmRleFxuICAgICEhdGhpcy5jb25maWcucm93Q29uZmlnLmFjdGlvbiAmJiB0aGlzLmNvbmZpZy5yb3dDb25maWcuYWN0aW9uKGluZGV4KTtcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlTGVuZ3RoID0gISF0aGlzLnRhYmxlRGF0YSA/IHRoaXMudGFibGVEYXRhLmxlbmd0aCA6IDA7XG4gICAgdGhpcy5pbml0aWFsaXplRmlsdGVycygpO1xuICAgIGlmICh0aGlzLmNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVQYWdpbmF0aW9uKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbmZpZy5jYW5TY3JvbGxIb3Jpem9udGFsbHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jb25maWcuY2FuU2Nyb2xsSG9yaXpvbnRhbGx5ID0gZmFsc2U7XG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBldmVudCA9PiB7XG4gICAgICBpZiAodGhpcy5maWx0ZXIpIHtcbiAgICAgICAgbGV0IGlzQ2hlY2tCb3hDbGlja2VkID0gdHJ1ZTtcbiAgICAgICAgbGV0IHRhcmdldEVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTFNwYW5FbGVtZW50O1xuICAgICAgICBpZiAodGFyZ2V0RWxlbWVudC5jbGFzc05hbWUgPT09IFwiY2hlY2ttYXJrXCIpIHtcbiAgICAgICAgICBpc0NoZWNrQm94Q2xpY2tlZCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5zaG93RmlsdGVyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgaXNDbGlja0luc2lkZUVsZW1lbnQgPSB0aGlzLmZpbHRlci5jb250YWluZXIubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpO1xuICAgICAgICBpZiAoIWlzQ2xpY2tJbnNpZGVFbGVtZW50ICYmICFpc0NoZWNrQm94Q2xpY2tlZCkge1xuICAgICAgICAgIHRoaXMudG9nZ2xlRmlsdGVyKHRoaXMuZmlsdGVyTmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLnBhZ2luYXRpb25Db25maWcpIHtcbiAgICAgIGxldCBoZWlnaHQgPSB0aGlzLmNvbmZpZy5oZWlnaHQ7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudGFibGUubmF0aXZlRWxlbWVudCwgXCJoZWlnaHRcIiwgaGVpZ2h0IC0gNTYgKyBcInB4XCIpO1xuICAgIH1cbiAgfVxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLnRhYmxlTGVuZ3RoID0gISF0aGlzLnRhYmxlRGF0YSA/IHRoaXMudGFibGVEYXRhLmxlbmd0aCA6IDA7XG4gICAgdGhpcy5hY3RpdmVSb3dJbmRleCA9IHRoaXMuY29uZmlnLmFjdGl2ZVJvd0luZGV4IHx8IDA7XG4gIH1cblxuICAvLyBGaWx0ZXIgcmVsYXRlZCBmdW5jdGlvbnNcbiAgaW5pdGlhbGl6ZUZpbHRlcnMoKSB7XG4gICAgZm9yIChsZXQgY29sSGVhZGVyIG9mIHRoaXMuY29uZmlnPy5jb2xIZWFkZXJDb25maWcpIHtcbiAgICAgIGlmIChjb2xIZWFkZXIuZmlsdGVycykge1xuICAgICAgICBsZXQgZmlsdGVycyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBmaWx0ZXIgb2YgY29sSGVhZGVyLmZpbHRlcnMpIHtcbiAgICAgICAgICBpZiAoZmlsdGVyLmNoZWNrZWQpIHtcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IGZpbHRlci5uYW1lLFxuICAgICAgICAgICAgICB2YWx1ZTogZmlsdGVyLnZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlcnMubGVuZ3RoID4gMCkgdGhpcy5hcHBsaWVkRmlsdGVyc1tjb2xIZWFkZXIuZGF0YV0gPSBmaWx0ZXJzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICB0b2dnbGVGaWx0ZXIoZmlsdGVyTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLnNob3dGaWx0ZXIpIHtcbiAgICAgIHRoaXMuZmlsdGVyTmFtZSA9IGZpbHRlck5hbWU7XG4gICAgICB0aGlzLnNob3dGaWx0ZXIgPSB0cnVlO1xuXG4gICAgICBsZXQgb2ZmU2V0ID0gMDtcbiAgICAgIGxldCBjb2xIZWFkZXJzUmV2ZXJzZWQgPSB0aGlzLmNvbEhlYWRlcnMudG9BcnJheSgpLnJldmVyc2UoKTtcblxuICAgICAgZm9yIChsZXQgaGVhZGVyIG9mIGNvbEhlYWRlcnNSZXZlcnNlZCkge1xuICAgICAgICBpZiAoaGVhZGVyLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0ID09PSBmaWx0ZXJOYW1lKSBicmVhaztcbiAgICAgICAgb2ZmU2V0ICs9IGhlYWRlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgfVxuICAgICAgdGhpcy5maWx0ZXJDb250YWluZXJTdHlsZXMgPSB7XG4gICAgICAgIHRvcDogXCI0NHB4XCIsXG4gICAgICAgIHJpZ2h0OiBvZmZTZXQgPiAwID8gb2ZmU2V0IC0gMTE2ICsgXCJweFwiIDogXCIxMnB4XCJcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVyTmFtZSA9IFwiXCI7XG4gICAgICB0aGlzLmZpbHRlckRhdGEgPSBbXTtcbiAgICAgIHRoaXMuc2hvd0ZpbHRlciA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICB1cGRhdGVBcHBsaWVkRmlsdGVycyhhcHBsaWVkRmlsdGVyczogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4pIHtcbiAgICBpZiAoYXBwbGllZEZpbHRlcnMubGVuZ3RoID09IDApIHtcbiAgICAgIGRlbGV0ZSB0aGlzLmFwcGxpZWRGaWx0ZXJzW3RoaXMuZmlsdGVyTmFtZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXBwbGllZEZpbHRlcnNbdGhpcy5maWx0ZXJOYW1lXSA9IGFwcGxpZWRGaWx0ZXJzO1xuICAgIH1cbiAgICB0aGlzLmZpbHRlcnNVcGRhdGVkLmVtaXQoeyAuLi50aGlzLmFwcGxpZWRGaWx0ZXJzIH0pO1xuICAgIHRoaXMudG9nZ2xlRmlsdGVyKHRoaXMuZmlsdGVyTmFtZSk7XG4gIH1cblxuICAvLyBQYWdpbmF0aW9uIHJlbGF0ZWQgZnVuY3Rpb25zXG4gIGluaXRpYWxpemVQYWdpbmF0aW9uKCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnKSB7XG4gICAgICBsZXQgbGVuID0gdGhpcy5jb25maWcucGFnaW5hdGlvbkNvbmZpZy5ub09mUGFnZXM7XG4gICAgICBpZiAobGVuIDw9IDcpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gbGVuOyBpKyspIHtcbiAgICAgICAgICB0aGlzLnBhZ2VzLnB1c2goaSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGFnZXMgPSBbMSwgMiwgMywgNCwgMCwgbGVuXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgdXBkYXRlU2VsZWN0ZWRQYWdlKHBhZ2VOdW1iZXI6IG51bWJlcikge1xuICAgIGlmIChwYWdlTnVtYmVyIDwgMSB8fCBwYWdlTnVtYmVyID4gdGhpcy5jb25maWcucGFnaW5hdGlvbkNvbmZpZy5ub09mUGFnZXMpIHJldHVybjtcbiAgICB0aGlzLmNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnLnNlbGVjdGVkUGFnZSA9IHBhZ2VOdW1iZXI7XG4gICAgbGV0IGxlbiA9IHRoaXMuY29uZmlnLnBhZ2luYXRpb25Db25maWcubm9PZlBhZ2VzO1xuICAgIGlmIChsZW4gPiA3KSB7XG4gICAgICBpZiAocGFnZU51bWJlciAtIDIgPD0gMSkge1xuICAgICAgICB0aGlzLnBhZ2VzID0gWzEsIDIsIDMsIDQsIDAsIGxlbl07XG4gICAgICB9IGVsc2UgaWYgKHBhZ2VOdW1iZXIgLSAyID4gMSAmJiBwYWdlTnVtYmVyICsgMiA8IGxlbikge1xuICAgICAgICB0aGlzLnBhZ2VzID0gWzEsIDAsIHBhZ2VOdW1iZXIgLSAxLCBwYWdlTnVtYmVyLCBwYWdlTnVtYmVyICsgMSwgMCwgbGVuXTtcbiAgICAgIH0gZWxzZSBpZiAocGFnZU51bWJlciArIDIgPj0gbGVuKSB7XG4gICAgICAgIHRoaXMucGFnZXMgPSBbMSwgMCwgbGVuIC0gMywgbGVuIC0gMiwgbGVuIC0gMSwgbGVuXTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5wYWdlU2VsZWN0ZWQuZW1pdCh0aGlzLmNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnPy5zZWxlY3RlZFBhZ2UpO1xuICB9XG5cbiAgLy8gTWFpbiBjb250YWluZXIgcmVsYXRlZCBmdW5jdGlvbnNcbiAgZ2V0Q29udGFpbmVySGVpZ2h0KCkge1xuICAgIGlmICh0aGlzLmNvbmZpZz8uaGVpZ2h0KSByZXR1cm4gdGhpcy5jb25maWcuaGVpZ2h0O1xuICAgIGVsc2UgcmV0dXJuIFwiXCI7XG4gIH1cbiAgZ2V0Q29udGFpbmVyV2lkdGgoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnPy53aWR0aCkgcmV0dXJuIHRoaXMuY29uZmlnLndpZHRoO1xuICAgIGVsc2UgcmV0dXJuIFwiXCI7XG4gIH1cblxuICAvLyBDb2x1bW4gSGVhZGVycyByZWxhdGVkIGZ1bmN0aW9uc1xuICBnZXRDb2xIZWFkZXJzUm93U3R5bGVzKCkge1xuICAgIGNvbnN0IHsgY29sSGVhZGVyc1Jvd0NvbmZpZyB9ID0gdGhpcy5jb25maWc7XG4gICAgY29uc3QgbWluSGVpZ2h0ID0gY29sSGVhZGVyc1Jvd0NvbmZpZz8uaGVpZ2h0IHx8IFwiNDRweFwiO1xuICAgIGNvbnN0IGJvcmRlclRvcCA9IGNvbEhlYWRlcnNSb3dDb25maWc/LnN0eWxlPy5ib3JkZXJUb3AgfHwgXCJcIjtcbiAgICBjb25zdCBib3JkZXJCb3R0b20gPSBjb2xIZWFkZXJzUm93Q29uZmlnPy5zdHlsZT8uYm9yZGVyQm90dG9tIHx8IFwiMXB4IHNvbGlkICNFMEUwRTBcIjtcbiAgICBjb25zdCBiYWNrZ3JvdW5kQ29sb3IgPSBjb2xIZWFkZXJzUm93Q29uZmlnPy5zdHlsZT8uYmFja2dyb3VuZENvbG9yIHx8IFwiI0ZGRkZGRlwiO1xuICAgIGNvbnN0IGZvbnRTaXplID0gY29sSGVhZGVyc1Jvd0NvbmZpZz8uc3R5bGU/LmZvbnRTaXplIHx8IFwiMTRweFwiO1xuICAgIHJldHVybiB7XG4gICAgICAnbWluLWhlaWdodCc6IG1pbkhlaWdodCxcbiAgICAgICdib3JkZXItdG9wJzogYm9yZGVyVG9wLFxuICAgICAgJ2JvcmRlci1ib3R0b20nOiBib3JkZXJCb3R0b20sXG4gICAgICAnYmFja2dyb3VuZC1jb2xvcic6IGJhY2tncm91bmRDb2xvcixcbiAgICAgICdmb250LXNpemUnOiBmb250U2l6ZVxuICAgIH07XG4gIH1cblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQ29uZmlnIHtcbiAgaGVpZ2h0OiBzdHJpbmcgfCBcIjEwMCVcIjtcbiAgd2lkdGg6IHN0cmluZyB8IFwiMTAwJVwiO1xuICBwYWdpbmF0aW9uQ29uZmlnPzogUGFnaW5hdGlvbkNvbmZpZyB8IHVuZGVmaW5lZCB8IG51bGw7XG4gIGNvbEhlYWRlcnNSb3dDb25maWc6IFJvd0NvbmZpZyB8IHVuZGVmaW5lZCB8IG51bGw7XG4gIHJvd0NvbmZpZzogUm93Q29uZmlnIHwgdW5kZWZpbmVkIHwgbnVsbDtcbiAgY29sSGVhZGVyQ29uZmlnOiBBcnJheTxDb2xIZWFkZXJDb25maWc+O1xuICBjb2xDb25maWc6IEFycmF5PENvbENvbmZpZz47XG4gIGNhbkV4cGFuZD86IGJvb2xlYW47XG4gIGNhblNjcm9sbEhvcml6b250YWxseT86IGJvb2xlYW47XG4gIGNlbGxIb3Zlcj86IGJvb2xlYW47XG4gIGFjdGl2ZVJvd0luZGV4PzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uQ29uZmlnIHtcbiAgbm9PZlBhZ2VzOiBudW1iZXI7XG4gIHJvd3NQZXJQYWdlOiBudW1iZXI7XG4gIHRvdGFsTm9PZlJvd3M6IG51bWJlcjtcbiAgc2VsZWN0ZWRQYWdlPzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBSb3dDb25maWcge1xuICBoZWlnaHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsO1xuICBzdHlsZT86IHt9O1xuICBhY3Rpb24/OiBhbnk7XG59XG5leHBvcnQgaW50ZXJmYWNlIENvbEhlYWRlckNvbmZpZyB7XG4gIHR5cGU6IFwidGV4dFwiIHwgXCJudW1iZXJcIiB8IFwiY3VzdG9tXCI7XG4gIGRhdGE6IGFueTtcbiAgY29tcG9uZW50UmVmPzogYW55O1xuICBmaWx0ZXJzPzogQXJyYXk8RmlsdGVyPiB8IG51bGw7XG4gIHN0eWxlPzoge307XG4gIGFjdGlvbj86IGFueTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29sQ29uZmlnIHtcbiAgdHlwZTogXCJ0ZXh0XCIgfCBcIm51bWJlclwiIHwgXCJjdXN0b21cIjtcbiAgY29tcG9uZW50UmVmPzogYW55O1xuICBzdHlsZT86IHt9O1xuICBhY3Rpb24/OiBhbnk7XG59XG4iLCI8ZGl2XG4gIFtuZ1N0eWxlXT1cIntcbiAgICBoZWlnaHQ6IGdldENvbnRhaW5lckhlaWdodCgpLFxuICAgIHdpZHRoOiBnZXRDb250YWluZXJXaWR0aCgpLFxuICAgICdvdmVyZmxvdy14JzogY29uZmlnLmNhblNjcm9sbEhvcml6b250YWxseSA/ICdhdXRvJyA6ICd1bnNldCdcbiAgfVwiXG4gIGlkPVwibWFpbi1jb250YWluZXJcIlxuPlxuICA8bWlzLXRhYmxlLWZpbHRlclxuICAgICNmaWx0ZXJcbiAgICAoZmlsdGVyc0FwcGxpZWQpPVwidXBkYXRlQXBwbGllZEZpbHRlcnMoJGV2ZW50KVwiXG4gICAgKm5nSWY9XCJzaG93RmlsdGVyXCJcbiAgICBbY29udGFpbmVyU3R5bGVzXT1cImZpbHRlckNvbnRhaW5lclN0eWxlc1wiXG4gICAgW2ZpbHRlcnNEYXRhXT1cImZpbHRlckRhdGFcIlxuICA+PC9taXMtdGFibGUtZmlsdGVyPlxuICA8ZGl2XG4gICAgI3RhYmxlXG4gICAgaWQ9XCJ0YWJsZS1jb250YWluZXJcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ25vLXNjcm9sbGJhcic6IGV4cGFuZGVkSW5kZXggPCAwLCBzY3JvbGxiYXI6ICEoZXhwYW5kZWRJbmRleCA8IDApLCAnc2Nyb2xsLWhvcml6b250YWxseSc6IGNvbmZpZy5jYW5TY3JvbGxIb3Jpem9udGFsbHkgfVwiXG4gID5cbiAgICA8ZGl2XG4gICAgW25nU3R5bGVdPVwiZ2V0Q29sSGVhZGVyc1Jvd1N0eWxlcygpXCJcbiAgICAgIGlkPVwiY29sLWhlYWRlcnMtY29udGFpbmVyXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgICNjb2xIZWFkZXJSZWZcbiAgICAgICAgKGNsaWNrKT1cImNvbEhlYWRlcj8uYWN0aW9uID8gY29sSGVhZGVyPy5hY3Rpb24oY29sSGVhZGVyKSA6IG51bGxcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgY29sSGVhZGVyIG9mIGNvbmZpZz8uY29sSGVhZGVyQ29uZmlnXCJcbiAgICAgICAgY2xhc3M9XCJjb2wtaGVhZGVyXCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgIHdpZHRoOiBjb2xIZWFkZXI/LnN0eWxlPy53aWR0aCB8fCAnJyxcbiAgICAgICAgICBjdXJzb3I6IGNvbEhlYWRlci5hY3Rpb24gPyAncG9pbnRlcicgOiAnZGVmYXVsdCcsXG4gICAgICAgICAgJ2p1c3RpZnktY29udGVudCc6IGNvbEhlYWRlcj8uc3R5bGU/Lmp1c3RpZnlDb250ZW50XG4gICAgICAgICAgICA/IGNvbEhlYWRlcj8uc3R5bGU/Lmp1c3RpZnlDb250ZW50XG4gICAgICAgICAgICA6IGNvbEhlYWRlci50eXBlID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgPyAnZmxleC1lbmQnXG4gICAgICAgICAgICA6ICdzcGFjZS1iZXR3ZWVuJ1xuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPHAgKm5nSWY9XCJjb2xIZWFkZXI/LnR5cGUgIT09ICdjdXN0b20nXCIgY2xhc3M9XCJjb2wtaGVhZGVyLXRleHRcIj5cbiAgICAgICAgICB7eyBjb2xIZWFkZXI/LmRhdGEgfHwgXCIgXCIgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIChjbGljayk9XCJmaWx0ZXJEYXRhID0gY29sSGVhZGVyLmZpbHRlcnM7IHRvZ2dsZUZpbHRlcihjb2xIZWFkZXIuZGF0YSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgKm5nSWY9XCJjb2xIZWFkZXI/LnR5cGUgIT09ICdjdXN0b20nICYmIGNvbEhlYWRlcj8uZmlsdGVycyAmJiBjb2xIZWFkZXI/LmZpbHRlcnM/Lmxlbmd0aCA+IDBcIlxuICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLWljb25cIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJhcHBsaWVkRmlsdGVyc1tjb2xIZWFkZXIuZGF0YV0/Lmxlbmd0aCA+IDBcIiBpZD1cImZpbHRlci1hY3RpdmVcIj48L3NwYW4+XG4gICAgICAgICAgPHN2ZyBmaWxsPVwibm9uZVwiIGhlaWdodD1cIjEwXCIgdmlld0JveD1cIjAgMCAxMyAxMFwiIHdpZHRoPVwiMTNcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgZD1cIk00Ljk3NTQ2IDEwSDcuNjQyMTNWOEg0Ljk3NTQ2VjEwWk0wLjMwODQ3MiAwVjJIMTIuMzA4NVYwSDAuMzA4NDcyWk0yLjMwODQ3IDZIMTAuMzA4NVY0SDIuMzA4NDdWNlpcIlxuICAgICAgICAgICAgICBmaWxsPVwiIzE4MUYzM1wiXG4gICAgICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAqbmdJZj1cImNvbEhlYWRlcj8udHlwZSA9PT0gJ2N1c3RvbSdcIlxuICAgICAgICAgIFtjdXN0b21Db21wb25lbnRdPVwiY29sSGVhZGVyPy5jb21wb25lbnRSZWZcIlxuICAgICAgICAgIFtkYXRhXT1cImNvbEhlYWRlci5kYXRhXCJcbiAgICAgICAgICBjdXN0b21UYWJsZUNlbGxcbiAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGlkPVwiZGF0YS1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3ctd3JhcHBlclwiICpuZ0Zvcj1cImxldCByb3cgb2YgdGFibGVEYXRhOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInQtcm93XCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICd0LXJvdy1ob3Zlcic6IGNvbmZpZy5jZWxsSG92ZXIsICdhY3RpdmUtcm93JzogaSA9PT0gYWN0aXZlUm93SW5kZXggfVwiXG4gICAgICAgICAgW25nU3R5bGVdPVwieyAnbWluLWhlaWdodCc6IGNvbmZpZz8ucm93Q29uZmlnPy5oZWlnaHQgPyBjb25maWcucm93Q29uZmlnLmhlaWdodCA6ICc0NHB4JyB9XCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0Um93KGkpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKGNsaWNrKT1cImNvbmZpZz8uY29sQ29uZmlnW2ldPy5hY3Rpb24gPyBjb25maWc/LmNvbENvbmZpZ1tpXT8uYWN0aW9uKGNvbCkgOiBudWxsXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2wgb2Ygcm93OyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgd2lkdGg6IGNvbmZpZz8uY29sQ29uZmlnW2ldPy5zdHlsZT8ud2lkdGggfHwgY29uZmlnPy5jb2xIZWFkZXJDb25maWdbaV0/LnN0eWxlPy53aWR0aCB8fCAnJ1xuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICBjbGFzcz1cInQtY29sLWNvbnRhaW5lclwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICd0LWNvbC1jb250YWluZXItaG92ZXInOiBjb25maWcuY2VsbEhvdmVyIH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0LWNvbFwiXG4gICAgICAgICAgICAgIFtzdHlsZV09XCJjb25maWcuY29sQ29uZmlnW2ldPy5zdHlsZVwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIGN1cnNvcjogY29uZmlnLmNvbENvbmZpZ1tpXT8uYWN0aW9uID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgICAgICdqdXN0aWZ5LWNvbnRlbnQnOiBjb25maWcuY29sQ29uZmlnW2ldPy5zdHlsZT8uanVzdGlmeUNvbnRlbnRcbiAgICAgICAgICAgICAgICAgID8gY29uZmlnLmNvbENvbmZpZ1tpXT8uc3R5bGU/Lmp1c3RpZnlDb250ZW50XG4gICAgICAgICAgICAgICAgICA6IGNvbmZpZy5jb2xDb25maWdbaV0/LnR5cGUgPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgICA/ICdmbGV4LWVuZCdcbiAgICAgICAgICAgICAgICAgIDogJ3NwYWNlLWJldHdlZW4nXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnLmNvbENvbmZpZ1tpXT8udHlwZSAhPT0gJ2N1c3RvbSdcIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiBjb25maWc/LmNvbENvbmZpZ1tpXT8uc3R5bGU/LmNvbG9yID8gY29uZmlnPy5jb2xDb25maWdbaV0/LnN0eWxlPy5jb2xvciA6ICcnXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWNvbC10ZXh0XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGNvbCB9fVxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnLmNvbENvbmZpZ1tpXT8udHlwZSA9PT0gJ2N1c3RvbSdcIlxuICAgICAgICAgICAgICAgIFtjdXN0b21Db21wb25lbnRdPVwiY29uZmlnLmNvbENvbmZpZ1tpXS5jb21wb25lbnRSZWZcIlxuICAgICAgICAgICAgICAgIFtkYXRhXT1cImNvbFwiXG4gICAgICAgICAgICAgICAgY3VzdG9tVGFibGVDZWxsXG4gICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnPy5jYW5FeHBhbmQgJiYgZXhwYW5kZWRJbmRleCA9PT0gaVwiIGNsYXNzPVwic3ViLXJvd1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdWJUYWJsZURhdGFMb2FkaW5nXCI+XG4gICAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBwYWRkaW5nOiAnMTZweCdcbiAgICAgICAgICAgIH1cIj5cbiAgICAgICAgICAgICAgTG9hZGluZy4uLlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzdWJUYWJsZURhdGFMb2FkaW5nICYmIHN1YlRhYmxlRGF0YS5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICAgIDxkaXYgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIHBhZGRpbmc6ICcxNnB4J1xuICAgICAgICAgICAgfVwiPlxuICAgICAgICAgICAgICBObyBEYXRhIEF2YWlsYWJsZS4uLlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzdWJUYWJsZURhdGFMb2FkaW5nICYmIHN1YlRhYmxlRGF0YS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICA8c3ViLXRhYmxlIFtjb25maWddPVwic3ViVGFibGVjb25maWdcIiBbdGFibGVEYXRhXT1cInN1YlRhYmxlRGF0YVwiPjwvc3ViLXRhYmxlPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiY29uZmlnPy5wYWdpbmF0aW9uQ29uZmlnICYmICh0YWJsZUxlbmd0aCA+PSBjb25maWcucGFnaW5hdGlvbkNvbmZpZy5yb3dzUGVyUGFnZSB8fCBjb25maWcucGFnaW5hdGlvbkNvbmZpZz8uc2VsZWN0ZWRQYWdlICE9PSAxKVwiXG4gICAgaWQ9XCJwYWdpbmF0aW9uLWNvbnRhaW5lclwiXG4gID5cbiAgICA8cCBpZD1cInBhZ2luYXRpb24tdGV4dFwiPlxuICAgICAgU2hvd2luZ1xuICAgICAge3sgKGNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnPy5zZWxlY3RlZFBhZ2UgLSAxKSAqIGNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnLnJvd3NQZXJQYWdlICsgMSB9fS17e1xuICAgICAgICAoY29uZmlnLnBhZ2luYXRpb25Db25maWc/LnNlbGVjdGVkUGFnZSAtIDEpICogY29uZmlnLnBhZ2luYXRpb25Db25maWcucm93c1BlclBhZ2UgKyB0YWJsZUxlbmd0aFxuICAgICAgfX1cbiAgICAgIG9mIHt7IGNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnLnRvdGFsTm9PZlJvd3MgfX0gaXRlbXNcbiAgICA8L3A+XG4gICAgPGRpdiBpZD1cInBhZ2VzLWNvbnRhaW5lclwiPlxuICAgICAgPHNwYW4gKGNsaWNrKT1cInVwZGF0ZVNlbGVjdGVkUGFnZShjb25maWcucGFnaW5hdGlvbkNvbmZpZz8uc2VsZWN0ZWRQYWdlIC0gMSlcIiBjbGFzcz1cInBhZ2VcIj5cbiAgICAgICAgPHN2ZyBmaWxsPVwibm9uZVwiIGhlaWdodD1cIjEwXCIgdmlld0JveD1cIjAgMCA3IDEwXCIgd2lkdGg9XCI3XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgIGQ9XCJNMC44NTc0MDUgNS41NjI5NUMwLjg1NTc5NCA1LjU2MTM5IDAuODU0MTg4IDUuNTU5ODIgMC44NTI1ODggNS41NTgyNEMwLjY5NTk1NSA1LjQwNDA4IDAuNjE3NjQxIDUuMjAyMDMgMC42MTc2NDcgNC45OTk5OEMwLjYxNzY0MSA0Ljc5NzkzIDAuNjk1OTU1IDQuNTk1ODggMC44NTI1ODggNC40NDE3MkMwLjg1NDE4OCA0LjQ0MDE0IDAuODU1Nzk0IDQuNDM4NTggMC44NTc0MDQgNC40MzcwMkw1LjEzMDY2IDAuMjMxMjMxQzUuNDQzOTIgLTAuMDc3MDc3MSA1Ljk1MTggLTAuMDc3MDc3MSA2LjI2NTA2IDAuMjMxMjMxQzYuNTc4MzEgMC41Mzk1NCA2LjU3ODMxIDEuMDM5NDEgNi4yNjUwNiAxLjM0NzcyTDIuNTU0MiA0Ljk5OTk4TDYuMjY1MDYgOC42NTIyNUM2LjU3ODMxIDguOTYwNTUgNi41NzgzMSA5LjQ2MDQyIDYuMjY1MDYgOS43Njg3M0M1Ljk1MTggMTAuMDc3IDUuNDQzOTIgMTAuMDc3IDUuMTMwNjYgOS43Njg3M0wwLjg1NzQwNSA1LjU2Mjk1WlwiXG4gICAgICAgICAgICBmaWxsPVwiIzE4MUYzM1wiXG4gICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHBhZ2VOdW1iZXIgb2YgcGFnZXNcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAoY2xpY2spPVwidXBkYXRlU2VsZWN0ZWRQYWdlKHBhZ2VOdW1iZXIpXCJcbiAgICAgICAgICAqbmdJZj1cInBhZ2VOdW1iZXIgIT0gMFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAncGFnZS1hY3RpdmUnOiBwYWdlTnVtYmVyID09IGNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnPy5zZWxlY3RlZFBhZ2UgfVwiXG4gICAgICAgICAgY2xhc3M9XCJwYWdlXCJcbiAgICAgICAgICA+e3sgcGFnZU51bWJlciB9fTwvc3BhblxuICAgICAgICA+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwicGFnZU51bWJlciA9PSAwXCIgY2xhc3M9XCJwYWdlLXNlcGVyYXRvclwiPlxuICAgICAgICAgIDxkaXYgW25nU3R5bGVdPVwieyBkaXNwbGF5OiAnZmxleCcgfVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkb3RcIiBbbmdTdHlsZV09XCJ7ICdtYXJnaW4tcmlnaHQnOiAnNHB4JyB9XCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkb3RcIiBbbmdTdHlsZV09XCJ7ICdtYXJnaW4tcmlnaHQnOiAnNHB4JyB9XCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkb3RcIj48L3NwYW4+XG4gICAgICAgICAgPC9kaXY+ICAgICAgICAgIFxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzcGFuIChjbGljayk9XCJ1cGRhdGVTZWxlY3RlZFBhZ2UoY29uZmlnLnBhZ2luYXRpb25Db25maWc/LnNlbGVjdGVkUGFnZSArIDEpXCIgY2xhc3M9XCJwYWdlXCI+XG4gICAgICAgIDxzdmcgZmlsbD1cIm5vbmVcIiBoZWlnaHQ9XCIxMFwiIHZpZXdCb3g9XCIwIDAgNyAxMFwiIHdpZHRoPVwiN1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICBkPVwiTTYuMTQyNiA1LjU2Mjk1QzYuMTQ0MjEgNS41NjEzOSA2LjE0NTgxIDUuNTU5ODIgNi4xNDc0MSA1LjU1ODI0QzYuMzA0MDUgNS40MDQwOCA2LjM4MjM2IDUuMjAyMDMgNi4zODIzNiA0Ljk5OTk4QzYuMzgyMzYgNC43OTc5MyA2LjMwNDA1IDQuNTk1ODggNi4xNDc0MSA0LjQ0MTcyQzYuMTQ1ODEgNC40NDAxNCA2LjE0NDIxIDQuNDM4NTggNi4xNDI2IDQuNDM3MDJMMS44NjkzNCAwLjIzMTIzMUMxLjU1NjA4IC0wLjA3NzA3NzEgMS4wNDgyIC0wLjA3NzA3NzEgMC43MzQ5NDIgMC4yMzEyMzFDMC40MjE2ODggMC41Mzk1NCAwLjQyMTY4OCAxLjAzOTQxIDAuNzM0OTQyIDEuMzQ3NzJMNC40NDU4IDQuOTk5OThMMC43MzQ5NDEgOC42NTIyNUMwLjQyMTY4NiA4Ljk2MDU1IDAuNDIxNjg2IDkuNDYwNDIgMC43MzQ5NDEgOS43Njg3M0MxLjA0ODIgMTAuMDc3IDEuNTU2MDggMTAuMDc3IDEuODY5MzQgOS43Njg3M0w2LjE0MjYgNS41NjI5NVpcIlxuICAgICAgICAgICAgZmlsbD1cIiMxODFGMzNcIlxuICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { Component, EventEmitter, Input, Output, ViewChild, ViewChildren } from "@angular/core";
2
- import * as moment from "moment-timezone";
2
+ import moment from "moment-timezone";
3
3
  import { TimepickerDirective } from "./timepicker.directive";
4
4
  import { ToolTipDirective } from "mis-crystal-design-system/tooltip";
5
5
  import * as i0 from "@angular/core";
@@ -11,9 +11,10 @@ import * as i5 from "./timepicker.directive";
11
11
  const _c0 = ["input"];
12
12
  const _c1 = ["timeInterval"];
13
13
  const _c2 = a0 => ({ height: a0 });
14
- const _c3 = a0 => ({ invalid: a0 });
15
- const _c4 = a0 => ({ width: a0 });
16
- const _c5 = a0 => ({ highlight: a0 });
14
+ const _c3 = a0 => ({ "disable": a0 });
15
+ const _c4 = a0 => ({ invalid: a0 });
16
+ const _c5 = a0 => ({ width: a0 });
17
+ const _c6 = a0 => ({ highlight: a0 });
17
18
  function TimePickerComponent_ng_template_3_div_0_li_3_div_3_Template(rf, ctx) { if (rf & 1) {
18
19
  i0.ɵɵelement(0, "div", 12);
19
20
  } }
@@ -28,7 +29,7 @@ function TimePickerComponent_ng_template_3_div_0_li_3_Template(rf, ctx) { if (rf
28
29
  const interval_r3 = ctx.$implicit;
29
30
  const i_r5 = ctx.index;
30
31
  const ctx_r3 = i0.ɵɵnextContext(3);
31
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c5, i_r5 === ctx_r3.isHighlighted));
32
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c6, i_r5 === ctx_r3.isHighlighted));
32
33
  i0.ɵɵadvance(2);
33
34
  i0.ɵɵtextInterpolate1(" ", interval_r3, " ");
34
35
  i0.ɵɵadvance();
@@ -40,7 +41,7 @@ function TimePickerComponent_ng_template_3_div_0_Template(rf, ctx) { if (rf & 1)
40
41
  i0.ɵɵelementEnd()();
41
42
  } if (rf & 2) {
42
43
  const ctx_r3 = i0.ɵɵnextContext(2);
43
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(2, _c4, ctx_r3.dropdownWidth || ctx_r3.inputWidth));
44
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(2, _c5, ctx_r3.dropdownWidth || ctx_r3.inputWidth));
44
45
  i0.ɵɵadvance(3);
45
46
  i0.ɵɵproperty("ngForOf", ctx_r3.timeIntervals);
46
47
  } }
@@ -78,6 +79,7 @@ export class TimePickerComponent {
78
79
  this.showTooltip = true;
79
80
  this.dispayToolTip = this.showTooltip;
80
81
  this.triggerChange = true;
82
+ this.disable = false;
81
83
  this.timeEmitter = new EventEmitter();
82
84
  }
83
85
  ngOnInit() {
@@ -276,7 +278,7 @@ export class TimePickerComponent {
276
278
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.timepickerDirective = _t.first);
277
279
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipDirective = _t.first);
278
280
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.timeIntervalRefs = _t);
279
- } }, inputs: { clockFormat: "clockFormat", timezone: "timezone", height: "height", inputWidth: "inputWidth", dropdownWidth: "dropdownWidth", interval: "interval", dateAsEpoch: "dateAsEpoch", firstInterval: "firstInterval", rangeValidity: "rangeValidity", showTooltip: "showTooltip", givenTime: "givenTime", minTime: "minTime", triggerChange: "triggerChange" }, outputs: { timeEmitter: "timeEmitter" }, features: [i0.ɵɵNgOnChangesFeature], decls: 5, vars: 16, consts: [["input", ""], ["dropdownContainer", ""], ["dropdown", ""], ["timeInterval", ""], [1, "timepicker-container", 3, "ngStyle"], ["type", "text", "misToolTip", "", "cdkOverlayOrigin", "", 1, "h7", 3, "ngModelChange", "click", "ngModel", "ngClass", "ngStyle", "showToolTip", "text", "position", "showOnHover"], ["libDropdownScroll", "", "libTimepicker", "", 3, "statusEmitter", "originEl", "openStatus"], ["class", "timepicker-dropdown", 3, "ngStyle", 4, "ngIf"], [1, "timepicker-dropdown", 3, "ngStyle"], [3, "ngClass", "click", 4, "ngFor", "ngForOf"], [3, "click", "ngClass"], ["class", "ic-ui-check-24 selected-icon", 4, "ngIf"], [1, "ic-ui-check-24", "selected-icon"]], template: function TimePickerComponent_Template(rf, ctx) { if (rf & 1) {
281
+ } }, inputs: { clockFormat: "clockFormat", timezone: "timezone", height: "height", inputWidth: "inputWidth", dropdownWidth: "dropdownWidth", interval: "interval", dateAsEpoch: "dateAsEpoch", firstInterval: "firstInterval", rangeValidity: "rangeValidity", showTooltip: "showTooltip", givenTime: "givenTime", minTime: "minTime", triggerChange: "triggerChange", disable: "disable" }, outputs: { timeEmitter: "timeEmitter" }, features: [i0.ɵɵNgOnChangesFeature], decls: 5, vars: 19, consts: [["input", ""], ["dropdownContainer", ""], ["dropdown", ""], ["timeInterval", ""], [1, "timepicker-container", 3, "ngStyle", "ngClass"], ["type", "text", "misToolTip", "", "cdkOverlayOrigin", "", 1, "h7", 3, "ngModelChange", "click", "ngModel", "ngClass", "ngStyle", "showToolTip", "text", "position", "showOnHover"], ["libDropdownScroll", "", "libTimepicker", "", 3, "statusEmitter", "originEl", "openStatus"], ["class", "timepicker-dropdown", 3, "ngStyle", 4, "ngIf"], [1, "timepicker-dropdown", 3, "ngStyle"], [3, "ngClass", "click", 4, "ngFor", "ngForOf"], [3, "click", "ngClass"], ["class", "ic-ui-check-24 selected-icon", 4, "ngIf"], [1, "ic-ui-check-24", "selected-icon"]], template: function TimePickerComponent_Template(rf, ctx) { if (rf & 1) {
280
282
  const _r1 = i0.ɵɵgetCurrentView();
281
283
  i0.ɵɵelementStart(0, "div", 4)(1, "input", 5, 0);
282
284
  i0.ɵɵtwoWayListener("ngModelChange", function TimePickerComponent_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.chosenTime, $event) || (ctx.chosenTime = $event); return i0.ɵɵresetView($event); });
@@ -287,17 +289,17 @@ export class TimePickerComponent {
287
289
  i0.ɵɵelementEnd();
288
290
  } if (rf & 2) {
289
291
  const input_r6 = i0.ɵɵreference(2);
290
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(10, _c2, ctx.height));
292
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(11, _c2, ctx.height))("ngClass", i0.ɵɵpureFunction1(13, _c3, ctx.disable));
291
293
  i0.ɵɵadvance();
292
294
  i0.ɵɵtwoWayProperty("ngModel", ctx.chosenTime);
293
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(12, _c3, ctx.isInvalid || !ctx.rangeValidity))("ngStyle", i0.ɵɵpureFunction1(14, _c4, ctx.inputWidth))("showToolTip", ctx.showTooltip && (ctx.isInvalid || !ctx.rangeValidity) && ctx.dispayToolTip)("text", "Invalid Time")("position", "top")("showOnHover", false);
295
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(15, _c4, ctx.isInvalid || !ctx.rangeValidity))("ngStyle", i0.ɵɵpureFunction1(17, _c5, ctx.inputWidth))("showToolTip", ctx.showTooltip && (ctx.isInvalid || !ctx.rangeValidity) && ctx.dispayToolTip)("text", "Invalid Time")("position", "top")("showOnHover", false);
294
296
  i0.ɵɵadvance(2);
295
297
  i0.ɵɵproperty("originEl", input_r6)("openStatus", ctx.openStatus);
296
- } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgStyle, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel, i3.ToolTipDirective, i4.CdkOverlayOrigin, i5.TimepickerDirective], styles: [".h1[_ngcontent-%COMP%]{font-size:40px;font-weight:400;letter-spacing:0px;line-height:48px}.h2[_ngcontent-%COMP%]{font-size:32px;font-weight:400;letter-spacing:0px;line-height:40px}.h3[_ngcontent-%COMP%]{font-size:28px;font-weight:400;letter-spacing:0px;line-height:36px}.h4[_ngcontent-%COMP%]{font-size:24px;font-weight:400;letter-spacing:0px;line-height:32px}.h5-b[_ngcontent-%COMP%]{font-size:20px;font-weight:700;letter-spacing:.25px;line-height:28px}.h5[_ngcontent-%COMP%]{font-size:20px;font-weight:400;letter-spacing:.15px;line-height:28px}.h6-b[_ngcontent-%COMP%]{font-size:16px;font-weight:700;letter-spacing:0px;line-height:24px}.h6[_ngcontent-%COMP%]{font-size:16px;font-weight:400;letter-spacing:0px;line-height:24px}.p[_ngcontent-%COMP%]{font-size:16px;font-weight:400;letter-spacing:0px;line-height:180%}.h7-b[_ngcontent-%COMP%]{font-size:14px;font-weight:700;letter-spacing:.25px;line-height:20px}.h7[_ngcontent-%COMP%]{font-size:14px;font-weight:400;letter-spacing:.2px;line-height:20px}.h8-b[_ngcontent-%COMP%]{font-size:12px;font-weight:700;letter-spacing:.25px;line-height:18px}.h8[_ngcontent-%COMP%]{font-size:12px;font-weight:400;letter-spacing:.2px;line-height:18px}.h9[_ngcontent-%COMP%]{font-size:10px;font-weight:400;letter-spacing:0px;line-height:15px}.btn-lg-b[_ngcontent-%COMP%]{font-size:16px;font-weight:700;letter-spacing:.5px;line-height:24px}.btn-lg[_ngcontent-%COMP%]{font-size:16px;font-weight:400;letter-spacing:.2px;line-height:24px}.btn-sm[_ngcontent-%COMP%]{font-size:14px;font-weight:400;letter-spacing:.25px;line-height:20px}.btn-link[_ngcontent-%COMP%]{font-size:16px;font-weight:400;letter-spacing:0px;line-height:24px}.display-1[_ngcontent-%COMP%]{font-size:48px;font-weight:400;letter-spacing:0px;line-height:56px}.display-2[_ngcontent-%COMP%]{font-size:14px;font-weight:400;letter-spacing:.5px;line-height:20px}*[_ngcontent-%COMP%]{box-sizing:border-box;font-family:Lato}.timepicker-container[_ngcontent-%COMP%]{display:inline-block;position:relative}input[_ngcontent-%COMP%]{text-align:center;border:none;border-bottom:1px solid #e0e0e0;outline:none;height:100%;width:100px;padding:4px 16px}input[_ngcontent-%COMP%]:hover{background:#f5f7fc}input[_ngcontent-%COMP%]:focus, input[_ngcontent-%COMP%]:active{background:#e6ebf7;border-bottom:1px solid #0937b2}.timepicker-dropdown[_ngcontent-%COMP%]{position:absolute;top:calc(100% + 4px);left:0;max-height:200px;overflow-y:auto;border:1px solid #e0e0e0;box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:4px;padding:8px;background:#fff}.timepicker-dropdown[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.timepicker-dropdown[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{margin:0;padding:0}.timepicker-dropdown[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{text-align:start;list-style:none;padding:6px 12px;cursor:pointer;font-size:14px;color:#181f33;display:flex;justify-content:space-between;align-items:center}.timepicker-dropdown[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:hover{background:#f5f7fc;border-radius:6px}.timepicker-dropdown[_ngcontent-%COMP%] li[_ngcontent-%COMP%] .selected-icon[_ngcontent-%COMP%]{font-weight:900}.highlight[_ngcontent-%COMP%]{background-color:#f5f7fc;border-radius:6px}.invalid[_ngcontent-%COMP%]{background:#fae1ea!important;border-bottom:1px solid #b00020!important}"] }); }
298
+ } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgStyle, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel, i3.ToolTipDirective, i4.CdkOverlayOrigin, i5.TimepickerDirective], styles: [".h1[_ngcontent-%COMP%]{font-size:40px;font-weight:400;letter-spacing:0px;line-height:48px}.h2[_ngcontent-%COMP%]{font-size:32px;font-weight:400;letter-spacing:0px;line-height:40px}.h3[_ngcontent-%COMP%]{font-size:28px;font-weight:400;letter-spacing:0px;line-height:36px}.h4[_ngcontent-%COMP%]{font-size:24px;font-weight:400;letter-spacing:0px;line-height:32px}.h5-b[_ngcontent-%COMP%]{font-size:20px;font-weight:700;letter-spacing:.25px;line-height:28px}.h5[_ngcontent-%COMP%]{font-size:20px;font-weight:400;letter-spacing:.15px;line-height:28px}.h6-b[_ngcontent-%COMP%]{font-size:16px;font-weight:700;letter-spacing:0px;line-height:24px}.h6[_ngcontent-%COMP%]{font-size:16px;font-weight:400;letter-spacing:0px;line-height:24px}.p[_ngcontent-%COMP%]{font-size:16px;font-weight:400;letter-spacing:0px;line-height:180%}.h7-b[_ngcontent-%COMP%]{font-size:14px;font-weight:700;letter-spacing:.25px;line-height:20px}.h7[_ngcontent-%COMP%]{font-size:14px;font-weight:400;letter-spacing:.2px;line-height:20px}.h8-b[_ngcontent-%COMP%]{font-size:12px;font-weight:700;letter-spacing:.25px;line-height:18px}.h8[_ngcontent-%COMP%]{font-size:12px;font-weight:400;letter-spacing:.2px;line-height:18px}.h9[_ngcontent-%COMP%]{font-size:10px;font-weight:400;letter-spacing:0px;line-height:15px}.btn-lg-b[_ngcontent-%COMP%]{font-size:16px;font-weight:700;letter-spacing:.5px;line-height:24px}.btn-lg[_ngcontent-%COMP%]{font-size:16px;font-weight:400;letter-spacing:.2px;line-height:24px}.btn-sm[_ngcontent-%COMP%]{font-size:14px;font-weight:400;letter-spacing:.25px;line-height:20px}.btn-link[_ngcontent-%COMP%]{font-size:16px;font-weight:400;letter-spacing:0px;line-height:24px}.display-1[_ngcontent-%COMP%]{font-size:48px;font-weight:400;letter-spacing:0px;line-height:56px}.display-2[_ngcontent-%COMP%]{font-size:14px;font-weight:400;letter-spacing:.5px;line-height:20px}*[_ngcontent-%COMP%]{box-sizing:border-box;font-family:Lato}.timepicker-container[_ngcontent-%COMP%]{display:inline-block;position:relative}input[_ngcontent-%COMP%]{text-align:center;border:none;border-bottom:1px solid #e0e0e0;outline:none;height:100%;width:100px;padding:4px 16px}input[_ngcontent-%COMP%]:hover{background:#f5f7fc}input[_ngcontent-%COMP%]:focus, input[_ngcontent-%COMP%]:active{background:#e6ebf7;border-bottom:1px solid #0937b2}.timepicker-dropdown[_ngcontent-%COMP%]{position:absolute;top:calc(100% + 4px);left:0;max-height:200px;overflow-y:auto;border:1px solid #e0e0e0;box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:4px;padding:8px;background:#fff}.timepicker-dropdown[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.timepicker-dropdown[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{margin:0;padding:0}.timepicker-dropdown[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{text-align:start;list-style:none;padding:6px 12px;cursor:pointer;font-size:14px;color:#181f33;display:flex;justify-content:space-between;align-items:center}.timepicker-dropdown[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:hover{background:#f5f7fc;border-radius:6px}.timepicker-dropdown[_ngcontent-%COMP%] li[_ngcontent-%COMP%] .selected-icon[_ngcontent-%COMP%]{font-weight:900}.highlight[_ngcontent-%COMP%]{background-color:#f5f7fc;border-radius:6px}.invalid[_ngcontent-%COMP%]{background:#fae1ea!important;border-bottom:1px solid #b00020!important}.disable[_ngcontent-%COMP%]{pointer-events:none!important;opacity:.5!important}"] }); }
297
299
  }
298
300
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimePickerComponent, [{
299
301
  type: Component,
300
- args: [{ selector: "mis-timepicker", template: "<div class=\"timepicker-container\" [ngStyle]=\"{ height: height }\">\n <input\n type=\"text\"\n [(ngModel)]=\"chosenTime\"\n (ngModelChange)=\"onTimeChange(chosenTime)\"\n [ngClass]=\"{ invalid: isInvalid || !rangeValidity }\"\n [ngStyle]=\"{ width: inputWidth }\"\n (click)=\"openDropdown()\"\n misToolTip\n [showToolTip]=\"showTooltip && (isInvalid || !rangeValidity) && dispayToolTip\"\n [text]=\"'Invalid Time'\"\n [position]=\"'top'\"\n [showOnHover]=\"false\"\n #input\n cdkOverlayOrigin\n class=\"h7\"\n />\n\n <ng-template #dropdownContainer libDropdownScroll libTimepicker [originEl]=\"input\" [openStatus]=\"openStatus\" (statusEmitter)=\"closeDropdown()\">\n <div *ngIf=\"openStatus\" class=\"timepicker-dropdown\" [ngStyle]=\"{ width: dropdownWidth || inputWidth }\">\n <ul #dropdown>\n <li #timeInterval (click)=\"onTimeSelect(interval)\" *ngFor=\"let interval of timeIntervals; index as i\" [ngClass]=\"{ highlight: i === isHighlighted }\">\n {{ interval }}\n <div class=\"ic-ui-check-24 selected-icon\" *ngIf=\"interval === chosenTime\"></div>\n </li>\n </ul>\n </div>\n </ng-template>\n</div>\n", styles: [".h1{font-size:40px;font-weight:400;letter-spacing:0px;line-height:48px}.h2{font-size:32px;font-weight:400;letter-spacing:0px;line-height:40px}.h3{font-size:28px;font-weight:400;letter-spacing:0px;line-height:36px}.h4{font-size:24px;font-weight:400;letter-spacing:0px;line-height:32px}.h5-b{font-size:20px;font-weight:700;letter-spacing:.25px;line-height:28px}.h5{font-size:20px;font-weight:400;letter-spacing:.15px;line-height:28px}.h6-b{font-size:16px;font-weight:700;letter-spacing:0px;line-height:24px}.h6{font-size:16px;font-weight:400;letter-spacing:0px;line-height:24px}.p{font-size:16px;font-weight:400;letter-spacing:0px;line-height:180%}.h7-b{font-size:14px;font-weight:700;letter-spacing:.25px;line-height:20px}.h7{font-size:14px;font-weight:400;letter-spacing:.2px;line-height:20px}.h8-b{font-size:12px;font-weight:700;letter-spacing:.25px;line-height:18px}.h8{font-size:12px;font-weight:400;letter-spacing:.2px;line-height:18px}.h9{font-size:10px;font-weight:400;letter-spacing:0px;line-height:15px}.btn-lg-b{font-size:16px;font-weight:700;letter-spacing:.5px;line-height:24px}.btn-lg{font-size:16px;font-weight:400;letter-spacing:.2px;line-height:24px}.btn-sm{font-size:14px;font-weight:400;letter-spacing:.25px;line-height:20px}.btn-link{font-size:16px;font-weight:400;letter-spacing:0px;line-height:24px}.display-1{font-size:48px;font-weight:400;letter-spacing:0px;line-height:56px}.display-2{font-size:14px;font-weight:400;letter-spacing:.5px;line-height:20px}*{box-sizing:border-box;font-family:Lato}.timepicker-container{display:inline-block;position:relative}input{text-align:center;border:none;border-bottom:1px solid #e0e0e0;outline:none;height:100%;width:100px;padding:4px 16px}input:hover{background:#f5f7fc}input:focus,input:active{background:#e6ebf7;border-bottom:1px solid #0937b2}.timepicker-dropdown{position:absolute;top:calc(100% + 4px);left:0;max-height:200px;overflow-y:auto;border:1px solid #e0e0e0;box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:4px;padding:8px;background:#fff}.timepicker-dropdown::-webkit-scrollbar{display:none}.timepicker-dropdown ul{margin:0;padding:0}.timepicker-dropdown li{text-align:start;list-style:none;padding:6px 12px;cursor:pointer;font-size:14px;color:#181f33;display:flex;justify-content:space-between;align-items:center}.timepicker-dropdown li:hover{background:#f5f7fc;border-radius:6px}.timepicker-dropdown li .selected-icon{font-weight:900}.highlight{background-color:#f5f7fc;border-radius:6px}.invalid{background:#fae1ea!important;border-bottom:1px solid #b00020!important}\n"] }]
302
+ args: [{ selector: "mis-timepicker", template: "<div class=\"timepicker-container\" [ngStyle]=\"{ height: height }\" [ngClass]=\"{'disable': disable}\">\n <input\n type=\"text\"\n [(ngModel)]=\"chosenTime\"\n (ngModelChange)=\"onTimeChange(chosenTime)\"\n [ngClass]=\"{ invalid: isInvalid || !rangeValidity }\"\n [ngStyle]=\"{ width: inputWidth }\"\n (click)=\"openDropdown()\"\n misToolTip\n [showToolTip]=\"showTooltip && (isInvalid || !rangeValidity) && dispayToolTip\"\n [text]=\"'Invalid Time'\"\n [position]=\"'top'\"\n [showOnHover]=\"false\"\n #input\n cdkOverlayOrigin\n class=\"h7\"\n />\n\n <ng-template #dropdownContainer libDropdownScroll libTimepicker [originEl]=\"input\" [openStatus]=\"openStatus\" (statusEmitter)=\"closeDropdown()\">\n <div *ngIf=\"openStatus\" class=\"timepicker-dropdown\" [ngStyle]=\"{ width: dropdownWidth || inputWidth }\">\n <ul #dropdown>\n <li #timeInterval (click)=\"onTimeSelect(interval)\" *ngFor=\"let interval of timeIntervals; index as i\" [ngClass]=\"{ highlight: i === isHighlighted }\">\n {{ interval }}\n <div class=\"ic-ui-check-24 selected-icon\" *ngIf=\"interval === chosenTime\"></div>\n </li>\n </ul>\n </div>\n </ng-template>\n</div>\n", styles: [".h1{font-size:40px;font-weight:400;letter-spacing:0px;line-height:48px}.h2{font-size:32px;font-weight:400;letter-spacing:0px;line-height:40px}.h3{font-size:28px;font-weight:400;letter-spacing:0px;line-height:36px}.h4{font-size:24px;font-weight:400;letter-spacing:0px;line-height:32px}.h5-b{font-size:20px;font-weight:700;letter-spacing:.25px;line-height:28px}.h5{font-size:20px;font-weight:400;letter-spacing:.15px;line-height:28px}.h6-b{font-size:16px;font-weight:700;letter-spacing:0px;line-height:24px}.h6{font-size:16px;font-weight:400;letter-spacing:0px;line-height:24px}.p{font-size:16px;font-weight:400;letter-spacing:0px;line-height:180%}.h7-b{font-size:14px;font-weight:700;letter-spacing:.25px;line-height:20px}.h7{font-size:14px;font-weight:400;letter-spacing:.2px;line-height:20px}.h8-b{font-size:12px;font-weight:700;letter-spacing:.25px;line-height:18px}.h8{font-size:12px;font-weight:400;letter-spacing:.2px;line-height:18px}.h9{font-size:10px;font-weight:400;letter-spacing:0px;line-height:15px}.btn-lg-b{font-size:16px;font-weight:700;letter-spacing:.5px;line-height:24px}.btn-lg{font-size:16px;font-weight:400;letter-spacing:.2px;line-height:24px}.btn-sm{font-size:14px;font-weight:400;letter-spacing:.25px;line-height:20px}.btn-link{font-size:16px;font-weight:400;letter-spacing:0px;line-height:24px}.display-1{font-size:48px;font-weight:400;letter-spacing:0px;line-height:56px}.display-2{font-size:14px;font-weight:400;letter-spacing:.5px;line-height:20px}*{box-sizing:border-box;font-family:Lato}.timepicker-container{display:inline-block;position:relative}input{text-align:center;border:none;border-bottom:1px solid #e0e0e0;outline:none;height:100%;width:100px;padding:4px 16px}input:hover{background:#f5f7fc}input:focus,input:active{background:#e6ebf7;border-bottom:1px solid #0937b2}.timepicker-dropdown{position:absolute;top:calc(100% + 4px);left:0;max-height:200px;overflow-y:auto;border:1px solid #e0e0e0;box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:4px;padding:8px;background:#fff}.timepicker-dropdown::-webkit-scrollbar{display:none}.timepicker-dropdown ul{margin:0;padding:0}.timepicker-dropdown li{text-align:start;list-style:none;padding:6px 12px;cursor:pointer;font-size:14px;color:#181f33;display:flex;justify-content:space-between;align-items:center}.timepicker-dropdown li:hover{background:#f5f7fc;border-radius:6px}.timepicker-dropdown li .selected-icon{font-weight:900}.highlight{background-color:#f5f7fc;border-radius:6px}.invalid{background:#fae1ea!important;border-bottom:1px solid #b00020!important}.disable{pointer-events:none!important;opacity:.5!important}\n"] }]
301
303
  }], () => [], { clockFormat: [{
302
304
  type: Input
303
305
  }], timezone: [{
@@ -324,6 +326,8 @@ export class TimePickerComponent {
324
326
  type: Input
325
327
  }], triggerChange: [{
326
328
  type: Input
329
+ }], disable: [{
330
+ type: Input
327
331
  }], timeEmitter: [{
328
332
  type: Output
329
333
  }], input: [{
@@ -340,4 +344,4 @@ export class TimePickerComponent {
340
344
  args: ["timeInterval"]
341
345
  }] }); })();
342
346
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TimePickerComponent, { className: "TimePickerComponent" }); })();
343
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy90aW1lcGlja2VyL3RpbWVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGltZXBpY2tlci90aW1lcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUksT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUUxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7SUNtQjNELDBCQUFnRjs7OztJQUZsRixpQ0FBcUo7SUFBbkksNk5BQVMsZ0NBQXNCLEtBQUM7SUFDaEQsWUFDQTtJQUFBLDhGQUEwRTtJQUM1RSxpQkFBSzs7Ozs7SUFIaUcsbUZBQThDO0lBQ2xKLGVBQ0E7SUFEQSw0Q0FDQTtJQUEyQyxjQUE2QjtJQUE3Qix3REFBNkI7OztJQUg1RSxBQURGLDhCQUF1RyxrQkFDdkY7SUFDWixzRkFBcUo7SUFLekosQUFERSxpQkFBSyxFQUNEOzs7SUFQOEMsK0ZBQWtEO0lBRTFCLGVBQWtCO0lBQWxCLDhDQUFrQjs7O0lBRjlGLGtGQUF1Rzs7O0lBQWpHLHdDQUFnQjs7QURQMUIsTUFBTSxPQUFPLG1CQUFtQjtJQWdDOUIsb0ZBQW9GO0lBQ3BGLElBQWtDLGdCQUFnQixDQUFDLFNBQVM7UUFDMUQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMzQixJQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMs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WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csUUFBUTtrQkFBaEIsS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFFRyxTQUFTO2tCQUFqQixLQUFLO1lBQ0csT0FBTztrQkFBZixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUVJLFdBQVc7a0JBQXBCLE1BQU07WUFDK0IsS0FBSztrQkFBMUMsU0FBUzttQkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ0osbUJBQW1CO2tCQUFsRCxTQUFTO21CQUFDLG1CQUFtQjtZQUNELGdCQUFnQjtrQkFBNUMsU0FBUzttQkFBQyxnQkFBZ0I7WUFHTyxnQkFBZ0I7a0JBQWpELFlBQVk7bUJBQUMsY0FBYzs7a0ZBakNqQixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gXCJtb21lbnQtdGltZXpvbmVcIjtcbmltcG9ydCB7IElUaW1lIH0gZnJvbSBcIi4vdGltZS5uYW1lc3BhY2VcIjtcbmltcG9ydCB7IFRpbWVwaWNrZXJEaXJlY3RpdmUgfSBmcm9tIFwiLi90aW1lcGlja2VyLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgVG9vbFRpcERpcmVjdGl2ZSB9IGZyb20gXCJtaXMtY3J5c3RhbC1kZXNpZ24tc3lzdGVtL3Rvb2x0aXBcIjtcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwibWlzLXRpbWVwaWNrZXJcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90aW1lcGlja2VyLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi90aW1lcGlja2VyLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgY3VyclRpbWUhOiBzdHJpbmc7XG4gIGNob3NlblRpbWU6IHN0cmluZztcbiAgb3BlblN0YXR1czogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0hpZ2hsaWdodGVkOiBudW1iZXIgPSAwO1xuICBpc0ludmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdGltZUludGVydmFsczogc3RyaW5nW10gPSBbXTtcbiAgc2hvdWxkU2Nyb2xsOiBib29sZWFuID0gZmFsc2U7XG4gIHVzZXJJbnB1dEZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZ2l2ZW5UaW1lRmxhZzogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGNsb2NrRm9ybWF0OiBudW1iZXIgPSAxMjtcbiAgdGltZUZvcm1hdCE6IHN0cmluZztcbiAgXG4gIEBJbnB1dCgpIHRpbWV6b25lOiBzdHJpbmcgPSBcIkFzaWEvS29sa2F0YVwiO1xuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZyA9IFwibWF4LWNvbnRlbnRcIjtcbiAgQElucHV0KCkgaW5wdXRXaWR0aDogc3RyaW5nID0gXCIxMDBweFwiO1xuICBASW5wdXQoKSBkcm9wZG93bldpZHRoPzogc3RyaW5nO1xuICBASW5wdXQoKSBpbnRlcnZhbDogbnVtYmVyID0gMTU7XG4gIEBJbnB1dCgpIGRhdGVBc0Vwb2NoOiBudW1iZXIgPSBtb21lbnQoKS52YWx1ZU9mKCk7XG4gIEBJbnB1dCgpIGZpcnN0SW50ZXJ2YWwhOiBudW1iZXI7XG4gIEBJbnB1dCgpIHJhbmdlVmFsaWRpdHk6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzaG93VG9vbHRpcDogYm9vbGVhbiA9IHRydWU7XG4gIGRpc3BheVRvb2xUaXA6IGJvb2xlYW4gPSB0aGlzLnNob3dUb29sdGlwO1xuICBASW5wdXQoKSBnaXZlblRpbWU6IG51bWJlcjtcbiAgQElucHV0KCkgbWluVGltZT86IG51bWJlcjtcbiAgQElucHV0KCkgdHJpZ2dlckNoYW5nZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgQE91dHB1dCgpIHRpbWVFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxJVGltZT4oKTtcbiAgQFZpZXdDaGlsZChcImlucHV0XCIsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKFRpbWVwaWNrZXJEaXJlY3RpdmUpIHRpbWVwaWNrZXJEaXJlY3RpdmU6IFRpbWVwaWNrZXJEaXJlY3RpdmU7XG4gIEBWaWV3Q2hpbGQoVG9vbFRpcERpcmVjdGl2ZSkgdG9vbHRpcERpcmVjdGl2ZTogVG9vbFRpcERpcmVjdGl2ZTtcblxuICAvLyBnZXRzIGFsbCB0aGUgbGkgZWxlbWVudHMgZnJvbSB0aGUgZHJvcGRvd24gYW5kIHNjcm9sbHMgdG8gdGhlIGhpZ2hsaWdodGVkIGVsZW1lbnRcbiAgQFZpZXdDaGlsZHJlbihcInRpbWVJbnRlcnZhbFwiKSBzZXQgdGltZUludGVydmFsUmVmcyhpbnRlcnZhbHMpIHtcbiAgICBpbnRlcnZhbHMuZm9yRWFjaChpbnRlcnZhbCA9PiB7XG4gICAgICBpZiAoaW50ZXJ2YWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3RbMF0gPT09IFwiaGlnaGxpZ2h0XCIpIHtcbiAgICAgICAgY29uc3QgaGlnaGxpZ2h0ZWQgPSBpbnRlcnZhbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGhpZ2hsaWdodGVkLnNjcm9sbEludG9WaWV3KHsgYmxvY2s6IFwiY2VudGVyXCIgfSkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKXt9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmKCF0aGlzLmdpdmVuVGltZSAmJiAhdGhpcy5taW5UaW1lKSB7XG4gICAgICB0aGlzLmNob3NlblRpbWUgPSBtb21lbnQodGhpcy5maXJzdEludGVydmFsKS5mb3JtYXQodGhpcy50aW1lRm9ybWF0KTtcbiAgICAgIGxldCBjaG9zZW5UaW1lTW9tZW50ID0gdGhpcy5nZXRNb21lbnQodGhpcy5jaG9zZW5UaW1lKTtcbiAgICAgIHRoaXMuZW1pdFRpbWUoe1xuICAgICAgICB2YWxpZDogIXRoaXMuaXNJbnZhbGlkLFxuICAgICAgICB0aW1lOiB0aGlzLmNob3NlblRpbWUsXG4gICAgICAgIGVwb2NoOiBjaG9zZW5UaW1lTW9tZW50LnZhbHVlT2YoKVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy50aW1lRm9ybWF0ID0gdGhpcy5jbG9ja0Zvcm1hdCA9PT0gMTIgPyBcImhoOm1tIGFcIiA6IFwiSEg6bW1cIjtcbiAgICBtb21lbnQudHouc2V0RGVmYXVsdCh0aGlzLnRpbWV6b25lKTtcblxuICAgIGlmICh0aGlzLnRpbWVGb3JtYXQpIHtcbiAgICAgIGxldCBjaG9zZW5UaW1lTW9tZW50ID0gdGhpcy5nZXRNb21lbnQodGhpcy5jaG9zZW5UaW1lKTtcbiAgICBcbiAgICAgIC8vIGlmIHRoZSBmaXJzdCBpbnRlcnZhbCBpcyA+PSB0aGUgY2hvc2VuIHRpbWVcbiAgICAgIC8vIHRoZW4gb25seSB1cGRhdGUgdGhlIHZhbHVlIG9mIGNob3NlbiB0aW1lXG4gICAgICAvLyBlbHNlIGl0IHJlbWFpbnMgdGhlIHNhbWVcbiAgICAgIGlmICh0aGlzLmZpcnN0SW50ZXJ2YWwgPj0gY2hvc2VuVGltZU1vbWVudC52YWx1ZU9mKCkgJiYgdGhpcy5yYW5nZVZhbGlkaXR5ICYmICF0aGlzLnVzZXJJbnB1dEZsYWcpIHtcbiAgICAgICAgdGhpcy5jaG9zZW5UaW1lID0gbW9tZW50KHRoaXMuZmlyc3RJbnRlcnZhbCkuZm9ybWF0KHRoaXMudGltZUZvcm1hdCk7XG4gICAgICAgIGNob3NlblRpbWVNb21lbnQgPSB0aGlzLmdldE1vbWVudCh0aGlzLmNob3NlblRpbWUpXG4gICAgICB9XG5cbiAgICAgIGlmKCh0aGlzLmdpdmVuVGltZUZsYWcgJiYgdGhpcy5naXZlblRpbWUpIHx8IHRoaXMubWluVGltZSApIHtcbiAgICAgICAgdGhpcy5jaG9zZW5UaW1lID0gbW9tZW50KHRoaXMubWluVGltZSB8fCB0aGlzLmdpdmVuVGltZSkuZm9ybWF0KHRoaXMudGltZUZvcm1hdCk7XG4gICAgICB9XG4gICAgICBjaG9zZW5UaW1lTW9tZW50ID0gdGhpcy5nZXRNb21lbnQodGhpcy5jaG9zZW5UaW1lKVxuXG4gICAgICBpZiAoIXRoaXMudXNlcklucHV0RmxhZykgdGhpcy5wb3B1bGF0ZURyb3Bkb3duKCk7XG4gICAgICB0aGlzLnVzZXJJbnB1dEZsYWcgPSBmYWxzZTtcbiAgICAgIFxuICAgICAgaWYodGhpcy5jaG9zZW5UaW1lKSB7XG4gICAgICAgIHRoaXMuaXNJbnZhbGlkID0gIXRoaXMuY2hlY2tUaW1lVmFsaWRpdHkodGhpcy5jaG9zZW5UaW1lLnRyaW0oKSk7XG4gICAgICAgIHRoaXMuZW1pdFRpbWUoe1xuICAgICAgICAgIHZhbGlkOiAhdGhpcy5pc0ludmFsaWQsXG4gICAgICAgICAgdGltZTogdGhpcy5jaG9zZW5UaW1lLFxuICAgICAgICAgIGVwb2NoOiBjaG9zZW5UaW1lTW9tZW50LnZhbHVlT2YoKVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVDbG9zZXN0SW50ZXJ2YWwodGhpcy5jaG9zZW5UaW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBlbWl0VGltZShkYXRhOiBJVGltZSk6IHZvaWQge1xuICAgIHRoaXMudGltZUVtaXR0ZXIuZW1pdChkYXRhKTtcbiAgfVxuXG4gIC8vIGZ1bmN0aW9uIHRvIGdldCBtb21lbnQgb2JqZWN0IHdoZW4gdGltZSBpcyBnaXZlbiBpbiBzdHJpbmdcbiAgZ2V0TW9tZW50KHRpbWU6IHN0cmluZyl7XG4gICAgcmV0dXJuIG1vbWVudChgJHttb21lbnQodGhpcy5kYXRlQXNFcG9jaCkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKX0gJHt0aW1lfWAsIGAnREQtTU0tWVlZWScgJHt0aGlzLnRpbWVGb3JtYXR9YClcbiAgfVxuXG4gIGNsb3NlRHJvcGRvd24oKSB7XG4gICAgdGhpcy5kaXNwYXlUb29sVGlwID0gZmFsc2U7XG4gICAgdGhpcy51c2VySW5wdXRGbGFnID0gZmFsc2U7XG4gICAgdGhpcy5vcGVuU3RhdHVzID0gZmFsc2U7XG4gICAgaWYgKHRoaXMudGltZXBpY2tlckRpcmVjdGl2ZSkgdGhpcy50aW1lcGlja2VyRGlyZWN0aXZlLmRlc3Ryb3lPdmVybGF5KCk7XG4gIH1cblxuICAvLyB0b2dnbGUgdGltZXBpY2tlciBkcm9wZG93blxuICBvcGVuRHJvcGRvd24oKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwYXlUb29sVGlwID0gdHJ1ZTtcbiAgICB0aGlzLm9wZW5TdGF0dXMgPSB0cnVlO1xuICB9XG5cbiAgY2hlY2tUaW1lVmFsaWRpdHkodGltZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgUkUxMiA9IC9eKChbMF1bMS05XXwxWzAtMl0pOihbMC01XVswLTldKSggKT8oYW18cG18QU18UE0pKSQvaTtcbiAgICBjb25zdCBSRTI0ID0gL14oWzAxXVswLTldfDJbMC0zXSk6WzAtNV1bMC05XSQvO1xuICAgIGNvbnN0IFJFID0gdGhpcy5jbG9ja0Zvcm1hdCA9PT0gMTIgPyBSRTEyIDogUkUyNDtcblxuICAgIGNvbnN0IHRpbWVNb21lbnQgPSB0aGlzLmdldE1vbWVudCh0aW1lKTtcbiAgICBsZXQgZmxhZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gaWYgdGhlIGZpcnN0IGludGVydmFsIGlzIHNldCB0byB0aGUgc3RhcnQgb2YgdGhlIGRheVxuICAgIC8vIG9yIGEgdGltZSBpcyBhbHJlYWR5IHByb3ZpZGVkIHRvIHRoZSBjb21wb25lbnQgdG8gc2hvd1xuICAgIC8vIHRoZW4gd2UgZG9uJ3QgY2hlY2sgaXRzIHZhbGlkaXR5IGFnYWluc3QgdGhlIGN1cnJlbnQgdGltZVxuICAgIGlmIChcbiAgICAgIHRoaXMubWluVGltZSB8fCBcbiAgICAgIHRoaXMuZ2l2ZW5UaW1lIHx8XG4gICAgICAodGhpcy5maXJzdEludGVydmFsICYmXG4gICAgICBtb21lbnQodGhpcy5maXJzdEludGVydmFsKS5mb3JtYXQodGhpcy50aW1lRm9ybWF0KS52YWx1ZU9mKCkgPT09IG1vbWVudCgpLnN0YXJ0T2YoXCJkXCIpLmZvcm1hdCh0aGlzLnRpbWVGb3JtYXQpLnZhbHVlT2YoKSlcbiAgICApIHtcbiAgICAgIGZsYWcgPSB0aW1lLm1hdGNoKFJFKSA/IHRydWUgOiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmxhZyA9IHRpbWUubWF0Y2goUkUpICYmIHRpbWVNb21lbnQuZGlmZihtb21lbnQoKSwgXCJtXCIpID49IDAgPyB0cnVlOiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmxhZztcbiAgfVxuXG4gIC8vIHVwZGF0ZSBjaG9zZW4gdGltZSBhcyBzb29uIGFzIHRoZSB1c2VyIGNsaWNrcyBvbiBhbiBpbnRlcnZhbFxuICBvblRpbWVTZWxlY3QodGltZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5pc0ludmFsaWQgPSAhdGhpcy5jaGVja1RpbWVWYWxpZGl0eSh0aW1lLnRyaW0oKSk7XG4gICAgaWYgKCF0aGlzLmlzSW52YWxpZCkge1xuICAgICAgdGhpcy5jaG9zZW5UaW1lID0gdGltZTtcbiAgICAgIHRoaXMuY2FsY3VsYXRlQ2xvc2VzdEludGVydmFsKHRoaXMuY2hvc2VuVGltZSk7XG4gICAgfVxuXG4gICAgY29uc3QgdGltZU1vbWVudCA9IHRoaXMuZ2V0TW9tZW50KHRpbWUpO1xuICAgIHRoaXMuZW1pdFRpbWUoe1xuICAgICAgdmFsaWQ6ICF0aGlzLmlzSW52YWxpZCxcbiAgICAgIHRpbWU6IHRpbWUsXG4gICAgICBlcG9jaDogdGltZU1vbWVudC52YWx1ZU9mKCkgXG4gICAgfSk7XG4gICAgdGhpcy5vcGVuU3RhdHVzID0gZmFsc2U7XG4gICAgaWYgKHRoaXMudGltZXBpY2tlckRpcmVjdGl2ZSkgdGhpcy50aW1lcGlja2VyRGlyZWN0aXZlLmRlc3Ryb3lPdmVybGF5KCk7XG4gIH1cblxuICAvLyBjaGVja3MgdmFsaWRpdHkgb2YgdGltZSBvbiBpbnB1dCBjaGFuZ2UgYW5kIGNhbGN1bGF0ZXMgdGhlIGNsb3Nlc3QgaW50ZXJ2YWxcbiAgb25UaW1lQ2hhbmdlKHRpbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaXNJbnZhbGlkID0gIXRoaXMuY2hlY2tUaW1lVmFsaWRpdHkodGltZS50cmltKCkpO1xuXG4gICAgaWYgKCF0aGlzLmlzSW52YWxpZCkge1xuICAgICAgdGhpcy51c2VySW5wdXRGbGFnID0gdHJ1ZTtcbiAgICAgIHRoaXMub3BlblN0YXR1cyA9IGZhbHNlO1xuICAgICAgaWYgKHRoaXMudGltZXBpY2tlckRpcmVjdGl2ZSkgdGhpcy50aW1lcGlja2VyRGlyZWN0aXZlLmRlc3Ryb3lPdmVybGF5KCk7XG4gICAgICB0aGlzLmNhbGN1bGF0ZUNsb3Nlc3RJbnRlcnZhbCh0aW1lKTtcbiAgICB9XG4gICAgY29uc3QgdGltZU1vbWVudCA9IHRoaXMuZ2V0TW9tZW50KHRpbWUpO1xuICAgIHRoaXMuZW1pdFRpbWUoe1xuICAgICAgdmFsaWQ6ICF0aGlzLmlzSW52YWxpZCxcbiAgICAgIHRpbWU6IHRpbWUsXG4gICAgICBlcG9jaDogdGltZU1vbWVudC52YWx1ZU9mKCkgXG4gICAgfSk7XG4gIH1cblxuICBjYWxjdWxhdGVDbG9zZXN0SW50ZXJ2YWwodGltZTogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IHJvdW5kZWRFcG9jaDogbnVtYmVyO1xuICAgIC8vIENvbnZlcnRpbmcgdGltZSBhbmQgZGF0ZSB0byBhIG1vbWVudCBvYmplY3QgXG4gICAgY29uc3QgY2hvc2VuRGF0ZSA9IG1vbWVudCh0aGlzLmRhdGVBc0Vwb2NoKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpOyAvLyAwNS0wMS0yMDI0XG4gICAgY29uc3QgcGFyc2VkVGltZVdpdGhEYXRlID0gbW9tZW50KGAke2Nob3NlbkRhdGV9ICR7dGltZX1gLCBgREQtTU0tWVlZWSAke3RoaXMudGltZUZvcm1hdH1gKTtcbiAgICAvLyBDb252ZXJ0aW5nIG1vbWVudCBvYmplY3QgdG8gZXBvY2hcbiAgICBjb25zdCBjaG9zZW5UaW1lRXBvY2ggPSBwYXJzZWRUaW1lV2l0aERhdGUudmFsdWVPZigpO1xuICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuaW50ZXJ2YWwgLSAobW9tZW50KGNob3NlblRpbWVFcG9jaCkubWludXRlcygpICUgdGhpcy5pbnRlcnZhbCk7XG5cbiAgICBpZiAodGhpcy5taW5UaW1lICYmICF0aGlzLmdpdmVuVGltZSkge1xuICAgICAgdGhpcy5pc0hpZ2hsaWdodGVkID0gMDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcm91bmRlZEVwb2NoID0gb2Zmc2V0ID49IHRoaXMuaW50ZXJ2YWwgLyAyID8gKG1vbWVudChjaG9zZW5UaW1lRXBvY2gpLnN1YnRyYWN0KHRoaXMuaW50ZXJ2YWwgLSBvZmZzZXQsIFwibVwiKSkudmFsdWVPZigpIDogKG1vbWVudChjaG9zZW5UaW1lRXBvY2gpLmFkZCggb2Zmc2V0LCBcIm1cIikpLnZhbHVlT2YoKTtcblxuICAgIC8vIGZpbmRpbmcgdGhlIGluZGV4IG9mIGVsZW1lbnQgdGhhdCBuZWVkcyB0byBiZSBoaWdobGlnaHRlZFxuICAgIGlmICggY2hvc2VuVGltZUVwb2NoID4gbW9tZW50KHRoaXMuZGF0ZUFzRXBvY2gpLmVuZE9mKFwiZFwiKS5zdWJ0cmFjdCh0aGlzLmludGVydmFsLCBcIm1cIikudmFsdWVPZigpKSB7XG4gICAgICB0aGlzLmlzSGlnaGxpZ2h0ZWQgPSB0aGlzLnRpbWVJbnRlcnZhbHMubGVuZ3RoIC0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgcm91bmRlZEVwb2NoTW9tZW50ID0gbW9tZW50KHJvdW5kZWRFcG9jaCk7XG4gICAgICB0aGlzLmlzSGlnaGxpZ2h0ZWQgPSB0aGlzLnRpbWVJbnRlcnZhbHMuZmluZEluZGV4KGludGVydmFsID0+IHtcbiAgICAgICAgY29uc3QgaW50ZXJ2YWxPYmogPSBtb21lbnQoYCR7Y2hvc2VuRGF0ZX0gJHtpbnRlcnZhbH1gLCBgREQtTU0tWVlZWSAke3RoaXMudGltZUZvcm1hdH1gKTtcbiAgICAgICAgcmV0dXJuIGludGVydmFsT2JqLmlzU2FtZShyb3VuZGVkRXBvY2hNb21lbnQpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cblxuICAvLyBwb3B1bGF0ZXMgdGhlIGRyb3Bkb3duIGFjY29yZGluZyB0byB0aGUgZmlyc3QgaW50ZXJ2YWwgcmVjZWl2ZWRcbiAgcG9wdWxhdGVEcm9wZG93bigpOiB2b2lkIHtcbiAgICB0aGlzLnRpbWVJbnRlcnZhbHMgPSBbXTtcblxuICAgIC8vIGlmIHBpY2tlciBpcyB1c2VkIGFzIGFuIGluZGl2aWR1YWwgY29tcG9uZW50XG4gICAgaWYgKCF0aGlzLmZpcnN0SW50ZXJ2YWwpIHtcbiAgICAgIC8vIGZpcnN0SW50ZXJ2YWwgaXMgaW5pdGlhbGlzZWQgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IHRpbWVcbiAgICAgIC8vIGlmIHRoZSBkYXRlIGlzIHNhbWUgYXMgdGhlIGN1cnJlbnQgZGF0ZVxuICAgICAgaWYgKG1vbWVudCh0aGlzLmRhdGVBc0Vwb2NoKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpID09PSBtb21lbnQoKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpICYmICF0aGlzLm1pblRpbWUpIHtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy5pbnRlcnZhbCAtIChtb21lbnQoKS5taW51dGVzKCkgJSB0aGlzLmludGVydmFsKTtcbiAgICAgICAgdGhpcy5maXJzdEludGVydmFsID0gbW9tZW50KCkuYWRkKG9mZnNldCwgXCJtXCIpLnZhbHVlT2YoKTtcbiAgICAgIH1cbiAgICAgIC8vIGlmIG1pbmltdW0gdGltZSB0byBzaG93IGlzIHByb3ZpZGVkXG4gICAgICBlbHNlIGlmKHRoaXMubWluVGltZSl7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuaW50ZXJ2YWwgLSAobW9tZW50KHRoaXMubWluVGltZSkubWludXRlcygpICUgdGhpcy5pbnRlcnZhbCk7XG4gICAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbCA9IG1vbWVudCh0aGlzLm1pblRpbWUpLmFkZChvZmZzZXQsIFwibVwiKS52YWx1ZU9mKCk7XG4gICAgICB9XG4gICAgICAvLyBlbHNlIHRoZSBmaXJzdEludGVydmFsIGlzIGluaXRpYWxpc2VkIGFzIHN0YXJ0IG9mIGRheVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbCA9IG1vbWVudCgpLnN0YXJ0T2YoXCJkXCIpLnZhbHVlT2YoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZih0aGlzLmdpdmVuVGltZSAmJiB0aGlzLmdpdmVuVGltZUZsYWcpe1xuICAgICAgdGhpcy5maXJzdEludGVydmFsID0gbW9tZW50KHRoaXMuZ2l2ZW5UaW1lKS5zdGFydE9mKCdkJykudmFsdWVPZigpO1xuICAgICAgdGhpcy5naXZlblRpbWVGbGFnID0gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgZGF0ZUFzU3RyaW5nID0gbW9tZW50KHRoaXMuZGF0ZUFzRXBvY2gpLmZvcm1hdCgnREQtTU0tWVlZWScpO1xuICAgIGNvbnN0IGludGVydmFsQXNTdHJpbmcgPSBtb21lbnQodGhpcy5maXJzdEludGVydmFsKS5mb3JtYXQodGhpcy50aW1lRm9ybWF0KTtcbiAgICBjb25zdCBzdGFydCA9IG1vbWVudChgJHtkYXRlQXNTdHJpbmd9ICR7aW50ZXJ2YWxBc1N0cmluZ31gLCBgREQtTU0tWVlZWSAke3RoaXMudGltZUZvcm1hdH1gKTtcbiAgICBjb25zdCBlbmQgPSBtb21lbnQoYCR7ZGF0ZUFzU3RyaW5nfWAsICdERC1NTS1ZWVlZJykuZW5kT2YoJ2QnKTtcblxuICAgIFxuICAgIHdoaWxlIChzdGFydC52YWx1ZU9mKCkgPCBlbmQudmFsdWVPZigpKSB7XG4gICAgICB0aGlzLnRpbWVJbnRlcnZhbHMucHVzaChzdGFydC5mb3JtYXQodGhpcy50aW1lRm9ybWF0KSk7XG4gICAgICBzdGFydC5hZGQodGhpcy5pbnRlcnZhbCwgXCJtXCIpO1xuICAgIH1cblxuICAgIC8vIGlmIHRoZSBzdGFydCB0aW1lIGlzIGVxdWFsIHRvIHRoZSBpbnRlcnZhbCBqdXN0IGJlZm9yZSBtaWRuaWdodFxuICAgIC8vIGFuZCB0aGUgc3RhcnQgZGF0ZSA9IGVuZCBkYXRlXG4gICAgLy8gcHVzaCAxMTo1OXBtIG9ubHlcbiAgICBpZiAodGhpcy50aW1lSW50ZXJ2YWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5jaG9zZW5UaW1lID0gbW9tZW50KCkuZW5kT2YoXCJkXCIpLmZvcm1hdCh0aGlzLnRpbWVGb3JtYXQpO1xuICAgICAgdGhpcy50aW1lSW50ZXJ2YWxzLnB1c2gobW9tZW50KCkuZW5kT2YoXCJkXCIpLmZvcm1hdCh0aGlzLnRpbWVGb3JtYXQpKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy50b29sdGlwRGlyZWN0aXZlKSB0aGlzLnRvb2x0aXBEaXJlY3RpdmUuaGlkZVRvb2xUaXAoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRpbWVwaWNrZXItY29udGFpbmVyXCIgW25nU3R5bGVdPVwieyBoZWlnaHQ6IGhlaWdodCB9XCI+XG4gIDxpbnB1dFxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBbKG5nTW9kZWwpXT1cImNob3NlblRpbWVcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGltZUNoYW5nZShjaG9zZW5UaW1lKVwiXG4gICAgW25nQ2xhc3NdPVwieyBpbnZhbGlkOiBpc0ludmFsaWQgfHwgIXJhbmdlVmFsaWRpdHkgfVwiXG4gICAgW25nU3R5bGVdPVwieyB3aWR0aDogaW5wdXRXaWR0aCB9XCJcbiAgICAoY2xpY2spPVwib3BlbkRyb3Bkb3duKClcIlxuICAgIG1pc1Rvb2xUaXBcbiAgICBbc2hvd1Rvb2xUaXBdPVwic2hvd1Rvb2x0aXAgJiYgKGlzSW52YWxpZCB8fCAhcmFuZ2VWYWxpZGl0eSkgJiYgZGlzcGF5VG9vbFRpcFwiXG4gICAgW3RleHRdPVwiJ0ludmFsaWQgVGltZSdcIlxuICAgIFtwb3NpdGlvbl09XCIndG9wJ1wiXG4gICAgW3Nob3dPbkhvdmVyXT1cImZhbHNlXCJcbiAgICAjaW5wdXRcbiAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgY2xhc3M9XCJoN1wiXG4gIC8+XG5cbiAgPG5nLXRlbXBsYXRlICNkcm9wZG93bkNvbnRhaW5lciBsaWJEcm9wZG93blNjcm9sbCBsaWJUaW1lcGlja2VyIFtvcmlnaW5FbF09XCJpbnB1dFwiIFtvcGVuU3RhdHVzXT1cIm9wZW5TdGF0dXNcIiAoc3RhdHVzRW1pdHRlcik9XCJjbG9zZURyb3Bkb3duKClcIj5cbiAgICA8ZGl2ICpuZ0lmPVwib3BlblN0YXR1c1wiIGNsYXNzPVwidGltZXBpY2tlci1kcm9wZG93blwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGRyb3Bkb3duV2lkdGggfHwgaW5wdXRXaWR0aCB9XCI+XG4gICAgICA8dWwgI2Ryb3Bkb3duPlxuICAgICAgICA8bGkgI3RpbWVJbnRlcnZhbCAoY2xpY2spPVwib25UaW1lU2VsZWN0KGludGVydmFsKVwiICpuZ0Zvcj1cImxldCBpbnRlcnZhbCBvZiB0aW1lSW50ZXJ2YWxzOyBpbmRleCBhcyBpXCIgW25nQ2xhc3NdPVwieyBoaWdobGlnaHQ6IGkgPT09IGlzSGlnaGxpZ2h0ZWQgfVwiPlxuICAgICAgICAgIHt7IGludGVydmFsIH19XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImljLXVpLWNoZWNrLTI0IHNlbGVjdGVkLWljb25cIiAqbmdJZj1cImludGVydmFsID09PSBjaG9zZW5UaW1lXCI+PC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
347
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy90aW1lcGlja2VyL3RpbWVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGltZXBpY2tlci90aW1lcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUksT0FBTyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFFckMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQ21CM0QsMEJBQWdGOzs7O0lBRmxGLGlDQUFxSjtJQUFuSSw2TkFBUyxnQ0FBc0IsS0FBQztJQUNoRCxZQUNBO0lBQUEsOEZBQTBFO0lBQzVFLGlCQUFLOzs7OztJQUhpRyxtRkFBOEM7SUFDbEosZUFDQTtJQURBLDRDQUNBO0lBQTJDLGNBQTZCO0lBQTdCLHdEQUE2Qjs7O0lBSDVFLEFBREYsOEJBQXVHLGtCQUN2RjtJQUNaLHNGQUFxSjtJQUt6SixBQURFLGlCQUFLLEVBQ0Q7OztJQVA4QywrRkFBa0Q7SUFFMUIsZUFBa0I7SUFBbEIsOENBQWtCOzs7SUFGOUYsa0ZBQXVHOzs7SUFBakcsd0NBQWdCOztBRFAxQixNQUFNLE9BQU8sbUJBQW1CO0lBZ0M5QixvRkFBb0Y7SUFDcEYsSUFBa0MsZ0JBQWdCLENBQUMsU0FBUztRQUMxRCxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzNCLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxTQUFT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QkFBZixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSztZQUNJLFdBQVc7a0JBQXBCLE1BQU07WUFDK0IsS0FBSztrQkFBMUMsU0FBUzttQkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ0osbUJBQW1CO2tCQUFsRCxTQUFTO21CQUFDLG1CQUFtQjtZQUNELGdCQUFnQjtrQkFBNUMsU0FBUzttQkFBQyxnQkFBZ0I7WUFHTyxnQkFBZ0I7a0JBQWpELFlBQVk7bUJBQUMsY0FBYzs7a0ZBakNqQixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50LXRpbWV6b25lXCI7XG5pbXBvcnQgeyBJVGltZSB9IGZyb20gXCIuL3RpbWUubmFtZXNwYWNlXCI7XG5pbXBvcnQgeyBUaW1lcGlja2VyRGlyZWN0aXZlIH0gZnJvbSBcIi4vdGltZXBpY2tlci5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IFRvb2xUaXBEaXJlY3RpdmUgfSBmcm9tIFwibWlzLWNyeXN0YWwtZGVzaWduLXN5c3RlbS90b29sdGlwXCI7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy10aW1lcGlja2VyXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vdGltZXBpY2tlci5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vdGltZXBpY2tlci5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBUaW1lUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIGN1cnJUaW1lITogc3RyaW5nO1xuICBjaG9zZW5UaW1lOiBzdHJpbmc7XG4gIG9wZW5TdGF0dXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNIaWdobGlnaHRlZDogbnVtYmVyID0gMDtcbiAgaXNJbnZhbGlkOiBib29sZWFuID0gZmFsc2U7XG4gIHRpbWVJbnRlcnZhbHM6IHN0cmluZ1tdID0gW107XG4gIHNob3VsZFNjcm9sbDogYm9vbGVhbiA9IGZhbHNlO1xuICB1c2VySW5wdXRGbGFnOiBib29sZWFuID0gZmFsc2U7XG4gIGdpdmVuVGltZUZsYWc6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBjbG9ja0Zvcm1hdDogbnVtYmVyID0gMTI7XG4gIHRpbWVGb3JtYXQhOiBzdHJpbmc7XG4gIFxuICBASW5wdXQoKSB0aW1lem9uZTogc3RyaW5nID0gXCJBc2lhL0tvbGthdGFcIjtcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgPSBcIm1heC1jb250ZW50XCI7XG4gIEBJbnB1dCgpIGlucHV0V2lkdGg6IHN0cmluZyA9IFwiMTAwcHhcIjtcbiAgQElucHV0KCkgZHJvcGRvd25XaWR0aD86IHN0cmluZztcbiAgQElucHV0KCkgaW50ZXJ2YWw6IG51bWJlciA9IDE1O1xuICBASW5wdXQoKSBkYXRlQXNFcG9jaDogbnVtYmVyID0gbW9tZW50KCkudmFsdWVPZigpO1xuICBASW5wdXQoKSBmaXJzdEludGVydmFsITogbnVtYmVyO1xuICBASW5wdXQoKSByYW5nZVZhbGlkaXR5OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd1Rvb2x0aXA6IGJvb2xlYW4gPSB0cnVlO1xuICBkaXNwYXlUb29sVGlwOiBib29sZWFuID0gdGhpcy5zaG93VG9vbHRpcDtcbiAgQElucHV0KCkgZ2l2ZW5UaW1lOiBudW1iZXI7XG4gIEBJbnB1dCgpIG1pblRpbWU/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHRyaWdnZXJDaGFuZ2U6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBkaXNhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSB0aW1lRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8SVRpbWU+KCk7XG4gIEBWaWV3Q2hpbGQoXCJpbnB1dFwiLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZChUaW1lcGlja2VyRGlyZWN0aXZlKSB0aW1lcGlja2VyRGlyZWN0aXZlOiBUaW1lcGlja2VyRGlyZWN0aXZlO1xuICBAVmlld0NoaWxkKFRvb2xUaXBEaXJlY3RpdmUpIHRvb2x0aXBEaXJlY3RpdmU6IFRvb2xUaXBEaXJlY3RpdmU7XG5cbiAgLy8gZ2V0cyBhbGwgdGhlIGxpIGVsZW1lbnRzIGZyb20gdGhlIGRyb3Bkb3duIGFuZCBzY3JvbGxzIHRvIHRoZSBoaWdobGlnaHRlZCBlbGVtZW50XG4gIEBWaWV3Q2hpbGRyZW4oXCJ0aW1lSW50ZXJ2YWxcIikgc2V0IHRpbWVJbnRlcnZhbFJlZnMoaW50ZXJ2YWxzKSB7XG4gICAgaW50ZXJ2YWxzLmZvckVhY2goaW50ZXJ2YWwgPT4ge1xuICAgICAgaWYgKGludGVydmFsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0WzBdID09PSBcImhpZ2hsaWdodFwiKSB7XG4gICAgICAgIGNvbnN0IGhpZ2hsaWdodGVkID0gaW50ZXJ2YWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiBoaWdobGlnaHRlZC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiBcImNlbnRlclwiIH0pKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCl7fVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZighdGhpcy5naXZlblRpbWUgJiYgIXRoaXMubWluVGltZSkge1xuICAgICAgdGhpcy5jaG9zZW5UaW1lID0gbW9tZW50KHRoaXMuZmlyc3RJbnRlcnZhbCkuZm9ybWF0KHRoaXMudGltZUZvcm1hdCk7XG4gICAgICBsZXQgY2hvc2VuVGltZU1vbWVudCA9IHRoaXMuZ2V0TW9tZW50KHRoaXMuY2hvc2VuVGltZSk7XG4gICAgICB0aGlzLmVtaXRUaW1lKHtcbiAgICAgICAgdmFsaWQ6ICF0aGlzLmlzSW52YWxpZCxcbiAgICAgICAgdGltZTogdGhpcy5jaG9zZW5UaW1lLFxuICAgICAgICBlcG9jaDogY2hvc2VuVGltZU1vbWVudC52YWx1ZU9mKClcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMudGltZUZvcm1hdCA9IHRoaXMuY2xvY2tGb3JtYXQgPT09IDEyID8gXCJoaDptbSBhXCIgOiBcIkhIOm1tXCI7XG4gICAgbW9tZW50LnR6LnNldERlZmF1bHQodGhpcy50aW1lem9uZSk7XG5cbiAgICBpZiAodGhpcy50aW1lRm9ybWF0KSB7XG4gICAgICBsZXQgY2hvc2VuVGltZU1vbWVudCA9IHRoaXMuZ2V0TW9tZW50KHRoaXMuY2hvc2VuVGltZSk7XG4gICAgXG4gICAgICAvLyBpZiB0aGUgZmlyc3QgaW50ZXJ2YWwgaXMgPj0gdGhlIGNob3NlbiB0aW1lXG4gICAgICAvLyB0aGVuIG9ubHkgdXBkYXRlIHRoZSB2YWx1ZSBvZiBjaG9zZW4gdGltZVxuICAgICAgLy8gZWxzZSBpdCByZW1haW5zIHRoZSBzYW1lXG4gICAgICBpZiAodGhpcy5maXJzdEludGVydmFsID49IGNob3NlblRpbWVNb21lbnQudmFsdWVPZigpICYmIHRoaXMucmFuZ2VWYWxpZGl0eSAmJiAhdGhpcy51c2VySW5wdXRGbGFnKSB7XG4gICAgICAgIHRoaXMuY2hvc2VuVGltZSA9IG1vbWVudCh0aGlzLmZpcnN0SW50ZXJ2YWwpLmZvcm1hdCh0aGlzLnRpbWVGb3JtYXQpO1xuICAgICAgICBjaG9zZW5UaW1lTW9tZW50ID0gdGhpcy5nZXRNb21lbnQodGhpcy5jaG9zZW5UaW1lKVxuICAgICAgfVxuXG4gICAgICBpZigodGhpcy5naXZlblRpbWVGbGFnICYmIHRoaXMuZ2l2ZW5UaW1lKSB8fCB0aGlzLm1pblRpbWUgKSB7XG4gICAgICAgIHRoaXMuY2hvc2VuVGltZSA9IG1vbWVudCh0aGlzLm1pblRpbWUgfHwgdGhpcy5naXZlblRpbWUpLmZvcm1hdCh0aGlzLnRpbWVGb3JtYXQpO1xuICAgICAgfVxuICAgICAgY2hvc2VuVGltZU1vbWVudCA9IHRoaXMuZ2V0TW9tZW50KHRoaXMuY2hvc2VuVGltZSlcblxuICAgICAgaWYgKCF0aGlzLnVzZXJJbnB1dEZsYWcpIHRoaXMucG9wdWxhdGVEcm9wZG93bigpO1xuICAgICAgdGhpcy51c2VySW5wdXRGbGFnID0gZmFsc2U7XG4gICAgICBcbiAgICAgIGlmKHRoaXMuY2hvc2VuVGltZSkge1xuICAgICAgICB0aGlzLmlzSW52YWxpZCA9ICF0aGlzLmNoZWNrVGltZVZhbGlkaXR5KHRoaXMuY2hvc2VuVGltZS50cmltKCkpO1xuICAgICAgICB0aGlzLmVtaXRUaW1lKHtcbiAgICAgICAgICB2YWxpZDogIXRoaXMuaXNJbnZhbGlkLFxuICAgICAgICAgIHRpbWU6IHRoaXMuY2hvc2VuVGltZSxcbiAgICAgICAgICBlcG9jaDogY2hvc2VuVGltZU1vbWVudC52YWx1ZU9mKClcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlQ2xvc2VzdEludGVydmFsKHRoaXMuY2hvc2VuVGltZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZW1pdFRpbWUoZGF0YTogSVRpbWUpOiB2b2lkIHtcbiAgICB0aGlzLnRpbWVFbWl0dGVyLmVtaXQoZGF0YSk7XG4gIH1cblxuICAvLyBmdW5jdGlvbiB0byBnZXQgbW9tZW50IG9iamVjdCB3aGVuIHRpbWUgaXMgZ2l2ZW4gaW4gc3RyaW5nXG4gIGdldE1vbWVudCh0aW1lOiBzdHJpbmcpe1xuICAgIHJldHVybiBtb21lbnQoYCR7bW9tZW50KHRoaXMuZGF0ZUFzRXBvY2gpLmZvcm1hdChcIkRELU1NLVlZWVlcIil9ICR7dGltZX1gLCBgJ0RELU1NLVlZWVknICR7dGhpcy50aW1lRm9ybWF0fWApXG4gIH1cblxuICBjbG9zZURyb3Bkb3duKCkge1xuICAgIHRoaXMuZGlzcGF5VG9vbFRpcCA9IGZhbHNlO1xuICAgIHRoaXMudXNlcklucHV0RmxhZyA9IGZhbHNlO1xuICAgIHRoaXMub3BlblN0YXR1cyA9IGZhbHNlO1xuICAgIGlmICh0aGlzLnRpbWVwaWNrZXJEaXJlY3RpdmUpIHRoaXMudGltZXBpY2tlckRpcmVjdGl2ZS5kZXN0cm95T3ZlcmxheSgpO1xuICB9XG5cbiAgLy8gdG9nZ2xlIHRpbWVwaWNrZXIgZHJvcGRvd25cbiAgb3BlbkRyb3Bkb3duKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGF5VG9vbFRpcCA9IHRydWU7XG4gICAgdGhpcy5vcGVuU3RhdHVzID0gdHJ1ZTtcbiAgfVxuXG4gIGNoZWNrVGltZVZhbGlkaXR5KHRpbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IFJFMTIgPSAvXigoWzBdWzEtOV18MVswLTJdKTooWzAtNV1bMC05XSkoICk/KGFtfHBtfEFNfFBNKSkkL2k7XG4gICAgY29uc3QgUkUyNCA9IC9eKFswMV1bMC05XXwyWzAtM10pOlswLTVdWzAtOV0kLztcbiAgICBjb25zdCBSRSA9IHRoaXMuY2xvY2tGb3JtYXQgPT09IDEyID8gUkUxMiA6IFJFMjQ7XG5cbiAgICBjb25zdCB0aW1lTW9tZW50ID0gdGhpcy5nZXRNb21lbnQodGltZSk7XG4gICAgbGV0IGZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIGlmIHRoZSBmaXJzdCBpbnRlcnZhbCBpcyBzZXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBkYXlcbiAgICAvLyBvciBhIHRpbWUgaXMgYWxyZWFkeSBwcm92aWRlZCB0byB0aGUgY29tcG9uZW50IHRvIHNob3dcbiAgICAvLyB0aGVuIHdlIGRvbid0IGNoZWNrIGl0cyB2YWxpZGl0eSBhZ2FpbnN0IHRoZSBjdXJyZW50IHRpbWVcbiAgICBpZiAoXG4gICAgICB0aGlzLm1pblRpbWUgfHwgXG4gICAgICB0aGlzLmdpdmVuVGltZSB8fFxuICAgICAgKHRoaXMuZmlyc3RJbnRlcnZhbCAmJlxuICAgICAgbW9tZW50KHRoaXMuZmlyc3RJbnRlcnZhbCkuZm9ybWF0KHRoaXMudGltZUZvcm1hdCkudmFsdWVPZigpID09PSBtb21lbnQoKS5zdGFydE9mKFwiZFwiKS5mb3JtYXQodGhpcy50aW1lRm9ybWF0KS52YWx1ZU9mKCkpXG4gICAgKSB7XG4gICAgICBmbGFnID0gdGltZS5tYXRjaChSRSkgPyB0cnVlIDogZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZsYWcgPSB0aW1lLm1hdGNoKFJFKSAmJiB0aW1lTW9tZW50LmRpZmYobW9tZW50KCksIFwibVwiKSA+PSAwID8gdHJ1ZTogZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZsYWc7XG4gIH1cblxuICAvLyB1cGRhdGUgY2hvc2VuIHRpbWUgYXMgc29vbiBhcyB0aGUgdXNlciBjbGlja3Mgb24gYW4gaW50ZXJ2YWxcbiAgb25UaW1lU2VsZWN0KHRpbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaXNJbnZhbGlkID0gIXRoaXMuY2hlY2tUaW1lVmFsaWRpdHkodGltZS50cmltKCkpO1xuICAgIGlmICghdGhpcy5pc0ludmFsaWQpIHtcbiAgICAgIHRoaXMuY2hvc2VuVGltZSA9IHRpbWU7XG4gICAgICB0aGlzLmNhbGN1bGF0ZUNsb3Nlc3RJbnRlcnZhbCh0aGlzLmNob3NlblRpbWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHRpbWVNb21lbnQgPSB0aGlzLmdldE1vbWVudCh0aW1lKTtcbiAgICB0aGlzLmVtaXRUaW1lKHtcbiAgICAgIHZhbGlkOiAhdGhpcy5pc0ludmFsaWQsXG4gICAgICB0aW1lOiB0aW1lLFxuICAgICAgZXBvY2g6IHRpbWVNb21lbnQudmFsdWVPZigpIFxuICAgIH0pO1xuICAgIHRoaXMub3BlblN0YXR1cyA9IGZhbHNlO1xuICAgIGlmICh0aGlzLnRpbWVwaWNrZXJEaXJlY3RpdmUpIHRoaXMudGltZXBpY2tlckRpcmVjdGl2ZS5kZXN0cm95T3ZlcmxheSgpO1xuICB9XG5cbiAgLy8gY2hlY2tzIHZhbGlkaXR5IG9mIHRpbWUgb24gaW5wdXQgY2hhbmdlIGFuZCBjYWxjdWxhdGVzIHRoZSBjbG9zZXN0IGludGVydmFsXG4gIG9uVGltZUNoYW5nZSh0aW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmlzSW52YWxpZCA9ICF0aGlzLmNoZWNrVGltZVZhbGlkaXR5KHRpbWUudHJpbSgpKTtcblxuICAgIGlmICghdGhpcy5pc0ludmFsaWQpIHtcbiAgICAgIHRoaXMudXNlcklucHV0RmxhZyA9IHRydWU7XG4gICAgICB0aGlzLm9wZW5TdGF0dXMgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLnRpbWVwaWNrZXJEaXJlY3RpdmUpIHRoaXMudGltZXBpY2tlckRpcmVjdGl2ZS5kZXN0cm95T3ZlcmxheSgpO1xuICAgICAgdGhpcy5jYWxjdWxhdGVDbG9zZXN0SW50ZXJ2YWwodGltZSk7XG4gICAgfVxuICAgIGNvbnN0IHRpbWVNb21lbnQgPSB0aGlzLmdldE1vbWVudCh0aW1lKTtcbiAgICB0aGlzLmVtaXRUaW1lKHtcbiAgICAgIHZhbGlkOiAhdGhpcy5pc0ludmFsaWQsXG4gICAgICB0aW1lOiB0aW1lLFxuICAgICAgZXBvY2g6IHRpbWVNb21lbnQudmFsdWVPZigpIFxuICAgIH0pO1xuICB9XG5cbiAgY2FsY3VsYXRlQ2xvc2VzdEludGVydmFsKHRpbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGxldCByb3VuZGVkRXBvY2g6IG51bWJlcjtcbiAgICAvLyBDb252ZXJ0aW5nIHRpbWUgYW5kIGRhdGUgdG8gYSBtb21lbnQgb2JqZWN0IFxuICAgIGNvbnN0IGNob3NlbkRhdGUgPSBtb21lbnQodGhpcy5kYXRlQXNFcG9jaCkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKTsgLy8gMDUtMDEtMjAyNFxuICAgIGNvbnN0IHBhcnNlZFRpbWVXaXRoRGF0ZSA9IG1vbWVudChgJHtjaG9zZW5EYXRlfSAke3RpbWV9YCwgYERELU1NLVlZWVkgJHt0aGlzLnRpbWVGb3JtYXR9YCk7XG4gICAgLy8gQ29udmVydGluZyBtb21lbnQgb2JqZWN0IHRvIGVwb2NoXG4gICAgY29uc3QgY2hvc2VuVGltZUVwb2NoID0gcGFyc2VkVGltZVdpdGhEYXRlLnZhbHVlT2YoKTtcbiAgICBjb25zdCBvZmZzZXQgPSB0aGlzLmludGVydmFsIC0gKG1vbWVudChjaG9zZW5UaW1lRXBvY2gpLm1pbnV0ZXMoKSAlIHRoaXMuaW50ZXJ2YWwpO1xuXG4gICAgaWYgKHRoaXMubWluVGltZSAmJiAhdGhpcy5naXZlblRpbWUpIHtcbiAgICAgIHRoaXMuaXNIaWdobGlnaHRlZCA9IDA7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJvdW5kZWRFcG9jaCA9IG9mZnNldCA+PSB0aGlzLmludGVydmFsIC8gMiA/IChtb21lbnQoY2hvc2VuVGltZUVwb2NoKS5zdWJ0cmFjdCh0aGlzLmludGVydmFsIC0gb2Zmc2V0LCBcIm1cIikpLnZhbHVlT2YoKSA6IChtb21lbnQoY2hvc2VuVGltZUVwb2NoKS5hZGQoIG9mZnNldCwgXCJtXCIpKS52YWx1ZU9mKCk7XG5cbiAgICAvLyBmaW5kaW5nIHRoZSBpbmRleCBvZiBlbGVtZW50IHRoYXQgbmVlZHMgdG8gYmUgaGlnaGxpZ2h0ZWRcbiAgICBpZiAoIGNob3NlblRpbWVFcG9jaCA+IG1vbWVudCh0aGlzLmRhdGVBc0Vwb2NoKS5lbmRPZihcImRcIikuc3VidHJhY3QodGhpcy5pbnRlcnZhbCwgXCJtXCIpLnZhbHVlT2YoKSkge1xuICAgICAgdGhpcy5pc0hpZ2hsaWdodGVkID0gdGhpcy50aW1lSW50ZXJ2YWxzLmxlbmd0aCAtIDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJvdW5kZWRFcG9jaE1vbWVudCA9IG1vbWVudChyb3VuZGVkRXBvY2gpO1xuICAgICAgdGhpcy5pc0hpZ2hsaWdodGVkID0gdGhpcy50aW1lSW50ZXJ2YWxzLmZpbmRJbmRleChpbnRlcnZhbCA9PiB7XG4gICAgICAgIGNvbnN0IGludGVydmFsT2JqID0gbW9tZW50KGAke2Nob3NlbkRhdGV9ICR7aW50ZXJ2YWx9YCwgYERELU1NLVlZWVkgJHt0aGlzLnRpbWVGb3JtYXR9YCk7XG4gICAgICAgIHJldHVybiBpbnRlcnZhbE9iai5pc1NhbWUocm91bmRlZEVwb2NoTW9tZW50KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG5cbiAgLy8gcG9wdWxhdGVzIHRoZSBkcm9wZG93biBhY2NvcmRpbmcgdG8gdGhlIGZpcnN0IGludGVydmFsIHJlY2VpdmVkXG4gIHBvcHVsYXRlRHJvcGRvd24oKTogdm9pZCB7XG4gICAgdGhpcy50aW1lSW50ZXJ2YWxzID0gW107XG5cbiAgICAvLyBpZiBwaWNrZXIgaXMgdXNlZCBhcyBhbiBpbmRpdmlkdWFsIGNvbXBvbmVudFxuICAgIGlmICghdGhpcy5maXJzdEludGVydmFsKSB7XG4gICAgICAvLyBmaXJzdEludGVydmFsIGlzIGluaXRpYWxpc2VkIGFjY29yZGluZyB0byB0aGUgY3VycmVudCB0aW1lXG4gICAgICAvLyBpZiB0aGUgZGF0ZSBpcyBzYW1lIGFzIHRoZSBjdXJyZW50IGRhdGVcbiAgICAgIGlmIChtb21lbnQodGhpcy5kYXRlQXNFcG9jaCkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSA9PT0gbW9tZW50KCkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSAmJiAhdGhpcy5taW5UaW1lKSB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuaW50ZXJ2YWwgLSAobW9tZW50KCkubWludXRlcygpICUgdGhpcy5pbnRlcnZhbCk7XG4gICAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbCA9IG1vbWVudCgpLmFkZChvZmZzZXQsIFwibVwiKS52YWx1ZU9mKCk7XG4gICAgICB9XG4gICAgICAvLyBpZiBtaW5pbXVtIHRpbWUgdG8gc2hvdyBpcyBwcm92aWRlZFxuICAgICAgZWxzZSBpZih0aGlzLm1pblRpbWUpe1xuICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGlzLmludGVydmFsIC0gKG1vbWVudCh0aGlzLm1pblRpbWUpLm1pbnV0ZXMoKSAlIHRoaXMuaW50ZXJ2YWwpO1xuICAgICAgICB0aGlzLmZpcnN0SW50ZXJ2YWwgPSBtb21lbnQodGhpcy5taW5UaW1lKS5hZGQob2Zmc2V0LCBcIm1cIikudmFsdWVPZigpO1xuICAgICAgfVxuICAgICAgLy8gZWxzZSB0aGUgZmlyc3RJbnRlcnZhbCBpcyBpbml0aWFsaXNlZCBhcyBzdGFydCBvZiBkYXlcbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmZpcnN0SW50ZXJ2YWwgPSBtb21lbnQoKS5zdGFydE9mKFwiZFwiKS52YWx1ZU9mKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYodGhpcy5naXZlblRpbWUgJiYgdGhpcy5naXZlblRpbWVGbGFnKXtcbiAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbCA9IG1vbWVudCh0aGlzLmdpdmVuVGltZSkuc3RhcnRPZignZCcpLnZhbHVlT2YoKTtcbiAgICAgIHRoaXMuZ2l2ZW5UaW1lRmxhZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGVBc1N0cmluZyA9IG1vbWVudCh0aGlzLmRhdGVBc0Vwb2NoKS5mb3JtYXQoJ0RELU1NLVlZWVknKTtcbiAgICBjb25zdCBpbnRlcnZhbEFzU3RyaW5nID0gbW9tZW50KHRoaXMuZmlyc3RJbnRlcnZhbCkuZm9ybWF0KHRoaXMudGltZUZvcm1hdCk7XG4gICAgY29uc3Qgc3RhcnQgPSBtb21lbnQoYCR7ZGF0ZUFzU3RyaW5nfSAke2ludGVydmFsQXNTdHJpbmd9YCwgYERELU1NLVlZWVkgJHt0aGlzLnRpbWVGb3JtYXR9YCk7XG4gICAgY29uc3QgZW5kID0gbW9tZW50KGAke2RhdGVBc1N0cmluZ31gLCAnREQtTU0tWVlZWScpLmVuZE9mKCdkJyk7XG5cbiAgICBcbiAgICB3aGlsZSAoc3RhcnQudmFsdWVPZigpIDwgZW5kLnZhbHVlT2YoKSkge1xuICAgICAgdGhpcy50aW1lSW50ZXJ2YWxzLnB1c2goc3RhcnQuZm9ybWF0KHRoaXMudGltZUZvcm1hdCkpO1xuICAgICAgc3RhcnQuYWRkKHRoaXMuaW50ZXJ2YWwsIFwibVwiKTtcbiAgICB9XG5cbiAgICAvLyBpZiB0aGUgc3RhcnQgdGltZSBpcyBlcXVhbCB0byB0aGUgaW50ZXJ2YWwganVzdCBiZWZvcmUgbWlkbmlnaHRcbiAgICAvLyBhbmQgdGhlIHN0YXJ0IGRhdGUgPSBlbmQgZGF0ZVxuICAgIC8vIHB1c2ggMTE6NTlwbSBvbmx5XG4gICAgaWYgKHRoaXMudGltZUludGVydmFscy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuY2hvc2VuVGltZSA9IG1vbWVudCgpLmVuZE9mKFwiZFwiKS5mb3JtYXQodGhpcy50aW1lRm9ybWF0KTtcbiAgICAgIHRoaXMudGltZUludGVydmFscy5wdXNoKG1vbWVudCgpLmVuZE9mKFwiZFwiKS5mb3JtYXQodGhpcy50aW1lRm9ybWF0KSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMudG9vbHRpcERpcmVjdGl2ZSkgdGhpcy50b29sdGlwRGlyZWN0aXZlLmhpZGVUb29sVGlwKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aW1lcGlja2VyLWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBoZWlnaHQgfVwiIFtuZ0NsYXNzXT1cInsnZGlzYWJsZSc6IGRpc2FibGV9XCI+XG4gIDxpbnB1dFxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBbKG5nTW9kZWwpXT1cImNob3NlblRpbWVcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGltZUNoYW5nZShjaG9zZW5UaW1lKVwiXG4gICAgW25nQ2xhc3NdPVwieyBpbnZhbGlkOiBpc0ludmFsaWQgfHwgIXJhbmdlVmFsaWRpdHkgfVwiXG4gICAgW25nU3R5bGVdPVwieyB3aWR0aDogaW5wdXRXaWR0aCB9XCJcbiAgICAoY2xpY2spPVwib3BlbkRyb3Bkb3duKClcIlxuICAgIG1pc1Rvb2xUaXBcbiAgICBbc2hvd1Rvb2xUaXBdPVwic2hvd1Rvb2x0aXAgJiYgKGlzSW52YWxpZCB8fCAhcmFuZ2VWYWxpZGl0eSkgJiYgZGlzcGF5VG9vbFRpcFwiXG4gICAgW3RleHRdPVwiJ0ludmFsaWQgVGltZSdcIlxuICAgIFtwb3NpdGlvbl09XCIndG9wJ1wiXG4gICAgW3Nob3dPbkhvdmVyXT1cImZhbHNlXCJcbiAgICAjaW5wdXRcbiAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgY2xhc3M9XCJoN1wiXG4gIC8+XG5cbiAgPG5nLXRlbXBsYXRlICNkcm9wZG93bkNvbnRhaW5lciBsaWJEcm9wZG93blNjcm9sbCBsaWJUaW1lcGlja2VyIFtvcmlnaW5FbF09XCJpbnB1dFwiIFtvcGVuU3RhdHVzXT1cIm9wZW5TdGF0dXNcIiAoc3RhdHVzRW1pdHRlcik9XCJjbG9zZURyb3Bkb3duKClcIj5cbiAgICA8ZGl2ICpuZ0lmPVwib3BlblN0YXR1c1wiIGNsYXNzPVwidGltZXBpY2tlci1kcm9wZG93blwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGRyb3Bkb3duV2lkdGggfHwgaW5wdXRXaWR0aCB9XCI+XG4gICAgICA8dWwgI2Ryb3Bkb3duPlxuICAgICAgICA8bGkgI3RpbWVJbnRlcnZhbCAoY2xpY2spPVwib25UaW1lU2VsZWN0KGludGVydmFsKVwiICpuZ0Zvcj1cImxldCBpbnRlcnZhbCBvZiB0aW1lSW50ZXJ2YWxzOyBpbmRleCBhcyBpXCIgW25nQ2xhc3NdPVwieyBoaWdobGlnaHQ6IGkgPT09IGlzSGlnaGxpZ2h0ZWQgfVwiPlxuICAgICAgICAgIHt7IGludGVydmFsIH19XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImljLXVpLWNoZWNrLTI0IHNlbGVjdGVkLWljb25cIiAqbmdJZj1cImludGVydmFsID09PSBjaG9zZW5UaW1lXCI+PC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  export { TimeRangePickerComponent } from "./timerangepicker.component";
2
2
  export { TimeRangePickerModule } from "./timerangepicker.module";
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RpbWVyYW5nZXBpY2tlci9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgVGltZVJhbmdlUGlja2VyQ29tcG9uZW50IH0gZnJvbSBcIi4vdGltZXJhbmdlcGlja2VyLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgVGltZVJhbmdlUGlja2VyTW9kdWxlIH0gZnJvbSBcIi4vdGltZXJhbmdlcGlja2VyLm1vZHVsZVwiIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RpbWVyYW5nZXBpY2tlci9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgVGltZVJhbmdlUGlja2VyQ29tcG9uZW50IH0gZnJvbSBcIi4vdGltZXJhbmdlcGlja2VyLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgVGltZVJhbmdlUGlja2VyTW9kdWxlIH0gZnJvbSBcIi4vdGltZXJhbmdlcGlja2VyLm1vZHVsZVwiO1xuZXhwb3J0IHsgVERpcmVjdGlvbiwgSVRpbWVSYW5nZSwgSVRpbWUgfSBmcm9tIFwiLi90aW1lcmFuZ2UubmFtZXNwYWNlXCI7XG4iXX0=