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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/action-list/action-list.component.d.ts +17 -15
  2. package/async-search-dropdown/async-dropdown.component.d.ts +43 -61
  3. package/button/button.component.d.ts +35 -13
  4. package/button/button.directive.d.ts +10 -8
  5. package/checkbox/checkbox.component.d.ts +15 -12
  6. package/chip/chip.component.d.ts +9 -11
  7. package/datepicker_v2/models/dp-config.model.d.ts +1 -0
  8. package/datepicker_v2/tz-datepicker.directive.d.ts +15 -18
  9. package/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +42 -21
  10. package/daterangepicker_v2/tz-daterangepicker.directive.d.ts +12 -14
  11. package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +46 -23
  12. package/drawer/drawer-body/drawer-body.component.d.ts +2 -2
  13. package/dropdown/calculate-container-height.directive.d.ts +7 -8
  14. package/dropdown/dropdown.component.d.ts +41 -49
  15. package/dynamic-form/dynamic-form.component.d.ts +20 -16
  16. package/esm2022/action-list/action-list.component.mjs +112 -89
  17. package/esm2022/async-search-dropdown/async-dropdown.component.mjs +256 -326
  18. package/esm2022/button/button.component.mjs +55 -48
  19. package/esm2022/button/button.directive.mjs +36 -40
  20. package/esm2022/checkbox/checkbox.component.mjs +75 -70
  21. package/esm2022/chip/chip.component.mjs +20 -33
  22. package/esm2022/datepicker_v2/models/dp-config.model.mjs +1 -1
  23. package/esm2022/datepicker_v2/tz-datepicker.directive.mjs +42 -71
  24. package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +202 -172
  25. package/esm2022/datepicker_v2/utils/index.mjs +2 -1
  26. package/esm2022/daterangepicker_v2/tz-daterangepicker.directive.mjs +26 -51
  27. package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +282 -235
  28. package/esm2022/drawer/drawer-body/drawer-body.component.mjs +8 -7
  29. package/esm2022/dropdown/calculate-container-height.directive.mjs +25 -22
  30. package/esm2022/dropdown/dropdown.component.mjs +162 -186
  31. package/esm2022/dynamic-form/dynamic-form.component.mjs +118 -72
  32. package/esm2022/fab/fab.component.mjs +29 -33
  33. package/esm2022/filter/filter-panel/filter-panel.component.mjs +60 -58
  34. package/esm2022/input/directives/input/input.directive.mjs +22 -26
  35. package/esm2022/input/mis-input.component.mjs +41 -45
  36. package/esm2022/input-stepper/input-stepper/input-stepper.component.mjs +40 -50
  37. package/esm2022/loader/loader.component.mjs +8 -11
  38. package/esm2022/mobile-filter/mobile-filter.component.mjs +61 -61
  39. package/esm2022/modal/module-wrapper/module-wrapper.component.mjs +11 -9
  40. package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +235 -281
  41. package/esm2022/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +250 -287
  42. package/esm2022/phone-input/phone-input.component.mjs +21 -43
  43. package/esm2022/radio-button/radio-button.component.mjs +15 -27
  44. package/esm2022/ske-loader/ske-loader.component.mjs +15 -29
  45. package/esm2022/slider/slider.component.mjs +23 -33
  46. package/esm2022/slider/slider.module.mjs +4 -11
  47. package/esm2022/snackbar/snackbar/snackbar.component.mjs +21 -15
  48. package/esm2022/snackbar/snackbar.service.mjs +3 -2
  49. package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +230 -343
  50. package/esm2022/specificdatepicker/tz-specificdatepicker.directive.mjs +77 -105
  51. package/esm2022/star-rating/star-rating.component.mjs +57 -71
  52. package/esm2022/switch/switch.component.mjs +34 -36
  53. package/esm2022/table/actions-cell/actions-cell.component.mjs +55 -54
  54. package/esm2022/table/custom-table-cell.directive.mjs +22 -18
  55. package/esm2022/table/filter/filter.component.mjs +60 -42
  56. package/esm2022/table/sort-icons.directive.mjs +16 -8
  57. package/esm2022/table/sub-table/sub-table.component.mjs +41 -44
  58. package/esm2022/table/table.component.mjs +181 -165
  59. package/esm2022/timepicker/timepicker.component.mjs +244 -159
  60. package/esm2022/timepicker/timepicker.directive.mjs +3 -2
  61. package/esm2022/timerangepicker/timerangepicker.component.mjs +200 -159
  62. package/esm2022/toast/toast.component.mjs +6 -7
  63. package/esm2022/toast/toast.data.service.mjs +15 -9
  64. package/esm2022/tooltip/tooltip-container/tooltip.component.mjs +12 -12
  65. package/esm2022/tooltip/tooltip.directive.mjs +4 -4
  66. package/esm2022/virtual-scroll/virtual-scroll.component.mjs +57 -59
  67. package/fab/fab.component.d.ts +12 -8
  68. package/fesm2022/mis-crystal-design-system-action-list.mjs +111 -88
  69. package/fesm2022/mis-crystal-design-system-action-list.mjs.map +1 -1
  70. package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs +253 -324
  71. package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
  72. package/fesm2022/mis-crystal-design-system-button.mjs +88 -85
  73. package/fesm2022/mis-crystal-design-system-button.mjs.map +1 -1
  74. package/fesm2022/mis-crystal-design-system-checkbox.mjs +74 -69
  75. package/fesm2022/mis-crystal-design-system-checkbox.mjs.map +1 -1
  76. package/fesm2022/mis-crystal-design-system-chip.mjs +19 -32
  77. package/fesm2022/mis-crystal-design-system-chip.mjs.map +1 -1
  78. package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs +242 -240
  79. package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
  80. package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +305 -283
  81. package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
  82. package/fesm2022/mis-crystal-design-system-drawer.mjs +7 -6
  83. package/fesm2022/mis-crystal-design-system-drawer.mjs.map +1 -1
  84. package/fesm2022/mis-crystal-design-system-dropdown.mjs +183 -204
  85. package/fesm2022/mis-crystal-design-system-dropdown.mjs.map +1 -1
  86. package/fesm2022/mis-crystal-design-system-dynamic-form.mjs +118 -72
  87. package/fesm2022/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
  88. package/fesm2022/mis-crystal-design-system-fab.mjs +28 -32
  89. package/fesm2022/mis-crystal-design-system-fab.mjs.map +1 -1
  90. package/fesm2022/mis-crystal-design-system-filter.mjs +59 -57
  91. package/fesm2022/mis-crystal-design-system-filter.mjs.map +1 -1
  92. package/fesm2022/mis-crystal-design-system-input-stepper.mjs +39 -49
  93. package/fesm2022/mis-crystal-design-system-input-stepper.mjs.map +1 -1
  94. package/fesm2022/mis-crystal-design-system-input.mjs +62 -71
  95. package/fesm2022/mis-crystal-design-system-input.mjs.map +1 -1
  96. package/fesm2022/mis-crystal-design-system-loader.mjs +7 -10
  97. package/fesm2022/mis-crystal-design-system-loader.mjs.map +1 -1
  98. package/fesm2022/mis-crystal-design-system-mobile-filter.mjs +60 -60
  99. package/fesm2022/mis-crystal-design-system-mobile-filter.mjs.map +1 -1
  100. package/fesm2022/mis-crystal-design-system-modal.mjs +10 -8
  101. package/fesm2022/mis-crystal-design-system-modal.mjs.map +1 -1
  102. package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs +233 -279
  103. package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
  104. package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs +249 -286
  105. package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -1
  106. package/fesm2022/mis-crystal-design-system-phone-input.mjs +20 -42
  107. package/fesm2022/mis-crystal-design-system-phone-input.mjs.map +1 -1
  108. package/fesm2022/mis-crystal-design-system-radio-button.mjs +14 -26
  109. package/fesm2022/mis-crystal-design-system-radio-button.mjs.map +1 -1
  110. package/fesm2022/mis-crystal-design-system-ske-loader.mjs +14 -28
  111. package/fesm2022/mis-crystal-design-system-ske-loader.mjs.map +1 -1
  112. package/fesm2022/mis-crystal-design-system-slider.mjs +25 -42
  113. package/fesm2022/mis-crystal-design-system-slider.mjs.map +1 -1
  114. package/fesm2022/mis-crystal-design-system-snackbar.mjs +22 -15
  115. package/fesm2022/mis-crystal-design-system-snackbar.mjs.map +1 -1
  116. package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +304 -445
  117. package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
  118. package/fesm2022/mis-crystal-design-system-star-rating.mjs +56 -70
  119. package/fesm2022/mis-crystal-design-system-star-rating.mjs.map +1 -1
  120. package/fesm2022/mis-crystal-design-system-switch.mjs +33 -35
  121. package/fesm2022/mis-crystal-design-system-switch.mjs.map +1 -1
  122. package/fesm2022/mis-crystal-design-system-table.mjs +365 -321
  123. package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
  124. package/fesm2022/mis-crystal-design-system-timepicker.mjs +245 -159
  125. package/fesm2022/mis-crystal-design-system-timepicker.mjs.map +1 -1
  126. package/fesm2022/mis-crystal-design-system-timerangepicker.mjs +199 -158
  127. package/fesm2022/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
  128. package/fesm2022/mis-crystal-design-system-toast.mjs +18 -13
  129. package/fesm2022/mis-crystal-design-system-toast.mjs.map +1 -1
  130. package/fesm2022/mis-crystal-design-system-tooltip.mjs +14 -14
  131. package/fesm2022/mis-crystal-design-system-tooltip.mjs.map +1 -1
  132. package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs +57 -59
  133. package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs.map +1 -1
  134. package/filter/filter-panel/filter-panel.component.d.ts +14 -14
  135. package/input/directives/input/input.directive.d.ts +6 -10
  136. package/input/mis-input.component.d.ts +12 -13
  137. package/input-stepper/input-stepper/input-stepper.component.d.ts +8 -7
  138. package/loader/loader.component.d.ts +3 -6
  139. package/mobile-filter/mobile-filter.component.d.ts +15 -15
  140. package/modal/module-wrapper/module-wrapper.component.d.ts +2 -3
  141. package/multi-select-dropdown/multi-select-dropdown.component.d.ts +89 -51
  142. package/nested-multi-select-dropdown/nested-multi-select-dropdown.component.d.ts +99 -56
  143. package/package.json +17 -17
  144. package/phone-input/phone-input.component.d.ts +16 -18
  145. package/radio-button/radio-button.component.d.ts +9 -11
  146. package/ske-loader/ske-loader.component.d.ts +8 -11
  147. package/slider/slider.component.d.ts +8 -11
  148. package/slider/slider.module.d.ts +1 -2
  149. package/snackbar/snackbar/snackbar.component.d.ts +3 -3
  150. package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +35 -35
  151. package/specificdatepicker/tz-specificdatepicker.directive.d.ts +24 -28
  152. package/star-rating/star-rating.component.d.ts +18 -18
  153. package/switch/switch.component.d.ts +8 -10
  154. package/table/actions-cell/actions-cell.component.d.ts +14 -14
  155. package/table/custom-table-cell.directive.d.ts +3 -3
  156. package/table/filter/filter.component.d.ts +9 -9
  157. package/table/sub-table/sub-table.component.d.ts +5 -5
  158. package/table/table.component.d.ts +38 -35
  159. package/timepicker/timepicker.component.d.ts +29 -28
  160. package/timerangepicker/timerangepicker.component.d.ts +36 -33
  161. package/toast/toast.data.service.d.ts +1 -1
  162. package/tooltip/tooltip-container/tooltip.component.d.ts +4 -4
  163. package/virtual-scroll/virtual-scroll.component.d.ts +8 -9
