mis-crystal-design-system 18.0.24 → 18.1.0-signal-test

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 (163) hide show
  1. package/action-list/action-list.component.d.ts +17 -15
  2. package/async-search-dropdown/async-dropdown.component.d.ts +43 -61
  3. package/button/button.component.d.ts +35 -13
  4. package/button/button.directive.d.ts +10 -8
  5. package/checkbox/checkbox.component.d.ts +15 -12
  6. package/chip/chip.component.d.ts +9 -11
  7. package/datepicker_v2/models/dp-config.model.d.ts +1 -0
  8. package/datepicker_v2/tz-datepicker.directive.d.ts +15 -18
  9. package/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +42 -21
  10. package/daterangepicker_v2/tz-daterangepicker.directive.d.ts +12 -14
  11. package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +46 -23
  12. package/drawer/drawer-body/drawer-body.component.d.ts +2 -2
  13. package/dropdown/calculate-container-height.directive.d.ts +7 -8
  14. package/dropdown/dropdown.component.d.ts +41 -49
  15. package/dynamic-form/dynamic-form.component.d.ts +20 -16
  16. package/esm2022/action-list/action-list.component.mjs +112 -89
  17. package/esm2022/async-search-dropdown/async-dropdown.component.mjs +256 -326
  18. package/esm2022/button/button.component.mjs +55 -48
  19. package/esm2022/button/button.directive.mjs +36 -40
  20. package/esm2022/checkbox/checkbox.component.mjs +75 -70
  21. package/esm2022/chip/chip.component.mjs +20 -33
  22. package/esm2022/datepicker_v2/models/dp-config.model.mjs +1 -1
  23. package/esm2022/datepicker_v2/tz-datepicker.directive.mjs +42 -71
  24. package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +202 -172
  25. package/esm2022/datepicker_v2/utils/index.mjs +2 -1
  26. package/esm2022/daterangepicker_v2/tz-daterangepicker.directive.mjs +26 -51
  27. package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +282 -235
  28. package/esm2022/drawer/drawer-body/drawer-body.component.mjs +8 -7
  29. package/esm2022/dropdown/calculate-container-height.directive.mjs +25 -22
  30. package/esm2022/dropdown/dropdown.component.mjs +162 -186
  31. package/esm2022/dynamic-form/dynamic-form.component.mjs +118 -72
  32. package/esm2022/fab/fab.component.mjs +29 -33
  33. package/esm2022/filter/filter-panel/filter-panel.component.mjs +60 -58
  34. package/esm2022/input/directives/input/input.directive.mjs +22 -26
  35. package/esm2022/input/mis-input.component.mjs +41 -45
  36. package/esm2022/input-stepper/input-stepper/input-stepper.component.mjs +40 -50
  37. package/esm2022/loader/loader.component.mjs +8 -11
  38. package/esm2022/mobile-filter/mobile-filter.component.mjs +61 -61
  39. package/esm2022/modal/module-wrapper/module-wrapper.component.mjs +11 -9
  40. package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +235 -281
  41. package/esm2022/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +250 -287
  42. package/esm2022/phone-input/phone-input.component.mjs +21 -43
  43. package/esm2022/radio-button/radio-button.component.mjs +15 -27
  44. package/esm2022/ske-loader/ske-loader.component.mjs +15 -29
  45. package/esm2022/slider/slider.component.mjs +23 -33
  46. package/esm2022/slider/slider.module.mjs +4 -11
  47. package/esm2022/snackbar/snackbar/snackbar.component.mjs +21 -15
  48. package/esm2022/snackbar/snackbar.service.mjs +3 -2
  49. package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +230 -343
  50. package/esm2022/specificdatepicker/tz-specificdatepicker.directive.mjs +77 -105
  51. package/esm2022/star-rating/star-rating.component.mjs +57 -71
  52. package/esm2022/switch/switch.component.mjs +34 -36
  53. package/esm2022/table/actions-cell/actions-cell.component.mjs +55 -54
  54. package/esm2022/table/custom-table-cell.directive.mjs +22 -18
  55. package/esm2022/table/filter/filter.component.mjs +60 -42
  56. package/esm2022/table/sort-icons.directive.mjs +16 -8
  57. package/esm2022/table/sub-table/sub-table.component.mjs +41 -44
  58. package/esm2022/table/table.component.mjs +181 -165
  59. package/esm2022/timepicker/timepicker.component.mjs +244 -159
  60. package/esm2022/timepicker/timepicker.directive.mjs +3 -2
  61. package/esm2022/timerangepicker/timerangepicker.component.mjs +200 -159
  62. package/esm2022/toast/toast.component.mjs +6 -7
  63. package/esm2022/toast/toast.data.service.mjs +15 -9
  64. package/esm2022/tooltip/tooltip-container/tooltip.component.mjs +12 -12
  65. package/esm2022/tooltip/tooltip.directive.mjs +4 -4
  66. package/esm2022/virtual-scroll/virtual-scroll.component.mjs +57 -59
  67. package/fab/fab.component.d.ts +12 -8
  68. package/fesm2022/mis-crystal-design-system-action-list.mjs +111 -88
  69. package/fesm2022/mis-crystal-design-system-action-list.mjs.map +1 -1
  70. package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs +253 -324
  71. package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
  72. package/fesm2022/mis-crystal-design-system-button.mjs +88 -85
  73. package/fesm2022/mis-crystal-design-system-button.mjs.map +1 -1
  74. package/fesm2022/mis-crystal-design-system-checkbox.mjs +74 -69
  75. package/fesm2022/mis-crystal-design-system-checkbox.mjs.map +1 -1
  76. package/fesm2022/mis-crystal-design-system-chip.mjs +19 -32
  77. package/fesm2022/mis-crystal-design-system-chip.mjs.map +1 -1
  78. package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs +242 -240
  79. package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
  80. package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +305 -283
  81. package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
  82. package/fesm2022/mis-crystal-design-system-drawer.mjs +7 -6
  83. package/fesm2022/mis-crystal-design-system-drawer.mjs.map +1 -1
  84. package/fesm2022/mis-crystal-design-system-dropdown.mjs +183 -204
  85. package/fesm2022/mis-crystal-design-system-dropdown.mjs.map +1 -1
  86. package/fesm2022/mis-crystal-design-system-dynamic-form.mjs +118 -72
  87. package/fesm2022/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
  88. package/fesm2022/mis-crystal-design-system-fab.mjs +28 -32
  89. package/fesm2022/mis-crystal-design-system-fab.mjs.map +1 -1
  90. package/fesm2022/mis-crystal-design-system-filter.mjs +59 -57
  91. package/fesm2022/mis-crystal-design-system-filter.mjs.map +1 -1
  92. package/fesm2022/mis-crystal-design-system-input-stepper.mjs +39 -49
  93. package/fesm2022/mis-crystal-design-system-input-stepper.mjs.map +1 -1
  94. package/fesm2022/mis-crystal-design-system-input.mjs +62 -71
  95. package/fesm2022/mis-crystal-design-system-input.mjs.map +1 -1
  96. package/fesm2022/mis-crystal-design-system-loader.mjs +7 -10
  97. package/fesm2022/mis-crystal-design-system-loader.mjs.map +1 -1
  98. package/fesm2022/mis-crystal-design-system-mobile-filter.mjs +60 -60
  99. package/fesm2022/mis-crystal-design-system-mobile-filter.mjs.map +1 -1
  100. package/fesm2022/mis-crystal-design-system-modal.mjs +10 -8
  101. package/fesm2022/mis-crystal-design-system-modal.mjs.map +1 -1
  102. package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs +233 -279
  103. package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
  104. package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs +249 -286
  105. package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -1
  106. package/fesm2022/mis-crystal-design-system-phone-input.mjs +20 -42
  107. package/fesm2022/mis-crystal-design-system-phone-input.mjs.map +1 -1
  108. package/fesm2022/mis-crystal-design-system-radio-button.mjs +14 -26
  109. package/fesm2022/mis-crystal-design-system-radio-button.mjs.map +1 -1
  110. package/fesm2022/mis-crystal-design-system-ske-loader.mjs +14 -28
  111. package/fesm2022/mis-crystal-design-system-ske-loader.mjs.map +1 -1
  112. package/fesm2022/mis-crystal-design-system-slider.mjs +25 -42
  113. package/fesm2022/mis-crystal-design-system-slider.mjs.map +1 -1
  114. package/fesm2022/mis-crystal-design-system-snackbar.mjs +22 -15
  115. package/fesm2022/mis-crystal-design-system-snackbar.mjs.map +1 -1
  116. package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +304 -445
  117. package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
  118. package/fesm2022/mis-crystal-design-system-star-rating.mjs +56 -70
  119. package/fesm2022/mis-crystal-design-system-star-rating.mjs.map +1 -1
  120. package/fesm2022/mis-crystal-design-system-switch.mjs +33 -35
  121. package/fesm2022/mis-crystal-design-system-switch.mjs.map +1 -1
  122. package/fesm2022/mis-crystal-design-system-table.mjs +365 -321
  123. package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
  124. package/fesm2022/mis-crystal-design-system-timepicker.mjs +245 -159
  125. package/fesm2022/mis-crystal-design-system-timepicker.mjs.map +1 -1
  126. package/fesm2022/mis-crystal-design-system-timerangepicker.mjs +199 -158
  127. package/fesm2022/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
  128. package/fesm2022/mis-crystal-design-system-toast.mjs +18 -13
  129. package/fesm2022/mis-crystal-design-system-toast.mjs.map +1 -1
  130. package/fesm2022/mis-crystal-design-system-tooltip.mjs +14 -14
  131. package/fesm2022/mis-crystal-design-system-tooltip.mjs.map +1 -1
  132. package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs +57 -59
  133. package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs.map +1 -1
  134. package/filter/filter-panel/filter-panel.component.d.ts +14 -14
  135. package/input/directives/input/input.directive.d.ts +6 -10
  136. package/input/mis-input.component.d.ts +12 -13
  137. package/input-stepper/input-stepper/input-stepper.component.d.ts +8 -7
  138. package/loader/loader.component.d.ts +3 -6
  139. package/mobile-filter/mobile-filter.component.d.ts +15 -15
  140. package/modal/module-wrapper/module-wrapper.component.d.ts +2 -3
  141. package/multi-select-dropdown/multi-select-dropdown.component.d.ts +89 -51
  142. package/nested-multi-select-dropdown/nested-multi-select-dropdown.component.d.ts +99 -56
  143. package/package.json +17 -17
  144. package/phone-input/phone-input.component.d.ts +16 -18
  145. package/radio-button/radio-button.component.d.ts +9 -11
  146. package/ske-loader/ske-loader.component.d.ts +8 -11
  147. package/slider/slider.component.d.ts +8 -11
  148. package/slider/slider.module.d.ts +1 -2
  149. package/snackbar/snackbar/snackbar.component.d.ts +3 -3
  150. package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +35 -35
  151. package/specificdatepicker/tz-specificdatepicker.directive.d.ts +24 -28
  152. package/star-rating/star-rating.component.d.ts +18 -18
  153. package/switch/switch.component.d.ts +8 -10
  154. package/table/actions-cell/actions-cell.component.d.ts +14 -14
  155. package/table/custom-table-cell.directive.d.ts +3 -3
  156. package/table/filter/filter.component.d.ts +9 -9
  157. package/table/sub-table/sub-table.component.d.ts +5 -5
  158. package/table/table.component.d.ts +38 -35
  159. package/timepicker/timepicker.component.d.ts +29 -28
  160. package/timerangepicker/timerangepicker.component.d.ts +36 -33
  161. package/toast/toast.data.service.d.ts +1 -1
  162. package/tooltip/tooltip-container/tooltip.component.d.ts +4 -4
  163. package/virtual-scroll/virtual-scroll.component.d.ts +8 -9
