@tolle_/tolle-ui 18.2.29 → 18.2.30

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 (279) 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 +5 -10
  4. package/esm2022/lib/alert-dialog.component.mjs +44 -59
  5. package/esm2022/lib/alert.component.mjs +5 -11
  6. package/esm2022/lib/aspect-ratio.component.mjs +119 -0
  7. package/esm2022/lib/attachment.component.mjs +334 -0
  8. package/esm2022/lib/avatar-fallback.component.mjs +3 -3
  9. package/esm2022/lib/avatar.component.mjs +4 -9
  10. package/esm2022/lib/badge.component.mjs +4 -9
  11. package/esm2022/lib/breadcrumb-item.component.mjs +3 -3
  12. package/esm2022/lib/breadcrumb-link.component.mjs +3 -3
  13. package/esm2022/lib/breadcrumb-separator.component.mjs +3 -3
  14. package/esm2022/lib/breadcrumb.component.mjs +3 -3
  15. package/esm2022/lib/bubble.component.mjs +301 -0
  16. package/esm2022/lib/button.component.mjs +5 -11
  17. package/esm2022/lib/calendar.component.mjs +5 -11
  18. package/esm2022/lib/card.component.mjs +14 -43
  19. package/esm2022/lib/carousel/carousel.component.mjs +5 -12
  20. package/esm2022/lib/chain-of-thought.component.mjs +380 -0
  21. package/esm2022/lib/chart-pie.component.mjs +386 -0
  22. package/esm2022/lib/chart.component.mjs +1146 -0
  23. package/esm2022/lib/chart.service.mjs +555 -0
  24. package/esm2022/lib/checkbox.component.mjs +5 -11
  25. package/esm2022/lib/checkpoint.component.mjs +134 -0
  26. package/esm2022/lib/collapsible.component.mjs +4 -11
  27. package/esm2022/lib/combobox.component.mjs +372 -0
  28. package/esm2022/lib/command-dialog.component.mjs +164 -0
  29. package/esm2022/lib/command.component.mjs +514 -0
  30. package/esm2022/lib/command.service.mjs +130 -0
  31. package/esm2022/lib/confirmation.component.mjs +219 -0
  32. package/esm2022/lib/context-menu-trigger.directive.mjs +36 -0
  33. package/esm2022/lib/context-menu.component.mjs +460 -0
  34. package/esm2022/lib/context-menu.service.mjs +121 -0
  35. package/esm2022/lib/context.component.mjs +377 -0
  36. package/esm2022/lib/conversation.component.mjs +442 -0
  37. package/esm2022/lib/country-selector.component.mjs +5 -11
  38. package/esm2022/lib/data-table.component.mjs +59 -12
  39. package/esm2022/lib/date-picker.component.mjs +251 -198
  40. package/esm2022/lib/date-range-picker.component.mjs +224 -116
  41. package/esm2022/lib/date-time-picker.component.mjs +506 -0
  42. package/esm2022/lib/direction.component.mjs +79 -0
  43. package/esm2022/lib/dropdown-item.component.mjs +3 -3
  44. package/esm2022/lib/dropdown-label.component.mjs +3 -3
  45. package/esm2022/lib/dropdown-menu.component.mjs +3 -3
  46. package/esm2022/lib/dropdown-separator.component.mjs +3 -3
  47. package/esm2022/lib/dropdown-trigger.directive.mjs +6 -4
  48. package/esm2022/lib/empty-state.component.mjs +4 -9
  49. package/esm2022/lib/field.component.mjs +394 -0
  50. package/esm2022/lib/hover-card.component.mjs +6 -16
  51. package/esm2022/lib/inline-citation.component.mjs +263 -0
  52. package/esm2022/lib/input-group.component.mjs +418 -0
  53. package/esm2022/lib/input.component.mjs +5 -11
  54. package/esm2022/lib/item.component.mjs +243 -0
  55. package/esm2022/lib/kbd.component.mjs +82 -0
  56. package/esm2022/lib/label.component.mjs +4 -9
  57. package/esm2022/lib/marker.component.mjs +135 -0
  58. package/esm2022/lib/masked-input.component.mjs +5 -11
  59. package/esm2022/lib/menubar.component.mjs +683 -0
  60. package/esm2022/lib/message-scroller.component.mjs +353 -0
  61. package/esm2022/lib/message-scroller.service.mjs +157 -0
  62. package/esm2022/lib/message.component.mjs +228 -0
  63. package/esm2022/lib/model-selector.component.mjs +310 -0
  64. package/esm2022/lib/multi-select.component.mjs +155 -72
  65. package/esm2022/lib/native-select.component.mjs +201 -0
  66. package/esm2022/lib/navigation-menu.component.mjs +642 -0
  67. package/esm2022/lib/otp-group.component.mjs +3 -3
  68. package/esm2022/lib/otp-slot.component.mjs +4 -9
  69. package/esm2022/lib/otp.component.mjs +5 -11
  70. package/esm2022/lib/pagination.component.mjs +7 -10
  71. package/esm2022/lib/plan.component.mjs +335 -0
  72. package/esm2022/lib/popover-content.component.mjs +4 -9
  73. package/esm2022/lib/popover.component.mjs +15 -13
  74. package/esm2022/lib/progress.component.mjs +4 -9
  75. package/esm2022/lib/prompt-input.component.mjs +526 -0
  76. package/esm2022/lib/queue.component.mjs +280 -0
  77. package/esm2022/lib/radio-group.component.mjs +6 -13
  78. package/esm2022/lib/radio-item.component.mjs +4 -9
  79. package/esm2022/lib/range-calendar.component.mjs +5 -11
  80. package/esm2022/lib/reasoning.component.mjs +335 -0
  81. package/esm2022/lib/resizable.component.mjs +219 -0
  82. package/esm2022/lib/segment.component.mjs +17 -7
  83. package/esm2022/lib/select-group.component.mjs +4 -8
  84. package/esm2022/lib/select-item.component.mjs +4 -9
  85. package/esm2022/lib/select-separator.component.mjs +4 -8
  86. package/esm2022/lib/select.component.mjs +133 -49
  87. package/esm2022/lib/separator.component.mjs +4 -9
  88. package/esm2022/lib/sheet.component.mjs +38 -56
  89. package/esm2022/lib/shimmer.component.mjs +84 -0
  90. package/esm2022/lib/sidebar.component.mjs +11 -1
  91. package/esm2022/lib/skeleton.component.mjs +4 -9
  92. package/esm2022/lib/sources.component.mjs +452 -0
  93. package/esm2022/lib/spinner.component.mjs +68 -0
  94. package/esm2022/lib/suggestion.component.mjs +207 -0
  95. package/esm2022/lib/switch.component.mjs +5 -11
  96. package/esm2022/lib/table.component.mjs +213 -0
  97. package/esm2022/lib/tabs.component.mjs +4 -11
  98. package/esm2022/lib/tag-input.component.mjs +5 -11
  99. package/esm2022/lib/task.component.mjs +359 -0
  100. package/esm2022/lib/textarea.component.mjs +5 -11
  101. package/esm2022/lib/theme.service.mjs +17 -6
  102. package/esm2022/lib/time-picker.component.mjs +923 -0
  103. package/esm2022/lib/toast.service.mjs +3 -2
  104. package/esm2022/lib/toaster.component.mjs +76 -39
  105. package/esm2022/lib/toggle-group.component.mjs +4 -9
  106. package/esm2022/lib/toggle.component.mjs +5 -11
  107. package/esm2022/lib/tool.component.mjs +462 -0
  108. package/esm2022/lib/typography.component.mjs +83 -0
  109. package/esm2022/lib/utils/color.mjs +140 -19
  110. package/esm2022/public-api.mjs +61 -1
  111. package/fesm2022/tolle-ui.mjs +16453 -1024
  112. package/fesm2022/tolle-ui.mjs.map +1 -1
  113. package/lib/alert-dialog.component.d.ts +10 -2
  114. package/lib/aspect-ratio.component.d.ts +20 -0
  115. package/lib/attachment.component.d.ts +101 -0
  116. package/lib/bubble.component.d.ts +112 -0
  117. package/lib/chain-of-thought.component.d.ts +166 -0
  118. package/lib/chart-pie.component.d.ts +108 -0
  119. package/lib/chart.component.d.ts +369 -0
  120. package/lib/chart.service.d.ts +222 -0
  121. package/lib/checkpoint.component.d.ts +51 -0
  122. package/lib/combobox.component.d.ts +90 -0
  123. package/lib/command-dialog.component.d.ts +53 -0
  124. package/lib/command.component.d.ts +189 -0
  125. package/lib/command.service.d.ts +67 -0
  126. package/lib/confirmation.component.d.ts +70 -0
  127. package/lib/context-menu-trigger.directive.d.ts +12 -0
  128. package/lib/context-menu.component.d.ts +41 -0
  129. package/lib/context-menu.service.d.ts +38 -0
  130. package/lib/context.component.d.ts +134 -0
  131. package/lib/conversation.component.d.ts +165 -0
  132. package/lib/data-table.component.d.ts +26 -1
  133. package/lib/date-picker.component.d.ts +72 -11
  134. package/lib/date-range-picker.component.d.ts +63 -6
  135. package/lib/date-time-picker.component.d.ts +119 -0
  136. package/lib/direction.component.d.ts +45 -0
  137. package/lib/field.component.d.ts +201 -0
  138. package/lib/inline-citation.component.d.ts +103 -0
  139. package/lib/input-group.component.d.ts +150 -0
  140. package/lib/item.component.d.ts +154 -0
  141. package/lib/kbd.component.d.ts +50 -0
  142. package/lib/marker.component.d.ts +58 -0
  143. package/lib/menubar.component.d.ts +247 -0
  144. package/lib/message-scroller.component.d.ts +159 -0
  145. package/lib/message-scroller.service.d.ts +73 -0
  146. package/lib/message.component.d.ts +128 -0
  147. package/lib/model-selector.component.d.ts +103 -0
  148. package/lib/multi-select.component.d.ts +66 -14
  149. package/lib/native-select.component.d.ts +57 -0
  150. package/lib/navigation-menu.component.d.ts +230 -0
  151. package/lib/plan.component.d.ts +120 -0
  152. package/lib/popover.component.d.ts +1 -0
  153. package/lib/prompt-input.component.d.ts +194 -0
  154. package/lib/queue.component.d.ts +106 -0
  155. package/lib/reasoning.component.d.ts +127 -0
  156. package/lib/resizable.component.d.ts +43 -0
  157. package/lib/segment.component.d.ts +13 -3
  158. package/lib/select.component.d.ts +37 -5
  159. package/lib/sheet.component.d.ts +3 -0
  160. package/lib/shimmer.component.d.ts +38 -0
  161. package/lib/sidebar.component.d.ts +2 -0
  162. package/lib/sources.component.d.ts +156 -0
  163. package/lib/spinner.component.d.ts +29 -0
  164. package/lib/suggestion.component.d.ts +96 -0
  165. package/lib/table.component.d.ts +106 -0
  166. package/lib/task.component.d.ts +151 -0
  167. package/lib/theme.service.d.ts +9 -0
  168. package/lib/time-picker.component.d.ts +243 -0
  169. package/lib/toast.service.d.ts +3 -1
  170. package/lib/toaster.component.d.ts +26 -9
  171. package/lib/tool.component.d.ts +158 -0
  172. package/lib/typography.component.d.ts +32 -0
  173. package/lib/utils/color.d.ts +19 -5
  174. package/package.json +1 -1
  175. package/public-api.d.ts +50 -0
  176. package/registry/docs-content.json +8480 -1542
  177. package/registry/llms-full.txt +2679 -319
  178. package/registry/llms.txt +43 -4
  179. package/registry/manifest.json +9090 -1742
  180. package/registry/r/accordion-item.json +1 -1
  181. package/registry/r/accordion.json +1 -1
  182. package/registry/r/alert-dialog-dynamic.json +1 -1
  183. package/registry/r/alert-dialog.json +1 -1
  184. package/registry/r/alert.json +1 -1
  185. package/registry/r/attachment.json +23 -0
  186. package/registry/r/avatar-fallback.json +1 -1
  187. package/registry/r/avatar.json +1 -1
  188. package/registry/r/badge.json +1 -1
  189. package/registry/r/breadcrumb-item.json +1 -1
  190. package/registry/r/breadcrumb-link.json +1 -1
  191. package/registry/r/breadcrumb-separator.json +1 -1
  192. package/registry/r/breadcrumb.json +1 -1
  193. package/registry/r/bubble.json +23 -0
  194. package/registry/r/button.json +1 -1
  195. package/registry/r/calendar.json +1 -1
  196. package/registry/r/card.json +1 -1
  197. package/registry/r/carousel.json +1 -1
  198. package/registry/r/chain-of-thought.json +23 -0
  199. package/registry/r/chart-pie.json +30 -0
  200. package/registry/r/chart.json +28 -0
  201. package/registry/r/checkbox.json +1 -1
  202. package/registry/r/checkpoint.json +23 -0
  203. package/registry/r/collapsible.json +1 -1
  204. package/registry/r/combobox.json +31 -0
  205. package/registry/r/command-dialog.json +21 -0
  206. package/registry/r/command.json +26 -0
  207. package/registry/r/confirmation.json +23 -0
  208. package/registry/r/context.json +26 -0
  209. package/registry/r/conversation.json +23 -0
  210. package/registry/r/country-selector.json +1 -1
  211. package/registry/r/data-table.json +1 -1
  212. package/registry/r/date-picker.json +4 -4
  213. package/registry/r/date-range-picker.json +3 -3
  214. package/registry/r/date-time-picker.json +28 -0
  215. package/registry/r/direction.json +16 -0
  216. package/registry/r/dropdown-item.json +1 -1
  217. package/registry/r/dropdown-label.json +1 -1
  218. package/registry/r/dropdown-menu.json +1 -1
  219. package/registry/r/dropdown-separator.json +1 -1
  220. package/registry/r/dropdown-trigger.json +1 -1
  221. package/registry/r/empty-state.json +1 -1
  222. package/registry/r/field.json +23 -0
  223. package/registry/r/hover-card.json +1 -1
  224. package/registry/r/inline-citation.json +26 -0
  225. package/registry/r/input-group.json +23 -0
  226. package/registry/r/input.json +1 -1
  227. package/registry/r/item.json +23 -0
  228. package/registry/r/kbd.json +23 -0
  229. package/registry/r/label.json +1 -1
  230. package/registry/r/marker.json +23 -0
  231. package/registry/r/masked-input.json +1 -1
  232. package/registry/r/menubar.json +24 -0
  233. package/registry/r/message-scroller.json +26 -0
  234. package/registry/r/message.json +23 -0
  235. package/registry/r/model-selector.json +32 -0
  236. package/registry/r/multi-select.json +2 -2
  237. package/registry/r/native-select.json +23 -0
  238. package/registry/r/navigation-menu.json +24 -0
  239. package/registry/r/otp-group.json +1 -1
  240. package/registry/r/otp-slot.json +1 -1
  241. package/registry/r/otp.json +1 -1
  242. package/registry/r/pagination.json +3 -2
  243. package/registry/r/plan.json +23 -0
  244. package/registry/r/popover-content.json +1 -1
  245. package/registry/r/popover.json +1 -1
  246. package/registry/r/progress.json +1 -1
  247. package/registry/r/prompt-input.json +23 -0
  248. package/registry/r/queue.json +23 -0
  249. package/registry/r/radio-group.json +1 -1
  250. package/registry/r/radio-item.json +1 -1
  251. package/registry/r/range-calendar.json +1 -1
  252. package/registry/r/reasoning.json +23 -0
  253. package/registry/r/segment.json +1 -1
  254. package/registry/r/select-group.json +1 -1
  255. package/registry/r/select-item.json +1 -1
  256. package/registry/r/select-separator.json +1 -1
  257. package/registry/r/select.json +4 -3
  258. package/registry/r/separator.json +1 -1
  259. package/registry/r/sheet.json +1 -1
  260. package/registry/r/shimmer.json +23 -0
  261. package/registry/r/sidebar.json +1 -1
  262. package/registry/r/skeleton.json +1 -1
  263. package/registry/r/sources.json +23 -0
  264. package/registry/r/spinner.json +23 -0
  265. package/registry/r/suggestion.json +23 -0
  266. package/registry/r/switch.json +1 -1
  267. package/registry/r/table.json +21 -0
  268. package/registry/r/tabs.json +1 -1
  269. package/registry/r/tag-input.json +1 -1
  270. package/registry/r/task.json +23 -0
  271. package/registry/r/textarea.json +1 -1
  272. package/registry/r/time-picker.json +24 -0
  273. package/registry/r/toaster.json +2 -2
  274. package/registry/r/toggle-group.json +1 -1
  275. package/registry/r/toggle.json +1 -1
  276. package/registry/r/tool.json +23 -0
  277. package/registry/r/typography.json +23 -0
  278. package/registry/registry.json +915 -22
  279. package/theme.css +109 -8
