@siemens/element-ng 47.1.0 → 47.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/README.md +18 -6
  2. package/accordion/index.d.ts +9 -0
  3. package/accordion/package.json +3 -0
  4. package/accordion/si-accordion-hcollapse.service.d.ts +17 -0
  5. package/accordion/si-accordion.component.d.ts +37 -0
  6. package/accordion/si-accordion.module.d.ts +8 -0
  7. package/accordion/si-accordion.service.d.ts +17 -0
  8. package/accordion/si-collapsible-panel.component.d.ts +89 -0
  9. package/action-modal/index.d.ts +6 -0
  10. package/action-modal/package.json +3 -0
  11. package/action-modal/si-action-dialog.service.d.ts +49 -0
  12. package/action-modal/si-action-dialog.types.d.ts +92 -0
  13. package/action-modal/si-alert-dialog/si-alert-dialog.component.d.ts +32 -0
  14. package/action-modal/si-confirmation-dialog/si-confirmation-dialog.component.d.ts +40 -0
  15. package/action-modal/si-delete-confirmation-dialog/si-delete-confirmation-dialog.component.d.ts +45 -0
  16. package/action-modal/si-edit-discard-dialog/si-edit-discard-dialog.component.d.ts +68 -0
  17. package/auto-collapsable-list/index.d.ts +10 -0
  18. package/auto-collapsable-list/package.json +3 -0
  19. package/auto-collapsable-list/si-auto-collapsable-list-additional-content.directive.d.ts +6 -0
  20. package/auto-collapsable-list/si-auto-collapsable-list-item.directive.d.ts +29 -0
  21. package/auto-collapsable-list/si-auto-collapsable-list-measurable.class.d.ts +16 -0
  22. package/auto-collapsable-list/si-auto-collapsable-list-overflow-item.directive.d.ts +12 -0
  23. package/auto-collapsable-list/si-auto-collapsable-list.directive.d.ts +47 -0
  24. package/auto-collapsable-list/si-auto-collapsable-list.module.d.ts +10 -0
  25. package/autocomplete/index.d.ts +8 -0
  26. package/autocomplete/package.json +3 -0
  27. package/autocomplete/si-autocomplete-listbox.directive.d.ts +31 -0
  28. package/autocomplete/si-autocomplete-option.directive.d.ts +31 -0
  29. package/autocomplete/si-autocomplete.directive.d.ts +14 -0
  30. package/autocomplete/si-autocomplete.model.d.ts +7 -0
  31. package/autocomplete/si-autocomplete.module.d.ts +9 -0
  32. package/badge/index.d.ts +5 -0
  33. package/badge/package.json +3 -0
  34. package/badge/si-badge.component.d.ts +17 -0
  35. package/color-picker/index.d.ts +5 -0
  36. package/color-picker/package.json +3 -0
  37. package/color-picker/si-color-picker.component.d.ts +61 -0
  38. package/common/models/menu.model.d.ts +2 -2
  39. package/connection-strength/index.d.ts +6 -0
  40. package/connection-strength/package.json +3 -0
  41. package/connection-strength/si-connection-strength.component.d.ts +19 -0
  42. package/connection-strength/si-connection-strength.module.d.ts +7 -0
  43. package/content-action-bar/index.d.ts +7 -0
  44. package/content-action-bar/package.json +3 -0
  45. package/content-action-bar/si-content-action-bar-toggle.component.d.ts +6 -0
  46. package/content-action-bar/si-content-action-bar.component.d.ts +72 -0
  47. package/content-action-bar/si-content-action-bar.model.d.ts +9 -0
  48. package/content-action-bar/si-content-action-bar.module.d.ts +7 -0
  49. package/copyright-notice/index.d.ts +7 -0
  50. package/copyright-notice/package.json +3 -0
  51. package/copyright-notice/si-copyright-notice.component.d.ts +18 -0
  52. package/copyright-notice/si-copyright-notice.d.ts +23 -0
  53. package/copyright-notice/si-copyright-notice.module.d.ts +7 -0
  54. package/empty-state/index.d.ts +6 -0
  55. package/empty-state/package.json +3 -0
  56. package/empty-state/si-empty-state.component.d.ts +18 -0
  57. package/empty-state/si-empty-state.module.d.ts +7 -0
  58. package/fesm2022/siemens-element-ng-accordion.mjs +314 -0
  59. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -0
  60. package/fesm2022/siemens-element-ng-action-modal.mjs +363 -0
  61. package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -0
  62. package/fesm2022/siemens-element-ng-application-header.mjs +2 -2
  63. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  64. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +312 -0
  65. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -0
  66. package/fesm2022/siemens-element-ng-autocomplete.mjs +235 -0
  67. package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -0
  68. package/fesm2022/siemens-element-ng-badge.mjs +59 -0
  69. package/fesm2022/siemens-element-ng-badge.mjs.map +1 -0
  70. package/fesm2022/siemens-element-ng-color-picker.mjs +176 -0
  71. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -0
  72. package/fesm2022/siemens-element-ng-common.mjs +1 -1
  73. package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
  74. package/fesm2022/siemens-element-ng-connection-strength.mjs +58 -0
  75. package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -0
  76. package/fesm2022/siemens-element-ng-content-action-bar.mjs +200 -0
  77. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -0
  78. package/fesm2022/siemens-element-ng-copyright-notice.mjs +71 -0
  79. package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -0
  80. package/fesm2022/siemens-element-ng-empty-state.mjs +59 -0
  81. package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -0
  82. package/fesm2022/siemens-element-ng-footer.mjs +55 -0
  83. package/fesm2022/siemens-element-ng-footer.mjs.map +1 -0
  84. package/fesm2022/siemens-element-ng-form.mjs +827 -0
  85. package/fesm2022/siemens-element-ng-form.mjs.map +1 -0
  86. package/fesm2022/siemens-element-ng-icon-status.mjs +65 -0
  87. package/fesm2022/siemens-element-ng-icon-status.mjs.map +1 -0
  88. package/fesm2022/siemens-element-ng-icon.mjs +19 -2
  89. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  90. package/fesm2022/siemens-element-ng-inline-notification.mjs +82 -0
  91. package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -0
  92. package/fesm2022/siemens-element-ng-language-switcher.mjs +90 -0
  93. package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -0
  94. package/fesm2022/siemens-element-ng-loading-spinner.mjs +248 -0
  95. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -0
  96. package/fesm2022/siemens-element-ng-menu.mjs +350 -0
  97. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -0
  98. package/fesm2022/siemens-element-ng-modal.mjs +345 -0
  99. package/fesm2022/siemens-element-ng-modal.mjs.map +1 -0
  100. package/fesm2022/siemens-element-ng-number-input.mjs +267 -0
  101. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -0
  102. package/fesm2022/siemens-element-ng-pagination.mjs +145 -0
  103. package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -0
  104. package/fesm2022/siemens-element-ng-password-strength.mjs +177 -0
  105. package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -0
  106. package/fesm2022/siemens-element-ng-password-toggle.mjs +88 -0
  107. package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -0
  108. package/fesm2022/siemens-element-ng-pills-input.mjs +397 -0
  109. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -0
  110. package/fesm2022/siemens-element-ng-popover-next.mjs +259 -0
  111. package/fesm2022/siemens-element-ng-popover-next.mjs.map +1 -0
  112. package/fesm2022/siemens-element-ng-popover.mjs +256 -0
  113. package/fesm2022/siemens-element-ng-popover.mjs.map +1 -0
  114. package/fesm2022/siemens-element-ng-progressbar.mjs +83 -0
  115. package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -0
  116. package/fesm2022/siemens-element-ng-select.mjs +1166 -0
  117. package/fesm2022/siemens-element-ng-select.mjs.map +1 -0
  118. package/fesm2022/siemens-element-ng-skip-links.mjs +117 -0
  119. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -0
  120. package/fesm2022/siemens-element-ng-summary-chip.mjs +77 -0
  121. package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -0
  122. package/fesm2022/siemens-element-ng-summary-widget.mjs +77 -0
  123. package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -0
  124. package/fesm2022/siemens-element-ng-toast-notification.mjs +227 -0
  125. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -0
  126. package/fesm2022/siemens-element-ng-tooltip.mjs +233 -0
  127. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -0
  128. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  129. package/fesm2022/siemens-element-ng-typeahead.mjs +746 -0
  130. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -0
  131. package/fesm2022/siemens-element-ng-wizard.mjs +465 -0
  132. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -0
  133. package/footer/index.d.ts +6 -0
  134. package/footer/package.json +3 -0
  135. package/footer/si-footer.component.d.ts +14 -0
  136. package/footer/si-footer.module.d.ts +7 -0
  137. package/form/form-fieldset/si-form-fieldset.component.d.ts +40 -0
  138. package/form/index.d.ts +14 -0
  139. package/form/package.json +3 -0
  140. package/form/si-form-container/si-form-container.component.d.ts +155 -0
  141. package/form/si-form-item/si-form-field-native.control.d.ts +22 -0
  142. package/form/si-form-item/si-form-item.component.d.ts +90 -0
  143. package/form/si-form-item-control-input.directive.d.ts +18 -0
  144. package/form/si-form-item.control.d.ts +35 -0
  145. package/form/si-form-validation-error.model.d.ts +55 -0
  146. package/form/si-form-validation-error.provider.d.ts +11 -0
  147. package/form/si-form-validation-error.service.d.ts +42 -0
  148. package/form/si-form-validation-tooltip/si-form-validation-tooltip.component.d.ts +13 -0
  149. package/form/si-form-validation-tooltip/si-form-validation-tooltip.directive.d.ts +42 -0
  150. package/form/si-form.module.d.ts +25 -0
  151. package/icon/element-icons.d.ts +17 -0
  152. package/icon-status/index.d.ts +6 -0
  153. package/icon-status/package.json +3 -0
  154. package/icon-status/si-icon-status.component.d.ts +24 -0
  155. package/icon-status/si-icon-status.module.d.ts +7 -0
  156. package/inline-notification/index.d.ts +6 -0
  157. package/inline-notification/package.json +3 -0
  158. package/inline-notification/si-inline-notification.component.d.ts +42 -0
  159. package/inline-notification/si-inline-notification.module.d.ts +7 -0
  160. package/language-switcher/index.d.ts +7 -0
  161. package/language-switcher/iso-language-value.d.ts +14 -0
  162. package/language-switcher/package.json +3 -0
  163. package/language-switcher/si-language-switcher.component.d.ts +32 -0
  164. package/language-switcher/si-language-switcher.module.d.ts +7 -0
  165. package/loading-spinner/index.d.ts +9 -0
  166. package/loading-spinner/package.json +3 -0
  167. package/loading-spinner/si-loading-button.component.d.ts +31 -0
  168. package/loading-spinner/si-loading-spinner.component.d.ts +32 -0
  169. package/loading-spinner/si-loading-spinner.directive.d.ts +36 -0
  170. package/loading-spinner/si-loading-spinner.module.d.ts +8 -0
  171. package/loading-spinner/si-loading-spinner.service.d.ts +18 -0
  172. package/menu/index.d.ts +15 -0
  173. package/menu/package.json +3 -0
  174. package/menu/si-menu-action.service.d.ts +13 -0
  175. package/menu/si-menu-bar.directive.d.ts +12 -0
  176. package/menu/si-menu-divider.directive.d.ts +5 -0
  177. package/menu/si-menu-factory-item-guard.directive.d.ts +11 -0
  178. package/menu/si-menu-factory.component.d.ts +15 -0
  179. package/menu/si-menu-header.directive.d.ts +5 -0
  180. package/menu/si-menu-item-base.directive.d.ts +16 -0
  181. package/menu/si-menu-item-checkbox.component.d.ts +10 -0
  182. package/menu/si-menu-item-radio.component.d.ts +10 -0
  183. package/menu/si-menu-item.component.d.ts +10 -0
  184. package/menu/si-menu-model.d.ts +91 -0
  185. package/menu/si-menu.directive.d.ts +6 -0
  186. package/menu/si-menu.module.d.ts +14 -0
  187. package/modal/index.d.ts +7 -0
  188. package/modal/modal.helpers.d.ts +8 -0
  189. package/modal/modalref.d.ts +64 -0
  190. package/modal/package.json +3 -0
  191. package/modal/si-modal.component.d.ts +32 -0
  192. package/modal/si-modal.service.d.ts +57 -0
  193. package/number-input/index.d.ts +6 -0
  194. package/number-input/package.json +3 -0
  195. package/number-input/si-number-input.component.d.ts +106 -0
  196. package/number-input/si-number-input.module.d.ts +7 -0
  197. package/package.json +139 -3
  198. package/pagination/index.d.ts +6 -0
  199. package/pagination/package.json +3 -0
  200. package/pagination/si-pagination.component.d.ts +65 -0
  201. package/pagination/si-pagination.module.d.ts +7 -0
  202. package/password-strength/index.d.ts +7 -0
  203. package/password-strength/package.json +3 -0
  204. package/password-strength/si-password-strength.component.d.ts +25 -0
  205. package/password-strength/si-password-strength.directive.d.ts +54 -0
  206. package/password-strength/si-password-strength.module.d.ts +8 -0
  207. package/password-toggle/index.d.ts +6 -0
  208. package/password-toggle/package.json +3 -0
  209. package/password-toggle/si-password-toggle.component.d.ts +39 -0
  210. package/password-toggle/si-password-toggle.module.d.ts +7 -0
  211. package/pills-input/index.d.ts +9 -0
  212. package/pills-input/package.json +3 -0
  213. package/pills-input/si-input-pill.component.d.ts +9 -0
  214. package/pills-input/si-pills-input-csv.directive.d.ts +8 -0
  215. package/pills-input/si-pills-input-email.directive.d.ts +10 -0
  216. package/pills-input/si-pills-input-pattern-base.d.ts +19 -0
  217. package/pills-input/si-pills-input-value-handler.d.ts +12 -0
  218. package/pills-input/si-pills-input.component.d.ts +87 -0
  219. package/pills-input/si-pills-input.module.d.ts +9 -0
  220. package/popover/index.d.ts +6 -0
  221. package/popover/package.json +3 -0
  222. package/popover/si-popover.component.d.ts +26 -0
  223. package/popover/si-popover.directive.d.ts +89 -0
  224. package/popover/si-popover.module.d.ts +7 -0
  225. package/popover-next/index.d.ts +7 -0
  226. package/popover-next/package.json +3 -0
  227. package/popover-next/si-popover-description.directive.d.ts +7 -0
  228. package/popover-next/si-popover-next.directive.d.ts +61 -0
  229. package/popover-next/si-popover-title.directive.d.ts +7 -0
  230. package/popover-next/si-popover.component.d.ts +27 -0
  231. package/progressbar/index.d.ts +6 -0
  232. package/progressbar/package.json +3 -0
  233. package/progressbar/si-progressbar.component.d.ts +43 -0
  234. package/progressbar/si-progressbar.module.d.ts +7 -0
  235. package/select/index.d.ts +18 -0
  236. package/select/options/si-select-complex-options.directive.d.ts +69 -0
  237. package/select/options/si-select-lazy-options.directive.d.ts +38 -0
  238. package/select/options/si-select-option.source.d.ts +49 -0
  239. package/select/options/si-select-options-strategy.base.d.ts +35 -0
  240. package/select/options/si-select-options-strategy.d.ts +37 -0
  241. package/select/options/si-select-simple-options.directive.d.ts +34 -0
  242. package/select/package.json +3 -0
  243. package/select/select-input/si-select-input.component.d.ts +43 -0
  244. package/select/select-list/si-select-list-has-filter.component.d.ts +20 -0
  245. package/select/select-list/si-select-list.base.d.ts +37 -0
  246. package/select/select-list/si-select-list.component.d.ts +15 -0
  247. package/select/select-option/si-select-option-row.component.d.ts +16 -0
  248. package/select/select-option/si-select-option.component.d.ts +9 -0
  249. package/select/selection/si-select-multi-value.directive.d.ts +26 -0
  250. package/select/selection/si-select-selection-strategy.d.ts +58 -0
  251. package/select/selection/si-select-single-value.directive.d.ts +26 -0
  252. package/select/si-select-action.directive.d.ts +12 -0
  253. package/select/si-select-actions.directive.d.ts +5 -0
  254. package/select/si-select-group-template.directive.d.ts +20 -0
  255. package/select/si-select-option-row-template.directive.d.ts +9 -0
  256. package/select/si-select-option-template.directive.d.ts +21 -0
  257. package/select/si-select.component.d.ts +96 -0
  258. package/select/si-select.module.d.ts +15 -0
  259. package/select/si-select.types.d.ts +65 -0
  260. package/skip-links/index.d.ts +5 -0
  261. package/skip-links/package.json +3 -0
  262. package/skip-links/si-skip-link-target.directive.d.ts +27 -0
  263. package/skip-links/si-skip-links.component.d.ts +9 -0
  264. package/skip-links/skip-link.service.d.ts +14 -0
  265. package/summary-chip/index.d.ts +5 -0
  266. package/summary-chip/package.json +3 -0
  267. package/summary-chip/si-summary-chip.component.d.ts +44 -0
  268. package/summary-widget/index.d.ts +5 -0
  269. package/summary-widget/package.json +3 -0
  270. package/summary-widget/si-summary-widget.component.d.ts +44 -0
  271. package/template-i18n.json +47 -1
  272. package/toast-notification/index.d.ts +6 -0
  273. package/toast-notification/package.json +3 -0
  274. package/toast-notification/si-toast-notification/si-toast-notification.component.d.ts +17 -0
  275. package/toast-notification/si-toast-notification-drawer/si-toast-notification-drawer.component.d.ts +9 -0
  276. package/toast-notification/si-toast-notification.service.d.ts +41 -0
  277. package/toast-notification/si-toast.model.d.ts +25 -0
  278. package/tooltip/index.d.ts +7 -0
  279. package/tooltip/package.json +3 -0
  280. package/tooltip/si-tooltip.component.d.ts +25 -0
  281. package/tooltip/si-tooltip.directive.d.ts +45 -0
  282. package/tooltip/si-tooltip.module.d.ts +7 -0
  283. package/tooltip/si-tooltip.service.d.ts +44 -0
  284. package/translate/si-translatable-keys.interface.d.ts +46 -0
  285. package/typeahead/index.d.ts +8 -0
  286. package/typeahead/package.json +3 -0
  287. package/typeahead/si-typeahead-item-template.directive.d.ts +7 -0
  288. package/typeahead/si-typeahead.component.d.ts +22 -0
  289. package/typeahead/si-typeahead.directive.d.ts +196 -0
  290. package/typeahead/si-typeahead.model.d.ts +60 -0
  291. package/typeahead/si-typeahead.module.d.ts +8 -0
  292. package/typeahead/si-typeahead.sorting.d.ts +10 -0
  293. package/wizard/index.d.ts +7 -0
  294. package/wizard/package.json +3 -0
  295. package/wizard/si-wizard-step.component.d.ts +21 -0
  296. package/wizard/si-wizard.component.d.ts +196 -0
  297. package/wizard/si-wizard.module.d.ts +8 -0
@@ -0,0 +1,314 @@
1
+ import { trigger, transition, style, query, animate } from '@angular/animations';
2
+ import { NgClass } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { signal, Injectable, input, model, booleanAttribute, output, computed, inject, DestroyRef, viewChild, ChangeDetectionStrategy, Component, contentChildren, ElementRef, NgModule } from '@angular/core';
5
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
+ import { areAnimationsDisabled } from '@siemens/element-ng/common';
7
+ import { addIcons, elementDown2, SiIconNextComponent } from '@siemens/element-ng/icon';
8
+ import * as i1 from '@siemens/element-translate-ng/translate';
9
+ import { SiTranslateModule } from '@siemens/element-translate-ng/translate';
10
+ import { Subject, filter } from 'rxjs';
11
+ import { ResizeObserverService } from '@siemens/element-ng/resize-observer';
12
+
13
+ /**
14
+ * Copyright Siemens 2016 - 2025.
15
+ * SPDX-License-Identifier: MIT
16
+ */
17
+ /** @internal */
18
+ class SiAccordionHCollapseService {
19
+ /**
20
+ * Emitting the current horizontal collapsed state.
21
+ *
22
+ * @defaultValue undefined
23
+ */
24
+ hcollapsed = signal(undefined);
25
+ /**
26
+ * Subject to emit to open the accordion.
27
+ */
28
+ open$ = new Subject();
29
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiAccordionHCollapseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
30
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiAccordionHCollapseService, providedIn: null });
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiAccordionHCollapseService, decorators: [{
33
+ type: Injectable,
34
+ args: [{
35
+ providedIn: null
36
+ }]
37
+ }] });
38
+
39
+ /**
40
+ * Copyright Siemens 2016 - 2025.
41
+ * SPDX-License-Identifier: MIT
42
+ */
43
+ /** @internal */
44
+ class SiAccordionService {
45
+ /**
46
+ * Emit an item in the accordion which should be toggled.
47
+ */
48
+ toggle$ = new Subject();
49
+ /**
50
+ * Subject to emit when the items should be expanded to their full height or restored to normal height.
51
+ *
52
+ * @defaultValue null
53
+ */
54
+ fullHeight = signal(null);
55
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiAccordionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
56
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiAccordionService, providedIn: null });
57
+ }
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiAccordionService, decorators: [{
59
+ type: Injectable,
60
+ args: [{
61
+ providedIn: null
62
+ }]
63
+ }] });
64
+
65
+ /**
66
+ * Copyright Siemens 2016 - 2025.
67
+ * SPDX-License-Identifier: MIT
68
+ */
69
+ let controlIdCounter = 1;
70
+ class SiCollapsiblePanelComponent {
71
+ /**
72
+ * Heading for the collapsible panel.
73
+ */
74
+ heading = input();
75
+ /**
76
+ * Additional CSS classes for the top element.
77
+ *
78
+ * @defaultValue ''
79
+ */
80
+ headerCssClasses = input('');
81
+ /**
82
+ * Additional CSS classes for the collapsible content region.
83
+ *
84
+ * @defaultValue ''
85
+ */
86
+ contentBgClasses = input('');
87
+ /**
88
+ * Additional CSS classes for the wrapping content element.
89
+ *
90
+ * @defaultValue ''
91
+ */
92
+ contentCssClasses = input('');
93
+ /**
94
+ * Expand/collapse the panel.
95
+ *
96
+ * @defaultValue false
97
+ */
98
+ opened = model(false);
99
+ /**
100
+ * The icon to be displayed besides the heading.
101
+ */
102
+ icon = input();
103
+ /**
104
+ * Whether the si-collapsible-panel is disabled.
105
+ *
106
+ * @defaultValue false
107
+ */
108
+ disabled = input(false, { transform: booleanAttribute });
109
+ /** Color to use for component background */
110
+ colorVariant = input();
111
+ /**
112
+ * Defines the content of the optional badge. Should be a number or something like "100+".
113
+ * if undefined or empty string, no badge is displayed
114
+ */
115
+ badge = input();
116
+ /**
117
+ * Defines the background color of the badge. Default is specific to SiMPL flavour.
118
+ */
119
+ badgeColor = input();
120
+ /**
121
+ * An event emitted when the user triggered expand/collapse and emit with the new open state.
122
+ * The event is emitted before the animation happens.
123
+ */
124
+ panelToggle = output();
125
+ /**
126
+ * An event emitted when the user triggered expand/collapse.
127
+ * The event is emitted before the animation happens.
128
+ * @deprecated use {@link panelToggle} instead
129
+ */
130
+ // eslint-disable-next-line @angular-eslint/no-output-native
131
+ toggle = output();
132
+ hcollapsed = computed(() => this.accordionHCollapseService?.hcollapsed() ?? false);
133
+ fullHeight = computed(() => this.accordionService?.fullHeight() ?? false);
134
+ controlId = '__si-collapsible-' + controlIdCounter++;
135
+ headerId = this.controlId + '-header';
136
+ isHCollapsible = false;
137
+ icons = addIcons({ elementDown2 });
138
+ destroyRef = inject(DestroyRef);
139
+ accordionService = inject(SiAccordionService, { optional: true });
140
+ accordionHCollapseService = inject(SiAccordionHCollapseService, {
141
+ optional: true
142
+ });
143
+ enableAnimation = true;
144
+ animationsGloballyDisabled = areAnimationsDisabled();
145
+ lastScrollPos = 0;
146
+ contentRef = viewChild.required('content');
147
+ constructor() {
148
+ this.isHCollapsible = !!this.accordionHCollapseService;
149
+ this.accordionService?.toggle$
150
+ .pipe(takeUntilDestroyed(this.destroyRef), filter(item => item !== this))
151
+ .subscribe(() => this.openClose(false));
152
+ this.panelToggle.subscribe(open => this.toggle.emit(open));
153
+ }
154
+ get showHide() {
155
+ if (this.enableAnimation && !this.animationsGloballyDisabled) {
156
+ return this.opened() ? 'show' : 'hide';
157
+ }
158
+ return 'disabled';
159
+ }
160
+ /**
161
+ * Expand/collapse panel.
162
+ * @param open - indicate the panel shall open or close
163
+ * @param enableAnimation - with animation
164
+ */
165
+ openClose(open, enableAnimation = true) {
166
+ this.opened.set(open);
167
+ this.enableAnimation = enableAnimation;
168
+ if (open) {
169
+ setTimeout(() => {
170
+ this.contentRef().nativeElement.scrollTop = this.lastScrollPos;
171
+ });
172
+ }
173
+ else {
174
+ this.lastScrollPos = this.contentRef().nativeElement.scrollTop;
175
+ }
176
+ }
177
+ doToggle(event) {
178
+ if (this.disabled()) {
179
+ return;
180
+ }
181
+ event?.preventDefault();
182
+ const opened = this.opened();
183
+ this.panelToggle.emit(!opened);
184
+ this.openClose(this.hcollapsed() || !opened);
185
+ this.accordionService?.toggle$.next(this);
186
+ if (this.hcollapsed()) {
187
+ this.accordionHCollapseService?.open$.next(this);
188
+ }
189
+ }
190
+ keydown(event) {
191
+ if (event.key === 'Enter' || event.key === 'Space' || event.key === ' ') {
192
+ this.doToggle(undefined);
193
+ }
194
+ }
195
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiCollapsiblePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
196
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiCollapsiblePanelComponent, isStandalone: true, selector: "si-collapsible-panel", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, headerCssClasses: { classPropertyName: "headerCssClasses", publicName: "headerCssClasses", isSignal: true, isRequired: false, transformFunction: null }, contentBgClasses: { classPropertyName: "contentBgClasses", publicName: "contentBgClasses", isSignal: true, isRequired: false, transformFunction: null }, contentCssClasses: { classPropertyName: "contentCssClasses", publicName: "contentCssClasses", isSignal: true, isRequired: false, transformFunction: null }, opened: { classPropertyName: "opened", publicName: "opened", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, colorVariant: { classPropertyName: "colorVariant", publicName: "colorVariant", isSignal: true, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, badgeColor: { classPropertyName: "badgeColor", publicName: "badgeColor", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { opened: "openedChange", panelToggle: "panelToggle", toggle: "toggle" }, host: { properties: { "class": "colorVariant()", "class.opened": "opened()", "class.hcollapsed": "hcollapsed()", "class.full-height": "fullHeight()" } }, viewQueries: [{ propertyName: "contentRef", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n class=\"collapsible-header focus-inside px-6\"\n role=\"button\"\n [ngClass]=\"headerCssClasses()\"\n [attr.tabindex]=\"disabled() ? '' : '0'\"\n [id]=\"headerId\"\n [class.open]=\"opened()\"\n [class.disabled]=\"disabled()\"\n [title]=\"hcollapsed() ? (heading() | translate) : ''\"\n [attr.aria-expanded]=\"opened() && !hcollapsed()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-controls]=\"controlId\"\n [attr.aria-label]=\"hcollapsed() ? (heading() | translate) : ''\"\n (keydown)=\"keydown($event)\"\n (click)=\"doToggle($event)\"\n>\n @let headerIcon = icon();\n @if (headerIcon) {\n <si-icon-next\n class=\"icon ms-n2 me-2\"\n [icon]=\"headerIcon\"\n [class.collapsed-icon]=\"isHCollapsible\"\n />\n }\n @if (icon() && badge() !== undefined && badge() !== '') {\n <span class=\"badge-text\">\n {{ badge() }}\n </span>\n }\n <div class=\"si-title-2 autohide\">\n {{ heading() | translate }}\n <ng-content select=\"[si-panel-heading]\" />\n </div>\n\n @if (badge() !== undefined && badge() !== '') {\n <span class=\"badge autohide\" [ngClass]=\"'bg-' + badgeColor()\">\n {{ badge() }}\n </span>\n }\n <span class=\"ms-auto overflow-hidden\">\n <si-icon-next class=\"icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </span>\n</div>\n<div\n #content\n class=\"collapsible-content\"\n role=\"region\"\n [id]=\"controlId\"\n [ngClass]=\"contentBgClasses()\"\n [@showHide]=\"showHide\"\n [attr.aria-labelledby]=\"headerId\"\n [class.full-height]=\"fullHeight()\"\n>\n @if (opened()) {\n <div>\n <div [ngClass]=\"contentCssClasses()\">\n <ng-content />\n </div>\n </div>\n }\n</div>\n", styles: [":host{--__radius: var(--si-accordion-radius, var(--element-button-radius));display:flex;flex-direction:column;background:var(--element-base-0);padding-block-end:2px}:host:not(.hcollapsed) .collapsed-icon,:host:not(.hcollapsed) .badge-text{display:none}:host.hcollapsed{background:var(--element-base-1)}:host.hcollapsed .collapsible-header .autohide,:host.hcollapsed .collapsible-content{display:none}:host.hcollapsed .collapsible-header{padding-block:8px}:host.hcollapsed .collapsible-header:hover{background:var(--element-base-1-hover)}:host.full-height{transition:flex-grow calc(.5s * var(--element-animations-enabled, 1))}:host.full-height.opened,:host.full-height .collapsible-content{flex:1 1 0}:host.full-height .collapsible-content>div{flex:1 0 0}.collapsible-header{display:flex;align-items:center;background:var(--element-base-1);color:var(--element-text-primary);padding-block:12px;border-radius:var(--__radius)}.collapsible-header.disabled{color:var(--element-text-disabled)}.collapsible-header.open{border-end-start-radius:0;border-end-end-radius:0}.collapsible-header:not(.disabled){cursor:pointer}.collapsible-header:not(.disabled):hover{text-decoration:none;background:var(--element-base-1-hover)}.dropdown-caret{transition:transform calc(.5s * var(--element-animations-enabled, 1));color:var(--element-ui-1)}.open .dropdown-caret{transform:rotate(180deg)}.collapsible-content{overflow:hidden;display:flex;flex-direction:column;background:var(--element-base-1);border-end-start-radius:var(--__radius);border-end-end-radius:var(--__radius)}.collapsible-content.full-height{overflow:auto}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }, { kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }], animations: [
197
+ trigger('showHide', [
198
+ transition('*=>hide', [
199
+ style({ overflow: 'hidden' }),
200
+ query(':leave', [style({ blockSize: '*' }), animate('0.5s ease', style({ blockSize: '0' }))], { optional: true })
201
+ ]),
202
+ transition('*=>show', [
203
+ style({ overflow: 'hidden' }),
204
+ query(':enter', [style({ blockSize: '0' }), animate('0.5s ease', style({ blockSize: '*' }))], { optional: true })
205
+ ])
206
+ ])
207
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
208
+ }
209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiCollapsiblePanelComponent, decorators: [{
210
+ type: Component,
211
+ args: [{ selector: 'si-collapsible-panel', animations: [
212
+ trigger('showHide', [
213
+ transition('*=>hide', [
214
+ style({ overflow: 'hidden' }),
215
+ query(':leave', [style({ blockSize: '*' }), animate('0.5s ease', style({ blockSize: '0' }))], { optional: true })
216
+ ]),
217
+ transition('*=>show', [
218
+ style({ overflow: 'hidden' }),
219
+ query(':enter', [style({ blockSize: '0' }), animate('0.5s ease', style({ blockSize: '*' }))], { optional: true })
220
+ ])
221
+ ])
222
+ ], changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgClass, SiIconNextComponent, SiTranslateModule], host: {
223
+ '[class]': 'colorVariant()',
224
+ '[class.opened]': 'opened()',
225
+ '[class.hcollapsed]': 'hcollapsed()',
226
+ '[class.full-height]': 'fullHeight()'
227
+ }, template: "<div\n class=\"collapsible-header focus-inside px-6\"\n role=\"button\"\n [ngClass]=\"headerCssClasses()\"\n [attr.tabindex]=\"disabled() ? '' : '0'\"\n [id]=\"headerId\"\n [class.open]=\"opened()\"\n [class.disabled]=\"disabled()\"\n [title]=\"hcollapsed() ? (heading() | translate) : ''\"\n [attr.aria-expanded]=\"opened() && !hcollapsed()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-controls]=\"controlId\"\n [attr.aria-label]=\"hcollapsed() ? (heading() | translate) : ''\"\n (keydown)=\"keydown($event)\"\n (click)=\"doToggle($event)\"\n>\n @let headerIcon = icon();\n @if (headerIcon) {\n <si-icon-next\n class=\"icon ms-n2 me-2\"\n [icon]=\"headerIcon\"\n [class.collapsed-icon]=\"isHCollapsible\"\n />\n }\n @if (icon() && badge() !== undefined && badge() !== '') {\n <span class=\"badge-text\">\n {{ badge() }}\n </span>\n }\n <div class=\"si-title-2 autohide\">\n {{ heading() | translate }}\n <ng-content select=\"[si-panel-heading]\" />\n </div>\n\n @if (badge() !== undefined && badge() !== '') {\n <span class=\"badge autohide\" [ngClass]=\"'bg-' + badgeColor()\">\n {{ badge() }}\n </span>\n }\n <span class=\"ms-auto overflow-hidden\">\n <si-icon-next class=\"icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </span>\n</div>\n<div\n #content\n class=\"collapsible-content\"\n role=\"region\"\n [id]=\"controlId\"\n [ngClass]=\"contentBgClasses()\"\n [@showHide]=\"showHide\"\n [attr.aria-labelledby]=\"headerId\"\n [class.full-height]=\"fullHeight()\"\n>\n @if (opened()) {\n <div>\n <div [ngClass]=\"contentCssClasses()\">\n <ng-content />\n </div>\n </div>\n }\n</div>\n", styles: [":host{--__radius: var(--si-accordion-radius, var(--element-button-radius));display:flex;flex-direction:column;background:var(--element-base-0);padding-block-end:2px}:host:not(.hcollapsed) .collapsed-icon,:host:not(.hcollapsed) .badge-text{display:none}:host.hcollapsed{background:var(--element-base-1)}:host.hcollapsed .collapsible-header .autohide,:host.hcollapsed .collapsible-content{display:none}:host.hcollapsed .collapsible-header{padding-block:8px}:host.hcollapsed .collapsible-header:hover{background:var(--element-base-1-hover)}:host.full-height{transition:flex-grow calc(.5s * var(--element-animations-enabled, 1))}:host.full-height.opened,:host.full-height .collapsible-content{flex:1 1 0}:host.full-height .collapsible-content>div{flex:1 0 0}.collapsible-header{display:flex;align-items:center;background:var(--element-base-1);color:var(--element-text-primary);padding-block:12px;border-radius:var(--__radius)}.collapsible-header.disabled{color:var(--element-text-disabled)}.collapsible-header.open{border-end-start-radius:0;border-end-end-radius:0}.collapsible-header:not(.disabled){cursor:pointer}.collapsible-header:not(.disabled):hover{text-decoration:none;background:var(--element-base-1-hover)}.dropdown-caret{transition:transform calc(.5s * var(--element-animations-enabled, 1));color:var(--element-ui-1)}.open .dropdown-caret{transform:rotate(180deg)}.collapsible-content{overflow:hidden;display:flex;flex-direction:column;background:var(--element-base-1);border-end-start-radius:var(--__radius);border-end-end-radius:var(--__radius)}.collapsible-content.full-height{overflow:auto}\n"] }]
228
+ }], ctorParameters: () => [] });
229
+
230
+ /**
231
+ * Copyright Siemens 2016 - 2025.
232
+ * SPDX-License-Identifier: MIT
233
+ */
234
+ const PANEL_MIN_HEIGHT = 100;
235
+ class SiAccordionComponent {
236
+ /** @defaultValue true */
237
+ expandFirstPanel = input(true, { transform: booleanAttribute });
238
+ /** @defaultValue false */
239
+ fullHeight = input(false, { transform: booleanAttribute });
240
+ /** @defaultValue false */
241
+ hcollapsed = input(false);
242
+ /**
243
+ * Color to use for component background
244
+ * @deprecated This has no effect anymore. Will be removed in v48
245
+ **/
246
+ colorVariant = input();
247
+ /**
248
+ * Indicate whether the accordion is collapsed.
249
+ * @internal
250
+ */
251
+ collapsed = computed(() => this.accordionHCollapseService?.hcollapsed() ?? this.hcollapsed());
252
+ panels = contentChildren(SiCollapsiblePanelComponent);
253
+ responsive = false;
254
+ destroyer = inject(DestroyRef);
255
+ service = inject(SiAccordionService);
256
+ resizeObserver = inject(ResizeObserverService);
257
+ element = inject(ElementRef);
258
+ accordionHCollapseService = inject(SiAccordionHCollapseService, { optional: true });
259
+ ngOnChanges() {
260
+ this.service.fullHeight.set(this.fullHeight() && !this.responsive);
261
+ }
262
+ ngAfterContentInit() {
263
+ this.resizeObserver
264
+ .observe(this.element.nativeElement, 100, true, true)
265
+ .pipe(takeUntilDestroyed(this.destroyer))
266
+ .subscribe(() => this.calcFullHeight());
267
+ this.panels().at(0)?.openClose(this.expandFirstPanel(), false);
268
+ }
269
+ calcFullHeight() {
270
+ if (this.panels?.length) {
271
+ const height = this.element.nativeElement.offsetHeight;
272
+ this.responsive = !this.hcollapsed() && height < this.panels.length * PANEL_MIN_HEIGHT;
273
+ this.service.fullHeight.set(this.fullHeight() && !this.responsive);
274
+ }
275
+ }
276
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
277
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.6", type: SiAccordionComponent, isStandalone: true, selector: "si-accordion", inputs: { expandFirstPanel: { classPropertyName: "expandFirstPanel", publicName: "expandFirstPanel", isSignal: true, isRequired: false, transformFunction: null }, fullHeight: { classPropertyName: "fullHeight", publicName: "fullHeight", isSignal: true, isRequired: false, transformFunction: null }, hcollapsed: { classPropertyName: "hcollapsed", publicName: "hcollapsed", isSignal: true, isRequired: false, transformFunction: null }, colorVariant: { classPropertyName: "colorVariant", publicName: "colorVariant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.full-height": "fullHeight()", "class.hcollapsed": "collapsed()" } }, providers: [SiAccordionService], queries: [{ propertyName: "panels", predicate: SiCollapsiblePanelComponent, isSignal: true }], usesOnChanges: true, ngImport: i0, template: '<div><ng-content /></div>', isInline: true, styles: [":host,:host>div{display:flex;flex-direction:column}:host.full-height{block-size:100%}:host.full-height>div{overflow-y:auto;flex:1 1 0}:host.full-height.hcollapsed>div{overflow-y:unset;flex-basis:auto}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
278
+ }
279
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiAccordionComponent, decorators: [{
280
+ type: Component,
281
+ args: [{ selector: 'si-accordion', template: '<div><ng-content /></div>', providers: [SiAccordionService], changeDetection: ChangeDetectionStrategy.OnPush, host: {
282
+ '[class.full-height]': 'fullHeight()',
283
+ '[class.hcollapsed]': 'collapsed()'
284
+ }, styles: [":host,:host>div{display:flex;flex-direction:column}:host.full-height{block-size:100%}:host.full-height>div{overflow-y:auto;flex:1 1 0}:host.full-height.hcollapsed>div{overflow-y:unset;flex-basis:auto}\n"] }]
285
+ }] });
286
+
287
+ /**
288
+ * Copyright Siemens 2016 - 2025.
289
+ * SPDX-License-Identifier: MIT
290
+ */
291
+ class SiAccordionModule {
292
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
293
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: SiAccordionModule, imports: [SiAccordionComponent, SiCollapsiblePanelComponent], exports: [SiAccordionComponent, SiCollapsiblePanelComponent] });
294
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiAccordionModule, imports: [SiCollapsiblePanelComponent] });
295
+ }
296
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiAccordionModule, decorators: [{
297
+ type: NgModule,
298
+ args: [{
299
+ imports: [SiAccordionComponent, SiCollapsiblePanelComponent],
300
+ exports: [SiAccordionComponent, SiCollapsiblePanelComponent]
301
+ }]
302
+ }] });
303
+
304
+ /**
305
+ * Copyright Siemens 2016 - 2025.
306
+ * SPDX-License-Identifier: MIT
307
+ */
308
+
309
+ /**
310
+ * Generated bundle index. Do not edit.
311
+ */
312
+
313
+ export { SiAccordionComponent, SiAccordionHCollapseService, SiAccordionModule, SiAccordionService, SiCollapsiblePanelComponent };
314
+ //# sourceMappingURL=siemens-element-ng-accordion.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"siemens-element-ng-accordion.mjs","sources":["../../../../projects/element-ng/accordion/si-accordion-hcollapse.service.ts","../../../../projects/element-ng/accordion/si-accordion.service.ts","../../../../projects/element-ng/accordion/si-collapsible-panel.component.ts","../../../../projects/element-ng/accordion/si-collapsible-panel.component.html","../../../../projects/element-ng/accordion/si-accordion.component.ts","../../../../projects/element-ng/accordion/si-accordion.module.ts","../../../../projects/element-ng/accordion/index.ts","../../../../projects/element-ng/accordion/siemens-element-ng-accordion.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/** @internal */\n@Injectable({\n providedIn: null\n})\nexport class SiAccordionHCollapseService {\n /**\n * Emitting the current horizontal collapsed state.\n *\n * @defaultValue undefined\n */\n readonly hcollapsed = signal<boolean | undefined>(undefined);\n /**\n * Subject to emit to open the accordion.\n */\n readonly open$ = new Subject();\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/** @internal */\n@Injectable({\n providedIn: null\n})\nexport class SiAccordionService {\n /**\n * Emit an item in the accordion which should be toggled.\n */\n readonly toggle$ = new Subject<any>();\n /**\n * Subject to emit when the items should be expanded to their full height or restored to normal height.\n *\n * @defaultValue null\n */\n readonly fullHeight = signal<boolean | null>(null);\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { animate, query, style, transition, trigger } from '@angular/animations';\nimport { NgClass } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n ElementRef,\n inject,\n input,\n model,\n output,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { areAnimationsDisabled, BackgroundColorVariant } from '@siemens/element-ng/common';\nimport { addIcons, SiIconNextComponent, elementDown2 } from '@siemens/element-ng/icon';\nimport { SiTranslateModule } from '@siemens/element-translate-ng/translate';\nimport { filter } from 'rxjs';\n\nimport { SiAccordionHCollapseService } from './si-accordion-hcollapse.service';\nimport { SiAccordionService } from './si-accordion.service';\n\nlet controlIdCounter = 1;\n\n@Component({\n selector: 'si-collapsible-panel',\n templateUrl: './si-collapsible-panel.component.html',\n styleUrl: './si-collapsible-panel.component.scss',\n animations: [\n trigger('showHide', [\n transition('*=>hide', [\n style({ overflow: 'hidden' }),\n query(\n ':leave',\n [style({ blockSize: '*' }), animate('0.5s ease', style({ blockSize: '0' }))],\n { optional: true }\n )\n ]),\n transition('*=>show', [\n style({ overflow: 'hidden' }),\n query(\n ':enter',\n [style({ blockSize: '0' }), animate('0.5s ease', style({ blockSize: '*' }))],\n { optional: true }\n )\n ])\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass, SiIconNextComponent, SiTranslateModule],\n host: {\n '[class]': 'colorVariant()',\n '[class.opened]': 'opened()',\n '[class.hcollapsed]': 'hcollapsed()',\n '[class.full-height]': 'fullHeight()'\n }\n})\nexport class SiCollapsiblePanelComponent {\n /**\n * Heading for the collapsible panel.\n */\n readonly heading = input<string>();\n /**\n * Additional CSS classes for the top element.\n *\n * @defaultValue ''\n */\n readonly headerCssClasses = input('');\n /**\n * Additional CSS classes for the collapsible content region.\n *\n * @defaultValue ''\n */\n readonly contentBgClasses = input('');\n /**\n * Additional CSS classes for the wrapping content element.\n *\n * @defaultValue ''\n */\n readonly contentCssClasses = input('');\n /**\n * Expand/collapse the panel.\n *\n * @defaultValue false\n */\n readonly opened = model(false);\n /**\n * The icon to be displayed besides the heading.\n */\n readonly icon = input<string>();\n /**\n * Whether the si-collapsible-panel is disabled.\n *\n * @defaultValue false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n /** Color to use for component background */\n readonly colorVariant = input<BackgroundColorVariant>();\n /**\n * Defines the content of the optional badge. Should be a number or something like \"100+\".\n * if undefined or empty string, no badge is displayed\n */\n readonly badge = input<string | number>();\n /**\n * Defines the background color of the badge. Default is specific to SiMPL flavour.\n */\n readonly badgeColor = input<string>();\n\n /**\n * An event emitted when the user triggered expand/collapse and emit with the new open state.\n * The event is emitted before the animation happens.\n */\n readonly panelToggle = output<boolean>();\n\n /**\n * An event emitted when the user triggered expand/collapse.\n * The event is emitted before the animation happens.\n * @deprecated use {@link panelToggle} instead\n */\n // eslint-disable-next-line @angular-eslint/no-output-native\n readonly toggle = output<boolean>();\n\n protected readonly hcollapsed = computed(\n () => this.accordionHCollapseService?.hcollapsed() ?? false\n );\n protected readonly fullHeight = computed(() => this.accordionService?.fullHeight() ?? false);\n protected controlId = '__si-collapsible-' + controlIdCounter++;\n protected headerId = this.controlId + '-header';\n protected isHCollapsible = false;\n protected readonly icons = addIcons({ elementDown2 });\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly accordionService = inject(SiAccordionService, { optional: true });\n private readonly accordionHCollapseService = inject(SiAccordionHCollapseService, {\n optional: true\n });\n private enableAnimation = true;\n private readonly animationsGloballyDisabled = areAnimationsDisabled();\n private lastScrollPos = 0;\n private readonly contentRef = viewChild.required<ElementRef<HTMLElement>>('content');\n\n constructor() {\n this.isHCollapsible = !!this.accordionHCollapseService;\n this.accordionService?.toggle$\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n filter(item => item !== this)\n )\n .subscribe(() => this.openClose(false));\n\n this.panelToggle.subscribe(open => this.toggle.emit(open));\n }\n\n protected get showHide(): string {\n if (this.enableAnimation && !this.animationsGloballyDisabled) {\n return this.opened() ? 'show' : 'hide';\n }\n return 'disabled';\n }\n\n /**\n * Expand/collapse panel.\n * @param open - indicate the panel shall open or close\n * @param enableAnimation - with animation\n */\n openClose(open: boolean, enableAnimation = true): void {\n this.opened.set(open);\n this.enableAnimation = enableAnimation;\n\n if (open) {\n setTimeout(() => {\n this.contentRef().nativeElement.scrollTop = this.lastScrollPos;\n });\n } else {\n this.lastScrollPos = this.contentRef().nativeElement.scrollTop;\n }\n }\n\n protected doToggle(event?: Event): void {\n if (this.disabled()) {\n return;\n }\n\n event?.preventDefault();\n const opened = this.opened();\n this.panelToggle.emit(!opened);\n this.openClose(this.hcollapsed() || !opened);\n this.accordionService?.toggle$.next(this);\n if (this.hcollapsed()) {\n this.accordionHCollapseService?.open$.next(this);\n }\n }\n\n protected keydown(event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === 'Space' || event.key === ' ') {\n this.doToggle(undefined);\n }\n }\n}\n","<div\n class=\"collapsible-header focus-inside px-6\"\n role=\"button\"\n [ngClass]=\"headerCssClasses()\"\n [attr.tabindex]=\"disabled() ? '' : '0'\"\n [id]=\"headerId\"\n [class.open]=\"opened()\"\n [class.disabled]=\"disabled()\"\n [title]=\"hcollapsed() ? (heading() | translate) : ''\"\n [attr.aria-expanded]=\"opened() && !hcollapsed()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-controls]=\"controlId\"\n [attr.aria-label]=\"hcollapsed() ? (heading() | translate) : ''\"\n (keydown)=\"keydown($event)\"\n (click)=\"doToggle($event)\"\n>\n @let headerIcon = icon();\n @if (headerIcon) {\n <si-icon-next\n class=\"icon ms-n2 me-2\"\n [icon]=\"headerIcon\"\n [class.collapsed-icon]=\"isHCollapsible\"\n />\n }\n @if (icon() && badge() !== undefined && badge() !== '') {\n <span class=\"badge-text\">\n {{ badge() }}\n </span>\n }\n <div class=\"si-title-2 autohide\">\n {{ heading() | translate }}\n <ng-content select=\"[si-panel-heading]\" />\n </div>\n\n @if (badge() !== undefined && badge() !== '') {\n <span class=\"badge autohide\" [ngClass]=\"'bg-' + badgeColor()\">\n {{ badge() }}\n </span>\n }\n <span class=\"ms-auto overflow-hidden\">\n <si-icon-next class=\"icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </span>\n</div>\n<div\n #content\n class=\"collapsible-content\"\n role=\"region\"\n [id]=\"controlId\"\n [ngClass]=\"contentBgClasses()\"\n [@showHide]=\"showHide\"\n [attr.aria-labelledby]=\"headerId\"\n [class.full-height]=\"fullHeight()\"\n>\n @if (opened()) {\n <div>\n <div [ngClass]=\"contentCssClasses()\">\n <ng-content />\n </div>\n </div>\n }\n</div>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n DestroyRef,\n ElementRef,\n inject,\n input,\n OnChanges\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BackgroundColorVariant } from '@siemens/element-ng/common';\nimport { ResizeObserverService } from '@siemens/element-ng/resize-observer';\n\nimport { SiAccordionHCollapseService } from './si-accordion-hcollapse.service';\nimport { SiAccordionService } from './si-accordion.service';\nimport { SiCollapsiblePanelComponent } from './si-collapsible-panel.component';\n\nconst PANEL_MIN_HEIGHT = 100;\n\n@Component({\n selector: 'si-accordion',\n template: '<div><ng-content /></div>',\n providers: [SiAccordionService],\n styleUrl: './si-accordion.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.full-height]': 'fullHeight()',\n '[class.hcollapsed]': 'collapsed()'\n }\n})\nexport class SiAccordionComponent implements AfterContentInit, OnChanges {\n /** @defaultValue true */\n readonly expandFirstPanel = input(true, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly fullHeight = input(false, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly hcollapsed = input(false);\n /**\n * Color to use for component background\n * @deprecated This has no effect anymore. Will be removed in v48\n **/\n readonly colorVariant = input<BackgroundColorVariant>();\n /**\n * Indicate whether the accordion is collapsed.\n * @internal\n */\n readonly collapsed = computed(\n () => this.accordionHCollapseService?.hcollapsed() ?? this.hcollapsed()\n );\n\n private readonly panels = contentChildren(SiCollapsiblePanelComponent);\n private responsive = false;\n private destroyer = inject(DestroyRef);\n private service = inject(SiAccordionService);\n private resizeObserver = inject(ResizeObserverService);\n private element = inject(ElementRef);\n private accordionHCollapseService = inject(SiAccordionHCollapseService, { optional: true });\n\n ngOnChanges(): void {\n this.service.fullHeight.set(this.fullHeight() && !this.responsive);\n }\n\n ngAfterContentInit(): void {\n this.resizeObserver\n .observe(this.element.nativeElement, 100, true, true)\n .pipe(takeUntilDestroyed(this.destroyer))\n .subscribe(() => this.calcFullHeight());\n\n this.panels().at(0)?.openClose(this.expandFirstPanel(), false);\n }\n\n private calcFullHeight(): void {\n if (this.panels?.length) {\n const height = (this.element.nativeElement as HTMLElement).offsetHeight;\n this.responsive = !this.hcollapsed() && height < this.panels.length * PANEL_MIN_HEIGHT;\n this.service.fullHeight.set(this.fullHeight() && !this.responsive);\n }\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiAccordionComponent } from './si-accordion.component';\nimport { SiCollapsiblePanelComponent } from './si-collapsible-panel.component';\n\n@NgModule({\n imports: [SiAccordionComponent, SiCollapsiblePanelComponent],\n exports: [SiAccordionComponent, SiCollapsiblePanelComponent]\n})\nexport class SiAccordionModule {}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-collapsible-panel.component';\nexport * from './si-accordion.component';\nexport * from './si-accordion.service';\nexport * from './si-accordion-hcollapse.service';\nexport * from './si-accordion.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;AAGG;AAIH;MAIa,2BAA2B,CAAA;AACtC;;;;AAIG;AACM,IAAA,UAAU,GAAG,MAAM,CAAsB,SAAS,CAAC;AAC5D;;AAEG;AACM,IAAA,KAAK,GAAG,IAAI,OAAO,EAAE;uGAVnB,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cAF1B,IAAI,EAAA,CAAA;;2FAEL,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACVD;;;AAGG;AAIH;MAIa,kBAAkB,CAAA;AAC7B;;AAEG;AACM,IAAA,OAAO,GAAG,IAAI,OAAO,EAAO;AACrC;;;;AAIG;AACM,IAAA,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC;uGAVvC,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,IAAI,EAAA,CAAA;;2FAEL,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACVD;;;AAGG;AAyBH,IAAI,gBAAgB,GAAG,CAAC;MAmCX,2BAA2B,CAAA;AACtC;;AAEG;IACM,OAAO,GAAG,KAAK,EAAU;AAClC;;;;AAIG;AACM,IAAA,gBAAgB,GAAG,KAAK,CAAC,EAAE,CAAC;AACrC;;;;AAIG;AACM,IAAA,gBAAgB,GAAG,KAAK,CAAC,EAAE,CAAC;AACrC;;;;AAIG;AACM,IAAA,iBAAiB,GAAG,KAAK,CAAC,EAAE,CAAC;AACtC;;;;AAIG;AACM,IAAA,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;AAC9B;;AAEG;IACM,IAAI,GAAG,KAAK,EAAU;AAC/B;;;;AAIG;IACM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;;IAExD,YAAY,GAAG,KAAK,EAA0B;AACvD;;;AAGG;IACM,KAAK,GAAG,KAAK,EAAmB;AACzC;;AAEG;IACM,UAAU,GAAG,KAAK,EAAU;AAErC;;;AAGG;IACM,WAAW,GAAG,MAAM,EAAW;AAExC;;;;AAIG;;IAEM,MAAM,GAAG,MAAM,EAAW;AAEhB,IAAA,UAAU,GAAG,QAAQ,CACtC,MAAM,IAAI,CAAC,yBAAyB,EAAE,UAAU,EAAE,IAAI,KAAK,CAC5D;AACkB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,KAAK,CAAC;AAClF,IAAA,SAAS,GAAG,mBAAmB,GAAG,gBAAgB,EAAE;AACpD,IAAA,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,SAAS;IACrC,cAAc,GAAG,KAAK;AACb,IAAA,KAAK,GAAG,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;AAEpC,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IAC/B,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACjE,IAAA,yBAAyB,GAAG,MAAM,CAAC,2BAA2B,EAAE;AAC/E,QAAA,QAAQ,EAAE;AACX,KAAA,CAAC;IACM,eAAe,GAAG,IAAI;IACb,0BAA0B,GAAG,qBAAqB,EAAE;IAC7D,aAAa,GAAG,CAAC;AACR,IAAA,UAAU,GAAG,SAAS,CAAC,QAAQ,CAA0B,SAAS,CAAC;AAEpF,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAyB;QACtD,IAAI,CAAC,gBAAgB,EAAE;AACpB,aAAA,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,MAAM,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;aAE9B,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAEzC,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAG5D,IAAA,IAAc,QAAQ,GAAA;QACpB,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE;AAC5D,YAAA,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM;;AAExC,QAAA,OAAO,UAAU;;AAGnB;;;;AAIG;AACH,IAAA,SAAS,CAAC,IAAa,EAAE,eAAe,GAAG,IAAI,EAAA;AAC7C,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe;QAEtC,IAAI,IAAI,EAAE;YACR,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa;AAChE,aAAC,CAAC;;aACG;YACL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,SAAS;;;AAIxD,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB;;QAGF,KAAK,EAAE,cAAc,EAAE;AACvB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;QAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;QAC5C,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACzC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACrB,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;;AAI1C,IAAA,OAAO,CAAC,KAAoB,EAAA;AACpC,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AACvE,YAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;;;uGA1IjB,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/DxC,qrDA6DA,EDNY,MAAA,EAAA,CAAA,qkDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFAAE,mBAAmB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,iBAAiB,EArB7C,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACV,OAAO,CAAC,UAAU,EAAE;gBAClB,UAAU,CAAC,SAAS,EAAE;AACpB,oBAAA,KAAK,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC7B,oBAAA,KAAK,CACH,QAAQ,EACR,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAC5E,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAErB,CAAC;gBACF,UAAU,CAAC,SAAS,EAAE;AACpB,oBAAA,KAAK,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC7B,oBAAA,KAAK,CACH,QAAQ,EACR,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAC5E,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAErB;aACF;AACF,SAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAUU,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAjCvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAGpB,UAAA,EAAA;wBACV,OAAO,CAAC,UAAU,EAAE;4BAClB,UAAU,CAAC,SAAS,EAAE;AACpB,gCAAA,KAAK,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC7B,gCAAA,KAAK,CACH,QAAQ,EACR,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAC5E,EAAE,QAAQ,EAAE,IAAI,EAAE;6BAErB,CAAC;4BACF,UAAU,CAAC,SAAS,EAAE;AACpB,gCAAA,KAAK,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC7B,gCAAA,KAAK,CACH,QAAQ,EACR,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAC5E,EAAE,QAAQ,EAAE,IAAI,EAAE;6BAErB;yBACF;qBACF,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA,CAAC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,EACpD,IAAA,EAAA;AACJ,wBAAA,SAAS,EAAE,gBAAgB;AAC3B,wBAAA,gBAAgB,EAAE,UAAU;AAC5B,wBAAA,oBAAoB,EAAE,cAAc;AACpC,wBAAA,qBAAqB,EAAE;AACxB,qBAAA,EAAA,QAAA,EAAA,qrDAAA,EAAA,MAAA,EAAA,CAAA,qkDAAA,CAAA,EAAA;;;AE7DH;;;AAGG;AAsBH,MAAM,gBAAgB,GAAG,GAAG;MAaf,oBAAoB,CAAA;;IAEtB,gBAAgB,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;;IAE/D,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;;AAE1D,IAAA,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;AAClC;;;AAGI;IACK,YAAY,GAAG,KAAK,EAA0B;AACvD;;;AAGG;AACM,IAAA,SAAS,GAAG,QAAQ,CAC3B,MAAM,IAAI,CAAC,yBAAyB,EAAE,UAAU,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CACxE;AAEgB,IAAA,MAAM,GAAG,eAAe,CAAC,2BAA2B,CAAC;IAC9D,UAAU,GAAG,KAAK;AAClB,IAAA,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;AAC9B,IAAA,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACpC,IAAA,cAAc,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAC9C,IAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;IAC5B,yBAAyB,GAAG,MAAM,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAE3F,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;;IAGpE,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC;AACF,aAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI;AACnD,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC;aACvC,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAEzC,QAAA,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,CAAC;;IAGxD,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE;YACvB,MAAM,MAAM,GAAI,IAAI,CAAC,OAAO,CAAC,aAA6B,CAAC,YAAY;AACvE,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,gBAAgB;AACtF,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;;;uGA7C3D,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,6tBARpB,CAAC,kBAAkB,CAAC,EA4BW,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EAAA,2BAA2B,kEA7B3D,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4MAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAS1B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,SAAS;+BACE,cAAc,EAAA,QAAA,EACd,2BAA2B,EAAA,SAAA,EAC1B,CAAC,kBAAkB,CAAC,EAEd,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,qBAAqB,EAAE,cAAc;AACrC,wBAAA,oBAAoB,EAAE;AACvB,qBAAA,EAAA,MAAA,EAAA,CAAA,4MAAA,CAAA,EAAA;;;ACpCH;;;AAGG;MAUU,iBAAiB,CAAA;uGAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAHlB,oBAAoB,EAAE,2BAA2B,CACjD,EAAA,OAAA,EAAA,CAAA,oBAAoB,EAAE,2BAA2B,CAAA,EAAA,CAAA;AAEhD,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAHI,2BAA2B,CAAA,EAAA,CAAA;;2FAGhD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,oBAAoB,EAAE,2BAA2B,CAAC;AAC5D,oBAAA,OAAO,EAAE,CAAC,oBAAoB,EAAE,2BAA2B;AAC5D,iBAAA;;;ACZD;;;AAGG;;ACHH;;AAEG;;;;"}