@tolle_/tolle-ui 18.2.24 → 18.2.25

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 (184) hide show
  1. package/esm2022/lib/accordion-item.component.mjs +17 -5
  2. package/esm2022/lib/alert-dialog-dynamic.component.mjs +1 -1
  3. package/esm2022/lib/alert-dialog.component.mjs +48 -10
  4. package/esm2022/lib/alert-dialog.service.mjs +13 -2
  5. package/esm2022/lib/alert.component.mjs +5 -5
  6. package/esm2022/lib/avatar.component.mjs +30 -9
  7. package/esm2022/lib/badge.component.mjs +41 -15
  8. package/esm2022/lib/breadcrumb-link.component.mjs +5 -5
  9. package/esm2022/lib/button.component.mjs +14 -3
  10. package/esm2022/lib/calendar.component.mjs +99 -17
  11. package/esm2022/lib/card.component.mjs +29 -9
  12. package/esm2022/lib/carousel/carousel.component.mjs +19 -3
  13. package/esm2022/lib/checkbox.component.mjs +44 -21
  14. package/esm2022/lib/collapsible.component.mjs +12 -4
  15. package/esm2022/lib/country-selector.component.mjs +140 -20
  16. package/esm2022/lib/data-table.component.mjs +27 -16
  17. package/esm2022/lib/date-picker.component.mjs +24 -4
  18. package/esm2022/lib/date-range-picker.component.mjs +37 -9
  19. package/esm2022/lib/dropdown-item.component.mjs +19 -5
  20. package/esm2022/lib/dropdown-label.component.mjs +3 -3
  21. package/esm2022/lib/dropdown-menu.component.mjs +3 -3
  22. package/esm2022/lib/dropdown-separator.component.mjs +3 -3
  23. package/esm2022/lib/dropdown-trigger.directive.mjs +7 -3
  24. package/esm2022/lib/empty-state.component.mjs +3 -3
  25. package/esm2022/lib/hover-card.component.mjs +4 -2
  26. package/esm2022/lib/input.component.mjs +7 -5
  27. package/esm2022/lib/label.component.mjs +2 -2
  28. package/esm2022/lib/masked-input.component.mjs +3 -3
  29. package/esm2022/lib/modal.component.mjs +58 -22
  30. package/esm2022/lib/modal.service.mjs +13 -1
  31. package/esm2022/lib/multi-select.component.mjs +228 -20
  32. package/esm2022/lib/otp.component.mjs +6 -3
  33. package/esm2022/lib/pagination.component.mjs +19 -9
  34. package/esm2022/lib/progress.component.mjs +8 -5
  35. package/esm2022/lib/radio-group.component.mjs +51 -3
  36. package/esm2022/lib/radio-item.component.mjs +46 -8
  37. package/esm2022/lib/radio-service.mjs +60 -1
  38. package/esm2022/lib/range-calendar.component.mjs +317 -98
  39. package/esm2022/lib/resizable-panel.component.mjs +5 -4
  40. package/esm2022/lib/scroll-area.component.mjs +5 -5
  41. package/esm2022/lib/segment.component.mjs +73 -7
  42. package/esm2022/lib/select-item.component.mjs +20 -2
  43. package/esm2022/lib/select-separator.component.mjs +3 -3
  44. package/esm2022/lib/select.component.mjs +221 -14
  45. package/esm2022/lib/separator.component.mjs +12 -6
  46. package/esm2022/lib/sheet-ref.mjs +8 -1
  47. package/esm2022/lib/sheet-wrapper.component.mjs +27 -11
  48. package/esm2022/lib/sheet.component.mjs +57 -16
  49. package/esm2022/lib/sheet.service.mjs +5 -1
  50. package/esm2022/lib/sidebar.component.mjs +73 -15
  51. package/esm2022/lib/skeleton.component.mjs +19 -5
  52. package/esm2022/lib/switch.component.mjs +59 -53
  53. package/esm2022/lib/tabs.component.mjs +75 -13
  54. package/esm2022/lib/tag-input.component.mjs +6 -3
  55. package/esm2022/lib/textarea.component.mjs +9 -7
  56. package/esm2022/lib/theme.service.mjs +114 -138
  57. package/esm2022/lib/toaster.component.mjs +19 -9
  58. package/esm2022/lib/toggle-group.component.mjs +76 -4
  59. package/esm2022/lib/tolle-config.mjs +1 -1
  60. package/esm2022/lib/tooltip.directive.mjs +41 -17
  61. package/esm2022/lib/utils/color.mjs +324 -0
  62. package/esm2022/public-api.mjs +2 -1
  63. package/fesm2022/tolle-ui.mjs +2645 -637
  64. package/fesm2022/tolle-ui.mjs.map +1 -1
  65. package/lib/alert-dialog.component.d.ts +10 -1
  66. package/lib/avatar.component.d.ts +16 -3
  67. package/lib/badge.component.d.ts +17 -5
  68. package/lib/button.component.d.ts +10 -3
  69. package/lib/calendar.component.d.ts +21 -3
  70. package/lib/card.component.d.ts +6 -0
  71. package/lib/carousel/carousel.component.d.ts +1 -0
  72. package/lib/checkbox.component.d.ts +12 -4
  73. package/lib/country-selector.component.d.ts +11 -2
  74. package/lib/date-picker.component.d.ts +1 -0
  75. package/lib/date-range-picker.component.d.ts +4 -1
  76. package/lib/dropdown-item.component.d.ts +4 -2
  77. package/lib/dropdown-trigger.directive.d.ts +1 -1
  78. package/lib/modal.component.d.ts +6 -0
  79. package/lib/multi-select.component.d.ts +20 -0
  80. package/lib/otp.component.d.ts +1 -0
  81. package/lib/progress.component.d.ts +1 -0
  82. package/lib/radio-group.component.d.ts +8 -0
  83. package/lib/radio-item.component.d.ts +10 -4
  84. package/lib/radio-service.d.ts +29 -0
  85. package/lib/range-calendar.component.d.ts +33 -4
  86. package/lib/segment.component.d.ts +13 -0
  87. package/lib/select-item.component.d.ts +4 -1
  88. package/lib/select.component.d.ts +20 -0
  89. package/lib/separator.component.d.ts +2 -0
  90. package/lib/sheet-wrapper.component.d.ts +4 -0
  91. package/lib/sheet.component.d.ts +10 -1
  92. package/lib/sidebar.component.d.ts +2 -0
  93. package/lib/skeleton.component.d.ts +9 -3
  94. package/lib/switch.component.d.ts +13 -20
  95. package/lib/tabs.component.d.ts +11 -1
  96. package/lib/theme.service.d.ts +21 -6
  97. package/lib/toaster.component.d.ts +2 -2
  98. package/lib/toggle-group.component.d.ts +20 -2
  99. package/lib/toggle.component.d.ts +1 -1
  100. package/lib/tolle-config.d.ts +8 -0
  101. package/lib/tooltip.directive.d.ts +3 -0
  102. package/lib/utils/color.d.ts +87 -0
  103. package/package.json +4 -1
  104. package/preset.js +28 -0
  105. package/public-api.d.ts +1 -0
  106. package/registry/docs-content.json +4214 -0
  107. package/registry/llms-full.txt +1599 -0
  108. package/registry/llms.txt +83 -0
  109. package/registry/manifest.json +4925 -0
  110. package/registry/r/accordion-item.json +21 -0
  111. package/registry/r/accordion.json +23 -0
  112. package/registry/r/alert-dialog-dynamic.json +31 -0
  113. package/registry/r/alert-dialog.json +26 -0
  114. package/registry/r/alert.json +23 -0
  115. package/registry/r/aspect-ratio.json +21 -0
  116. package/registry/r/avatar-fallback.json +16 -0
  117. package/registry/r/avatar.json +23 -0
  118. package/registry/r/badge.json +23 -0
  119. package/registry/r/breadcrumb-item.json +16 -0
  120. package/registry/r/breadcrumb-link.json +16 -0
  121. package/registry/r/breadcrumb-separator.json +16 -0
  122. package/registry/r/breadcrumb.json +21 -0
  123. package/registry/r/button-group.json +21 -0
  124. package/registry/r/button.json +23 -0
  125. package/registry/r/calendar.json +23 -0
  126. package/registry/r/card.json +21 -0
  127. package/registry/r/carousel.json +18 -0
  128. package/registry/r/checkbox.json +23 -0
  129. package/registry/r/collapsible.json +21 -0
  130. package/registry/r/context-menu-trigger.json +23 -0
  131. package/registry/r/context-menu.json +28 -0
  132. package/registry/r/country-selector.json +31 -0
  133. package/registry/r/data-table.json +38 -0
  134. package/registry/r/date-picker.json +27 -0
  135. package/registry/r/date-range-picker.json +32 -0
  136. package/registry/r/dropdown-item.json +21 -0
  137. package/registry/r/dropdown-label.json +16 -0
  138. package/registry/r/dropdown-menu.json +16 -0
  139. package/registry/r/dropdown-separator.json +16 -0
  140. package/registry/r/dropdown-trigger.json +20 -0
  141. package/registry/r/empty-state.json +23 -0
  142. package/registry/r/hover-card.json +23 -0
  143. package/registry/r/input.json +21 -0
  144. package/registry/r/label.json +21 -0
  145. package/registry/r/masked-input.json +21 -0
  146. package/registry/r/modal.json +36 -0
  147. package/registry/r/multi-select.json +33 -0
  148. package/registry/r/otp-group.json +16 -0
  149. package/registry/r/otp-slot.json +21 -0
  150. package/registry/r/otp.json +21 -0
  151. package/registry/r/pagination.json +32 -0
  152. package/registry/r/phone-number-input.json +34 -0
  153. package/registry/r/popover-content.json +21 -0
  154. package/registry/r/popover.json +18 -0
  155. package/registry/r/progress.json +21 -0
  156. package/registry/r/radio-group.json +26 -0
  157. package/registry/r/radio-item.json +26 -0
  158. package/registry/r/range-calendar.json +28 -0
  159. package/registry/r/resizable-panel-item.json +23 -0
  160. package/registry/r/resizable-panel.json +23 -0
  161. package/registry/r/resizable.json +21 -0
  162. package/registry/r/scroll-area.json +21 -0
  163. package/registry/r/segment.json +21 -0
  164. package/registry/r/select-group.json +21 -0
  165. package/registry/r/select-item.json +26 -0
  166. package/registry/r/select-separator.json +21 -0
  167. package/registry/r/select.json +31 -0
  168. package/registry/r/separator.json +21 -0
  169. package/registry/r/sheet-wrapper.json +31 -0
  170. package/registry/r/sheet.json +21 -0
  171. package/registry/r/sidebar.json +21 -0
  172. package/registry/r/skeleton.json +23 -0
  173. package/registry/r/slider.json +21 -0
  174. package/registry/r/switch.json +23 -0
  175. package/registry/r/tabs.json +23 -0
  176. package/registry/r/tag-input.json +25 -0
  177. package/registry/r/textarea.json +21 -0
  178. package/registry/r/toaster.json +26 -0
  179. package/registry/r/toggle-group.json +25 -0
  180. package/registry/r/toggle.json +23 -0
  181. package/registry/r/tolle-cell.json +16 -0
  182. package/registry/r/tooltip.json +23 -0
  183. package/registry/registry.json +1540 -0
  184. package/theme.css +56 -1
