@tolle_/tolle-ui 18.2.23 → 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 (183) 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 +60 -25
  18. package/esm2022/lib/date-range-picker.component.mjs +64 -26
  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 +2715 -682
  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 +8 -1
  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 +2 -1
  75. package/lib/date-range-picker.component.d.ts +5 -2
  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/tolle-config.d.ts +8 -0
  100. package/lib/tooltip.directive.d.ts +3 -0
  101. package/lib/utils/color.d.ts +87 -0
  102. package/package.json +4 -1
  103. package/preset.js +28 -0
  104. package/public-api.d.ts +1 -0
  105. package/registry/docs-content.json +4214 -0
  106. package/registry/llms-full.txt +1599 -0
  107. package/registry/llms.txt +83 -0
  108. package/registry/manifest.json +4925 -0
  109. package/registry/r/accordion-item.json +21 -0
  110. package/registry/r/accordion.json +23 -0
  111. package/registry/r/alert-dialog-dynamic.json +31 -0
  112. package/registry/r/alert-dialog.json +26 -0
  113. package/registry/r/alert.json +23 -0
  114. package/registry/r/aspect-ratio.json +21 -0
  115. package/registry/r/avatar-fallback.json +16 -0
  116. package/registry/r/avatar.json +23 -0
  117. package/registry/r/badge.json +23 -0
  118. package/registry/r/breadcrumb-item.json +16 -0
  119. package/registry/r/breadcrumb-link.json +16 -0
  120. package/registry/r/breadcrumb-separator.json +16 -0
  121. package/registry/r/breadcrumb.json +21 -0
  122. package/registry/r/button-group.json +21 -0
  123. package/registry/r/button.json +23 -0
  124. package/registry/r/calendar.json +23 -0
  125. package/registry/r/card.json +21 -0
  126. package/registry/r/carousel.json +18 -0
  127. package/registry/r/checkbox.json +23 -0
  128. package/registry/r/collapsible.json +21 -0
  129. package/registry/r/context-menu-trigger.json +23 -0
  130. package/registry/r/context-menu.json +28 -0
  131. package/registry/r/country-selector.json +31 -0
  132. package/registry/r/data-table.json +38 -0
  133. package/registry/r/date-picker.json +27 -0
  134. package/registry/r/date-range-picker.json +32 -0
  135. package/registry/r/dropdown-item.json +21 -0
  136. package/registry/r/dropdown-label.json +16 -0
  137. package/registry/r/dropdown-menu.json +16 -0
  138. package/registry/r/dropdown-separator.json +16 -0
  139. package/registry/r/dropdown-trigger.json +20 -0
  140. package/registry/r/empty-state.json +23 -0
  141. package/registry/r/hover-card.json +23 -0
  142. package/registry/r/input.json +21 -0
  143. package/registry/r/label.json +21 -0
  144. package/registry/r/masked-input.json +21 -0
  145. package/registry/r/modal.json +36 -0
  146. package/registry/r/multi-select.json +33 -0
  147. package/registry/r/otp-group.json +16 -0
  148. package/registry/r/otp-slot.json +21 -0
  149. package/registry/r/otp.json +21 -0
  150. package/registry/r/pagination.json +32 -0
  151. package/registry/r/phone-number-input.json +34 -0
  152. package/registry/r/popover-content.json +21 -0
  153. package/registry/r/popover.json +18 -0
  154. package/registry/r/progress.json +21 -0
  155. package/registry/r/radio-group.json +26 -0
  156. package/registry/r/radio-item.json +26 -0
  157. package/registry/r/range-calendar.json +28 -0
  158. package/registry/r/resizable-panel-item.json +23 -0
  159. package/registry/r/resizable-panel.json +23 -0
  160. package/registry/r/resizable.json +21 -0
  161. package/registry/r/scroll-area.json +21 -0
  162. package/registry/r/segment.json +21 -0
  163. package/registry/r/select-group.json +21 -0
  164. package/registry/r/select-item.json +26 -0
  165. package/registry/r/select-separator.json +21 -0
  166. package/registry/r/select.json +31 -0
  167. package/registry/r/separator.json +21 -0
  168. package/registry/r/sheet-wrapper.json +31 -0
  169. package/registry/r/sheet.json +21 -0
  170. package/registry/r/sidebar.json +21 -0
  171. package/registry/r/skeleton.json +23 -0
  172. package/registry/r/slider.json +21 -0
  173. package/registry/r/switch.json +23 -0
  174. package/registry/r/tabs.json +23 -0
  175. package/registry/r/tag-input.json +25 -0
  176. package/registry/r/textarea.json +21 -0
  177. package/registry/r/toaster.json +26 -0
  178. package/registry/r/toggle-group.json +25 -0
  179. package/registry/r/toggle.json +23 -0
  180. package/registry/r/tolle-cell.json +16 -0
  181. package/registry/r/tooltip.json +23 -0
  182. package/registry/registry.json +1540 -0
  183. package/theme.css +60 -5
@@ -1,4 +1,4 @@
1
- import { Component, Input, Output, EventEmitter, forwardRef, ContentChildren, inject, ChangeDetectorRef } from '@angular/core';
1
+ import { Component, Input, Output, EventEmitter, forwardRef, ContentChildren, inject, ChangeDetectorRef, ElementRef } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { cn } from './utils/cn';
@@ -14,6 +14,9 @@ export class ToggleGroupComponent {
14
14
  items;
15
15
  _value;
16
16
  cdr = inject(ChangeDetectorRef);
17
+ host = inject((ElementRef));
18
+ /** Index (into the full button list) of the current roving tab stop. */
19
+ activeIndex = 0;
17
20
  onChange = () => { };
18
21
  onTouched = () => { };
19
22
  get value() { return this._value; }
@@ -30,11 +33,78 @@ export class ToggleGroupComponent {
30
33
  this.items.changes.subscribe(() => {
31
34
  this.updateItemsState();
32
35
  this.cdr.markForCheck();
36
+ // Re-apply roving tabindex once the new toggle views have rendered.
37
+ Promise.resolve().then(() => this.applyRovingTabindex());
33
38
  });
34
39
  }
40
+ ngAfterViewInit() {
41
+ this.applyRovingTabindex();
42
+ }
35
43
  get computedClass() {
36
44
  return cn("inline-flex items-center justify-center -space-x-px rounded-md", this.class);
37
45
  }
46
+ /** All toggle button elements in DOM order. */
47
+ get toggleButtons() {
48
+ return Array.from(this.host.nativeElement.querySelectorAll('tolle-toggle button'));
49
+ }
50
+ /**
51
+ * Roving tabindex: exactly one toggle button is tab-reachable at a time.
52
+ * Defaults to the current active button, falling back to the first enabled.
53
+ */
54
+ applyRovingTabindex() {
55
+ const btns = this.toggleButtons;
56
+ if (!btns.length)
57
+ return;
58
+ let active = this.activeIndex;
59
+ if (active < 0 || active >= btns.length || btns[active].disabled) {
60
+ active = btns.findIndex(b => !b.disabled);
61
+ if (active < 0)
62
+ active = 0;
63
+ }
64
+ this.activeIndex = active;
65
+ btns.forEach((b, i) => { b.tabIndex = i === active ? 0 : -1; });
66
+ }
67
+ /**
68
+ * Toolbar keyboard nav: Arrow Left/Right (and Home/End) move focus between
69
+ * toggle buttons without activating them (toggles activate on Enter/Space/click).
70
+ */
71
+ onKeydown(event) {
72
+ const key = event.key;
73
+ if (key !== 'ArrowRight' && key !== 'ArrowLeft' && key !== 'Home' && key !== 'End')
74
+ return;
75
+ const btns = this.toggleButtons;
76
+ const enabled = btns.map((b, i) => ({ b, i })).filter(x => !x.b.disabled);
77
+ if (!enabled.length)
78
+ return;
79
+ event.preventDefault();
80
+ const active = (typeof document !== 'undefined' ? document.activeElement : null);
81
+ const focusedIndex = active ? btns.indexOf(active) : -1;
82
+ let pos = enabled.findIndex(x => x.i === focusedIndex);
83
+ let targetPos;
84
+ if (key === 'Home') {
85
+ targetPos = 0;
86
+ }
87
+ else if (key === 'End') {
88
+ targetPos = enabled.length - 1;
89
+ }
90
+ else if (key === 'ArrowRight') {
91
+ targetPos = pos < 0 ? 0 : (pos + 1) % enabled.length;
92
+ }
93
+ else {
94
+ targetPos = pos < 0 ? enabled.length - 1 : (pos - 1 + enabled.length) % enabled.length;
95
+ }
96
+ // Focusing the button triggers focusin, which updates the roving tab stop.
97
+ enabled[targetPos].b.focus();
98
+ }
99
+ /** Keep the roving tab stop in sync when a button gains focus (tab/click). */
100
+ onFocusIn(event) {
101
+ const btns = this.toggleButtons;
102
+ const idx = btns.indexOf(event.target);
103
+ if (idx < 0)
104
+ return;
105
+ this.activeIndex = idx;
106
+ btns.forEach((b, i) => { b.tabIndex = i === idx ? 0 : -1; });
107
+ }
38
108
  writeValue(value) {
39
109
  this._value = value;
40
110
  this.updateItemsState();
@@ -81,7 +151,7 @@ export class ToggleGroupComponent {
81
151
  });
82
152
  }