@@ -1,4 +1,4 @@
1
- import { Component, Input, ViewChild } from "@angular/core";
1
+ import { Component, ViewChild, input, signal } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  import * as i2 from "@angular/cdk/scrolling";
@@ -47,21 +47,23 @@ function SubTableComponent_div_3_Template(rf, ctx) { if (rf & 1) {
47
47
  i0.ɵɵtemplate(1, SubTableComponent_div_3_div_1_Template, 3, 9, "div", 7);
48
48
  i0.ɵɵelementEnd();
49
49
  } if (rf & 2) {
50
+ let tmp_3_0;
50
51
  const ctx_r2 = i0.ɵɵnextContext();
51
52
  i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(2, _c2, ctx_r2.getColHeadersRowHeight(), ctx_r2.getColHeadersRowBorderTop(), ctx_r2.getColHeadersRowBorderBottom()));
52
53
  i0.ɵɵadvance();
53
- i0.ɵɵproperty("ngForOf", ctx_r2.config == null ? null : ctx_r2.config.colHeaderConfig);
54
+ i0.ɵɵproperty("ngForOf", (tmp_3_0 = ctx_r2.config()) == null ? null : tmp_3_0.colHeaderConfig);
54
55
  } }
55
56
  function SubTableComponent_div_6_div_2_p_2_Template(rf, ctx) { if (rf & 1) {
56
57
  i0.ɵɵelementStart(0, "p", 19);
57
58
  i0.ɵɵtext(1);
58
59
  i0.ɵɵelementEnd();
59
60
  } if (rf & 2) {
61
+ let tmp_8_0;
60
62
  const ctx_r7 = i0.ɵɵnextContext();
61
63
  const col_r6 = ctx_r7.$implicit;
62
64
  const i_r7 = ctx_r7.index;
63
65
  const ctx_r2 = i0.ɵɵnextContext(2);
64
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(2, _c7, (ctx_r2.config == null ? null : ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].style == null ? null : ctx_r2.config.colConfig[i_r7].style.color) ? ctx_r2.config == null ? null : ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].style == null ? null : ctx_r2.config.colConfig[i_r7].style.color : ""));
66
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(2, _c7, ((tmp_8_0 = ctx_r2.config()) == null ? null : tmp_8_0.colConfig[i_r7] == null ? null : tmp_8_0.colConfig[i_r7].style == null ? null : tmp_8_0.colConfig[i_r7].style.color) ? (tmp_8_0 = ctx_r2.config()) == null ? null : tmp_8_0.colConfig[i_r7] == null ? null : tmp_8_0.colConfig[i_r7].style == null ? null : tmp_8_0.colConfig[i_r7].style.color : ""));
65
67
  i0.ɵɵadvance();
66
68
  i0.ɵɵtextInterpolate1(" ", col_r6, " ");
67
69
  } }
@@ -73,26 +75,29 @@ function SubTableComponent_div_6_div_2_3_Template(rf, ctx) { if (rf & 1) {
73
75
  const col_r6 = ctx_r7.$implicit;
74
76
  const i_r7 = ctx_r7.index;
75
77
  const ctx_r2 = i0.ɵɵnextContext(2);
76
- i0.ɵɵproperty("customComponent", ctx_r2.config.colConfig[i_r7].componentRef)("data", col_r6);
78
+ i0.ɵɵproperty("customComponent", ctx_r2.config().colConfig[i_r7].componentRef)("data", col_r6);
77
79
  } }
78
80
  function SubTableComponent_div_6_div_2_Template(rf, ctx) { if (rf & 1) {
79
81
  const _r4 = i0.ɵɵgetCurrentView();
80
82
  i0.ɵɵelementStart(0, "div", 16);
81
- i0.ɵɵlistener("click", function SubTableComponent_div_6_div_2_Template_div_click_0_listener() { const ctx_r4 = i0.ɵɵrestoreView(_r4); const col_r6 = ctx_r4.$implicit; const i_r7 = ctx_r4.index; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView((ctx_r2.config == null ? null : ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].action) ? ctx_r2.config == null ? null : ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].action(col_r6) : null); });
83
+ i0.ɵɵlistener("click", function SubTableComponent_div_6_div_2_Template_div_click_0_listener() { let tmp_8_0; const ctx_r4 = i0.ɵɵrestoreView(_r4); const col_r6 = ctx_r4.$implicit; const i_r7 = ctx_r4.index; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(((tmp_8_0 = ctx_r2.config()) == null ? null : tmp_8_0.colConfig[i_r7] == null ? null : tmp_8_0.colConfig[i_r7].action) ? (tmp_8_0 = ctx_r2.config()) == null ? null : tmp_8_0.colConfig[i_r7] == null ? null : tmp_8_0.colConfig[i_r7].action(col_r6) : null); });
82
84
  i0.ɵɵelementStart(1, "div", 17);
83
85
  i0.ɵɵtemplate(2, SubTableComponent_div_6_div_2_p_2_Template, 2, 4, "p", 18)(3, SubTableComponent_div_6_div_2_3_Template, 1, 2, null, 10);
84
86
  i0.ɵɵelementEnd()();
85
87
  } if (rf & 2) {
88
+ let tmp_7_0;
89
+ let tmp_8_0;
90
+ let tmp_9_0;
86
91
  const i_r7 = ctx.index;
87
92
  const ctx_r2 = i0.ɵɵnextContext(2);
88
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(6, _c5, (ctx_r2.config == null ? null : ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].style == null ? null : ctx_r2.config.colConfig[i_r7].style.width) || (ctx_r2.config == null ? null : ctx_r2.config.colHeaderConfig[i_r7] == null ? null : ctx_r2.config.colHeaderConfig[i_r7].style == null ? null : ctx_r2.config.colHeaderConfig[i_r7].style.width) || ""));
93
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(6, _c5, ((tmp_7_0 = ctx_r2.config()) == null ? null : tmp_7_0.colConfig[i_r7] == null ? null : tmp_7_0.colConfig[i_r7].style == null ? null : tmp_7_0.colConfig[i_r7].style.width) || ((tmp_7_0 = ctx_r2.config()) == null ? null : tmp_7_0.colHeaderConfig[i_r7] == null ? null : tmp_7_0.colHeaderConfig[i_r7].style == null ? null : tmp_7_0.colHeaderConfig[i_r7].style.width) || ""));
89
94
  i0.ɵɵadvance();
90
- i0.ɵɵstyleMap(ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].style);
91
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(8, _c6, ctx_r2.config.colConfig[i_r7].action ? "pointer" : "default", (ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].style == null ? null : ctx_r2.config.colConfig[i_r7].style.justifyContent) ? ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].style == null ? null : ctx_r2.config.colConfig[i_r7].style.justifyContent : ctx_r2.config.colConfig[i_r7].type === "number" ? "flex-end" : "space-between"));
95
+ i0.ɵɵstyleMap((tmp_8_0 = ctx_r2.config().colConfig[i_r7]) == null ? null : tmp_8_0.style);
96
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(8, _c6, ctx_r2.config().colConfig[i_r7].action ? "pointer" : "default", ((tmp_9_0 = ctx_r2.config().colConfig[i_r7]) == null ? null : tmp_9_0.style == null ? null : tmp_9_0.style.justifyContent) ? (tmp_9_0 = ctx_r2.config().colConfig[i_r7]) == null ? null : tmp_9_0.style == null ? null : tmp_9_0.style.justifyContent : ctx_r2.config().colConfig[i_r7].type === "number" ? "flex-end" : "space-between"));
92
97
  i0.ɵɵadvance();
93
- i0.ɵɵproperty("ngIf", ctx_r2.config.colConfig[i_r7].type !== "custom");
98
+ i0.ɵɵproperty("ngIf", ctx_r2.config().colConfig[i_r7].type !== "custom");
94
99
  i0.ɵɵadvance();
95
- i0.ɵɵproperty("ngIf", ctx_r2.config.colConfig[i_r7].type === "custom");
100
+ i0.ɵɵproperty("ngIf", ctx_r2.config().colConfig[i_r7].type === "custom");
96
101
  } }
97
102
  function SubTableComponent_div_6_Template(rf, ctx) { if (rf & 1) {
98
103
  i0.ɵɵelementStart(0, "div", 13)(1, "div", 14);
@@ -108,51 +113,47 @@ function SubTableComponent_div_6_Template(rf, ctx) { if (rf & 1) {
108
113
  export class SubTableComponent {
109
114
  constructor(renderer) {
110
115
  this.renderer = renderer;
111
- this.selectedPage = 1;
112
- this.pages = [];
113
- this.tableData = [];
116
+ this.selectedPage = signal(1);
117
+ this.pages = signal([]);
118
+ this.config = input();
119
+ this.tableData = input([]);
114
120
  }
115
121
  ngOnInit() { }
116
122
  ngAfterViewInit() {
117
- if (this.config.paginationConfig) {
118
- let height = this.table.nativeElement.offsetHeight;
119
- this.renderer.setStyle(this.table.nativeElement, "height", height - 56 + "px");
120
- }
123
+ let height = this.table.nativeElement.offsetHeight;
124
+ this.renderer.setStyle(this.table.nativeElement, "height", height - 56 + "px");
121
125
  }
122
126
  // Main container related functions
123
127
  getContainerHeight() {
124
- if (this.config.height)
125
- return this.config.height;
128
+ if (this.config().height)
129
+ return this.config().height;
126
130
  else
127
131
  return "";
128
132
  }
129
133
  getContainerWidth() {
130
- if (this.config.width)
131
- return this.config.width;
134
+ if (this.config().width)
135
+ return this.config().width;
132
136
  else
133
137
  return "";
134
138
  }
135
139
  // Column Headers related functions
136
140
  getColHeadersRowHeight() {
137
- if (this.config.colHeadersRowConfig && this.config.colHeadersRowConfig.height) {
138
- return this.config.colHeadersRowConfig.height;
141
+ if (this.config().colHeadersRowConfig && this.config().colHeadersRowConfig.height) {
142
+ return this.config().colHeadersRowConfig.height;
139
143
  }
140
- else
141
- return "44px";
144
+ return "44px";
142
145
  }
143
146
  getColHeadersRowBorderTop() {
144
- if (this.config.colHeadersRowConfig && this.config.colHeadersRowConfig.style?.borderTop) {
145
- return this.config.colHeadersRowConfig.style?.borderTop;
147
+ if (this.config().colHeadersRowConfig && this.config().colHeadersRowConfig.style?.borderTop) {
148
+ return this.config().colHeadersRowConfig.style?.borderTop;
146
149
  }
147
- else
148
- return "";
150
+ return "";
149
151
  }
150
152
  getColHeadersRowBorderBottom() {
151
- if (this.config.colHeadersRowConfig && this.config.colHeadersRowConfig.style?.borderBottom) {
152
- return this.config.colHeadersRowConfig.style?.borderBottom;
153
+ if (this.config().colHeadersRowConfig && this.config().colHeadersRowConfig.style?.borderBottom) {
154
+ return this.config().colHeadersRowConfig.style?.borderBottom;
153
155
  }
154
- else
155
- return "1px solid #E0E0E0";
156
+ return "1px solid #E0E0E0";
156
157
  }
157
158
  static { this.ɵfac = function SubTableComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SubTableComponent)(i0.ɵɵdirectiveInject(i0.Renderer2)); }; }
158
159
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SubTableComponent, selectors: [["sub-table"]], viewQuery: function SubTableComponent_Query(rf, ctx) { if (rf & 1) {
@@ -160,7 +161,7 @@ export class SubTableComponent {
160
161
  } if (rf & 2) {
161
162
  let _t;
162
163
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.table = _t.first);
163
- } }, inputs: { config: "config", tableData: "tableData" }, decls: 7, vars: 12, consts: [["table", ""], ["id", "main-container", 3, "ngStyle"], ["id", "table-container"], ["id", "col-headers-container", 3, "ngStyle", 4, "ngIf"], ["itemSize", "50", "id", "data-container", 3, "minBufferPx", "maxBufferPx"], ["class", "row-wrapper", 3, "ngStyle", 4, "cdkVirtualFor", "cdkVirtualForOf"], ["id", "col-headers-container", 3, "ngStyle"], ["class", "col-header", 3, "style", "ngStyle", "click", 4, "ngFor", "ngForOf"], [1, "col-header", 3, "click", "ngStyle"], ["class", "col-header-text", 4, "ngIf"], [4, "ngIf"], [1, "col-header-text"], ["customTableCell", "", 3, "customComponent", "data"], [1, "row-wrapper", 3, "ngStyle"], [1, "t-row"], ["class", "t-col-container", 3, "ngStyle", "click", 4, "ngFor", "ngForOf"], [1, "t-col-container", 3, "click", "ngStyle"], [1, "t-col", 3, "ngStyle"], ["class", "t-col-text", 3, "ngStyle", 4, "ngIf"], [1, "t-col-text", 3, "ngStyle"]], template: function SubTableComponent_Template(rf, ctx) { if (rf & 1) {
164
+ } }, inputs: { config: [1, "config"], tableData: [1, "tableData"] }, decls: 7, vars: 12, consts: [["table", ""], ["id", "main-container", 3, "ngStyle"], ["id", "table-container"], ["id", "col-headers-container", 3, "ngStyle", 4, "ngIf"], ["itemSize", "50", "id", "data-container", 3, "minBufferPx", "maxBufferPx"], ["class", "row-wrapper", 3, "ngStyle", 4, "cdkVirtualFor", "cdkVirtualForOf"], ["id", "col-headers-container", 3, "ngStyle"], ["class", "col-header", 3, "style", "ngStyle", "click", 4, "ngFor", "ngForOf"], [1, "col-header", 3, "click", "ngStyle"], ["class", "col-header-text", 4, "ngIf"], [4, "ngIf"], [1, "col-header-text"], ["customTableCell", "", 3, "customComponent", "data"], [1, "row-wrapper", 3, "ngStyle"], [1, "t-row"], ["class", "t-col-container", 3, "ngStyle", "click", 4, "ngFor", "ngForOf"], [1, "t-col-container", 3, "click", "ngStyle"], [1, "t-col", 3, "ngStyle"], ["class", "t-col-text", 3, "ngStyle", 4, "ngIf"], [1, "t-col-text", 3, "ngStyle"]], template: function SubTableComponent_Template(rf, ctx) { if (rf & 1) {
164
165
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 2, 0);
165
166
  i0.ɵɵtemplate(3, SubTableComponent_div_3_Template, 2, 6, "div", 3);
166
167
  i0.ɵɵelementStart(4, "div")(5, "cdk-virtual-scroll-viewport", 4);
@@ -169,24 +170,20 @@ export class SubTableComponent {
169
170
  } if (rf & 2) {
170
171
  i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(9, _c1, ctx.getContainerHeight(), ctx.getContainerWidth()));
171
172
  i0.ɵɵadvance(3);
172
- i0.ɵɵproperty("ngIf", !!ctx.config.showHeader);
173
+ i0.ɵɵproperty("ngIf", !!ctx.config().showHeader);
173
174
  i0.ɵɵadvance(2);
174
- i0.ɵɵstyleProp("overflow", "overlay")("height", ctx.config.dataContainerMaxHeight || "400px");
175
- i0.ɵɵproperty("minBufferPx", ctx.config.dataContainerMaxHeight || "400")("maxBufferPx", ctx.config.dataContainerMaxHeight + 200 || "600");
175
+ i0.ɵɵstyleProp("overflow", "overlay")("height", ctx.config().dataContainerMaxHeight || "400px");
176
+ i0.ɵɵproperty("minBufferPx", ctx.config().dataContainerMaxHeight || "400")("maxBufferPx", ctx.config().dataContainerMaxHeight + 200 || "600");
176
177
  i0.ɵɵadvance();
177
178
  i0.ɵɵproperty("cdkVirtualForOf", ctx.tableData);
178
179
  } }, dependencies: [i1.NgForOf, i1.NgIf, i1.NgStyle, i2.CdkFixedSizeVirtualScroll, i2.CdkVirtualForOf, i2.CdkVirtualScrollViewport, i3.CustomTableCellDirective], styles: ["#main-container[_ngcontent-%COMP%]{font-family:Lato,sans-serif}#table-container[_ngcontent-%COMP%]{height:inherit}#col-headers-container[_ngcontent-%COMP%]{display:flex;background-color:#fff;height:36px;border-bottom:1px solid #e0e0e0}#data-container[_ngcontent-%COMP%]{overflow:scroll;width:100%}#data-container[_ngcontent-%COMP%]::-webkit-scrollbar{width:8px}#data-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#9aa7b4}.col-header[_ngcontent-%COMP%]{height:100%;width:160px;display:flex;align-items:center;padding:0 16px}.col-header-text[_ngcontent-%COMP%]{font-style:normal;font-weight:700;font-size:14px;line-height:20px;display:flex;align-items:center;letter-spacing:.25px;margin:0}.t-row[_ngcontent-%COMP%]{display:flex;align-items:center;height:36px;width:100%;border-bottom:1px solid #e0e0e0}.t-row[_ngcontent-%COMP%]:hover{background-color:#f1fdf8}.t-col-container[_ngcontent-%COMP%]{padding:0 16px;height:100%}.t-col[_ngcontent-%COMP%]{display:flex;align-items:center;height:100%}.t-col-text[_ngcontent-%COMP%]{font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:flex;align-items:center;letter-spacing:.2px;margin:0}"] }); }
179
180
  }
180
181
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SubTableComponent, [{
181
182
  type: Component,
182
- args: [{ selector: "sub-table", template: "<div\n id=\"main-container\"\n [ngStyle]=\"{\n height: getContainerHeight(),\n width: getContainerWidth()\n }\"\n>\n <div id=\"table-container\" #table>\n <div\n id=\"col-headers-container\"\n *ngIf=\"!!config.showHeader\"\n [ngStyle]=\"{\n height: getColHeadersRowHeight(),\n 'border-top': getColHeadersRowBorderTop(),\n 'border-bottom': getColHeadersRowBorderBottom()\n }\"\n >\n <div\n class=\"col-header\"\n (click)=\"colHeader?.action ? colHeader?.action(colHeader) : null\"\n *ngFor=\"let colHeader of config?.colHeaderConfig\"\n [style]=\"colHeader?.style\"\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 <ng-template\n *ngIf=\"colHeader?.type === 'custom'\"\n customTableCell\n [customComponent]=\"colHeader?.componentRef\"\n [data]=\"colHeader.data\"\n ></ng-template>\n </div>\n </div>\n <div>\n <cdk-virtual-scroll-viewport\n [minBufferPx]=\"config.dataContainerMaxHeight || '400'\"\n [maxBufferPx]=\"config.dataContainerMaxHeight + 200 || '600'\"\n [style.overflow]=\"'overlay'\"\n [style.height]=\"config.dataContainerMaxHeight || '400px'\"\n itemSize=\"50\"\n id=\"data-container\"\n >\n <div\n class=\"row-wrapper\"\n *cdkVirtualFor=\"let row of tableData; let i = index\"\n [ngStyle]=\"{\n backgroundColor: i % 2 === 0 ? '#FAFAFA' : null\n }\"\n >\n <div class=\"t-row\">\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 >\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>\n </cdk-virtual-scroll-viewport>\n </div>\n </div>\n</div>\n", styles: ["#main-container{font-family:Lato,sans-serif}#table-container{height:inherit}#col-headers-container{display:flex;background-color:#fff;height:36px;border-bottom:1px solid #e0e0e0}#data-container{overflow:scroll;width:100%}#data-container::-webkit-scrollbar{width:8px}#data-container::-webkit-scrollbar-thumb{background:#9aa7b4}.col-header{height:100%;width:160px;display:flex;align-items:center;padding:0 16px}.col-header-text{font-style:normal;font-weight:700;font-size:14px;line-height:20px;display:flex;align-items:center;letter-spacing:.25px;margin:0}.t-row{display:flex;align-items:center;height:36px;width:100%;border-bottom:1px solid #e0e0e0}.t-row:hover{background-color:#f1fdf8}.t-col-container{padding:0 16px;height:100%}.t-col{display:flex;align-items:center;height:100%}.t-col-text{font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:flex;align-items:center;letter-spacing:.2px;margin:0}\n"] }]
183
- }], () => [{ type: i0.Renderer2 }], { config: [{
184
- type: Input
185
- }], tableData: [{
186
- type: Input
187
- }], table: [{
183
+ args: [{ selector: "sub-table", template: "<div\n id=\"main-container\"\n [ngStyle]=\"{\n height: getContainerHeight(),\n width: getContainerWidth()\n }\"\n>\n <div id=\"table-container\" #table>\n <div\n id=\"col-headers-container\"\n *ngIf=\"!!config().showHeader\"\n [ngStyle]=\"{\n height: getColHeadersRowHeight(),\n 'border-top': getColHeadersRowBorderTop(),\n 'border-bottom': getColHeadersRowBorderBottom()\n }\"\n >\n <div\n class=\"col-header\"\n (click)=\"colHeader?.action ? colHeader?.action(colHeader) : null\"\n *ngFor=\"let colHeader of config()?.colHeaderConfig\"\n [style]=\"colHeader?.style\"\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 <ng-template\n *ngIf=\"colHeader?.type === 'custom'\"\n customTableCell\n [customComponent]=\"colHeader?.componentRef\"\n [data]=\"colHeader.data\"\n ></ng-template>\n </div>\n </div>\n <div>\n <cdk-virtual-scroll-viewport\n [minBufferPx]=\"config().dataContainerMaxHeight || '400'\"\n [maxBufferPx]=\"config().dataContainerMaxHeight + 200 || '600'\"\n [style.overflow]=\"'overlay'\"\n [style.height]=\"config().dataContainerMaxHeight || '400px'\"\n itemSize=\"50\"\n id=\"data-container\"\n >\n <div\n class=\"row-wrapper\"\n *cdkVirtualFor=\"let row of tableData; let i = index\"\n [ngStyle]=\"{\n backgroundColor: i % 2 === 0 ? '#FAFAFA' : null\n }\"\n >\n <div class=\"t-row\">\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 >\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>\n </cdk-virtual-scroll-viewport>\n </div>\n </div>\n</div>\n", styles: ["#main-container{font-family:Lato,sans-serif}#table-container{height:inherit}#col-headers-container{display:flex;background-color:#fff;height:36px;border-bottom:1px solid #e0e0e0}#data-container{overflow:scroll;width:100%}#data-container::-webkit-scrollbar{width:8px}#data-container::-webkit-scrollbar-thumb{background:#9aa7b4}.col-header{height:100%;width:160px;display:flex;align-items:center;padding:0 16px}.col-header-text{font-style:normal;font-weight:700;font-size:14px;line-height:20px;display:flex;align-items:center;letter-spacing:.25px;margin:0}.t-row{display:flex;align-items:center;height:36px;width:100%;border-bottom:1px solid #e0e0e0}.t-row:hover{background-color:#f1fdf8}.t-col-container{padding:0 16px;height:100%}.t-col{display:flex;align-items:center;height:100%}.t-col-text{font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:flex;align-items:center;letter-spacing:.2px;margin:0}\n"] }]
184
+ }], () => [{ type: i0.Renderer2 }], { table: [{
188
185
  type: ViewChild,
189
186
  args: ["table"]
190
187
  }] }); })();
