@tolle_/tolle-ui 18.2.29 → 18.3.0

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 (294) hide show
  1. package/esm2022/lib/accordion-item.component.mjs +5 -11
  2. package/esm2022/lib/accordion.component.mjs +4 -9
  3. package/esm2022/lib/alert-dialog-dynamic.component.mjs +12 -12
  4. package/esm2022/lib/alert-dialog.component.mjs +82 -64
  5. package/esm2022/lib/alert-dialog.service.mjs +38 -6
  6. package/esm2022/lib/alert.component.mjs +5 -11
  7. package/esm2022/lib/aspect-ratio.component.mjs +119 -0
  8. package/esm2022/lib/attachment.component.mjs +334 -0
  9. package/esm2022/lib/avatar-fallback.component.mjs +3 -3
  10. package/esm2022/lib/avatar.component.mjs +4 -9
  11. package/esm2022/lib/badge.component.mjs +4 -9
  12. package/esm2022/lib/breadcrumb-item.component.mjs +3 -3
  13. package/esm2022/lib/breadcrumb-link.component.mjs +3 -3
  14. package/esm2022/lib/breadcrumb-separator.component.mjs +3 -3
  15. package/esm2022/lib/breadcrumb.component.mjs +3 -3
  16. package/esm2022/lib/bubble.component.mjs +301 -0
  17. package/esm2022/lib/button.component.mjs +5 -11
  18. package/esm2022/lib/calendar.component.mjs +5 -11
  19. package/esm2022/lib/card.component.mjs +14 -43
  20. package/esm2022/lib/carousel/carousel.component.mjs +5 -12
  21. package/esm2022/lib/chain-of-thought.component.mjs +380 -0
  22. package/esm2022/lib/chart-pie.component.mjs +386 -0
  23. package/esm2022/lib/chart.component.mjs +1146 -0
  24. package/esm2022/lib/chart.service.mjs +555 -0
  25. package/esm2022/lib/checkbox.component.mjs +5 -11
  26. package/esm2022/lib/checkpoint.component.mjs +134 -0
  27. package/esm2022/lib/collapsible.component.mjs +4 -11
  28. package/esm2022/lib/combobox.component.mjs +372 -0
  29. package/esm2022/lib/command-dialog.component.mjs +164 -0
  30. package/esm2022/lib/command.component.mjs +514 -0
  31. package/esm2022/lib/command.service.mjs +130 -0
  32. package/esm2022/lib/confirmation.component.mjs +219 -0
  33. package/esm2022/lib/context-menu-trigger.directive.mjs +36 -0
  34. package/esm2022/lib/context-menu.component.mjs +460 -0
  35. package/esm2022/lib/context-menu.service.mjs +125 -0
  36. package/esm2022/lib/context.component.mjs +377 -0
  37. package/esm2022/lib/conversation.component.mjs +442 -0
  38. package/esm2022/lib/country-selector.component.mjs +5 -11
  39. package/esm2022/lib/data-table.component.mjs +59 -12
  40. package/esm2022/lib/date-picker.component.mjs +251 -198
  41. package/esm2022/lib/date-range-picker.component.mjs +224 -116
  42. package/esm2022/lib/date-time-picker.component.mjs +506 -0
  43. package/esm2022/lib/direction.component.mjs +79 -0
  44. package/esm2022/lib/dropdown-item.component.mjs +3 -3
  45. package/esm2022/lib/dropdown-label.component.mjs +3 -3
  46. package/esm2022/lib/dropdown-menu.component.mjs +3 -3
  47. package/esm2022/lib/dropdown-separator.component.mjs +3 -3
  48. package/esm2022/lib/dropdown-trigger.directive.mjs +6 -4
  49. package/esm2022/lib/empty-state.component.mjs +4 -9
  50. package/esm2022/lib/field.component.mjs +394 -0
  51. package/esm2022/lib/hover-card.component.mjs +6 -16
  52. package/esm2022/lib/inline-citation.component.mjs +263 -0
  53. package/esm2022/lib/input-group.component.mjs +418 -0
  54. package/esm2022/lib/input.component.mjs +5 -11
  55. package/esm2022/lib/item.component.mjs +243 -0
  56. package/esm2022/lib/kbd.component.mjs +82 -0
  57. package/esm2022/lib/label.component.mjs +4 -9
  58. package/esm2022/lib/marker.component.mjs +135 -0
  59. package/esm2022/lib/masked-input.component.mjs +5 -11
  60. package/esm2022/lib/menubar.component.mjs +683 -0
  61. package/esm2022/lib/message-scroller.component.mjs +353 -0
  62. package/esm2022/lib/message-scroller.service.mjs +157 -0
  63. package/esm2022/lib/message.component.mjs +228 -0
  64. package/esm2022/lib/modal-ref.mjs +36 -7
  65. package/esm2022/lib/modal.component.mjs +42 -28
  66. package/esm2022/lib/modal.mjs +2 -29
  67. package/esm2022/lib/modal.service.mjs +26 -4
  68. package/esm2022/lib/model-selector.component.mjs +310 -0
  69. package/esm2022/lib/multi-select.component.mjs +155 -72
  70. package/esm2022/lib/native-select.component.mjs +201 -0
  71. package/esm2022/lib/navigation-menu.component.mjs +642 -0
  72. package/esm2022/lib/otp-group.component.mjs +3 -3
  73. package/esm2022/lib/otp-slot.component.mjs +4 -9
  74. package/esm2022/lib/otp.component.mjs +5 -11
  75. package/esm2022/lib/pagination.component.mjs +7 -10
  76. package/esm2022/lib/plan.component.mjs +335 -0
  77. package/esm2022/lib/popover-content.component.mjs +4 -9
  78. package/esm2022/lib/popover.component.mjs +15 -13
  79. package/esm2022/lib/progress.component.mjs +4 -9
  80. package/esm2022/lib/prompt-input.component.mjs +526 -0
  81. package/esm2022/lib/queue.component.mjs +280 -0
  82. package/esm2022/lib/radio-group.component.mjs +6 -13
  83. package/esm2022/lib/radio-item.component.mjs +4 -9
  84. package/esm2022/lib/range-calendar.component.mjs +5 -11
  85. package/esm2022/lib/reasoning.component.mjs +335 -0
  86. package/esm2022/lib/resizable-panel.component.mjs +5 -5
  87. package/esm2022/lib/resizable.component.mjs +219 -0
  88. package/esm2022/lib/segment.component.mjs +19 -9
  89. package/esm2022/lib/select-group.component.mjs +4 -8
  90. package/esm2022/lib/select-item.component.mjs +4 -9
  91. package/esm2022/lib/select-separator.component.mjs +4 -8
  92. package/esm2022/lib/select.component.mjs +133 -49
  93. package/esm2022/lib/separator.component.mjs +4 -9
  94. package/esm2022/lib/sheet.component.mjs +38 -56
  95. package/esm2022/lib/shimmer.component.mjs +84 -0
  96. package/esm2022/lib/sidebar.component.mjs +11 -1
  97. package/esm2022/lib/skeleton.component.mjs +4 -9
  98. package/esm2022/lib/sources.component.mjs +452 -0
  99. package/esm2022/lib/spinner.component.mjs +68 -0
  100. package/esm2022/lib/suggestion.component.mjs +207 -0
  101. package/esm2022/lib/switch.component.mjs +5 -11
  102. package/esm2022/lib/table.component.mjs +213 -0
  103. package/esm2022/lib/tabs.component.mjs +4 -11
  104. package/esm2022/lib/tag-input.component.mjs +5 -11
  105. package/esm2022/lib/task.component.mjs +359 -0
  106. package/esm2022/lib/textarea.component.mjs +5 -11
  107. package/esm2022/lib/theme.service.mjs +17 -6
  108. package/esm2022/lib/time-picker.component.mjs +923 -0
  109. package/esm2022/lib/toast.service.mjs +3 -2
  110. package/esm2022/lib/toaster.component.mjs +76 -39
  111. package/esm2022/lib/toggle-group.component.mjs +4 -9
  112. package/esm2022/lib/toggle.component.mjs +5 -11
  113. package/esm2022/lib/tool.component.mjs +462 -0
  114. package/esm2022/lib/typography.component.mjs +83 -0
  115. package/esm2022/lib/utils/color.mjs +140 -19
  116. package/esm2022/public-api.mjs +61 -1
  117. package/fesm2022/tolle-ui.mjs +16642 -1105
  118. package/fesm2022/tolle-ui.mjs.map +1 -1
  119. package/lib/alert-dialog-dynamic.component.d.ts +5 -0
  120. package/lib/alert-dialog.component.d.ts +23 -2
  121. package/lib/aspect-ratio.component.d.ts +20 -0
  122. package/lib/attachment.component.d.ts +101 -0
  123. package/lib/bubble.component.d.ts +112 -0
  124. package/lib/chain-of-thought.component.d.ts +166 -0
  125. package/lib/chart-pie.component.d.ts +108 -0
  126. package/lib/chart.component.d.ts +369 -0
  127. package/lib/chart.service.d.ts +222 -0
  128. package/lib/checkpoint.component.d.ts +51 -0
  129. package/lib/combobox.component.d.ts +90 -0
  130. package/lib/command-dialog.component.d.ts +53 -0
  131. package/lib/command.component.d.ts +189 -0
  132. package/lib/command.service.d.ts +67 -0
  133. package/lib/confirmation.component.d.ts +70 -0
  134. package/lib/context-menu-trigger.directive.d.ts +12 -0
  135. package/lib/context-menu.component.d.ts +41 -0
  136. package/lib/context-menu.service.d.ts +38 -0
  137. package/lib/context.component.d.ts +134 -0
  138. package/lib/conversation.component.d.ts +165 -0
  139. package/lib/data-table.component.d.ts +26 -1
  140. package/lib/date-picker.component.d.ts +72 -11
  141. package/lib/date-range-picker.component.d.ts +63 -6
  142. package/lib/date-time-picker.component.d.ts +119 -0
  143. package/lib/direction.component.d.ts +45 -0
  144. package/lib/field.component.d.ts +201 -0
  145. package/lib/inline-citation.component.d.ts +103 -0
  146. package/lib/input-group.component.d.ts +150 -0
  147. package/lib/item.component.d.ts +154 -0
  148. package/lib/kbd.component.d.ts +50 -0
  149. package/lib/marker.component.d.ts +58 -0
  150. package/lib/menubar.component.d.ts +247 -0
  151. package/lib/message-scroller.component.d.ts +159 -0
  152. package/lib/message-scroller.service.d.ts +73 -0
  153. package/lib/message.component.d.ts +128 -0
  154. package/lib/modal-ref.d.ts +6 -1
  155. package/lib/modal.component.d.ts +7 -4
  156. package/lib/modal.d.ts +9 -3
  157. package/lib/model-selector.component.d.ts +103 -0
  158. package/lib/multi-select.component.d.ts +66 -14
  159. package/lib/native-select.component.d.ts +57 -0
  160. package/lib/navigation-menu.component.d.ts +230 -0
  161. package/lib/plan.component.d.ts +120 -0
  162. package/lib/popover.component.d.ts +1 -0
  163. package/lib/prompt-input.component.d.ts +194 -0
  164. package/lib/queue.component.d.ts +106 -0
  165. package/lib/reasoning.component.d.ts +127 -0
  166. package/lib/resizable.component.d.ts +43 -0
  167. package/lib/segment.component.d.ts +13 -3
  168. package/lib/select.component.d.ts +37 -5
  169. package/lib/sheet.component.d.ts +3 -0
  170. package/lib/shimmer.component.d.ts +38 -0
  171. package/lib/sidebar.component.d.ts +2 -0
  172. package/lib/sources.component.d.ts +156 -0
  173. package/lib/spinner.component.d.ts +29 -0
  174. package/lib/suggestion.component.d.ts +96 -0
  175. package/lib/table.component.d.ts +106 -0
  176. package/lib/task.component.d.ts +151 -0
  177. package/lib/theme.service.d.ts +9 -0
  178. package/lib/time-picker.component.d.ts +243 -0
  179. package/lib/toast.service.d.ts +3 -1
  180. package/lib/toaster.component.d.ts +26 -9
  181. package/lib/tool.component.d.ts +158 -0
  182. package/lib/typography.component.d.ts +32 -0
  183. package/lib/utils/color.d.ts +19 -5
  184. package/package.json +3 -2
  185. package/preset.js +7 -1
  186. package/public-api.d.ts +50 -0
  187. package/registry/docs-content.json +8480 -1542
  188. package/registry/llms-full.txt +2679 -319
  189. package/registry/llms.txt +43 -4
  190. package/registry/manifest.json +9090 -1742
  191. package/registry/r/accordion-item.json +1 -1
  192. package/registry/r/accordion.json +1 -1
  193. package/registry/r/alert-dialog-dynamic.json +1 -1
  194. package/registry/r/alert-dialog.json +1 -1
  195. package/registry/r/alert.json +1 -1
  196. package/registry/r/attachment.json +23 -0
  197. package/registry/r/avatar-fallback.json +1 -1
  198. package/registry/r/avatar.json +1 -1
  199. package/registry/r/badge.json +1 -1
  200. package/registry/r/breadcrumb-item.json +1 -1
  201. package/registry/r/breadcrumb-link.json +1 -1
  202. package/registry/r/breadcrumb-separator.json +1 -1
  203. package/registry/r/breadcrumb.json +1 -1
  204. package/registry/r/bubble.json +23 -0
  205. package/registry/r/button.json +1 -1
  206. package/registry/r/calendar.json +1 -1
  207. package/registry/r/card.json +1 -1
  208. package/registry/r/carousel.json +1 -1
  209. package/registry/r/chain-of-thought.json +23 -0
  210. package/registry/r/chart-pie.json +30 -0
  211. package/registry/r/chart.json +28 -0
  212. package/registry/r/checkbox.json +1 -1
  213. package/registry/r/checkpoint.json +23 -0
  214. package/registry/r/collapsible.json +1 -1
  215. package/registry/r/combobox.json +31 -0
  216. package/registry/r/command-dialog.json +21 -0
  217. package/registry/r/command.json +26 -0
  218. package/registry/r/confirmation.json +23 -0
  219. package/registry/r/context-menu-trigger.json +1 -1
  220. package/registry/r/context-menu.json +1 -1
  221. package/registry/r/context.json +26 -0
  222. package/registry/r/conversation.json +23 -0
  223. package/registry/r/country-selector.json +1 -1
  224. package/registry/r/data-table.json +1 -1
  225. package/registry/r/date-picker.json +4 -4
  226. package/registry/r/date-range-picker.json +3 -3
  227. package/registry/r/date-time-picker.json +28 -0
  228. package/registry/r/direction.json +16 -0
  229. package/registry/r/dropdown-item.json +1 -1
  230. package/registry/r/dropdown-label.json +1 -1
  231. package/registry/r/dropdown-menu.json +1 -1
  232. package/registry/r/dropdown-separator.json +1 -1
  233. package/registry/r/dropdown-trigger.json +1 -1
  234. package/registry/r/empty-state.json +1 -1
  235. package/registry/r/field.json +23 -0
  236. package/registry/r/hover-card.json +1 -1
  237. package/registry/r/inline-citation.json +26 -0
  238. package/registry/r/input-group.json +23 -0
  239. package/registry/r/input.json +1 -1
  240. package/registry/r/item.json +23 -0
  241. package/registry/r/kbd.json +23 -0
  242. package/registry/r/label.json +1 -1
  243. package/registry/r/marker.json +23 -0
  244. package/registry/r/masked-input.json +1 -1
  245. package/registry/r/menubar.json +24 -0
  246. package/registry/r/message-scroller.json +26 -0
  247. package/registry/r/message.json +23 -0
  248. package/registry/r/modal.json +3 -3
  249. package/registry/r/model-selector.json +32 -0
  250. package/registry/r/multi-select.json +2 -2
  251. package/registry/r/native-select.json +23 -0
  252. package/registry/r/navigation-menu.json +24 -0
  253. package/registry/r/otp-group.json +1 -1
  254. package/registry/r/otp-slot.json +1 -1
  255. package/registry/r/otp.json +1 -1
  256. package/registry/r/pagination.json +3 -2
  257. package/registry/r/plan.json +23 -0
  258. package/registry/r/popover-content.json +1 -1
  259. package/registry/r/popover.json +1 -1
  260. package/registry/r/progress.json +1 -1
  261. package/registry/r/prompt-input.json +23 -0
  262. package/registry/r/queue.json +23 -0
  263. package/registry/r/radio-group.json +1 -1
  264. package/registry/r/radio-item.json +1 -1
  265. package/registry/r/range-calendar.json +1 -1
  266. package/registry/r/reasoning.json +23 -0
  267. package/registry/r/resizable-panel.json +1 -1
  268. package/registry/r/segment.json +1 -1
  269. package/registry/r/select-group.json +1 -1
  270. package/registry/r/select-item.json +1 -1
  271. package/registry/r/select-separator.json +1 -1
  272. package/registry/r/select.json +4 -3
  273. package/registry/r/separator.json +1 -1
  274. package/registry/r/sheet.json +1 -1
  275. package/registry/r/shimmer.json +23 -0
  276. package/registry/r/sidebar.json +1 -1
  277. package/registry/r/skeleton.json +1 -1
  278. package/registry/r/sources.json +23 -0
  279. package/registry/r/spinner.json +23 -0
  280. package/registry/r/suggestion.json +23 -0
  281. package/registry/r/switch.json +1 -1
  282. package/registry/r/table.json +21 -0
  283. package/registry/r/tabs.json +1 -1
  284. package/registry/r/tag-input.json +1 -1
  285. package/registry/r/task.json +23 -0
  286. package/registry/r/textarea.json +1 -1
  287. package/registry/r/time-picker.json +24 -0
  288. package/registry/r/toaster.json +2 -2
  289. package/registry/r/toggle-group.json +1 -1
  290. package/registry/r/toggle.json +1 -1
  291. package/registry/r/tool.json +23 -0
  292. package/registry/r/typography.json +23 -0
  293. package/registry/registry.json +915 -22
  294. package/theme.css +121 -8
@@ -0,0 +1,359 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Injectable, Input, Output, inject } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { BehaviorSubject, Subscription } from 'rxjs';
4
+ import { skip } from 'rxjs/operators';
5
+ import { cva } from 'class-variance-authority';
6
+ import { cn } from './utils/cn';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ const taskVariants = cva('w-full rounded-lg border bg-card text-card-foreground transition-colors', {
10
+ variants: {
11
+ status: {
12
+ pending: 'border-border',
13
+ 'in-progress': 'border-info/40',
14
+ completed: 'border-success/40',
15
+ error: 'border-destructive/40',
16
+ },
17
+ },
18
+ defaultVariants: { status: 'pending' },
19
+ });
20
+ const taskIconVariants = cva('shrink-0 text-base leading-none', {
21
+ variants: {
22
+ status: {
23
+ pending: 'text-muted-foreground',
24
+ 'in-progress': 'text-info',
25
+ completed: 'text-success',
26
+ error: 'text-destructive',
27
+ },
28
+ },
29
+ defaultVariants: { status: 'pending' },
30
+ });
31
+ /** Remixicon class used for each task status. */
32
+ const TASK_ICONS = {
33
+ pending: 'ri-circle-line',
34
+ 'in-progress': 'ri-loader-4-line animate-spin',
35
+ completed: 'ri-checkbox-circle-fill',
36
+ error: 'ri-error-warning-fill',
37
+ };
38
+ /**
39
+ * Coordinates a `tolle-task` and its trigger/content children.
40
+ *
41
+ * The children are `OnPush` and none of the parent's state arrives as their own
42
+ * inputs, so it is published here as observables and every subscriber calls
43
+ * `markForCheck()`.
44
+ */
45
+ export class TaskService {
46
+ openSource = new BehaviorSubject(false);
47
+ /** Emits whether the task's content is expanded. */
48
+ open$ = this.openSource.asObservable();
49
+ statusSource = new BehaviorSubject('pending');
50
+ /** Emits the task's current status. */
51
+ status$ = this.statusSource.asObservable();
52
+ titleSource = new BehaviorSubject('');
53
+ /** Emits the task's title. */
54
+ title$ = this.titleSource.asObservable();
55
+ get open() {
56
+ return this.openSource.value;
57
+ }
58
+ get status() {
59
+ return this.statusSource.value;
60
+ }
61
+ get title() {
62
+ return this.titleSource.value;
63
+ }
64
+ setOpen(open) {
65
+ if (this.openSource.value !== open)
66
+ this.openSource.next(open);
67
+ }
68
+ toggle() {
69
+ this.openSource.next(!this.openSource.value);
70
+ }
71
+ setStatus(status) {
72
+ if (this.statusSource.value !== status)
73
+ this.statusSource.next(status);
74
+ }
75
+ setTitle(title) {
76
+ if (this.titleSource.value !== title)
77
+ this.titleSource.next(title);
78
+ }
79
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TaskService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
80
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TaskService });
81
+ }
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TaskService, decorators: [{
83
+ type: Injectable
84
+ }] });
85
+ /**
86
+ * A collapsible record of one unit of agent work — a title, a status, and the
87
+ * individual steps taken, revealed on demand.
88
+ *
89
+ * ```html
90
+ * <tolle-task status="completed" title="Read the codebase" [open]="true">
91
+ * <tolle-task-trigger></tolle-task-trigger>
92
+ * <tolle-task-content>
93
+ * <tolle-task-item>
94
+ * Searched <tolle-task-item-file>utils/cn.ts</tolle-task-item-file>
95
+ * </tolle-task-item>
96
+ * </tolle-task-content>
97
+ * </tolle-task>
98
+ * ```
99
+ * @new
100
+ */
101
+ export class TaskComponent {
102
+ cdr = inject(ChangeDetectorRef);
103
+ /** Lifecycle state of the task; drives the icon and border colour. @default 'pending' */
104
+ status = 'pending';
105
+ /** Title shown by `tolle-task-trigger`. @default '' */
106
+ title = '';
107
+ /** Whether the task's content is expanded. @default false */
108
+ open = false;
109
+ /** Extra Tailwind classes merged onto the task via `cn()` (last-wins). */
110
+ class = '';
111
+ /** Emitted with the new expanded state whenever the task opens or closes. */
112
+ openChange = new EventEmitter();
113
+ service = inject(TaskService);
114
+ sub = new Subscription();
115
+ ngOnInit() {
116
+ this.push();
117
+ // skip(1) drops the BehaviorSubject's replayed value so the component does
118
+ // not emit an `openChange` for its own initial state.
119
+ this.sub.add(this.service.open$.pipe(skip(1)).subscribe((open) => this.openChange.emit(open)));
120
+ }
121
+ ngOnChanges() {
122
+ this.push();
123
+ // A bound `class` input is written through Angular's styling path,
124
+ // which does not mark an OnPush view dirty on its own.
125
+ this.cdr.markForCheck();
126
+ }
127
+ ngOnDestroy() {
128
+ this.sub.unsubscribe();
129
+ }
130
+ push() {
131
+ this.service.setStatus(this.status);
132
+ this.service.setTitle(this.title);
133
+ this.service.setOpen(this.open);
134
+ }
135
+ get computedClass() {
136
+ return cn(taskVariants({ status: this.status }), this.class);
137
+ }
138
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TaskComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
139
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TaskComponent, isStandalone: true, selector: "tolle-task", inputs: { status: "status", title: "title", open: "open", class: "class" }, outputs: { openChange: "openChange" }, providers: [TaskService], usesOnChanges: true, ngImport: i0, template: `<div [class]="computedClass" [attr.data-status]="status"><ng-content></ng-content></div>`, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
140
+ }
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TaskComponent, decorators: [{
142
+ type: Component,
143
+ args: [{ selector: 'tolle-task', standalone: true, imports: [CommonModule], providers: [TaskService], changeDetection: ChangeDetectionStrategy.OnPush, template: `<div [class]="computedClass" [attr.data-status]="status"><ng-content></ng-content></div>`, styles: [":host{display:block}\n"] }]
144
+ }], propDecorators: { status: [{
145
+ type: Input
146
+ }], title: [{
147
+ type: Input
148
+ }], open: [{
149
+ type: Input
150
+ }], class: [{
151
+ type: Input
152
+ }], openChange: [{
153
+ type: Output
154
+ }] } });
155
+ /** Header row of a `tolle-task`: status icon, title, and the expand chevron. */
156
+ export class TaskTriggerComponent {
157
+ /**
158
+ * Angular writes a bound `class` input through its styling path, which does
159
+ * not mark an OnPush component dirty — without this hook the component keeps
160
+ * rendering the class it was born with.
161
+ */
162
+ ngOnChanges() {
163
+ this.cdr.markForCheck();
164
+ }
165
+ /** Extra Tailwind classes merged onto the trigger via `cn()` (last-wins). */
166
+ class = '';
167
+ service = inject(TaskService);
168
+ cdr = inject(ChangeDetectorRef);
169
+ sub = new Subscription();
170
+ isOpen = false;
171
+ status = 'pending';
172
+ title = '';
173
+ ngOnInit() {
174
+ this.sub.add(this.service.open$.subscribe((open) => {
175
+ this.isOpen = open;
176
+ this.cdr.markForCheck();
177
+ }));
178
+ this.sub.add(this.service.status$.subscribe((status) => {
179
+ this.status = status;
180
+ this.cdr.markForCheck();
181
+ }));
182
+ this.sub.add(this.service.title$.subscribe((title) => {
183
+ this.title = title;
184
+ this.cdr.markForCheck();
185
+ }));
186
+ }
187
+ ngOnDestroy() {
188
+ this.sub.unsubscribe();
189
+ }
190
+ get iconClass() {
191
+ return cn(taskIconVariants({ status: this.status }), TASK_ICONS[this.status]);
192
+ }
193
+ get computedClass() {
194
+ return cn('flex w-full items-center gap-2 rounded-lg px-3 py-2 text-sm font-medium text-foreground outline-none transition-colors', 'hover:bg-accent/50 focus-visible:ring-2 focus-visible:ring-ring', this.class);
195
+ }
196
+ toggle() {
197
+ this.service.toggle();
198
+ }
199
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TaskTriggerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
200
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TaskTriggerComponent, isStandalone: true, selector: "tolle-task-trigger", inputs: { class: "class" }, usesOnChanges: true, ngImport: i0, template: `
201
+ <button
202
+ type="button"
203
+ [attr.aria-expanded]="isOpen"
204
+ [attr.data-state]="isOpen ? 'open' : 'closed'"
205
+ [class]="computedClass"
206
+ (click)="toggle()"
207
+ >
208
+ <i [class]="iconClass" [attr.data-status]="status" aria-hidden="true"></i>
209
+ <span class="min-w-0 flex-1 truncate text-left">{{ title }}</span>
210
+ <ng-content></ng-content>
211
+ <i
212
+ [class]="isOpen ? 'ri-arrow-down-s-line shrink-0 text-muted-foreground' : 'ri-arrow-right-s-line shrink-0 text-muted-foreground'"
213
+ aria-hidden="true"
214
+ ></i>
215
+ </button>
216
+ `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
217
+ }
218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TaskTriggerComponent, decorators: [{
219
+ type: Component,
220
+ args: [{ selector: 'tolle-task-trigger', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
221
+ <button
222
+ type="button"
223
+ [attr.aria-expanded]="isOpen"
224
+ [attr.data-state]="isOpen ? 'open' : 'closed'"
225
+ [class]="computedClass"
226
+ (click)="toggle()"
227
+ >
228
+ <i [class]="iconClass" [attr.data-status]="status" aria-hidden="true"></i>
229
+ <span class="min-w-0 flex-1 truncate text-left">{{ title }}</span>
230
+ <ng-content></ng-content>
231
+ <i
232
+ [class]="isOpen ? 'ri-arrow-down-s-line shrink-0 text-muted-foreground' : 'ri-arrow-right-s-line shrink-0 text-muted-foreground'"
233
+ aria-hidden="true"
234
+ ></i>
235
+ </button>
236
+ `, styles: [":host{display:block}\n"] }]
237
+ }], propDecorators: { class: [{
238
+ type: Input
239
+ }] } });
240
+ /** The body of a `tolle-task`; rendered only while the task is expanded. */
241
+ export class TaskContentComponent {
242
+ /**
243
+ * Angular writes a bound `class` input through its styling path, which does
244
+ * not mark an OnPush component dirty — without this hook the component keeps
245
+ * rendering the class it was born with.
246
+ */
247
+ ngOnChanges() {
248
+ this.cdr.markForCheck();
249
+ }
250
+ /** Extra Tailwind classes merged onto the content via `cn()` (last-wins). */
251
+ class = '';
252
+ service = inject(TaskService);
253
+ cdr = inject(ChangeDetectorRef);
254
+ sub = new Subscription();
255
+ isOpen = false;
256
+ ngOnInit() {
257
+ this.sub.add(this.service.open$.subscribe((open) => {
258
+ this.isOpen = open;
259
+ this.cdr.markForCheck();
260
+ }));
261
+ }
262
+ ngOnDestroy() {
263
+ this.sub.unsubscribe();
264
+ }
265
+ get computedClass() {
266
+ return cn('flex flex-col gap-1 border-t border-border px-3 py-2', this.class);
267
+ }
268
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TaskContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
269
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TaskContentComponent, isStandalone: true, selector: "tolle-task-content", inputs: { class: "class" }, usesOnChanges: true, ngImport: i0, template: `
270
+ <div *ngIf="isOpen" [attr.data-state]="'open'" [class]="computedClass">
271
+ <ng-content></ng-content>
272
+ </div>
273
+ `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
274
+ }
275
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TaskContentComponent, decorators: [{
276
+ type: Component,
277
+ args: [{ selector: 'tolle-task-content', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
278
+ <div *ngIf="isOpen" [attr.data-state]="'open'" [class]="computedClass">
279
+ <ng-content></ng-content>
280
+ </div>
281
+ `, styles: [":host{display:block}\n"] }]
282
+ }], propDecorators: { class: [{
283
+ type: Input
284
+ }] } });
285
+ /** One line of work inside a `tolle-task-content`. */
286
+ export class TaskItemComponent {
287
+ cdr = inject(ChangeDetectorRef);
288
+ /**
289
+ * Angular writes a bound `class` input through its styling path, which does
290
+ * not mark an OnPush component dirty — without this hook the component keeps
291
+ * rendering the class it was born with.
292
+ */
293
+ ngOnChanges() {
294
+ this.cdr.markForCheck();
295
+ }
296
+ /** Extra Tailwind classes merged onto the item via `cn()` (last-wins). */
297
+ class = '';
298
+ get computedClass() {
299
+ return cn('flex items-start gap-2 text-sm text-muted-foreground', this.class);
300
+ }
301
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TaskItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
302
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TaskItemComponent, isStandalone: true, selector: "tolle-task-item", inputs: { class: "class" }, usesOnChanges: true, ngImport: i0, template: `
303
+ <div [class]="computedClass">
304
+ <i class="ri-corner-down-right-line mt-0.5 shrink-0 text-muted-foreground" aria-hidden="true"></i>
305
+ <span class="min-w-0 flex-1"><ng-content></ng-content></span>
306
+ </div>
307
+ `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
308
+ }
309
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TaskItemComponent, decorators: [{
310
+ type: Component,
311
+ args: [{ selector: 'tolle-task-item', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
312
+ <div [class]="computedClass">
313
+ <i class="ri-corner-down-right-line mt-0.5 shrink-0 text-muted-foreground" aria-hidden="true"></i>
314
+ <span class="min-w-0 flex-1"><ng-content></ng-content></span>
315
+ </div>
316
+ `, styles: [":host{display:block}\n"] }]
317
+ }], propDecorators: { class: [{
318
+ type: Input
319
+ }] } });
320
+ /** An inline file chip, for naming the file a task step touched. */
321
+ export class TaskItemFileComponent {
322
+ cdr = inject(ChangeDetectorRef);
323
+ /**
324
+ * Angular writes a bound `class` input through its styling path, which does
325
+ * not mark an OnPush component dirty — without this hook the component keeps
326
+ * rendering the class it was born with.
327
+ */
328
+ ngOnChanges() {
329
+ this.cdr.markForCheck();
330
+ }
331
+ /** Remixicon class for the leading file glyph. @default 'ri-file-line' */
332
+ icon = 'ri-file-line';
333
+ /** Extra Tailwind classes merged onto the chip via `cn()` (last-wins). */
334
+ class = '';
335
+ get computedClass() {
336
+ return cn('inline-flex items-center gap-1 rounded-md border border-border bg-muted px-1.5 py-0.5 align-middle text-xs font-medium text-foreground', this.class);
337
+ }
338
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TaskItemFileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
339
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TaskItemFileComponent, isStandalone: true, selector: "tolle-task-item-file", inputs: { icon: "icon", class: "class" }, usesOnChanges: true, ngImport: i0, template: `
340
+ <span [class]="computedClass">
341
+ <i [class]="icon + ' shrink-0 text-muted-foreground'" aria-hidden="true"></i>
342
+ <ng-content></ng-content>
343
+ </span>
344
+ `, isInline: true, styles: [":host{display:inline-flex}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
345
+ }
346
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TaskItemFileComponent, decorators: [{
347
+ type: Component,
348
+ args: [{ selector: 'tolle-task-item-file', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
349
+ <span [class]="computedClass">
350
+ <i [class]="icon + ' shrink-0 text-muted-foreground'" aria-hidden="true"></i>
351
+ <ng-content></ng-content>
352
+ </span>
353
+ `, styles: [":host{display:inline-flex}\n"] }]
354
+ }], propDecorators: { icon: [{
355
+ type: Input
356
+ }], class: [{
357
+ type: Input
358
+ }] } });
359
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3Rhc2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckssT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFxQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQUtoQyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQ3RCLHlFQUF5RSxFQUN6RTtJQUNFLFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRTtZQUNOLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLGFBQWEsRUFBRSxnQkFBZ0I7WUFDL0IsU0FBUyxFQUFFLG1CQUFtQjtZQUM5QixLQUFLLEVBQUUsdUJBQXVCO1NBQy9CO0tBQ0Y7SUFDRCxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO0NBQ3ZDLENBQ0YsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLGlDQUFpQyxFQUFFO0lBQzlELFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRTtZQUNOLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsYUFBYSxFQUFFLFdBQVc7WUFDMUIsU0FBUyxFQUFFLGNBQWM7WUFDekIsS0FBSyxFQUFFLGtCQUFrQjtTQUMxQjtLQUNGO0lBQ0QsZUFBZSxF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LDRIQVBsQjs7Ozs7R0FLVCwrRkFQUyxZQUFZOzs0RkFTWCxpQkFBaUI7a0JBYjdCLFNBQVM7K0JBQ0UsaUJBQWlCLGNBRWYsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLG1CQUNOLHVCQUF1QixDQUFDLE1BQU0sWUFDckM7Ozs7O0dBS1Q7OEJBZVEsS0FBSztzQkFBYixLQUFLOztBQU9SLG9FQUFvRTtBQWNwRSxNQUFNLE9BQU8scUJBQXFCO0lBQ2YsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRWpEOzs7O09BSUc7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsMEVBQTBFO0lBQ2pFLElBQUksR0FBRyxjQUFjLENBQUM7SUFDL0IsMEVBQTBFO0lBQ2pFLEtBQUssR0FBRyxFQUFFLENBQUM7SUFFcEIsSUFBSSxhQUFhO1FBQ2YsT0FBTyxFQUFFLENBQ1Asd0lBQXdJLEVBQ3hJLElBQUksQ0FBQyxLQUFLLENBQ1gsQ0FBQztJQUNKLENBQUM7d0dBdEJVLHFCQUFxQjs0RkFBckIscUJBQXFCLCtJQVB0Qjs7Ozs7R0FLVCxxR0FQUyxZQUFZOzs0RkFTWCxxQkFBcUI7a0JBYmpDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBRXBCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxtQkFDTix1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDOzs7OztHQUtUOzhCQWVRLElBQUk7c0JBQVosS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2tpcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGN2YSwgdHlwZSBWYXJpYW50UHJvcHMgfSBmcm9tICdjbGFzcy12YXJpYW5jZS1hdXRob3JpdHknO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcblxuLyoqIExpZmVjeWNsZSBvZiBhIHNpbmdsZSBhZ2VudCB0YXNrLiAqL1xuZXhwb3J0IHR5cGUgVGFza1N0YXR1cyA9ICdwZW5kaW5nJyB8ICdpbi1wcm9ncmVzcycgfCAnY29tcGxldGVkJyB8ICdlcnJvcic7XG5cbmNvbnN0IHRhc2tWYXJpYW50cyA9IGN2YShcbiAgJ3ctZnVsbCByb3VuZGVkLWxnIGJvcmRlciBiZy1jYXJkIHRleHQtY2FyZC1mb3JlZ3JvdW5kIHRyYW5zaXRpb24tY29sb3JzJyxcbiAge1xuICAgIHZhcmlhbnRzOiB7XG4gICAgICBzdGF0dXM6IHtcbiAgICAgICAgcGVuZGluZzogJ2JvcmRlci1ib3JkZXInLFxuICAgICAgICAnaW4tcHJvZ3Jlc3MnOiAnYm9yZGVyLWluZm8vNDAnLFxuICAgICAgICBjb21wbGV0ZWQ6ICdib3JkZXItc3VjY2Vzcy80MCcsXG4gICAgICAgIGVycm9yOiAnYm9yZGVyLWRlc3RydWN0aXZlLzQwJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZhdWx0VmFyaWFudHM6IHsgc3RhdHVzOiAncGVuZGluZycgfSxcbiAgfVxuKTtcblxuY29uc3QgdGFza0ljb25WYXJpYW50cyA9IGN2YSgnc2hyaW5rLTAgdGV4dC1iYXNlIGxlYWRpbmctbm9uZScsIHtcbiAgdmFyaWFudHM6IHtcbiAgICBzdGF0dXM6IHtcbiAgICAgIHBlbmRpbmc6ICd0ZXh0LW11dGVkLWZvcmVncm91bmQnLFxuICAgICAgJ2luLXByb2dyZXNzJzogJ3RleHQtaW5mbycsXG4gICAgICBjb21wbGV0ZWQ6ICd0ZXh0LXN1Y2Nlc3MnLFxuICAgICAgZXJyb3I6ICd0ZXh0LWRlc3RydWN0aXZlJyxcbiAgICB9LFxuICB9LFxuICBkZWZhdWx0VmFyaWFudHM6IHsgc3RhdHVzOiAncGVuZGluZycgfSxcbn0pO1xuXG5leHBvcnQgdHlwZSBUYXNrUHJvcHMgPSBWYXJpYW50UHJvcHM8dHlwZW9mIHRhc2tWYXJpYW50cz47XG5cbi8qKiBSZW1peGljb24gY2xhc3MgdXNlZCBmb3IgZWFjaCB0YXNrIHN0YXR1cy4gKi9cbmNvbnN0IFRBU0tfSUNPTlM6IFJlY29yZDxUYXNrU3RhdHVzLCBzdHJpbmc+ID0ge1xuICBwZW5kaW5nOiAncmktY2lyY2xlLWxpbmUnLFxuICAnaW4tcHJvZ3Jlc3MnOiAncmktbG9hZGVyLTQtbGluZSBhbmltYXRlLXNwaW4nLFxuICBjb21wbGV0ZWQ6ICdyaS1jaGVja2JveC1jaXJjbGUtZmlsbCcsXG4gIGVycm9yOiAncmktZXJyb3Itd2FybmluZy1maWxsJyxcbn07XG5cbi8qKlxuICogQ29vcmRpbmF0ZXMgYSBgdG9sbGUtdGFza2AgYW5kIGl0cyB0cmlnZ2VyL2NvbnRlbnQgY2hpbGRyZW4uXG4gKlxuICogVGhlIGNoaWxkcmVuIGFyZSBgT25QdXNoYCBhbmQgbm9uZSBvZiB0aGUgcGFyZW50J3Mgc3RhdGUgYXJyaXZlcyBhcyB0aGVpciBvd25cbiAqIGlucHV0cywgc28gaXQgaXMgcHVibGlzaGVkIGhlcmUgYXMgb2JzZXJ2YWJsZXMgYW5kIGV2ZXJ5IHN1YnNjcmliZXIgY2FsbHNcbiAqIGBtYXJrRm9yQ2hlY2soKWAuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUYXNrU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3BlblNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAvKiogRW1pdHMgd2hldGhlciB0aGUgdGFzaydzIGNvbnRlbnQgaXMgZXhwYW5kZWQuICovXG4gIHJlYWRvbmx5IG9wZW4kID0gdGhpcy5vcGVuU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhdHVzU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYXNrU3RhdHVzPigncGVuZGluZycpO1xuICAvKiogRW1pdHMgdGhlIHRhc2sncyBjdXJyZW50IHN0YXR1cy4gKi9cbiAgcmVhZG9ubHkgc3RhdHVzJCA9IHRoaXMuc3RhdHVzU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdGl0bGVTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICAvKiogRW1pdHMgdGhlIHRhc2sncyB0aXRsZS4gKi9cbiAgcmVhZG9ubHkgdGl0bGUkID0gdGhpcy50aXRsZVNvdXJjZS5hc09ic2VydmFibGUoKTtcblxuICBnZXQgb3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vcGVuU291cmNlLnZhbHVlO1xuICB9XG5cbiAgZ2V0IHN0YXR1cygpOiBUYXNrU3RhdHVzIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXNTb3VyY2UudmFsdWU7XG4gIH1cblxuICBnZXQgdGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50aXRsZVNvdXJjZS52YWx1ZTtcbiAgfVxuXG4gIHNldE9wZW4ob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLm9wZW5Tb3VyY2UudmFsdWUgIT09IG9wZW4pIHRoaXMub3BlblNvdXJjZS5uZXh0KG9wZW4pO1xuICB9XG5cbiAgdG9nZ2xlKCk6IHZvaWQge1xuICAgIHRoaXMub3BlblNvdXJjZS5uZXh0KCF0aGlzLm9wZW5Tb3VyY2UudmFsdWUpO1xuICB9XG5cbiAgc2V0U3RhdHVzKHN0YXR1czogVGFza1N0YXR1cyk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXR1c1NvdXJjZS52YWx1ZSAhPT0gc3RhdHVzKSB0aGlzLnN0YXR1c1NvdXJjZS5uZXh0KHN0YXR1cyk7XG4gIH1cblxuICBzZXRUaXRsZSh0aXRsZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGl0bGVTb3VyY2UudmFsdWUgIT09IHRpdGxlKSB0aGlzLnRpdGxlU291cmNlLm5leHQodGl0bGUpO1xuICB9XG59XG5cbi8qKlxuICogQSBjb2xsYXBzaWJsZSByZWNvcmQgb2Ygb25lIHVuaXQgb2YgYWdlbnQgd29yayDigJQgYSB0aXRsZSwgYSBzdGF0dXMsIGFuZCB0aGVcbiAqIGluZGl2aWR1YWwgc3RlcHMgdGFrZW4sIHJldmVhbGVkIG9uIGRlbWFuZC5cbiAqXG4gKiBgYGBodG1sXG4gKiA8dG9sbGUtdGFzayBzdGF0dXM9XCJjb21wbGV0ZWRcIiB0aXRsZT1cIlJlYWQgdGhlIGNvZGViYXNlXCIgW29wZW5dPVwidHJ1ZVwiPlxuICogICA8dG9sbGUtdGFzay10cmlnZ2VyPjwvdG9sbGUtdGFzay10cmlnZ2VyPlxuICogICA8dG9sbGUtdGFzay1jb250ZW50PlxuICogICAgIDx0b2xsZS10YXNrLWl0ZW0+XG4gKiAgICAgICBTZWFyY2hlZCA8dG9sbGUtdGFzay1pdGVtLWZpbGU+dXRpbHMvY24udHM8L3RvbGxlLXRhc2staXRlbS1maWxlPlxuICogICAgIDwvdG9sbGUtdGFzay1pdGVtPlxuICogICA8L3RvbGxlLXRhc2stY29udGVudD5cbiAqIDwvdG9sbGUtdGFzaz5cbiAqIGBgYFxuICogQG5ld1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS10YXNrJyxcbiAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1Rhc2tTZXJ2aWNlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgPGRpdiBbY2xhc3NdPVwiY29tcHV0ZWRDbGFzc1wiIFthdHRyLmRhdGEtc3RhdHVzXT1cInN0YXR1c1wiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj5gLFxufSlcbmV4cG9ydCBjbGFzcyBUYXNrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAvKiogTGlmZWN5Y2xlIHN0YXRlIG9mIHRoZSB0YXNrOyBkcml2ZXMgdGhlIGljb24gYW5kIGJvcmRlciBjb2xvdXIuIEBkZWZhdWx0ICdwZW5kaW5nJyAqL1xuICBASW5wdXQoKSBzdGF0dXM6IFRhc2tTdGF0dXMgPSAncGVuZGluZyc7XG4gIC8qKiBUaXRsZSBzaG93biBieSBgdG9sbGUtdGFzay10cmlnZ2VyYC4gQGRlZmF1bHQgJycgKi9cbiAgQElucHV0KCkgdGl0bGUgPSAnJztcbiAgLyoqIFdoZXRoZXIgdGhlIHRhc2sncyBjb250ZW50IGlzIGV4cGFuZGVkLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBASW5wdXQoKSBvcGVuID0gZmFsc2U7XG4gIC8qKiBFeHRyYSBUYWlsd2luZCBjbGFzc2VzIG1lcmdlZCBvbnRvIHRoZSB0YXNrIHZpYSBgY24oKWAgKGxhc3Qtd2lucykuICovXG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG5cbiAgLyoqIEVtaXR0ZWQgd2l0aCB0aGUgbmV3IGV4cGFuZGVkIHN0YXRlIHdoZW5ldmVyIHRoZSB0YXNrIG9wZW5zIG9yIGNsb3Nlcy4gKi9cbiAgQE91dHB1dCgpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlID0gaW5qZWN0KFRhc2tTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdWIgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wdXNoKCk7XG4gICAgLy8gc2tpcCgxKSBkcm9wcyB0aGUgQmVoYXZpb3JTdWJqZWN0J3MgcmVwbGF5ZWQgdmFsdWUgc28gdGhlIGNvbXBvbmVudCBkb2VzXG4gICAgLy8gbm90IGVtaXQgYW4gYG9wZW5DaGFuZ2VgIGZvciBpdHMgb3duIGluaXRpYWwgc3RhdGUuXG4gICAgdGhpcy5zdWIuYWRkKHRoaXMuc2VydmljZS5vcGVuJC5waXBlKHNraXAoMSkpLnN1YnNjcmliZSgob3BlbikgPT4gdGhpcy5vcGVuQ2hhbmdlLmVtaXQob3BlbikpKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMucHVzaCgpO1xuICBcbiAgICAvLyBBIGJvdW5kIGBjbGFzc2AgaW5wdXQgaXMgd3JpdHRlbiB0aHJvdWdoIEFuZ3VsYXIncyBzdHlsaW5nIHBhdGgsXG4gICAgLy8gd2hpY2ggZG9lcyBub3QgbWFyayBhbiBPblB1c2ggdmlldyBkaXJ0eSBvbiBpdHMgb3duLlxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgcHVzaCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZpY2Uuc2V0U3RhdHVzKHRoaXMuc3RhdHVzKTtcbiAgICB0aGlzLnNlcnZpY2Uuc2V0VGl0bGUodGhpcy50aXRsZSk7XG4gICAgdGhpcy5zZXJ2aWNlLnNldE9wZW4odGhpcy5vcGVuKTtcbiAgfVxuXG4gIGdldCBjb21wdXRlZENsYXNzKCkge1xuICAgIHJldHVybiBjbih0YXNrVmFyaWFudHMoeyBzdGF0dXM6IHRoaXMuc3RhdHVzIH0pLCB0aGlzLmNsYXNzKTtcbiAgfVxufVxuXG4vKiogSGVhZGVyIHJvdyBvZiBhIGB0b2xsZS10YXNrYDogc3RhdHVzIGljb24sIHRpdGxlLCBhbmQgdGhlIGV4cGFuZCBjaGV2cm9uLiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtdGFzay10cmlnZ2VyJyxcbiAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc09wZW5cIlxuICAgICAgW2F0dHIuZGF0YS1zdGF0ZV09XCJpc09wZW4gPyAnb3BlbicgOiAnY2xvc2VkJ1wiXG4gICAgICBbY2xhc3NdPVwiY29tcHV0ZWRDbGFzc1wiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgID5cbiAgICAgIDxpIFtjbGFzc109XCJpY29uQ2xhc3NcIiBbYXR0ci5kYXRhLXN0YXR1c109XCJzdGF0dXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1pbi13LTAgZmxleC0xIHRydW5jYXRlIHRleHQtbGVmdFwiPnt7IHRpdGxlIH19PC9zcGFuPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPGlcbiAgICAgICAgW2NsYXNzXT1cImlzT3BlbiA/ICdyaS1hcnJvdy1kb3duLXMtbGluZSBzaHJpbmstMCB0ZXh0LW11dGVkLWZvcmVncm91bmQnIDogJ3JpLWFycm93LXJpZ2h0LXMtbGluZSBzaHJpbmstMCB0ZXh0LW11dGVkLWZvcmVncm91bmQnXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgID48L2k+XG4gICAgPC9idXR0b24+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tUcmlnZ2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqXG4gICAqIEFuZ3VsYXIgd3JpdGVzIGEgYm91bmQgYGNsYXNzYCBpbnB1dCB0aHJvdWdoIGl0cyBzdHlsaW5nIHBhdGgsIHdoaWNoIGRvZXNcbiAgICogbm90IG1hcmsgYW4gT25QdXNoIGNvbXBvbmVudCBkaXJ0eSDigJQgd2l0aG91dCB0aGlzIGhvb2sgdGhlIGNvbXBvbmVudCBrZWVwc1xuICAgKiByZW5kZXJpbmcgdGhlIGNsYXNzIGl0IHdhcyBib3JuIHdpdGguXG4gICAqL1xuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKiBFeHRyYSBUYWlsd2luZCBjbGFzc2VzIG1lcmdlZCBvbnRvIHRoZSB0cmlnZ2VyIHZpYSBgY24oKWAgKGxhc3Qtd2lucykuICovXG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlID0gaW5qZWN0KFRhc2tTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHN1YiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBpc09wZW4gPSBmYWxzZTtcbiAgc3RhdHVzOiBUYXNrU3RhdHVzID0gJ3BlbmRpbmcnO1xuICB0aXRsZSA9ICcnO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViLmFkZChcbiAgICAgIHRoaXMuc2VydmljZS5vcGVuJC5zdWJzY3JpYmUoKG9wZW4pID0+IHtcbiAgICAgICAgdGhpcy5pc09wZW4gPSBvcGVuO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN1Yi5hZGQoXG4gICAgICB0aGlzLnNlcnZpY2Uuc3RhdHVzJC5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xuICAgICAgICB0aGlzLnN0YXR1cyA9IHN0YXR1cztcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdWIuYWRkKFxuICAgICAgdGhpcy5zZXJ2aWNlLnRpdGxlJC5zdWJzY3JpYmUoKHRpdGxlKSA9PiB7XG4gICAgICAgIHRoaXMudGl0bGUgPSB0aXRsZTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0IGljb25DbGFzcygpIHtcbiAgICByZXR1cm4gY24odGFza0ljb25WYXJpYW50cyh7IHN0YXR1czogdGhpcy5zdGF0dXMgfSksIFRBU0tfSUNPTlNbdGhpcy5zdGF0dXNdKTtcbiAgfVxuXG4gIGdldCBjb21wdXRlZENsYXNzKCkge1xuICAgIHJldHVybiBjbihcbiAgICAgICdmbGV4IHctZnVsbCBpdGVtcy1jZW50ZXIgZ2FwLTIgcm91bmRlZC1sZyBweC0zIHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmQgb3V0bGluZS1ub25lIHRyYW5zaXRpb24tY29sb3JzJyxcbiAgICAgICdob3ZlcjpiZy1hY2NlbnQvNTAgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcnLFxuICAgICAgdGhpcy5jbGFzc1xuICAgICk7XG4gIH1cblxuICB0b2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy5zZXJ2aWNlLnRvZ2dsZSgpO1xuICB9XG59XG5cbi8qKiBUaGUgYm9keSBvZiBhIGB0b2xsZS10YXNrYDsgcmVuZGVyZWQgb25seSB3aGlsZSB0aGUgdGFzayBpcyBleHBhbmRlZC4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXRhc2stY29udGVudCcsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9J10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2ICpuZ0lmPVwiaXNPcGVuXCIgW2F0dHIuZGF0YS1zdGF0ZV09XCInb3BlbidcIiBbY2xhc3NdPVwiY29tcHV0ZWRDbGFzc1wiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBUYXNrQ29udGVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBBbmd1bGFyIHdyaXRlcyBhIGJvdW5kIGBjbGFzc2AgaW5wdXQgdGhyb3VnaCBpdHMgc3R5bGluZyBwYXRoLCB3aGljaCBkb2VzXG4gICAqIG5vdCBtYXJrIGFuIE9uUHVzaCBjb21wb25lbnQgZGlydHkg4oCUIHdpdGhvdXQgdGhpcyBob29rIHRoZSBjb21wb25lbnQga2VlcHNcbiAgICogcmVuZGVyaW5nIHRoZSBjbGFzcyBpdCB3YXMgYm9ybiB3aXRoLlxuICAgKi9cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogRXh0cmEgVGFpbHdpbmQgY2xhc3NlcyBtZXJnZWQgb250byB0aGUgY29udGVudCB2aWEgYGNuKClgIChsYXN0LXdpbnMpLiAqL1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZSA9IGluamVjdChUYXNrU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdWIgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgaXNPcGVuID0gZmFsc2U7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWIuYWRkKFxuICAgICAgdGhpcy5zZXJ2aWNlLm9wZW4kLnN1YnNjcmliZSgob3BlbikgPT4ge1xuICAgICAgICB0aGlzLmlzT3BlbiA9IG9wZW47XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGdldCBjb21wdXRlZENsYXNzKCkge1xuICAgIHJldHVybiBjbignZmxleCBmbGV4LWNvbCBnYXAtMSBib3JkZXItdCBib3JkZXItYm9yZGVyIHB4LTMgcHktMicsIHRoaXMuY2xhc3MpO1xuICB9XG59XG5cbi8qKiBPbmUgbGluZSBvZiB3b3JrIGluc2lkZSBhIGB0b2xsZS10YXNrLWNvbnRlbnRgLiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtdGFzay1pdGVtJyxcbiAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgW2NsYXNzXT1cImNvbXB1dGVkQ2xhc3NcIj5cbiAgICAgIDxpIGNsYXNzPVwicmktY29ybmVyLWRvd24tcmlnaHQtbGluZSBtdC0wLjUgc2hyaW5rLTAgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtaW4tdy0wIGZsZXgtMVwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L3NwYW4+XG4gICAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tJdGVtQ29tcG9uZW50ICBpbXBsZW1lbnRzIE9uQ2hhbmdlc3tcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIC8qKlxuICAgKiBBbmd1bGFyIHdyaXRlcyBhIGJvdW5kIGBjbGFzc2AgaW5wdXQgdGhyb3VnaCBpdHMgc3R5bGluZyBwYXRoLCB3aGljaCBkb2VzXG4gICAqIG5vdCBtYXJrIGFuIE9uUHVzaCBjb21wb25lbnQgZGlydHkg4oCUIHdpdGhvdXQgdGhpcyBob29rIHRoZSBjb21wb25lbnQga2VlcHNcbiAgICogcmVuZGVyaW5nIHRoZSBjbGFzcyBpdCB3YXMgYm9ybiB3aXRoLlxuICAgKi9cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogRXh0cmEgVGFpbHdpbmQgY2xhc3NlcyBtZXJnZWQgb250byB0aGUgaXRlbSB2aWEgYGNuKClgIChsYXN0LXdpbnMpLiAqL1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuXG4gIGdldCBjb21wdXRlZENsYXNzKCkge1xuICAgIHJldHVybiBjbignZmxleCBpdGVtcy1zdGFydCBnYXAtMiB0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsIHRoaXMuY2xhc3MpO1xuICB9XG59XG5cbi8qKiBBbiBpbmxpbmUgZmlsZSBjaGlwLCBmb3IgbmFtaW5nIHRoZSBmaWxlIGEgdGFzayBzdGVwIHRvdWNoZWQuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS10YXNrLWl0ZW0tZmlsZScsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyB9J10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6IGBcbiAgICA8c3BhbiBbY2xhc3NdPVwiY29tcHV0ZWRDbGFzc1wiPlxuICAgICAgPGkgW2NsYXNzXT1cImljb24gKyAnIHNocmluay0wIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCdcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9zcGFuPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBUYXNrSXRlbUZpbGVDb21wb25lbnQgIGltcGxlbWVudHMgT25DaGFuZ2Vze1xuICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgLyoqXG4gICAqIEFuZ3VsYXIgd3JpdGVzIGEgYm91bmQgYGNsYXNzYCBpbnB1dCB0aHJvdWdoIGl0cyBzdHlsaW5nIHBhdGgsIHdoaWNoIGRvZXNcbiAgICogbm90IG1hcmsgYW4gT25QdXNoIGNvbXBvbmVudCBkaXJ0eSDigJQgd2l0aG91dCB0aGlzIGhvb2sgdGhlIGNvbXBvbmVudCBrZWVwc1xuICAgKiByZW5kZXJpbmcgdGhlIGNsYXNzIGl0IHdhcyBib3JuIHdpdGguXG4gICAqL1xuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKiBSZW1peGljb24gY2xhc3MgZm9yIHRoZSBsZWFkaW5nIGZpbGUgZ2x5cGguIEBkZWZhdWx0ICdyaS1maWxlLWxpbmUnICovXG4gIEBJbnB1dCgpIGljb24gPSAncmktZmlsZS1saW5lJztcbiAgLyoqIEV4dHJhIFRhaWx3aW5kIGNsYXNzZXMgbWVyZ2VkIG9udG8gdGhlIGNoaXAgdmlhIGBjbigpYCAobGFzdC13aW5zKS4gKi9cbiAgQElucHV0KCkgY2xhc3MgPSAnJztcblxuICBnZXQgY29tcHV0ZWRDbGFzcygpIHtcbiAgICByZXR1cm4gY24oXG4gICAgICAnaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGdhcC0xIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctbXV0ZWQgcHgtMS41IHB5LTAuNSBhbGlnbi1taWRkbGUgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmQnLFxuICAgICAgdGhpcy5jbGFzc1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -173,22 +173,17 @@ export class TextareaComponent {
173
173
  </p>
174
174
  </div>
175
175
  </div>
176
- `, 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.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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"] }] });
176
+ `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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"] }] });
177
177
  }
