@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,335 @@
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 planStepId = 0;
9
+ const planVariants = cva('w-full rounded-lg border border-border bg-card p-3 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 planStepVariants = cva(
19
+ // The connector is hidden on the final step so the line stops at the last badge.
20
+ 'relative flex gap-3 pb-3 last:pb-0 [&:last-child_.tolle-plan-rail]:hidden', {
21
+ variants: {
22
+ status: {
23
+ pending: 'opacity-100',
24
+ active: 'opacity-100',
25
+ done: 'opacity-100',
26
+ skipped: 'opacity-60',
27
+ },
28
+ },
29
+ defaultVariants: { status: 'pending' },
30
+ });
31
+ const planBadgeVariants = cva('relative z-[1] flex h-6 w-6 shrink-0 items-center justify-center rounded-full border text-[11px] font-medium tabular-nums', {
32
+ variants: {
33
+ status: {
34
+ pending: 'border-border bg-background text-muted-foreground',
35
+ active: 'border-primary bg-primary text-primary-foreground',
36
+ done: 'border-success/50 bg-success/10 text-success',
37
+ skipped: 'border-dashed border-border bg-background text-muted-foreground',
38
+ },
39
+ },
40
+ defaultVariants: { status: 'pending' },
41
+ });
42
+ /**
43
+ * Coordinates a `tolle-plan` and its steps: assigns each step its number and
44
+ * derives the "Step N of M" summary.
45
+ *
46
+ * The header is `OnPush` and the step count is not one of its inputs, so the
47
+ * summary is published as an observable and every subscriber calls
48
+ * `markForCheck()`.
49
+ */
50
+ export class PlanService {
51
+ statuses = new Map();
52
+ order = [];
53
+ progressSource = new BehaviorSubject({ current: 0, total: 0 });
54
+ /** Emits the plan's current position and step count. */
55
+ progress$ = this.progressSource.asObservable();
56
+ collapsedSource = new BehaviorSubject(false);
57
+ /** Emits whether the plan is showing only its summary row. */
58
+ collapsed$ = this.collapsedSource.asObservable();
59
+ get progress() {
60
+ return this.progressSource.value;
61
+ }
62
+ get collapsed() {
63
+ return this.collapsedSource.value;
64
+ }
65
+ setCollapsed(collapsed) {
66
+ if (this.collapsedSource.value !== collapsed)
67
+ this.collapsedSource.next(collapsed);
68
+ }
69
+ toggleCollapsed() {
70
+ this.collapsedSource.next(!this.collapsedSource.value);
71
+ }
72
+ /** Registers a step and returns its 1-based number. */
73
+ register(id, status) {
74
+ if (!this.statuses.has(id))
75
+ this.order.push(id);
76
+ this.statuses.set(id, status);
77
+ this.recompute();
78
+ return this.order.indexOf(id) + 1;
79
+ }
80
+ setStatus(id, status) {
81
+ if (!this.statuses.has(id))
82
+ return;
83
+ if (this.statuses.get(id) === status)
84
+ return;
85
+ this.statuses.set(id, status);
86
+ this.recompute();
87
+ }
88
+ unregister(id) {
89
+ const index = this.order.indexOf(id);
90
+ if (index > -1)
91
+ this.order.splice(index, 1);
92
+ this.statuses.delete(id);
93
+ this.recompute();
94
+ }
95
+ /**
96
+ * "Current" is the first step still in flight — the active one if there is
97
+ * one, otherwise however many have already been resolved.
98
+ */
99
+ recompute() {
100
+ const total = this.order.length;
101
+ const activeIndex = this.order.findIndex((id) => this.statuses.get(id) === 'active');
102
+ const resolved = this.order.filter((id) => {
103
+ const status = this.statuses.get(id);
104
+ return status === 'done' || status === 'skipped';
105
+ }).length;
106
+ const current = activeIndex > -1 ? activeIndex + 1 : Math.min(resolved, total);
107
+ this.progressSource.next({ current, total });
108
+ }
109
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PlanService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
110
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PlanService });
111
+ }
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PlanService, decorators: [{
113
+ type: Injectable
114
+ }] });
115
+ /**
116
+ * An ordered plan the agent intends to work through. Each `tolle-plan-step`
117
+ * numbers itself and joins the connector line; collapsing the plan swaps the
118
+ * steps for a single "Step N of M" summary.
119
+ *
120
+ * ```html
121
+ * <tolle-plan title="Migration plan">
122
+ * <tolle-plan-step label="Read the schema" status="done"></tolle-plan-step>
123
+ * <tolle-plan-step label="Write the migration" status="active"></tolle-plan-step>
124
+ * <tolle-plan-step label="Run it" status="pending"></tolle-plan-step>
125
+ * </tolle-plan>
126
+ * ```
127
+ * @new
128
+ */
129
+ export class PlanComponent {
130
+ /** Heading shown above the steps. @default 'Plan' */
131
+ title = 'Plan';
132
+ /** Shows only the header and its "Step N of M" summary. @default false */
133
+ collapsed = false;
134
+ /** Lets the user collapse and expand the plan by clicking the header. @default true */
135
+ collapsible = true;
136
+ /** Padding and text scale of the plan. @default 'default' */
137
+ size = 'default';
138
+ /** Extra Tailwind classes merged onto the plan via `cn()` (last-wins). */
139
+ class = '';
140
+ /** Emitted with the new collapsed state when the header is toggled. */
141
+ collapsedChange = new EventEmitter();
142
+ service = inject(PlanService);
143
+ cdr = inject(ChangeDetectorRef);
144
+ sub = new Subscription();
145
+ isCollapsed = false;
146
+ progress = { current: 0, total: 0 };
147
+ ngOnInit() {
148
+ this.service.setCollapsed(this.collapsed);
149
+ // Seeded before subscribing so the replayed initial value is not mistaken
150
+ // for a user toggle and echoed back out as a `collapsedChange`.
151
+ this.isCollapsed = this.collapsed;
152
+ this.sub.add(this.service.collapsed$.subscribe((collapsed) => {
153
+ const changed = this.isCollapsed !== collapsed;
154
+ this.isCollapsed = collapsed;
155
+ this.cdr.markForCheck();
156
+ if (changed)
157
+ this.collapsedChange.emit(collapsed);
158
+ }));
159
+ this.sub.add(this.service.progress$.subscribe((progress) => {
160
+ this.progress = progress;
161
+ this.cdr.markForCheck();
162
+ }));
163
+ }
164
+ ngOnChanges() {
165
+ this.service.setCollapsed(this.collapsed);
166
+ // A bound `class` input is written through Angular's styling path,
167
+ // which does not mark an OnPush view dirty on its own.
168
+ this.cdr.markForCheck();
169
+ }
170
+ ngOnDestroy() {
171
+ this.sub.unsubscribe();
172
+ }
173
+ /** The compact "Step N of M" label, empty until at least one step registers. */
174
+ get summary() {
175
+ if (!this.progress.total)
176
+ return '';
177
+ return 'Step ' + Math.max(1, this.progress.current) + ' of ' + this.progress.total;
178
+ }
179
+ get computedClass() {
180
+ return cn(planVariants({ size: this.size }), this.class);
181
+ }
182
+ get headerClass() {
183
+ return cn('flex w-full items-center gap-1.5 rounded-md text-left text-sm outline-none transition-colors', this.collapsible ? 'cursor-pointer' : 'cursor-default', 'focus-visible:ring-2 focus-visible:ring-ring');
184
+ }
185
+ toggle() {
186
+ if (!this.collapsible)
187
+ return;
188
+ this.service.toggleCollapsed();
189
+ }
190
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PlanComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
191
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PlanComponent, isStandalone: true, selector: "tolle-plan", inputs: { title: "title", collapsed: "collapsed", collapsible: "collapsible", size: "size", class: "class" }, outputs: { collapsedChange: "collapsedChange" }, providers: [PlanService], usesOnChanges: true, ngImport: i0, template: `
192
+ <div [class]="computedClass" [attr.data-collapsed]="isCollapsed ? '' : null">
193
+ <button
194
+ type="button"
195
+ [disabled]="!collapsible"
196
+ [attr.aria-expanded]="collapsible ? !isCollapsed : null"
197
+ [class]="headerClass"
198
+ (click)="toggle()"
199
+ >
200
+ <i
201
+ *ngIf="collapsible"
202
+ [class]="isCollapsed ? 'ri-arrow-right-s-line shrink-0 text-muted-foreground' : 'ri-arrow-down-s-line shrink-0 text-muted-foreground'"
203
+ aria-hidden="true"
204
+ ></i>
205
+ <span class="truncate font-medium text-foreground">{{ title }}</span>
206
+ <span class="ml-auto shrink-0 text-xs tabular-nums text-muted-foreground">{{ summary }}</span>
207
+ </button>
208
+
209
+ <div [class]="isCollapsed ? 'hidden' : 'mt-3 flex flex-col'">
210
+ <ng-content></ng-content>
211
+ </div>
212
+ </div>
213
+ `, 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 });
214
+ }
215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PlanComponent, decorators: [{
216
+ type: Component,
217
+ args: [{ selector: 'tolle-plan', standalone: true, imports: [CommonModule], providers: [PlanService], changeDetection: ChangeDetectionStrategy.OnPush, template: `
218
+ <div [class]="computedClass" [attr.data-collapsed]="isCollapsed ? '' : null">
219
+ <button
220
+ type="button"
221
+ [disabled]="!collapsible"
222
+ [attr.aria-expanded]="collapsible ? !isCollapsed : null"
223
+ [class]="headerClass"
224
+ (click)="toggle()"
225
+ >
226
+ <i
227
+ *ngIf="collapsible"
228
+ [class]="isCollapsed ? 'ri-arrow-right-s-line shrink-0 text-muted-foreground' : 'ri-arrow-down-s-line shrink-0 text-muted-foreground'"
229
+ aria-hidden="true"
230
+ ></i>
231
+ <span class="truncate font-medium text-foreground">{{ title }}</span>
232
+ <span class="ml-auto shrink-0 text-xs tabular-nums text-muted-foreground">{{ summary }}</span>
233
+ </button>
234
+
235
+ <div [class]="isCollapsed ? 'hidden' : 'mt-3 flex flex-col'">
236
+ <ng-content></ng-content>
237
+ </div>
238
+ </div>
239
+ `, styles: [":host{display:block}\n"] }]
240
+ }], propDecorators: { title: [{
241
+ type: Input
242
+ }], collapsed: [{
243
+ type: Input
244
+ }], collapsible: [{
245
+ type: Input
246
+ }], size: [{
247
+ type: Input
248
+ }], class: [{
249
+ type: Input
250
+ }], collapsedChange: [{
251
+ type: Output
252
+ }] } });
253
+ /** One numbered step of a `tolle-plan`. */
254
+ export class PlanStepComponent {
255
+ /** What this step does. @default '' */
256
+ label = '';
257
+ /** Supporting detail shown under the label. @default '' */
258
+ description = '';
259
+ /** Progress of this step; drives the badge colour and glyph. @default 'pending' */
260
+ status = 'pending';
261
+ /** Extra Tailwind classes merged onto the step via `cn()` (last-wins). */
262
+ class = '';
263
+ service = inject(PlanService);
264
+ id = 'tolle-plan-step-' + planStepId++;
265
+ /** 1-based position of this step, assigned on registration. */
266
+ index = 0;
267
+ ngOnInit() {
268
+ this.index = this.service.register(this.id, this.status);
269
+ }
270
+ ngOnChanges() {
271
+ this.service.setStatus(this.id, this.status);
272
+ }
273
+ ngOnDestroy() {
274
+ this.service.unregister(this.id);
275
+ }
276
+ get computedClass() {
277
+ return cn(planStepVariants({ status: this.status }), this.class);
278
+ }
279
+ get badgeClass() {
280
+ return cn(planBadgeVariants({ status: this.status }));
281
+ }
282
+ get labelClass() {
283
+ return cn('text-sm', this.status === 'active' && 'font-medium text-foreground', this.status === 'done' && 'text-foreground', this.status === 'pending' && 'text-muted-foreground', this.status === 'skipped' && 'text-muted-foreground line-through');
284
+ }
285
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PlanStepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
286
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PlanStepComponent, isStandalone: true, selector: "tolle-plan-step", inputs: { label: "label", description: "description", status: "status", class: "class" }, host: { properties: { "class": "computedClass", "attr.data-status": "status" } }, usesOnChanges: true, ngImport: i0, template: `
287
+ <span class="tolle-plan-rail absolute bottom-0 left-3 top-6 w-px -translate-x-1/2 bg-border" aria-hidden="true"></span>
288
+
289
+ <span [class]="badgeClass">
290
+ <i *ngIf="status === 'done'" class="ri-check-line" aria-hidden="true"></i>
291
+ <i *ngIf="status === 'skipped'" class="ri-subtract-line" aria-hidden="true"></i>
292
+ <ng-container *ngIf="status !== 'done' && status !== 'skipped'">{{ index }}</ng-container>
293
+ </span>
294
+
295
+ <div class="min-w-0 flex-1 pt-0.5">
296
+ <p [class]="labelClass">{{ label }}</p>
297
+ <p *ngIf="description" class="mt-0.5 text-xs text-muted-foreground">{{ description }}</p>
298
+ <ng-content></ng-content>
299
+ </div>
300
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
301
+ }
302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PlanStepComponent, decorators: [{
303
+ type: Component,
304
+ args: [{
305
+ selector: 'tolle-plan-step',
306
+ standalone: true,
307
+ imports: [CommonModule],
308
+ changeDetection: ChangeDetectionStrategy.OnPush,
309
+ host: { '[class]': 'computedClass', '[attr.data-status]': 'status' },
310
+ template: `
311
+ <span class="tolle-plan-rail absolute bottom-0 left-3 top-6 w-px -translate-x-1/2 bg-border" aria-hidden="true"></span>
312
+
313
+ <span [class]="badgeClass">
314
+ <i *ngIf="status === 'done'" class="ri-check-line" aria-hidden="true"></i>
315
+ <i *ngIf="status === 'skipped'" class="ri-subtract-line" aria-hidden="true"></i>
316
+ <ng-container *ngIf="status !== 'done' && status !== 'skipped'">{{ index }}</ng-container>
317
+ </span>
318
+
319
+ <div class="min-w-0 flex-1 pt-0.5">
320
+ <p [class]="labelClass">{{ label }}</p>
321
+ <p *ngIf="description" class="mt-0.5 text-xs text-muted-foreground">{{ description }}</p>
322
+ <ng-content></ng-content>
323
+ </div>
324
+ `,
325
+ }]
326
+ }], propDecorators: { label: [{
327
+ type: Input
328
+ }], description: [{
329
+ type: Input
330
+ }], status: [{
331
+ type: Input
332
+ }], class: [{
333
+ type: Input
334
+ }] } });
335
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3BsYW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckssT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxHQUFHLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7O0FBS2hDLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztBQVVuQixNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMseUVBQXlFLEVBQUU7SUFDbEcsUUFBUSxFQUFFO1FBQ1IsSUFBSSxFQUFFO1lBQ0osRUFBRSxFQUFFLGFBQWE7WUFDakIsT0FBTyxFQUFFLGFBQWE7U0FDdkI7S0FDRjtJQUNELGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7Q0FDckMsQ0FBQyxDQUFDO0FBSUgsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHO0FBQzFCLGlGQUFpRjtBQUNqRiwyRUFBMkUsRUFDM0U7SUFDRSxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUU7WUFDTixPQUFPLEVBQUUsYUFBYTtZQUN0QixNQUFNLEVBQUUsYUFBYTtZQUNyQixJQUFJLEVBQUUsYUFBYTtZQUNuQixPQUFPLEVBQUUsWUFBWTtTQUN0QjtLQUNGO0lBQ0QsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRTtDQUN2QyxDQUNGLENBQUM7QUFFRixN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SztnQkFFRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY3ZhLCB0eXBlIFZhcmlhbnRQcm9wcyB9IGZyb20gJ2NsYXNzLXZhcmlhbmNlLWF1dGhvcml0eSc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuXG4vKiogUHJvZ3Jlc3Mgb2YgYSBzaW5nbGUgc3RlcCBpbiBhbiBhZ2VudCBwbGFuLiAqL1xuZXhwb3J0IHR5cGUgUGxhblN0ZXBTdGF0dXMgPSAncGVuZGluZycgfCAnYWN0aXZlJyB8ICdkb25lJyB8ICdza2lwcGVkJztcblxubGV0IHBsYW5TdGVwSWQgPSAwO1xuXG4vKiogSG93IGZhciB0aHJvdWdoIHRoZSBwbGFuIHRoZSBhZ2VudCBpcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxhblByb2dyZXNzIHtcbiAgLyoqIDEtYmFzZWQgcG9zaXRpb24gb2YgdGhlIHN0ZXAgYmVpbmcgd29ya2VkIG9uLCBvciBvZiB0aGUgbGFzdCBmaW5pc2hlZCBvbmUuICovXG4gIGN1cnJlbnQ6IG51bWJlcjtcbiAgLyoqIE51bWJlciBvZiByZWdpc3RlcmVkIHN0ZXBzLiAqL1xuICB0b3RhbDogbnVtYmVyO1xufVxuXG5jb25zdCBwbGFuVmFyaWFudHMgPSBjdmEoJ3ctZnVsbCByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLWNhcmQgcC0zIHRleHQtY2FyZC1mb3JlZ3JvdW5kJywge1xuICB2YXJpYW50czoge1xuICAgIHNpemU6IHtcbiAgICAgIHNtOiAncC0yIHRleHQteHMnLFxuICAgICAgZGVmYXVsdDogJ3AtMyB0ZXh0LXNtJyxcbiAgICB9LFxuICB9LFxuICBkZWZhdWx0VmFyaWFudHM6IHsgc2l6ZTogJ2RlZmF1bHQnIH0sXG59KTtcblxuZXhwb3J0IHR5cGUgUGxhblByb3BzID0gVmFyaWFudFByb3BzPHR5cGVvZiBwbGFuVmFyaWFudHM+O1xuXG5jb25zdCBwbGFuU3RlcFZhcmlhbnRzID0gY3ZhKFxuICAvLyBUaGUgY29ubmVjdG9yIGlzIGhpZGRlbiBvbiB0aGUgZmluYWwgc3RlcCBzbyB0aGUgbGluZSBzdG9wcyBhdCB0aGUgbGFzdCBiYWRnZS5cbiAgJ3JlbGF0aXZlIGZsZXggZ2FwLTMgcGItMyBsYXN0OnBiLTAgWyY6bGFzdC1jaGlsZF8udG9sbGUtcGxhbi1yYWlsXTpoaWRkZW4nLFxuICB7XG4gICAgdmFyaWFudHM6IHtcbiAgICAgIHN0YXR1czoge1xuICAgICAgICBwZW5kaW5nOiAnb3BhY2l0eS0xMDAnLFxuICAgICAgICBhY3RpdmU6ICdvcGFjaXR5LTEwMCcsXG4gICAgICAgIGRvbmU6ICdvcGFjaXR5LTEwMCcsXG4gICAgICAgIHNraXBwZWQ6ICdvcGFjaXR5LTYwJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZhdWx0VmFyaWFudHM6IHsgc3RhdHVzOiAncGVuZGluZycgfSxcbiAgfVxuKTtcblxuY29uc3QgcGxhbkJhZGdlVmFyaWFudHMgPSBjdmEoXG4gICdyZWxhdGl2ZSB6LVsxXSBmbGV4IGgtNiB3LTYgc2hyaW5rLTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtZnVsbCBib3JkZXIgdGV4dC1bMTFweF0gZm9udC1tZWRpdW0gdGFidWxhci1udW1zJyxcbiAge1xuICAgIHZhcmlhbnRzOiB7XG4gICAgICBzdGF0dXM6IHtcbiAgICAgICAgcGVuZGluZzogJ2JvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZCB0ZXh0LW11dGVkLWZvcmVncm91bmQnLFxuICAgICAgICBhY3RpdmU6ICdib3JkZXItcHJpbWFyeSBiZy1wcmltYXJ5IHRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kJyxcbiAgICAgICAgZG9uZTogJ2JvcmRlci1zdWNjZXNzLzUwIGJnLXN1Y2Nlc3MvMTAgdGV4dC1zdWNjZXNzJyxcbiAgICAgICAgc2tpcHBlZDogJ2JvcmRlci1kYXNoZWQgYm9yZGVyLWJvcmRlciBiZy1iYWNrZ3JvdW5kIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZGVmYXVsdFZhcmlhbnRzOiB7IHN0YXR1czogJ3BlbmRpbmcnIH0sXG4gIH1cbik7XG5cbmV4cG9ydCB0eXBlIFBsYW5TdGVwUHJvcHMgPSBWYXJpYW50UHJvcHM8dHlwZW9mIHBsYW5TdGVwVmFyaWFudHM+O1xuXG4vKipcbiAqIENvb3JkaW5hdGVzIGEgYHRvbGxlLXBsYW5gIGFuZCBpdHMgc3RlcHM6IGFzc2lnbnMgZWFjaCBzdGVwIGl0cyBudW1iZXIgYW5kXG4gKiBkZXJpdmVzIHRoZSBcIlN0ZXAgTiBvZiBNXCIgc3VtbWFyeS5cbiAqXG4gKiBUaGUgaGVhZGVyIGlzIGBPblB1c2hgIGFuZCB0aGUgc3RlcCBjb3VudCBpcyBub3Qgb25lIG9mIGl0cyBpbnB1dHMsIHNvIHRoZVxuICogc3VtbWFyeSBpcyBwdWJsaXNoZWQgYXMgYW4gb2JzZXJ2YWJsZSBhbmQgZXZlcnkgc3Vic2NyaWJlciBjYWxsc1xuICogYG1hcmtGb3JDaGVjaygpYC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBsYW5TZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0dXNlcyA9IG5ldyBNYXA8c3RyaW5nLCBQbGFuU3RlcFN0YXR1cz4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvcmRlcjogc3RyaW5nW10gPSBbXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHByb2dyZXNzU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQbGFuUHJvZ3Jlc3M+KHsgY3VycmVudDogMCwgdG90YWw6IDAgfSk7XG4gIC8qKiBFbWl0cyB0aGUgcGxhbidzIGN1cnJlbnQgcG9zaXRpb24gYW5kIHN0ZXAgY291bnQuICovXG4gIHJlYWRvbmx5IHByb2dyZXNzJCA9IHRoaXMucHJvZ3Jlc3NTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb2xsYXBzZWRTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgLyoqIEVtaXRzIHdoZXRoZXIgdGhlIHBsYW4gaXMgc2hvd2luZyBvbmx5IGl0cyBzdW1tYXJ5IHJvdy4gKi9cbiAgcmVhZG9ubHkgY29sbGFwc2VkJCA9IHRoaXMuY29sbGFwc2VkU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGdldCBwcm9ncmVzcygpOiBQbGFuUHJvZ3Jlc3Mge1xuICAgIHJldHVybiB0aGlzLnByb2dyZXNzU291cmNlLnZhbHVlO1xuICB9XG5cbiAgZ2V0IGNvbGxhcHNlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb2xsYXBzZWRTb3VyY2UudmFsdWU7XG4gIH1cblxuICBzZXRDb2xsYXBzZWQoY29sbGFwc2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29sbGFwc2VkU291cmNlLnZhbHVlICE9PSBjb2xsYXBzZWQpIHRoaXMuY29sbGFwc2VkU291cmNlLm5leHQoY29sbGFwc2VkKTtcbiAgfVxuXG4gIHRvZ2dsZUNvbGxhcHNlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbGxhcHNlZFNvdXJjZS5uZXh0KCF0aGlzLmNvbGxhcHNlZFNvdXJjZS52YWx1ZSk7XG4gIH1cblxuICAvKiogUmVnaXN0ZXJzIGEgc3RlcCBhbmQgcmV0dXJucyBpdHMgMS1iYXNlZCBudW1iZXIuICovXG4gIHJlZ2lzdGVyKGlkOiBzdHJpbmcsIHN0YXR1czogUGxhblN0ZXBTdGF0dXMpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy5zdGF0dXNlcy5oYXMoaWQpKSB0aGlzLm9yZGVyLnB1c2goaWQpO1xuICAgIHRoaXMuc3RhdHVzZXMuc2V0KGlkLCBzdGF0dXMpO1xuICAgIHRoaXMucmVjb21wdXRlKCk7XG4gICAgcmV0dXJuIHRoaXMub3JkZXIuaW5kZXhPZihpZCkgKyAxO1xuICB9XG5cbiAgc2V0U3RhdHVzKGlkOiBzdHJpbmcsIHN0YXR1czogUGxhblN0ZXBTdGF0dXMpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc3RhdHVzZXMuaGFzKGlkKSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnN0YXR1c2VzLmdldChpZCkgPT09IHN0YXR1cykgcmV0dXJuO1xuICAgIHRoaXMuc3RhdHVzZXMuc2V0KGlkLCBzdGF0dXMpO1xuICAgIHRoaXMucmVjb21wdXRlKCk7XG4gIH1cblxuICB1bnJlZ2lzdGVyKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMub3JkZXIuaW5kZXhPZihpZCk7XG4gICAgaWYgKGluZGV4ID4gLTEpIHRoaXMub3JkZXIuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLnN0YXR1c2VzLmRlbGV0ZShpZCk7XG4gICAgdGhpcy5yZWNvbXB1dGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIkN1cnJlbnRcIiBpcyB0aGUgZmlyc3Qgc3RlcCBzdGlsbCBpbiBmbGlnaHQg4oCUIHRoZSBhY3RpdmUgb25lIGlmIHRoZXJlIGlzXG4gICAqIG9uZSwgb3RoZXJ3aXNlIGhvd2V2ZXIgbWFueSBoYXZlIGFscmVhZHkgYmVlbiByZXNvbHZlZC5cbiAgICovXG4gIHByaXZhdGUgcmVjb21wdXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5vcmRlci5sZW5ndGg7XG4gICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLm9yZGVyLmZpbmRJbmRleCgoaWQpID0+IHRoaXMuc3RhdHVzZXMuZ2V0KGlkKSA9PT0gJ2FjdGl2ZScpO1xuICAgIGNvbnN0IHJlc29sdmVkID0gdGhpcy5vcmRlci5maWx0ZXIoKGlkKSA9PiB7XG4gICAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnN0YXR1c2VzLmdldChpZCk7XG4gICAgICByZXR1cm4gc3RhdHVzID09PSAnZG9uZScgfHwgc3RhdHVzID09PSAnc2tpcHBlZCc7XG4gICAgfSkubGVuZ3RoO1xuXG4gICAgY29uc3QgY3VycmVudCA9IGFjdGl2ZUluZGV4ID4gLTEgPyBhY3RpdmVJbmRleCArIDEgOiBNYXRoLm1pbihyZXNvbHZlZCwgdG90YWwpO1xuICAgIHRoaXMucHJvZ3Jlc3NTb3VyY2UubmV4dCh7IGN1cnJlbnQsIHRvdGFsIH0pO1xuICB9XG59XG5cbi8qKlxuICogQW4gb3JkZXJlZCBwbGFuIHRoZSBhZ2VudCBpbnRlbmRzIHRvIHdvcmsgdGhyb3VnaC4gRWFjaCBgdG9sbGUtcGxhbi1zdGVwYFxuICogbnVtYmVycyBpdHNlbGYgYW5kIGpvaW5zIHRoZSBjb25uZWN0b3IgbGluZTsgY29sbGFwc2luZyB0aGUgcGxhbiBzd2FwcyB0aGVcbiAqIHN0ZXBzIGZvciBhIHNpbmdsZSBcIlN0ZXAgTiBvZiBNXCIgc3VtbWFyeS5cbiAqXG4gKiBgYGBodG1sXG4gKiA8dG9sbGUtcGxhbiB0aXRsZT1cIk1pZ3JhdGlvbiBwbGFuXCI+XG4gKiAgIDx0b2xsZS1wbGFuLXN0ZXAgbGFiZWw9XCJSZWFkIHRoZSBzY2hlbWFcIiBzdGF0dXM9XCJkb25lXCI+PC90b2xsZS1wbGFuLXN0ZXA+XG4gKiAgIDx0b2xsZS1wbGFuLXN0ZXAgbGFiZWw9XCJXcml0ZSB0aGUgbWlncmF0aW9uXCIgc3RhdHVzPVwiYWN0aXZlXCI+PC90b2xsZS1wbGFuLXN0ZXA+XG4gKiAgIDx0b2xsZS1wbGFuLXN0ZXAgbGFiZWw9XCJSdW4gaXRcIiBzdGF0dXM9XCJwZW5kaW5nXCI+PC90b2xsZS1wbGFuLXN0ZXA+XG4gKiA8L3RvbGxlLXBsYW4+XG4gKiBgYGBcbiAqIEBuZXdcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtcGxhbicsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9J10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBwcm92aWRlcnM6IFtQbGFuU2VydmljZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgW2NsYXNzXT1cImNvbXB1dGVkQ2xhc3NcIiBbYXR0ci5kYXRhLWNvbGxhcHNlZF09XCJpc0NvbGxhcHNlZCA/ICcnIDogbnVsbFwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFjb2xsYXBzaWJsZVwiXG4gICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiY29sbGFwc2libGUgPyAhaXNDb2xsYXBzZWQgOiBudWxsXCJcbiAgICAgICAgW2NsYXNzXT1cImhlYWRlckNsYXNzXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZSgpXCJcbiAgICAgID5cbiAgICAgICAgPGlcbiAgICAgICAgICAqbmdJZj1cImNvbGxhcHNpYmxlXCJcbiAgICAgICAgICBbY2xhc3NdPVwiaXNDb2xsYXBzZWQgPyAncmktYXJyb3ctcmlnaHQtcy1saW5lIHNocmluay0wIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcgOiAncmktYXJyb3ctZG93bi1zLWxpbmUgc2hyaW5rLTAgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kJ1wiXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPjwvaT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZSBmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmRcIj57eyB0aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC1hdXRvIHNocmluay0wIHRleHQteHMgdGFidWxhci1udW1zIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPnt7IHN1bW1hcnkgfX08L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGRpdiBbY2xhc3NdPVwiaXNDb2xsYXBzZWQgPyAnaGlkZGVuJyA6ICdtdC0zIGZsZXggZmxleC1jb2wnXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBQbGFuQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIC8qKiBIZWFkaW5nIHNob3duIGFib3ZlIHRoZSBzdGVwcy4gQGRlZmF1bHQgJ1BsYW4nICovXG4gIEBJbnB1dCgpIHRpdGxlID0gJ1BsYW4nO1xuICAvKiogU2hvd3Mgb25seSB0aGUgaGVhZGVyIGFuZCBpdHMgXCJTdGVwIE4gb2YgTVwiIHN1bW1hcnkuIEBkZWZhdWx0IGZhbHNlICovXG4gIEBJbnB1dCgpIGNvbGxhcHNlZCA9IGZhbHNlO1xuICAvKiogTGV0cyB0aGUgdXNlciBjb2xsYXBzZSBhbmQgZXhwYW5kIHRoZSBwbGFuIGJ5IGNsaWNraW5nIHRoZSBoZWFkZXIuIEBkZWZhdWx0IHRydWUgKi9cbiAgQElucHV0KCkgY29sbGFwc2libGUgPSB0cnVlO1xuICAvKiogUGFkZGluZyBhbmQgdGV4dCBzY2FsZSBvZiB0aGUgcGxhbi4gQGRlZmF1bHQgJ2RlZmF1bHQnICovXG4gIEBJbnB1dCgpIHNpemU6IFBsYW5Qcm9wc1snc2l6ZSddID0gJ2RlZmF1bHQnO1xuICAvKiogRXh0cmEgVGFpbHdpbmQgY2xhc3NlcyBtZXJnZWQgb250byB0aGUgcGxhbiB2aWEgYGNuKClgIChsYXN0LXdpbnMpLiAqL1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuXG4gIC8qKiBFbWl0dGVkIHdpdGggdGhlIG5ldyBjb2xsYXBzZWQgc3RhdGUgd2hlbiB0aGUgaGVhZGVyIGlzIHRvZ2dsZWQuICovXG4gIEBPdXRwdXQoKSBjb2xsYXBzZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlID0gaW5qZWN0KFBsYW5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHN1YiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBpc0NvbGxhcHNlZCA9IGZhbHNlO1xuICBwcm9ncmVzczogUGxhblByb2dyZXNzID0geyBjdXJyZW50OiAwLCB0b3RhbDogMCB9O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5zZXRDb2xsYXBzZWQodGhpcy5jb2xsYXBzZWQpO1xuICAgIC8vIFNlZWRlZCBiZWZvcmUgc3Vic2NyaWJpbmcgc28gdGhlIHJlcGxheWVkIGluaXRpYWwgdmFsdWUgaXMgbm90IG1pc3Rha2VuXG4gICAgLy8gZm9yIGEgdXNlciB0b2dnbGUgYW5kIGVjaG9lZCBiYWNrIG91dCBhcyBhIGBjb2xsYXBzZWRDaGFuZ2VgLlxuICAgIHRoaXMuaXNDb2xsYXBzZWQgPSB0aGlzLmNvbGxhcHNlZDtcbiAgICB0aGlzLnN1Yi5hZGQoXG4gICAgICB0aGlzLnNlcnZpY2UuY29sbGFwc2VkJC5zdWJzY3JpYmUoKGNvbGxhcHNlZCkgPT4ge1xuICAgICAgICBjb25zdCBjaGFuZ2VkID0gdGhpcy5pc0NvbGxhcHNlZCAhPT0gY29sbGFwc2VkO1xuICAgICAgICB0aGlzLmlzQ29sbGFwc2VkID0gY29sbGFwc2VkO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgaWYgKGNoYW5nZWQpIHRoaXMuY29sbGFwc2VkQ2hhbmdlLmVtaXQoY29sbGFwc2VkKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN1Yi5hZGQoXG4gICAgICB0aGlzLnNlcnZpY2UucHJvZ3Jlc3MkLnN1YnNjcmliZSgocHJvZ3Jlc3MpID0+IHtcbiAgICAgICAgdGhpcy5wcm9ncmVzcyA9IHByb2dyZXNzO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5zZXRDb2xsYXBzZWQodGhpcy5jb2xsYXBzZWQpO1xuICBcbiAgICAvLyBBIGJvdW5kIGBjbGFzc2AgaW5wdXQgaXMgd3JpdHRlbiB0aHJvdWdoIEFuZ3VsYXIncyBzdHlsaW5nIHBhdGgsXG4gICAgLy8gd2hpY2ggZG9lcyBub3QgbWFyayBhbiBPblB1c2ggdmlldyBkaXJ0eSBvbiBpdHMgb3duLlxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKiBUaGUgY29tcGFjdCBcIlN0ZXAgTiBvZiBNXCIgbGFiZWwsIGVtcHR5IHVudGlsIGF0IGxlYXN0IG9uZSBzdGVwIHJlZ2lzdGVycy4gKi9cbiAgZ2V0IHN1bW1hcnkoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMucHJvZ3Jlc3MudG90YWwpIHJldHVybiAnJztcbiAgICByZXR1cm4gJ1N0ZXAgJyArIE1hdGgubWF4KDEsIHRoaXMucHJvZ3Jlc3MuY3VycmVudCkgKyAnIG9mICcgKyB0aGlzLnByb2dyZXNzLnRvdGFsO1xuICB9XG5cbiAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKHBsYW5WYXJpYW50cyh7IHNpemU6IHRoaXMuc2l6ZSB9KSwgdGhpcy5jbGFzcyk7XG4gIH1cblxuICBnZXQgaGVhZGVyQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKFxuICAgICAgJ2ZsZXggdy1mdWxsIGl0ZW1zLWNlbnRlciBnYXAtMS41IHJvdW5kZWQtbWQgdGV4dC1sZWZ0IHRleHQtc20gb3V0bGluZS1ub25lIHRyYW5zaXRpb24tY29sb3JzJyxcbiAgICAgIHRoaXMuY29sbGFwc2libGUgPyAnY3Vyc29yLXBvaW50ZXInIDogJ2N1cnNvci1kZWZhdWx0JyxcbiAgICAgICdmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZydcbiAgICApO1xuICB9XG5cbiAgdG9nZ2xlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb2xsYXBzaWJsZSkgcmV0dXJuO1xuICAgIHRoaXMuc2VydmljZS50b2dnbGVDb2xsYXBzZWQoKTtcbiAgfVxufVxuXG4vKiogT25lIG51bWJlcmVkIHN0ZXAgb2YgYSBgdG9sbGUtcGxhbmAuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1wbGFuLXN0ZXAnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHsgJ1tjbGFzc10nOiAnY29tcHV0ZWRDbGFzcycsICdbYXR0ci5kYXRhLXN0YXR1c10nOiAnc3RhdHVzJyB9LFxuICB0ZW1wbGF0ZTogYFxuICAgIDxzcGFuIGNsYXNzPVwidG9sbGUtcGxhbi1yYWlsIGFic29sdXRlIGJvdHRvbS0wIGxlZnQtMyB0b3AtNiB3LXB4IC10cmFuc2xhdGUteC0xLzIgYmctYm9yZGVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuXG4gICAgPHNwYW4gW2NsYXNzXT1cImJhZGdlQ2xhc3NcIj5cbiAgICAgIDxpICpuZ0lmPVwic3RhdHVzID09PSAnZG9uZSdcIiBjbGFzcz1cInJpLWNoZWNrLWxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICA8aSAqbmdJZj1cInN0YXR1cyA9PT0gJ3NraXBwZWQnXCIgY2xhc3M9XCJyaS1zdWJ0cmFjdC1saW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0YXR1cyAhPT0gJ2RvbmUnICYmIHN0YXR1cyAhPT0gJ3NraXBwZWQnXCI+e3sgaW5kZXggfX08L25nLWNvbnRhaW5lcj5cbiAgICA8L3NwYW4+XG5cbiAgICA8ZGl2IGNsYXNzPVwibWluLXctMCBmbGV4LTEgcHQtMC41XCI+XG4gICAgICA8cCBbY2xhc3NdPVwibGFiZWxDbGFzc1wiPnt7IGxhYmVsIH19PC9wPlxuICAgICAgPHAgKm5nSWY9XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwibXQtMC41IHRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+e3sgZGVzY3JpcHRpb24gfX08L3A+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFBsYW5TdGVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIC8qKiBXaGF0IHRoaXMgc3RlcCBkb2VzLiBAZGVmYXVsdCAnJyAqL1xuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICAvKiogU3VwcG9ydGluZyBkZXRhaWwgc2hvd24gdW5kZXIgdGhlIGxhYmVsLiBAZGVmYXVsdCAnJyAqL1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbiA9ICcnO1xuICAvKiogUHJvZ3Jlc3Mgb2YgdGhpcyBzdGVwOyBkcml2ZXMgdGhlIGJhZGdlIGNvbG91ciBhbmQgZ2x5cGguIEBkZWZhdWx0ICdwZW5kaW5nJyAqL1xuICBASW5wdXQoKSBzdGF0dXM6IFBsYW5TdGVwU3RhdHVzID0gJ3BlbmRpbmcnO1xuICAvKiogRXh0cmEgVGFpbHdpbmQgY2xhc3NlcyBtZXJnZWQgb250byB0aGUgc3RlcCB2aWEgYGNuKClgIChsYXN0LXdpbnMpLiAqL1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZSA9IGluamVjdChQbGFuU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaWQgPSAndG9sbGUtcGxhbi1zdGVwLScgKyBwbGFuU3RlcElkKys7XG5cbiAgLyoqIDEtYmFzZWQgcG9zaXRpb24gb2YgdGhpcyBzdGVwLCBhc3NpZ25lZCBvbiByZWdpc3RyYXRpb24uICovXG4gIGluZGV4ID0gMDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluZGV4ID0gdGhpcy5zZXJ2aWNlLnJlZ2lzdGVyKHRoaXMuaWQsIHRoaXMuc3RhdHVzKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5zZXRTdGF0dXModGhpcy5pZCwgdGhpcy5zdGF0dXMpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zZXJ2aWNlLnVucmVnaXN0ZXIodGhpcy5pZCk7XG4gIH1cblxuICBnZXQgY29tcHV0ZWRDbGFzcygpIHtcbiAgICByZXR1cm4gY24ocGxhblN0ZXBWYXJpYW50cyh7IHN0YXR1czogdGhpcy5zdGF0dXMgfSksIHRoaXMuY2xhc3MpO1xuICB9XG5cbiAgZ2V0IGJhZGdlQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKHBsYW5CYWRnZVZhcmlhbnRzKHsgc3RhdHVzOiB0aGlzLnN0YXR1cyB9KSk7XG4gIH1cblxuICBnZXQgbGFiZWxDbGFzcygpIHtcbiAgICByZXR1cm4gY24oXG4gICAgICAndGV4dC1zbScsXG4gICAgICB0aGlzLnN0YXR1cyA9PT0gJ2FjdGl2ZScgJiYgJ2ZvbnQtbWVkaXVtIHRleHQtZm9yZWdyb3VuZCcsXG4gICAgICB0aGlzLnN0YXR1cyA9PT0gJ2RvbmUnICYmICd0ZXh0LWZvcmVncm91bmQnLFxuICAgICAgdGhpcy5zdGF0dXMgPT09ICdwZW5kaW5nJyAmJiAndGV4dC1tdXRlZC1mb3JlZ3JvdW5kJyxcbiAgICAgIHRoaXMuc3RhdHVzID09PSAnc2tpcHBlZCcgJiYgJ3RleHQtbXV0ZWQtZm9yZWdyb3VuZCBsaW5lLXRocm91Z2gnXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -17,15 +17,11 @@ export class PopoverContentComponent {
17
17
  >
18
18
  <ng-content></ng-content>
19
19
  </div>
20
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
20
+ `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
21
21
  }
