@siemens/element-ng 49.14.0 → 51.0.0-rc.5

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 (254) hide show
  1. package/README.md +1 -1
  2. package/fesm2022/siemens-element-ng-about.mjs +41 -25
  3. package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
  4. package/fesm2022/siemens-element-ng-accordion.mjs +58 -40
  5. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
  6. package/fesm2022/siemens-element-ng-action-modal.mjs +83 -53
  7. package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
  8. package/fesm2022/siemens-element-ng-ag-grid.mjs +15 -12
  9. package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
  10. package/fesm2022/siemens-element-ng-application-header.mjs +176 -166
  11. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  12. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +34 -28
  13. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
  14. package/fesm2022/siemens-element-ng-autocomplete.mjs +27 -22
  15. package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
  16. package/fesm2022/siemens-element-ng-avatar.mjs +31 -21
  17. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  18. package/fesm2022/siemens-element-ng-badge.mjs +9 -8
  19. package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
  20. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +17 -14
  21. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
  22. package/fesm2022/siemens-element-ng-breadcrumb.mjs +21 -17
  23. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  24. package/fesm2022/siemens-element-ng-card.mjs +71 -46
  25. package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
  26. package/fesm2022/siemens-element-ng-carousel.mjs +57 -33
  27. package/fesm2022/siemens-element-ng-carousel.mjs.map +1 -1
  28. package/fesm2022/siemens-element-ng-chat-messages.mjs +181 -117
  29. package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
  30. package/fesm2022/siemens-element-ng-circle-status.mjs +39 -25
  31. package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
  32. package/fesm2022/siemens-element-ng-color-picker.mjs +26 -17
  33. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
  34. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +56 -35
  35. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
  36. package/fesm2022/siemens-element-ng-common.mjs +12 -12
  37. package/fesm2022/siemens-element-ng-connection-strength.mjs +14 -12
  38. package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
  39. package/fesm2022/siemens-element-ng-content-action-bar.mjs +36 -27
  40. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  41. package/fesm2022/siemens-element-ng-copyright-notice.mjs +19 -14
  42. package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
  43. package/fesm2022/siemens-element-ng-dashboard.mjs +335 -221
  44. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  45. package/fesm2022/siemens-element-ng-datatable.mjs +8 -8
  46. package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
  47. package/fesm2022/siemens-element-ng-date-range-filter.mjs +119 -72
  48. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  49. package/fesm2022/siemens-element-ng-datepicker.mjs +376 -244
  50. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  51. package/fesm2022/siemens-element-ng-electron-titlebar.mjs +22 -17
  52. package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
  53. package/fesm2022/siemens-element-ng-empty-state.mjs +15 -12
  54. package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
  55. package/fesm2022/siemens-element-ng-file-uploader.mjs +105 -91
  56. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  57. package/fesm2022/siemens-element-ng-filter-bar.mjs +32 -24
  58. package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
  59. package/fesm2022/siemens-element-ng-filtered-search.mjs +251 -153
  60. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  61. package/fesm2022/siemens-element-ng-footer.mjs +12 -10
  62. package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
  63. package/fesm2022/siemens-element-ng-form.mjs +345 -113
  64. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  65. package/fesm2022/siemens-element-ng-formly-legacy.mjs +99 -0
  66. package/fesm2022/siemens-element-ng-formly-legacy.mjs.map +1 -0
  67. package/fesm2022/siemens-element-ng-formly.mjs +222 -316
  68. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  69. package/fesm2022/siemens-element-ng-header-dropdown.mjs +40 -30
  70. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  71. package/fesm2022/siemens-element-ng-help-button.mjs +5 -5
  72. package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
  73. package/fesm2022/siemens-element-ng-icon.mjs +46 -47
  74. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  75. package/fesm2022/siemens-element-ng-info-page.mjs +17 -11
  76. package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
  77. package/fesm2022/siemens-element-ng-inline-notification.mjs +19 -14
  78. package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
  79. package/fesm2022/siemens-element-ng-ip-input.mjs +25 -25
  80. package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
  81. package/fesm2022/siemens-element-ng-landing-page.mjs +120 -74
  82. package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
  83. package/fesm2022/siemens-element-ng-language-switcher.mjs +16 -12
  84. package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
  85. package/fesm2022/siemens-element-ng-link.mjs +31 -21
  86. package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
  87. package/fesm2022/siemens-element-ng-list-details.mjs +76 -56
  88. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  89. package/fesm2022/siemens-element-ng-loading-spinner.mjs +46 -63
  90. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
  91. package/fesm2022/siemens-element-ng-localization.mjs +14 -12
  92. package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
  93. package/fesm2022/siemens-element-ng-main-detail-container.mjs +47 -30
  94. package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
  95. package/fesm2022/siemens-element-ng-maplibre.mjs +42 -0
  96. package/fesm2022/siemens-element-ng-maplibre.mjs.map +1 -0
  97. package/fesm2022/siemens-element-ng-markdown-renderer.mjs +6 -5
  98. package/fesm2022/siemens-element-ng-markdown-renderer.mjs.map +1 -1
  99. package/fesm2022/siemens-element-ng-menu.mjs +56 -48
  100. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  101. package/fesm2022/siemens-element-ng-modal.mjs +14 -11
  102. package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
  103. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +249 -204
  104. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
  105. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +120 -83
  106. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  107. package/fesm2022/siemens-element-ng-navbar.mjs +72 -45
  108. package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
  109. package/fesm2022/siemens-element-ng-notification-item.mjs +19 -11
  110. package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
  111. package/fesm2022/siemens-element-ng-number-input.mjs +40 -28
  112. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  113. package/fesm2022/siemens-element-ng-pagination.mjs +31 -20
  114. package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
  115. package/fesm2022/siemens-element-ng-password-strength.mjs +32 -23
  116. package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
  117. package/fesm2022/siemens-element-ng-password-toggle.mjs +18 -13
  118. package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
  119. package/fesm2022/siemens-element-ng-phone-number.mjs +123 -139
  120. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
  121. package/fesm2022/siemens-element-ng-photo-upload.mjs +84 -51
  122. package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
  123. package/fesm2022/siemens-element-ng-pills-input.mjs +63 -58
  124. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
  125. package/fesm2022/siemens-element-ng-popover-legacy.mjs +43 -28
  126. package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
  127. package/fesm2022/siemens-element-ng-popover.mjs +35 -27
  128. package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
  129. package/fesm2022/siemens-element-ng-progressbar.mjs +23 -16
  130. package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
  131. package/fesm2022/siemens-element-ng-resize-observer.mjs +32 -43
  132. package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
  133. package/fesm2022/siemens-element-ng-result-details-list.mjs +12 -10
  134. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
  135. package/fesm2022/siemens-element-ng-search-bar.mjs +38 -31
  136. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  137. package/fesm2022/siemens-element-ng-select.mjs +218 -163
  138. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  139. package/fesm2022/siemens-element-ng-shadow-root.mjs +3 -3
  140. package/fesm2022/siemens-element-ng-side-panel.mjs +128 -86
  141. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  142. package/fesm2022/siemens-element-ng-skip-links.mjs +21 -24
  143. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
  144. package/fesm2022/siemens-element-ng-slider.mjs +44 -29
  145. package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
  146. package/fesm2022/siemens-element-ng-split.mjs +273 -293
  147. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  148. package/fesm2022/siemens-element-ng-status-bar.mjs +65 -51
  149. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  150. package/fesm2022/siemens-element-ng-status-counter.mjs +15 -11
  151. package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
  152. package/fesm2022/siemens-element-ng-status-toggle.mjs +26 -16
  153. package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
  154. package/fesm2022/siemens-element-ng-summary-chip.mjs +25 -16
  155. package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
  156. package/fesm2022/siemens-element-ng-summary-widget.mjs +27 -17
  157. package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
  158. package/fesm2022/siemens-element-ng-system-banner.mjs +11 -8
  159. package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
  160. package/fesm2022/siemens-element-ng-tabs-legacy.mjs +20 -17
  161. package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
  162. package/fesm2022/siemens-element-ng-tabs.mjs +73 -70
  163. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  164. package/fesm2022/siemens-element-ng-theme.mjs +29 -6
  165. package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
  166. package/fesm2022/siemens-element-ng-threshold.mjs +60 -41
  167. package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
  168. package/fesm2022/siemens-element-ng-toast-notification.mjs +45 -40
  169. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
  170. package/fesm2022/siemens-element-ng-tooltip.mjs +105 -82
  171. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
  172. package/fesm2022/siemens-element-ng-tour.mjs +24 -18
  173. package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
  174. package/fesm2022/siemens-element-ng-translate.mjs +0 -1
  175. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  176. package/fesm2022/siemens-element-ng-tree-view.mjs +96 -75
  177. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  178. package/fesm2022/siemens-element-ng-typeahead.mjs +76 -70
  179. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  180. package/fesm2022/siemens-element-ng-wizard.mjs +72 -48
  181. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  182. package/formly-legacy/package.json +4 -0
  183. package/maplibre/package.json +4 -0
  184. package/maplibre/styles/_index.scss +1 -0
  185. package/maplibre/styles/maplibre-gl.scss +715 -0
  186. package/package.json +37 -23
  187. package/schematics/migration.json +4 -4
  188. package/schematics/migrations/data/class-member-replacement.js +1 -19
  189. package/schematics/migrations/data/component-property-names.js +1 -25
  190. package/schematics/migrations/data/element-class-changes.js +1 -28
  191. package/schematics/migrations/data/element-migration-data.js +2 -0
  192. package/schematics/migrations/data/element-selectors.js +1 -11
  193. package/schematics/migrations/data/index.js +0 -4
  194. package/schematics/migrations/data/migration-test-data.js +9 -6
  195. package/schematics/migrations/data/provider-function-removals.js +7 -0
  196. package/schematics/migrations/data/symbol-removals.js +7 -7
  197. package/schematics/migrations/data/symbol-renaming.js +1 -48
  198. package/schematics/migrations/element-migration/element-migration.js +3 -6
  199. package/schematics/migrations/utilities/import-removal.js +39 -0
  200. package/schematics/migrations/utilities/index.js +2 -0
  201. package/schematics/migrations/utilities/provider-function-removal.migration.js +116 -0
  202. package/schematics/ng-update/index.js +1 -1
  203. package/schematics/ng-update/migrate-split-sizes.js +105 -0
  204. package/schematics/ng-update/{migrate-to-v49.js → migrate-to-v51.js} +5 -3
  205. package/template-i18n.json +45 -47
  206. package/types/siemens-element-ng-application-header.d.ts +8 -28
  207. package/types/siemens-element-ng-breadcrumb.d.ts +1 -1
  208. package/types/siemens-element-ng-chat-messages.d.ts +11 -9
  209. package/types/siemens-element-ng-circle-status.d.ts +1 -1
  210. package/types/siemens-element-ng-content-action-bar.d.ts +1 -1
  211. package/types/siemens-element-ng-dashboard.d.ts +2 -2
  212. package/types/siemens-element-ng-date-range-filter.d.ts +1 -1
  213. package/types/siemens-element-ng-datepicker.d.ts +3 -14
  214. package/types/siemens-element-ng-electron-titlebar.d.ts +1 -1
  215. package/types/siemens-element-ng-file-uploader.d.ts +13 -31
  216. package/types/siemens-element-ng-filter-bar.d.ts +1 -1
  217. package/types/siemens-element-ng-filtered-search.d.ts +4 -4
  218. package/types/siemens-element-ng-form.d.ts +180 -44
  219. package/types/siemens-element-ng-formly-legacy.d.ts +40 -0
  220. package/types/siemens-element-ng-formly.d.ts +34 -167
  221. package/types/siemens-element-ng-icon.d.ts +2 -19
  222. package/types/siemens-element-ng-ip-input.d.ts +1 -1
  223. package/types/siemens-element-ng-landing-page.d.ts +2 -2
  224. package/types/siemens-element-ng-loading-spinner.d.ts +7 -17
  225. package/types/siemens-element-ng-maplibre.d.ts +26 -0
  226. package/types/siemens-element-ng-navbar-vertical-next.d.ts +86 -38
  227. package/types/siemens-element-ng-navbar-vertical.d.ts +1 -1
  228. package/types/siemens-element-ng-navbar.d.ts +3 -3
  229. package/types/siemens-element-ng-notification-item.d.ts +12 -0
  230. package/types/siemens-element-ng-phone-number.d.ts +5 -8
  231. package/types/siemens-element-ng-photo-upload.d.ts +4 -4
  232. package/types/siemens-element-ng-resize-observer.d.ts +0 -17
  233. package/types/siemens-element-ng-search-bar.d.ts +1 -1
  234. package/types/siemens-element-ng-select.d.ts +1 -1
  235. package/types/siemens-element-ng-side-panel.d.ts +3 -3
  236. package/types/siemens-element-ng-split.d.ts +99 -70
  237. package/types/siemens-element-ng-status-bar.d.ts +5 -13
  238. package/types/siemens-element-ng-status-counter.d.ts +1 -1
  239. package/types/siemens-element-ng-tabs.d.ts +1 -2
  240. package/types/siemens-element-ng-theme.d.ts +12 -2
  241. package/types/siemens-element-ng-threshold.d.ts +1 -1
  242. package/types/siemens-element-ng-toast-notification.d.ts +0 -1
  243. package/types/siemens-element-ng-tooltip.d.ts +7 -7
  244. package/types/siemens-element-ng-translate.d.ts +2 -5
  245. package/fesm2022/siemens-element-ng-icon-status.mjs +0 -46
  246. package/fesm2022/siemens-element-ng-icon-status.mjs.map +0 -1
  247. package/fesm2022/siemens-element-ng-sort-bar.mjs +0 -99
  248. package/fesm2022/siemens-element-ng-sort-bar.mjs.map +0 -1
  249. package/icon-status/package.json +0 -4
  250. package/schematics/vitest-setup.js +0 -5
  251. package/sort-bar/package.json +0 -4
  252. package/types/siemens-element-ng-icon-status.d.ts +0 -25
  253. package/types/siemens-element-ng-sort-bar.d.ts +0 -59
  254. /package/{LICENSE.md → LICENSE} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-split.mjs","sources":["../../../../projects/element-ng/split/si-split-part.component.ts","../../../../projects/element-ng/split/si-split-part.component.html","../../../../projects/element-ng/split/si-split.component.ts","../../../../projects/element-ng/split/si-split.component.html","../../../../projects/element-ng/split/si-split.module.ts","../../../../projects/element-ng/split/index.ts","../../../../projects/element-ng/split/siemens-element-ng-split.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n/* eslint-disable @angular-eslint/prefer-output-emitter-ref */\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n numberAttribute,\n OnChanges,\n Output,\n signal,\n SimpleChanges,\n TemplateRef\n} from '@angular/core';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { Action, CollapseTo, PartState, Scale, SplitOrientation } from './si-split.interfaces';\n\n@Component({\n selector: 'si-split-part',\n imports: [NgTemplateOutlet, SiIconComponent, SiTranslatePipe],\n templateUrl: './si-split-part.component.html',\n styleUrl: './si-split-part.component.scss',\n changeDetection: ChangeDetectionStrategy.Default,\n // Signals cannot be used directly with @HostBinding. See: https://github.com/angular/angular/issues/53888#issuecomment-1888935225\n // Having every binding here for consistency.\n host: {\n '[class.is-collapsed]': 'collapsedState()',\n '[class.collapse-start]': 'collapseDirection === \"start\"',\n '[style.grid-area]': '\"p-\" + this.index'\n }\n})\nexport class SiSplitPartComponent implements OnChanges {\n /** @defaultValue [] */\n @Input() actions: Action[] = [];\n /**\n * @defaultValue 'start'\n */\n @Input() collapseDirection: CollapseTo = 'start';\n\n /**\n * Sets the icon class that is used in the buttons of split parts to\n * collapse and uncollapse the parts.\n *\n * @defaultValue 'element-double-right'\n */\n @Input() collapseIconClass = 'element-double-right';\n\n /**\n * Collapse only to the given min size.\n *\n * @defaultValue false\n */\n @Input({ transform: booleanAttribute }) collapseToMinSize = false;\n\n @Input() headerTemplate?: TemplateRef<any>;\n\n /**\n * Sets the title of the split part header.\n */\n @Input() heading!: TranslatableString;\n\n /**\n * Minimum size in px.\n *\n * @defaultValue 0\n */\n @Input({ transform: numberAttribute }) minSize = 0;\n\n /**\n * When a split part is collapsed, the content gets hidden but it will\n * still remain within the DOM. If you want to remove and destroy the component\n * in collapsed mode and recreate it on un-collapse, set this property to\n * true.\n *\n * @defaultValue false\n */\n @Input({ transform: booleanAttribute }) removeContentOnCollapse = false;\n\n /**\n * Defines the behavior of the split part during scaling.\n * E.g. when set to `none`, the spit part will keep its current size even when the parent container grows or shrinks.\n *\n * @defaultValue 'auto'\n */\n @Input() scale: Scale = 'auto';\n\n /**\n * Defines if the collapse button of a split part is displayed. Default value is true.\n *\n * @defaultValue true\n */\n @Input({ transform: booleanAttribute }) showCollapseButton = true;\n\n /**\n * Defines if the header of the split part is visible. Default is true.\n *\n * @defaultValue true\n */\n @Input({ transform: booleanAttribute }) showHeader = true;\n /**\n * Aria label for collapse button. Needed for a11y\n *\n * @defaultValue 'collapse'\n */\n @Input() collapseLabel: TranslatableString = 'collapse';\n /**\n * An optional stateId to uniquely identify a component instance.\n * Required for persistence of ui state.\n */\n @Input() stateId?: string;\n\n /**\n * Expanded size in px.\n */\n @Input({ transform: numberAttribute }) size?: number;\n\n /**\n * This toggles the behavior when collapsing this split part.\n * If enabled, all split parts between this one and the end of the split in the respective direction will be collapsed if this part is collapsed.\n * If disabled, only this split part will be collapsed.\n *\n * @defaultValue false\n */\n @Input({ transform: booleanAttribute }) collapseOthers = false;\n\n @Output() readonly collapseChanged = new EventEmitter<boolean>();\n @Output() readonly stateChange = new EventEmitter<PartState>();\n\n /** @internal */\n index = 0;\n /** @internal */\n before?: SiSplitPartComponent;\n /** @internal */\n after?: SiSplitPartComponent;\n\n /** @internal */\n readonly fractionalSize = signal<number | undefined>(undefined);\n\n /** @internal */\n readonly collapsedSize = signal(0);\n\n /** @internal */\n readonly collapsedState = signal(false);\n\n /**\n * Get collapsed state.\n * @returns True if the split part is collapsed, false is expanded.\n */\n get collapsed(): boolean {\n return this.collapsedState();\n }\n\n /** @internal */\n readonly expandedSize = signal<number | undefined>(undefined);\n\n /** @internal */\n readonly actualSize = computed(() => {\n if (this.collapsedState()) {\n return this.collapsedSize();\n }\n return this.expandedSize() ?? 0;\n });\n\n /** @internal */\n saveUIState!: () => void;\n\n /** @internal */\n readonly nextExpandedAfter = computed(() => {\n if (!this.collapsedState()) {\n return this as SiSplitPartComponent;\n }\n const nextExpanded: SiSplitPartComponent = this.after ? this.after.nextExpandedAfter() : this;\n\n return nextExpanded;\n });\n\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n protected headerContext: { $implicit: SiSplitPartComponent } = {\n $implicit: this\n };\n\n /** @defaultValue true */\n @Input({ transform: booleanAttribute }) set expanded(value: boolean) {\n this.collapsedState.set(!value);\n if (this.collapseOthers) {\n this.before?.refreshCollapseToStart();\n this.after?.refreshCollapsedToEnd();\n }\n }\n get expanded(): boolean {\n return !this.collapsedState();\n }\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (changes.collapseToMinSize && this.collapseToMinSize) {\n this.collapsedSize.set(this.minSize ?? 40);\n } else {\n this.collapsedSize.set(40); // 40px is default size of the header\n }\n\n if (changes.size) {\n this.expandedSize.set(this.size);\n }\n }\n\n /** @internal */\n refreshSizePx(orientation: SplitOrientation): void {\n if (!this.collapsedState()) {\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n if (orientation === 'vertical') {\n this.expandedSize.set(rect.height);\n } else {\n this.expandedSize.set(rect.width);\n }\n }\n }\n\n /**\n * Toggles the collapsed or expanded state.\n */\n toggleCollapse(): void {\n this.collapsedState.update(v => !v);\n if (this.collapseOthers) {\n this.before?.refreshCollapseToStart();\n this.after?.refreshCollapsedToEnd();\n }\n this.collapseChanged.emit(this.collapsedState());\n this.stateChange.emit({ expanded: this.expanded, size: this.actualSize() });\n this.saveUIState();\n }\n\n private refreshCollapsedToEnd(): void {\n if (this.before?.collapsedState() && this.before.collapseDirection === 'end') {\n this.collapsedState.set(true);\n this.collapseDirection = 'end';\n this.after?.refreshCollapsedToEnd();\n }\n }\n\n private refreshCollapseToStart(): void {\n if (this.after?.collapsedState() && this.after.collapseDirection === 'start') {\n this.collapsedState.set(true);\n this.collapseDirection = 'start';\n this.before?.refreshCollapseToStart();\n }\n }\n}\n","@if (!headerTemplate && showHeader) {\n <div class=\"si-split-part-header\" [class.is-collapsed]=\"collapsedState()\">\n <div class=\"si-split-part-title text-truncate\">\n {{ heading | translate }}\n </div>\n @if (!collapsedState()) {\n <div class=\"si-split-part-actions\">\n @for (action of actions; track $index) {\n <button\n type=\"button\"\n class=\"si-split-button\"\n [title]=\"action.tooltip || ''\"\n [attr.aria-label]=\"action.tooltip\"\n (click)=\"action.click($event)\"\n >\n <si-icon [icon]=\"action.iconClass\" />\n </button>\n }\n </div>\n }\n @if (showCollapseButton) {\n <div class=\"si-split-part-collapse-button\">\n <button\n type=\"button\"\n class=\"si-split-button\"\n [attr.aria-label]=\"collapseLabel | translate\"\n (click)=\"toggleCollapse()\"\n >\n <si-icon class=\"collapse-icon\" [icon]=\"collapseIconClass\" />\n </button>\n </div>\n }\n </div>\n}\n\n@if (headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: headerContext\" />\n}\n\n<div\n class=\"si-split-part-content\"\n [class.d-none]=\"!removeContentOnCollapse && collapsedState() && !collapseToMinSize\"\n>\n @if (!removeContentOnCollapse || !collapsedState()) {\n <ng-content />\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n/* eslint-disable @angular-eslint/prefer-output-emitter-ref */\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ContentChildren,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n NgZone,\n OnChanges,\n Output,\n QueryList,\n signal,\n Signal,\n SimpleChanges,\n DOCUMENT\n} from '@angular/core';\nimport {\n isRTL,\n SI_UI_STATE_SERVICE,\n WebComponentContentChildren\n} from '@siemens/element-ng/common';\nimport { asapScheduler, fromEvent, merge } from 'rxjs';\nimport { observeOn, takeUntil } from 'rxjs/operators';\n\nimport { SiSplitPartComponent } from './si-split-part.component';\nimport { SplitOrientation } from './si-split.interfaces';\n\ninterface Gutter {\n before: SiSplitPartComponent;\n after: SiSplitPartComponent;\n visible: Signal<boolean>;\n}\n\ninterface SplitPartState {\n size: number;\n initialSize: number;\n expanded: boolean;\n}\n\n@Component({\n selector: 'si-split',\n templateUrl: './si-split.component.html',\n styleUrl: './si-split.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n // Signals cannot be used directly with @HostBinding. See: https://github.com/angular/angular/issues/53888#issuecomment-1888935225\n host: {\n '[class]': '_orientation()',\n '[style.grid-template-rows]': 'gridTemplateRows()',\n '[style.grid-template-columns]': 'gridTemplateColumns()',\n '[style.grid-template-areas]': 'gridTemplateAreas()'\n }\n})\nexport class SiSplitComponent implements AfterContentInit, OnChanges {\n /** @defaultValue 16 */\n @Input() gutterSize = 16;\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n protected readonly _orientation = signal<SplitOrientation>('horizontal');\n\n get orientation(): SplitOrientation {\n return this._orientation();\n }\n\n @Input() set orientation(value: SplitOrientation) {\n this._orientation.set(value);\n }\n\n /** @defaultValue [] */\n @Input() sizes: number[] = [];\n\n /**\n * An optional stateId to uniquely identify a component instance.\n * Required for persistence of ui state.\n */\n @Input() stateId?: string;\n\n @Output() readonly sizesChange = new EventEmitter<number[]>();\n\n @WebComponentContentChildren(SiSplitPartComponent)\n @ContentChildren(SiSplitPartComponent)\n protected parts!: QueryList<SiSplitPartComponent>;\n protected gutters: Gutter[] = [];\n\n // eslint-disable-next-line\n protected gridTemplateRows: Signal<string> = signal('');\n // eslint-disable-next-line\n protected gridTemplateColumns: Signal<string> = signal('');\n // eslint-disable-next-line\n protected gridTemplateAreas: Signal<string> = signal('');\n\n private elementRef = inject(ElementRef<HTMLElement>);\n private ngZone = inject(NgZone);\n private changeDetectorRef = inject(ChangeDetectorRef);\n private document = inject(DOCUMENT);\n private uiStateService = inject(SI_UI_STATE_SERVICE, { optional: true });\n // New parts won't be measured, so we need this to scale up their fractional size to the expanded size.\n // Using 10, as the sum of all fractional sizes is 1, so we need to scale them up as fr-values should be >= 1.\n private fractionalSizeToExpandedSizeFactor = 10;\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (changes.sizes && !changes.sizes.firstChange) {\n this.sizes.forEach((size, index) => {\n const part = this.parts.get(index);\n if (part) {\n part.fractionalSize.set(size);\n part.expandedSize.set(undefined);\n }\n });\n this.alignRelativeSizes();\n }\n }\n\n ngAfterContentInit(): void {\n this.parts.changes.pipe(observeOn(asapScheduler)).subscribe(() => {\n this.changeDetectorRef.markForCheck();\n this.gutters = [];\n\n for (let index = 0; index < this.parts.length; index++) {\n const component = this.parts.get(index)!;\n component.index = index;\n component.after = this.parts.get(index + 1);\n component.before = this.parts.get(index - 1);\n component.fractionalSize.set(this.sizes[index]);\n component.saveUIState = () => this.saveUIState();\n\n if (component.after) {\n this.gutters.push({\n before: component,\n after: this.parts.get(index + 1)!,\n visible: computed(() => {\n const afterPart = component.after!.nextExpandedAfter();\n return !afterPart.collapsedState() && !component.collapsedState();\n })\n });\n }\n }\n\n this.alignRelativeSizes();\n this.updateFractionalSizeToExpandSizeFactor();\n this.restoreFormUIState();\n\n const gridTemplate = computed(() =>\n this.parts\n .map(part =>\n part.collapsedState()\n ? part.collapseToMinSize\n ? `${part.minSize}px`\n : 'min-content'\n : part.actualSize()\n ? part.scale === 'auto'\n ? `minmax(${part.minSize}px, ${part.actualSize()}fr)`\n : `minmax(${part.minSize}px, ${part.actualSize()}px)`\n : `minmax(${part.minSize}px, ${\n part.fractionalSize()! * this.fractionalSizeToExpandedSizeFactor\n }fr)`\n )\n .join(' min-content ')\n );\n\n this.gridTemplateRows = computed(() =>\n this._orientation() === 'vertical' ? gridTemplate() : '1fr'\n );\n this.gridTemplateColumns = computed(() =>\n this._orientation() === 'horizontal' ? gridTemplate() : '1fr'\n );\n this.gridTemplateAreas = computed(() => {\n const areaNames = this.parts\n .map((part, index) => [`p-${index}`, part.after ? `g-${index}` : []])\n .flat(2) as string[];\n\n if (this._orientation() === 'horizontal') {\n return `\"${areaNames.join(' ')}\"`;\n } else {\n return `\"${areaNames.join('\" \"')}\"`;\n }\n });\n setTimeout(() => this.refreshAllPartSizes());\n });\n this.parts.notifyOnChanges();\n }\n\n private alignRelativeSizes(): void {\n const requestedNoSize = this.parts.filter(part => !part.size && !part.fractionalSize());\n const requestedRelSize = this.parts.filter(part => part.fractionalSize() && !part.size);\n\n if (requestedRelSize.length) {\n const totalRequestedRelSize = requestedRelSize.reduce((a, b) => a + b.fractionalSize()!, 0);\n const averageRelSize = totalRequestedRelSize / requestedRelSize.length;\n const totalAssignedRelSize = totalRequestedRelSize + requestedNoSize.length * averageRelSize;\n requestedNoSize.forEach(part =>\n part.fractionalSize.set(averageRelSize / totalAssignedRelSize)\n );\n requestedRelSize.forEach(part =>\n part.fractionalSize.set(part.fractionalSize()! / totalAssignedRelSize)\n );\n } else {\n requestedNoSize.forEach(part => part.fractionalSize.set(1 / requestedNoSize.length));\n }\n }\n\n private updateFractionalSizeToExpandSizeFactor(): void {\n let previousScalableFractionalSum = 0;\n let previousScalableExpandedSizeSum = 0;\n\n for (let index = 0; index < this.parts.length; index++) {\n const component = this.parts.get(index)!;\n if (component.scale === 'auto' && component.expandedSize() !== undefined) {\n previousScalableExpandedSizeSum += component.expandedSize()!;\n previousScalableFractionalSum += component.fractionalSize()!;\n }\n }\n\n this.fractionalSizeToExpandedSizeFactor = previousScalableFractionalSum\n ? previousScalableExpandedSizeSum / previousScalableFractionalSum\n : 10;\n }\n\n private refreshAllPartSizes(): void {\n const refParts = this.parts.filter(\n part =>\n !part.collapsedState() &&\n part.scale === 'auto' &&\n (part.expandedSize() || part.fractionalSize())\n );\n const beforeFrSum = refParts.reduce((a, b) => a + (b.expandedSize() ?? b.fractionalSize()!), 0);\n this.parts.forEach(part => part.refreshSizePx(this.orientation));\n const afterFrSum = refParts.reduce((a, b) => a + b.expandedSize()!, 0);\n const beforeToAfterFactor = afterFrSum / beforeFrSum;\n this.parts\n .filter(\n part =>\n part.collapsedState() && (part.scale === 'auto' || part.expandedSize() === undefined)\n )\n .forEach(part =>\n part.expandedSize.update(prev => (prev ?? part.fractionalSize()!) * beforeToAfterFactor)\n );\n }\n\n protected resizeStart(gutter: Gutter, event: Event): void {\n this.refreshAllPartSizes();\n this.changeDetectorRef.detectChanges();\n const afterPart = gutter.after.nextExpandedAfter();\n let beforeSize = gutter.before.expandedSize()!;\n let afterSize = afterPart.expandedSize()!;\n let appliedDelta = 0;\n const rtl = isRTL();\n const startPosition = this.getPosition(event);\n const minDelta = -1 * (beforeSize - gutter.before.minSize);\n const maxDelta = afterSize - afterPart.minSize;\n const containerSize = this.measureContainerSize();\n event.preventDefault(); // prevents text-selection\n\n this.ngZone.runOutsideAngular(() => {\n merge(fromEvent(this.document, 'mousemove'), fromEvent(this.document, 'touchmove'))\n .pipe(\n takeUntil(\n merge(fromEvent(this.document, 'mouseup'), fromEvent(this.document, 'touchend'))\n )\n )\n .subscribe({\n next: move => {\n let delta = this.getPosition(move) - startPosition;\n if (rtl && this.orientation === 'horizontal') {\n delta *= -1;\n }\n\n delta -= appliedDelta;\n if (maxDelta < appliedDelta + delta) {\n delta = maxDelta - appliedDelta;\n } else if (minDelta > appliedDelta + delta) {\n delta = minDelta - appliedDelta;\n }\n\n if (delta === 0) {\n return;\n }\n\n beforeSize += delta;\n afterSize -= delta;\n appliedDelta += delta;\n gutter.before.expandedSize.set(beforeSize);\n afterPart.expandedSize.set(afterSize);\n if (this.orientation === 'vertical') {\n this.elementRef.nativeElement.style.setProperty(\n 'grid-template-rows',\n this.gridTemplateRows()\n );\n } else {\n this.elementRef.nativeElement.style.setProperty(\n 'grid-template-columns',\n this.gridTemplateColumns()\n );\n }\n this.ngZone.run(() =>\n this.sizesChange.emit(\n this.parts.map(part => (part.actualSize() * 100) / containerSize)\n )\n );\n },\n complete: () => this.saveUIState()\n });\n });\n }\n\n private measureContainerSize(): number {\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n if (this._orientation() === 'vertical') {\n return rect.height;\n } else {\n return rect.width;\n }\n }\n\n private getPosition(event: Event): number {\n const positionObject = (event as TouchEvent).touches?.[0] ?? (event as MouseEvent);\n return this.orientation === 'horizontal'\n ? (positionObject.clientX ?? 0)\n : (positionObject.clientY ?? 0);\n }\n\n private saveUIState(): void {\n if (!this.stateId || !this.uiStateService) {\n return;\n }\n\n const containerSize = this.measureContainerSize();\n const state = this.parts.reduce(\n (partState, part) => {\n if (part.stateId) {\n partState[part.stateId] = {\n size: ((part.expandedSize() ?? 0) * 100) / containerSize,\n initialSize: this.sizes[part.index],\n expanded: part.expanded\n };\n }\n return partState;\n },\n {} as Record<string, SplitPartState>\n );\n\n this.uiStateService.save(this.stateId, state);\n }\n\n private restoreFormUIState(): void {\n if (!this.stateId || !this.uiStateService) {\n return;\n }\n\n this.uiStateService.load<Record<string, SplitPartState>>(this.stateId).then(uiState => {\n if (!uiState) {\n return;\n }\n\n this.parts\n .filter(part => part.stateId)\n .map(part => ({ part, state: uiState[part.stateId!] }))\n .filter(({ part, state }) => this.sizes[part.index] === state?.initialSize)\n .forEach(({ part, state }) => {\n part.expandedSize.set(undefined);\n part.fractionalSize.set(state?.size);\n part.collapsedState.set(!(state?.expanded ?? true));\n });\n setTimeout(() => this.refreshAllPartSizes());\n });\n }\n}\n","<ng-content />\n\n@for (gutter of gutters; track $index) {\n @if ($index < parts.length - 1) {\n <div\n class=\"si-split-gutter\"\n [class.d-none]=\"!gutter.visible()\"\n [style.grid-area]=\"'g-' + $index\"\n [style.width.px]=\"orientation === 'horizontal' ? gutterSize : null\"\n [style.height.px]=\"orientation === 'vertical' ? gutterSize : null\"\n (mousedown)=\"resizeStart(gutter, $event)\"\n (touchstart)=\"resizeStart(gutter, $event)\"\n ></div>\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiSplitPartComponent } from './si-split-part.component';\nimport { SiSplitComponent } from './si-split.component';\n\n@NgModule({\n imports: [SiSplitComponent, SiSplitPartComponent],\n exports: [SiSplitComponent, SiSplitPartComponent]\n})\nexport class SiSplitModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-split.module';\nexport * from './si-split-part.component';\nexport * from './si-split.component';\nexport * from './si-split.interfaces';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"siemens-element-ng-split.mjs","sources":["../../../../projects/element-ng/split/si-split-part.component.ts","../../../../projects/element-ng/split/si-split-part.component.html","../../../../projects/element-ng/split/si-split.component.ts","../../../../projects/element-ng/split/si-split.component.html","../../../../projects/element-ng/split/si-split.module.ts","../../../../projects/element-ng/split/index.ts","../../../../projects/element-ng/split/siemens-element-ng-split.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n Component,\n computed,\n effect,\n ElementRef,\n inject,\n input,\n linkedSignal,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n untracked\n} from '@angular/core';\nimport { elementDoubleRight } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport {\n Action,\n CollapseTo,\n PartState,\n Scale,\n SplitOrientation,\n SplitUnit\n} from './si-split.interfaces';\n\n@Component({\n selector: 'si-split-part',\n imports: [NgTemplateOutlet, SiIconComponent, SiTranslatePipe],\n templateUrl: './si-split-part.component.html',\n styleUrl: './si-split-part.component.scss',\n host: {\n '[class.is-collapsed]': 'collapsedState()',\n '[class.collapse-start]': 'collapseDirectionState() === \"start\"',\n '[style.grid-area]': '\"p-\" + this.index'\n }\n})\nexport class SiSplitPartComponent {\n protected readonly icons = addIcons({ elementDoubleRight });\n /**\n * Action buttons displayed in the split part header.\n *\n * @defaultValue []\n */\n readonly actions = input<Action[]>([]);\n /**\n * Defines which direction the split part collapses to.\n *\n * @defaultValue 'start'\n */\n readonly collapseDirection = input<CollapseTo>('start');\n\n /**\n * Sets the icon class that is used in the buttons of split parts to\n * collapse and uncollapse the parts.\n */\n readonly collapseIconClass = input<string | undefined>();\n\n /**\n * Collapse only to the given min size.\n *\n * @defaultValue false\n */\n readonly collapseToMinSize = input(false, { transform: booleanAttribute });\n\n /**\n * Custom template for the split part header. The template receives the component instance as implicit context.\n */\n readonly headerTemplate = input<TemplateRef<{ $implicit: SiSplitPartComponent }>>();\n\n /**\n * Sets the title of the split part header.\n */\n readonly heading = input<TranslatableString>();\n\n /**\n * Minimum size in px.\n *\n * @defaultValue 0\n */\n readonly minSize = input(0, { transform: numberAttribute });\n\n /**\n * When a split part is collapsed, the content gets hidden but it will\n * still remain within the DOM. If you want to remove and destroy the component\n * in collapsed mode and recreate it on un-collapse, set this property to\n * true.\n *\n * @defaultValue false\n */\n readonly removeContentOnCollapse = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the behavior of the split part during scaling.\n * E.g. when set to `none`, the spit part will keep its current size even when the parent container grows or shrinks.\n *\n * @defaultValue 'auto'\n */\n readonly scale = input<Scale>('auto');\n\n /**\n * Defines if the collapse button of a split part is displayed. Default value is true.\n *\n * @defaultValue true\n */\n readonly showCollapseButton = input(true, { transform: booleanAttribute });\n\n /**\n * Defines if the header of the split part is visible. Default is true.\n *\n * @defaultValue true\n */\n readonly showHeader = input(true, { transform: booleanAttribute });\n /**\n * Aria label for collapse button. Needed for a11y\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_SPLIT.COLLAPSE_LABEL:Collapse`)\n * ```\n */\n readonly collapseLabel = input<TranslatableString>(\n t(() => $localize`:@@SI_SPLIT.COLLAPSE_LABEL:Collapse`)\n );\n /**\n * An optional stateId to uniquely identify a component instance.\n * Required for persistence of ui state.\n */\n readonly stateId = input<string>();\n\n /**\n * Expanded size.\n */\n readonly size = input.required<number, number | string>({ transform: numberAttribute });\n\n /**\n * Unit for the configured {@link size}.\n */\n readonly unit = input.required<SplitUnit>();\n\n /**\n * This toggles the behavior when collapsing this split part.\n * If enabled, all split parts between this one and the end of the split in the respective direction will be collapsed if this part is collapsed.\n * If disabled, only this split part will be collapsed.\n *\n * @defaultValue false\n */\n readonly collapseOthers = input(false, { transform: booleanAttribute });\n\n /**\n * Sets the initial expanded or collapsed state of the split part.\n *\n * @defaultValue true\n */\n readonly expanded = input(true, { transform: booleanAttribute });\n\n readonly collapseChanged = output<boolean>();\n readonly stateChange = output<PartState>();\n\n /** @internal */\n index = 0;\n /** @internal */\n readonly before = signal<SiSplitPartComponent | undefined>(undefined);\n /** @internal */\n readonly after = signal<SiSplitPartComponent | undefined>(undefined);\n\n /** @internal */\n readonly fractionalSize = linkedSignal(() => (this.unit() === 'fr' ? this.size() : undefined));\n\n /** @internal */\n readonly collapsedSize = computed(() => (this.collapseToMinSize() ? (this.minSize() ?? 40) : 40));\n\n /**\n * Internal, mutable collapsed state. Initialized from the {@link expanded} input but can be\n * overwritten while toggling, cascading to sibling parts or restoring the persisted ui state.\n * @internal\n */\n readonly collapsedState = linkedSignal(() => !this.expanded());\n\n /**\n * Internal, mutable collapse direction. Initialized from the {@link collapseDirection}\n * input but can be overwritten while cascading collapse state to sibling parts.\n * @internal\n */\n readonly collapseDirectionState = linkedSignal(() => this.collapseDirection());\n\n /**\n * Get collapsed state.\n * @returns True if the split part is collapsed, false is expanded.\n */\n get collapsed(): boolean {\n return this.collapsedState();\n }\n\n /** @internal */\n readonly expandedSize = linkedSignal({\n source: () => ({ size: this.size(), unit: this.unit() }),\n computation: source => (source.unit === 'fr' ? undefined : source.size)\n });\n\n /** @internal */\n readonly actualSize = computed(() => {\n if (this.collapsedState()) {\n return this.collapsedSize();\n }\n return this.expandedSize() ?? 0;\n });\n\n /** @internal */\n saveUIState!: () => void;\n\n /** @internal */\n readonly nextExpandedAfter = computed(() => {\n if (!this.collapsedState()) {\n return this as SiSplitPartComponent;\n }\n const after = this.after();\n const nextExpanded: SiSplitPartComponent = after ? after.nextExpandedAfter() : this;\n\n return nextExpanded;\n });\n\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n protected headerContext: { $implicit: SiSplitPartComponent } = {\n $implicit: this\n };\n\n constructor() {\n effect(() => {\n this.expanded();\n untracked(() => {\n if (this.collapseOthers()) {\n this.before()?.refreshCollapseToStart();\n this.after()?.refreshCollapsedToEnd();\n }\n });\n });\n }\n\n /** @internal */\n refreshSizePx(orientation: SplitOrientation): void {\n if (!this.collapsedState()) {\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n if (orientation === 'vertical') {\n this.expandedSize.set(rect.height);\n } else {\n this.expandedSize.set(rect.width);\n }\n }\n }\n\n /**\n * Toggles the collapsed or expanded state.\n */\n toggleCollapse(): void {\n this.collapsedState.update(v => !v);\n if (this.collapseOthers()) {\n this.before()?.refreshCollapseToStart();\n this.after()?.refreshCollapsedToEnd();\n }\n this.collapseChanged.emit(this.collapsedState());\n this.stateChange.emit({ expanded: !this.collapsedState(), size: this.actualSize() });\n this.saveUIState();\n }\n\n private refreshCollapsedToEnd(): void {\n const before = this.before();\n if (before?.collapsedState() && before.collapseDirectionState() === 'end') {\n this.collapsedState.set(true);\n this.collapseDirectionState.set('end');\n this.after()?.refreshCollapsedToEnd();\n }\n }\n\n private refreshCollapseToStart(): void {\n const after = this.after();\n if (after?.collapsedState() && after.collapseDirectionState() === 'start') {\n this.collapsedState.set(true);\n this.collapseDirectionState.set('start');\n this.before()?.refreshCollapseToStart();\n }\n }\n}\n","@if (!headerTemplate() && showHeader()) {\n <div class=\"si-split-part-header\" [class.is-collapsed]=\"collapsedState()\">\n <div class=\"si-split-part-title text-truncate\">\n {{ heading() | translate }}\n </div>\n @if (!collapsedState()) {\n <div class=\"si-split-part-actions\">\n @for (action of actions(); track $index) {\n <button\n type=\"button\"\n class=\"si-split-button\"\n [title]=\"action.tooltip || ''\"\n [attr.aria-label]=\"action.tooltip\"\n (click)=\"action.click($event)\"\n >\n <si-icon [icon]=\"action.iconClass\" />\n </button>\n }\n </div>\n }\n @if (showCollapseButton()) {\n <div class=\"si-split-part-collapse-button\">\n <button\n type=\"button\"\n class=\"si-split-button\"\n [attr.aria-label]=\"collapseLabel() | translate\"\n (click)=\"toggleCollapse()\"\n >\n <si-icon class=\"collapse-icon\" [icon]=\"collapseIconClass() ?? icons.elementDoubleRight\" />\n </button>\n </div>\n }\n </div>\n}\n\n@if (headerTemplate(); as headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: headerContext\" />\n}\n\n<div\n class=\"si-split-part-content\"\n [class.d-none]=\"!removeContentOnCollapse() && collapsedState() && !collapseToMinSize()\"\n>\n @if (!removeContentOnCollapse() || !collapsedState()) {\n <ng-content />\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n ChangeDetectorRef,\n Component,\n computed,\n contentChildren,\n ElementRef,\n inject,\n input,\n NgZone,\n signal,\n Signal,\n DOCUMENT,\n DestroyRef,\n output\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport {\n isRTL,\n SI_UI_STATE_SERVICE,\n WebComponentContentChildren\n} from '@siemens/element-ng/common';\nimport { asapScheduler, fromEvent, merge } from 'rxjs';\nimport { observeOn, takeUntil } from 'rxjs/operators';\n\nimport { SiSplitPartComponent } from './si-split-part.component';\nimport { SplitOrientation, SplitUnit } from './si-split.interfaces';\n\ninterface Gutter {\n before: SiSplitPartComponent;\n after: SiSplitPartComponent;\n visible: Signal<boolean>;\n}\n\ninterface SplitPartState {\n size: number;\n initialSize: number;\n initialUnit: SplitUnit;\n expanded: boolean;\n}\n\n@Component({\n selector: 'si-split',\n templateUrl: './si-split.component.html',\n styleUrl: './si-split.component.scss',\n host: {\n '[class]': 'orientation()',\n '[style.grid-template-rows]': 'gridTemplateRows()',\n '[style.grid-template-columns]': 'gridTemplateColumns()',\n '[style.grid-template-areas]': 'gridTemplateAreas()'\n }\n})\nexport class SiSplitComponent {\n /**\n * Size of the gutter (divider) between split parts in pixels.\n *\n * @defaultValue 16\n */\n readonly gutterSize = input(16);\n\n /**\n * Defines the split layout direction.\n *\n * @defaultValue 'horizontal'\n */\n readonly orientation = input<SplitOrientation>('horizontal');\n\n /**\n * An optional stateId to uniquely identify a component instance.\n * Required for persistence of ui state.\n */\n readonly stateId = input<string>();\n\n readonly sizesChange = output<number[]>();\n\n @WebComponentContentChildren(SiSplitPartComponent)\n protected readonly parts = contentChildren(SiSplitPartComponent);\n protected readonly gutters = signal<Gutter[]>([]);\n\n private readonly gridTemplate = computed(() => {\n if (!this.initialized()) {\n return '';\n }\n return this.parts()\n .map(part =>\n part.collapsedState()\n ? part.collapseToMinSize()\n ? `${part.minSize()}px`\n : 'min-content'\n : part.unit() === 'px'\n ? `minmax(${part.minSize()}px, ${part.expandedSize() ?? part.size()}px)`\n : `minmax(${part.minSize()}px, ${\n part.expandedSize() === undefined\n ? part.fractionalSize()! * this.fractionalSizeToExpandedSizeFactor()\n : part.fractionalSize()!\n }fr)`\n )\n .join(' min-content ');\n });\n\n protected readonly gridTemplateRows = computed(() =>\n this.orientation() === 'vertical' ? this.gridTemplate() : '1fr'\n );\n\n protected readonly gridTemplateColumns = computed(() =>\n this.orientation() === 'horizontal' ? this.gridTemplate() : '1fr'\n );\n\n protected readonly gridTemplateAreas = computed(() => {\n if (!this.initialized()) {\n return '';\n }\n const areaNames = this.parts()\n .map((part, index) => [`p-${index}`, part.after() ? `g-${index}` : []])\n .flat(2) as string[];\n\n if (this.orientation() === 'horizontal') {\n return `\"${areaNames.join(' ')}\"`;\n } else {\n return `\"${areaNames.join('\" \"')}\"`;\n }\n });\n\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly ngZone = inject(NgZone);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly document = inject(DOCUMENT);\n private readonly uiStateService = inject(SI_UI_STATE_SERVICE, { optional: true });\n private readonly destroyRef = inject(DestroyRef);\n // Existing fr parts are measured in pixels after layout or dragging, so their fr weights become\n // pixel-derived. A newly added fr part has not been measured yet and still has its configured\n // weight. This factor converts that configured weight into the same scale until it is measured.\n // It is the ratio of measured expanded sizes to configured weights of visible measured fr parts.\n private readonly fractionalSizeToExpandedSizeFactor = computed(() => {\n const measuredParts = this.parts().filter(\n part => !part.collapsedState() && part.unit() === 'fr' && part.expandedSize() !== undefined\n );\n const configuredSizeSum = measuredParts.reduce((sum, part) => sum + part.size(), 0);\n const expandedSizeSum = measuredParts.reduce((sum, part) => sum + part.expandedSize()!, 0);\n\n return configuredSizeSum ? expandedSizeSum / configuredSizeSum : 1;\n });\n private readonly initialized = signal(false);\n\n constructor() {\n toObservable(this.parts)\n .pipe(observeOn(asapScheduler), takeUntilDestroyed())\n .subscribe(() => this.setupParts());\n }\n\n private setupParts(): void {\n this.initialized.set(true);\n const gutters: Gutter[] = [];\n\n const parts = this.parts();\n for (let index = 0; index < parts.length; index++) {\n const component = parts[index];\n component.index = index;\n component.after.set(parts[index + 1]);\n component.before.set(parts[index - 1]);\n component.saveUIState = () => this.saveUIState();\n\n if (component.after()) {\n gutters.push({\n before: component,\n after: parts[index + 1]!,\n visible: computed(() => {\n const afterPart = component.after()!.nextExpandedAfter();\n return !afterPart.collapsedState() && !component.collapsedState();\n })\n });\n }\n }\n this.gutters.set(gutters);\n\n this.restoreFromUIState();\n setTimeout(() => this.refreshAllPartSizes());\n }\n\n private refreshAllPartSizes(): void {\n this.parts().forEach(part => {\n part.refreshSizePx(this.orientation());\n if (!part.collapsedState() && part.unit() === 'fr') {\n part.fractionalSize.set(part.expandedSize()!);\n }\n });\n }\n\n protected resizeStart(gutter: Gutter, event: Event): void {\n this.refreshAllPartSizes();\n this.changeDetectorRef.detectChanges();\n const afterPart = gutter.after.nextExpandedAfter();\n let beforeSize = gutter.before.expandedSize()!;\n let afterSize = afterPart.expandedSize()!;\n let appliedDelta = 0;\n const rtl = isRTL();\n const startPosition = this.getPosition(event);\n const minDelta = -1 * (beforeSize - gutter.before.minSize());\n const maxDelta = afterSize - afterPart.minSize();\n const containerSize = this.measureContainerSize();\n event.preventDefault(); // prevents text-selection\n\n this.ngZone.runOutsideAngular(() => {\n merge(fromEvent(this.document, 'mousemove'), fromEvent(this.document, 'touchmove'))\n .pipe(\n takeUntil(\n merge(fromEvent(this.document, 'mouseup'), fromEvent(this.document, 'touchend'))\n ),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe({\n next: move => {\n let delta = this.getPosition(move) - startPosition;\n if (rtl && this.orientation() === 'horizontal') {\n delta *= -1;\n }\n\n delta -= appliedDelta;\n if (maxDelta < appliedDelta + delta) {\n delta = maxDelta - appliedDelta;\n } else if (minDelta > appliedDelta + delta) {\n delta = minDelta - appliedDelta;\n }\n\n if (delta === 0) {\n return;\n }\n\n beforeSize += delta;\n afterSize -= delta;\n appliedDelta += delta;\n gutter.before.expandedSize.set(beforeSize);\n afterPart.expandedSize.set(afterSize);\n if (gutter.before.unit() === 'fr') {\n gutter.before.fractionalSize.set(beforeSize);\n }\n if (afterPart.unit() === 'fr') {\n afterPart.fractionalSize.set(afterSize);\n }\n if (this.orientation() === 'vertical') {\n this.elementRef.nativeElement.style.setProperty(\n 'grid-template-rows',\n this.gridTemplateRows()\n );\n } else {\n this.elementRef.nativeElement.style.setProperty(\n 'grid-template-columns',\n this.gridTemplateColumns()\n );\n }\n this.ngZone.run(() =>\n this.sizesChange.emit(\n this.parts().map(part => (part.actualSize() * 100) / containerSize)\n )\n );\n },\n complete: () => this.saveUIState()\n });\n });\n }\n\n private measureContainerSize(): number {\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n if (this.orientation() === 'vertical') {\n return rect.height;\n } else {\n return rect.width;\n }\n }\n\n private getPosition(event: Event): number {\n const positionObject = (event as TouchEvent).touches?.[0] ?? (event as MouseEvent);\n return this.orientation() === 'horizontal'\n ? (positionObject.clientX ?? 0)\n : (positionObject.clientY ?? 0);\n }\n\n private saveUIState(): void {\n const stateId = this.stateId();\n if (!stateId || !this.uiStateService) {\n return;\n }\n\n const state = this.parts().reduce(\n (partState, part) => {\n const partStateId = part.stateId();\n if (partStateId) {\n const unit = part.unit();\n partState[partStateId] = {\n size: unit === 'px' ? part.expandedSize()! : part.fractionalSize()!,\n initialSize: part.size(),\n initialUnit: unit,\n expanded: !part.collapsedState()\n };\n }\n return partState;\n },\n {} as Record<string, SplitPartState>\n );\n\n this.uiStateService.save(stateId, state);\n }\n\n private restoreFromUIState(): void {\n const stateId = this.stateId();\n if (!stateId || !this.uiStateService) {\n return;\n }\n\n this.uiStateService.load<Record<string, SplitPartState>>(stateId).then(uiState => {\n if (!uiState) {\n return;\n }\n\n this.parts()\n .filter(part => part.stateId())\n .map(part => ({ part, state: uiState[part.stateId()!] }))\n .filter(\n (item): item is { part: SiSplitPartComponent; state: SplitPartState } =>\n !!item.state &&\n item.state.initialSize === item.part.size() &&\n item.state.initialUnit === item.part.unit()\n )\n .forEach(({ part, state }) => {\n if (part.unit() === 'px') {\n part.expandedSize.set(state.size);\n } else {\n part.fractionalSize.set(state.size);\n }\n part.collapsedState.set(!state.expanded);\n });\n setTimeout(() => this.refreshAllPartSizes());\n });\n }\n}\n","<ng-content />\n\n@for (gutter of gutters(); track $index) {\n @if ($index < parts().length - 1) {\n <div\n class=\"si-split-gutter\"\n [class.d-none]=\"!gutter.visible()\"\n [style.grid-area]=\"'g-' + $index\"\n [style.width.px]=\"orientation() === 'horizontal' ? gutterSize() : null\"\n [style.height.px]=\"orientation() === 'vertical' ? gutterSize() : null\"\n (mousedown)=\"resizeStart(gutter, $event)\"\n (touchstart)=\"resizeStart(gutter, $event)\"\n ></div>\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiSplitPartComponent } from './si-split-part.component';\nimport { SiSplitComponent } from './si-split.component';\n\n@NgModule({\n imports: [SiSplitComponent, SiSplitPartComponent],\n exports: [SiSplitComponent, SiSplitPartComponent]\n})\nexport class SiSplitModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-split.module';\nexport * from './si-split-part.component';\nexport * from './si-split.component';\nexport * from './si-split.interfaces';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -15,26 +15,34 @@ import { first } from 'rxjs/operators';
15
15
  */
16
16
  class SiStatusBarItemComponent {
17
17
  statusIcons = inject(STATUS_ICON_CONFIG);
18
- status = input(...(ngDevMode ? [undefined, { debugName: "status" }] : []));
19
- value = input.required(...(ngDevMode ? [{ debugName: "value" }] : []));
20
- heading = input.required(...(ngDevMode ? [{ debugName: "heading" }] : []));
21
- color = input(...(ngDevMode ? [undefined, { debugName: "color" }] : []));
18
+ status = input(/* @ts-ignore */
19
+ ...(ngDevMode ? [undefined, { debugName: "status" }] : /* istanbul ignore next */ []));
20
+ value = input.required(/* @ts-ignore */
21
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
22
+ heading = input.required(/* @ts-ignore */
23
+ ...(ngDevMode ? [{ debugName: "heading" }] : /* istanbul ignore next */ []));
24
+ color = input(/* @ts-ignore */
25
+ ...(ngDevMode ? [undefined, { debugName: "color" }] : /* istanbul ignore next */ []));
22
26
  /** @defaultValue false */
23
- blink = input(false, { ...(ngDevMode ? { debugName: "blink" } : {}), transform: booleanAttribute });
27
+ blink = input(false, { ...(ngDevMode ? { debugName: "blink" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
24
28
  /** @defaultValue false */
25
- valueOnly = input(false, { ...(ngDevMode ? { debugName: "valueOnly" } : {}), transform: booleanAttribute });
29
+ valueOnly = input(false, { ...(ngDevMode ? { debugName: "valueOnly" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
26
30
  /** @defaultValue false */
27
- clickable = input(false, { ...(ngDevMode ? { debugName: "clickable" } : {}), transform: booleanAttribute });
31
+ clickable = input(false, { ...(ngDevMode ? { debugName: "clickable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
28
32
  significanceChange = output();
29
- bg = viewChild.required('bg');
33
+ bg = viewChild.required('bg', /* @ts-ignore */
34
+ ...(ngDevMode ? [{ debugName: "bg" }] : /* istanbul ignore next */ []));
30
35
  contrastFix = computed(() => {
31
36
  return !!this.color() && this.blink() && this.calculateContrastFix();
32
- }, ...(ngDevMode ? [{ debugName: "contrastFix" }] : []));
37
+ }, /* @ts-ignore */
38
+ ...(ngDevMode ? [{ debugName: "contrastFix" }] : /* istanbul ignore next */ []));
33
39
  statusIcon = computed(() => {
34
40
  const status = this.status();
35
41
  return status ? this.statusIcons[status] : undefined;
36
- }, ...(ngDevMode ? [{ debugName: "statusIcon" }] : []));
37
- background = computed(() => this.blink() && this.status() !== 'success' ? (this.statusIcon()?.background ?? '') : '', ...(ngDevMode ? [{ debugName: "background" }] : []));
42
+ }, /* @ts-ignore */
43
+ ...(ngDevMode ? [{ debugName: "statusIcon" }] : /* istanbul ignore next */ []));
44
+ background = computed(() => this.blink() && this.status() !== 'success' ? (this.statusIcon()?.background ?? '') : '', /* @ts-ignore */
45
+ ...(ngDevMode ? [{ debugName: "background" }] : /* istanbul ignore next */ []));
38
46
  ngOnChanges(changes) {
39
47
  if (changes.value) {
40
48
  if ((changes.value.previousValue && !changes.value.currentValue) ||
@@ -50,12 +58,12 @@ class SiStatusBarItemComponent {
50
58
  ?.map(v => +v);
51
59
  return !!rgb && Math.round((rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000) <= 128;
52
60
  }
53
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiStatusBarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
54
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiStatusBarItemComponent, isStandalone: true, selector: "si-status-bar-item", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: true, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, blink: { classPropertyName: "blink", publicName: "blink", isSignal: true, isRequired: false, transformFunction: null }, valueOnly: { classPropertyName: "valueOnly", publicName: "valueOnly", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { significanceChange: "significanceChange" }, host: { properties: { "class.clickable": "clickable()" } }, viewQueries: [{ propertyName: "bg", first: true, predicate: ["bg"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"status-item rounded-2 focus-inside d-flex align-items-center\"\n [class.text-muted]=\"!value()\"\n [class.blink]=\"blink() && value()\"\n [attr.tabindex]=\"clickable() ? '0' : ''\"\n [attr.aria-disabled]=\"!value()\"\n>\n <div\n #bg\n role=\"none\"\n class=\"bg focus-sub-inside\"\n [class]=\"background()\"\n [class.custom-color]=\"color()\"\n [class.contrast-fix]=\"contrastFix()\"\n [class.d-none]=\"!value()\"\n [style.background-color]=\"blink() && color() ? color() : null\"\n ></div>\n @let icon = statusIcon();\n @if (!icon) {\n <div\n class=\"color-bar me-3 mt-1 mb-1\"\n [style.background-color]=\"value() && color() ? color() : null\"\n ></div>\n } @else {\n <span class=\"indicator icon me-4 icon-stack\">\n <si-icon [class]=\"value() ? icon.color : 'indicator-disabled'\" [icon]=\"icon.icon\" />\n <si-icon [class]=\"value() ? icon.stackedColor : 'text-inverse'\" [icon]=\"icon.stacked\" />\n </span>\n }\n <div class=\"overflow-hidden status-item-content\">\n @if (value() !== undefined) {\n <div class=\"item-value si-h5 text-truncate\">{{ value().toString() | translate }}</div>\n }\n @if (!valueOnly()) {\n <div class=\"item-title text-truncate\">{{ heading() | translate }}</div>\n }\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";:host{position:relative;padding-inline-end:4px}:host.compact .status-item{padding-block:2px}:host.clickable:hover .status-item{background-color:var(--element-base-0)!important}:host.clickable:hover .bg{display:none!important}:host ::ng-deep .indicator-disabled{color:var(--element-ui-3)}.status-item{position:relative;isolation:isolate;padding-block:8px;padding-inline:4px 8px;min-inline-size:var(--__si-status-bar-item-min-width, 7.1429em);color:var(--element-text-primary);white-space:nowrap}.status-item>*{pointer-events:none}.status-item-content{display:flex;flex-direction:column;justify-content:center;block-size:2lh}.bg{position:absolute;inset:0;z-index:-1;border-radius:var(--element-radius-2);pointer-events:none}.bg.custom-color{opacity:.5}.bg.custom-color.contrast-fix{opacity:.25}.item-title,.item-value{position:relative}.item-title:before,.item-value:before{content:\"\\200b\"}.color-bar{align-self:stretch;min-inline-size:4px;border-radius:2px;background:var(--element-ui-4)}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Default });
61
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiStatusBarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
62
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: SiStatusBarItemComponent, isStandalone: true, selector: "si-status-bar-item", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: true, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, blink: { classPropertyName: "blink", publicName: "blink", isSignal: true, isRequired: false, transformFunction: null }, valueOnly: { classPropertyName: "valueOnly", publicName: "valueOnly", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { significanceChange: "significanceChange" }, host: { properties: { "class.clickable": "clickable()" } }, viewQueries: [{ propertyName: "bg", first: true, predicate: ["bg"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"status-item rounded-2 focus-inside d-flex align-items-center\"\n [class.text-muted]=\"!value()\"\n [class.blink]=\"blink() && value()\"\n [attr.tabindex]=\"clickable() ? '0' : ''\"\n [attr.aria-disabled]=\"!value()\"\n>\n <div\n #bg\n role=\"none\"\n class=\"bg focus-sub-inside\"\n [class]=\"background()\"\n [class.custom-color]=\"color()\"\n [class.contrast-fix]=\"contrastFix()\"\n [class.d-none]=\"!value()\"\n [style.background-color]=\"blink() && color() ? color() : null\"\n ></div>\n @let icon = statusIcon();\n @if (!icon) {\n <div\n class=\"color-bar me-3 mt-1 mb-1\"\n [style.background-color]=\"value() && color() ? color() : null\"\n ></div>\n } @else {\n <span class=\"indicator icon me-4 icon-stack\">\n <si-icon [class]=\"value() ? icon.color : 'indicator-disabled'\" [icon]=\"icon.icon\" />\n <si-icon [class]=\"value() ? icon.stackedColor : 'text-inverse'\" [icon]=\"icon.stacked\" />\n </span>\n }\n <div class=\"overflow-hidden status-item-content\">\n @if (value() !== undefined) {\n <div class=\"item-value si-h5 text-truncate\">{{ value().toString() | translate }}</div>\n }\n @if (!valueOnly()) {\n <div class=\"item-title text-truncate\">{{ heading() | translate }}</div>\n }\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";:host{position:relative;padding-inline-end:4px}:host.compact .status-item{padding-block:2px}:host.clickable:hover .status-item{background-color:var(--element-base-0)!important}:host.clickable:hover .bg{display:none!important}:host ::ng-deep .indicator-disabled{color:var(--element-ui-3)}.status-item{position:relative;isolation:isolate;padding-block:8px;padding-inline:4px 8px;min-inline-size:var(--__si-status-bar-item-min-width, 7.1429em);color:var(--element-text-primary);white-space:nowrap}.status-item>*{pointer-events:none}.status-item-content{display:flex;flex-direction:column;justify-content:center;block-size:2lh}.bg{position:absolute;inset:0;z-index:-1;border-radius:var(--element-radius-2);pointer-events:none}.bg.custom-color{opacity:.5}.bg.custom-color.contrast-fix{opacity:.25}.item-title,.item-value{position:relative}.item-title:before,.item-value:before{content:\"\\200b\"}.color-bar{align-self:stretch;min-inline-size:4px;border-radius:2px;background:var(--element-ui-4)}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager });
55
63
  }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiStatusBarItemComponent, decorators: [{
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiStatusBarItemComponent, decorators: [{
57
65
  type: Component,
58
- args: [{ selector: 'si-status-bar-item', imports: [SiIconComponent, SiTranslatePipe], changeDetection: ChangeDetectionStrategy.Default, host: {
66
+ args: [{ selector: 'si-status-bar-item', imports: [SiIconComponent, SiTranslatePipe], changeDetection: ChangeDetectionStrategy.Eager, host: {
59
67
  '[class.clickable]': 'clickable()'
60
68
  }, template: "<div\n class=\"status-item rounded-2 focus-inside d-flex align-items-center\"\n [class.text-muted]=\"!value()\"\n [class.blink]=\"blink() && value()\"\n [attr.tabindex]=\"clickable() ? '0' : ''\"\n [attr.aria-disabled]=\"!value()\"\n>\n <div\n #bg\n role=\"none\"\n class=\"bg focus-sub-inside\"\n [class]=\"background()\"\n [class.custom-color]=\"color()\"\n [class.contrast-fix]=\"contrastFix()\"\n [class.d-none]=\"!value()\"\n [style.background-color]=\"blink() && color() ? color() : null\"\n ></div>\n @let icon = statusIcon();\n @if (!icon) {\n <div\n class=\"color-bar me-3 mt-1 mb-1\"\n [style.background-color]=\"value() && color() ? color() : null\"\n ></div>\n } @else {\n <span class=\"indicator icon me-4 icon-stack\">\n <si-icon [class]=\"value() ? icon.color : 'indicator-disabled'\" [icon]=\"icon.icon\" />\n <si-icon [class]=\"value() ? icon.stackedColor : 'text-inverse'\" [icon]=\"icon.stacked\" />\n </span>\n }\n <div class=\"overflow-hidden status-item-content\">\n @if (value() !== undefined) {\n <div class=\"item-value si-h5 text-truncate\">{{ value().toString() | translate }}</div>\n }\n @if (!valueOnly()) {\n <div class=\"item-title text-truncate\">{{ heading() | translate }}</div>\n }\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";:host{position:relative;padding-inline-end:4px}:host.compact .status-item{padding-block:2px}:host.clickable:hover .status-item{background-color:var(--element-base-0)!important}:host.clickable:hover .bg{display:none!important}:host ::ng-deep .indicator-disabled{color:var(--element-ui-3)}.status-item{position:relative;isolation:isolate;padding-block:8px;padding-inline:4px 8px;min-inline-size:var(--__si-status-bar-item-min-width, 7.1429em);color:var(--element-text-primary);white-space:nowrap}.status-item>*{pointer-events:none}.status-item-content{display:flex;flex-direction:column;justify-content:center;block-size:2lh}.bg{position:absolute;inset:0;z-index:-1;border-radius:var(--element-radius-2);pointer-events:none}.bg.custom-color{opacity:.5}.bg.custom-color.contrast-fix{opacity:.25}.item-title,.item-value{position:relative}.item-title:before,.item-value:before{content:\"\\200b\"}.color-bar{align-self:stretch;min-inline-size:4px;border-radius:2px;background:var(--element-ui-4)}\n"] }]
61
69
  }], propDecorators: { status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: true }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], blink: [{ type: i0.Input, args: [{ isSignal: true, alias: "blink", required: false }] }], valueOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueOnly", required: false }] }], clickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickable", required: false }] }], significanceChange: [{ type: i0.Output, args: ["significanceChange"] }], bg: [{ type: i0.ViewChild, args: ['bg', { isSignal: true }] }] } });
@@ -88,17 +96,19 @@ class SiStatusBarComponent {
88
96
  /**
89
97
  * Array of status bar items.
90
98
  */
91
- items = input.required(...(ngDevMode ? [{ debugName: "items" }] : []));
99
+ items = input.required(/* @ts-ignore */
100
+ ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
92
101
  /**
93
102
  * When true, items with a value have a blinking background
94
103
  *
95
104
  * @defaultValue false
96
105
  */
97
- blink = input(false, { ...(ngDevMode ? { debugName: "blink" } : {}), transform: booleanAttribute });
106
+ blink = input(false, { ...(ngDevMode ? { debugName: "blink" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
98
107
  /**
99
108
  * State of the mute button. Set to `undefined` for no button.
100
109
  */
101
- muteButton = input(...(ngDevMode ? [undefined, { debugName: "muteButton" }] : []));
110
+ muteButton = input(/* @ts-ignore */
111
+ ...(ngDevMode ? [undefined, { debugName: "muteButton" }] : /* istanbul ignore next */ []));
102
112
  /**
103
113
  * Text/translation key on mute button for screen reader
104
114
  *
@@ -107,7 +117,8 @@ class SiStatusBarComponent {
107
117
  * t(() => $localize`:@@SI_STATUS_BAR.MUTE:Mute/unmute`)
108
118
  * ```
109
119
  */
110
- muteButtonText = input(t(() => $localize `:@@SI_STATUS_BAR.MUTE:Mute/unmute`), ...(ngDevMode ? [{ debugName: "muteButtonText" }] : []));
120
+ muteButtonText = input(t(() => $localize `:@@SI_STATUS_BAR.MUTE:Mute/unmute`), /* @ts-ignore */
121
+ ...(ngDevMode ? [{ debugName: "muteButtonText" }] : /* istanbul ignore next */ []));
111
122
  /**
112
123
  * Text/translation key for "All OK" status in mobile
113
124
  *
@@ -116,48 +127,51 @@ class SiStatusBarComponent {
116
127
  * t(() => $localize`:@@SI_STATUS_BAR.ALL_OK:All OK`)
117
128
  * ```
118
129
  */
119
- allOkText = input(t(() => $localize `:@@SI_STATUS_BAR.ALL_OK:All OK`), ...(ngDevMode ? [{ debugName: "allOkText" }] : []));
130
+ allOkText = input(t(() => $localize `:@@SI_STATUS_BAR.ALL_OK:All OK`), /* @ts-ignore */
131
+ ...(ngDevMode ? [{ debugName: "allOkText" }] : /* istanbul ignore next */ []));
120
132
  /**
121
133
  * compact mode
122
134
  *
123
135
  * @defaultValue false
124
136
  */
125
- compact = input(false, { ...(ngDevMode ? { debugName: "compact" } : {}), transform: booleanAttribute });
137
+ compact = input(false, { ...(ngDevMode ? { debugName: "compact" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
126
138
  /**
127
139
  * blink pulse generator for synchronized blinking with other components
128
140
  */
129
- blinkPulse = input(...(ngDevMode ? [undefined, { debugName: "blinkPulse" }] : []));
141
+ blinkPulse = input(/* @ts-ignore */
142
+ ...(ngDevMode ? [undefined, { debugName: "blinkPulse" }] : /* istanbul ignore next */ []));
130
143
  /**
131
- * Text for the navbar expand button. Required for a11y
144
+ * Text for the toggle button that expands/collapses the status bar. Required for a11y.
145
+ * The expanded/collapsed state is communicated separately via `aria-expanded`.
132
146
  *
133
147
  * @defaultValue
134
148
  * ```
135
- * t(() => $localize`:@@SI_STATUS_BAR.EXPAND:Expand`)
149
+ * t(() => $localize`:@@SI_STATUS_BAR.TOGGLE:Toggle`)
136
150
  * ```
137
151
  */
138
- expandButtonText = input(t(() => $localize `:@@SI_STATUS_BAR.EXPAND:Expand`), ...(ngDevMode ? [{ debugName: "expandButtonText" }] : []));
139
- /**
140
- * Text for the navbar collapse button. Required for a11y
141
- *
142
- * @defaultValue
143
- * ```
144
- * t(() => $localize`:@@SI_STATUS_BAR.COLLAPSE:Collapse`)
145
- * ```
146
- */
147
- collapseButtonText = input(t(() => $localize `:@@SI_STATUS_BAR.COLLAPSE:Collapse`), ...(ngDevMode ? [{ debugName: "collapseButtonText" }] : []));
152
+ toggleButtonText = input(t(() => $localize `:@@SI_STATUS_BAR.TOGGLE:Toggle`), /* @ts-ignore */
153
+ ...(ngDevMode ? [{ debugName: "toggleButtonText" }] : /* istanbul ignore next */ []));
148
154
  /**
149
155
  * Emitted when the mute toggle button is clicked
150
156
  */
151
157
  muteToggle = output();
152
- theBar = viewChild.required('thebar');
153
- content = viewChild.required('content');
154
- custom = viewChild.required('custom');
155
- responsiveItems = signal([], ...(ngDevMode ? [{ debugName: "responsiveItems" }] : []));
158
+ theBar = viewChild.required('thebar', /* @ts-ignore */
159
+ ...(ngDevMode ? [{ debugName: "theBar" }] : /* istanbul ignore next */ []));
160
+ content = viewChild.required('content', /* @ts-ignore */
161
+ ...(ngDevMode ? [{ debugName: "content" }] : /* istanbul ignore next */ []));
162
+ custom = viewChild.required('custom', /* @ts-ignore */
163
+ ...(ngDevMode ? [{ debugName: "custom" }] : /* istanbul ignore next */ []));
164
+ responsiveItems = signal([], /* @ts-ignore */
165
+ ...(ngDevMode ? [{ debugName: "responsiveItems" }] : /* istanbul ignore next */ []));
156
166
  responsiveMode = 0;
157
- expanded = signal(0, ...(ngDevMode ? [{ debugName: "expanded" }] : []));
158
- placeholderHeight = signal(0, ...(ngDevMode ? [{ debugName: "placeholderHeight" }] : []));
159
- contentHeight = signal(undefined, ...(ngDevMode ? [{ debugName: "contentHeight" }] : []));
160
- blinkOnOff = signal(undefined, ...(ngDevMode ? [{ debugName: "blinkOnOff" }] : []));
167
+ expanded = signal(0, /* @ts-ignore */
168
+ ...(ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []));
169
+ placeholderHeight = signal(0, /* @ts-ignore */
170
+ ...(ngDevMode ? [{ debugName: "placeholderHeight" }] : /* istanbul ignore next */ []));
171
+ contentHeight = signal(undefined, /* @ts-ignore */
172
+ ...(ngDevMode ? [{ debugName: "contentHeight" }] : /* istanbul ignore next */ []));
173
+ blinkOnOff = signal(undefined, /* @ts-ignore */
174
+ ...(ngDevMode ? [{ debugName: "blinkOnOff" }] : /* istanbul ignore next */ []));
161
175
  icons = addIcons({ elementDown2, elementSoundMute, elementSoundOn });
162
176
  statusId = `__si-status-bar-${idCounter++}`;
163
177
  timer;
@@ -336,10 +350,10 @@ class SiStatusBarComponent {
336
350
  : SiStatusBarComponent.itemIconWidthEm * fontSize + SiStatusBarComponent.itemIconMargin;
337
351
  return textWidth + SiStatusBarComponent.itemPadding + indicatorWidth;
338
352
  }
339
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiStatusBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
340
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiStatusBarComponent, isStandalone: true, selector: "si-status-bar", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, blink: { classPropertyName: "blink", publicName: "blink", isSignal: true, isRequired: false, transformFunction: null }, muteButton: { classPropertyName: "muteButton", publicName: "muteButton", isSignal: true, isRequired: false, transformFunction: null }, muteButtonText: { classPropertyName: "muteButtonText", publicName: "muteButtonText", isSignal: true, isRequired: false, transformFunction: null }, allOkText: { classPropertyName: "allOkText", publicName: "allOkText", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, blinkPulse: { classPropertyName: "blinkPulse", publicName: "blinkPulse", isSignal: true, isRequired: false, transformFunction: null }, expandButtonText: { classPropertyName: "expandButtonText", publicName: "expandButtonText", isSignal: true, isRequired: false, transformFunction: null }, collapseButtonText: { classPropertyName: "collapseButtonText", publicName: "collapseButtonText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { muteToggle: "muteToggle" }, viewQueries: [{ propertyName: "theBar", first: true, predicate: ["thebar"], descendants: true, isSignal: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, isSignal: true }, { propertyName: "custom", first: true, predicate: ["custom"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"expand-placeholder\"\n [class.expanded]=\"expanded()\"\n [style.height.px]=\"placeholderHeight()\"\n></div>\n<div\n #thebar\n aria-busy=\"true\"\n [class]=\"responsiveMode ? `responsive-${responsiveMode}` : ''\"\n [class.responsive]=\"responsiveMode\"\n [class.expanded]=\"expanded()\"\n [class.compact]=\"responsiveMode || compact()\"\n [class.pulse-off]=\"blinkOnOff() === false\"\n [class.pulse-on]=\"blinkOnOff()\"\n>\n <div\n class=\"status-bar-wrapper rounded-2\"\n [class.elevation-2]=\"expanded()\"\n [class.pe-2]=\"muteButton() !== undefined\"\n >\n @if (responsiveMode) {\n <div class=\"align-items-center overflow-hidden\">\n <div class=\"d-flex flex-fill position-relative\">\n @let items = responsiveItems();\n @let responsiveCols = items.length < responsiveMode ? items.length : responsiveMode;\n @for (item of responsiveItems(); track $index) {\n <si-status-bar-item\n class=\"bar-item compact\"\n [value]=\"item.value\"\n [heading]=\"item.title\"\n [status]=\"item.status\"\n [color]=\"item.color\"\n [blink]=\"item.blink !== false && blink() && !expanded()\"\n [clickable]=\"!!item.action\"\n [class.mute-padding]=\"item.mutePadding && muteButton() !== undefined\"\n [style.flex-basis.%]=\"100 / responsiveCols\"\n [valueOnly]=\"item.isSpecial\"\n (click)=\"onItemClicked(item)\"\n (keydown.enter)=\"onItemClicked(item)\"\n />\n }\n </div>\n @if (muteButton() !== undefined) {\n <div class=\"mobile-mute\">\n <ng-container *ngTemplateOutlet=\"muteButtonTemplate\" />\n </div>\n }\n </div>\n }\n <div\n #content\n class=\"main-content align-items-center overflow-hidden\"\n [style.max-height.px]=\"contentHeight()\"\n >\n @if (responsiveMode) {\n <div class=\"mobile-spacer\"></div>\n }\n <div\n class=\"d-flex flex-fill position-relative\"\n [id]=\"statusId\"\n [class.d-none]=\"responsiveMode && !expanded()\"\n [class.flex-wrap]=\"responsiveMode\"\n >\n @for (item of items(); track $index) {\n <si-status-bar-item\n class=\"bar-item\"\n [class.compact]=\"responsiveMode || compact()\"\n [value]=\"item.value\"\n [heading]=\"item.title\"\n [status]=\"item.status\"\n [color]=\"item.color\"\n [blink]=\"item.blink !== false && blink()\"\n [clickable]=\"!!item.action\"\n [style.flex-basis.%]=\"responsiveMode ? 100 / responsiveMode : null\"\n (significanceChange)=\"significanceChanged()\"\n (click)=\"onItemClicked(item)\"\n (keydown.enter)=\"onItemClicked(item)\"\n />\n }\n </div>\n <div class=\"custom-content bar-item d-flex\">\n <div #custom [class.pb-2]=\"responsiveMode && expanded\" (siResizeObserver)=\"resizeHandler()\">\n <ng-content />\n </div>\n </div>\n @if (muteButton() !== undefined && !responsiveMode) {\n <ng-container *ngTemplateOutlet=\"muteButtonTemplate\" />\n }\n </div>\n </div>\n @if (responsiveMode) {\n <div class=\"d-flex align-items-center justify-content-center\">\n <button\n type=\"button\"\n class=\"collapse-expand text-center p-0 focus-force\"\n [attr.aria-label]=\"(expanded() ? collapseButtonText() : expandButtonText()) | translate\"\n [attr.aria-expanded]=\"!!expanded()\"\n [attr.aria-controls]=\"statusId\"\n [class.expanded]=\"expanded() === 2\"\n (click)=\"toggleExpand()\"\n >\n <si-icon class=\"icon\" [icon]=\"icons.elementDown2\" />\n </button>\n </div>\n }\n</div>\n\n<ng-template #muteButtonTemplate>\n <button\n type=\"button\"\n class=\"bar-item mute-button btn btn-icon btn-tertiary ms-5\"\n [attr.aria-label]=\"muteButtonText() | translate\"\n (click)=\"muteToggle.emit()\"\n >\n <si-icon class=\"icon\" [icon]=\"muteButton() ? icons.elementSoundOn : icons.elementSoundMute\" />\n </button>\n</ng-template>\n", styles: [":host{display:block;position:relative}:host ::ng-deep .blink{transition:color calc(.5s * var(--element-animations-enabled, 1))}:host ::ng-deep .bg{transition:opacity calc(.5s * var(--element-animations-enabled, 1))}.pulse-off ::ng-deep .bg{opacity:.1!important}.status-bar-wrapper{padding-inline:8px;background-color:var(--element-base-1)}.status-bar-wrapper>*{display:flex}.mobile-spacer{margin-block:4px;margin-inline:0;background:var(--element-base-0);block-size:1px}.bar-item{margin-block:8px}.custom-content{margin-inline-start:auto}.clickable{cursor:pointer}.mute-padding{padding-inline-end:calc(1lh + 30px)}.mobile-mute{position:absolute;inset-inline-end:8px}.main-content .mute-button{margin-inline-end:4px}.collapse-expand{background-color:var(--element-base-1);border:0;border-end-start-radius:2rem;border-end-end-radius:2rem;inline-size:calc(1.5rem + 16px);color:var(--element-ui-0);cursor:pointer}.collapse-expand.expanded{box-shadow:0 8px 8px var(--element-box-shadow-color-2)}.collapse-expand.expanded si-icon{transform:rotate(180deg)}.collapse-expand si-icon{margin-block-start:0;transition:transform calc(.4s * var(--element-animations-enabled, 1))}.compact .bar-item{margin-block:2px}.responsive si-status-bar-item{--__si-status-bar-item-min-width: 0;overflow:hidden;flex-shrink:1}.responsive.expanded{position:absolute;inset-block-start:0;inset-inline:0;z-index:1028}.responsive .status-bar-wrapper>.main-content{display:block;transition:max-block-size calc(.5s * var(--element-animations-enabled, 1))}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "component", type: SiStatusBarItemComponent, selector: "si-status-bar-item", inputs: ["status", "value", "heading", "color", "blink", "valueOnly", "clickable"], outputs: ["significanceChange"] }, { kind: "directive", type: SiResizeObserverDirective, selector: "[siResizeObserver]", inputs: ["resizeThrottle", "emitInitial"], outputs: ["siResizeObserver"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
353
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiStatusBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
354
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: SiStatusBarComponent, isStandalone: true, selector: "si-status-bar", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, blink: { classPropertyName: "blink", publicName: "blink", isSignal: true, isRequired: false, transformFunction: null }, muteButton: { classPropertyName: "muteButton", publicName: "muteButton", isSignal: true, isRequired: false, transformFunction: null }, muteButtonText: { classPropertyName: "muteButtonText", publicName: "muteButtonText", isSignal: true, isRequired: false, transformFunction: null }, allOkText: { classPropertyName: "allOkText", publicName: "allOkText", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, blinkPulse: { classPropertyName: "blinkPulse", publicName: "blinkPulse", isSignal: true, isRequired: false, transformFunction: null }, toggleButtonText: { classPropertyName: "toggleButtonText", publicName: "toggleButtonText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { muteToggle: "muteToggle" }, viewQueries: [{ propertyName: "theBar", first: true, predicate: ["thebar"], descendants: true, isSignal: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, isSignal: true }, { propertyName: "custom", first: true, predicate: ["custom"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"expand-placeholder\"\n [class.expanded]=\"expanded()\"\n [style.height.px]=\"placeholderHeight()\"\n></div>\n<div\n #thebar\n aria-busy=\"true\"\n [class]=\"responsiveMode ? `responsive-${responsiveMode}` : ''\"\n [class.responsive]=\"responsiveMode\"\n [class.expanded]=\"expanded()\"\n [class.compact]=\"responsiveMode || compact()\"\n [class.pulse-off]=\"blinkOnOff() === false\"\n [class.pulse-on]=\"blinkOnOff()\"\n>\n <div\n class=\"status-bar-wrapper rounded-2\"\n [class.elevation-2]=\"expanded()\"\n [class.pe-2]=\"muteButton() !== undefined\"\n >\n @if (responsiveMode) {\n <div class=\"align-items-center overflow-hidden\">\n <div class=\"d-flex flex-fill position-relative\">\n @let items = responsiveItems();\n @let responsiveCols = items.length < responsiveMode ? items.length : responsiveMode;\n @for (item of responsiveItems(); track $index) {\n <si-status-bar-item\n class=\"bar-item compact\"\n [value]=\"item.value\"\n [heading]=\"item.title\"\n [status]=\"item.status\"\n [color]=\"item.color\"\n [blink]=\"item.blink !== false && blink() && !expanded()\"\n [clickable]=\"!!item.action\"\n [class.mute-padding]=\"item.mutePadding && muteButton() !== undefined\"\n [style.flex-basis.%]=\"100 / responsiveCols\"\n [valueOnly]=\"item.isSpecial\"\n (click)=\"onItemClicked(item)\"\n (keydown.enter)=\"onItemClicked(item)\"\n />\n }\n </div>\n @if (muteButton() !== undefined) {\n <div class=\"mobile-mute\">\n <ng-container *ngTemplateOutlet=\"muteButtonTemplate\" />\n </div>\n }\n </div>\n }\n <div\n #content\n class=\"main-content align-items-center overflow-hidden\"\n [style.max-height.px]=\"contentHeight()\"\n >\n @if (responsiveMode) {\n <div class=\"mobile-spacer\"></div>\n }\n <div\n class=\"d-flex flex-fill position-relative\"\n [id]=\"statusId\"\n [class.d-none]=\"responsiveMode && !expanded()\"\n [class.flex-wrap]=\"responsiveMode\"\n >\n @for (item of items(); track $index) {\n <si-status-bar-item\n class=\"bar-item\"\n [class.compact]=\"responsiveMode || compact()\"\n [value]=\"item.value\"\n [heading]=\"item.title\"\n [status]=\"item.status\"\n [color]=\"item.color\"\n [blink]=\"item.blink !== false && blink()\"\n [clickable]=\"!!item.action\"\n [style.flex-basis.%]=\"responsiveMode ? 100 / responsiveMode : null\"\n (significanceChange)=\"significanceChanged()\"\n (click)=\"onItemClicked(item)\"\n (keydown.enter)=\"onItemClicked(item)\"\n />\n }\n </div>\n <div class=\"custom-content bar-item d-flex\">\n <div #custom [class.pb-2]=\"responsiveMode && expanded\" (siResizeObserver)=\"resizeHandler()\">\n <ng-content />\n </div>\n </div>\n @if (muteButton() !== undefined && !responsiveMode) {\n <ng-container *ngTemplateOutlet=\"muteButtonTemplate\" />\n }\n </div>\n </div>\n @if (responsiveMode) {\n <div class=\"d-flex align-items-center justify-content-center\">\n <button\n type=\"button\"\n class=\"collapse-expand text-center p-0 focus-force\"\n [attr.aria-label]=\"toggleButtonText() | translate\"\n [attr.aria-expanded]=\"!!expanded()\"\n [attr.aria-controls]=\"statusId\"\n [class.expanded]=\"expanded() === 2\"\n (click)=\"toggleExpand()\"\n >\n <si-icon class=\"icon\" [icon]=\"icons.elementDown2\" />\n </button>\n </div>\n }\n</div>\n\n<ng-template #muteButtonTemplate>\n <button\n type=\"button\"\n class=\"bar-item mute-button btn btn-icon btn-tertiary ms-5\"\n [attr.aria-label]=\"muteButtonText() | translate\"\n (click)=\"muteToggle.emit()\"\n >\n <si-icon class=\"icon\" [icon]=\"muteButton() ? icons.elementSoundOn : icons.elementSoundMute\" />\n </button>\n</ng-template>\n", styles: [":host{display:block;position:relative}:host ::ng-deep .blink{transition:color calc(.5s * var(--element-animations-enabled, 1))}:host ::ng-deep .bg{transition:opacity calc(.5s * var(--element-animations-enabled, 1))}.pulse-off ::ng-deep .bg{opacity:.1!important}.status-bar-wrapper{padding-inline:8px;background-color:var(--element-base-1)}.status-bar-wrapper>*{display:flex}.mobile-spacer{margin-block:4px;margin-inline:0;background:var(--element-base-0);block-size:1px}.bar-item{margin-block:8px}.custom-content{margin-inline-start:auto}.clickable{cursor:pointer}.mute-padding{padding-inline-end:calc(1lh + 30px)}.mobile-mute{position:absolute;inset-inline-end:8px}.main-content .mute-button{margin-inline-end:4px}.collapse-expand{background-color:var(--element-base-1);border:0;border-end-start-radius:2rem;border-end-end-radius:2rem;inline-size:calc(1.5rem + 16px);color:var(--element-ui-0);cursor:pointer}.collapse-expand.expanded{box-shadow:0 8px 8px var(--element-box-shadow-color-2)}.collapse-expand.expanded si-icon{transform:rotate(180deg)}.collapse-expand si-icon{margin-block-start:0;transition:transform calc(.4s * var(--element-animations-enabled, 1))}.compact .bar-item{margin-block:2px}.responsive si-status-bar-item{--__si-status-bar-item-min-width: 0;overflow:hidden;flex-shrink:1}.responsive.expanded{position:absolute;inset-block-start:0;inset-inline:0;z-index:1028}.responsive .status-bar-wrapper>.main-content{display:block;transition:max-block-size calc(.5s * var(--element-animations-enabled, 1))}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "component", type: SiStatusBarItemComponent, selector: "si-status-bar-item", inputs: ["status", "value", "heading", "color", "blink", "valueOnly", "clickable"], outputs: ["significanceChange"] }, { kind: "directive", type: SiResizeObserverDirective, selector: "[siResizeObserver]", inputs: ["resizeThrottle", "emitInitial"], outputs: ["siResizeObserver"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
341
355
  }
342
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiStatusBarComponent, decorators: [{
356
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiStatusBarComponent, decorators: [{
343
357
  type: Component,
344
358
  args: [{ selector: 'si-status-bar', imports: [
345
359
  NgTemplateOutlet,
@@ -347,19 +361,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
347
361
  SiStatusBarItemComponent,
348
362
  SiResizeObserverDirective,
349
363
  SiTranslatePipe
350
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"expand-placeholder\"\n [class.expanded]=\"expanded()\"\n [style.height.px]=\"placeholderHeight()\"\n></div>\n<div\n #thebar\n aria-busy=\"true\"\n [class]=\"responsiveMode ? `responsive-${responsiveMode}` : ''\"\n [class.responsive]=\"responsiveMode\"\n [class.expanded]=\"expanded()\"\n [class.compact]=\"responsiveMode || compact()\"\n [class.pulse-off]=\"blinkOnOff() === false\"\n [class.pulse-on]=\"blinkOnOff()\"\n>\n <div\n class=\"status-bar-wrapper rounded-2\"\n [class.elevation-2]=\"expanded()\"\n [class.pe-2]=\"muteButton() !== undefined\"\n >\n @if (responsiveMode) {\n <div class=\"align-items-center overflow-hidden\">\n <div class=\"d-flex flex-fill position-relative\">\n @let items = responsiveItems();\n @let responsiveCols = items.length < responsiveMode ? items.length : responsiveMode;\n @for (item of responsiveItems(); track $index) {\n <si-status-bar-item\n class=\"bar-item compact\"\n [value]=\"item.value\"\n [heading]=\"item.title\"\n [status]=\"item.status\"\n [color]=\"item.color\"\n [blink]=\"item.blink !== false && blink() && !expanded()\"\n [clickable]=\"!!item.action\"\n [class.mute-padding]=\"item.mutePadding && muteButton() !== undefined\"\n [style.flex-basis.%]=\"100 / responsiveCols\"\n [valueOnly]=\"item.isSpecial\"\n (click)=\"onItemClicked(item)\"\n (keydown.enter)=\"onItemClicked(item)\"\n />\n }\n </div>\n @if (muteButton() !== undefined) {\n <div class=\"mobile-mute\">\n <ng-container *ngTemplateOutlet=\"muteButtonTemplate\" />\n </div>\n }\n </div>\n }\n <div\n #content\n class=\"main-content align-items-center overflow-hidden\"\n [style.max-height.px]=\"contentHeight()\"\n >\n @if (responsiveMode) {\n <div class=\"mobile-spacer\"></div>\n }\n <div\n class=\"d-flex flex-fill position-relative\"\n [id]=\"statusId\"\n [class.d-none]=\"responsiveMode && !expanded()\"\n [class.flex-wrap]=\"responsiveMode\"\n >\n @for (item of items(); track $index) {\n <si-status-bar-item\n class=\"bar-item\"\n [class.compact]=\"responsiveMode || compact()\"\n [value]=\"item.value\"\n [heading]=\"item.title\"\n [status]=\"item.status\"\n [color]=\"item.color\"\n [blink]=\"item.blink !== false && blink()\"\n [clickable]=\"!!item.action\"\n [style.flex-basis.%]=\"responsiveMode ? 100 / responsiveMode : null\"\n (significanceChange)=\"significanceChanged()\"\n (click)=\"onItemClicked(item)\"\n (keydown.enter)=\"onItemClicked(item)\"\n />\n }\n </div>\n <div class=\"custom-content bar-item d-flex\">\n <div #custom [class.pb-2]=\"responsiveMode && expanded\" (siResizeObserver)=\"resizeHandler()\">\n <ng-content />\n </div>\n </div>\n @if (muteButton() !== undefined && !responsiveMode) {\n <ng-container *ngTemplateOutlet=\"muteButtonTemplate\" />\n }\n </div>\n </div>\n @if (responsiveMode) {\n <div class=\"d-flex align-items-center justify-content-center\">\n <button\n type=\"button\"\n class=\"collapse-expand text-center p-0 focus-force\"\n [attr.aria-label]=\"(expanded() ? collapseButtonText() : expandButtonText()) | translate\"\n [attr.aria-expanded]=\"!!expanded()\"\n [attr.aria-controls]=\"statusId\"\n [class.expanded]=\"expanded() === 2\"\n (click)=\"toggleExpand()\"\n >\n <si-icon class=\"icon\" [icon]=\"icons.elementDown2\" />\n </button>\n </div>\n }\n</div>\n\n<ng-template #muteButtonTemplate>\n <button\n type=\"button\"\n class=\"bar-item mute-button btn btn-icon btn-tertiary ms-5\"\n [attr.aria-label]=\"muteButtonText() | translate\"\n (click)=\"muteToggle.emit()\"\n >\n <si-icon class=\"icon\" [icon]=\"muteButton() ? icons.elementSoundOn : icons.elementSoundMute\" />\n </button>\n</ng-template>\n", styles: [":host{display:block;position:relative}:host ::ng-deep .blink{transition:color calc(.5s * var(--element-animations-enabled, 1))}:host ::ng-deep .bg{transition:opacity calc(.5s * var(--element-animations-enabled, 1))}.pulse-off ::ng-deep .bg{opacity:.1!important}.status-bar-wrapper{padding-inline:8px;background-color:var(--element-base-1)}.status-bar-wrapper>*{display:flex}.mobile-spacer{margin-block:4px;margin-inline:0;background:var(--element-base-0);block-size:1px}.bar-item{margin-block:8px}.custom-content{margin-inline-start:auto}.clickable{cursor:pointer}.mute-padding{padding-inline-end:calc(1lh + 30px)}.mobile-mute{position:absolute;inset-inline-end:8px}.main-content .mute-button{margin-inline-end:4px}.collapse-expand{background-color:var(--element-base-1);border:0;border-end-start-radius:2rem;border-end-end-radius:2rem;inline-size:calc(1.5rem + 16px);color:var(--element-ui-0);cursor:pointer}.collapse-expand.expanded{box-shadow:0 8px 8px var(--element-box-shadow-color-2)}.collapse-expand.expanded si-icon{transform:rotate(180deg)}.collapse-expand si-icon{margin-block-start:0;transition:transform calc(.4s * var(--element-animations-enabled, 1))}.compact .bar-item{margin-block:2px}.responsive si-status-bar-item{--__si-status-bar-item-min-width: 0;overflow:hidden;flex-shrink:1}.responsive.expanded{position:absolute;inset-block-start:0;inset-inline:0;z-index:1028}.responsive .status-bar-wrapper>.main-content{display:block;transition:max-block-size calc(.5s * var(--element-animations-enabled, 1))}\n"] }]
351
- }], ctorParameters: () => [], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }], blink: [{ type: i0.Input, args: [{ isSignal: true, alias: "blink", required: false }] }], muteButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "muteButton", required: false }] }], muteButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "muteButtonText", required: false }] }], allOkText: [{ type: i0.Input, args: [{ isSignal: true, alias: "allOkText", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], blinkPulse: [{ type: i0.Input, args: [{ isSignal: true, alias: "blinkPulse", required: false }] }], expandButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandButtonText", required: false }] }], collapseButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapseButtonText", required: false }] }], muteToggle: [{ type: i0.Output, args: ["muteToggle"] }], theBar: [{ type: i0.ViewChild, args: ['thebar', { isSignal: true }] }], content: [{ type: i0.ViewChild, args: ['content', { isSignal: true }] }], custom: [{ type: i0.ViewChild, args: ['custom', { isSignal: true }] }] } });
364
+ ], template: "<div\n class=\"expand-placeholder\"\n [class.expanded]=\"expanded()\"\n [style.height.px]=\"placeholderHeight()\"\n></div>\n<div\n #thebar\n aria-busy=\"true\"\n [class]=\"responsiveMode ? `responsive-${responsiveMode}` : ''\"\n [class.responsive]=\"responsiveMode\"\n [class.expanded]=\"expanded()\"\n [class.compact]=\"responsiveMode || compact()\"\n [class.pulse-off]=\"blinkOnOff() === false\"\n [class.pulse-on]=\"blinkOnOff()\"\n>\n <div\n class=\"status-bar-wrapper rounded-2\"\n [class.elevation-2]=\"expanded()\"\n [class.pe-2]=\"muteButton() !== undefined\"\n >\n @if (responsiveMode) {\n <div class=\"align-items-center overflow-hidden\">\n <div class=\"d-flex flex-fill position-relative\">\n @let items = responsiveItems();\n @let responsiveCols = items.length < responsiveMode ? items.length : responsiveMode;\n @for (item of responsiveItems(); track $index) {\n <si-status-bar-item\n class=\"bar-item compact\"\n [value]=\"item.value\"\n [heading]=\"item.title\"\n [status]=\"item.status\"\n [color]=\"item.color\"\n [blink]=\"item.blink !== false && blink() && !expanded()\"\n [clickable]=\"!!item.action\"\n [class.mute-padding]=\"item.mutePadding && muteButton() !== undefined\"\n [style.flex-basis.%]=\"100 / responsiveCols\"\n [valueOnly]=\"item.isSpecial\"\n (click)=\"onItemClicked(item)\"\n (keydown.enter)=\"onItemClicked(item)\"\n />\n }\n </div>\n @if (muteButton() !== undefined) {\n <div class=\"mobile-mute\">\n <ng-container *ngTemplateOutlet=\"muteButtonTemplate\" />\n </div>\n }\n </div>\n }\n <div\n #content\n class=\"main-content align-items-center overflow-hidden\"\n [style.max-height.px]=\"contentHeight()\"\n >\n @if (responsiveMode) {\n <div class=\"mobile-spacer\"></div>\n }\n <div\n class=\"d-flex flex-fill position-relative\"\n [id]=\"statusId\"\n [class.d-none]=\"responsiveMode && !expanded()\"\n [class.flex-wrap]=\"responsiveMode\"\n >\n @for (item of items(); track $index) {\n <si-status-bar-item\n class=\"bar-item\"\n [class.compact]=\"responsiveMode || compact()\"\n [value]=\"item.value\"\n [heading]=\"item.title\"\n [status]=\"item.status\"\n [color]=\"item.color\"\n [blink]=\"item.blink !== false && blink()\"\n [clickable]=\"!!item.action\"\n [style.flex-basis.%]=\"responsiveMode ? 100 / responsiveMode : null\"\n (significanceChange)=\"significanceChanged()\"\n (click)=\"onItemClicked(item)\"\n (keydown.enter)=\"onItemClicked(item)\"\n />\n }\n </div>\n <div class=\"custom-content bar-item d-flex\">\n <div #custom [class.pb-2]=\"responsiveMode && expanded\" (siResizeObserver)=\"resizeHandler()\">\n <ng-content />\n </div>\n </div>\n @if (muteButton() !== undefined && !responsiveMode) {\n <ng-container *ngTemplateOutlet=\"muteButtonTemplate\" />\n }\n </div>\n </div>\n @if (responsiveMode) {\n <div class=\"d-flex align-items-center justify-content-center\">\n <button\n type=\"button\"\n class=\"collapse-expand text-center p-0 focus-force\"\n [attr.aria-label]=\"toggleButtonText() | translate\"\n [attr.aria-expanded]=\"!!expanded()\"\n [attr.aria-controls]=\"statusId\"\n [class.expanded]=\"expanded() === 2\"\n (click)=\"toggleExpand()\"\n >\n <si-icon class=\"icon\" [icon]=\"icons.elementDown2\" />\n </button>\n </div>\n }\n</div>\n\n<ng-template #muteButtonTemplate>\n <button\n type=\"button\"\n class=\"bar-item mute-button btn btn-icon btn-tertiary ms-5\"\n [attr.aria-label]=\"muteButtonText() | translate\"\n (click)=\"muteToggle.emit()\"\n >\n <si-icon class=\"icon\" [icon]=\"muteButton() ? icons.elementSoundOn : icons.elementSoundMute\" />\n </button>\n</ng-template>\n", styles: [":host{display:block;position:relative}:host ::ng-deep .blink{transition:color calc(.5s * var(--element-animations-enabled, 1))}:host ::ng-deep .bg{transition:opacity calc(.5s * var(--element-animations-enabled, 1))}.pulse-off ::ng-deep .bg{opacity:.1!important}.status-bar-wrapper{padding-inline:8px;background-color:var(--element-base-1)}.status-bar-wrapper>*{display:flex}.mobile-spacer{margin-block:4px;margin-inline:0;background:var(--element-base-0);block-size:1px}.bar-item{margin-block:8px}.custom-content{margin-inline-start:auto}.clickable{cursor:pointer}.mute-padding{padding-inline-end:calc(1lh + 30px)}.mobile-mute{position:absolute;inset-inline-end:8px}.main-content .mute-button{margin-inline-end:4px}.collapse-expand{background-color:var(--element-base-1);border:0;border-end-start-radius:2rem;border-end-end-radius:2rem;inline-size:calc(1.5rem + 16px);color:var(--element-ui-0);cursor:pointer}.collapse-expand.expanded{box-shadow:0 8px 8px var(--element-box-shadow-color-2)}.collapse-expand.expanded si-icon{transform:rotate(180deg)}.collapse-expand si-icon{margin-block-start:0;transition:transform calc(.4s * var(--element-animations-enabled, 1))}.compact .bar-item{margin-block:2px}.responsive si-status-bar-item{--__si-status-bar-item-min-width: 0;overflow:hidden;flex-shrink:1}.responsive.expanded{position:absolute;inset-block-start:0;inset-inline:0;z-index:1028}.responsive .status-bar-wrapper>.main-content{display:block;transition:max-block-size calc(.5s * var(--element-animations-enabled, 1))}\n"] }]
365
+ }], ctorParameters: () => [], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }], blink: [{ type: i0.Input, args: [{ isSignal: true, alias: "blink", required: false }] }], muteButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "muteButton", required: false }] }], muteButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "muteButtonText", required: false }] }], allOkText: [{ type: i0.Input, args: [{ isSignal: true, alias: "allOkText", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], blinkPulse: [{ type: i0.Input, args: [{ isSignal: true, alias: "blinkPulse", required: false }] }], toggleButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleButtonText", required: false }] }], muteToggle: [{ type: i0.Output, args: ["muteToggle"] }], theBar: [{ type: i0.ViewChild, args: ['thebar', { isSignal: true }] }], content: [{ type: i0.ViewChild, args: ['content', { isSignal: true }] }], custom: [{ type: i0.ViewChild, args: ['custom', { isSignal: true }] }] } });
352
366
 
353
367
  /**
354
368
  * Copyright (c) Siemens 2016 - 2026
355
369
  * SPDX-License-Identifier: MIT
356
370
  */
357
371
  class SiStatusBarModule {
358
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiStatusBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
359
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: SiStatusBarModule, imports: [SiStatusBarComponent], exports: [SiStatusBarComponent] });
360
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiStatusBarModule, imports: [SiStatusBarComponent] });
372
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiStatusBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
373
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: SiStatusBarModule, imports: [SiStatusBarComponent], exports: [SiStatusBarComponent] });
374
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiStatusBarModule, imports: [SiStatusBarComponent] });
361
375
  }
362
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiStatusBarModule, decorators: [{
376
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiStatusBarModule, decorators: [{
363
377
  type: NgModule,
364
378
  args: [{
365
379
  imports: [SiStatusBarComponent],