@@ -1,8 +1,6 @@
1
- import { Component, Input, Output, EventEmitter } from "@angular/core";
1
+ import { Component, Output, EventEmitter, HostBinding, input, computed } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
- const _c0 = (a0, a1, a2, a3, a4, a5, a6, a7, a8) => ({ solid: a0, outline: a1, text: a2, large: a3, medium: a4, small: a5, "large-mobile": a6, "small-mobile": a7, loading: a8 });
5
- const _c1 = (a0, a1, a2, a3, a4) => ({ "border-top-left-radius": a0, "border-bottom-left-radius": a1, "border-top-right-radius": a2, "border-bottom-right-radius": a3, width: a4 });
6
4
  function ButtonComponent_div_1_Template(rf, ctx) { if (rf & 1) {
7
5
  i0.ɵɵelementStart(0, "div", 5);
8
6
  i0.ɵɵelement(1, "div", 6);
@@ -15,7 +13,7 @@ function ButtonComponent_span_2_Template(rf, ctx) { if (rf & 1) {
15
13
  } if (rf & 2) {
16
14
  const ctx_r0 = i0.ɵɵnextContext();
17
15
  i0.ɵɵadvance();
18
- i0.ɵɵproperty("src", ctx_r0.iconUrl, i0.ɵɵsanitizeUrl);
16
+ i0.ɵɵproperty("src", ctx_r0.iconUrl(), i0.ɵɵsanitizeUrl);
19
17
  } }
20
18
  function ButtonComponent_span_5_Template(rf, ctx) { if (rf & 1) {
21
19
  i0.ɵɵelementStart(0, "span", 9);
@@ -24,32 +22,60 @@ function ButtonComponent_span_5_Template(rf, ctx) { if (rf & 1) {
24
22
  } if (rf & 2) {
25
23
  const ctx_r0 = i0.ɵɵnextContext();
26
24
  i0.ɵɵadvance();
27
- i0.ɵɵproperty("src", ctx_r0.iconUrl, i0.ɵɵsanitizeUrl);
25
+ i0.ɵɵproperty("src", ctx_r0.iconUrl(), i0.ɵɵsanitizeUrl);
28
26
  } }
29
27
  export class ButtonComponent {
30
28
  constructor() {
31
- this.name = "Enabled";
32
- this.type = "Solid";
33
- this.size = "Medium";
34
- this.width = "";
35
- this.showIcon = false;
36
- this.iconUrl = "";
37
- this.iconPosition = "Left";
38
- this.disabled = false;
39
- this.disableLeftBorderRadius = false;
40
- this.disableRightBorderRadius = false;
41
- this.showLoader = false;
42
- /** Emits event when button is clicked */
29
+ // Inputs
30
+ this.name = input("Enabled");
31
+ this.type = input("Solid");
32
+ this.size = input("Medium");
33
+ this.width = input("");
34
+ this.showIcon = input(false);
35
+ this.iconUrl = input("");
36
+ this.iconPosition = input("Left");
37
+ this.disabled = input(false);
38
+ this.disableLeftBorderRadius = input(false);
39
+ this.disableRightBorderRadius = input(false);
40
+ this.showLoader = input(false);
41
+ // Computed signals for template bindings
42
+ this.classes = computed(() => ({
43
+ solid: this.type() === 'Solid',
44
+ outline: this.type() === 'Outline',
45
+ text: this.type() === 'Text',
46
+ large: this.size() === 'Large',
47
+ medium: this.size() === 'Medium',
48
+ small: this.size() === 'Small',
49
+ 'large-mobile': this.size() === 'Large-M',
50
+ 'small-mobile': this.size() === 'Small-M',
51
+ loading: this.showLoader()
52
+ }));
53
+ this.styles = computed(() => ({
54
+ 'border-top-left-radius': this.disableLeftBorderRadius() ? '0px' : '',
55
+ 'border-bottom-left-radius': this.disableLeftBorderRadius() ? '0px' : '',
56
+ 'border-top-right-radius': this.disableRightBorderRadius() ? '0px' : '',
57
+ 'border-bottom-right-radius': this.disableRightBorderRadius() ? '0px' : '',
58
+ width: this.width()
59
+ }));
60
+ this.showLeftIcon = computed(() => this.showIcon() && this.iconPosition() === 'Left');
61
+ this.showRightIcon = computed(() => this.showIcon() && this.iconPosition() === 'Right');
62
+ this.showSpinner = computed(() => this.showLoader());
63
+ // Computed disabled state
64
+ this.isDisabled = computed(() => this.disabled() || this.showLoader());
65
+ this.hostDisabled = this.isDisabled();
66
+ // Output
43
67
  this.click = new EventEmitter();
44
68
  }
45
69
  ngOnInit() { }
46
70
  onClick(event) {
47
- if (!this.showLoader && !this.disabled) {
71
+ if (!this.isDisabled()) {
48
72
  this.click.emit(event);
49
73
  }
50
74
  }
51
75
  static { this.ɵfac = function ButtonComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ButtonComponent)(); }; }
52
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ButtonComponent, selectors: [["mis-button"]], inputs: { name: "name", type: "type", size: "size", width: "width", showIcon: "showIcon", iconUrl: "iconUrl", iconPosition: "iconPosition", disabled: "disabled", disableLeftBorderRadius: "disableLeftBorderRadius", disableRightBorderRadius: "disableRightBorderRadius", showLoader: "showLoader" }, outputs: { click: "click" }, decls: 6, vars: 23, consts: [[3, "click", "disabled", "ngClass", "ngStyle"], ["class", "loader", 4, "ngIf"], ["id", "left-icon", 4, "ngIf"], [1, "button-text"], ["id", "right-icon", 4, "ngIf"], [1, "loader"], [1, "spinner"], ["id", "left-icon"], ["alt", "", 3, "src"], ["id", "right-icon"]], template: function ButtonComponent_Template(rf, ctx) { if (rf & 1) {
76
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ButtonComponent, selectors: [["mis-button"]], hostVars: 1, hostBindings: function ButtonComponent_HostBindings(rf, ctx) { if (rf & 2) {
77
+ i0.ɵɵhostProperty("disabled", ctx.hostDisabled);
78
+ } }, inputs: { name: [1, "name"], type: [1, "type"], size: [1, "size"], width: [1, "width"], showIcon: [1, "showIcon"], iconUrl: [1, "iconUrl"], iconPosition: [1, "iconPosition"], disabled: [1, "disabled"], disableLeftBorderRadius: [1, "disableLeftBorderRadius"], disableRightBorderRadius: [1, "disableRightBorderRadius"], showLoader: [1, "showLoader"] }, outputs: { click: "click" }, decls: 6, vars: 6, consts: [[3, "click", "ngClass", "ngStyle"], ["class", "loader", 4, "ngIf"], ["id", "left-icon", 4, "ngIf"], [1, "button-text"], ["id", "right-icon", 4, "ngIf"], [1, "loader"], [1, "spinner"], ["id", "left-icon"], ["alt", "", 3, "src"], ["id", "right-icon"]], template: function ButtonComponent_Template(rf, ctx) { if (rf & 1) {
53
79
  i0.ɵɵelementStart(0, "button", 0);
54
80
  i0.ɵɵlistener("click", function ButtonComponent_Template_button_click_0_listener($event) { return ctx.onClick($event); });
55
81
  i0.ɵɵtemplate(1, ButtonComponent_div_1_Template, 2, 0, "div", 1)(2, ButtonComponent_span_2_Template, 2, 1, "span", 2);
@@ -59,44 +85,25 @@ export class ButtonComponent {
59
85
  i0.ɵɵtemplate(5, ButtonComponent_span_5_Template, 2, 1, "span", 4);
60
86
  i0.ɵɵelementEnd();
61
87
  } if (rf & 2) {
62
- i0.ɵɵproperty("disabled", ctx.disabled || ctx.showLoader)("ngClass", i0.ɵɵpureFunctionV(7, _c0, [ctx.type === "Solid", ctx.type === "Outline", ctx.type === "Text", ctx.size === "Large", ctx.size === "Medium", ctx.size === "Small", ctx.size === "Large-M", ctx.size === "Small-M", ctx.showLoader]))("ngStyle", i0.ɵɵpureFunction5(17, _c1, ctx.disableLeftBorderRadius ? "0px" : "", ctx.disableLeftBorderRadius ? "0px" : "", ctx.disableRightBorderRadius ? "0px" : "", ctx.disableRightBorderRadius ? "0px" : "", ctx.width));
88
+ i0.ɵɵproperty("ngClass", ctx.classes())("ngStyle", ctx.styles());
63
89
  i0.ɵɵadvance();
64
- i0.ɵɵproperty("ngIf", ctx.showLoader);
90
+ i0.ɵɵproperty("ngIf", ctx.showSpinner());
65
91
  i0.ɵɵadvance();
66
- i0.ɵɵproperty("ngIf", ctx.showIcon && ctx.iconPosition === "Left");
92
+ i0.ɵɵproperty("ngIf", ctx.showLeftIcon());
67
93
  i0.ɵɵadvance(2);
68
- i0.ɵɵtextInterpolate(ctx.name);
94
+ i0.ɵɵtextInterpolate(ctx.name());
69
95
  i0.ɵɵadvance();
70
- i0.ɵɵproperty("ngIf", ctx.showIcon && ctx.iconPosition === "Right");
96
+ i0.ɵɵproperty("ngIf", ctx.showRightIcon());
71
97
  } }, dependencies: [i1.NgClass, i1.NgIf, i1.NgStyle], styles: ["button[_ngcontent-%COMP%]{font-family:Lato,sans-serif!important;border:none;padding:0;margin:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#181f33;background-color:#fff}.solid[_ngcontent-%COMP%]{color:#fff;background:#0937b2}.solid[_ngcontent-%COMP%]:hover:enabled{background:#062a99}.solid[_ngcontent-%COMP%]:active:enabled{background:#041f80}.solid[_ngcontent-%COMP%]:disabled{color:#929dab;background:#f5f5f5}.outline[_ngcontent-%COMP%]{border:1px solid #0937b2;color:#0937b2;background:#fff}.outline[_ngcontent-%COMP%]:hover:enabled{background:#f0f3fa}.outline[_ngcontent-%COMP%]:active:enabled{background:#dae1f3}.outline[_ngcontent-%COMP%]:disabled{color:#929dab;border:1px solid #929dab}.text[_ngcontent-%COMP%]{color:#181f33;background:#fff}.text[_ngcontent-%COMP%]:hover:enabled{background:#f0f3fa}.text[_ngcontent-%COMP%]:active:enabled{background:#dae1f3}.text[_ngcontent-%COMP%]:disabled{color:#929dab}.large[_ngcontent-%COMP%]{height:56px;padding:16px;border-radius:10px;font-style:normal;font-weight:700;font-size:16px;line-height:24px;letter-spacing:.5px}.medium[_ngcontent-%COMP%]{height:44px;padding:10px 16px;border-radius:8px;font-style:normal;font-weight:400;font-size:16px;line-height:24px;letter-spacing:.2px}.small[_ngcontent-%COMP%]{height:32px;padding:6px 16px;border-radius:6px;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.25px}.large-mobile[_ngcontent-%COMP%]{height:44px;padding:12px;border-radius:8px;font-style:normal;font-weight:700;font-size:14px;line-height:20px;letter-spacing:.1px}.small-mobile[_ngcontent-%COMP%]{height:32px;padding:6px 12px;border-radius:8px;font-style:normal;font-weight:700;font-size:14px;line-height:20px;letter-spacing:.1px}span[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}#left-icon[_ngcontent-%COMP%]{margin-right:8px}#right-icon[_ngcontent-%COMP%]{margin-left:8px}.loader[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}.spinner[_ngcontent-%COMP%]{width:16px;height:16px;border:2px solid transparent;color:#0937b2;border-top:2px solid currentColor;border-radius:50%;animation:_ngcontent-%COMP%_spin 1s linear infinite}button.loading[_ngcontent-%COMP%] .button-text[_ngcontent-%COMP%], button.loading[_ngcontent-%COMP%] #left-icon[_ngcontent-%COMP%], button.loading[_ngcontent-%COMP%] #right-icon[_ngcontent-%COMP%]{visibility:hidden}button.loading[_ngcontent-%COMP%] .loader[_ngcontent-%COMP%]{visibility:visible;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}button.loading[_ngcontent-%COMP%]{position:relative}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"] }); }
72
98
  }
73
99
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ButtonComponent, [{
74
100
  type: Component,
75
- args: [{ selector: "mis-button", template: "<button\n (click)=\"onClick($event)\"\n [disabled]=\"disabled || showLoader\"\n [ngClass]=\"{\n solid: type === 'Solid',\n outline: type === 'Outline',\n text: type === 'Text',\n large: size === 'Large',\n medium: size === 'Medium',\n small: size === 'Small',\n 'large-mobile': size === 'Large-M',\n 'small-mobile': size === 'Small-M',\n loading: showLoader\n }\"\n [ngStyle]=\"{\n 'border-top-left-radius': disableLeftBorderRadius ? '0px' : '',\n 'border-bottom-left-radius': disableLeftBorderRadius ? '0px' : '',\n 'border-top-right-radius': disableRightBorderRadius ? '0px' : '',\n 'border-bottom-right-radius': disableRightBorderRadius ? '0px' : '',\n width: width\n }\"\n>\n <div class=\"loader\" *ngIf=\"showLoader\">\n <div class=\"spinner\"></div>\n </div>\n <span id=\"left-icon\" *ngIf=\"showIcon && iconPosition === 'Left'\">\n <img [src]=\"iconUrl\" alt=\"\" />\n </span>\n <span class=\"button-text\">{{ name }}</span>\n <span id=\"right-icon\" *ngIf=\"showIcon && iconPosition === 'Right'\">\n <img [src]=\"iconUrl\" alt=\"\" />\n </span>\n</button>\n", styles: ["button{font-family:Lato,sans-serif!important;border:none;padding:0;margin:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#181f33;background-color:#fff}.solid{color:#fff;background:#0937b2}.solid:hover:enabled{background:#062a99}.solid:active:enabled{background:#041f80}.solid:disabled{color:#929dab;background:#f5f5f5}.outline{border:1px solid #0937b2;color:#0937b2;background:#fff}.outline:hover:enabled{background:#f0f3fa}.outline:active:enabled{background:#dae1f3}.outline:disabled{color:#929dab;border:1px solid #929dab}.text{color:#181f33;background:#fff}.text:hover:enabled{background:#f0f3fa}.text:active:enabled{background:#dae1f3}.text:disabled{color:#929dab}.large{height:56px;padding:16px;border-radius:10px;font-style:normal;font-weight:700;font-size:16px;line-height:24px;letter-spacing:.5px}.medium{height:44px;padding:10px 16px;border-radius:8px;font-style:normal;font-weight:400;font-size:16px;line-height:24px;letter-spacing:.2px}.small{height:32px;padding:6px 16px;border-radius:6px;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.25px}.large-mobile{height:44px;padding:12px;border-radius:8px;font-style:normal;font-weight:700;font-size:14px;line-height:20px;letter-spacing:.1px}.small-mobile{height:32px;padding:6px 12px;border-radius:8px;font-style:normal;font-weight:700;font-size:14px;line-height:20px;letter-spacing:.1px}span{display:flex;justify-content:center;align-items:center}#left-icon{margin-right:8px}#right-icon{margin-left:8px}.loader{display:flex;justify-content:center;align-items:center}.spinner{width:16px;height:16px;border:2px solid transparent;color:#0937b2;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}button.loading .button-text,button.loading #left-icon,button.loading #right-icon{visibility:hidden}button.loading .loader{visibility:visible;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}button.loading{position:relative}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
76
- }], () => [], { name: [{
77
- type: Input
78
- }], type: [{
79
- type: Input
80
- }], size: [{
81
- type: Input
82
- }], width: [{
83
- type: Input
84
- }], showIcon: [{
85
- type: Input
86
- }], iconUrl: [{
87
- type: Input
88
- }], iconPosition: [{
89
- type: Input
90
- }], disabled: [{
91
- type: Input
92
- }], disableLeftBorderRadius: [{
93
- type: Input
94
- }], disableRightBorderRadius: [{
95
- type: Input
96
- }], showLoader: [{
97
- type: Input
101
+ args: [{ selector: "mis-button", template: "<button\n (click)=\"onClick($event)\"\n [ngClass]=\"classes()\"\n [ngStyle]=\"styles()\"\n>\n <!-- Loader -->\n <div class=\"loader\" *ngIf=\"showSpinner()\">\n <div class=\"spinner\"></div>\n </div>\n\n <!-- Left Icon -->\n <span id=\"left-icon\" *ngIf=\"showLeftIcon()\">\n <img [src]=\"iconUrl()\" alt=\"\" />\n </span>\n\n <!-- Button Text -->\n <span class=\"button-text\">{{ name() }}</span>\n\n <!-- Right Icon -->\n <span id=\"right-icon\" *ngIf=\"showRightIcon()\">\n <img [src]=\"iconUrl()\" alt=\"\" />\n </span>\n</button>\n", styles: ["button{font-family:Lato,sans-serif!important;border:none;padding:0;margin:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#181f33;background-color:#fff}.solid{color:#fff;background:#0937b2}.solid:hover:enabled{background:#062a99}.solid:active:enabled{background:#041f80}.solid:disabled{color:#929dab;background:#f5f5f5}.outline{border:1px solid #0937b2;color:#0937b2;background:#fff}.outline:hover:enabled{background:#f0f3fa}.outline:active:enabled{background:#dae1f3}.outline:disabled{color:#929dab;border:1px solid #929dab}.text{color:#181f33;background:#fff}.text:hover:enabled{background:#f0f3fa}.text:active:enabled{background:#dae1f3}.text:disabled{color:#929dab}.large{height:56px;padding:16px;border-radius:10px;font-style:normal;font-weight:700;font-size:16px;line-height:24px;letter-spacing:.5px}.medium{height:44px;padding:10px 16px;border-radius:8px;font-style:normal;font-weight:400;font-size:16px;line-height:24px;letter-spacing:.2px}.small{height:32px;padding:6px 16px;border-radius:6px;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.25px}.large-mobile{height:44px;padding:12px;border-radius:8px;font-style:normal;font-weight:700;font-size:14px;line-height:20px;letter-spacing:.1px}.small-mobile{height:32px;padding:6px 12px;border-radius:8px;font-style:normal;font-weight:700;font-size:14px;line-height:20px;letter-spacing:.1px}span{display:flex;justify-content:center;align-items:center}#left-icon{margin-right:8px}#right-icon{margin-left:8px}.loader{display:flex;justify-content:center;align-items:center}.spinner{width:16px;height:16px;border:2px solid transparent;color:#0937b2;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}button.loading .button-text,button.loading #left-icon,button.loading #right-icon{visibility:hidden}button.loading .loader{visibility:visible;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}button.loading{position:relative}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
102
+ }], () => [], { hostDisabled: [{
103
+ type: HostBinding,
104
+ args: ['disabled']
98
105
  }], click: [{
99
106
  type: Output
100
107
  }] }); })();
101
108
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ButtonComponent, { className: "ButtonComponent" }); })();
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUE2QixNQUFNLGVBQWUsQ0FBQzs7Ozs7O0lDc0J4Ryw4QkFBdUM7SUFDckMseUJBQTJCO0lBQzdCLGlCQUFNOzs7SUFDTiwrQkFBaUU7SUFDL0QseUJBQThCO0lBQ2hDLGlCQUFPOzs7SUFEQSxjQUFlO0lBQWYsc0RBQWU7OztJQUd0QiwrQkFBbUU7SUFDakUseUJBQThCO0lBQ2hDLGlCQUFPOzs7SUFEQSxjQUFlO0lBQWYsc0RBQWU7O0FEdkJ4QixNQUFNLE9BQU8sZUFBZTtJQWtCMUI7UUFqQlMsU0FBSSxHQUFXLFNBQVMsQ0FBQztRQUN6QixTQUFJLEdBQWlDLE9BQU8sQ0FBQztRQUM3QyxTQUFJLEdBQXlELFFBQVEsQ0FBQztRQUN0RSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRW5CLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixpQkFBWSxHQUFxQixNQUFNLENBQUM7UUFFeEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQiw0QkFBdUIsR0FBWSxLQUFLLENBQUM7UUFDekMsNkJBQXdCLEdBQVksS0FBSyxDQUFDO1FBQzFDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFckMseUNBQXlDO1FBQy9CLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBRTNCLENBQUM7SUFFaEIsUUFBUSxLQUFJLENBQUM7SUFFYixPQUFPLENBQUMsS0FBSztRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO2dIQTFCVSxlQUFlO29FQUFmLGVBQWU7WUNQNUIsaUNBcUJDO1lBcEJDLGtHQUFTLG1CQUFlLElBQUM7WUF3QnpCLEFBSEEsZ0VBQXVDLHFEQUcwQjtZQUdqRSwrQkFBMEI7WUFBQSxZQUFVO1lBQUEsaUJBQU87WUFDM0Msa0VBQW1FO1lBR3JFLGlCQUFTOztZQWxCUCxBQVhBLEFBREEseURBQW1DLCtPQVdqQyw2TkFPQTtZQUVtQixjQUFnQjtZQUFoQixxQ0FBZ0I7WUFHZixjQUF5QztZQUF6QyxrRUFBeUM7WUFHckMsZUFBVTtZQUFWLDhCQUFVO1lBQ2IsY0FBMEM7WUFBMUMsbUVBQTBDOzs7aUZEdEJ0RCxlQUFlO2NBTDNCLFNBQVM7MkJBQ0UsWUFBWTtvQkFLYixJQUFJO2tCQUFaLEtBQUs7WUFDRyxJQUFJO2tCQUFaLEtBQUs7WUFDRyxJQUFJO2tCQUFaLEtBQUs7WUFDRyxLQUFLO2tCQUFiLEtBQUs7WUFFRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csT0FBTztrQkFBZixLQUFLO1lBQ0csWUFBWTtrQkFBcEIsS0FBSztZQUVHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyx1QkFBdUI7a0JBQS9CLEtBQUs7WUFDRyx3QkFBd0I7a0JBQWhDLEtBQUs7WUFDRyxVQUFVO2tCQUFsQixLQUFLO1lBR0ksS0FBSztrQkFBZCxNQUFNOztrRkFoQkksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENvbnRlbnRDaGlsZCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwibWlzLWJ1dHRvblwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2J1dHRvbi5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vYnV0dG9uLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyA9IFwiRW5hYmxlZFwiO1xuICBASW5wdXQoKSB0eXBlOiBcIlNvbGlkXCIgfCBcIk91dGxpbmVcIiB8IFwiVGV4dFwiID0gXCJTb2xpZFwiO1xuICBASW5wdXQoKSBzaXplOiBcIlNtYWxsXCIgfCBcIk1lZGl1bVwiIHwgXCJMYXJnZVwiIHwgXCJTbWFsbC1NXCIgfCBcIkxhcmdlLU1cIiA9IFwiTWVkaXVtXCI7XG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmcgPSBcIlwiO1xuXG4gIEBJbnB1dCgpIHNob3dJY29uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGljb25Vcmw6IHN0cmluZyA9IFwiXCI7XG4gIEBJbnB1dCgpIGljb25Qb3NpdGlvbjogXCJMZWZ0XCIgfCBcIlJpZ2h0XCIgPSBcIkxlZnRcIjtcblxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlTGVmdEJvcmRlclJhZGl1czogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlUmlnaHRCb3JkZXJSYWRpdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0xvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBFbWl0cyBldmVudCB3aGVuIGJ1dHRvbiBpcyBjbGlja2VkICovXG4gIEBPdXRwdXQoKSBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgb25DbGljayhldmVudCkge1xuICAgIGlmICghdGhpcy5zaG93TG9hZGVyICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmNsaWNrLmVtaXQoZXZlbnQpO1xuICAgIH1cbiAgfVxufVxuIiwiPGJ1dHRvblxuICAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHNob3dMb2FkZXJcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgc29saWQ6IHR5cGUgPT09ICdTb2xpZCcsXG4gICAgb3V0bGluZTogdHlwZSA9PT0gJ091dGxpbmUnLFxuICAgIHRleHQ6IHR5cGUgPT09ICdUZXh0JyxcbiAgICBsYXJnZTogc2l6ZSA9PT0gJ0xhcmdlJyxcbiAgICBtZWRpdW06IHNpemUgPT09ICdNZWRpdW0nLFxuICAgIHNtYWxsOiBzaXplID09PSAnU21hbGwnLFxuICAgICdsYXJnZS1tb2JpbGUnOiBzaXplID09PSAnTGFyZ2UtTScsXG4gICAgJ3NtYWxsLW1vYmlsZSc6IHNpemUgPT09ICdTbWFsbC1NJyxcbiAgICBsb2FkaW5nOiBzaG93TG9hZGVyXG4gIH1cIlxuICBbbmdTdHlsZV09XCJ7XG4gICAgJ2JvcmRlci10b3AtbGVmdC1yYWRpdXMnOiBkaXNhYmxlTGVmdEJvcmRlclJhZGl1cyA/ICcwcHgnIDogJycsXG4gICAgJ2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMnOiBkaXNhYmxlTGVmdEJvcmRlclJhZGl1cyA/ICcwcHgnIDogJycsXG4gICAgJ2JvcmRlci10b3AtcmlnaHQtcmFkaXVzJzogZGlzYWJsZVJpZ2h0Qm9yZGVyUmFkaXVzID8gJzBweCcgOiAnJyxcbiAgICAnYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMnOiBkaXNhYmxlUmlnaHRCb3JkZXJSYWRpdXMgPyAnMHB4JyA6ICcnLFxuICAgIHdpZHRoOiB3aWR0aFxuICB9XCJcbj5cbiAgPGRpdiBjbGFzcz1cImxvYWRlclwiICpuZ0lmPVwic2hvd0xvYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+XG4gIDwvZGl2PlxuICA8c3BhbiBpZD1cImxlZnQtaWNvblwiICpuZ0lmPVwic2hvd0ljb24gJiYgaWNvblBvc2l0aW9uID09PSAnTGVmdCdcIj5cbiAgICA8aW1nIFtzcmNdPVwiaWNvblVybFwiIGFsdD1cIlwiIC8+XG4gIDwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJidXR0b24tdGV4dFwiPnt7IG5hbWUgfX08L3NwYW4+XG4gIDxzcGFuIGlkPVwicmlnaHQtaWNvblwiICpuZ0lmPVwic2hvd0ljb24gJiYgaWNvblBvc2l0aW9uID09PSAnUmlnaHQnXCI+XG4gICAgPGltZyBbc3JjXT1cImljb25VcmxcIiBhbHQ9XCJcIiAvPlxuICA8L3NwYW4+XG48L2J1dHRvbj5cbiJdfQ==
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7SUNNcEcsOEJBQTBDO0lBQ3hDLHlCQUEyQjtJQUM3QixpQkFBTTs7O0lBR04sK0JBQTRDO0lBQzFDLHlCQUFnQztJQUNsQyxpQkFBTzs7O0lBREEsY0FBaUI7SUFBakIsd0RBQWlCOzs7SUFPeEIsK0JBQThDO0lBQzVDLHlCQUFnQztJQUNsQyxpQkFBTzs7O0lBREEsY0FBaUI7SUFBakIsd0RBQWlCOztBRGIxQixNQUFNLE9BQU8sZUFBZTtJQThDMUI7UUE3Q0EsU0FBUztRQUNULFNBQUksR0FBRyxLQUFLLENBQVMsU0FBUyxDQUFDLENBQUM7UUFDaEMsU0FBSSxHQUFHLEtBQUssQ0FBK0IsT0FBTyxDQUFDLENBQUM7UUFDcEQsU0FBSSxHQUFHLEtBQUssQ0FBdUQsUUFBUSxDQUFDLENBQUM7UUFDN0UsVUFBSyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUMxQixhQUFRLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLFlBQU8sR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDNUIsaUJBQVksR0FBRyxLQUFLLENBQW1CLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLGFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDakMsNEJBQXVCLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFD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UCxBQURBLHVDQUFxQix5QkFDRDtZQUdDLGNBQW1CO1lBQW5CLHdDQUFtQjtZQUtsQixjQUFvQjtZQUFwQix5Q0FBb0I7WUFLaEIsZUFBWTtZQUFaLGdDQUFZO1lBR2YsY0FBcUI7WUFBckIsMENBQXFCOzs7aUZEWmpDLGVBQWU7Y0FMM0IsU0FBUzsyQkFDRSxZQUFZO29CQTZDRyxZQUFZO2tCQUFwQyxXQUFXO21CQUFDLFVBQVU7WUFHYixLQUFLO2tCQUFkLE1BQU07O2tGQTVDSSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgaW5wdXQsIGNvbXB1dGVkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy1idXR0b25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9idXR0b24uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2J1dHRvbi5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyBJbnB1dHNcbiAgbmFtZSA9IGlucHV0PHN0cmluZz4oXCJFbmFibGVkXCIpO1xuICB0eXBlID0gaW5wdXQ8XCJTb2xpZFwiIHwgXCJPdXRsaW5lXCIgfCBcIlRleHRcIj4oXCJTb2xpZFwiKTtcbiAgc2l6ZSA9IGlucHV0PFwiU21hbGxcIiB8IFwiTWVkaXVtXCIgfCBcIkxhcmdlXCIgfCBcIlNtYWxsLU1cIiB8IFwiTGFyZ2UtTVwiPihcIk1lZGl1bVwiKTtcbiAgd2lkdGggPSBpbnB1dDxzdHJpbmc+KFwiXCIpO1xuICBzaG93SWNvbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgaWNvblVybCA9IGlucHV0PHN0cmluZz4oXCJcIik7XG4gIGljb25Qb3NpdGlvbiA9IGlucHV0PFwiTGVmdFwiIHwgXCJSaWdodFwiPihcIkxlZnRcIik7XG4gIGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBkaXNhYmxlTGVmdEJvcmRlclJhZGl1cyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgZGlzYWJsZVJpZ2h0Qm9yZGVyUmFkaXVzID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBzaG93TG9hZGVyID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIC8vIENvbXB1dGVkIHNpZ25hbHMgZm9yIHRlbXBsYXRlIGJpbmRpbmdzXG4gIHJlYWRvbmx5IGNsYXNzZXMgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgIHNvbGlkOiB0aGlzLnR5cGUoKSA9PT0gJ1NvbGlkJyxcbiAgICBvdXRsaW5lOiB0aGlzLnR5cGUoKSA9PT0gJ091dGxpbmUnLFxuICAgIHRleHQ6IHRoaXMudHlwZSgpID09PSAnVGV4dCcsXG4gICAgbGFyZ2U6IHRoaXMuc2l6ZSgpID09PSAnTGFyZ2UnLFxuICAgIG1lZGl1bTogdGhpcy5zaXplKCkgPT09ICdNZWRpdW0nLFxuICAgIHNtYWxsOiB0aGlzLnNpemUoKSA9PT0gJ1NtYWxsJyxcbiAgICAnbGFyZ2UtbW9iaWxlJzogdGhpcy5zaXplKCkgPT09ICdMYXJnZS1NJyxcbiAgICAnc21hbGwtbW9iaWxlJzogdGhpcy5zaXplKCkgPT09ICdTbWFsbC1NJyxcbiAgICBsb2FkaW5nOiB0aGlzLnNob3dMb2FkZXIoKVxuICB9KSk7XG5cbiAgcmVhZG9ubHkgc3R5bGVzID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICAnYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyc6IHRoaXMuZGlzYWJsZUxlZnRCb3JkZXJSYWRpdXMoKSA/ICcwcHgnIDogJycsXG4gICAgJ2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMnOiB0aGlzLmRpc2FibGVMZWZ0Qm9yZGVyUmFkaXVzKCkgPyAnMHB4JyA6ICcnLFxuICAgICdib3JkZXItdG9wLXJpZ2h0LXJhZGl1cyc6IHRoaXMuZGlzYWJsZVJpZ2h0Qm9yZGVyUmFkaXVzKCkgPyAnMHB4JyA6ICcnLFxuICAgICdib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cyc6IHRoaXMuZGlzYWJsZVJpZ2h0Qm9yZGVyUmFkaXVzKCkgPyAnMHB4JyA6ICcnLFxuICAgIHdpZHRoOiB0aGlzLndpZHRoKClcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IHNob3dMZWZ0SWNvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2hvd0ljb24oKSAmJiB0aGlzLmljb25Qb3NpdGlvbigpID09PSAnTGVmdCcpO1xuICByZWFkb25seSBzaG93UmlnaHRJY29uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zaG93SWNvbigpICYmIHRoaXMuaWNvblBvc2l0aW9uKCkgPT09ICdSaWdodCcpO1xuICByZWFkb25seSBzaG93U3Bpbm5lciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2hvd0xvYWRlcigpKTtcblxuICAvLyBDb21wdXRlZCBkaXNhYmxlZCBzdGF0ZVxuICByZWFkb25seSBpc0Rpc2FibGVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5kaXNhYmxlZCgpIHx8IHRoaXMuc2hvd0xvYWRlcigpKTtcbiAgQEhvc3RCaW5kaW5nKCdkaXNhYmxlZCcpIGhvc3REaXNhYmxlZCA9IHRoaXMuaXNEaXNhYmxlZCgpO1xuXG4gIC8vIE91dHB1dFxuICBAT3V0cHV0KCkgY2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIG9uQ2xpY2soZXZlbnQ6IGFueSkge1xuICAgIGlmICghdGhpcy5pc0Rpc2FibGVkKCkpIHtcbiAgICAgIHRoaXMuY2xpY2suZW1pdChldmVudCk7XG4gICAgfVxuICB9ICBcbn1cbiIsIjxidXR0b25cbiAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXG4gIFtuZ0NsYXNzXT1cImNsYXNzZXMoKVwiXG4gIFtuZ1N0eWxlXT1cInN0eWxlcygpXCJcbj5cbiAgPCEtLSBMb2FkZXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJsb2FkZXJcIiAqbmdJZj1cInNob3dTcGlubmVyKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIExlZnQgSWNvbiAtLT5cbiAgPHNwYW4gaWQ9XCJsZWZ0LWljb25cIiAqbmdJZj1cInNob3dMZWZ0SWNvbigpXCI+XG4gICAgPGltZyBbc3JjXT1cImljb25VcmwoKVwiIGFsdD1cIlwiIC8+XG4gIDwvc3Bhbj5cblxuICA8IS0tIEJ1dHRvbiBUZXh0IC0tPlxuICA8c3BhbiBjbGFzcz1cImJ1dHRvbi10ZXh0XCI+e3sgbmFtZSgpIH19PC9zcGFuPlxuXG4gIDwhLS0gUmlnaHQgSWNvbiAtLT5cbiAgPHNwYW4gaWQ9XCJyaWdodC1pY29uXCIgKm5nSWY9XCJzaG93UmlnaHRJY29uKClcIj5cbiAgICA8aW1nIFtzcmNdPVwiaWNvblVybCgpXCIgYWx0PVwiXCIgLz5cbiAgPC9zcGFuPlxuPC9idXR0b24+XG4iXX0=
@@ -1,61 +1,57 @@
1
- import { Directive, HostBinding, Input } from "@angular/core";
1
+ import { Directive, HostBinding, input, effect } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  export class ButtonDirective {
4
4
  constructor(el, renderer) {
5
5
  this.el = el;
6
6
  this.renderer = renderer;
7
- this.type = "none";
8
- this.size = "md";
7
+ this.type = input("none");
8
+ this.size = input("md");
9
9
  this.elementClass = "mis-btn";
10
+ this.previousTypeClass = "";
11
+ this.previousSizeClass = "";
12
+ // Maps for easier maintenance
13
+ this.typeClassMap = {
14
+ primary: "mis-primary",
15
+ outline: "mis-outline",
16
+ none: "mis-none",
17
+ };
18
+ this.sizeClassMap = {
19
+ lg: "mis-btn-lg",
20
+ md: "mis-btn-md",
21
+ sm: "mis-btn-sm",
22
+ };
23
+ // React to type changes
24
+ effect(() => {
25
+ const typeClass = this.typeClassMap[this.type()] || "mis-none";
26
+ this.updateClass(typeClass, "type");
27
+ this.previousTypeClass = typeClass;
28
+ });
29
+ // React to size changes
30
+ effect(() => {
31
+ const sizeClass = this.sizeClassMap[this.size()] || "mis-btn-md";
32
+ this.updateClass(sizeClass, "size");
33
+ this.previousSizeClass = sizeClass;
34
+ });
10
35
  }
11
- ngAfterViewInit() {
12
- this.bindTypeClass();
13
- this.bindSizeClass();
14
- }
15
- bindTypeClass() {
16
- let className = "";
17
- switch (this.type) {
18
- case "primary":
19
- className = "mis-primary";
20
- break;
21
- case "outline":
22
- className = "mis-outline";
23
- break;
24
- default:
25
- className = "mis-none";
26
- }
27
- this.renderer.addClass(this.el.nativeElement, className);
28
- }
29
- bindSizeClass() {
30
- let className = "";
31
- switch (this.size) {
32
- case "lg":
33
- className = "mis-btn-lg";
34
- break;
35
- case "sm":
36
- className = "mis-btn-sm";
37
- break;
38
- default:
39
- className = "mis-btn-md";
36
+ updateClass(newClass, kind) {
37
+ const prevClass = kind === "type" ? this.previousTypeClass : this.previousSizeClass;
38
+ if (prevClass) {
39
+ this.renderer.removeClass(this.el.nativeElement, prevClass);
40
40
  }
41
- this.renderer.addClass(this.el.nativeElement, className);
41
+ this.renderer.addClass(this.el.nativeElement, newClass);
42
42
  }
43
43
  static { this.ɵfac = function ButtonDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ButtonDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2)); }; }
44
44
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ButtonDirective, selectors: [["", "mis-button", ""]], hostVars: 2, hostBindings: function ButtonDirective_HostBindings(rf, ctx) { if (rf & 2) {
45
45
  i0.ɵɵclassMap(ctx.elementClass);
46
- } }, inputs: { type: "type", size: "size" } }); }
46
+ } }, inputs: { type: [1, "type"], size: [1, "size"] } }); }
47
47
  }
48
48
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ButtonDirective, [{
49
49
  type: Directive,
50
50
  args: [{
51
51
  selector: "[mis-button]"
52
52
  }]
53
- }], () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], { type: [{
54
- type: Input
55
- }], size: [{
56
- type: Input
57
- }], elementClass: [{
53
+ }], () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], { elementClass: [{
58
54
  type: HostBinding,
59
55
  args: ["class"]
60
56
  }] }); })();
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2J1dHRvbi9idXR0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFdBQVcsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7O0FBS3BHLE1BQU0sT0FBTyxlQUFlO0lBSzFCLFlBQW9CLEVBQWMsRUFBVSxRQUFtQjtRQUEzQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUp0RCxTQUFJLEdBQW1DLE1BQU0sQ0FBQztRQUM5QyxTQUFJLEdBQXVCLElBQUksQ0FBQztRQUNuQixpQkFBWSxHQUFHLFNBQVMsQ0FBQztJQUVtQixDQUFDO0lBRW5FLGVBQWU7UUFDYixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNuQixRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQixLQUFLLFNBQVM7Z0JBQ1osU0FBUyxHQUFHLGFBQWEsQ0FBQztnQkFDMUIsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixTQUFTLEdBQUcsYUFBYSxDQUFDO2dCQUMxQixNQUFNO1lBQ1I7Z0JBQ0UsU0FBUyxHQUFHLFVBQVUsQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ25CLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xCLEtBQUssSUFBSTtnQkFDUCxTQUFTLEdBQUcsWUFBWSxDQUFDO2dCQUN6QixNQUFNO1lBQ1IsS0FBSyxJQUFJO2dCQUNQLFNBQVMsR0FBRyxZQUFZLENBQUM7Z0JBQ3pCLE1BQU07WUFDUjtnQkFDRSxTQUFTLEdBQUcsWUFBWSxDQUFDO1FBQzdCLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDO2dIQXhDVSxlQUFlO29FQUFmLGVBQWU7WUFBZiwrQkFBZTs7O2lGQUFmLGVBQWU7Y0FIM0IsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxjQUFjO2FBQ3pCO21FQUVVLElBQUk7a0JBQVosS0FBSztZQUNHLElBQUk7a0JBQVosS0FBSztZQUNnQixZQUFZO2tCQUFqQyxXQUFXO21CQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgUmVuZGVyZXIyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIlttaXMtYnV0dG9uXVwiXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSB0eXBlOiBcInByaW1hcnlcIiB8IFwib3V0bGluZVwiIHwgXCJub25lXCIgPSBcIm5vbmVcIjtcbiAgQElucHV0KCkgc2l6ZTogXCJzbVwiIHwgXCJtZFwiIHwgXCJsZ1wiID0gXCJtZFwiO1xuICBASG9zdEJpbmRpbmcoXCJjbGFzc1wiKSBlbGVtZW50Q2xhc3MgPSBcIm1pcy1idG5cIjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYmluZFR5cGVDbGFzcygpO1xuICAgIHRoaXMuYmluZFNpemVDbGFzcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBiaW5kVHlwZUNsYXNzKCk6IHZvaWQge1xuICAgIGxldCBjbGFzc05hbWUgPSBcIlwiO1xuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIFwicHJpbWFyeVwiOlxuICAgICAgICBjbGFzc05hbWUgPSBcIm1pcy1wcmltYXJ5XCI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm91dGxpbmVcIjpcbiAgICAgICAgY2xhc3NOYW1lID0gXCJtaXMtb3V0bGluZVwiO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNsYXNzTmFtZSA9IFwibWlzLW5vbmVcIjtcbiAgICB9XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gIH1cblxuICBwcml2YXRlIGJpbmRTaXplQ2xhc3MoKTogdm9pZCB7XG4gICAgbGV0IGNsYXNzTmFtZSA9IFwiXCI7XG4gICAgc3dpdGNoICh0aGlzLnNpemUpIHtcbiAgICAgIGNhc2UgXCJsZ1wiOlxuICAgICAgICBjbGFzc05hbWUgPSBcIm1pcy1idG4tbGdcIjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwic21cIjpcbiAgICAgICAgY2xhc3NOYW1lID0gXCJtaXMtYnRuLXNtXCI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY2xhc3NOYW1lID0gXCJtaXMtYnRuLW1kXCI7XG4gICAgfVxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCBjbGFzc05hbWUpO1xuICB9XG59XG4iXX0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2J1dHRvbi9idXR0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsV0FBVyxFQUFhLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzdGLE1BQU0sT0FBTyxlQUFlO0lBUzFCLFlBQW9CLEVBQWMsRUFBVSxRQUFtQjtRQUEzQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQVIvRCxTQUFJLEdBQUcsS0FBSyxDQUFpQyxNQUFNLENBQUMsQ0FBQztRQUNyRCxTQUFJLEdBQUcsS0FBSyxDQUFxQixJQUFJLENBQUMsQ0FBQztRQUVqQixpQkFBWSxHQUFHLFNBQVMsQ0FBQztRQUV2QyxzQkFBaUIsR0FBVyxFQUFFLENBQUM7UUFDL0Isc0JBQWlCLEdBQVcsRUFBRSxDQUFDO1FBMEJ2Qyw4QkFBOEI7UUFDdEIsaUJBQVksR0FBMkI7WUFDN0MsT0FBTyxFQUFFLGFBQWE7WUFDdEIsT0FBTyxFQUFFLGFBQWE7WUFDdEIsSUFBSSxFQUFFLFVBQVU7U0FDakIsQ0FBQztRQUVNLGlCQUFZLEdBQTJCO1lBQzdDLEVBQUUsRUFBRSxZQUFZO1lBQ2hCLEVBQUUsRUFBRSxZQUFZO1lBQ2hCLEVBQUUsRUFBRSxZQUFZO1NBQ2pCLENBQUM7UUFsQ0Esd0JBQXdCO1FBQ3hCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQztZQUMvRCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBRUgsd0JBQXdCO1FBQ3hCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQztZQUNqRSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FBQyxRQUFnQixFQUFFLElBQXFCO1FBQ3pELE1BQU0sU0FBUyxHQUFHLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ3BGLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUQsQ0FBQztnSEEvQlUsZUFBZTtvRUFBZixlQUFlO1lBQWYsK0JBQWU7OztpRkFBZixlQUFlO2NBSDNCLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsY0FBYzthQUN6QjttRUFLdUIsWUFBWTtrQkFBakMsV0FBVzttQkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgUmVuZGVyZXIyLCBpbnB1dCwgZWZmZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIlttaXMtYnV0dG9uXVwiXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkRpcmVjdGl2ZSB7XG4gIHR5cGUgPSBpbnB1dDxcInByaW1hcnlcIiB8IFwib3V0bGluZVwiIHwgXCJub25lXCI+KFwibm9uZVwiKTtcbiAgc2l6ZSA9IGlucHV0PFwic21cIiB8IFwibWRcIiB8IFwibGdcIj4oXCJtZFwiKTtcblxuICBASG9zdEJpbmRpbmcoXCJjbGFzc1wiKSBlbGVtZW50Q2xhc3MgPSBcIm1pcy1idG5cIjtcblxuICBwcml2YXRlIHByZXZpb3VzVHlwZUNsYXNzOiBzdHJpbmcgPSBcIlwiO1xuICBwcml2YXRlIHByZXZpb3VzU2l6ZUNsYXNzOiBzdHJpbmcgPSBcIlwiO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgIC8vIFJlYWN0IHRvIHR5cGUgY2hhbmdlc1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCB0eXBlQ2xhc3MgPSB0aGlzLnR5cGVDbGFzc01hcFt0aGlzLnR5cGUoKV0gfHwgXCJtaXMtbm9uZVwiO1xuICAgICAgdGhpcy51cGRhdGVDbGFzcyh0eXBlQ2xhc3MsIFwidHlwZVwiKTtcbiAgICAgIHRoaXMucHJldmlvdXNUeXBlQ2xhc3MgPSB0eXBlQ2xhc3M7XG4gICAgfSk7XG5cbiAgICAvLyBSZWFjdCB0byBzaXplIGNoYW5nZXNcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3Qgc2l6ZUNsYXNzID0gdGhpcy5zaXplQ2xhc3NNYXBbdGhpcy5zaXplKCldIHx8IFwibWlzLWJ0bi1tZFwiO1xuICAgICAgdGhpcy51cGRhdGVDbGFzcyhzaXplQ2xhc3MsIFwic2l6ZVwiKTtcbiAgICAgIHRoaXMucHJldmlvdXNTaXplQ2xhc3MgPSBzaXplQ2xhc3M7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNsYXNzKG5ld0NsYXNzOiBzdHJpbmcsIGtpbmQ6IFwidHlwZVwiIHwgXCJzaXplXCIpIHtcbiAgICBjb25zdCBwcmV2Q2xhc3MgPSBraW5kID09PSBcInR5cGVcIiA/IHRoaXMucHJldmlvdXNUeXBlQ2xhc3MgOiB0aGlzLnByZXZpb3VzU2l6ZUNsYXNzO1xuICAgIGlmIChwcmV2Q2xhc3MpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCBwcmV2Q2xhc3MpO1xuICAgIH1cbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgbmV3Q2xhc3MpO1xuICB9XG5cbiAgLy8gTWFwcyBmb3IgZWFzaWVyIG1haW50ZW5hbmNlXG4gIHByaXZhdGUgdHlwZUNsYXNzTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIHByaW1hcnk6IFwibWlzLXByaW1hcnlcIixcbiAgICBvdXRsaW5lOiBcIm1pcy1vdXRsaW5lXCIsXG4gICAgbm9uZTogXCJtaXMtbm9uZVwiLFxuICB9O1xuXG4gIHByaXZhdGUgc2l6ZUNsYXNzTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIGxnOiBcIm1pcy1idG4tbGdcIixcbiAgICBtZDogXCJtaXMtYnRuLW1kXCIsXG4gICAgc206IFwibWlzLWJ0bi1zbVwiLFxuICB9O1xufVxuIl19
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from "@angular/core";
1
+ import { Component, EventEmitter, Output, ViewChild, ChangeDetectionStrategy, input, signal, effect } from "@angular/core";
2
2
  import { UntypedFormControl } from "@angular/forms";
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
@@ -10,115 +10,120 @@ function CheckboxComponent_span_2_Template(rf, ctx) { if (rf & 1) {
10
10
  i0.ɵɵelement(0, "span", 4);
11
11
  } if (rf & 2) {
12
12
  const ctx_r0 = i0.ɵɵnextContext();
13
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(1, _c2, ctx_r0.formControl.disabled, ctx_r0.isError && !ctx_r0.formControl.disabled));
13
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(1, _c2, ctx_r0.isDisabledComputed, ctx_r0.isErrorComputed && !ctx_r0.isDisabledComputed));
14
14
  } }
