@siemens/element-ng 48.10.0 → 49.0.0-rc.2

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 (396) hide show
  1. package/about/package.json +2 -1
  2. package/accordion/package.json +2 -1
  3. package/action-modal/package.json +2 -1
  4. package/ag-grid/package.json +2 -1
  5. package/application-header/package.json +2 -1
  6. package/auto-collapsable-list/package.json +2 -1
  7. package/autocomplete/package.json +2 -1
  8. package/avatar/package.json +2 -1
  9. package/badge/package.json +2 -1
  10. package/breadcrumb/package.json +2 -1
  11. package/breadcrumb-router/package.json +2 -1
  12. package/card/package.json +2 -1
  13. package/chat-messages/package.json +2 -1
  14. package/circle-status/package.json +2 -1
  15. package/color-picker/package.json +2 -1
  16. package/column-selection-dialog/package.json +2 -1
  17. package/common/package.json +2 -1
  18. package/connection-strength/package.json +2 -1
  19. package/content-action-bar/package.json +2 -1
  20. package/copyright-notice/package.json +2 -1
  21. package/dashboard/package.json +2 -1
  22. package/datatable/package.json +2 -1
  23. package/date-range-filter/package.json +2 -1
  24. package/datepicker/package.json +2 -1
  25. package/electron-titlebar/package.json +2 -1
  26. package/empty-state/package.json +2 -1
  27. package/fesm2022/siemens-element-ng-about.mjs +25 -24
  28. package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
  29. package/fesm2022/siemens-element-ng-accordion.mjs +49 -75
  30. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
  31. package/fesm2022/siemens-element-ng-action-modal.mjs +59 -55
  32. package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
  33. package/fesm2022/siemens-element-ng-ag-grid.mjs +33 -37
  34. package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
  35. package/fesm2022/siemens-element-ng-application-header.mjs +122 -150
  36. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  37. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +30 -32
  38. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
  39. package/fesm2022/siemens-element-ng-autocomplete.mjs +34 -48
  40. package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
  41. package/fesm2022/siemens-element-ng-avatar.mjs +23 -24
  42. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  43. package/fesm2022/siemens-element-ng-badge.mjs +6 -6
  44. package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
  45. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +16 -16
  46. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
  47. package/fesm2022/siemens-element-ng-breadcrumb.mjs +18 -17
  48. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  49. package/fesm2022/siemens-element-ng-card.mjs +32 -34
  50. package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
  51. package/fesm2022/siemens-element-ng-chat-messages.mjs +204 -109
  52. package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
  53. package/fesm2022/siemens-element-ng-circle-status.mjs +26 -26
  54. package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
  55. package/fesm2022/siemens-element-ng-color-picker.mjs +18 -17
  56. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
  57. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +36 -35
  58. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
  59. package/fesm2022/siemens-element-ng-common.mjs +13 -38
  60. package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
  61. package/fesm2022/siemens-element-ng-connection-strength.mjs +11 -11
  62. package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
  63. package/fesm2022/siemens-element-ng-content-action-bar.mjs +33 -30
  64. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  65. package/fesm2022/siemens-element-ng-copyright-notice.mjs +13 -13
  66. package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
  67. package/fesm2022/siemens-element-ng-dashboard.mjs +161 -169
  68. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  69. package/fesm2022/siemens-element-ng-datatable.mjs +9 -9
  70. package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
  71. package/fesm2022/siemens-element-ng-date-range-filter.mjs +128 -149
  72. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  73. package/fesm2022/siemens-element-ng-datepicker.mjs +260 -271
  74. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  75. package/fesm2022/siemens-element-ng-electron-titlebar.mjs +19 -18
  76. package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
  77. package/fesm2022/siemens-element-ng-empty-state.mjs +11 -11
  78. package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
  79. package/fesm2022/siemens-element-ng-file-uploader.mjs +66 -69
  80. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  81. package/fesm2022/siemens-element-ng-filter-bar.mjs +23 -23
  82. package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
  83. package/fesm2022/siemens-element-ng-filtered-search.mjs +141 -159
  84. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  85. package/fesm2022/siemens-element-ng-footer.mjs +10 -10
  86. package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
  87. package/fesm2022/siemens-element-ng-form.mjs +99 -85
  88. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  89. package/fesm2022/siemens-element-ng-formly.mjs +96 -94
  90. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  91. package/fesm2022/siemens-element-ng-header-dropdown.mjs +33 -33
  92. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  93. package/fesm2022/siemens-element-ng-help-button.mjs +7 -6
  94. package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
  95. package/fesm2022/siemens-element-ng-icon-status.mjs +4 -4
  96. package/fesm2022/siemens-element-ng-icon.mjs +53 -135
  97. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  98. package/fesm2022/siemens-element-ng-info-page.mjs +11 -12
  99. package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
  100. package/fesm2022/siemens-element-ng-inline-notification.mjs +15 -16
  101. package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
  102. package/fesm2022/siemens-element-ng-ip-input.mjs +16 -16
  103. package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
  104. package/fesm2022/siemens-element-ng-landing-page.mjs +71 -71
  105. package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
  106. package/fesm2022/siemens-element-ng-language-switcher.mjs +13 -13
  107. package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
  108. package/fesm2022/siemens-element-ng-link.mjs +22 -23
  109. package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
  110. package/fesm2022/siemens-element-ng-list-details.mjs +68 -86
  111. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  112. package/fesm2022/siemens-element-ng-loading-spinner.mjs +38 -52
  113. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
  114. package/fesm2022/siemens-element-ng-localization.mjs +14 -11
  115. package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
  116. package/fesm2022/siemens-element-ng-main-detail-container.mjs +30 -30
  117. package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
  118. package/fesm2022/siemens-element-ng-markdown-renderer.mjs +5 -5
  119. package/fesm2022/siemens-element-ng-markdown-renderer.mjs.map +1 -1
  120. package/fesm2022/siemens-element-ng-menu.mjs +55 -54
  121. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  122. package/fesm2022/siemens-element-ng-modal.mjs +10 -13
  123. package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
  124. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +183 -298
  125. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  126. package/fesm2022/siemens-element-ng-navbar.mjs +43 -43
  127. package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
  128. package/fesm2022/siemens-element-ng-notification-item.mjs +14 -13
  129. package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
  130. package/fesm2022/siemens-element-ng-number-input.mjs +32 -32
  131. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  132. package/fesm2022/siemens-element-ng-pagination.mjs +21 -20
  133. package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
  134. package/fesm2022/siemens-element-ng-password-strength.mjs +21 -21
  135. package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
  136. package/fesm2022/siemens-element-ng-password-toggle.mjs +19 -15
  137. package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
  138. package/fesm2022/siemens-element-ng-phone-number.mjs +56 -50
  139. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
  140. package/fesm2022/siemens-element-ng-photo-upload.mjs +48 -47
  141. package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
  142. package/fesm2022/siemens-element-ng-pills-input.mjs +45 -44
  143. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
  144. package/fesm2022/siemens-element-ng-popover-legacy.mjs +31 -31
  145. package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
  146. package/fesm2022/siemens-element-ng-popover.mjs +29 -29
  147. package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
  148. package/fesm2022/siemens-element-ng-progressbar.mjs +15 -15
  149. package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
  150. package/fesm2022/siemens-element-ng-resize-observer.mjs +25 -61
  151. package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
  152. package/fesm2022/siemens-element-ng-result-details-list.mjs +13 -12
  153. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
  154. package/fesm2022/siemens-element-ng-search-bar.mjs +25 -24
  155. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  156. package/fesm2022/siemens-element-ng-select.mjs +204 -347
  157. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  158. package/fesm2022/siemens-element-ng-shadow-root.mjs +3 -3
  159. package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
  160. package/fesm2022/siemens-element-ng-side-panel.mjs +144 -69
  161. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  162. package/fesm2022/siemens-element-ng-skip-links.mjs +13 -13
  163. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
  164. package/fesm2022/siemens-element-ng-slider.mjs +30 -29
  165. package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
  166. package/fesm2022/siemens-element-ng-sort-bar.mjs +14 -13
  167. package/fesm2022/siemens-element-ng-sort-bar.mjs.map +1 -1
  168. package/fesm2022/siemens-element-ng-split.mjs +26 -28
  169. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  170. package/fesm2022/siemens-element-ng-status-bar.mjs +42 -43
  171. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  172. package/fesm2022/siemens-element-ng-status-counter.mjs +11 -12
  173. package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
  174. package/fesm2022/siemens-element-ng-status-toggle.mjs +15 -16
  175. package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
  176. package/fesm2022/siemens-element-ng-summary-chip.mjs +16 -17
  177. package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
  178. package/fesm2022/siemens-element-ng-summary-widget.mjs +16 -16
  179. package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
  180. package/fesm2022/siemens-element-ng-system-banner.mjs +7 -7
  181. package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
  182. package/fesm2022/siemens-element-ng-tabs-legacy.mjs +16 -16
  183. package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
  184. package/fesm2022/siemens-element-ng-tabs.mjs +44 -47
  185. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  186. package/fesm2022/siemens-element-ng-theme.mjs +4 -4
  187. package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
  188. package/fesm2022/siemens-element-ng-threshold.mjs +51 -71
  189. package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
  190. package/fesm2022/siemens-element-ng-toast-notification.mjs +26 -52
  191. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
  192. package/fesm2022/siemens-element-ng-tooltip.mjs +60 -68
  193. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
  194. package/fesm2022/siemens-element-ng-tour.mjs +20 -20
  195. package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
  196. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  197. package/fesm2022/siemens-element-ng-tree-view.mjs +92 -117
  198. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  199. package/fesm2022/siemens-element-ng-typeahead.mjs +46 -62
  200. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  201. package/fesm2022/siemens-element-ng-wizard.mjs +49 -48
  202. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  203. package/file-uploader/package.json +2 -1
  204. package/filter-bar/package.json +2 -1
  205. package/filtered-search/package.json +2 -1
  206. package/footer/package.json +2 -1
  207. package/form/package.json +2 -1
  208. package/formly/package.json +2 -1
  209. package/header-dropdown/package.json +2 -1
  210. package/help-button/package.json +2 -1
  211. package/icon/package.json +2 -1
  212. package/icon-status/package.json +2 -1
  213. package/info-page/package.json +2 -1
  214. package/inline-notification/package.json +2 -1
  215. package/ip-input/package.json +2 -1
  216. package/landing-page/package.json +2 -1
  217. package/language-switcher/package.json +2 -1
  218. package/link/package.json +2 -1
  219. package/list-details/package.json +2 -1
  220. package/loading-spinner/package.json +2 -1
  221. package/localization/package.json +2 -1
  222. package/main-detail-container/package.json +2 -1
  223. package/markdown-renderer/package.json +2 -1
  224. package/menu/package.json +2 -1
  225. package/modal/package.json +2 -1
  226. package/navbar/package.json +2 -1
  227. package/navbar-vertical/package.json +2 -1
  228. package/notification-item/package.json +2 -1
  229. package/number-input/package.json +2 -1
  230. package/package.json +115 -107
  231. package/pagination/package.json +2 -1
  232. package/password-strength/package.json +2 -1
  233. package/password-toggle/package.json +2 -1
  234. package/phone-number/package.json +2 -1
  235. package/photo-upload/package.json +2 -1
  236. package/pills-input/package.json +2 -1
  237. package/popover/package.json +2 -1
  238. package/popover-legacy/package.json +2 -1
  239. package/progressbar/package.json +2 -1
  240. package/resize-observer/package.json +2 -1
  241. package/result-details-list/package.json +2 -1
  242. package/schematics/collection.json +0 -12
  243. package/schematics/migration.json +15 -0
  244. package/schematics/migrations/data/attribute-selectors.js +1 -6
  245. package/schematics/migrations/data/component-names.js +9 -68
  246. package/schematics/migrations/data/element-selectors.js +9 -8
  247. package/schematics/migrations/data/index.js +0 -1
  248. package/schematics/migrations/data/migration-test-data.js +167 -0
  249. package/schematics/migrations/data/output-names.js +1 -7
  250. package/schematics/migrations/data/symbol-removals.js +4 -45
  251. package/schematics/migrations/element-migration/element-migration.js +1 -3
  252. package/schematics/migrations/index.js +15 -5
  253. package/schematics/migrations/ngx-translate/index.js +93 -0
  254. package/schematics/ng-update/index.js +17 -0
  255. package/schematics/ng-update/schema.json +15 -0
  256. package/schematics/simpl-siemens-migration/index.js +1 -5
  257. package/schematics/utils/ts-utils.js +135 -0
  258. package/search-bar/package.json +2 -1
  259. package/select/package.json +2 -1
  260. package/shadow-root/package.json +2 -1
  261. package/side-panel/package.json +2 -1
  262. package/skip-links/package.json +2 -1
  263. package/slider/package.json +2 -1
  264. package/sort-bar/package.json +2 -1
  265. package/split/package.json +2 -1
  266. package/status-bar/package.json +2 -1
  267. package/status-counter/package.json +2 -1
  268. package/status-toggle/package.json +2 -1
  269. package/summary-chip/package.json +2 -1
  270. package/summary-widget/package.json +2 -1
  271. package/system-banner/package.json +2 -1
  272. package/tabs/package.json +2 -1
  273. package/tabs-legacy/package.json +2 -1
  274. package/template-i18n.json +32 -25
  275. package/test-styles.scss +5 -0
  276. package/theme/package.json +2 -1
  277. package/threshold/package.json +2 -1
  278. package/toast-notification/package.json +2 -1
  279. package/tooltip/package.json +2 -1
  280. package/tour/package.json +2 -1
  281. package/translate/package.json +2 -1
  282. package/tree-view/package.json +2 -1
  283. package/typeahead/package.json +2 -1
  284. package/{accordion/index.d.ts → types/siemens-element-ng-accordion.d.ts} +2 -3
  285. package/{application-header/index.d.ts → types/siemens-element-ng-application-header.d.ts} +19 -18
  286. package/{autocomplete/index.d.ts → types/siemens-element-ng-autocomplete.d.ts} +1 -3
  287. package/{breadcrumb/index.d.ts → types/siemens-element-ng-breadcrumb.d.ts} +2 -2
  288. package/{chat-messages/index.d.ts → types/siemens-element-ng-chat-messages.d.ts} +72 -10
  289. package/{common/index.d.ts → types/siemens-element-ng-common.d.ts} +2 -30
  290. package/{content-action-bar/index.d.ts → types/siemens-element-ng-content-action-bar.d.ts} +2 -2
  291. package/{dashboard/index.d.ts → types/siemens-element-ng-dashboard.d.ts} +6 -6
  292. package/{date-range-filter/index.d.ts → types/siemens-element-ng-date-range-filter.d.ts} +28 -27
  293. package/{datepicker/index.d.ts → types/siemens-element-ng-datepicker.d.ts} +5 -6
  294. package/{electron-titlebar/index.d.ts → types/siemens-element-ng-electron-titlebar.d.ts} +4 -4
  295. package/{file-uploader/index.d.ts → types/siemens-element-ng-file-uploader.d.ts} +26 -26
  296. package/{filter-bar/index.d.ts → types/siemens-element-ng-filter-bar.d.ts} +4 -4
  297. package/{filtered-search/index.d.ts → types/siemens-element-ng-filtered-search.d.ts} +6 -21
  298. package/{form/index.d.ts → types/siemens-element-ng-form.d.ts} +4 -6
  299. package/{formly/index.d.ts → types/siemens-element-ng-formly.d.ts} +1 -1
  300. package/types/siemens-element-ng-icon.d.ts +203 -0
  301. package/{landing-page/index.d.ts → types/siemens-element-ng-landing-page.d.ts} +15 -15
  302. package/{language-switcher/index.d.ts → types/siemens-element-ng-language-switcher.d.ts} +1 -2
  303. package/{list-details/index.d.ts → types/siemens-element-ng-list-details.d.ts} +4 -11
  304. package/{loading-spinner/index.d.ts → types/siemens-element-ng-loading-spinner.d.ts} +2 -3
  305. package/{modal/index.d.ts → types/siemens-element-ng-modal.d.ts} +0 -6
  306. package/{navbar-vertical/index.d.ts → types/siemens-element-ng-navbar-vertical.d.ts} +12 -7
  307. package/{navbar/index.d.ts → types/siemens-element-ng-navbar.d.ts} +11 -11
  308. package/{notification-item/index.d.ts → types/siemens-element-ng-notification-item.d.ts} +15 -3
  309. package/{pagination/index.d.ts → types/siemens-element-ng-pagination.d.ts} +4 -4
  310. package/{password-toggle/index.d.ts → types/siemens-element-ng-password-toggle.d.ts} +6 -4
  311. package/{phone-number/index.d.ts → types/siemens-element-ng-phone-number.d.ts} +8 -11
  312. package/{pills-input/index.d.ts → types/siemens-element-ng-pills-input.d.ts} +3 -3
  313. package/{popover/index.d.ts → types/siemens-element-ng-popover.d.ts} +2 -2
  314. package/{resize-observer/index.d.ts → types/siemens-element-ng-resize-observer.d.ts} +0 -30
  315. package/{search-bar/index.d.ts → types/siemens-element-ng-search-bar.d.ts} +2 -2
  316. package/{select/index.d.ts → types/siemens-element-ng-select.d.ts} +18 -97
  317. package/{side-panel/index.d.ts → types/siemens-element-ng-side-panel.d.ts} +26 -5
  318. package/{slider/index.d.ts → types/siemens-element-ng-slider.d.ts} +4 -4
  319. package/{split/index.d.ts → types/siemens-element-ng-split.d.ts} +1 -3
  320. package/{status-bar/index.d.ts → types/siemens-element-ng-status-bar.d.ts} +6 -6
  321. package/{tabs-legacy/index.d.ts → types/siemens-element-ng-tabs-legacy.d.ts} +5 -0
  322. package/{threshold/index.d.ts → types/siemens-element-ng-threshold.d.ts} +7 -7
  323. package/{toast-notification/index.d.ts → types/siemens-element-ng-toast-notification.d.ts} +3 -4
  324. package/{tooltip/index.d.ts → types/siemens-element-ng-tooltip.d.ts} +3 -6
  325. package/{tour/index.d.ts → types/siemens-element-ng-tour.d.ts} +1 -10
  326. package/{translate/index.d.ts → types/siemens-element-ng-translate.d.ts} +8 -1
  327. package/{tree-view/index.d.ts → types/siemens-element-ng-tree-view.d.ts} +0 -1
  328. package/{typeahead/index.d.ts → types/siemens-element-ng-typeahead.d.ts} +0 -2
  329. package/{wizard/index.d.ts → types/siemens-element-ng-wizard.d.ts} +6 -6
  330. package/wizard/package.json +2 -1
  331. package/fesm2022/siemens-element-ng-unauthorized-page.mjs +0 -75
  332. package/fesm2022/siemens-element-ng-unauthorized-page.mjs.map +0 -1
  333. package/icon/index.d.ts +0 -285
  334. package/schematics/migrations/action-modal-migration/action-modal-migration.js +0 -162
  335. package/schematics/migrations/action-modal-migration/action-modal.mappings.js +0 -98
  336. package/schematics/migrations/action-modal-migration/index.js +0 -5
  337. package/schematics/migrations/wizard-migration/index.js +0 -80
  338. package/schematics/scss-import-to-siemens-migration/index.js +0 -101
  339. package/schematics/scss-import-to-siemens-migration/schema.json +0 -16
  340. package/schematics/scss-import-to-siemens-migration/style-mappings.js +0 -62
  341. package/schematics/ts-import-to-siemens-migration/index.js +0 -230
  342. package/schematics/ts-import-to-siemens-migration/mappings/charts-ng-mappings.js +0 -71
  343. package/schematics/ts-import-to-siemens-migration/mappings/dashboards-ng-mappings.js +0 -54
  344. package/schematics/ts-import-to-siemens-migration/mappings/element-ng-mappings.js +0 -705
  345. package/schematics/ts-import-to-siemens-migration/mappings/element-translate-ng-mappings.js +0 -21
  346. package/schematics/ts-import-to-siemens-migration/mappings/index.js +0 -10
  347. package/schematics/ts-import-to-siemens-migration/mappings/maps-ng-mappings.js +0 -47
  348. package/schematics/ts-import-to-siemens-migration/mappings/native-charts-ng-mappings.js +0 -33
  349. package/schematics/ts-import-to-siemens-migration/model.js +0 -4
  350. package/schematics/ts-import-to-siemens-migration/schema.json +0 -16
  351. package/unauthorized-page/index.d.ts +0 -44
  352. package/unauthorized-page/package.json +0 -3
  353. /package/{about/index.d.ts → types/siemens-element-ng-about.d.ts} +0 -0
  354. /package/{action-modal/index.d.ts → types/siemens-element-ng-action-modal.d.ts} +0 -0
  355. /package/{ag-grid/index.d.ts → types/siemens-element-ng-ag-grid.d.ts} +0 -0
  356. /package/{auto-collapsable-list/index.d.ts → types/siemens-element-ng-auto-collapsable-list.d.ts} +0 -0
  357. /package/{avatar/index.d.ts → types/siemens-element-ng-avatar.d.ts} +0 -0
  358. /package/{badge/index.d.ts → types/siemens-element-ng-badge.d.ts} +0 -0
  359. /package/{breadcrumb-router/index.d.ts → types/siemens-element-ng-breadcrumb-router.d.ts} +0 -0
  360. /package/{card/index.d.ts → types/siemens-element-ng-card.d.ts} +0 -0
  361. /package/{circle-status/index.d.ts → types/siemens-element-ng-circle-status.d.ts} +0 -0
  362. /package/{color-picker/index.d.ts → types/siemens-element-ng-color-picker.d.ts} +0 -0
  363. /package/{column-selection-dialog/index.d.ts → types/siemens-element-ng-column-selection-dialog.d.ts} +0 -0
  364. /package/{connection-strength/index.d.ts → types/siemens-element-ng-connection-strength.d.ts} +0 -0
  365. /package/{copyright-notice/index.d.ts → types/siemens-element-ng-copyright-notice.d.ts} +0 -0
  366. /package/{datatable/index.d.ts → types/siemens-element-ng-datatable.d.ts} +0 -0
  367. /package/{empty-state/index.d.ts → types/siemens-element-ng-empty-state.d.ts} +0 -0
  368. /package/{footer/index.d.ts → types/siemens-element-ng-footer.d.ts} +0 -0
  369. /package/{header-dropdown/index.d.ts → types/siemens-element-ng-header-dropdown.d.ts} +0 -0
  370. /package/{help-button/index.d.ts → types/siemens-element-ng-help-button.d.ts} +0 -0
  371. /package/{icon-status/index.d.ts → types/siemens-element-ng-icon-status.d.ts} +0 -0
  372. /package/{info-page/index.d.ts → types/siemens-element-ng-info-page.d.ts} +0 -0
  373. /package/{inline-notification/index.d.ts → types/siemens-element-ng-inline-notification.d.ts} +0 -0
  374. /package/{ip-input/index.d.ts → types/siemens-element-ng-ip-input.d.ts} +0 -0
  375. /package/{link/index.d.ts → types/siemens-element-ng-link.d.ts} +0 -0
  376. /package/{localization/index.d.ts → types/siemens-element-ng-localization.d.ts} +0 -0
  377. /package/{main-detail-container/index.d.ts → types/siemens-element-ng-main-detail-container.d.ts} +0 -0
  378. /package/{markdown-renderer/index.d.ts → types/siemens-element-ng-markdown-renderer.d.ts} +0 -0
  379. /package/{menu/index.d.ts → types/siemens-element-ng-menu.d.ts} +0 -0
  380. /package/{number-input/index.d.ts → types/siemens-element-ng-number-input.d.ts} +0 -0
  381. /package/{password-strength/index.d.ts → types/siemens-element-ng-password-strength.d.ts} +0 -0
  382. /package/{photo-upload/index.d.ts → types/siemens-element-ng-photo-upload.d.ts} +0 -0
  383. /package/{popover-legacy/index.d.ts → types/siemens-element-ng-popover-legacy.d.ts} +0 -0
  384. /package/{progressbar/index.d.ts → types/siemens-element-ng-progressbar.d.ts} +0 -0
  385. /package/{result-details-list/index.d.ts → types/siemens-element-ng-result-details-list.d.ts} +0 -0
  386. /package/{shadow-root/index.d.ts → types/siemens-element-ng-shadow-root.d.ts} +0 -0
  387. /package/{skip-links/index.d.ts → types/siemens-element-ng-skip-links.d.ts} +0 -0
  388. /package/{sort-bar/index.d.ts → types/siemens-element-ng-sort-bar.d.ts} +0 -0
  389. /package/{status-counter/index.d.ts → types/siemens-element-ng-status-counter.d.ts} +0 -0
  390. /package/{status-toggle/index.d.ts → types/siemens-element-ng-status-toggle.d.ts} +0 -0
  391. /package/{summary-chip/index.d.ts → types/siemens-element-ng-summary-chip.d.ts} +0 -0
  392. /package/{summary-widget/index.d.ts → types/siemens-element-ng-summary-widget.d.ts} +0 -0
  393. /package/{system-banner/index.d.ts → types/siemens-element-ng-system-banner.d.ts} +0 -0
  394. /package/{tabs/index.d.ts → types/siemens-element-ng-tabs.d.ts} +0 -0
  395. /package/{theme/index.d.ts → types/siemens-element-ng-theme.d.ts} +0 -0
  396. /package/{index.d.ts → types/siemens-element-ng.d.ts} +0 -0