22
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PopoverContentComponent, decorators: [{
23
23
  type: Component,
24
- args: [{
25
- selector: 'tolle-popover-content',
26
- standalone: true,
27
- imports: [CommonModule],
28
- template: `
24
+ args: [{ selector: 'tolle-popover-content', standalone: true, imports: [CommonModule], template: `
29
25
  <div
30
26
  [class]="cn(
31
27
  'z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none',
@@ -36,9 +32,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
36
32
  >
37
33
  <ng-content></ng-content>
38
34
  </div>
39
- `
40
- }]
35
+ `, styles: [":host{display:block}\n"] }]
41
36
  }], propDecorators: { class: [{
42
37
  type: Input
43
38
  }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvcG9wb3Zlci1jb250ZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFtQmhDLE1BQU0sT0FBTyx1QkFBdUI7SUFDekIsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNWLEVBQUUsR0FBRyxFQUFFLENBQUM7d0dBRlAsdUJBQXVCOzRGQUF2Qix1QkFBdUIsNkdBYnhCOzs7Ozs7Ozs7OztHQVdULDJEQVpTLFlBQVk7OzRGQWNYLHVCQUF1QjtrQkFqQm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsUUFBUSxFQUFFOzs7Ozs7Ozs7OztHQVdUO2lCQUNGOzhCQUVVLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXBvcG92ZXItY29udGVudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIFtjbGFzc109XCJjbihcbiAgICAgICAgJ3otNTAgdy03MiByb3VuZGVkLW1kIGJvcmRlciBiZy1wb3BvdmVyIHAtNCB0ZXh0LXBvcG92ZXItZm9yZWdyb3VuZCBzaGFkb3ctbWQgb3V0bGluZS1ub25lJyxcbiAgICAgICAgJ2FuaW1hdGUtaW4gZmFkZS1pbiB6b29tLWluLTk1IGR1cmF0aW9uLTIwMCcsXG4gICAgICAgIGNsYXNzXG4gICAgICApXCJcbiAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBQb3BvdmVyQ29udGVudENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG4gIHByb3RlY3RlZCBjbiA9IGNuO1xufVxuIl19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvcG9wb3Zlci1jb250ZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFvQmhDLE1BQU0sT0FBTyx1QkFBdUI7SUFDekIsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNWLEVBQUUsR0FBRyxFQUFFLENBQUM7d0dBRlAsdUJBQXVCOzRGQUF2Qix1QkFBdUIsNkdBYnhCOzs7Ozs7Ozs7OztHQVdULCtGQVpTLFlBQVk7OzRGQWNYLHVCQUF1QjtrQkFsQm5DLFNBQVM7K0JBQ0UsdUJBQXVCLGNBRXJCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiOzs7Ozs7Ozs7OztHQVdUOzhCQUdRLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXBvcG92ZXItY29udGVudCcsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9J10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIFtjbGFzc109XCJjbihcbiAgICAgICAgJ3otNTAgdy03MiByb3VuZGVkLW1kIGJvcmRlciBiZy1wb3BvdmVyIHAtNCB0ZXh0LXBvcG92ZXItZm9yZWdyb3VuZCBzaGFkb3ctbWQgb3V0bGluZS1ub25lJyxcbiAgICAgICAgJ2FuaW1hdGUtaW4gZmFkZS1pbiB6b29tLWluLTk1IGR1cmF0aW9uLTIwMCcsXG4gICAgICAgIGNsYXNzXG4gICAgICApXCJcbiAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBQb3BvdmVyQ29udGVudENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG4gIHByb3RlY3RlZCBjbiA9IGNuO1xufVxuIl19
@@ -12,10 +12,14 @@ export class PopoverComponent {
12
12
  isOpen = false;
13
13
  cleanup;
14
14
  _outsideClickHandler = (event) => {
15
- if (!this.triggerEl.nativeElement.contains(event.target) && !this.popoverEl?.nativeElement.contains(event.target)) {
15
+ if (!this.triggerEl?.nativeElement.contains(event.target) && !this.popoverEl?.nativeElement.contains(event.target)) {
16
16
  this.close();
17
17
  }
18
18
  };
19
+ _escapeHandler = (event) => {
20
+ if (event.key === 'Escape')
21
+ this.close();
22
+ };
19
23
  toggle() {
20
24
  this.isOpen ? this.close() : this.open();
21
25
  }
@@ -24,7 +28,8 @@ export class PopoverComponent {
24
28
  this.onOpen.emit();
25
29
  setTimeout(() => {
26
30
  this.updatePosition();
27
- document.addEventListener('mousedown', this._outsideClickHandler);
31
+ document.addEventListener('pointerdown', this._outsideClickHandler, true);
32
+ document.addEventListener('keydown', this._escapeHandler, true);
28
33
  });
29
34
  }
30
35
  close() {
@@ -32,7 +37,8 @@ export class PopoverComponent {
32
37
  this.onClose.emit();
33
38
  if (this.cleanup)
34
39
  this.cleanup();
35
- document.removeEventListener('mousedown', this._outsideClickHandler);
40
+ document.removeEventListener('pointerdown', this._outsideClickHandler, true);
41
+ document.removeEventListener('keydown', this._escapeHandler, true);
36
42
  }
37
43
  updatePosition() {
38
44
  if (!this.triggerEl || !this.popoverEl)
@@ -54,7 +60,8 @@ export class PopoverComponent {
54
60
  ngOnDestroy() {
55
61
  if (this.cleanup)
56
62
  this.cleanup();
57
- document.removeEventListener('mousedown', this._outsideClickHandler);
63
+ document.removeEventListener('pointerdown', this._outsideClickHandler, true);
64
+ document.removeEventListener('keydown', this._escapeHandler, true);
58
65
  }
59
66
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
60
67
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PopoverComponent, isStandalone: true, selector: "tolle-popover", inputs: { placement: "placement" }, outputs: { onOpen: "onOpen", onClose: "onClose" }, viewQueries: [{ propertyName: "triggerEl", first: true, predicate: ["trigger"], descendants: true }, { propertyName: "popoverEl", first: true, predicate: ["popover"], descendants: true }], ngImport: i0, template: `
@@ -70,15 +77,11 @@ export class PopoverComponent {
70
77
  >
71
78
  <ng-content></ng-content>
72
79
  </div>
73
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
80
+ `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
74
81
  }
75
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PopoverComponent, decorators: [{
76
83
  type: Component,
77
- args: [{
78
- selector: 'tolle-popover',
79
- standalone: true,
80
- imports: [CommonModule],
81
- template: `
84
+ args: [{ selector: 'tolle-popover', standalone: true, imports: [CommonModule], template: `
82
85
  <div class="inline-block" #trigger (click)="toggle()">
83
86
  <ng-content select="[trigger]"></ng-content>
84
87
  </div>
@@ -91,8 +94,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
91
94
  >
92
95
  <ng-content></ng-content>
93
96
  </div>
94
- `,
95
- }]
97
+ `, styles: [":host{display:block}\n"] }]
96
98
  }], propDecorators: { placement: [{
97
99
  type: Input
98
100
  }], onOpen: [{
@@ -106,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
106
108
  type: ViewChild,
107
109
  args: ['popover']
108
110
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3BvcG92ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFxQnpHLE1BQU0sT0FBTyxnQkFBZ0I7SUFDbEIsU0FBUyxHQUE0SixRQUFRLENBQUM7SUFDN0ssTUFBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDbEMsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFFdkIsU0FBUyxDQUFjO0lBQ3ZCLFNBQVMsQ0FBYztJQUU3QyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ1AsT0FBTyxDQUFjO0lBRXJCLG9CQUFvQixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO1FBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2xILElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRixNQUFNO1FBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNwRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxPQUFPO1lBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFFL0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFDNUIsR0FBRyxFQUFFO1lBQ0gsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFO2dCQUMxRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDdkQsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQ25CLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO29CQUNoRCxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7b0JBQ2QsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJO29CQUNiLFVBQVUsRUFBRSxTQUFTO2lCQUN0QixDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxPQUFPO1lBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdkUsQ0FBQzt3R0E5RFUsZ0JBQWdCOzRGQUFoQixnQkFBZ0IsNlZBZmpCOzs7Ozs7Ozs7Ozs7O0dBYVQsMkRBZFMsWUFBWTs7NEZBZ0JYLGdCQUFnQjtrQkFuQjVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7OztHQWFUO2lCQUNGOzhCQUVVLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBRWUsU0FBUztzQkFBOUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNFLFNBQVM7c0JBQTlCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNvbXB1dGVQb3NpdGlvbiwgZmxpcCwgc2hpZnQsIG9mZnNldCwgYXV0b1VwZGF0ZSB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXBvcG92ZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLWJsb2NrXCIgI3RyaWdnZXIgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdHJpZ2dlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImlzT3BlblwiXG4gICAgICAjcG9wb3ZlclxuICAgICAgY2xhc3M9XCJmaXhlZCB0b3AtMCBsZWZ0LTAgdy1tYXggei1bOTk5OV1cIlxuICAgICAgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW5cIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgUG9wb3ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBsYWNlbWVudDogJ3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCcgfCAndG9wLXN0YXJ0JyB8ICd0b3AtZW5kJyB8ICdib3R0b20tc3RhcnQnIHwgJ2JvdHRvbS1lbmQnIHwgJ2xlZnQtc3RhcnQnIHwgJ2xlZnQtZW5kJyB8ICdyaWdodC1zdGFydCcgfCAncmlnaHQtZW5kJyA9ICdib3R0b20nO1xuICBAT3V0cHV0KCkgb25PcGVuID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgb25DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKCd0cmlnZ2VyJykgdHJpZ2dlckVsITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgncG9wb3ZlcicpIHBvcG92ZXJFbCE6IEVsZW1lbnRSZWY7XG5cbiAgaXNPcGVuID0gZmFsc2U7XG4gIHByaXZhdGUgY2xlYW51cD86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfb3V0c2lkZUNsaWNrSGFuZGxlciA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgIGlmICghdGhpcy50cmlnZ2VyRWwubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpICYmICF0aGlzLnBvcG92ZXJFbD8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9O1xuXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLmlzT3BlbiA/IHRoaXMuY2xvc2UoKSA6IHRoaXMub3BlbigpO1xuICB9XG5cbiAgb3BlbigpIHtcbiAgICB0aGlzLmlzT3BlbiA9IHRydWU7XG4gICAgdGhpcy5vbk9wZW4uZW1pdCgpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5fb3V0c2lkZUNsaWNrSGFuZGxlcik7XG4gICAgfSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub25DbG9zZS5lbWl0KCk7XG4gICAgaWYgKHRoaXMuY2xlYW51cCkgdGhpcy5jbGVhbnVwKCk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5fb3V0c2lkZUNsaWNrSGFuZGxlcik7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVBvc2l0aW9uKCkge1xuICAgIGlmICghdGhpcy50cmlnZ2VyRWwgfHwgIXRoaXMucG9wb3ZlckVsKSByZXR1cm47XG5cbiAgICB0aGlzLmNsZWFudXAgPSBhdXRvVXBkYXRlKFxuICAgICAgdGhpcy50cmlnZ2VyRWwubmF0aXZlRWxlbWVudCxcbiAgICAgIHRoaXMucG9wb3ZlckVsLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbXB1dGVQb3NpdGlvbih0aGlzLnRyaWdnZXJFbC5uYXRpdmVFbGVtZW50LCB0aGlzLnBvcG92ZXJFbC5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudCxcbiAgICAgICAgICBzdHJhdGVneTogJ2ZpeGVkJyxcbiAgICAgICAgICBtaWRkbGV3YXJlOiBbb2Zmc2V0KDgpLCBmbGlwKCksIHNoaWZ0KHsgcGFkZGluZzogOCB9KV0sXG4gICAgICAgIH0pLnRoZW4oKHsgeCwgeSB9KSA9PiB7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnBvcG92ZXJFbC5uYXRpdmVFbGVtZW50LnN0eWxlLCB7XG4gICAgICAgICAgICBsZWZ0OiBgJHt4fXB4YCxcbiAgICAgICAgICAgIHRvcDogYCR7eX1weGAsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiAndmlzaWJsZScsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5jbGVhbnVwKSB0aGlzLmNsZWFudXAoKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLl9vdXRzaWRlQ2xpY2tIYW5kbGVyKTtcbiAgfVxufVxuIl19
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3BvcG92ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFzQnpHLE1BQU0sT0FBTyxnQkFBZ0I7SUFDbEIsU0FBUyxHQUE0SixRQUFRLENBQUM7SUFDN0ssTUFBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDbEMsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFFdkIsU0FBUyxDQUFjO0lBQ3ZCLFNBQVMsQ0FBYztJQUU3QyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ1AsT0FBTyxDQUFjO0lBRXJCLG9CQUFvQixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO1FBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ25ILElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFTSxjQUFjLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEVBQUU7UUFDaEQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFFBQVE7WUFBRSxJQUFJLENBQUMsS0FBSyxF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QUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFDYjs7Ozs7Ozs7Ozs7OztHQWFUOzhCQUdRLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBRWUsU0FBUztzQkFBOUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNFLFNBQVM7c0JBQTlCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNvbXB1dGVQb3NpdGlvbiwgZmxpcCwgc2hpZnQsIG9mZnNldCwgYXV0b1VwZGF0ZSB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXBvcG92ZXInLFxuICBzdHlsZXM6IFsnOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgfSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLWJsb2NrXCIgI3RyaWdnZXIgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdHJpZ2dlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImlzT3BlblwiXG4gICAgICAjcG9wb3ZlclxuICAgICAgY2xhc3M9XCJmaXhlZCB0b3AtMCBsZWZ0LTAgdy1tYXggei1bOTk5OV1cIlxuICAgICAgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW5cIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgUG9wb3ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBsYWNlbWVudDogJ3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCcgfCAndG9wLXN0YXJ0JyB8ICd0b3AtZW5kJyB8ICdib3R0b20tc3RhcnQnIHwgJ2JvdHRvbS1lbmQnIHwgJ2xlZnQtc3RhcnQnIHwgJ2xlZnQtZW5kJyB8ICdyaWdodC1zdGFydCcgfCAncmlnaHQtZW5kJyA9ICdib3R0b20nO1xuICBAT3V0cHV0KCkgb25PcGVuID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgb25DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKCd0cmlnZ2VyJykgdHJpZ2dlckVsITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgncG9wb3ZlcicpIHBvcG92ZXJFbCE6IEVsZW1lbnRSZWY7XG5cbiAgaXNPcGVuID0gZmFsc2U7XG4gIHByaXZhdGUgY2xlYW51cD86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfb3V0c2lkZUNsaWNrSGFuZGxlciA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgIGlmICghdGhpcy50cmlnZ2VyRWw/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJiAhdGhpcy5wb3BvdmVyRWw/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9lc2NhcGVIYW5kbGVyID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHRoaXMuY2xvc2UoKTtcbiAgfTtcblxuICB0b2dnbGUoKSB7XG4gICAgdGhpcy5pc09wZW4gPyB0aGlzLmNsb3NlKCkgOiB0aGlzLm9wZW4oKTtcbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgIHRoaXMub25PcGVuLmVtaXQoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgdGhpcy5fb3V0c2lkZUNsaWNrSGFuZGxlciwgdHJ1ZSk7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fZXNjYXBlSGFuZGxlciwgdHJ1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub25DbG9zZS5lbWl0KCk7XG4gICAgaWYgKHRoaXMuY2xlYW51cCkgdGhpcy5jbGVhbnVwKCk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCB0aGlzLl9vdXRzaWRlQ2xpY2tIYW5kbGVyLCB0cnVlKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fZXNjYXBlSGFuZGxlciwgdHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVBvc2l0aW9uKCkge1xuICAgIGlmICghdGhpcy50cmlnZ2VyRWwgfHwgIXRoaXMucG9wb3ZlckVsKSByZXR1cm47XG5cbiAgICB0aGlzLmNsZWFudXAgPSBhdXRvVXBkYXRlKFxuICAgICAgdGhpcy50cmlnZ2VyRWwubmF0aXZlRWxlbWVudCxcbiAgICAgIHRoaXMucG9wb3ZlckVsLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbXB1dGVQb3NpdGlvbih0aGlzLnRyaWdnZXJFbC5uYXRpdmVFbGVtZW50LCB0aGlzLnBvcG92ZXJFbC5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudCxcbiAgICAgICAgICBzdHJhdGVneTogJ2ZpeGVkJyxcbiAgICAgICAgICBtaWRkbGV3YXJlOiBbb2Zmc2V0KDgpLCBmbGlwKCksIHNoaWZ0KHsgcGFkZGluZzogOCB9KV0sXG4gICAgICAgIH0pLnRoZW4oKHsgeCwgeSB9KSA9PiB7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnBvcG92ZXJFbC5uYXRpdmVFbGVtZW50LnN0eWxlLCB7XG4gICAgICAgICAgICBsZWZ0OiBgJHt4fXB4YCxcbiAgICAgICAgICAgIHRvcDogYCR7eX1weGAsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiAndmlzaWJsZScsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5jbGVhbnVwKSB0aGlzLmNsZWFudXAoKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIHRoaXMuX291dHNpZGVDbGlja0hhbmRsZXIsIHRydWUpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9lc2NhcGVIYW5kbGVyLCB0cnVlKTtcbiAgfVxufVxuIl19
@@ -25,15 +25,11 @@ export class ProgressComponent {
25
25
  [style.transform]="'translateX(-' + (100 - clampedValue) + '%)'"
26
26
  ></div>
27
27
  </div>
28
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
28
+ `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
29
29
  }
30
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProgressComponent, decorators: [{
31
31
  type: Component,
32
- args: [{
33
- selector: 'tolle-progress',
34
- standalone: true,
35
- imports: [CommonModule],
36
- template: `
32
+ args: [{ selector: 'tolle-progress', standalone: true, imports: [CommonModule], template: `
37
33
  <div
38
34
  [class]="computedClass"
39
35
  role="progressbar"
@@ -46,11 +42,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
46
42
  [style.transform]="'translateX(-' + (100 - clampedValue) + '%)'"
47
43
  ></div>
48
44
  </div>
49
- `
50
- }]
45
+ `, styles: [":host{display:block}\n"] }]
51
46
  }], propDecorators: { value: [{
52
47
  type: Input
53
48
  }], class: [{
54
49
  type: Input
55
50
  }] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9wcm9ncmVzcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBcUJoQyxNQUFNLE9BQU8saUJBQWlCO0lBQ2pCLEtBQUssR0FBa0IsQ0FBQyxDQUFDO0lBQ3pCLEtBQUssR0FBVyxFQUFFLENBQUM7SUFFNUIsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sRUFBRSxDQUNMLGdFQUFnRSxFQUNoRSxJQUFJLENBQUMsS0FBSyxDQUNiLENBQUM7SUFDTixDQUFDO3dHQWJRLGlCQUFpQjs0RkFBakIsaUJBQWlCLHNIQWZoQjs7Ozs7Ozs7Ozs7OztHQWFYLDJEQWRXLFlBQVk7OzRGQWdCYixpQkFBaUI7a0JBbkI3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7OztHQWFYO2lCQUNGOzhCQUVZLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS1wcm9ncmVzcycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIFtjbGFzc109XCJjb21wdXRlZENsYXNzXCJcbiAgICAgIHJvbGU9XCJwcm9ncmVzc2JhclwiXG4gICAgICBbYXR0ci5hcmlhLXZhbHVlbWluXT1cIjBcIlxuICAgICAgW2F0dHIuYXJpYS12YWx1ZW1heF09XCIxMDBcIlxuICAgICAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJjbGFtcGVkVmFsdWVcIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJoLWZ1bGwgdy1mdWxsIGZsZXgtMSBiZy1wcmltYXJ5IHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBlYXNlLWluLW91dFwiXG4gICAgICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwiJ3RyYW5zbGF0ZVgoLScgKyAoMTAwIC0gY2xhbXBlZFZhbHVlKSArICclKSdcIlxuICAgICAgPjwvZGl2PlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSB2YWx1ZTogbnVtYmVyIHwgbnVsbCA9IDA7XG4gICAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuXG4gICAgZ2V0IGNsYW1wZWRWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTWF0aC5taW4oMTAwLCBNYXRoLm1heCgwLCB0aGlzLnZhbHVlID8/IDApKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIGNuKFxuICAgICAgICAgICAgXCJyZWxhdGl2ZSBoLTIgdy1mdWxsIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLWZ1bGwgYmctcHJpbWFyeS8yMFwiLFxuICAgICAgICAgICAgdGhpcy5jbGFzc1xuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9wcm9ncmVzcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBc0JoQyxNQUFNLE9BQU8saUJBQWlCO0lBQ2pCLEtBQUssR0FBa0IsQ0FBQyxDQUFDO0lBQ3pCLEtBQUssR0FBVyxFQUFFLENBQUM7SUFFNUIsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sRUFBRSxDQUNMLGdFQUFnRSxFQUNoRSxJQUFJLENBQUMsS0FBSyxDQUNiLENBQUM7SUFDTixDQUFDO3dHQWJRLGlCQUFpQjs0RkFBakIsaUJBQWlCLHNIQWZoQjs7Ozs7Ozs7Ozs7OztHQWFYLCtGQWRXLFlBQVk7OzRGQWdCYixpQkFBaUI7a0JBcEI3QixTQUFTOytCQUNJLGdCQUFnQixjQUVkLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiOzs7Ozs7Ozs7Ozs7O0dBYVg7OEJBR1UsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RvbGxlLXByb2dyZXNzJyxcbiAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgW2NsYXNzXT1cImNvbXB1dGVkQ2xhc3NcIlxuICAgICAgcm9sZT1cInByb2dyZXNzYmFyXCJcbiAgICAgIFthdHRyLmFyaWEtdmFsdWVtaW5dPVwiMFwiXG4gICAgICBbYXR0ci5hcmlhLXZhbHVlbWF4XT1cIjEwMFwiXG4gICAgICBbYXR0ci5hcmlhLXZhbHVlbm93XT1cImNsYW1wZWRWYWx1ZVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImgtZnVsbCB3LWZ1bGwgZmxleC0xIGJnLXByaW1hcnkgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIGVhc2UtaW4tb3V0XCJcbiAgICAgICAgW3N0eWxlLnRyYW5zZm9ybV09XCIndHJhbnNsYXRlWCgtJyArICgxMDAgLSBjbGFtcGVkVmFsdWUpICsgJyUpJ1wiXG4gICAgICA+PC9kaXY+XG4gICAgPC9kaXY+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIHZhbHVlOiBudW1iZXIgfCBudWxsID0gMDtcbiAgICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG5cbiAgICBnZXQgY2xhbXBlZFZhbHVlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBNYXRoLm1pbigxMDAsIE1hdGgubWF4KDAsIHRoaXMudmFsdWUgPz8gMCkpO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZENsYXNzKCkge1xuICAgICAgICByZXR1cm4gY24oXG4gICAgICAgICAgICBcInJlbGF0aXZlIGgtMiB3LWZ1bGwgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtZnVsbCBiZy1wcmltYXJ5LzIwXCIsXG4gICAgICAgICAgICB0aGlzLmNsYXNzXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19