15
15
  function CheckboxComponent_span_3_Template(rf, ctx) { if (rf & 1) {
16
16
  i0.ɵɵelement(0, "span", 5);
17
17
  } if (rf & 2) {
18
18
  const ctx_r0 = i0.ɵɵnextContext();
19
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(1, _c2, ctx_r0.formControl.disabled, ctx_r0.isError && !ctx_r0.formControl.disabled));
19
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(1, _c2, ctx_r0.isDisabledComputed, ctx_r0.isErrorComputed && !ctx_r0.isDisabledComputed));
20
20
  } }
21
21
  export class CheckboxComponent {
22
- set type(value) {
23
- this.isError = value === "Error";
24
- }
25
- set indeterminate(value) {
26
- if (value) {
27
- this.formControl.setValue(true);
28
- this.valueChange.emit({
29
- name: this.name,
30
- value: true
31
- });
32
- }
33
- else {
34
- this.formControl.setValue(false);
35
- this.valueChange.emit({
36
- name: this.name,
37
- value: false
38
- });
39
- }
40
- this.isIndeterminate = value;
41
- }
42
- set checked(value) {
43
- if (value)
44
- this.formControl.setValue(true);
45
- else
46
- this.formControl.setValue(false);
47
- }
48
- set disabled(value) {
49
- if (value)
50
- this.formControl.disable();
51
- else
52
- this.formControl.enable();
53
- }
54
22
  constructor() {
55
- this.isError = false;
56
- this.isIndeterminate = false;
57
- this.name = "";
58
- this.formControl = new UntypedFormControl();
23
+ this.isError = signal(false);
24
+ this.isIndeterminate = signal(false);
25
+ this.isChecked = signal(false);
26
+ this.isDisabled = signal(false);
27
+ this.type = input("Default");
28
+ this.indeterminate = input(false);
29
+ this.checked = input(false);
30
+ this.disabled = input(false);
31
+ this.name = input("");
32
+ this.formControl = input(new UntypedFormControl());
59
33
  this.valueChange = new EventEmitter();
34
+ // Handle input signal changes
35
+ effect(() => {
36
+ // Update error state based on type
37
+ this.isError.set(this.type() === "Error");
38
+ }, { allowSignalWrites: true });
39
+ effect(() => {
40
+ // Handle indeterminate state
41
+ const indeterminateValue = this.indeterminate();
42
+ this.isIndeterminate.set(indeterminateValue);
43
+ if (indeterminateValue) {
44
+ this.formControl().setValue(true);
45
+ this.valueChange.emit({
46
+ name: this.name(),
47
+ value: true
48
+ });
49
+ }
50
+ }, { allowSignalWrites: true });
51
+ effect(() => {
52
+ // Handle checked state
53
+ if (this.checked()) {
54
+ this.formControl().setValue(true);
55
+ }
56
+ else {
57
+ this.formControl().setValue(false);
58
+ }
59
+ }, { allowSignalWrites: true });
60
+ effect(() => {
61
+ // Handle disabled state
62
+ if (this.disabled()) {
63
+ this.formControl().disable();
64
+ }
65
+ else {
66
+ this.formControl().enable();
67
+ }
68
+ }, { allowSignalWrites: true });
60
69
  }
61
- ngOnInit() { }
62
70
  toggleState() {
63
- if (this.isIndeterminate) {
64
- this.isIndeterminate = false;
65
- this.formControl.setValue(true);
71
+ if (this.isIndeterminate()) {
72
+ this.isIndeterminate.set(false);
73
+ this.formControl().setValue(true);
66
74
  }
67
75
  else {
68
- if (this.formControl.value)
69
- this.formControl.setValue(false);
70
- else
71
- this.formControl.setValue(true);
76
+ if (this.formControl().value) {
77
+ this.formControl().setValue(false);
78
+ }
79
+ else {
80
+ this.formControl().setValue(true);
81
+ }
72
82
  }
73
83
  this.valueChange.emit({
74
- name: this.name,
75
- value: this.formControl.value
84
+ name: this.name(),
85
+ value: this.formControl().value
76
86
  });
77
87
  }
88
+ // Computed signals for reactive updates
89
+ get isErrorComputed() {
90
+ return this.isError();
91
+ }
92
+ get isDisabledComputed() {
93
+ return this.formControl().disabled;
94
+ }
78
95
  static { this.ɵfac = function CheckboxComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CheckboxComponent)(); }; }
