@siemens/element-ng 47.6.0 → 47.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/README.md +4 -1
  2. package/about/index.d.ts +7 -0
  3. package/about/package.json +3 -0
  4. package/about/si-about-data.model.d.ts +49 -0
  5. package/about/si-about.component.d.ts +71 -0
  6. package/about/si-about.module.d.ts +7 -0
  7. package/accordion/index.d.ts +1 -1
  8. package/accordion/si-accordion.component.d.ts +1 -1
  9. package/accordion/si-collapsible-panel.component.d.ts +1 -1
  10. package/action-modal/index.d.ts +1 -1
  11. package/action-modal/si-action-dialog.types.d.ts +1 -1
  12. package/application-header/index.d.ts +1 -1
  13. package/application-header/launchpad/si-launchpad.model.d.ts +1 -1
  14. package/application-header/si-header-action-item-icon-base.directive.d.ts +1 -1
  15. package/application-header/si-header-action-item.base.d.ts +1 -1
  16. package/application-header/si-header-logo.directive.d.ts +1 -1
  17. package/assets/images/landing-page-steel.webp +0 -0
  18. package/auto-collapsable-list/index.d.ts +1 -1
  19. package/auto-collapsable-list/si-auto-collapsable-list-item.directive.d.ts +1 -1
  20. package/auto-collapsable-list/si-auto-collapsable-list-measurable.class.d.ts +1 -1
  21. package/auto-collapsable-list/si-auto-collapsable-list.directive.d.ts +1 -1
  22. package/autocomplete/index.d.ts +1 -1
  23. package/autocomplete/si-autocomplete-option.directive.d.ts +1 -1
  24. package/autocomplete/si-autocomplete.model.d.ts +1 -1
  25. package/avatar/index.d.ts +1 -1
  26. package/avatar/si-avatar-background-color.directive.d.ts +1 -1
  27. package/badge/index.d.ts +1 -1
  28. package/breadcrumb/breadcrumb-item.model.d.ts +1 -1
  29. package/breadcrumb/index.d.ts +1 -1
  30. package/breadcrumb-router/index.d.ts +1 -1
  31. package/breadcrumb-router/si-breadcrumb-router.component.d.ts +1 -1
  32. package/breadcrumb-router/si-breadcrumb-router.model.d.ts +1 -1
  33. package/card/index.d.ts +1 -1
  34. package/circle-status/index.d.ts +1 -1
  35. package/color-picker/index.d.ts +1 -1
  36. package/column-selection-dialog/index.d.ts +1 -1
  37. package/column-selection-dialog/si-column-selection-dialog.types.d.ts +1 -1
  38. package/common/decorators/index.d.ts +1 -1
  39. package/common/decorators/webcomponent.decorator.d.ts +1 -1
  40. package/common/helpers/animation.helpers.d.ts +1 -1
  41. package/common/helpers/global-events.helpers.d.ts +1 -1
  42. package/common/helpers/index.d.ts +1 -1
  43. package/common/helpers/overlay-helper.d.ts +1 -1
  44. package/common/helpers/rtl.d.ts +1 -1
  45. package/common/helpers/track-by.helper.d.ts +1 -1
  46. package/common/index.d.ts +1 -1
  47. package/common/models/color-variant.model.d.ts +1 -1
  48. package/common/models/index.d.ts +1 -1
  49. package/common/models/menu.model.d.ts +1 -1
  50. package/common/models/positions.model.d.ts +1 -1
  51. package/common/models/status-type.model.d.ts +1 -1
  52. package/common/services/index.d.ts +1 -1
  53. package/connection-strength/index.d.ts +1 -1
  54. package/content-action-bar/index.d.ts +1 -1
  55. package/content-action-bar/si-content-action-bar.component.d.ts +1 -1
  56. package/content-action-bar/si-content-action-bar.model.d.ts +3 -3
  57. package/copyright-notice/index.d.ts +1 -1
  58. package/copyright-notice/si-copyright-notice.d.ts +1 -1
  59. package/datatable/index.d.ts +1 -1
  60. package/datatable/si-datatable-interaction.directive.d.ts +1 -1
  61. package/date-range-filter/index.d.ts +1 -1
  62. package/date-range-filter/si-date-range-filter.types.d.ts +1 -1
  63. package/date-range-filter/si-relative-date.component.d.ts +1 -1
  64. package/datepicker/components/si-calendar-date-cell.directive.d.ts +1 -1
  65. package/datepicker/components/si-initial-focus.component.d.ts +1 -1
  66. package/datepicker/index.d.ts +1 -1
  67. package/datepicker/si-datepicker.directive.d.ts +1 -1
  68. package/datepicker/si-datepicker.model.d.ts +1 -1
  69. package/datepicker/si-timepicker.component.d.ts +1 -1
  70. package/electron-titlebar/electron.helpers.d.ts +1 -1
  71. package/electron-titlebar/index.d.ts +1 -1
  72. package/empty-state/index.d.ts +1 -1
  73. package/fesm2022/siemens-element-ng-about.mjs +157 -0
  74. package/fesm2022/siemens-element-ng-about.mjs.map +1 -0
  75. package/fesm2022/siemens-element-ng-accordion.mjs +11 -12
  76. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
  77. package/fesm2022/siemens-element-ng-action-modal.mjs +15 -16
  78. package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
  79. package/fesm2022/siemens-element-ng-application-header.mjs +29 -30
  80. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  81. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +7 -7
  82. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
  83. package/fesm2022/siemens-element-ng-autocomplete.mjs +5 -5
  84. package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
  85. package/fesm2022/siemens-element-ng-avatar.mjs +4 -4
  86. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  87. package/fesm2022/siemens-element-ng-badge.mjs +2 -2
  88. package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
  89. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +5 -5
  90. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
  91. package/fesm2022/siemens-element-ng-breadcrumb.mjs +8 -9
  92. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  93. package/fesm2022/siemens-element-ng-card.mjs +7 -8
  94. package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
  95. package/fesm2022/siemens-element-ng-circle-status.mjs +6 -7
  96. package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
  97. package/fesm2022/siemens-element-ng-color-picker.mjs +6 -7
  98. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
  99. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +11 -12
  100. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
  101. package/fesm2022/siemens-element-ng-common.mjs +14 -14
  102. package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
  103. package/fesm2022/siemens-element-ng-connection-strength.mjs +3 -3
  104. package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
  105. package/fesm2022/siemens-element-ng-content-action-bar.mjs +9 -10
  106. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  107. package/fesm2022/siemens-element-ng-copyright-notice.mjs +4 -4
  108. package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
  109. package/fesm2022/siemens-element-ng-datatable.mjs +2 -2
  110. package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
  111. package/fesm2022/siemens-element-ng-date-range-filter.mjs +13 -15
  112. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  113. package/fesm2022/siemens-element-ng-datepicker.mjs +48 -54
  114. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  115. package/fesm2022/siemens-element-ng-electron-titlebar.mjs +7 -8
  116. package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
  117. package/fesm2022/siemens-element-ng-empty-state.mjs +6 -7
  118. package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
  119. package/fesm2022/siemens-element-ng-file-uploader.mjs +9 -10
  120. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  121. package/fesm2022/siemens-element-ng-filter-bar.mjs +10 -11
  122. package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
  123. package/fesm2022/siemens-element-ng-filtered-search.mjs +19 -20
  124. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  125. package/fesm2022/siemens-element-ng-footer.mjs +7 -8
  126. package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
  127. package/fesm2022/siemens-element-ng-form.mjs +20 -23
  128. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  129. package/fesm2022/siemens-element-ng-formly.mjs +46 -53
  130. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  131. package/fesm2022/siemens-element-ng-header-dropdown.mjs +8 -9
  132. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  133. package/fesm2022/siemens-element-ng-icon-status.mjs +3 -3
  134. package/fesm2022/siemens-element-ng-icon-status.mjs.map +1 -1
  135. package/fesm2022/siemens-element-ng-icon.mjs +17 -18
  136. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  137. package/fesm2022/siemens-element-ng-info-page.mjs +5 -6
  138. package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
  139. package/fesm2022/siemens-element-ng-inline-notification.mjs +6 -7
  140. package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
  141. package/fesm2022/siemens-element-ng-ip-input.mjs +4 -4
  142. package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
  143. package/fesm2022/siemens-element-ng-landing-page.mjs +121 -0
  144. package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -0
  145. package/fesm2022/siemens-element-ng-language-switcher.mjs +9 -10
  146. package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
  147. package/fesm2022/siemens-element-ng-link.mjs +6 -6
  148. package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
  149. package/fesm2022/siemens-element-ng-list-details.mjs +15 -16
  150. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  151. package/fesm2022/siemens-element-ng-loading-spinner.mjs +13 -14
  152. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
  153. package/fesm2022/siemens-element-ng-localization.mjs +6 -6
  154. package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
  155. package/fesm2022/siemens-element-ng-main-detail-container.mjs +6 -7
  156. package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
  157. package/fesm2022/siemens-element-ng-menu.mjs +22 -22
  158. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  159. package/fesm2022/siemens-element-ng-modal.mjs +4 -4
  160. package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
  161. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +31 -32
  162. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  163. package/fesm2022/siemens-element-ng-navbar.mjs +11 -12
  164. package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
  165. package/fesm2022/siemens-element-ng-number-input.mjs +7 -8
  166. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  167. package/fesm2022/siemens-element-ng-pagination.mjs +6 -7
  168. package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
  169. package/fesm2022/siemens-element-ng-password-strength.mjs +6 -6
  170. package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
  171. package/fesm2022/siemens-element-ng-password-toggle.mjs +8 -9
  172. package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
  173. package/fesm2022/siemens-element-ng-phone-number.mjs +16 -17
  174. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
  175. package/fesm2022/siemens-element-ng-photo-upload.mjs +7 -9
  176. package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
  177. package/fesm2022/siemens-element-ng-pills-input.mjs +14 -15
  178. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
  179. package/fesm2022/siemens-element-ng-popover-next.mjs +5 -5
  180. package/fesm2022/siemens-element-ng-popover-next.mjs.map +1 -1
  181. package/fesm2022/siemens-element-ng-popover.mjs +3 -3
  182. package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
  183. package/fesm2022/siemens-element-ng-progressbar.mjs +7 -8
  184. package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
  185. package/fesm2022/siemens-element-ng-resize-observer.mjs +5 -5
  186. package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
  187. package/fesm2022/siemens-element-ng-result-details-list.mjs +6 -7
  188. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
  189. package/fesm2022/siemens-element-ng-search-bar.mjs +6 -6
  190. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  191. package/fesm2022/siemens-element-ng-select.mjs +39 -40
  192. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  193. package/fesm2022/siemens-element-ng-shadow-root.mjs +2 -2
  194. package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
  195. package/fesm2022/siemens-element-ng-side-panel.mjs +12 -13
  196. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  197. package/fesm2022/siemens-element-ng-skip-links.mjs +7 -8
  198. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
  199. package/fesm2022/siemens-element-ng-slider.mjs +7 -8
  200. package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
  201. package/fesm2022/siemens-element-ng-sort-bar.mjs +6 -7
  202. package/fesm2022/siemens-element-ng-sort-bar.mjs.map +1 -1
  203. package/fesm2022/siemens-element-ng-split.mjs +6 -7
  204. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  205. package/fesm2022/siemens-element-ng-status-bar.mjs +13 -14
  206. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  207. package/fesm2022/siemens-element-ng-status-toggle.mjs +5 -6
  208. package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
  209. package/fesm2022/siemens-element-ng-summary-chip.mjs +5 -6
  210. package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
  211. package/fesm2022/siemens-element-ng-summary-widget.mjs +5 -6
  212. package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
  213. package/fesm2022/siemens-element-ng-system-banner.mjs +5 -6
  214. package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
  215. package/fesm2022/siemens-element-ng-tabs-next.mjs +16 -17
  216. package/fesm2022/siemens-element-ng-tabs-next.mjs.map +1 -1
  217. package/fesm2022/siemens-element-ng-tabs.mjs +9 -16
  218. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  219. package/fesm2022/siemens-element-ng-theme.mjs +3 -3
  220. package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
  221. package/fesm2022/siemens-element-ng-threshold.mjs +11 -12
  222. package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
  223. package/fesm2022/siemens-element-ng-toast-notification.mjs +9 -10
  224. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
  225. package/fesm2022/siemens-element-ng-tooltip.mjs +7 -8
  226. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
  227. package/fesm2022/siemens-element-ng-tour.mjs +7 -8
  228. package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
  229. package/fesm2022/siemens-element-ng-translate.mjs +1 -1
  230. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  231. package/fesm2022/siemens-element-ng-tree-view.mjs +22 -23
  232. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  233. package/fesm2022/siemens-element-ng-typeahead.mjs +12 -13
  234. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  235. package/fesm2022/siemens-element-ng-unauthorized-page.mjs +6 -7
  236. package/fesm2022/siemens-element-ng-unauthorized-page.mjs.map +1 -1
  237. package/fesm2022/siemens-element-ng-wizard.mjs +8 -9
  238. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  239. package/fesm2022/siemens-element-ng.mjs +1 -1
  240. package/fesm2022/siemens-element-ng.mjs.map +1 -1
  241. package/file-uploader/index.d.ts +1 -1
  242. package/file-uploader/si-file-uploader.model.d.ts +1 -1
  243. package/filter-bar/filter.d.ts +1 -1
  244. package/filter-bar/index.d.ts +1 -1
  245. package/filtered-search/index.d.ts +1 -1
  246. package/filtered-search/si-filtered-search-value.component.d.ts +1 -1
  247. package/filtered-search/si-filtered-search.component.d.ts +1 -1
  248. package/filtered-search/si-filtered-search.model.d.ts +1 -1
  249. package/filtered-search/values/si-filtered-search-value.base.d.ts +1 -1
  250. package/filtered-search/values/typeahead/si-filtered-search-typeahead.component.d.ts +1 -1
  251. package/footer/index.d.ts +1 -1
  252. package/form/form-fieldset/si-form-fieldset.component.d.ts +1 -1
  253. package/form/index.d.ts +1 -1
  254. package/form/si-form-container/si-form-container.component.d.ts +24 -24
  255. package/form/si-form-item/si-form-field-native.control.d.ts +1 -1
  256. package/form/si-form-item.control.d.ts +1 -1
  257. package/form/si-form-validation-error.model.d.ts +1 -1
  258. package/form/si-form-validation-error.provider.d.ts +1 -1
  259. package/form/si-form-validation-tooltip/si-form-validation-tooltip.component.d.ts +1 -1
  260. package/form/si-form-validation-tooltip/si-form-validation-tooltip.directive.d.ts +1 -1
  261. package/form/si-form.module.d.ts +1 -1
  262. package/formly/fields/datetime/si-formly-datetime.component.d.ts +1 -1
  263. package/formly/fields/textarea/si-formly-textarea.component.d.ts +1 -1
  264. package/formly/fields/time/si-formly-time.component.d.ts +1 -1
  265. package/formly/index.d.ts +1 -1
  266. package/formly/si-formly-translate.extension.d.ts +1 -3
  267. package/formly/si-formly.component.d.ts +1 -1
  268. package/formly/structural/si-formly-accordion/si-formly-accordion.component.d.ts +1 -1
  269. package/formly/structural/si-formly-object-grid/si-formly-object-grid.component.d.ts +1 -1
  270. package/formly/structural/si-formly-object-grid/si-formly-object-grid.model.d.ts +1 -1
  271. package/formly/utils.d.ts +1 -1
  272. package/formly/wrapper/si-formly-form-field-provider.directive.d.ts +1 -1
  273. package/header-dropdown/index.d.ts +1 -1
  274. package/header-dropdown/si-header.model.d.ts +1 -1
  275. package/icon/element-icons.d.ts +1 -1
  276. package/icon/icon-status.d.ts +1 -1
  277. package/icon/index.d.ts +1 -1
  278. package/icon-status/index.d.ts +1 -1
  279. package/info-page/index.d.ts +1 -1
  280. package/inline-notification/index.d.ts +1 -1
  281. package/ip-input/address-utils.d.ts +1 -1
  282. package/ip-input/address-validators.d.ts +1 -1
  283. package/ip-input/index.d.ts +1 -1
  284. package/ip-input/si-ip-input.directive.d.ts +1 -1
  285. package/landing-page/alert-config.model.d.ts +15 -0
  286. package/landing-page/index.d.ts +7 -0
  287. package/landing-page/package.json +3 -0
  288. package/landing-page/si-landing-page.component.d.ts +74 -0
  289. package/landing-page/si-landing-page.module.d.ts +7 -0
  290. package/language-switcher/index.d.ts +1 -1
  291. package/language-switcher/iso-language-value.d.ts +1 -1
  292. package/language-switcher/si-language-switcher.component.d.ts +1 -2
  293. package/link/aria-current.model.d.ts +1 -1
  294. package/link/index.d.ts +1 -1
  295. package/link/link.model.d.ts +1 -1
  296. package/list-details/index.d.ts +1 -1
  297. package/list-details/si-details-pane-header/si-details-pane-header.component.d.ts +1 -1
  298. package/loading-spinner/index.d.ts +1 -1
  299. package/localization/index.d.ts +1 -1
  300. package/localization/si-directionality.d.ts +1 -1
  301. package/localization/si-locale-store.d.ts +1 -1
  302. package/main-detail-container/index.d.ts +1 -1
  303. package/menu/index.d.ts +1 -1
  304. package/menu/si-menu-action.service.d.ts +1 -1
  305. package/menu/si-menu-factory.component.d.ts +1 -1
  306. package/menu/si-menu-item-checkbox.component.d.ts +2 -1
  307. package/menu/si-menu-model.d.ts +1 -1
  308. package/modal/index.d.ts +1 -1
  309. package/modal/modal.helpers.d.ts +1 -1
  310. package/modal/modalref.d.ts +1 -1
  311. package/navbar/account.model.d.ts +1 -1
  312. package/navbar/index.d.ts +1 -1
  313. package/navbar/si-navbar-item/index.d.ts +1 -1
  314. package/navbar/si-navbar-primary/index.d.ts +1 -1
  315. package/navbar/si-navbar-primary/si-navbar-primary.model.d.ts +1 -1
  316. package/navbar-vertical/index.d.ts +1 -1
  317. package/navbar-vertical/si-navbar-vertical.model.d.ts +1 -1
  318. package/navbar-vertical/si-navbar-vertical.provider.d.ts +1 -1
  319. package/number-input/index.d.ts +1 -1
  320. package/number-input/si-number-input.component.d.ts +1 -1
  321. package/package.json +11 -3
  322. package/pagination/index.d.ts +1 -1
  323. package/password-strength/index.d.ts +1 -1
  324. package/password-strength/si-password-strength.component.d.ts +1 -1
  325. package/password-toggle/index.d.ts +1 -1
  326. package/phone-number/index.d.ts +1 -1
  327. package/phone-number/si-phone-number-input.models.d.ts +1 -1
  328. package/photo-upload/index.d.ts +1 -1
  329. package/pills-input/index.d.ts +1 -1
  330. package/pills-input/si-pills-input-pattern-base.d.ts +1 -1
  331. package/pills-input/si-pills-input.component.d.ts +1 -1
  332. package/popover/index.d.ts +1 -1
  333. package/popover/si-popover.component.d.ts +1 -1
  334. package/popover-next/index.d.ts +1 -1
  335. package/progressbar/index.d.ts +1 -1
  336. package/public-api.d.ts +1 -1
  337. package/resize-observer/index.d.ts +1 -1
  338. package/resize-observer/si-resize-observer.directive.d.ts +1 -1
  339. package/resize-observer/si-responsive-container.directive.d.ts +1 -1
  340. package/result-details-list/index.d.ts +1 -1
  341. package/result-details-list/si-result-details-list.datamodel.d.ts +1 -1
  342. package/search-bar/index.d.ts +1 -1
  343. package/search-bar/si-search-bar.component.d.ts +1 -1
  344. package/select/index.d.ts +1 -1
  345. package/select/options/si-select-complex-options.directive.d.ts +1 -1
  346. package/select/options/si-select-lazy-options.directive.d.ts +1 -1
  347. package/select/options/si-select-option.source.d.ts +1 -1
  348. package/select/options/si-select-options-strategy.base.d.ts +1 -1
  349. package/select/options/si-select-options-strategy.d.ts +1 -1
  350. package/select/options/si-select-simple-options.directive.d.ts +1 -1
  351. package/select/select-input/si-select-input.component.d.ts +1 -1
  352. package/select/select-list/si-select-list.base.d.ts +1 -1
  353. package/select/select-list/si-select-list.component.d.ts +1 -1
  354. package/select/select-option/si-select-option-row.component.d.ts +1 -1
  355. package/select/selection/si-select-selection-strategy.d.ts +1 -1
  356. package/select/si-select.types.d.ts +1 -1
  357. package/shadow-root/index.d.ts +1 -1
  358. package/shadow-root/si-shadow-root.directive.d.ts +1 -1
  359. package/side-panel/index.d.ts +1 -1
  360. package/side-panel/si-side-panel.service.d.ts +1 -1
  361. package/side-panel/side-panel.model.d.ts +1 -1
  362. package/skip-links/index.d.ts +1 -1
  363. package/skip-links/si-skip-link-target.directive.d.ts +1 -1
  364. package/slider/index.d.ts +1 -1
  365. package/sort-bar/index.d.ts +1 -1
  366. package/sort-bar/si-sort-bar.component.d.ts +1 -1
  367. package/split/index.d.ts +1 -1
  368. package/split/si-split.interfaces.d.ts +1 -1
  369. package/status-bar/index.d.ts +1 -1
  370. package/status-bar/si-status-bar-item/index.d.ts +1 -1
  371. package/status-bar/si-status-bar-item/si-status-bar-item.model.d.ts +1 -1
  372. package/status-toggle/index.d.ts +1 -1
  373. package/status-toggle/status-toggle.model.d.ts +1 -1
  374. package/summary-chip/index.d.ts +1 -1
  375. package/summary-widget/index.d.ts +1 -1
  376. package/system-banner/index.d.ts +1 -1
  377. package/tabs/index.d.ts +1 -1
  378. package/tabs/si-tab/index.d.ts +1 -1
  379. package/tabs/si-tab/si-tab.component.d.ts +1 -1
  380. package/tabs/si-tabset/index.d.ts +1 -1
  381. package/tabs-next/index.d.ts +1 -1
  382. package/tabs-next/si-tab-next-base.directive.d.ts +1 -1
  383. package/tabs-next/si-tabs-tokens.d.ts +1 -1
  384. package/tabs-next/si-tabset-next.component.d.ts +1 -1
  385. package/theme/index.d.ts +1 -1
  386. package/theme/si-theme-store.d.ts +1 -1
  387. package/theme/si-theme.model.d.ts +1 -1
  388. package/threshold/index.d.ts +1 -1
  389. package/toast-notification/index.d.ts +1 -1
  390. package/toast-notification/si-toast.model.d.ts +1 -1
  391. package/tooltip/index.d.ts +1 -1
  392. package/tooltip/si-tooltip.component.d.ts +1 -1
  393. package/tooltip/si-tooltip.directive.d.ts +1 -1
  394. package/tooltip/si-tooltip.service.d.ts +1 -1
  395. package/tour/index.d.ts +1 -1
  396. package/tour/si-tour-token.model.d.ts +1 -1
  397. package/tour/si-tour.model.d.ts +1 -1
  398. package/translate/index.d.ts +1 -1
  399. package/translate/si-translatable-overrides.provider.d.ts +1 -1
  400. package/tree-view/drag-drop.util.d.ts +1 -1
  401. package/tree-view/index.d.ts +1 -1
  402. package/tree-view/si-tree-view-item/si-tree-view-item.component.d.ts +1 -1
  403. package/tree-view/si-tree-view-item/si-tree-view-item.directive.d.ts +1 -1
  404. package/tree-view/si-tree-view-item-context.d.ts +1 -1
  405. package/tree-view/si-tree-view-item-height.service.d.ts +1 -1
  406. package/tree-view/si-tree-view-item-template.directive.d.ts +1 -1
  407. package/tree-view/si-tree-view.model.d.ts +1 -1
  408. package/tree-view/si-tree-view.service.d.ts +1 -1
  409. package/tree-view/si-tree-view.utils.d.ts +1 -1
  410. package/typeahead/index.d.ts +1 -1
  411. package/typeahead/si-typeahead.directive.d.ts +1 -1
  412. package/typeahead/si-typeahead.model.d.ts +1 -1
  413. package/typeahead/si-typeahead.sorting.d.ts +1 -1
  414. package/unauthorized-page/index.d.ts +1 -1
  415. package/wizard/index.d.ts +1 -1
@@ -2,11 +2,10 @@ import * as i0 from '@angular/core';
2
2
  import { input, model, booleanAttribute, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { STATUS_ICON } from '@siemens/element-ng/common';
4
4
  import { SiIconComponent } from '@siemens/element-ng/icon';
5
- import * as i1 from '@siemens/element-translate-ng/translate';
6
- import { SiTranslateModule } from '@siemens/element-translate-ng/translate';
5
+ import { SiTranslatePipe } from '@siemens/element-translate-ng/translate';
7
6
 
8
7
  /**
9
- * Copyright Siemens 2016 - 2025.
8
+ * Copyright (c) Siemens 2016 - 2025
10
9
  * SPDX-License-Identifier: MIT
11
10
  */
12
11
  class SiSummaryWidgetComponent {
@@ -57,15 +56,15 @@ class SiSummaryWidgetComponent {
57
56
  }
58
57
  }
59
58
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiSummaryWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
60
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiSummaryWidgetComponent, isStandalone: true, selector: "si-summary-widget", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, stackedIcon: { classPropertyName: "stackedIcon", publicName: "stackedIcon", isSignal: true, isRequired: false, transformFunction: null }, stackedColor: { classPropertyName: "stackedColor", publicName: "stackedColor", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selectedChange" }, ngImport: i0, template: "<div\n class=\"widget ps-2 pe-4 gap-2\"\n role=\"checkbox\"\n [attr.tabindex]=\"interactive() ? '0' : ''\"\n [attr.aria-disabled]=\"!interactive()\"\n [attr.aria-checked]=\"selected()\"\n [class.selected]=\"selected()\"\n [class.disabled]=\"disabled()\"\n [class.interactive]=\"interactive()\"\n (click)=\"toggleSelected()\"\n (keydown.enter)=\"toggleSelected()\"\n>\n @let actualIcon = statusIcon();\n @if (actualIcon.icon) {\n <si-icon\n size=\"icon\"\n alt=\"\"\n [icon]=\"actualIcon.icon\"\n [color]=\"actualIcon.color\"\n [stackedIcon]=\"actualIcon.stacked\"\n [stackedColor]=\"actualIcon.stackedColor\"\n />\n }\n <div class=\"d-flex flex-column py-2\" [class.ps-2]=\"!actualIcon.icon\">\n <div class=\"si-title-2\">{{ value() | translate }}</div>\n <div class=\"si-body-2 text-secondary\">{{ label() | translate }}</div>\n </div>\n</div>\n", styles: [".widget{display:inline-flex;align-items:start;block-size:100%;border-radius:var(--element-radius-1)}.widget.interactive{cursor:pointer}.widget.interactive:not(.selected):hover{background:var(--element-base-1-hover)}.selected{background:var(--element-base-1-selected)}.disabled{opacity:var(--element-action-disabled-opacity)}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon", "color", "stackedIcon", "stackedColor", "alt", "size"] }, { kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
59
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiSummaryWidgetComponent, isStandalone: true, selector: "si-summary-widget", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, stackedIcon: { classPropertyName: "stackedIcon", publicName: "stackedIcon", isSignal: true, isRequired: false, transformFunction: null }, stackedColor: { classPropertyName: "stackedColor", publicName: "stackedColor", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selectedChange" }, ngImport: i0, template: "<div\n class=\"widget ps-2 pe-4 gap-2\"\n role=\"checkbox\"\n [attr.tabindex]=\"interactive() ? '0' : ''\"\n [attr.aria-disabled]=\"!interactive()\"\n [attr.aria-checked]=\"selected()\"\n [class.selected]=\"selected()\"\n [class.disabled]=\"disabled()\"\n [class.interactive]=\"interactive()\"\n (click)=\"toggleSelected()\"\n (keydown.enter)=\"toggleSelected()\"\n>\n @let actualIcon = statusIcon();\n @if (actualIcon.icon) {\n <si-icon\n size=\"icon\"\n alt=\"\"\n [icon]=\"actualIcon.icon\"\n [color]=\"actualIcon.color\"\n [stackedIcon]=\"actualIcon.stacked\"\n [stackedColor]=\"actualIcon.stackedColor\"\n />\n }\n <div class=\"d-flex flex-column py-2\" [class.ps-2]=\"!actualIcon.icon\">\n <div class=\"si-title-2\">{{ value() | translate }}</div>\n <div class=\"si-body-2 text-secondary\">{{ label() | translate }}</div>\n </div>\n</div>\n", styles: [".widget{display:inline-flex;align-items:start;block-size:100%;border-radius:var(--element-radius-1)}.widget.interactive{cursor:pointer}.widget.interactive:not(.selected):hover{background:var(--element-base-1-hover)}.selected{background:var(--element-base-1-selected)}.disabled{opacity:var(--element-action-disabled-opacity)}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon", "color", "stackedIcon", "stackedColor", "alt", "size"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
61
60
  }
62
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiSummaryWidgetComponent, decorators: [{
63
62
  type: Component,
64
- args: [{ selector: 'si-summary-widget', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SiIconComponent, SiTranslateModule], template: "<div\n class=\"widget ps-2 pe-4 gap-2\"\n role=\"checkbox\"\n [attr.tabindex]=\"interactive() ? '0' : ''\"\n [attr.aria-disabled]=\"!interactive()\"\n [attr.aria-checked]=\"selected()\"\n [class.selected]=\"selected()\"\n [class.disabled]=\"disabled()\"\n [class.interactive]=\"interactive()\"\n (click)=\"toggleSelected()\"\n (keydown.enter)=\"toggleSelected()\"\n>\n @let actualIcon = statusIcon();\n @if (actualIcon.icon) {\n <si-icon\n size=\"icon\"\n alt=\"\"\n [icon]=\"actualIcon.icon\"\n [color]=\"actualIcon.color\"\n [stackedIcon]=\"actualIcon.stacked\"\n [stackedColor]=\"actualIcon.stackedColor\"\n />\n }\n <div class=\"d-flex flex-column py-2\" [class.ps-2]=\"!actualIcon.icon\">\n <div class=\"si-title-2\">{{ value() | translate }}</div>\n <div class=\"si-body-2 text-secondary\">{{ label() | translate }}</div>\n </div>\n</div>\n", styles: [".widget{display:inline-flex;align-items:start;block-size:100%;border-radius:var(--element-radius-1)}.widget.interactive{cursor:pointer}.widget.interactive:not(.selected):hover{background:var(--element-base-1-hover)}.selected{background:var(--element-base-1-selected)}.disabled{opacity:var(--element-action-disabled-opacity)}\n"] }]
63
+ args: [{ selector: 'si-summary-widget', imports: [SiIconComponent, SiTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"widget ps-2 pe-4 gap-2\"\n role=\"checkbox\"\n [attr.tabindex]=\"interactive() ? '0' : ''\"\n [attr.aria-disabled]=\"!interactive()\"\n [attr.aria-checked]=\"selected()\"\n [class.selected]=\"selected()\"\n [class.disabled]=\"disabled()\"\n [class.interactive]=\"interactive()\"\n (click)=\"toggleSelected()\"\n (keydown.enter)=\"toggleSelected()\"\n>\n @let actualIcon = statusIcon();\n @if (actualIcon.icon) {\n <si-icon\n size=\"icon\"\n alt=\"\"\n [icon]=\"actualIcon.icon\"\n [color]=\"actualIcon.color\"\n [stackedIcon]=\"actualIcon.stacked\"\n [stackedColor]=\"actualIcon.stackedColor\"\n />\n }\n <div class=\"d-flex flex-column py-2\" [class.ps-2]=\"!actualIcon.icon\">\n <div class=\"si-title-2\">{{ value() | translate }}</div>\n <div class=\"si-body-2 text-secondary\">{{ label() | translate }}</div>\n </div>\n</div>\n", styles: [".widget{display:inline-flex;align-items:start;block-size:100%;border-radius:var(--element-radius-1)}.widget.interactive{cursor:pointer}.widget.interactive:not(.selected):hover{background:var(--element-base-1-hover)}.selected{background:var(--element-base-1-selected)}.disabled{opacity:var(--element-action-disabled-opacity)}\n"] }]
65
64
  }] });
66
65
 
67
66
  /**
68
- * Copyright Siemens 2016 - 2025.
67
+ * Copyright (c) Siemens 2016 - 2025
69
68
  * SPDX-License-Identifier: MIT
70
69
  */
71
70
 
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-summary-widget.mjs","sources":["../../../../projects/element-ng/summary-widget/si-summary-widget.component.ts","../../../../projects/element-ng/summary-widget/si-summary-widget.component.html","../../../../projects/element-ng/summary-widget/index.ts","../../../../projects/element-ng/summary-widget/siemens-element-ng-summary-widget.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model\n} from '@angular/core';\nimport { ExtendedStatusType, STATUS_ICON } from '@siemens/element-ng/common';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslateModule, TranslatableString } from '@siemens/element-translate-ng/translate';\n\n@Component({\n selector: 'si-summary-widget',\n templateUrl: './si-summary-widget.component.html',\n styleUrl: './si-summary-widget.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SiIconComponent, SiTranslateModule]\n})\nexport class SiSummaryWidgetComponent {\n /** Status. Alternatively, use {@link icon} and {@link color}. */\n readonly status = input<ExtendedStatusType>();\n /** Icon token, see {@link https://element.siemens.io/icons/element}. */\n readonly icon = input<string>();\n /** Color class, see {@link https://element.siemens.io/fundamentals/typography/#color-variants-classes}. */\n readonly color = input<string>();\n /** Icon token, see {@link https://element.siemens.io/fundamentals/icons/}. */\n readonly stackedIcon = input<string>();\n /** Color class, see {@link https://element.siemens.io/fundamentals/icons/}. */\n readonly stackedColor = input<string>();\n /** The label. */\n readonly label = input.required<TranslatableString>();\n /** Value to display. */\n readonly value = input.required<TranslatableString>();\n /**\n * Selected state, will change when clicked.\n * @defaultValue false\n */\n readonly selected = model(false);\n /**\n * Readonly state.\n * @defaultValue false\n */\n readonly readonly = input(false, { transform: booleanAttribute });\n /**\n * Disabled state.\n * @defaultValue false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n protected readonly interactive = computed(() => !this.disabled() && !this.readonly());\n\n protected readonly statusIcon = computed(() => {\n const status = this.status();\n return status\n ? STATUS_ICON[status]\n : {\n icon: this.icon(),\n color: this.color(),\n stacked: this.stackedIcon(),\n stackedColor: this.stackedColor()\n };\n });\n\n protected toggleSelected(): void {\n if (this.interactive()) {\n this.selected.set(!this.selected());\n }\n }\n}\n","<div\n class=\"widget ps-2 pe-4 gap-2\"\n role=\"checkbox\"\n [attr.tabindex]=\"interactive() ? '0' : ''\"\n [attr.aria-disabled]=\"!interactive()\"\n [attr.aria-checked]=\"selected()\"\n [class.selected]=\"selected()\"\n [class.disabled]=\"disabled()\"\n [class.interactive]=\"interactive()\"\n (click)=\"toggleSelected()\"\n (keydown.enter)=\"toggleSelected()\"\n>\n @let actualIcon = statusIcon();\n @if (actualIcon.icon) {\n <si-icon\n size=\"icon\"\n alt=\"\"\n [icon]=\"actualIcon.icon\"\n [color]=\"actualIcon.color\"\n [stackedIcon]=\"actualIcon.stacked\"\n [stackedColor]=\"actualIcon.stackedColor\"\n />\n }\n <div class=\"d-flex flex-column py-2\" [class.ps-2]=\"!actualIcon.icon\">\n <div class=\"si-title-2\">{{ value() | translate }}</div>\n <div class=\"si-body-2 text-secondary\">{{ label() | translate }}</div>\n </div>\n</div>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-summary-widget.component';\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-summary-widget.mjs","sources":["../../../../projects/element-ng/summary-widget/si-summary-widget.component.ts","../../../../projects/element-ng/summary-widget/si-summary-widget.component.html","../../../../projects/element-ng/summary-widget/index.ts","../../../../projects/element-ng/summary-widget/siemens-element-ng-summary-widget.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model\n} from '@angular/core';\nimport { ExtendedStatusType, STATUS_ICON } from '@siemens/element-ng/common';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\n@Component({\n selector: 'si-summary-widget',\n imports: [SiIconComponent, SiTranslatePipe],\n templateUrl: './si-summary-widget.component.html',\n styleUrl: './si-summary-widget.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiSummaryWidgetComponent {\n /** Status. Alternatively, use {@link icon} and {@link color}. */\n readonly status = input<ExtendedStatusType>();\n /** Icon token, see {@link https://element.siemens.io/icons/element}. */\n readonly icon = input<string>();\n /** Color class, see {@link https://element.siemens.io/fundamentals/typography/#color-variants-classes}. */\n readonly color = input<string>();\n /** Icon token, see {@link https://element.siemens.io/fundamentals/icons/}. */\n readonly stackedIcon = input<string>();\n /** Color class, see {@link https://element.siemens.io/fundamentals/icons/}. */\n readonly stackedColor = input<string>();\n /** The label. */\n readonly label = input.required<TranslatableString>();\n /** Value to display. */\n readonly value = input.required<TranslatableString>();\n /**\n * Selected state, will change when clicked.\n * @defaultValue false\n */\n readonly selected = model(false);\n /**\n * Readonly state.\n * @defaultValue false\n */\n readonly readonly = input(false, { transform: booleanAttribute });\n /**\n * Disabled state.\n * @defaultValue false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n protected readonly interactive = computed(() => !this.disabled() && !this.readonly());\n\n protected readonly statusIcon = computed(() => {\n const status = this.status();\n return status\n ? STATUS_ICON[status]\n : {\n icon: this.icon(),\n color: this.color(),\n stacked: this.stackedIcon(),\n stackedColor: this.stackedColor()\n };\n });\n\n protected toggleSelected(): void {\n if (this.interactive()) {\n this.selected.set(!this.selected());\n }\n }\n}\n","<div\n class=\"widget ps-2 pe-4 gap-2\"\n role=\"checkbox\"\n [attr.tabindex]=\"interactive() ? '0' : ''\"\n [attr.aria-disabled]=\"!interactive()\"\n [attr.aria-checked]=\"selected()\"\n [class.selected]=\"selected()\"\n [class.disabled]=\"disabled()\"\n [class.interactive]=\"interactive()\"\n (click)=\"toggleSelected()\"\n (keydown.enter)=\"toggleSelected()\"\n>\n @let actualIcon = statusIcon();\n @if (actualIcon.icon) {\n <si-icon\n size=\"icon\"\n alt=\"\"\n [icon]=\"actualIcon.icon\"\n [color]=\"actualIcon.color\"\n [stackedIcon]=\"actualIcon.stacked\"\n [stackedColor]=\"actualIcon.stackedColor\"\n />\n }\n <div class=\"d-flex flex-column py-2\" [class.ps-2]=\"!actualIcon.icon\">\n <div class=\"si-title-2\">{{ value() | translate }}</div>\n <div class=\"si-body-2 text-secondary\">{{ label() | translate }}</div>\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-summary-widget.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAAA;;;AAGG;MAoBU,wBAAwB,CAAA;;IAE1B,MAAM,GAAG,KAAK,EAAsB;;IAEpC,IAAI,GAAG,KAAK,EAAU;;IAEtB,KAAK,GAAG,KAAK,EAAU;;IAEvB,WAAW,GAAG,KAAK,EAAU;;IAE7B,YAAY,GAAG,KAAK,EAAU;;AAE9B,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAsB;;AAE5C,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAsB;AACrD;;;AAGG;AACM,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;AAChC;;;AAGG;IACM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AACjE;;;AAGG;IACM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAE9C,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAElE,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC5C,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,OAAO;AACL,cAAE,WAAW,CAAC,MAAM;AACpB,cAAE;AACE,gBAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,gBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,gBAAA,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE;AAC3B,gBAAA,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC;AACP,KAAC,CAAC;IAEQ,cAAc,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;;;uGA/C5B,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,ECvBrC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,y4BA4BA,EDVY,MAAA,EAAA,CAAA,wUAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,wHAAE,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAK/B,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;+BACE,mBAAmB,EAAA,OAAA,EACpB,CAAC,eAAe,EAAE,eAAe,CAAC,EAAA,eAAA,EAG1B,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,y4BAAA,EAAA,MAAA,EAAA,CAAA,wUAAA,CAAA,EAAA;;;AErBjD;;;AAGG;;ACHH;;AAEG;;;;"}
@@ -1,10 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
- import * as i1 from '@siemens/element-translate-ng/translate';
4
- import { SiTranslateModule } from '@siemens/element-translate-ng/translate';
3
+ import { SiTranslatePipe } from '@siemens/element-translate-ng/translate';
5
4
 
6
5
  /**
7
- * Copyright Siemens 2016 - 2025.
6
+ * Copyright (c) Siemens 2016 - 2025
8
7
  * SPDX-License-Identifier: MIT
9
8
  */
10
9
  /**
@@ -25,17 +24,17 @@ class SiSystemBannerComponent {
25
24
  message = input.required();
26
25
  bannerClass = computed(() => `banner-${this.status()}`);
27
26
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiSystemBannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: SiSystemBannerComponent, isStandalone: true, selector: "si-system-banner", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class": "bannerClass()" } }, ngImport: i0, template: "<div\n class=\"text-center text-truncate si-title-2 banner\"\n role=\"alert\"\n aria-atomic=\"true\"\n aria-live=\"assertive\"\n>\n {{ message() | translate }}\n</div>\n", styles: [":host{display:block;inline-size:100%}:host .banner{padding-block:2px;padding-inline:12px}:host.banner-info{background-color:var(--element-status-information);color:var(--element-status-information-contrast)}:host.banner-success{background-color:var(--element-status-success);color:var(--element-status-success-contrast)}:host.banner-warning{background-color:var(--element-status-warning);color:var(--element-status-warning-contrast)}:host.banner-caution{background-color:var(--element-status-caution);color:var(--element-status-caution-contrast)}:host.banner-danger{background-color:var(--element-status-danger);color:var(--element-status-danger-contrast)}:host.banner-critical{background-color:var(--element-status-critical);color:var(--element-status-critical-contrast)}\n"], dependencies: [{ kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
27
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: SiSystemBannerComponent, isStandalone: true, selector: "si-system-banner", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class": "bannerClass()" } }, ngImport: i0, template: "<div\n class=\"text-center text-truncate si-title-2 banner\"\n role=\"alert\"\n aria-atomic=\"true\"\n aria-live=\"assertive\"\n>\n {{ message() | translate }}\n</div>\n", styles: [":host{display:block;inline-size:100%}:host .banner{padding-block:2px;padding-inline:12px}:host.banner-info{background-color:var(--element-status-information);color:var(--element-status-information-contrast)}:host.banner-success{background-color:var(--element-status-success);color:var(--element-status-success-contrast)}:host.banner-warning{background-color:var(--element-status-warning);color:var(--element-status-warning-contrast)}:host.banner-caution{background-color:var(--element-status-caution);color:var(--element-status-caution-contrast)}:host.banner-danger{background-color:var(--element-status-danger);color:var(--element-status-danger-contrast)}:host.banner-critical{background-color:var(--element-status-critical);color:var(--element-status-critical-contrast)}\n"], dependencies: [{ kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
29
28
  }
30
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiSystemBannerComponent, decorators: [{
31
30
  type: Component,
32
- args: [{ imports: [SiTranslateModule], selector: 'si-system-banner', changeDetection: ChangeDetectionStrategy.OnPush, host: {
31
+ args: [{ selector: 'si-system-banner', imports: [SiTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, host: {
33
32
  '[class]': 'bannerClass()'
34
33
  }, template: "<div\n class=\"text-center text-truncate si-title-2 banner\"\n role=\"alert\"\n aria-atomic=\"true\"\n aria-live=\"assertive\"\n>\n {{ message() | translate }}\n</div>\n", styles: [":host{display:block;inline-size:100%}:host .banner{padding-block:2px;padding-inline:12px}:host.banner-info{background-color:var(--element-status-information);color:var(--element-status-information-contrast)}:host.banner-success{background-color:var(--element-status-success);color:var(--element-status-success-contrast)}:host.banner-warning{background-color:var(--element-status-warning);color:var(--element-status-warning-contrast)}:host.banner-caution{background-color:var(--element-status-caution);color:var(--element-status-caution-contrast)}:host.banner-danger{background-color:var(--element-status-danger);color:var(--element-status-danger-contrast)}:host.banner-critical{background-color:var(--element-status-critical);color:var(--element-status-critical-contrast)}\n"] }]
35
34
  }] });
36
35
 
37
36
  /**
38
- * Copyright Siemens 2016 - 2025.
37
+ * Copyright (c) Siemens 2016 - 2025
39
38
  * SPDX-License-Identifier: MIT
40
39
  */
41
40
 
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-system-banner.mjs","sources":["../../../../projects/element-ng/system-banner/system-banner.component.ts","../../../../projects/element-ng/system-banner/system-banner.component.html","../../../../projects/element-ng/system-banner/index.ts","../../../../projects/element-ng/system-banner/siemens-element-ng-system-banner.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ExtendedStatusType } from '@siemens/element-ng/common';\nimport { TranslatableString, SiTranslateModule } from '@siemens/element-translate-ng/translate';\n\n/**\n * The system banner component displays a message with specific status as background.\n * Use this component for displaying system level messages on top of the page.\n */\n@Component({\n imports: [SiTranslateModule],\n selector: 'si-system-banner',\n templateUrl: './system-banner.component.html',\n styleUrl: './system-banner.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'bannerClass()'\n }\n})\nexport class SiSystemBannerComponent {\n /**\n * Status of the system banner.\n * Possible values are 'info', 'success', 'warning', 'caution', 'danger', 'critical'.\n *\n * @defaultValue 'info'\n */\n readonly status = input<ExtendedStatusType>('info');\n /**\n * Message to be displayed in the system banner.\n */\n readonly message = input.required<TranslatableString>();\n\n protected readonly bannerClass = computed(() => `banner-${this.status()}`);\n}\n","<div\n class=\"text-center text-truncate si-title-2 banner\"\n role=\"alert\"\n aria-atomic=\"true\"\n aria-live=\"assertive\"\n>\n {{ message() | translate }}\n</div>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './system-banner.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAAA;;;AAGG;AAKH;;;AAGG;MAWU,uBAAuB,CAAA;AAClC;;;;;AAKG;AACM,IAAA,MAAM,GAAG,KAAK,CAAqB,MAAM,CAAC;AACnD;;AAEG;AACM,IAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAsB;AAEpC,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAU,OAAA,EAAA,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC;uGAb/D,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBpC,gLAQA,EAAA,MAAA,EAAA,CAAA,wwBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDKY,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAShB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAVnC,SAAS;8BACC,CAAC,iBAAiB,CAAC,EAClB,QAAA,EAAA,kBAAkB,mBAGX,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,SAAS,EAAE;AACZ,qBAAA,EAAA,QAAA,EAAA,gLAAA,EAAA,MAAA,EAAA,CAAA,wwBAAA,CAAA,EAAA;;;AEpBH;;;AAGG;;ACHH;;AAEG;;;;"}
1
+ {"version":3,"file":"siemens-element-ng-system-banner.mjs","sources":["../../../../projects/element-ng/system-banner/system-banner.component.ts","../../../../projects/element-ng/system-banner/system-banner.component.html","../../../../projects/element-ng/system-banner/index.ts","../../../../projects/element-ng/system-banner/siemens-element-ng-system-banner.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ExtendedStatusType } from '@siemens/element-ng/common';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\n/**\n * The system banner component displays a message with specific status as background.\n * Use this component for displaying system level messages on top of the page.\n */\n@Component({\n selector: 'si-system-banner',\n imports: [SiTranslatePipe],\n templateUrl: './system-banner.component.html',\n styleUrl: './system-banner.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'bannerClass()'\n }\n})\nexport class SiSystemBannerComponent {\n /**\n * Status of the system banner.\n * Possible values are 'info', 'success', 'warning', 'caution', 'danger', 'critical'.\n *\n * @defaultValue 'info'\n */\n readonly status = input<ExtendedStatusType>('info');\n /**\n * Message to be displayed in the system banner.\n */\n readonly message = input.required<TranslatableString>();\n\n protected readonly bannerClass = computed(() => `banner-${this.status()}`);\n}\n","<div\n class=\"text-center text-truncate si-title-2 banner\"\n role=\"alert\"\n aria-atomic=\"true\"\n aria-live=\"assertive\"\n>\n {{ message() | translate }}\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './system-banner.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;AAGG;AAKH;;;AAGG;MAWU,uBAAuB,CAAA;AAClC;;;;;AAKG;AACM,IAAA,MAAM,GAAG,KAAK,CAAqB,MAAM,CAAC;AACnD;;AAEG;AACM,IAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAsB;AAEpC,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAU,OAAA,EAAA,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC;uGAb/D,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBpC,gLAQA,EAAA,MAAA,EAAA,CAAA,wwBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EDMY,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAQd,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAVnC,SAAS;+BACE,kBAAkB,EAAA,OAAA,EACnB,CAAC,eAAe,CAAC,mBAGT,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,SAAS,EAAE;AACZ,qBAAA,EAAA,QAAA,EAAA,gLAAA,EAAA,MAAA,EAAA,CAAA,wwBAAA,CAAA,EAAA;;;AEpBH;;;AAGG;;ACHH;;AAEG;;;;"}
@@ -3,18 +3,17 @@ import { CdkMenu, CdkMenuTrigger } from '@angular/cdk/menu';
3
3
  import { NgClass, NgTemplateOutlet } from '@angular/common';
4
4
  import * as i0 from '@angular/core';
5
5
  import { InjectionToken, input, booleanAttribute, output, computed, inject, ElementRef, viewChild, TemplateRef, Directive, signal, effect, ChangeDetectionStrategy, Component, model, contentChildren, INJECTOR } from '@angular/core';
6
- import * as i1$1 from '@angular/router';
6
+ import * as i1 from '@angular/router';
7
7
  import { Router, RouterLink, RouterLinkActive } from '@angular/router';
8
8
  import { SiMenuDirective, SiMenuItemComponent } from '@siemens/element-ng/menu';
9
- import * as i2 from '@siemens/element-ng/resize-observer';
9
+ import * as i1$1 from '@siemens/element-ng/resize-observer';
10
10
  import { SiResizeObserverModule } from '@siemens/element-ng/resize-observer';
11
- import * as i1 from '@siemens/element-translate-ng/translate';
12
- import { SiTranslateModule } from '@siemens/element-translate-ng/translate';
11
+ import { SiTranslatePipe } from '@siemens/element-translate-ng/translate';
13
12
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
14
13
  import { addIcons, elementCancel, SiIconNextComponent } from '@siemens/element-ng/icon';
15
14
 
16
15
  /**
17
- * Copyright Siemens 2016 - 2025.
16
+ * Copyright (c) Siemens 2016 - 2025
18
17
  * SPDX-License-Identifier: MIT
19
18
  */
20
19
  const SI_TABSET_NEXT = new InjectionToken('SiTabsetNextComponent');
@@ -146,7 +145,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
146
145
  }] });
147
146
 
148
147
  /**
149
- * Copyright Siemens 2016 - 2025.
148
+ * Copyright (c) Siemens 2016 - 2025
150
149
  * SPDX-License-Identifier: MIT
151
150
  */
152
151
  /** @experimental */
@@ -171,11 +170,11 @@ class SiTabNextLinkComponent extends SiTabNextBaseDirective {
171
170
  });
172
171
  }
173
172
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTabNextLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
174
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiTabNextLinkComponent, isStandalone: true, selector: "a[si-tab-next][routerLink]", host: { properties: { "class.active": "routerLinkActive.isActive", "attr.aria-selected": "routerLinkActive.isActive" } }, usesInheritance: true, hostDirectives: [{ directive: i1$1.RouterLinkActive }], ngImport: i0, template: "@let icon = this.icon();\n@if (icon) {\n <si-icon-next class=\"tab-icon\" [icon]=\"icon\" [attr.title]=\"heading() | translate\" />\n} @else {\n <span class=\"text-truncate\">{{ heading() | translate }}</span>\n}\n@if (badgeContent() === true) {\n <span class=\"badge-dot\"></span>\n} @else if (badgeContent() && badgeColor()) {\n <span class=\"badge\" [ngClass]=\"'bg-' + badgeColor()\">\n <!-- eslint-disable-next-line @angular-eslint/template/no-any -->\n {{ $any(badgeContent() ?? '') | translate }}\n </span>\n} @else if (badgeContent() && !badgeColor()) {\n <!-- eslint-disable-next-line @angular-eslint/template/no-any -->\n <span class=\"badge-text\"> {{ $any(badgeContent() ?? '') | translate }}</span>\n}\n@if (closable() && !disabledTab()) {\n <si-icon-next\n class=\"ms-4 me-n4 btn btn-circle btn-xs btn-ghost close\"\n [icon]=\"icons.elementCancel\"\n (click)=\"closeTab($event)\"\n />\n}\n\n<ng-template #tabContent>\n <ng-content />\n</ng-template>\n", styles: [":host.nav-link{flex-shrink:0;transform:translate(0);color:var(--element-text-primary)}:host.nav-link span.badge-dot{inset-block-end:100%;inset-inline-start:12px;margin-inline-end:12px}:host.nav-link span.badge-text{inset-block-end:calc(100% - 7px);inset-inline-start:2px}.tab-icon{font-size:24px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }, { kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
173
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiTabNextLinkComponent, isStandalone: true, selector: "a[si-tab-next][routerLink]", host: { properties: { "class.active": "routerLinkActive.isActive", "attr.aria-selected": "routerLinkActive.isActive" } }, usesInheritance: true, hostDirectives: [{ directive: i1.RouterLinkActive }], ngImport: i0, template: "@let icon = this.icon();\n@if (icon) {\n <si-icon-next class=\"tab-icon\" [icon]=\"icon\" [attr.title]=\"heading() | translate\" />\n} @else {\n <span class=\"text-truncate\">{{ heading() | translate }}</span>\n}\n@if (badgeContent() === true) {\n <span class=\"badge-dot\"></span>\n} @else if (badgeContent() && badgeColor()) {\n <span class=\"badge\" [ngClass]=\"'bg-' + badgeColor()\">\n <!-- eslint-disable-next-line @angular-eslint/template/no-any -->\n {{ $any(badgeContent() ?? '') | translate }}\n </span>\n} @else if (badgeContent() && !badgeColor()) {\n <!-- eslint-disable-next-line @angular-eslint/template/no-any -->\n <span class=\"badge-text\"> {{ $any(badgeContent() ?? '') | translate }}</span>\n}\n@if (closable() && !disabledTab()) {\n <si-icon-next\n class=\"ms-4 me-n4 btn btn-circle btn-xs btn-ghost close\"\n [icon]=\"icons.elementCancel\"\n (click)=\"closeTab($event)\"\n />\n}\n\n<ng-template #tabContent>\n <ng-content />\n</ng-template>\n", styles: [":host.nav-link{flex-shrink:0;transform:translate(0);color:var(--element-text-primary)}:host.nav-link span.badge-dot{inset-block-end:100%;inset-inline-start:12px;margin-inline-end:12px}:host.nav-link span.badge-text{inset-block-end:calc(100% - 7px);inset-inline-start:2px}.tab-icon{font-size:24px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
175
174
  }
176
175
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTabNextLinkComponent, decorators: [{
177
176
  type: Component,
178
- args: [{ selector: 'a[si-tab-next][routerLink]', imports: [NgClass, SiIconNextComponent, SiTranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, host: {
177
+ args: [{ selector: 'a[si-tab-next][routerLink]', imports: [NgClass, SiIconNextComponent, SiTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, host: {
179
178
  '[class.active]': 'routerLinkActive.isActive',
180
179
  '[attr.aria-selected]': 'routerLinkActive.isActive'
181
180
  }, hostDirectives: [
@@ -186,7 +185,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
186
185
  }], ctorParameters: () => [] });
187
186
 
188
187
  /**
189
- * Copyright Siemens 2016 - 2025.
188
+ * Copyright (c) Siemens 2016 - 2025
190
189
  * SPDX-License-Identifier: MIT
191
190
  */
192
191
  /** @experimental */
@@ -222,11 +221,11 @@ class SiTabNextComponent extends SiTabNextBaseDirective {
222
221
  }
223
222
  }
224
223
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTabNextComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
225
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiTabNextComponent, isStandalone: true, selector: "si-tab-next", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { active: "activeChange" }, host: { listeners: { "click": "selectTab()", "keydown.enter": "selectTab()" }, properties: { "class.active": "active()", "attr.aria-selected": "active()" } }, usesInheritance: true, ngImport: i0, template: "@let icon = this.icon();\n@if (icon) {\n <si-icon-next class=\"tab-icon\" [icon]=\"icon\" [attr.title]=\"heading() | translate\" />\n} @else {\n <span class=\"text-truncate\">{{ heading() | translate }}</span>\n}\n@if (badgeContent() === true) {\n <span class=\"badge-dot\"></span>\n} @else if (badgeContent() && badgeColor()) {\n <span class=\"badge\" [ngClass]=\"'bg-' + badgeColor()\">\n <!-- eslint-disable-next-line @angular-eslint/template/no-any -->\n {{ $any(badgeContent() ?? '') | translate }}\n </span>\n} @else if (badgeContent() && !badgeColor()) {\n <!-- eslint-disable-next-line @angular-eslint/template/no-any -->\n <span class=\"badge-text\"> {{ $any(badgeContent() ?? '') | translate }}</span>\n}\n@if (closable() && !disabledTab()) {\n <si-icon-next\n class=\"ms-4 me-n4 btn btn-circle btn-xs btn-ghost close\"\n [icon]=\"icons.elementCancel\"\n (click)=\"closeTab($event)\"\n />\n}\n\n<ng-template #tabContent>\n <ng-content />\n</ng-template>\n", styles: [":host.nav-link{flex-shrink:0;transform:translate(0);color:var(--element-text-primary)}:host.nav-link span.badge-dot{inset-block-end:100%;inset-inline-start:12px;margin-inline-end:12px}:host.nav-link span.badge-text{inset-block-end:calc(100% - 7px);inset-inline-start:2px}.tab-icon{font-size:24px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }, { kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
224
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiTabNextComponent, isStandalone: true, selector: "si-tab-next", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { active: "activeChange" }, host: { listeners: { "click": "selectTab()", "keydown.enter": "selectTab()" }, properties: { "class.active": "active()", "attr.aria-selected": "active()" } }, usesInheritance: true, ngImport: i0, template: "@let icon = this.icon();\n@if (icon) {\n <si-icon-next class=\"tab-icon\" [icon]=\"icon\" [attr.title]=\"heading() | translate\" />\n} @else {\n <span class=\"text-truncate\">{{ heading() | translate }}</span>\n}\n@if (badgeContent() === true) {\n <span class=\"badge-dot\"></span>\n} @else if (badgeContent() && badgeColor()) {\n <span class=\"badge\" [ngClass]=\"'bg-' + badgeColor()\">\n <!-- eslint-disable-next-line @angular-eslint/template/no-any -->\n {{ $any(badgeContent() ?? '') | translate }}\n </span>\n} @else if (badgeContent() && !badgeColor()) {\n <!-- eslint-disable-next-line @angular-eslint/template/no-any -->\n <span class=\"badge-text\"> {{ $any(badgeContent() ?? '') | translate }}</span>\n}\n@if (closable() && !disabledTab()) {\n <si-icon-next\n class=\"ms-4 me-n4 btn btn-circle btn-xs btn-ghost close\"\n [icon]=\"icons.elementCancel\"\n (click)=\"closeTab($event)\"\n />\n}\n\n<ng-template #tabContent>\n <ng-content />\n</ng-template>\n", styles: [":host.nav-link{flex-shrink:0;transform:translate(0);color:var(--element-text-primary)}:host.nav-link span.badge-dot{inset-block-end:100%;inset-inline-start:12px;margin-inline-end:12px}:host.nav-link span.badge-text{inset-block-end:calc(100% - 7px);inset-inline-start:2px}.tab-icon{font-size:24px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
226
225
  }
227
226
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTabNextComponent, decorators: [{
228
227
  type: Component,
229
- args: [{ selector: 'si-tab-next', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgClass, SiIconNextComponent, SiTranslateModule], host: {
228
+ args: [{ selector: 'si-tab-next', imports: [NgClass, SiIconNextComponent, SiTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, host: {
230
229
  '[class.active]': 'active()',
231
230
  '[attr.aria-selected]': 'active()',
232
231
  '(click)': 'selectTab()',
@@ -235,7 +234,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
235
234
  }] });
236
235
 
237
236
  /**
238
- * Copyright Siemens 2016 - 2025.
237
+ * Copyright (c) Siemens 2016 - 2025
239
238
  * SPDX-License-Identifier: MIT
240
239
  */
241
240
  /** @experimental */
@@ -323,19 +322,19 @@ class SiTabsetNextComponent {
323
322
  provide: SI_TABSET_NEXT,
324
323
  useExisting: SiTabsetNextComponent
325
324
  }
326
- ], queries: [{ propertyName: "tabPanelsLinks", predicate: SiTabNextLinkComponent, isSignal: true }, { propertyName: "tabPanelsComponents", predicate: SiTabNextComponent, isSignal: true }], viewQueries: [{ propertyName: "menu", first: true, predicate: ["menu"], descendants: true, read: CdkMenu, isSignal: true }], ngImport: i0, template: "<div class=\"tabs-container\">\n <div class=\"tab-container-buttonbar-list nav nav-tabs\">\n <div\n #tabScrollContainer\n role=\"tablist\"\n tabindex=\"-1\"\n class=\"d-flex tabs-wrapper\"\n (siResizeObserver)=\"\n resizeContainer(tabScrollContainer.clientWidth, tabScrollContainer.scrollWidth)\n \"\n >\n <ng-content />\n </div>\n\n @if (showMenuButton()) {\n <button\n type=\"button\"\n class=\"dropdown btn btn-tertiary focus-inside\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [cdkMenuTriggerFor]=\"tabsMenu\"\n (cdkMenuOpened)=\"menuOpened()\"\n >\n <i class=\"icon element-options m-0\"></i>\n </button>\n }\n </div>\n @let tabContent = this.activeTab()?.tabContent();\n @let activeTab = this.activeTab();\n\n @if (activeTab) {\n <div\n class=\"tab-content\"\n role=\"tabpanel\"\n [id]=\"'content-' + activeTab.tabId\"\n [attr.aria-labelledby]=\"'tab-' + activeTab.tabId\"\n >\n @if (tabContent) {\n <ng-container [ngTemplateOutlet]=\"tabContent\" />\n }\n\n <ng-content select=\"router-outlet\" />\n </div>\n }\n</div>\n\n<ng-template #tabsMenu>\n <si-menu #menu>\n @for (tab of tabPanels(); track tab) {\n @let badgeColor = tab.badgeColor();\n @let badgeIsNumber = tab.badgeIsNumber();\n\n @if (badgeColor && badgeIsNumber) {\n <!-- eslint-disable @angular-eslint/template/no-any -->\n <a\n #menuItem\n si-menu-item\n [disabled]=\"tab.disabledTab()\"\n [badgeColor]=\"badgeColor\"\n [badge]=\"$any(tab.badgeContent())\"\n [icon]=\"tab.icon()\"\n [routerLink]=\"tabIsLink(tab) ? tab.routerLink?.urlTree : undefined\"\n (keydown.enter)=\"tab.selectTab(true)\"\n (triggered)=\"tab.selectTab(true)\"\n >\n <ng-container [ngTemplateOutlet]=\"badgeTemplate\" [ngTemplateOutletContext]=\"{ tab }\" />\n </a>\n } @else if (badgeIsNumber && badgeColor) {\n <a\n #menuItem\n si-menu-item\n [disabled]=\"tab.disabledTab()\"\n [icon]=\"tab.icon()\"\n [badgeColor]=\"badgeColor\"\n [badge]=\"$any(tab.badgeContent())\"\n [routerLink]=\"tabIsLink(tab) ? tab.routerLink?.urlTree : undefined\"\n (keydown.enter)=\"tab.selectTab(true)\"\n (triggered)=\"tab.selectTab(true)\"\n >\n <!-- eslint-enable -->\n <ng-container [ngTemplateOutlet]=\"badgeTemplate\" [ngTemplateOutletContext]=\"{ tab }\" />\n </a>\n } @else {\n <a\n #menuItem\n si-menu-item\n [disabled]=\"tab.disabledTab()\"\n [icon]=\"tab.icon()\"\n [routerLink]=\"tabIsLink(tab) ? tab.routerLink?.urlTree : undefined\"\n (keydown.enter)=\"tab.selectTab(true)\"\n (triggered)=\"tab.selectTab(true)\"\n >\n <ng-container [ngTemplateOutlet]=\"badgeTemplate\" [ngTemplateOutletContext]=\"{ tab }\" />\n </a>\n }\n }\n </si-menu>\n</ng-template>\n\n<ng-template #badgeTemplate let-tab=\"tab\">\n <div class=\"d-flex align-items-center space-between flex-no-wrap justify-content-between\">\n {{ tab.heading() }}\n @if (tab.badgeContent() === true) {\n <span class=\"badge-dot\"></span>\n } @else if (tab.badgeContent() && !tab.badgeColor()) {\n <!-- eslint-disable-next-line @angular-eslint/template/no-any -->\n <span class=\"badge-text\"> {{ $any(tab.badgeContent() ?? '') | translate }}</span>\n }\n </div>\n</ng-template>\n", styles: [":host{display:block;flex-direction:column}.tabs-container{display:flex;flex-wrap:wrap;overflow:hidden;block-size:100%;min-block-size:40px}.tabs-container:before{inset-block-start:38px;inset-block-end:auto}.tab-container-buttonbar-list{display:flex;min-block-size:40px;overflow:hidden;flex:1;order:1;min-inline-size:100px}.btn.dropdown{color:var(--element-text-primary);min-inline-size:0;border-block-end:2px solid var(--element-ui-4);order:2;block-size:40px;padding-inline:12px;flex-shrink:0}.btn.dropdown:hover{border-color:var(--element-ui-4);color:var(--element-action-secondary-text-hover)}a[si-menu-item] .badge-dot{inset-block-end:4px;min-inline-size:12px;margin-inline-start:4px}.tab-content{inline-size:100%;block-size:calc(100% - 40px);order:3}.tabs-wrapper{overflow-y:hidden;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none}\n"], dependencies: [{ kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }, { kind: "directive", type: SiMenuDirective, selector: "si-menu" }, { kind: "component", type: SiMenuItemComponent, selector: "si-menu-item, a[si-menu-item], button[si-menu-item]" }, { kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: SiResizeObserverModule }, { kind: "directive", type: i2.SiResizeObserverDirective, selector: "[siResizeObserver]", inputs: ["resizeThrottle", "emitInitial"], outputs: ["siResizeObserver"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
325
+ ], queries: [{ propertyName: "tabPanelsLinks", predicate: SiTabNextLinkComponent, isSignal: true }, { propertyName: "tabPanelsComponents", predicate: SiTabNextComponent, isSignal: true }], viewQueries: [{ propertyName: "menu", first: true, predicate: ["menu"], descendants: true, read: CdkMenu, isSignal: true }], ngImport: i0, template: "<div class=\"tabs-container\">\n <div class=\"tab-container-buttonbar-list nav nav-tabs\">\n <div\n #tabScrollContainer\n role=\"tablist\"\n tabindex=\"-1\"\n class=\"d-flex tabs-wrapper\"\n (siResizeObserver)=\"\n resizeContainer(tabScrollContainer.clientWidth, tabScrollContainer.scrollWidth)\n \"\n >\n <ng-content />\n </div>\n\n @if (showMenuButton()) {\n <button\n type=\"button\"\n class=\"dropdown btn btn-tertiary focus-inside\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [cdkMenuTriggerFor]=\"tabsMenu\"\n (cdkMenuOpened)=\"menuOpened()\"\n >\n <i class=\"icon element-options m-0\"></i>\n </button>\n }\n </div>\n @let tabContent = this.activeTab()?.tabContent();\n @let activeTab = this.activeTab();\n\n @if (activeTab) {\n <div\n class=\"tab-content\"\n role=\"tabpanel\"\n [id]=\"'content-' + activeTab.tabId\"\n [attr.aria-labelledby]=\"'tab-' + activeTab.tabId\"\n >\n @if (tabContent) {\n <ng-container [ngTemplateOutlet]=\"tabContent\" />\n }\n\n <ng-content select=\"router-outlet\" />\n </div>\n }\n</div>\n\n<ng-template #tabsMenu>\n <si-menu #menu>\n @for (tab of tabPanels(); track tab) {\n @let badgeColor = tab.badgeColor();\n @let badgeIsNumber = tab.badgeIsNumber();\n\n @if (badgeColor && badgeIsNumber) {\n <!-- eslint-disable @angular-eslint/template/no-any -->\n <a\n #menuItem\n si-menu-item\n [disabled]=\"tab.disabledTab()\"\n [badgeColor]=\"badgeColor\"\n [badge]=\"$any(tab.badgeContent())\"\n [icon]=\"tab.icon()\"\n [routerLink]=\"tabIsLink(tab) ? tab.routerLink?.urlTree : undefined\"\n (keydown.enter)=\"tab.selectTab(true)\"\n (triggered)=\"tab.selectTab(true)\"\n >\n <ng-container [ngTemplateOutlet]=\"badgeTemplate\" [ngTemplateOutletContext]=\"{ tab }\" />\n </a>\n } @else if (badgeIsNumber && badgeColor) {\n <a\n #menuItem\n si-menu-item\n [disabled]=\"tab.disabledTab()\"\n [icon]=\"tab.icon()\"\n [badgeColor]=\"badgeColor\"\n [badge]=\"$any(tab.badgeContent())\"\n [routerLink]=\"tabIsLink(tab) ? tab.routerLink?.urlTree : undefined\"\n (keydown.enter)=\"tab.selectTab(true)\"\n (triggered)=\"tab.selectTab(true)\"\n >\n <!-- eslint-enable -->\n <ng-container [ngTemplateOutlet]=\"badgeTemplate\" [ngTemplateOutletContext]=\"{ tab }\" />\n </a>\n } @else {\n <a\n #menuItem\n si-menu-item\n [disabled]=\"tab.disabledTab()\"\n [icon]=\"tab.icon()\"\n [routerLink]=\"tabIsLink(tab) ? tab.routerLink?.urlTree : undefined\"\n (keydown.enter)=\"tab.selectTab(true)\"\n (triggered)=\"tab.selectTab(true)\"\n >\n <ng-container [ngTemplateOutlet]=\"badgeTemplate\" [ngTemplateOutletContext]=\"{ tab }\" />\n </a>\n }\n }\n </si-menu>\n</ng-template>\n\n<ng-template #badgeTemplate let-tab=\"tab\">\n <div class=\"d-flex align-items-center space-between flex-no-wrap justify-content-between\">\n {{ tab.heading() }}\n @if (tab.badgeContent() === true) {\n <span class=\"badge-dot\"></span>\n } @else if (tab.badgeContent() && !tab.badgeColor()) {\n <!-- eslint-disable-next-line @angular-eslint/template/no-any -->\n <span class=\"badge-text\"> {{ $any(tab.badgeContent() ?? '') | translate }}</span>\n }\n </div>\n</ng-template>\n", styles: [":host{display:block;flex-direction:column}.tabs-container{display:flex;flex-wrap:wrap;overflow:hidden;block-size:100%;min-block-size:40px}.tabs-container:before{inset-block-start:38px;inset-block-end:auto}.tab-container-buttonbar-list{display:flex;min-block-size:40px;overflow:hidden;flex:1;order:1;min-inline-size:100px}.btn.dropdown{color:var(--element-text-primary);min-inline-size:0;border-block-end:2px solid var(--element-ui-4);order:2;block-size:40px;padding-inline:12px;flex-shrink:0}.btn.dropdown:hover{border-color:var(--element-ui-4);color:var(--element-action-secondary-text-hover)}a[si-menu-item] .badge-dot{inset-block-end:4px;min-inline-size:12px;margin-inline-start:4px}.tab-content{inline-size:100%;block-size:calc(100% - 40px);order:3}.tabs-wrapper{overflow-y:hidden;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none}\n"], dependencies: [{ kind: "pipe", type: SiTranslatePipe, name: "translate" }, { kind: "directive", type: SiMenuDirective, selector: "si-menu" }, { kind: "component", type: SiMenuItemComponent, selector: "si-menu-item, a[si-menu-item], button[si-menu-item]" }, { kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: SiResizeObserverModule }, { kind: "directive", type: i1$1.SiResizeObserverDirective, selector: "[siResizeObserver]", inputs: ["resizeThrottle", "emitInitial"], outputs: ["siResizeObserver"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
327
326
  }
328
327
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTabsetNextComponent, decorators: [{
329
328
  type: Component,
330
- args: [{ selector: 'si-tabset-next', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
331
- SiTranslateModule,
329
+ args: [{ selector: 'si-tabset-next', imports: [
330
+ SiTranslatePipe,
332
331
  SiMenuDirective,
333
332
  SiMenuItemComponent,
334
333
  CdkMenuTrigger,
335
334
  NgTemplateOutlet,
336
335
  SiResizeObserverModule,
337
336
  RouterLink
338
- ], providers: [
337
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
339
338
  {
340
339
  provide: SI_TABSET_NEXT,
341
340
  useExisting: SiTabsetNextComponent
@@ -344,7 +343,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
344
343
  }] });
345
344
 
346
345
  /**
347
- * Copyright Siemens 2016 - 2025.
346
+ * Copyright (c) Siemens 2016 - 2025
348
347
  * SPDX-License-Identifier: MIT
349
348
  */
350
349
 
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-tabs-next.mjs","sources":["../../../../projects/element-ng/tabs-next/si-tabs-tokens.ts","../../../../projects/element-ng/tabs-next/si-tab-next-base.directive.ts","../../../../projects/element-ng/tabs-next/si-tab-next-link.component.ts","../../../../projects/element-ng/tabs-next/si-tab-next.component.html","../../../../projects/element-ng/tabs-next/si-tab-next.component.ts","../../../../projects/element-ng/tabs-next/si-tabset-next.component.ts","../../../../projects/element-ng/tabs-next/si-tabset-next.component.html","../../../../projects/element-ng/tabs-next/index.ts","../../../../projects/element-ng/tabs-next/siemens-element-ng-tabs-next.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { InjectionToken } from '@angular/core';\n\nimport { SiTabsetNextComponent } from './si-tabset-next.component';\n\nexport const SI_TABSET_NEXT = new InjectionToken<SiTabsetNextComponent>('SiTabsetNextComponent');\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n OnDestroy,\n output,\n TemplateRef,\n viewChild,\n WritableSignal\n} from '@angular/core';\nimport { addIcons, elementCancel } from '@siemens/element-ng/icon';\nimport { TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SI_TABSET_NEXT } from './si-tabs-tokens';\n\n@Directive({\n selector: '[siTabNextBase]',\n host: {\n class: 'nav-link focus-inside px-5 si-title-1',\n role: 'tab',\n '[class.disabled]': 'disabledTab()',\n '[attr.id]': \"'tab-' + tabId\",\n '[attr.aria-disabled]': 'disabledTab()',\n '[attr.tabindex]': 'tabset.focusKeyManager?.activeItem === this && !disabledTab() ? 0 : -1',\n '[attr.aria-controls]': \"'content-' + tabId\",\n '(keydown.arrowLeft)': 'tabset.focusPrevious($event)',\n '(keydown.arrowRight)': 'tabset.focusNext($event)',\n '(keydown.delete)': 'closeTab($event)'\n }\n})\nexport abstract class SiTabNextBaseDirective implements OnDestroy, FocusableOption {\n abstract readonly active: WritableSignal<boolean>;\n /** Title of the tab item. */\n readonly heading = input.required<TranslatableString>();\n /**\n * Icon of the tab item.\n * If provided, heading text will be ignored and only icon will be displayed.\n */\n readonly icon = input<string>();\n /**\n * Additional badge content. A value of\n * - `true` will render a red dot\n * - any string without a `badgeColor` will render a red dot with text\n * - any string with a `badgeColor` will render a normal badge\n */\n readonly badgeContent = input<TranslatableString | boolean>();\n /**\n * Background color of the badge.\n * If no color is provided a red dot badge will be rendered.\n */\n readonly badgeColor = input<string>();\n /**\n * Disables the tab.\n *\n * @defaultValue false\n */\n readonly disabledTab = input(false, {\n transform: booleanAttribute,\n // eslint-disable-next-line @angular-eslint/no-input-rename\n alias: 'disabled'\n });\n /**\n * Close the current tab.\n *\n * @defaultValue false\n */\n readonly closable = input(false, {\n transform: booleanAttribute\n });\n /** Event emitter to notify when a tab is closed. */\n readonly closeTriggered = output();\n\n /** @internal */\n readonly badgeIsNumber = computed(() => {\n return typeof this.badgeContent() !== 'boolean';\n });\n\n readonly tabButton = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly tabContent = viewChild('tabContent', { read: TemplateRef });\n\n private static tabCounter = 0;\n private indexBeforeClose = -1;\n\n /** @internal */\n tabId = `${SiTabNextBaseDirective.tabCounter++}`;\n protected readonly icons = addIcons({ elementCancel });\n protected tabset = inject(SI_TABSET_NEXT);\n /** @internal */\n readonly index = computed(() =>\n this.tabset.tabPanels().findIndex(tab => tab.tabId === this.tabId)\n );\n\n ngOnDestroy(): void {\n // adjust the focus index and selected tab index if component is destroyed\n // as a side effect to close tab event\n if (this.indexBeforeClose >= 0) {\n const indexToFocus = this.tabset.getNextIndexToFocus(this.indexBeforeClose);\n if (this.active()) {\n this.tabset.focusKeyManager?.updateActiveItem(indexToFocus);\n this.tabset.tabPanels()[indexToFocus].tabButton.nativeElement.focus();\n } else {\n const selectedItemIndex = this.tabset.activeTabIndex() ?? 0;\n this.tabset.focusKeyManager?.updateActiveItem(selectedItemIndex);\n this.tabset.tabPanels()[selectedItemIndex].focus();\n }\n // if this tab was the active one we need to select next tab as active\n if (this.active()) {\n const targetActiveTab = this.tabset.tabPanels()[indexToFocus];\n if (targetActiveTab) {\n targetActiveTab.active.set(true);\n }\n }\n }\n }\n\n protected closeTab(event: Event): void {\n if (this.closable() && !this.disabledTab()) {\n event.stopPropagation();\n const index = this.index();\n this.closeTriggered.emit();\n this.indexBeforeClose = index;\n }\n }\n\n focus(origin?: FocusOrigin): void {\n this.tabButton.nativeElement.focus({ preventScroll: true });\n // The element is not fully scrolled into view when focused. So we prevent and scroll it manually.\n this.tabButton.nativeElement.scrollIntoView({\n inline: 'nearest',\n block: 'nearest',\n behavior: 'instant'\n });\n }\n\n get disabled(): boolean {\n return this.disabledTab();\n }\n\n selectTab(retainFocus?: boolean): void {\n this.tabset.focusKeyManager?.updateActiveItem(this.index());\n if (retainFocus) {\n // We need the timeout to wait for cdkMenu to restore the focus before we move it again.\n setTimeout(() => this.focus());\n }\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Router, RouterLink, RouterLinkActive } from '@angular/router';\nimport { SiIconNextComponent } from '@siemens/element-ng/icon';\nimport { SiTranslateModule } from '@siemens/element-translate-ng/translate';\n\nimport { SiTabNextBaseDirective } from './si-tab-next-base.directive';\n\n/** @experimental */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'a[si-tab-next][routerLink]',\n templateUrl: './si-tab-next.component.html',\n styleUrl: './si-tab-next.component.scss',\n imports: [NgClass, SiIconNextComponent, SiTranslateModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.active]': 'routerLinkActive.isActive',\n '[attr.aria-selected]': 'routerLinkActive.isActive'\n },\n hostDirectives: [\n {\n directive: RouterLinkActive\n }\n ]\n})\nexport class SiTabNextLinkComponent extends SiTabNextBaseDirective {\n private router = inject(Router, { optional: true });\n /** @defaultValue false */\n override readonly active = signal(false);\n /** @internal */\n routerLink = inject(RouterLink, { optional: true, self: true });\n private routerLinkActive = inject(RouterLinkActive, { self: true });\n constructor() {\n super();\n this.routerLinkActive.isActiveChange\n .pipe(takeUntilDestroyed())\n .subscribe(isActive => this.active.set(isActive));\n\n effect(() => {\n if (this.active()) {\n if (this.router && this.routerLink?.urlTree) {\n this.router.navigateByUrl(this.routerLink.urlTree);\n }\n }\n });\n }\n}\n","@let icon = this.icon();\n@if (icon) {\n <si-icon-next class=\"tab-icon\" [icon]=\"icon\" [attr.title]=\"heading() | translate\" />\n} @else {\n <span class=\"text-truncate\">{{ heading() | translate }}</span>\n}\n@if (badgeContent() === true) {\n <span class=\"badge-dot\"></span>\n} @else if (badgeContent() && badgeColor()) {\n <span class=\"badge\" [ngClass]=\"'bg-' + badgeColor()\">\n <!-- eslint-disable-next-line @angular-eslint/template/no-any -->\n {{ $any(badgeContent() ?? '') | translate }}\n </span>\n} @else if (badgeContent() && !badgeColor()) {\n <!-- eslint-disable-next-line @angular-eslint/template/no-any -->\n <span class=\"badge-text\"> {{ $any(badgeContent() ?? '') | translate }}</span>\n}\n@if (closable() && !disabledTab()) {\n <si-icon-next\n class=\"ms-4 me-n4 btn btn-circle btn-xs btn-ghost close\"\n [icon]=\"icons.elementCancel\"\n (click)=\"closeTab($event)\"\n />\n}\n\n<ng-template #tabContent>\n <ng-content />\n</ng-template>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, model, OnDestroy } from '@angular/core';\nimport { SiIconNextComponent } from '@siemens/element-ng/icon';\nimport { SiTranslateModule } from '@siemens/element-translate-ng/translate';\n\nimport { SiTabNextBaseDirective } from './si-tab-next-base.directive';\n\n/** @experimental */\n@Component({\n selector: 'si-tab-next',\n templateUrl: './si-tab-next.component.html',\n styleUrl: './si-tab-next.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass, SiIconNextComponent, SiTranslateModule],\n host: {\n '[class.active]': 'active()',\n '[attr.aria-selected]': 'active()',\n '(click)': 'selectTab()',\n '(keydown.enter)': 'selectTab()'\n }\n})\nexport class SiTabNextComponent extends SiTabNextBaseDirective implements OnDestroy {\n /**\n * Whether the tab is active or not.\n * If set to `true`, the tab will be selected and its content will be displayed.\n * @defaultValue false\n * */\n override readonly active = model(false);\n\n /** @internal */\n override selectTab(retainFocus?: boolean): void {\n const tabs = this.tabset.tabPanels();\n const newTabIndex = this.index();\n const currentTabIndex = this.tabset.activeTabIndex();\n let continueWithSelection = newTabIndex !== currentTabIndex;\n\n if (continueWithSelection && currentTabIndex !== -1) {\n const currentTab = tabs[currentTabIndex];\n const deselectEvent = {\n target: currentTab,\n tabIndex: currentTabIndex,\n cancel: () => {\n continueWithSelection = false;\n currentTab.active.set(true);\n }\n };\n\n currentTab.active.set(false);\n this.tabset.deselect.emit(deselectEvent);\n }\n\n if (continueWithSelection) {\n this.active.set(true);\n super.selectTab(retainFocus);\n }\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { CdkMenu, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n inject,\n INJECTOR,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { SiMenuDirective, SiMenuItemComponent } from '@siemens/element-ng/menu';\nimport { SiResizeObserverModule } from '@siemens/element-ng/resize-observer';\nimport { SiTranslateModule } from '@siemens/element-translate-ng/translate';\n\nimport { SiTabNextLinkComponent } from './si-tab-next-link.component';\nimport { SiTabNextComponent } from './si-tab-next.component';\nimport { SI_TABSET_NEXT } from './si-tabs-tokens';\n\n/** @experimental */\nexport interface SiTabNextDeselectionEvent {\n /**\n * The target tab\n */\n target: SiTabNextComponent | SiTabNextLinkComponent;\n /**\n * The index of target tab\n */\n tabIndex: number;\n /**\n * To be called to prevent switching the tab\n */\n cancel: () => void;\n}\n\n/** @experimental */\n@Component({\n selector: 'si-tabset-next',\n templateUrl: './si-tabset-next.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: './si-tabset-next.component.scss',\n imports: [\n SiTranslateModule,\n SiMenuDirective,\n SiMenuItemComponent,\n CdkMenuTrigger,\n NgTemplateOutlet,\n SiResizeObserverModule,\n RouterLink\n ],\n providers: [\n {\n provide: SI_TABSET_NEXT,\n useExisting: SiTabsetNextComponent\n }\n ]\n})\nexport class SiTabsetNextComponent implements AfterViewInit {\n /**\n * Event emitter to notify when a tab became inactive.\n */\n readonly deselect = output<SiTabNextDeselectionEvent>();\n\n /** @internal */\n readonly activeTab = computed(() => {\n return this.tabPanels().find(tab => tab.active());\n });\n /** @internal */\n readonly activeTabIndex = computed(() => this.activeTab()?.index() ?? -1);\n\n /** @internal */\n focusKeyManager?: FocusKeyManager<SiTabNextComponent | SiTabNextLinkComponent>;\n\n private readonly tabPanelsLinks = contentChildren(SiTabNextLinkComponent);\n private readonly tabPanelsComponents = contentChildren(SiTabNextComponent);\n\n /** @internal */\n readonly tabPanels = computed(() => {\n const allTabs: (SiTabNextLinkComponent | SiTabNextComponent)[] = [\n ...this.tabPanelsLinks(),\n ...this.tabPanelsComponents()\n ];\n return allTabs;\n });\n\n protected readonly menu = viewChild('menu', { read: CdkMenu });\n protected readonly showMenuButton = signal(false);\n\n private injector = inject(INJECTOR);\n\n ngAfterViewInit(): void {\n this.focusKeyManager = new FocusKeyManager(this.tabPanels, this.injector);\n // To avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n this.focusKeyManager?.updateActiveItem(this.tabPanels().findIndex(tab => !tab.disabledTab()));\n });\n }\n\n protected menuOpened(): void {\n // wait for menu items to be rendered\n setTimeout(() => {\n const nextMenuItemToFocus = this.getNextIndexToFocus(this.activeTabIndex() + 1);\n const menuItems = this.menu()?.items.toArray() ?? [];\n if (nextMenuItemToFocus >= 0 && nextMenuItemToFocus < menuItems.length) {\n menuItems[nextMenuItemToFocus].focus();\n // bug in cdk as setting focus on menu item does not update focus manager active item\n // eslint-disable-next-line @typescript-eslint/dot-notation\n const focusManager = this.menu()?.['keyManager'];\n focusManager?.updateActiveItem(nextMenuItemToFocus);\n } else {\n menuItems[0].focus();\n }\n });\n }\n\n protected tabIsLink(tab: unknown): tab is SiTabNextLinkComponent {\n return tab instanceof SiTabNextLinkComponent;\n }\n\n /** @internal */\n focusPrevious(e: Event): void {\n e.preventDefault();\n this.focusKeyManager?.setPreviousItemActive();\n }\n\n /** @internal */\n focusNext(e: Event): void {\n e.preventDefault();\n this.focusKeyManager?.setNextItemActive();\n }\n\n /** @internal */\n getNextIndexToFocus(currentIndex: number): number {\n for (let i = 0; i < this.tabPanels().length; i++) {\n // Get the actual index using modulo to wrap around\n const checkIndex = (currentIndex + i) % this.tabPanels().length;\n\n if (!this.tabPanels()[checkIndex].disabledTab()) {\n return this.tabPanels()[checkIndex].index();\n }\n }\n return -1;\n }\n\n protected resizeContainer(width: number, scrollWidth: number): void {\n // 48px is the width of the menu button.\n this.showMenuButton.set(scrollWidth > width + (this.showMenuButton() ? 48 : 0));\n }\n}\n","<div class=\"tabs-container\">\n <div class=\"tab-container-buttonbar-list nav nav-tabs\">\n <div\n #tabScrollContainer\n role=\"tablist\"\n tabindex=\"-1\"\n class=\"d-flex tabs-wrapper\"\n (siResizeObserver)=\"\n resizeContainer(tabScrollContainer.clientWidth, tabScrollContainer.scrollWidth)\n \"\n >\n <ng-content />\n </div>\n\n @if (showMenuButton()) {\n <button\n type=\"button\"\n class=\"dropdown btn btn-tertiary focus-inside\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [cdkMenuTriggerFor]=\"tabsMenu\"\n (cdkMenuOpened)=\"menuOpened()\"\n >\n <i class=\"icon element-options m-0\"></i>\n </button>\n }\n </div>\n @let tabContent = this.activeTab()?.tabContent();\n @let activeTab = this.activeTab();\n\n @if (activeTab) {\n <div\n class=\"tab-content\"\n role=\"tabpanel\"\n [id]=\"'content-' + activeTab.tabId\"\n [attr.aria-labelledby]=\"'tab-' + activeTab.tabId\"\n >\n @if (tabContent) {\n <ng-container [ngTemplateOutlet]=\"tabContent\" />\n }\n\n <ng-content select=\"router-outlet\" />\n </div>\n }\n</div>\n\n<ng-template #tabsMenu>\n <si-menu #menu>\n @for (tab of tabPanels(); track tab) {\n @let badgeColor = tab.badgeColor();\n @let badgeIsNumber = tab.badgeIsNumber();\n\n @if (badgeColor && badgeIsNumber) {\n <!-- eslint-disable @angular-eslint/template/no-any -->\n <a\n #menuItem\n si-menu-item\n [disabled]=\"tab.disabledTab()\"\n [badgeColor]=\"badgeColor\"\n [badge]=\"$any(tab.badgeContent())\"\n [icon]=\"tab.icon()\"\n [routerLink]=\"tabIsLink(tab) ? tab.routerLink?.urlTree : undefined\"\n (keydown.enter)=\"tab.selectTab(true)\"\n (triggered)=\"tab.selectTab(true)\"\n >\n <ng-container [ngTemplateOutlet]=\"badgeTemplate\" [ngTemplateOutletContext]=\"{ tab }\" />\n </a>\n } @else if (badgeIsNumber && badgeColor) {\n <a\n #menuItem\n si-menu-item\n [disabled]=\"tab.disabledTab()\"\n [icon]=\"tab.icon()\"\n [badgeColor]=\"badgeColor\"\n [badge]=\"$any(tab.badgeContent())\"\n [routerLink]=\"tabIsLink(tab) ? tab.routerLink?.urlTree : undefined\"\n (keydown.enter)=\"tab.selectTab(true)\"\n (triggered)=\"tab.selectTab(true)\"\n >\n <!-- eslint-enable -->\n <ng-container [ngTemplateOutlet]=\"badgeTemplate\" [ngTemplateOutletContext]=\"{ tab }\" />\n </a>\n } @else {\n <a\n #menuItem\n si-menu-item\n [disabled]=\"tab.disabledTab()\"\n [icon]=\"tab.icon()\"\n [routerLink]=\"tabIsLink(tab) ? tab.routerLink?.urlTree : undefined\"\n (keydown.enter)=\"tab.selectTab(true)\"\n (triggered)=\"tab.selectTab(true)\"\n >\n <ng-container [ngTemplateOutlet]=\"badgeTemplate\" [ngTemplateOutletContext]=\"{ tab }\" />\n </a>\n }\n }\n </si-menu>\n</ng-template>\n\n<ng-template #badgeTemplate let-tab=\"tab\">\n <div class=\"d-flex align-items-center space-between flex-no-wrap justify-content-between\">\n {{ tab.heading() }}\n @if (tab.badgeContent() === true) {\n <span class=\"badge-dot\"></span>\n } @else if (tab.badgeContent() && !tab.badgeColor()) {\n <!-- eslint-disable-next-line @angular-eslint/template/no-any -->\n <span class=\"badge-text\"> {{ $any(tab.badgeContent() ?? '') | translate }}</span>\n }\n </div>\n</ng-template>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-tabset-next.component';\nexport * from './si-tab-next.component';\nexport * from './si-tab-next-link.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2"],"mappings":"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"}
1
+ {"version":3,"file":"siemens-element-ng-tabs-next.mjs","sources":["../../../../projects/element-ng/tabs-next/si-tabs-tokens.ts","../../../../projects/element-ng/tabs-next/si-tab-next-base.directive.ts","../../../../projects/element-ng/tabs-next/si-tab-next-link.component.ts","../../../../projects/element-ng/tabs-next/si-tab-next.component.html","../../../../projects/element-ng/tabs-next/si-tab-next.component.ts","../../../../projects/element-ng/tabs-next/si-tabset-next.component.ts","../../../../projects/element-ng/tabs-next/si-tabset-next.component.html","../../../../projects/element-ng/tabs-next/index.ts","../../../../projects/element-ng/tabs-next/siemens-element-ng-tabs-next.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { InjectionToken } from '@angular/core';\n\nimport { SiTabsetNextComponent } from './si-tabset-next.component';\n\nexport const SI_TABSET_NEXT = new InjectionToken<SiTabsetNextComponent>('SiTabsetNextComponent');\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n OnDestroy,\n output,\n TemplateRef,\n viewChild,\n WritableSignal\n} from '@angular/core';\nimport { addIcons, elementCancel } from '@siemens/element-ng/icon';\nimport { TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SI_TABSET_NEXT } from './si-tabs-tokens';\n\n@Directive({\n selector: '[siTabNextBase]',\n host: {\n class: 'nav-link focus-inside px-5 si-title-1',\n role: 'tab',\n '[class.disabled]': 'disabledTab()',\n '[attr.id]': \"'tab-' + tabId\",\n '[attr.aria-disabled]': 'disabledTab()',\n '[attr.tabindex]': 'tabset.focusKeyManager?.activeItem === this && !disabledTab() ? 0 : -1',\n '[attr.aria-controls]': \"'content-' + tabId\",\n '(keydown.arrowLeft)': 'tabset.focusPrevious($event)',\n '(keydown.arrowRight)': 'tabset.focusNext($event)',\n '(keydown.delete)': 'closeTab($event)'\n }\n})\nexport abstract class SiTabNextBaseDirective implements OnDestroy, FocusableOption {\n abstract readonly active: WritableSignal<boolean>;\n /** Title of the tab item. */\n readonly heading = input.required<TranslatableString>();\n /**\n * Icon of the tab item.\n * If provided, heading text will be ignored and only icon will be displayed.\n */\n readonly icon = input<string>();\n /**\n * Additional badge content. A value of\n * - `true` will render a red dot\n * - any string without a `badgeColor` will render a red dot with text\n * - any string with a `badgeColor` will render a normal badge\n */\n readonly badgeContent = input<TranslatableString | boolean>();\n /**\n * Background color of the badge.\n * If no color is provided a red dot badge will be rendered.\n */\n readonly badgeColor = input<string>();\n /**\n * Disables the tab.\n *\n * @defaultValue false\n */\n readonly disabledTab = input(false, {\n transform: booleanAttribute,\n // eslint-disable-next-line @angular-eslint/no-input-rename\n alias: 'disabled'\n });\n /**\n * Close the current tab.\n *\n * @defaultValue false\n */\n readonly closable = input(false, {\n transform: booleanAttribute\n });\n /** Event emitter to notify when a tab is closed. */\n readonly closeTriggered = output();\n\n /** @internal */\n readonly badgeIsNumber = computed(() => {\n return typeof this.badgeContent() !== 'boolean';\n });\n\n readonly tabButton = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly tabContent = viewChild('tabContent', { read: TemplateRef });\n\n private static tabCounter = 0;\n private indexBeforeClose = -1;\n\n /** @internal */\n tabId = `${SiTabNextBaseDirective.tabCounter++}`;\n protected readonly icons = addIcons({ elementCancel });\n protected tabset = inject(SI_TABSET_NEXT);\n /** @internal */\n readonly index = computed(() =>\n this.tabset.tabPanels().findIndex(tab => tab.tabId === this.tabId)\n );\n\n ngOnDestroy(): void {\n // adjust the focus index and selected tab index if component is destroyed\n // as a side effect to close tab event\n if (this.indexBeforeClose >= 0) {\n const indexToFocus = this.tabset.getNextIndexToFocus(this.indexBeforeClose);\n if (this.active()) {\n this.tabset.focusKeyManager?.updateActiveItem(indexToFocus);\n this.tabset.tabPanels()[indexToFocus].tabButton.nativeElement.focus();\n } else {\n const selectedItemIndex = this.tabset.activeTabIndex() ?? 0;\n this.tabset.focusKeyManager?.updateActiveItem(selectedItemIndex);\n this.tabset.tabPanels()[selectedItemIndex].focus();\n }\n // if this tab was the active one we need to select next tab as active\n if (this.active()) {\n const targetActiveTab = this.tabset.tabPanels()[indexToFocus];\n if (targetActiveTab) {\n targetActiveTab.active.set(true);\n }\n }\n }\n }\n\n protected closeTab(event: Event): void {\n if (this.closable() && !this.disabledTab()) {\n event.stopPropagation();\n const index = this.index();\n this.closeTriggered.emit();\n this.indexBeforeClose = index;\n }\n }\n\n focus(origin?: FocusOrigin): void {\n this.tabButton.nativeElement.focus({ preventScroll: true });\n // The element is not fully scrolled into view when focused. So we prevent and scroll it manually.\n this.tabButton.nativeElement.scrollIntoView({\n inline: 'nearest',\n block: 'nearest',\n behavior: 'instant'\n });\n }\n\n get disabled(): boolean {\n return this.disabledTab();\n }\n\n selectTab(retainFocus?: boolean): void {\n this.tabset.focusKeyManager?.updateActiveItem(this.index());\n if (retainFocus) {\n // We need the timeout to wait for cdkMenu to restore the focus before we move it again.\n setTimeout(() => this.focus());\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Router, RouterLink, RouterLinkActive } from '@angular/router';\nimport { SiIconNextComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiTabNextBaseDirective } from './si-tab-next-base.directive';\n\n/** @experimental */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'a[si-tab-next][routerLink]',\n imports: [NgClass, SiIconNextComponent, SiTranslatePipe],\n templateUrl: './si-tab-next.component.html',\n styleUrl: './si-tab-next.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.active]': 'routerLinkActive.isActive',\n '[attr.aria-selected]': 'routerLinkActive.isActive'\n },\n hostDirectives: [\n {\n directive: RouterLinkActive\n }\n ]\n})\nexport class SiTabNextLinkComponent extends SiTabNextBaseDirective {\n private router = inject(Router, { optional: true });\n /** @defaultValue false */\n override readonly active = signal(false);\n /** @internal */\n routerLink = inject(RouterLink, { optional: true, self: true });\n private routerLinkActive = inject(RouterLinkActive, { self: true });\n constructor() {\n super();\n this.routerLinkActive.isActiveChange\n .pipe(takeUntilDestroyed())\n .subscribe(isActive => this.active.set(isActive));\n\n effect(() => {\n if (this.active()) {\n if (this.router && this.routerLink?.urlTree) {\n this.router.navigateByUrl(this.routerLink.urlTree);\n }\n }\n });\n }\n}\n","@let icon = this.icon();\n@if (icon) {\n <si-icon-next class=\"tab-icon\" [icon]=\"icon\" [attr.title]=\"heading() | translate\" />\n} @else {\n <span class=\"text-truncate\">{{ heading() | translate }}</span>\n}\n@if (badgeContent() === true) {\n <span class=\"badge-dot\"></span>\n} @else if (badgeContent() && badgeColor()) {\n <span class=\"badge\" [ngClass]=\"'bg-' + badgeColor()\">\n <!-- eslint-disable-next-line @angular-eslint/template/no-any -->\n {{ $any(badgeContent() ?? '') | translate }}\n </span>\n} @else if (badgeContent() && !badgeColor()) {\n <!-- eslint-disable-next-line @angular-eslint/template/no-any -->\n <span class=\"badge-text\"> {{ $any(badgeContent() ?? '') | translate }}</span>\n}\n@if (closable() && !disabledTab()) {\n <si-icon-next\n class=\"ms-4 me-n4 btn btn-circle btn-xs btn-ghost close\"\n [icon]=\"icons.elementCancel\"\n (click)=\"closeTab($event)\"\n />\n}\n\n<ng-template #tabContent>\n <ng-content />\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, model, OnDestroy } from '@angular/core';\nimport { SiIconNextComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiTabNextBaseDirective } from './si-tab-next-base.directive';\n\n/** @experimental */\n@Component({\n selector: 'si-tab-next',\n imports: [NgClass, SiIconNextComponent, SiTranslatePipe],\n templateUrl: './si-tab-next.component.html',\n styleUrl: './si-tab-next.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.active]': 'active()',\n '[attr.aria-selected]': 'active()',\n '(click)': 'selectTab()',\n '(keydown.enter)': 'selectTab()'\n }\n})\nexport class SiTabNextComponent extends SiTabNextBaseDirective implements OnDestroy {\n /**\n * Whether the tab is active or not.\n * If set to `true`, the tab will be selected and its content will be displayed.\n * @defaultValue false\n * */\n override readonly active = model(false);\n\n /** @internal */\n override selectTab(retainFocus?: boolean): void {\n const tabs = this.tabset.tabPanels();\n const newTabIndex = this.index();\n const currentTabIndex = this.tabset.activeTabIndex();\n let continueWithSelection = newTabIndex !== currentTabIndex;\n\n if (continueWithSelection && currentTabIndex !== -1) {\n const currentTab = tabs[currentTabIndex];\n const deselectEvent = {\n target: currentTab,\n tabIndex: currentTabIndex,\n cancel: () => {\n continueWithSelection = false;\n currentTab.active.set(true);\n }\n };\n\n currentTab.active.set(false);\n this.tabset.deselect.emit(deselectEvent);\n }\n\n if (continueWithSelection) {\n this.active.set(true);\n super.selectTab(retainFocus);\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { CdkMenu, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n inject,\n INJECTOR,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { SiMenuDirective, SiMenuItemComponent } from '@siemens/element-ng/menu';\nimport { SiResizeObserverModule } from '@siemens/element-ng/resize-observer';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiTabNextLinkComponent } from './si-tab-next-link.component';\nimport { SiTabNextComponent } from './si-tab-next.component';\nimport { SI_TABSET_NEXT } from './si-tabs-tokens';\n\n/** @experimental */\nexport interface SiTabNextDeselectionEvent {\n /**\n * The target tab\n */\n target: SiTabNextComponent | SiTabNextLinkComponent;\n /**\n * The index of target tab\n */\n tabIndex: number;\n /**\n * To be called to prevent switching the tab\n */\n cancel: () => void;\n}\n\n/** @experimental */\n@Component({\n selector: 'si-tabset-next',\n imports: [\n SiTranslatePipe,\n SiMenuDirective,\n SiMenuItemComponent,\n CdkMenuTrigger,\n NgTemplateOutlet,\n SiResizeObserverModule,\n RouterLink\n ],\n templateUrl: './si-tabset-next.component.html',\n styleUrl: './si-tabset-next.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: SI_TABSET_NEXT,\n useExisting: SiTabsetNextComponent\n }\n ]\n})\nexport class SiTabsetNextComponent implements AfterViewInit {\n /**\n * Event emitter to notify when a tab became inactive.\n */\n readonly deselect = output<SiTabNextDeselectionEvent>();\n\n /** @internal */\n readonly activeTab = computed(() => {\n return this.tabPanels().find(tab => tab.active());\n });\n /** @internal */\n readonly activeTabIndex = computed(() => this.activeTab()?.index() ?? -1);\n\n /** @internal */\n focusKeyManager?: FocusKeyManager<SiTabNextComponent | SiTabNextLinkComponent>;\n\n private readonly tabPanelsLinks = contentChildren(SiTabNextLinkComponent);\n private readonly tabPanelsComponents = contentChildren(SiTabNextComponent);\n\n /** @internal */\n readonly tabPanels = computed(() => {\n const allTabs: (SiTabNextLinkComponent | SiTabNextComponent)[] = [\n ...this.tabPanelsLinks(),\n ...this.tabPanelsComponents()\n ];\n return allTabs;\n });\n\n protected readonly menu = viewChild('menu', { read: CdkMenu });\n protected readonly showMenuButton = signal(false);\n\n private injector = inject(INJECTOR);\n\n ngAfterViewInit(): void {\n this.focusKeyManager = new FocusKeyManager(this.tabPanels, this.injector);\n // To avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n this.focusKeyManager?.updateActiveItem(this.tabPanels().findIndex(tab => !tab.disabledTab()));\n });\n }\n\n protected menuOpened(): void {\n // wait for menu items to be rendered\n setTimeout(() => {\n const nextMenuItemToFocus = this.getNextIndexToFocus(this.activeTabIndex() + 1);\n const menuItems = this.menu()?.items.toArray() ?? [];\n if (nextMenuItemToFocus >= 0 && nextMenuItemToFocus < menuItems.length) {\n menuItems[nextMenuItemToFocus].focus();\n // bug in cdk as setting focus on menu item does not update focus manager active item\n // eslint-disable-next-line @typescript-eslint/dot-notation\n const focusManager = this.menu()?.['keyManager'];\n focusManager?.updateActiveItem(nextMenuItemToFocus);\n } else {\n menuItems[0].focus();\n }\n });\n }\n\n protected tabIsLink(tab: unknown): tab is SiTabNextLinkComponent {\n return tab instanceof SiTabNextLinkComponent;\n }\n\n /** @internal */\n focusPrevious(e: Event): void {\n e.preventDefault();\n this.focusKeyManager?.setPreviousItemActive();\n }\n\n /** @internal */\n focusNext(e: Event): void {\n e.preventDefault();\n this.focusKeyManager?.setNextItemActive();\n }\n\n /** @internal */\n getNextIndexToFocus(currentIndex: number): number {\n for (let i = 0; i < this.tabPanels().length; i++) {\n // Get the actual index using modulo to wrap around\n const checkIndex = (currentIndex + i) % this.tabPanels().length;\n\n if (!this.tabPanels()[checkIndex].disabledTab()) {\n return this.tabPanels()[checkIndex].index();\n }\n }\n return -1;\n }\n\n protected resizeContainer(width: number, scrollWidth: number): void {\n // 48px is the width of the menu button.\n this.showMenuButton.set(scrollWidth > width + (this.showMenuButton() ? 48 : 0));\n }\n}\n","<div class=\"tabs-container\">\n <div class=\"tab-container-buttonbar-list nav nav-tabs\">\n <div\n #tabScrollContainer\n role=\"tablist\"\n tabindex=\"-1\"\n class=\"d-flex tabs-wrapper\"\n (siResizeObserver)=\"\n resizeContainer(tabScrollContainer.clientWidth, tabScrollContainer.scrollWidth)\n \"\n >\n <ng-content />\n </div>\n\n @if (showMenuButton()) {\n <button\n type=\"button\"\n class=\"dropdown btn btn-tertiary focus-inside\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [cdkMenuTriggerFor]=\"tabsMenu\"\n (cdkMenuOpened)=\"menuOpened()\"\n >\n <i class=\"icon element-options m-0\"></i>\n </button>\n }\n </div>\n @let tabContent = this.activeTab()?.tabContent();\n @let activeTab = this.activeTab();\n\n @if (activeTab) {\n <div\n class=\"tab-content\"\n role=\"tabpanel\"\n [id]=\"'content-' + activeTab.tabId\"\n [attr.aria-labelledby]=\"'tab-' + activeTab.tabId\"\n >\n @if (tabContent) {\n <ng-container [ngTemplateOutlet]=\"tabContent\" />\n }\n\n <ng-content select=\"router-outlet\" />\n </div>\n }\n</div>\n\n<ng-template #tabsMenu>\n <si-menu #menu>\n @for (tab of tabPanels(); track tab) {\n @let badgeColor = tab.badgeColor();\n @let badgeIsNumber = tab.badgeIsNumber();\n\n @if (badgeColor && badgeIsNumber) {\n <!-- eslint-disable @angular-eslint/template/no-any -->\n <a\n #menuItem\n si-menu-item\n [disabled]=\"tab.disabledTab()\"\n [badgeColor]=\"badgeColor\"\n [badge]=\"$any(tab.badgeContent())\"\n [icon]=\"tab.icon()\"\n [routerLink]=\"tabIsLink(tab) ? tab.routerLink?.urlTree : undefined\"\n (keydown.enter)=\"tab.selectTab(true)\"\n (triggered)=\"tab.selectTab(true)\"\n >\n <ng-container [ngTemplateOutlet]=\"badgeTemplate\" [ngTemplateOutletContext]=\"{ tab }\" />\n </a>\n } @else if (badgeIsNumber && badgeColor) {\n <a\n #menuItem\n si-menu-item\n [disabled]=\"tab.disabledTab()\"\n [icon]=\"tab.icon()\"\n [badgeColor]=\"badgeColor\"\n [badge]=\"$any(tab.badgeContent())\"\n [routerLink]=\"tabIsLink(tab) ? tab.routerLink?.urlTree : undefined\"\n (keydown.enter)=\"tab.selectTab(true)\"\n (triggered)=\"tab.selectTab(true)\"\n >\n <!-- eslint-enable -->\n <ng-container [ngTemplateOutlet]=\"badgeTemplate\" [ngTemplateOutletContext]=\"{ tab }\" />\n </a>\n } @else {\n <a\n #menuItem\n si-menu-item\n [disabled]=\"tab.disabledTab()\"\n [icon]=\"tab.icon()\"\n [routerLink]=\"tabIsLink(tab) ? tab.routerLink?.urlTree : undefined\"\n (keydown.enter)=\"tab.selectTab(true)\"\n (triggered)=\"tab.selectTab(true)\"\n >\n <ng-container [ngTemplateOutlet]=\"badgeTemplate\" [ngTemplateOutletContext]=\"{ tab }\" />\n </a>\n }\n }\n </si-menu>\n</ng-template>\n\n<ng-template #badgeTemplate let-tab=\"tab\">\n <div class=\"d-flex align-items-center space-between flex-no-wrap justify-content-between\">\n {{ tab.heading() }}\n @if (tab.badgeContent() === true) {\n <span class=\"badge-dot\"></span>\n } @else if (tab.badgeContent() && !tab.badgeColor()) {\n <!-- eslint-disable-next-line @angular-eslint/template/no-any -->\n <span class=\"badge-text\"> {{ $any(tab.badgeContent() ?? '') | translate }}</span>\n }\n </div>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-tabset-next.component';\nexport * from './si-tab-next.component';\nexport * from './si-tab-next-link.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -3,15 +3,14 @@ import { NgClass } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
4
  import { EventEmitter, signal, booleanAttribute, HostBinding, Output, Input, ChangeDetectionStrategy, Component, viewChild, viewChildren, inject, ChangeDetectorRef, ContentChildren, NgModule } from '@angular/core';
5
5
  import { isRTL, WebComponentContentChildren } from '@siemens/element-ng/common';
6
- import { addIcons, elementRight3, elementLeft3, elementCancel, SiIconNextComponent, SiIconComponent } from '@siemens/element-ng/icon';
6
+ import { addIcons, elementRight3, elementLeft3, elementCancel, SiIconNextComponent } from '@siemens/element-ng/icon';
7
7
  import { SiResizeObserverDirective } from '@siemens/element-ng/resize-observer';
8
- import * as i1 from '@siemens/element-translate-ng/translate';
9
- import { SiTranslateModule } from '@siemens/element-translate-ng/translate';
8
+ import { SiTranslatePipe } from '@siemens/element-translate-ng/translate';
10
9
  import { asyncScheduler } from 'rxjs';
11
10
  import { first, observeOn } from 'rxjs/operators';
12
11
 
13
12
  /**
14
- * Copyright Siemens 2016 - 2025.
13
+ * Copyright (c) Siemens 2016 - 2025
15
14
  * SPDX-License-Identifier: MIT
16
15
  */
17
16
  class SiTabComponent {
@@ -324,20 +323,14 @@ class SiTabsetComponent {
324
323
  this.focusedTabIndex = undefined;
325
324
  }
326
325
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTabsetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
327
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiTabsetComponent, isStandalone: true, selector: "si-tabset", inputs: { selectDefaultTab: ["selectDefaultTab", "selectDefaultTab", booleanAttribute], selectedTabIndex: "selectedTabIndex", tabButtonMaxWidth: "tabButtonMaxWidth" }, outputs: { selectedTabIndexChange: "selectedTabIndexChange", deselect: "deselect" }, queries: [{ propertyName: "tabPanels", predicate: SiTabComponent }], viewQueries: [{ propertyName: "tabContainer", first: true, predicate: ["tabContainer"], descendants: true, isSignal: true }, { propertyName: "innerTabContainer", first: true, predicate: ["innerTabContainer"], descendants: true, isSignal: true }, { propertyName: "tabs", predicate: ["tabElement"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n class=\"nav nav-tabs tab-container-header focus-inside\"\n role=\"tablist\"\n [class.is-scrollable]=\"scrollable\"\n (siResizeObserver)=\"resize()\"\n>\n @if (scrollable) {\n <button\n type=\"button\"\n class=\"tab-container-control focus-inside\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [hidden]=\"!xPos\"\n (keydown.enter)=\"scrollStart()\"\n (mousedown)=\"scrollStart()\"\n >\n <si-icon-next class=\"icon flip-rtl\" [icon]=\"icons.elementLeft3\" />\n </button>\n }\n\n <div #tabContainer class=\"tab-container-buttonbar\" (wheel)=\"mouseScroll($event)\">\n <div #innerTabContainer class=\"tab-container-buttonbar-list focus-inside\">\n @for (tab of tabPanels; track $index) {\n <button\n #tabElement\n type=\"button\"\n role=\"tab\"\n class=\"nav-link focus-inside px-5\"\n [attr.aria-controls]=\"tab.id\"\n [id]=\"tab.tabId\"\n [style.max-width.px]=\"tabButtonMaxWidth\"\n [tabindex]=\"!tab.disabled && tab.active() && focusedTabIndex === undefined ? 0 : -1\"\n [class.active]=\"tab.active()\"\n [attr.aria-selected]=\"tab.active()\"\n [class.disabled]=\"tab.disabled\"\n (click)=\"selectTab(tab)\"\n (keydown.arrowLeft)=\"focusPrevious()\"\n (keydown.arrowRight)=\"focusNext()\"\n (keydown.delete)=\"tab.closeTriggered.emit(tab)\"\n (blur)=\"blur()\"\n (focus)=\"focus($index)\"\n >\n <span class=\"text-truncate\">{{ tab.heading | translate }}</span>\n @if (tab.icon) {\n <si-icon-next\n class=\"icon\"\n [attr.role]=\"tab.iconAltText ? 'img' : 'presentation'\"\n [icon]=\"tab.icon\"\n [attr.aria-label]=\"(tab.iconAltText | translate) ?? undefined\"\n />\n }\n @if (tab.badgeContent === true) {\n <span class=\"badge-dot\"></span>\n } @else if (tab.badgeContent && tab.badgeColor) {\n <span class=\"badge\" [ngClass]=\"'bg-' + tab.badgeColor\">\n {{ tab.badgeContent | translate }}\n </span>\n } @else if (tab.badgeContent && !tab.badgeColor) {\n <span class=\"badge-text\"> {{ tab.badgeContent | translate }}</span>\n }\n @if (tab.closable && !tab.disabled) {\n <si-icon-next\n class=\"ms-4 me-n4 btn btn-circle btn-xs btn-ghost close\"\n [icon]=\"icons.elementCancel\"\n (click)=\"closeTab($event, tab)\"\n />\n }\n </button>\n }\n </div>\n </div>\n @if (scrollable) {\n <button\n type=\"button\"\n class=\"tab-container-control is-end focus-inside\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [hidden]=\"endArrowDisabled\"\n (keydown.enter)=\"scrollEnd()\"\n (mousedown)=\"scrollEnd()\"\n >\n <si-icon-next class=\"icon flip-rtl\" [icon]=\"icons.elementRight3\" />\n </button>\n }\n</div>\n\n<ng-content />\n", styles: [":host{display:block;flex-direction:column}.tab-container-header{overflow:hidden;display:flex}.tab-container-buttonbar{flex:1;overflow:hidden}.tab-container-buttonbar-list{display:flex;margin:0;padding:0;list-style-type:none;transition:calc(.25s * var(--element-animations-enabled, 1))}.tab-container-buttonbar-list-item{flex:none}.tab-container-control{background:transparent;border:0;-webkit-user-select:none;user-select:none;padding-inline:0 7px;padding-block:6px 10px}.tab-container-control .is-end{padding-inline:7px 0}.tab-container-control:hover{color:var(--element-text-active)}.tab-container-control:disabled{color:var(--element-text-disabled);cursor:default}.nav-link{flex-shrink:0}.nav-link span.badge-dot{inset-block-end:100%;inset-inline-start:12px;margin-inline-end:12px}.nav-link span.badge-text{inset-block-end:calc(100% - 7px);inset-inline-start:2px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }, { kind: "directive", type: SiResizeObserverDirective, selector: "[siResizeObserver]", inputs: ["resizeThrottle", "emitInitial"], outputs: ["siResizeObserver"] }, { kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
326
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiTabsetComponent, isStandalone: true, selector: "si-tabset", inputs: { selectDefaultTab: ["selectDefaultTab", "selectDefaultTab", booleanAttribute], selectedTabIndex: "selectedTabIndex", tabButtonMaxWidth: "tabButtonMaxWidth" }, outputs: { selectedTabIndexChange: "selectedTabIndexChange", deselect: "deselect" }, queries: [{ propertyName: "tabPanels", predicate: SiTabComponent }], viewQueries: [{ propertyName: "tabContainer", first: true, predicate: ["tabContainer"], descendants: true, isSignal: true }, { propertyName: "innerTabContainer", first: true, predicate: ["innerTabContainer"], descendants: true, isSignal: true }, { propertyName: "tabs", predicate: ["tabElement"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n class=\"nav nav-tabs tab-container-header focus-inside\"\n role=\"tablist\"\n [class.is-scrollable]=\"scrollable\"\n (siResizeObserver)=\"resize()\"\n>\n @if (scrollable) {\n <button\n type=\"button\"\n class=\"tab-container-control focus-inside\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [hidden]=\"!xPos\"\n (keydown.enter)=\"scrollStart()\"\n (mousedown)=\"scrollStart()\"\n >\n <si-icon-next class=\"icon flip-rtl\" [icon]=\"icons.elementLeft3\" />\n </button>\n }\n\n <div #tabContainer class=\"tab-container-buttonbar\" (wheel)=\"mouseScroll($event)\">\n <div #innerTabContainer class=\"tab-container-buttonbar-list focus-inside\">\n @for (tab of tabPanels; track $index) {\n <button\n #tabElement\n type=\"button\"\n role=\"tab\"\n class=\"nav-link focus-inside px-5\"\n [attr.aria-controls]=\"tab.id\"\n [id]=\"tab.tabId\"\n [style.max-width.px]=\"tabButtonMaxWidth\"\n [tabindex]=\"!tab.disabled && tab.active() && focusedTabIndex === undefined ? 0 : -1\"\n [class.active]=\"tab.active()\"\n [attr.aria-selected]=\"tab.active()\"\n [class.disabled]=\"tab.disabled\"\n (click)=\"selectTab(tab)\"\n (keydown.arrowLeft)=\"focusPrevious()\"\n (keydown.arrowRight)=\"focusNext()\"\n (keydown.delete)=\"tab.closeTriggered.emit(tab)\"\n (blur)=\"blur()\"\n (focus)=\"focus($index)\"\n >\n <span class=\"text-truncate\">{{ tab.heading | translate }}</span>\n @if (tab.icon) {\n <si-icon-next\n class=\"icon\"\n [attr.role]=\"tab.iconAltText ? 'img' : 'presentation'\"\n [icon]=\"tab.icon\"\n [attr.aria-label]=\"(tab.iconAltText | translate) ?? undefined\"\n />\n }\n @if (tab.badgeContent === true) {\n <span class=\"badge-dot\"></span>\n } @else if (tab.badgeContent && tab.badgeColor) {\n <span class=\"badge\" [ngClass]=\"'bg-' + tab.badgeColor\">\n {{ tab.badgeContent | translate }}\n </span>\n } @else if (tab.badgeContent && !tab.badgeColor) {\n <span class=\"badge-text\"> {{ tab.badgeContent | translate }}</span>\n }\n @if (tab.closable && !tab.disabled) {\n <si-icon-next\n class=\"ms-4 me-n4 btn btn-circle btn-xs btn-ghost close\"\n [icon]=\"icons.elementCancel\"\n (click)=\"closeTab($event, tab)\"\n />\n }\n </button>\n }\n </div>\n </div>\n @if (scrollable) {\n <button\n type=\"button\"\n class=\"tab-container-control is-end focus-inside\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [hidden]=\"endArrowDisabled\"\n (keydown.enter)=\"scrollEnd()\"\n (mousedown)=\"scrollEnd()\"\n >\n <si-icon-next class=\"icon flip-rtl\" [icon]=\"icons.elementRight3\" />\n </button>\n }\n</div>\n\n<ng-content />\n", styles: [":host{display:block;flex-direction:column}.tab-container-header{overflow:hidden;display:flex}.tab-container-buttonbar{flex:1;overflow:hidden}.tab-container-buttonbar-list{display:flex;margin:0;padding:0;list-style-type:none;transition:calc(.25s * var(--element-animations-enabled, 1))}.tab-container-buttonbar-list-item{flex:none}.tab-container-control{background:transparent;border:0;-webkit-user-select:none;user-select:none;padding-inline:0 7px;padding-block:6px 10px}.tab-container-control .is-end{padding-inline:7px 0}.tab-container-control:hover{color:var(--element-text-active)}.tab-container-control:disabled{color:var(--element-text-disabled);cursor:default}.nav-link{flex-shrink:0}.nav-link span.badge-dot{inset-block-end:100%;inset-inline-start:12px;margin-inline-end:12px}.nav-link span.badge-text{inset-block-end:calc(100% - 7px);inset-inline-start:2px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }, { kind: "directive", type: SiResizeObserverDirective, selector: "[siResizeObserver]", inputs: ["resizeThrottle", "emitInitial"], outputs: ["siResizeObserver"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
328
327
  }
329
328
  __decorate([
330
329
  WebComponentContentChildren(SiTabComponent)
331
330
  ], SiTabsetComponent.prototype, "tabPanels", void 0);
332
331
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTabsetComponent, decorators: [{
333
332
  type: Component,
334
- args: [{ selector: 'si-tabset', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
335
- NgClass,
336
- SiIconNextComponent,
337
- SiIconComponent,
338
- SiResizeObserverDirective,
339
- SiTranslateModule
340
- ], template: "<div\n class=\"nav nav-tabs tab-container-header focus-inside\"\n role=\"tablist\"\n [class.is-scrollable]=\"scrollable\"\n (siResizeObserver)=\"resize()\"\n>\n @if (scrollable) {\n <button\n type=\"button\"\n class=\"tab-container-control focus-inside\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [hidden]=\"!xPos\"\n (keydown.enter)=\"scrollStart()\"\n (mousedown)=\"scrollStart()\"\n >\n <si-icon-next class=\"icon flip-rtl\" [icon]=\"icons.elementLeft3\" />\n </button>\n }\n\n <div #tabContainer class=\"tab-container-buttonbar\" (wheel)=\"mouseScroll($event)\">\n <div #innerTabContainer class=\"tab-container-buttonbar-list focus-inside\">\n @for (tab of tabPanels; track $index) {\n <button\n #tabElement\n type=\"button\"\n role=\"tab\"\n class=\"nav-link focus-inside px-5\"\n [attr.aria-controls]=\"tab.id\"\n [id]=\"tab.tabId\"\n [style.max-width.px]=\"tabButtonMaxWidth\"\n [tabindex]=\"!tab.disabled && tab.active() && focusedTabIndex === undefined ? 0 : -1\"\n [class.active]=\"tab.active()\"\n [attr.aria-selected]=\"tab.active()\"\n [class.disabled]=\"tab.disabled\"\n (click)=\"selectTab(tab)\"\n (keydown.arrowLeft)=\"focusPrevious()\"\n (keydown.arrowRight)=\"focusNext()\"\n (keydown.delete)=\"tab.closeTriggered.emit(tab)\"\n (blur)=\"blur()\"\n (focus)=\"focus($index)\"\n >\n <span class=\"text-truncate\">{{ tab.heading | translate }}</span>\n @if (tab.icon) {\n <si-icon-next\n class=\"icon\"\n [attr.role]=\"tab.iconAltText ? 'img' : 'presentation'\"\n [icon]=\"tab.icon\"\n [attr.aria-label]=\"(tab.iconAltText | translate) ?? undefined\"\n />\n }\n @if (tab.badgeContent === true) {\n <span class=\"badge-dot\"></span>\n } @else if (tab.badgeContent && tab.badgeColor) {\n <span class=\"badge\" [ngClass]=\"'bg-' + tab.badgeColor\">\n {{ tab.badgeContent | translate }}\n </span>\n } @else if (tab.badgeContent && !tab.badgeColor) {\n <span class=\"badge-text\"> {{ tab.badgeContent | translate }}</span>\n }\n @if (tab.closable && !tab.disabled) {\n <si-icon-next\n class=\"ms-4 me-n4 btn btn-circle btn-xs btn-ghost close\"\n [icon]=\"icons.elementCancel\"\n (click)=\"closeTab($event, tab)\"\n />\n }\n </button>\n }\n </div>\n </div>\n @if (scrollable) {\n <button\n type=\"button\"\n class=\"tab-container-control is-end focus-inside\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [hidden]=\"endArrowDisabled\"\n (keydown.enter)=\"scrollEnd()\"\n (mousedown)=\"scrollEnd()\"\n >\n <si-icon-next class=\"icon flip-rtl\" [icon]=\"icons.elementRight3\" />\n </button>\n }\n</div>\n\n<ng-content />\n", styles: [":host{display:block;flex-direction:column}.tab-container-header{overflow:hidden;display:flex}.tab-container-buttonbar{flex:1;overflow:hidden}.tab-container-buttonbar-list{display:flex;margin:0;padding:0;list-style-type:none;transition:calc(.25s * var(--element-animations-enabled, 1))}.tab-container-buttonbar-list-item{flex:none}.tab-container-control{background:transparent;border:0;-webkit-user-select:none;user-select:none;padding-inline:0 7px;padding-block:6px 10px}.tab-container-control .is-end{padding-inline:7px 0}.tab-container-control:hover{color:var(--element-text-active)}.tab-container-control:disabled{color:var(--element-text-disabled);cursor:default}.nav-link{flex-shrink:0}.nav-link span.badge-dot{inset-block-end:100%;inset-inline-start:12px;margin-inline-end:12px}.nav-link span.badge-text{inset-block-end:calc(100% - 7px);inset-inline-start:2px}\n"] }]
333
+ args: [{ selector: 'si-tabset', imports: [NgClass, SiIconNextComponent, SiResizeObserverDirective, SiTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"nav nav-tabs tab-container-header focus-inside\"\n role=\"tablist\"\n [class.is-scrollable]=\"scrollable\"\n (siResizeObserver)=\"resize()\"\n>\n @if (scrollable) {\n <button\n type=\"button\"\n class=\"tab-container-control focus-inside\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [hidden]=\"!xPos\"\n (keydown.enter)=\"scrollStart()\"\n (mousedown)=\"scrollStart()\"\n >\n <si-icon-next class=\"icon flip-rtl\" [icon]=\"icons.elementLeft3\" />\n </button>\n }\n\n <div #tabContainer class=\"tab-container-buttonbar\" (wheel)=\"mouseScroll($event)\">\n <div #innerTabContainer class=\"tab-container-buttonbar-list focus-inside\">\n @for (tab of tabPanels; track $index) {\n <button\n #tabElement\n type=\"button\"\n role=\"tab\"\n class=\"nav-link focus-inside px-5\"\n [attr.aria-controls]=\"tab.id\"\n [id]=\"tab.tabId\"\n [style.max-width.px]=\"tabButtonMaxWidth\"\n [tabindex]=\"!tab.disabled && tab.active() && focusedTabIndex === undefined ? 0 : -1\"\n [class.active]=\"tab.active()\"\n [attr.aria-selected]=\"tab.active()\"\n [class.disabled]=\"tab.disabled\"\n (click)=\"selectTab(tab)\"\n (keydown.arrowLeft)=\"focusPrevious()\"\n (keydown.arrowRight)=\"focusNext()\"\n (keydown.delete)=\"tab.closeTriggered.emit(tab)\"\n (blur)=\"blur()\"\n (focus)=\"focus($index)\"\n >\n <span class=\"text-truncate\">{{ tab.heading | translate }}</span>\n @if (tab.icon) {\n <si-icon-next\n class=\"icon\"\n [attr.role]=\"tab.iconAltText ? 'img' : 'presentation'\"\n [icon]=\"tab.icon\"\n [attr.aria-label]=\"(tab.iconAltText | translate) ?? undefined\"\n />\n }\n @if (tab.badgeContent === true) {\n <span class=\"badge-dot\"></span>\n } @else if (tab.badgeContent && tab.badgeColor) {\n <span class=\"badge\" [ngClass]=\"'bg-' + tab.badgeColor\">\n {{ tab.badgeContent | translate }}\n </span>\n } @else if (tab.badgeContent && !tab.badgeColor) {\n <span class=\"badge-text\"> {{ tab.badgeContent | translate }}</span>\n }\n @if (tab.closable && !tab.disabled) {\n <si-icon-next\n class=\"ms-4 me-n4 btn btn-circle btn-xs btn-ghost close\"\n [icon]=\"icons.elementCancel\"\n (click)=\"closeTab($event, tab)\"\n />\n }\n </button>\n }\n </div>\n </div>\n @if (scrollable) {\n <button\n type=\"button\"\n class=\"tab-container-control is-end focus-inside\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [hidden]=\"endArrowDisabled\"\n (keydown.enter)=\"scrollEnd()\"\n (mousedown)=\"scrollEnd()\"\n >\n <si-icon-next class=\"icon flip-rtl\" [icon]=\"icons.elementRight3\" />\n </button>\n }\n</div>\n\n<ng-content />\n", styles: [":host{display:block;flex-direction:column}.tab-container-header{overflow:hidden;display:flex}.tab-container-buttonbar{flex:1;overflow:hidden}.tab-container-buttonbar-list{display:flex;margin:0;padding:0;list-style-type:none;transition:calc(.25s * var(--element-animations-enabled, 1))}.tab-container-buttonbar-list-item{flex:none}.tab-container-control{background:transparent;border:0;-webkit-user-select:none;user-select:none;padding-inline:0 7px;padding-block:6px 10px}.tab-container-control .is-end{padding-inline:7px 0}.tab-container-control:hover{color:var(--element-text-active)}.tab-container-control:disabled{color:var(--element-text-disabled);cursor:default}.nav-link{flex-shrink:0}.nav-link span.badge-dot{inset-block-end:100%;inset-inline-start:12px;margin-inline-end:12px}.nav-link span.badge-text{inset-block-end:calc(100% - 7px);inset-inline-start:2px}\n"] }]
341
334
  }], propDecorators: { tabPanels: [{
342
335
  type: ContentChildren,
343
336
  args: [SiTabComponent]
@@ -355,17 +348,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
355
348
  }] } });
356
349
 
357
350
  /**
358
- * Copyright Siemens 2016 - 2025.
351
+ * Copyright (c) Siemens 2016 - 2025
359
352
  * SPDX-License-Identifier: MIT
360
353
  */
361
354
 
362
355
  /**
363
- * Copyright Siemens 2016 - 2025.
356
+ * Copyright (c) Siemens 2016 - 2025
364
357
  * SPDX-License-Identifier: MIT
365
358
  */
366
359
 
367
360
  /**
368
- * Copyright Siemens 2016 - 2025.
361
+ * Copyright (c) Siemens 2016 - 2025
369
362
  * SPDX-License-Identifier: MIT
370
363
  */
371
364
  const components = [SiTabsetComponent, SiTabComponent];
@@ -383,7 +376,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
383
376
  }] });
384
377
 
385
378
  /**
386
- * Copyright Siemens 2016 - 2025.
379
+ * Copyright (c) Siemens 2016 - 2025
387
380
  * SPDX-License-Identifier: MIT
388
381
  */
389
382