@@ -1,25 +1,25 @@
1
- import { trigger, state, transition, style, animate } from '@angular/animations';
2
1
  import { NgTemplateOutlet } from '@angular/common';
3
2
  import * as i0 from '@angular/core';
4
- import { inject, ElementRef, input, computed, model, booleanAttribute, signal, ChangeDetectionStrategy, Component, contentChild, DestroyRef, effect, viewChild } from '@angular/core';
3
+ import { inject, ElementRef, viewChild, input, computed, model, booleanAttribute, signal, ChangeDetectionStrategy, Component, contentChild, DestroyRef, effect } from '@angular/core';
5
4
  import { areAnimationsDisabled } from '@siemens/element-ng/common';
6
5
  import { ResizeObserverService, BOOTSTRAP_BREAKPOINTS } from '@siemens/element-ng/resize-observer';
7
6
  import { SiSplitComponent, SiSplitPartComponent } from '@siemens/element-ng/split';
8
7
  import { Subject, BehaviorSubject } from 'rxjs';
9
8
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
10
9
  import { RouterOutlet, Router, ActivatedRoute } from '@angular/router';
11
- import { addIcons, elementBack, SiIconComponent } from '@siemens/element-ng/icon';
10
+ import { elementBack } from '@siemens/element-icons';
11
+ import { addIcons, SiIconComponent } from '@siemens/element-ng/icon';
12
12
  import { t, SiTranslatePipe } from '@siemens/element-translate-ng/translate';