@@ -16,6 +16,8 @@ export class DateRangePickerComponent {
16
16
  class = '';
17
17
  disablePastDates = false;
18
18
  size = 'default';
19
+ /** Consecutive months shown in the popover (e.g. `2` for a two-month picker). @default 1 */
20
+ numberOfMonths = 1;
19
21
  trigger;
20
22
  popover;
21
23
  value = { start: null, end: null };
@@ -52,8 +54,15 @@ export class DateRangePickerComponent {
52
54
  return;
53
55
  this.isOpen ? this.close() : this.open();
54
56
  }
57
+ onEscape() { if (this.isOpen)
58
+ this.close(); }
55
59
  open() {
56
60
  this.isOpen = true;
61
+ // Render the popover synchronously so its DOM node + @ViewChild('popover') exist
62
+ // before we position it. Otherwise, with zone eventCoalescing (Angular defers change
63
+ // detection to the next animation frame), updatePosition() can run first, find no
64
+ // popover, and the calendar stays hidden — regardless of where the picker is used.
65
+ this.cdr.detectChanges();
57
66
  if (this.trigger?.nativeElement) {
58
67
  this.trigger.nativeElement.focus();
59
68
  }
@@ -149,7 +158,7 @@ export class DateRangePickerComponent {
149
158
  setDisabledState(isDisabled) { this.disabled = isDisabled; }
150
159
  cn = cn;
151
160
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DateRangePickerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
152
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DateRangePickerComponent, isStandalone: true, selector: "tolle-date-range-picker", inputs: { disabled: "disabled", placeholder: "placeholder", class: "class", disablePastDates: "disablePastDates", size: "size" }, host: { listeners: { "window:resize": "onWindowResize()", "window:scroll": "onWindowScroll()" } }, providers: [
161
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DateRangePickerComponent, isStandalone: true, selector: "tolle-date-range-picker", inputs: { disabled: "disabled", placeholder: "placeholder", class: "class", disablePastDates: "disablePastDates", size: "size", numberOfMonths: "numberOfMonths" }, host: { listeners: { "keydown.escape": "onEscape()", "window:resize": "onWindowResize()", "window:scroll": "onWindowScroll()" } }, providers: [
153
162
  {
154
163
  provide: NG_VALUE_ACCESSOR,
155
164
  useExisting: forwardRef(() => DateRangePickerComponent),
@@ -167,22 +176,28 @@ export class DateRangePickerComponent {
167
176
  <button
168
177
  type="button"
169
178
  tabindex="-1"
179
+ aria-label="Clear date range"
170
180
  *ngIf="(value.start || value.end) && !disabled"
171
181
  (click)="clear($event)"
172
182
  class="ri-close-line cursor-pointer text-muted-foreground hover:text-foreground transition-colors"
173
183
  ></button>
174
184
 
175
- <i
185
+ <button
176
186
  #trigger
187
+ type="button"
177
188
  (click)="togglePopover($event)"
178
- class="ri-calendar-line cursor-pointer text-muted-foreground hover:text-primary transition-colors"
179
- ></i>
189
+ aria-label="Open calendar"
190
+ aria-haspopup="dialog"
191
+ [attr.aria-expanded]="isOpen"
192
+ class="ri-calendar-line cursor-pointer text-muted-foreground hover:text-primary transition-colors bg-transparent border-0 p-0"
193
+ ></button>
180
194
  </div>
181
195
  </tolle-input>
182
196
 
183
197
  <div
184
198
  #popover
185
199
  *ngIf="isOpen"
200
+ role="dialog"
186
201
  class="fixed z-50"
187
202
  style="visibility: hidden;"
188
203
  >
@@ -190,10 +205,11 @@ export class DateRangePickerComponent {
190
205
  [ngModel]="value"
191
206
  (rangeSelect)="onCalendarSelect($event)"
192
207
  [disablePastDates]="disablePastDates"
208
+ [numberOfMonths]="numberOfMonths"
193
209
  ></tolle-range-calendar>
194
210
  </div>
195
211
  </div>
196
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: RangeCalendarComponent, selector: "tolle-range-calendar", inputs: ["class", "disablePastDates"], outputs: ["rangeSelect"] }, { kind: "component", type: InputComponent, selector: "tolle-input", inputs: ["id", "label", "hint", "errorMessage", "type", "placeholder", "size", "containerClass", "class", "disabled", "readonly", "error", "hideHintOnFocus"] }] });
212
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: RangeCalendarComponent, selector: "tolle-range-calendar", inputs: ["class", "disablePastDates", "bordered", "numberOfMonths"], outputs: ["rangeSelect"] }, { kind: "component", type: InputComponent, selector: "tolle-input", inputs: ["id", "label", "hint", "errorMessage", "type", "placeholder", "size", "containerClass", "class", "disabled", "readonly", "error", "hideHintOnFocus"] }] });
197
213
  }