79
96
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CheckboxComponent, selectors: [["mis-checkbox"]], viewQuery: function CheckboxComponent_Query(rf, ctx) { if (rf & 1) {
80
97
  i0.ɵɵviewQuery(_c0, 5);
81
98
  } if (rf & 2) {
82
99
  let _t;
83
100
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputBox = _t.first);
84
- } }, inputs: { type: "type", indeterminate: "indeterminate", checked: "checked", disabled: "disabled", name: "name", formControl: "formControl" }, outputs: { valueChange: "valueChange" }, decls: 4, vars: 6, consts: [[1, "checkbox-container", 3, "click", "keyup.enter", "ngStyle"], ["hidden", "", "type", "checkbox", 3, "click", "formControl"], ["class", "checkmark", 3, "ngClass", 4, "ngIf"], ["class", "checkmark indeterminate", "tabindex", "0", 3, "ngClass", 4, "ngIf"], [1, "checkmark", 3, "ngClass"], ["tabindex", "0", 1, "checkmark", "indeterminate", 3, "ngClass"]], template: function CheckboxComponent_Template(rf, ctx) { if (rf & 1) {
101
+ } }, inputs: { type: [1, "type"], indeterminate: [1, "indeterminate"], checked: [1, "checked"], disabled: [1, "disabled"], name: [1, "name"], formControl: [1, "formControl"] }, outputs: { valueChange: "valueChange" }, decls: 4, vars: 6, consts: [[1, "checkbox-container", 3, "click", "keyup.enter", "ngStyle"], ["hidden", "", "type", "checkbox", 3, "click", "formControl"], ["class", "checkmark", 3, "ngClass", 4, "ngIf"], ["class", "checkmark indeterminate", "tabindex", "0", 3, "ngClass", 4, "ngIf"], [1, "checkmark", 3, "ngClass"], ["tabindex", "0", 1, "checkmark", "indeterminate", 3, "ngClass"]], template: function CheckboxComponent_Template(rf, ctx) { if (rf & 1) {
85
102
  i0.ɵɵelementStart(0, "div", 0);
86
- i0.ɵɵlistener("click", function CheckboxComponent_Template_div_click_0_listener() { return !ctx.formControl.disabled && ctx.toggleState(); })("keyup.enter", function CheckboxComponent_Template_div_keyup_enter_0_listener() { return !ctx.formControl.disabled && ctx.toggleState(); });
103
+ i0.ɵɵlistener("click", function CheckboxComponent_Template_div_click_0_listener() { return !ctx.isDisabledComputed && ctx.toggleState(); })("keyup.enter", function CheckboxComponent_Template_div_keyup_enter_0_listener() { return !ctx.isDisabledComputed && ctx.toggleState(); });
87
104
  i0.ɵɵelementStart(1, "input", 1);
88
105
  i0.ɵɵlistener("click", function CheckboxComponent_Template_input_click_1_listener($event) { return $event.stopPropagation(); });
89
106
  i0.ɵɵelementEnd();
90
107
  i0.ɵɵtemplate(2, CheckboxComponent_span_2_Template, 1, 4, "span", 2)(3, CheckboxComponent_span_3_Template, 1, 4, "span", 3);
91
108
  i0.ɵɵelementEnd();
92
109
  } if (rf & 2) {
93
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(4, _c1, ctx.formControl.disabled ? "not-allowed" : "pointer"));
110
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(4, _c1, ctx.isDisabledComputed ? "not-allowed" : "pointer"));
94
111
  i0.ɵɵadvance();
