@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,207 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Injectable, Input, Output, inject, ChangeDetectorRef } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { Subject, 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
+ /**
9
+ * Relays a chosen suggestion from a `tolle-suggestion` up to the
10
+ * `tolle-suggestions` row that contains it, so consumers can listen in one
11
+ * place instead of binding every pill.
12
+ *
13
+ * Provided on `SuggestionsComponent`; injected optionally, since a pill is
14
+ * perfectly usable on its own.
15
+ */
16
+ export class SuggestionsService {
17
+ selectedSource = new Subject();
18
+ /** Emits the value of whichever suggestion the user picked. */
19
+ selected$ = this.selectedSource.asObservable();
20
+ select(value) {
21
+ this.selectedSource.next(value);
22
+ }
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SuggestionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
24
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SuggestionsService });
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SuggestionsService, decorators: [{
27
+ type: Injectable
28
+ }] });
29
+ const suggestionsVariants = cva('flex w-full items-center overflow-x-auto scroll-fade-x', {
30
+ variants: {
31
+ gap: {
32
+ sm: 'gap-1',
33
+ default: 'gap-2',
34
+ lg: 'gap-3',
35
+ },
36
+ },
37
+ defaultVariants: {
38
+ gap: 'default',
39
+ },
40
+ });
41
+ /**
42
+ * A horizontally scrollable row of suggested follow-up prompts.
43
+ *
44
+ * Fill it with `tolle-suggestion` pills and listen to this component's
45
+ * `selected` output to react to any of them.
46
+ */
47
+ export class SuggestionsComponent {
48
+ cdr = inject(ChangeDetectorRef);
49
+ /**
50
+ * Angular writes a bound `class` input through its styling path, which does
51
+ * not mark an OnPush component dirty — without this hook the component keeps
52
+ * rendering the class it was born with.
53
+ */
54
+ ngOnChanges() {
55
+ this.cdr.markForCheck();
56
+ }
57
+ /** Spacing between the pills. @default 'default' */
58
+ gap = 'default';
59
+ /** Accessible name for the row. @default 'Suggestions' */
60
+ ariaLabel = 'Suggestions';
61
+ /** Extra Tailwind classes merged onto the row via `cn()` (last-wins). */
62
+ class = '';
63
+ /** Emitted with the `value` of whichever suggestion in the row was picked. */
64
+ selected = new EventEmitter();
65
+ service = inject(SuggestionsService);
66
+ subscriptions = new Subscription();
67
+ ngOnInit() {
68
+ this.subscriptions.add(this.service.selected$.subscribe((value) => this.selected.emit(value)));
69
+ }
70
+ ngOnDestroy() {
71
+ this.subscriptions.unsubscribe();
72
+ }
73
+ get computedClass() {
74
+ return cn(suggestionsVariants({ gap: this.gap }), this.class);
75
+ }
76
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SuggestionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
77
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SuggestionsComponent, isStandalone: true, selector: "tolle-suggestions", inputs: { gap: "gap", ariaLabel: "ariaLabel", class: "class" }, outputs: { selected: "selected" }, providers: [SuggestionsService], usesOnChanges: true, ngImport: i0, template: `
78
+ <div [class]="computedClass" role="group" [attr.aria-label]="ariaLabel || null">
79
+ <ng-content></ng-content>
80
+ </div>
81
+ `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
82
+ }
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SuggestionsComponent, decorators: [{
84
+ type: Component,
85
+ args: [{ selector: 'tolle-suggestions', standalone: true, imports: [CommonModule], providers: [SuggestionsService], changeDetection: ChangeDetectionStrategy.OnPush, template: `
86
+ <div [class]="computedClass" role="group" [attr.aria-label]="ariaLabel || null">
87
+ <ng-content></ng-content>
88
+ </div>
89
+ `, styles: [":host{display:block}\n"] }]
90
+ }], propDecorators: { gap: [{
91
+ type: Input
92
+ }], ariaLabel: [{
93
+ type: Input
94
+ }], class: [{
95
+ type: Input
96
+ }], selected: [{
97
+ type: Output
98
+ }] } });
99
+ const suggestionVariants = cva('inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-full border transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50', {
100
+ variants: {
101
+ variant: {
102
+ outline: 'border-border bg-background text-foreground hover:bg-accent hover:text-accent-foreground',
103
+ secondary: 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',
104
+ ghost: 'border-transparent bg-transparent text-muted-foreground hover:bg-accent hover:text-accent-foreground',
105
+ },
106
+ size: {
107
+ sm: 'h-7 px-2.5 text-xs',
108
+ default: 'h-8 px-3 text-sm',
109
+ lg: 'h-10 px-4 text-sm',
110
+ },
111
+ },
112
+ defaultVariants: {
113
+ variant: 'outline',
114
+ size: 'default',
115
+ },
116
+ });
117
+ /**
118
+ * A single suggested follow-up prompt, rendered as a pill button.
119
+ *
120
+ * Projected content is the label; `value` is what gets emitted when it is
121
+ * picked, so the two can differ.
122
+ * @new
123
+ */
124
+ export class SuggestionComponent {
125
+ cdr = inject(ChangeDetectorRef);
126
+ /**
127
+ * Angular writes a bound `class` input through its styling path, which does
128
+ * not mark an OnPush component dirty — without this hook the component keeps
129
+ * rendering the class it was born with.
130
+ */
131
+ ngOnChanges() {
132
+ this.cdr.markForCheck();
133
+ }
134
+ /** Value emitted when the pill is picked. @default '' */
135
+ value = '';
136
+ /** Visual style of the pill. @default 'outline' */
137
+ variant = 'outline';
138
+ /** Size of the pill. @default 'default' */
139
+ size = 'default';
140
+ /** Remixicon class shown before the label. @default '' */
141
+ icon = '';
142
+ /** Blocks interaction with the pill. @default false */
143
+ disabled = false;
144
+ /** Accessible name, when the projected label is not descriptive enough. @default '' */
145
+ ariaLabel = '';
146
+ /** Extra Tailwind classes merged onto the pill via `cn()` (last-wins). */
147
+ class = '';
148
+ /** Emitted with this pill's `value` when it is picked. */
149
+ selected = new EventEmitter();
150
+ parent = inject(SuggestionsService, { optional: true });
151
+ get computedClass() {
152
+ return cn(suggestionVariants({ variant: this.variant, size: this.size }), this.class);
153
+ }
154
+ onClick() {
155
+ if (this.disabled)
156
+ return;
157
+ this.selected.emit(this.value);
158
+ this.parent?.select(this.value);
159
+ }
160
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SuggestionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
161
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SuggestionComponent, isStandalone: true, selector: "tolle-suggestion", inputs: { value: "value", variant: "variant", size: "size", icon: "icon", disabled: "disabled", ariaLabel: "ariaLabel", class: "class" }, outputs: { selected: "selected" }, usesOnChanges: true, ngImport: i0, template: `
162
+ <button
163
+ type="button"
164
+ data-suggestion
165
+ [disabled]="disabled"
166
+ [attr.aria-label]="ariaLabel || null"
167
+ [class]="computedClass"
168
+ (click)="onClick()"
169
+ >
170
+ <i *ngIf="icon" [class]="icon" aria-hidden="true"></i>
171
+ <ng-content></ng-content>
172
+ </button>
173
+ `, isInline: true, styles: [":host{display:inline-flex}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
174
+ }
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SuggestionComponent, decorators: [{
176
+ type: Component,
177
+ args: [{ selector: 'tolle-suggestion', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
178
+ <button
179
+ type="button"
180
+ data-suggestion
181
+ [disabled]="disabled"
182
+ [attr.aria-label]="ariaLabel || null"
183
+ [class]="computedClass"
184
+ (click)="onClick()"
185
+ >
186
+ <i *ngIf="icon" [class]="icon" aria-hidden="true"></i>
187
+ <ng-content></ng-content>
188
+ </button>
189
+ `, styles: [":host{display:inline-flex}\n"] }]
190
+ }], propDecorators: { value: [{
191
+ type: Input
192
+ }], variant: [{
193
+ type: Input
194
+ }], size: [{
195
+ type: Input
196
+ }], icon: [{
197
+ type: Input
198
+ }], disabled: [{
199
+ type: Input
200
+ }], ariaLabel: [{
201
+ type: Input
202
+ }], class: [{
203
+ type: Input
204
+ }], selected: [{
205
+ type: Output
206
+ }] } });
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VnZ2VzdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3N1Z2dlc3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckssT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxHQUFHLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7O0FBRWhDOzs7Ozs7O0dBT0c7QUFFSCxNQUFNLE9BQU8sa0JBQWtCO0lBQ1osY0FBYyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7SUFDeEQsK0RBQStEO0lBQ3RELFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRXhELE1BQU0sQ0FBQyxLQUFhO1FBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7d0dBUFUsa0JBQWtCOzRHQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVU7O0FBV1gsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUMsd0RBQXdELEVBQUU7SUFDeEYsUUFBUSxFQUFFO1FBQ1IsR0FBRyxFQUFFO1lBQ0gsRUFBRSxFQUFFLE9BQU87WUFDWCxPQUFPLEVBQUUsT0FBTztZQUNoQixFQUFFLEVBQUUsT0FBTztTQUNaO0tBQ0Y7SUFDRCxlQUFlLEVBQUU7UUFDZixHQUFH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ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgaW5qZWN0LCBDaGFuZ2VEZXRlY3RvclJlZiwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjdmEsIHR5cGUgVmFyaWFudFByb3BzIH0gZnJvbSAnY2xhc3MtdmFyaWFuY2UtYXV0aG9yaXR5JztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbi8qKlxuICogUmVsYXlzIGEgY2hvc2VuIHN1Z2dlc3Rpb24gZnJvbSBhIGB0b2xsZS1zdWdnZXN0aW9uYCB1cCB0byB0aGVcbiAqIGB0b2xsZS1zdWdnZXN0aW9uc2Agcm93IHRoYXQgY29udGFpbnMgaXQsIHNvIGNvbnN1bWVycyBjYW4gbGlzdGVuIGluIG9uZVxuICogcGxhY2UgaW5zdGVhZCBvZiBiaW5kaW5nIGV2ZXJ5IHBpbGwuXG4gKlxuICogUHJvdmlkZWQgb24gYFN1Z2dlc3Rpb25zQ29tcG9uZW50YDsgaW5qZWN0ZWQgb3B0aW9uYWxseSwgc2luY2UgYSBwaWxsIGlzXG4gKiBwZXJmZWN0bHkgdXNhYmxlIG9uIGl0cyBvd24uXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTdWdnZXN0aW9uc1NlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHNlbGVjdGVkU291cmNlID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICAvKiogRW1pdHMgdGhlIHZhbHVlIG9mIHdoaWNoZXZlciBzdWdnZXN0aW9uIHRoZSB1c2VyIHBpY2tlZC4gKi9cbiAgcmVhZG9ubHkgc2VsZWN0ZWQkID0gdGhpcy5zZWxlY3RlZFNvdXJjZS5hc09ic2VydmFibGUoKTtcblxuICBzZWxlY3QodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRTb3VyY2UubmV4dCh2YWx1ZSk7XG4gIH1cbn1cblxuY29uc3Qgc3VnZ2VzdGlvbnNWYXJpYW50cyA9IGN2YSgnZmxleCB3LWZ1bGwgaXRlbXMtY2VudGVyIG92ZXJmbG93LXgtYXV0byBzY3JvbGwtZmFkZS14Jywge1xuICB2YXJpYW50czoge1xuICAgIGdhcDoge1xuICAgICAgc206ICdnYXAtMScsXG4gICAgICBkZWZhdWx0OiAnZ2FwLTInLFxuICAgICAgbGc6ICdnYXAtMycsXG4gICAgfSxcbiAgfSxcbiAgZGVmYXVsdFZhcmlhbnRzOiB7XG4gICAgZ2FwOiAnZGVmYXVsdCcsXG4gIH0sXG59KTtcblxuZXhwb3J0IHR5cGUgU3VnZ2VzdGlvbnNQcm9wcyA9IFZhcmlhbnRQcm9wczx0eXBlb2Ygc3VnZ2VzdGlvbnNWYXJpYW50cz47XG5cbi8qKlxuICogQSBob3Jpem9udGFsbHkgc2Nyb2xsYWJsZSByb3cgb2Ygc3VnZ2VzdGVkIGZvbGxvdy11cCBwcm9tcHRzLlxuICpcbiAqIEZpbGwgaXQgd2l0aCBgdG9sbGUtc3VnZ2VzdGlvbmAgcGlsbHMgYW5kIGxpc3RlbiB0byB0aGlzIGNvbXBvbmVudCdzXG4gKiBgc2VsZWN0ZWRgIG91dHB1dCB0byByZWFjdCB0byBhbnkgb2YgdGhlbS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc3VnZ2VzdGlvbnMnLFxuICBzdHlsZXM6IFsnOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgfSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbU3VnZ2VzdGlvbnNTZXJ2aWNlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbY2xhc3NdPVwiY29tcHV0ZWRDbGFzc1wiIHJvbGU9XCJncm91cFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsIHx8IG51bGxcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgU3VnZ2VzdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIC8qKlxuICAgKiBBbmd1bGFyIHdyaXRlcyBhIGJvdW5kIGBjbGFzc2AgaW5wdXQgdGhyb3VnaCBpdHMgc3R5bGluZyBwYXRoLCB3aGljaCBkb2VzXG4gICAqIG5vdCBtYXJrIGFuIE9uUHVzaCBjb21wb25lbnQgZGlydHkg4oCUIHdpdGhvdXQgdGhpcyBob29rIHRoZSBjb21wb25lbnQga2VlcHNcbiAgICogcmVuZGVyaW5nIHRoZSBjbGFzcyBpdCB3YXMgYm9ybiB3aXRoLlxuICAgKi9cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogU3BhY2luZyBiZXR3ZWVuIHRoZSBwaWxscy4gQGRlZmF1bHQgJ2RlZmF1bHQnICovXG4gIEBJbnB1dCgpIGdhcDogU3VnZ2VzdGlvbnNQcm9wc1snZ2FwJ10gPSAnZGVmYXVsdCc7XG4gIC8qKiBBY2Nlc3NpYmxlIG5hbWUgZm9yIHRoZSByb3cuIEBkZWZhdWx0ICdTdWdnZXN0aW9ucycgKi9cbiAgQElucHV0KCkgYXJpYUxhYmVsID0gJ1N1Z2dlc3Rpb25zJztcbiAgLyoqIEV4dHJhIFRhaWx3aW5kIGNsYXNzZXMgbWVyZ2VkIG9udG8gdGhlIHJvdyB2aWEgYGNuKClgIChsYXN0LXdpbnMpLiAqL1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuXG4gIC8qKiBFbWl0dGVkIHdpdGggdGhlIGB2YWx1ZWAgb2Ygd2hpY2hldmVyIHN1Z2dlc3Rpb24gaW4gdGhlIHJvdyB3YXMgcGlja2VkLiAqL1xuICBAT3V0cHV0KCkgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2UgPSBpbmplY3QoU3VnZ2VzdGlvbnNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnNlcnZpY2Uuc2VsZWN0ZWQkLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMuc2VsZWN0ZWQuZW1pdCh2YWx1ZSkpXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKHN1Z2dlc3Rpb25zVmFyaWFudHMoeyBnYXA6IHRoaXMuZ2FwIH0pLCB0aGlzLmNsYXNzKTtcbiAgfVxufVxuXG5jb25zdCBzdWdnZXN0aW9uVmFyaWFudHMgPSBjdmEoXG4gICdpbmxpbmUtZmxleCBzaHJpbmstMCBpdGVtcy1jZW50ZXIgZ2FwLTEuNSB3aGl0ZXNwYWNlLW5vd3JhcCByb3VuZGVkLWZ1bGwgYm9yZGVyIHRyYW5zaXRpb24tY29sb3JzIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMiBmb2N1cy12aXNpYmxlOnJpbmctb2Zmc2V0LWJhY2tncm91bmQgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkaXNhYmxlZDpvcGFjaXR5LTUwJyxcbiAge1xuICAgIHZhcmlhbnRzOiB7XG4gICAgICB2YXJpYW50OiB7XG4gICAgICAgIG91dGxpbmU6ICdib3JkZXItYm9yZGVyIGJnLWJhY2tncm91bmQgdGV4dC1mb3JlZ3JvdW5kIGhvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kJyxcbiAgICAgICAgc2Vjb25kYXJ5OiAnYm9yZGVyLXRyYW5zcGFyZW50IGJnLXNlY29uZGFyeSB0ZXh0LXNlY29uZGFyeS1mb3JlZ3JvdW5kIGhvdmVyOmJnLXNlY29uZGFyeS84MCcsXG4gICAgICAgIGdob3N0OiAnYm9yZGVyLXRyYW5zcGFyZW50IGJnLXRyYW5zcGFyZW50IHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCcsXG4gICAgICB9LFxuICAgICAgc2l6ZToge1xuICAgICAgICBzbTogJ2gtNyBweC0yLjUgdGV4dC14cycsXG4gICAgICAgIGRlZmF1bHQ6ICdoLTggcHgtMyB0ZXh0LXNtJyxcbiAgICAgICAgbGc6ICdoLTEwIHB4LTQgdGV4dC1zbScsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZGVmYXVsdFZhcmlhbnRzOiB7XG4gICAgICB2YXJpYW50OiAnb3V0bGluZScsXG4gICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgfSxcbiAgfVxuKTtcblxuZXhwb3J0IHR5cGUgU3VnZ2VzdGlvblByb3BzID0gVmFyaWFudFByb3BzPHR5cGVvZiBzdWdnZXN0aW9uVmFyaWFudHM+O1xuXG4vKipcbiAqIEEgc2luZ2xlIHN1Z2dlc3RlZCBmb2xsb3ctdXAgcHJvbXB0LCByZW5kZXJlZCBhcyBhIHBpbGwgYnV0dG9uLlxuICpcbiAqIFByb2plY3RlZCBjb250ZW50IGlzIHRoZSBsYWJlbDsgYHZhbHVlYCBpcyB3aGF0IGdldHMgZW1pdHRlZCB3aGVuIGl0IGlzXG4gKiBwaWNrZWQsIHNvIHRoZSB0d28gY2FuIGRpZmZlci5cbiAqIEBuZXdcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc3VnZ2VzdGlvbicsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyB9J10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGRhdGEtc3VnZ2VzdGlvblxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsIHx8IG51bGxcIlxuICAgICAgW2NsYXNzXT1cImNvbXB1dGVkQ2xhc3NcIlxuICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gICAgPlxuICAgICAgPGkgKm5nSWY9XCJpY29uXCIgW2NsYXNzXT1cImljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9idXR0b24+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFN1Z2dlc3Rpb25Db21wb25lbnQgIGltcGxlbWVudHMgT25DaGFuZ2Vze1xuICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgLyoqXG4gICAqIEFuZ3VsYXIgd3JpdGVzIGEgYm91bmQgYGNsYXNzYCBpbnB1dCB0aHJvdWdoIGl0cyBzdHlsaW5nIHBhdGgsIHdoaWNoIGRvZXNcbiAgICogbm90IG1hcmsgYW4gT25QdXNoIGNvbXBvbmVudCBkaXJ0eSDigJQgd2l0aG91dCB0aGlzIGhvb2sgdGhlIGNvbXBvbmVudCBrZWVwc1xuICAgKiByZW5kZXJpbmcgdGhlIGNsYXNzIGl0IHdhcyBib3JuIHdpdGguXG4gICAqL1xuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKiBWYWx1ZSBlbWl0dGVkIHdoZW4gdGhlIHBpbGwgaXMgcGlja2VkLiBAZGVmYXVsdCAnJyAqL1xuICBASW5wdXQoKSB2YWx1ZSA9ICcnO1xuICAvKiogVmlzdWFsIHN0eWxlIG9mIHRoZSBwaWxsLiBAZGVmYXVsdCAnb3V0bGluZScgKi9cbiAgQElucHV0KCkgdmFyaWFudDogU3VnZ2VzdGlvblByb3BzWyd2YXJpYW50J10gPSAnb3V0bGluZSc7XG4gIC8qKiBTaXplIG9mIHRoZSBwaWxsLiBAZGVmYXVsdCAnZGVmYXVsdCcgKi9cbiAgQElucHV0KCkgc2l6ZTogU3VnZ2VzdGlvblByb3BzWydzaXplJ10gPSAnZGVmYXVsdCc7XG4gIC8qKiBSZW1peGljb24gY2xhc3Mgc2hvd24gYmVmb3JlIHRoZSBsYWJlbC4gQGRlZmF1bHQgJycgKi9cbiAgQElucHV0KCkgaWNvbiA9ICcnO1xuICAvKiogQmxvY2tzIGludGVyYWN0aW9uIHdpdGggdGhlIHBpbGwuIEBkZWZhdWx0IGZhbHNlICovXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIC8qKiBBY2Nlc3NpYmxlIG5hbWUsIHdoZW4gdGhlIHByb2plY3RlZCBsYWJlbCBpcyBub3QgZGVzY3JpcHRpdmUgZW5vdWdoLiBAZGVmYXVsdCAnJyAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWwgPSAnJztcbiAgLyoqIEV4dHJhIFRhaWx3aW5kIGNsYXNzZXMgbWVyZ2VkIG9udG8gdGhlIHBpbGwgdmlhIGBjbigpYCAobGFzdC13aW5zKS4gKi9cbiAgQElucHV0KCkgY2xhc3MgPSAnJztcblxuICAvKiogRW1pdHRlZCB3aXRoIHRoaXMgcGlsbCdzIGB2YWx1ZWAgd2hlbiBpdCBpcyBwaWNrZWQuICovXG4gIEBPdXRwdXQoKSBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcGFyZW50ID0gaW5qZWN0KFN1Z2dlc3Rpb25zU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBnZXQgY29tcHV0ZWRDbGFzcygpIHtcbiAgICByZXR1cm4gY24oc3VnZ2VzdGlvblZhcmlhbnRzKHsgdmFyaWFudDogdGhpcy52YXJpYW50LCBzaXplOiB0aGlzLnNpemUgfSksIHRoaXMuY2xhc3MpO1xuICB9XG5cbiAgb25DbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLnBhcmVudD8uc2VsZWN0KHRoaXMudmFsdWUpO1xuICB9XG59XG4iXX0=
@@ -100,22 +100,17 @@ export class SwitchComponent {
100
100
  >
101
101
  <span [class]="thumbClass"></span>
102
102
  </button>
103
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
103
+ `, isInline: true, styles: [":host{display:inline-flex}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
104
104
  }
105
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwitchComponent, decorators: [{
106
106
  type: Component,
107
- args: [{
108
- selector: 'tolle-switch',
109
- standalone: true,
110
- imports: [CommonModule],
111
- providers: [
107
+ args: [{ selector: 'tolle-switch', standalone: true, imports: [CommonModule], providers: [
112
108
  {
113
109
  provide: NG_VALUE_ACCESSOR,
114
110
  useExisting: forwardRef(() => SwitchComponent),
115
111
  multi: true
116
112
  }
117
- ],
118
- template: `
113
+ ], template: `
119
114
  <button
120
115
  type="button"
121
116
  role="switch"
@@ -127,8 +122,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
127
122
  >
128
123
  <span [class]="thumbClass"></span>
129
124
  </button>
130
- `
131
- }]
125
+ `, styles: [":host{display:inline-flex}\n"] }]
132
126
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { class: [{
133
127
  type: Input
134
128
  }], disabled: [{
@@ -136,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
136
130
  }], size: [{
137
131
  type: Input
138
132
  }] } });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvc3dpdGNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLEdBQUcsRUFBcUIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUVoQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FDN0IsMlNBQTJTLEVBQzNTO0lBQ0UsUUFBUSxFQUFFO1FBQ1IsSUFBSSxFQUFFO1lBQ0osRUFBRSxFQUFFLFNBQVM7WUFDYixFQUFFLEVBQUUsU0FBUztZQUNiLE9BQU8sRUFBRSxVQUFVO1lBQ25CLEVBQUUsRUFBRSxpQkFBaUI7U0FDdEI7UUFDRCxPQUFPLEVBQUU7WUFDUCxJQUFJLEVBQUUsWUFBWTtZQUNsQixLQUFLLEVBQUUsVUFBVTtTQUNsQjtLQUNGO0lBQ0QsZUFBZSxFQUFFO1FBQ2YsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUUsS0FBSztLQUNmO0NBQ0YsQ0FDRixDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQzdCLDRGQUE0RixFQUM1RjtJQUNFLFFBQVEsRUFBRTtRQUNSLElBQUksRUFBRTtZQUNKLEVBQUUsRUFBRSxTQUFTO1lBQ2IsRUFBRSxFQUFFLFNBQVM7WUFDYixPQUFPLEVBQUUsU0FBUztZQUNsQixFQUFFLEVBQUUsU0FBUztTQUNkO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFL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QUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO29CQUNELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7O0dBWVQ7aUJBQ0Y7c0ZBR1UsS0FBSztzQkFBYixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgZm9yd2FyZFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjdmEsIHR5cGUgVmFyaWFudFByb3BzIH0gZnJvbSAnY2xhc3MtdmFyaWFuY2UtYXV0aG9yaXR5JztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbmNvbnN0IHN3aXRjaFRyYWNrVmFyaWFudHMgPSBjdmEoXG4gICdwZWVyIGlubGluZS1mbGV4IHNocmluay0wIGN1cnNvci1wb2ludGVyIGl0ZW1zLWNlbnRlciByb3VuZGVkLWZ1bGwgYm9yZGVyLTIgYm9yZGVyLXRyYW5zcGFyZW50IHRyYW5zaXRpb24tY29sb3JzIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMiBmb2N1cy12aXNpYmxlOnJpbmctb2Zmc2V0LWJhY2tncm91bmQgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIGRpc2FibGVkOm9wYWNpdHktNTAnLFxuICB7XG4gICAgdmFyaWFudHM6IHtcbiAgICAgIHNpemU6IHtcbiAgICAgICAgeHM6ICdoLTQgdy03JyxcbiAgICAgICAgc206ICdoLTUgdy05JyxcbiAgICAgICAgZGVmYXVsdDogJ2gtNiB3LTExJyxcbiAgICAgICAgbGc6ICdoLTcgdy1bMy4yNXJlbV0nLFxuICAgICAgfSxcbiAgICAgIGNoZWNrZWQ6IHtcbiAgICAgICAgdHJ1ZTogJ2JnLXByaW1hcnknLFxuICAgICAgICBmYWxzZTogJ2JnLWlucHV0JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZhdWx0VmFyaWFudHM6IHtcbiAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgIH0sXG4gIH1cbik7XG5cbmNvbnN0IHN3aXRjaFRodW1iVmFyaWFudHMgPSBjdmEoXG4gICdwb2ludGVyLWV2ZW50cy1ub25lIGJsb2NrIHJvdW5kZWQtZnVsbCBiZy1iYWNrZ3JvdW5kIHNoYWRvdy1sZyByaW5nLTAgdHJhbnNpdGlvbi10cmFuc2Zvcm0nLFxuICB7XG4gICAgdmFyaWFudHM6IHtcbiAgICAgIHNpemU6IHtcbiAgICAgICAgeHM6ICdoLTMgdy0zJyxcbiAgICAgICAgc206ICdoLTQgdy00JyxcbiAgICAgICAgZGVmYXVsdDogJ2gtNSB3LTUnLFxuICAgICAgICBsZzogJ2gtNiB3LTYnLFxuICAgICAgfSxcbiAgICAgIGNoZWNrZWQ6IHtcbiAgICAgICAgdHJ1ZTogJycsXG4gICAgICAgIGZhbHNlOiAndHJhbnNsYXRlLXgtMCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY29tcG91bmRWYXJpYW50czogW1xuICAgICAgeyBzaXplOiAneHMnLCBjaGVja2VkOiB0cnVlLCBjbGFzczogJ3RyYW5zbGF0ZS14LTMnIH0sXG4gICAgICB7IHNpemU6ICdzbScsIGNoZWNrZWQ6IHRydWUsIGNsYXNzOiAndHJhbnNsYXRlLXgtNCcgfSxcbiAgICAgIHsgc2l6ZTogJ2RlZmF1bHQnLCBjaGVja2VkOiB0cnVlLCBjbGFzczogJ3RyYW5zbGF0ZS14LTUnIH0sXG4gICAgICB7IHNpemU6ICdsZycsIGNoZWNrZWQ6IHRydWUsIGNsYXNzOiAndHJhbnNsYXRlLXgtNicgfSxcbiAgICBdLFxuICAgIGRlZmF1bHRWYXJpYW50czoge1xuICAgICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgfSxcbiAgfVxuKTtcblxuZXhwb3J0IHR5cGUgU3dpdGNoUHJvcHMgPSBWYXJpYW50UHJvcHM8dHlwZW9mIHN3aXRjaFRyYWNrVmFyaWFudHM+O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1zd2l0Y2gnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTd2l0Y2hDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICByb2xlPVwic3dpdGNoXCJcbiAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICAgIFthdHRyLmRhdGEtc3RhdGVdPVwiY2hlY2tlZCA/ICdjaGVja2VkJyA6ICd1bmNoZWNrZWQnXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgICAgW2NsYXNzXT1cInRyYWNrQ2xhc3NcIlxuICAgID5cbiAgICAgIDxzcGFuIFtjbGFzc109XCJ0aHVtYkNsYXNzXCI+PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIFN3aXRjaENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgLyoqIEV4dHJhIFRhaWx3aW5kIGNsYXNzZXMgbWVyZ2VkIG9udG8gdGhlIHN3aXRjaCB0cmFjayB2aWEgYGNuKClgIChsYXN0LXdpbnMpLiAqL1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuICAvKiogRGlzYWJsZXMgdGhlIHN3aXRjaCBhbmQgYmxvY2tzIHRvZ2dsaW5nLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAvKiogU2l6ZSBvZiB0aGUgc3dpdGNoLiBAZGVmYXVsdCAnZGVmYXVsdCcgKi9cbiAgQElucHV0KCkgc2l6ZTogU3dpdGNoUHJvcHNbJ3NpemUnXSA9ICdkZWZhdWx0JztcblxuICBjaGVja2VkID0gZmFsc2U7XG5cbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBnZXQgdHJhY2tDbGFzcygpIHtcbiAgICByZXR1cm4gY24oXG4gICAgICBzd2l0Y2hUcmFja1ZhcmlhbnRzKHsgc2l6ZTogdGhpcy5zaXplLCBjaGVja2VkOiB0aGlzLmNoZWNrZWQgfSksXG4gICAgICB0aGlzLmNsYXNzXG4gICAgKTtcbiAgfVxuXG4gIGdldCB0aHVtYkNsYXNzKCkge1xuICAgIHJldHVybiBjbihzd2l0Y2hUaHVtYlZhcmlhbnRzKHsgc2l6ZTogdGhpcy5zaXplLCBjaGVja2VkOiB0aGlzLmNoZWNrZWQgfSkpO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuY2hlY2tlZCk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIC8vIC0tLSBDb250cm9sVmFsdWVBY2Nlc3NvciAtLS1cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tlZCA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7IHRoaXMub25DaGFuZ2UgPSBmbjsgfVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7IHRoaXMub25Ub3VjaGVkID0gZm47IH1cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7IHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkOyB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTsgfVxufVxuIl19
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvc3dpdGNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLEdBQUcsRUFBcUIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUVoQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FDN0IsMlNBQTJTLEVBQzNTO0lBQ0UsUUFBUSxFQUFFO1FBQ1IsSUFBSSxFQUFFO1lBQ0osRUFBRSxFQUFFLFNBQVM7WUFDYixFQUFFLEVBQUUsU0FBUztZQUNiLE9BQU8sRUFBRSxVQUFVO1lBQ25CLEVBQUUsRUFBRSxpQkFBaUI7U0FDdEI7UUFDRCxPQUFPLEVBQUU7WUFDUCxJQUFJLEVBQUUsWUFBWTtZQUNsQixLQUFLLEVBQUUsVUFBVTtTQUNsQjtLQUNGO0lBQ0QsZUFBZSxFQUFFO1FBQ2YsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUUsS0FBSztLQUNmO0NBQ0YsQ0FDRixDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQzdCLDRGQUE0RixFQUM1RjtJQUNFLFFBQVEsRUFBRTtRQUNSLElBQUksRUFBRTtZQUNKLEVBQUUsRUFBRSxTQUFTO1lBQ2IsRUFBRSxFQUFFLFNBQVM7WUFDYixPQUFPLEVBQUUsU0FBUztZQUNsQixFQUFFLEVBQUUsU0FBUztTQUNkO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFL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LENBQUMsYUFDWjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQzs0QkFDOUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsWUFDUzs7Ozs7Ozs7Ozs7O0dBWVQ7c0ZBSVEsS0FBSztzQkFBYixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgZm9yd2FyZFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjdmEsIHR5cGUgVmFyaWFudFByb3BzIH0gZnJvbSAnY2xhc3MtdmFyaWFuY2UtYXV0aG9yaXR5JztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbmNvbnN0IHN3aXRjaFRyYWNrVmFyaWFudHMgPSBjdmEoXG4gICdwZWVyIGlubGluZS1mbGV4IHNocmluay0wIGN1cnNvci1wb2ludGVyIGl0ZW1zLWNlbnRlciByb3VuZGVkLWZ1bGwgYm9yZGVyLTIgYm9yZGVyLXRyYW5zcGFyZW50IHRyYW5zaXRpb24tY29sb3JzIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMiBmb2N1cy12aXNpYmxlOnJpbmctb2Zmc2V0LWJhY2tncm91bmQgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIGRpc2FibGVkOm9wYWNpdHktNTAnLFxuICB7XG4gICAgdmFyaWFudHM6IHtcbiAgICAgIHNpemU6IHtcbiAgICAgICAgeHM6ICdoLTQgdy03JyxcbiAgICAgICAgc206ICdoLTUgdy05JyxcbiAgICAgICAgZGVmYXVsdDogJ2gtNiB3LTExJyxcbiAgICAgICAgbGc6ICdoLTcgdy1bMy4yNXJlbV0nLFxuICAgICAgfSxcbiAgICAgIGNoZWNrZWQ6IHtcbiAgICAgICAgdHJ1ZTogJ2JnLXByaW1hcnknLFxuICAgICAgICBmYWxzZTogJ2JnLWlucHV0JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZhdWx0VmFyaWFudHM6IHtcbiAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgIH0sXG4gIH1cbik7XG5cbmNvbnN0IHN3aXRjaFRodW1iVmFyaWFudHMgPSBjdmEoXG4gICdwb2ludGVyLWV2ZW50cy1ub25lIGJsb2NrIHJvdW5kZWQtZnVsbCBiZy1iYWNrZ3JvdW5kIHNoYWRvdy1sZyByaW5nLTAgdHJhbnNpdGlvbi10cmFuc2Zvcm0nLFxuICB7XG4gICAgdmFyaWFudHM6IHtcbiAgICAgIHNpemU6IHtcbiAgICAgICAgeHM6ICdoLTMgdy0zJyxcbiAgICAgICAgc206ICdoLTQgdy00JyxcbiAgICAgICAgZGVmYXVsdDogJ2gtNSB3LTUnLFxuICAgICAgICBsZzogJ2gtNiB3LTYnLFxuICAgICAgfSxcbiAgICAgIGNoZWNrZWQ6IHtcbiAgICAgICAgdHJ1ZTogJycsXG4gICAgICAgIGZhbHNlOiAndHJhbnNsYXRlLXgtMCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY29tcG91bmRWYXJpYW50czogW1xuICAgICAgeyBzaXplOiAneHMnLCBjaGVja2VkOiB0cnVlLCBjbGFzczogJ3RyYW5zbGF0ZS14LTMnIH0sXG4gICAgICB7IHNpemU6ICdzbScsIGNoZWNrZWQ6IHRydWUsIGNsYXNzOiAndHJhbnNsYXRlLXgtNCcgfSxcbiAgICAgIHsgc2l6ZTogJ2RlZmF1bHQnLCBjaGVja2VkOiB0cnVlLCBjbGFzczogJ3RyYW5zbGF0ZS14LTUnIH0sXG4gICAgICB7IHNpemU6ICdsZycsIGNoZWNrZWQ6IHRydWUsIGNsYXNzOiAndHJhbnNsYXRlLXgtNicgfSxcbiAgICBdLFxuICAgIGRlZmF1bHRWYXJpYW50czoge1xuICAgICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgfSxcbiAgfVxuKTtcblxuZXhwb3J0IHR5cGUgU3dpdGNoUHJvcHMgPSBWYXJpYW50UHJvcHM8dHlwZW9mIHN3aXRjaFRyYWNrVmFyaWFudHM+O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1zd2l0Y2gnLFxuICBzdHlsZXM6IFsnOmhvc3QgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTd2l0Y2hDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICByb2xlPVwic3dpdGNoXCJcbiAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICAgIFthdHRyLmRhdGEtc3RhdGVdPVwiY2hlY2tlZCA/ICdjaGVja2VkJyA6ICd1bmNoZWNrZWQnXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgICAgW2NsYXNzXT1cInRyYWNrQ2xhc3NcIlxuICAgID5cbiAgICAgIDxzcGFuIFtjbGFzc109XCJ0aHVtYkNsYXNzXCI+PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIFN3aXRjaENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgLyoqIEV4dHJhIFRhaWx3aW5kIGNsYXNzZXMgbWVyZ2VkIG9udG8gdGhlIHN3aXRjaCB0cmFjayB2aWEgYGNuKClgIChsYXN0LXdpbnMpLiAqL1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuICAvKiogRGlzYWJsZXMgdGhlIHN3aXRjaCBhbmQgYmxvY2tzIHRvZ2dsaW5nLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAvKiogU2l6ZSBvZiB0aGUgc3dpdGNoLiBAZGVmYXVsdCAnZGVmYXVsdCcgKi9cbiAgQElucHV0KCkgc2l6ZTogU3dpdGNoUHJvcHNbJ3NpemUnXSA9ICdkZWZhdWx0JztcblxuICBjaGVja2VkID0gZmFsc2U7XG5cbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBnZXQgdHJhY2tDbGFzcygpIHtcbiAgICByZXR1cm4gY24oXG4gICAgICBzd2l0Y2hUcmFja1ZhcmlhbnRzKHsgc2l6ZTogdGhpcy5zaXplLCBjaGVja2VkOiB0aGlzLmNoZWNrZWQgfSksXG4gICAgICB0aGlzLmNsYXNzXG4gICAgKTtcbiAgfVxuXG4gIGdldCB0aHVtYkNsYXNzKCkge1xuICAgIHJldHVybiBjbihzd2l0Y2hUaHVtYlZhcmlhbnRzKHsgc2l6ZTogdGhpcy5zaXplLCBjaGVja2VkOiB0aGlzLmNoZWNrZWQgfSkpO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuY2hlY2tlZCk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIC8vIC0tLSBDb250cm9sVmFsdWVBY2Nlc3NvciAtLS1cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tlZCA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7IHRoaXMub25DaGFuZ2UgPSBmbjsgfVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7IHRoaXMub25Ub3VjaGVkID0gZm47IH1cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7IHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkOyB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTsgfVxufVxuIl19
@@ -0,0 +1,213 @@
1
+ import { Component, Directive, Input, ChangeDetectionStrategy, ChangeDetectorRef, inject } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { cn } from './utils/cn';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Unstyled table primitives you compose yourself, for when you need full
7
+ * control over the markup.
8
+ *
9
+ * For sorting, paging, selection and column definitions out of the box, use
10
+ * `tolle-data-table` instead — this is the lower-level building block.
11
+ *
12
+ * Everything below the `<table>` is a **directive on the native element**
13
+ * (`<thead tolleTableHeader>`, `<tr tolleTableRow>`, …) rather than a custom
14
+ * element. A `<tolle-table-row>` wrapper would sit between `<tbody>` and `<tr>`
15
+ * and break the CSS table layout, so the directives style the real elements in
16
+ * place and add no DOM of their own.
17
+ *
18
+ * ```html
19
+ * <tolle-table>
20
+ * <thead tolleTableHeader>
21
+ * <tr tolleTableRow><th tolleTableHead>Name</th></tr>
22
+ * </thead>
23
+ * <tbody tolleTableBody>
24
+ * <tr tolleTableRow><td tolleTableCell>Ada</td></tr>
25
+ * </tbody>
26
+ * </tolle-table>
27
+ * ```
28
+ * @new
29
+ */
30
+ export class TableComponent {
31
+ cdr = inject(ChangeDetectorRef);
32
+ /**
33
+ * Angular writes a bound `class` input through its styling path, which does
34
+ * not mark an OnPush component dirty — without this hook the component keeps
35
+ * rendering the class it was born with.
36
+ */
37
+ ngOnChanges() {
38
+ this.cdr.markForCheck();
39
+ }
40
+ /** Extra Tailwind classes merged onto the scrolling container via `cn()` (last-wins). */
41
+ containerClass = '';
42
+ /** Extra Tailwind classes merged onto the `<table>` via `cn()` (last-wins). */
43
+ class = '';
44
+ cn = cn;
45
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
46
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TableComponent, isStandalone: true, selector: "tolle-table", inputs: { containerClass: "containerClass", class: "class" }, usesOnChanges: true, ngImport: i0, template: `
47
+ <div [class]="cn('relative w-full overflow-x-auto', containerClass)">
48
+ <table [class]="cn('w-full caption-bottom border-collapse text-sm', class)">
49
+ <ng-content></ng-content>
50
+ </table>
51
+ </div>
52
+ `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
53
+ }
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableComponent, decorators: [{
55
+ type: Component,
56
+ args: [{ selector: 'tolle-table', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
57
+ <div [class]="cn('relative w-full overflow-x-auto', containerClass)">
58
+ <table [class]="cn('w-full caption-bottom border-collapse text-sm', class)">
59
+ <ng-content></ng-content>
60
+ </table>
61
+ </div>
62
+ `, styles: [":host{display:block}\n"] }]
63
+ }], propDecorators: { containerClass: [{
64
+ type: Input
65
+ }], class: [{
66
+ type: Input
67
+ }] } });
68
+ /** Styles a native `<thead>`. */
69
+ export class TableHeaderDirective {
70
+ /** Extra Tailwind classes merged onto the `<thead>` via `cn()` (last-wins). */
71
+ class = '';
72
+ cn = cn;
73
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
74
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TableHeaderDirective, isStandalone: true, selector: "[tolleTableHeader]", inputs: { class: "class" }, host: { properties: { "class": "cn('[&_tr]:border-b [&_tr]:border-border', class)" } }, ngImport: i0 });
75
+ }
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableHeaderDirective, decorators: [{
77
+ type: Directive,
78
+ args: [{
79
+ selector: '[tolleTableHeader]',
80
+ standalone: true,
81
+ host: { '[class]': `cn('[&_tr]:border-b [&_tr]:border-border', class)` },
82
+ }]
83
+ }], propDecorators: { class: [{
84
+ type: Input
85
+ }] } });
86
+ /** Styles a native `<tbody>`. */
87
+ export class TableBodyDirective {
88
+ /** Extra Tailwind classes merged onto the `<tbody>` via `cn()` (last-wins). */
89
+ class = '';
90
+ cn = cn;
91
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableBodyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
92
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TableBodyDirective, isStandalone: true, selector: "[tolleTableBody]", inputs: { class: "class" }, host: { properties: { "class": "cn('[&_tr:last-child]:border-0', class)" } }, ngImport: i0 });
93
+ }
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableBodyDirective, decorators: [{
95
+ type: Directive,
96
+ args: [{
97
+ selector: '[tolleTableBody]',
98
+ standalone: true,
99
+ host: { '[class]': `cn('[&_tr:last-child]:border-0', class)` },
100
+ }]
101
+ }], propDecorators: { class: [{
102
+ type: Input
103
+ }] } });
104
+ /** Styles a native `<tfoot>` for summary or total rows. */
105
+ export class TableFooterDirective {
106
+ /** Extra Tailwind classes merged onto the `<tfoot>` via `cn()` (last-wins). */
107
+ class = '';
108
+ cn = cn;
109
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
110
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TableFooterDirective, isStandalone: true, selector: "[tolleTableFooter]", inputs: { class: "class" }, host: { properties: { "class": "cn('border-t border-border bg-muted/50 font-medium [&>tr]:last:border-b-0', class)" } }, ngImport: i0 });
111
+ }
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableFooterDirective, decorators: [{
113
+ type: Directive,
114
+ args: [{
115
+ selector: '[tolleTableFooter]',
116
+ standalone: true,
117
+ host: { '[class]': `cn('border-t border-border bg-muted/50 font-medium [&>tr]:last:border-b-0', class)` },
118
+ }]
119
+ }], propDecorators: { class: [{
120
+ type: Input
121
+ }] } });
122
+ /** Styles a native `<tr>`, with an optional selected state. */
123
+ export class TableRowDirective {
124
+ /** Applies the selected background and sets `data-state="selected"`. @default false */
125
+ selected = false;
126
+ /** Extra Tailwind classes merged onto the `<tr>` via `cn()` (last-wins). */
127
+ class = '';
128
+ cn = cn;
129
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableRowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
130
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TableRowDirective, isStandalone: true, selector: "[tolleTableRow]", inputs: { selected: "selected", class: "class" }, host: { properties: { "attr.data-state": "selected ? 'selected' : null", "class": "cn('border-b border-border transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted', class)" } }, ngImport: i0 });
131
+ }
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableRowDirective, decorators: [{
133
+ type: Directive,
134
+ args: [{
135
+ selector: '[tolleTableRow]',
136
+ standalone: true,
137
+ host: {
138
+ '[attr.data-state]': `selected ? 'selected' : null`,
139
+ '[class]': `cn('border-b border-border transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted', class)`,
140
+ },
141
+ }]
142
+ }], propDecorators: { selected: [{
143
+ type: Input
144
+ }], class: [{
145
+ type: Input
146
+ }] } });
147
+ /** Styles a native `<th>` header cell. */
148
+ export class TableHeadDirective {
149
+ /** Scope of the header cell for assistive tech. @default 'col' */
150
+ scope = 'col';
151
+ /** Current sort direction, surfaced as `aria-sort`. @default null */
152
+ sort = null;
153
+ /** Extra Tailwind classes merged onto the `<th>` via `cn()` (last-wins). */
154
+ class = '';
155
+ cn = cn;
156
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableHeadDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
157
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TableHeadDirective, isStandalone: true, selector: "[tolleTableHead]", inputs: { scope: "scope", sort: "sort", class: "class" }, host: { properties: { "attr.scope": "scope", "attr.aria-sort": "sort", "class": "cn('h-10 whitespace-nowrap px-3 text-left align-middle font-medium text-muted-foreground', class)" } }, ngImport: i0 });
158
+ }
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableHeadDirective, decorators: [{
160
+ type: Directive,
161
+ args: [{
162
+ selector: '[tolleTableHead]',
163
+ standalone: true,
164
+ host: {
165
+ '[attr.scope]': 'scope',
166
+ '[attr.aria-sort]': 'sort',
167
+ '[class]': `cn('h-10 whitespace-nowrap px-3 text-left align-middle font-medium text-muted-foreground', class)`,
168
+ },
169
+ }]
170
+ }], propDecorators: { scope: [{
171
+ type: Input
172
+ }], sort: [{
173
+ type: Input
174
+ }], class: [{
175
+ type: Input
176
+ }] } });
177
+ /** Styles a native `<td>` data cell. */
178
+ export class TableCellDirective {
179
+ /** Extra Tailwind classes merged onto the `<td>` via `cn()` (last-wins). */
180
+ class = '';
181
+ cn = cn;
182
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableCellDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
183
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TableCellDirective, isStandalone: true, selector: "[tolleTableCell]", inputs: { class: "class" }, host: { properties: { "class": "cn('p-3 align-middle', class)" } }, ngImport: i0 });
184
+ }
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableCellDirective, decorators: [{
186
+ type: Directive,
187
+ args: [{
188
+ selector: '[tolleTableCell]',
189
+ standalone: true,
190
+ host: { '[class]': `cn('p-3 align-middle', class)` },
191
+ }]
192
+ }], propDecorators: { class: [{
193
+ type: Input
194
+ }] } });
195
+ /** Styles a native `<caption>`, rendered below the table. */
196
+ export class TableCaptionDirective {
197
+ /** Extra Tailwind classes merged onto the `<caption>` via `cn()` (last-wins). */
198
+ class = '';
199
+ cn = cn;
200
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableCaptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
201
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TableCaptionDirective, isStandalone: true, selector: "[tolleTableCaption]", inputs: { class: "class" }, host: { properties: { "class": "cn('mt-4 text-sm text-muted-foreground', class)" } }, ngImport: i0 });
202
+ }
203
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableCaptionDirective, decorators: [{
204
+ type: Directive,
205
+ args: [{
206
+ selector: '[tolleTableCaption]',
207
+ standalone: true,
208
+ host: { '[class]': `cn('mt-4 text-sm text-muted-foreground', class)` },
209
+ }]
210
+ }], propDecorators: { class: [{
211
+ type: Input
212
+ }] } });
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi90YWJsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFFaEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCRztBQWVILE1BQU0sT0FBTyxjQUFjO0lBQ1IsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRWpEOzs7O09BSUc7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQseUZBQXlGO0lBQ2hGLGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDN0IsK0VBQStFO0lBQ3RFLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDVixFQUFFLEdBQUcsRUFBRSxDQUFDO3dHQWhCUCxjQUFjOzRGQUFkLGNBQWMsMEpBUmY7Ozs7OztHQU1ULCtGQVJTLFlBQVk7OzRGQVVYLGNBQWM7a0JBZDFCLFNBQVM7K0JBQ0UsYUFBYSxjQUVYLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxtQkFDTix1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDOzs7Ozs7R0FNVDs4QkFlUSxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSzs7QUFJUixpQ0FBaUM7QUFNakMsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQiwrRUFBK0U7SUFDdEUsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNWLEVBQUUsR0FBRyxFQUFFLENBQUM7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O2lCQUNyRDs4QkFHVSxLQUFLO3NCQUFiLEtBQUs7O0FBSVIsNkRBQTZEO0FBTTdELE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsaUZBQWlGO0lBQ3hFLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDVixFQUFFLEdBQUcsRUFBRSxDQUFDO3dHQUhQLHFCQUFxQjs0RkFBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUxqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsaURBQWlELEVBQUU7aUJBQ3ZFOzhCQUdVLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRGlyZWN0aXZlLCBJbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBPbkNoYW5nZXMsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbi8qKlxuICogVW5zdHlsZWQgdGFibGUgcHJpbWl0aXZlcyB5b3UgY29tcG9zZSB5b3Vyc2VsZiwgZm9yIHdoZW4geW91IG5lZWQgZnVsbFxuICogY29udHJvbCBvdmVyIHRoZSBtYXJrdXAuXG4gKlxuICogRm9yIHNvcnRpbmcsIHBhZ2luZywgc2VsZWN0aW9uIGFuZCBjb2x1bW4gZGVmaW5pdGlvbnMgb3V0IG9mIHRoZSBib3gsIHVzZVxuICogYHRvbGxlLWRhdGEtdGFibGVgIGluc3RlYWQg4oCUIHRoaXMgaXMgdGhlIGxvd2VyLWxldmVsIGJ1aWxkaW5nIGJsb2NrLlxuICpcbiAqIEV2ZXJ5dGhpbmcgYmVsb3cgdGhlIGA8dGFibGU+YCBpcyBhICoqZGlyZWN0aXZlIG9uIHRoZSBuYXRpdmUgZWxlbWVudCoqXG4gKiAoYDx0aGVhZCB0b2xsZVRhYmxlSGVhZGVyPmAsIGA8dHIgdG9sbGVUYWJsZVJvdz5gLCDigKYpIHJhdGhlciB0aGFuIGEgY3VzdG9tXG4gKiBlbGVtZW50LiBBIGA8dG9sbGUtdGFibGUtcm93PmAgd3JhcHBlciB3b3VsZCBzaXQgYmV0d2VlbiBgPHRib2R5PmAgYW5kIGA8dHI+YFxuICogYW5kIGJyZWFrIHRoZSBDU1MgdGFibGUgbGF5b3V0LCBzbyB0aGUgZGlyZWN0aXZlcyBzdHlsZSB0aGUgcmVhbCBlbGVtZW50cyBpblxuICogcGxhY2UgYW5kIGFkZCBubyBET00gb2YgdGhlaXIgb3duLlxuICpcbiAqIGBgYGh0bWxcbiAqIDx0b2xsZS10YWJsZT5cbiAqICAgPHRoZWFkIHRvbGxlVGFibGVIZWFkZXI+XG4gKiAgICAgPHRyIHRvbGxlVGFibGVSb3c+PHRoIHRvbGxlVGFibGVIZWFkPk5hbWU8L3RoPjwvdHI+XG4gKiAgIDwvdGhlYWQ+XG4gKiAgIDx0Ym9keSB0b2xsZVRhYmxlQm9keT5cbiAqICAgICA8dHIgdG9sbGVUYWJsZVJvdz48dGQgdG9sbGVUYWJsZUNlbGw+QWRhPC90ZD48L3RyPlxuICogICA8L3Rib2R5PlxuICogPC90b2xsZS10YWJsZT5cbiAqIGBgYFxuICogQG5ld1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS10YWJsZScsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9J10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtjbGFzc109XCJjbigncmVsYXRpdmUgdy1mdWxsIG92ZXJmbG93LXgtYXV0bycsIGNvbnRhaW5lckNsYXNzKVwiPlxuICAgICAgPHRhYmxlIFtjbGFzc109XCJjbigndy1mdWxsIGNhcHRpb24tYm90dG9tIGJvcmRlci1jb2xsYXBzZSB0ZXh0LXNtJywgY2xhc3MpXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvdGFibGU+XG4gICAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50ICBpbXBsZW1lbnRzIE9uQ2hhbmdlc3tcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIC8qKlxuICAgKiBBbmd1bGFyIHdyaXRlcyBhIGJvdW5kIGBjbGFzc2AgaW5wdXQgdGhyb3VnaCBpdHMgc3R5bGluZyBwYXRoLCB3aGljaCBkb2VzXG4gICAqIG5vdCBtYXJrIGFuIE9uUHVzaCBjb21wb25lbnQgZGlydHkg4oCUIHdpdGhvdXQgdGhpcyBob29rIHRoZSBjb21wb25lbnQga2VlcHNcbiAgICogcmVuZGVyaW5nIHRoZSBjbGFzcyBpdCB3YXMgYm9ybiB3aXRoLlxuICAgKi9cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogRXh0cmEgVGFpbHdpbmQgY2xhc3NlcyBtZXJnZWQgb250byB0aGUgc2Nyb2xsaW5nIGNvbnRhaW5lciB2aWEgYGNuKClgIChsYXN0LXdpbnMpLiAqL1xuICBASW5wdXQoKSBjb250YWluZXJDbGFzcyA9ICcnO1xuICAvKiogRXh0cmEgVGFpbHdpbmQgY2xhc3NlcyBtZXJnZWQgb250byB0aGUgYDx0YWJsZT5gIHZpYSBgY24oKWAgKGxhc3Qtd2lucykuICovXG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG4gIHByb3RlY3RlZCBjbiA9IGNuO1xufVxuXG4vKiogU3R5bGVzIGEgbmF0aXZlIGA8dGhlYWQ+YC4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0b2xsZVRhYmxlSGVhZGVyXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHsgJ1tjbGFzc10nOiBgY24oJ1smX3RyXTpib3JkZXItYiBbJl90cl06Ym9yZGVyLWJvcmRlcicsIGNsYXNzKWAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVIZWFkZXJEaXJlY3RpdmUge1xuICAvKiogRXh0cmEgVGFpbHdpbmQgY2xhc3NlcyBtZXJnZWQgb250byB0aGUgYDx0aGVhZD5gIHZpYSBgY24oKWAgKGxhc3Qtd2lucykuICovXG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG4gIHByb3RlY3RlZCBjbiA9IGNuO1xufVxuXG4vKiogU3R5bGVzIGEgbmF0aXZlIGA8dGJvZHk+YC4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0b2xsZVRhYmxlQm9keV0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7ICdbY2xhc3NdJzogYGNuKCdbJl90cjpsYXN0LWNoaWxkXTpib3JkZXItMCcsIGNsYXNzKWAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVCb2R5RGlyZWN0aXZlIHtcbiAgLyoqIEV4dHJhIFRhaWx3aW5kIGNsYXNzZXMgbWVyZ2VkIG9udG8gdGhlIGA8dGJvZHk+YCB2aWEgYGNuKClgIChsYXN0LXdpbnMpLiAqL1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuICBwcm90ZWN0ZWQgY24gPSBjbjtcbn1cblxuLyoqIFN0eWxlcyBhIG5hdGl2ZSBgPHRmb290PmAgZm9yIHN1bW1hcnkgb3IgdG90YWwgcm93cy4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0b2xsZVRhYmxlRm9vdGVyXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHsgJ1tjbGFzc10nOiBgY24oJ2JvcmRlci10IGJvcmRlci1ib3JkZXIgYmctbXV0ZWQvNTAgZm9udC1tZWRpdW0gWyY+dHJdOmxhc3Q6Ym9yZGVyLWItMCcsIGNsYXNzKWAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVGb290ZXJEaXJlY3RpdmUge1xuICAvKiogRXh0cmEgVGFpbHdpbmQgY2xhc3NlcyBtZXJnZWQgb250byB0aGUgYDx0Zm9vdD5gIHZpYSBgY24oKWAgKGxhc3Qtd2lucykuICovXG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG4gIHByb3RlY3RlZCBjbiA9IGNuO1xufVxuXG4vKiogU3R5bGVzIGEgbmF0aXZlIGA8dHI+YCwgd2l0aCBhbiBvcHRpb25hbCBzZWxlY3RlZCBzdGF0ZS4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0b2xsZVRhYmxlUm93XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuZGF0YS1zdGF0ZV0nOiBgc2VsZWN0ZWQgPyAnc2VsZWN0ZWQnIDogbnVsbGAsXG4gICAgJ1tjbGFzc10nOiBgY24oJ2JvcmRlci1iIGJvcmRlci1ib3JkZXIgdHJhbnNpdGlvbi1jb2xvcnMgaG92ZXI6YmctbXV0ZWQvNTAgZGF0YS1bc3RhdGU9c2VsZWN0ZWRdOmJnLW11dGVkJywgY2xhc3MpYCxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVSb3dEaXJlY3RpdmUge1xuICAvKiogQXBwbGllcyB0aGUgc2VsZWN0ZWQgYmFja2dyb3VuZCBhbmQgc2V0cyBgZGF0YS1zdGF0ZT1cInNlbGVjdGVkXCJgLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBASW5wdXQoKSBzZWxlY3RlZCA9IGZhbHNlO1xuICAvKiogRXh0cmEgVGFpbHdpbmQgY2xhc3NlcyBtZXJnZWQgb250byB0aGUgYDx0cj5gIHZpYSBgY24oKWAgKGxhc3Qtd2lucykuICovXG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG4gIHByb3RlY3RlZCBjbiA9IGNuO1xufVxuXG4vKiogU3R5bGVzIGEgbmF0aXZlIGA8dGg+YCBoZWFkZXIgY2VsbC4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0b2xsZVRhYmxlSGVhZF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLnNjb3BlXSc6ICdzY29wZScsXG4gICAgJ1thdHRyLmFyaWEtc29ydF0nOiAnc29ydCcsXG4gICAgJ1tjbGFzc10nOiBgY24oJ2gtMTAgd2hpdGVzcGFjZS1ub3dyYXAgcHgtMyB0ZXh0LWxlZnQgYWxpZ24tbWlkZGxlIGZvbnQtbWVkaXVtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsIGNsYXNzKWAsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlSGVhZERpcmVjdGl2ZSB7XG4gIC8qKiBTY29wZSBvZiB0aGUgaGVhZGVyIGNlbGwgZm9yIGFzc2lzdGl2ZSB0ZWNoLiBAZGVmYXVsdCAnY29sJyAqL1xuICBASW5wdXQoKSBzY29wZTogJ2NvbCcgfCAncm93JyB8ICdjb2xncm91cCcgfCAncm93Z3JvdXAnID0gJ2NvbCc7XG4gIC8qKiBDdXJyZW50IHNvcnQgZGlyZWN0aW9uLCBzdXJmYWNlZCBhcyBgYXJpYS1zb3J0YC4gQGRlZmF1bHQgbnVsbCAqL1xuICBASW5wdXQoKSBzb3J0OiAnYXNjZW5kaW5nJyB8ICdkZXNjZW5kaW5nJyB8ICdub25lJyB8IG51bGwgPSBudWxsO1xuICAvKiogRXh0cmEgVGFpbHdpbmQgY2xhc3NlcyBtZXJnZWQgb250byB0aGUgYDx0aD5gIHZpYSBgY24oKWAgKGxhc3Qtd2lucykuICovXG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG4gIHByb3RlY3RlZCBjbiA9IGNuO1xufVxuXG4vKiogU3R5bGVzIGEgbmF0aXZlIGA8dGQ+YCBkYXRhIGNlbGwuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdG9sbGVUYWJsZUNlbGxdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDogeyAnW2NsYXNzXSc6IGBjbigncC0zIGFsaWduLW1pZGRsZScsIGNsYXNzKWAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDZWxsRGlyZWN0aXZlIHtcbiAgLyoqIEV4dHJhIFRhaWx3aW5kIGNsYXNzZXMgbWVyZ2VkIG9udG8gdGhlIGA8dGQ+YCB2aWEgYGNuKClgIChsYXN0LXdpbnMpLiAqL1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuICBwcm90ZWN0ZWQgY24gPSBjbjtcbn1cblxuLyoqIFN0eWxlcyBhIG5hdGl2ZSBgPGNhcHRpb24+YCwgcmVuZGVyZWQgYmVsb3cgdGhlIHRhYmxlLiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RvbGxlVGFibGVDYXB0aW9uXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHsgJ1tjbGFzc10nOiBgY24oJ210LTQgdGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmQnLCBjbGFzcylgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ2FwdGlvbkRpcmVjdGl2ZSB7XG4gIC8qKiBFeHRyYSBUYWlsd2luZCBjbGFzc2VzIG1lcmdlZCBvbnRvIHRoZSBgPGNhcHRpb24+YCB2aWEgYGNuKClgIChsYXN0LXdpbnMpLiAqL1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuICBwcm90ZWN0ZWQgY24gPSBjbjtcbn1cbiJdfQ==