178
178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextareaComponent, decorators: [{
179
179
  type: Component,
180
- args: [{
181
- selector: 'tolle-textarea',
182
- standalone: true,
183
- imports: [CommonModule, FormsModule],
184
- providers: [
180
+ args: [{ selector: 'tolle-textarea', standalone: true, imports: [CommonModule, FormsModule], providers: [
185
181
  {
186
182
  provide: NG_VALUE_ACCESSOR,
187
183
  useExisting: forwardRef(() => TextareaComponent),
188
184
  multi: true
189
185
  }
190
- ],
191
- template: `
186
+ ], template: `
192
187
  <div class="flex flex-col gap-1.5 w-full">
193
188
  <label
194
189
  *ngIf="label"
@@ -244,8 +239,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
244
239
  </p>
245
240
  </div>
246
241
  </div>
247
- `
248
- }]
242
+ `, styles: [":host{display:block}\n"] }]
249
243
  }], propDecorators: { textareaElement: [{
250
244
  type: ViewChild,
251
245
  args: ['textareaElement']
@@ -280,4 +274,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
280
274
  }], readonly: [{
281
275
  type: Input
282
276
  }] } });
283
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi90ZXh0YXJlYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBNkIsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7OztBQXVFaEMsTUFBTSxPQUFPLGlCQUFpQjtJQUNFLGVBQWUsQ0FBbUM7SUFFdkUsRUFBRSxHQUFHLFlBQVksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDOUQsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDakIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNWLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDbEIsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNULFNBQVMsQ0FBVTtJQUNuQixrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFDM0IsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2QsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUV4QixpQkFBaUI7SUFDUixlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLHlCQUF5QixHQUFHLEtBQUssQ0FBQztJQUUzQyxhQUFhO0lBQ0osUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBRTFC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QkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIGZvcndhcmRSZWYsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS10ZXh0YXJlYScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXh0YXJlYUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMS41IHctZnVsbFwiPlxuICAgICAgPGxhYmVsXG4gICAgICAgICpuZ0lmPVwibGFiZWxcIlxuICAgICAgICBbZm9yXT1cImlkXCJcbiAgICAgICAgW2NsYXNzXT1cImNvbXB1dGVkTGFiZWxDbGFzc1wiXG4gICAgICA+XG4gICAgICAgIHt7IGxhYmVsIH19XG4gICAgICA8L2xhYmVsPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgI3RleHRhcmVhRWxlbWVudFxuICAgICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgW3Jvd3NdPVwicm93c1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAgICAgKGlucHV0KT1cImhhbmRsZUlucHV0KCRldmVudClcIlxuICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAgICAgICBbY2xhc3NdPVwidGV4dGFyZWFDbGFzc2VzXCJcbiAgICAgICAgICBbc3R5bGUucmVzaXplXT1cIihhdXRvR3JvdyB8fCByZWFkb25seSB8fCBkaXNhYmxlZCkgPyAnbm9uZScgOiAndmVydGljYWwnXCJcbiAgICAgICAgICBbc3R5bGUub3ZlcmZsb3ddPVwiYXV0b0dyb3cgPyAnaGlkZGVuJyA6ICdhdXRvJ1wiXG4gICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImVycm9yIHx8IG51bGxcIlxuICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZXJyb3IgJiYgZXJyb3JNZXNzYWdlID8gaWQgKyAnLWVycm9yJyA6IChoaW50ID8gaWQgKyAnLWhpbnQnIDogbnVsbClcIlxuICAgICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhMZW5ndGhcIlxuICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiKHNob3dDaGFyYWN0ZXJDb3VudCB8fCBoaW50IHx8IGVycm9yTWVzc2FnZSkgJiYgIWRpc2FibGVkXCIgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgcHgtMVwiPlxuICAgICAgICA8cFxuICAgICAgICAgICpuZ0lmPVwiaGludCAmJiAhZXJyb3JcIlxuICAgICAgICAgIFtpZF09XCJpZCArICctaGludCdcIlxuICAgICAgICAgIGNsYXNzPVwidGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmQgdHJhbnNpdGlvbi1vcGFjaXR5IGR1cmF0aW9uLTIwMFwiXG4gICAgICAgICAgW2NsYXNzLm9wYWNpdHktMF09XCJpc0ZvY3VzZWQgJiYgaGlkZUhpbnRPbkZvY3VzXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGhpbnQgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8cFxuICAgICAgICAgICpuZ0lmPVwiZXJyb3IgJiYgZXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICBbaWRdPVwiaWQgKyAnLWVycm9yJ1wiXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtZGVzdHJ1Y3RpdmVcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZXJyb3JNZXNzYWdlIH19XG4gICAgICAgIDwvcD5cbiAgICAgICAgPHBcbiAgICAgICAgICAqbmdJZj1cInNob3dDaGFyYWN0ZXJDb3VudFwiXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LVsxMHB4XSB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXIgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIG1sLWF1dG8gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1vcGFjaXR5IGR1cmF0aW9uLTIwMFwiXG4gICAgICAgICAgW2NsYXNzLm9wYWNpdHktMF09XCJpc0ZvY3VzZWQgJiYgaGlkZUNoYXJhY3RlckNvdW50T25Gb2N1c1wiXG4gICAgICAgID5cbiAgICAgICAgICB7eyB2YWx1ZS5sZW5ndGggfHwgMCB9fXt7IG1heExlbmd0aCA/ICcgLyAnICsgbWF4TGVuZ3RoIDogJycgfX1cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgVGV4dGFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ3RleHRhcmVhRWxlbWVudCcpIHRleHRhcmVhRWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD47XG5cbiAgQElucHV0KCkgaWQgPSBgdGV4dGFyZWEtJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgOSl9YDtcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgaGludCA9ICcnO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2UgPSAnJztcbiAgQElucHV0KCkgcm93cyA9IDM7XG4gIEBJbnB1dCgpIG1heExlbmd0aD86IG51bWJlcjtcbiAgQElucHV0KCkgc2hvd0NoYXJhY3RlckNvdW50ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGF1dG9Hcm93ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVycm9yID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICcnO1xuXG4gIC8vIEZvY3VzIGJlaGF2aW9yXG4gIEBJbnB1dCgpIGhpZGVIaW50T25Gb2N1cyA9IHRydWU7XG4gIEBJbnB1dCgpIGhpZGVDaGFyYWN0ZXJDb3VudE9uRm9jdXMgPSBmYWxzZTtcblxuICAvLyBOZXcgU3RhdGVzXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XG5cbiAgdmFsdWU6IHN0cmluZyA9ICcnO1xuICBpc0ZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5hdXRvR3JvdykgdGhpcy5yZXNpemUoKTtcbiAgfVxuXG4gIGdldCBjb21wdXRlZExhYmVsQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKFxuICAgICAgXCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZm9yZWdyb3VuZCBsZWFkaW5nLW5vbmUgdHJhbnNpdGlvbi1vcGFjaXR5IGR1cmF0aW9uLTIwMFwiLFxuICAgICAgdGhpcy5kaXNhYmxlZCAmJiBcIm9wYWNpdHktNTBcIlxuICAgICk7XG4gIH1cblxuICBnZXQgdGV4dGFyZWFDbGFzc2VzKCkge1xuICAgIHJldHVybiBjbihcbiAgICAgIC8vIEJhc2Ugc3R5bGVzXG4gICAgICAnZmxleCB3LWZ1bGwgcm91bmRlZC1tZCBib3JkZXIgYmctYmFja2dyb3VuZCBweC0zIHB5LTIgdGV4dC1zbScsXG4gICAgICAncmluZy1vZmZzZXQtYmFja2dyb3VuZCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0yMDAnLFxuICAgICAgJ3BsYWNlaG9sZGVyOnRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsXG5cbiAgICAgIC8vIEJvcmRlciBhbmQgc2hhZG93XG4gICAgICAnYm9yZGVyLWlucHV0IHNoYWRvdy1zbScsXG5cbiAgICAgIC8vIE1pbmltdW0gaGVpZ2h0XG4gICAgICAnbWluLWgtWzgwcHhdJyxcblxuICAgICAgLy8gRm9jdXMgc3RhdGUgLSBTSU1QTEUgTElLRSBaQVJEVUlcbiAgICAgICEodGhpcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkKSAmJiBbXG4gICAgICAgICdmb2N1czpvdXRsaW5lLW5vbmUnLFxuICAgICAgICAnZm9jdXM6cmluZy00JyxcbiAgICAgICAgJ2ZvY3VzOnJpbmctcmluZy8zMCcsXG4gICAgICAgICdmb2N1czpyaW5nLW9mZnNldC0wJyxcbiAgICAgICAgJ2ZvY3VzOnNoYWRvdy1ub25lJyxcbiAgICAgICAgLy8gQm9yZGVyIGRhcmtlbnMgb24gZm9jdXMgYXV0b21hdGljYWxseVxuICAgICAgICAnZm9jdXM6Ym9yZGVyLXByaW1hcnkvODAnXG4gICAgICBdLFxuXG4gICAgICAvLyBFcnJvciBzdGF0ZVxuICAgICAgdGhpcy5lcnJvciAmJiBbXG4gICAgICAgICdib3JkZXItZGVzdHJ1Y3RpdmUnLFxuICAgICAgICAhKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkgJiYgW1xuICAgICAgICAgICdmb2N1czpib3JkZXItZGVzdHJ1Y3RpdmUvODAnLFxuICAgICAgICAgICdmb2N1czpyaW5nLWRlc3RydWN0aXZlLzMwJ1xuICAgICAgICBdXG4gICAgICBdLFxuXG4gICAgICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAgICAgdGhpcy5kaXNhYmxlZCAmJiBbXG4gICAgICAgICdjdXJzb3Itbm90LWFsbG93ZWQgb3BhY2l0eS01MCcsXG4gICAgICAgICdib3JkZXItb3BhY2l0eS01MCdcbiAgICAgIF0sXG5cbiAgICAgIC8vIFJlYWRvbmx5IHN0YXRlXG4gICAgICB0aGlzLnJlYWRvbmx5ICYmIFtcbiAgICAgICAgJ2N1cnNvci1kZWZhdWx0JyxcbiAgICAgICAgJ2JvcmRlci1kYXNoZWQnLFxuICAgICAgICAhdGhpcy5kaXNhYmxlZCAmJiAnZm9jdXM6cmluZy0wIGZvY3VzOmJvcmRlci1vcGFjaXR5LTEwMCdcbiAgICAgIF0sXG5cbiAgICAgIC8vIFNjcm9sbGJhciBzdHlsaW5nXG4gICAgICAnc2Nyb2xsYmFyLXRoaW4gc2Nyb2xsYmFyLXRodW1iLW11dGVkIHNjcm9sbGJhci10cmFjay10cmFuc3BhcmVudCcsXG5cbiAgICAgIHRoaXMuY2xhc3NOYW1lXG4gICAgKTtcbiAgfVxuXG4gIGhhbmRsZUlucHV0KGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgY29uc3QgdmFsID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMudmFsdWUgPSB2YWw7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWwpO1xuICAgIGlmICh0aGlzLmF1dG9Hcm93KSB0aGlzLnJlc2l6ZSgpO1xuICB9XG5cbiAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNpemUoKSB7XG4gICAgY29uc3QgdGV4dGFyZWEgPSB0aGlzLnRleHRhcmVhRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIHRleHRhcmVhLnN0eWxlLmhlaWdodCA9ICdhdXRvJztcbiAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSBgJHt0ZXh0YXJlYS5zY3JvbGxIZWlnaHR9cHhgO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlID8/ICcnO1xuICAgIGlmICh0aGlzLmF1dG9Hcm93KSBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVzaXplKCkpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxufVxuIl19
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi90ZXh0YXJlYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBNkIsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7OztBQXdFaEMsTUFBTSxPQUFPLGlCQUFpQjtJQUNFLGVBQWUsQ0FBbUM7SUFFdkUsRUFBRSxHQUFHLFlBQVksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDOUQsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDakIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNWLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDbEIsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNULFNBQVMsQ0FBVTtJQUNuQixrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFDM0IsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2QsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUV4QixpQkFBaUI7SUFDUixlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLHlCQUF5QixHQUFHLEtBQUssQ0FBQztJQUUzQyxhQUFhO0lBQ0osUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBRTFC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SztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBmb3J3YXJkUmVmLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtdGV4dGFyZWEnLFxuICBzdHlsZXM6IFsnOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgfSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGV4dGFyZWFDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTEuNSB3LWZ1bGxcIj5cbiAgICAgIDxsYWJlbFxuICAgICAgICAqbmdJZj1cImxhYmVsXCJcbiAgICAgICAgW2Zvcl09XCJpZFwiXG4gICAgICAgIFtjbGFzc109XCJjb21wdXRlZExhYmVsQ2xhc3NcIlxuICAgICAgPlxuICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgPC9sYWJlbD5cblxuICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICN0ZXh0YXJlYUVsZW1lbnRcbiAgICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgIFtyb3dzXT1cInJvd3NcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgICAgIChpbnB1dCk9XCJoYW5kbGVJbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgICAgICAgW2NsYXNzXT1cInRleHRhcmVhQ2xhc3Nlc1wiXG4gICAgICAgICAgW3N0eWxlLnJlc2l6ZV09XCIoYXV0b0dyb3cgfHwgcmVhZG9ubHkgfHwgZGlzYWJsZWQpID8gJ25vbmUnIDogJ3ZlcnRpY2FsJ1wiXG4gICAgICAgICAgW3N0eWxlLm92ZXJmbG93XT1cImF1dG9Hcm93ID8gJ2hpZGRlbicgOiAnYXV0bydcIlxuICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJlcnJvciB8fCBudWxsXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImVycm9yICYmIGVycm9yTWVzc2FnZSA/IGlkICsgJy1lcnJvcicgOiAoaGludCA/IGlkICsgJy1oaW50JyA6IG51bGwpXCJcbiAgICAgICAgICBbYXR0ci5tYXhsZW5ndGhdPVwibWF4TGVuZ3RoXCJcbiAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cIihzaG93Q2hhcmFjdGVyQ291bnQgfHwgaGludCB8fCBlcnJvck1lc3NhZ2UpICYmICFkaXNhYmxlZFwiIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIHB4LTFcIj5cbiAgICAgICAgPHBcbiAgICAgICAgICAqbmdJZj1cImhpbnQgJiYgIWVycm9yXCJcbiAgICAgICAgICBbaWRdPVwiaWQgKyAnLWhpbnQnXCJcbiAgICAgICAgICBjbGFzcz1cInRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHRyYW5zaXRpb24tb3BhY2l0eSBkdXJhdGlvbi0yMDBcIlxuICAgICAgICAgIFtjbGFzcy5vcGFjaXR5LTBdPVwiaXNGb2N1c2VkICYmIGhpZGVIaW50T25Gb2N1c1wiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBoaW50IH19XG4gICAgICAgIDwvcD5cbiAgICAgICAgPHBcbiAgICAgICAgICAqbmdJZj1cImVycm9yICYmIGVycm9yTWVzc2FnZVwiXG4gICAgICAgICAgW2lkXT1cImlkICsgJy1lcnJvcidcIlxuICAgICAgICAgIGNsYXNzPVwidGV4dC14cyB0ZXh0LWRlc3RydWN0aXZlXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxwXG4gICAgICAgICAgKm5nSWY9XCJzaG93Q2hhcmFjdGVyQ291bnRcIlxuICAgICAgICAgIGNsYXNzPVwidGV4dC1bMTBweF0gdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBtbC1hdXRvIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tb3BhY2l0eSBkdXJhdGlvbi0yMDBcIlxuICAgICAgICAgIFtjbGFzcy5vcGFjaXR5LTBdPVwiaXNGb2N1c2VkICYmIGhpZGVDaGFyYWN0ZXJDb3VudE9uRm9jdXNcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgdmFsdWUubGVuZ3RoIHx8IDAgfX17eyBtYXhMZW5ndGggPyAnIC8gJyArIG1heExlbmd0aCA6ICcnIH19XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIFRleHRhcmVhQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCd0ZXh0YXJlYUVsZW1lbnQnKSB0ZXh0YXJlYUVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpIGlkID0gYHRleHRhcmVhLSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDkpfWA7XG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIGhpbnQgPSAnJztcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlID0gJyc7XG4gIEBJbnB1dCgpIHJvd3MgPSAzO1xuICBASW5wdXQoKSBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHNob3dDaGFyYWN0ZXJDb3VudCA9IGZhbHNlO1xuICBASW5wdXQoKSBhdXRvR3JvdyA9IGZhbHNlO1xuICBASW5wdXQoKSBlcnJvciA9IGZhbHNlO1xuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnJztcblxuICAvLyBGb2N1cyBiZWhhdmlvclxuICBASW5wdXQoKSBoaWRlSGludE9uRm9jdXMgPSB0cnVlO1xuICBASW5wdXQoKSBoaWRlQ2hhcmFjdGVyQ291bnRPbkZvY3VzID0gZmFsc2U7XG5cbiAgLy8gTmV3IFN0YXRlc1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuXG4gIHZhbHVlOiBzdHJpbmcgPSAnJztcbiAgaXNGb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcbiAgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuYXV0b0dyb3cpIHRoaXMucmVzaXplKCk7XG4gIH1cblxuICBnZXQgY29tcHV0ZWRMYWJlbENsYXNzKCkge1xuICAgIHJldHVybiBjbihcbiAgICAgIFwidGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmQgbGVhZGluZy1ub25lIHRyYW5zaXRpb24tb3BhY2l0eSBkdXJhdGlvbi0yMDBcIixcbiAgICAgIHRoaXMuZGlzYWJsZWQgJiYgXCJvcGFjaXR5LTUwXCJcbiAgICApO1xuICB9XG5cbiAgZ2V0IHRleHRhcmVhQ2xhc3NlcygpIHtcbiAgICByZXR1cm4gY24oXG4gICAgICAvLyBCYXNlIHN0eWxlc1xuICAgICAgJ2ZsZXggdy1mdWxsIHJvdW5kZWQtbWQgYm9yZGVyIGJnLWJhY2tncm91bmQgcHgtMyBweS0yIHRleHQtc20nLFxuICAgICAgJ3Jpbmctb2Zmc2V0LWJhY2tncm91bmQgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMjAwJyxcbiAgICAgICdwbGFjZWhvbGRlcjp0ZXh0LW11dGVkLWZvcmVncm91bmQnLFxuXG4gICAgICAvLyBCb3JkZXIgYW5kIHNoYWRvd1xuICAgICAgJ2JvcmRlci1pbnB1dCBzaGFkb3ctc20nLFxuXG4gICAgICAvLyBNaW5pbXVtIGhlaWdodFxuICAgICAgJ21pbi1oLVs4MHB4XScsXG5cbiAgICAgIC8vIEZvY3VzIHN0YXRlIC0gU0lNUExFIExJS0UgWkFSRFVJXG4gICAgICAhKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkgJiYgW1xuICAgICAgICAnZm9jdXM6b3V0bGluZS1ub25lJyxcbiAgICAgICAgJ2ZvY3VzOnJpbmctNCcsXG4gICAgICAgICdmb2N1czpyaW5nLXJpbmcvMzAnLFxuICAgICAgICAnZm9jdXM6cmluZy1vZmZzZXQtMCcsXG4gICAgICAgICdmb2N1czpzaGFkb3ctbm9uZScsXG4gICAgICAgIC8vIEJvcmRlciBkYXJrZW5zIG9uIGZvY3VzIGF1dG9tYXRpY2FsbHlcbiAgICAgICAgJ2ZvY3VzOmJvcmRlci1wcmltYXJ5LzgwJ1xuICAgICAgXSxcblxuICAgICAgLy8gRXJyb3Igc3RhdGVcbiAgICAgIHRoaXMuZXJyb3IgJiYgW1xuICAgICAgICAnYm9yZGVyLWRlc3RydWN0aXZlJyxcbiAgICAgICAgISh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpICYmIFtcbiAgICAgICAgICAnZm9jdXM6Ym9yZGVyLWRlc3RydWN0aXZlLzgwJyxcbiAgICAgICAgICAnZm9jdXM6cmluZy1kZXN0cnVjdGl2ZS8zMCdcbiAgICAgICAgXVxuICAgICAgXSxcblxuICAgICAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgICAgIHRoaXMuZGlzYWJsZWQgJiYgW1xuICAgICAgICAnY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTAnLFxuICAgICAgICAnYm9yZGVyLW9wYWNpdHktNTAnXG4gICAgICBdLFxuXG4gICAgICAvLyBSZWFkb25seSBzdGF0ZVxuICAgICAgdGhpcy5yZWFkb25seSAmJiBbXG4gICAgICAgICdjdXJzb3ItZGVmYXVsdCcsXG4gICAgICAgICdib3JkZXItZGFzaGVkJyxcbiAgICAgICAgIXRoaXMuZGlzYWJsZWQgJiYgJ2ZvY3VzOnJpbmctMCBmb2N1czpib3JkZXItb3BhY2l0eS0xMDAnXG4gICAgICBdLFxuXG4gICAgICAvLyBTY3JvbGxiYXIgc3R5bGluZ1xuICAgICAgJ3Njcm9sbGJhci10aGluIHNjcm9sbGJhci10aHVtYi1tdXRlZCBzY3JvbGxiYXItdHJhY2stdHJhbnNwYXJlbnQnLFxuXG4gICAgICB0aGlzLmNsYXNzTmFtZVxuICAgICk7XG4gIH1cblxuICBoYW5kbGVJbnB1dChldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIGNvbnN0IHZhbCA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgIHRoaXMub25DaGFuZ2UodmFsKTtcbiAgICBpZiAodGhpcy5hdXRvR3JvdykgdGhpcy5yZXNpemUoKTtcbiAgfVxuXG4gIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xuICB9XG5cbiAgb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzaXplKCkge1xuICAgIGNvbnN0IHRleHRhcmVhID0gdGhpcy50ZXh0YXJlYUVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSAnYXV0byc7XG4gICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gYCR7dGV4dGFyZWEuc2Nyb2xsSGVpZ2h0fXB4YDtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSA/PyAnJztcbiAgICBpZiAodGhpcy5hdXRvR3Jvdykgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlc2l6ZSgpKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cbn1cbiJdfQ==