@@ -0,0 +1,280 @@
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 { cva } from 'class-variance-authority';
5
+ import { cn } from './utils/cn';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ let queueItemId = 0;
9
+ const queueVariants = cva('w-full rounded-lg border border-border bg-card text-card-foreground', {
10
+ variants: {
11
+ size: {
12
+ sm: 'p-2 text-xs',
13
+ default: 'p-3 text-sm',
14
+ },
15
+ },
16
+ defaultVariants: { size: 'default' },
17
+ });
18
+ const queueItemVariants = cva('group/queue-item flex items-center gap-2 rounded-md border px-2 py-1.5 text-sm transition-colors', {
19
+ variants: {
20
+ status: {
21
+ queued: 'border-border bg-background text-muted-foreground',
22
+ running: 'border-info/40 bg-info/5 text-foreground',
23
+ done: 'border-transparent bg-transparent text-muted-foreground',
24
+ },
25
+ },
26
+ defaultVariants: { status: 'queued' },
27
+ });
28
+ const queueItemIconVariants = cva('shrink-0 text-base leading-none', {
29
+ variants: {
30
+ status: {
31
+ queued: 'text-muted-foreground',
32
+ running: 'text-info',
33
+ done: 'text-success',
34
+ },
35
+ },
36
+ defaultVariants: { status: 'queued' },
37
+ });
38
+ /** Remixicon class shown for each queue item status. */
39
+ const QUEUE_ICONS = {
40
+ queued: 'ri-time-line',
41
+ running: 'ri-loader-4-line animate-spin',
42
+ done: 'ri-check-line',
43
+ };
44
+ /**
45
+ * Counts the items of a single `tolle-queue`.
46
+ *
47
+ * The header is `OnPush` and the item count is not one of its inputs, so it is
48
+ * published as an observable and the subscriber calls `markForCheck()`.
49
+ */
50
+ export class QueueService {
51
+ statuses = new Map();
52
+ countsSource = new BehaviorSubject({
53
+ total: 0,
54
+ queued: 0,
55
+ running: 0,
56
+ done: 0,
57
+ });
58
+ /** Emits the queue's tallies whenever an item is added, updated or removed. */
59
+ counts$ = this.countsSource.asObservable();
60
+ get counts() {
61
+ return this.countsSource.value;
62
+ }
63
+ register(id, status) {
64
+ this.statuses.set(id, status);
65
+ this.recompute();
66
+ }
67
+ setStatus(id, status) {
68
+ if (!this.statuses.has(id))
69
+ return;
70
+ if (this.statuses.get(id) === status)
71
+ return;
72
+ this.statuses.set(id, status);
73
+ this.recompute();
74
+ }
75
+ unregister(id) {
76
+ if (this.statuses.delete(id))
77
+ this.recompute();
78
+ }
79
+ recompute() {
80
+ const values = [...this.statuses.values()];
81
+ this.countsSource.next({
82
+ total: values.length,
83
+ queued: values.filter((status) => status === 'queued').length,
84
+ running: values.filter((status) => status === 'running').length,
85
+ done: values.filter((status) => status === 'done').length,
86
+ });
87
+ }
88
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: QueueService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
89
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: QueueService });
90
+ }
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: QueueService, decorators: [{
92
+ type: Injectable
93
+ }] });
94
+ /**
95
+ * Messages or tasks waiting their turn. The header counts the entries for you,
96
+ * so the host only has to render `tolle-queue-item` children.
97
+ *
98
+ * ```html
99
+ * <tolle-queue title="Queued">
100
+ * <tolle-queue-item label="Summarise the thread" status="running"></tolle-queue-item>
101
+ * <tolle-queue-item label="Draft a reply" (remove)="drop(1)"></tolle-queue-item>
102
+ * </tolle-queue>
103
+ * ```
104
+ * @new
105
+ */
106
+ export class QueueComponent {
107
+ /**
108
+ * Angular writes a bound `class` input through its styling path, which does
109
+ * not mark an OnPush component dirty — without this hook the component keeps
110
+ * rendering the class it was born with.
111
+ */
112
+ ngOnChanges() {
113
+ this.cdr.markForCheck();
114
+ }
115
+ /** Heading shown above the queued items. @default 'Queue' */
116
+ title = 'Queue';
117
+ /** Text shown while the queue holds nothing. @default 'Nothing queued.' */
118
+ emptyMessage = 'Nothing queued.';
119
+ /** Padding and text scale of the queue. @default 'default' */
120
+ size = 'default';
121
+ /** Extra Tailwind classes merged onto the queue via `cn()` (last-wins). */
122
+ class = '';
123
+ /** Emitted with the queue's tallies whenever its items change. */
124
+ countsChange = new EventEmitter();
125
+ service = inject(QueueService);
126
+ cdr = inject(ChangeDetectorRef);
127
+ sub = new Subscription();
128
+ counts = this.service.counts;
129
+ ngOnInit() {
130
+ this.sub.add(this.service.counts$.subscribe((counts) => {
131
+ this.counts = counts;
132
+ this.cdr.markForCheck();
133
+ this.countsChange.emit(counts);
134
+ }));
135
+ }
136
+ ngOnDestroy() {
137
+ this.sub.unsubscribe();
138
+ }
139
+ get computedClass() {
140
+ return cn(queueVariants({ size: this.size }), this.class);
141
+ }
142
+ get countClass() {
143
+ return cn('ml-auto shrink-0 rounded-full border border-border bg-muted px-2 py-0.5 text-xs font-medium tabular-nums text-muted-foreground');
144
+ }
145
+ get listClass() {
146
+ return cn(this.counts.total === 0 ? 'flex flex-col' : 'mt-2 flex flex-col gap-1');
147
+ }
148
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: QueueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
149
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: QueueComponent, isStandalone: true, selector: "tolle-queue", inputs: { title: "title", emptyMessage: "emptyMessage", size: "size", class: "class" }, outputs: { countsChange: "countsChange" }, providers: [QueueService], usesOnChanges: true, ngImport: i0, template: `
150
+ <div [class]="computedClass">
151
+ <div class="flex items-center gap-2">
152
+ <i class="ri-stack-line shrink-0 text-muted-foreground" aria-hidden="true"></i>
153
+ <span class="truncate font-medium text-foreground">{{ title }}</span>
154
+ <span [class]="countClass" [attr.aria-label]="counts.total + ' items queued'">{{ counts.total }}</span>
155
+ </div>
156
+
157
+ <p *ngIf="counts.total === 0" class="mt-2 text-sm text-muted-foreground">{{ emptyMessage }}</p>
158
+
159
+ <div role="list" [class]="listClass">
160
+ <ng-content></ng-content>
161
+ </div>
162
+ </div>
163
+ `, 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 });
164
+ }
165
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: QueueComponent, decorators: [{
166
+ type: Component,
167
+ args: [{ selector: 'tolle-queue', standalone: true, imports: [CommonModule], providers: [QueueService], changeDetection: ChangeDetectionStrategy.OnPush, template: `
168
+ <div [class]="computedClass">
169
+ <div class="flex items-center gap-2">
170
+ <i class="ri-stack-line shrink-0 text-muted-foreground" aria-hidden="true"></i>
171
+ <span class="truncate font-medium text-foreground">{{ title }}</span>
172
+ <span [class]="countClass" [attr.aria-label]="counts.total + ' items queued'">{{ counts.total }}</span>
173
+ </div>
174
+
175
+ <p *ngIf="counts.total === 0" class="mt-2 text-sm text-muted-foreground">{{ emptyMessage }}</p>
176
+
177
+ <div role="list" [class]="listClass">
178
+ <ng-content></ng-content>
179
+ </div>
180
+ </div>
181
+ `, styles: [":host{display:block}\n"] }]
182
+ }], propDecorators: { title: [{
183
+ type: Input
184
+ }], emptyMessage: [{
185
+ type: Input
186
+ }], size: [{
187
+ type: Input
188
+ }], class: [{
189
+ type: Input
190
+ }], countsChange: [{
191
+ type: Output
192
+ }] } });
193
+ /** A single entry in a `tolle-queue`. */
194
+ export class QueueItemComponent {
195
+ /** Text describing the queued work. @default '' */
196
+ label = '';
197
+ /** Lifecycle state of this entry. @default 'queued' */
198
+ status = 'queued';
199
+ /** Shows the trailing dismiss button that emits `remove`. @default true */
200
+ removable = true;
201
+ /** Accessible label for the dismiss button. @default 'Remove from queue' */
202
+ removeLabel = 'Remove from queue';
203
+ /** Extra Tailwind classes merged onto the entry via `cn()` (last-wins). */
204
+ class = '';
205
+ /** Emitted when the user dismisses this entry. */
206
+ remove = new EventEmitter();
207
+ service = inject(QueueService);
208
+ id = 'tolle-queue-item-' + queueItemId++;
209
+ ngOnInit() {
210
+ this.service.register(this.id, this.status);
211
+ }
212
+ ngOnChanges() {
213
+ this.service.setStatus(this.id, this.status);
214
+ }
215
+ ngOnDestroy() {
216
+ this.service.unregister(this.id);
217
+ }
218
+ get computedClass() {
219
+ return cn(queueItemVariants({ status: this.status }), this.class);
220
+ }
221
+ get iconClass() {
222
+ return cn(queueItemIconVariants({ status: this.status }), QUEUE_ICONS[this.status]);
223
+ }
224
+ get labelClass() {
225
+ return cn('min-w-0 flex-1 truncate', this.status === 'done' && 'line-through');
226
+ }
227
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: QueueItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
228
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: QueueItemComponent, isStandalone: true, selector: "tolle-queue-item", inputs: { label: "label", status: "status", removable: "removable", removeLabel: "removeLabel", class: "class" }, outputs: { remove: "remove" }, usesOnChanges: true, ngImport: i0, template: `
229
+ <div role="listitem" [class]="computedClass" [attr.data-status]="status">
230
+ <i [class]="iconClass" aria-hidden="true"></i>
231
+
232
+ <span [class]="labelClass">{{ label }}</span>
233
+ <ng-content></ng-content>
234
+
235
+ <button
236
+ *ngIf="removable"
237
+ type="button"
238
+ [attr.aria-label]="removeLabel"
239
+ class="ml-auto shrink-0 rounded-md p-0.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
240
+ (click)="remove.emit()"
241
+ >
242
+ <i class="ri-close-line" aria-hidden="true"></i>
243
+ </button>
244
+ </div>
245
+ `, 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 });
246
+ }
247
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: QueueItemComponent, decorators: [{
248
+ type: Component,
249
+ args: [{ selector: 'tolle-queue-item', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
250
+ <div role="listitem" [class]="computedClass" [attr.data-status]="status">
251
+ <i [class]="iconClass" aria-hidden="true"></i>
252
+
253
+ <span [class]="labelClass">{{ label }}</span>
254
+ <ng-content></ng-content>
255
+
256
+ <button
257
+ *ngIf="removable"
258
+ type="button"
259
+ [attr.aria-label]="removeLabel"
260
+ class="ml-auto shrink-0 rounded-md p-0.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
261
+ (click)="remove.emit()"
262
+ >
263
+ <i class="ri-close-line" aria-hidden="true"></i>
264
+ </button>
265
+ </div>
266
+ `, styles: [":host{display:block}\n"] }]
267
+ }], propDecorators: { label: [{
268
+ type: Input
269
+ }], status: [{
270
+ type: Input
271
+ }], removable: [{
272
+ type: Input
273
+ }], removeLabel: [{
274
+ type: Input
275
+ }], class: [{
276
+ type: Input
277
+ }], remove: [{
278
+ type: Output
279
+ }] } });
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9xdWV1ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNySyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLEdBQUcsRUFBcUIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFLaEMsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBVXBCLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxxRUFBcUUsRUFBRTtJQUMvRixRQUFRLEVBQUU7UUFDUixJQUFJLEVBQUU7WUFDSixFQUFFLEVBQUUsYUFBYTtZQUNqQixPQUFPLEVBQUUsYUFBYTtTQUN2QjtLQUNGO0lBQ0QsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtDQUNyQyxDQUFDLENBQUM7QUFJSCxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FDM0Isa0dBQWtHLEVBQ2xHO0lBQ0UsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFO1lBQ04sTUFBTSxFQUFFLG1EQUFtRDtZQUMzRCxPQUFPLEVBQUUsMENBQTBDO1lBQ25ELElBQUksRUFBRSx5REFBeUQ7U0FDaEU7S0FDRjtJQUNELGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUU7Q0FDdEMsQ0FDRixDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLENBQUMs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IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGN2YSwgdHlwZSBWYXJpYW50UHJvcHMgfSBmcm9tICdjbGFzcy12YXJpYW5jZS1hdXRob3JpdHknO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcblxuLyoqIFdoZXJlIGEgcXVldWVkIGVudHJ5IGlzIGluIGl0cyBsaWZlY3ljbGUuICovXG5leHBvcnQgdHlwZSBRdWV1ZUl0ZW1TdGF0dXMgPSAncXVldWVkJyB8ICdydW5uaW5nJyB8ICdkb25lJztcblxubGV0IHF1ZXVlSXRlbUlkID0gMDtcblxuLyoqIFRhbGxpZXMgb2YgdGhlIGVudHJpZXMgY3VycmVudGx5IGluIGEgcXVldWUuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXVlQ291bnRzIHtcbiAgdG90YWw6IG51bWJlcjtcbiAgcXVldWVkOiBudW1iZXI7XG4gIHJ1bm5pbmc6IG51bWJlcjtcbiAgZG9uZTogbnVtYmVyO1xufVxuXG5jb25zdCBxdWV1ZVZhcmlhbnRzID0gY3ZhKCd3LWZ1bGwgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLWJvcmRlciBiZy1jYXJkIHRleHQtY2FyZC1mb3JlZ3JvdW5kJywge1xuICB2YXJpYW50czoge1xuICAgIHNpemU6IHtcbiAgICAgIHNtOiAncC0yIHRleHQteHMnLFxuICAgICAgZGVmYXVsdDogJ3AtMyB0ZXh0LXNtJyxcbiAgICB9LFxuICB9LFxuICBkZWZhdWx0VmFyaWFudHM6IHsgc2l6ZTogJ2RlZmF1bHQnIH0sXG59KTtcblxuZXhwb3J0IHR5cGUgUXVldWVQcm9wcyA9IFZhcmlhbnRQcm9wczx0eXBlb2YgcXVldWVWYXJpYW50cz47XG5cbmNvbnN0IHF1ZXVlSXRlbVZhcmlhbnRzID0gY3ZhKFxuICAnZ3JvdXAvcXVldWUtaXRlbSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiByb3VuZGVkLW1kIGJvcmRlciBweC0yIHB5LTEuNSB0ZXh0LXNtIHRyYW5zaXRpb24tY29sb3JzJyxcbiAge1xuICAgIHZhcmlhbnRzOiB7XG4gICAgICBzdGF0dXM6IHtcbiAgICAgICAgcXVldWVkOiAnYm9yZGVyLWJvcmRlciBiZy1iYWNrZ3JvdW5kIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsXG4gICAgICAgIHJ1bm5pbmc6ICdib3JkZXItaW5mby80MCBiZy1pbmZvLzUgdGV4dC1mb3JlZ3JvdW5kJyxcbiAgICAgICAgZG9uZTogJ2JvcmRlci10cmFuc3BhcmVudCBiZy10cmFuc3BhcmVudCB0ZXh0LW11dGVkLWZvcmVncm91bmQnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGRlZmF1bHRWYXJpYW50czogeyBzdGF0dXM6ICdxdWV1ZWQnIH0sXG4gIH1cbik7XG5cbmNvbnN0IHF1ZXVlSXRlbUljb25WYXJpYW50cyA9IGN2YSgnc2hyaW5rLTAgdGV4dC1iYXNlIGxlYWRpbmctbm9uZScsIHtcbiAgdmFyaWFudHM6IHtcbiAgICBzdGF0dXM6IHtcbiAgICAgIHF1ZXVlZDogJ3RleHQtbXV0ZWQtZm9yZWdyb3VuZCcsXG4gICAgICBydW5uaW5nOiAndGV4dC1pbmZvJyxcbiAgICAgIGRvbmU6ICd0ZXh0LXN1Y2Nlc3MnLFxuICAgIH0sXG4gIH0sXG4gIGRlZmF1bHRWYXJpYW50czogeyBzdGF0dXM6ICdxdWV1ZWQnIH0sXG59KTtcblxuZXhwb3J0IHR5cGUgUXVldWVJdGVtUHJvcHMgPSBWYXJpYW50UHJvcHM8dHlwZW9mIHF1ZXVlSXRlbVZhcmlhbnRzPjtcblxuLyoqIFJlbWl4aWNvbiBjbGFzcyBzaG93biBmb3IgZWFjaCBxdWV1ZSBpdGVtIHN0YXR1cy4gKi9cbmNvbnN0IFFVRVVFX0lDT05TOiBSZWNvcmQ8UXVldWVJdGVtU3RhdHVzLCBzdHJpbmc+ID0ge1xuICBxdWV1ZWQ6ICdyaS10aW1lLWxpbmUnLFxuICBydW5uaW5nOiAncmktbG9hZGVyLTQtbGluZSBhbmltYXRlLXNwaW4nLFxuICBkb25lOiAncmktY2hlY2stbGluZScsXG59O1xuXG4vKipcbiAqIENvdW50cyB0aGUgaXRlbXMgb2YgYSBzaW5nbGUgYHRvbGxlLXF1ZXVlYC5cbiAqXG4gKiBUaGUgaGVhZGVyIGlzIGBPblB1c2hgIGFuZCB0aGUgaXRlbSBjb3VudCBpcyBub3Qgb25lIG9mIGl0cyBpbnB1dHMsIHNvIGl0IGlzXG4gKiBwdWJsaXNoZWQgYXMgYW4gb2JzZXJ2YWJsZSBhbmQgdGhlIHN1YnNjcmliZXIgY2FsbHMgYG1hcmtGb3JDaGVjaygpYC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFF1ZXVlU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhdHVzZXMgPSBuZXcgTWFwPHN0cmluZywgUXVldWVJdGVtU3RhdHVzPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY291bnRzU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxRdWV1ZUNvdW50cz4oe1xuICAgIHRvdGFsOiAwLFxuICAgIHF1ZXVlZDogMCxcbiAgICBydW5uaW5nOiAwLFxuICAgIGRvbmU6IDAsXG4gIH0pO1xuICAvKiogRW1pdHMgdGhlIHF1ZXVlJ3MgdGFsbGllcyB3aGVuZXZlciBhbiBpdGVtIGlzIGFkZGVkLCB1cGRhdGVkIG9yIHJlbW92ZWQuICovXG4gIHJlYWRvbmx5IGNvdW50cyQgPSB0aGlzLmNvdW50c1NvdXJjZS5hc09ic2VydmFibGUoKTtcblxuICBnZXQgY291bnRzKCk6IFF1ZXVlQ291bnRzIHtcbiAgICByZXR1cm4gdGhpcy5jb3VudHNTb3VyY2UudmFsdWU7XG4gIH1cblxuICByZWdpc3RlcihpZDogc3RyaW5nLCBzdGF0dXM6IFF1ZXVlSXRlbVN0YXR1cyk6IHZvaWQge1xuICAgIHRoaXMuc3RhdHVzZXMuc2V0KGlkLCBzdGF0dXMpO1xuICAgIHRoaXMucmVjb21wdXRlKCk7XG4gIH1cblxuICBzZXRTdGF0dXMoaWQ6IHN0cmluZywgc3RhdHVzOiBRdWV1ZUl0ZW1TdGF0dXMpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc3RhdHVzZXMuaGFzKGlkKSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnN0YXR1c2VzLmdldChpZCkgPT09IHN0YXR1cykgcmV0dXJuO1xuICAgIHRoaXMuc3RhdHVzZXMuc2V0KGlkLCBzdGF0dXMpO1xuICAgIHRoaXMucmVjb21wdXRlKCk7XG4gIH1cblxuICB1bnJlZ2lzdGVyKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0dXNlcy5kZWxldGUoaWQpKSB0aGlzLnJlY29tcHV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWNvbXB1dGUoKTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWVzID0gWy4uLnRoaXMuc3RhdHVzZXMudmFsdWVzKCldO1xuICAgIHRoaXMuY291bnRzU291cmNlLm5leHQoe1xuICAgICAgdG90YWw6IHZhbHVlcy5sZW5ndGgsXG4gICAgICBxdWV1ZWQ6IHZhbHVlcy5maWx0ZXIoKHN0YXR1cykgPT4gc3RhdHVzID09PSAncXVldWVkJykubGVuZ3RoLFxuICAgICAgcnVubmluZzogdmFsdWVzLmZpbHRlcigoc3RhdHVzKSA9PiBzdGF0dXMgPT09ICdydW5uaW5nJykubGVuZ3RoLFxuICAgICAgZG9uZTogdmFsdWVzLmZpbHRlcigoc3RhdHVzKSA9PiBzdGF0dXMgPT09ICdkb25lJykubGVuZ3RoLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogTWVzc2FnZXMgb3IgdGFza3Mgd2FpdGluZyB0aGVpciB0dXJuLiBUaGUgaGVhZGVyIGNvdW50cyB0aGUgZW50cmllcyBmb3IgeW91LFxuICogc28gdGhlIGhvc3Qgb25seSBoYXMgdG8gcmVuZGVyIGB0b2xsZS1xdWV1ZS1pdGVtYCBjaGlsZHJlbi5cbiAqXG4gKiBgYGBodG1sXG4gKiA8dG9sbGUtcXVldWUgdGl0bGU9XCJRdWV1ZWRcIj5cbiAqICAgPHRvbGxlLXF1ZXVlLWl0ZW0gbGFiZWw9XCJTdW1tYXJpc2UgdGhlIHRocmVhZFwiIHN0YXR1cz1cInJ1bm5pbmdcIj48L3RvbGxlLXF1ZXVlLWl0ZW0+XG4gKiAgIDx0b2xsZS1xdWV1ZS1pdGVtIGxhYmVsPVwiRHJhZnQgYSByZXBseVwiIChyZW1vdmUpPVwiZHJvcCgxKVwiPjwvdG9sbGUtcXVldWUtaXRlbT5cbiAqIDwvdG9sbGUtcXVldWU+XG4gKiBgYGBcbiAqIEBuZXdcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtcXVldWUnLFxuICBzdHlsZXM6IFsnOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgfSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbUXVldWVTZXJ2aWNlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbY2xhc3NdPVwiY29tcHV0ZWRDbGFzc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgIDxpIGNsYXNzPVwicmktc3RhY2stbGluZSBzaHJpbmstMCB0ZXh0LW11dGVkLWZvcmVncm91bmRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGUgZm9udC1tZWRpdW0gdGV4dC1mb3JlZ3JvdW5kXCI+e3sgdGl0bGUgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuIFtjbGFzc109XCJjb3VudENsYXNzXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJjb3VudHMudG90YWwgKyAnIGl0ZW1zIHF1ZXVlZCdcIj57eyBjb3VudHMudG90YWwgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPHAgKm5nSWY9XCJjb3VudHMudG90YWwgPT09IDBcIiBjbGFzcz1cIm10LTIgdGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyBlbXB0eU1lc3NhZ2UgfX08L3A+XG5cbiAgICAgIDxkaXYgcm9sZT1cImxpc3RcIiBbY2xhc3NdPVwibGlzdENsYXNzXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBRdWV1ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBBbmd1bGFyIHdyaXRlcyBhIGJvdW5kIGBjbGFzc2AgaW5wdXQgdGhyb3VnaCBpdHMgc3R5bGluZyBwYXRoLCB3aGljaCBkb2VzXG4gICAqIG5vdCBtYXJrIGFuIE9uUHVzaCBjb21wb25lbnQgZGlydHkg4oCUIHdpdGhvdXQgdGhpcyBob29rIHRoZSBjb21wb25lbnQga2VlcHNcbiAgICogcmVuZGVyaW5nIHRoZSBjbGFzcyBpdCB3YXMgYm9ybiB3aXRoLlxuICAgKi9cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogSGVhZGluZyBzaG93biBhYm92ZSB0aGUgcXVldWVkIGl0ZW1zLiBAZGVmYXVsdCAnUXVldWUnICovXG4gIEBJbnB1dCgpIHRpdGxlID0gJ1F1ZXVlJztcbiAgLyoqIFRleHQgc2hvd24gd2hpbGUgdGhlIHF1ZXVlIGhvbGRzIG5vdGhpbmcuIEBkZWZhdWx0ICdOb3RoaW5nIHF1ZXVlZC4nICovXG4gIEBJbnB1dCgpIGVtcHR5TWVzc2FnZSA9ICdOb3RoaW5nIHF1ZXVlZC4nO1xuICAvKiogUGFkZGluZyBhbmQgdGV4dCBzY2FsZSBvZiB0aGUgcXVldWUuIEBkZWZhdWx0ICdkZWZhdWx0JyAqL1xuICBASW5wdXQoKSBzaXplOiBRdWV1ZVByb3BzWydzaXplJ10gPSAnZGVmYXVsdCc7XG4gIC8qKiBFeHRyYSBUYWlsd2luZCBjbGFzc2VzIG1lcmdlZCBvbnRvIHRoZSBxdWV1ZSB2aWEgYGNuKClgIChsYXN0LXdpbnMpLiAqL1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuXG4gIC8qKiBFbWl0dGVkIHdpdGggdGhlIHF1ZXVlJ3MgdGFsbGllcyB3aGVuZXZlciBpdHMgaXRlbXMgY2hhbmdlLiAqL1xuICBAT3V0cHV0KCkgY291bnRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxRdWV1ZUNvdW50cz4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2UgPSBpbmplY3QoUXVldWVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHN1YiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb3VudHM6IFF1ZXVlQ291bnRzID0gdGhpcy5zZXJ2aWNlLmNvdW50cztcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1Yi5hZGQoXG4gICAgICB0aGlzLnNlcnZpY2UuY291bnRzJC5zdWJzY3JpYmUoKGNvdW50cykgPT4ge1xuICAgICAgICB0aGlzLmNvdW50cyA9IGNvdW50cztcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIHRoaXMuY291bnRzQ2hhbmdlLmVtaXQoY291bnRzKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnZXQgY29tcHV0ZWRDbGFzcygpIHtcbiAgICByZXR1cm4gY24ocXVldWVWYXJpYW50cyh7IHNpemU6IHRoaXMuc2l6ZSB9KSwgdGhpcy5jbGFzcyk7XG4gIH1cblxuICBnZXQgY291bnRDbGFzcygpIHtcbiAgICByZXR1cm4gY24oXG4gICAgICAnbWwtYXV0byBzaHJpbmstMCByb3VuZGVkLWZ1bGwgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctbXV0ZWQgcHgtMiBweS0wLjUgdGV4dC14cyBmb250LW1lZGl1bSB0YWJ1bGFyLW51bXMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kJ1xuICAgICk7XG4gIH1cblxuICBnZXQgbGlzdENsYXNzKCkge1xuICAgIHJldHVybiBjbih0aGlzLmNvdW50cy50b3RhbCA9PT0gMCA/ICdmbGV4IGZsZXgtY29sJyA6ICdtdC0yIGZsZXggZmxleC1jb2wgZ2FwLTEnKTtcbiAgfVxufVxuXG4vKiogQSBzaW5nbGUgZW50cnkgaW4gYSBgdG9sbGUtcXVldWVgLiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtcXVldWUtaXRlbScsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9J10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IHJvbGU9XCJsaXN0aXRlbVwiIFtjbGFzc109XCJjb21wdXRlZENsYXNzXCIgW2F0dHIuZGF0YS1zdGF0dXNdPVwic3RhdHVzXCI+XG4gICAgICA8aSBbY2xhc3NdPVwiaWNvbkNsYXNzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuXG4gICAgICA8c3BhbiBbY2xhc3NdPVwibGFiZWxDbGFzc1wiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwicmVtb3ZhYmxlXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVtb3ZlTGFiZWxcIlxuICAgICAgICBjbGFzcz1cIm1sLWF1dG8gc2hyaW5rLTAgcm91bmRlZC1tZCBwLTAuNSB0ZXh0LW11dGVkLWZvcmVncm91bmQgdHJhbnNpdGlvbi1jb2xvcnMgaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtZm9yZWdyb3VuZCBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZ1wiXG4gICAgICAgIChjbGljayk9XCJyZW1vdmUuZW1pdCgpXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJyaS1jbG9zZS1saW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXVlSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAvKiogVGV4dCBkZXNjcmliaW5nIHRoZSBxdWV1ZWQgd29yay4gQGRlZmF1bHQgJycgKi9cbiAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgLyoqIExpZmVjeWNsZSBzdGF0ZSBvZiB0aGlzIGVudHJ5LiBAZGVmYXVsdCAncXVldWVkJyAqL1xuICBASW5wdXQoKSBzdGF0dXM6IFF1ZXVlSXRlbVN0YXR1cyA9ICdxdWV1ZWQnO1xuICAvKiogU2hvd3MgdGhlIHRyYWlsaW5nIGRpc21pc3MgYnV0dG9uIHRoYXQgZW1pdHMgYHJlbW92ZWAuIEBkZWZhdWx0IHRydWUgKi9cbiAgQElucHV0KCkgcmVtb3ZhYmxlID0gdHJ1ZTtcbiAgLyoqIEFjY2Vzc2libGUgbGFiZWwgZm9yIHRoZSBkaXNtaXNzIGJ1dHRvbi4gQGRlZmF1bHQgJ1JlbW92ZSBmcm9tIHF1ZXVlJyAqL1xuICBASW5wdXQoKSByZW1vdmVMYWJlbCA9ICdSZW1vdmUgZnJvbSBxdWV1ZSc7XG4gIC8qKiBFeHRyYSBUYWlsd2luZCBjbGFzc2VzIG1lcmdlZCBvbnRvIHRoZSBlbnRyeSB2aWEgYGNuKClgIChsYXN0LXdpbnMpLiAqL1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuXG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgZGlzbWlzc2VzIHRoaXMgZW50cnkuICovXG4gIEBPdXRwdXQoKSByZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlID0gaW5qZWN0KFF1ZXVlU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaWQgPSAndG9sbGUtcXVldWUtaXRlbS0nICsgcXVldWVJdGVtSWQrKztcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZpY2UucmVnaXN0ZXIodGhpcy5pZCwgdGhpcy5zdGF0dXMpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zZXJ2aWNlLnNldFN0YXR1cyh0aGlzLmlkLCB0aGlzLnN0YXR1cyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZpY2UudW5yZWdpc3Rlcih0aGlzLmlkKTtcbiAgfVxuXG4gIGdldCBjb21wdXRlZENsYXNzKCkge1xuICAgIHJldHVybiBjbihxdWV1ZUl0ZW1WYXJpYW50cyh7IHN0YXR1czogdGhpcy5zdGF0dXMgfSksIHRoaXMuY2xhc3MpO1xuICB9XG5cbiAgZ2V0IGljb25DbGFzcygpIHtcbiAgICByZXR1cm4gY24ocXVldWVJdGVtSWNvblZhcmlhbnRzKHsgc3RhdHVzOiB0aGlzLnN0YXR1cyB9KSwgUVVFVUVfSUNPTlNbdGhpcy5zdGF0dXNdKTtcbiAgfVxuXG4gIGdldCBsYWJlbENsYXNzKCkge1xuICAgIHJldHVybiBjbignbWluLXctMCBmbGV4LTEgdHJ1bmNhdGUnLCB0aGlzLnN0YXR1cyA9PT0gJ2RvbmUnICYmICdsaW5lLXRocm91Z2gnKTtcbiAgfVxufVxuIl19
@@ -91,31 +91,24 @@ export class RadioGroupComponent {
91
91
  <div [class]="cn('grid gap-2', class)" role="radiogroup">
92
92
  <ng-content></ng-content>
93
93
  </div>
94
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
94
+ `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
95
95
  }
96
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RadioGroupComponent, decorators: [{
97
97
  type: Component,
98
- args: [{
99
- selector: 'tolle-radio-group',
100
- standalone: true,
101
- imports: [CommonModule],
102
- providers: [
98
+ args: [{ selector: 'tolle-radio-group', standalone: true, imports: [CommonModule], providers: [
103
99
  RadioService,
104
100
  {
105
101
  provide: NG_VALUE_ACCESSOR,
106
102
  useExisting: forwardRef(() => RadioGroupComponent),
107
103
  multi: true
108
104
  }
109
- ],
110
- host: {
105
+ ], host: {
111
106
  '(keydown)': 'onKeydown($event)'
112
- },
113
- template: `
107
+ }, template: `
114
108
  <div [class]="cn('grid gap-2', class)" role="radiogroup">
115
109
  <ng-content></ng-content>
116
110
  </div>
117
- `
118
- }]
111
+ `, styles: [":host{display:block}\n"] }]
119
112
  }], ctorParameters: () => [{ type: i1.RadioService }], propDecorators: { class: [{
120
113
  type: Input
121
114
  }], disabled: [{
@@ -123,4 +116,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
123
116
  }], name: [{
124
117
  type: Input
125
118
  }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9yYWRpby1ncm91cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUE4QixNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7QUF1QjdDLE1BQU0sT0FBTyxtQkFBbUI7SUFZVjtJQVhYLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLElBQUksR0FBRyxlQUFlLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO0lBRTVFLEtBQUssQ0FBTTtJQUNYLFFBQVEsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDekIsU0FBUyxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUUxQixzRUFBc0U7SUFDOUQsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUV6QixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7WUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUs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VSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFa0IsRUFBRSxHQUFHLEVBQUUsQ0FBQzt3R0FqRmhCLG1CQUFtQjs0RkFBbkIsbUJBQW1CLHlMQWpCbkI7WUFDVCxZQUFZO1lBQ1o7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDbEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLCtDQUlTOzs7O0dBSVQsMkRBaEJTLFlBQVk7OzRGQWtCWCxtQkFBbUI7a0JBckIvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFNBQVMsRUFBRTt3QkFDVCxZQUFZO3dCQUNaOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDOzRCQUNsRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osV0FBVyxFQUFFLG1CQUFtQjtxQkFDakM7b0JBQ0QsUUFBUSxFQUFFOzs7O0dBSVQ7aUJBQ0Y7aUZBRVUsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBmb3J3YXJkUmVmLCBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5pbXBvcnQge1JhZGlvU2VydmljZX0gZnJvbSAnLi9yYWRpby1zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtcmFkaW8tZ3JvdXAnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgUmFkaW9TZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmFkaW9Hcm91cENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgaG9zdDoge1xuICAgICcoa2V5ZG93biknOiAnb25LZXlkb3duKCRldmVudCknXG4gIH0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbY2xhc3NdPVwiY24oJ2dyaWQgZ2FwLTInLCBjbGFzcylcIiByb2xlPVwicmFkaW9ncm91cFwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgY2xhc3MgPSAnJztcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgbmFtZSA9IGByYWRpby1ncm91cC0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA5KX1gO1xuXG4gIHZhbHVlOiBhbnk7XG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcbiAgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcblxuICAvKiogU3VwcHJlc3NlcyBvbkNoYW5nZSB3aGlsZSBhcHBseWluZyBhIHByb2dyYW1tYXRpYyB3cml0ZVZhbHVlKCkuICovXG4gIHByaXZhdGUgc3VwcHJlc3MgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJhZGlvU2VydmljZTogUmFkaW9TZXJ2aWNlKSB7XG4gICAgdGhpcy5yYWRpb1NlcnZpY2Uuc2VsZWN0ZWRWYWx1ZSQuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgICAgaWYgKCF0aGlzLnN1cHByZXNzKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsKTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLnJhZGlvU2VydmljZS5zZXREaXNhYmxlZChpc0Rpc2FibGVkKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIHRoaXMucmFkaW9TZXJ2aWNlLnNldERpc2FibGVkKHRoaXMuZGlzYWJsZWQpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuc3VwcHJlc3MgPSB0cnVlO1xuICAgIHRoaXMucmFkaW9TZXJ2aWNlLnNlbGVjdCh2YWx1ZSk7XG4gICAgdGhpcy5zdXBwcmVzcyA9IGZhbHNlO1xuICB9XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQgeyB0aGlzLm9uQ2hhbmdlID0gZm47IH1cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQgeyB0aGlzLm9uVG91Y2hlZCA9IGZuOyB9XG5cbiAgLyoqXG4gICAqIFdBSS1BUklBIHJhZGlvIGdyb3VwIGtleWJvYXJkIG5hdjogQXJyb3cgRG93bi9SaWdodCBzZWxlY3QrZm9jdXMgdGhlIG5leHRcbiAgICogZW5hYmxlZCBpdGVtLCBBcnJvdyBVcC9MZWZ0IHRoZSBwcmV2aW91cy4gV3JhcHMgYXJvdW5kIGFuZCBza2lwcyBkaXNhYmxlZFxuICAgKiBpdGVtczsgbW92aW5nIHNlbGVjdGlvbiBhbHNvIG1vdmVzIGZvY3VzLlxuICAgKi9cbiAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcblxuICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleTtcbiAgICBjb25zdCBmb3J3YXJkID0ga2V5ID09PSAnQXJyb3dEb3duJyB8fCBrZXkgPT09ICdBcnJvd1JpZ2h0JztcbiAgICBjb25zdCBiYWNrd2FyZCA9IGtleSA9PT0gJ0Fycm93VXAnIHx8IGtleSA9PT0gJ0Fycm93TGVmdCc7XG4gICAgaWYgKCFmb3J3YXJkICYmICFiYWNrd2FyZCkgcmV0dXJuO1xuXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLnJhZGlvU2VydmljZS5nZXRFbmFibGVkSXRlbXMoKTtcbiAgICBpZiAoIWl0ZW1zLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgbGV0IGN1cnJlbnQgPSB0YXJnZXRcbiAgICAgID8gaXRlbXMuZmluZEluZGV4KGkgPT4gaS5ob3N0RWxlbWVudCA9PT0gdGFyZ2V0IHx8IGkuaG9zdEVsZW1lbnQuY29udGFpbnModGFyZ2V0KSlcbiAgICAgIDogLTE7XG4gICAgaWYgKGN1cnJlbnQgPCAwKSB7XG4gICAgICAvLyBGYWxsIGJhY2sgdG8gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBpdGVtLlxuICAgICAgY3VycmVudCA9IGl0ZW1zLmZpbmRJbmRleChpID0+IGkudmFsdWUgPT09IHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIGxldCBuZXh0OiBudW1iZXI7XG4gICAgaWYgKGN1cnJlbnQgPCAwKSB7XG4gICAgICBuZXh0ID0gZm9yd2FyZCA/IDAgOiBpdGVtcy5sZW5ndGggLSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0ID0gZm9yd2FyZFxuICAgICAgICA/IChjdXJyZW50ICsgMSkgJSBpdGVtcy5sZW5ndGhcbiAgICAgICAgOiAoY3VycmVudCAtIDEgKyBpdGVtcy5sZW5ndGgpICUgaXRlbXMubGVuZ3RoO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldEl0ZW0gPSBpdGVtc1tuZXh0XTtcbiAgICB0aGlzLnJhZGlvU2VydmljZS5zZWxlY3QodGFyZ2V0SXRlbS52YWx1ZSk7XG4gICAgdGFyZ2V0SXRlbS5mb2N1c0l0ZW0oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBjbiA9IGNuO1xufVxuIl19
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9yYWRpby1ncm91cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUE4QixNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7QUF3QjdDLE1BQU0sT0FBTyxtQkFBbUI7SUFZVjtJQVhYLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLElBQUksR0FBRyxlQUFlLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO0lBRTVFLEtBQUssQ0FBTTtJQUNYLFFBQVEsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDekIsU0FBUyxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUUxQixzRUFBc0U7SUFDOUQsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUV6QixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7WUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUs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VSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFa0IsRUFBRSxHQUFHLEVBQUUsQ0FBQzt3R0FqRmhCLG1CQUFtQjs0RkFBbkIsbUJBQW1CLHlMQWpCbkI7WUFDVCxZQUFZO1lBQ1o7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDbEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLCtDQUlTOzs7O0dBSVQsK0ZBaEJTLFlBQVk7OzRGQWtCWCxtQkFBbUI7a0JBdEIvQixTQUFTOytCQUNFLG1CQUFtQixjQUVqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsYUFDWjt3QkFDVCxZQUFZO3dCQUNaOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDOzRCQUNsRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixRQUNLO3dCQUNKLFdBQVcsRUFBRSxtQkFBbUI7cUJBQ2pDLFlBQ1M7Ozs7R0FJVDtpRkFHUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIGZvcndhcmRSZWYsIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcbmltcG9ydCB7UmFkaW9TZXJ2aWNlfSBmcm9tICcuL3JhZGlvLXNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1yYWRpby1ncm91cCcsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9J10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICBSYWRpb1NlcnZpY2UsXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYWRpb0dyb3VwQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBob3N0OiB7XG4gICAgJyhrZXlkb3duKSc6ICdvbktleWRvd24oJGV2ZW50KSdcbiAgfSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtjbGFzc109XCJjbignZ3JpZCBnYXAtMicsIGNsYXNzKVwiIHJvbGU9XCJyYWRpb2dyb3VwXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9Hcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBuYW1lID0gYHJhZGlvLWdyb3VwLSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDkpfWA7XG5cbiAgdmFsdWU6IGFueTtcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xuXG4gIC8qKiBTdXBwcmVzc2VzIG9uQ2hhbmdlIHdoaWxlIGFwcGx5aW5nIGEgcHJvZ3JhbW1hdGljIHdyaXRlVmFsdWUoKS4gKi9cbiAgcHJpdmF0ZSBzdXBwcmVzcyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmFkaW9TZXJ2aWNlOiBSYWRpb1NlcnZpY2UpIHtcbiAgICB0aGlzLnJhZGlvU2VydmljZS5zZWxlY3RlZFZhbHVlJC5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIHRoaXMudmFsdWUgPSB2YWw7XG4gICAgICBpZiAoIXRoaXMuc3VwcHJlc3MpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWwpO1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMucmFkaW9TZXJ2aWNlLnNldERpc2FibGVkKGlzRGlzYWJsZWQpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy5yYWRpb1NlcnZpY2Uuc2V0RGlzYWJsZWQodGhpcy5kaXNhYmxlZCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5zdXBwcmVzcyA9IHRydWU7XG4gICAgdGhpcy5yYWRpb1NlcnZpY2Uuc2VsZWN0KHZhbHVlKTtcbiAgICB0aGlzLnN1cHByZXNzID0gZmFsc2U7XG4gIH1cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7IHRoaXMub25DaGFuZ2UgPSBmbjsgfVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7IHRoaXMub25Ub3VjaGVkID0gZm47IH1cblxuICAvKipcbiAgICogV0FJLUFSSUEgcmFkaW8gZ3JvdXAga2V5Ym9hcmQgbmF2OiBBcnJvdyBEb3duL1JpZ2h0IHNlbGVjdCtmb2N1cyB0aGUgbmV4dFxuICAgKiBlbmFibGVkIGl0ZW0sIEFycm93IFVwL0xlZnQgdGhlIHByZXZpb3VzLiBXcmFwcyBhcm91bmQgYW5kIHNraXBzIGRpc2FibGVkXG4gICAqIGl0ZW1zOyBtb3Zpbmcgc2VsZWN0aW9uIGFsc28gbW92ZXMgZm9jdXMuXG4gICAqL1xuICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgY29uc3Qga2V5ID0gZXZlbnQua2V5O1xuICAgIGNvbnN0IGZvcndhcmQgPSBrZXkgPT09ICdBcnJvd0Rvd24nIHx8IGtleSA9PT0gJ0Fycm93UmlnaHQnO1xuICAgIGNvbnN0IGJhY2t3YXJkID0ga2V5ID09PSAnQXJyb3dVcCcgfHwga2V5ID09PSAnQXJyb3dMZWZ0JztcbiAgICBpZiAoIWZvcndhcmQgJiYgIWJhY2t3YXJkKSByZXR1cm47XG5cbiAgICBjb25zdCBpdGVtcyA9IHRoaXMucmFkaW9TZXJ2aWNlLmdldEVuYWJsZWRJdGVtcygpO1xuICAgIGlmICghaXRlbXMubGVuZ3RoKSByZXR1cm47XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICBsZXQgY3VycmVudCA9IHRhcmdldFxuICAgICAgPyBpdGVtcy5maW5kSW5kZXgoaSA9PiBpLmhvc3RFbGVtZW50ID09PSB0YXJnZXQgfHwgaS5ob3N0RWxlbWVudC5jb250YWlucyh0YXJnZXQpKVxuICAgICAgOiAtMTtcbiAgICBpZiAoY3VycmVudCA8IDApIHtcbiAgICAgIC8vIEZhbGwgYmFjayB0byB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGl0ZW0uXG4gICAgICBjdXJyZW50ID0gaXRlbXMuZmluZEluZGV4KGkgPT4gaS52YWx1ZSA9PT0gdGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgbGV0IG5leHQ6IG51bWJlcjtcbiAgICBpZiAoY3VycmVudCA8IDApIHtcbiAgICAgIG5leHQgPSBmb3J3YXJkID8gMCA6IGl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHQgPSBmb3J3YXJkXG4gICAgICAgID8gKGN1cnJlbnQgKyAxKSAlIGl0ZW1zLmxlbmd0aFxuICAgICAgICA6IChjdXJyZW50IC0gMSArIGl0ZW1zLmxlbmd0aCkgJSBpdGVtcy5sZW5ndGg7XG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0SXRlbSA9IGl0ZW1zW25leHRdO1xuICAgIHRoaXMucmFkaW9TZXJ2aWNlLnNlbGVjdCh0YXJnZXRJdGVtLnZhbHVlKTtcbiAgICB0YXJnZXRJdGVtLmZvY3VzSXRlbSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNuID0gY247XG59XG4iXX0=
@@ -97,15 +97,11 @@ export class RadioItemComponent {
97
97
  <ng-content></ng-content>
98
98
  </label>
99
99
  </div>
100
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
100
+ `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
101
101
  }
102
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RadioItemComponent, decorators: [{
103
103
  type: Component,
104
- args: [{
105
- selector: 'tolle-radio-item',
106
- standalone: true,
107
- imports: [CommonModule],
108
- template: `
104
+ args: [{ selector: 'tolle-radio-item', standalone: true, imports: [CommonModule], template: `
109
105
  <div
110
106
  (click)="!isEffectiveDisabled && select()"
111
107
  [class]="cn(
@@ -138,8 +134,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
138
134
  <ng-content></ng-content>
139
135
  </label>
140
136
  </div>
141
- `
142
- }]
137
+ `, styles: [":host{display:block}\n"] }]
143
138
  }], ctorParameters: () => [{ type: i1.RadioService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { value: [{
144
139
  type: Input
145
140
  }], disabled: [{
@@ -147,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
147
142
  }], class: [{
148
143
  type: Input
149
144
  }] } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3JhZGlvLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvRCxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVoQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBeUNwQyxNQUFNLE9BQU8sa0JBQWtCO0lBa0JuQjtJQUNBO0lBQ0E7SUFuQkQsS0FBSyxDQUFNO0lBQ1gsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRXBCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUN0QixxRUFBcUU7SUFDckUsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUVYLEdBQUcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRWpDLElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFFRCxtRUFBbUU7SUFDbkUsWUFDVSxZQUEwQixFQUMxQixHQUFzQixFQUN0QixFQUEyQjtRQUYzQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixPQUFFLEdBQUYsRUFBRSxDQUF5QjtJQUNsQyxDQUFDO0lBRUosZ0ZBQWdGO0lBQ2hGLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDL0IsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQsU0FBUztRQUNQLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBdUIsQ0FBQztRQUM1RixPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFFBQVE7UUFDTiwrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxxQkFBcUI7UUFDaEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLHdDQUF3QztRQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FDVixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7WUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLHFCQUFxQjtRQUNoRCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMscUJBQXFCO1FBQ2hELENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyx5QkFBeUI7SUFDbkQsQ0FBQztJQUVTLEVBQUUsR0FBRyxFQUFFLENBQUM7d0dBMUVQLGtCQUFrQjs0RkFBbEIsa0JBQWtCLDhJQW5DbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlDVCwyREFsQ1MsWUFBWTs7NEZBb0NYLGtCQUFrQjtrQkF2QzlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ1Q7aUJBQ0Y7MElBRVUsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcbmltcG9ydCB7IFJhZGlvU2VydmljZSwgUm92aW5nUmFkaW9JdGVtIH0gZnJvbSAnLi9yYWRpby1zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1yYWRpby1pdGVtJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgKGNsaWNrKT1cIiFpc0VmZmVjdGl2ZURpc2FibGVkICYmIHNlbGVjdCgpXCJcbiAgICAgIFtjbGFzc109XCJjbihcbiAgICAgICAgJ2ZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMiBncm91cCBweS0xJyxcbiAgICAgICAgaXNFZmZlY3RpdmVEaXNhYmxlZCA/ICdjdXJzb3Itbm90LWFsbG93ZWQgb3BhY2l0eS01MCcgOiAnY3Vyc29yLXBvaW50ZXInXG4gICAgICApXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIHJvbGU9XCJyYWRpb1wiXG4gICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJpc1NlbGVjdGVkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJpc0VmZmVjdGl2ZURpc2FibGVkIHx8IG51bGxcIlxuICAgICAgICBbYXR0ci5kYXRhLXN0YXRlXT1cImlzU2VsZWN0ZWQgPyAnY2hlY2tlZCcgOiAndW5jaGVja2VkJ1wiXG4gICAgICAgIFthdHRyLnRhYmluZGV4XT1cImlzRWZmZWN0aXZlRGlzYWJsZWQgPyAtMSA6IChpc1RhYmJhYmxlID8gMCA6IC0xKVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cImlzRWZmZWN0aXZlRGlzYWJsZWQgPyBudWxsIDogc2VsZWN0KClcIlxuICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJpc0VmZmVjdGl2ZURpc2FibGVkID8gbnVsbCA6IHNlbGVjdCgpOyAkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgIFtjbGFzc109XCJjbihcbiAgICAgICAgJ2FzcGVjdC1zcXVhcmUgaC00IHctNCByb3VuZGVkLWZ1bGwgYm9yZGVyIGJvcmRlci1wcmltYXJ5IHRleHQtcHJpbWFyeSB0cmFuc2l0aW9uLWFsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlcicsXG4gICAgICAgICdvdXRsaW5lLW5vbmUgcmluZy1vZmZzZXQtYmFja2dyb3VuZCBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZyBmb2N1cy12aXNpYmxlOnJpbmctb2Zmc2V0LTInLFxuICAgICAgICAhaXNFZmZlY3RpdmVEaXNhYmxlZCAmJiAnZ3JvdXAtaG92ZXI6Ym9yZGVyLXByaW1hcnkvNzAnLFxuICAgICAgICBpc1NlbGVjdGVkID8gJ2JnLWJhY2tncm91bmQnIDogJ2JnLXRyYW5zcGFyZW50JyxcbiAgICAgICAgY2xhc3NcbiAgICAgIClcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwiaXNTZWxlY3RlZFwiXG4gICAgICAgICAgY2xhc3M9XCJoLTIuNSB3LTIuNSByb3VuZGVkLWZ1bGwgYmctcHJpbWFyeSBhbmltYXRlLWluIHpvb20taW4tNTAgZHVyYXRpb24tMjAwXCJcbiAgICAgICAgPjwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxsYWJlbCBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gbGVhZGluZy1ub25lIHNlbGVjdC1ub25lXCIgW2NsYXNzLmN1cnNvci1wb2ludGVyXT1cIiFpc0VmZmVjdGl2ZURpc2FibGVkXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9JdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIFJvdmluZ1JhZGlvSXRlbSB7XG4gIEBJbnB1dCgpIHZhbHVlOiBhbnk7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG5cbiAgaXNTZWxlY3RlZCA9IGZhbHNlO1xuICBncm91cERpc2FibGVkID0gZmFsc2U7XG4gIC8qKiBXaGV0aGVyIHRoaXMgaXRlbSBpcyB0aGUgc2luZ2xlIHJvdmluZyB0YWIgc3RvcCBmb3IgdGhlIGdyb3VwLiAqL1xuICBpc1RhYmJhYmxlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBzdWIgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgZ2V0IGlzRWZmZWN0aXZlRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5ncm91cERpc2FibGVkO1xuICB9XG5cbiAgLy8gSW5qZWN0IENoYW5nZURldGVjdG9yUmVmIHRvIGVuc3VyZSBVSSB1cGRhdGVzIHdoZW4gc2VydmljZSBlbWl0c1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJhZGlvU2VydmljZTogUmFkaW9TZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICApIHt9XG5cbiAgLy8gLS0tIFJvdmluZ1JhZGlvSXRlbSBjb250cmFjdCAodXNlZCBieSB0aGUgZ3JvdXAvc2VydmljZSBmb3Iga2V5Ym9hcmQgbmF2KSAtLS1cbiAgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgaXNJdGVtRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNFZmZlY3RpdmVEaXNhYmxlZDtcbiAgfVxuXG4gIGZvY3VzSXRlbSgpOiB2b2lkIHtcbiAgICBjb25zdCByYWRpb0VsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tyb2xlPVwicmFkaW9cIl0nKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgcmFkaW9FbD8uZm9jdXMoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIExpc3RlbiBmb3Igc2VsZWN0aW9uIGNoYW5nZXNcbiAgICB0aGlzLnN1Yi5hZGQoXG4gICAgICB0aGlzLnJhZGlvU2VydmljZS5zZWxlY3RlZFZhbHVlJC5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgICAgdGhpcy5pc1NlbGVjdGVkID0gKHZhbCA9PT0gdGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpOyAvLyBUcmlnZ2VyIFVJIHJlZnJlc2hcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIExpc3RlbiBmb3IgZ3JvdXAtbGV2ZWwgZGlzYWJsZWQgc3RhdGVcbiAgICB0aGlzLnN1Yi5hZGQoXG4gICAgICB0aGlzLnJhZGlvU2VydmljZS5kaXNhYmxlZCQuc3Vic2NyaWJlKGRpcyA9PiB7XG4gICAgICAgIHRoaXMuZ3JvdXBEaXNhYmxlZCA9IGRpcztcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7IC8vIFRyaWdnZXIgVUkgcmVmcmVzaFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gTGlzdGVuIGZvciByb3ZpbmcgdGFiaW5kZXggY2hhbmdlcyAod2hpY2ggc2luZ2xlIGl0ZW0gaXMgdGFiLXJlYWNoYWJsZSlcbiAgICB0aGlzLnN1Yi5hZGQoXG4gICAgICB0aGlzLnJhZGlvU2VydmljZS50YWJiYWJsZVZhbHVlJC5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgICAgdGhpcy5pc1RhYmJhYmxlID0gKHZhbCA9PT0gdGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpOyAvLyBUcmlnZ2VyIFVJIHJlZnJlc2hcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMucmFkaW9TZXJ2aWNlLnJlZ2lzdGVyKHRoaXMpO1xuICB9XG5cbiAgc2VsZWN0KCkge1xuICAgIHRoaXMucmFkaW9TZXJ2aWNlLnNlbGVjdCh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmFkaW9TZXJ2aWNlLnVucmVnaXN0ZXIodGhpcyk7XG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTsgLy8gQ2xlYW4gdXAgc3Vic2NyaXB0aW9uc1xuICB9XG5cbiAgcHJvdGVjdGVkIGNuID0gY247XG59XG4iXX0=
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3JhZGlvLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvRCxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVoQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBMENwQyxNQUFNLE9BQU8sa0JBQWtCO0lBa0JuQjtJQUNBO0lBQ0E7SUFuQkQsS0FBSyxDQUFNO0lBQ1gsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRXBCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUN0QixxRUFBcUU7SUFDckUsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUVYLEdBQUcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRWpDLElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFFRCxtRUFBbUU7SUFDbkUsWUFDVSxZQUEwQixFQUMxQixHQUFzQixFQUN0QixFQUEyQjtRQUYzQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixPQUFFLEdBQUYsRUFBRSxDQUF5QjtJQUNsQyxDQUFDO0lBRUosZ0ZBQWdGO0lBQ2hGLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDL0IsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQsU0FBUztRQUNQLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBdUIsQ0FBQztRQUM1RixPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFFBQVE7UUFDTiwrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxxQkFBcUI7UUFDaEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLHdDQUF3QztRQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FDVixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7WUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLHFCQUFxQjtRQUNoRCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMscUJBQXFCO1FBQ2hELENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyx5QkFBeUI7SUFDbkQsQ0FBQztJQUVTLEVBQUUsR0FBRyxFQUFFLENBQUM7d0dBMUVQLGtCQUFrQjs0RkFBbEIsa0JBQWtCLDhJQW5DbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlDVCwrRkFsQ1MsWUFBWTs7NEZBb0NYLGtCQUFrQjtrQkF4QzlCLFNBQVM7K0JBQ0Usa0JBQWtCLGNBRWhCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ1Q7MElBR1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcbmltcG9ydCB7IFJhZGlvU2VydmljZSwgUm92aW5nUmFkaW9JdGVtIH0gZnJvbSAnLi9yYWRpby1zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1yYWRpby1pdGVtJyxcbiAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgKGNsaWNrKT1cIiFpc0VmZmVjdGl2ZURpc2FibGVkICYmIHNlbGVjdCgpXCJcbiAgICAgIFtjbGFzc109XCJjbihcbiAgICAgICAgJ2ZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMiBncm91cCBweS0xJyxcbiAgICAgICAgaXNFZmZlY3RpdmVEaXNhYmxlZCA/ICdjdXJzb3Itbm90LWFsbG93ZWQgb3BhY2l0eS01MCcgOiAnY3Vyc29yLXBvaW50ZXInXG4gICAgICApXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIHJvbGU9XCJyYWRpb1wiXG4gICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJpc1NlbGVjdGVkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJpc0VmZmVjdGl2ZURpc2FibGVkIHx8IG51bGxcIlxuICAgICAgICBbYXR0ci5kYXRhLXN0YXRlXT1cImlzU2VsZWN0ZWQgPyAnY2hlY2tlZCcgOiAndW5jaGVja2VkJ1wiXG4gICAgICAgIFthdHRyLnRhYmluZGV4XT1cImlzRWZmZWN0aXZlRGlzYWJsZWQgPyAtMSA6IChpc1RhYmJhYmxlID8gMCA6IC0xKVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cImlzRWZmZWN0aXZlRGlzYWJsZWQgPyBudWxsIDogc2VsZWN0KClcIlxuICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJpc0VmZmVjdGl2ZURpc2FibGVkID8gbnVsbCA6IHNlbGVjdCgpOyAkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgIFtjbGFzc109XCJjbihcbiAgICAgICAgJ2FzcGVjdC1zcXVhcmUgaC00IHctNCByb3VuZGVkLWZ1bGwgYm9yZGVyIGJvcmRlci1wcmltYXJ5IHRleHQtcHJpbWFyeSB0cmFuc2l0aW9uLWFsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlcicsXG4gICAgICAgICdvdXRsaW5lLW5vbmUgcmluZy1vZmZzZXQtYmFja2dyb3VuZCBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZyBmb2N1cy12aXNpYmxlOnJpbmctb2Zmc2V0LTInLFxuICAgICAgICAhaXNFZmZlY3RpdmVEaXNhYmxlZCAmJiAnZ3JvdXAtaG92ZXI6Ym9yZGVyLXByaW1hcnkvNzAnLFxuICAgICAgICBpc1NlbGVjdGVkID8gJ2JnLWJhY2tncm91bmQnIDogJ2JnLXRyYW5zcGFyZW50JyxcbiAgICAgICAgY2xhc3NcbiAgICAgIClcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwiaXNTZWxlY3RlZFwiXG4gICAgICAgICAgY2xhc3M9XCJoLTIuNSB3LTIuNSByb3VuZGVkLWZ1bGwgYmctcHJpbWFyeSBhbmltYXRlLWluIHpvb20taW4tNTAgZHVyYXRpb24tMjAwXCJcbiAgICAgICAgPjwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxsYWJlbCBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gbGVhZGluZy1ub25lIHNlbGVjdC1ub25lXCIgW2NsYXNzLmN1cnNvci1wb2ludGVyXT1cIiFpc0VmZmVjdGl2ZURpc2FibGVkXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9JdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIFJvdmluZ1JhZGlvSXRlbSB7XG4gIEBJbnB1dCgpIHZhbHVlOiBhbnk7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG5cbiAgaXNTZWxlY3RlZCA9IGZhbHNlO1xuICBncm91cERpc2FibGVkID0gZmFsc2U7XG4gIC8qKiBXaGV0aGVyIHRoaXMgaXRlbSBpcyB0aGUgc2luZ2xlIHJvdmluZyB0YWIgc3RvcCBmb3IgdGhlIGdyb3VwLiAqL1xuICBpc1RhYmJhYmxlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBzdWIgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgZ2V0IGlzRWZmZWN0aXZlRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5ncm91cERpc2FibGVkO1xuICB9XG5cbiAgLy8gSW5qZWN0IENoYW5nZURldGVjdG9yUmVmIHRvIGVuc3VyZSBVSSB1cGRhdGVzIHdoZW4gc2VydmljZSBlbWl0c1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJhZGlvU2VydmljZTogUmFkaW9TZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICApIHt9XG5cbiAgLy8gLS0tIFJvdmluZ1JhZGlvSXRlbSBjb250cmFjdCAodXNlZCBieSB0aGUgZ3JvdXAvc2VydmljZSBmb3Iga2V5Ym9hcmQgbmF2KSAtLS1cbiAgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgaXNJdGVtRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNFZmZlY3RpdmVEaXNhYmxlZDtcbiAgfVxuXG4gIGZvY3VzSXRlbSgpOiB2b2lkIHtcbiAgICBjb25zdCByYWRpb0VsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tyb2xlPVwicmFkaW9cIl0nKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgcmFkaW9FbD8uZm9jdXMoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIExpc3RlbiBmb3Igc2VsZWN0aW9uIGNoYW5nZXNcbiAgICB0aGlzLnN1Yi5hZGQoXG4gICAgICB0aGlzLnJhZGlvU2VydmljZS5zZWxlY3RlZFZhbHVlJC5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgICAgdGhpcy5pc1NlbGVjdGVkID0gKHZhbCA9PT0gdGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpOyAvLyBUcmlnZ2VyIFVJIHJlZnJlc2hcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIExpc3RlbiBmb3IgZ3JvdXAtbGV2ZWwgZGlzYWJsZWQgc3RhdGVcbiAgICB0aGlzLnN1Yi5hZGQoXG4gICAgICB0aGlzLnJhZGlvU2VydmljZS5kaXNhYmxlZCQuc3Vic2NyaWJlKGRpcyA9PiB7XG4gICAgICAgIHRoaXMuZ3JvdXBEaXNhYmxlZCA9IGRpcztcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7IC8vIFRyaWdnZXIgVUkgcmVmcmVzaFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gTGlzdGVuIGZvciByb3ZpbmcgdGFiaW5kZXggY2hhbmdlcyAod2hpY2ggc2luZ2xlIGl0ZW0gaXMgdGFiLXJlYWNoYWJsZSlcbiAgICB0aGlzLnN1Yi5hZGQoXG4gICAgICB0aGlzLnJhZGlvU2VydmljZS50YWJiYWJsZVZhbHVlJC5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgICAgdGhpcy5pc1RhYmJhYmxlID0gKHZhbCA9PT0gdGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpOyAvLyBUcmlnZ2VyIFVJIHJlZnJlc2hcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMucmFkaW9TZXJ2aWNlLnJlZ2lzdGVyKHRoaXMpO1xuICB9XG5cbiAgc2VsZWN0KCkge1xuICAgIHRoaXMucmFkaW9TZXJ2aWNlLnNlbGVjdCh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmFkaW9TZXJ2aWNlLnVucmVnaXN0ZXIodGhpcyk7XG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTsgLy8gQ2xlYW4gdXAgc3Vic2NyaXB0aW9uc1xuICB9XG5cbiAgcHJvdGVjdGVkIGNuID0gY247XG59XG4iXX0=