13
13
 
14
14
  /**
15
15
  * Copyright (c) Siemens 2016 - 2025
16
16
  * SPDX-License-Identifier: MIT
17
17
  */
18
- /** @experimental */
19
18
  class SiListDetailsComponent {
20
19
  resizeSubs;
21
20
  elementRef = inject(ElementRef);
22
21
  resizeObserver = inject(ResizeObserverService);
22
+ listDetailsContainer = viewChild.required('listDetailsContainer');
23
23
  animationsGloballyDisabled = areAnimationsDisabled();
24
24
  /**
25
25
  * A numeric value defining the minimum width in px, which the component needs
@@ -29,18 +29,18 @@ class SiListDetailsComponent {
29
29
  *
30
30
  * @defaultValue BOOTSTRAP_BREAKPOINTS.mdMinimum
31
31
  */
32
- expandBreakpoint = input(BOOTSTRAP_BREAKPOINTS.mdMinimum);
32
+ expandBreakpoint = input(BOOTSTRAP_BREAKPOINTS.mdMinimum, ...(ngDevMode ? [{ debugName: "expandBreakpoint" }] : []));
33
33
  hasLargeSize = computed(() => {
34
34
  const dimensions = this.resizeDimensions();
35
35
  return !!dimensions && dimensions.width >= this.expandBreakpoint();
36
- });
36
+ }, ...(ngDevMode ? [{ debugName: "hasLargeSize" }] : []));
37
37
  /**
38
38
  * Whether the details are currently active or not, mostly relevant in the
39
39
  * responsive scenario when the viewport only shows either the list or the detail.
40
40
  *
41
41
  * @defaultValue false
42
42
  */
43
- detailsActive = model(false);
43
+ detailsActive = model(false, ...(ngDevMode ? [{ debugName: "detailsActive" }] : []));
44
44
  /**
45
45
  * Whether the list and detail parts should be resizable by a splitter or not.
46
46
  * This is only supported in the 'large' scenario (when `hasLargeSize` is `true`).
@@ -48,52 +48,52 @@ class SiListDetailsComponent {
48
48
  *
49
49
  * @defaultValue false
50
50
  */
51
- disableResizing = input(false, { transform: booleanAttribute });
51
+ disableResizing = input(false, { ...(ngDevMode ? { debugName: "disableResizing" } : {}), transform: booleanAttribute });
52
52
  /**
53
53
  * The percentage width of the list view of the overall component width.
54
54
  *
55
55
  * @defaultValue 32
56
56
  */
57
- listWidth = model(32);
57
+ listWidth = model(32, ...(ngDevMode ? [{ debugName: "listWidth" }] : []));
58
58
  /**
59
59
  * Sets the minimal width of the list component in pixel.
60
60
  *
61
61
  * @defaultValue 300
62
62
  */
63
- minListSize = input(300);
63
+ minListSize = input(300, ...(ngDevMode ? [{ debugName: "minListSize" }] : []));
64
64
  /**
65
65
  * Sets the minimal width of the detail component in pixel.
66
66
  *
67
67
  * @defaultValue 300
68
68
  */
69
- minDetailsSize = input(300);
69
+ minDetailsSize = input(300, ...(ngDevMode ? [{ debugName: "minDetailsSize" }] : []));
70
70
  /**
71
71
  * An optional stateId to uniquely identify a component instance.
72
72
  * Required for persistence of ui state.
73
73
  */
74
- stateId = input();
74
+ stateId = input(...(ngDevMode ? [undefined, { debugName: "stateId" }] : []));
75
75
  splitSizes = computed(() => [
76
76
  this.listWidth(),
77
77
  100 - this.listWidth()
78
- ]);
78
+ ], ...(ngDevMode ? [{ debugName: "splitSizes" }] : []));
79
79
  listStateId = computed(() => {
80
80
  const stateId = this.stateId();
81
81
  return stateId ? `${stateId}-list` : undefined;
82
- });
82
+ }, ...(ngDevMode ? [{ debugName: "listStateId" }] : []));
83
83
  detailsStateId = computed(() => {
84
84
  const stateId = this.stateId();
85
85
  return stateId ? `${stateId}-details` : undefined;
86
- });
87
- opacity = computed(() => (this.resizeDimensions() ? '' : '0'));
86
+ }, ...(ngDevMode ? [{ debugName: "detailsStateId" }] : []));
87
+ opacity = computed(() => (this.resizeDimensions() ? '' : '0'), ...(ngDevMode ? [{ debugName: "opacity" }] : []));
88
88
  /** @internal */
89
89
  detailsExpandedAnimation = computed(() => {
90
- if (!this.animationsGloballyDisabled && !this.hasLargeSize()) {
91
- return this.detailsActive() ? 'expanded' : 'collapsed';
90
+ if (!this.hasLargeSize()) {
91
+ return this.detailsActive() ? 'details-active expanded' : 'collapsed';
92
92
  }
93
93
  else {
94
94
  return 'disabled';
95
95
  }
96
- });
96
+ }, ...(ngDevMode ? [{ debugName: "detailsExpandedAnimation" }] : []));
97
97
  // Used for focus transfer, can not use a focus trap for this.
98
98
  hadLargeSizePreviously;
99
99
  detailsActivePreviously;