83
153
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToggleGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
84
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ToggleGroupComponent, isStandalone: true, selector: "tolle-toggle-group", inputs: { type: "type", variant: "variant", size: "size", class: "class", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, host: { attributes: { "role": "group" }, properties: { "class": "computedClass" } }, providers: [
154
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ToggleGroupComponent, isStandalone: true, selector: "tolle-toggle-group", inputs: { type: "type", variant: "variant", size: "size", class: "class", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, host: { attributes: { "role": "group" }, listeners: { "keydown": "onKeydown($event)", "focusin": "onFocusIn($event)" }, properties: { "class": "computedClass" } }, providers: [
85
155
  {
86
156
  provide: NG_VALUE_ACCESSOR,
87
157
  useExisting: forwardRef(() => ToggleGroupComponent),
@@ -99,7 +169,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
99
169
  }
100
170
  ], host: {
101
171
  '[class]': 'computedClass',
102
- 'role': 'group'
172
+ 'role': 'group',
173
+ '(keydown)': 'onKeydown($event)',
174
+ '(focusin)': 'onFocusIn($event)'
103
175
  }, styles: [":host{display:inline-flex}:host ::ng-deep tolle-toggle-group-item:first-child tolle-toggle button{@apply rounded-r-none;}:host ::ng-deep tolle-toggle-group-item:not(:first-child):not(:last-child) tolle-toggle button{@apply rounded-none border-l-0;}:host ::ng-deep tolle-toggle-group-item:last-child:not(:first-child) tolle-toggle button{@apply rounded-l-none border-l-0;}:host ::ng-deep tolle-toggle-group-item tolle-toggle button:hover,:host ::ng-deep tolle-toggle-group-item tolle-toggle button:focus,:host ::ng-deep tolle-toggle-group-item tolle-toggle button[data-state=on]{@apply z-10 relative;}\n"] }]
104
176
  }], propDecorators: { type: [{
105
177
  type: Input
@@ -170,4 +242,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
170
242
  }], disabled: [{
171
243
  type: Input
172
244
  }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvdG9nZ2xlLWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQStCLE1BQU0sRUFBRSxpQkFBaUIsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN6SyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQThDckQsTUFBTSxPQUFPLG9CQUFvQjtJQUNwQixJQUFJLEdBQTBCLFFBQVEsQ0FBQztJQUN2QyxPQUFPLEdBQTBCLFNBQVMsQ0FBQztJQUMzQyxJQUFJLEdBQTRCLFNBQVMsQ0FBQztJQUMxQyxLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFFekIsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFb0MsS0FBSyxDQUF1QztJQUV4SCxNQUFNLENBQU07SUFDWixHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFeEMsUUFBUSxHQUFRLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxQixTQUFTLEdBQVEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRTNCLElBQUksS0FBSyxLQUFLLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbkMsSUFBSSxLQUFLLENBQUMsQ0FBTTtRQUNaLElBQUksQ0FBQyxLQUFL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LEtBQUs7c0JBQXhGLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFOztBQTZGdEYsTUFBTSxPQUFPLHdCQUF3QjtJQUNOLEtBQUssQ0FBVTtJQUNqQyxLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFFbkMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixPQUFPLEdBQTBCLFNBQVMsQ0FBQztJQUMzQyxJQUFJLEdBQTRCLFNBQVMsQ0FBQztJQUVsQyxLQUFLLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdEMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRXZDLFFBQVE7UUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQzt3R0FkUSx3QkFBd0I7NEZBQXhCLHdCQUF3QixxSkFidkI7Ozs7Ozs7Ozs7O0tBV1QsMkRBWlMsWUFBWSwrQkFBRSxlQUFlOzs0RkFjOUIsd0JBQXdCO2tCQWpCcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQztvQkFDeEMsUUFBUSxFQUFFOzs7Ozs7Ozs7OztLQVdUO2lCQUNKOzhCQUU4QixLQUFLO3NCQUEvQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDaEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QsIEFmdGVyQ29udGVudEluaXQsIGluamVjdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcbmltcG9ydCB7IFRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vdG9nZ2xlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndG9sbGUtdG9nZ2xlLWdyb3VwJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVG9nZ2xlR3JvdXBDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzXSc6ICdjb21wdXRlZENsYXNzJyxcbiAgICAgICAgJ3JvbGUnOiAnZ3JvdXAnXG4gICAgfSxcbiAgICBzdHlsZXM6IFtgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgLyogMS4gRmlyc3QgSXRlbTogUmVtb3ZlIHJpZ2h0IHJvdW5kaW5nICovXG4gICAgICAgIDpob3N0IDo6bmctZGVlcCB0b2xsZS10b2dnbGUtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB0b2xsZS10b2dnbGUgYnV0dG9uIHtcbiAgICAgICAgICAgIEBhcHBseSByb3VuZGVkLXItbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIDIuIE1pZGRsZSBJdGVtczogUmVtb3ZlIGFsbCByb3VuZGluZyBhbmQgbGVmdCBib3JkZXIgKi9cbiAgICAgICAgOmhvc3QgOjpuZy1kZWVwIHRvbGxlLXRvZ2dsZS1ncm91cC1pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkgdG9sbGUtdG9nZ2xlIGJ1dHRvbiB7XG4gICAgICAgICAgICBAYXBwbHkgcm91bmRlZC1ub25lIGJvcmRlci1sLTA7XG4gICAgICAgIH1cblxuICAgICAgICAvKiAzLiBMYXN0IEl0ZW06IFJlbW92ZSBsZWZ0IHJvdW5kaW5nIGFuZCBsZWZ0IGJvcmRlciAqL1xuICAgICAgICA6aG9zdCA6Om5nLWRlZXAgdG9sbGUtdG9nZ2xlLWdyb3VwLWl0ZW06bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB0b2xsZS10b2dnbGUgYnV0dG9uIHtcbiAgICAgICAgICAgIEBhcHBseSByb3VuZGVkLWwtbm9uZSBib3JkZXItbC0wO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogNC4gSG92ZXIvRm9jdXMgU3RhdGU6IEhpZ2hlciB6LWluZGV4IHRvIHNob3cgYm9yZGVycy9yaW5ncyBjb3JyZWN0bHkgKi9cbiAgICAgICAgOmhvc3QgOjpuZy1kZWVwIHRvbGxlLXRvZ2dsZS1ncm91cC1pdGVtIHRvbGxlLXRvZ2dsZSBidXR0b246aG92ZXIsXG4gICAgICAgIDpob3N0IDo6bmctZGVlcCB0b2xsZS10b2dnbGUtZ3JvdXAtaXRlbSB0b2xsZS10b2dnbGUgYnV0dG9uOmZvY3VzLFxuICAgICAgICA6aG9zdCA6Om5nLWRlZXAgdG9sbGUtdG9nZ2xlLWdyb3VwLWl0ZW0gdG9sbGUtdG9nZ2xlIGJ1dHRvbltkYXRhLXN0YXRlPW9uXSB7XG4gICAgICAgICAgICBAYXBwbHkgei0xMCByZWxhdGl2ZTtcbiAgICAgICAgfVxuICAgIGBdXG59KVxuZXhwb3J0IGNsYXNzIFRvZ2dsZUdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIEBJbnB1dCgpIHR5cGU6ICdzaW5nbGUnIHwgJ211bHRpcGxlJyA9ICdzaW5nbGUnO1xuICAgIEBJbnB1dCgpIHZhcmlhbnQ6ICdkZWZhdWx0JyB8ICdvdXRsaW5lJyA9ICdkZWZhdWx0JztcbiAgICBASW5wdXQoKSBzaXplOiAnZGVmYXVsdCcgfCAnc20nIHwgJ2xnJyA9ICdkZWZhdWx0JztcbiAgICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IFRvZ2dsZUdyb3VwSXRlbUNvbXBvbmVudCksIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgaXRlbXMhOiBRdWVyeUxpc3Q8VG9nZ2xlR3JvdXBJdGVtQ29tcG9uZW50PjtcblxuICAgIHByaXZhdGUgX3ZhbHVlOiBhbnk7XG4gICAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHsgfTtcbiAgICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHsgfTtcblxuICAgIGdldCB2YWx1ZSgpIHsgcmV0dXJuIHRoaXMuX3ZhbHVlOyB9XG4gICAgc2V0IHZhbHVlKHY6IGFueSkge1xuICAgICAgICBpZiAodiAhPT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdjtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSXRlbXNTdGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh2KTtcbiAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVJdGVtc1N0YXRlKCk7XG4gICAgICAgIHRoaXMuaXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVJdGVtc1N0YXRlKCk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiBjbihcImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciAtc3BhY2UteC1weCByb3VuZGVkLW1kXCIsIHRoaXMuY2xhc3MpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnVwZGF0ZUl0ZW1zU3RhdGUoKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7IHRoaXMub25DaGFuZ2UgPSBmbjsgfVxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHsgdGhpcy5vblRvdWNoZWQgPSBmbjsgfVxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICAgICAgdGhpcy51cGRhdGVJdGVtc1N0YXRlKCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlSXRlbShpdGVtVmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZSA9PT0gaXRlbVZhbHVlID8gbnVsbCA6IGl0ZW1WYWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpID8gWy4uLnRoaXMudmFsdWVdIDogW107XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IGN1cnJlbnQuaW5kZXhPZihpdGVtVmFsdWUpO1xuICAgICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGN1cnJlbnQucHVzaChpdGVtVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGN1cnJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUl0ZW1zU3RhdGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5pdGVtcykgcmV0dXJuO1xuICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy50eXBlID09PSAnc2luZ2xlJykge1xuICAgICAgICAgICAgICAgIGl0ZW0ucHJlc3NlZCA9IHRoaXMudmFsdWUgPT09IGl0ZW0udmFsdWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGl0ZW0ucHJlc3NlZCA9IEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgJiYgdGhpcy52YWx1ZS5pbmNsdWRlcyhpdGVtLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGl0ZW0udmFyaWFudCA9IHRoaXMudmFyaWFudDtcbiAgICAgICAgICAgIGl0ZW0uc2l6ZSA9IHRoaXMuc2l6ZTtcbiAgICAgICAgICAgIGl0ZW0uZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkIHx8IGl0ZW0uZGlzYWJsZWQ7XG4gICAgICAgICAgICBpdGVtLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RvbGxlLXRvZ2dsZS1ncm91cC1pdGVtJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRvZ2dsZUNvbXBvbmVudF0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHRvbGxlLXRvZ2dsZVxuICAgICAgICAgICAgW3ByZXNzZWRdPVwicHJlc3NlZFwiXG4gICAgICAgICAgICBbdmFyaWFudF09XCJ2YXJpYW50XCJcbiAgICAgICAgICAgIFtzaXplXT1cInNpemVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgIChwcmVzc2VkQ2hhbmdlKT1cIm9uVG9nZ2xlKClcIlxuICAgICAgICAgICAgW2NsYXNzXT1cImNsYXNzXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L3RvbGxlLXRvZ2dsZT5cbiAgICBgXG59KVxuZXhwb3J0IGNsYXNzIFRvZ2dsZUdyb3VwSXRlbUNvbXBvbmVudCB7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgdmFsdWUhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcmVzc2VkID0gZmFsc2U7XG4gICAgdmFyaWFudDogJ2RlZmF1bHQnIHwgJ291dGxpbmUnID0gJ2RlZmF1bHQnO1xuICAgIHNpemU6ICdkZWZhdWx0JyB8ICdzbScgfCAnbGcnID0gJ2RlZmF1bHQnO1xuXG4gICAgcHJpdmF0ZSBncm91cCA9IGluamVjdChUb2dnbGVHcm91cENvbXBvbmVudCk7XG4gICAgcHVibGljIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICBvblRvZ2dsZSgpIHtcbiAgICAgICAgdGhpcy5ncm91cC50b2dnbGVJdGVtKHRoaXMudmFsdWUpO1xuICAgIH1cbn1cbiJdfQ==
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvdG9nZ2xlLWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQThDLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDcE0sT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFnRHJELE1BQU0sT0FBTyxvQkFBb0I7SUFDcEIsSUFBSSxHQUEwQixRQUFRLENBQUM7SUFDdkMsT0FBTyxHQUEwQixTQUFTLENBQUM7SUFDM0MsSUFBSSxHQUE0QixTQUFTLENBQUM7SUFDMUMsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixRQUFRLEdBQVksS0FBSyxDQUFDO0lBRXpCLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBRW9DLEtBQUssQ0FBdUM7SUFFeEgsTUFBTSxDQUFNO0lBQ1osR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2hDLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQztJQUUvQyx3RUFBd0U7SUFDaEUsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUV4QixRQUFRLEdBQVEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLFNBQVMsR0FBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7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ImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBDb250ZW50Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgaW5qZWN0LCBDaGFuZ2VEZXRlY3RvclJlZiwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuaW1wb3J0IHsgVG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi90b2dnbGUuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS10b2dnbGUtZ3JvdXAnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUb2dnbGVHcm91cENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3NdJzogJ2NvbXB1dGVkQ2xhc3MnLFxuICAgICAgICAncm9sZSc6ICdncm91cCcsXG4gICAgICAgICcoa2V5ZG93biknOiAnb25LZXlkb3duKCRldmVudCknLFxuICAgICAgICAnKGZvY3VzaW4pJzogJ29uRm9jdXNJbigkZXZlbnQpJ1xuICAgIH0sXG4gICAgc3R5bGVzOiBbYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIDEuIEZpcnN0IEl0ZW06IFJlbW92ZSByaWdodCByb3VuZGluZyAqL1xuICAgICAgICA6aG9zdCA6Om5nLWRlZXAgdG9sbGUtdG9nZ2xlLWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQgdG9sbGUtdG9nZ2xlIGJ1dHRvbiB7XG4gICAgICAgICAgICBAYXBwbHkgcm91bmRlZC1yLW5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAvKiAyLiBNaWRkbGUgSXRlbXM6IFJlbW92ZSBhbGwgcm91bmRpbmcgYW5kIGxlZnQgYm9yZGVyICovXG4gICAgICAgIDpob3N0IDo6bmctZGVlcCB0b2xsZS10b2dnbGUtZ3JvdXAtaXRlbTpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIHRvbGxlLXRvZ2dsZSBidXR0b24ge1xuICAgICAgICAgICAgQGFwcGx5IHJvdW5kZWQtbm9uZSBib3JkZXItbC0wO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogMy4gTGFzdCBJdGVtOiBSZW1vdmUgbGVmdCByb3VuZGluZyBhbmQgbGVmdCBib3JkZXIgKi9cbiAgICAgICAgOmhvc3QgOjpuZy1kZWVwIHRvbGxlLXRvZ2dsZS1ncm91cC1pdGVtOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkgdG9sbGUtdG9nZ2xlIGJ1dHRvbiB7XG4gICAgICAgICAgICBAYXBwbHkgcm91bmRlZC1sLW5vbmUgYm9yZGVyLWwtMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIDQuIEhvdmVyL0ZvY3VzIFN0YXRlOiBIaWdoZXIgei1pbmRleCB0byBzaG93IGJvcmRlcnMvcmluZ3MgY29ycmVjdGx5ICovXG4gICAgICAgIDpob3N0IDo6bmctZGVlcCB0b2xsZS10b2dnbGUtZ3JvdXAtaXRlbSB0b2xsZS10b2dnbGUgYnV0dG9uOmhvdmVyLFxuICAgICAgICA6aG9zdCA6Om5nLWRlZXAgdG9sbGUtdG9nZ2xlLWdyb3VwLWl0ZW0gdG9sbGUtdG9nZ2xlIGJ1dHRvbjpmb2N1cyxcbiAgICAgICAgOmhvc3QgOjpuZy1kZWVwIHRvbGxlLXRvZ2dsZS1ncm91cC1pdGVtIHRvbGxlLXRvZ2dsZSBidXR0b25bZGF0YS1zdGF0ZT1vbl0ge1xuICAgICAgICAgICAgQGFwcGx5IHotMTAgcmVsYXRpdmU7XG4gICAgICAgIH1cbiAgICBgXVxufSlcbmV4cG9ydCBjbGFzcyBUb2dnbGVHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBASW5wdXQoKSB0eXBlOiAnc2luZ2xlJyB8ICdtdWx0aXBsZScgPSAnc2luZ2xlJztcbiAgICBASW5wdXQoKSB2YXJpYW50OiAnZGVmYXVsdCcgfCAnb3V0bGluZScgPSAnZGVmYXVsdCc7XG4gICAgQElucHV0KCkgc2l6ZTogJ2RlZmF1bHQnIHwgJ3NtJyB8ICdsZycgPSAnZGVmYXVsdCc7XG4gICAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBUb2dnbGVHcm91cEl0ZW1Db21wb25lbnQpLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIGl0ZW1zITogUXVlcnlMaXN0PFRvZ2dsZUdyb3VwSXRlbUNvbXBvbmVudD47XG5cbiAgICBwcml2YXRlIF92YWx1ZTogYW55O1xuICAgIHByaXZhdGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgICBwcml2YXRlIGhvc3QgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuXG4gICAgLyoqIEluZGV4IChpbnRvIHRoZSBmdWxsIGJ1dHRvbiBsaXN0KSBvZiB0aGUgY3VycmVudCByb3ZpbmcgdGFiIHN0b3AuICovXG4gICAgcHJpdmF0ZSBhY3RpdmVJbmRleCA9IDA7XG5cbiAgICBvbkNoYW5nZTogYW55ID0gKCkgPT4geyB9O1xuICAgIG9uVG91Y2hlZDogYW55ID0gKCkgPT4geyB9O1xuXG4gICAgZ2V0IHZhbHVlKCkgeyByZXR1cm4gdGhpcy5fdmFsdWU7IH1cbiAgICBzZXQgdmFsdWUodjogYW55KSB7XG4gICAgICAgIGlmICh2ICE9PSB0aGlzLl92YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB2O1xuICAgICAgICAgICAgdGhpcy51cGRhdGVJdGVtc1N0YXRlKCk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHYpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUl0ZW1zU3RhdGUoKTtcbiAgICAgICAgdGhpcy5pdGVtcy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUl0ZW1zU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgLy8gUmUtYXBwbHkgcm92aW5nIHRhYmluZGV4IG9uY2UgdGhlIG5ldyB0b2dnbGUgdmlld3MgaGF2ZSByZW5kZXJlZC5cbiAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gdGhpcy5hcHBseVJvdmluZ1RhYmluZGV4KCkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuYXBwbHlSb3ZpbmdUYWJpbmRleCgpO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZENsYXNzKCkge1xuICAgICAgICByZXR1cm4gY24oXCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgLXNwYWNlLXgtcHggcm91bmRlZC1tZFwiLCB0aGlzLmNsYXNzKTtcbiAgICB9XG5cbiAgICAvKiogQWxsIHRvZ2dsZSBidXR0b24gZWxlbWVudHMgaW4gRE9NIG9yZGVyLiAqL1xuICAgIHByaXZhdGUgZ2V0IHRvZ2dsZUJ1dHRvbnMoKTogSFRNTEJ1dHRvbkVsZW1lbnRbXSB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKFxuICAgICAgICAgICAgdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgndG9sbGUtdG9nZ2xlIGJ1dHRvbicpXG4gICAgICAgICkgYXMgSFRNTEJ1dHRvbkVsZW1lbnRbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSb3ZpbmcgdGFiaW5kZXg6IGV4YWN0bHkgb25lIHRvZ2dsZSBidXR0b24gaXMgdGFiLXJlYWNoYWJsZSBhdCBhIHRpbWUuXG4gICAgICogRGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIGJ1dHRvbiwgZmFsbGluZyBiYWNrIHRvIHRoZSBmaXJzdCBlbmFibGVkLlxuICAgICAqL1xuICAgIHByaXZhdGUgYXBwbHlSb3ZpbmdUYWJpbmRleCgpIHtcbiAgICAgICAgY29uc3QgYnRucyA9IHRoaXMudG9nZ2xlQnV0dG9ucztcbiAgICAgICAgaWYgKCFidG5zLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICAgIGxldCBhY3RpdmUgPSB0aGlzLmFjdGl2ZUluZGV4O1xuICAgICAgICBpZiAoYWN0aXZlIDwgMCB8fCBhY3RpdmUgPj0gYnRucy5sZW5ndGggfHwgYnRuc1thY3RpdmVdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBhY3RpdmUgPSBidG5zLmZpbmRJbmRleChiID0+ICFiLmRpc2FibGVkKTtcbiAgICAgICAgICAgIGlmIChhY3RpdmUgPCAwKSBhY3RpdmUgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSBhY3RpdmU7XG4gICAgICAgIGJ0bnMuZm9yRWFjaCgoYiwgaSkgPT4geyBiLnRhYkluZGV4ID0gaSA9PT0gYWN0aXZlID8gMCA6IC0xOyB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUb29sYmFyIGtleWJvYXJkIG5hdjogQXJyb3cgTGVmdC9SaWdodCAoYW5kIEhvbWUvRW5kKSBtb3ZlIGZvY3VzIGJldHdlZW5cbiAgICAgKiB0b2dnbGUgYnV0dG9ucyB3aXRob3V0IGFjdGl2YXRpbmcgdGhlbSAodG9nZ2xlcyBhY3RpdmF0ZSBvbiBFbnRlci9TcGFjZS9jbGljaykuXG4gICAgICovXG4gICAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleTtcbiAgICAgICAgaWYgKGtleSAhPT0gJ0Fycm93UmlnaHQnICYmIGtleSAhPT0gJ0Fycm93TGVmdCcgJiYga2V5ICE9PSAnSG9tZScgJiYga2V5ICE9PSAnRW5kJykgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGJ0bnMgPSB0aGlzLnRvZ2dsZUJ1dHRvbnM7XG4gICAgICAgIGNvbnN0IGVuYWJsZWQgPSBidG5zLm1hcCgoYiwgaSkgPT4gKHsgYiwgaSB9KSkuZmlsdGVyKHggPT4gIXguYi5kaXNhYmxlZCk7XG4gICAgICAgIGlmICghZW5hYmxlZC5sZW5ndGgpIHJldHVybjtcblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGNvbnN0IGFjdGl2ZSA9ICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnID8gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA6IG51bGwpIGFzIEhUTUxCdXR0b25FbGVtZW50IHwgbnVsbDtcbiAgICAgICAgY29uc3QgZm9jdXNlZEluZGV4ID0gYWN0aXZlID8gYnRucy5pbmRleE9mKGFjdGl2ZSkgOiAtMTtcbiAgICAgICAgbGV0IHBvcyA9IGVuYWJsZWQuZmluZEluZGV4KHggPT4geC5pID09PSBmb2N1c2VkSW5kZXgpO1xuXG4gICAgICAgIGxldCB0YXJnZXRQb3M6IG51bWJlcjtcbiAgICAgICAgaWYgKGtleSA9PT0gJ0hvbWUnKSB7XG4gICAgICAgICAgICB0YXJnZXRQb3MgPSAwO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ0VuZCcpIHtcbiAgICAgICAgICAgIHRhcmdldFBvcyA9IGVuYWJsZWQubGVuZ3RoIC0gMTtcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgICAgICAgdGFyZ2V0UG9zID0gcG9zIDwgMCA/IDAgOiAocG9zICsgMSkgJSBlbmFibGVkLmxlbmd0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRhcmdldFBvcyA9IHBvcyA8IDAgPyBlbmFibGVkLmxlbmd0aCAtIDEgOiAocG9zIC0gMSArIGVuYWJsZWQubGVuZ3RoKSAlIGVuYWJsZWQubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9jdXNpbmcgdGhlIGJ1dHRvbiB0cmlnZ2VycyBmb2N1c2luLCB3aGljaCB1cGRhdGVzIHRoZSByb3ZpbmcgdGFiIHN0b3AuXG4gICAgICAgIGVuYWJsZWRbdGFyZ2V0UG9zXS5iLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEtlZXAgdGhlIHJvdmluZyB0YWIgc3RvcCBpbiBzeW5jIHdoZW4gYSBidXR0b24gZ2FpbnMgZm9jdXMgKHRhYi9jbGljaykuICovXG4gICAgb25Gb2N1c0luKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIGNvbnN0IGJ0bnMgPSB0aGlzLnRvZ2dsZUJ1dHRvbnM7XG4gICAgICAgIGNvbnN0IGlkeCA9IGJ0bnMuaW5kZXhPZihldmVudC50YXJnZXQgYXMgSFRNTEJ1dHRvbkVsZW1lbnQpO1xuICAgICAgICBpZiAoaWR4IDwgMCkgcmV0dXJuO1xuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gaWR4O1xuICAgICAgICBidG5zLmZvckVhY2goKGIsIGkpID0+IHsgYi50YWJJbmRleCA9IGkgPT09IGlkeCA/IDAgOiAtMTsgfSk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMudXBkYXRlSXRlbXNTdGF0ZSgpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHsgdGhpcy5vbkNoYW5nZSA9IGZuOyB9XG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQgeyB0aGlzLm9uVG91Y2hlZCA9IGZuOyB9XG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgICAgICB0aGlzLnVwZGF0ZUl0ZW1zU3RhdGUoKTtcbiAgICB9XG5cbiAgICB0b2dnbGVJdGVtKGl0ZW1WYWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG5cbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlID09PSBpdGVtVmFsdWUgPyBudWxsIDogaXRlbVZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgPyBbLi4udGhpcy52YWx1ZV0gOiBbXTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gY3VycmVudC5pbmRleE9mKGl0ZW1WYWx1ZSk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnQuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY3VycmVudC5wdXNoKGl0ZW1WYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gY3VycmVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlSXRlbXNTdGF0ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLml0ZW1zKSByZXR1cm47XG4gICAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5wcmVzc2VkID0gdGhpcy52YWx1ZSA9PT0gaXRlbS52YWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaXRlbS5wcmVzc2VkID0gQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSAmJiB0aGlzLnZhbHVlLmluY2x1ZGVzKGl0ZW0udmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaXRlbS52YXJpYW50ID0gdGhpcy52YXJpYW50O1xuICAgICAgICAgICAgaXRlbS5zaXplID0gdGhpcy5zaXplO1xuICAgICAgICAgICAgaXRlbS5kaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQgfHwgaXRlbS5kaXNhYmxlZDtcbiAgICAgICAgICAgIGl0ZW0uY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndG9sbGUtdG9nZ2xlLWdyb3VwLWl0ZW0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVG9nZ2xlQ29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8dG9sbGUtdG9nZ2xlXG4gICAgICAgICAgICBbcHJlc3NlZF09XCJwcmVzc2VkXCJcbiAgICAgICAgICAgIFt2YXJpYW50XT1cInZhcmlhbnRcIlxuICAgICAgICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgKHByZXNzZWRDaGFuZ2UpPVwib25Ub2dnbGUoKVwiXG4gICAgICAgICAgICBbY2xhc3NdPVwiY2xhc3NcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvdG9sbGUtdG9nZ2xlPlxuICAgIGBcbn0pXG5leHBvcnQgY2xhc3MgVG9nZ2xlR3JvdXBJdGVtQ29tcG9uZW50IHtcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSB2YWx1ZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHByZXNzZWQgPSBmYWxzZTtcbiAgICB2YXJpYW50OiAnZGVmYXVsdCcgfCAnb3V0bGluZScgPSAnZGVmYXVsdCc7XG4gICAgc2l6ZTogJ2RlZmF1bHQnIHwgJ3NtJyB8ICdsZycgPSAnZGVmYXVsdCc7XG5cbiAgICBwcml2YXRlIGdyb3VwID0gaW5qZWN0KFRvZ2dsZUdyb3VwQ29tcG9uZW50KTtcbiAgICBwdWJsaWMgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIG9uVG9nZ2xlKCkge1xuICAgICAgICB0aGlzLmdyb3VwLnRvZ2dsZUl0ZW0odGhpcy52YWx1ZSk7XG4gICAgfVxufVxuIl19
@@ -15,4 +15,4 @@ export function provideTolleConfig(config) {
15
15
  },
16
16
  ];
17
17
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9sbGUtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi90b2xsZS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBUy9DLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBYyxhQUFhLENBQUMsQ0FBQztBQUUzRSxNQUFNLFVBQVUsa0JBQWtCLENBQUMsTUFBbUI7SUFDcEQsT0FBTztRQUNMLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO1FBQzNDO1lBQ0UsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLENBQUMsQ0FBZSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BDLDhDQUE4QztnQkFDOUMscUVBQXFFO1lBQ3ZFLENBQUM7WUFDRCxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7WUFDcEIsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBJbmplY3Rpb25Ub2tlbiwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZW1lU2VydmljZSB9IGZyb20gJy4vdGhlbWUuc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9sbGVDb25maWcge1xuICBwcmltYXJ5Q29sb3I/OiBzdHJpbmc7XG4gIHJhZGl1cz86IHN0cmluZztcbiAgZGVmYXVsdFRvYXN0RHVyYXRpb24/OiBudW1iZXI7XG4gIGRhcmtCeURlZmF1bHQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgVE9MTEVfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPFRvbGxlQ29uZmlnPignVG9sbGVDb25maWcnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVUb2xsZUNvbmZpZyhjb25maWc6IFRvbGxlQ29uZmlnKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAgeyBwcm92aWRlOiBUT0xMRV9DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiAoXzogVGhlbWVTZXJ2aWNlKSA9PiAoKSA9PiB7XG4gICAgICAgIC8vIFRoZW1lIGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQgaW4gY29uc3RydWN0b3JcbiAgICAgICAgLy8gVGhpcyBmYWN0b3J5IGVuc3VyZXMgdGhlbWVTZXJ2aWNlIGlzIGluc3RhbnRpYXRlZCBkdXJpbmcgYm9vdHN0cmFwXG4gICAgICB9LFxuICAgICAgZGVwczogW1RoZW1lU2VydmljZV0sXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdO1xufVxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9sbGUtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi90b2xsZS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBaUIvQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQWMsYUFBYSxDQUFDLENBQUM7QUFFM0UsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQW1CO0lBQ3BELE9BQU87UUFDTCxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtRQUMzQztZQUNFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFVBQVUsRUFBRSxDQUFDLENBQWUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO2dCQUNwQyw4Q0FBOEM7Z0JBQzlDLHFFQUFxRTtZQUN2RSxDQUFDO1lBQ0QsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDO1lBQ3BCLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICcuL3RoZW1lLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvbGxlQ29uZmlnIHtcbiAgcHJpbWFyeUNvbG9yPzogc3RyaW5nO1xuICByYWRpdXM/OiBzdHJpbmc7XG4gIGRlZmF1bHRUb2FzdER1cmF0aW9uPzogbnVtYmVyO1xuICBkYXJrQnlEZWZhdWx0PzogYm9vbGVhbjtcbiAgLyoqIE5ldXRyYWwgYmFzZS1jb2xvciBmYW1pbHk6IGB6aW5jYCB8IGBzbGF0ZWAgfCBgZ3JheWAgfCBgbmV1dHJhbGAgfCBgc3RvbmVgLiAqL1xuICBiYXNlQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBDaGFydCBiYXNlIGNvbG9yIChoZXgpOyBkZXJpdmVzIGAtLWNoYXJ0LTHigKY1YC4gKi9cbiAgY2hhcnRDb2xvcj86IHN0cmluZztcbiAgLyoqIFR5cG9ncmFwaHkgc3RhY2tzIGFwcGxpZWQgdG8gYC0tZm9udC1zYW5zYCAvIGAtLWZvbnQtc2VyaWZgIC8gYC0tZm9udC1tb25vYC4gKi9cbiAgZm9udFNhbnM/OiBzdHJpbmc7XG4gIGZvbnRTZXJpZj86IHN0cmluZztcbiAgZm9udE1vbm8/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBUT0xMRV9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48VG9sbGVDb25maWc+KCdUb2xsZUNvbmZpZycpO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVRvbGxlQ29uZmlnKGNvbmZpZzogVG9sbGVDb25maWcpOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFtcbiAgICB7IHByb3ZpZGU6IFRPTExFX0NPTkZJRywgdXNlVmFsdWU6IGNvbmZpZyB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgIHVzZUZhY3Rvcnk6IChfOiBUaGVtZVNlcnZpY2UpID0+ICgpID0+IHtcbiAgICAgICAgLy8gVGhlbWUgaXMgYWxyZWFkeSBpbml0aWFsaXplZCBpbiBjb25zdHJ1Y3RvclxuICAgICAgICAvLyBUaGlzIGZhY3RvcnkgZW5zdXJlcyB0aGVtZVNlcnZpY2UgaXMgaW5zdGFudGlhdGVkIGR1cmluZyBib290c3RyYXBcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbVGhlbWVTZXJ2aWNlXSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF07XG59XG4iXX0=
@@ -2,37 +2,57 @@ import { Directive, HostListener, Input } from '@angular/core';
2
2
  import { computePosition, flip, shift, offset, autoUpdate } from '@floating-ui/dom';
3
3
  import { cn } from './utils/cn';
4
4
  import * as i0 from "@angular/core";
5
+ let tooltipIdCounter = 0;
5
6
  export class TooltipDirective {
6
7
  el;
7
8
  content = '';
8
9
  placement = 'top';
9
10
  tooltipEl = null;
10
11
  cleanup;
12
+ showTimeout;
13
+ tooltipId = `tolle-tooltip-${tooltipIdCounter++}`;
11
14
  constructor(el) {
12
15
  this.el = el;
13
16
  }
14
17
  show() {
15
18
  if (!this.content)
16
19
  return;
17
- // 1. Create Tooltip Element
18
- this.tooltipEl = document.createElement('div');
19
- this.tooltipEl.className = cn('absolute z-[100] px-2 py-1 text-xs font-medium text-white bg-black rounded shadow-md pointer-events-none');
20
- this.tooltipEl.innerText = this.content;
21
- document.body.appendChild(this.tooltipEl);
22
- // 2. Position it using Floating UI
23
- this.cleanup = autoUpdate(this.el.nativeElement, this.tooltipEl, () => {
24
- computePosition(this.el.nativeElement, this.tooltipEl, {
25
- placement: this.placement,
26
- middleware: [offset(8), flip(), shift({ padding: 5 })],
27
- }).then(({ x, y }) => {
28
- Object.assign(this.tooltipEl.style, {
29
- left: `${x}px`,
30
- top: `${y}px`,
20
+ if (this.showTimeout || this.tooltipEl)
21
+ return;
22
+ // Delay showing the tooltip (~600ms) to avoid flicker on quick pointer passes.
23
+ this.showTimeout = setTimeout(() => {
24
+ this.showTimeout = undefined;
25
+ // 1. Create Tooltip Element
26
+ this.tooltipEl = document.createElement('div');
27
+ this.tooltipEl.setAttribute('role', 'tooltip');
28
+ this.tooltipEl.id = this.tooltipId;
29
+ this.tooltipEl.className = cn('absolute z-[100] px-2 py-1 text-xs font-medium bg-popover text-popover-foreground border border-border rounded-md shadow-md pointer-events-none');
30
+ this.tooltipEl.innerText = this.content;
31
+ document.body.appendChild(this.tooltipEl);
32
+ // Associate the tooltip with its host for assistive technology.
33
+ this.el.nativeElement.setAttribute('aria-describedby', this.tooltipId);
34
+ // 2. Position it using Floating UI
35
+ this.cleanup = autoUpdate(this.el.nativeElement, this.tooltipEl, () => {
36
+ computePosition(this.el.nativeElement, this.tooltipEl, {
37
+ placement: this.placement,
38
+ middleware: [offset(8), flip(), shift({ padding: 5 })],
39
+ }).then(({ x, y }) => {
40
+ Object.assign(this.tooltipEl.style, {
41
+ left: `${x}px`,
42
+ top: `${y}px`,
43
+ });
31
44
  });
32
45
  });
33
- });
46
+ }, 600);
47
+ }
48
+ onFocus() {
49
+ this.show();
34
50
  }
35
51
  hide() {
52
+ if (this.showTimeout) {
53
+ clearTimeout(this.showTimeout);
54
+ this.showTimeout = undefined;
55
+ }
36
56
  if (this.tooltipEl) {
37
57
  this.tooltipEl.remove();
38
58
  this.tooltipEl = null;
@@ -40,12 +60,13 @@ export class TooltipDirective {
40
60
  if (this.cleanup) {
41
61
  this.cleanup();
42
62
  }
63
+ this.el.nativeElement.removeAttribute('aria-describedby');
43
64
  }
44
65
  ngOnDestroy() {
45
66
  this.hide();
46
67
  }
47
68
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
48
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TooltipDirective, isStandalone: true, selector: "[tolleTooltip]", inputs: { content: ["tolleTooltip", "content"], placement: "placement" }, host: { listeners: { "mouseenter": "show()", "mouseleave": "hide()", "focusout": "hide()" } }, ngImport: i0 });
69
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TooltipDirective, isStandalone: true, selector: "[tolleTooltip]", inputs: { content: ["tolleTooltip", "content"], placement: "placement" }, host: { listeners: { "mouseenter": "show()", "focusin": "onFocus()", "mouseleave": "hide()", "focusout": "hide()" } }, ngImport: i0 });
49
70
  }
50
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TooltipDirective, decorators: [{
51
72
  type: Directive,
@@ -61,6 +82,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
61
82
  }], show: [{
62
83
  type: HostListener,
63
84
  args: ['mouseenter']
85
+ }], onFocus: [{
86
+ type: HostListener,
87
+ args: ['focusin']
64
88
  }], hide: [{
65
89
  type: HostListener,
66
90
  args: ['mouseleave']
@@ -68,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68
92
  type: HostListener,
69
93
  args: ['focusout']
70
94
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFFM0MsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBUyxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQU1oQyxNQUFNLE9BQU8sZ0JBQWdCO0lBT1A7SUFORyxPQUFPLEdBQVcsRUFBRSxDQUFDO0lBQ25DLFNBQVMsR0FBd0MsS0FBSyxDQUFDO0lBRXhELFNBQVMsR0FBMEIsSUFBSSxDQUFDO0lBQ3hDLE9BQU8sQ0FBYztJQUU3QixZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtJQUFHLENBQUM7SUFHdEMsSUFBSTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFFMUIsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQzNCLDBHQUEwRyxDQUMzRyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN4QyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFMUMsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO1lBQ3BFLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBVSxFQUFFO2dCQUN0RCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUN2RCxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtnQkFDbkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBVSxDQUFDLEtBQUssRUFBRTtvQkFDbkMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO29CQUNkLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSTtpQkFDZCxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELElBQUk7UUFDRixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQzt3R0FqRFUsZ0JBQWdCOzRGQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOytFQUV3QixPQUFPO3NCQUE3QixLQUFLO3VCQUFDLGNBQWM7Z0JBQ1osU0FBUztzQkFBakIsS0FBSztnQkFRTixJQUFJO3NCQURILFlBQVk7dUJBQUMsWUFBWTtnQkE0QjFCLElBQUk7c0JBRkgsWUFBWTt1QkFBQyxZQUFZOztzQkFDekIsWUFBWTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LFxuICBPbkRlc3Ryb3ksIENvbXBvbmVudFJlZiwgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbXB1dGVQb3NpdGlvbiwgZmxpcCwgc2hpZnQsIG9mZnNldCwgYXJyb3csIGF1dG9VcGRhdGUgfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0b2xsZVRvb2x0aXBdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KCd0b2xsZVRvb2x0aXAnKSBjb250ZW50OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcGxhY2VtZW50OiAndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0JyA9ICd0b3AnO1xuXG4gIHByaXZhdGUgdG9vbHRpcEVsOiBIVE1MRGl2RWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNsZWFudXA/OiAoKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gIHNob3coKSB7XG4gICAgaWYgKCF0aGlzLmNvbnRlbnQpIHJldHVybjtcblxuICAgIC8vIDEuIENyZWF0ZSBUb29sdGlwIEVsZW1lbnRcbiAgICB0aGlzLnRvb2x0aXBFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMudG9vbHRpcEVsLmNsYXNzTmFtZSA9IGNuKFxuICAgICAgJ2Fic29sdXRlIHotWzEwMF0gcHgtMiBweS0xIHRleHQteHMgZm9udC1tZWRpdW0gdGV4dC13aGl0ZSBiZy1ibGFjayByb3VuZGVkIHNoYWRvdy1tZCBwb2ludGVyLWV2ZW50cy1ub25lJ1xuICAgICk7XG4gICAgdGhpcy50b29sdGlwRWwuaW5uZXJUZXh0ID0gdGhpcy5jb250ZW50O1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy50b29sdGlwRWwpO1xuXG4gICAgLy8gMi4gUG9zaXRpb24gaXQgdXNpbmcgRmxvYXRpbmcgVUlcbiAgICB0aGlzLmNsZWFudXAgPSBhdXRvVXBkYXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgdGhpcy50b29sdGlwRWwsICgpID0+IHtcbiAgICAgIGNvbXB1dGVQb3NpdGlvbih0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMudG9vbHRpcEVsISwge1xuICAgICAgICBwbGFjZW1lbnQ6IHRoaXMucGxhY2VtZW50LFxuICAgICAgICBtaWRkbGV3YXJlOiBbb2Zmc2V0KDgpLCBmbGlwKCksIHNoaWZ0KHsgcGFkZGluZzogNSB9KV0sXG4gICAgICB9KS50aGVuKCh7IHgsIHkgfSkgPT4ge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMudG9vbHRpcEVsIS5zdHlsZSwge1xuICAgICAgICAgIGxlZnQ6IGAke3h9cHhgLFxuICAgICAgICAgIHRvcDogYCR7eX1weGAsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnKVxuICBoaWRlKCkge1xuICAgIGlmICh0aGlzLnRvb2x0aXBFbCkge1xuICAgICAgdGhpcy50b29sdGlwRWwucmVtb3ZlKCk7XG4gICAgICB0aGlzLnRvb2x0aXBFbCA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLmNsZWFudXApIHtcbiAgICAgIHRoaXMuY2xlYW51cCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG59XG4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFFM0MsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBUyxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUVoQyxJQUFJLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQU16QixNQUFNLE9BQU8sZ0JBQWdCO0lBU1A7SUFSRyxPQUFPLEdBQVcsRUFBRSxDQUFDO0lBQ25DLFNBQVMsR0FBd0MsS0FBSyxDQUFDO0lBRXhELFNBQVMsR0FBMEIsSUFBSSxDQUFDO0lBQ3hDLE9BQU8sQ0FBYztJQUNyQixXQUFXLENBQU87SUFDVCxTQUFTLEdBQUcsaUJBQWlCLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztJQUVuRSxZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtJQUFHLENBQUM7SUFHdEMsSUFBSTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFDMUIsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUUvQywrRUFBK0U7UUFDL0UsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO1lBRTdCLDRCQUE0QjtZQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLFNB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cG9ydCB7XG4gIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCxcbiAgT25EZXN0cm95LCBDb21wb25lbnRSZWYsIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb21wdXRlUG9zaXRpb24sIGZsaXAsIHNoaWZ0LCBvZmZzZXQsIGFycm93LCBhdXRvVXBkYXRlIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuXG5sZXQgdG9vbHRpcElkQ291bnRlciA9IDA7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0b2xsZVRvb2x0aXBdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KCd0b2xsZVRvb2x0aXAnKSBjb250ZW50OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcGxhY2VtZW50OiAndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0JyA9ICd0b3AnO1xuXG4gIHByaXZhdGUgdG9vbHRpcEVsOiBIVE1MRGl2RWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNsZWFudXA/OiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIHNob3dUaW1lb3V0PzogYW55O1xuICBwcml2YXRlIHJlYWRvbmx5IHRvb2x0aXBJZCA9IGB0b2xsZS10b29sdGlwLSR7dG9vbHRpcElkQ291bnRlcisrfWA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcbiAgc2hvdygpIHtcbiAgICBpZiAoIXRoaXMuY29udGVudCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnNob3dUaW1lb3V0IHx8IHRoaXMudG9vbHRpcEVsKSByZXR1cm47XG5cbiAgICAvLyBEZWxheSBzaG93aW5nIHRoZSB0b29sdGlwICh+NjAwbXMpIHRvIGF2b2lkIGZsaWNrZXIgb24gcXVpY2sgcG9pbnRlciBwYXNzZXMuXG4gICAgdGhpcy5zaG93VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zaG93VGltZW91dCA9IHVuZGVmaW5lZDtcblxuICAgICAgLy8gMS4gQ3JlYXRlIFRvb2x0aXAgRWxlbWVudFxuICAgICAgdGhpcy50b29sdGlwRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHRoaXMudG9vbHRpcEVsLnNldEF0dHJpYnV0ZSgncm9sZScsICd0b29sdGlwJyk7XG4gICAgICB0aGlzLnRvb2x0aXBFbC5pZCA9IHRoaXMudG9vbHRpcElkO1xuICAgICAgdGhpcy50b29sdGlwRWwuY2xhc3NOYW1lID0gY24oXG4gICAgICAgICdhYnNvbHV0ZSB6LVsxMDBdIHB4LTIgcHktMSB0ZXh0LXhzIGZvbnQtbWVkaXVtIGJnLXBvcG92ZXIgdGV4dC1wb3BvdmVyLWZvcmVncm91bmQgYm9yZGVyIGJvcmRlci1ib3JkZXIgcm91bmRlZC1tZCBzaGFkb3ctbWQgcG9pbnRlci1ldmVudHMtbm9uZSdcbiAgICAgICk7XG4gICAgICB0aGlzLnRvb2x0aXBFbC5pbm5lclRleHQgPSB0aGlzLmNvbnRlbnQ7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMudG9vbHRpcEVsKTtcblxuICAgICAgLy8gQXNzb2NpYXRlIHRoZSB0b29sdGlwIHdpdGggaXRzIGhvc3QgZm9yIGFzc2lzdGl2ZSB0ZWNobm9sb2d5LlxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1kZXNjcmliZWRieScsIHRoaXMudG9vbHRpcElkKTtcblxuICAgICAgLy8gMi4gUG9zaXRpb24gaXQgdXNpbmcgRmxvYXRpbmcgVUlcbiAgICAgIHRoaXMuY2xlYW51cCA9IGF1dG9VcGRhdGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLnRvb2x0aXBFbCwgKCkgPT4ge1xuICAgICAgICBjb21wdXRlUG9zaXRpb24odGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLnRvb2x0aXBFbCEsIHtcbiAgICAgICAgICBwbGFjZW1lbnQ6IHRoaXMucGxhY2VtZW50LFxuICAgICAgICAgIG1pZGRsZXdhcmU6IFtvZmZzZXQoOCksIGZsaXAoKSwgc2hpZnQoeyBwYWRkaW5nOiA1IH0pXSxcbiAgICAgICAgfSkudGhlbigoeyB4LCB5IH0pID0+IHtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMudG9vbHRpcEVsIS5zdHlsZSwge1xuICAgICAgICAgICAgbGVmdDogYCR7eH1weGAsXG4gICAgICAgICAgICB0b3A6IGAke3l9cHhgLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sIDYwMCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1c2luJylcbiAgb25Gb2N1cygpIHtcbiAgICB0aGlzLnNob3coKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcpXG4gIGhpZGUoKSB7XG4gICAgaWYgKHRoaXMuc2hvd1RpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNob3dUaW1lb3V0KTtcbiAgICAgIHRoaXMuc2hvd1RpbWVvdXQgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICh0aGlzLnRvb2x0aXBFbCkge1xuICAgICAgdGhpcy50b29sdGlwRWwucmVtb3ZlKCk7XG4gICAgICB0aGlzLnRvb2x0aXBFbCA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLmNsZWFudXApIHtcbiAgICAgIHRoaXMuY2xlYW51cCgpO1xuICAgIH1cbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5Jyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxufVxuIl19