mis-crystal-design-system 18.0.25 → 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 (185) 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/button/button.directive.scss +13 -15
  6. package/checkbox/checkbox.component.d.ts +15 -12
  7. package/chip/chip.component.d.ts +9 -11
  8. package/datepicker_v2/models/dp-config.model.d.ts +1 -0
  9. package/datepicker_v2/tz-datepicker.directive.d.ts +15 -18
  10. package/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +42 -21
  11. package/daterangepicker_v2/tz-daterangepicker.directive.d.ts +12 -14
  12. package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +46 -23
  13. package/drawer/drawer-body/drawer-body.component.d.ts +2 -2
  14. package/drawer/drawer.scss +1 -1
  15. package/dropdown/calculate-container-height.directive.d.ts +7 -8
  16. package/dropdown/dropdown.component.d.ts +41 -49
  17. package/dynamic-form/dynamic-form.component.d.ts +20 -16
  18. package/esm2022/action-list/action-list.component.mjs +113 -90
  19. package/esm2022/async-search-dropdown/async-dropdown.component.mjs +257 -327
  20. package/esm2022/button/button.component.mjs +56 -49
  21. package/esm2022/button/button.directive.mjs +36 -40
  22. package/esm2022/checkbox/checkbox.component.mjs +75 -70
  23. package/esm2022/chip/chip.component.mjs +20 -33
  24. package/esm2022/datepicker_v2/models/dp-config.model.mjs +1 -1
  25. package/esm2022/datepicker_v2/tz-datepicker.directive.mjs +42 -71
  26. package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +203 -173
  27. package/esm2022/datepicker_v2/utils/index.mjs +2 -1
  28. package/esm2022/daterangepicker_v2/tz-daterangepicker.directive.mjs +26 -51
  29. package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +283 -236
  30. package/esm2022/drawer/drawer-body/drawer-body.component.mjs +8 -7
  31. package/esm2022/dropdown/calculate-container-height.directive.mjs +25 -22
  32. package/esm2022/dropdown/dropdown.component.mjs +163 -187
  33. package/esm2022/dynamic-form/dynamic-form.component.mjs +119 -73
  34. package/esm2022/fab/fab.component.mjs +30 -34
  35. package/esm2022/filter/filter-panel/filter-panel.component.mjs +61 -59
  36. package/esm2022/input/directives/input/input.directive.mjs +22 -26
  37. package/esm2022/input/mis-input.component.mjs +42 -46
  38. package/esm2022/input-stepper/input-stepper/input-stepper.component.mjs +42 -52
  39. package/esm2022/loader/loader.component.mjs +8 -11
  40. package/esm2022/mobile-filter/mobile-filter.component.mjs +62 -62
  41. package/esm2022/modal/module-wrapper/module-wrapper.component.mjs +11 -9
  42. package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +235 -281
  43. package/esm2022/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +250 -287
  44. package/esm2022/phone-input/phone-input.component.mjs +21 -43
  45. package/esm2022/public-api.mjs +1 -1
  46. package/esm2022/radio-button/radio-button.component.mjs +15 -27
  47. package/esm2022/ske-loader/ske-loader.component.mjs +15 -29
  48. package/esm2022/slider/slider.component.mjs +23 -33
  49. package/esm2022/slider/slider.module.mjs +4 -11
  50. package/esm2022/snackbar/snackbar/snackbar.component.mjs +21 -15
  51. package/esm2022/snackbar/snackbar.service.mjs +3 -2
  52. package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +231 -344
  53. package/esm2022/specificdatepicker/tz-specificdatepicker.directive.mjs +77 -105
  54. package/esm2022/star-rating/star-rating.component.mjs +58 -72
  55. package/esm2022/switch/switch.component.mjs +34 -36
  56. package/esm2022/table/actions-cell/actions-cell.component.mjs +56 -55
  57. package/esm2022/table/custom-table-cell.directive.mjs +22 -18
  58. package/esm2022/table/filter/filter.component.mjs +60 -42
  59. package/esm2022/table/sort-icons.directive.mjs +16 -8
  60. package/esm2022/table/sub-table/sub-table.component.mjs +42 -45
  61. package/esm2022/table/table.component.mjs +182 -166
  62. package/esm2022/timepicker/timepicker.component.mjs +245 -160
  63. package/esm2022/timepicker/timepicker.directive.mjs +3 -2
  64. package/esm2022/timerangepicker/timerangepicker.component.mjs +200 -159
  65. package/esm2022/toast/toast.component.mjs +7 -8
  66. package/esm2022/toast/toast.data.service.mjs +15 -9
  67. package/esm2022/tooltip/tooltip-container/tooltip.component.mjs +12 -12
  68. package/esm2022/tooltip/tooltip.directive.mjs +4 -4
  69. package/esm2022/virtual-scroll/virtual-scroll.component.mjs +57 -59
  70. package/fab/fab.component.d.ts +12 -8
  71. package/fesm2022/mis-crystal-design-system-action-list.mjs +112 -89
  72. package/fesm2022/mis-crystal-design-system-action-list.mjs.map +1 -1
  73. package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs +254 -325
  74. package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
  75. package/fesm2022/mis-crystal-design-system-button.mjs +89 -86
  76. package/fesm2022/mis-crystal-design-system-button.mjs.map +1 -1
  77. package/fesm2022/mis-crystal-design-system-checkbox.mjs +74 -69
  78. package/fesm2022/mis-crystal-design-system-checkbox.mjs.map +1 -1
  79. package/fesm2022/mis-crystal-design-system-chip.mjs +19 -32
  80. package/fesm2022/mis-crystal-design-system-chip.mjs.map +1 -1
  81. package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs +243 -241
  82. package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
  83. package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +306 -284
  84. package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
  85. package/fesm2022/mis-crystal-design-system-drawer.mjs +7 -6
  86. package/fesm2022/mis-crystal-design-system-drawer.mjs.map +1 -1
  87. package/fesm2022/mis-crystal-design-system-dropdown.mjs +184 -205
  88. package/fesm2022/mis-crystal-design-system-dropdown.mjs.map +1 -1
  89. package/fesm2022/mis-crystal-design-system-dynamic-form.mjs +119 -73
  90. package/fesm2022/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
  91. package/fesm2022/mis-crystal-design-system-fab.mjs +29 -33
  92. package/fesm2022/mis-crystal-design-system-fab.mjs.map +1 -1
  93. package/fesm2022/mis-crystal-design-system-filter.mjs +60 -58
  94. package/fesm2022/mis-crystal-design-system-filter.mjs.map +1 -1
  95. package/fesm2022/mis-crystal-design-system-input-stepper.mjs +41 -51
  96. package/fesm2022/mis-crystal-design-system-input-stepper.mjs.map +1 -1
  97. package/fesm2022/mis-crystal-design-system-input.mjs +62 -71
  98. package/fesm2022/mis-crystal-design-system-input.mjs.map +1 -1
  99. package/fesm2022/mis-crystal-design-system-loader.mjs +7 -10
  100. package/fesm2022/mis-crystal-design-system-loader.mjs.map +1 -1
  101. package/fesm2022/mis-crystal-design-system-mobile-filter.mjs +61 -61
  102. package/fesm2022/mis-crystal-design-system-mobile-filter.mjs.map +1 -1
  103. package/fesm2022/mis-crystal-design-system-modal.mjs +10 -8
  104. package/fesm2022/mis-crystal-design-system-modal.mjs.map +1 -1
  105. package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs +233 -279
  106. package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
  107. package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs +249 -286
  108. package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -1
  109. package/fesm2022/mis-crystal-design-system-phone-input.mjs +20 -42
  110. package/fesm2022/mis-crystal-design-system-phone-input.mjs.map +1 -1
  111. package/fesm2022/mis-crystal-design-system-radio-button.mjs +14 -26
  112. package/fesm2022/mis-crystal-design-system-radio-button.mjs.map +1 -1
  113. package/fesm2022/mis-crystal-design-system-ske-loader.mjs +14 -28
  114. package/fesm2022/mis-crystal-design-system-ske-loader.mjs.map +1 -1
  115. package/fesm2022/mis-crystal-design-system-slider.mjs +25 -42
  116. package/fesm2022/mis-crystal-design-system-slider.mjs.map +1 -1
  117. package/fesm2022/mis-crystal-design-system-snackbar.mjs +22 -15
  118. package/fesm2022/mis-crystal-design-system-snackbar.mjs.map +1 -1
  119. package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +305 -446
  120. package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
  121. package/fesm2022/mis-crystal-design-system-star-rating.mjs +57 -71
  122. package/fesm2022/mis-crystal-design-system-star-rating.mjs.map +1 -1
  123. package/fesm2022/mis-crystal-design-system-switch.mjs +33 -35
  124. package/fesm2022/mis-crystal-design-system-switch.mjs.map +1 -1
  125. package/fesm2022/mis-crystal-design-system-table.mjs +368 -324
  126. package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
  127. package/fesm2022/mis-crystal-design-system-timepicker.mjs +246 -160
  128. package/fesm2022/mis-crystal-design-system-timepicker.mjs.map +1 -1
  129. package/fesm2022/mis-crystal-design-system-timerangepicker.mjs +199 -158
  130. package/fesm2022/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
  131. package/fesm2022/mis-crystal-design-system-toast.mjs +19 -14
  132. package/fesm2022/mis-crystal-design-system-toast.mjs.map +1 -1
  133. package/fesm2022/mis-crystal-design-system-tooltip.mjs +14 -14
  134. package/fesm2022/mis-crystal-design-system-tooltip.mjs.map +1 -1
  135. package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs +57 -59
  136. package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs.map +1 -1
  137. package/fesm2022/mis-crystal-design-system.mjs.map +1 -1
  138. package/filter/filter-panel/filter-panel.component.d.ts +14 -14
  139. package/input/directives/input/input.directive.d.ts +6 -10
  140. package/input/mis-input.component.d.ts +12 -13
  141. package/input/mis-input.component.scss +18 -18
  142. package/input-stepper/input-stepper/input-stepper.component.d.ts +8 -7
  143. package/loader/loader.component.d.ts +3 -6
  144. package/mobile-filter/mobile-filter.component.d.ts +15 -15
  145. package/modal/modal.scss +1 -1
  146. package/modal/module-wrapper/module-wrapper.component.d.ts +2 -3
  147. package/multi-select-dropdown/multi-select-dropdown.component.d.ts +89 -51
  148. package/nested-multi-select-dropdown/nested-multi-select-dropdown.component.d.ts +99 -56
  149. package/package.json +17 -23
  150. package/phone-input/phone-input.component.d.ts +16 -18
  151. package/radio-button/radio-button.component.d.ts +9 -11
  152. package/ske-loader/ske-loader.component.d.ts +8 -11
  153. package/slider/slider.component.d.ts +8 -11
  154. package/slider/slider.module.d.ts +1 -2
  155. package/snackbar/snackbar/snackbar.component.d.ts +3 -3
  156. package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +35 -35
  157. package/specificdatepicker/tz-specificdatepicker.directive.d.ts +24 -28
  158. package/star-rating/star-rating.component.d.ts +18 -18
  159. package/styles/mis-color-constants.scss +0 -204
  160. package/styles/mis-icons.scss +56 -56
  161. package/styles/mis-old-icon-styles.scss +21 -21
  162. package/switch/switch.component.d.ts +8 -10
  163. package/table/actions-cell/actions-cell.component.d.ts +14 -14
  164. package/table/custom-table-cell.directive.d.ts +3 -3
  165. package/table/filter/filter.component.d.ts +9 -9
  166. package/table/sub-table/sub-table.component.d.ts +5 -5
  167. package/table/table.component.d.ts +38 -35
  168. package/timepicker/timepicker.component.d.ts +29 -28
  169. package/timerangepicker/timerangepicker.component.d.ts +36 -33
  170. package/toast/toast.data.service.d.ts +1 -1
  171. package/tooltip/tooltip-container/tooltip.component.d.ts +4 -4
  172. package/virtual-scroll/virtual-scroll.component.d.ts +8 -9
  173. package/dynamic-theme/branding.types.d.ts +0 -84
  174. package/dynamic-theme/dynamic-theme.module.d.ts +0 -9
  175. package/dynamic-theme/dynamic-theme.service.d.ts +0 -89
  176. package/dynamic-theme/index.d.ts +0 -1
  177. package/dynamic-theme/public_api.d.ts +0 -3
  178. package/esm2022/dynamic-theme/branding.types.mjs +0 -93
  179. package/esm2022/dynamic-theme/dynamic-theme.module.mjs +0 -25
  180. package/esm2022/dynamic-theme/dynamic-theme.service.mjs +0 -193
  181. package/esm2022/dynamic-theme/index.mjs +0 -2
  182. package/esm2022/dynamic-theme/mis-crystal-design-system-dynamic-theme.mjs +0 -5
  183. package/esm2022/dynamic-theme/public_api.mjs +0 -4
  184. package/fesm2022/mis-crystal-design-system-dynamic-theme.mjs +0 -313
  185. package/fesm2022/mis-crystal-design-system-dynamic-theme.mjs.map +0 -1
@@ -1,56 +1,54 @@
1
- import { Component, Input, Output, EventEmitter } from "@angular/core";
1
+ import { Component, EventEmitter, Output, input, effect } from "@angular/core";
2
2
  import { UntypedFormControl } from "@angular/forms";
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@angular/forms";
6
- const _c0 = a0 => ({ "toggle-switch-mobile": a0 });
7
- const _c1 = a0 => ({ "cursor": a0 });
4
+ import * as i1 from "@angular/forms";
8
5
  export class SwitchComponent {
9
- set checked(value) {
10
- this.control.setValue(value);
11
- }
12
- set disabled(value) {
13
- if (value)
14
- this.control.disable();
15
- else
16
- this.control.enable();
17
- }
18
6
  constructor() {
19
- this.mobileView = false;
20
- this.control = new UntypedFormControl(false);
21
- /** Emits value when toggled */
7
+ this.mobileView = input(false);
8
+ this.checked = input(false);
9
+ this.disabled = input(false);
10
+ this.control = input(new UntypedFormControl(false));
22
11
  this.valueChanged = new EventEmitter();
12
+ // keep control in sync with checked
13
+ effect(() => {
14
+ const ctrl = this.control();
15
+ const val = !!this.checked();
16
+ if (val) {
17
+ ctrl.setValue(val, { emitEvent: false });
18
+ }
19
+ });
20
+ // keep control in sync with disabled
21
+ effect(() => {
22
+ const ctrl = this.control();
23
+ const dis = !!this.disabled();
24
+ if (dis || ctrl.disabled)
25
+ ctrl.disable({ emitEvent: false });
26
+ else
27
+ ctrl.enable({ emitEvent: false });
28
+ });
23
29
  }
24
- ngOnInit() { }
25
- onChange(event) {
26
- this.valueChanged.emit(this.control.value);
30
+ onChange() {
31
+ this.valueChanged.emit(this.control().value);
27
32
  }
28
33
  static { this.ɵfac = function SwitchComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SwitchComponent)(); }; }
29
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SwitchComponent, selectors: [["mis-switch"]], inputs: { mobileView: "mobileView", checked: "checked", disabled: "disabled", control: "control" }, outputs: { valueChanged: "valueChanged" }, decls: 3, vars: 7, consts: [[1, "toggle-switch", 3, "ngClass", "ngStyle"], ["type", "checkbox", 3, "change", "formControl"], [1, "slider"]], template: function SwitchComponent_Template(rf, ctx) { if (rf & 1) {
34
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SwitchComponent, selectors: [["mis-switch"]], inputs: { mobileView: [1, "mobileView"], checked: [1, "checked"], disabled: [1, "disabled"], control: [1, "control"] }, outputs: { valueChanged: "valueChanged" }, decls: 3, vars: 5, consts: [[1, "toggle-switch"], ["type", "checkbox", 3, "change", "formControl"], [1, "slider"]], template: function SwitchComponent_Template(rf, ctx) { if (rf & 1) {
30
35
  i0.ɵɵelementStart(0, "label", 0)(1, "input", 1);
31
- i0.ɵɵlistener("change", function SwitchComponent_Template_input_change_1_listener($event) { return ctx.onChange($event); });
36
+ i0.ɵɵlistener("change", function SwitchComponent_Template_input_change_1_listener() { return ctx.onChange(); });
32
37
  i0.ɵɵelementEnd();
33
38
  i0.ɵɵelement(2, "span", 2);
34
39
  i0.ɵɵelementEnd();
35
40
  } if (rf & 2) {
36
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c0, ctx.mobileView))("ngStyle", i0.ɵɵpureFunction1(5, _c1, ctx.control.disabled ? "not-allowed" : "pointer"));
41
+ i0.ɵɵstyleProp("cursor", ctx.disabled() || ctx.control().disabled ? "not-allowed" : "pointer");
42
+ i0.ɵɵclassProp("toggle-switch-mobile", ctx.mobileView());
37
43
  i0.ɵɵadvance();
38
- i0.ɵɵproperty("formControl", ctx.control);
39
- } }, dependencies: [i1.NgClass, i1.NgStyle, i2.CheckboxControlValueAccessor, i2.NgControlStatus, i2.FormControlDirective], styles: ["[_ngcontent-%COMP%]:root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}.toggle-switch[_ngcontent-%COMP%]{height:28px;width:51px;display:inline-block;position:relative}.toggle-switch[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{display:none}.toggle-switch[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + .slider[_ngcontent-%COMP%]{background-color:var(--brand-primary, #0937B2)}.toggle-switch[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + .slider[_ngcontent-%COMP%]:after{-webkit-transform:translateX(23px);-ms-transform:translateX(23px);transform:translate(23px)}.toggle-switch[_ngcontent-%COMP%] .slider[_ngcontent-%COMP%]{position:absolute;inset:0;background-color:var(--border-primary, #E0E0E0);transition:.25s;border-radius:14px}.toggle-switch[_ngcontent-%COMP%] .slider[_ngcontent-%COMP%]:after{position:absolute;content:\"\";height:24px;width:24px;background-color:var(--bg-primary, #FFFFFF);border-radius:12px;left:2px;bottom:2px;transition:.25s}.toggle-switch-mobile[_ngcontent-%COMP%]{height:14px;width:34px;display:inline-block;position:relative}.toggle-switch-mobile[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{display:none}.toggle-switch-mobile[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + .slider[_ngcontent-%COMP%]{background-color:var(--border-primary, #E0E0E0)}.toggle-switch-mobile[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:disabled + .slider[_ngcontent-%COMP%]{background-color:var(--bg-tertiary, #F5F5F5)!important}.toggle-switch-mobile[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + .slider[_ngcontent-%COMP%]:after{background-color:var(--brand-primary, #0937B2);-webkit-transform:translateX(34px);-ms-transform:translateX(34px);transform:translate(34px)}.toggle-switch-mobile[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked:disabled + .slider[_ngcontent-%COMP%]:after{background-color:var(--text-tertiary, #929DAB)}.toggle-switch-mobile[_ngcontent-%COMP%] .slider[_ngcontent-%COMP%]{position:absolute;inset:0;background-color:var(--border-primary, #E0E0E0);transition:.25s;border-radius:14px}.toggle-switch-mobile[_ngcontent-%COMP%] .slider[_ngcontent-%COMP%]:after{position:absolute;content:\"\";height:20px;width:20px;background-color:var(--bg-primary, #FFFFFF);box-shadow:0 0 6px -2px var(--text-tertiary, #929DAB);border-radius:12px;top:-3px;left:-10px;transition:.25s}"] }); }
44
+ i0.ɵɵproperty("formControl", ctx.control());
45
+ } }, dependencies: [i1.CheckboxControlValueAccessor, i1.NgControlStatus, i1.FormControlDirective], styles: [".toggle-switch[_ngcontent-%COMP%]{height:28px;width:51px;display:inline-block;position:relative}.toggle-switch[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{display:none}.toggle-switch[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + .slider[_ngcontent-%COMP%]{background-color:#0937b2}.toggle-switch[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + .slider[_ngcontent-%COMP%]:after{-webkit-transform:translateX(23px);-ms-transform:translateX(23px);transform:translate(23px)}.toggle-switch[_ngcontent-%COMP%] .slider[_ngcontent-%COMP%]{position:absolute;inset:0;background-color:#e0e0e0;transition:.25s;border-radius:14px}.toggle-switch[_ngcontent-%COMP%] .slider[_ngcontent-%COMP%]:after{position:absolute;content:\"\";height:24px;width:24px;background-color:#fff;border-radius:12px;left:2px;bottom:2px;transition:.25s}.toggle-switch-mobile[_ngcontent-%COMP%]{height:14px;width:34px;display:inline-block;position:relative}.toggle-switch-mobile[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{display:none}.toggle-switch-mobile[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + .slider[_ngcontent-%COMP%]{background-color:#e0e0e0}.toggle-switch-mobile[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:disabled + .slider[_ngcontent-%COMP%]{background-color:#f5f5f5!important}.toggle-switch-mobile[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + .slider[_ngcontent-%COMP%]:after{background-color:#0937b2;-webkit-transform:translateX(34px);-ms-transform:translateX(34px);transform:translate(34px)}.toggle-switch-mobile[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked:disabled + .slider[_ngcontent-%COMP%]:after{background-color:#929dab}.toggle-switch-mobile[_ngcontent-%COMP%] .slider[_ngcontent-%COMP%]{position:absolute;inset:0;background-color:#e0e0e0;transition:.25s;border-radius:14px}.toggle-switch-mobile[_ngcontent-%COMP%] .slider[_ngcontent-%COMP%]:after{position:absolute;content:\"\";height:20px;width:20px;background-color:#fff;box-shadow:0 0 6px -2px #929dab;border-radius:12px;top:-3px;left:-10px;transition:.25s}"] }); }
40
46
  }
41
47
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SwitchComponent, [{
42
48
  type: Component,
43
- args: [{ selector: "mis-switch", template: "<label class=\"toggle-switch\" [ngClass]=\"{ 'toggle-switch-mobile': mobileView }\" [ngStyle]=\"{'cursor': control.disabled ? 'not-allowed' : 'pointer'}\">\n <input type=\"checkbox\" (change)=\"onChange($event)\" [formControl]=\"control\" />\n <span class=\"slider\"></span>\n</label>\n", styles: [":root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}.toggle-switch{height:28px;width:51px;display:inline-block;position:relative}.toggle-switch input{display:none}.toggle-switch input:checked+.slider{background-color:var(--brand-primary, #0937B2)}.toggle-switch input:checked+.slider:after{-webkit-transform:translateX(23px);-ms-transform:translateX(23px);transform:translate(23px)}.toggle-switch .slider{position:absolute;inset:0;background-color:var(--border-primary, #E0E0E0);transition:.25s;border-radius:14px}.toggle-switch .slider:after{position:absolute;content:\"\";height:24px;width:24px;background-color:var(--bg-primary, #FFFFFF);border-radius:12px;left:2px;bottom:2px;transition:.25s}.toggle-switch-mobile{height:14px;width:34px;display:inline-block;position:relative}.toggle-switch-mobile input{display:none}.toggle-switch-mobile input:checked+.slider{background-color:var(--border-primary, #E0E0E0)}.toggle-switch-mobile input:disabled+.slider{background-color:var(--bg-tertiary, #F5F5F5)!important}.toggle-switch-mobile input:checked+.slider:after{background-color:var(--brand-primary, #0937B2);-webkit-transform:translateX(34px);-ms-transform:translateX(34px);transform:translate(34px)}.toggle-switch-mobile input:checked:disabled+.slider:after{background-color:var(--text-tertiary, #929DAB)}.toggle-switch-mobile .slider{position:absolute;inset:0;background-color:var(--border-primary, #E0E0E0);transition:.25s;border-radius:14px}.toggle-switch-mobile .slider:after{position:absolute;content:\"\";height:20px;width:20px;background-color:var(--bg-primary, #FFFFFF);box-shadow:0 0 6px -2px var(--text-tertiary, #929DAB);border-radius:12px;top:-3px;left:-10px;transition:.25s}\n"] }]
44
- }], () => [], { mobileView: [{
45
- type: Input
46
- }], checked: [{
47
- type: Input
48
- }], disabled: [{
49
- type: Input
50
- }], control: [{
51
- type: Input
52
- }], valueChanged: [{
49
+ args: [{ selector: "mis-switch", template: "<label class=\"toggle-switch\" [class.toggle-switch-mobile]=\"mobileView()\" [style.cursor]=\"disabled() || control().disabled ? 'not-allowed' : 'pointer'\">\n <input type=\"checkbox\" [formControl]=\"control()\" (change)=\"onChange()\" />\n <span class=\"slider\"></span>\n</label>\n", styles: [".toggle-switch{height:28px;width:51px;display:inline-block;position:relative}.toggle-switch input{display:none}.toggle-switch input:checked+.slider{background-color:#0937b2}.toggle-switch input:checked+.slider:after{-webkit-transform:translateX(23px);-ms-transform:translateX(23px);transform:translate(23px)}.toggle-switch .slider{position:absolute;inset:0;background-color:#e0e0e0;transition:.25s;border-radius:14px}.toggle-switch .slider:after{position:absolute;content:\"\";height:24px;width:24px;background-color:#fff;border-radius:12px;left:2px;bottom:2px;transition:.25s}.toggle-switch-mobile{height:14px;width:34px;display:inline-block;position:relative}.toggle-switch-mobile input{display:none}.toggle-switch-mobile input:checked+.slider{background-color:#e0e0e0}.toggle-switch-mobile input:disabled+.slider{background-color:#f5f5f5!important}.toggle-switch-mobile input:checked+.slider:after{background-color:#0937b2;-webkit-transform:translateX(34px);-ms-transform:translateX(34px);transform:translate(34px)}.toggle-switch-mobile input:checked:disabled+.slider:after{background-color:#929dab}.toggle-switch-mobile .slider{position:absolute;inset:0;background-color:#e0e0e0;transition:.25s;border-radius:14px}.toggle-switch-mobile .slider:after{position:absolute;content:\"\";height:20px;width:20px;background-color:#fff;box-shadow:0 0 6px -2px #929dab;border-radius:12px;top:-3px;left:-10px;transition:.25s}\n"] }]
50
+ }], () => [], { valueChanged: [{
53
51
  type: Output
54
52
  }] }); })();