@@ -122,18 +122,26 @@ class SiListDetailsComponent {
122
122
  ngOnDestroy() {
123
123
  this.resizeSubs?.unsubscribe();
124
124
  }
125
- resizeDimensions = signal(undefined);
125
+ resizeDimensions = signal(undefined, ...(ngDevMode ? [{ debugName: "resizeDimensions" }] : []));
126
126
  onSplitSizesChange(sizes) {
127
127
  this.listWidth.set(sizes[0]);
128
128
  }
129
129
  /** @internal */
130
130
  detailsBackClicked(options) {
131
131
  this.detailsActive.set(false);
132
- // This callback is used to route after the animation is done.
133
- this.animationDone = options?.animationDone;
132
+ // Directly call the done callback if animations are disabled.
133
+ if (this.animationsGloballyDisabled) {
134
+ options?.animationDone?.();
135
+ }
136
+ else {
137
+ // This callback is used to route after the animation is done.
138
+ this.animationDone = options?.animationDone;
139
+ }
134
140
  }
135
- detailsExpandedAnimationDone() {
136
- if (this.animationDone) {
141
+ detailsExpandedAnimationDone(event) {
142
+ // Since the 'transitionend' event bubbles up from child elements,
143
+ // ensure the event target is the container itself.
144
+ if (this.animationDone && this.listDetailsContainer().nativeElement === event.target) {
137
145
  this.animationDone();
138
146
  this.animationDone = undefined;
139
147
  }
@@ -160,43 +168,23 @@ class SiListDetailsComponent {
160
168
  this.hadLargeSizePreviously = hasLargeSize;
161
169
  this.detailsActivePreviously = detailsActive;
162
170
  }
163
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiListDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
164
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiListDetailsComponent, isStandalone: true, selector: "si-list-details", inputs: { expandBreakpoint: { classPropertyName: "expandBreakpoint", publicName: "expandBreakpoint", isSignal: true, isRequired: false, transformFunction: null }, detailsActive: { classPropertyName: "detailsActive", publicName: "detailsActive", isSignal: true, isRequired: false, transformFunction: null }, disableResizing: { classPropertyName: "disableResizing", publicName: "disableResizing", isSignal: true, isRequired: false, transformFunction: null }, listWidth: { classPropertyName: "listWidth", publicName: "listWidth", isSignal: true, isRequired: false, transformFunction: null }, minListSize: { classPropertyName: "minListSize", publicName: "minListSize", isSignal: true, isRequired: false, transformFunction: null }, minDetailsSize: { classPropertyName: "minDetailsSize", publicName: "minDetailsSize", isSignal: true, isRequired: false, transformFunction: null }, stateId: { classPropertyName: "stateId", publicName: "stateId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { detailsActive: "detailsActiveChange", listWidth: "listWidthChange" }, host: { properties: { "class.expanded": "hasLargeSize()", "style.opacity": "opacity()" }, classAttribute: "si-layout-inner list-details-layout d-flex flex-column" }, usesOnChanges: true, ngImport: i0, template: "@if (!disableResizing() && hasLargeSize()) {\n <si-split\n class=\"w-100 flex-grow-1\"\n orientation=\"horizontal\"\n [stateId]=\"stateId()\"\n [sizes]=\"splitSizes()\"\n (sizesChange)=\"onSplitSizesChange($event)\"\n >\n <si-split-part\n scale=\"none\"\n [showCollapseButton]=\"false\"\n [showHeader]=\"false\"\n [minSize]=\"minListSize()\"\n [stateId]=\"listStateId()\"\n >\n <ng-container *ngTemplateOutlet=\"listTemplate\" />\n </si-split-part>\n <si-split-part\n scale=\"auto\"\n [showCollapseButton]=\"false\"\n [showHeader]=\"false\"\n [minSize]=\"minDetailsSize()\"\n [stateId]=\"detailsStateId()\"\n >\n <ng-container *ngTemplateOutlet=\"detailsTemplate\" />\n </si-split-part>\n </si-split>\n} @else {\n <div\n class=\"list-details d-flex flex-row\"\n [class.gap-6]=\"hasLargeSize()\"\n [class.details-active]=\"detailsActive() && !hasLargeSize()\"\n [@detailsExpanded]=\"detailsExpandedAnimation()\"\n (@detailsExpanded.done)=\"detailsExpandedAnimationDone()\"\n >\n <ng-container *ngTemplateOutlet=\"listTemplate\" />\n <ng-container *ngTemplateOutlet=\"detailsTemplate\" />\n </div>\n}\n\n<ng-template #listTemplate>\n <ng-content select=\"si-list-pane\" />\n</ng-template>\n\n<ng-template #detailsTemplate>\n <ng-content select=\"si-details-pane\" />\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column;gap:16px;overflow-x:hidden}:host ::ng-deep si-split{min-block-size:0}:host ::ng-deep si-list-pane-header~si-list-pane-header{padding-block-start:0}:host .list-details{flex:1 1 0;min-block-size:0;inline-size:100%;position:relative}:host:not(.expanded) .list-details{inline-size:200%;transform-origin:top left;margin-inline-start:0}:host:not(.expanded) .list-details.details-active{margin-inline-start:-100%}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SiSplitComponent, selector: "si-split", inputs: ["gutterSize", "orientation", "sizes", "stateId"], outputs: ["sizesChange"] }, { kind: "component", type: SiSplitPartComponent, selector: "si-split-part", inputs: ["actions", "collapseDirection", "collapseIconClass", "collapseToMinSize", "headerTemplate", "heading", "minSize", "removeContentOnCollapse", "scale", "showCollapseButton", "showHeader", "collapseLabel", "stateId", "size", "collapseOthers", "expanded"], outputs: ["collapseChanged", "stateChange"] }], animations: [
165
- trigger('detailsExpanded', [
166
- state('collapsed', style({
167
- marginInlineStart: '0'
168
- })),
169
- state('expanded', style({
170
- marginInlineStart: '-100%'
171
- })),
172
- transition('collapsed <=> expanded', [animate('0.5s ease-in-out')])
173
- ])
174
- ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
171
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiListDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
172
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiListDetailsComponent, isStandalone: true, selector: "si-list-details", inputs: { expandBreakpoint: { classPropertyName: "expandBreakpoint", publicName: "expandBreakpoint", isSignal: true, isRequired: false, transformFunction: null }, detailsActive: { classPropertyName: "detailsActive", publicName: "detailsActive", isSignal: true, isRequired: false, transformFunction: null }, disableResizing: { classPropertyName: "disableResizing", publicName: "disableResizing", isSignal: true, isRequired: false, transformFunction: null }, listWidth: { classPropertyName: "listWidth", publicName: "listWidth", isSignal: true, isRequired: false, transformFunction: null }, minListSize: { classPropertyName: "minListSize", publicName: "minListSize", isSignal: true, isRequired: false, transformFunction: null }, minDetailsSize: { classPropertyName: "minDetailsSize", publicName: "minDetailsSize", isSignal: true, isRequired: false, transformFunction: null }, stateId: { classPropertyName: "stateId", publicName: "stateId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { detailsActive: "detailsActiveChange", listWidth: "listWidthChange" }, host: { properties: { "class.animations-disabled": "animationsGloballyDisabled", "class.expanded": "hasLargeSize()", "style.opacity": "opacity()" }, classAttribute: "si-layout-inner list-details-layout d-flex flex-column" }, viewQueries: [{ propertyName: "listDetailsContainer", first: true, predicate: ["listDetailsContainer"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "@if (!disableResizing() && hasLargeSize()) {\n <si-split\n class=\"w-100 flex-grow-1\"\n orientation=\"horizontal\"\n [stateId]=\"stateId()\"\n [sizes]=\"splitSizes()\"\n (sizesChange)=\"onSplitSizesChange($event)\"\n >\n <si-split-part\n scale=\"none\"\n [showCollapseButton]=\"false\"\n [showHeader]=\"false\"\n [minSize]=\"minListSize()\"\n [stateId]=\"listStateId()\"\n >\n <ng-container *ngTemplateOutlet=\"listTemplate\" />\n </si-split-part>\n <si-split-part\n scale=\"auto\"\n [showCollapseButton]=\"false\"\n [showHeader]=\"false\"\n [minSize]=\"minDetailsSize()\"\n [stateId]=\"detailsStateId()\"\n >\n <ng-container *ngTemplateOutlet=\"detailsTemplate\" />\n </si-split-part>\n </si-split>\n} @else {\n <div\n #listDetailsContainer\n [class]=\"`list-details d-flex flex-row ${detailsExpandedAnimation()}`\"\n [class.gap-6]=\"hasLargeSize()\"\n (transitionend)=\"detailsExpandedAnimationDone($event)\"\n >\n <ng-container *ngTemplateOutlet=\"listTemplate\" />\n <ng-container *ngTemplateOutlet=\"detailsTemplate\" />\n </div>\n}\n\n<ng-template #listTemplate>\n <ng-content select=\"si-list-pane\" />\n</ng-template>\n\n<ng-template #detailsTemplate>\n <ng-content select=\"si-details-pane\" />\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column;gap:16px;contain:layout}:host ::ng-deep si-split{min-block-size:0}:host ::ng-deep si-list-pane-header~si-list-pane-header{padding-block-start:0}:host .list-details{flex:1 1 0;min-block-size:0;inline-size:100%;position:relative}:host:not(.expanded) .list-details{inline-size:200%;margin-inline-start:0;transform:translate(0);transition:transform .5s ease-in-out}:host:not(.expanded) .list-details.details-active{transform:translate(-50%)}:host-context([dir=rtl]) :host:not(.expanded) .list-details.details-active{transform:translate(50%)}:host.animations-disabled .list-details{transition:none}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SiSplitComponent, selector: "si-split", inputs: ["gutterSize", "orientation", "sizes", "stateId"], outputs: ["sizesChange"] }, { kind: "component", type: SiSplitPartComponent, selector: "si-split-part", inputs: ["actions", "collapseDirection", "collapseIconClass", "collapseToMinSize", "headerTemplate", "heading", "minSize", "removeContentOnCollapse", "scale", "showCollapseButton", "showHeader", "collapseLabel", "stateId", "size", "collapseOthers", "expanded"], outputs: ["collapseChanged", "stateChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
175
173
  }
176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiListDetailsComponent, decorators: [{
174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiListDetailsComponent, decorators: [{
177
175
  type: Component,
178
176
  args: [{ selector: 'si-list-details', imports: [NgTemplateOutlet, SiSplitComponent, SiSplitPartComponent], changeDetection: ChangeDetectionStrategy.OnPush, host: {
179
177
  class: 'si-layout-inner list-details-layout d-flex flex-column',
178
+ '[class.animations-disabled]': 'animationsGloballyDisabled',
180
179
  '[class.expanded]': 'hasLargeSize()',
181
180
  '[style.opacity]': 'opacity()'
182
- }, animations: [
183
- trigger('detailsExpanded', [
184
- state('collapsed', style({
185
- marginInlineStart: '0'
186
- })),
187
- state('expanded', style({
188
- marginInlineStart: '-100%'
189
- })),
190
- transition('collapsed <=> expanded', [animate('0.5s ease-in-out')])
191
- ])
192
- ], template: "@if (!disableResizing() && hasLargeSize()) {\n <si-split\n class=\"w-100 flex-grow-1\"\n orientation=\"horizontal\"\n [stateId]=\"stateId()\"\n [sizes]=\"splitSizes()\"\n (sizesChange)=\"onSplitSizesChange($event)\"\n >\n <si-split-part\n scale=\"none\"\n [showCollapseButton]=\"false\"\n [showHeader]=\"false\"\n [minSize]=\"minListSize()\"\n [stateId]=\"listStateId()\"\n >\n <ng-container *ngTemplateOutlet=\"listTemplate\" />\n </si-split-part>\n <si-split-part\n scale=\"auto\"\n [showCollapseButton]=\"false\"\n [showHeader]=\"false\"\n [minSize]=\"minDetailsSize()\"\n [stateId]=\"detailsStateId()\"\n >\n <ng-container *ngTemplateOutlet=\"detailsTemplate\" />\n </si-split-part>\n </si-split>\n} @else {\n <div\n class=\"list-details d-flex flex-row\"\n [class.gap-6]=\"hasLargeSize()\"\n [class.details-active]=\"detailsActive() && !hasLargeSize()\"\n [@detailsExpanded]=\"detailsExpandedAnimation()\"\n (@detailsExpanded.done)=\"detailsExpandedAnimationDone()\"\n >\n <ng-container *ngTemplateOutlet=\"listTemplate\" />\n <ng-container *ngTemplateOutlet=\"detailsTemplate\" />\n </div>\n}\n\n<ng-template #listTemplate>\n <ng-content select=\"si-list-pane\" />\n</ng-template>\n\n<ng-template #detailsTemplate>\n <ng-content select=\"si-details-pane\" />\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column;gap:16px;overflow-x:hidden}:host ::ng-deep si-split{min-block-size:0}:host ::ng-deep si-list-pane-header~si-list-pane-header{padding-block-start:0}:host .list-details{flex:1 1 0;min-block-size:0;inline-size:100%;position:relative}:host:not(.expanded) .list-details{inline-size:200%;transform-origin:top left;margin-inline-start:0}:host:not(.expanded) .list-details.details-active{margin-inline-start:-100%}\n"] }]
193
- }] });
181
+ }, template: "@if (!disableResizing() && hasLargeSize()) {\n <si-split\n class=\"w-100 flex-grow-1\"\n orientation=\"horizontal\"\n [stateId]=\"stateId()\"\n [sizes]=\"splitSizes()\"\n (sizesChange)=\"onSplitSizesChange($event)\"\n >\n <si-split-part\n scale=\"none\"\n [showCollapseButton]=\"false\"\n [showHeader]=\"false\"\n [minSize]=\"minListSize()\"\n [stateId]=\"listStateId()\"\n >\n <ng-container *ngTemplateOutlet=\"listTemplate\" />\n </si-split-part>\n <si-split-part\n scale=\"auto\"\n [showCollapseButton]=\"false\"\n [showHeader]=\"false\"\n [minSize]=\"minDetailsSize()\"\n [stateId]=\"detailsStateId()\"\n >\n <ng-container *ngTemplateOutlet=\"detailsTemplate\" />\n </si-split-part>\n </si-split>\n} @else {\n <div\n #listDetailsContainer\n [class]=\"`list-details d-flex flex-row ${detailsExpandedAnimation()}`\"\n [class.gap-6]=\"hasLargeSize()\"\n (transitionend)=\"detailsExpandedAnimationDone($event)\"\n >\n <ng-container *ngTemplateOutlet=\"listTemplate\" />\n <ng-container *ngTemplateOutlet=\"detailsTemplate\" />\n </div>\n}\n\n<ng-template #listTemplate>\n <ng-content select=\"si-list-pane\" />\n</ng-template>\n\n<ng-template #detailsTemplate>\n <ng-content select=\"si-details-pane\" />\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column;gap:16px;contain:layout}:host ::ng-deep si-split{min-block-size:0}:host ::ng-deep si-list-pane-header~si-list-pane-header{padding-block-start:0}:host .list-details{flex:1 1 0;min-block-size:0;inline-size:100%;position:relative}:host:not(.expanded) .list-details{inline-size:200%;margin-inline-start:0;transform:translate(0);transition:transform .5s ease-in-out}:host:not(.expanded) .list-details.details-active{transform:translate(-50%)}:host-context([dir=rtl]) :host:not(.expanded) .list-details.details-active{transform:translate(50%)}:host.animations-disabled .list-details{transition:none}\n"] }]
182
+ }], propDecorators: { listDetailsContainer: [{ type: i0.ViewChild, args: ['listDetailsContainer', { isSignal: true }] }], expandBreakpoint: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandBreakpoint", required: false }] }], detailsActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "detailsActive", required: false }] }, { type: i0.Output, args: ["detailsActiveChange"] }], disableResizing: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableResizing", required: false }] }], listWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "listWidth", required: false }] }, { type: i0.Output, args: ["listWidthChange"] }], minListSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "minListSize", required: false }] }], minDetailsSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "minDetailsSize", required: false }] }], stateId: [{ type: i0.Input, args: [{ isSignal: true, alias: "stateId", required: false }] }] } });
194
183
 
195
184
  /**
196
185
  * Copyright (c) Siemens 2016 - 2025
197
186
  * SPDX-License-Identifier: MIT
198
187
  */
199
- /** @experimental */
200
188
  class SiListPaneComponent {
201
189
  parent = inject(SiListDetailsComponent);
202
190
  element = inject(ElementRef);
@@ -215,10 +203,10 @@ class SiListPaneComponent {
215
203
  });
216
204
  });
217
205
  }
218
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiListPaneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
219
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: SiListPaneComponent, isStandalone: true, selector: "si-list-pane", host: { properties: { "class.expanded": "parent.hasLargeSize()", "class.details-active": "parent.detailsActive() && !parent.hasLargeSize()", "attr.inert": "!parent.hasLargeSize() && parent.detailsActive() ? \"\" : null", "attr.tabindex": "-1", "style.flex-basis.%": "parent.hasLargeSize() && parent.disableResizing() ? parent.listWidth() : undefined" } }, ngImport: i0, template: "<ng-content />\n", styles: [":host{flex:1;display:flex;flex-direction:column;block-size:100%;max-inline-size:100%;opacity:1;transition:opacity calc(.5s * var(--element-animations-enabled, 1)) ease-in-out}:host:not(.expanded){inline-size:100%}:host.details-active{pointer-events:none;opacity:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
206
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiListPaneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
207
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: SiListPaneComponent, isStandalone: true, selector: "si-list-pane", host: { properties: { "class.expanded": "parent.hasLargeSize()", "class.details-active": "parent.detailsActive() && !parent.hasLargeSize()", "attr.inert": "!parent.hasLargeSize() && parent.detailsActive() ? \"\" : null", "attr.tabindex": "-1", "style.flex-basis.%": "parent.hasLargeSize() && parent.disableResizing() ? parent.listWidth() : undefined" } }, ngImport: i0, template: "<ng-content />\n", styles: [":host{flex:1;display:flex;flex-direction:column;block-size:100%;max-inline-size:100%;opacity:1;transition:opacity calc(.5s * var(--element-animations-enabled, 1)) ease-in-out}:host:not(.expanded){inline-size:100%}:host.details-active{pointer-events:none;opacity:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
220
208
  }
221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiListPaneComponent, decorators: [{
209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiListPaneComponent, decorators: [{
222
210
  type: Component,
223
211
  args: [{ selector: 'si-list-pane', changeDetection: ChangeDetectionStrategy.OnPush, host: {
224
212
  '[class.expanded]': 'parent.hasLargeSize()',
@@ -233,12 +221,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
233
221
  * Copyright (c) Siemens 2016 - 2025
234
222
  * SPDX-License-Identifier: MIT
235
223
  */
236
- /** @experimental */
237
224
  class SiListPaneHeaderComponent {
238
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiListPaneHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
239
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: SiListPaneHeaderComponent, isStandalone: true, selector: "si-list-pane-header", ngImport: i0, template: "<ng-content />\n", styles: [":host{display:flex;flex-direction:row;justify-content:space-between;inline-size:100%;flex:none;gap:6px;padding-block:12px;padding-inline:16px}:host ::ng-deep si-menu-bar si-menu-item{block-size:auto}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
225
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiListPaneHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
226
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: SiListPaneHeaderComponent, isStandalone: true, selector: "si-list-pane-header", ngImport: i0, template: "<ng-content />\n", styles: [":host{display:flex;flex-direction:row;justify-content:space-between;inline-size:100%;flex:none;gap:6px;padding-block:12px;padding-inline:16px}:host ::ng-deep si-menu-bar si-menu-item{block-size:auto}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
240
227
  }
241
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiListPaneHeaderComponent, decorators: [{
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiListPaneHeaderComponent, decorators: [{
242
229
  type: Component,
243
230
  args: [{ selector: 'si-list-pane-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content />\n", styles: [":host{display:flex;flex-direction:row;justify-content:space-between;inline-size:100%;flex:none;gap:6px;padding-block:12px;padding-inline:16px}:host ::ng-deep si-menu-bar si-menu-item{block-size:auto}\n"] }]
244
231
  }] });
@@ -247,12 +234,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
247
234
  * Copyright (c) Siemens 2016 - 2025
248
235
  * SPDX-License-Identifier: MIT
249
236
  */
250
- /** @experimental */
251
237
  class SiListPaneBodyComponent {
252
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiListPaneBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
253
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: SiListPaneBodyComponent, isStandalone: true, selector: "si-list-pane-body", ngImport: i0, template: "<ng-content />\n", styles: [":host{flex:1;display:flex;flex-direction:column;justify-content:space-between;max-inline-size:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
238
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiListPaneBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
239
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: SiListPaneBodyComponent, isStandalone: true, selector: "si-list-pane-body", ngImport: i0, template: "<ng-content />\n", styles: [":host{flex:1;display:flex;flex-direction:column;justify-content:space-between;max-inline-size:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
254
240
  }
255
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiListPaneBodyComponent, decorators: [{
241
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiListPaneBodyComponent, decorators: [{
256
242
  type: Component,
257
243
  args: [{ selector: 'si-list-pane-body', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content />\n", styles: [":host{flex:1;display:flex;flex-direction:column;justify-content:space-between;max-inline-size:100%}\n"] }]
258
244
  }] });
@@ -261,14 +247,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
261
247
  * Copyright (c) Siemens 2016 - 2025
262
248
  * SPDX-License-Identifier: MIT
263
249
  */
264
- /** @experimental */
265
250
  class SiDetailsPaneComponent {
266
251
  parent = inject(SiListDetailsComponent);
267
- routerOutlet = contentChild(RouterOutlet);
252
+ routerOutlet = contentChild(RouterOutlet, ...(ngDevMode ? [{ debugName: "routerOutlet" }] : []));
268
253
  subscription;
269
254
  destroyer = inject(DestroyRef);
270
255
  /** @internal */
271
- isRouterBased = computed(() => !!this.routerOutlet());
256
+ isRouterBased = computed(() => !!this.routerOutlet(), ...(ngDevMode ? [{ debugName: "isRouterBased" }] : []));
272
257
  constructor() {
273
258
  effect(() => {
274
259
  const outlet = this.routerOutlet();
@@ -281,10 +266,10 @@ class SiDetailsPaneComponent {
281
266
  }
282
267
  });
283
268
  }
284
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiDetailsPaneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
285
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.6", type: SiDetailsPaneComponent, isStandalone: true, selector: "si-details-pane", host: { properties: { "class.expanded": "parent.hasLargeSize()", "class.details-active": "parent.detailsActive() && !parent.hasLargeSize()", "attr.inert": "!parent.hasLargeSize() && !parent.detailsActive() ? \"\" : null", "style.flex-basis.%": "parent.hasLargeSize() && parent.disableResizing() ? 100 - parent.listWidth() : undefined" } }, queries: [{ propertyName: "routerOutlet", first: true, predicate: RouterOutlet, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content />\n", styles: [":host{flex:1;display:flex;flex-direction:column;block-size:100%;max-inline-size:100%;pointer-events:none;opacity:0;transition:opacity calc(.5s * var(--element-animations-enabled, 1)) ease-in-out}:host:not(.expanded){inline-size:100%}:host.details-active,:host.expanded{pointer-events:auto;opacity:1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
269
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiDetailsPaneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
270
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.8", type: SiDetailsPaneComponent, isStandalone: true, selector: "si-details-pane", host: { properties: { "class.expanded": "parent.hasLargeSize()", "class.details-active": "parent.detailsActive() && !parent.hasLargeSize()", "attr.inert": "!parent.hasLargeSize() && !parent.detailsActive() ? \"\" : null", "style.flex-basis.%": "parent.hasLargeSize() && parent.disableResizing() ? 100 - parent.listWidth() : undefined" } }, queries: [{ propertyName: "routerOutlet", first: true, predicate: RouterOutlet, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content />\n", styles: [":host{flex:1;display:flex;flex-direction:column;block-size:100%;max-inline-size:100%;pointer-events:none;opacity:0;transition:opacity calc(.5s * var(--element-animations-enabled, 1)) ease-in-out}:host:not(.expanded){inline-size:100%}:host.details-active,:host.expanded{pointer-events:auto;opacity:1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
286
271
  }
287
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiDetailsPaneComponent, decorators: [{
272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiDetailsPaneComponent, decorators: [{
288
273
  type: Component,
289
274
  args: [{ selector: 'si-details-pane', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, host: {
290
275
  '[class.expanded]': 'parent.hasLargeSize()',
@@ -292,20 +277,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
292
277
  '[attr.inert]': '!parent.hasLargeSize() && !parent.detailsActive() ? "" : null',
293
278
  '[style.flex-basis.%]': 'parent.hasLargeSize() && parent.disableResizing() ? 100 - parent.listWidth() : undefined'
294
279
  }, template: "<ng-content />\n", styles: [":host{flex:1;display:flex;flex-direction:column;block-size:100%;max-inline-size:100%;pointer-events:none;opacity:0;transition:opacity calc(.5s * var(--element-animations-enabled, 1)) ease-in-out}:host:not(.expanded){inline-size:100%}:host.details-active,:host.expanded{pointer-events:auto;opacity:1}\n"] }]
295
- }], ctorParameters: () => [] });
280
+ }], ctorParameters: () => [], propDecorators: { routerOutlet: [{ type: i0.ContentChild, args: [i0.forwardRef(() => RouterOutlet), { isSignal: true }] }] } });
296
281
 
297
282
  /**
298
283
  * Copyright (c) Siemens 2016 - 2025
299
284
  * SPDX-License-Identifier: MIT
300
285
  */
301
- /** @experimental */
302
286
  class SiDetailsPaneHeaderComponent {
303
287
  icons = addIcons({ elementBack });
304
288
  parent = inject(SiListDetailsComponent);
305
289
  /**
306
290
  * Optional title to be displayed.
307
291
  */
308
- title = input();
292
+ title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : []));
309
293
  /**
310
294
  * You can hide the back button in the mobile view by setting true. Required
311
295
  * in add, edit workflows on mobile sizes. During add or edit, the back button
@@ -313,7 +297,7 @@ class SiDetailsPaneHeaderComponent {
313
297
  *
314
298
  * @defaultValue false
315
299
  */
316
- hideBackButton = input(false, { transform: booleanAttribute });
300
+ hideBackButton = input(false, { ...(ngDevMode ? { debugName: "hideBackButton" } : {}), transform: booleanAttribute });
317
301
  /**
318
302
  * Details back button text. Required for a11y.
319
303
  *
@@ -322,18 +306,18 @@ class SiDetailsPaneHeaderComponent {
322
306
  * t(() => $localize`:@@SI_LIST_DETAILS.BACK:Back`)
323
307
  * ```
324
308
  */
325
- backButtonText = input(t(() => $localize `:@@SI_LIST_DETAILS.BACK:Back`));
309
+ backButtonText = input(t(() => $localize `:@@SI_LIST_DETAILS.BACK:Back`), ...(ngDevMode ? [{ debugName: "backButtonText" }] : []));
326
310
  /**
327
311
  * The URL to navigate to when the back buttons is clicked.
328
312
  * This is only used when the `si-details-pane` is used with a router-outlet.
329
313
  *
330
314
  * @defaultValue '../'
331
315
  */
332
- backButtonUrl = input('../');
316
+ backButtonUrl = input('../', ...(ngDevMode ? [{ debugName: "backButtonUrl" }] : []));
333
317
  isRouterBased = inject(SiDetailsPaneComponent).isRouterBased;
334
318
  router = inject(Router, { optional: true });
335
319
  activatedRoute = inject(ActivatedRoute, { optional: true });
336
- backButton = viewChild('backButton');
320
+ backButton = viewChild('backButton', ...(ngDevMode ? [{ debugName: "backButton" }] : []));
337
321
  constructor() {
338
322
  this.parent.transferFocusToDetails.pipe(takeUntilDestroyed()).subscribe(shouldFocus => {
339
323
  if (shouldFocus) {
@@ -357,26 +341,25 @@ class SiDetailsPaneHeaderComponent {
357
341
  : undefined
358
342
  });
359
343
  }
360
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiDetailsPaneHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
361
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiDetailsPaneHeaderComponent, isStandalone: true, selector: "si-details-pane-header", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, hideBackButton: { classPropertyName: "hideBackButton", publicName: "hideBackButton", isSignal: true, isRequired: false, transformFunction: null }, backButtonText: { classPropertyName: "backButtonText", publicName: "backButtonText", isSignal: true, isRequired: false, transformFunction: null }, backButtonUrl: { classPropertyName: "backButtonUrl", publicName: "backButtonUrl", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "nav nav-tabs" }, viewQueries: [{ propertyName: "backButton", first: true, predicate: ["backButton"], descendants: true, isSignal: true }], ngImport: i0, template: "@if ((!hasLargeSize() && !hideBackButton()) || title()) {\n <div class=\"title-subgroup\">\n @if (!hasLargeSize() && !hideBackButton()) {\n <button\n #backButton\n type=\"button\"\n class=\"si-details-header-back nav-link focus-inside px-6\"\n (click)=\"backClicked()\"\n >\n <si-icon class=\"pe-2 d-inline-block position-relative icon\" [icon]=\"icons.elementBack\" />\n {{ backButtonText() | translate }}\n </button>\n }\n @if (title()) {\n <span class=\"si-details-header-title si-body px-6\">{{ title() | translate }}</span>\n }\n </div>\n}\n<ng-content />\n", styles: [":host{flex:none;inline-size:100%;overflow:hidden}:host:empty{display:none}:host,:host .title-subgroup{display:flex;flex-direction:row;justify-content:space-between}:host>.nav-link,:host .title-subgroup>.nav-link{min-inline-size:auto}:host .si-details-header-title{display:flex;align-items:center;padding-block:10px}:host .si-details-header-back{isolation:isolate}:host ::ng-deep si-menu-bar si-menu-item{block-size:auto;margin-block-end:2px}\n"], dependencies: [{ kind: "pipe", type: SiTranslatePipe, name: "translate" }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
344
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiDetailsPaneHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
345
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiDetailsPaneHeaderComponent, isStandalone: true, selector: "si-details-pane-header", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, hideBackButton: { classPropertyName: "hideBackButton", publicName: "hideBackButton", isSignal: true, isRequired: false, transformFunction: null }, backButtonText: { classPropertyName: "backButtonText", publicName: "backButtonText", isSignal: true, isRequired: false, transformFunction: null }, backButtonUrl: { classPropertyName: "backButtonUrl", publicName: "backButtonUrl", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "nav nav-tabs" }, viewQueries: [{ propertyName: "backButton", first: true, predicate: ["backButton"], descendants: true, isSignal: true }], ngImport: i0, template: "@if ((!hasLargeSize() && !hideBackButton()) || title()) {\n <div class=\"title-subgroup\">\n @if (!hasLargeSize() && !hideBackButton()) {\n <button\n #backButton\n type=\"button\"\n class=\"si-details-header-back nav-link focus-inside px-6\"\n (click)=\"backClicked()\"\n >\n <si-icon class=\"pe-2 d-inline-block position-relative icon\" [icon]=\"icons.elementBack\" />\n {{ backButtonText() | translate }}\n </button>\n }\n @if (title()) {\n <span class=\"si-details-header-title si-body px-6\">{{ title() | translate }}</span>\n }\n </div>\n}\n<ng-content />\n", styles: [":host{flex:none;inline-size:100%;overflow:hidden}:host:empty{display:none}:host,:host .title-subgroup{display:flex;flex-direction:row;justify-content:space-between}:host>.nav-link,:host .title-subgroup>.nav-link{min-inline-size:auto}:host .si-details-header-title{display:flex;align-items:center;padding-block:10px}:host .si-details-header-back{isolation:isolate}:host ::ng-deep si-menu-bar si-menu-item{block-size:auto;margin-block-end:2px}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
362
346
  }
363
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiDetailsPaneHeaderComponent, decorators: [{
347
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiDetailsPaneHeaderComponent, decorators: [{
364
348
  type: Component,
365
349
  args: [{ selector: 'si-details-pane-header', imports: [SiTranslatePipe, SiIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, host: {
366
350
  class: 'nav nav-tabs' // To allow nav-link styling.
367
351
  }, template: "@if ((!hasLargeSize() && !hideBackButton()) || title()) {\n <div class=\"title-subgroup\">\n @if (!hasLargeSize() && !hideBackButton()) {\n <button\n #backButton\n type=\"button\"\n class=\"si-details-header-back nav-link focus-inside px-6\"\n (click)=\"backClicked()\"\n >\n <si-icon class=\"pe-2 d-inline-block position-relative icon\" [icon]=\"icons.elementBack\" />\n {{ backButtonText() | translate }}\n </button>\n }\n @if (title()) {\n <span class=\"si-details-header-title si-body px-6\">{{ title() | translate }}</span>\n }\n </div>\n}\n<ng-content />\n", styles: [":host{flex:none;inline-size:100%;overflow:hidden}:host:empty{display:none}:host,:host .title-subgroup{display:flex;flex-direction:row;justify-content:space-between}:host>.nav-link,:host .title-subgroup>.nav-link{min-inline-size:auto}:host .si-details-header-title{display:flex;align-items:center;padding-block:10px}:host .si-details-header-back{isolation:isolate}:host ::ng-deep si-menu-bar si-menu-item{block-size:auto;margin-block-end:2px}\n"] }]
368
- }], ctorParameters: () => [] });
352
+ }], ctorParameters: () => [], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], hideBackButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideBackButton", required: false }] }], backButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "backButtonText", required: false }] }], backButtonUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "backButtonUrl", required: false }] }], backButton: [{ type: i0.ViewChild, args: ['backButton', { isSignal: true }] }] } });
369
353
 
370
354
  /**
371
355
  * Copyright (c) Siemens 2016 - 2025
372
356
  * SPDX-License-Identifier: MIT
373
357
  */
374
- /** @experimental */
375
358
  class SiDetailsPaneBodyComponent {
376
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiDetailsPaneBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
377
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: SiDetailsPaneBodyComponent, isStandalone: true, selector: "si-details-pane-body", ngImport: i0, template: "<ng-content />\n", styles: [":host{flex:1;display:flex;flex-direction:column;justify-content:space-between;max-inline-size:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
359
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiDetailsPaneBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
360
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: SiDetailsPaneBodyComponent, isStandalone: true, selector: "si-details-pane-body", ngImport: i0, template: "<ng-content />\n", styles: [":host{flex:1;display:flex;flex-direction:column;justify-content:space-between;max-inline-size:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
378
361
  }
379
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiDetailsPaneBodyComponent, decorators: [{
362
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiDetailsPaneBodyComponent, decorators: [{
380
363
  type: Component,
381
364
  args: [{ selector: 'si-details-pane-body', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content />\n", styles: [":host{flex:1;display:flex;flex-direction:column;justify-content:space-between;max-inline-size:100%}\n"] }]
382
365
  }] });
@@ -385,12 +368,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
385
368
  * Copyright (c) Siemens 2016 - 2025
386
369
  * SPDX-License-Identifier: MIT
387
370
  */
388
- /** @experimental */
389
371
  class SiDetailsPaneFooterComponent {
390
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiDetailsPaneFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
391
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: SiDetailsPaneFooterComponent, isStandalone: true, selector: "si-details-pane-footer", ngImport: i0, template: "<ng-content />\n", styles: [":host{display:flex;flex-direction:row;flex:none;border-block-start:1px solid var(--element-ui-4);gap:16px;padding:16px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
372
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiDetailsPaneFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
373
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: SiDetailsPaneFooterComponent, isStandalone: true, selector: "si-details-pane-footer", ngImport: i0, template: "<ng-content />\n", styles: [":host{display:flex;flex-direction:row;flex:none;border-block-start:1px solid var(--element-ui-4);gap:16px;padding:16px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
392
374
  }
393
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiDetailsPaneFooterComponent, decorators: [{
375
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiDetailsPaneFooterComponent, decorators: [{
394
376
  type: Component,
395
377
  args: [{ selector: 'si-details-pane-footer', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content />\n", styles: [":host{display:flex;flex-direction:row;flex:none;border-block-start:1px solid var(--element-ui-4);gap:16px;padding:16px}\n"] }]
396
378
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-list-details.mjs","sources":["../../../../projects/element-ng/list-details/si-list-details.component.ts","../../../../projects/element-ng/list-details/si-list-details.component.html","../../../../projects/element-ng/list-details/si-list-pane/si-list-pane.component.ts","../../../../projects/element-ng/list-details/si-list-pane/si-list-pane.component.html","../../../../projects/element-ng/list-details/si-list-pane-header/si-list-pane-header.component.ts","../../../../projects/element-ng/list-details/si-list-pane-header/si-list-pane-header.component.html","../../../../projects/element-ng/list-details/si-list-pane-body/si-list-pane-body.component.ts","../../../../projects/element-ng/list-details/si-list-pane-body/si-list-pane-body.component.html","../../../../projects/element-ng/list-details/si-details-pane/si-details-pane.component.ts","../../../../projects/element-ng/list-details/si-details-pane/si-details-pane.component.html","../../../../projects/element-ng/list-details/si-details-pane-header/si-details-pane-header.component.ts","../../../../projects/element-ng/list-details/si-details-pane-header/si-details-pane-header.component.html","../../../../projects/element-ng/list-details/si-details-pane-body/si-details-pane-body.component.ts","../../../../projects/element-ng/list-details/si-details-pane-body/si-details-pane-body.component.html","../../../../projects/element-ng/list-details/si-details-pane-footer/si-details-pane-footer.component.ts","../../../../projects/element-ng/list-details/si-details-pane-footer/si-details-pane-footer.component.html","../../../../projects/element-ng/list-details/index.ts","../../../../projects/element-ng/list-details/siemens-element-ng-list-details.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n model,\n OnChanges,\n OnDestroy,\n OnInit,\n signal,\n SimpleChanges\n} from '@angular/core';\nimport { areAnimationsDisabled } from '@siemens/element-ng/common';\nimport {\n BOOTSTRAP_BREAKPOINTS,\n ElementDimensions,\n ResizeObserverService\n} from '@siemens/element-ng/resize-observer';\nimport { SiSplitComponent, SiSplitPartComponent } from '@siemens/element-ng/split';\nimport { BehaviorSubject, Subject, Subscription } from 'rxjs';\n\n/** @experimental */\n@Component({\n selector: 'si-list-details',\n imports: [NgTemplateOutlet, SiSplitComponent, SiSplitPartComponent],\n templateUrl: './si-list-details.component.html',\n styleUrl: './si-list-details.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'si-layout-inner list-details-layout d-flex flex-column',\n '[class.expanded]': 'hasLargeSize()',\n '[style.opacity]': 'opacity()'\n },\n animations: [\n trigger('detailsExpanded', [\n state(\n 'collapsed',\n style({\n marginInlineStart: '0'\n })\n ),\n state(\n 'expanded',\n style({\n marginInlineStart: '-100%'\n })\n ),\n transition('collapsed <=> expanded', [animate('0.5s ease-in-out')])\n ])\n ]\n})\nexport class SiListDetailsComponent implements OnInit, OnChanges, OnDestroy {\n private resizeSubs?: Subscription;\n private elementRef = inject(ElementRef);\n private resizeObserver = inject(ResizeObserverService);\n private readonly animationsGloballyDisabled = areAnimationsDisabled();\n\n /**\n * A numeric value defining the minimum width in px, which the component needs\n * to be displayed in its large layout. Whenever smaller than\n * this threshold, the small layout will be used. Default is\n * value is BOOTSTRAP_BREAKPOINTS.mdMinimum.\n *\n * @defaultValue BOOTSTRAP_BREAKPOINTS.mdMinimum\n */\n readonly expandBreakpoint = input(BOOTSTRAP_BREAKPOINTS.mdMinimum);\n\n readonly hasLargeSize = computed(() => {\n const dimensions = this.resizeDimensions();\n return !!dimensions && dimensions.width >= this.expandBreakpoint();\n });\n\n /**\n * Whether the details are currently active or not, mostly relevant in the\n * responsive scenario when the viewport only shows either the list or the detail.\n *\n * @defaultValue false\n */\n readonly detailsActive = model(false);\n\n /**\n * Whether the list and detail parts should be resizable by a splitter or not.\n * This is only supported in the 'large' scenario (when `hasLargeSize` is `true`).\n * Default value is `false`.\n *\n * @defaultValue false\n */\n readonly disableResizing = input(false, { transform: booleanAttribute });\n\n /**\n * The percentage width of the list view of the overall component width.\n *\n * @defaultValue 32\n */\n readonly listWidth = model<number>(32);\n\n /**\n * Sets the minimal width of the list component in pixel.\n *\n * @defaultValue 300\n */\n readonly minListSize = input(300);\n\n /**\n * Sets the minimal width of the detail component in pixel.\n *\n * @defaultValue 300\n */\n readonly minDetailsSize = input(300);\n\n /**\n * An optional stateId to uniquely identify a component instance.\n * Required for persistence of ui state.\n */\n readonly stateId = input<string>();\n\n protected readonly splitSizes = computed<[number, number]>(() => [\n this.listWidth(),\n 100 - this.listWidth()\n ]);\n\n protected readonly listStateId = computed(() => {\n const stateId = this.stateId();\n return stateId ? `${stateId}-list` : undefined;\n });\n\n protected readonly detailsStateId = computed(() => {\n const stateId = this.stateId();\n return stateId ? `${stateId}-details` : undefined;\n });\n\n protected readonly opacity = computed(() => (this.resizeDimensions() ? '' : '0'));\n\n /** @internal */\n readonly detailsExpandedAnimation = computed(() => {\n if (!this.animationsGloballyDisabled && !this.hasLargeSize()) {\n return this.detailsActive() ? 'expanded' : 'collapsed';\n } else {\n return 'disabled';\n }\n });\n\n // Used for focus transfer, can not use a focus trap for this.\n private hadLargeSizePreviously: boolean | undefined;\n private detailsActivePreviously: boolean | undefined;\n private previouslyFocusedElementInList: HTMLElement | undefined;\n\n /** @internal */\n readonly transferFocusToList = new Subject<HTMLElement | undefined>();\n /**\n * A behavior subject because the details component may only be created when details are visible.\n * @internal\n */\n readonly transferFocusToDetails = new BehaviorSubject<boolean>(false);\n\n private animationDone?: () => void;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.detailsActive) {\n this.transferFocus();\n }\n }\n\n ngOnInit(): void {\n this.resizeSubs = this.resizeObserver\n .observe(this.elementRef.nativeElement, 100, true)\n .subscribe(dimensions => {\n this.resizeDimensions.set(dimensions);\n this.transferFocus();\n });\n }\n\n ngOnDestroy(): void {\n this.resizeSubs?.unsubscribe();\n }\n\n private readonly resizeDimensions = signal<ElementDimensions | undefined>(undefined);\n\n protected onSplitSizesChange(sizes: number[]): void {\n this.listWidth.set(sizes[0]);\n }\n\n /** @internal */\n detailsBackClicked(options?: { animationDone?: () => void }): void {\n this.detailsActive.set(false);\n // This callback is used to route after the animation is done.\n this.animationDone = options?.animationDone;\n }\n\n protected detailsExpandedAnimationDone(): void {\n if (this.animationDone) {\n this.animationDone();\n this.animationDone = undefined;\n }\n }\n\n // Transfer focus onto child panes if they would be inaccesible.\n\n private transferFocus(): void {\n // Check if dimensions have even been evaluated.\n const hasLargeSize = this.resizeDimensions() ? this.hasLargeSize() : undefined;\n const detailsActive = this.detailsActive();\n if (this.hadLargeSizePreviously !== undefined && this.detailsActivePreviously !== undefined) {\n if (\n detailsActive &&\n !hasLargeSize &&\n (!this.detailsActivePreviously || this.hadLargeSizePreviously)\n ) {\n if (!this.hadLargeSizePreviously) {\n this.previouslyFocusedElementInList = document?.activeElement as HTMLElement | undefined;\n }\n this.transferFocusToDetails.next(true);\n }\n if (!detailsActive && this.detailsActivePreviously) {\n this.transferFocusToList.next(this.previouslyFocusedElementInList);\n this.previouslyFocusedElementInList = undefined;\n }\n }\n this.hadLargeSizePreviously = hasLargeSize;\n this.detailsActivePreviously = detailsActive;\n }\n}\n","@if (!disableResizing() && hasLargeSize()) {\n <si-split\n class=\"w-100 flex-grow-1\"\n orientation=\"horizontal\"\n [stateId]=\"stateId()\"\n [sizes]=\"splitSizes()\"\n (sizesChange)=\"onSplitSizesChange($event)\"\n >\n <si-split-part\n scale=\"none\"\n [showCollapseButton]=\"false\"\n [showHeader]=\"false\"\n [minSize]=\"minListSize()\"\n [stateId]=\"listStateId()\"\n >\n <ng-container *ngTemplateOutlet=\"listTemplate\" />\n </si-split-part>\n <si-split-part\n scale=\"auto\"\n [showCollapseButton]=\"false\"\n [showHeader]=\"false\"\n [minSize]=\"minDetailsSize()\"\n [stateId]=\"detailsStateId()\"\n >\n <ng-container *ngTemplateOutlet=\"detailsTemplate\" />\n </si-split-part>\n </si-split>\n} @else {\n <div\n class=\"list-details d-flex flex-row\"\n [class.gap-6]=\"hasLargeSize()\"\n [class.details-active]=\"detailsActive() && !hasLargeSize()\"\n [@detailsExpanded]=\"detailsExpandedAnimation()\"\n (@detailsExpanded.done)=\"detailsExpandedAnimationDone()\"\n >\n <ng-container *ngTemplateOutlet=\"listTemplate\" />\n <ng-container *ngTemplateOutlet=\"detailsTemplate\" />\n </div>\n}\n\n<ng-template #listTemplate>\n <ng-content select=\"si-list-pane\" />\n</ng-template>\n\n<ng-template #detailsTemplate>\n <ng-content select=\"si-details-pane\" />\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, ElementRef, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { SiListDetailsComponent } from '../si-list-details.component';\n\n/** @experimental */\n@Component({\n selector: 'si-list-pane',\n templateUrl: './si-list-pane.component.html',\n styleUrl: './si-list-pane.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.expanded]': 'parent.hasLargeSize()',\n '[class.details-active]': 'parent.detailsActive() && !parent.hasLargeSize()',\n '[attr.inert]': '!parent.hasLargeSize() && parent.detailsActive() ? \"\" : null',\n '[attr.tabindex]': '-1',\n '[style.flex-basis.%]':\n 'parent.hasLargeSize() && parent.disableResizing() ? parent.listWidth() : undefined'\n }\n})\nexport class SiListPaneComponent {\n protected parent = inject(SiListDetailsComponent);\n private element: ElementRef<HTMLElement> = inject(ElementRef);\n\n constructor() {\n this.parent.transferFocusToList\n .pipe(takeUntilDestroyed())\n .subscribe(previouslyFocusedElement => {\n // Needed so it's no longer \"inert\".\n setTimeout(() => {\n const currentlyFocused = document?.activeElement;\n previouslyFocusedElement?.focus();\n // If there was no previously focused element or if it couldn't be focused anymore, fall back to the focusing the list.\n if (currentlyFocused === document?.activeElement) {\n this.element?.nativeElement?.focus();\n }\n });\n });\n }\n}\n","<ng-content />\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/** @experimental */\n@Component({\n selector: 'si-list-pane-header',\n templateUrl: './si-list-pane-header.component.html',\n styleUrl: './si-list-pane-header.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiListPaneHeaderComponent {}\n","<ng-content />\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/** @experimental */\n@Component({\n selector: 'si-list-pane-body',\n templateUrl: './si-list-pane-body.component.html',\n styleUrl: './si-list-pane-body.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiListPaneBodyComponent {}\n","<ng-content />\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n effect,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { RouterOutlet } from '@angular/router';\nimport { Subscription } from 'rxjs';\n\nimport { SiListDetailsComponent } from '../si-list-details.component';\n\n/** @experimental */\n@Component({\n selector: 'si-details-pane',\n imports: [],\n templateUrl: './si-details-pane.component.html',\n styleUrl: './si-details-pane.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.expanded]': 'parent.hasLargeSize()',\n '[class.details-active]': 'parent.detailsActive() && !parent.hasLargeSize()',\n '[attr.inert]': '!parent.hasLargeSize() && !parent.detailsActive() ? \"\" : null',\n '[style.flex-basis.%]':\n 'parent.hasLargeSize() && parent.disableResizing() ? 100 - parent.listWidth() : undefined'\n }\n})\nexport class SiDetailsPaneComponent {\n protected parent = inject(SiListDetailsComponent);\n\n private readonly routerOutlet = contentChild(RouterOutlet);\n private subscription?: Subscription;\n private destroyer = inject(DestroyRef);\n /** @internal */\n readonly isRouterBased = computed(() => !!this.routerOutlet());\n\n constructor() {\n effect(() => {\n const outlet = this.routerOutlet();\n if (outlet) {\n this.parent.detailsActive.set(!outlet.activatedRouteData.SI_EMPTY_DETAILS);\n this.subscription?.unsubscribe();\n this.subscription = outlet.activateEvents\n .pipe(takeUntilDestroyed(this.destroyer))\n .subscribe(() =>\n this.parent.detailsActive.set(!outlet.activatedRouteData.SI_EMPTY_DETAILS)\n );\n }\n });\n }\n}\n","<ng-content />\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n Signal,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { addIcons, elementBack, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiDetailsPaneComponent } from '../si-details-pane/si-details-pane.component';\nimport { SiListDetailsComponent } from '../si-list-details.component';\n\n/** @experimental */\n@Component({\n selector: 'si-details-pane-header',\n imports: [SiTranslatePipe, SiIconComponent],\n templateUrl: './si-details-pane-header.component.html',\n styleUrl: './si-details-pane-header.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'nav nav-tabs' // To allow nav-link styling.\n }\n})\nexport class SiDetailsPaneHeaderComponent {\n protected readonly icons = addIcons({ elementBack });\n\n private parent = inject(SiListDetailsComponent);\n\n /**\n * Optional title to be displayed.\n */\n readonly title = input<TranslatableString>();\n\n /**\n * You can hide the back button in the mobile view by setting true. Required\n * in add, edit workflows on mobile sizes. During add or edit, the back button\n * should be hidden. Default value is `false`.\n *\n * @defaultValue false\n */\n readonly hideBackButton = input(false, { transform: booleanAttribute });\n\n /**\n * Details back button text. Required for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LIST_DETAILS.BACK:Back`)\n * ```\n */\n readonly backButtonText = input(t(() => $localize`:@@SI_LIST_DETAILS.BACK:Back`));\n\n /**\n * The URL to navigate to when the back buttons is clicked.\n * This is only used when the `si-details-pane` is used with a router-outlet.\n *\n * @defaultValue '../'\n */\n readonly backButtonUrl = input('../');\n\n private isRouterBased = inject(SiDetailsPaneComponent).isRouterBased;\n private router = inject(Router, { optional: true });\n private activatedRoute = inject(ActivatedRoute, { optional: true });\n\n private readonly backButton = viewChild<ElementRef<HTMLElement>>('backButton');\n\n constructor() {\n this.parent.transferFocusToDetails.pipe(takeUntilDestroyed()).subscribe(shouldFocus => {\n if (shouldFocus) {\n const backButton = this.backButton();\n if (backButton) {\n // Needed so it's no longer \"inert\" and loaded.\n setTimeout(() => backButton?.nativeElement?.focus());\n }\n }\n });\n }\n\n protected get hasLargeSize(): Signal<boolean> {\n return this.parent.hasLargeSize;\n }\n\n protected backClicked(): void {\n this.parent.detailsBackClicked({\n animationDone: this.isRouterBased()\n ? // We navigate back after the animation is done.\n // This ensures, that the details pane visible while animating.\n () => this.router!.navigate([this.backButtonUrl()], { relativeTo: this.activatedRoute })\n : undefined\n });\n }\n}\n","@if ((!hasLargeSize() && !hideBackButton()) || title()) {\n <div class=\"title-subgroup\">\n @if (!hasLargeSize() && !hideBackButton()) {\n <button\n #backButton\n type=\"button\"\n class=\"si-details-header-back nav-link focus-inside px-6\"\n (click)=\"backClicked()\"\n >\n <si-icon class=\"pe-2 d-inline-block position-relative icon\" [icon]=\"icons.elementBack\" />\n {{ backButtonText() | translate }}\n </button>\n }\n @if (title()) {\n <span class=\"si-details-header-title si-body px-6\">{{ title() | translate }}</span>\n }\n </div>\n}\n<ng-content />\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/** @experimental */\n@Component({\n selector: 'si-details-pane-body',\n imports: [],\n templateUrl: './si-details-pane-body.component.html',\n styleUrl: './si-details-pane-body.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiDetailsPaneBodyComponent {}\n","<ng-content />\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/** @experimental */\n@Component({\n selector: 'si-details-pane-footer',\n imports: [],\n templateUrl: './si-details-pane-footer.component.html',\n styleUrl: './si-details-pane-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiDetailsPaneFooterComponent {}\n","<ng-content />\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-list-details.component';\nexport * from './si-list-pane/si-list-pane.component';\nexport * from './si-list-pane-header/si-list-pane-header.component';\nexport * from './si-list-pane-body/si-list-pane-body.component';\nexport * from './si-details-pane/si-details-pane.component';\nexport * from './si-details-pane-header/si-details-pane-header.component';\nexport * from './si-details-pane-body/si-details-pane-body.component';\nexport * from './si-details-pane-footer/si-details-pane-footer.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-list-details.mjs","sources":["../../../../projects/element-ng/list-details/si-list-details.component.ts","../../../../projects/element-ng/list-details/si-list-details.component.html","../../../../projects/element-ng/list-details/si-list-pane/si-list-pane.component.ts","../../../../projects/element-ng/list-details/si-list-pane/si-list-pane.component.html","../../../../projects/element-ng/list-details/si-list-pane-header/si-list-pane-header.component.ts","../../../../projects/element-ng/list-details/si-list-pane-header/si-list-pane-header.component.html","../../../../projects/element-ng/list-details/si-list-pane-body/si-list-pane-body.component.ts","../../../../projects/element-ng/list-details/si-list-pane-body/si-list-pane-body.component.html","../../../../projects/element-ng/list-details/si-details-pane/si-details-pane.component.ts","../../../../projects/element-ng/list-details/si-details-pane/si-details-pane.component.html","../../../../projects/element-ng/list-details/si-details-pane-header/si-details-pane-header.component.ts","../../../../projects/element-ng/list-details/si-details-pane-header/si-details-pane-header.component.html","../../../../projects/element-ng/list-details/si-details-pane-body/si-details-pane-body.component.ts","../../../../projects/element-ng/list-details/si-details-pane-body/si-details-pane-body.component.html","../../../../projects/element-ng/list-details/si-details-pane-footer/si-details-pane-footer.component.ts","../../../../projects/element-ng/list-details/si-details-pane-footer/si-details-pane-footer.component.html","../../../../projects/element-ng/list-details/index.ts","../../../../projects/element-ng/list-details/siemens-element-ng-list-details.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n model,\n OnChanges,\n OnDestroy,\n OnInit,\n signal,\n SimpleChanges,\n viewChild\n} from '@angular/core';\nimport { areAnimationsDisabled } from '@siemens/element-ng/common';\nimport {\n BOOTSTRAP_BREAKPOINTS,\n ElementDimensions,\n ResizeObserverService\n} from '@siemens/element-ng/resize-observer';\nimport { SiSplitComponent, SiSplitPartComponent } from '@siemens/element-ng/split';\nimport { BehaviorSubject, Subject, Subscription } from 'rxjs';\n\n@Component({\n selector: 'si-list-details',\n imports: [NgTemplateOutlet, SiSplitComponent, SiSplitPartComponent],\n templateUrl: './si-list-details.component.html',\n styleUrl: './si-list-details.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'si-layout-inner list-details-layout d-flex flex-column',\n '[class.animations-disabled]': 'animationsGloballyDisabled',\n '[class.expanded]': 'hasLargeSize()',\n '[style.opacity]': 'opacity()'\n }\n})\nexport class SiListDetailsComponent implements OnInit, OnChanges, OnDestroy {\n private resizeSubs?: Subscription;\n private elementRef = inject(ElementRef);\n private resizeObserver = inject(ResizeObserverService);\n private readonly listDetailsContainer = viewChild.required<ElementRef>('listDetailsContainer');\n protected readonly animationsGloballyDisabled = areAnimationsDisabled();\n\n /**\n * A numeric value defining the minimum width in px, which the component needs\n * to be displayed in its large layout. Whenever smaller than\n * this threshold, the small layout will be used. Default is\n * value is BOOTSTRAP_BREAKPOINTS.mdMinimum.\n *\n * @defaultValue BOOTSTRAP_BREAKPOINTS.mdMinimum\n */\n readonly expandBreakpoint = input(BOOTSTRAP_BREAKPOINTS.mdMinimum);\n\n readonly hasLargeSize = computed(() => {\n const dimensions = this.resizeDimensions();\n return !!dimensions && dimensions.width >= this.expandBreakpoint();\n });\n\n /**\n * Whether the details are currently active or not, mostly relevant in the\n * responsive scenario when the viewport only shows either the list or the detail.\n *\n * @defaultValue false\n */\n readonly detailsActive = model(false);\n\n /**\n * Whether the list and detail parts should be resizable by a splitter or not.\n * This is only supported in the 'large' scenario (when `hasLargeSize` is `true`).\n * Default value is `false`.\n *\n * @defaultValue false\n */\n readonly disableResizing = input(false, { transform: booleanAttribute });\n\n /**\n * The percentage width of the list view of the overall component width.\n *\n * @defaultValue 32\n */\n readonly listWidth = model<number>(32);\n\n /**\n * Sets the minimal width of the list component in pixel.\n *\n * @defaultValue 300\n */\n readonly minListSize = input(300);\n\n /**\n * Sets the minimal width of the detail component in pixel.\n *\n * @defaultValue 300\n */\n readonly minDetailsSize = input(300);\n\n /**\n * An optional stateId to uniquely identify a component instance.\n * Required for persistence of ui state.\n */\n readonly stateId = input<string>();\n\n protected readonly splitSizes = computed<[number, number]>(() => [\n this.listWidth(),\n 100 - this.listWidth()\n ]);\n\n protected readonly listStateId = computed(() => {\n const stateId = this.stateId();\n return stateId ? `${stateId}-list` : undefined;\n });\n\n protected readonly detailsStateId = computed(() => {\n const stateId = this.stateId();\n return stateId ? `${stateId}-details` : undefined;\n });\n\n protected readonly opacity = computed(() => (this.resizeDimensions() ? '' : '0'));\n\n /** @internal */\n readonly detailsExpandedAnimation = computed(() => {\n if (!this.hasLargeSize()) {\n return this.detailsActive() ? 'details-active expanded' : 'collapsed';\n } else {\n return 'disabled';\n }\n });\n\n // Used for focus transfer, can not use a focus trap for this.\n private hadLargeSizePreviously: boolean | undefined;\n private detailsActivePreviously: boolean | undefined;\n private previouslyFocusedElementInList: HTMLElement | undefined;\n\n /** @internal */\n readonly transferFocusToList = new Subject<HTMLElement | undefined>();\n /**\n * A behavior subject because the details component may only be created when details are visible.\n * @internal\n */\n readonly transferFocusToDetails = new BehaviorSubject<boolean>(false);\n\n private animationDone?: () => void;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.detailsActive) {\n this.transferFocus();\n }\n }\n\n ngOnInit(): void {\n this.resizeSubs = this.resizeObserver\n .observe(this.elementRef.nativeElement, 100, true)\n .subscribe(dimensions => {\n this.resizeDimensions.set(dimensions);\n this.transferFocus();\n });\n }\n\n ngOnDestroy(): void {\n this.resizeSubs?.unsubscribe();\n }\n\n private readonly resizeDimensions = signal<ElementDimensions | undefined>(undefined);\n\n protected onSplitSizesChange(sizes: number[]): void {\n this.listWidth.set(sizes[0]);\n }\n\n /** @internal */\n detailsBackClicked(options?: { animationDone?: () => void }): void {\n this.detailsActive.set(false);\n // Directly call the done callback if animations are disabled.\n if (this.animationsGloballyDisabled) {\n options?.animationDone?.();\n } else {\n // This callback is used to route after the animation is done.\n this.animationDone = options?.animationDone;\n }\n }\n\n protected detailsExpandedAnimationDone(event: TransitionEvent): void {\n // Since the 'transitionend' event bubbles up from child elements,\n // ensure the event target is the container itself.\n if (this.animationDone && this.listDetailsContainer().nativeElement === event.target) {\n this.animationDone();\n this.animationDone = undefined;\n }\n }\n\n // Transfer focus onto child panes if they would be inaccesible.\n\n private transferFocus(): void {\n // Check if dimensions have even been evaluated.\n const hasLargeSize = this.resizeDimensions() ? this.hasLargeSize() : undefined;\n const detailsActive = this.detailsActive();\n if (this.hadLargeSizePreviously !== undefined && this.detailsActivePreviously !== undefined) {\n if (\n detailsActive &&\n !hasLargeSize &&\n (!this.detailsActivePreviously || this.hadLargeSizePreviously)\n ) {\n if (!this.hadLargeSizePreviously) {\n this.previouslyFocusedElementInList = document?.activeElement as HTMLElement | undefined;\n }\n this.transferFocusToDetails.next(true);\n }\n if (!detailsActive && this.detailsActivePreviously) {\n this.transferFocusToList.next(this.previouslyFocusedElementInList);\n this.previouslyFocusedElementInList = undefined;\n }\n }\n this.hadLargeSizePreviously = hasLargeSize;\n this.detailsActivePreviously = detailsActive;\n }\n}\n","@if (!disableResizing() && hasLargeSize()) {\n <si-split\n class=\"w-100 flex-grow-1\"\n orientation=\"horizontal\"\n [stateId]=\"stateId()\"\n [sizes]=\"splitSizes()\"\n (sizesChange)=\"onSplitSizesChange($event)\"\n >\n <si-split-part\n scale=\"none\"\n [showCollapseButton]=\"false\"\n [showHeader]=\"false\"\n [minSize]=\"minListSize()\"\n [stateId]=\"listStateId()\"\n >\n <ng-container *ngTemplateOutlet=\"listTemplate\" />\n </si-split-part>\n <si-split-part\n scale=\"auto\"\n [showCollapseButton]=\"false\"\n [showHeader]=\"false\"\n [minSize]=\"minDetailsSize()\"\n [stateId]=\"detailsStateId()\"\n >\n <ng-container *ngTemplateOutlet=\"detailsTemplate\" />\n </si-split-part>\n </si-split>\n} @else {\n <div\n #listDetailsContainer\n [class]=\"`list-details d-flex flex-row ${detailsExpandedAnimation()}`\"\n [class.gap-6]=\"hasLargeSize()\"\n (transitionend)=\"detailsExpandedAnimationDone($event)\"\n >\n <ng-container *ngTemplateOutlet=\"listTemplate\" />\n <ng-container *ngTemplateOutlet=\"detailsTemplate\" />\n </div>\n}\n\n<ng-template #listTemplate>\n <ng-content select=\"si-list-pane\" />\n</ng-template>\n\n<ng-template #detailsTemplate>\n <ng-content select=\"si-details-pane\" />\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, ElementRef, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { SiListDetailsComponent } from '../si-list-details.component';\n\n@Component({\n selector: 'si-list-pane',\n templateUrl: './si-list-pane.component.html',\n styleUrl: './si-list-pane.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.expanded]': 'parent.hasLargeSize()',\n '[class.details-active]': 'parent.detailsActive() && !parent.hasLargeSize()',\n '[attr.inert]': '!parent.hasLargeSize() && parent.detailsActive() ? \"\" : null',\n '[attr.tabindex]': '-1',\n '[style.flex-basis.%]':\n 'parent.hasLargeSize() && parent.disableResizing() ? parent.listWidth() : undefined'\n }\n})\nexport class SiListPaneComponent {\n protected parent = inject(SiListDetailsComponent);\n private element: ElementRef<HTMLElement> = inject(ElementRef);\n\n constructor() {\n this.parent.transferFocusToList\n .pipe(takeUntilDestroyed())\n .subscribe(previouslyFocusedElement => {\n // Needed so it's no longer \"inert\".\n setTimeout(() => {\n const currentlyFocused = document?.activeElement;\n previouslyFocusedElement?.focus();\n // If there was no previously focused element or if it couldn't be focused anymore, fall back to the focusing the list.\n if (currentlyFocused === document?.activeElement) {\n this.element?.nativeElement?.focus();\n }\n });\n });\n }\n}\n","<ng-content />\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'si-list-pane-header',\n templateUrl: './si-list-pane-header.component.html',\n styleUrl: './si-list-pane-header.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiListPaneHeaderComponent {}\n","<ng-content />\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'si-list-pane-body',\n templateUrl: './si-list-pane-body.component.html',\n styleUrl: './si-list-pane-body.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiListPaneBodyComponent {}\n","<ng-content />\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n effect,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { RouterOutlet } from '@angular/router';\nimport { Subscription } from 'rxjs';\n\nimport { SiListDetailsComponent } from '../si-list-details.component';\n\n@Component({\n selector: 'si-details-pane',\n imports: [],\n templateUrl: './si-details-pane.component.html',\n styleUrl: './si-details-pane.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.expanded]': 'parent.hasLargeSize()',\n '[class.details-active]': 'parent.detailsActive() && !parent.hasLargeSize()',\n '[attr.inert]': '!parent.hasLargeSize() && !parent.detailsActive() ? \"\" : null',\n '[style.flex-basis.%]':\n 'parent.hasLargeSize() && parent.disableResizing() ? 100 - parent.listWidth() : undefined'\n }\n})\nexport class SiDetailsPaneComponent {\n protected parent = inject(SiListDetailsComponent);\n\n private readonly routerOutlet = contentChild(RouterOutlet);\n private subscription?: Subscription;\n private destroyer = inject(DestroyRef);\n /** @internal */\n readonly isRouterBased = computed(() => !!this.routerOutlet());\n\n constructor() {\n effect(() => {\n const outlet = this.routerOutlet();\n if (outlet) {\n this.parent.detailsActive.set(!outlet.activatedRouteData.SI_EMPTY_DETAILS);\n this.subscription?.unsubscribe();\n this.subscription = outlet.activateEvents\n .pipe(takeUntilDestroyed(this.destroyer))\n .subscribe(() =>\n this.parent.detailsActive.set(!outlet.activatedRouteData.SI_EMPTY_DETAILS)\n );\n }\n });\n }\n}\n","<ng-content />\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n Signal,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { elementBack } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiDetailsPaneComponent } from '../si-details-pane/si-details-pane.component';\nimport { SiListDetailsComponent } from '../si-list-details.component';\n\n@Component({\n selector: 'si-details-pane-header',\n imports: [SiTranslatePipe, SiIconComponent],\n templateUrl: './si-details-pane-header.component.html',\n styleUrl: './si-details-pane-header.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'nav nav-tabs' // To allow nav-link styling.\n }\n})\nexport class SiDetailsPaneHeaderComponent {\n protected readonly icons = addIcons({ elementBack });\n\n private parent = inject(SiListDetailsComponent);\n\n /**\n * Optional title to be displayed.\n */\n readonly title = input<TranslatableString>();\n\n /**\n * You can hide the back button in the mobile view by setting true. Required\n * in add, edit workflows on mobile sizes. During add or edit, the back button\n * should be hidden. Default value is `false`.\n *\n * @defaultValue false\n */\n readonly hideBackButton = input(false, { transform: booleanAttribute });\n\n /**\n * Details back button text. Required for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LIST_DETAILS.BACK:Back`)\n * ```\n */\n readonly backButtonText = input(t(() => $localize`:@@SI_LIST_DETAILS.BACK:Back`));\n\n /**\n * The URL to navigate to when the back buttons is clicked.\n * This is only used when the `si-details-pane` is used with a router-outlet.\n *\n * @defaultValue '../'\n */\n readonly backButtonUrl = input('../');\n\n private isRouterBased = inject(SiDetailsPaneComponent).isRouterBased;\n private router = inject(Router, { optional: true });\n private activatedRoute = inject(ActivatedRoute, { optional: true });\n\n private readonly backButton = viewChild<ElementRef<HTMLElement>>('backButton');\n\n constructor() {\n this.parent.transferFocusToDetails.pipe(takeUntilDestroyed()).subscribe(shouldFocus => {\n if (shouldFocus) {\n const backButton = this.backButton();\n if (backButton) {\n // Needed so it's no longer \"inert\" and loaded.\n setTimeout(() => backButton?.nativeElement?.focus());\n }\n }\n });\n }\n\n protected get hasLargeSize(): Signal<boolean> {\n return this.parent.hasLargeSize;\n }\n\n protected backClicked(): void {\n this.parent.detailsBackClicked({\n animationDone: this.isRouterBased()\n ? // We navigate back after the animation is done.\n // This ensures, that the details pane visible while animating.\n () => this.router!.navigate([this.backButtonUrl()], { relativeTo: this.activatedRoute })\n : undefined\n });\n }\n}\n","@if ((!hasLargeSize() && !hideBackButton()) || title()) {\n <div class=\"title-subgroup\">\n @if (!hasLargeSize() && !hideBackButton()) {\n <button\n #backButton\n type=\"button\"\n class=\"si-details-header-back nav-link focus-inside px-6\"\n (click)=\"backClicked()\"\n >\n <si-icon class=\"pe-2 d-inline-block position-relative icon\" [icon]=\"icons.elementBack\" />\n {{ backButtonText() | translate }}\n </button>\n }\n @if (title()) {\n <span class=\"si-details-header-title si-body px-6\">{{ title() | translate }}</span>\n }\n </div>\n}\n<ng-content />\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'si-details-pane-body',\n imports: [],\n templateUrl: './si-details-pane-body.component.html',\n styleUrl: './si-details-pane-body.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiDetailsPaneBodyComponent {}\n","<ng-content />\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'si-details-pane-footer',\n imports: [],\n templateUrl: './si-details-pane-footer.component.html',\n styleUrl: './si-details-pane-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiDetailsPaneFooterComponent {}\n","<ng-content />\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-list-details.component';\nexport * from './si-list-pane/si-list-pane.component';\nexport * from './si-list-pane-header/si-list-pane-header.component';\nexport * from './si-list-pane-body/si-list-pane-body.component';\nexport * from './si-details-pane/si-details-pane.component';\nexport * from './si-details-pane-header/si-details-pane-header.component';\nexport * from './si-details-pane-body/si-details-pane-body.component';\nexport * from './si-details-pane-footer/si-details-pane-footer.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}