191
188
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SubTableComponent, { className: "SubTableComponent" }); })();
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RhYmxlL3N1Yi10YWJsZS9zdWItdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvc3ViLXRhYmxlL3N1Yi10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7SUNnQ2xHLDZCQUFnRTtJQUM5RCxZQUNGO0lBQUEsaUJBQUk7OztJQURGLGNBQ0Y7SUFERSx5RkFDRjs7OztJQUNBLGlHQUtDOzs7SUFEQyxBQURBLHlGQUEyQywyQkFDcEI7Ozs7SUF0QjNCLDhCQWNDO0lBWkMsb1NBQTRELElBQUksS0FBQztJQWdCakUsQUFIQSwwRUFBZ0UsNkRBUS9EO0lBQ0gsaUJBQU07OztJQXBCSiwrREFBMEI7SUFDMUIsa2RBUUU7SUFFRSxjQUFrQztJQUFsQyxxRkFBa0M7SUFJbkMsY0FBa0M7SUFBbEMscUZBQWtDOzs7SUE1QnpDLDhCQVFDO0lBQ0Msd0VBY0M7SUFXSCxpQkFBTTs7O0lBL0JKLGdLQUlFO0lBS3NCLGNBQTBCO0lBQTFCLHNGQUEwQjs7O0lBNkR4Qyw2QkFNQztJQUNDLFlBQ0Y7SUFBQSxpQkFBSTs7Ozs7O0lBTkYsd1pBRUU7SUFHRixjQUNGO0lBREUsdUNBQ0Y7Ozs7SUFDQSxpR0FLQzs7Ozs7O0lBRkMsQUFEQSw0RUFBb0QsZ0JBQ3hDOzs7O0lBakNsQiwrQkFPQztJQU5DLGdmQUE0RSxJQUFJLEtBQUM7SUFPakYsK0JBWUM7SUFVQyxBQVRBLDJFQU1DLDZEQVFBO0lBRUwsQUFERSxpQkFBTSxFQUNGOzs7O0lBbENKLDhhQUVFO0lBS0EsY0FBb0M7SUFBcEMs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LFdBQVc7MENBUVosTUFBTTtrQkFBZCxLQUFLO1lBQ0csU0FBUztrQkFBakIsS0FBSztZQUNjLEtBQUs7a0JBQXhCLFNBQVM7bUJBQUMsT0FBTzs7a0ZBTlAsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdWItdGFibGVcIixcbiAgdGVtcGxhdGVVcmw6IFwic3ViLXRhYmxlLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wic3ViLXRhYmxlLmNvbXBvbmVudC5jc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgU3ViVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBzZWxlY3RlZFBhZ2UgPSAxO1xuICBwYWdlczogQXJyYXk8bnVtYmVyPiA9IFtdO1xuXG4gIEBJbnB1dCgpIGNvbmZpZzogU3ViVGFibGVDb25maWcgfCBhbnk7XG4gIEBJbnB1dCgpIHRhYmxlRGF0YTogQXJyYXk8QXJyYXk8YW55Pj4gPSBbXTtcbiAgQFZpZXdDaGlsZChcInRhYmxlXCIpIHRhYmxlOiBFbGVtZW50UmVmIHwgYW55O1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb25maWcucGFnaW5hdGlvbkNvbmZpZykge1xuICAgICAgbGV0IGhlaWdodCA9IHRoaXMudGFibGUubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudGFibGUubmF0aXZlRWxlbWVudCwgXCJoZWlnaHRcIiwgaGVpZ2h0IC0gNTYgKyBcInB4XCIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1haW4gY29udGFpbmVyIHJlbGF0ZWQgZnVuY3Rpb25zXG4gIGdldENvbnRhaW5lckhlaWdodCgpIHtcbiAgICBpZiAodGhpcy5jb25maWcuaGVpZ2h0KSByZXR1cm4gdGhpcy5jb25maWcuaGVpZ2h0O1xuICAgIGVsc2UgcmV0dXJuIFwiXCI7XG4gIH1cbiAgZ2V0Q29udGFpbmVyV2lkdGgoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLndpZHRoKSByZXR1cm4gdGhpcy5jb25maWcud2lkdGg7XG4gICAgZWxzZSByZXR1cm4gXCJcIjtcbiAgfVxuXG4gIC8vIENvbHVtbiBIZWFkZXJzIHJlbGF0ZWQgZnVuY3Rpb25zXG4gIGdldENvbEhlYWRlcnNSb3dIZWlnaHQoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmNvbEhlYWRlcnNSb3dDb25maWcgJiYgdGhpcy5jb25maWcuY29sSGVhZGVyc1Jvd0NvbmZpZy5oZWlnaHQpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5jb2xIZWFkZXJzUm93Q29uZmlnLmhlaWdodDtcbiAgICB9IGVsc2UgcmV0dXJuIFwiNDRweFwiO1xuICB9XG4gIGdldENvbEhlYWRlcnNSb3dCb3JkZXJUb3AoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmNvbEhlYWRlcnNSb3dDb25maWcgJiYgdGhpcy5jb25maWcuY29sSGVhZGVyc1Jvd0NvbmZpZy5zdHlsZT8uYm9yZGVyVG9wKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb25maWcuY29sSGVhZGVyc1Jvd0NvbmZpZy5zdHlsZT8uYm9yZGVyVG9wO1xuICAgIH0gZWxzZSByZXR1cm4gXCJcIjtcbiAgfVxuICBnZXRDb2xIZWFkZXJzUm93Qm9yZGVyQm90dG9tKCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5jb2xIZWFkZXJzUm93Q29uZmlnICYmIHRoaXMuY29uZmlnLmNvbEhlYWRlcnNSb3dDb25maWcuc3R5bGU/LmJvcmRlckJvdHRvbSkge1xuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmNvbEhlYWRlcnNSb3dDb25maWcuc3R5bGU/LmJvcmRlckJvdHRvbTtcbiAgICB9IGVsc2UgcmV0dXJuIFwiMXB4IHNvbGlkICNFMEUwRTBcIjtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1YlRhYmxlQ29uZmlnIHtcbiAgaGVpZ2h0OiBzdHJpbmcgfCBcIjEwMCVcIjtcbiAgd2lkdGg6IHN0cmluZyB8IFwiMTAwJVwiO1xuICBkYXRhQ29udGFpbmVyTWF4SGVpZ2h0OiBzdHJpbmcgfCBcIjQwMHB4XCI7XG4gIHNob3dIZWFkZXI/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICByb3dDb25maWc6IFN1YlRhYmxlUm93Q29uZmlnIHwgdW5kZWZpbmVkIHwgbnVsbDtcbiAgY29sSGVhZGVyQ29uZmlnPzogQXJyYXk8U3ViVGFibGVDb2xIZWFkZXJDb25maWc+O1xuICBjb2xDb25maWc6IEFycmF5PFN1YlRhYmxlQ29sQ29uZmlnPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJUYWJsZVJvd0NvbmZpZyB7XG4gIGhlaWdodD86IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw7XG4gIHN0eWxlPzoge307XG59XG5leHBvcnQgaW50ZXJmYWNlIFN1YlRhYmxlQ29sSGVhZGVyQ29uZmlnIHtcbiAgdHlwZTogXCJ0ZXh0XCIgfCBcIm51bWJlclwiIHwgXCJjdXN0b21cIjtcbiAgZGF0YTogYW55O1xuICBjb21wb25lbnRSZWY/OiBhbnk7XG4gIHN0eWxlPzoge307XG4gIGFjdGlvbj86IGFueTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU3ViVGFibGVDb2xDb25maWcge1xuICB0eXBlOiBcInRleHRcIiB8IFwibnVtYmVyXCIgfCBcImN1c3RvbVwiO1xuICBjb21wb25lbnRSZWY/OiBhbnk7XG4gIHN0eWxlPzoge307XG4gIGFjdGlvbj86IGFueTtcbn1cbiIsIjxkaXZcbiAgaWQ9XCJtYWluLWNvbnRhaW5lclwiXG4gIFtuZ1N0eWxlXT1cIntcbiAgICBoZWlnaHQ6IGdldENvbnRhaW5lckhlaWdodCgpLFxuICAgIHdpZHRoOiBnZXRDb250YWluZXJXaWR0aCgpXG4gIH1cIlxuPlxuICA8ZGl2IGlkPVwidGFibGUtY29udGFpbmVyXCIgI3RhYmxlPlxuICAgIDxkaXZcbiAgICAgIGlkPVwiY29sLWhlYWRlcnMtY29udGFpbmVyXCJcbiAgICAgICpuZ0lmPVwiISFjb25maWcuc2hvd0hlYWRlclwiXG4gICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgIGhlaWdodDogZ2V0Q29sSGVhZGVyc1Jvd0hlaWdodCgpLFxuICAgICAgICAnYm9yZGVyLXRvcCc6IGdldENvbEhlYWRlcnNSb3dCb3JkZXJUb3AoKSxcbiAgICAgICAgJ2JvcmRlci1ib3R0b20nOiBnZXRDb2xIZWFkZXJzUm93Qm9yZGVyQm90dG9tKClcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjb2wtaGVhZGVyXCJcbiAgICAgICAgKGNsaWNrKT1cImNvbEhlYWRlcj8uYWN0aW9uID8gY29sSGVhZGVyPy5hY3Rpb24oY29sSGVhZGVyKSA6IG51bGxcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgY29sSGVhZGVyIG9mIGNvbmZpZz8uY29sSGVhZGVyQ29uZmlnXCJcbiAgICAgICAgW3N0eWxlXT1cImNvbEhlYWRlcj8uc3R5bGVcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgd2lkdGg6IGNvbEhlYWRlcj8uc3R5bGU/LndpZHRoIHx8ICcnLFxuICAgICAgICAgIGN1cnNvcjogY29sSGVhZGVyLmFjdGlvbiA/ICdwb2ludGVyJyA6ICdkZWZhdWx0JyxcbiAgICAgICAgICAnanVzdGlmeS1jb250ZW50JzogY29sSGVhZGVyPy5zdHlsZT8uanVzdGlmeUNvbnRlbnRcbiAgICAgICAgICAgID8gY29sSGVhZGVyPy5zdHlsZT8uanVzdGlmeUNvbnRlbnRcbiAgICAgICAgICAgIDogY29sSGVhZGVyLnR5cGUgPT09ICdudW1iZXInXG4gICAgICAgICAgICA/ICdmbGV4LWVuZCdcbiAgICAgICAgICAgIDogJ3NwYWNlLWJldHdlZW4nXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICA8cCAqbmdJZj1cImNvbEhlYWRlcj8udHlwZSAhPT0gJ2N1c3RvbSdcIiBjbGFzcz1cImNvbC1oZWFkZXItdGV4dFwiPlxuICAgICAgICAgIHt7IGNvbEhlYWRlcj8uZGF0YSB8fCBcIiBcIiB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICpuZ0lmPVwiY29sSGVhZGVyPy50eXBlID09PSAnY3VzdG9tJ1wiXG4gICAgICAgICAgY3VzdG9tVGFibGVDZWxsXG4gICAgICAgICAgW2N1c3RvbUNvbXBvbmVudF09XCJjb2xIZWFkZXI/LmNvbXBvbmVudFJlZlwiXG4gICAgICAgICAgW2RhdGFdPVwiY29sSGVhZGVyLmRhdGFcIlxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XG4gICAgICAgIFttaW5CdWZmZXJQeF09XCJjb25maWcuZGF0YUNvbnRhaW5lck1heEhlaWdodCB8fCAnNDAwJ1wiXG4gICAgICAgIFttYXhCdWZmZXJQeF09XCJjb25maWcuZGF0YUNvbnRhaW5lck1heEhlaWdodCArIDIwMCB8fCAnNjAwJ1wiXG4gICAgICAgIFtzdHlsZS5vdmVyZmxvd109XCInb3ZlcmxheSdcIlxuICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cImNvbmZpZy5kYXRhQ29udGFpbmVyTWF4SGVpZ2h0IHx8ICc0MDBweCdcIlxuICAgICAgICBpdGVtU2l6ZT1cIjUwXCJcbiAgICAgICAgaWQ9XCJkYXRhLWNvbnRhaW5lclwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInJvdy13cmFwcGVyXCJcbiAgICAgICAgICAqY2RrVmlydHVhbEZvcj1cImxldCByb3cgb2YgdGFibGVEYXRhOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGkgJSAyID09PSAwID8gJyNGQUZBRkEnIDogbnVsbFxuICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInQtcm93XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIChjbGljayk9XCJjb25maWc/LmNvbENvbmZpZ1tpXT8uYWN0aW9uID8gY29uZmlnPy5jb2xDb25maWdbaV0/LmFjdGlvbihjb2wpIDogbnVsbFwiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2wgb2Ygcm93OyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgIHdpZHRoOiBjb25maWc/LmNvbENvbmZpZ1tpXT8uc3R5bGU/LndpZHRoIHx8IGNvbmZpZz8uY29sSGVhZGVyQ29uZmlnW2ldPy5zdHlsZT8ud2lkdGggfHwgJydcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidC1jb2wtY29udGFpbmVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1jb2xcIlxuICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb25maWcuY29sQ29uZmlnW2ldPy5zdHlsZVwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgIGN1cnNvcjogY29uZmlnLmNvbENvbmZpZ1tpXS5hY3Rpb24gPyAncG9pbnRlcicgOiAnZGVmYXVsdCcsXG4gICAgICAgICAgICAgICAgICAnanVzdGlmeS1jb250ZW50JzogY29uZmlnLmNvbENvbmZpZ1tpXT8uc3R5bGU/Lmp1c3RpZnlDb250ZW50XG4gICAgICAgICAgICAgICAgICAgID8gY29uZmlnLmNvbENvbmZpZ1tpXT8uc3R5bGU/Lmp1c3RpZnlDb250ZW50XG4gICAgICAgICAgICAgICAgICAgIDogY29uZmlnLmNvbENvbmZpZ1tpXS50eXBlID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgICAgICA/ICdmbGV4LWVuZCdcbiAgICAgICAgICAgICAgICAgICAgOiAnc3BhY2UtYmV0d2VlbidcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZy5jb2xDb25maWdbaV0udHlwZSAhPT0gJ2N1c3RvbSdcIlxuICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogY29uZmlnPy5jb2xDb25maWdbaV0/LnN0eWxlPy5jb2xvciA/IGNvbmZpZz8uY29sQ29uZmlnW2ldPy5zdHlsZT8uY29sb3IgOiAnJ1xuICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInQtY29sLXRleHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGNvbCB9fVxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnLmNvbENvbmZpZ1tpXS50eXBlID09PSAnY3VzdG9tJ1wiXG4gICAgICAgICAgICAgICAgICBbY3VzdG9tQ29tcG9uZW50XT1cImNvbmZpZy5jb2xDb25maWdbaV0uY29tcG9uZW50UmVmXCJcbiAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImNvbFwiXG4gICAgICAgICAgICAgICAgICBjdXN0b21UYWJsZUNlbGxcbiAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RhYmxlL3N1Yi10YWJsZS9zdWItdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvc3ViLXRhYmxlL3N1Yi10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBaUMsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7O0lDZ0MxRyw2QkFBZ0U7SUFDOUQsWUFDRjtJQUFBLGlCQUFJOzs7SUFERixjQUNGO0lBREUseUZBQ0Y7Ozs7SUFDQSxpR0FLQzs7O0lBREMsQUFEQSx5RkFBMkMsMkJBQ3BCOzs7O0lBdEIzQiw4QkFjQztJQVpDLG9TQUE0RCxJQUFJLEtBQUM7SUFnQmpFLEFBSEEsMEVBQWdFLDZEQVEvRDtJQUNILGlCQUFNOzs7SUFwQkosK0RBQTBCO0lBQzFCLGtkQVFFO0lBRUUsY0FBa0M7SUFBbEMscUZBQWtDO0lBSW5DLGNBQWtDO0lBQWxDLHFGQUFrQzs7O0lBNUJ6Qyw4QkFRQztJQUNDLHdFQWNDO0lBV0gsaUJBQU07Ozs7SUEvQkosZ0tBSUU7SUFLc0IsY0FBNEI7SUFBNUIsOEZBQTRCOzs7SUE2RDFDLDZCQU1DO0lBQ0MsWUFDRjtJQUFBLGlCQUFJOzs7Ozs7O0lBTkYsZ1pBRUU7SUFHRixjQUNGO0lBREUsdUNBQ0Y7Ozs7SUFDQSxpR0FLQzs7Ozs7O0lBRkMsQUFEQSw4RUFBc0QsZ0JBQzFDOzs7O0lBakNsQiwrQkFPQztJQU5DLHFSQUFTLGVBQVEseUdBQXlCLGVBQVEscUdBQThCLElBQUksS0FBQztJQU9yRiwrQkFZQztJQVVDLEFBVEEsMkVBTUMsNkRBUUE7SUFFTCxBQURFLGlCQUFNLEVB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O1lBcUMxQixlQUE0QjtZQUM1QixBQURBLHFDQUE0QiwwREFDK0I7WUFGM0QsQUFEQSwwRUFBd0QsbUVBQ007WUFRcEMsY0FBYztZQUFkLCtDQUFjOzs7aUZEL0NuQyxpQkFBaUI7Y0FMN0IsU0FBUzsyQkFDRSxXQUFXOzBDQVVELEtBQUs7a0JBQXhCLFNBQVM7bUJBQUMsT0FBTzs7a0ZBTlAsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIFJlbmRlcmVyMiwgVmlld0NoaWxkLCBpbnB1dCwgc2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN1Yi10YWJsZVwiLFxuICB0ZW1wbGF0ZVVybDogXCJzdWItdGFibGUuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCJzdWItdGFibGUuY29tcG9uZW50LmNzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBTdWJUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHNlbGVjdGVkUGFnZSA9IHNpZ25hbDxudW1iZXI+KDEpO1xuICBwYWdlcyA9IHNpZ25hbDxBcnJheTxudW1iZXI+PihbXSk7XG5cbiAgY29uZmlnID0gaW5wdXQ8U3ViVGFibGVDb25maWcgfCBhbnk+KCk7XG4gIHRhYmxlRGF0YSA9IGlucHV0PEFycmF5PEFycmF5PGFueT4+PihbXSk7XG4gIEBWaWV3Q2hpbGQoXCJ0YWJsZVwiKSB0YWJsZTogRWxlbWVudFJlZiB8IGFueTtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgbGV0IGhlaWdodCA9IHRoaXMudGFibGUubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRhYmxlLm5hdGl2ZUVsZW1lbnQsIFwiaGVpZ2h0XCIsIGhlaWdodCAtIDU2ICsgXCJweFwiKTtcbiAgfVxuXG4gIC8vIE1haW4gY29udGFpbmVyIHJlbGF0ZWQgZnVuY3Rpb25zXG4gIGdldENvbnRhaW5lckhlaWdodCgpIHtcbiAgICBpZiAodGhpcy5jb25maWcoKS5oZWlnaHQpIHJldHVybiB0aGlzLmNvbmZpZygpLmhlaWdodDtcbiAgICBlbHNlIHJldHVybiBcIlwiO1xuICB9XG4gIGdldENvbnRhaW5lcldpZHRoKCkge1xuICAgIGlmICh0aGlzLmNvbmZpZygpLndpZHRoKSByZXR1cm4gdGhpcy5jb25maWcoKS53aWR0aDtcbiAgICBlbHNlIHJldHVybiBcIlwiO1xuICB9XG5cbiAgLy8gQ29sdW1uIEhlYWRlcnMgcmVsYXRlZCBmdW5jdGlvbnNcbiAgZ2V0Q29sSGVhZGVyc1Jvd0hlaWdodCgpIHtcbiAgICBpZiAodGhpcy5jb25maWcoKS5jb2xIZWFkZXJzUm93Q29uZmlnICYmIHRoaXMuY29uZmlnKCkuY29sSGVhZGVyc1Jvd0NvbmZpZy5oZWlnaHQpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZygpLmNvbEhlYWRlcnNSb3dDb25maWcuaGVpZ2h0O1xuICAgIH1cbiAgICByZXR1cm4gXCI0NHB4XCI7XG4gIH1cbiAgZ2V0Q29sSGVhZGVyc1Jvd0JvcmRlclRvcCgpIHtcbiAgICBpZiAodGhpcy5jb25maWcoKS5jb2xIZWFkZXJzUm93Q29uZmlnICYmIHRoaXMuY29uZmlnKCkuY29sSGVhZGVyc1Jvd0NvbmZpZy5zdHlsZT8uYm9yZGVyVG9wKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb25maWcoKS5jb2xIZWFkZXJzUm93Q29uZmlnLnN0eWxlPy5ib3JkZXJUb3A7XG4gICAgfVxuICAgIHJldHVybiBcIlwiO1xuICB9XG4gIGdldENvbEhlYWRlcnNSb3dCb3JkZXJCb3R0b20oKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnKCkuY29sSGVhZGVyc1Jvd0NvbmZpZyAmJiB0aGlzLmNvbmZpZygpLmNvbEhlYWRlcnNSb3dDb25maWcuc3R5bGU/LmJvcmRlckJvdHRvbSkge1xuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnKCkuY29sSGVhZGVyc1Jvd0NvbmZpZy5zdHlsZT8uYm9yZGVyQm90dG9tO1xuICAgIH1cbiAgICByZXR1cm4gXCIxcHggc29saWQgI0UwRTBFMFwiO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3ViVGFibGVDb25maWcge1xuICBoZWlnaHQ6IHN0cmluZyB8IFwiMTAwJVwiO1xuICB3aWR0aDogc3RyaW5nIHwgXCIxMDAlXCI7XG4gIGRhdGFDb250YWluZXJNYXhIZWlnaHQ6IHN0cmluZyB8IFwiNDAwcHhcIjtcbiAgc2hvd0hlYWRlcj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHJvd0NvbmZpZzogU3ViVGFibGVSb3dDb25maWcgfCB1bmRlZmluZWQgfCBudWxsO1xuICBjb2xIZWFkZXJDb25maWc/OiBBcnJheTxTdWJUYWJsZUNvbEhlYWRlckNvbmZpZz47XG4gIGNvbENvbmZpZzogQXJyYXk8U3ViVGFibGVDb2xDb25maWc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1YlRhYmxlUm93Q29uZmlnIHtcbiAgaGVpZ2h0Pzogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbDtcbiAgc3R5bGU/OiB7fTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU3ViVGFibGVDb2xIZWFkZXJDb25maWcge1xuICB0eXBlOiBcInRleHRcIiB8IFwibnVtYmVyXCIgfCBcImN1c3RvbVwiO1xuICBkYXRhOiBhbnk7XG4gIGNvbXBvbmVudFJlZj86IGFueTtcbiAgc3R5bGU/OiB7fTtcbiAgYWN0aW9uPzogYW55O1xufVxuZXhwb3J0IGludGVyZmFjZSBTdWJUYWJsZUNvbENvbmZpZyB7XG4gIHR5cGU6IFwidGV4dFwiIHwgXCJudW1iZXJcIiB8IFwiY3VzdG9tXCI7XG4gIGNvbXBvbmVudFJlZj86IGFueTtcbiAgc3R5bGU/OiB7fTtcbiAgYWN0aW9uPzogYW55O1xufVxuIiwiPGRpdlxuICBpZD1cIm1haW4tY29udGFpbmVyXCJcbiAgW25nU3R5bGVdPVwie1xuICAgIGhlaWdodDogZ2V0Q29udGFpbmVySGVpZ2h0KCksXG4gICAgd2lkdGg6IGdldENvbnRhaW5lcldpZHRoKClcbiAgfVwiXG4+XG4gIDxkaXYgaWQ9XCJ0YWJsZS1jb250YWluZXJcIiAjdGFibGU+XG4gICAgPGRpdlxuICAgICAgaWQ9XCJjb2wtaGVhZGVycy1jb250YWluZXJcIlxuICAgICAgKm5nSWY9XCIhIWNvbmZpZygpLnNob3dIZWFkZXJcIlxuICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICBoZWlnaHQ6IGdldENvbEhlYWRlcnNSb3dIZWlnaHQoKSxcbiAgICAgICAgJ2JvcmRlci10b3AnOiBnZXRDb2xIZWFkZXJzUm93Qm9yZGVyVG9wKCksXG4gICAgICAgICdib3JkZXItYm90dG9tJzogZ2V0Q29sSGVhZGVyc1Jvd0JvcmRlckJvdHRvbSgpXG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY29sLWhlYWRlclwiXG4gICAgICAgIChjbGljayk9XCJjb2xIZWFkZXI/LmFjdGlvbiA/IGNvbEhlYWRlcj8uYWN0aW9uKGNvbEhlYWRlcikgOiBudWxsXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGNvbEhlYWRlciBvZiBjb25maWcoKT8uY29sSGVhZGVyQ29uZmlnXCJcbiAgICAgICAgW3N0eWxlXT1cImNvbEhlYWRlcj8uc3R5bGVcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgd2lkdGg6IGNvbEhlYWRlcj8uc3R5bGU/LndpZHRoIHx8ICcnLFxuICAgICAgICAgIGN1cnNvcjogY29sSGVhZGVyLmFjdGlvbiA/ICdwb2ludGVyJyA6ICdkZWZhdWx0JyxcbiAgICAgICAgICAnanVzdGlmeS1jb250ZW50JzogY29sSGVhZGVyPy5zdHlsZT8uanVzdGlmeUNvbnRlbnRcbiAgICAgICAgICAgID8gY29sSGVhZGVyPy5zdHlsZT8uanVzdGlmeUNvbnRlbnRcbiAgICAgICAgICAgIDogY29sSGVhZGVyLnR5cGUgPT09ICdudW1iZXInXG4gICAgICAgICAgICA/ICdmbGV4LWVuZCdcbiAgICAgICAgICAgIDogJ3NwYWNlLWJldHdlZW4nXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICA8cCAqbmdJZj1cImNvbEhlYWRlcj8udHlwZSAhPT0gJ2N1c3RvbSdcIiBjbGFzcz1cImNvbC1oZWFkZXItdGV4dFwiPlxuICAgICAgICAgIHt7IGNvbEhlYWRlcj8uZGF0YSB8fCBcIiBcIiB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICpuZ0lmPVwiY29sSGVhZGVyPy50eXBlID09PSAnY3VzdG9tJ1wiXG4gICAgICAgICAgY3VzdG9tVGFibGVDZWxsXG4gICAgICAgICAgW2N1c3RvbUNvbXBvbmVudF09XCJjb2xIZWFkZXI/LmNvbXBvbmVudFJlZlwiXG4gICAgICAgICAgW2RhdGFdPVwiY29sSGVhZGVyLmRhdGFcIlxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XG4gICAgICAgIFttaW5CdWZmZXJQeF09XCJjb25maWcoKS5kYXRhQ29udGFpbmVyTWF4SGVpZ2h0IHx8ICc0MDAnXCJcbiAgICAgICAgW21heEJ1ZmZlclB4XT1cImNvbmZpZygpLmRhdGFDb250YWluZXJNYXhIZWlnaHQgKyAyMDAgfHwgJzYwMCdcIlxuICAgICAgICBbc3R5bGUub3ZlcmZsb3ddPVwiJ292ZXJsYXknXCJcbiAgICAgICAgW3N0eWxlLmhlaWdodF09XCJjb25maWcoKS5kYXRhQ29udGFpbmVyTWF4SGVpZ2h0IHx8ICc0MDBweCdcIlxuICAgICAgICBpdGVtU2l6ZT1cIjUwXCJcbiAgICAgICAgaWQ9XCJkYXRhLWNvbnRhaW5lclwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInJvdy13cmFwcGVyXCJcbiAgICAgICAgICAqY2RrVmlydHVhbEZvcj1cImxldCByb3cgb2YgdGFibGVEYXRhOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGkgJSAyID09PSAwID8gJyNGQUZBRkEnIDogbnVsbFxuICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInQtcm93XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIChjbGljayk9XCJjb25maWcoKT8uY29sQ29uZmlnW2ldPy5hY3Rpb24gPyBjb25maWcoKT8uY29sQ29uZmlnW2ldPy5hY3Rpb24oY29sKSA6IG51bGxcIlxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sIG9mIHJvdzsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICB3aWR0aDogY29uZmlnKCk/LmNvbENvbmZpZ1tpXT8uc3R5bGU/LndpZHRoIHx8IGNvbmZpZygpPy5jb2xIZWFkZXJDb25maWdbaV0/LnN0eWxlPy53aWR0aCB8fCAnJ1xuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0LWNvbC1jb250YWluZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWNvbFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbmZpZygpLmNvbENvbmZpZ1tpXT8uc3R5bGVcIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICBjdXJzb3I6IGNvbmZpZygpLmNvbENvbmZpZ1tpXS5hY3Rpb24gPyAncG9pbnRlcicgOiAnZGVmYXVsdCcsXG4gICAgICAgICAgICAgICAgICAnanVzdGlmeS1jb250ZW50JzogY29uZmlnKCkuY29sQ29uZmlnW2ldPy5zdHlsZT8uanVzdGlmeUNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgPyBjb25maWcoKS5jb2xDb25maWdbaV0/LnN0eWxlPy5qdXN0aWZ5Q29udGVudFxuICAgICAgICAgICAgICAgICAgICA6IGNvbmZpZygpLmNvbENvbmZpZ1tpXS50eXBlID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgICAgICA/ICdmbGV4LWVuZCdcbiAgICAgICAgICAgICAgICAgICAgOiAnc3BhY2UtYmV0d2VlbidcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZygpLmNvbENvbmZpZ1tpXS50eXBlICE9PSAnY3VzdG9tJ1wiXG4gICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBjb25maWcoKT8uY29sQ29uZmlnW2ldPy5zdHlsZT8uY29sb3IgPyBjb25maWcoKT8uY29sQ29uZmlnW2ldPy5zdHlsZT8uY29sb3IgOiAnJ1xuICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInQtY29sLXRleHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGNvbCB9fVxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnKCkuY29sQ29uZmlnW2ldLnR5cGUgPT09ICdjdXN0b20nXCJcbiAgICAgICAgICAgICAgICAgIFtjdXN0b21Db21wb25lbnRdPVwiY29uZmlnKCkuY29sQ29uZmlnW2ldLmNvbXBvbmVudFJlZlwiXG4gICAgICAgICAgICAgICAgICBbZGF0YV09XCJjb2xcIlxuICAgICAgICAgICAgICAgICAgY3VzdG9tVGFibGVDZWxsXG4gICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=