95
- i0.ɵɵproperty("formControl", ctx.formControl);
112
+ i0.ɵɵproperty("formControl", ctx.formControl());
96
113
  i0.ɵɵadvance();
97
- i0.ɵɵproperty("ngIf", !ctx.isIndeterminate);
114
+ i0.ɵɵproperty("ngIf", !ctx.isIndeterminate());
98
115
  i0.ɵɵadvance();
99
- i0.ɵɵproperty("ngIf", ctx.isIndeterminate);
100
- } }, dependencies: [i1.NgClass, i1.NgIf, i1.NgStyle, i2.CheckboxControlValueAccessor, i2.NgControlStatus, i2.FormControlDirective], styles: [".checkbox-container[_ngcontent-%COMP%]{height:20px;width:20px;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:sub}.checkbox-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{position:absolute;opacity:0;cursor:pointer;height:20px;width:20px}.checkmark[_ngcontent-%COMP%]{position:absolute;display:flex;justify-content:center;align-items:center;top:0;left:0;height:20px;width:20px;border-radius:4px;background-color:#fff;border:solid 2px #6a737d;box-sizing:border-box}.checkmark[_ngcontent-%COMP%]:hover{border-color:#929dab}.checkmark[_ngcontent-%COMP%]:focus-within, .checkmark[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .09em #fff,0 0 .01em .2em #0937b2;outline:none}.checkbox-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked ~ .checkmark[_ngcontent-%COMP%]{background-color:#0937b2;border-color:#0937b2}.checkbox-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked ~ .checkmark.disabled-checkbox[_ngcontent-%COMP%]{background-color:#c8cdd3;border-color:#c8cdd3}.checkmark[_ngcontent-%COMP%]:after{content:\"\";position:absolute;display:none}.checkbox-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked ~ .checkmark[_ngcontent-%COMP%]:after{display:block}.checkbox-container[_ngcontent-%COMP%] .checkmark[_ngcontent-%COMP%]:after{top:1px;width:4px;height:9px;border:solid white;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.checkbox-container[_ngcontent-%COMP%] .checkmark.indeterminate[_ngcontent-%COMP%]:after{top:2px;width:2px;height:0px;border:solid white;border-width:0 0px 12px 0;border-radius:14px;transform:rotate(90deg);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg)}.disabled-checkbox[_ngcontent-%COMP%]{pointer-events:none;border-color:#c8cdd3}.error[_ngcontent-%COMP%]{border-color:#b00020}.checkbox-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked ~ .error.checkmark[_ngcontent-%COMP%]{border:#b00020!important;background:#b00020!important}.checkbox-container[_ngcontent-%COMP%] .error.checkmark[_ngcontent-%COMP%]:after{top:3px;width:4px;height:9px;border:solid white;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.checkbox-container[_ngcontent-%COMP%] .error.checkmark.indeterminate[_ngcontent-%COMP%]:after{top:4px;width:2px;height:0px;border:solid white;border-width:0 0px 12px 0;border-radius:14px;transform:rotate(90deg);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg)}.error[_ngcontent-%COMP%]:focus-within, .error[_ngcontent-%COMP%]:focus{box-shadow:none!important;outline:none}"] }); }
116
+ i0.ɵɵproperty("ngIf", ctx.isIndeterminate());
117
+ } }, dependencies: [i1.NgClass, i1.NgIf, i1.NgStyle, i2.CheckboxControlValueAccessor, i2.NgControlStatus, i2.FormControlDirective], styles: [".checkbox-container[_ngcontent-%COMP%]{height:20px;width:20px;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:sub}.checkbox-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{position:absolute;opacity:0;cursor:pointer;height:20px;width:20px}.checkmark[_ngcontent-%COMP%]{position:absolute;display:flex;justify-content:center;align-items:center;top:0;left:0;height:20px;width:20px;border-radius:4px;background-color:#fff;border:solid 2px #6a737d;box-sizing:border-box}.checkmark[_ngcontent-%COMP%]:hover{border-color:#929dab}.checkmark[_ngcontent-%COMP%]:focus-within, .checkmark[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .09em #fff,0 0 .01em .2em #0937b2;outline:none}.checkbox-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked ~ .checkmark[_ngcontent-%COMP%]{background-color:#0937b2;border-color:#0937b2}.checkbox-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked ~ .checkmark.disabled-checkbox[_ngcontent-%COMP%]{background-color:#c8cdd3;border-color:#c8cdd3}.checkmark[_ngcontent-%COMP%]:after{content:\"\";position:absolute;display:none}.checkbox-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked ~ .checkmark[_ngcontent-%COMP%]:after{display:block}.checkbox-container[_ngcontent-%COMP%] .checkmark[_ngcontent-%COMP%]:after{top:1px;width:4px;height:9px;border:solid white;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.checkbox-container[_ngcontent-%COMP%] .checkmark.indeterminate[_ngcontent-%COMP%]:after{top:2px;width:2px;height:0px;border:solid white;border-width:0 0px 12px 0;border-radius:14px;transform:rotate(90deg);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg)}.disabled-checkbox[_ngcontent-%COMP%]{pointer-events:none;border-color:#c8cdd3}.error[_ngcontent-%COMP%]{border-color:#b00020}.checkbox-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked ~ .error.checkmark[_ngcontent-%COMP%]{border:#b00020!important;background:#b00020!important}.checkbox-container[_ngcontent-%COMP%] .error.checkmark[_ngcontent-%COMP%]:after{top:3px;width:4px;height:9px;border:solid white;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.checkbox-container[_ngcontent-%COMP%] .error.checkmark.indeterminate[_ngcontent-%COMP%]:after{top:4px;width:2px;height:0px;border:solid white;border-width:0 0px 12px 0;border-radius:14px;transform:rotate(90deg);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg)}.error[_ngcontent-%COMP%]:focus-within, .error[_ngcontent-%COMP%]:focus{box-shadow:none!important;outline:none}"], changeDetection: 0 }); }
101
118
  }
102
119
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CheckboxComponent, [{
103
120
  type: Component,
104
- args: [{ selector: "mis-checkbox", template: "<div\n class=\"checkbox-container\"\n [ngStyle]=\"{ cursor: formControl.disabled ? 'not-allowed' : 'pointer' }\"\n (click)=\"!formControl.disabled && toggleState()\"\n (keyup.enter)=\"!formControl.disabled && toggleState()\"\n>\n <input hidden type=\"checkbox\" [formControl]=\"formControl\" (click)=\"$event.stopPropagation()\" />\n <span\n class=\"checkmark\"\n *ngIf=\"!isIndeterminate\"\n [ngClass]=\"{\n 'disabled-checkbox': formControl.disabled,\n error: isError && !formControl.disabled\n }\"\n ></span>\n <span\n class=\"checkmark indeterminate\"\n tabindex=\"0\"\n *ngIf=\"isIndeterminate\"\n [ngClass]=\"{\n 'disabled-checkbox': formControl.disabled,\n error: isError && !formControl.disabled\n }\"\n ></span>\n</div>\n", styles: [".checkbox-container{height:20px;width:20px;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:sub}.checkbox-container input{position:absolute;opacity:0;cursor:pointer;height:20px;width:20px}.checkmark{position:absolute;display:flex;justify-content:center;align-items:center;top:0;left:0;height:20px;width:20px;border-radius:4px;background-color:#fff;border:solid 2px #6a737d;box-sizing:border-box}.checkmark:hover{border-color:#929dab}.checkmark:focus-within,.checkmark:focus{box-shadow:0 0 0 .09em #fff,0 0 .01em .2em #0937b2;outline:none}.checkbox-container input:checked~.checkmark{background-color:#0937b2;border-color:#0937b2}.checkbox-container input:checked~.checkmark.disabled-checkbox{background-color:#c8cdd3;border-color:#c8cdd3}.checkmark:after{content:\"\";position:absolute;display:none}.checkbox-container input:checked~.checkmark:after{display:block}.checkbox-container .checkmark:after{top:1px;width:4px;height:9px;border:solid white;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.checkbox-container .checkmark.indeterminate:after{top:2px;width:2px;height:0px;border:solid white;border-width:0 0px 12px 0;border-radius:14px;transform:rotate(90deg);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg)}.disabled-checkbox{pointer-events:none;border-color:#c8cdd3}.error{border-color:#b00020}.checkbox-container input:checked~.error.checkmark{border:#b00020!important;background:#b00020!important}.checkbox-container .error.checkmark:after{top:3px;width:4px;height:9px;border:solid white;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.checkbox-container .error.checkmark.indeterminate:after{top:4px;width:2px;height:0px;border:solid white;border-width:0 0px 12px 0;border-radius:14px;transform:rotate(90deg);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg)}.error:focus-within,.error:focus{box-shadow:none!important;outline:none}\n"] }]
121
+ args: [{ selector: "mis-checkbox", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"checkbox-container\"\n [ngStyle]=\"{ cursor: isDisabledComputed ? 'not-allowed' : 'pointer' }\"\n (click)=\"!isDisabledComputed && toggleState()\"\n (keyup.enter)=\"!isDisabledComputed && toggleState()\"\n>\n <input \n hidden \n type=\"checkbox\" \n [formControl]=\"formControl()\"\n (click)=\"$event.stopPropagation()\" \n />\n <span\n class=\"checkmark\"\n *ngIf=\"!isIndeterminate()\"\n [ngClass]=\"{\n 'disabled-checkbox': isDisabledComputed,\n error: isErrorComputed && !isDisabledComputed\n }\"\n ></span>\n <span\n class=\"checkmark indeterminate\"\n tabindex=\"0\"\n *ngIf=\"isIndeterminate()\"\n [ngClass]=\"{\n 'disabled-checkbox': isDisabledComputed,\n error: isErrorComputed && !isDisabledComputed\n }\"\n ></span>\n</div>\n", styles: [".checkbox-container{height:20px;width:20px;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:sub}.checkbox-container input{position:absolute;opacity:0;cursor:pointer;height:20px;width:20px}.checkmark{position:absolute;display:flex;justify-content:center;align-items:center;top:0;left:0;height:20px;width:20px;border-radius:4px;background-color:#fff;border:solid 2px #6a737d;box-sizing:border-box}.checkmark:hover{border-color:#929dab}.checkmark:focus-within,.checkmark:focus{box-shadow:0 0 0 .09em #fff,0 0 .01em .2em #0937b2;outline:none}.checkbox-container input:checked~.checkmark{background-color:#0937b2;border-color:#0937b2}.checkbox-container input:checked~.checkmark.disabled-checkbox{background-color:#c8cdd3;border-color:#c8cdd3}.checkmark:after{content:\"\";position:absolute;display:none}.checkbox-container input:checked~.checkmark:after{display:block}.checkbox-container .checkmark:after{top:1px;width:4px;height:9px;border:solid white;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.checkbox-container .checkmark.indeterminate:after{top:2px;width:2px;height:0px;border:solid white;border-width:0 0px 12px 0;border-radius:14px;transform:rotate(90deg);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg)}.disabled-checkbox{pointer-events:none;border-color:#c8cdd3}.error{border-color:#b00020}.checkbox-container input:checked~.error.checkmark{border:#b00020!important;background:#b00020!important}.checkbox-container .error.checkmark:after{top:3px;width:4px;height:9px;border:solid white;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.checkbox-container .error.checkmark.indeterminate:after{top:4px;width:2px;height:0px;border:solid white;border-width:0 0px 12px 0;border-radius:14px;transform:rotate(90deg);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg)}.error:focus-within,.error:focus{box-shadow:none!important;outline:none}\n"] }]
105
122
  }], () => [], { inputBox: [{
106
123
  type: ViewChild,
107
124
  args: ["input"]
108
- }], type: [{
109
- type: Input
110
- }], indeterminate: [{
111
- type: Input
112
- }], checked: [{
113
- type: Input
114
- }], disabled: [{
115
- type: Input
116
- }], name: [{
117
- type: Input
118
- }], formControl: [{
119
- type: Input
120
125
  }], valueChange: [{
121
126
  type: Output
122
127
  }] }); })();
123
128
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CheckboxComponent, { className: "CheckboxComponent" }); })();
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBbUIsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7SUNNbkUsMEJBT1E7OztJQUpOLGlJQUdFOzs7SUFFSiwwQkFRUTs7O0lBSk4saUlBR0U7O0FEZE4sTUFBTSxPQUFPLGlCQUFpQjtJQUs1QixJQUFhLElBQUksQ0FBQyxLQUEwQjtRQUMxQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssS0FBSyxPQUFPLENBQUM7SUFDbkMsQ0FBQztJQUNELElBQWEsYUFBYSxDQUFDLEtBQWM7UUFDdkMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUNwQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUNwQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsS0FBSyxFQUFFLEtBQUs7YUFDYixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQWEsT0FBTyxDQUFDLEtBQWM7UUFDakMsSUFBSSxLQUFLO1lBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7O1lBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFDRCxJQUFhLFFBQVEsQ0FBQyxLQUFjO1FBQ2xDLElBQUksS0FBSztZQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7O1lBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUtEO1FBbkNPLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUE4Qi9CLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsZ0JBQVcsR0FBb0IsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3ZELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQW9DLENBQUM7SUFFOUQsQ0FBQztJQUNoQixRQUFRLEtBQUksQ0FBQztJQUViLFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztZQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLO2dCQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDOztnQkFDeEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3BCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUs7U0FDOUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztrSEFuRFUsaUJBQWlCO29FQUFqQixpQkFBaUI7Ozs7OztZQ1I5Qiw4QkFLQztZQURDLEFBREEsd0hBQWtDLGlCQUFhLElBQUMsdUhBQ1IsaUJBQWEsSUFBQztZQUV0RCxnQ0FBK0Y7WUFBckMsbUdBQVMsd0JBQXdCLElBQUM7WUFBNUYsaUJBQStGO1lBUy9GLEFBUkEsb0VBT0MsdURBU0E7WUFDSCxpQkFBTTs7WUF0QkosMEdBQXdFO1lBSTFDLGNBQTJCO1lBQTNCLDZDQUEyQjtZQUd0RCxjQUFzQjtZQUF0QiwyQ0FBc0I7WUFTdEIsY0FBcUI7WUFBckIsMENBQXFCOzs7aUZEVmIsaUJBQWlCO2NBTDdCLFNBQVM7MkJBQ0UsY0FBYztvQkFRSixRQUFRO2tCQUEzQixTQUFTO21CQUFDLE9BQU87WUFDTCxJQUFJO2tCQUFoQixLQUFLO1lBR08sYUFBYTtrQkFBekIsS0FBSztZQWdCTyxPQUFPO2tCQUFuQixLQUFLO1lBSU8sUUFBUTtrQkFBcEIsS0FBSztZQUlHLElBQUk7a0JBQVosS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFDSSxXQUFXO2tCQUFwQixNQUFNOztrRkFsQ0ksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy1jaGVja2JveFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9jaGVja2JveC5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBDaGVja2JveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBpc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBpc0luZGV0ZXJtaW5hdGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKFwiaW5wdXRcIikgaW5wdXRCb3g6IEVsZW1lbnRSZWY7XG4gIEBJbnB1dCgpIHNldCB0eXBlKHZhbHVlOiBcIkRlZmF1bHRcIiB8IFwiRXJyb3JcIikge1xuICAgIHRoaXMuaXNFcnJvciA9IHZhbHVlID09PSBcIkVycm9yXCI7XG4gIH1cbiAgQElucHV0KCkgc2V0IGluZGV0ZXJtaW5hdGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodHJ1ZSk7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgIHZhbHVlOiB0cnVlXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShmYWxzZSk7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgIHZhbHVlOiBmYWxzZVxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuaXNJbmRldGVybWluYXRlID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KCkgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUpIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodHJ1ZSk7XG4gICAgZWxzZSB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGZhbHNlKTtcbiAgfVxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUpIHRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgIGVsc2UgdGhpcy5mb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgfVxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgPSBcIlwiO1xuICBASW5wdXQoKSBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogYm9vbGVhbiB9PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cbiAgbmdPbkluaXQoKSB7fVxuXG4gIHRvZ2dsZVN0YXRlKCkge1xuICAgIGlmICh0aGlzLmlzSW5kZXRlcm1pbmF0ZSkge1xuICAgICAgdGhpcy5pc0luZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlKSB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGZhbHNlKTtcbiAgICAgIGVsc2UgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh0cnVlKTtcbiAgICB9XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHtcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgIHZhbHVlOiB0aGlzLmZvcm1Db250cm9sLnZhbHVlXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJjaGVja2JveC1jb250YWluZXJcIlxuICBbbmdTdHlsZV09XCJ7IGN1cnNvcjogZm9ybUNvbnRyb2wuZGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogJ3BvaW50ZXInIH1cIlxuICAoY2xpY2spPVwiIWZvcm1Db250cm9sLmRpc2FibGVkICYmIHRvZ2dsZVN0YXRlKClcIlxuICAoa2V5dXAuZW50ZXIpPVwiIWZvcm1Db250cm9sLmRpc2FibGVkICYmIHRvZ2dsZVN0YXRlKClcIlxuPlxuICA8aW5wdXQgaGlkZGVuIHR5cGU9XCJjaGVja2JveFwiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiAvPlxuICA8c3BhblxuICAgIGNsYXNzPVwiY2hlY2ttYXJrXCJcbiAgICAqbmdJZj1cIiFpc0luZGV0ZXJtaW5hdGVcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdkaXNhYmxlZC1jaGVja2JveCc6IGZvcm1Db250cm9sLmRpc2FibGVkLFxuICAgICAgZXJyb3I6IGlzRXJyb3IgJiYgIWZvcm1Db250cm9sLmRpc2FibGVkXG4gICAgfVwiXG4gID48L3NwYW4+XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJjaGVja21hcmsgaW5kZXRlcm1pbmF0ZVwiXG4gICAgdGFiaW5kZXg9XCIwXCJcbiAgICAqbmdJZj1cImlzSW5kZXRlcm1pbmF0ZVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2Rpc2FibGVkLWNoZWNrYm94JzogZm9ybUNvbnRyb2wuZGlzYWJsZWQsXG4gICAgICBlcnJvcjogaXNFcnJvciAmJiAhZm9ybUNvbnRyb2wuZGlzYWJsZWRcbiAgICB9XCJcbiAgPjwvc3Bhbj5cbjwvZGl2PlxuIl19
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBeUIsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBa0IsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xLLE9BQU8sRUFBbUIsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7SUNXbkUsMEJBT1E7OztJQUpOLHFJQUdFOzs7SUFFSiwwQkFRUTs7O0lBSk4scUlBR0U7O0FEbEJOLE1BQU0sT0FBTyxpQkFBaUI7SUFpQjVCO1FBaEJPLFlBQU8sR0FBNEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELG9CQUFlLEdBQTRCLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxjQUFTLEdBQTRCLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxlQUFVLEdBQTRCLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUkzRCxTQUFJLEdBQUcsS0FBSyxDQUFzQixTQUFTLENBQUMsQ0FBQztRQUM3QyxrQkFBYSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUN0QyxZQUFPLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDakMsU0FBSSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUN6QixnQkFBVyxHQUFHLEtBQUssQ0FBa0IsSUFBSSxrQkFBa0Is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LE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztJQUNyQyxDQUFDO2tIQWxGVSxpQkFBaUI7b0VBQWpCLGlCQUFpQjs7Ozs7O1lDVDlCLDhCQUtDO1lBREMsQUFEQSxzSEFBZ0MsaUJBQWEsSUFBQyxxSEFDUixpQkFBYSxJQUFDO1lBRXBELGdDQUtFO1lBREEsbUdBQVMsd0JBQXdCLElBQUM7WUFKcEMsaUJBS0U7WUFTRixBQVJBLG9FQU9DLHVEQVNBO1lBQ0gsaUJBQU07O1lBM0JKLHdHQUFzRTtZQU9wRSxjQUE2QjtZQUE3QiwrQ0FBNkI7WUFLNUIsY0FBd0I7WUFBeEIsNkNBQXdCO1lBU3hCLGNBQXVCO1lBQXZCLDRDQUF1Qjs7O2lGRGRmLGlCQUFpQjtjQU43QixTQUFTOzJCQUNFLGNBQWMsbUJBR1AsdUJBQXVCLENBQUMsTUFBTTtvQkFRM0IsUUFBUTtrQkFBM0IsU0FBUzttQkFBQyxPQUFPO1lBU1IsV0FBVztrQkFBcEIsTUFBTTs7a0ZBZkksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBpbnB1dCwgc2lnbmFsLCBXcml0YWJsZVNpZ25hbCwgZWZmZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtY2hlY2tib3hcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9jaGVja2JveC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vY2hlY2tib3guY29tcG9uZW50LnNjc3NcIl0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrYm94Q29tcG9uZW50IHtcbiAgcHVibGljIGlzRXJyb3I6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcbiAgcHVibGljIGlzSW5kZXRlcm1pbmF0ZTogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuICBwdWJsaWMgaXNDaGVja2VkOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG4gIHB1YmxpYyBpc0Rpc2FibGVkOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgQFZpZXdDaGlsZChcImlucHV0XCIpIGlucHV0Qm94OiBFbGVtZW50UmVmO1xuICBcbiAgdHlwZSA9IGlucHV0PFwiRGVmYXVsdFwiIHwgXCJFcnJvclwiPihcIkRlZmF1bHRcIik7XG4gIGluZGV0ZXJtaW5hdGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIGNoZWNrZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBuYW1lID0gaW5wdXQ8c3RyaW5nPihcIlwiKTtcbiAgZm9ybUNvbnRyb2wgPSBpbnB1dDxBYnN0cmFjdENvbnRyb2w+KG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKSk7XG4gIFxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogYm9vbGVhbiB9PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIEhhbmRsZSBpbnB1dCBzaWduYWwgY2hhbmdlc1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAvLyBVcGRhdGUgZXJyb3Igc3RhdGUgYmFzZWQgb24gdHlwZVxuICAgICAgdGhpcy5pc0Vycm9yLnNldCh0aGlzLnR5cGUoKSA9PT0gXCJFcnJvclwiKTtcbiAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIC8vIEhhbmRsZSBpbmRldGVybWluYXRlIHN0YXRlXG4gICAgICBjb25zdCBpbmRldGVybWluYXRlVmFsdWUgPSB0aGlzLmluZGV0ZXJtaW5hdGUoKTtcbiAgICAgIHRoaXMuaXNJbmRldGVybWluYXRlLnNldChpbmRldGVybWluYXRlVmFsdWUpO1xuICAgICAgXG4gICAgICBpZiAoaW5kZXRlcm1pbmF0ZVZhbHVlKSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2woKS5zZXRWYWx1ZSh0cnVlKTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHtcbiAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUoKSxcbiAgICAgICAgICB2YWx1ZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIC8vIEhhbmRsZSBjaGVja2VkIHN0YXRlXG4gICAgICBpZiAodGhpcy5jaGVja2VkKCkpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbCgpLnNldFZhbHVlKHRydWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbCgpLnNldFZhbHVlKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIC8vIEhhbmRsZSBkaXNhYmxlZCBzdGF0ZVxuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQoKSkge1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sKCkuZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbCgpLmVuYWJsZSgpO1xuICAgICAgfVxuICAgIH0sIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSk7XG4gIH1cblxuICB0b2dnbGVTdGF0ZSgpIHtcbiAgICBpZiAodGhpcy5pc0luZGV0ZXJtaW5hdGUoKSkge1xuICAgICAgdGhpcy5pc0luZGV0ZXJtaW5hdGUuc2V0KGZhbHNlKTtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2woKS5zZXRWYWx1ZSh0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuZm9ybUNvbnRyb2woKS52YWx1ZSkge1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sKCkuc2V0VmFsdWUoZmFsc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbCgpLnNldFZhbHVlKHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgbmFtZTogdGhpcy5uYW1lKCksXG4gICAgICB2YWx1ZTogdGhpcy5mb3JtQ29udHJvbCgpLnZhbHVlXG4gICAgfSk7XG4gIH1cblxuICAvLyBDb21wdXRlZCBzaWduYWxzIGZvciByZWFjdGl2ZSB1cGRhdGVzXG4gIGdldCBpc0Vycm9yQ29tcHV0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNFcnJvcigpO1xuICB9XG5cbiAgZ2V0IGlzRGlzYWJsZWRDb21wdXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQ29udHJvbCgpLmRpc2FibGVkO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiY2hlY2tib3gtY29udGFpbmVyXCJcbiAgW25nU3R5bGVdPVwieyBjdXJzb3I6IGlzRGlzYWJsZWRDb21wdXRlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicgfVwiXG4gIChjbGljayk9XCIhaXNEaXNhYmxlZENvbXB1dGVkICYmIHRvZ2dsZVN0YXRlKClcIlxuICAoa2V5dXAuZW50ZXIpPVwiIWlzRGlzYWJsZWRDb21wdXRlZCAmJiB0b2dnbGVTdGF0ZSgpXCJcbj5cbiAgPGlucHV0IFxuICAgIGhpZGRlbiBcbiAgICB0eXBlPVwiY2hlY2tib3hcIiBcbiAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2woKVwiXG4gICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFxuICAvPlxuICA8c3BhblxuICAgIGNsYXNzPVwiY2hlY2ttYXJrXCJcbiAgICAqbmdJZj1cIiFpc0luZGV0ZXJtaW5hdGUoKVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2Rpc2FibGVkLWNoZWNrYm94JzogaXNEaXNhYmxlZENvbXB1dGVkLFxuICAgICAgZXJyb3I6IGlzRXJyb3JDb21wdXRlZCAmJiAhaXNEaXNhYmxlZENvbXB1dGVkXG4gICAgfVwiXG4gID48L3NwYW4+XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJjaGVja21hcmsgaW5kZXRlcm1pbmF0ZVwiXG4gICAgdGFiaW5kZXg9XCIwXCJcbiAgICAqbmdJZj1cImlzSW5kZXRlcm1pbmF0ZSgpXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnZGlzYWJsZWQtY2hlY2tib3gnOiBpc0Rpc2FibGVkQ29tcHV0ZWQsXG4gICAgICBlcnJvcjogaXNFcnJvckNvbXB1dGVkICYmICFpc0Rpc2FibGVkQ29tcHV0ZWRcbiAgICB9XCJcbiAgPjwvc3Bhbj5cbjwvZGl2PlxuIl19