198
214
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DateRangePickerComponent, decorators: [{
199
215
  type: Component,
@@ -220,22 +236,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
220
236
  <button
221
237
  type="button"
222
238
  tabindex="-1"
239
+ aria-label="Clear date range"
223
240
  *ngIf="(value.start || value.end) && !disabled"
224
241
  (click)="clear($event)"
225
242
  class="ri-close-line cursor-pointer text-muted-foreground hover:text-foreground transition-colors"
226
243
  ></button>
227
244
 
228
- <i
245
+ <button
229
246
  #trigger
247
+ type="button"
230
248
  (click)="togglePopover($event)"
231
- class="ri-calendar-line cursor-pointer text-muted-foreground hover:text-primary transition-colors"
232
- ></i>
249
+ aria-label="Open calendar"
250
+ aria-haspopup="dialog"
251
+ [attr.aria-expanded]="isOpen"
252
+ class="ri-calendar-line cursor-pointer text-muted-foreground hover:text-primary transition-colors bg-transparent border-0 p-0"
253
+ ></button>
233
254
  </div>
234
255
  </tolle-input>
235
256
 
236
257
  <div
237
258
  #popover
238
259
  *ngIf="isOpen"
260
+ role="dialog"
239
261
  class="fixed z-50"
240
262
  style="visibility: hidden;"
241
263
  >
@@ -243,6 +265,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
243
265
  [ngModel]="value"
244
266
  (rangeSelect)="onCalendarSelect($event)"
245
267
  [disablePastDates]="disablePastDates"
268
+ [numberOfMonths]="numberOfMonths"
246
269
  ></tolle-range-calendar>
247
270
  </div>
248
271
  </div>
@@ -258,12 +281,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
258
281
  type: Input
259
282
  }], size: [{
260
283
  type: Input
284
+ }], numberOfMonths: [{
285
+ type: Input
261
286
  }], trigger: [{
262
287
  type: ViewChild,
263
288
  args: ['trigger']
264
289
  }], popover: [{
265
290
  type: ViewChild,
266
291
  args: ['popover']
292
+ }], onEscape: [{
293
+ type: HostListener,
294
+ args: ['keydown.escape']
267
295
  }], onWindowResize: [{
268
296
  type: HostListener,
269
297
  args: ['window:resize']
@@ -271,4 +299,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
271
299
  type: HostListener,
272
300
  args: ['window:scroll']
273
301
  }] } });
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFjLFNBQVMsRUFBZ0MsWUFBWSxFQUNoRyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBc0RuRCxNQUFNLE9BQU8sd0JBQXdCO0lBb0JmO0lBbkJYLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsV0FBVyxHQUFHLG1CQUFtQixDQUFDO0lBQ2xDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDekIsSUFBSSxHQUFtQyxTQUFTLENBQUM7SUFFcEMsT0FBTyxDQUFjO0lBQ3JCLE9BQU8sQ0FBYztJQUUzQyxLQUFLLEdBQWMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUM5QyxNQUFNLEdBQUcsS0FB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O2dCQUN2RCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsbU5BQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0NULDJEQTlDUyxZQUFZLGtJQUFFLFdBQVcsK1ZBQUUsc0JBQXNCLGtJQUFFLGNBQWM7OzRGQWdEaEUsd0JBQXdCO2tCQW5EcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxjQUFjLENBQUM7b0JBQzVFLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQzs0QkFDdkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNDVDtpQkFDRjtzRkFFVSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRWdCLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFDRSxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBeUhwQixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZTtnQkFRN0IsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsIElucHV0LCBmb3J3YXJkUmVmLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIENoYW5nZURldGVjdG9yUmVmLCBPbkRlc3Ryb3ksIEhvc3RMaXN0ZW5lclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29tcHV0ZVBvc2l0aW9uLCBmbGlwLCBzaGlmdCwgb2Zmc2V0LCBhdXRvVXBkYXRlLCBzaXplIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuaW1wb3J0IHsgUmFuZ2VDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vcmFuZ2UtY2FsZW5kYXIuY29tcG9uZW50JztcbmltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlIH0gZnJvbSAnLi90eXBlcy9kYXRlLXJhbmdlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtZGF0ZS1yYW5nZS1waWNrZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmFuZ2VDYWxlbmRhckNvbXBvbmVudCwgSW5wdXRDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVSYW5nZVBpY2tlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgdy1mdWxsXCI+XG4gICAgICA8dG9sbGUtaW5wdXRcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW25nTW9kZWxdPVwiZGlzcGxheVZhbHVlXCJcbiAgICAgICAgW2NsYXNzXT1cImNsYXNzXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBzdWZmaXggY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41XCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICpuZ0lmPVwiKHZhbHVlLnN0YXJ0IHx8IHZhbHVlLmVuZCkgJiYgIWRpc2FibGVkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGVhcigkZXZlbnQpXCJcbiAgICAgICAgICAgIGNsYXNzPVwicmktY2xvc2UtbGluZSBjdXJzb3ItcG9pbnRlciB0ZXh0LW11dGVkLWZvcmVncm91bmQgaG92ZXI6dGV4dC1mb3JlZ3JvdW5kIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICA+PC9idXR0b24+XG5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgI3RyaWdnZXJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVQb3BvdmVyKCRldmVudClcIlxuICAgICAgICAgICAgY2xhc3M9XCJyaS1jYWxlbmRhci1saW5lIGN1cnNvci1wb2ludGVyIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBob3Zlcjp0ZXh0LXByaW1hcnkgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgID48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90b2xsZS1pbnB1dD5cblxuICAgICAgPGRpdlxuICAgICAgICAjcG9wb3ZlclxuICAgICAgICAqbmdJZj1cImlzT3BlblwiXG4gICAgICAgIGNsYXNzPVwiZml4ZWQgei01MFwiXG4gICAgICAgIHN0eWxlPVwidmlzaWJpbGl0eTogaGlkZGVuO1wiXG4gICAgICA+XG4gICAgICAgIDx0b2xsZS1yYW5nZS1jYWxlbmRhciBjbGFzcz1cInNoYWRvdy1sZ1wiXG4gICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgICAgICAgIChyYW5nZVNlbGVjdCk9XCJvbkNhbGVuZGFyU2VsZWN0KCRldmVudClcIlxuICAgICAgICAgIFtkaXNhYmxlUGFzdERhdGVzXT1cImRpc2FibGVQYXN0RGF0ZXNcIlxuICAgICAgICA+PC90b2xsZS1yYW5nZS1jYWxlbmRhcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERhdGVSYW5nZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICdQaWNrIGEgZGF0ZSByYW5nZSc7XG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG4gIEBJbnB1dCgpIGRpc2FibGVQYXN0RGF0ZXMgPSBmYWxzZTtcbiAgQElucHV0KCkgc2l6ZTogJ3hzJyB8ICdzbScgfCAnZGVmYXVsdCcgfCAnbGcnID0gJ2RlZmF1bHQnO1xuXG4gIEBWaWV3Q2hpbGQoJ3RyaWdnZXInKSB0cmlnZ2VyITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgncG9wb3ZlcicpIHBvcG92ZXIhOiBFbGVtZW50UmVmO1xuXG4gIHZhbHVlOiBEYXRlUmFuZ2UgPSB7IHN0YXJ0OiBudWxsLCBlbmQ6IG51bGwgfTtcbiAgaXNPcGVuID0gZmFsc2U7XG4gIGNsZWFudXBBdXRvVXBkYXRlPzogKCkgPT4gdm9pZDtcblxuICBwcml2YXRlIF9vdXRzaWRlQ2xpY2tIYW5kbGVyID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgaWYgKCF0aGlzLnRyaWdnZXIubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpICYmICF0aGlzLnBvcG92ZXI/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgZ2V0IGRpc3BsYXlWYWx1ZSgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy52YWx1ZS5zdGFydCkgcmV0dXJuICcnO1xuXG4gICAgY29uc3Qgc3RhcnRTdHIgPSBmb3JtYXQodGhpcy52YWx1ZS5zdGFydCwgJ01NTSBkZCwgeXl5eScpO1xuICAgIGlmICghdGhpcy52YWx1ZS5lbmQpIHJldHVybiBzdGFydFN0cjtcblxuICAgIGNvbnN0IGVuZFN0ciA9IGZvcm1hdCh0aGlzLnZhbHVlLmVuZCwgJ01NTSBkZCwgeXl5eScpO1xuICAgIHJldHVybiBgJHtzdGFydFN0cn0gLSAke2VuZFN0cn1gO1xuICB9XG5cbiAgb25DYWxlbmRhclNlbGVjdChyYW5nZTogRGF0ZVJhbmdlKSB7XG4gICAgdGhpcy52YWx1ZSA9IHJhbmdlO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG5cbiAgICAvLyBDbG9zZSBvbmx5IGlmIHJhbmdlIGlzIGNvbXBsZXRlXG4gICAgaWYgKHJhbmdlLnN0YXJ0ICYmIHJhbmdlLmVuZCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsb3NlKCksIDE1MCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlUG9wb3ZlcihldmVudDogTW91c2VFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgdGhpcy5pc09wZW4gPyB0aGlzLmNsb3NlKCkgOiB0aGlzLm9wZW4oKTtcbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgIGlmICh0aGlzLnRyaWdnZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMudHJpZ2dlci5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICAgIGNvbnN0IHNjaGVkdWxlID0gdHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZSAhPT0gJ3VuZGVmaW5lZCcgPyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgOiAoZm46IEZyYW1lUmVxdWVzdENhbGxiYWNrKSA9PiBzZXRUaW1lb3V0KGZuLCAwKTtcbiAgICBzY2hlZHVsZSgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLl9vdXRzaWRlQ2xpY2tIYW5kbGVyKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuY2xlYW51cEF1dG9VcGRhdGUpIHtcbiAgICAgIHRoaXMuY2xlYW51cEF1dG9VcGRhdGUoKTtcbiAgICAgIHRoaXMuY2xlYW51cEF1dG9VcGRhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuX291dHNpZGVDbGlja0hhbmRsZXIpO1xuICB9XG5cbiAgY2xlYXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnZhbHVlID0geyBzdGFydDogbnVsbCwgZW5kOiBudWxsIH07XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8vIC0tLSBGbG9hdGluZyBVSSBQb3NpdGlvbmluZyB3aXRoIEZpeGVkIFN0cmF0ZWd5IC0tLVxuICBwcml2YXRlIHVwZGF0ZVBvc2l0aW9uKCkge1xuICAgIGlmICghdGhpcy50cmlnZ2VyIHx8ICF0aGlzLnBvcG92ZXIpIHJldHVybjtcblxuICAgIHRoaXMuY2xlYW51cEF1dG9VcGRhdGUgPSBhdXRvVXBkYXRlKFxuICAgICAgdGhpcy50cmlnZ2VyLm5hdGl2ZUVsZW1lbnQsXG4gICAgICB0aGlzLnBvcG92ZXIubmF0aXZlRWxlbWVudCxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29tcHV0ZVBvc2l0aW9uKHRoaXMudHJpZ2dlci5uYXRpdmVFbGVtZW50LCB0aGlzLnBvcG92ZXIubmF0aXZlRWxlbWVudCwge1xuICAgICAgICAgIHBsYWNlbWVudDogJ2JvdHRvbS1lbmQnLFxuICAgICAgICAgIHN0cmF0ZWd5OiAnZml4ZWQnLCAvLyBVc2UgZml4ZWQgdG8gZXNjYXBlIGNvbHVtbiBsYXlvdXRcbiAgICAgICAgICBtaWRkbGV3YXJlOiBbXG4gICAgICAgICAgICBvZmZzZXQoNCksXG4gICAgICAgICAgICBmbGlwKHtcbiAgICAgICAgICAgICAgZmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbjogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgcGFkZGluZzogOFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzaGlmdCh7IHBhZGRpbmc6IDggfSksXG4gICAgICAgICAgICBzaXplKHtcbiAgICAgICAgICAgICAgYXBwbHkoeyByZWN0cywgZWxlbWVudHMsIGF2YWlsYWJsZUhlaWdodCB9KSB7XG4gICAgICAgICAgICAgICAgLy8gQ29uc3RyYWluIHBvcG92ZXIgdG8gYXZhaWxhYmxlIHNwYWNlXG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihlbGVtZW50cy5mbG9hdGluZy5zdHlsZSwge1xuICAgICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiBgJHtNYXRoLm1pbig0MDAsIGF2YWlsYWJsZUhlaWdodCl9cHhgLFxuICAgICAgICAgICAgICAgICAgbWluV2lkdGg6IGAke01hdGgubWF4KHJlY3RzLnJlZmVyZW5jZS53aWR0aCwgMzIwKX1weGAsIC8vIENhbGVuZGFyIG1pbmltdW0gd2lkdGhcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICBdLFxuICAgICAgICB9KS50aGVuKCh7IHgsIHksIHBsYWNlbWVudCB9KSA9PiB7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnBvcG92ZXIubmF0aXZlRWxlbWVudC5zdHlsZSwge1xuICAgICAgICAgICAgbGVmdDogYCR7eH1weGAsXG4gICAgICAgICAgICB0b3A6IGAke3l9cHhgLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogJ3Zpc2libGUnLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgLy8gT3B0aW9uYWw6IEFkZCBwbGFjZW1lbnQgY2xhc3MgZm9yIHN0eWxpbmdcbiAgICAgICAgICB0aGlzLnBvcG92ZXIubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdjYWxlbmRhci10b3AnLCAnY2FsZW5kYXItYm90dG9tJyk7XG4gICAgICAgICAgaWYgKHBsYWNlbWVudC5pbmNsdWRlcygndG9wJykpIHtcbiAgICAgICAgICAgIHRoaXMucG9wb3Zlci5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2NhbGVuZGFyLXRvcCcpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXIubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdjYWxlbmRhci1ib3R0b20nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5jbGVhbnVwQXV0b1VwZGF0ZSkgdGhpcy5jbGVhbnVwQXV0b1VwZGF0ZSgpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuX291dHNpZGVDbGlja0hhbmRsZXIpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIG9uV2luZG93UmVzaXplKCkge1xuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5jbG9zZSgpOyAvLyBDbG9zZSBvbiByZXNpemUgZm9yIHNpbXBsaWNpdHlcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJylcbiAgb25XaW5kb3dTY3JvbGwoKSB7XG4gICAgLy8gRmxvYXRpbmctVUkncyBhdXRvVXBkYXRlIGhhbmRsZXMgc2Nyb2xsIHJlcG9zaXRpb25pbmdcbiAgfVxuXG4gIC8vIC0tLSBDb250cm9sIFZhbHVlIEFjY2Vzc29yIC0tLVxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XG5cbiAgd3JpdGVWYWx1ZSh2YWw6IERhdGVSYW5nZSB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAodmFsKSB7XG4gICAgICB0aGlzLnZhbHVlID0geyAuLi52YWwgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZSA9IHsgc3RhcnQ6IG51bGwsIGVuZDogbnVsbCB9O1xuICAgIH1cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQgeyB0aGlzLm9uQ2hhbmdlID0gZm47IH1cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQgeyB0aGlzLm9uVG91Y2hlZCA9IGZuOyB9XG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQgeyB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDsgfVxuXG4gIHByb3RlY3RlZCBjbiA9IGNuO1xufVxuIl19
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFjLFNBQVMsRUFBZ0MsWUFBWSxFQUNoRyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBNkRuRCxNQUFNLE9BQU8sd0JBQXdCO0lBc0JmO0lBckJYLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsV0FBVyxHQUFHLG1CQUFtQixDQUFDO0lBQ2xDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDekIsSUFBSSxHQUFtQyxTQUFTLENBQUM7SUFDMUQsNEZBQTRGO0lBQ25GLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFFTixPQUFPLENBQWM7SUFDckIsT0FBTyxDQUFjO0lBRTNDLEtBQUssR0FBYyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxF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Q1ksUUFBUTtzQkFBdkMsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBd0Y5QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZTtnQkFRN0IsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsIElucHV0LCBmb3J3YXJkUmVmLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIENoYW5nZURldGVjdG9yUmVmLCBPbkRlc3Ryb3ksIEhvc3RMaXN0ZW5lclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29tcHV0ZVBvc2l0aW9uLCBmbGlwLCBzaGlmdCwgb2Zmc2V0LCBhdXRvVXBkYXRlLCBzaXplIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuaW1wb3J0IHsgUmFuZ2VDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vcmFuZ2UtY2FsZW5kYXIuY29tcG9uZW50JztcbmltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlIH0gZnJvbSAnLi90eXBlcy9kYXRlLXJhbmdlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtZGF0ZS1yYW5nZS1waWNrZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmFuZ2VDYWxlbmRhckNvbXBvbmVudCwgSW5wdXRDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVSYW5nZVBpY2tlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgdy1mdWxsXCI+XG4gICAgICA8dG9sbGUtaW5wdXRcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW25nTW9kZWxdPVwiZGlzcGxheVZhbHVlXCJcbiAgICAgICAgW2NsYXNzXT1cImNsYXNzXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBzdWZmaXggY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41XCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBkYXRlIHJhbmdlXCJcbiAgICAgICAgICAgICpuZ0lmPVwiKHZhbHVlLnN0YXJ0IHx8IHZhbHVlLmVuZCkgJiYgIWRpc2FibGVkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGVhcigkZXZlbnQpXCJcbiAgICAgICAgICAgIGNsYXNzPVwicmktY2xvc2UtbGluZSBjdXJzb3ItcG9pbnRlciB0ZXh0LW11dGVkLWZvcmVncm91bmQgaG92ZXI6dGV4dC1mb3JlZ3JvdW5kIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICA+PC9idXR0b24+XG5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAjdHJpZ2dlclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUG9wb3ZlcigkZXZlbnQpXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJPcGVuIGNhbGVuZGFyXCJcbiAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJkaWFsb2dcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc09wZW5cIlxuICAgICAgICAgICAgY2xhc3M9XCJyaS1jYWxlbmRhci1saW5lIGN1cnNvci1wb2ludGVyIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBob3Zlcjp0ZXh0LXByaW1hcnkgdHJhbnNpdGlvbi1jb2xvcnMgYmctdHJhbnNwYXJlbnQgYm9yZGVyLTAgcC0wXCJcbiAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90b2xsZS1pbnB1dD5cblxuICAgICAgPGRpdlxuICAgICAgICAjcG9wb3ZlclxuICAgICAgICAqbmdJZj1cImlzT3BlblwiXG4gICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICBjbGFzcz1cImZpeGVkIHotNTBcIlxuICAgICAgICBzdHlsZT1cInZpc2liaWxpdHk6IGhpZGRlbjtcIlxuICAgICAgPlxuICAgICAgICA8dG9sbGUtcmFuZ2UtY2FsZW5kYXIgY2xhc3M9XCJzaGFkb3ctbGdcIlxuICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICAgICAgICAocmFuZ2VTZWxlY3QpPVwib25DYWxlbmRhclNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgICBbZGlzYWJsZVBhc3REYXRlc109XCJkaXNhYmxlUGFzdERhdGVzXCJcbiAgICAgICAgICBbbnVtYmVyT2ZNb250aHNdPVwibnVtYmVyT2ZNb250aHNcIlxuICAgICAgICA+PC90b2xsZS1yYW5nZS1jYWxlbmRhcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERhdGVSYW5nZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICdQaWNrIGEgZGF0ZSByYW5nZSc7XG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG4gIEBJbnB1dCgpIGRpc2FibGVQYXN0RGF0ZXMgPSBmYWxzZTtcbiAgQElucHV0KCkgc2l6ZTogJ3hzJyB8ICdzbScgfCAnZGVmYXVsdCcgfCAnbGcnID0gJ2RlZmF1bHQnO1xuICAvKiogQ29uc2VjdXRpdmUgbW9udGhzIHNob3duIGluIHRoZSBwb3BvdmVyIChlLmcuIGAyYCBmb3IgYSB0d28tbW9udGggcGlja2VyKS4gQGRlZmF1bHQgMSAqL1xuICBASW5wdXQoKSBudW1iZXJPZk1vbnRocyA9IDE7XG5cbiAgQFZpZXdDaGlsZCgndHJpZ2dlcicpIHRyaWdnZXIhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdwb3BvdmVyJykgcG9wb3ZlciE6IEVsZW1lbnRSZWY7XG5cbiAgdmFsdWU6IERhdGVSYW5nZSA9IHsgc3RhcnQ6IG51bGwsIGVuZDogbnVsbCB9O1xuICBpc09wZW4gPSBmYWxzZTtcbiAgY2xlYW51cEF1dG9VcGRhdGU/OiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgX291dHNpZGVDbGlja0hhbmRsZXIgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBpZiAoIXRoaXMudHJpZ2dlci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiYgIXRoaXMucG9wb3Zlcj8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBnZXQgZGlzcGxheVZhbHVlKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnZhbHVlLnN0YXJ0KSByZXR1cm4gJyc7XG5cbiAgICBjb25zdCBzdGFydFN0ciA9IGZvcm1hdCh0aGlzLnZhbHVlLnN0YXJ0LCAnTU1NIGRkLCB5eXl5Jyk7XG4gICAgaWYgKCF0aGlzLnZhbHVlLmVuZCkgcmV0dXJuIHN0YXJ0U3RyO1xuXG4gICAgY29uc3QgZW5kU3RyID0gZm9ybWF0KHRoaXMudmFsdWUuZW5kLCAnTU1NIGRkLCB5eXl5Jyk7XG4gICAgcmV0dXJuIGAke3N0YXJ0U3RyfSAtICR7ZW5kU3RyfWA7XG4gIH1cblxuICBvbkNhbGVuZGFyU2VsZWN0KHJhbmdlOiBEYXRlUmFuZ2UpIHtcbiAgICB0aGlzLnZhbHVlID0gcmFuZ2U7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcblxuICAgIC8vIENsb3NlIG9ubHkgaWYgcmFuZ2UgaXMgY29tcGxldGVcbiAgICBpZiAocmFuZ2Uuc3RhcnQgJiYgcmFuZ2UuZW5kKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2UoKSwgMTUwKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVQb3BvdmVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICB0aGlzLmlzT3BlbiA/IHRoaXMuY2xvc2UoKSA6IHRoaXMub3BlbigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2NhcGUnKSBvbkVzY2FwZSgpIHsgaWYgKHRoaXMuaXNPcGVuKSB0aGlzLmNsb3NlKCk7IH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICAvLyBSZW5kZXIgdGhlIHBvcG92ZXIgc3luY2hyb25vdXNseSBzbyBpdHMgRE9NIG5vZGUgKyBAVmlld0NoaWxkKCdwb3BvdmVyJykgZXhpc3RcbiAgICAvLyBiZWZvcmUgd2UgcG9zaXRpb24gaXQuIE90aGVyd2lzZSwgd2l0aCB6b25lIGV2ZW50Q29hbGVzY2luZyAoQW5ndWxhciBkZWZlcnMgY2hhbmdlXG4gICAgLy8gZGV0ZWN0aW9uIHRvIHRoZSBuZXh0IGFuaW1hdGlvbiBmcmFtZSksIHVwZGF0ZVBvc2l0aW9uKCkgY2FuIHJ1biBmaXJzdCwgZmluZCBub1xuICAgIC8vIHBvcG92ZXIsIGFuZCB0aGUgY2FsZW5kYXIgc3RheXMgaGlkZGVuIOKAlCByZWdhcmRsZXNzIG9mIHdoZXJlIHRoZSBwaWNrZXIgaXMgdXNlZC5cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgaWYgKHRoaXMudHJpZ2dlcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy50cmlnZ2VyLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gICAgY29uc3Qgc2NoZWR1bGUgPSB0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lICE9PSAndW5kZWZpbmVkJyA/IHJlcXVlc3RBbmltYXRpb25GcmFtZSA6IChmbjogRnJhbWVSZXF1ZXN0Q2FsbGJhY2spID0+IHNldFRpbWVvdXQoZm4sIDApO1xuICAgIHNjaGVkdWxlKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuX291dHNpZGVDbGlja0hhbmRsZXIpO1xuICAgIH0pO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICBpZiAodGhpcy5jbGVhbnVwQXV0b1VwZGF0ZSkge1xuICAgICAgdGhpcy5jbGVhbnVwQXV0b1VwZGF0ZSgpO1xuICAgICAgdGhpcy5jbGVhbnVwQXV0b1VwZGF0ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5fb3V0c2lkZUNsaWNrSGFuZGxlcik7XG4gIH1cblxuICBjbGVhcihldmVudDogTW91c2VFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMudmFsdWUgPSB7IHN0YXJ0OiBudWxsLCBlbmQ6IG51bGwgfTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLy8gLS0tIEZsb2F0aW5nIFVJIFBvc2l0aW9uaW5nIHdpdGggRml4ZWQgU3RyYXRlZ3kgLS0tXG4gIHByaXZhdGUgdXBkYXRlUG9zaXRpb24oKSB7XG4gICAgaWYgKCF0aGlzLnRyaWdnZXIgfHwgIXRoaXMucG9wb3ZlcikgcmV0dXJuO1xuXG4gICAgdGhpcy5jbGVhbnVwQXV0b1VwZGF0ZSA9IGF1dG9VcGRhdGUoXG4gICAgICB0aGlzLnRyaWdnZXIubmF0aXZlRWxlbWVudCxcbiAgICAgIHRoaXMucG9wb3Zlci5uYXRpdmVFbGVtZW50LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb21wdXRlUG9zaXRpb24odGhpcy50cmlnZ2VyLm5hdGl2ZUVsZW1lbnQsIHRoaXMucG9wb3Zlci5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tLWVuZCcsXG4gICAgICAgICAgc3RyYXRlZ3k6ICdmaXhlZCcsIC8vIFVzZSBmaXhlZCB0byBlc2NhcGUgY29sdW1uIGxheW91dFxuICAgICAgICAgIG1pZGRsZXdhcmU6IFtcbiAgICAgICAgICAgIG9mZnNldCg0KSxcbiAgICAgICAgICAgIGZsaXAoe1xuICAgICAgICAgICAgICBmYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uOiAnc3RhcnQnLFxuICAgICAgICAgICAgICBwYWRkaW5nOiA4XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHNoaWZ0KHsgcGFkZGluZzogOCB9KSxcbiAgICAgICAgICAgIHNpemUoe1xuICAgICAgICAgICAgICBhcHBseSh7IHJlY3RzLCBlbGVtZW50cywgYXZhaWxhYmxlSGVpZ2h0IH0pIHtcbiAgICAgICAgICAgICAgICAvLyBDb25zdHJhaW4gcG9wb3ZlciB0byBhdmFpbGFibGUgc3BhY2VcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGVsZW1lbnRzLmZsb2F0aW5nLnN0eWxlLCB7XG4gICAgICAgICAgICAgICAgICBtYXhIZWlnaHQ6IGAke01hdGgubWluKDQwMCwgYXZhaWxhYmxlSGVpZ2h0KX1weGAsXG4gICAgICAgICAgICAgICAgICBtaW5XaWR0aDogYCR7TWF0aC5tYXgocmVjdHMucmVmZXJlbmNlLndpZHRoLCAzMjApfXB4YCwgLy8gQ2FsZW5kYXIgbWluaW11bSB3aWR0aFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLnRoZW4oKHsgeCwgeSwgcGxhY2VtZW50IH0pID0+IHtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMucG9wb3Zlci5uYXRpdmVFbGVtZW50LnN0eWxlLCB7XG4gICAgICAgICAgICBsZWZ0OiBgJHt4fXB4YCxcbiAgICAgICAgICAgIHRvcDogYCR7eX1weGAsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiAndmlzaWJsZScsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICAvLyBPcHRpb25hbDogQWRkIHBsYWNlbWVudCBjbGFzcyBmb3Igc3R5bGluZ1xuICAgICAgICAgIHRoaXMucG9wb3Zlci5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2NhbGVuZGFyLXRvcCcsICdjYWxlbmRhci1ib3R0b20nKTtcbiAgICAgICAgICBpZiAocGxhY2VtZW50LmluY2x1ZGVzKCd0b3AnKSkge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnY2FsZW5kYXItdG9wJyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucG9wb3Zlci5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2NhbGVuZGFyLWJvdHRvbScpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmNsZWFudXBBdXRvVXBkYXRlKSB0aGlzLmNsZWFudXBBdXRvVXBkYXRlKCk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5fb3V0c2lkZUNsaWNrSGFuZGxlcik7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgb25XaW5kb3dSZXNpemUoKSB7XG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7IC8vIENsb3NlIG9uIHJlc2l6ZSBmb3Igc2ltcGxpY2l0eVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnKVxuICBvbldpbmRvd1Njcm9sbCgpIHtcbiAgICAvLyBGbG9hdGluZy1VSSdzIGF1dG9VcGRhdGUgaGFuZGxlcyBzY3JvbGwgcmVwb3NpdGlvbmluZ1xuICB9XG5cbiAgLy8gLS0tIENvbnRyb2wgVmFsdWUgQWNjZXNzb3IgLS0tXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcbiAgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcblxuICB3cml0ZVZhbHVlKHZhbDogRGF0ZVJhbmdlIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICh2YWwpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB7IC4uLnZhbCB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlID0geyBzdGFydDogbnVsbCwgZW5kOiBudWxsIH07XG4gICAgfVxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7IHRoaXMub25DaGFuZ2UgPSBmbjsgfVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7IHRoaXMub25Ub3VjaGVkID0gZm47IH1cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7IHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkOyB9XG5cbiAgcHJvdGVjdGVkIGNuID0gY247XG59XG4iXX0=
@@ -1,11 +1,18 @@
1
1
  import { Component, Input } from '@angular/core';
