@tolle_/tolle-ui 18.2.0 → 18.2.3

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 (170) hide show
  1. package/esm2022/lib/accordion-item.component.mjs +121 -0
  2. package/esm2022/lib/accordion.component.mjs +65 -0
  3. package/esm2022/lib/alert-dialog-dynamic.component.mjs +82 -0
  4. package/esm2022/lib/alert-dialog.component.mjs +278 -0
  5. package/esm2022/lib/alert-dialog.service.mjs +39 -0
  6. package/esm2022/lib/alert-dialog.types.mjs +10 -0
  7. package/esm2022/lib/alert.component.mjs +128 -0
  8. package/esm2022/lib/avatar-fallback.component.mjs +19 -0
  9. package/esm2022/lib/avatar.component.mjs +86 -0
  10. package/esm2022/lib/badge.component.mjs +74 -0
  11. package/esm2022/lib/breadcrumb-item.component.mjs +19 -0
  12. package/esm2022/lib/breadcrumb-link.component.mjs +60 -0
  13. package/esm2022/lib/breadcrumb-separator.component.mjs +23 -0
  14. package/esm2022/lib/breadcrumb.component.mjs +28 -0
  15. package/esm2022/lib/button-group.component.mjs +25 -0
  16. package/esm2022/lib/button.component.mjs +106 -0
  17. package/esm2022/lib/calendar.component.mjs +509 -0
  18. package/esm2022/lib/card.component.mjs +94 -0
  19. package/esm2022/lib/carousel/carousel.component.mjs +199 -0
  20. package/esm2022/lib/carousel/index.mjs +2 -0
  21. package/esm2022/lib/checkbox.component.mjs +100 -0
  22. package/esm2022/lib/collapsible.component.mjs +147 -0
  23. package/esm2022/lib/data-table.component.mjs +491 -0
  24. package/esm2022/lib/date-picker.component.mjs +327 -0
  25. package/esm2022/lib/date-range-picker.component.mjs +260 -0
  26. package/esm2022/lib/dropdown-item.component.mjs +23 -0
  27. package/esm2022/lib/dropdown-label.component.mjs +19 -0
  28. package/esm2022/lib/dropdown-menu.component.mjs +27 -0
  29. package/esm2022/lib/dropdown-separator.component.mjs +11 -0
  30. package/esm2022/lib/dropdown-trigger.directive.mjs +76 -0
  31. package/esm2022/lib/empty-state.component.mjs +111 -0
  32. package/esm2022/lib/hover-card.component.mjs +185 -0
  33. package/esm2022/lib/input.component.mjs +287 -0
  34. package/esm2022/lib/label.component.mjs +41 -0
  35. package/esm2022/lib/masked-input.component.mjs +343 -0
  36. package/esm2022/lib/modal-ref.mjs +31 -0
  37. package/esm2022/lib/modal-stack.service.mjs +26 -0
  38. package/esm2022/lib/modal.component.mjs +98 -0
  39. package/esm2022/lib/modal.mjs +28 -0
  40. package/esm2022/lib/modal.service.mjs +65 -0
  41. package/esm2022/lib/multi-select.component.mjs +425 -0
  42. package/esm2022/lib/otp-group.component.mjs +15 -0
  43. package/esm2022/lib/otp-slot.component.mjs +74 -0
  44. package/esm2022/lib/otp.component.mjs +134 -0
  45. package/esm2022/lib/pagination.component.mjs +283 -0
  46. package/esm2022/lib/popover-content.component.mjs +44 -0
  47. package/esm2022/lib/popover.component.mjs +105 -0
  48. package/esm2022/lib/progress.component.mjs +53 -0
  49. package/esm2022/lib/radio-group.component.mjs +78 -0
  50. package/esm2022/lib/radio-item.component.mjs +112 -0
  51. package/esm2022/lib/radio-service.mjs +23 -0
  52. package/esm2022/lib/range-calendar.component.mjs +285 -0
  53. package/esm2022/lib/scroll-area.component.mjs +49 -0
  54. package/esm2022/lib/segment.component.mjs +208 -0
  55. package/esm2022/lib/select-group.component.mjs +28 -0
  56. package/esm2022/lib/select-item.component.mjs +168 -0
  57. package/esm2022/lib/select-separator.component.mjs +24 -0
  58. package/esm2022/lib/select.component.mjs +294 -0
  59. package/esm2022/lib/select.service.mjs +21 -0
  60. package/esm2022/lib/separator.component.mjs +42 -0
  61. package/esm2022/lib/sheet-ref.mjs +36 -0
  62. package/esm2022/lib/sheet-wrapper.component.mjs +142 -0
  63. package/esm2022/lib/sheet.component.mjs +262 -0
  64. package/esm2022/lib/sheet.service.mjs +48 -0
  65. package/esm2022/lib/sheet.types.mjs +2 -0
  66. package/esm2022/lib/sidebar.component.mjs +460 -0
  67. package/esm2022/lib/skeleton.component.mjs +34 -0
  68. package/esm2022/lib/slider.component.mjs +233 -0
  69. package/esm2022/lib/switch.component.mjs +133 -0
  70. package/esm2022/lib/tabs.component.mjs +176 -0
  71. package/esm2022/lib/textarea.component.mjs +281 -0
  72. package/esm2022/lib/theme.service.mjs +396 -0
  73. package/esm2022/lib/toast.service.mjs +59 -0
  74. package/esm2022/lib/toaster.component.mjs +125 -0
  75. package/esm2022/lib/toggle-group.component.mjs +173 -0
  76. package/esm2022/lib/toggle.component.mjs +122 -0
  77. package/esm2022/lib/tolle-cell.directive.mjs +22 -0
  78. package/esm2022/lib/tolle-config.mjs +18 -0
  79. package/esm2022/lib/tooltip.directive.mjs +71 -0
  80. package/esm2022/lib/types/date-range.mjs +2 -0
  81. package/esm2022/lib/utils/cn.mjs +6 -0
  82. package/esm2022/public-api.mjs +81 -0
  83. package/esm2022/tolle-ui.mjs +5 -0
  84. package/fesm2022/tolle-ui.mjs +502 -431
  85. package/fesm2022/tolle-ui.mjs.map +1 -1
  86. package/index.d.ts +5 -0
  87. package/lib/accordion-item.component.d.ts +13 -0
  88. package/lib/accordion.component.d.ts +15 -0
  89. package/lib/alert-dialog-dynamic.component.d.ts +10 -0
  90. package/lib/alert-dialog.component.d.ts +74 -0
  91. package/lib/alert-dialog.service.d.ts +9 -0
  92. package/lib/alert-dialog.types.d.ts +13 -0
  93. package/lib/alert.component.d.ts +24 -0
  94. package/lib/avatar-fallback.component.d.ts +5 -0
  95. package/lib/avatar.component.d.ts +17 -0
  96. package/lib/badge.component.d.ts +14 -0
  97. package/lib/breadcrumb-item.component.d.ts +5 -0
  98. package/lib/breadcrumb-link.component.d.ts +6 -0
  99. package/lib/breadcrumb-separator.component.d.ts +5 -0
  100. package/lib/breadcrumb.component.d.ts +8 -0
  101. package/lib/button-group.component.d.ts +8 -0
  102. package/lib/button.component.d.ts +19 -0
  103. package/lib/calendar.component.d.ts +56 -0
  104. package/lib/card.component.d.ts +32 -0
  105. package/lib/carousel/carousel.component.d.ts +63 -0
  106. package/lib/carousel/index.d.ts +1 -0
  107. package/lib/checkbox.component.d.ts +23 -0
  108. package/lib/collapsible.component.d.ts +31 -0
  109. package/lib/data-table.component.d.ts +54 -0
  110. package/lib/date-picker.component.d.ts +49 -0
  111. package/lib/date-range-picker.component.d.ts +38 -0
  112. package/lib/dropdown-item.component.d.ts +7 -0
  113. package/lib/dropdown-label.component.d.ts +5 -0
  114. package/lib/dropdown-menu.component.d.ts +7 -0
  115. package/lib/dropdown-separator.component.d.ts +5 -0
  116. package/lib/dropdown-trigger.directive.d.ts +19 -0
  117. package/lib/empty-state.component.d.ts +20 -0
  118. package/lib/hover-card.component.d.ts +42 -0
  119. package/lib/input.component.d.ts +41 -0
  120. package/lib/label.component.d.ts +8 -0
  121. package/lib/masked-input.component.d.ts +49 -0
  122. package/lib/modal-ref.d.ts +16 -0
  123. package/lib/modal-stack.service.d.ts +12 -0
  124. package/lib/modal.component.d.ts +19 -0
  125. package/lib/modal.d.ts +30 -0
  126. package/lib/modal.service.d.ts +18 -0
  127. package/lib/multi-select.component.d.ts +59 -0
  128. package/lib/otp-group.component.d.ts +5 -0
  129. package/lib/otp-slot.component.d.ts +13 -0
  130. package/lib/otp.component.d.ts +24 -0
  131. package/lib/pagination.component.d.ts +36 -0
  132. package/lib/popover-content.component.d.ts +8 -0
  133. package/lib/popover.component.d.ts +19 -0
  134. package/lib/progress.component.d.ts +8 -0
  135. package/lib/radio-group.component.d.ts +23 -0
  136. package/lib/radio-item.component.d.ts +22 -0
  137. package/lib/radio-service.d.ts +11 -0
  138. package/lib/range-calendar.component.d.ts +37 -0
  139. package/lib/scroll-area.component.d.ts +10 -0
  140. package/lib/segment.component.d.ts +41 -0
  141. package/lib/select-group.component.d.ts +8 -0
  142. package/lib/select-item.component.d.ts +21 -0
  143. package/lib/select-separator.component.d.ts +8 -0
  144. package/lib/select.component.d.ts +47 -0
  145. package/lib/select.service.d.ts +10 -0
  146. package/lib/separator.component.d.ts +9 -0
  147. package/lib/sheet-ref.d.ts +18 -0
  148. package/lib/sheet-wrapper.component.d.ts +17 -0
  149. package/lib/sheet.component.d.ts +52 -0
  150. package/lib/sheet.service.d.ts +11 -0
  151. package/lib/sheet.types.d.ts +28 -0
  152. package/lib/sidebar.component.d.ts +46 -0
  153. package/lib/skeleton.component.d.ts +10 -0
  154. package/lib/slider.component.d.ts +35 -0
  155. package/lib/switch.component.d.ts +39 -0
  156. package/lib/tabs.component.d.ts +42 -0
  157. package/lib/textarea.component.d.ts +38 -0
  158. package/lib/theme.service.d.ts +75 -0
  159. package/lib/toast.service.d.ts +24 -0
  160. package/lib/toaster.component.d.ts +19 -0
  161. package/lib/toggle-group.component.d.ts +41 -0
  162. package/lib/toggle.component.d.ts +30 -0
  163. package/lib/tolle-cell.directive.d.ts +9 -0
  164. package/lib/tolle-config.d.ts +9 -0
  165. package/lib/tooltip.directive.d.ts +15 -0
  166. package/lib/types/date-range.d.ts +4 -0
  167. package/lib/utils/cn.d.ts +2 -0
  168. package/package.json +5 -3
  169. package/public-api.d.ts +77 -0
  170. package/types/tolle-ui.d.ts +0 -1755