55
53
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SwitchComponent, { className: "SwitchComponent" }); })();
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3N3aXRjaC9zd2l0Y2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvc3dpdGNoL3N3aXRjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBbUIsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBT3JFLE1BQU0sT0FBTyxlQUFlO0lBRTFCLElBQWEsT0FBTyxDQUFDLEtBQWM7UUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQWEsUUFBUSxDQUFDLEtBQWM7UUFDbEMsSUFBSSxLQUFLO1lBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQzs7WUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBTUQ7UUFiUyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBUTVCLFlBQU8sR0FBb0IsSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVsRSwrQkFBK0I7UUFDckIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRXRDLENBQUM7SUFDaEIsUUFBUSxLQUFJLENBQUM7SUFDYixRQUFRLENBQUMsS0FBSztRQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsQ0FBQztnSEFsQlUsZUFBZTtvRUFBZixlQUFlO1lDUDFCLEFBREYsZ0NBQXFKLGVBQ3RFO1lBQXRELG1HQUFVLG9CQUFnQixJQUFDO1lBQWxELGlCQUE2RTtZQUM3RSwwQkFBNEI7WUFDOUIsaUJBQVE7O1lBSHdFLEFBQW5ELG9FQUFrRCx5RkFBcUU7WUFDL0YsY0FBdUI7WUFBdkIseUNBQXVCOzs7aUZETy9ELGVBQWU7Y0FMM0IsU0FBUzsyQkFDRSxZQUFZO29CQUtiLFVBQVU7a0JBQWxCLEtBQUs7WUFDTyxPQUFPO2tCQUFuQixLQUFLO1lBR08sUUFBUTtrQkFBcEIsS0FBSztZQUlHLE9BQU87a0JBQWYsS0FBSztZQUdJLFlBQVk7a0JBQXJCLE1BQU07O2tGQVpJLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtc3dpdGNoXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vc3dpdGNoLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9zd2l0Y2guY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgU3dpdGNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbW9iaWxlVmlldzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzZXQgY2hlY2tlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlKSB0aGlzLmNvbnRyb2wuZGlzYWJsZSgpO1xuICAgIGVsc2UgdGhpcy5jb250cm9sLmVuYWJsZSgpO1xuICB9XG4gIEBJbnB1dCgpIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZmFsc2UpO1xuXG4gIC8qKiBFbWl0cyB2YWx1ZSB3aGVuIHRvZ2dsZWQgKi9cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG4gIG5nT25Jbml0KCkge31cbiAgb25DaGFuZ2UoZXZlbnQpIHtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlZC5lbWl0KHRoaXMuY29udHJvbC52YWx1ZSk7XG4gIH1cbn1cbiIsIjxsYWJlbCBjbGFzcz1cInRvZ2dsZS1zd2l0Y2hcIiBbbmdDbGFzc109XCJ7ICd0b2dnbGUtc3dpdGNoLW1vYmlsZSc6IG1vYmlsZVZpZXcgfVwiIFtuZ1N0eWxlXT1cInsnY3Vyc29yJzogY29udHJvbC5kaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcid9XCI+XG4gIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIiBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIC8+XG4gIDxzcGFuIGNsYXNzPVwic2xpZGVyXCI+PC9zcGFuPlxuPC9sYWJlbD5cbiJdfQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3N3aXRjaC9zd2l0Y2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvc3dpdGNoL3N3aXRjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQW1CLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU9yRSxNQUFNLE9BQU8sZUFBZTtJQVExQjtRQVBBLGVBQVUsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbkMsWUFBTyxHQUFNLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNuQyxhQUFRLEdBQUssS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ25DLFlBQU8sR0FBRyxLQUFLLENBQWtCLElBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUV0RCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFHbkQsb0NBQW9DO1FBQ3BDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM3QixJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDM0MsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgscUNBQXFDO1FBQ3JDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QixJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUTtnQkFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7O2dCQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO2dIQTdCVSxlQUFlO29FQUFmLGVBQWU7WUNQMUIsQUFERixnQ0FBdUosZUFDNUU7WUFBeEIsNkZBQVUsY0FBVSxJQUFDO1lBQXRFLGlCQUF5RTtZQUN6RSwwQkFBNEI7WUFDOUIsaUJBQVE7O1lBSGlFLDhGQUE2RTtZQUF6SCx3REFBMkM7WUFDL0MsY0FBeUI7WUFBekIsMkNBQXlCOzs7aUZET3JDLGVBQWU7Y0FMM0IsU0FBUzsyQkFDRSxZQUFZO29CQVVaLFlBQVk7a0JBQXJCLE1BQU07O2tGQU5JLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBpbnB1dCwgZWZmZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtc3dpdGNoXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vc3dpdGNoLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9zd2l0Y2guY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgU3dpdGNoQ29tcG9uZW50IHtcbiAgbW9iaWxlVmlldyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgY2hlY2tlZCAgICA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgZGlzYWJsZWQgICA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgY29udHJvbCA9IGlucHV0PEFic3RyYWN0Q29udHJvbD4obmV3IFVudHlwZWRGb3JtQ29udHJvbChmYWxzZSkpO1xuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8ga2VlcCBjb250cm9sIGluIHN5bmMgd2l0aCBjaGVja2VkXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGN0cmwgPSB0aGlzLmNvbnRyb2woKTtcbiAgICAgIGNvbnN0IHZhbCA9ICEhdGhpcy5jaGVja2VkKCk7XG4gICAgICBpZiAodmFsKSB7XG4gICAgICAgIGN0cmwuc2V0VmFsdWUodmFsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBrZWVwIGNvbnRyb2wgaW4gc3luYyB3aXRoIGRpc2FibGVkXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGN0cmwgPSB0aGlzLmNvbnRyb2woKTtcbiAgICAgIGNvbnN0IGRpcyA9ICEhdGhpcy5kaXNhYmxlZCgpO1xuICAgICAgaWYgKGRpcyB8fCBjdHJsLmRpc2FibGVkKSBjdHJsLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgZWxzZSBjdHJsLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfSk7XG4gIH1cblxuICBvbkNoYW5nZSgpOiB2b2lke1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQodGhpcy5jb250cm9sKCkudmFsdWUpO1xuICB9XG59XG4iLCI8bGFiZWwgY2xhc3M9XCJ0b2dnbGUtc3dpdGNoXCIgW2NsYXNzLnRvZ2dsZS1zd2l0Y2gtbW9iaWxlXT1cIm1vYmlsZVZpZXcoKVwiIFtzdHlsZS5jdXJzb3JdPVwiZGlzYWJsZWQoKSB8fCBjb250cm9sKCkuZGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogJ3BvaW50ZXInXCI+XG4gIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbZm9ybUNvbnRyb2xdPVwiY29udHJvbCgpXCIgKGNoYW5nZSk9XCJvbkNoYW5nZSgpXCIgLz5cbiAgPHNwYW4gY2xhc3M9XCJzbGlkZXJcIj48L3NwYW4+XG48L2xhYmVsPlxuIl19
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, Input, Output, HostListener, ViewChild } from "@angular/core";
1
+ import { Component, HostListener, ViewChild, input, output, signal } from "@angular/core";
2
2
  import { ConnectionPositionPair, OverlayConfig } from "@angular/cdk/overlay";
3
3
  import { TemplatePortal } from "@angular/cdk/portal";
4
4
  import * as i0 from "@angular/core";
@@ -28,7 +28,7 @@ function ActionsCellComponent_div_1_Template(rf, ctx) { if (rf & 1) {
28
28
  } if (rf & 2) {
29
29
  const ctx_r2 = i0.ɵɵnextContext();
30
30
  i0.ɵɵadvance();
31
- i0.ɵɵproperty("ngForOf", ctx_r2.actionItems)("ngForTrackBy", ctx_r2.trackByAction);
31
+ i0.ɵɵproperty("ngForOf", ctx_r2.actionItems())("ngForTrackBy", ctx_r2.trackByAction);
32
32
  } }
33
33
  function ActionsCellComponent_div_2_Template(rf, ctx) { if (rf & 1) {
34
34
  const _r4 = i0.ɵɵgetCurrentView();
@@ -47,7 +47,7 @@ function ActionsCellComponent_div_3_Template(rf, ctx) { if (rf & 1) {
47
47
  } if (rf & 2) {
48
48
  const ctx_r2 = i0.ɵɵnextContext();
49
49
  i0.ɵɵadvance();
50
- i0.ɵɵproperty("checked", ctx_r2.currentState)("disabled", ctx_r2.disable ? ctx_r2.disable(ctx_r2.currentState) : false);
50
+ i0.ɵɵproperty("checked", ctx_r2.currentState())("disabled", ctx_r2.disable() ? ctx_r2.disable()(ctx_r2.data()) : false);
51
51
  } }
52
52
  function ActionsCellComponent_div_4__svg_svg_2_Template(rf, ctx) { if (rf & 1) {
53
53
  i0.ɵɵnamespaceSVG();
@@ -70,11 +70,11 @@ function ActionsCellComponent_div_4_Template(rf, ctx) { if (rf & 1) {
70
70
  } if (rf & 2) {
71
71
  const ctx_r2 = i0.ɵɵnextContext();
72
72
  i0.ɵɵadvance();
73
- i0.ɵɵproperty("title", ctx_r2.currentState ? "Expand" : "Collapse");
73
+ i0.ɵɵproperty("title", ctx_r2.currentState() ? "Expand" : "Collapse");
74
74
  i0.ɵɵadvance();
75
- i0.ɵɵproperty("ngIf", ctx_r2.currentState);
75
+ i0.ɵɵproperty("ngIf", ctx_r2.currentState());
76
76
  i0.ɵɵadvance();
77
- i0.ɵɵproperty("ngIf", !ctx_r2.currentState);
77
+ i0.ɵɵproperty("ngIf", !ctx_r2.currentState());
78
78
  } }
79
79
  function ActionsCellComponent_ng_template_5_div_1_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {
80
80
  i0.ɵɵelementStart(0, "span", 36);
@@ -183,40 +183,45 @@ function ActionsCellComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
183
183
  } if (rf & 2) {
184
184
  const ctx_r2 = i0.ɵɵnextContext();
185
185
  i0.ɵɵadvance();
186
- i0.ɵɵproperty("ngForOf", ctx_r2.actionItems);
186
+ i0.ɵɵproperty("ngForOf", ctx_r2.actionItems());
187
187
  } }
188
188
  export class ActionsCellComponent {
189
189
  constructor(overlay, viewContainerRef) {
190
190
  this.overlay = overlay;
191
191
  this.viewContainerRef = viewContainerRef;
192
- this.actionClick = new EventEmitter();
193
- this.isDropdownOpen = false;
194
- this.actionItems = [];
195
- this.actionType = "inline";
196
- this.currentState = false;
197
- this._style = {};
198
- this.containerStyle = {};
192
+ this.cellData = input();
193
+ this.config = input();
194
+ this.actionClick = output();
195
+ this.isDropdownOpen = signal(false);
196
+ this.actionItems = signal([]);
197
+ this.actionType = signal("inline");
198
+ this.action = signal(undefined);
199
+ this.data = signal(undefined);
200
+ this.disable = signal(undefined);
201
+ this.currentState = signal(false);
202
+ this._style = signal({});
203
+ this.containerStyle = signal({});
199
204
  this.overlayRef = null;
200
205
  }
201
206
  ngOnInit() {
202
- if (this.config) {
203
- this.actionItems = this.config.actionItems;
204
- this.actionType = this.config.actionType;
205
- this._style = this.config.style;
206
- this.action = this.config.action;
207
- this.disable = this.config.disable;
207
+ if (this.config()) {
208
+ this.actionItems.set(this.config().actionItems);
209
+ this.actionType.set(this.config().actionType);
210
+ this._style.set(this.config().style);
211
+ this.action.set(this.config().action);
212
+ this.disable.set(this.config().disable);
208
213
  this.processStyle();
209
214
  }
210
- if (this.cellData !== null) {
215
+ if (this.cellData() !== null) {
211
216
  const defaultStates = {
212
217
  'checkbox': false,
213
218
  'row-collapse': true,
214
219
  };
215
- if (this.actionType in defaultStates) {
216
- this.currentState = typeof this.cellData === 'boolean' ? this.cellData : defaultStates[this.actionType];
220
+ if (this.actionType() in defaultStates) {
221
+ this.currentState.set(typeof this.cellData() === 'boolean' ? this.cellData() : defaultStates[this.actionType()]);
217
222
  }
218
223
  else {
219
- this.data = this.cellData;
224
+ this.data.set(this.cellData());
220
225
  }
221
226
  }
222
227
  }
@@ -225,8 +230,8 @@ export class ActionsCellComponent {
225
230
  }
226
231
  processStyle() {
227
232
  // Remove width from style to avoid conflicts with table column width
228
- const { width, ...restStyle } = this._style;
229
- this.containerStyle = restStyle;
233
+ const { width, ...restStyle } = this._style();
234
+ this.containerStyle.set(restStyle);
230
235
  }
231
236
  onActionClick(item, event) {
232
237
  event.stopPropagation();
@@ -235,7 +240,7 @@ export class ActionsCellComponent {
235
240
  return;
236
241
  // Execute action only if permitted
237
242
  if (item.action) {
238
- item.action(this.data);
243
+ item.action(this.data());
239
244
  }
240
245
  this.actionClick.emit({ item });
241
246
  }
@@ -248,13 +253,13 @@ export class ActionsCellComponent {
248
253
  return iconPath.toLowerCase().includes(".svg") || iconPath.toLowerCase().includes("assets/icons/");
249
254
  }
250
255
  onDocumentClick() {
251
- if (this.isDropdownOpen) {
256
+ if (this.isDropdownOpen()) {
252
257
  this.closeDropdown();
253
258
  }
254
259
  }
255
260
  toggleDropdown(event) {
256
261
  event.stopPropagation();
257
- if (this.isDropdownOpen) {
262
+ if (this.isDropdownOpen()) {
258
263
  this.closeDropdown();
259
264
  }
260
265
  else {
@@ -265,7 +270,7 @@ export class ActionsCellComponent {
265
270
  if (!this.dropdownTrigger || !this.dropdownMenu)
266
271
  return;
267
272
  // Close all submenus when opening main menu
268
- this.actionItems.forEach((item) => (item.showSubmenu = false));
273
+ this.actionItems().forEach((item) => (item.showSubmenu = false));
269
274
  const positions = this.getDropdownPositions();
270
275
  const overlayConfig = new OverlayConfig({
271
276
  hasBackdrop: true,
@@ -283,14 +288,14 @@ export class ActionsCellComponent {
283
288
  this.overlayRef.backdropClick().subscribe(() => {
284
289
  this.closeDropdown();
285
290
  });
286
- this.isDropdownOpen = true;
291
+ this.isDropdownOpen.set(true);
287
292
  }
288
293
  closeDropdown() {
289
294
  if (this.overlayRef) {
290
295
  this.overlayRef.dispose();
291
296
  this.overlayRef = null;
292
297
  }
293
- this.isDropdownOpen = false;
298
+ this.isDropdownOpen.set(false);
294
299
  }
295
300
  getDropdownPositions() {
296
301
  // Use CDK Overlay's flexible positioning - it will automatically choose the best position
@@ -313,7 +318,7 @@ export class ActionsCellComponent {
313
318
  // Toggle submenu
314
319
  item.showSubmenu = !item.showSubmenu;
315
320
  // Optionally close other submenus
316
- this.actionItems.forEach((i) => {
321
+ this.actionItems().forEach((i) => {
317
322
  if (i !== item)
318
323
  i.showSubmenu = false;
319
324
  });
@@ -321,21 +326,23 @@ export class ActionsCellComponent {
321
326
  else {
322
327
  // Handle action
323
328
  if (item.action)
324
- item.action(this.data);
325
- this.actionClick.emit({ item, data: this.data });
329
+ item.action(this.data());
330
+ this.actionClick.emit({ item, data: this.data() });
326
331
  this.closeDropdown(); // Only close if action was executed
327
332
  }
328
333
  }
329
334
  onClick(event) {
330
- this.currentState = !this.currentState;
335
+ // Handle checkbox value - event might be {value: true} or just true
336
+ const newValue = event && typeof event === 'object' ? event.value : event;
337
+ this.currentState.set(newValue);
331
338
  this.actionClick.emit({
332
- actionType: this.actionType,
333
- value: this.currentState
339
+ actionType: this.actionType(),
340
+ value: newValue
334
341
  });
335
342
  }
336
343
  isDisabled(item) {
337
344
  if (typeof item.disable === "function") {
338
- return item.disable(this.data);
345
+ return item.disable(this.data());
339
346
  }
340
347
  return false;
341
348
  }
@@ -349,33 +356,27 @@ export class ActionsCellComponent {
349
356
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropdownTrigger = _t.first);
350
357
  } }, hostBindings: function ActionsCellComponent_HostBindings(rf, ctx) { if (rf & 1) {
351
358
  i0.ɵɵlistener("click", function ActionsCellComponent_click_HostBindingHandler() { return ctx.onDocumentClick(); }, false, i0.ɵɵresolveDocument);
352
- } }, inputs: { cellData: "cellData", config: "config" }, outputs: { actionClick: "actionClick" }, decls: 7, vars: 5, consts: [["dropdownMenu", ""], ["dropdownTrigger", ""], ["noChildren", ""], [1, "actions-cell-container", 3, "ngStyle"], ["class", "inline-actions", 4, "ngIf"], ["class", "dropdown-actions", 4, "ngIf"], ["class", "checkbox-actions", 4, "ngIf"], ["class", "collapse-toggle-action", 4, "ngIf"], [1, "inline-actions"], ["class", "action-item", 3, "ngClass", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "action-item", 3, "click", "ngClass"], [1, "action-icon-svg", 3, "src", "alt"], [1, "dropdown-actions"], ["title", "More actions", 1, "dropdown-trigger", 3, "click"], ["width", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none"], ["cx", "10", "cy", "4", "r", "2", "fill", "#333"], ["cx", "10", "cy", "10", "r", "2", "fill", "#333"], ["cx", "10", "cy", "16", "r", "2", "fill", "#333"], [1, "checkbox-actions"], [3, "valueChange", "checked", "disabled"], [1, "collapse-toggle-action"], [1, "collapse-icon", 3, "click", "title"], ["width", "20", "height", "20", "viewBox", "0 0 24 24", 4, "ngIf"], ["width", "20", "height", "20", "viewBox", "0 0 24 24"], ["d", "M7 10l5 5 5-5", "stroke", "#0D1321", "stroke-width", "2", "fill", "none", "stroke-linecap", "round", "stroke-linejoin", "round"], ["d", "M7 14l5-5 5 5", "stroke", "#0D1321", "stroke-width", "2", "fill", "none", "stroke-linecap", "round", "stroke-linejoin", "round"], [1, "dropdown-menu-overlay"], ["class", "dropdown-menu-item", 3, "ngClass", "click", 4, "ngFor", "ngForOf"], [1, "dropdown-menu-item", 3, "click", "ngClass"], [4, "ngIf", "ngIfElse"], ["class", "dropdown-icon", 4, "ngIf"], [1, "dropdown-label"], [1, "submenu-arrow"], ["width", "20", "height", "20", "viewBox", "0 0 24 24", "fill", "none"], ["d", "M9 6L15 12L9 18", "stroke", "#0D1321", "stroke-width", "2", "stroke-linecap", "round", "stroke-linejoin", "round"], ["class", "dropdown-submenu", 4, "ngIf"], [1, "dropdown-icon"], [3, "src"], [1, "dropdown-submenu"]], template: function ActionsCellComponent_Template(rf, ctx) { if (rf & 1) {
359
+ } }, inputs: { cellData: [1, "cellData"], config: [1, "config"] }, outputs: { actionClick: "actionClick" }, decls: 7, vars: 5, consts: [["dropdownMenu", ""], ["dropdownTrigger", ""], ["noChildren", ""], [1, "actions-cell-container", 3, "ngStyle"], ["class", "inline-actions", 4, "ngIf"], ["class", "dropdown-actions", 4, "ngIf"], ["class", "checkbox-actions", 4, "ngIf"], ["class", "collapse-toggle-action", 4, "ngIf"], [1, "inline-actions"], ["class", "action-item", 3, "ngClass", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "action-item", 3, "click", "ngClass"], [1, "action-icon-svg", 3, "src", "alt"], [1, "dropdown-actions"], ["title", "More actions", 1, "dropdown-trigger", 3, "click"], ["width", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none"], ["cx", "10", "cy", "4", "r", "2", "fill", "#333"], ["cx", "10", "cy", "10", "r", "2", "fill", "#333"], ["cx", "10", "cy", "16", "r", "2", "fill", "#333"], [1, "checkbox-actions"], [3, "valueChange", "checked", "disabled"], [1, "collapse-toggle-action"], [1, "collapse-icon", 3, "click", "title"], ["width", "20", "height", "20", "viewBox", "0 0 24 24", 4, "ngIf"], ["width", "20", "height", "20", "viewBox", "0 0 24 24"], ["d", "M7 10l5 5 5-5", "stroke", "#0D1321", "stroke-width", "2", "fill", "none", "stroke-linecap", "round", "stroke-linejoin", "round"], ["d", "M7 14l5-5 5 5", "stroke", "#0D1321", "stroke-width", "2", "fill", "none", "stroke-linecap", "round", "stroke-linejoin", "round"], [1, "dropdown-menu-overlay"], ["class", "dropdown-menu-item", 3, "ngClass", "click", 4, "ngFor", "ngForOf"], [1, "dropdown-menu-item", 3, "click", "ngClass"], [4, "ngIf", "ngIfElse"], ["class", "dropdown-icon", 4, "ngIf"], [1, "dropdown-label"], [1, "submenu-arrow"], ["width", "20", "height", "20", "viewBox", "0 0 24 24", "fill", "none"], ["d", "M9 6L15 12L9 18", "stroke", "#0D1321", "stroke-width", "2", "stroke-linecap", "round", "stroke-linejoin", "round"], ["class", "dropdown-submenu", 4, "ngIf"], [1, "dropdown-icon"], [3, "src"], [1, "dropdown-submenu"]], template: function ActionsCellComponent_Template(rf, ctx) { if (rf & 1) {
353
360
  i0.ɵɵelementStart(0, "div", 3);
354
361
  i0.ɵɵtemplate(1, ActionsCellComponent_div_1_Template, 2, 2, "div", 4)(2, ActionsCellComponent_div_2_Template, 7, 0, "div", 5)(3, ActionsCellComponent_div_3_Template, 2, 2, "div", 6);
355
362
  i0.ɵɵelementEnd();
356
363
  i0.ɵɵtemplate(4, ActionsCellComponent_div_4_Template, 4, 3, "div", 7)(5, ActionsCellComponent_ng_template_5_Template, 2, 1, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
357
364
  } if (rf & 2) {
358
- i0.ɵɵproperty("ngStyle", ctx.containerStyle);
365
+ i0.ɵɵproperty("ngStyle", ctx.containerStyle());
359
366
  i0.ɵɵadvance();
360
- i0.ɵɵproperty("ngIf", ctx.actionType === "inline");
367
+ i0.ɵɵproperty("ngIf", ctx.actionType() === "inline");
361
368
  i0.ɵɵadvance();
362
- i0.ɵɵproperty("ngIf", ctx.actionType === "dropdown");
369
+ i0.ɵɵproperty("ngIf", ctx.actionType() === "dropdown");
363
370
  i0.ɵɵadvance();
364
- i0.ɵɵproperty("ngIf", ctx.actionType === "checkbox");
371
+ i0.ɵɵproperty("ngIf", ctx.actionType() === "checkbox");
365
372
  i0.ɵɵadvance();
366
- i0.ɵɵproperty("ngIf", ctx.actionType === "row-collapse");
367
- } }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i2.NgStyle, i3.CheckboxComponent], styles: [".actions-cell-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative;box-sizing:border-box}.inline-actions[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;flex-wrap:nowrap;padding:4px 0;flex-direction:row}.action-item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;height:20px;border-radius:4px;cursor:pointer;transition:all .2s ease;background-color:transparent;border:none;outline:none;flex-shrink:0;min-height:20px}.action-item[_ngcontent-%COMP%]:hover:not(.disabled){background-color:#0000000a;transform:scale(1.05)}.action-item[_ngcontent-%COMP%]:active:not(.disabled){transform:scale(.95)}.action-item.disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.action-item.disabled[_ngcontent-%COMP%]:hover{background-color:transparent;transform:none}.action-icon[_ngcontent-%COMP%]{font-size:16px;color:var(--text-secondary, #6A737D);display:flex;align-items:center;justify-content:center;width:100%;height:100%}.action-icon-svg[_ngcontent-%COMP%]{width:18px;height:18px;object-fit:contain;filter:brightness(0) saturate(100%) invert(40%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(.6) contrast(1);flex-shrink:0}.action-icon-svg[_ngcontent-%COMP%]:hover{filter:brightness(0) saturate(100%) invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0) contrast(1)}.dropdown-trigger[_ngcontent-%COMP%]{cursor:pointer;display:flex;align-items:center;justify-content:center}.dropdown-actions[_ngcontent-%COMP%]{position:relative}.dropdown-menu-overlay[_ngcontent-%COMP%]{width:232px;background:var(--bg-primary, #FFFFFF);border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1000}.dropdown-menu-item.disabled[_ngcontent-%COMP%]{color:var(--text-tertiary, #929DAB);cursor:not-allowed}.dropdown-menu-item[_ngcontent-%COMP%]:hover:not(.disabled), .dropdown-menu-item.has-submenu[_ngcontent-%COMP%]:hover{background:var(--bg-tertiary, #F5F5F5)}.dropdown-menu-item[_ngcontent-%COMP%]{display:flex;align-items:center;padding:10px 18px;cursor:pointer;font-size:14px;position:relative}.dropdown-menu-item[_ngcontent-%COMP%] .dropdown-label[_ngcontent-%COMP%]{flex:1;margin-left:8px}.dropdown-menu-item[_ngcontent-%COMP%] .submenu-arrow[_ngcontent-%COMP%]{margin-left:auto;width:16px;height:16px}.dropdown-submenu[_ngcontent-%COMP%]{position:absolute;top:0;min-width:132px;background:var(--bg-primary, #FFFFFF);border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1001}.dropdown-submenu[_ngcontent-%COMP%]{left:100%;margin-left:4px}.submenu-arrow[_ngcontent-%COMP%]{display:flex;align-items:center;margin-left:auto;z-index:9999}.dropdown-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}.dropdown-menu-item.disabled[_ngcontent-%COMP%]{color:var(--text-primary, #181F33);filter:grayscale(100%) opacity(.3);cursor:not-allowed}.checkbox-actions[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.collapse-icon[_ngcontent-%COMP%]{cursor:pointer}"] }); }
373
+ i0.ɵɵproperty("ngIf", ctx.actionType() === "row-collapse");
374
+ } }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i2.NgStyle, i3.CheckboxComponent], styles: [".actions-cell-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative;box-sizing:border-box}.inline-actions[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;flex-wrap:nowrap;padding:4px 0;flex-direction:row}.action-item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;height:20px;border-radius:4px;cursor:pointer;transition:all .2s ease;background-color:transparent;border:none;outline:none;flex-shrink:0;min-height:20px}.action-item[_ngcontent-%COMP%]:hover:not(.disabled){background-color:#0000000a;transform:scale(1.05)}.action-item[_ngcontent-%COMP%]:active:not(.disabled){transform:scale(.95)}.action-item.disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.action-item.disabled[_ngcontent-%COMP%]:hover{background-color:transparent;transform:none}.action-icon[_ngcontent-%COMP%]{font-size:16px;color:#666;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.action-icon-svg[_ngcontent-%COMP%]{width:18px;height:18px;object-fit:contain;filter:brightness(0) saturate(100%) invert(40%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(.6) contrast(1);flex-shrink:0}.action-icon-svg[_ngcontent-%COMP%]:hover{filter:brightness(0) saturate(100%) invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0) contrast(1)}.dropdown-trigger[_ngcontent-%COMP%]{cursor:pointer;display:flex;align-items:center;justify-content:center}.dropdown-actions[_ngcontent-%COMP%]{position:relative}.dropdown-menu-overlay[_ngcontent-%COMP%]{width:232px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1000}.dropdown-menu-item.disabled[_ngcontent-%COMP%]{color:#aaa;cursor:not-allowed}.dropdown-menu-item[_ngcontent-%COMP%]:hover:not(.disabled), .dropdown-menu-item.has-submenu[_ngcontent-%COMP%]:hover{background:#f5f5f5}.dropdown-menu-item[_ngcontent-%COMP%]{display:flex;align-items:center;padding:10px 18px;cursor:pointer;font-size:14px;position:relative}.dropdown-menu-item[_ngcontent-%COMP%] .dropdown-label[_ngcontent-%COMP%]{flex:1;margin-left:8px}.dropdown-menu-item[_ngcontent-%COMP%] .submenu-arrow[_ngcontent-%COMP%]{margin-left:auto;width:16px;height:16px}.dropdown-submenu[_ngcontent-%COMP%]{position:absolute;top:0;min-width:132px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1001}.dropdown-submenu[_ngcontent-%COMP%]{left:100%;margin-left:4px}.submenu-arrow[_ngcontent-%COMP%]{display:flex;align-items:center;margin-left:auto;z-index:9999}.dropdown-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}.dropdown-menu-item.disabled[_ngcontent-%COMP%]{color:#181f33;filter:grayscale(100%) opacity(.3);cursor:not-allowed}.checkbox-actions[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.collapse-icon[_ngcontent-%COMP%]{cursor:pointer}"] }); }
368
375
  }
369
376
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionsCellComponent, [{
370
377
  type: Component,
371
- args: [{ selector: "mis-actions-cell", template: "<div class=\"actions-cell-container\" [ngStyle]=\"containerStyle\">\n <!-- Inline Actions -->\n <div *ngIf=\"actionType === 'inline'\" class=\"inline-actions\">\n <div\n *ngFor=\"let item of actionItems; trackBy: trackByAction\"\n class=\"action-item\"\n [ngClass]=\"{ disabled: isDisabled(item) }\"\n (click)=\"onActionClick(item, $event)\"\n >\n <img [src]=\"item.icon\" [alt]=\"item.label\" class=\"action-icon-svg\" />\n </div>\n </div>\n\n <!-- Dropdown Actions -->\n <div *ngIf=\"actionType === 'dropdown'\" class=\"dropdown-actions\">\n <div #dropdownTrigger class=\"dropdown-trigger\" (click)=\"toggleDropdown($event)\" title=\"More actions\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"4\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"10\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"16\" r=\"2\" fill=\"#333\" />\n </svg>\n </div>\n </div>\n\n <!-- Checkbox Actions -->\n <div *ngIf=\"actionType === 'checkbox'\" class=\"checkbox-actions\">\n <mis-checkbox [checked]=\"currentState\" (valueChange)=\"onClick($event)\" [disabled]=\"disable ? disable(currentState) : false\"> </mis-checkbox>\n </div>\n</div>\n\n<!-- Collapse / Expand Actions -->\n<div *ngIf=\"actionType === 'row-collapse'\" class=\"collapse-toggle-action\">\n <div class=\"collapse-icon\" (click)=\"onClick($event)\" [title]=\"currentState ? 'Expand' : 'Collapse'\">\n <svg *ngIf=\"currentState\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path d=\"M7 10l5 5 5-5\" stroke=\"#0D1321\" stroke-width=\"2\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n <svg *ngIf=\"!currentState\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path d=\"M7 14l5-5 5 5\" stroke=\"#0D1321\" stroke-width=\"2\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </div>\n</div>\n\n<!-- CDK Overlay Template for Dropdown Menu -->\n<ng-template #dropdownMenu>\n <div class=\"dropdown-menu-overlay\">\n <div\n class=\"dropdown-menu-item\"\n *ngFor=\"let item of actionItems\"\n (click)=\"onDropdownItemClick(item, $event)\"\n [ngClass]=\"{ disabled: isDisabled(item) }\"\n >\n <ng-container *ngIf=\"item.children?.length; else noChildren\">\n <span class=\"dropdown-icon\" *ngIf=\"item.icon\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n <span class=\"submenu-arrow\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M9 6L15 12L9 18\" stroke=\"#0D1321\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n\n <!-- DYNAMIC SUBMENU -->\n <div class=\"dropdown-submenu\" *ngIf=\"item.showSubmenu\">\n <div\n class=\"dropdown-menu-item\"\n *ngFor=\"let child of item.children\"\n [ngClass]=\"{ disabled: isDisabled(child) }\"\n (click)=\"onDropdownItemClick(child, $event)\"\n >\n <span class=\"dropdown-icon\" *ngIf=\"child.icon\">\n <img [src]=\"child.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ child.label }}</span>\n </div>\n </div>\n </ng-container>\n\n <ng-template #noChildren>\n <span class=\"dropdown-icon\" *ngIf=\"item.icon\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n </ng-template>\n </div>\n </div>\n</ng-template>\n", styles: [".actions-cell-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative;box-sizing:border-box}.inline-actions{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;flex-wrap:nowrap;padding:4px 0;flex-direction:row}.action-item{display:flex;align-items:center;justify-content:center;height:20px;border-radius:4px;cursor:pointer;transition:all .2s ease;background-color:transparent;border:none;outline:none;flex-shrink:0;min-height:20px}.action-item:hover:not(.disabled){background-color:#0000000a;transform:scale(1.05)}.action-item:active:not(.disabled){transform:scale(.95)}.action-item.disabled{opacity:.5;cursor:not-allowed}.action-item.disabled:hover{background-color:transparent;transform:none}.action-icon{font-size:16px;color:var(--text-secondary, #6A737D);display:flex;align-items:center;justify-content:center;width:100%;height:100%}.action-icon-svg{width:18px;height:18px;object-fit:contain;filter:brightness(0) saturate(100%) invert(40%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(.6) contrast(1);flex-shrink:0}.action-icon-svg:hover{filter:brightness(0) saturate(100%) invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0) contrast(1)}.dropdown-trigger{cursor:pointer;display:flex;align-items:center;justify-content:center}.dropdown-actions{position:relative}.dropdown-menu-overlay{width:232px;background:var(--bg-primary, #FFFFFF);border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1000}.dropdown-menu-item.disabled{color:var(--text-tertiary, #929DAB);cursor:not-allowed}.dropdown-menu-item:hover:not(.disabled),.dropdown-menu-item.has-submenu:hover{background:var(--bg-tertiary, #F5F5F5)}.dropdown-menu-item{display:flex;align-items:center;padding:10px 18px;cursor:pointer;font-size:14px;position:relative}.dropdown-menu-item .dropdown-label{flex:1;margin-left:8px}.dropdown-menu-item .submenu-arrow{margin-left:auto;width:16px;height:16px}.dropdown-submenu{position:absolute;top:0;min-width:132px;background:var(--bg-primary, #FFFFFF);border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1001}.dropdown-submenu{left:100%;margin-left:4px}.submenu-arrow{display:flex;align-items:center;margin-left:auto;z-index:9999}.dropdown-icon{display:flex;justify-content:center;align-items:center}.dropdown-menu-item.disabled{color:var(--text-primary, #181F33);filter:grayscale(100%) opacity(.3);cursor:not-allowed}.checkbox-actions{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.collapse-icon{cursor:pointer}\n"] }]
372
- }], () => [{ type: i1.Overlay }, { type: i0.ViewContainerRef }], { cellData: [{
373
- type: Input
374
- }], config: [{
375
- type: Input
376
- }], actionClick: [{
377
- type: Output
378
- }], dropdownMenu: [{
378
+ args: [{ selector: "mis-actions-cell", template: "<div class=\"actions-cell-container\" [ngStyle]=\"containerStyle()\">\n <!-- Inline Actions -->\n <div *ngIf=\"actionType() === 'inline'\" class=\"inline-actions\">\n <div\n *ngFor=\"let item of actionItems(); trackBy: trackByAction\"\n class=\"action-item\"\n [ngClass]=\"{ disabled: isDisabled(item) }\"\n (click)=\"onActionClick(item, $event)\"\n >\n <img [src]=\"item.icon\" [alt]=\"item.label\" class=\"action-icon-svg\" />\n </div>\n </div>\n\n <!-- Dropdown Actions -->\n <div *ngIf=\"actionType() === 'dropdown'\" class=\"dropdown-actions\">\n <div #dropdownTrigger class=\"dropdown-trigger\" (click)=\"toggleDropdown($event)\" title=\"More actions\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"4\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"10\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"16\" r=\"2\" fill=\"#333\" />\n </svg>\n </div>\n </div>\n\n <!-- Checkbox Actions -->\n <div *ngIf=\"actionType() === 'checkbox'\" class=\"checkbox-actions\">\n <mis-checkbox [checked]=\"currentState()\" (valueChange)=\"onClick($event)\" [disabled]=\"disable() ? disable()(data()) : false\"> </mis-checkbox>\n </div>\n</div>\n\n<!-- Collapse / Expand Actions -->\n<div *ngIf=\"actionType() === 'row-collapse'\" class=\"collapse-toggle-action\">\n <div class=\"collapse-icon\" (click)=\"onClick($event)\" [title]=\"currentState() ? 'Expand' : 'Collapse'\">\n <svg *ngIf=\"currentState()\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path d=\"M7 10l5 5 5-5\" stroke=\"#0D1321\" stroke-width=\"2\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n <svg *ngIf=\"!currentState()\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path d=\"M7 14l5-5 5 5\" stroke=\"#0D1321\" stroke-width=\"2\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </div>\n</div>\n\n<!-- CDK Overlay Template for Dropdown Menu -->\n<ng-template #dropdownMenu>\n <div class=\"dropdown-menu-overlay\">\n <div\n class=\"dropdown-menu-item\"\n *ngFor=\"let item of actionItems()\"\n (click)=\"onDropdownItemClick(item, $event)\"\n [ngClass]=\"{ disabled: isDisabled(item) }\"\n >\n <ng-container *ngIf=\"item.children?.length; else noChildren\">\n <span class=\"dropdown-icon\" *ngIf=\"item.icon\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n <span class=\"submenu-arrow\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M9 6L15 12L9 18\" stroke=\"#0D1321\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n\n <!-- DYNAMIC SUBMENU -->\n <div class=\"dropdown-submenu\" *ngIf=\"item.showSubmenu\">\n <div\n class=\"dropdown-menu-item\"\n *ngFor=\"let child of item.children\"\n [ngClass]=\"{ disabled: isDisabled(child) }\"\n (click)=\"onDropdownItemClick(child, $event)\"\n >\n <span class=\"dropdown-icon\" *ngIf=\"child.icon\">\n <img [src]=\"child.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ child.label }}</span>\n </div>\n </div>\n </ng-container>\n\n <ng-template #noChildren>\n <span class=\"dropdown-icon\" *ngIf=\"item.icon\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n </ng-template>\n </div>\n </div>\n</ng-template>\n", styles: [".actions-cell-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative;box-sizing:border-box}.inline-actions{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;flex-wrap:nowrap;padding:4px 0;flex-direction:row}.action-item{display:flex;align-items:center;justify-content:center;height:20px;border-radius:4px;cursor:pointer;transition:all .2s ease;background-color:transparent;border:none;outline:none;flex-shrink:0;min-height:20px}.action-item:hover:not(.disabled){background-color:#0000000a;transform:scale(1.05)}.action-item:active:not(.disabled){transform:scale(.95)}.action-item.disabled{opacity:.5;cursor:not-allowed}.action-item.disabled:hover{background-color:transparent;transform:none}.action-icon{font-size:16px;color:#666;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.action-icon-svg{width:18px;height:18px;object-fit:contain;filter:brightness(0) saturate(100%) invert(40%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(.6) contrast(1);flex-shrink:0}.action-icon-svg:hover{filter:brightness(0) saturate(100%) invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0) contrast(1)}.dropdown-trigger{cursor:pointer;display:flex;align-items:center;justify-content:center}.dropdown-actions{position:relative}.dropdown-menu-overlay{width:232px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1000}.dropdown-menu-item.disabled{color:#aaa;cursor:not-allowed}.dropdown-menu-item:hover:not(.disabled),.dropdown-menu-item.has-submenu:hover{background:#f5f5f5}.dropdown-menu-item{display:flex;align-items:center;padding:10px 18px;cursor:pointer;font-size:14px;position:relative}.dropdown-menu-item .dropdown-label{flex:1;margin-left:8px}.dropdown-menu-item .submenu-arrow{margin-left:auto;width:16px;height:16px}.dropdown-submenu{position:absolute;top:0;min-width:132px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1001}.dropdown-submenu{left:100%;margin-left:4px}.submenu-arrow{display:flex;align-items:center;margin-left:auto;z-index:9999}.dropdown-icon{display:flex;justify-content:center;align-items:center}.dropdown-menu-item.disabled{color:#181f33;filter:grayscale(100%) opacity(.3);cursor:not-allowed}.checkbox-actions{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.collapse-icon{cursor:pointer}\n"] }]
379
+ }], () => [{ type: i1.Overlay }, { type: i0.ViewContainerRef }], { dropdownMenu: [{
379
380
  type: ViewChild,
380
381
  args: ['dropdownMenu', { static: false }]
381
382
  }], dropdownTrigger: [{
@@ -386,4 +387,4 @@ export class ActionsCellComponent {
386
387
  args: ["document:click"]
387
388
  }] }); })();
388
389
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActionsCellComponent, { className: "ActionsCellComponent" }); })();
389
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RhYmxlL2FjdGlvbnMtY2VsbC9hY3Rpb25zLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvYWN0aW9ucy1jZWxsL2FjdGlvbnMtY2VsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBYyxTQUFTLEVBQTBFLE1BQU0sZUFBZSxDQUFDO0FBQzVMLE9BQU8sRUFBRSxzQkFBc0IsRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7Ozs7SUNDakQsK0JBS0M7SUFEQyxvTkFBUyxxQ0FBMkIsS0FBQztJQUVyQywwQkFBb0U7SUFDdEUsaUJBQU07Ozs7SUFKSixnRkFBMEM7SUFHckMsY0FBaUI7SUFBQyxBQUFsQixvREFBaUIsc0JBQW1COzs7SUFQN0MsOEJBQTREO0lBQzFELDJFQUtDO0lBR0gsaUJBQU07OztJQVBlLGNBQWdCO0lBQUEsQUFBaEIsNENBQWdCLHNDQUFzQjs7OztJQVd6RCxBQURGLCtCQUFnRSxpQkFDdUM7SUFBdEQsbUxBQVMsNkJBQXNCLEtBQUM7O0lBQzdFLCtCQUE0RDtJQUcxRCxBQURBLEFBREEsNkJBQTJDLGlCQUNDLGlCQUNBO0lBR2xELEFBREUsQUFERSxpQkFBTSxFQUNGLEVBQ0Y7Ozs7SUFJSixBQURGLCtCQUFnRSx1QkFDOEQ7SUFBckYsd01BQWUsc0JBQWUsS0FBQztJQUN4RSxBQUQrSCxpQkFBZSxFQUN4STs7O0lBRFUsY0FBd0I7SUFBaUMsQUFBekQsNkNBQXdCLDBF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QUE3QixrREFBNkI7WUFZN0IsY0FBK0I7WUFBL0Isb0RBQStCO1lBVy9CLGNBQStCO1lBQS9CLG9EQUErQjtZQU1qQyxjQUFtQztZQUFuQyx3REFBbUM7OztpRkRyQjVCLG9CQUFvQjtjQUxoQyxTQUFTOzJCQUNFLGtCQUFrQjt1RUFLbkIsUUFBUTtrQkFBaEIsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSztZQUVJLFdBQVc7a0JBQXBCLE1BQU07WUFFdUMsWUFBWTtrQkFBekQsU0FBUzttQkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBQ0ssZUFBZTtrQkFBL0QsU0FBUzttQkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUEyRS9DLGVBQWU7a0JBRGQsWUFBWTttQkFBQyxnQkFBZ0I7O2tGQWpGbkIsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgSG9zdExpc3RlbmVyLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmLCBPbkRlc3Ryb3ksIFNpbXBsZUNoYW5nZXMsIEFmdGVyVmlld0luaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29ubmVjdGlvblBvc2l0aW9uUGFpciwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHsgQWN0aW9uSXRlbSB9IGZyb20gXCIuLi90YWJsZS5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy1hY3Rpb25zLWNlbGxcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9hY3Rpb25zLWNlbGwuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmw6IFwiLi9hY3Rpb25zLWNlbGwuY29tcG9uZW50LmNzc1wiXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbnNDZWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBjZWxsRGF0YTtcbiAgQElucHV0KCkgY29uZmlnO1xuXG4gIEBPdXRwdXQoKSBhY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8eyBpdGVtPzogQWN0aW9uSXRlbTsgZGF0YT86IGFueSwgYWN0aW9uVHlwZT86IHN0cmluZywgdmFsdWU/OiBhbnkgfT4oKTtcblxuICBAVmlld0NoaWxkKCdkcm9wZG93bk1lbnUnLCB7IHN0YXRpYzogZmFsc2UgfSkgZHJvcGRvd25NZW51OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdkcm9wZG93blRyaWdnZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgZHJvcGRvd25UcmlnZ2VyOiBFbGVtZW50UmVmO1xuXG4gIGlzRHJvcGRvd25PcGVuOiBib29sZWFuID0gZmFsc2U7XG4gIGFjdGlvbkl0ZW1zOiBBY3Rpb25JdGVtW10gPSBbXTtcbiAgYWN0aW9uVHlwZTogXCJpbmxpbmVcIiB8IFwiZHJvcGRvd25cIiB8IFwiY2hlY2tib3hcIiB8IFwicm93LWNvbGxhcHNlXCIgPSBcImlubGluZVwiO1xuICBhY3Rpb24/OiAoZGF0YTogYW55KSA9PiB2b2lkO1xuICBkYXRhOiBhbnk7XG4gIGRpc2FibGU6IChkYXRhOiBhbnkpID0+IGJvb2xlYW47XG4gIGN1cnJlbnRTdGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9zdHlsZTogYW55ID0ge307XG4gIGNvbnRhaW5lclN0eWxlOiBhbnkgPSB7fTtcbiAgcHJpdmF0ZSBvdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29uZmlnKSB7XG4gICAgICB0aGlzLmFjdGlvbkl0ZW1zID0gdGhpcy5jb25maWcuYWN0aW9uSXRlbXM7XG4gICAgICB0aGlzLmFjdGlvblR5cGUgPSB0aGlzLmNvbmZpZy5hY3Rpb25UeXBlO1xuICAgICAgdGhpcy5fc3R5bGUgPSB0aGlzLmNvbmZpZy5zdHlsZTtcbiAgICAgIHRoaXMuYWN0aW9uID0gdGhpcy5jb25maWcuYWN0aW9uO1xuICAgICAgdGhpcy5kaXNhYmxlID0gdGhpcy5jb25maWcuZGlzYWJsZTtcbiAgICAgIHRoaXMucHJvY2Vzc1N0eWxlKCk7XG4gICAgfVxuICBcbiAgICBpZiAodGhpcy5jZWxsRGF0YSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZGVmYXVsdFN0YXRlczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7XG4gICAgICAgICdjaGVja2JveCc6IGZhbHNlLFxuICAgICAgICAncm93LWNvbGxhcHNlJzogdHJ1ZSxcbiAgICAgIH07XG4gICAgICBpZiAodGhpcy5hY3Rpb25UeXBlIGluIGRlZmF1bHRTdGF0ZXMpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50U3RhdGUgPSB0eXBlb2YgdGhpcy5jZWxsRGF0YSA9PT0gJ2Jvb2xlYW4nID8gdGhpcy5jZWxsRGF0YSA6IGRlZmF1bHRTdGF0ZXNbdGhpcy5hY3Rpb25UeXBlXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuY2VsbERhdGE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NTdHlsZSgpOiB2b2lkIHtcbiAgICAvLyBSZW1vdmUgd2lkdGggZnJvbSBzdHlsZSB0byBhdm9pZCBjb25mbGljdHMgd2l0aCB0YWJsZSBjb2x1bW4gd2lkdGhcbiAgICBjb25zdCB7IHdpZHRoLCAuLi5yZXN0U3R5bGUgfSA9IHRoaXMuX3N0eWxlO1xuICAgIHRoaXMuY29udGFpbmVyU3R5bGUgPSByZXN0U3R5bGU7XG4gIH1cblxuICBvbkFjdGlvbkNsaWNrKGl0ZW06IEFjdGlvbkl0ZW0sIGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgLy8gQ2hlY2sgcGVybWlzc2lvbnMgYmVmb3JlIGV4ZWN1dGluZyBhY3Rpb25cbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKGl0ZW0pKSByZXR1cm47XG5cbiAgICAvLyBFeGVjdXRlIGFjdGlvbiBvbmx5IGlmIHBlcm1pdHRlZFxuICAgIGlmIChpdGVtLmFjdGlvbikge1xuICAgICAgaXRlbS5hY3Rpb24odGhpcy5kYXRhKTtcbiAgICB9XG5cbiAgICB0aGlzLmFjdGlvbkNsaWNrLmVtaXQoeyBpdGVtIH0pO1xuICB9XG5cbiAgdHJhY2tCeUFjdGlvbihpbmRleDogbnVtYmVyLCBpdGVtOiBBY3Rpb25JdGVtKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaXRlbS52YWx1ZTtcbiAgfVxuXG4gIGlzU3ZnRmlsZShpY29uUGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCFpY29uUGF0aCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBpY29uUGF0aC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiLnN2Z1wiKSB8fCBpY29uUGF0aC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiYXNzZXRzL2ljb25zL1wiKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDpjbGlja1wiKVxuICBvbkRvY3VtZW50Q2xpY2soKSB7XG4gICAgaWYgKHRoaXMuaXNEcm9wZG93bk9wZW4pIHtcbiAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZURyb3Bkb3duKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIFxuICAgIGlmICh0aGlzLmlzRHJvcGRvd25PcGVuKSB7XG4gICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuRHJvcGRvd24oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9wZW5Ecm9wZG93bigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZHJvcGRvd25UcmlnZ2VyIHx8ICF0aGlzLmRyb3Bkb3duTWVudSkgcmV0dXJuO1xuXG4gICAgLy8gQ2xvc2UgYWxsIHN1Ym1lbnVzIHdoZW4gb3BlbmluZyBtYWluIG1lbnVcbiAgICB0aGlzLmFjdGlvbkl0ZW1zLmZvckVhY2goKGl0ZW06IGFueSkgPT4gKGl0ZW0uc2hvd1N1Ym1lbnUgPSBmYWxzZSkpO1xuXG4gICAgY29uc3QgcG9zaXRpb25zID0gdGhpcy5nZXREcm9wZG93blBvc2l0aW9ucygpO1xuICAgIFxuICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXlcbiAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5kcm9wZG93blRyaWdnZXIpXG4gICAgICAgIC53aXRoUG9zaXRpb25zKHBvc2l0aW9ucylcbiAgICAgICAgLndpdGhQdXNoKHRydWUpLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxuICAgIH0pO1xuXG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5kcm9wZG93bk1lbnUsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuXG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmlzRHJvcGRvd25PcGVuID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VEcm9wZG93bigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5pc0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREcm9wZG93blBvc2l0aW9ucygpOiBDb25uZWN0aW9uUG9zaXRpb25QYWlyW10ge1xuICAgIC8vIFVzZSBDREsgT3ZlcmxheSdzIGZsZXhpYmxlIHBvc2l0aW9uaW5nIC0gaXQgd2lsbCBhdXRvbWF0aWNhbGx5IGNob29zZSB0aGUgYmVzdCBwb3NpdGlvblxuICAgIHJldHVybiBbXG4gICAgICAvLyBQcmltYXJ5IHBvc2l0aW9uOiBiZWxvdyBhbmQgYWxpZ25lZCB0byBlbmQgKHJpZ2h0KVxuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoXG4gICAgICAgIHsgb3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICdib3R0b20nIH0sXG4gICAgICAgIHsgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ3RvcCcgfSxcbiAgICAgICAgMCwgNFxuICAgICAgKSxcbiAgICAgIC8vIEZhbGxiYWNrIHBvc2l0aW9uOiBhYm92ZSBhbmQgYWxpZ25lZCB0byBlbmQgKHJpZ2h0KVxuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoXG4gICAgICAgIHsgb3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICd0b3AnIH0sXG4gICAgICAgIHsgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ2JvdHRvbScgfSxcbiAgICAgICAgMCwgLTRcbiAgICAgICksXG4gICAgICAvLyBGYWxsYmFjayBwb3NpdGlvbjogYmVsb3cgYW5kIGFsaWduZWQgdG8gc3RhcnQgKGxlZnQpXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcihcbiAgICAgICAgeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAnYm90dG9tJyB9LFxuICAgICAgICB7IG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ3RvcCcgfSxcbiAgICAgICAgMCwgNFxuICAgICAgKSxcbiAgICAgIC8vIEZhbGxiYWNrIHBvc2l0aW9uOiBhYm92ZSBhbmQgYWxpZ25lZCB0byBzdGFydCAobGVmdClcbiAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKFxuICAgICAgICB7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICd0b3AnIH0sXG4gICAgICAgIHsgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAnYm90dG9tJyB9LFxuICAgICAgICAwLCAtNFxuICAgICAgKVxuICAgIF07XG4gIH1cblxuICBvbkRyb3Bkb3duSXRlbUNsaWNrKGl0ZW06IGFueSwgZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKGl0ZW0pKSByZXR1cm47XG5cbiAgICBpZiAoaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgLy8gVG9nZ2xlIHN1Ym1lbnVcbiAgICAgIGl0ZW0uc2hvd1N1Ym1lbnUgPSAhaXRlbS5zaG93U3VibWVudTtcbiAgICAgIC8vIE9wdGlvbmFsbHkgY2xvc2Ugb3RoZXIgc3VibWVudXNcbiAgICAgIHRoaXMuYWN0aW9uSXRlbXMuZm9yRWFjaCgoaTogYW55KSA9PiB7XG4gICAgICAgIGlmIChpICE9PSBpdGVtKSBpLnNob3dTdWJtZW51ID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSGFuZGxlIGFjdGlvblxuICAgICAgaWYgKGl0ZW0uYWN0aW9uKSBpdGVtLmFjdGlvbih0aGlzLmRhdGEpO1xuICAgICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KHsgaXRlbSwgZGF0YTogdGhpcy5kYXRhIH0pO1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7IC8vIE9ubHkgY2xvc2UgaWYgYWN0aW9uIHdhcyBleGVjdXRlZFxuICAgIH1cbiAgfVxuXG4gIG9uQ2xpY2soZXZlbnQ6IGFueSk6IHZvaWR7XG4gICAgdGhpcy5jdXJyZW50U3RhdGUgPSAhdGhpcy5jdXJyZW50U3RhdGU7XG4gICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KHsgXG4gICAgICBhY3Rpb25UeXBlOiB0aGlzLmFjdGlvblR5cGUsXG4gICAgICB2YWx1ZTogdGhpcy5jdXJyZW50U3RhdGVcbiAgICB9KTtcbiAgfVxuXG4gIGlzRGlzYWJsZWQoaXRlbTogQWN0aW9uSXRlbSk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgaXRlbS5kaXNhYmxlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJldHVybiBpdGVtLmRpc2FibGUodGhpcy5kYXRhKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIFxufVxuIiwiPGRpdiBjbGFzcz1cImFjdGlvbnMtY2VsbC1jb250YWluZXJcIiBbbmdTdHlsZV09XCJjb250YWluZXJTdHlsZVwiPlxuICA8IS0tIElubGluZSBBY3Rpb25zIC0tPlxuICA8ZGl2ICpuZ0lmPVwiYWN0aW9uVHlwZSA9PT0gJ2lubGluZSdcIiBjbGFzcz1cImlubGluZS1hY3Rpb25zXCI+XG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYWN0aW9uSXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlBY3Rpb25cIlxuICAgICAgY2xhc3M9XCJhY3Rpb24taXRlbVwiXG4gICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBpc0Rpc2FibGVkKGl0ZW0pIH1cIlxuICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uQ2xpY2soaXRlbSwgJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPGltZyBbc3JjXT1cIml0ZW0uaWNvblwiIFthbHRdPVwiaXRlbS5sYWJlbFwiIGNsYXNzPVwiYWN0aW9uLWljb24tc3ZnXCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBEcm9wZG93biBBY3Rpb25zIC0tPlxuICA8ZGl2ICpuZ0lmPVwiYWN0aW9uVHlwZSA9PT0gJ2Ryb3Bkb3duJ1wiIGNsYXNzPVwiZHJvcGRvd24tYWN0aW9uc1wiPlxuICAgIDxkaXYgI2Ryb3Bkb3duVHJpZ2dlciBjbGFzcz1cImRyb3Bkb3duLXRyaWdnZXJcIiAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oJGV2ZW50KVwiIHRpdGxlPVwiTW9yZSBhY3Rpb25zXCI+XG4gICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICA8Y2lyY2xlIGN4PVwiMTBcIiBjeT1cIjRcIiByPVwiMlwiIGZpbGw9XCIjMzMzXCIgLz5cbiAgICAgICAgPGNpcmNsZSBjeD1cIjEwXCIgY3k9XCIxMFwiIHI9XCIyXCIgZmlsbD1cIiMzMzNcIiAvPlxuICAgICAgICA8Y2lyY2xlIGN4PVwiMTBcIiBjeT1cIjE2XCIgcj1cIjJcIiBmaWxsPVwiIzMzM1wiIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBDaGVja2JveCBBY3Rpb25zIC0tPlxuICA8ZGl2ICpuZ0lmPVwiYWN0aW9uVHlwZSA9PT0gJ2NoZWNrYm94J1wiIGNsYXNzPVwiY2hlY2tib3gtYWN0aW9uc1wiPlxuICAgIDxtaXMtY2hlY2tib3ggW2NoZWNrZWRdPVwiY3VycmVudFN0YXRlXCIgKHZhbHVlQ2hhbmdlKT1cIm9uQ2xpY2soJGV2ZW50KVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlID8gZGlzYWJsZShjdXJyZW50U3RhdGUpIDogZmFsc2VcIj4gPC9taXMtY2hlY2tib3g+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gQ29sbGFwc2UgLyBFeHBhbmQgQWN0aW9ucyAtLT5cbjxkaXYgKm5nSWY9XCJhY3Rpb25UeXBlID09PSAncm93LWNvbGxhcHNlJ1wiIGNsYXNzPVwiY29sbGFwc2UtdG9nZ2xlLWFjdGlvblwiPlxuICA8ZGl2IGNsYXNzPVwiY29sbGFwc2UtaWNvblwiIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIiBbdGl0bGVdPVwiY3VycmVudFN0YXRlID8gJ0V4cGFuZCcgOiAnQ29sbGFwc2UnXCI+XG4gICAgPHN2ZyAqbmdJZj1cImN1cnJlbnRTdGF0ZVwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgIDxwYXRoIGQ9XCJNNyAxMGw1IDUgNS01XCIgc3Ryb2tlPVwiIzBEMTMyMVwiIHN0cm9rZS13aWR0aD1cIjJcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgPC9zdmc+XG4gICAgPHN2ZyAqbmdJZj1cIiFjdXJyZW50U3RhdGVcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICA8cGF0aCBkPVwiTTcgMTRsNS01IDUgNVwiIHN0cm9rZT1cIiMwRDEzMjFcIiBzdHJva2Utd2lkdGg9XCIyXCIgZmlsbD1cIm5vbmVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgIDwvc3ZnPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIENESyBPdmVybGF5IFRlbXBsYXRlIGZvciBEcm9wZG93biBNZW51IC0tPlxuPG5nLXRlbXBsYXRlICNkcm9wZG93bk1lbnU+XG4gIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51LW92ZXJsYXlcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUtaXRlbVwiXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhY3Rpb25JdGVtc1wiXG4gICAgICAoY2xpY2spPVwib25Ecm9wZG93bkl0ZW1DbGljayhpdGVtLCAkZXZlbnQpXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGlzRGlzYWJsZWQoaXRlbSkgfVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uY2hpbGRyZW4/Lmxlbmd0aDsgZWxzZSBub0NoaWxkcmVuXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24taWNvblwiICpuZ0lmPVwiaXRlbS5pY29uXCI+XG4gICAgICAgICAgPGltZyBbc3JjXT1cIml0ZW0uaWNvblwiIC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi1sYWJlbFwiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3VibWVudS1hcnJvd1wiPlxuICAgICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTkgNkwxNSAxMkw5IDE4XCIgc3Ryb2tlPVwiIzBEMTMyMVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPCEtLSBEWU5BTUlDIFNVQk1FTlUgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1zdWJtZW51XCIgKm5nSWY9XCJpdGVtLnNob3dTdWJtZW51XCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1tZW51LWl0ZW1cIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGl0ZW0uY2hpbGRyZW5cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogaXNEaXNhYmxlZChjaGlsZCkgfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25Ecm9wZG93bkl0ZW1DbGljayhjaGlsZCwgJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi1pY29uXCIgKm5nSWY9XCJjaGlsZC5pY29uXCI+XG4gICAgICAgICAgICAgIDxpbWcgW3NyY109XCJjaGlsZC5pY29uXCIgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24tbGFiZWxcIj57eyBjaGlsZC5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNub0NoaWxkcmVuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWljb25cIiAqbmdJZj1cIml0ZW0uaWNvblwiPlxuICAgICAgICAgIDxpbWcgW3NyY109XCJpdGVtLmljb25cIiAvPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24tbGFiZWxcIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
390
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RhYmxlL2FjdGlvbnMtY2VsbC9hY3Rpb25zLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvYWN0aW9ucy1jZWxsL2FjdGlvbnMtY2VsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFlBQVksRUFBYyxTQUFTLEVBQTRDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hKLE9BQU8sRUFBRSxzQkFBc0IsRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7Ozs7SUNDakQsK0JBS0M7SUFEQyxvTkFBUyxxQ0FBMkIsS0FBQztJQUVyQywwQkFBb0U7SUFDdEUsaUJBQU07Ozs7SUFKSixnRkFBMEM7SUFHckMsY0FBaUI7SUFBQyxBQUFsQixvREFBaUIsc0JBQW1COzs7SUFQN0MsOEJBQThEO0lBQzVELDJFQUtDO0lBR0gsaUJBQU07OztJQVBlLGNBQWtCO0lBQUEsQUFBbEIsOENBQWtCLHNDQUFzQjs7OztJQVczRCxBQURGLCtCQUFrRSxpQkFDcUM7SUFBdEQsbUxBQVMsNkJBQXNCLEtBQUM7O0lBQzdFLCtCQUE0RDtJQUcxRCxBQURBLEFBREEsNkJBQTJDLGlCQUNDLGlCQUNBO0lBR2xELEFBREUsQUFERSxpQkFBTSxFQUNGLEVBQ0Y7Ozs7SUFJSixBQURGLCtCQUFrRSx1QkFDNEQ7SUFBbkYsd01BQWUsc0JBQWUsS0FBQztJQUMxRSxBQUQrSCxpQkFBZSxFQUN4STs7O0lBRFUsY0FBMEI7SUFBaUMsQUFBM0QsK0NBQTBCLHdF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O1lBMkUvQyxlQUFlO2tCQURkLFlBQVk7bUJBQUMsZ0JBQWdCOztrRkFqRm5CLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBIb3N0TGlzdGVuZXIsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYsIE9uRGVzdHJveSwgaW5wdXQsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIsIE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7IEFjdGlvbkl0ZW0gfSBmcm9tIFwiLi4vdGFibGUuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtYWN0aW9ucy1jZWxsXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vYWN0aW9ucy1jZWxsLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsOiBcIi4vYWN0aW9ucy1jZWxsLmNvbXBvbmVudC5jc3NcIlxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25zQ2VsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgY2VsbERhdGEgPSBpbnB1dDxhbnk+KCk7XG4gIGNvbmZpZyA9IGlucHV0PGFueT4oKTtcblxuICBhY3Rpb25DbGljayA9IG91dHB1dDx7IGl0ZW0/OiBBY3Rpb25JdGVtOyBkYXRhPzogYW55LCBhY3Rpb25UeXBlPzogc3RyaW5nLCB2YWx1ZT86IGFueSB9PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duTWVudScsIHsgc3RhdGljOiBmYWxzZSB9KSBkcm9wZG93bk1lbnU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duVHJpZ2dlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBkcm9wZG93blRyaWdnZXI6IEVsZW1lbnRSZWY7XG5cbiAgaXNEcm9wZG93bk9wZW4gPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBhY3Rpb25JdGVtcyA9IHNpZ25hbDxBY3Rpb25JdGVtW10+KFtdKTtcbiAgYWN0aW9uVHlwZSA9IHNpZ25hbDxcImlubGluZVwiIHwgXCJkcm9wZG93blwiIHwgXCJjaGVja2JveFwiIHwgXCJyb3ctY29sbGFwc2VcIj4oXCJpbmxpbmVcIik7XG4gIGFjdGlvbiA9IHNpZ25hbDwoKGRhdGE6IGFueSkgPT4gdm9pZCkgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGRhdGEgPSBzaWduYWw8YW55Pih1bmRlZmluZWQpO1xuICBkaXNhYmxlID0gc2lnbmFsPCgoZGF0YTogYW55KSA9PiBib29sZWFuKSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgY3VycmVudFN0YXRlID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBfc3R5bGUgPSBzaWduYWw8YW55Pih7fSk7XG4gIGNvbnRhaW5lclN0eWxlID0gc2lnbmFsPGFueT4oe30pO1xuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb25maWcoKSkge1xuICAgICAgdGhpcy5hY3Rpb25JdGVtcy5zZXQodGhpcy5jb25maWcoKS5hY3Rpb25JdGVtcyk7XG4gICAgICB0aGlzLmFjdGlvblR5cGUuc2V0KHRoaXMuY29uZmlnKCkuYWN0aW9uVHlwZSk7XG4gICAgICB0aGlzLl9zdHlsZS5zZXQodGhpcy5jb25maWcoKS5zdHlsZSk7XG4gICAgICB0aGlzLmFjdGlvbi5zZXQodGhpcy5jb25maWcoKS5hY3Rpb24pO1xuICAgICAgdGhpcy5kaXNhYmxlLnNldCh0aGlzLmNvbmZpZygpLmRpc2FibGUpO1xuICAgICAgdGhpcy5wcm9jZXNzU3R5bGUoKTtcbiAgICB9XG4gIFxuICAgIGlmICh0aGlzLmNlbGxEYXRhKCkgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRTdGF0ZXM6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge1xuICAgICAgICAnY2hlY2tib3gnOiBmYWxzZSxcbiAgICAgICAgJ3Jvdy1jb2xsYXBzZSc6IHRydWUsXG4gICAgICB9O1xuICAgICAgaWYgKHRoaXMuYWN0aW9uVHlwZSgpIGluIGRlZmF1bHRTdGF0ZXMpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50U3RhdGUuc2V0KHR5cGVvZiB0aGlzLmNlbGxEYXRhKCkgPT09ICdib29sZWFuJyA/IHRoaXMuY2VsbERhdGEoKSA6IGRlZmF1bHRTdGF0ZXNbdGhpcy5hY3Rpb25UeXBlKCldKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGF0YS5zZXQodGhpcy5jZWxsRGF0YSgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc1N0eWxlKCk6IHZvaWQge1xuICAgIC8vIFJlbW92ZSB3aWR0aCBmcm9tIHN0eWxlIHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIHRhYmxlIGNvbHVtbiB3aWR0aFxuICAgIGNvbnN0IHsgd2lkdGgsIC4uLnJlc3RTdHlsZSB9ID0gdGhpcy5fc3R5bGUoKTtcbiAgICB0aGlzLmNvbnRhaW5lclN0eWxlLnNldChyZXN0U3R5bGUpO1xuICB9XG5cbiAgb25BY3Rpb25DbGljayhpdGVtOiBBY3Rpb25JdGVtLCBldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIC8vIENoZWNrIHBlcm1pc3Npb25zIGJlZm9yZSBleGVjdXRpbmcgYWN0aW9uXG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZChpdGVtKSkgcmV0dXJuO1xuXG4gICAgLy8gRXhlY3V0ZSBhY3Rpb24gb25seSBpZiBwZXJtaXR0ZWRcbiAgICBpZiAoaXRlbS5hY3Rpb24pIHtcbiAgICAgIGl0ZW0uYWN0aW9uKHRoaXMuZGF0YSgpKTtcbiAgICB9XG5cbiAgICB0aGlzLmFjdGlvbkNsaWNrLmVtaXQoeyBpdGVtIH0pO1xuICB9XG5cbiAgdHJhY2tCeUFjdGlvbihpbmRleDogbnVtYmVyLCBpdGVtOiBBY3Rpb25JdGVtKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaXRlbS52YWx1ZTtcbiAgfVxuXG4gIGlzU3ZnRmlsZShpY29uUGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCFpY29uUGF0aCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBpY29uUGF0aC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiLnN2Z1wiKSB8fCBpY29uUGF0aC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiYXNzZXRzL2ljb25zL1wiKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDpjbGlja1wiKVxuICBvbkRvY3VtZW50Q2xpY2soKSB7XG4gICAgaWYgKHRoaXMuaXNEcm9wZG93bk9wZW4oKSkge1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRHJvcGRvd24oZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgXG4gICAgaWYgKHRoaXMuaXNEcm9wZG93bk9wZW4oKSkge1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbkRyb3Bkb3duKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVuRHJvcGRvd24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRyb3Bkb3duVHJpZ2dlciB8fCAhdGhpcy5kcm9wZG93bk1lbnUpIHJldHVybjtcblxuICAgIC8vIENsb3NlIGFsbCBzdWJtZW51cyB3aGVuIG9wZW5pbmcgbWFpbiBtZW51XG4gICAgdGhpcy5hY3Rpb25JdGVtcygpLmZvckVhY2goKGl0ZW06IGFueSkgPT4gKGl0ZW0uc2hvd1N1Ym1lbnUgPSBmYWxzZSkpO1xuXG4gICAgY29uc3QgcG9zaXRpb25zID0gdGhpcy5nZXREcm9wZG93blBvc2l0aW9ucygpO1xuICAgIFxuICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXlcbiAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5kcm9wZG93blRyaWdnZXIpXG4gICAgICAgIC53aXRoUG9zaXRpb25zKHBvc2l0aW9ucylcbiAgICAgICAgLndpdGhQdXNoKHRydWUpLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxuICAgIH0pO1xuXG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5kcm9wZG93bk1lbnUsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuXG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmlzRHJvcGRvd25PcGVuLnNldCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VEcm9wZG93bigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5pc0Ryb3Bkb3duT3Blbi5zZXQoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREcm9wZG93blBvc2l0aW9ucygpOiBDb25uZWN0aW9uUG9zaXRpb25QYWlyW10ge1xuICAgIC8vIFVzZSBDREsgT3ZlcmxheSdzIGZsZXhpYmxlIHBvc2l0aW9uaW5nIC0gaXQgd2lsbCBhdXRvbWF0aWNhbGx5IGNob29zZSB0aGUgYmVzdCBwb3NpdGlvblxuICAgIHJldHVybiBbXG4gICAgICAvLyBQcmltYXJ5IHBvc2l0aW9uOiBiZWxvdyBhbmQgYWxpZ25lZCB0byBlbmQgKHJpZ2h0KVxuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoXG4gICAgICAgIHsgb3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICdib3R0b20nIH0sXG4gICAgICAgIHsgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ3RvcCcgfSxcbiAgICAgICAgMCwgNFxuICAgICAgKSxcbiAgICAgIC8vIEZhbGxiYWNrIHBvc2l0aW9uOiBhYm92ZSBhbmQgYWxpZ25lZCB0byBlbmQgKHJpZ2h0KVxuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoXG4gICAgICAgIHsgb3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICd0b3AnIH0sXG4gICAgICAgIHsgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ2JvdHRvbScgfSxcbiAgICAgICAgMCwgLTRcbiAgICAgICksXG4gICAgICAvLyBGYWxsYmFjayBwb3NpdGlvbjogYmVsb3cgYW5kIGFsaWduZWQgdG8gc3RhcnQgKGxlZnQpXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcihcbiAgICAgICAgeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAnYm90dG9tJyB9LFxuICAgICAgICB7IG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ3RvcCcgfSxcbiAgICAgICAgMCwgNFxuICAgICAgKSxcbiAgICAgIC8vIEZhbGxiYWNrIHBvc2l0aW9uOiBhYm92ZSBhbmQgYWxpZ25lZCB0byBzdGFydCAobGVmdClcbiAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKFxuICAgICAgICB7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICd0b3AnIH0sXG4gICAgICAgIHsgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAnYm90dG9tJyB9LFxuICAgICAgICAwLCAtNFxuICAgICAgKVxuICAgIF07XG4gIH1cblxuICBvbkRyb3Bkb3duSXRlbUNsaWNrKGl0ZW06IGFueSwgZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKGl0ZW0pKSByZXR1cm47XG5cbiAgICBpZiAoaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgLy8gVG9nZ2xlIHN1Ym1lbnVcbiAgICAgIGl0ZW0uc2hvd1N1Ym1lbnUgPSAhaXRlbS5zaG93U3VibWVudTtcbiAgICAgIC8vIE9wdGlvbmFsbHkgY2xvc2Ugb3RoZXIgc3VibWVudXNcbiAgICAgIHRoaXMuYWN0aW9uSXRlbXMoKS5mb3JFYWNoKChpOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGkgIT09IGl0ZW0pIGkuc2hvd1N1Ym1lbnUgPSBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBIYW5kbGUgYWN0aW9uXG4gICAgICBpZiAoaXRlbS5hY3Rpb24pIGl0ZW0uYWN0aW9uKHRoaXMuZGF0YSgpKTtcbiAgICAgIHRoaXMuYWN0aW9uQ2xpY2suZW1pdCh7IGl0ZW0sIGRhdGE6IHRoaXMuZGF0YSgpIH0pO1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7IC8vIE9ubHkgY2xvc2UgaWYgYWN0aW9uIHdhcyBleGVjdXRlZFxuICAgIH1cbiAgfVxuXG4gIG9uQ2xpY2soZXZlbnQ/OiBhbnkpOiB2b2lke1xuICAgIC8vIEhhbmRsZSBjaGVja2JveCB2YWx1ZSAtIGV2ZW50IG1pZ2h0IGJlIHt2YWx1ZTogdHJ1ZX0gb3IganVzdCB0cnVlXG4gICAgY29uc3QgbmV3VmFsdWUgPSBldmVudCAmJiB0eXBlb2YgZXZlbnQgPT09ICdvYmplY3QnID8gZXZlbnQudmFsdWUgOiBldmVudDtcbiAgICB0aGlzLmN1cnJlbnRTdGF0ZS5zZXQobmV3VmFsdWUpO1xuICAgIHRoaXMuYWN0aW9uQ2xpY2suZW1pdCh7IFxuICAgICAgYWN0aW9uVHlwZTogdGhpcy5hY3Rpb25UeXBlKCksXG4gICAgICB2YWx1ZTogbmV3VmFsdWVcbiAgICB9KTtcbiAgfVxuXG4gIGlzRGlzYWJsZWQoaXRlbTogQWN0aW9uSXRlbSk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgaXRlbS5kaXNhYmxlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJldHVybiBpdGVtLmRpc2FibGUodGhpcy5kYXRhKCkpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgXG59XG4iLCI8ZGl2IGNsYXNzPVwiYWN0aW9ucy1jZWxsLWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cImNvbnRhaW5lclN0eWxlKClcIj5cbiAgPCEtLSBJbmxpbmUgQWN0aW9ucyAtLT5cbiAgPGRpdiAqbmdJZj1cImFjdGlvblR5cGUoKSA9PT0gJ2lubGluZSdcIiBjbGFzcz1cImlubGluZS1hY3Rpb25zXCI+XG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYWN0aW9uSXRlbXMoKTsgdHJhY2tCeTogdHJhY2tCeUFjdGlvblwiXG4gICAgICBjbGFzcz1cImFjdGlvbi1pdGVtXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGlzRGlzYWJsZWQoaXRlbSkgfVwiXG4gICAgICAoY2xpY2spPVwib25BY3Rpb25DbGljayhpdGVtLCAkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8aW1nIFtzcmNdPVwiaXRlbS5pY29uXCIgW2FsdF09XCJpdGVtLmxhYmVsXCIgY2xhc3M9XCJhY3Rpb24taWNvbi1zdmdcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIERyb3Bkb3duIEFjdGlvbnMgLS0+XG4gIDxkaXYgKm5nSWY9XCJhY3Rpb25UeXBlKCkgPT09ICdkcm9wZG93bidcIiBjbGFzcz1cImRyb3Bkb3duLWFjdGlvbnNcIj5cbiAgICA8ZGl2ICNkcm9wZG93blRyaWdnZXIgY2xhc3M9XCJkcm9wZG93bi10cmlnZ2VyXCIgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKCRldmVudClcIiB0aXRsZT1cIk1vcmUgYWN0aW9uc1wiPlxuICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgPGNpcmNsZSBjeD1cIjEwXCIgY3k9XCI0XCIgcj1cIjJcIiBmaWxsPVwiIzMzM1wiIC8+XG4gICAgICAgIDxjaXJjbGUgY3g9XCIxMFwiIGN5PVwiMTBcIiByPVwiMlwiIGZpbGw9XCIjMzMzXCIgLz5cbiAgICAgICAgPGNpcmNsZSBjeD1cIjEwXCIgY3k9XCIxNlwiIHI9XCIyXCIgZmlsbD1cIiMzMzNcIiAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQ2hlY2tib3ggQWN0aW9ucyAtLT5cbiAgPGRpdiAqbmdJZj1cImFjdGlvblR5cGUoKSA9PT0gJ2NoZWNrYm94J1wiIGNsYXNzPVwiY2hlY2tib3gtYWN0aW9uc1wiPlxuICAgIDxtaXMtY2hlY2tib3ggW2NoZWNrZWRdPVwiY3VycmVudFN0YXRlKClcIiAodmFsdWVDaGFuZ2UpPVwib25DbGljaygkZXZlbnQpXCIgW2Rpc2FibGVkXT1cImRpc2FibGUoKSA/IGRpc2FibGUoKShkYXRhKCkpIDogZmFsc2VcIj4gPC9taXMtY2hlY2tib3g+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gQ29sbGFwc2UgLyBFeHBhbmQgQWN0aW9ucyAtLT5cbjxkaXYgKm5nSWY9XCJhY3Rpb25UeXBlKCkgPT09ICdyb3ctY29sbGFwc2UnXCIgY2xhc3M9XCJjb2xsYXBzZS10b2dnbGUtYWN0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJjb2xsYXBzZS1pY29uXCIgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiIFt0aXRsZV09XCJjdXJyZW50U3RhdGUoKSA/ICdFeHBhbmQnIDogJ0NvbGxhcHNlJ1wiPlxuICAgIDxzdmcgKm5nSWY9XCJjdXJyZW50U3RhdGUoKVwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgIDxwYXRoIGQ9XCJNNyAxMGw1IDUgNS01XCIgc3Ryb2tlPVwiIzBEMTMyMVwiIHN0cm9rZS13aWR0aD1cIjJcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgPC9zdmc+XG4gICAgPHN2ZyAqbmdJZj1cIiFjdXJyZW50U3RhdGUoKVwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgIDxwYXRoIGQ9XCJNNyAxNGw1LTUgNSA1XCIgc3Ryb2tlPVwiIzBEMTMyMVwiIHN0cm9rZS13aWR0aD1cIjJcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgPC9zdmc+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gQ0RLIE92ZXJsYXkgVGVtcGxhdGUgZm9yIERyb3Bkb3duIE1lbnUgLS0+XG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duTWVudT5cbiAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnUtb3ZlcmxheVwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZHJvcGRvd24tbWVudS1pdGVtXCJcbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFjdGlvbkl0ZW1zKClcIlxuICAgICAgKGNsaWNrKT1cIm9uRHJvcGRvd25JdGVtQ2xpY2soaXRlbSwgJGV2ZW50KVwiXG4gICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBpc0Rpc2FibGVkKGl0ZW0pIH1cIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmNoaWxkcmVuPy5sZW5ndGg7IGVsc2Ugbm9DaGlsZHJlblwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWljb25cIiAqbmdJZj1cIml0ZW0uaWNvblwiPlxuICAgICAgICAgIDxpbWcgW3NyY109XCJpdGVtLmljb25cIiAvPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24tbGFiZWxcIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInN1Ym1lbnUtYXJyb3dcIj5cbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgICAgPHBhdGggZD1cIk05IDZMMTUgMTJMOSAxOFwiIHN0cm9rZT1cIiMwRDEzMjFcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDwhLS0gRFlOQU1JQyBTVUJNRU5VIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tc3VibWVudVwiICpuZ0lmPVwiaXRlbS5zaG93U3VibWVudVwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24tbWVudS1pdGVtXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBpdGVtLmNoaWxkcmVuXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGlzRGlzYWJsZWQoY2hpbGQpIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uRHJvcGRvd25JdGVtQ2xpY2soY2hpbGQsICRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24taWNvblwiICpuZ0lmPVwiY2hpbGQuaWNvblwiPlxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiY2hpbGQuaWNvblwiIC8+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWxhYmVsXCI+e3sgY2hpbGQubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm9DaGlsZHJlbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi1pY29uXCIgKm5nSWY9XCJpdGVtLmljb25cIj5cbiAgICAgICAgICA8aW1nIFtzcmNdPVwiaXRlbS5pY29uXCIgLz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWxhYmVsXCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==