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,73 +1,80 @@
1
1
  import { OverlayConfig } from "@angular/cdk/overlay";
2
2
  import { ComponentPortal } from "@angular/cdk/portal";
3
- import { Directive, EventEmitter, HostListener, Injector, Input, Optional, Output, Self } from "@angular/core";
3
+ import { Directive, HostListener, Injector, input, output, Optional, signal, effect } from "@angular/core";
4
4
  import { take } from "rxjs/operators";
5
5
  import { genPositionPairs } from "mis-crystal-design-system/utils";
6
6
  import { CONTAINER_DATA, DATE_FORMAT } from "./daterangepicker-constants";
7
7
  import { TzDrpContainerComponent } from "./tz-sdp-container/tz-sdp-container.component";
8
8
  import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/forms";
10
- import * as i2 from "@angular/cdk/overlay";
9
+ import * as i1 from "@angular/cdk/overlay";
10
+ import * as i2 from "@angular/forms";
11
11
  export class TzSpecificDatepickerDirective {
12
- set selectedDates(dates) {
13
- this.dates = dates;
14
- }
15
- set selectedDatesRange(dates) {
16
- this.datesRange = dates;
17
- }
18
- set datesDisabled(dates) {
19
- this.dpDisabledDates = dates;
20
- }
21
- set holidaysDates(dates) {
22
- this.dpHolidays = dates;
23
- }
24
- set weekOffsSelection(dates) {
25
- this.weekOffs = dates;
26
- }
27
- constructor(control, element, overlay, viewContainerRef) {
28
- this.control = control;
12
+ constructor(element, overlay, viewContainerRef, control) {
29
13
  this.element = element;
30
14
  this.overlay = overlay;
31
15
  this.viewContainerRef = viewContainerRef;
32
- this.dpConfig = {
16
+ this.control = control;
17
+ // Inputs are now defined using `input()`
18
+ this.dpConfig = input({
33
19
  format: DATE_FORMAT,
34
20
  minDate: "",
35
21
  maxDate: "",
36
22
  timezone: "Asia/Kolkata"
37
- };
38
- this.dateMessages = [];
39
- this.positionX = "center";
40
- this.positionY = "bottom";
41
- this.offsetX = 0;
42
- this.offsetY = 0;
43
- this.isSPickerSelected = false;
44
- this.isSingleDatePickerEnable = false;
45
- this.dateChange = new EventEmitter(true);
46
- this.dateChangeRange = new EventEmitter(true);
47
- this.isOpen = false;
48
- this.dates = [];
49
- this.weekOffs = [];
50
- this.dpDisabledDates = [];
51
- this.dpHolidays = [];
23
+ });
24
+ this.selectedDates = input([]);
25
+ this.selectedDatesRange = input({ startDate: null, endDate: null });
26
+ this.datesDisabled = input([]);
27
+ this.holidaysDates = input([]);
28
+ this.weekOffsSelection = input([]);
29
+ this.dateMessages = input([]);
30
+ this.positionX = input("center");
31
+ this.positionY = input("bottom");
32
+ this.offsetX = input(0);
33
+ this.offsetY = input(0);
34
+ this.isSPickerSelected = input(false);
35
+ this.isSingleDatePickerEnable = input(false);
36
+ // Outputs are now defined using `output()`
37
+ this.dateChange = output();
38
+ this.dateChangeRange = output();
39
+ this.isOpen = signal(false);
40
+ this.overlayRef = null;
41
+ // Effect to handle the overlay position update reactively
42
+ effect(() => {
43
+ // Triggered by changes in any position-related input signals
44
+ this.updateOverlayPosition();
45
+ });
52
46
  }
53
47
  toggleDatePicker() {
54
- if (this.isOpen) {
48
+ if (this.isOpen()) {
49
+ this.close();
50
+ }
51
+ else {
52
+ this.open();
53
+ }
54
+ }
55
+ toggleDatePickerOnEnter() {
56
+ if (this.isOpen()) {
55
57
  this.close();
56
58
  }
57
59
  else {
58
60
  this.open();
59
61
  }
60
62
  }
63
+ closeOnEsc() {
64
+ if (this.isOpen()) {
65
+ this.close();
66
+ }
67
+ }
61
68
  open() {
62
- this.isOpen = true;
69
+ this.isOpen.set(true);
63
70
  const positionStrategy = this.overlay
64
71
  .position()
65
72
  .flexibleConnectedTo(this.element)
66
73
  .withPositions(genPositionPairs({
67
- positionX: this.positionX,
68
- positionY: this.positionY,
69
- offsetX: this.offsetX,
70
- offsetY: this.offsetY
74
+ positionX: this.positionX(),
75
+ positionY: this.positionY(),
76
+ offsetX: this.offsetX(),
77
+ offsetY: this.offsetY(),
71
78
  }, true))
72
79
  .withPush(true);
73
80
  const config = new OverlayConfig({
@@ -82,18 +89,18 @@ export class TzSpecificDatepickerDirective {
82
89
  {
83
90
  provide: CONTAINER_DATA,
84
91
  useValue: {
85
- messages: this.dateMessages,
86
- dates: this.control?.control.value || this.dates,
87
- datesRange: this.control?.control.value || this.datesRange,
88
- dpConfig: this.dpConfig,
89
- datesDisabled: this.dpDisabledDates,
92
+ messages: this.dateMessages(),
93
+ dates: this.control?.control.value || this.selectedDates(),
94
+ datesRange: this.control?.control.value || this.selectedDatesRange(),
95
+ dpConfig: this.dpConfig(),
96
+ datesDisabled: this.datesDisabled(),
90
97
  dateChange: this.applyDate.bind(this),
91
98
  dateChangeRange: this.applyDateRange.bind(this),
92
99
  close: this.close.bind(this),
93
- weekOffs: this.weekOffs,
94
- holidays: this.dpHolidays,
95
- isSPickerSelected: this.isSPickerSelected,
96
- isSingleDatePickerEnable: this.isSingleDatePickerEnable,
100
+ weekOffs: this.weekOffsSelection(),
101
+ holidays: this.holidaysDates(),
102
+ isSPickerSelected: this.isSPickerSelected(),
103
+ isSingleDatePickerEnable: this.isSingleDatePickerEnable(),
97
104
  }
98
105
  }
99
106
  ]
@@ -112,10 +119,10 @@ export class TzSpecificDatepickerDirective {
112
119
  .position()
113
120
  .flexibleConnectedTo(this.element)
114
121
  .withPositions(genPositionPairs({
115
- positionX: this.positionX,
116
- positionY: this.positionY,
117
- offsetX: this.offsetX,
118
- offsetY: this.offsetY,
122
+ positionX: this.positionX(),
123
+ positionY: this.positionY(),
124
+ offsetX: this.offsetX(),
125
+ offsetY: this.offsetY(),
119
126
  }, true))
120
127
  .withPush(true);
121
128
  this.overlayRef.updatePositionStrategy(positionStrategy);
@@ -124,73 +131,38 @@ export class TzSpecificDatepickerDirective {
124
131
  applyDate(dates) {
125
132
  this.dateChange.emit(dates);
126
133
  this.control?.control.patchValue(dates);
127
- this.dates = dates;
128
134
  this.close();
129
135
  }
130
136
  applyDateRange(dates) {
131
137
  this.dateChangeRange.emit(dates);
132
138
  this.control?.control.patchValue(dates);
133
- this.datesRange = dates;
134
139
  this.close();
135
140
  }
136
141
  close() {
137
- this.isOpen = false;
138
- this.overlayRef.detach();
139
- this.overlayRef.dispose();
140
- }
141
- ngOnChanges(changes) {
142
- if ((changes.offsetX && !changes.offsetX.firstChange) || (changes.offsetY && !changes.offsetY.firstChange) ||
143
- (changes.positionX && !changes.positionX.firstChange) ||
144
- (changes.positionY && !changes.positionY.firstChange)) {
145
- this.updateOverlayPosition();
146
- }
142
+ this.isOpen.set(false);
143
+ this.overlayRef?.detach();
144
+ this.overlayRef?.dispose();
147
145
  }
148
- static { this.ɵfac = function TzSpecificDatepickerDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TzSpecificDatepickerDirective)(i0.ɵɵdirectiveInject(i1.NgControl, 10), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.Overlay), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); }; }
146
+ static { this.ɵfac = function TzSpecificDatepickerDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TzSpecificDatepickerDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Overlay), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i2.NgControl, 8)); }; }
149
147
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: TzSpecificDatepickerDirective, selectors: [["input", "misTzSdp", ""]], hostBindings: function TzSpecificDatepickerDirective_HostBindings(rf, ctx) { if (rf & 1) {
150
- i0.ɵɵlistener("click", function TzSpecificDatepickerDirective_click_HostBindingHandler() { return ctx.toggleDatePicker(); });
151
- } }, inputs: { dpConfig: "dpConfig", selectedDates: "selectedDates", selectedDatesRange: "selectedDatesRange", datesDisabled: "datesDisabled", holidaysDates: "holidaysDates", weekOffsSelection: "weekOffsSelection", dateMessages: "dateMessages", positionX: "positionX", positionY: "positionY", offsetX: "offsetX", offsetY: "offsetY", isSPickerSelected: "isSPickerSelected", isSingleDatePickerEnable: "isSingleDatePickerEnable" }, outputs: { dateChange: "dateChange", dateChangeRange: "dateChangeRange" }, features: [i0.ɵɵNgOnChangesFeature] }); }
148
+ i0.ɵɵlistener("click", function TzSpecificDatepickerDirective_click_HostBindingHandler() { return ctx.toggleDatePicker(); })("keydown.enter", function TzSpecificDatepickerDirective_keydown_enter_HostBindingHandler() { return ctx.toggleDatePickerOnEnter(); })("keydown.esc", function TzSpecificDatepickerDirective_keydown_esc_HostBindingHandler() { return ctx.closeOnEsc(); });
149
+ } }, inputs: { dpConfig: [1, "dpConfig"], selectedDates: [1, "selectedDates"], selectedDatesRange: [1, "selectedDatesRange"], datesDisabled: [1, "datesDisabled"], holidaysDates: [1, "holidaysDates"], weekOffsSelection: [1, "weekOffsSelection"], dateMessages: [1, "dateMessages"], positionX: [1, "positionX"], positionY: [1, "positionY"], offsetX: [1, "offsetX"], offsetY: [1, "offsetY"], isSPickerSelected: [1, "isSPickerSelected"], isSingleDatePickerEnable: [1, "isSingleDatePickerEnable"] }, outputs: { dateChange: "dateChange", dateChangeRange: "dateChangeRange" } }); }
152
150
  }