2
+ import { cn } from './utils/cn';
2
3
  import * as i0 from "@angular/core";
3
4
  export class DropdownItemComponent {
4
5
  class = '';
5
- cn = (c1, c2) => `${c1} ${c2}`;
6
+ disabled = false;
7
+ cn = cn;
6
8
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DropdownItemComponent, isStandalone: true, selector: "tolle-dropdown-item", inputs: { class: "class" }, ngImport: i0, template: `
8
- <div [class]="cn('relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50', class)">
9
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DropdownItemComponent, isStandalone: true, selector: "tolle-dropdown-item", inputs: { class: "class", disabled: "disabled" }, ngImport: i0, template: `
10
+ <div
11
+ role="menuitem"
12
+ tabindex="-1"
13
+ [attr.data-disabled]="disabled ? '' : null"
14
+ [attr.aria-disabled]="disabled || null"
15
+ [class]="cn('relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50', class)">
9
16
  <ng-content></ng-content>
10
17
  </div>
11
18
  `, isInline: true, styles: [""] });
@@ -13,11 +20,18 @@ export class DropdownItemComponent {
13
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownItemComponent, decorators: [{
14
21
  type: Component,
15
22
  args: [{ selector: 'tolle-dropdown-item', standalone: true, imports: [], template: `
16
- <div [class]="cn('relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50', class)">
23
+ <div
24
+ role="menuitem"
25
+ tabindex="-1"
26
+ [attr.data-disabled]="disabled ? '' : null"
27
+ [attr.aria-disabled]="disabled || null"
28
+ [class]="cn('relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50', class)">
17
29
  <ng-content></ng-content>
18
30
  </div>
19
31
  ` }]
20
32
  }], propDecorators: { class: [{
21
33
  type: Input
34
+ }], disabled: [{
35
+ type: Input
22
36
  }] } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL2Ryb3Bkb3duLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQWEvQyxNQUFNLE9BQU8scUJBQXFCO0lBQ3ZCLEtBQUssR0FBVyxFQUFFLENBQUM7SUFDVCxFQUFFLEdBQUcsQ0FBQyxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQzt3R0FGdkQscUJBQXFCOzRGQUFyQixxQkFBcUIsMkdBUHRCOzs7O0dBSVQ7OzRGQUdVLHFCQUFxQjtrQkFYakMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLEVBQUUsWUFDRDs7OztHQUlUOzhCQUlRLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLWRyb3Bkb3duLWl0ZW0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtjbGFzc109XCJjbigncmVsYXRpdmUgZmxleCBjdXJzb3ItZGVmYXVsdCBzZWxlY3Qtbm9uZSBpdGVtcy1jZW50ZXIgcm91bmRlZC1zbSBweC0yIHB5LTEuNSB0ZXh0LXNtIG91dGxpbmUtbm9uZSB0cmFuc2l0aW9uLWNvbG9ycyBob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCBkYXRhLVtkaXNhYmxlZF06cG9pbnRlci1ldmVudHMtbm9uZSBkYXRhLVtkaXNhYmxlZF06b3BhY2l0eS01MCcsIGNsYXNzKVwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IGBgXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duSXRlbUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNuID0gKGMxOiBzdHJpbmcsIGMyOiBzdHJpbmcpID0+IGAke2MxfSAke2MyfWA7XG59XG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL2Ryb3Bkb3duLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBa0JoQyxNQUFNLE9BQU8scUJBQXFCO0lBQ3ZCLEtBQUssR0FBVyxFQUFFLENBQUM7SUFDbkIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNQLEVBQUUsR0FBRyxFQUFFLENBQUM7d0dBSGhCLHFCQUFxQjs0RkFBckIscUJBQXFCLGlJQVp0Qjs7Ozs7Ozs7O0dBU1Q7OzRGQUdVLHFCQUFxQjtrQkFoQmpDLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUCxFQUFFLFlBQ0Q7Ozs7Ozs7OztHQVNUOzhCQUlRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLWRyb3Bkb3duLWl0ZW0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICBbYXR0ci5kYXRhLWRpc2FibGVkXT1cImRpc2FibGVkID8gJycgOiBudWxsXCJcbiAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbnVsbFwiXG4gICAgICBbY2xhc3NdPVwiY24oJ3JlbGF0aXZlIGZsZXggY3Vyc29yLWRlZmF1bHQgc2VsZWN0LW5vbmUgaXRlbXMtY2VudGVyIHJvdW5kZWQtc20gcHgtMiBweS0xLjUgdGV4dC1zbSBvdXRsaW5lLW5vbmUgdHJhbnNpdGlvbi1jb2xvcnMgaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQgZm9jdXM6YmctYWNjZW50IGZvY3VzOnRleHQtYWNjZW50LWZvcmVncm91bmQgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZGF0YS1bZGlzYWJsZWRdOnBvaW50ZXItZXZlbnRzLW5vbmUgZGF0YS1bZGlzYWJsZWRdOm9wYWNpdHktNTAnLCBjbGFzcylcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBgYFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkl0ZW1Db21wb25lbnQge1xuICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCByZWFkb25seSBjbiA9IGNuO1xufVxuIl19
@@ -3,7 +3,7 @@ import * as i0 from "@angular/core";
3
3
  export class DropdownLabelComponent {
4
4
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5
5
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DropdownLabelComponent, isStandalone: true, selector: "tolle-dropdown-label", ngImport: i0, template: `
6
- <div class="px-2 py-1.5 text-xs font-semibold text-muted-foreground uppercase tracking-wider">
6
+ <div class="px-2 py-1.5 text-sm font-semibold text-muted-foreground">
7
7
  <ng-content></ng-content>
8
8
  </div>
9
9
  `, isInline: true, styles: [""] });
@@ -11,9 +11,9 @@ export class DropdownLabelComponent {
11
11
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownLabelComponent, decorators: [{
12
12
  type: Component,
13
13
  args: [{ selector: 'tolle-dropdown-label', standalone: true, imports: [], template: `
14
- <div class="px-2 py-1.5 text-xs font-semibold text-muted-foreground uppercase tracking-wider">
14
+ <div class="px-2 py-1.5 text-sm font-semibold text-muted-foreground">
15
15
  <ng-content></ng-content>
16
16
  </div>
17
17
  ` }]
18
18
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9kcm9wZG93bi1sYWJlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFhMUMsTUFBTSxPQUFPLHNCQUFzQjt3R0FBdEIsc0JBQXNCOzRGQUF0QixzQkFBc0IsZ0ZBUHZCOzs7O0dBSVQ7OzRGQUdVLHNCQUFzQjtrQkFYbEMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQLEVBQUUsWUFDRDs7OztHQUlUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLWRyb3Bkb3duLWxhYmVsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInB4LTIgcHktMS41IHRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LW11dGVkLWZvcmVncm91bmQgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogYGBcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25MYWJlbENvbXBvbmVudCB7XG5cbn1cbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9kcm9wZG93bi1sYWJlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFhMUMsTUFBTSxPQUFPLHNCQUFzQjt3R0FBdEIsc0JBQXNCOzRGQUF0QixzQkFBc0IsZ0ZBUHZCOzs7O0dBSVQ7OzRGQUdVLHNCQUFzQjtrQkFYbEMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQLEVBQUUsWUFDRDs7OztHQUlUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLWRyb3Bkb3duLWxhYmVsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInB4LTIgcHktMS41IHRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBgYFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkxhYmVsQ29tcG9uZW50IHtcblxufVxuIl19
@@ -5,7 +5,7 @@ export class DropdownMenuComponent {
5
5
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
6
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DropdownMenuComponent, isStandalone: true, selector: "tolle-dropdown-menu", viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["menuTemplate"], descendants: true }], ngImport: i0, template: `
7
7
  <ng-template #menuTemplate>
8
- <div class="z-[1000] min-w-[12rem] overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in zoom-in-95">
8
+ <div role="menu" aria-orientation="vertical" class="z-[1000] min-w-[12rem] overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in zoom-in-95">
9
9
  <ng-content></ng-content>
10
10
  </div>
11
11
  </ng-template>
@@ -15,7 +15,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
15
15
  type: Component,
16
16
  args: [{ selector: 'tolle-dropdown-menu', standalone: true, imports: [], template: `
17
17
  <ng-template #menuTemplate>
18
- <div class="z-[1000] min-w-[12rem] overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in zoom-in-95">
18
+ <div role="menu" aria-orientation="vertical" class="z-[1000] min-w-[12rem] overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in zoom-in-95">
19
19
  <ng-content></ng-content>
20
20
  </div>
21
21
  </ng-template>
@@ -24,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
24
24
  type: ViewChild,
25
25
  args: ['menuTemplate']
26
26
  }] } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL2Ryb3Bkb3duLW1lbnUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQWVoRSxNQUFNLE9BQU8scUJBQXFCO0lBQ0wsV0FBVyxDQUFvQjt3R0FEL0MscUJBQXFCOzRGQUFyQixxQkFBcUIsNExBVHRCOzs7Ozs7R0FNVDs7NEZBR1UscUJBQXFCO2tCQWJqQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsRUFBRSxZQUNEOzs7Ozs7R0FNVDs4QkFJMEIsV0FBVztzQkFBckMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1kcm9wZG93bi1tZW51JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLXRlbXBsYXRlICNtZW51VGVtcGxhdGU+XG4gICAgICA8ZGl2IGNsYXNzPVwiei1bMTAwMF0gbWluLXctWzEycmVtXSBvdmVyZmxvdy1oaWRkZW4gcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWJvcmRlciBiZy1wb3BvdmVyIHAtMSB0ZXh0LXBvcG92ZXItZm9yZWdyb3VuZCBzaGFkb3ctbWQgYW5pbWF0ZS1pbiBmYWRlLWluIHpvb20taW4tOTVcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgYCxcbiAgc3R5bGVzOiBgYFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bk1lbnVDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdtZW51VGVtcGxhdGUnKSB0ZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPGFueT47XG59XG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL2Ryb3Bkb3duLW1lbnUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQWVoRSxNQUFNLE9BQU8scUJBQXFCO0lBQ0wsV0FBVyxDQUFvQjt3R0FEL0MscUJBQXFCOzRGQUFyQixxQkFBcUIsNExBVHRCOzs7Ozs7R0FNVDs7NEZBR1UscUJBQXFCO2tCQWJqQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsRUFBRSxZQUNEOzs7Ozs7R0FNVDs4QkFJMEIsV0FBVztzQkFBckMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1kcm9wZG93bi1tZW51JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLXRlbXBsYXRlICNtZW51VGVtcGxhdGU+XG4gICAgICA8ZGl2IHJvbGU9XCJtZW51XCIgYXJpYS1vcmllbnRhdGlvbj1cInZlcnRpY2FsXCIgY2xhc3M9XCJ6LVsxMDAwXSBtaW4tdy1bMTJyZW1dIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLXBvcG92ZXIgcC0xIHRleHQtcG9wb3Zlci1mb3JlZ3JvdW5kIHNoYWRvdy1tZCBhbmltYXRlLWluIGZhZGUtaW4gem9vbS1pbi05NVwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgLFxuICBzdHlsZXM6IGBgXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duTWVudUNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoJ21lbnVUZW1wbGF0ZScpIHRlbXBsYXRlUmVmITogVGVtcGxhdGVSZWY8YW55Pjtcbn1cbiJdfQ==
@@ -2,10 +2,10 @@ import { Component } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class DropdownSeparatorComponent {
4
4
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownSeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DropdownSeparatorComponent, isStandalone: true, selector: "tolle-dropdown-separator", ngImport: i0, template: `<div class="-mx-1 my-1 h-px bg-border"></div>`, isInline: true, styles: [""] });
5
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DropdownSeparatorComponent, isStandalone: true, selector: "tolle-dropdown-separator", ngImport: i0, template: `<div role="separator" aria-hidden="true" class="-mx-1 my-1 h-px bg-border"></div>`, isInline: true, styles: [""] });
6
6
  }
7
7
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownSeparatorComponent, decorators: [{
8
8
  type: Component,
9
- args: [{ selector: 'tolle-dropdown-separator', standalone: true, imports: [], template: `<div class="-mx-1 my-1 h-px bg-border"></div>` }]
9
+ args: [{ selector: 'tolle-dropdown-separator', standalone: true, imports: [], template: `<div role="separator" aria-hidden="true" class="-mx-1 my-1 h-px bg-border"></div>` }]
10
10
  }] });
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tc2VwYXJhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvZHJvcGRvd24tc2VwYXJhdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVMxQyxNQUFNLE9BQU8sMEJBQTBCO3dHQUExQiwwQkFBMEI7NEZBQTFCLDBCQUEwQixvRkFIM0IsK0NBQStDOzs0RkFHOUMsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1AsRUFBRSxZQUNELCtDQUErQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1kcm9wZG93bi1zZXBhcmF0b3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXSxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiLW14LTEgbXktMSBoLXB4IGJnLWJvcmRlclwiPjwvZGl2PmAsXG4gIHN0eWxlczogYGBcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25TZXBhcmF0b3JDb21wb25lbnQge1xuXG59XG4iXX0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tc2VwYXJhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvZHJvcGRvd24tc2VwYXJhdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVMxQyxNQUFNLE9BQU8sMEJBQTBCO3dHQUExQiwwQkFBMEI7NEZBQTFCLDBCQUEwQixvRkFIM0IsbUZBQW1GOzs0RkFHbEYsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1AsRUFBRSxZQUNELG1GQUFtRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1kcm9wZG93bi1zZXBhcmF0b3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXSxcbiAgdGVtcGxhdGU6IGA8ZGl2IHJvbGU9XCJzZXBhcmF0b3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cIi1teC0xIG15LTEgaC1weCBiZy1ib3JkZXJcIj48L2Rpdj5gLFxuICBzdHlsZXM6IGBgXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duU2VwYXJhdG9yQ29tcG9uZW50IHtcblxufVxuIl19
@@ -58,13 +58,17 @@ export class DropdownTriggerDirective {
58
58
  this.close();
59
59
  }
60
60
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownTriggerDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
61
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: DropdownTriggerDirective, isStandalone: true, selector: "[tolleDropdownTrigger]", inputs: { menu: ["tolleDropdownTrigger", "menu"] }, host: { listeners: { "click": "toggle()" } }, ngImport: i0 });
61
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: DropdownTriggerDirective, isStandalone: true, selector: "[tolleDropdownTrigger]", inputs: { menu: ["tolleDropdownTrigger", "menu"] }, host: { listeners: { "click": "toggle()" }, properties: { "attr.aria-haspopup": "'menu'", "attr.aria-expanded": "isOpen" } }, ngImport: i0 });
62
62
  }
63
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownTriggerDirective, decorators: [{
64
64
  type: Directive,
65
65
  args: [{
66
66
  selector: '[tolleDropdownTrigger]',
67
- standalone: true
67
+ standalone: true,
68
+ host: {
69
+ '[attr.aria-haspopup]': "'menu'",
70
+ '[attr.aria-expanded]': 'isOpen'
71
+ }
68
72
  }]
69
73
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }], propDecorators: { menu: [{
70
74
  type: Input,
@@ -73,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
73
77
  type: HostListener,
74
78
  args: ['click']
75
79
  }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdHJpZ2dlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL2Ryb3Bkb3duLXRyaWdnZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF5QixZQUFZLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBT3BGLE1BQU0sT0FBTyx3QkFBd0I7SUFRekI7SUFDQTtJQVJxQixJQUFJLENBQXlCO0lBRXBELE9BQU8sQ0FBYztJQUNyQixNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2YsV0FBVyxDQUFlO0lBRWxDLFlBQ1UsRUFBYyxFQUNkLEdBQXFCO1FBRHJCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxRQUFHLEdBQUgsR0FBRyxDQUFrQjtJQUM1QixDQUFDO0lBR0osTUFBTTtRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFTyxJQUFJO1FBQ1YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFFbkIsdUJBQXVCO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFnQixDQUFDO1FBQ3BELFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1QyxnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUU7WUFDdEUsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFZLEVBQUU7Z0JBQ3hELFNBQVMsRUFBRSxZQUFZO2dCQUN2QixVQUFVLEVBQUU7b0JBQ1YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLGlDQUFpQztvQkFDNUMsSUFBSSxFQUFFLEVBQUksZ0NBQWdDO29CQUMxQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyx5Q0FBeUM7aUJBQ2hFO2FBQ0YsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQ25CLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVksQ0FBQyxLQUFLLEVBQUU7b0JBQ3JDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtvQkFDZCxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUk7b0JBQ2IsUUFBUSxFQUFFLFVBQVU7aUJBQ3JCLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCx5QkFBeUI7UUFDekIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLEtBQUs7UUFDWCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzNCLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTyxZQUFZLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7UUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBYyxDQUFDLEVBQUUsQ0FBQztZQUN2RyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7d0dBaEVVLHdCQUF3Qjs0RkFBeEIsd0JBQXdCOzs0RkFBeEIsd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4R0FFZ0MsSUFBSTtzQkFBbEMsS0FBSzt1QkFBQyxzQkFBc0I7Z0JBWTdCLE1BQU07c0JBREwsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBIb3N0TGlzdGVuZXIsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbXB1dGVQb3NpdGlvbiwgZmxpcCwgc2hpZnQsIG9mZnNldCwgYXV0b1VwZGF0ZSB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHsgRHJvcGRvd25NZW51Q29tcG9uZW50IH0gZnJvbSAnLi9kcm9wZG93bi1tZW51LmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0b2xsZURyb3Bkb3duVHJpZ2dlcl0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duVHJpZ2dlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgndG9sbGVEcm9wZG93blRyaWdnZXInKSBtZW51ITogRHJvcGRvd25NZW51Q29tcG9uZW50O1xuXG4gIHByaXZhdGUgY2xlYW51cD86ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgaXNPcGVuID0gZmFsc2U7XG4gIHByaXZhdGUgbWVudUVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge31cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLmlzT3BlbiA/IHRoaXMuY2xvc2UoKSA6IHRoaXMub3BlbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuKCkge1xuICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcblxuICAgIC8vIENyZWF0ZSB0aGUgbWVudSB2aWV3XG4gICAgY29uc3QgdmlldyA9IHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLm1lbnUudGVtcGxhdGVSZWYpO1xuICAgIHRoaXMubWVudUVsZW1lbnQgPSB2aWV3LnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMubWVudUVsZW1lbnQpO1xuXG4gICAgLy8gRmxvYXRpbmcgVUkgcG9zaXRpb25pbmcgbG9naWNcbiAgICB0aGlzLmNsZWFudXAgPSBhdXRvVXBkYXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgdGhpcy5tZW51RWxlbWVudCwgKCkgPT4ge1xuICAgICAgY29tcHV0ZVBvc2l0aW9uKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgdGhpcy5tZW51RWxlbWVudCEsIHtcbiAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tLWVuZCcsXG4gICAgICAgIG1pZGRsZXdhcmU6IFtcbiAgICAgICAgICBvZmZzZXQoNCksIC8vIFNwYWNlIGJldHdlZW4gdHJpZ2dlciBhbmQgbWVudVxuICAgICAgICAgIGZsaXAoKSwgICAvLyBGbGlwIHRvIHRvcCBpZiBzcGFjZSBpcyB0aWdodFxuICAgICAgICAgIHNoaWZ0KHsgcGFkZGluZzogOCB9KSAvLyBQcmV2ZW50IG1lbnUgZnJvbSBoaXR0aW5nIHNjcmVlbiBlZGdlc1xuICAgICAgICBdXG4gICAgICB9KS50aGVuKCh7IHgsIHkgfSkgPT4ge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMubWVudUVsZW1lbnQhLnN0eWxlLCB7XG4gICAgICAgICAgbGVmdDogYCR7eH1weGAsXG4gICAgICAgICAgdG9wOiBgJHt5fXB4YCxcbiAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJ1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gQ2xvc2Ugb24gb3V0c2lkZSBjbGlja1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLm91dHNpZGVDbGljayk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlKCkge1xuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5jbGVhbnVwPy4oKTtcbiAgICB0aGlzLm1lbnVFbGVtZW50Py5yZW1vdmUoKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub3V0c2lkZUNsaWNrKTtcbiAgfVxuXG4gIHByaXZhdGUgb3V0c2lkZUNsaWNrID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgaWYgKCF0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJiAhdGhpcy5tZW51RWxlbWVudD8uY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9O1xuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxufVxuIl19
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdHJpZ2dlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL2Ryb3Bkb3duLXRyaWdnZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF5QixZQUFZLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBV3BGLE1BQU0sT0FBTyx3QkFBd0I7SUFRekI7SUFDQTtJQVJxQixJQUFJLENBQXlCO0lBRXBELE9BQU8sQ0FBYztJQUNuQixNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFdBQVcsQ0FBZTtJQUVsQyxZQUNVLEVBQWMsRUFDZCxHQUFxQjtRQURyQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsUUFBRyxHQUFILEdBQUcsQ0FBa0I7SUFDNUIsQ0FBQztJQUdKLE1BQU07UUFDSixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRU8sSUFBSTtRQUNWLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBRW5CLHVCQUF1QjtRQUN2QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztRQUNwRCxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFNUMsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO1lBQ3RFLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBWSxFQUFFO2dCQUN4RCxTQUFTLEVBQUUsWUFBWTtnQkFDdkIsVUFBVSxFQUFFO29CQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxpQ0FBaUM7b0JBQzVDLElBQUksRUFBRSxFQUFJLGdDQUFnQztvQkFDMUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMseUNBQXlDO2lCQUNoRTthQUNGLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO2dCQUNuQixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFZLENBQUMsS0FBSyxFQUFFO29CQUNyQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7b0JBQ2QsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJO29CQUNiLFFBQVEsRUFBRSxVQUFVO2lCQUNyQixDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgseUJBQXlCO1FBQ3pCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLO1FBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUMzQixRQUFRLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU8sWUFBWSxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQWMsQ0FBQyxFQUFFLENBQUM7WUFDdkcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVGLFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO3dHQWhFVSx3QkFBd0I7NEZBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFScEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLHNCQUFzQixFQUFFLFFBQVE7d0JBQ2hDLHNCQUFzQixFQUFFLFFBQVE7cUJBQ2pDO2lCQUNGOzhHQUVnQyxJQUFJO3NCQUFsQyxLQUFLO3VCQUFDLHNCQUFzQjtnQkFZN0IsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIEhvc3RMaXN0ZW5lciwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tcHV0ZVBvc2l0aW9uLCBmbGlwLCBzaGlmdCwgb2Zmc2V0LCBhdXRvVXBkYXRlIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5pbXBvcnQgeyBEcm9wZG93bk1lbnVDb21wb25lbnQgfSBmcm9tICcuL2Ryb3Bkb3duLW1lbnUuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RvbGxlRHJvcGRvd25UcmlnZ2VyXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuYXJpYS1oYXNwb3B1cF0nOiBcIidtZW51J1wiLFxuICAgICdbYXR0ci5hcmlhLWV4cGFuZGVkXSc6ICdpc09wZW4nXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25UcmlnZ2VyRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KCd0b2xsZURyb3Bkb3duVHJpZ2dlcicpIG1lbnUhOiBEcm9wZG93bk1lbnVDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBjbGVhbnVwPzogKCkgPT4gdm9pZDtcbiAgcHJvdGVjdGVkIGlzT3BlbiA9IGZhbHNlO1xuICBwcml2YXRlIG1lbnVFbGVtZW50PzogSFRNTEVsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHZjcjogVmlld0NvbnRhaW5lclJlZlxuICApIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICB0b2dnbGUoKSB7XG4gICAgdGhpcy5pc09wZW4gPyB0aGlzLmNsb3NlKCkgOiB0aGlzLm9wZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbigpIHtcbiAgICB0aGlzLmlzT3BlbiA9IHRydWU7XG5cbiAgICAvLyBDcmVhdGUgdGhlIG1lbnUgdmlld1xuICAgIGNvbnN0IHZpZXcgPSB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5tZW51LnRlbXBsYXRlUmVmKTtcbiAgICB0aGlzLm1lbnVFbGVtZW50ID0gdmlldy5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLm1lbnVFbGVtZW50KTtcblxuICAgIC8vIEZsb2F0aW5nIFVJIHBvc2l0aW9uaW5nIGxvZ2ljXG4gICAgdGhpcy5jbGVhbnVwID0gYXV0b1VwZGF0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMubWVudUVsZW1lbnQsICgpID0+IHtcbiAgICAgIGNvbXB1dGVQb3NpdGlvbih0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMubWVudUVsZW1lbnQhLCB7XG4gICAgICAgIHBsYWNlbWVudDogJ2JvdHRvbS1lbmQnLFxuICAgICAgICBtaWRkbGV3YXJlOiBbXG4gICAgICAgICAgb2Zmc2V0KDQpLCAvLyBTcGFjZSBiZXR3ZWVuIHRyaWdnZXIgYW5kIG1lbnVcbiAgICAgICAgICBmbGlwKCksICAgLy8gRmxpcCB0byB0b3AgaWYgc3BhY2UgaXMgdGlnaHRcbiAgICAgICAgICBzaGlmdCh7IHBhZGRpbmc6IDggfSkgLy8gUHJldmVudCBtZW51IGZyb20gaGl0dGluZyBzY3JlZW4gZWRnZXNcbiAgICAgICAgXVxuICAgICAgfSkudGhlbigoeyB4LCB5IH0pID0+IHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLm1lbnVFbGVtZW50IS5zdHlsZSwge1xuICAgICAgICAgIGxlZnQ6IGAke3h9cHhgLFxuICAgICAgICAgIHRvcDogYCR7eX1weGAsXG4gICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZSdcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8vIENsb3NlIG9uIG91dHNpZGUgY2xpY2tcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5vdXRzaWRlQ2xpY2spO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZSgpIHtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuY2xlYW51cD8uKCk7XG4gICAgdGhpcy5tZW51RWxlbWVudD8ucmVtb3ZlKCk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLm91dHNpZGVDbGljayk7XG4gIH1cblxuICBwcml2YXRlIG91dHNpZGVDbGljayA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgIGlmICghdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiYgIXRoaXMubWVudUVsZW1lbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -31,7 +31,7 @@ export class EmptyStateComponent {
31
31
  variant === 'minimal' ? 'h-12 w-12' : 'h-20 w-20'
32
32
  )">
33
33
  <ng-content select="[icon]">
34
- <i [class]="cn(
34
+ <i aria-hidden="true" [class]="cn(
35
35
  'ri-inbox-line text-muted-foreground/60',
36
36
  variant === 'minimal' ? 'text-xl' : 'text-3xl'
37
37
  )"></i>
@@ -72,7 +72,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
72
72
  variant === 'minimal' ? 'h-12 w-12' : 'h-20 w-20'
73
73
  )">
74
74
  <ng-content select="[icon]">
75
- <i [class]="cn(
75
+ <i aria-hidden="true" [class]="cn(
76
76
  'ri-inbox-line text-muted-foreground/60',
77
77
  variant === 'minimal' ? 'text-xl' : 'text-3xl'
78
78
  )"></i>
@@ -108,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
108
108
  }], class: [{
109
109
  type: Input
110
110
  }] } });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9lbXB0eS1zdGF0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxHQUFHLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7O0FBRWhDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUM1Qix1RkFBdUYsRUFDdkY7SUFDRSxRQUFRLEVBQUU7UUFDUixPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsa0ZBQWtGO1lBQzNGLE9BQU8sRUFBRSxtQkFBbUI7U0FDN0I7S0FDRjtJQUNELGVBQWUsRUFBRTtRQUNmLE9BQU8sRUFBRSxTQUFTO0tBQ25CO0NBQ0YsQ0FDRixDQUFDO0FBMkNGLE1BQU0sT0FBTyxtQkFBbUI7SUFDckIsT0FBTyxHQUFrQyxTQUFTLENBQUM7SUFDbkQsS0FBSyxHQUFXLGdCQUFnQixDQUFDO0lBQ2pDLFdBQVcsQ0FBVTtJQUNyQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBRWxCLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0lBQ3hDLEVBQUUsR0FBRyxFQUFFLENBQUM7d0dBUFAsbUJBQW1COzRGQUFuQixtQkFBbUIseUtBbkNwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNULDJEQWxDUyxZQUFZOzs0RkFvQ1gsbUJBQW1CO2tCQXZDL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlDVDtpQkFDRjs4QkFFVSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGN2YSwgdHlwZSBWYXJpYW50UHJvcHMgfSBmcm9tICdjbGFzcy12YXJpYW5jZS1hdXRob3JpdHknO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcblxuY29uc3QgZW1wdHlTdGF0ZVZhcmlhbnRzID0gY3ZhKFxuICBcImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQtY2VudGVyIGFuaW1hdGUtaW4gZmFkZS1pbiBkdXJhdGlvbi01MDBcIixcbiAge1xuICAgIHZhcmlhbnRzOiB7XG4gICAgICB2YXJpYW50OiB7XG4gICAgICAgIGRlZmF1bHQ6IFwibWluLWgtWzQwMHB4XSByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItZGFzaGVkIGJvcmRlci1ib3JkZXIgcC04IGJnLWJhY2tncm91bmQvNTBcIixcbiAgICAgICAgbWluaW1hbDogXCJwLTQgbWluLWgtWzIwMHB4XVwiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGRlZmF1bHRWYXJpYW50czoge1xuICAgICAgdmFyaWFudDogXCJkZWZhdWx0XCIsXG4gICAgfSxcbiAgfVxuKTtcblxudHlwZSBFbXB0eVN0YXRlVmFyaWFudHMgPSBWYXJpYW50UHJvcHM8dHlwZW9mIGVtcHR5U3RhdGVWYXJpYW50cz47XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLWVtcHR5LXN0YXRlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbY2xhc3NdPVwiY24oZW1wdHlTdGF0ZVZhcmlhbnRzKHsgdmFyaWFudCB9KSwgY2xhc3MpXCI+XG5cbiAgICAgIDxkaXYgW2NsYXNzXT1cImNuKFxuICAgICAgICAnZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1mdWxsIGJnLW11dGVkJyxcbiAgICAgICAgdmFyaWFudCA9PT0gJ21pbmltYWwnID8gJ2gtMTIgdy0xMicgOiAnaC0yMCB3LTIwJ1xuICAgICAgKVwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaWNvbl1cIj5cbiAgICAgICAgICA8aSBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAncmktaW5ib3gtbGluZSB0ZXh0LW11dGVkLWZvcmVncm91bmQvNjAnLFxuICAgICAgICAgICAgdmFyaWFudCA9PT0gJ21pbmltYWwnID8gJ3RleHQteGwnIDogJ3RleHQtM3hsJ1xuICAgICAgICAgIClcIj48L2k+XG4gICAgICAgIDwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8aDMgW2NsYXNzXT1cImNuKFxuICAgICAgICAnZm9udC1zZW1pYm9sZCB0ZXh0LWZvcmVncm91bmQnLFxuICAgICAgICB2YXJpYW50ID09PSAnbWluaW1hbCcgPyAnbXQtMiB0ZXh0LXNtJyA6ICdtdC00IHRleHQtbGcnXG4gICAgICApXCI+XG4gICAgICAgIHt7IHRpdGxlIH19XG4gICAgICA8L2gzPlxuXG4gICAgICA8cCAqbmdJZj1cImRlc2NyaXB0aW9uXCIgW2NsYXNzXT1cImNuKFxuICAgICAgICAndGV4dC1tdXRlZC1mb3JlZ3JvdW5kJyxcbiAgICAgICAgdmFyaWFudCA9PT0gJ21pbmltYWwnID8gJ210LTEgdGV4dC14cycgOiAnbWItNiBtdC0yIG1heC13LXNtIHRleHQtc20nXG4gICAgICApXCI+XG4gICAgICAgIHt7IGRlc2NyaXB0aW9uIH19XG4gICAgICA8L3A+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJ2YXJpYW50ICE9PSAnbWluaW1hbCdcIiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0zXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlthY3Rpb25zXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIEVtcHR5U3RhdGVDb21wb25lbnQge1xuICBASW5wdXQoKSB2YXJpYW50OiBFbXB0eVN0YXRlVmFyaWFudHNbJ3ZhcmlhbnQnXSA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICdObyBpdGVtcyBmb3VuZCc7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG5cbiAgcHJvdGVjdGVkIGVtcHR5U3RhdGVWYXJpYW50cyA9IGVtcHR5U3RhdGVWYXJpYW50cztcbiAgcHJvdGVjdGVkIGNuID0gY247XG59XG4iXX0=
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9lbXB0eS1zdGF0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxHQUFHLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7O0FBRWhDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUM1Qix1RkFBdUYsRUFDdkY7SUFDRSxRQUFRLEVBQUU7UUFDUixPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsa0ZBQWtGO1lBQzNGLE9BQU8sRUFBRSxtQkFBbUI7U0FDN0I7S0FDRjtJQUNELGVBQWUsRUFBRTtRQUNmLE9BQU8sRUFBRSxTQUFTO0tBQ25CO0NBQ0YsQ0FDRixDQUFDO0FBMkNGLE1BQU0sT0FBTyxtQkFBbUI7SUFDckIsT0FBTyxHQUFrQyxTQUFTLENBQUM7SUFDbkQsS0FBSyxHQUFXLGdCQUFnQixDQUFDO0lBQ2pDLFdBQVcsQ0FBVTtJQUNyQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBRWxCLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0lBQ3hDLEVBQUUsR0FBRyxFQUFFLENBQUM7d0dBUFAsbUJBQW1COzRGQUFuQixtQkFBbUIseUtBbkNwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNULDJEQWxDUyxZQUFZOzs0RkFvQ1gsbUJBQW1CO2tCQXZDL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlDVDtpQkFDRjs4QkFFVSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGN2YSwgdHlwZSBWYXJpYW50UHJvcHMgfSBmcm9tICdjbGFzcy12YXJpYW5jZS1hdXRob3JpdHknO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcblxuY29uc3QgZW1wdHlTdGF0ZVZhcmlhbnRzID0gY3ZhKFxuICBcImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQtY2VudGVyIGFuaW1hdGUtaW4gZmFkZS1pbiBkdXJhdGlvbi01MDBcIixcbiAge1xuICAgIHZhcmlhbnRzOiB7XG4gICAgICB2YXJpYW50OiB7XG4gICAgICAgIGRlZmF1bHQ6IFwibWluLWgtWzQwMHB4XSByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItZGFzaGVkIGJvcmRlci1ib3JkZXIgcC04IGJnLWJhY2tncm91bmQvNTBcIixcbiAgICAgICAgbWluaW1hbDogXCJwLTQgbWluLWgtWzIwMHB4XVwiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGRlZmF1bHRWYXJpYW50czoge1xuICAgICAgdmFyaWFudDogXCJkZWZhdWx0XCIsXG4gICAgfSxcbiAgfVxuKTtcblxudHlwZSBFbXB0eVN0YXRlVmFyaWFudHMgPSBWYXJpYW50UHJvcHM8dHlwZW9mIGVtcHR5U3RhdGVWYXJpYW50cz47XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLWVtcHR5LXN0YXRlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbY2xhc3NdPVwiY24oZW1wdHlTdGF0ZVZhcmlhbnRzKHsgdmFyaWFudCB9KSwgY2xhc3MpXCI+XG5cbiAgICAgIDxkaXYgW2NsYXNzXT1cImNuKFxuICAgICAgICAnZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1mdWxsIGJnLW11dGVkJyxcbiAgICAgICAgdmFyaWFudCA9PT0gJ21pbmltYWwnID8gJ2gtMTIgdy0xMicgOiAnaC0yMCB3LTIwJ1xuICAgICAgKVwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaWNvbl1cIj5cbiAgICAgICAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIiBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAncmktaW5ib3gtbGluZSB0ZXh0LW11dGVkLWZvcmVncm91bmQvNjAnLFxuICAgICAgICAgICAgdmFyaWFudCA9PT0gJ21pbmltYWwnID8gJ3RleHQteGwnIDogJ3RleHQtM3hsJ1xuICAgICAgICAgIClcIj48L2k+XG4gICAgICAgIDwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8aDMgW2NsYXNzXT1cImNuKFxuICAgICAgICAnZm9udC1zZW1pYm9sZCB0ZXh0LWZvcmVncm91bmQnLFxuICAgICAgICB2YXJpYW50ID09PSAnbWluaW1hbCcgPyAnbXQtMiB0ZXh0LXNtJyA6ICdtdC00IHRleHQtbGcnXG4gICAgICApXCI+XG4gICAgICAgIHt7IHRpdGxlIH19XG4gICAgICA8L2gzPlxuXG4gICAgICA8cCAqbmdJZj1cImRlc2NyaXB0aW9uXCIgW2NsYXNzXT1cImNuKFxuICAgICAgICAndGV4dC1tdXRlZC1mb3JlZ3JvdW5kJyxcbiAgICAgICAgdmFyaWFudCA9PT0gJ21pbmltYWwnID8gJ210LTEgdGV4dC14cycgOiAnbWItNiBtdC0yIG1heC13LXNtIHRleHQtc20nXG4gICAgICApXCI+XG4gICAgICAgIHt7IGRlc2NyaXB0aW9uIH19XG4gICAgICA8L3A+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJ2YXJpYW50ICE9PSAnbWluaW1hbCdcIiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0zXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlthY3Rpb25zXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIEVtcHR5U3RhdGVDb21wb25lbnQge1xuICBASW5wdXQoKSB2YXJpYW50OiBFbXB0eVN0YXRlVmFyaWFudHNbJ3ZhcmlhbnQnXSA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICdObyBpdGVtcyBmb3VuZCc7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG5cbiAgcHJvdGVjdGVkIGVtcHR5U3RhdGVWYXJpYW50cyA9IGVtcHR5U3RhdGVWYXJpYW50cztcbiAgcHJvdGVjdGVkIGNuID0gY247XG59XG4iXX0=
@@ -84,7 +84,7 @@ export class HoverCardTriggerComponent {
84
84
  this.hoverCard.close();
85
85
  }
86
86
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HoverCardTriggerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
87
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: HoverCardTriggerComponent, isStandalone: true, selector: "tolle-hover-card-trigger", host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" }, properties: { "class": "\"cursor-default inline-block\"" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
87
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: HoverCardTriggerComponent, isStandalone: true, selector: "tolle-hover-card-trigger", host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "focusin": "onMouseEnter()", "focusout": "onMouseLeave()" }, properties: { "class": "\"cursor-default inline-block\"" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
88
88
  }
89
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HoverCardTriggerComponent, decorators: [{
90
90
  type: Component,
@@ -96,6 +96,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
96
96
  host: {
97
97
  '(mouseenter)': 'onMouseEnter()',
98
98
  '(mouseleave)': 'onMouseLeave()',
99
+ '(focusin)': 'onMouseEnter()',
100
+ '(focusout)': 'onMouseLeave()',
99
101
  '[class]': '"cursor-default inline-block"'
100
102
  }
101
103
  }]
@@ -182,4 +184,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
182
184
  type: ViewChild,
183
185
  args: ['content']
184
186
  }] } });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXItY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL2hvdmVyLWNhcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF3QixNQUFNLEVBQWUsU0FBUyxFQUErQixZQUFZLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekwsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7O0FBUWhDLE1BQU0sT0FBTyxrQkFBa0I7SUFDbEIsU0FBUyxHQUFHLEdBQUcsQ0FBQztJQUNoQixVQUFVLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLFNBQVMsR0FBd0MsUUFBUSxDQUFDO0lBRTNELFdBQVcsQ0FBTztJQUNsQixZQUFZLENBQU87SUFFM0IsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUU0QyxnQkFBZ0IsQ0FBNkI7SUFFeEcsSUFBSSxDQUFDLGNBQTJCO1FBQzVCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7UUFDbEMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRXhCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlCLENBQUMsRUFBRSxJQUFJLENB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QVEsRUFBRSxPQUFPO29CQUNqQixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7b0JBQ2QsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJO29CQUNiLE1BQU0sRUFBRSxNQUFNO2lCQUNqQixDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFXLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sRUFBRSxDQUNMLHFOQUFxTixFQUNyTixJQUFJLENBQUMsS0FBSyxDQUNiLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLE9BQU87WUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckMsQ0FBQzt3R0ExRFEseUJBQXlCOzRGQUF6Qix5QkFBeUIsc05BVnhCOzs7Ozs7OztHQVFYLDJEQVRXLFlBQVk7OzRGQVdiLHlCQUF5QjtrQkFkckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixRQUFRLEVBQUU7Ozs7Ozs7O0dBUVg7aUJBQ0Y7OEJBRVksS0FBSztzQkFBYixLQUFLO2dCQUNnQixTQUFTO3NCQUE5QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBPbkRlc3Ryb3ksIENvbnRlbnRDaGlsZCwgZm9yd2FyZFJlZiwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNvbXB1dGVQb3NpdGlvbiwgZmxpcCwgc2hpZnQsIG9mZnNldCwgYXV0b1VwZGF0ZSB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS1ob3Zlci1jYXJkJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgSG92ZXJDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBvcGVuRGVsYXkgPSA3MDA7XG4gICAgQElucHV0KCkgY2xvc2VEZWxheSA9IDMwMDtcbiAgICBASW5wdXQoKSBwbGFjZW1lbnQ6ICd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnID0gJ2JvdHRvbSc7XG5cbiAgICBwcml2YXRlIG9wZW5UaW1lb3V0PzogYW55O1xuICAgIHByaXZhdGUgY2xvc2VUaW1lb3V0PzogYW55O1xuXG4gICAgaXNPcGVuID0gZmFsc2U7XG5cbiAgICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT4gSG92ZXJDYXJkQ29udGVudENvbXBvbmVudCkpIGNvbnRlbnRDb21wb25lbnQ/OiBIb3ZlckNhcmRDb250ZW50Q29tcG9uZW50O1xuXG4gICAgb3Blbih0cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuY2xvc2VUaW1lb3V0KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5jbG9zZVRpbWVvdXQpO1xuICAgICAgICAgICAgdGhpcy5jbG9zZVRpbWVvdXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc09wZW4pIHJldHVybjtcblxuICAgICAgICB0aGlzLm9wZW5UaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNob3codHJpZ2dlckVsZW1lbnQpO1xuICAgICAgICB9LCB0aGlzLm9wZW5EZWxheSk7XG4gICAgfVxuXG4gICAgY2xvc2UoKSB7XG4gICAgICAgIGlmICh0aGlzLm9wZW5UaW1lb3V0KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5vcGVuVGltZW91dCk7XG4gICAgICAgICAgICB0aGlzLm9wZW5UaW1lb3V0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICB9LCB0aGlzLmNsb3NlRGVsYXkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvdyh0cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRlbnRDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRDb21wb25lbnQuc2hvdyh0cmlnZ2VyRWxlbWVudCwgdGhpcy5wbGFjZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGUoKSB7XG4gICAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnRDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudENvbXBvbmVudC5oaWRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIGlmICh0aGlzLm9wZW5UaW1lb3V0KSBjbGVhclRpbWVvdXQodGhpcy5vcGVuVGltZW91dCk7XG4gICAgICAgIGlmICh0aGlzLmNsb3NlVGltZW91dCkgY2xlYXJUaW1lb3V0KHRoaXMuY2xvc2VUaW1lb3V0KTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndG9sbGUtaG92ZXItY2FyZC10cmlnZ2VyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgaG9zdDoge1xuICAgICAgICAnKG1vdXNlZW50ZXIpJzogJ29uTW91c2VFbnRlcigpJyxcbiAgICAgICAgJyhtb3VzZWxlYXZlKSc6ICdvbk1vdXNlTGVhdmUoKScsXG4gICAgICAgICdbY2xhc3NdJzogJ1wiY3Vyc29yLWRlZmF1bHQgaW5saW5lLWJsb2NrXCInXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBIb3ZlckNhcmRUcmlnZ2VyQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIGhvdmVyQ2FyZCA9IGluamVjdChIb3ZlckNhcmRDb21wb25lbnQpO1xuICAgIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICAgIG9uTW91c2VFbnRlcigpIHtcbiAgICAgICAgdGhpcy5ob3ZlckNhcmQub3Blbih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgb25Nb3VzZUxlYXZlKCkge1xuICAgICAgICB0aGlzLmhvdmVyQ2FyZC5jbG9zZSgpO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS1ob3Zlci1jYXJkLWNvbnRlbnQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2ICpuZ0lmPVwiaXNWaXNpYmxlXCJcbiAgICAgICAgICNjb250ZW50XG4gICAgICAgICBbY2xhc3NdPVwiY29tcHV0ZWRDbGFzc1wiXG4gICAgICAgICAobW91c2VlbnRlcik9XCJvbk1vdXNlRW50ZXIoKVwiXG4gICAgICAgICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlTGVhdmUoKVwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIEhvdmVyQ2FyZENvbnRlbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgICBAVmlld0NoaWxkKCdjb250ZW50JykgY29udGVudEVsPzogRWxlbWVudFJlZjtcblxuICAgIGlzVmlzaWJsZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgY2xlYW51cD86ICgpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSBob3ZlckNhcmQgPSBpbmplY3QoSG92ZXJDYXJkQ29tcG9uZW50KTtcblxuICAgIHNob3codHJpZ2dlckVsZW1lbnQ6IEhUTUxFbGVtZW50LCBwbGFjZW1lbnQ6IGFueSkge1xuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29udGVudEVsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbih0cmlnZ2VyRWxlbWVudCwgdGhpcy5jb250ZW50RWwubmF0aXZlRWxlbWVudCwgcGxhY2VtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaGlkZSgpIHtcbiAgICAgICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuY2xlYW51cCkge1xuICAgICAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgICAgICAgICB0aGlzLmNsZWFudXAgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVBvc2l0aW9uKHRyaWdnZXI6IEhUTUxFbGVtZW50LCBjb250ZW50OiBIVE1MRWxlbWVudCwgcGxhY2VtZW50OiBhbnkpIHtcbiAgICAgICAgdGhpcy5jbGVhbnVwID0gYXV0b1VwZGF0ZSh0cmlnZ2VyLCBjb250ZW50LCAoKSA9PiB7XG4gICAgICAgICAgICBjb21wdXRlUG9zaXRpb24odHJpZ2dlciwgY29udGVudCwge1xuICAgICAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbb2Zmc2V0KDgpLCBmbGlwKCksIHNoaWZ0KHsgcGFkZGluZzogOCB9KV0sXG4gICAgICAgICAgICB9KS50aGVuKCh7IHgsIHkgfSkgPT4ge1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oY29udGVudC5zdHlsZSwge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogYCR7eH1weGAsXG4gICAgICAgICAgICAgICAgICAgIHRvcDogYCR7eX1weGAsXG4gICAgICAgICAgICAgICAgICAgIHpJbmRleDogJzk5OTknXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25Nb3VzZUVudGVyKCkge1xuICAgICAgICB0aGlzLmhvdmVyQ2FyZC5vcGVuKG51bGwgYXMgYW55KTtcbiAgICB9XG5cbiAgICBvbk1vdXNlTGVhdmUoKSB7XG4gICAgICAgIHRoaXMuaG92ZXJDYXJkLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiBjbihcbiAgICAgICAgICAgIFwidy02NCByb3VuZGVkLW1kIGJvcmRlciBiZy1wb3BvdmVyIHAtNCB0ZXh0LXBvcG92ZXItZm9yZWdyb3VuZCBzaGFkb3ctbWQgb3V0bGluZS1ub25lIGFuaW1hdGUtaW4gZmFkZS1pbi0wIHpvb20taW4tOTUgZGF0YS1bc3RhdGU9Y2xvc2VkXTphbmltYXRlLW91dCBkYXRhLVtzdGF0ZT1jbG9zZWRdOmZhZGUtb3V0LTAgZGF0YS1bc3RhdGU9Y2xvc2VkXTp6b29tLW91dC05NVwiLFxuICAgICAgICAgICAgdGhpcy5jbGFzc1xuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5jbGVhbnVwKSB0aGlzLmNsZWFudXAoKTtcbiAgICB9XG59XG4iXX0=
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXItY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL2hvdmVyLWNhcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF3QixNQUFNLEVBQWUsU0FBUyxFQUErQixZQUFZLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekwsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7O0FBUWhDLE1BQU0sT0FBTyxrQkFBa0I7SUFDbEIsU0FBUyxHQUFHLEdBQUcsQ0FBQztJQUNoQixVQUFVLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLFNBQVMsR0FBd0MsUUFBUSxDQUFDO0lBRTNELFdBQVcsQ0FBTztJQUNsQixZQUFZLENBQU87SUFFM0IsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUU0QyxnQkFBZ0IsQ0FBNkI7SUFFeEcsSUFBSSxDQUFDLGNBQTJCO1FBQzVCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7UUFDbEMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRXhCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlCLENBQUMsRUFBRSxJQUFJLENB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QUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7b0JBQ3pCLFFBQVEsRUFBRSxPQUFPO29CQUNqQixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7b0JBQ2QsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJO29CQUNiLE1BQU0sRUFBRSxNQUFNO2lCQUNqQixDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFXLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sRUFBRSxDQUNMLHFOQUFxTixFQUNyTixJQUFJLENBQUMsS0FBSyxDQUNiLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLE9BQU87WUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckMsQ0FBQzt3R0ExRFEseUJBQXlCOzRGQUF6Qix5QkFBeUIsc05BVnhCOzs7Ozs7OztHQVFYLDJEQVRXLFlBQVk7OzRGQVdiLHlCQUF5QjtrQkFkckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixRQUFRLEVBQUU7Ozs7Ozs7O0dBUVg7aUJBQ0Y7OEJBRVksS0FBSztzQkFBYixLQUFLO2dCQUNnQixTQUFTO3NCQUE5QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBPbkRlc3Ryb3ksIENvbnRlbnRDaGlsZCwgZm9yd2FyZFJlZiwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNvbXB1dGVQb3NpdGlvbiwgZmxpcCwgc2hpZnQsIG9mZnNldCwgYXV0b1VwZGF0ZSB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS1ob3Zlci1jYXJkJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgSG92ZXJDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBvcGVuRGVsYXkgPSA3MDA7XG4gICAgQElucHV0KCkgY2xvc2VEZWxheSA9IDMwMDtcbiAgICBASW5wdXQoKSBwbGFjZW1lbnQ6ICd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnID0gJ2JvdHRvbSc7XG5cbiAgICBwcml2YXRlIG9wZW5UaW1lb3V0PzogYW55O1xuICAgIHByaXZhdGUgY2xvc2VUaW1lb3V0PzogYW55O1xuXG4gICAgaXNPcGVuID0gZmFsc2U7XG5cbiAgICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT4gSG92ZXJDYXJkQ29udGVudENvbXBvbmVudCkpIGNvbnRlbnRDb21wb25lbnQ/OiBIb3ZlckNhcmRDb250ZW50Q29tcG9uZW50O1xuXG4gICAgb3Blbih0cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuY2xvc2VUaW1lb3V0KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5jbG9zZVRpbWVvdXQpO1xuICAgICAgICAgICAgdGhpcy5jbG9zZVRpbWVvdXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc09wZW4pIHJldHVybjtcblxuICAgICAgICB0aGlzLm9wZW5UaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNob3codHJpZ2dlckVsZW1lbnQpO1xuICAgICAgICB9LCB0aGlzLm9wZW5EZWxheSk7XG4gICAgfVxuXG4gICAgY2xvc2UoKSB7XG4gICAgICAgIGlmICh0aGlzLm9wZW5UaW1lb3V0KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5vcGVuVGltZW91dCk7XG4gICAgICAgICAgICB0aGlzLm9wZW5UaW1lb3V0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICB9LCB0aGlzLmNsb3NlRGVsYXkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvdyh0cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRlbnRDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRDb21wb25lbnQuc2hvdyh0cmlnZ2VyRWxlbWVudCwgdGhpcy5wbGFjZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGUoKSB7XG4gICAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnRDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudENvbXBvbmVudC5oaWRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIGlmICh0aGlzLm9wZW5UaW1lb3V0KSBjbGVhclRpbWVvdXQodGhpcy5vcGVuVGltZW91dCk7XG4gICAgICAgIGlmICh0aGlzLmNsb3NlVGltZW91dCkgY2xlYXJUaW1lb3V0KHRoaXMuY2xvc2VUaW1lb3V0KTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndG9sbGUtaG92ZXItY2FyZC10cmlnZ2VyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgaG9zdDoge1xuICAgICAgICAnKG1vdXNlZW50ZXIpJzogJ29uTW91c2VFbnRlcigpJyxcbiAgICAgICAgJyhtb3VzZWxlYXZlKSc6ICdvbk1vdXNlTGVhdmUoKScsXG4gICAgICAgICcoZm9jdXNpbiknOiAnb25Nb3VzZUVudGVyKCknLFxuICAgICAgICAnKGZvY3Vzb3V0KSc6ICdvbk1vdXNlTGVhdmUoKScsXG4gICAgICAgICdbY2xhc3NdJzogJ1wiY3Vyc29yLWRlZmF1bHQgaW5saW5lLWJsb2NrXCInXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBIb3ZlckNhcmRUcmlnZ2VyQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIGhvdmVyQ2FyZCA9IGluamVjdChIb3ZlckNhcmRDb21wb25lbnQpO1xuICAgIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICAgIG9uTW91c2VFbnRlcigpIHtcbiAgICAgICAgdGhpcy5ob3ZlckNhcmQub3Blbih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgb25Nb3VzZUxlYXZlKCkge1xuICAgICAgICB0aGlzLmhvdmVyQ2FyZC5jbG9zZSgpO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS1ob3Zlci1jYXJkLWNvbnRlbnQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2ICpuZ0lmPVwiaXNWaXNpYmxlXCJcbiAgICAgICAgICNjb250ZW50XG4gICAgICAgICBbY2xhc3NdPVwiY29tcHV0ZWRDbGFzc1wiXG4gICAgICAgICAobW91c2VlbnRlcik9XCJvbk1vdXNlRW50ZXIoKVwiXG4gICAgICAgICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlTGVhdmUoKVwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIEhvdmVyQ2FyZENvbnRlbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgICBAVmlld0NoaWxkKCdjb250ZW50JykgY29udGVudEVsPzogRWxlbWVudFJlZjtcblxuICAgIGlzVmlzaWJsZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgY2xlYW51cD86ICgpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSBob3ZlckNhcmQgPSBpbmplY3QoSG92ZXJDYXJkQ29tcG9uZW50KTtcblxuICAgIHNob3codHJpZ2dlckVsZW1lbnQ6IEhUTUxFbGVtZW50LCBwbGFjZW1lbnQ6IGFueSkge1xuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29udGVudEVsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbih0cmlnZ2VyRWxlbWVudCwgdGhpcy5jb250ZW50RWwubmF0aXZlRWxlbWVudCwgcGxhY2VtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaGlkZSgpIHtcbiAgICAgICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuY2xlYW51cCkge1xuICAgICAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgICAgICAgICB0aGlzLmNsZWFudXAgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVBvc2l0aW9uKHRyaWdnZXI6IEhUTUxFbGVtZW50LCBjb250ZW50OiBIVE1MRWxlbWVudCwgcGxhY2VtZW50OiBhbnkpIHtcbiAgICAgICAgdGhpcy5jbGVhbnVwID0gYXV0b1VwZGF0ZSh0cmlnZ2VyLCBjb250ZW50LCAoKSA9PiB7XG4gICAgICAgICAgICBjb21wdXRlUG9zaXRpb24odHJpZ2dlciwgY29udGVudCwge1xuICAgICAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbb2Zmc2V0KDgpLCBmbGlwKCksIHNoaWZ0KHsgcGFkZGluZzogOCB9KV0sXG4gICAgICAgICAgICB9KS50aGVuKCh7IHgsIHkgfSkgPT4ge1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oY29udGVudC5zdHlsZSwge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogYCR7eH1weGAsXG4gICAgICAgICAgICAgICAgICAgIHRvcDogYCR7eX1weGAsXG4gICAgICAgICAgICAgICAgICAgIHpJbmRleDogJzk5OTknXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25Nb3VzZUVudGVyKCkge1xuICAgICAgICB0aGlzLmhvdmVyQ2FyZC5vcGVuKG51bGwgYXMgYW55KTtcbiAgICB9XG5cbiAgICBvbk1vdXNlTGVhdmUoKSB7XG4gICAgICAgIHRoaXMuaG92ZXJDYXJkLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiBjbihcbiAgICAgICAgICAgIFwidy02NCByb3VuZGVkLW1kIGJvcmRlciBiZy1wb3BvdmVyIHAtNCB0ZXh0LXBvcG92ZXItZm9yZWdyb3VuZCBzaGFkb3ctbWQgb3V0bGluZS1ub25lIGFuaW1hdGUtaW4gZmFkZS1pbi0wIHpvb20taW4tOTUgZGF0YS1bc3RhdGU9Y2xvc2VkXTphbmltYXRlLW91dCBkYXRhLVtzdGF0ZT1jbG9zZWRdOmZhZGUtb3V0LTAgZGF0YS1bc3RhdGU9Y2xvc2VkXTp6b29tLW91dC05NVwiLFxuICAgICAgICAgICAgdGhpcy5jbGFzc1xuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5jbGVhbnVwKSB0aGlzLmNsZWFudXAoKTtcbiAgICB9XG59XG4iXX0=