@@ -0,0 +1,121 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { trigger, state, style, transition, animate } from '@angular/animations';
4
+ import { cn } from './utils/cn';
5
+ import * as i0 from "@angular/core";
6
+ export class AccordionItemComponent {
7
+ title = '';
8
+ class = '';
9
+ id;
10
+ isOpen = false;
11
+ // This will be set by the parent Accordion component
12
+ onToggle;
13
+ toggle() {
14
+ if (this.onToggle) {
15
+ this.onToggle(this.id);
16
+ }
17
+ else {
18
+ this.isOpen = !this.isOpen;
19
+ }
20
+ }
21
+ cn = cn;
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AccordionItemComponent, isStandalone: true, selector: "tolle-accordion-item", inputs: { title: "title", class: "class", id: "id" }, ngImport: i0, template: `
24
+ <div [class]="cn('flex flex-col border-b border-border', class)">
25
+ <button
26
+ type="button"
27
+ (click)="toggle()"
28
+ [attr.aria-expanded]="isOpen"
29
+ [attr.data-state]="isOpen ? 'open' : 'closed'"
30
+ class="flex flex-1 items-center justify-between py-4 font-medium transition-all group [&[data-state=open]>i]:rotate-180"
31
+ >
32
+ <span class="text-left group-hover:underline">{{ title }}</span>
33
+ <i class="ri-arrow-down-s-line text-muted-foreground text-lg transition-transform duration-200 hover:no-underline"></i>
34
+ </button>
35
+
36
+ <div
37
+ [@expandCollapse]="isOpen ? 'expanded' : 'collapsed'"
38
+ class="overflow-hidden">
39
+ <div class="pb-4 pt-0 text-sm text-muted-foreground">
40
+ <ng-content></ng-content>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], animations: [
45
+ trigger('expandCollapse', [
46
+ state('collapsed', style({
47
+ height: '0px',
48
+ opacity: '0',
49
+ overflow: 'hidden',
50
+ visibility: 'hidden'
51
+ })),
52
+ state('expanded', style({
53
+ height: '*', // "Star" means actual content height
54
+ opacity: '1',
55
+ overflow: 'hidden',
56
+ visibility: 'visible'
57
+ })),
58
+ // Use cubic-bezier to match Tailwind/shadcn-ui default ease
59
+ transition('collapsed <=> expanded', [
60
+ animate('300ms cubic-bezier(0.87, 0, 0.13, 1)')
61
+ ])
62
+ ])
63
+ ] });
64
+ }
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionItemComponent, decorators: [{
66
+ type: Component,
67
+ args: [{
68
+ selector: 'tolle-accordion-item',
69
+ standalone: true,
70
+ imports: [CommonModule],
71
+ animations: [
72
+ trigger('expandCollapse', [
73
+ state('collapsed', style({
74
+ height: '0px',
75
+ opacity: '0',
76
+ overflow: 'hidden',
77
+ visibility: 'hidden'
78
+ })),
79
+ state('expanded', style({
80
+ height: '*', // "Star" means actual content height
81
+ opacity: '1',
82
+ overflow: 'hidden',
83
+ visibility: 'visible'
84
+ })),
85
+ // Use cubic-bezier to match Tailwind/shadcn-ui default ease
86
+ transition('collapsed <=> expanded', [
87
+ animate('300ms cubic-bezier(0.87, 0, 0.13, 1)')
88
+ ])
89
+ ])
90
+ ],
91
+ template: `
92
+ <div [class]="cn('flex flex-col border-b border-border', class)">
93
+ <button
94
+ type="button"
95
+ (click)="toggle()"
96
+ [attr.aria-expanded]="isOpen"
97
+ [attr.data-state]="isOpen ? 'open' : 'closed'"
98
+ class="flex flex-1 items-center justify-between py-4 font-medium transition-all group [&[data-state=open]>i]:rotate-180"
99
+ >
100
+ <span class="text-left group-hover:underline">{{ title }}</span>
101
+ <i class="ri-arrow-down-s-line text-muted-foreground text-lg transition-transform duration-200 hover:no-underline"></i>
102
+ </button>
103
+
104
+ <div
105
+ [@expandCollapse]="isOpen ? 'expanded' : 'collapsed'"
106
+ class="overflow-hidden">
107
+ <div class="pb-4 pt-0 text-sm text-muted-foreground">
108
+ <ng-content></ng-content>
109
+ </div>
110
+ </div>
111
+ </div>
112
+ `
113
+ }]
114
+ }], propDecorators: { title: [{
115
+ type: Input
116
+ }], class: [{
117
+ type: Input
118
+ }], id: [{
119
+ type: Input
120
+ }] } });
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9hY2NvcmRpb24taXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFpRGhDLE1BQU0sT0FBTyxzQkFBc0I7SUFDeEIsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLEVBQUUsQ0FBbUI7SUFFOUIsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUVmLHFEQUFxRDtJQUNyRCxRQUFRLENBQWlDO0lBRXpDLE1BQU07UUFDSixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRWtCLEVBQUUsR0FBRyxFQUFFLENBQUM7d0dBbEJoQixzQkFBc0I7NEZBQXRCLHNCQUFzQixzSUF2QnZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQlQsMkRBMUNTLFlBQVksaUJBQ1Y7WUFDVixPQUFPLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDO29CQUN2QixNQUFNLEVBQUUsS0FBSztvQkFDYixPQUFPLEVBQUUsR0FBRztvQkFDWixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsVUFBVSxFQUFFLFFBQVE7aUJBQ3JCLENBQUMsQ0FBQztnQkFDSCxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQztvQkFDdEIsTUFBTSxFQUFFLEdBQUcsRUFBRSxxQ0FBcUM7b0JBQ2xELE9BQU8sRUFBRSxHQUFHO29CQUNaLFFBQVEsRUFBRSxRQUFRO29CQUNsQixVQUFVLEVBQUUsU0FBUztpQkFDdEIsQ0FBQyxDQUFDO2dCQUNILDREQUE0RDtnQkFDNUQsVUFBVSxDQUFDLHdCQUF3QixFQUFFO29CQUNuQyxPQUFPLENBQUMsc0NBQXNDLENBQUM7aUJBQ2hELENBQUM7YUFDSCxDQUFDO1NBQ0g7OzRGQXdCVSxzQkFBc0I7a0JBL0NsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFVBQVUsRUFBRTt3QkFDVixPQUFPLENBQUMsZ0JBQWdCLEVBQUU7NEJBQ3hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDO2dDQUN2QixNQUFNLEVBQUUsS0FBSztnQ0FDYixPQUFPLEVBQUUsR0FBRztnQ0FDWixRQUFRLEVBQUUsUUFBUTtnQ0FDbEIsVUFBVSxFQUFFLFFBQVE7NkJBQ3JCLENBQUMsQ0FBQzs0QkFDSCxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQztnQ0FDdEIsTUFBTSxFQUFFLEdBQUcsRUFBRSxxQ0FBcUM7Z0NBQ2xELE9BQU8sRUFBRSxHQUFHO2dDQUNaLFFBQVEsRUFBRSxRQUFRO2dDQUNsQixVQUFVLEVBQUUsU0FBUzs2QkFDdEIsQ0FBQyxDQUFDOzRCQUNILDREQUE0RDs0QkFDNUQsVUFBVSxDQUFDLHdCQUF3QixFQUFFO2dDQUNuQyxPQUFPLENBQUMsc0NBQXNDLENBQUM7NkJBQ2hELENBQUM7eUJBQ0gsQ0FBQztxQkFDSDtvQkFDRCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVDtpQkFDRjs4QkFFVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyB0cmlnZ2VyLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIGFuaW1hdGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLWFjY29yZGlvbi1pdGVtJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdleHBhbmRDb2xsYXBzZScsIFtcbiAgICAgIHN0YXRlKCdjb2xsYXBzZWQnLCBzdHlsZSh7XG4gICAgICAgIGhlaWdodDogJzBweCcsXG4gICAgICAgIG9wYWNpdHk6ICcwJyxcbiAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJ1xuICAgICAgfSkpLFxuICAgICAgc3RhdGUoJ2V4cGFuZGVkJywgc3R5bGUoe1xuICAgICAgICBoZWlnaHQ6ICcqJywgLy8gXCJTdGFyXCIgbWVhbnMgYWN0dWFsIGNvbnRlbnQgaGVpZ2h0XG4gICAgICAgIG9wYWNpdHk6ICcxJyxcbiAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICB2aXNpYmlsaXR5OiAndmlzaWJsZSdcbiAgICAgIH0pKSxcbiAgICAgIC8vIFVzZSBjdWJpYy1iZXppZXIgdG8gbWF0Y2ggVGFpbHdpbmQvc2hhZGNuLXVpIGRlZmF1bHQgZWFzZVxuICAgICAgdHJhbnNpdGlvbignY29sbGFwc2VkIDw9PiBleHBhbmRlZCcsIFtcbiAgICAgICAgYW5pbWF0ZSgnMzAwbXMgY3ViaWMtYmV6aWVyKDAuODcsIDAsIDAuMTMsIDEpJylcbiAgICAgIF0pXG4gICAgXSlcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtjbGFzc109XCJjbignZmxleCBmbGV4LWNvbCBib3JkZXItYiBib3JkZXItYm9yZGVyJywgY2xhc3MpXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzT3BlblwiXG4gICAgICAgIFthdHRyLmRhdGEtc3RhdGVdPVwiaXNPcGVuID8gJ29wZW4nIDogJ2Nsb3NlZCdcIlxuICAgICAgICBjbGFzcz1cImZsZXggZmxleC0xIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcHktNCBmb250LW1lZGl1bSB0cmFuc2l0aW9uLWFsbCBncm91cCBbJltkYXRhLXN0YXRlPW9wZW5dPmldOnJvdGF0ZS0xODBcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbGVmdCBncm91cC1ob3Zlcjp1bmRlcmxpbmVcIj57eyB0aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgPGkgY2xhc3M9XCJyaS1hcnJvdy1kb3duLXMtbGluZSB0ZXh0LW11dGVkLWZvcmVncm91bmQgdGV4dC1sZyB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0yMDAgaG92ZXI6bm8tdW5kZXJsaW5lXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgW0BleHBhbmRDb2xsYXBzZV09XCJpc09wZW4gPyAnZXhwYW5kZWQnIDogJ2NvbGxhcHNlZCdcIlxuICAgICAgICBjbGFzcz1cIm92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicGItNCBwdC0wIHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbkl0ZW1Db21wb25lbnQge1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgaWQhOiBzdHJpbmcgfCBudW1iZXI7XG5cbiAgaXNPcGVuID0gZmFsc2U7XG5cbiAgLy8gVGhpcyB3aWxsIGJlIHNldCBieSB0aGUgcGFyZW50IEFjY29yZGlvbiBjb21wb25lbnRcbiAgb25Ub2dnbGU/OiAoaWQ6IHN0cmluZyB8IG51bWJlcikgPT4gdm9pZDtcblxuICB0b2dnbGUoKSB7XG4gICAgaWYgKHRoaXMub25Ub2dnbGUpIHtcbiAgICAgIHRoaXMub25Ub2dnbGUodGhpcy5pZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNPcGVuID0gIXRoaXMuaXNPcGVuO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBjbiA9IGNuO1xufVxuIl19
@@ -0,0 +1,65 @@
1
+ import { Component, Input, ContentChildren } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { AccordionItemComponent } from './accordion-item.component';
4
+ import { cn } from './utils/cn';
5
+ import * as i0 from "@angular/core";
6
+ export class AccordionComponent {
7
+ type = 'single';
8
+ class = '';
9
+ items;
10
+ ngAfterContentInit() {
11
+ // 1. Assign IDs and Listeners on load
12
+ this.initItems();
13
+ // 2. Re-init if items change dynamically (optional but good for robustness)
14
+ this.items.changes.subscribe(() => this.initItems());
15
+ }
16
+ initItems() {
17
+ this.items.forEach((item, index) => {
18
+ // Auto-assign ID if missing
19
+ if (item.id === undefined)
20
+ item.id = `accordion-item-${index}`;
21
+ // Set up the toggle bridge
22
+ item.onToggle = (id) => this.handleToggle(id);
23
+ });
24
+ }
25
+ handleToggle(selectedId) {
26
+ this.items.forEach(item => {
27
+ if (item.id === selectedId) {
28
+ // Toggle the clicked item
29
+ item.isOpen = !item.isOpen;
30
+ }
31
+ else if (this.type === 'single') {
32
+ // Close others if in single mode
33
+ item.isOpen = false;
34
+ }
35
+ });
36
+ }
37
+ cn = cn;
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AccordionComponent, isStandalone: true, selector: "tolle-accordion", inputs: { type: "type", class: "class" }, queries: [{ propertyName: "items", predicate: AccordionItemComponent }], ngImport: i0, template: `
40
+ <div [class]="cn('w-full', class)">
41
+ <ng-content></ng-content>
42
+ </div>
43
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionComponent, decorators: [{
46
+ type: Component,
47
+ args: [{
48
+ selector: 'tolle-accordion',
49
+ standalone: true,
50
+ imports: [CommonModule], // No AccordionItemComponent import needed here if projected via ng-content
51
+ template: `
52
+ <div [class]="cn('w-full', class)">
53
+ <ng-content></ng-content>
54
+ </div>
55
+ `
56
+ }]
57
+ }], propDecorators: { type: [{
58
+ type: Input
59
+ }], class: [{
60
+ type: Input
61
+ }], items: [{
62
+ type: ContentChildren,
63
+ args: [AccordionItemComponent]
64
+ }] } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvYWNjb3JkaW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQStCLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQVloQyxNQUFNLE9BQU8sa0JBQWtCO0lBQ3BCLElBQUksR0FBMEIsUUFBUSxDQUFDO0lBQ3ZDLEtBQUssR0FBVyxFQUFFLENBQUM7SUFFYSxLQUFLLENBQXFDO0lBRW5GLGtCQUFrQjtRQUNoQixzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWpCLDRFQUE0RTtRQUM1RSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVPLFNBQVM7UUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNqQyw0QkFBNEI7WUFDNUIsSUFBSSxJQUFJLENBQUMsRUFBRSxLQUFLLFNBQVM7Z0JBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxrQkFBa0IsS0FBSyxFQUFFLENBQUM7WUFFL0QsMkJBQTJCO1lBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sWUFBWSxDQUFDLFVBQTJCO1FBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDM0IsMEJBQTBCO2dCQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUM3QixDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDbEMsaUNBQWlDO2dCQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRWtCLEVBQUUsR0FBRyxFQUFFLENBQUM7d0dBcENoQixrQkFBa0I7NEZBQWxCLGtCQUFrQiwySUFJWixzQkFBc0IsNkJBVjdCOzs7O0dBSVQsMkRBTFMsWUFBWTs7NEZBT1gsa0JBQWtCO2tCQVY5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSwyRUFBMkU7b0JBQ3BHLFFBQVEsRUFBRTs7OztHQUlUO2lCQUNGOzhCQUVVLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRW1DLEtBQUs7c0JBQTdDLGVBQWU7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QsIEFmdGVyQ29udGVudEluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBY2NvcmRpb25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9hY2NvcmRpb24taXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtYWNjb3JkaW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sIC8vIE5vIEFjY29yZGlvbkl0ZW1Db21wb25lbnQgaW1wb3J0IG5lZWRlZCBoZXJlIGlmIHByb2plY3RlZCB2aWEgbmctY29udGVudFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgW2NsYXNzXT1cImNuKCd3LWZ1bGwnLCBjbGFzcylcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgQElucHV0KCkgdHlwZTogJ3NpbmdsZScgfCAnbXVsdGlwbGUnID0gJ3NpbmdsZSc7XG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcblxuICBAQ29udGVudENoaWxkcmVuKEFjY29yZGlvbkl0ZW1Db21wb25lbnQpIGl0ZW1zITogUXVlcnlMaXN0PEFjY29yZGlvbkl0ZW1Db21wb25lbnQ+O1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAvLyAxLiBBc3NpZ24gSURzIGFuZCBMaXN0ZW5lcnMgb24gbG9hZFxuICAgIHRoaXMuaW5pdEl0ZW1zKCk7XG5cbiAgICAvLyAyLiBSZS1pbml0IGlmIGl0ZW1zIGNoYW5nZSBkeW5hbWljYWxseSAob3B0aW9uYWwgYnV0IGdvb2QgZm9yIHJvYnVzdG5lc3MpXG4gICAgdGhpcy5pdGVtcy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLmluaXRJdGVtcygpKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEl0ZW1zKCkge1xuICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIC8vIEF1dG8tYXNzaWduIElEIGlmIG1pc3NpbmdcbiAgICAgIGlmIChpdGVtLmlkID09PSB1bmRlZmluZWQpIGl0ZW0uaWQgPSBgYWNjb3JkaW9uLWl0ZW0tJHtpbmRleH1gO1xuXG4gICAgICAvLyBTZXQgdXAgdGhlIHRvZ2dsZSBicmlkZ2VcbiAgICAgIGl0ZW0ub25Ub2dnbGUgPSAoaWQpID0+IHRoaXMuaGFuZGxlVG9nZ2xlKGlkKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVG9nZ2xlKHNlbGVjdGVkSWQ6IHN0cmluZyB8IG51bWJlcikge1xuICAgIHRoaXMuaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtLmlkID09PSBzZWxlY3RlZElkKSB7XG4gICAgICAgIC8vIFRvZ2dsZSB0aGUgY2xpY2tlZCBpdGVtXG4gICAgICAgIGl0ZW0uaXNPcGVuID0gIWl0ZW0uaXNPcGVuO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgIC8vIENsb3NlIG90aGVycyBpZiBpbiBzaW5nbGUgbW9kZVxuICAgICAgICBpdGVtLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNuID0gY247XG59XG4iXX0=
@@ -0,0 +1,82 @@
1
+ import { Component } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { AlertDialogComponent, AlertDialogContentComponent, AlertDialogHeaderComponent, AlertDialogTitleComponent, AlertDialogDescriptionComponent, AlertDialogFooterComponent, AlertDialogCancelComponent, AlertDialogActionComponent } from './alert-dialog.component';
4
+ import { ButtonComponent } from './button.component';
5
+ import * as i0 from "@angular/core";
6
+ export class AlertDialogDynamicComponent {
7
+ config;
8
+ dialogRef;
9
+ onOpenChange(open) {
10
+ if (!open) {
11
+ this.close(false);
12
+ }
13
+ }
14
+ close(result) {
15
+ this.dialogRef.close(result);
16
+ }
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogDynamicComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AlertDialogDynamicComponent, isStandalone: true, selector: "tolle-alert-dialog-dynamic", ngImport: i0, template: `
19
+ <tolle-alert-dialog [open]="true" (openChange)="onOpenChange($event)">
20
+ <tolle-alert-dialog-content>
21
+ <tolle-alert-dialog-header>
22
+ <tolle-alert-dialog-title>{{ config.title }}</tolle-alert-dialog-title>
23
+ <tolle-alert-dialog-description>
24
+ {{ config.description }}
25
+ </tolle-alert-dialog-description>
26
+ </tolle-alert-dialog-header>
27
+ <tolle-alert-dialog-footer>
28
+ <tolle-alert-dialog-cancel (click)="close(false)">
29
+ <tolle-button variant="outline">{{ config.cancelText || 'Cancel' }}</tolle-button>
30
+ </tolle-alert-dialog-cancel>
31
+ <tolle-alert-dialog-action (click)="close(true)">
32
+ <tolle-button [variant]="config.variant === 'destructive' ? 'destructive' : 'default'">
33
+ {{ config.actionText || 'Continue' }}
34
+ </tolle-button>
35
+ </tolle-alert-dialog-action>
36
+ </tolle-alert-dialog-footer>
37
+ </tolle-alert-dialog-content>
38
+ </tolle-alert-dialog>
39
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AlertDialogComponent, selector: "tolle-alert-dialog", inputs: ["open"], outputs: ["openChange"] }, { kind: "component", type: AlertDialogContentComponent, selector: "tolle-alert-dialog-content", inputs: ["class"] }, { kind: "component", type: AlertDialogHeaderComponent, selector: "tolle-alert-dialog-header", inputs: ["class"] }, { kind: "component", type: AlertDialogTitleComponent, selector: "tolle-alert-dialog-title", inputs: ["class"] }, { kind: "component", type: AlertDialogDescriptionComponent, selector: "tolle-alert-dialog-description", inputs: ["class"] }, { kind: "component", type: AlertDialogFooterComponent, selector: "tolle-alert-dialog-footer", inputs: ["class"] }, { kind: "component", type: AlertDialogCancelComponent, selector: "tolle-alert-dialog-cancel" }, { kind: "component", type: AlertDialogActionComponent, selector: "tolle-alert-dialog-action" }, { kind: "component", type: ButtonComponent, selector: "tolle-button", inputs: ["class", "variant", "size", "disabled", "busy"] }] });
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogDynamicComponent, decorators: [{
42
+ type: Component,
43
+ args: [{
44
+ selector: 'tolle-alert-dialog-dynamic',
45
+ standalone: true,
46
+ imports: [
47
+ CommonModule,
48
+ AlertDialogComponent,
49
+ AlertDialogContentComponent,
50
+ AlertDialogHeaderComponent,
51
+ AlertDialogTitleComponent,
52
+ AlertDialogDescriptionComponent,
53
+ AlertDialogFooterComponent,
54
+ AlertDialogCancelComponent,
55
+ AlertDialogActionComponent,
56
+ ButtonComponent
57
+ ],
58
+ template: `
59
+ <tolle-alert-dialog [open]="true" (openChange)="onOpenChange($event)">
60
+ <tolle-alert-dialog-content>
61
+ <tolle-alert-dialog-header>
62
+ <tolle-alert-dialog-title>{{ config.title }}</tolle-alert-dialog-title>
63
+ <tolle-alert-dialog-description>
64
+ {{ config.description }}
65
+ </tolle-alert-dialog-description>
66
+ </tolle-alert-dialog-header>
67
+ <tolle-alert-dialog-footer>
68
+ <tolle-alert-dialog-cancel (click)="close(false)">
69
+ <tolle-button variant="outline">{{ config.cancelText || 'Cancel' }}</tolle-button>
70
+ </tolle-alert-dialog-cancel>
71
+ <tolle-alert-dialog-action (click)="close(true)">
72
+ <tolle-button [variant]="config.variant === 'destructive' ? 'destructive' : 'default'">
73
+ {{ config.actionText || 'Continue' }}
74
+ </tolle-button>
75
+ </tolle-alert-dialog-action>
76
+ </tolle-alert-dialog-footer>
77
+ </tolle-alert-dialog-content>
78
+ </tolle-alert-dialog>
79
+ `
80
+ }]
81
+ }] });
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtZGlhbG9nLWR5bmFtaWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9hbGVydC1kaWFsb2ctZHluYW1pYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsMkJBQTJCLEVBQzNCLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDekIsK0JBQStCLEVBQy9CLDBCQUEwQixFQUMxQiwwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzdCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQXlDckQsTUFBTSxPQUFPLDJCQUEyQjtJQUNwQyxNQUFNLENBQXFCO0lBQzNCLFNBQVMsQ0FBa0I7SUFFM0IsWUFBWSxDQUFDLElBQWE7UUFDdEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFlO1FBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7d0dBWlEsMkJBQTJCOzRGQUEzQiwyQkFBMkIsc0ZBdkIxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJYLDJEQWhDSyxZQUFZLCtCQUNaLG9CQUFvQiwwR0FDcEIsMkJBQTJCLDBGQUMzQiwwQkFBMEIseUZBQzFCLHlCQUF5Qix3RkFDekIsK0JBQStCLDhGQUMvQiwwQkFBMEIseUZBQzFCLDBCQUEwQixzRUFDMUIsMEJBQTBCLHNFQUMxQixlQUFlOzs0RkF5QlYsMkJBQTJCO2tCQXRDdkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQiwyQkFBMkI7d0JBQzNCLDBCQUEwQjt3QkFDMUIseUJBQXlCO3dCQUN6QiwrQkFBK0I7d0JBQy9CLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3dCQUMxQiwwQkFBMEI7d0JBQzFCLGVBQWU7cUJBQ2xCO29CQUNELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJYO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBbGVydERpYWxvZ0NvbXBvbmVudCxcbiAgICBBbGVydERpYWxvZ0NvbnRlbnRDb21wb25lbnQsXG4gICAgQWxlcnREaWFsb2dIZWFkZXJDb21wb25lbnQsXG4gICAgQWxlcnREaWFsb2dUaXRsZUNvbXBvbmVudCxcbiAgICBBbGVydERpYWxvZ0Rlc2NyaXB0aW9uQ29tcG9uZW50LFxuICAgIEFsZXJ0RGlhbG9nRm9vdGVyQ29tcG9uZW50LFxuICAgIEFsZXJ0RGlhbG9nQ2FuY2VsQ29tcG9uZW50LFxuICAgIEFsZXJ0RGlhbG9nQWN0aW9uQ29tcG9uZW50XG59IGZyb20gJy4vYWxlcnQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWxlcnREaWFsb2dDb25maWcsIEFsZXJ0RGlhbG9nUmVmIH0gZnJvbSAnLi9hbGVydC1kaWFsb2cudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RvbGxlLWFsZXJ0LWRpYWxvZy1keW5hbWljJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBBbGVydERpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgQWxlcnREaWFsb2dDb250ZW50Q29tcG9uZW50LFxuICAgICAgICBBbGVydERpYWxvZ0hlYWRlckNvbXBvbmVudCxcbiAgICAgICAgQWxlcnREaWFsb2dUaXRsZUNvbXBvbmVudCxcbiAgICAgICAgQWxlcnREaWFsb2dEZXNjcmlwdGlvbkNvbXBvbmVudCxcbiAgICAgICAgQWxlcnREaWFsb2dGb290ZXJDb21wb25lbnQsXG4gICAgICAgIEFsZXJ0RGlhbG9nQ2FuY2VsQ29tcG9uZW50LFxuICAgICAgICBBbGVydERpYWxvZ0FjdGlvbkNvbXBvbmVudCxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50XG4gICAgXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgIDx0b2xsZS1hbGVydC1kaWFsb2cgW29wZW5dPVwidHJ1ZVwiIChvcGVuQ2hhbmdlKT1cIm9uT3BlbkNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgIDx0b2xsZS1hbGVydC1kaWFsb2ctY29udGVudD5cbiAgICAgICAgICA8dG9sbGUtYWxlcnQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgICAgIDx0b2xsZS1hbGVydC1kaWFsb2ctdGl0bGU+e3sgY29uZmlnLnRpdGxlIH19PC90b2xsZS1hbGVydC1kaWFsb2ctdGl0bGU+XG4gICAgICAgICAgICA8dG9sbGUtYWxlcnQtZGlhbG9nLWRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICB7eyBjb25maWcuZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgIDwvdG9sbGUtYWxlcnQtZGlhbG9nLWRlc2NyaXB0aW9uPlxuICAgICAgICAgIDwvdG9sbGUtYWxlcnQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgICA8dG9sbGUtYWxlcnQtZGlhbG9nLWZvb3Rlcj5cbiAgICAgICAgICAgIDx0b2xsZS1hbGVydC1kaWFsb2ctY2FuY2VsIChjbGljayk9XCJjbG9zZShmYWxzZSlcIj5cbiAgICAgICAgICAgICAgPHRvbGxlLWJ1dHRvbiB2YXJpYW50PVwib3V0bGluZVwiPnt7IGNvbmZpZy5jYW5jZWxUZXh0IHx8ICdDYW5jZWwnIH19PC90b2xsZS1idXR0b24+XG4gICAgICAgICAgICA8L3RvbGxlLWFsZXJ0LWRpYWxvZy1jYW5jZWw+XG4gICAgICAgICAgICA8dG9sbGUtYWxlcnQtZGlhbG9nLWFjdGlvbiAoY2xpY2spPVwiY2xvc2UodHJ1ZSlcIj5cbiAgICAgICAgICAgICAgPHRvbGxlLWJ1dHRvbiBbdmFyaWFudF09XCJjb25maWcudmFyaWFudCA9PT0gJ2Rlc3RydWN0aXZlJyA/ICdkZXN0cnVjdGl2ZScgOiAnZGVmYXVsdCdcIj5cbiAgICAgICAgICAgICAgICB7eyBjb25maWcuYWN0aW9uVGV4dCB8fCAnQ29udGludWUnIH19XG4gICAgICAgICAgICAgIDwvdG9sbGUtYnV0dG9uPlxuICAgICAgICAgICAgPC90b2xsZS1hbGVydC1kaWFsb2ctYWN0aW9uPlxuICAgICAgICAgIDwvdG9sbGUtYWxlcnQtZGlhbG9nLWZvb3Rlcj5cbiAgICAgICAgPC90b2xsZS1hbGVydC1kaWFsb2ctY29udGVudD5cbiAgICA8L3RvbGxlLWFsZXJ0LWRpYWxvZz5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBBbGVydERpYWxvZ0R5bmFtaWNDb21wb25lbnQge1xuICAgIGNvbmZpZyE6IEFsZXJ0RGlhbG9nQ29uZmlnO1xuICAgIGRpYWxvZ1JlZiE6IEFsZXJ0RGlhbG9nUmVmO1xuXG4gICAgb25PcGVuQ2hhbmdlKG9wZW46IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKCFvcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsb3NlKHJlc3VsdDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShyZXN1bHQpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,278 @@
1
+ import { Component, Input, Output, EventEmitter, Injectable, inject, ViewChild, ViewContainerRef } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
4
+ import { TemplatePortal } from '@angular/cdk/portal';
5
+ import { cn } from './utils/cn';
6
+ import { BehaviorSubject } from 'rxjs';
7
+ import * as i0 from "@angular/core";
8
+ class AlertDialogInternalService {
9
+ openSubject = new BehaviorSubject(false);
10
+ open$ = this.openSubject.asObservable();
11
+ setOpen(value) {
12
+ this.openSubject.next(value);
13
+ }
14
+ getOpen() {
15
+ return this.openSubject.getValue();
16
+ }
17
+ toggle() {
18
+ this.setOpen(!this.getOpen());
19
+ }
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogInternalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
21
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogInternalService });
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogInternalService, decorators: [{
24
+ type: Injectable
25
+ }] });
26
+ export class AlertDialogComponent {
27
+ set open(val) {
28
+ this.alertDialogService.setOpen(val);
29
+ }
30
+ openChange = new EventEmitter();
31
+ alertDialogService = inject(AlertDialogInternalService);
32
+ constructor() {
33
+ this.alertDialogService.open$.subscribe(val => {
34
+ this.openChange.emit(val);
35
+ });
36
+ }
37
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AlertDialogComponent, isStandalone: true, selector: "tolle-alert-dialog", inputs: { open: "open" }, outputs: { openChange: "openChange" }, providers: [AlertDialogInternalService], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
39
+ }
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogComponent, decorators: [{
41
+ type: Component,
42
+ args: [{
43
+ selector: 'tolle-alert-dialog',
44
+ standalone: true,
45
+ imports: [CommonModule],
46
+ providers: [AlertDialogInternalService],
47
+ template: `<ng-content></ng-content>`
48
+ }]
49
+ }], ctorParameters: () => [], propDecorators: { open: [{
50
+ type: Input
51
+ }], openChange: [{
52
+ type: Output
53
+ }] } });
54
+ export class AlertDialogTriggerComponent {
55
+ alertDialogService = inject(AlertDialogInternalService);
56
+ onOpen() {
57
+ this.alertDialogService.setOpen(true);
58
+ }
59
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogTriggerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
60
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AlertDialogTriggerComponent, isStandalone: true, selector: "tolle-alert-dialog-trigger", host: { listeners: { "click": "onOpen()" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogTriggerComponent, decorators: [{
63
+ type: Component,
64
+ args: [{
65
+ selector: 'tolle-alert-dialog-trigger',
66
+ standalone: true,
67
+ imports: [CommonModule],
68
+ template: `<ng-content></ng-content>`,
69
+ host: {
70
+ '(click)': 'onOpen()'
71
+ }
72
+ }]
73
+ }] });
74
+ export class AlertDialogPortalComponent {
75
+ portalContent;
76
+ alertDialogService = inject(AlertDialogInternalService);
77
+ overlay = inject(Overlay);
78
+ viewContainerRef = inject(ViewContainerRef);
79
+ overlayRef;
80
+ ngOnInit() {
81
+ this.alertDialogService.open$.subscribe(open => {
82
+ if (open) {
83
+ this.show();
84
+ }
85
+ else {
86
+ this.hide();
87
+ }
88
+ });
89
+ }
90
+ show() {
91
+ if (this.overlayRef)
92
+ return;
93
+ const config = new OverlayConfig({
94
+ hasBackdrop: true,
95
+ backdropClass: ['cdk-overlay-backdrop', 'bg-black/80', 'backdrop-blur-sm', 'data-[state=open]:animate-in', 'data-[state=closed]:animate-out', 'data-[state=closed]:fade-out-0', 'data-[state=open]:fade-in-0'],
96
+ positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),
97
+ scrollStrategy: this.overlay.scrollStrategies.block()
98
+ });
99
+ this.overlayRef = this.overlay.create(config);
100
+ this.overlayRef.backdropClick().subscribe(() => this.alertDialogService.setOpen(false));
101
+ const portal = new TemplatePortal(this.portalContent, this.viewContainerRef);
102
+ this.overlayRef.attach(portal);
103
+ }
104
+ hide() {
105
+ if (this.overlayRef) {
106
+ this.overlayRef.detach();
107
+ this.overlayRef.dispose();
108
+ this.overlayRef = undefined;
109
+ }
110
+ }
111
+ ngOnDestroy() {
112
+ this.hide();
113
+ }
114
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogPortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
115
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AlertDialogPortalComponent, isStandalone: true, selector: "tolle-alert-dialog-portal", viewQueries: [{ propertyName: "portalContent", first: true, predicate: ["portalContent"], descendants: true, static: true }], ngImport: i0, template: `
116
+ <ng-template #portalContent>
117
+ <ng-content></ng-content>
118
+ </ng-template>
119
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
120
+ }
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogPortalComponent, decorators: [{
122
+ type: Component,
123
+ args: [{
124
+ selector: 'tolle-alert-dialog-portal',
125
+ standalone: true,
126
+ imports: [CommonModule],
127
+ template: `
128
+ <ng-template #portalContent>
129
+ <ng-content></ng-content>
130
+ </ng-template>
131
+ `
132
+ }]
133
+ }], propDecorators: { portalContent: [{
134
+ type: ViewChild,
135
+ args: ['portalContent', { static: true }]
136
+ }] } });
137
+ export class AlertDialogContentComponent {
138
+ class = '';
139
+ alertDialogService = inject(AlertDialogInternalService);
140
+ isOpen = false;
141
+ constructor() {
142
+ this.alertDialogService.open$.subscribe(val => {
143
+ this.isOpen = val;
144
+ });
145
+ }
146
+ get computedClass() {
147
+ return cn("fixed left-[50%] top-[50%] translate-x-[-50%] translate-y-[-50%] z-50 grid w-full max-w-lg gap-4 border border-input bg-background p-6 shadow-lg data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] rounded-lg", this.class);
148
+ }
149
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
150
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AlertDialogContentComponent, isStandalone: true, selector: "tolle-alert-dialog-content", inputs: { class: "class" }, host: { properties: { "class": "\"contents\"" } }, ngImport: i0, template: `<div [class]="computedClass" [attr.data-state]="isOpen ? 'open' : 'closed'"><ng-content></ng-content></div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
151
+ }
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogContentComponent, decorators: [{
153
+ type: Component,
154
+ args: [{
155
+ selector: 'tolle-alert-dialog-content',
156
+ standalone: true,
157
+ imports: [CommonModule],
158
+ template: `<div [class]="computedClass" [attr.data-state]="isOpen ? 'open' : 'closed'"><ng-content></ng-content></div>`,
159
+ host: {
160
+ '[class]': '"contents"'
161
+ }
162
+ }]
163
+ }], ctorParameters: () => [], propDecorators: { class: [{
164
+ type: Input
165
+ }] } });
166
+ export class AlertDialogHeaderComponent {
167
+ class = '';
168
+ get computedClass() { return cn("flex flex-col space-y-2 text-center sm:text-left", this.class); }
169
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
170
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AlertDialogHeaderComponent, isStandalone: true, selector: "tolle-alert-dialog-header", inputs: { class: "class" }, host: { properties: { "class": "computedClass" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
171
+ }
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogHeaderComponent, decorators: [{
173
+ type: Component,
174
+ args: [{
175
+ selector: 'tolle-alert-dialog-header',
176
+ standalone: true,
177
+ imports: [CommonModule],
178
+ template: `<ng-content></ng-content>`,
179
+ host: { '[class]': 'computedClass' }
180
+ }]
181
+ }], propDecorators: { class: [{
182
+ type: Input
183
+ }] } });
184
+ export class AlertDialogFooterComponent {
185
+ class = '';
186
+ get computedClass() { return cn("flex flex-row justify-end space-x-2", this.class); }
187
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
188
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AlertDialogFooterComponent, isStandalone: true, selector: "tolle-alert-dialog-footer", inputs: { class: "class" }, host: { properties: { "class": "computedClass" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
189
+ }
190
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogFooterComponent, decorators: [{
191
+ type: Component,
192
+ args: [{
193
+ selector: 'tolle-alert-dialog-footer',
194
+ standalone: true,
195
+ imports: [CommonModule],
196
+ template: `<ng-content></ng-content>`,
197
+ host: { '[class]': 'computedClass' }
198
+ }]
199
+ }], propDecorators: { class: [{
200
+ type: Input
201
+ }] } });
202
+ export class AlertDialogTitleComponent {
203
+ class = '';
204
+ get computedClass() { return cn("text-lg font-semibold text-foreground", this.class); }
205
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
206
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AlertDialogTitleComponent, isStandalone: true, selector: "tolle-alert-dialog-title", inputs: { class: "class" }, host: { properties: { "class": "computedClass" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
207
+ }
208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogTitleComponent, decorators: [{
209
+ type: Component,
210
+ args: [{
211
+ selector: 'tolle-alert-dialog-title',
212
+ standalone: true,
213
+ imports: [CommonModule],
214
+ template: `<ng-content></ng-content>`,
215
+ host: { '[class]': 'computedClass' }
216
+ }]
217
+ }], propDecorators: { class: [{
218
+ type: Input
219
+ }] } });
220
+ export class AlertDialogDescriptionComponent {
221
+ class = '';
222
+ get computedClass() { return cn("text-sm text-muted-foreground", this.class); }
223
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogDescriptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
224
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AlertDialogDescriptionComponent, isStandalone: true, selector: "tolle-alert-dialog-description", inputs: { class: "class" }, host: { properties: { "class": "computedClass" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
225
+ }
226
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogDescriptionComponent, decorators: [{
227
+ type: Component,
228
+ args: [{
229
+ selector: 'tolle-alert-dialog-description',
230
+ standalone: true,
231
+ imports: [CommonModule],
232
+ template: `<ng-content></ng-content>`,
233
+ host: { '[class]': 'computedClass' }
234
+ }]
235
+ }], propDecorators: { class: [{
236
+ type: Input
237
+ }] } });
238
+ export class AlertDialogActionComponent {
239
+ alertDialogService = inject(AlertDialogInternalService);
240
+ onAction() {
241
+ this.alertDialogService.setOpen(false);
242
+ }
243
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
244
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AlertDialogActionComponent, isStandalone: true, selector: "tolle-alert-dialog-action", host: { listeners: { "click": "onAction()" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
245
+ }
246
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogActionComponent, decorators: [{
247
+ type: Component,
248
+ args: [{
249
+ selector: 'tolle-alert-dialog-action',
250
+ standalone: true,
251
+ imports: [CommonModule],
252
+ template: `<ng-content></ng-content>`,
253
+ host: {
254
+ '(click)': 'onAction()'
255
+ }
256
+ }]
257
+ }] });
258
+ export class AlertDialogCancelComponent {
259
+ alertDialogService = inject(AlertDialogInternalService);
260
+ onCancel() {
261
+ this.alertDialogService.setOpen(false);
262
+ }
263
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogCancelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
264
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AlertDialogCancelComponent, isStandalone: true, selector: "tolle-alert-dialog-cancel", host: { listeners: { "click": "onCancel()" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
265
+ }
266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogCancelComponent, decorators: [{
267
+ type: Component,
268
+ args: [{
269
+ selector: 'tolle-alert-dialog-cancel',
270
+ standalone: true,
271
+ imports: [CommonModule],
272
+ template: `<ng-content></ng-content>`,
273
+ host: {
274
+ '(click)': 'onCancel()'
275
+ }
276
+ }]
277
+ }] });
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvYWxlcnQtZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLGdCQUFnQixFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN4SixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFFdkMsTUFDTSwwQkFBMEI7SUFDcEIsV0FBVyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQzFELEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRXhDLE9BQU8sQ0FBQyxLQUFjO1FBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxPQUFPO1FBQ0gsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7d0dBZEMsMEJBQTBCOzRHQUExQiwwQkFBMEI7OzRGQUExQiwwQkFBMEI7a0JBRC9CLFVBQVU7O0FB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b0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsSUFBSSxFQUFFO3dCQUNGLFNBQVMsRUFBRSxZQUFZO3FCQUMxQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBpbmplY3QsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiwgT3ZlcmxheUNvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsLCBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuY2xhc3MgQWxlcnREaWFsb2dJbnRlcm5hbFNlcnZpY2Uge1xuICAgIHByaXZhdGUgb3BlblN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBvcGVuJCA9IHRoaXMub3BlblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBzZXRPcGVuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub3BlblN1YmplY3QubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0T3BlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3BlblN1YmplY3QuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICB0b2dnbGUoKSB7XG4gICAgICAgIHRoaXMuc2V0T3BlbighdGhpcy5nZXRPcGVuKCkpO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS1hbGVydC1kaWFsb2cnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgcHJvdmlkZXJzOiBbQWxlcnREaWFsb2dJbnRlcm5hbFNlcnZpY2VdLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgQWxlcnREaWFsb2dDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIHNldCBvcGVuKHZhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmFsZXJ0RGlhbG9nU2VydmljZS5zZXRPcGVuKHZhbCk7XG4gICAgfVxuICAgIEBPdXRwdXQoKSBvcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgcHJpdmF0ZSBhbGVydERpYWxvZ1NlcnZpY2UgPSBpbmplY3QoQWxlcnREaWFsb2dJbnRlcm5hbFNlcnZpY2UpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYWxlcnREaWFsb2dTZXJ2aWNlLm9wZW4kLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgICAgICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQodmFsKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RvbGxlLWFsZXJ0LWRpYWxvZy10cmlnZ2VyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgaG9zdDoge1xuICAgICAgICAnKGNsaWNrKSc6ICdvbk9wZW4oKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0RGlhbG9nVHJpZ2dlckNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSBhbGVydERpYWxvZ1NlcnZpY2UgPSBpbmplY3QoQWxlcnREaWFsb2dJbnRlcm5hbFNlcnZpY2UpO1xuXG4gICAgb25PcGVuKCkge1xuICAgICAgICB0aGlzLmFsZXJ0RGlhbG9nU2VydmljZS5zZXRPcGVuKHRydWUpO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS1hbGVydC1kaWFsb2ctcG9ydGFsJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPG5nLXRlbXBsYXRlICNwb3J0YWxDb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgQWxlcnREaWFsb2dQb3J0YWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZCgncG9ydGFsQ29udGVudCcsIHsgc3RhdGljOiB0cnVlIH0pIHBvcnRhbENvbnRlbnQhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHByaXZhdGUgYWxlcnREaWFsb2dTZXJ2aWNlID0gaW5qZWN0KEFsZXJ0RGlhbG9nSW50ZXJuYWxTZXJ2aWNlKTtcbiAgICBwcml2YXRlIG92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICAgIHByaXZhdGUgb3ZlcmxheVJlZj86IE92ZXJsYXlSZWY7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5hbGVydERpYWxvZ1NlcnZpY2Uub3BlbiQuc3Vic2NyaWJlKG9wZW4gPT4ge1xuICAgICAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3coKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvdygpIHtcbiAgICAgICAgaWYgKHRoaXMub3ZlcmxheVJlZikgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgICAgYmFja2Ryb3BDbGFzczogWydjZGstb3ZlcmxheS1iYWNrZHJvcCcsICdiZy1ibGFjay84MCcsICdiYWNrZHJvcC1ibHVyLXNtJywgJ2RhdGEtW3N0YXRlPW9wZW5dOmFuaW1hdGUtaW4nLCAnZGF0YS1bc3RhdGU9Y2xvc2VkXTphbmltYXRlLW91dCcsICdkYXRhLVtzdGF0ZT1jbG9zZWRdOmZhZGUtb3V0LTAnLCAnZGF0YS1bc3RhdGU9b3Blbl06ZmFkZS1pbi0wJ10sXG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS5jZW50ZXJIb3Jpem9udGFsbHkoKS5jZW50ZXJWZXJ0aWNhbGx5KCksXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKGNvbmZpZyk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuYWxlcnREaWFsb2dTZXJ2aWNlLnNldE9wZW4oZmFsc2UpKTtcblxuICAgICAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5wb3J0YWxDb250ZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoaWRlKCkge1xuICAgICAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS1hbGVydC1kaWFsb2ctY29udGVudCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYDxkaXYgW2NsYXNzXT1cImNvbXB1dGVkQ2xhc3NcIiBbYXR0ci5kYXRhLXN0YXRlXT1cImlzT3BlbiA/ICdvcGVuJyA6ICdjbG9zZWQnXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PmAsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzXSc6ICdcImNvbnRlbnRzXCInXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBBbGVydERpYWxvZ0NvbnRlbnRDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcblxuICAgIHByaXZhdGUgYWxlcnREaWFsb2dTZXJ2aWNlID0gaW5qZWN0KEFsZXJ0RGlhbG9nSW50ZXJuYWxTZXJ2aWNlKTtcbiAgICBpc09wZW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmFsZXJ0RGlhbG9nU2VydmljZS5vcGVuJC5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gdmFsO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIGNuKFxuICAgICAgICAgICAgXCJmaXhlZCBsZWZ0LVs1MCVdIHRvcC1bNTAlXSB0cmFuc2xhdGUteC1bLTUwJV0gdHJhbnNsYXRlLXktWy01MCVdIHotNTAgZ3JpZCB3LWZ1bGwgbWF4LXctbGcgZ2FwLTQgYm9yZGVyIGJvcmRlci1pbnB1dCBiZy1iYWNrZ3JvdW5kIHAtNiBzaGFkb3ctbGcgZGF0YS1bc3RhdGU9Y2xvc2VkXTphbmltYXRlLW91dCBkYXRhLVtzdGF0ZT1jbG9zZWRdOmZhZGUtb3V0LTAgZGF0YS1bc3RhdGU9Y2xvc2VkXTp6b29tLW91dC05NSBkYXRhLVtzdGF0ZT1jbG9zZWRdOnNsaWRlLW91dC10by1sZWZ0LTEvMiBkYXRhLVtzdGF0ZT1jbG9zZWRdOnNsaWRlLW91dC10by10b3AtWzQ4JV0gcm91bmRlZC1sZ1wiLFxuICAgICAgICAgICAgdGhpcy5jbGFzc1xuICAgICAgICApO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS1hbGVydC1kaWFsb2ctaGVhZGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgaG9zdDogeyAnW2NsYXNzXSc6ICdjb21wdXRlZENsYXNzJyB9XG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0RGlhbG9nSGVhZGVyQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG4gICAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7IHJldHVybiBjbihcImZsZXggZmxleC1jb2wgc3BhY2UteS0yIHRleHQtY2VudGVyIHNtOnRleHQtbGVmdFwiLCB0aGlzLmNsYXNzKTsgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RvbGxlLWFsZXJ0LWRpYWxvZy1mb290ZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBob3N0OiB7ICdbY2xhc3NdJzogJ2NvbXB1dGVkQ2xhc3MnIH1cbn0pXG5leHBvcnQgY2xhc3MgQWxlcnREaWFsb2dGb290ZXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgICBnZXQgY29tcHV0ZWRDbGFzcygpIHsgcmV0dXJuIGNuKFwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWVuZCBzcGFjZS14LTJcIiwgdGhpcy5jbGFzcyk7IH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS1hbGVydC1kaWFsb2ctdGl0bGUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBob3N0OiB7ICdbY2xhc3NdJzogJ2NvbXB1dGVkQ2xhc3MnIH1cbn0pXG5leHBvcnQgY2xhc3MgQWxlcnREaWFsb2dUaXRsZUNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuICAgIGdldCBjb21wdXRlZENsYXNzKCkgeyByZXR1cm4gY24oXCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgdGV4dC1mb3JlZ3JvdW5kXCIsIHRoaXMuY2xhc3MpOyB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndG9sbGUtYWxlcnQtZGlhbG9nLWRlc2NyaXB0aW9uJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgaG9zdDogeyAnW2NsYXNzXSc6ICdjb21wdXRlZENsYXNzJyB9XG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0RGlhbG9nRGVzY3JpcHRpb25Db21wb25lbnQge1xuICAgIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgICBnZXQgY29tcHV0ZWRDbGFzcygpIHsgcmV0dXJuIGNuKFwidGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIiwgdGhpcy5jbGFzcyk7IH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS1hbGVydC1kaWFsb2ctYWN0aW9uJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgaG9zdDoge1xuICAgICAgICAnKGNsaWNrKSc6ICdvbkFjdGlvbigpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQWxlcnREaWFsb2dBY3Rpb25Db21wb25lbnQge1xuICAgIHByaXZhdGUgYWxlcnREaWFsb2dTZXJ2aWNlID0gaW5qZWN0KEFsZXJ0RGlhbG9nSW50ZXJuYWxTZXJ2aWNlKTtcbiAgICBvbkFjdGlvbigpIHtcbiAgICAgICAgdGhpcy5hbGVydERpYWxvZ1NlcnZpY2Uuc2V0T3BlbihmYWxzZSk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RvbGxlLWFsZXJ0LWRpYWxvZy1jYW5jZWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBob3N0OiB7XG4gICAgICAgICcoY2xpY2spJzogJ29uQ2FuY2VsKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBBbGVydERpYWxvZ0NhbmNlbENvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSBhbGVydERpYWxvZ1NlcnZpY2UgPSBpbmplY3QoQWxlcnREaWFsb2dJbnRlcm5hbFNlcnZpY2UpO1xuICAgIG9uQ2FuY2VsKCkge1xuICAgICAgICB0aGlzLmFsZXJ0RGlhbG9nU2VydmljZS5zZXRPcGVuKGZhbHNlKTtcbiAgICB9XG59XG4iXX0=