153
151
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TzSpecificDatepickerDirective, [{
154
152
  type: Directive,
155
153
  args: [{
156
154
  selector: "input[misTzSdp]"
157
155
  }]
158
- }], () => [{ type: i1.NgControl, decorators: [{
159
- type: Self
160
- }, {
156
+ }], () => [{ type: i0.ElementRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i2.NgControl, decorators: [{
161
157
  type: Optional
162
- }] }, { type: i0.ElementRef }, { type: i2.Overlay }, { type: i0.ViewContainerRef }], { dpConfig: [{
163
- type: Input
164
- }], selectedDates: [{
165
- type: Input
166
- }], selectedDatesRange: [{
167
- type: Input
168
- }], datesDisabled: [{
169
- type: Input
170
- }], holidaysDates: [{
171
- type: Input
172
- }], weekOffsSelection: [{
173
- type: Input
174
- }], dateMessages: [{
175
- type: Input
176
- }], positionX: [{
177
- type: Input
178
- }], positionY: [{
179
- type: Input
180
- }], offsetX: [{
181
- type: Input
182
- }], offsetY: [{
183
- type: Input
184
- }], isSPickerSelected: [{
185
- type: Input
186
- }], isSingleDatePickerEnable: [{
187
- type: Input
188
- }], dateChange: [{
189
- type: Output
190
- }], dateChangeRange: [{
191
- type: Output
192
- }], toggleDatePicker: [{
158
+ }] }], { toggleDatePicker: [{
193
159
  type: HostListener,
194
160
  args: ["click"]
161
+ }], toggleDatePickerOnEnter: [{
162
+ type: HostListener,
163
+ args: ["keydown.enter"]
164
+ }], closeOnEsc: [{
165
+ type: HostListener,
166
+ args: ["keydown.esc"]
195
167
  }] }); })();
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHotc3BlY2lmaWNkYXRlcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3NwZWNpZmljZGF0ZXBpY2tlci90ei1zcGVjaWZpY2RhdGVwaWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQW1DLE1BQU0sZUFBZSxDQUFDO0FBRTVKLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7O0FBS3hGLE1BQU0sT0FBTyw2QkFBNkI7SUFPeEMsSUFBYSxhQUFhLENBQUMsS0FBOEI7UUFDdkQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUNELElBQWEsa0JBQWtCLENBQUMsS0FBNEI7UUFDMUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQWEsYUFBYSxDQUFDLEtBQWU7UUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQWEsYUFBYSxDQUFDLEtBQWU7UUFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQWEsaUJBQWlCLENBQUMsS0FBZTtRQUM1QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBa0JELFlBQzhCLE9BQWtCLEVBQ3RDLE9BQW1CLEVBQ25CLE9BQWdCLEVBQ2hCLGdCQUFrQztRQUhkLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFDdEMsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUExQ25DLGFBQVEsR0FBdUI7WUFDdEMsTUFBTSxFQUFFLFdBQVc7WUFDbkIsT0FBTyxFQUFFLEVBQUU7WUFDWCxPQUFPLEVBQUUsRUFBRTtZQUNYLFFBQVEsRUFBRSxjQUFjO1NBQ3pCLENBQUM7UUFnQk8saUJBQVksR0FBNEIsRUFBRSxDQUFDO1FBQzNDLGNBQVMsR0FBK0IsUUFBUSxDQUFDO1FBQ2pELGNBQVMsR0FBZ0MsUUFBUSxDQUFDO1FBQ2xELFlBQU8sR0FBVyxDQUFDLENBQUM7UUFDcEIsWUFBTyxHQUFXLENBQUMsQ0FBQztRQUNwQixzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDbkMsNkJBQXdCLEdBQVcsS0FBSyxDQUFDO1FBRXhDLGVBQVUsR0FBRyxJQUFJLFlBQVksQ0FBMEIsSUFBSSxDQUFDLENBQUM7UUFDN0Qsb0JBQWUsR0FBRyxJQUFJLFlBQVksQ0FBd0IsSUFBSSxDQUFDLENBQUM7UUFDbEUsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUN2QixVQUFLLEdBQTRCLEVBQUUsQ0FBQztRQUVwQyxhQUFRLEdBQWEsRUFBRSxDQUFDO1FBQ2hCLG9CQUFlLEdBQWEsRUFBRSxDQUFDO1FBQy9CLGVBQVUsR0FBYSxFQUFFLENBQUM7SUFPL0IsQ0FBQztJQUdKLGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFTyxJQUFJO1FBQ1YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTzthQUNsQyxRQUFRLEVBQUU7YUFDVixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQ2pDLGFBQWEsQ0FDWixnQkFBZ0IsQ0FDZDtZQUNFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixFQUNELElBQUksQ0FDTCxDQUNGO2FBQ0EsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLE1BQU0sTUFBTSxHQUFHLElBQUksYUFBYSxDQUFDO1lBQy9CLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGdCQUFnQjtZQUNoQixjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUU7WUFDMUQsYUFBYSxFQUFFLGtDQUFrQztTQUNsRCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUksZUFBZSxDQUNqQyx1QkFBdUIsRUFDdkIsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ2QsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxjQUFjO29CQUN2QixRQUFRLEVBQUU7d0JBQ1IsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZO3dCQUMzQixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLO3dCQUNoRCxVQUFVLEVBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxVQUFVO3dCQUMzRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7d0JBQ3ZCLGFBQWEsRUFBRSxJQUFJLENBQUMsZUFBZTt3QkFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzt3QkFDckMsZUFBZSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzt3QkFDL0MsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzt3QkFDNUIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO3dCQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVU7d0JBQ3pCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUI7d0JBQ3pDLHdCQUF3QixFQUFFLElBQUksQ0FBQyx3QkFBd0I7cUJBQ3hEO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVO2FBQ1osYUFBYSxFQUFFO2FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxxQkFBcUI7UUFDbkIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTztpQkFDbEMsUUFBUSxFQUFFO2lCQUNWLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7aUJBQ2pDLGFBQWEsQ0FDWixnQkFBZ0IsQ0FDZDtnQkFDRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDekIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDdEIsRUFDRCxJQUFJLENBQ0wsQ0FDRjtpQkFDQSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNELENBQUM7SUFDSCxDQUFDO0lBQ0QsU0FBUyxDQUFDLEtBQThCO1FBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsY0FBYyxDQUFDLEtBQTRCO1FBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsS0FBSztRQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQ0UsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUN0RyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztZQUNyRCxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUNyRCxDQUFDO1lBQ0QsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7OEhBOUpVLDZCQUE2QjtvRUFBN0IsNkJBQTZCO1lBQTdCLGtHQUFBLHNCQUFrQixJQUFXOzs7aUZBQTdCLDZCQUE2QjtjQUh6QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjthQUM1Qjs7c0JBeUNJLElBQUk7O3NCQUFJLFFBQVE7bUdBdkNWLFFBQVE7a0JBQWhCLEtBQUs7WUFNTyxhQUFhO2tCQUF6QixLQUFLO1lBR08sa0JBQWtCO2tCQUE5QixLQUFLO1lBR08sYUFBYTtrQkFBekIsS0FBSztZQUdPLGFBQWE7a0JBQXpCLEtBQUs7WUFHTyxpQkFBaUI7a0JBQTdCLEtBQUs7WUFHRyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csU0FBUztrQkFBakIsS0FBSztZQUNHLFNBQVM7a0JBQWpCLEtBQUs7WUFDRyxPQUFPO2tCQUFmLEtBQUs7WUFDRyxPQUFPO2tCQUFmLEtBQUs7WUFDRyxpQkFBaUI7a0JBQXpCLEtBQUs7WUFDRyx3QkFBd0I7a0JBQWhDLEtBQUs7WUFFSSxVQUFVO2tCQUFuQixNQUFNO1lBQ0csZUFBZTtrQkFBeEIsTUFBTTtZQWdCUCxnQkFBZ0I7a0JBRGYsWUFBWTttQkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIEluamVjdG9yLCBJbnB1dCwgT3B0aW9uYWwsIE91dHB1dCwgU2VsZiwgU2ltcGxlQ2hhbmdlcywgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IHRha2UgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IGdlblBvc2l0aW9uUGFpcnMgfSBmcm9tIFwibWlzLWNyeXN0YWwtZGVzaWduLXN5c3RlbS91dGlsc1wiO1xuaW1wb3J0IHsgQ09OVEFJTkVSX0RBVEEsIERBVEVfRk9STUFUIH0gZnJvbSBcIi4vZGF0ZXJhbmdlcGlja2VyLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgSVNEYXRlUGlja2VyQ29uZmlnLCBJU0RhdGVQaWNrZXJUb2FzdFRleHQsIElTU2VsZWN0ZWREYXRlc0NvbmZpZyxJUlNlbGVjdGVkRGF0ZXNDb25maWcgfSBmcm9tIFwiLi9tb2RlbHMvc2RwLWNvbmZpZy5tb2RlbFwiO1xuaW1wb3J0IHsgVHpEcnBDb250YWluZXJDb21wb25lbnQgfSBmcm9tIFwiLi90ei1zZHAtY29udGFpbmVyL3R6LXNkcC1jb250YWluZXIuY29tcG9uZW50XCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJpbnB1dFttaXNUelNkcF1cIlxufSlcbmV4cG9ydCBjbGFzcyBUelNwZWNpZmljRGF0ZXBpY2tlckRpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpIGRwQ29uZmlnOiBJU0RhdGVQaWNrZXJDb25maWcgPSB7XG4gICAgZm9ybWF0OiBEQVRFX0ZPUk1BVCxcbiAgICBtaW5EYXRlOiBcIlwiLFxuICAgIG1heERhdGU6IFwiXCIsXG4gICAgdGltZXpvbmU6IFwiQXNpYS9Lb2xrYXRhXCJcbiAgfTtcbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkRGF0ZXMoZGF0ZXM6IElTU2VsZWN0ZWREYXRlc0NvbmZpZ1tdKSB7XG4gICAgdGhpcy5kYXRlcyA9IGRhdGVzO1xuICB9XG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZERhdGVzUmFuZ2UoZGF0ZXM6IElSU2VsZWN0ZWREYXRlc0NvbmZpZykge1xuICAgIHRoaXMuZGF0ZXNSYW5nZSA9IGRhdGVzO1xuICB9XG4gIEBJbnB1dCgpIHNldCBkYXRlc0Rpc2FibGVkKGRhdGVzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuZHBEaXNhYmxlZERhdGVzID0gZGF0ZXM7XG4gIH1cbiAgQElucHV0KCkgc2V0IGhvbGlkYXlzRGF0ZXMoZGF0ZXM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5kcEhvbGlkYXlzID0gZGF0ZXM7XG4gIH1cbiAgQElucHV0KCkgc2V0IHdlZWtPZmZzU2VsZWN0aW9uKGRhdGVzOiBzdHJpbmdbXSl7XG4gICAgdGhpcy53ZWVrT2ZmcyA9IGRhdGVzO1xuICB9XG4gIEBJbnB1dCgpIGRhdGVNZXNzYWdlczogSVNEYXRlUGlja2VyVG9hc3RUZXh0W10gPSBbXTtcbiAgQElucHV0KCkgcG9zaXRpb25YOiBcInN0YXJ0XCIgfCBcImNlbnRlclwiIHwgXCJlbmRcIiA9IFwiY2VudGVyXCI7XG4gIEBJbnB1dCgpIHBvc2l0aW9uWTogXCJ0b3BcIiB8IFwiY2VudGVyXCIgfCBcImJvdHRvbVwiID0gXCJib3R0b21cIjtcbiAgQElucHV0KCkgb2Zmc2V0WDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgb2Zmc2V0WTogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgaXNTUGlja2VyU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaXNTaW5nbGVEYXRlUGlja2VyRW5hYmxlOmJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBvdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuICBAT3V0cHV0KCkgZGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SVNTZWxlY3RlZERhdGVzQ29uZmlnW10+KHRydWUpO1xuICBAT3V0cHV0KCkgZGF0ZUNoYW5nZVJhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJUlNlbGVjdGVkRGF0ZXNDb25maWc+KHRydWUpO1xuICBwcml2YXRlIGlzT3BlbiA9IGZhbHNlO1xuICBkYXRlczogSVNTZWxlY3RlZERhdGVzQ29uZmlnW10gPSBbXTtcbiAgZGF0ZXNSYW5nZTpJUlNlbGVjdGVkRGF0ZXNDb25maWc7IFxuICB3ZWVrT2Zmczogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBkcERpc2FibGVkRGF0ZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgZHBIb2xpZGF5czogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIHByaXZhdGUgY29udHJvbDogTmdDb250cm9sLFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge31cblxuICBASG9zdExpc3RlbmVyKFwiY2xpY2tcIilcbiAgdG9nZ2xlRGF0ZVBpY2tlcigpIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVuKCkge1xuICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5lbGVtZW50KVxuICAgICAgLndpdGhQb3NpdGlvbnMoXG4gICAgICAgIGdlblBvc2l0aW9uUGFpcnMoXG4gICAgICAgICAge1xuICAgICAgICAgICAgcG9zaXRpb25YOiB0aGlzLnBvc2l0aW9uWCxcbiAgICAgICAgICAgIHBvc2l0aW9uWTogdGhpcy5wb3NpdGlvblksXG4gICAgICAgICAgICBvZmZzZXRYOiB0aGlzLm9mZnNldFgsXG4gICAgICAgICAgICBvZmZzZXRZOiB0aGlzLm9mZnNldFlcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRydWVcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLndpdGhQdXNoKHRydWUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICBiYWNrZHJvcENsYXNzOiBcImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCJcbiAgICB9KTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKGNvbmZpZyk7XG4gICAgY29uc3QgdGVtcFJlZiA9IG5ldyBDb21wb25lbnRQb3J0YWwoXG4gICAgICBUekRycENvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICAgIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENPTlRBSU5FUl9EQVRBLFxuICAgICAgICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgICAgICAgbWVzc2FnZXM6IHRoaXMuZGF0ZU1lc3NhZ2VzLFxuICAgICAgICAgICAgICBkYXRlczogdGhpcy5jb250cm9sPy5jb250cm9sLnZhbHVlIHx8IHRoaXMuZGF0ZXMsXG4gICAgICAgICAgICAgIGRhdGVzUmFuZ2U6ICB0aGlzLmNvbnRyb2w/LmNvbnRyb2wudmFsdWUgfHwgdGhpcy5kYXRlc1JhbmdlLFxuICAgICAgICAgICAgICBkcENvbmZpZzogdGhpcy5kcENvbmZpZyxcbiAgICAgICAgICAgICAgZGF0ZXNEaXNhYmxlZDogdGhpcy5kcERpc2FibGVkRGF0ZXMsXG4gICAgICAgICAgICAgIGRhdGVDaGFuZ2U6IHRoaXMuYXBwbHlEYXRlLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgIGRhdGVDaGFuZ2VSYW5nZTogdGhpcy5hcHBseURhdGVSYW5nZS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICBjbG9zZTogdGhpcy5jbG9zZS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICB3ZWVrT2ZmczogdGhpcy53ZWVrT2ZmcyxcbiAgICAgICAgICAgICAgaG9saWRheXM6IHRoaXMuZHBIb2xpZGF5cyxcbiAgICAgICAgICAgICAgaXNTUGlja2VyU2VsZWN0ZWQ6IHRoaXMuaXNTUGlja2VyU2VsZWN0ZWQsXG4gICAgICAgICAgICAgIGlzU2luZ2xlRGF0ZVBpY2tlckVuYWJsZTogdGhpcy5pc1NpbmdsZURhdGVQaWNrZXJFbmFibGUsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaCh0ZW1wUmVmKTtcbiAgICB0aGlzLm92ZXJsYXlSZWZcbiAgICAgIC5iYWNrZHJvcENsaWNrKClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfSk7XG4gIH1cbiAgdXBkYXRlT3ZlcmxheVBvc2l0aW9uKCkge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5lbGVtZW50KVxuICAgICAgICAud2l0aFBvc2l0aW9ucyhcbiAgICAgICAgICBnZW5Qb3NpdGlvblBhaXJzKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwb3NpdGlvblg6IHRoaXMucG9zaXRpb25YLFxuICAgICAgICAgICAgICBwb3NpdGlvblk6IHRoaXMucG9zaXRpb25ZLFxuICAgICAgICAgICAgICBvZmZzZXRYOiB0aGlzLm9mZnNldFgsXG4gICAgICAgICAgICAgIG9mZnNldFk6IHRoaXMub2Zmc2V0WSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICAgIC53aXRoUHVzaCh0cnVlKTtcbiAgXG4gICAgICB0aGlzLm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb25TdHJhdGVneShwb3NpdGlvblN0cmF0ZWd5KTtcbiAgICB9XG4gIH1cbiAgYXBwbHlEYXRlKGRhdGVzOiBJU1NlbGVjdGVkRGF0ZXNDb25maWdbXSkge1xuICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KGRhdGVzKTtcbiAgICB0aGlzLmNvbnRyb2w/LmNvbnRyb2wucGF0Y2hWYWx1ZShkYXRlcyk7XG4gICAgdGhpcy5kYXRlcyA9IGRhdGVzO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuICBhcHBseURhdGVSYW5nZShkYXRlczogSVJTZWxlY3RlZERhdGVzQ29uZmlnKSB7XG4gICAgdGhpcy5kYXRlQ2hhbmdlUmFuZ2UuZW1pdChkYXRlcyk7XG4gICAgdGhpcy5jb250cm9sPy5jb250cm9sLnBhdGNoVmFsdWUoZGF0ZXMpO1xuICAgIHRoaXMuZGF0ZXNSYW5nZSA9IGRhdGVzO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICB9XG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoXG4gICAgICAoY2hhbmdlcy5vZmZzZXRYICYmICFjaGFuZ2VzLm9mZnNldFguZmlyc3RDaGFuZ2UpIHx8IChjaGFuZ2VzLm9mZnNldFkgJiYgIWNoYW5nZXMub2Zmc2V0WS5maXJzdENoYW5nZSkgfHxcbiAgICAgIChjaGFuZ2VzLnBvc2l0aW9uWCAmJiAhY2hhbmdlcy5wb3NpdGlvblguZmlyc3RDaGFuZ2UpIHx8XG4gICAgICAoY2hhbmdlcy5wb3NpdGlvblkgJiYgIWNoYW5nZXMucG9zaXRpb25ZLmZpcnN0Q2hhbmdlKVxuICAgICkge1xuICAgICAgdGhpcy51cGRhdGVPdmVybGF5UG9zaXRpb24oKTtcbiAgICB9XG4gIH1cbn1cblxuIl19
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHotc3BlY2lmaWNkYXRlcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3NwZWNpZmljZGF0ZXBpY2tlci90ei1zcGVjaWZpY2RhdGVwaWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFvQixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpJLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7O0FBS3hGLE1BQU0sT0FBTyw2QkFBNkI7SUE0QnhDLFlBQ1UsT0FBbUIsRUFDbkIsT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ3RCLE9BQWtCO1FBSDlCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ3RCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUEvQnhDLHlDQUF5QztRQUN6QixhQUFRLEdBQUcsS0FBSyxDQUFxQjtZQUNuRCxNQUFNLEVBQUUsV0FBVztZQUNuQixPQUFPLEVBQUUsRUFBRTtZQUNYLE9BQU8sRUFBRSxFQUFFO1lBQ1gsUUFBUSxFQUFFLGNBQWM7U0FD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Q3hDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7OEhBbktVLDZCQUE2QjtvRUFBN0IsNkJBQTZCO1lBQTdCLGtHQUFBLHNCQUFrQixJQUFXLHFHQUE3Qiw2QkFBeUIsSUFBSSxpR0FBN0IsZ0JBQVksSUFBaUI7OztpRkFBN0IsNkJBQTZCO2NBSHpDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2FBQzVCOztzQkFpQ0ksUUFBUTtxQkFVWCxnQkFBZ0I7a0JBRGYsWUFBWTttQkFBQyxPQUFPO1lBVXJCLHVCQUF1QjtrQkFEdEIsWUFBWTttQkFBQyxlQUFlO1lBVTdCLFVBQVU7a0JBRFQsWUFBWTttQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgaW5wdXQsIG91dHB1dCwgT3B0aW9uYWwsIFZpZXdDb250YWluZXJSZWYsIHNpZ25hbCwgZWZmZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgZ2VuUG9zaXRpb25QYWlycyB9IGZyb20gXCJtaXMtY3J5c3RhbC1kZXNpZ24tc3lzdGVtL3V0aWxzXCI7XG5pbXBvcnQgeyBDT05UQUlORVJfREFUQSwgREFURV9GT1JNQVQgfSBmcm9tIFwiLi9kYXRlcmFuZ2VwaWNrZXItY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBJU0RhdGVQaWNrZXJDb25maWcsIElTRGF0ZVBpY2tlclRvYXN0VGV4dCwgSVNTZWxlY3RlZERhdGVzQ29uZmlnLCBJUlNlbGVjdGVkRGF0ZXNDb25maWcgfSBmcm9tIFwiLi9tb2RlbHMvc2RwLWNvbmZpZy5tb2RlbFwiO1xuaW1wb3J0IHsgVHpEcnBDb250YWluZXJDb21wb25lbnQgfSBmcm9tIFwiLi90ei1zZHAtY29udGFpbmVyL3R6LXNkcC1jb250YWluZXIuY29tcG9uZW50XCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJpbnB1dFttaXNUelNkcF1cIlxufSlcbmV4cG9ydCBjbGFzcyBUelNwZWNpZmljRGF0ZXBpY2tlckRpcmVjdGl2ZSB7XG4gIC8vIElucHV0cyBhcmUgbm93IGRlZmluZWQgdXNpbmcgYGlucHV0KClgXG4gIHB1YmxpYyByZWFkb25seSBkcENvbmZpZyA9IGlucHV0PElTRGF0ZVBpY2tlckNvbmZpZz4oe1xuICAgIGZvcm1hdDogREFURV9GT1JNQVQsXG4gICAgbWluRGF0ZTogXCJcIixcbiAgICBtYXhEYXRlOiBcIlwiLFxuICAgIHRpbWV6b25lOiBcIkFzaWEvS29sa2F0YVwiXG4gIH0pO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWREYXRlcyA9IGlucHV0PElTU2VsZWN0ZWREYXRlc0NvbmZpZ1tdPihbXSk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZERhdGVzUmFuZ2UgPSBpbnB1dDxJUlNlbGVjdGVkRGF0ZXNDb25maWc+KHtzdGFydERhdGU6IG51bGwsIGVuZERhdGU6IG51bGx9KTtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGVzRGlzYWJsZWQgPSBpbnB1dDxzdHJpbmdbXT4oW10pO1xuICBwdWJsaWMgcmVhZG9ubHkgaG9saWRheXNEYXRlcyA9IGlucHV0PHN0cmluZ1tdPihbXSk7XG4gIHB1YmxpYyByZWFkb25seSB3ZWVrT2Zmc1NlbGVjdGlvbiA9IGlucHV0PHN0cmluZ1tdPihbXSk7XG4gIHB1YmxpYyByZWFkb25seSBkYXRlTWVzc2FnZXMgPSBpbnB1dDxJU0RhdGVQaWNrZXJUb2FzdFRleHRbXT4oW10pO1xuICBwdWJsaWMgcmVhZG9ubHkgcG9zaXRpb25YID0gaW5wdXQ8XCJzdGFydFwiIHwgXCJjZW50ZXJcIiB8IFwiZW5kXCI+KFwiY2VudGVyXCIpO1xuICBwdWJsaWMgcmVhZG9ubHkgcG9zaXRpb25ZID0gaW5wdXQ8XCJ0b3BcIiB8IFwiY2VudGVyXCIgfCBcImJvdHRvbVwiPihcImJvdHRvbVwiKTtcbiAgcHVibGljIHJlYWRvbmx5IG9mZnNldFggPSBpbnB1dDxudW1iZXI+KDApO1xuICBwdWJsaWMgcmVhZG9ubHkgb2Zmc2V0WSA9IGlucHV0PG51bWJlcj4oMCk7XG4gIHB1YmxpYyByZWFkb25seSBpc1NQaWNrZXJTZWxlY3RlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGlzU2luZ2xlRGF0ZVBpY2tlckVuYWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgXG4gIC8vIE91dHB1dHMgYXJlIG5vdyBkZWZpbmVkIHVzaW5nIGBvdXRwdXQoKWBcbiAgcHVibGljIHJlYWRvbmx5IGRhdGVDaGFuZ2UgPSBvdXRwdXQ8SVNTZWxlY3RlZERhdGVzQ29uZmlnW10+KCk7XG4gIHB1YmxpYyByZWFkb25seSBkYXRlQ2hhbmdlUmFuZ2UgPSBvdXRwdXQ8SVJTZWxlY3RlZERhdGVzQ29uZmlnPigpO1xuICBcbiAgcHJpdmF0ZSByZWFkb25seSBpc09wZW4gPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcbiAgXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgY29udHJvbDogTmdDb250cm9sXG4gICkge1xuICAgIC8vIEVmZmVjdCB0byBoYW5kbGUgdGhlIG92ZXJsYXkgcG9zaXRpb24gdXBkYXRlIHJlYWN0aXZlbHlcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgLy8gVHJpZ2dlcmVkIGJ5IGNoYW5nZXMgaW4gYW55IHBvc2l0aW9uLXJlbGF0ZWQgaW5wdXQgc2lnbmFsc1xuICAgICAgdGhpcy51cGRhdGVPdmVybGF5UG9zaXRpb24oKTtcbiAgICB9KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJjbGlja1wiKVxuICB0b2dnbGVEYXRlUGlja2VyKCkge1xuICAgIGlmICh0aGlzLmlzT3BlbigpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJrZXlkb3duLmVudGVyXCIpXG4gIHRvZ2dsZURhdGVQaWNrZXJPbkVudGVyKCkge1xuICAgIGlmICh0aGlzLmlzT3BlbigpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJrZXlkb3duLmVzY1wiKVxuICBjbG9zZU9uRXNjKCkge1xuICAgIGlmICh0aGlzLmlzT3BlbigpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVuKCkge1xuICAgIHRoaXMuaXNPcGVuLnNldCh0cnVlKTtcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5lbGVtZW50KVxuICAgICAgLndpdGhQb3NpdGlvbnMoXG4gICAgICAgIGdlblBvc2l0aW9uUGFpcnMoXG4gICAgICAgICAge1xuICAgICAgICAgICAgcG9zaXRpb25YOiB0aGlzLnBvc2l0aW9uWCgpLFxuICAgICAgICAgICAgcG9zaXRpb25ZOiB0aGlzLnBvc2l0aW9uWSgpLFxuICAgICAgICAgICAgb2Zmc2V0WDogdGhpcy5vZmZzZXRYKCksXG4gICAgICAgICAgICBvZmZzZXRZOiB0aGlzLm9mZnNldFkoKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRydWVcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLndpdGhQdXNoKHRydWUpO1xuICAgICAgXG4gICAgY29uc3QgY29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6IFwiY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BcIlxuICAgIH0pO1xuICAgIFxuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoY29uZmlnKTtcbiAgICBjb25zdCB0ZW1wUmVmID0gbmV3IENvbXBvbmVudFBvcnRhbChcbiAgICAgIFR6RHJwQ29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ09OVEFJTkVSX0RBVEEsXG4gICAgICAgICAgICB1c2VWYWx1ZToge1xuICAgICAgICAgICAgICBtZXNzYWdlczogdGhpcy5kYXRlTWVzc2FnZXMoKSxcbiAgICAgICAgICAgICAgZGF0ZXM6IHRoaXMuY29udHJvbD8uY29udHJvbC52YWx1ZSB8fCB0aGlzLnNlbGVjdGVkRGF0ZXMoKSxcbiAgICAgICAgICAgICAgZGF0ZXNSYW5nZTogdGhpcy5jb250cm9sPy5jb250cm9sLnZhbHVlIHx8IHRoaXMuc2VsZWN0ZWREYXRlc1JhbmdlKCksXG4gICAgICAgICAgICAgIGRwQ29uZmlnOiB0aGlzLmRwQ29uZmlnKCksXG4gICAgICAgICAgICAgIGRhdGVzRGlzYWJsZWQ6IHRoaXMuZGF0ZXNEaXNhYmxlZCgpLFxuICAgICAgICAgICAgICBkYXRlQ2hhbmdlOiB0aGlzLmFwcGx5RGF0ZS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICBkYXRlQ2hhbmdlUmFuZ2U6IHRoaXMuYXBwbHlEYXRlUmFuZ2UuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgY2xvc2U6IHRoaXMuY2xvc2UuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgd2Vla09mZnM6IHRoaXMud2Vla09mZnNTZWxlY3Rpb24oKSxcbiAgICAgICAgICAgICAgaG9saWRheXM6IHRoaXMuaG9saWRheXNEYXRlcygpLFxuICAgICAgICAgICAgICBpc1NQaWNrZXJTZWxlY3RlZDogdGhpcy5pc1NQaWNrZXJTZWxlY3RlZCgpLFxuICAgICAgICAgICAgICBpc1NpbmdsZURhdGVQaWNrZXJFbmFibGU6IHRoaXMuaXNTaW5nbGVEYXRlUGlja2VyRW5hYmxlKCksXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaCh0ZW1wUmVmKTtcbiAgICB0aGlzLm92ZXJsYXlSZWZcbiAgICAgIC5iYWNrZHJvcENsaWNrKClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfSk7XG4gIH1cbiAgXG4gIHByaXZhdGUgdXBkYXRlT3ZlcmxheVBvc2l0aW9uKCkge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5lbGVtZW50KVxuICAgICAgICAud2l0aFBvc2l0aW9ucyhcbiAgICAgICAgICBnZW5Qb3NpdGlvblBhaXJzKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwb3NpdGlvblg6IHRoaXMucG9zaXRpb25YKCksXG4gICAgICAgICAgICAgIHBvc2l0aW9uWTogdGhpcy5wb3NpdGlvblkoKSxcbiAgICAgICAgICAgICAgb2Zmc2V0WDogdGhpcy5vZmZzZXRYKCksXG4gICAgICAgICAgICAgIG9mZnNldFk6IHRoaXMub2Zmc2V0WSgpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICAgLndpdGhQdXNoKHRydWUpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kocG9zaXRpb25TdHJhdGVneSk7XG4gICAgfVxuICB9XG5cbiAgYXBwbHlEYXRlKGRhdGVzOiBJU1NlbGVjdGVkRGF0ZXNDb25maWdbXSkge1xuICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KGRhdGVzKTtcbiAgICB0aGlzLmNvbnRyb2w/LmNvbnRyb2wucGF0Y2hWYWx1ZShkYXRlcyk7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG4gIFxuICBhcHBseURhdGVSYW5nZShkYXRlczogSVJTZWxlY3RlZERhdGVzQ29uZmlnKSB7XG4gICAgdGhpcy5kYXRlQ2hhbmdlUmFuZ2UuZW1pdChkYXRlcyk7XG4gICAgdGhpcy5jb250cm9sPy5jb250cm9sLnBhdGNoVmFsdWUoZGF0ZXMpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuICBcbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5pc09wZW4uc2V0KGZhbHNlKTtcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICB9XG59XG5cblxuIl19
@@ -1,4 +1,4 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
1
+ import { Component, input, output, signal, computed, effect } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  const _c0 = a0 => ({ "cursor": a0 });
@@ -16,98 +16,84 @@ function StarRatingComponent_div_1_Template(rf, ctx) { if (rf & 1) {
16
16
  i0.ɵɵadvance();
17
17
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(3, _c1, star_r2.id === star_r2.hoverId, star_r2.hoverId >= 0 && star_r2.id > star_r2.hoverId));
18
18
  i0.ɵɵadvance();
19
- i0.ɵɵproperty("src", star_r2.asset, i0.ɵɵsanitizeUrl)("ngStyle", i0.ɵɵpureFunction2(6, _c2, ctx_r2.starHeight, ctx_r2.starWidth));
19
+ i0.ɵɵproperty("src", star_r2.asset, i0.ɵɵsanitizeUrl)("ngStyle", i0.ɵɵpureFunction2(6, _c2, ctx_r2.starHeight(), ctx_r2.starWidth()));
20
20
  } }
21
21
  export class StarRatingComponent {
22
- constructor() {
23
- this.noOfStars = 0;
24
- this.selectedRating = -1;
25
- this.selectedStarSvg = 'assets/selectedStar.svg';
26
- this.emptyStarSvg = 'assets/star.svg';
27
- this.starHeight = '24px';
28
- this.starWidth = '24px';
29
- this.starSelectionAllowed = true;
30
- this.starHoverAllowed = true;
31
- this.starRated = new EventEmitter();
32
- this.starData = [];
33
- this.selectedData = [];
34
- }
35
22
  ngOnInit() {
36
- if (this.noOfStars > 0) {
37
- this.starData = Array.from({ length: this.noOfStars }, (_, i) => ({
38
- id: i,
39
- asset: this.emptyStarSvg,
40
- hoverId: -1,
41
- }));
42
- }
43
- this.selectedRating = this.selectedRating > this.noOfStars ? this.noOfStars : this.selectedRating;
44
- this.assetsSelection(this.selectedRating);
45
- this.selectedData = JSON.parse(JSON.stringify(this.starData));
23
+ // initialize once inputs are available
24
+ this._selectedRating.set(this.selectedRating());
46
25
  }
47
- ngOnChanges(changes) {
48
- this.assetsSelection(this.selectedRating);
49
- this.selectedData = JSON.parse(JSON.stringify(this.starData));
50
- }
51
- assetsSelection(index = -1) {
52
- this.starData.forEach((item) => {
53
- item.asset = item.id <= index - 1 ? this.selectedStarSvg : this.emptyStarSvg;
54
- item.hoverId = -1;
26
+ constructor() {
27
+ // === Inputs ===
28
+ this.noOfStars = input(0);
29
+ this.selectedRating = input(0);
30
+ this.selectedStarSvg = input('assets/selectedStar.svg');
31
+ this.emptyStarSvg = input('assets/star.svg');
32
+ this.starHeight = input('24px');
33
+ this.starWidth = input('24px');
34
+ this.starSelectionAllowed = input(true);
35
+ this.starHoverAllowed = input(true);
36
+ // === Output ===
37
+ this.starRated = output();
38
+ // === Internal state ===
39
+ this._hoverIndex = signal(null);
40
+ this._selectedRating = signal(0);
41
+ // === Computed ===
42
+ this.starData = computed(() => {
43
+ const count = Math.max(0, this.noOfStars());
44
+ const selected = this._selectedRating();
45
+ const hover = this._hoverIndex();
46
+ return Array.from({ length: count }, (_, i) => {
47
+ const isHovered = hover != null && i <= hover;
48
+ const isSelected = i < selected;
49
+ return {
50
+ id: i,
51
+ asset: isHovered || isSelected ? this.selectedStarSvg() : this.emptyStarSvg(),
52
+ hoverId: hover ?? -1,
53
+ };
54
+ });
55
+ });
56
+ // keep in sync if parent changes later
57
+ effect(() => {
58
+ this._selectedRating.set(this.selectedRating());
55
59
  });
56
60
  }
61
+ // === Handlers ===
57
62
  starMouseOver(index) {
58
- if (!this.starHoverAllowed)
59
- return;
60
- const threshold = this.selectedRating - 1;
61
- this.starData.forEach(item => {
62
- item.hoverId = index;
63
- item.asset = index > threshold && item.id <= index ? this.selectedStarSvg : this.selectedData[item.id].asset;
64
- });
63
+ if (this.starHoverAllowed()) {
64
+ this._hoverIndex.set(index);
65
+ }
65
66
  }
66
67
  starMouseLeave() {
67
- if (!this.starHoverAllowed)
68
- return;
69
- this.starData = JSON.parse(JSON.stringify(this.selectedData));
70
- this.assetsSelection(this.selectedRating);
68
+ if (this.starHoverAllowed()) {
69
+ this._hoverIndex.set(null);
70
+ }
71
71
  }
72
72
  selectedStarData(index) {
73
- if (this.starSelectionAllowed) {
74
- this.starRated.emit(index + 1);
73
+ if (this.starSelectionAllowed()) {
74
+ const rating = index + 1;
75
+ this._selectedRating.set(rating);
76
+ this.starRated.emit(rating);
75
77
  }
76
78
  }
79
+ trackById(_, item) {
80
+ return item.id;
81
+ }
77
82
  static { this.ɵfac = function StarRatingComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || StarRatingComponent)(); }; }
78
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: StarRatingComponent, selectors: [["mis-star-rating"]], inputs: { noOfStars: "noOfStars", selectedRating: "selectedRating", selectedStarSvg: "selectedStarSvg", emptyStarSvg: "emptyStarSvg", starHeight: "starHeight", starWidth: "starWidth", starSelectionAllowed: "starSelectionAllowed", starHoverAllowed: "starHoverAllowed" }, outputs: { starRated: "starRated" }, features: [i0.ɵɵNgOnChangesFeature], decls: 2, vars: 4, consts: [[1, "rating-container", 3, "mouseleave", "ngStyle"], ["class", "stars-container", 4, "ngFor", "ngForOf"], [1, "stars-container"], [1, "star", 3, "click", "mouseover", "ngClass"], [3, "src", "ngStyle"]], template: function StarRatingComponent_Template(rf, ctx) { if (rf & 1) {
83
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: StarRatingComponent, selectors: [["mis-star-rating"]], inputs: { noOfStars: [1, "noOfStars"], selectedRating: [1, "selectedRating"], selectedStarSvg: [1, "selectedStarSvg"], emptyStarSvg: [1, "emptyStarSvg"], starHeight: [1, "starHeight"], starWidth: [1, "starWidth"], starSelectionAllowed: [1, "starSelectionAllowed"], starHoverAllowed: [1, "starHoverAllowed"] }, outputs: { starRated: "starRated" }, decls: 2, vars: 5, consts: [[1, "rating-container", 3, "mouseleave", "ngStyle"], ["class", "stars-container", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "stars-container"], [1, "star", 3, "click", "mouseover", "ngClass"], [3, "src", "ngStyle"]], template: function StarRatingComponent_Template(rf, ctx) { if (rf & 1) {
79
84
  i0.ɵɵelementStart(0, "div", 0);
80
85
  i0.ɵɵlistener("mouseleave", function StarRatingComponent_Template_div_mouseleave_0_listener() { return ctx.starMouseLeave(); });
81
86
  i0.ɵɵtemplate(1, StarRatingComponent_div_1_Template, 3, 9, "div", 1);
82
87
  i0.ɵɵelementEnd();
83
88
  } if (rf & 2) {
84
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(2, _c0, ctx.starSelectionAllowed ? "pointer" : "not-allowed"));
89
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(3, _c0, ctx.starSelectionAllowed() ? "pointer" : "not-allowed"));
85
90
  i0.ɵɵadvance();
86
- i0.ɵɵproperty("ngForOf", ctx.starData);
87
- } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgStyle], 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}.rating-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:12px}.not-hovered[_ngcontent-%COMP%]{opacity:.6}.hoveredStarZoom[_ngcontent-%COMP%]{transform:scale(1.2);filter:drop-shadow(0px 2px 5px var(--brand-warning, #FF9D00));transition:all .3s ease-out}"] }); }
91
+ i0.ɵɵproperty("ngForOf", ctx.starData())("ngForTrackBy", ctx.trackById);
92
+ } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgStyle], styles: [".rating-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:12px}.not-hovered[_ngcontent-%COMP%]{opacity:.6}.hoveredStarZoom[_ngcontent-%COMP%]{transform:scale(1.2);filter:drop-shadow(0px 2px 5px #e79c11);transition:all .3s ease-out}"] }); }
88
93
  }
89
94
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StarRatingComponent, [{
90
95
  type: Component,
91
- args: [{ selector: 'mis-star-rating', template: "<div class=\"rating-container\" (mouseleave)=\"starMouseLeave()\" [ngStyle]=\"{'cursor': starSelectionAllowed ? 'pointer' : 'not-allowed'}\">\n <div class=\"stars-container\" *ngFor=\"let star of starData\">\n <div class=\"star\" \n (click)=\"selectedStarData(star.id)\" \n (mouseover)=\"starMouseOver(star.id)\"\n [ngClass]=\"{'hoveredStarZoom': star.id === star.hoverId, 'not-hovered' : star.hoverId >=0 && star.id > star.hoverId}\"\n >\n <img [src]=\"star.asset\" [ngStyle]=\"{'height': starHeight, 'width': starWidth}\">\n </div>\n </div>\n</div>\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}.rating-container{display:flex;flex-direction:row;gap:12px}.not-hovered{opacity:.6}.hoveredStarZoom{transform:scale(1.2);filter:drop-shadow(0px 2px 5px var(--brand-warning, #FF9D00));transition:all .3s ease-out}\n"] }]
92
- }], () => [], { noOfStars: [{
93
- type: Input
94
- }], selectedRating: [{
95
- type: Input
96
- }], selectedStarSvg: [{
97
- type: Input
98
- }], emptyStarSvg: [{
99
- type: Input
100
- }], starHeight: [{
101
- type: Input
102
- }], starWidth: [{
103
- type: Input
104
- }], starSelectionAllowed: [{
105
- type: Input
106
- }], starHoverAllowed: [{
107
- type: Input
108
- }], starRated: [{
109
- type: Output,
110
- args: ['starRated']
111
- }] }); })();
96
+ args: [{ selector: 'mis-star-rating', template: "<div class=\"rating-container\"\n (mouseleave)=\"starMouseLeave()\"\n [ngStyle]=\"{'cursor': starSelectionAllowed() ? 'pointer' : 'not-allowed'}\">\n\n <div class=\"stars-container\" *ngFor=\"let star of starData(); trackBy: trackById\">\n <div class=\"star\"\n (click)=\"selectedStarData(star.id)\"\n (mouseover)=\"starMouseOver(star.id)\"\n [ngClass]=\"{\n 'hoveredStarZoom': star.id === star.hoverId,\n 'not-hovered': star.hoverId >= 0 && star.id > star.hoverId\n }\">\n <img [src]=\"star.asset\" [ngStyle]=\"{'height': starHeight(), 'width': starWidth()}\">\n </div>\n </div>\n</div>\n", styles: [".rating-container{display:flex;flex-direction:row;gap:12px}.not-hovered{opacity:.6}.hoveredStarZoom{transform:scale(1.2);filter:drop-shadow(0px 2px 5px #e79c11);transition:all .3s ease-out}\n"] }]
97
+ }], () => [], null); })();
112
98
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(StarRatingComponent, { className: "StarRatingComponent" }); })();
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rhci1yYXRpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvc3Rhci1yYXRpbmcvc3Rhci1yYXRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvc3Rhci1yYXRpbmcvc3Rhci1yYXRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBNEIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0lDRWpHLEFBREosOEJBQTJELGFBS3REO0lBRkQsQUFEQSxzTUFBUyxtQ0FBeUIsS0FBQyxpTUFDdEIsZ0NBQXNCLEtBQUM7SUFHaEMseUJBQStFO0lBRXZGLEFBREksaUJBQU0sRUFDSjs7OztJQUpGLGNBQXFIO0lBQXJILDBJQUFxSDtJQUU1RyxjQUFrQjtJQUFDLEFBQW5CLHFEQUFrQiw0RUFBdUQ7O0FEQTFGLE1BQU0sT0FBTyxtQkFBbUI7SUFjOUI7UUFaUyxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDNUIsb0JBQWUsR0FBRyx5QkFBeUIsQ0FBQztRQUM1QyxpQkFBWSxHQUFHLGlCQUFpQixDQUFDO1FBQ2pDLGVBQVUsR0FBRyxNQUFNLENBQUM7UUFDcEIsY0FBUyxHQUFHLE1BQU0sQ0FBQztRQUNuQix5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDNUIscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQ1osY0FBUyxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFFLGFBQVEsR0FBZ0IsRUFBRSxDQUFDO1FBQzNCLGlCQUFZLEdBQWdCLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFakIsUUFBUTtRQUNOLElBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEVB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QkFBZ0IsSUFBQztZQUN6RCxvRUFBMkQ7WUFTL0QsaUJBQU07O1lBVndELDBHQUF3RTtZQUNwRixjQUFXO1lBQVgsc0NBQVc7OztpRkRNaEQsbUJBQW1CO2NBTC9CLFNBQVM7MkJBQ0UsaUJBQWlCO29CQU1sQixTQUFTO2tCQUFqQixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLGVBQWU7a0JBQXZCLEtBQUs7WUFDRyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNHLFNBQVM7a0JBQWpCLEtBQUs7WUFDRyxvQkFBb0I7a0JBQTVCLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFDZSxTQUFTO2tCQUE3QixNQUFNO21CQUFDLFdBQVc7O2tGQVZSLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtaXMtc3Rhci1yYXRpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3Rhci1yYXRpbmcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdGFyLXJhdGluZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFN0YXJSYXRpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgbm9PZlN0YXJzOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBzZWxlY3RlZFJhdGluZzogbnVtYmVyID0gLTE7XG4gIEBJbnB1dCgpIHNlbGVjdGVkU3RhclN2ZyA9ICdhc3NldHMvc2VsZWN0ZWRTdGFyLnN2Zyc7XG4gIEBJbnB1dCgpIGVtcHR5U3RhclN2ZyA9ICdhc3NldHMvc3Rhci5zdmcnO1xuICBASW5wdXQoKSBzdGFySGVpZ2h0ID0gJzI0cHgnO1xuICBASW5wdXQoKSBzdGFyV2lkdGggPSAnMjRweCc7XG4gIEBJbnB1dCgpIHN0YXJTZWxlY3Rpb25BbGxvd2VkID0gdHJ1ZTtcbiAgQElucHV0KCkgc3RhckhvdmVyQWxsb3dlZCA9IHRydWU7XG4gIEBPdXRwdXQoJ3N0YXJSYXRlZCcpIHN0YXJSYXRlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgc3RhckRhdGE6IFNUQVJfREFUQVtdID0gW107XG4gIHNlbGVjdGVkRGF0YTogU1RBUl9EQVRBW10gPSBbXTtcbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZih0aGlzLm5vT2ZTdGFycyA+IDApe1xuICAgICAgdGhpcy5zdGFyRGF0YSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMubm9PZlN0YXJzIH0sIChfLCBpKSA9PiAoe1xuICAgICAgICBpZDogaSxcbiAgICAgICAgYXNzZXQ6IHRoaXMuZW1wdHlTdGFyU3ZnLFxuICAgICAgICBob3ZlcklkOiAtMSxcbiAgICAgIH0pKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZFJhdGluZyA9IHRoaXMuc2VsZWN0ZWRSYXRpbmcgPiB0aGlzLm5vT2ZTdGFycyA/IHRoaXMubm9PZlN0YXJzIDogdGhpcy5zZWxlY3RlZFJhdGluZzsgXG4gICAgdGhpcy5hc3NldHNTZWxlY3Rpb24odGhpcy5zZWxlY3RlZFJhdGluZyk7XG4gICAgdGhpcy5zZWxlY3RlZERhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuc3RhckRhdGEpKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmFzc2V0c1NlbGVjdGlvbih0aGlzLnNlbGVjdGVkUmF0aW5nKTtcbiAgICB0aGlzLnNlbGVjdGVkRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zdGFyRGF0YSkpO1xuICB9XG5cbiAgYXNzZXRzU2VsZWN0aW9uKGluZGV4OiBudW1iZXIgPSAtMSl7XG4gICAgdGhpcy5zdGFyRGF0YS5mb3JFYWNoKChpdGVtOiBTVEFSX0RBVEEpID0+IHtcbiAgICAgIGl0ZW0uYXNzZXQgPSBpdGVtLmlkIDw9IGluZGV4IC0gMSA/IHRoaXMuc2VsZWN0ZWRTdGFyU3ZnIDogdGhpcy5lbXB0eVN0YXJTdmc7XG4gICAgICBpdGVtLmhvdmVySWQgPSAtMTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXJNb3VzZU92ZXIoaW5kZXgpe1xuICAgIGlmICghdGhpcy5zdGFySG92ZXJBbGxvd2VkKSByZXR1cm47XG5cbiAgICBjb25zdCB0aHJlc2hvbGQgPSB0aGlzLnNlbGVjdGVkUmF0aW5nIC0gMTtcbiAgICB0aGlzLnN0YXJEYXRhLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBpdGVtLmhvdmVySWQgPSBpbmRleDtcbiAgICAgIGl0ZW0uYXNzZXQgPSBpbmRleCA+IHRocmVzaG9sZCAmJiBpdGVtLmlkIDw9IGluZGV4ID8gdGhpcy5zZWxlY3RlZFN0YXJTdmcgOiB0aGlzLnNlbGVjdGVkRGF0YVtpdGVtLmlkXS5hc3NldDtcbiAgICB9KTtcblxuICB9XG5cbiAgc3Rhck1vdXNlTGVhdmUoKXtcbiAgICBpZighdGhpcy5zdGFySG92ZXJBbGxvd2VkKSByZXR1cm47XG5cbiAgICB0aGlzLnN0YXJEYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRGF0YSkpO1xuICAgIHRoaXMuYXNzZXRzU2VsZWN0aW9uKHRoaXMuc2VsZWN0ZWRSYXRpbmcpO1xuICB9XG5cbiAgc2VsZWN0ZWRTdGFyRGF0YShpbmRleDogbnVtYmVyKXtcbiAgICBpZih0aGlzLnN0YXJTZWxlY3Rpb25BbGxvd2VkKXtcbiAgICAgIHRoaXMuc3RhclJhdGVkLmVtaXQoaW5kZXgrMSlcbiAgICB9XG4gIH1cblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNUQVJfREFUQSB7XG4gIGlkOiBudW1iZXIsXG4gIGFzc2V0OiBzdHJpbmcsXG4gIGhvdmVySWQ6IG51bWJlclxufVxuIiwiPGRpdiBjbGFzcz1cInJhdGluZy1jb250YWluZXJcIiAobW91c2VsZWF2ZSk9XCJzdGFyTW91c2VMZWF2ZSgpXCIgW25nU3R5bGVdPVwieydjdXJzb3InOiBzdGFyU2VsZWN0aW9uQWxsb3dlZCA/ICdwb2ludGVyJyA6ICdub3QtYWxsb3dlZCd9XCI+XG4gICAgPGRpdiBjbGFzcz1cInN0YXJzLWNvbnRhaW5lclwiICpuZ0Zvcj1cImxldCBzdGFyIG9mIHN0YXJEYXRhXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGFyXCIgXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RlZFN0YXJEYXRhKHN0YXIuaWQpXCIgXG4gICAgICAgIChtb3VzZW92ZXIpPVwic3Rhck1vdXNlT3ZlcihzdGFyLmlkKVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnaG92ZXJlZFN0YXJab29tJzogc3Rhci5pZCA9PT0gc3Rhci5ob3ZlcklkLCAnbm90LWhvdmVyZWQnIDogc3Rhci5ob3ZlcklkID49MCAmJiBzdGFyLmlkID4gc3Rhci5ob3ZlcklkfVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpbWcgW3NyY109XCJzdGFyLmFzc2V0XCIgW25nU3R5bGVdPVwieydoZWlnaHQnOiBzdGFySGVpZ2h0LCAnd2lkdGgnOiBzdGFyV2lkdGh9XCI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rhci1yYXRpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvc3Rhci1yYXRpbmcvc3Rhci1yYXRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvc3Rhci1yYXRpbmcvc3Rhci1yYXRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztJQ0t2RixBQURGLDhCQUFpRixhQU92RTtJQUpILEFBREEsc01BQVMsbUNBQXlCLEtBQUMsaU1BQ3RCLGdDQUFzQixLQUFDO0lBS3ZDLHlCQUFtRjtJQUV2RixBQURFLGlCQUFNLEVBQ0Y7Ozs7SUFOQyxjQUdFO0lBSEYsMElBR0U7SUFDQSxjQUFrQjtJQUFDLEFBQW5CLHFEQUFrQixnRkFBMkQ7O0FETHhGLE1BQU0sT0FBTyxtQkFBbUI7SUFrQjlCLFFBQVE7UUFDTix1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEO1FBdEJBLGlCQUFpQjtRQUNqQixjQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLG1CQUFjLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLG9CQUFlLEdBQUcsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDbkQsaUJBQVksR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4QyxlQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLGNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUIseUJBQW9CLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLHFCQUFnQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUvQixpQkFBaUI7UUFDakIsY0FBUyxHQUFHLE1BQU0sRUFBVSxDQUFDO1FBRTdCLHlCQUF5QjtRQUNqQixnQkFBVyxHQUFHLE1BQU0sQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDMUMsb0JBQWUsR0FBRyxNQUFNLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFjNUMsbUJBQW1CO1FBQ25CLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFFakMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUM1QyxNQUFNLFNBQVMsR0FBRyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUM7Z0JBQzlDLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUM7Z0JBRWhDLE9BQU87b0JBQ0wsRUFBRSxFQUFFLENBQUM7b0JBQ0wsS0FBSyxFQUFFLFNBQVMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtvQkFDN0UsT0FBTyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUM7aUJBQ1IsQ0FBQztZQUNqQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBdEJELHVDQUF1QztRQUN2QyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBb0JELG1CQUFtQjtJQUNuQixhQUFhLENBQUMsS0FBYTtRQUN6QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYTtRQUM1QixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUM7WUFDaEMsTUFBTSxNQUFNLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxDQUFTLEVBQUUsSUFBZTtRQUNsQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQztvSEF2RVUsbUJBQW1CO29FQUFuQixtQkFBbUI7WUNQaEMsOEJBRWdGO1lBRDNFLHVHQUFjLG9CQUFnQixJQUFDO1lBR2xDLG9FQUFpRjtZQVduRixpQkFBTTs7WUFiRCw0R0FBMEU7WUFFL0IsY0FBZTtZQUFBLEFBQWYsd0NBQWUsK0JBQWtCOzs7aUZER3BFLG1CQUFtQjtjQUwvQixTQUFTOzJCQUNFLGlCQUFpQjs7a0ZBSWhCLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsLCBjb21wdXRlZCwgZWZmZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWlzLXN0YXItcmF0aW5nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0YXItcmF0aW5nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3Rhci1yYXRpbmcuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RhclJhdGluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vID09PSBJbnB1dHMgPT09XG4gIG5vT2ZTdGFycyA9IGlucHV0KDApO1xuICBzZWxlY3RlZFJhdGluZyA9IGlucHV0KDApO1xuICBzZWxlY3RlZFN0YXJTdmcgPSBpbnB1dCgnYXNzZXRzL3NlbGVjdGVkU3Rhci5zdmcnKTtcbiAgZW1wdHlTdGFyU3ZnID0gaW5wdXQoJ2Fzc2V0cy9zdGFyLnN2ZycpO1xuICBzdGFySGVpZ2h0ID0gaW5wdXQoJzI0cHgnKTtcbiAgc3RhcldpZHRoID0gaW5wdXQoJzI0cHgnKTtcbiAgc3RhclNlbGVjdGlvbkFsbG93ZWQgPSBpbnB1dCh0cnVlKTtcbiAgc3RhckhvdmVyQWxsb3dlZCA9IGlucHV0KHRydWUpO1xuXG4gIC8vID09PSBPdXRwdXQgPT09XG4gIHN0YXJSYXRlZCA9IG91dHB1dDxudW1iZXI+KCk7XG5cbiAgLy8gPT09IEludGVybmFsIHN0YXRlID09PVxuICBwcml2YXRlIF9ob3ZlckluZGV4ID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIF9zZWxlY3RlZFJhdGluZyA9IHNpZ25hbDxudW1iZXI+KDApO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIGluaXRpYWxpemUgb25jZSBpbnB1dHMgYXJlIGF2YWlsYWJsZVxuICAgIHRoaXMuX3NlbGVjdGVkUmF0aW5nLnNldCh0aGlzLnNlbGVjdGVkUmF0aW5nKCkpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8ga2VlcCBpbiBzeW5jIGlmIHBhcmVudCBjaGFuZ2VzIGxhdGVyXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkUmF0aW5nLnNldCh0aGlzLnNlbGVjdGVkUmF0aW5nKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gPT09IENvbXB1dGVkID09PVxuICBzdGFyRGF0YSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb3VudCA9IE1hdGgubWF4KDAsIHRoaXMubm9PZlN0YXJzKCkpO1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5fc2VsZWN0ZWRSYXRpbmcoKTtcbiAgICBjb25zdCBob3ZlciA9IHRoaXMuX2hvdmVySW5kZXgoKTtcblxuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBjb3VudCB9LCAoXywgaSkgPT4ge1xuICAgICAgY29uc3QgaXNIb3ZlcmVkID0gaG92ZXIgIT0gbnVsbCAmJiBpIDw9IGhvdmVyO1xuICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IGkgPCBzZWxlY3RlZDtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGksXG4gICAgICAgIGFzc2V0OiBpc0hvdmVyZWQgfHwgaXNTZWxlY3RlZCA/IHRoaXMuc2VsZWN0ZWRTdGFyU3ZnKCkgOiB0aGlzLmVtcHR5U3RhclN2ZygpLFxuICAgICAgICBob3ZlcklkOiBob3ZlciA/PyAtMSxcbiAgICAgIH0gYXMgU1RBUl9EQVRBO1xuICAgIH0pO1xuICB9KTtcblxuICAvLyA9PT0gSGFuZGxlcnMgPT09XG4gIHN0YXJNb3VzZU92ZXIoaW5kZXg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLnN0YXJIb3ZlckFsbG93ZWQoKSkge1xuICAgICAgdGhpcy5faG92ZXJJbmRleC5zZXQoaW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXJNb3VzZUxlYXZlKCkge1xuICAgIGlmICh0aGlzLnN0YXJIb3ZlckFsbG93ZWQoKSkge1xuICAgICAgdGhpcy5faG92ZXJJbmRleC5zZXQobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0ZWRTdGFyRGF0YShpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuc3RhclNlbGVjdGlvbkFsbG93ZWQoKSkge1xuICAgICAgY29uc3QgcmF0aW5nID0gaW5kZXggKyAxO1xuICAgICAgdGhpcy5fc2VsZWN0ZWRSYXRpbmcuc2V0KHJhdGluZyk7XG4gICAgICB0aGlzLnN0YXJSYXRlZC5lbWl0KHJhdGluZyk7XG4gICAgfVxuICB9XG5cbiAgdHJhY2tCeUlkKF86IG51bWJlciwgaXRlbTogU1RBUl9EQVRBKSB7XG4gICAgcmV0dXJuIGl0ZW0uaWQ7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTVEFSX0RBVEEge1xuICBpZDogbnVtYmVyO1xuICBhc3NldDogc3RyaW5nO1xuICBob3ZlcklkOiBudW1iZXI7XG59XG4iLCI8ZGl2IGNsYXNzPVwicmF0aW5nLWNvbnRhaW5lclwiXG4gICAgIChtb3VzZWxlYXZlKT1cInN0YXJNb3VzZUxlYXZlKClcIlxuICAgICBbbmdTdHlsZV09XCJ7J2N1cnNvcic6IHN0YXJTZWxlY3Rpb25BbGxvd2VkKCkgPyAncG9pbnRlcicgOiAnbm90LWFsbG93ZWQnfVwiPlxuXG4gIDxkaXYgY2xhc3M9XCJzdGFycy1jb250YWluZXJcIiAqbmdGb3I9XCJsZXQgc3RhciBvZiBzdGFyRGF0YSgpOyB0cmFja0J5OiB0cmFja0J5SWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwic3RhclwiXG4gICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWRTdGFyRGF0YShzdGFyLmlkKVwiXG4gICAgICAgICAobW91c2VvdmVyKT1cInN0YXJNb3VzZU92ZXIoc3Rhci5pZClcIlxuICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAnaG92ZXJlZFN0YXJab29tJzogc3Rhci5pZCA9PT0gc3Rhci5ob3ZlcklkLFxuICAgICAgICAgICAnbm90LWhvdmVyZWQnOiBzdGFyLmhvdmVySWQgPj0gMCAmJiBzdGFyLmlkID4gc3Rhci5ob3ZlcklkXG4gICAgICAgICB9XCI+XG4gICAgICA8aW1nIFtzcmNdPVwic3Rhci5hc3NldFwiIFtuZ1N0eWxlXT1cInsnaGVpZ2h0Jzogc3RhckhlaWdodCgpLCAnd2lkdGgnOiBzdGFyV2lkdGgoKX1cIj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==