@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,13 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, input, booleanAttribute, output, signal, computed, inject, ElementRef, Component, DestroyRef, viewChild, ChangeDetectorRef, DOCUMENT, NgModule, model } from '@angular/core';
3
+ import { elementZoom, elementPinch, elementRight2, elementSortUp, elementSortDown } from '@siemens/element-icons';
3
4
  import { SiCardComponent } from '@siemens/element-ng/card';
4
5
  import { SiContentActionBarComponent } from '@siemens/element-ng/content-action-bar';
5
- import { addIcons, elementZoom, elementPinch, elementRight2, SiIconComponent, elementSortUp, elementSortDown, SiStatusIconComponent } from '@siemens/element-ng/icon';
6
+ import { addIcons, SiIconComponent, SiStatusIconComponent } from '@siemens/element-ng/icon';
6
7
  import { t, SiTranslatePipe } from '@siemens/element-translate-ng/translate';
7
8
  import { BehaviorSubject } from 'rxjs';
8
9
  import * as i1 from '@angular/cdk/portal';
9
10
  import { CdkPortalOutlet, DomPortal, PortalModule } from '@angular/cdk/portal';
10
- import { ViewportScroller, NgClass } from '@angular/common';
11
+ import { ViewportScroller } from '@angular/common';
11
12
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
12
13
  import { ScrollbarHelper } from '@siemens/element-ng/common';
13
14
  import { ResizeObserverService, BOOTSTRAP_BREAKPOINTS } from '@siemens/element-ng/resize-observer';
@@ -52,10 +53,10 @@ class SiDashboardService {
52
53
  this.cards.next(nextCards);
53
54
  }
54
55
  }
55
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiDashboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
56
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiDashboardService });
56
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiDashboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
57
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiDashboardService });
57
58
  }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiDashboardService, decorators: [{
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiDashboardService, decorators: [{
59
60
  type: Injectable
60
61
  }] });
61
62
 
@@ -72,7 +73,7 @@ class SiDashboardCardComponent extends SiCardComponent {
72
73
  * t(() => $localize`:@@SI_DASHBOARD.RESTORE:Restore`)
73
74
  * ```
74
75
  */
75
- restoreText = input(t(() => $localize `:@@SI_DASHBOARD.RESTORE:Restore`));
76
+ restoreText = input(t(() => $localize `:@@SI_DASHBOARD.RESTORE:Restore`), ...(ngDevMode ? [{ debugName: "restoreText" }] : []));
76
77
  /**
77
78
  * Description of expand button & action.
78
79
  *
@@ -81,7 +82,7 @@ class SiDashboardCardComponent extends SiCardComponent {
81
82
  * t(() => $localize`:@@SI_DASHBOARD.EXPAND:Expand`)
82
83
  * ```
83
84
  */
84
- expandText = input(t(() => $localize `:@@SI_DASHBOARD.EXPAND:Expand`));
85
+ expandText = input(t(() => $localize `:@@SI_DASHBOARD.EXPAND:Expand`), ...(ngDevMode ? [{ debugName: "expandText" }] : []));
85
86
  /**
86
87
  * Option to enable and show the UI controls for card expand functionality.
87
88
  * `Expand` and `restore` action items will be added to the content action bar.
@@ -89,13 +90,13 @@ class SiDashboardCardComponent extends SiCardComponent {
89
90
  *
90
91
  * @defaultValue false
91
92
  */
92
- enableExpandInteraction = input(false, { transform: booleanAttribute });
93
+ enableExpandInteraction = input(false, { ...(ngDevMode ? { debugName: "enableExpandInteraction" } : {}), transform: booleanAttribute });
93
94
  /**
94
95
  * Used in combination with si-dashboard to show filters when a card is expanded or not.
95
96
  *
96
97
  * @defaultValue true
97
98
  */
98
- showMenubar = input(true, { transform: booleanAttribute });
99
+ showMenubar = input(true, { ...(ngDevMode ? { debugName: "showMenubar" } : {}), transform: booleanAttribute });
99
100
  /**
100
101
  * Emitter for size state change
101
102
  */
@@ -105,15 +106,15 @@ class SiDashboardCardComponent extends SiCardComponent {
105
106
  *
106
107
  * @defaultValue false
107
108
  */
108
- isExpanded = signal(false);
109
+ isExpanded = signal(false, ...(ngDevMode ? [{ debugName: "isExpanded" }] : []));
109
110
  /** @internal */
110
111
  hide = false;
111
112
  /** @internal */
112
- enableExpandInteractionInternal = signal(false);
113
- enableExpandInteractionComputed = computed(() => this.enableExpandInteraction() || this.enableExpandInteractionInternal());
113
+ enableExpandInteractionInternal = signal(false, ...(ngDevMode ? [{ debugName: "enableExpandInteractionInternal" }] : []));
114
+ enableExpandInteractionComputed = computed(() => this.enableExpandInteraction() || this.enableExpandInteractionInternal(), ...(ngDevMode ? [{ debugName: "enableExpandInteractionComputed" }] : []));
114
115
  /** @internal */
115
116
  element = inject(ElementRef);
116
- displayContentActionBar = computed(() => this.primaryActionsComputed()?.length > 0 || this.secondaryActions()?.length > 0);
117
+ displayContentActionBar = computed(() => this.primaryActionsComputed()?.length > 0 || this.secondaryActions()?.length > 0, ...(ngDevMode ? [{ debugName: "displayContentActionBar" }] : []));
117
118
  actionBarViewTypeComputed = computed(() => {
118
119
  if (!this.hasContentBarActions()) {
119
120
  if (this.enableExpandInteractionComputed()) {
@@ -126,7 +127,7 @@ class SiDashboardCardComponent extends SiCardComponent {
126
127
  else {
127
128
  return this.actionBarViewType();
128
129
  }
129
- });
130
+ }, ...(ngDevMode ? [{ debugName: "actionBarViewTypeComputed" }] : []));
130
131
  actionBarTitleComputed = computed(() => {
131
132
  if (!this.hasContentBarActions()) {
132
133
  if (this.enableExpandInteractionComputed()) {
@@ -139,7 +140,7 @@ class SiDashboardCardComponent extends SiCardComponent {
139
140
  else {
140
141
  return this.actionBarTitle();
141
142
  }
142
- });
143
+ }, ...(ngDevMode ? [{ debugName: "actionBarTitleComputed" }] : []));
143
144
  primaryActionsComputed = computed(() => {
144
145
  const expandRestoreButtonActions = [
145
146
  {
@@ -172,14 +173,14 @@ class SiDashboardCardComponent extends SiCardComponent {
172
173
  }
173
174
  }
174
175
  }
175
- });
176
+ }, ...(ngDevMode ? [{ debugName: "primaryActionsComputed" }] : []));
176
177
  icons = addIcons({
177
178
  elementPinch,
178
179
  elementZoom
179
180
  });
180
181
  expandRestoreIconTooltip = computed(() => {
181
182
  return this.isExpanded() ? this.restoreText() : this.expandText();
182
- });
183
+ }, ...(ngDevMode ? [{ debugName: "expandRestoreIconTooltip" }] : []));
183
184
  expandActionItem = computed(() => {
184
185
  return {
185
186
  type: 'action',
@@ -188,7 +189,7 @@ class SiDashboardCardComponent extends SiCardComponent {
188
189
  iconOnly: true,
189
190
  action: () => this.expandCard(true)
190
191
  };
191
- });
192
+ }, ...(ngDevMode ? [{ debugName: "expandActionItem" }] : []));
192
193
  restoreActionItem = computed(() => {
193
194
  return {
194
195
  type: 'action',
@@ -197,10 +198,10 @@ class SiDashboardCardComponent extends SiCardComponent {
197
198
  iconOnly: true,
198
199
  action: () => this.expandCard(false)
199
200
  };
200
- });
201
+ }, ...(ngDevMode ? [{ debugName: "restoreActionItem" }] : []));
201
202
  hasContentBarActions = computed(() => {
202
203
  return this.primaryActions()?.length > 0 || this.secondaryActions()?.length > 0;
203
- });
204
+ }, ...(ngDevMode ? [{ debugName: "hasContentBarActions" }] : []));
204
205
  dashboardService = inject(SiDashboardService, { optional: true });
205
206
  constructor() {
206
207
  super();
@@ -225,17 +226,17 @@ class SiDashboardCardComponent extends SiCardComponent {
225
226
  this.isExpanded.set(expand);
226
227
  this.expandChange.emit(expand);
227
228
  }
228
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiDashboardCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
229
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiDashboardCardComponent, isStandalone: true, selector: "si-dashboard-card", inputs: { restoreText: { classPropertyName: "restoreText", publicName: "restoreText", isSignal: true, isRequired: false, transformFunction: null }, expandText: { classPropertyName: "expandText", publicName: "expandText", isSignal: true, isRequired: false, transformFunction: null }, enableExpandInteraction: { classPropertyName: "enableExpandInteraction", publicName: "enableExpandInteraction", isSignal: true, isRequired: false, transformFunction: null }, showMenubar: { classPropertyName: "showMenubar", publicName: "showMenubar", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expandChange: "expandChange" }, host: { properties: { "class.elevation-2": "isExpanded()", "class.expanded": "isExpanded()", "class.d-none": "hide" } }, usesInheritance: true, ngImport: i0, template: "@if (imgSrc()) {\n <img\n class=\"card-content-split\"\n [class.card-img-top]=\"imgDir() !== 'horizontal'\"\n [class.card-img-start]=\"imgDir() === 'horizontal'\"\n [attr.src]=\"imgSrc()\"\n [attr.alt]=\"imgAlt() | translate\"\n />\n}\n\n<div class=\"content-container\" [class.card-content-split]=\"imgSrc()\">\n @if (heading() || displayContentActionBar()) {\n <div class=\"card-header d-flex justify-content-between\">\n <ng-content #cardHeaderIcon select=\"[headerIcon]\" />\n @if (heading()) {\n <div class=\"text-truncate\">{{ heading() | translate }}</div>\n }\n\n <div class=\"cab d-flex ms-6 my-n4 me-n5\">\n @if (displayContentActionBar()) {\n <si-content-action-bar\n class=\"ms-auto\"\n [primaryActions]=\"primaryActionsComputed()\"\n [secondaryActions]=\"secondaryActions()\"\n [actionParam]=\"actionParam()\"\n [viewType]=\"actionBarViewTypeComputed()\"\n [attr.title]=\"actionBarTitleComputed() | translate\"\n />\n }\n </div>\n </div>\n }\n <ng-content #cardBody select=\"[body]\" />\n <ng-content #cardFooter select=\"[footer]\" />\n</div>\n", styles: [":host{block-size:100%}:host.card-horizontal{flex-direction:row}:host.expanded{position:absolute;inset:0}.card-header{block-size:40px}.text-truncate{flex:0 1 auto}.cab{flex:1 0 0;min-inline-size:40px}.card-img-top{block-size:50%;inline-size:auto;object-fit:var(--si-card-img-object-fit, scale-down);object-position:var(--si-card-img-object-position, center top)}.card-img-start{block-size:auto;inline-size:50%;object-fit:var(--si-card-img-object-fit, scale-down);object-position:var(--si-card-img-object-position, left center)}.card-content-split{flex:0 0 50%}.content-container{overflow:hidden;position:relative;display:flex;flex-direction:column;flex:1 1 auto;min-inline-size:0;word-wrap:break-word;border-radius:inherit}\n"], dependencies: [{ kind: "component", type: SiContentActionBarComponent, selector: "si-content-action-bar", inputs: ["primaryActions", "secondaryActions", "actionParam", "viewType", "toggleItemLabel", "preventIconsInDropdownMenus", "disabled"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
229
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiDashboardCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
230
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiDashboardCardComponent, isStandalone: true, selector: "si-dashboard-card", inputs: { restoreText: { classPropertyName: "restoreText", publicName: "restoreText", isSignal: true, isRequired: false, transformFunction: null }, expandText: { classPropertyName: "expandText", publicName: "expandText", isSignal: true, isRequired: false, transformFunction: null }, enableExpandInteraction: { classPropertyName: "enableExpandInteraction", publicName: "enableExpandInteraction", isSignal: true, isRequired: false, transformFunction: null }, showMenubar: { classPropertyName: "showMenubar", publicName: "showMenubar", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expandChange: "expandChange" }, host: { properties: { "class.elevation-2": "isExpanded()", "class.expanded": "isExpanded()", "class.d-none": "hide" } }, usesInheritance: true, ngImport: i0, template: "@if (imgSrc()) {\n <img\n class=\"card-content-split\"\n [class.card-img-top]=\"imgDir() !== 'horizontal'\"\n [class.card-img-start]=\"imgDir() === 'horizontal'\"\n [attr.src]=\"imgSrc()\"\n [attr.alt]=\"imgAlt() | translate\"\n />\n}\n\n<div class=\"content-container\" [class.card-content-split]=\"imgSrc()\">\n @if (heading() || displayContentActionBar()) {\n <div class=\"card-header d-flex justify-content-between\">\n <ng-content #cardHeaderIcon select=\"[headerIcon]\" />\n @if (heading()) {\n <div class=\"text-truncate\">{{ heading() | translate }}</div>\n }\n\n <div class=\"cab d-flex ms-6 my-n4 me-n5\">\n @if (displayContentActionBar()) {\n <si-content-action-bar\n class=\"ms-auto\"\n [primaryActions]=\"primaryActionsComputed()\"\n [secondaryActions]=\"secondaryActions()\"\n [actionParam]=\"actionParam()\"\n [viewType]=\"actionBarViewTypeComputed()\"\n [attr.title]=\"actionBarTitleComputed() | translate\"\n />\n }\n </div>\n </div>\n }\n <ng-content #cardBody select=\"[body]\" />\n <ng-content #cardFooter select=\"[footer]\" />\n</div>\n", styles: [":host.card-horizontal{flex-direction:row}:host{block-size:100%}:host.expanded{position:absolute;inset:0}.card-header{block-size:40px}.text-truncate{flex:0 1 auto}.cab{flex:1 0 0;min-inline-size:40px}.card-img-top{block-size:50%;inline-size:auto;object-fit:var(--si-card-img-object-fit, scale-down);object-position:var(--si-card-img-object-position, center top)}.card-img-start{block-size:auto;inline-size:50%;object-fit:var(--si-card-img-object-fit, scale-down);object-position:var(--si-card-img-object-position, left center)}.card-content-split{flex:0 0 50%}.content-container{overflow:hidden;position:relative;display:flex;flex-direction:column;flex:1 1 auto;min-inline-size:0;word-wrap:break-word;border-radius:inherit}\n"], dependencies: [{ kind: "component", type: SiContentActionBarComponent, selector: "si-content-action-bar", inputs: ["primaryActions", "secondaryActions", "actionParam", "viewType", "toggleItemLabel", "preventIconsInDropdownMenus", "disabled"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
230
231
  }
231
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiDashboardCardComponent, decorators: [{
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiDashboardCardComponent, decorators: [{
232
233
  type: Component,
233
234
  args: [{ selector: 'si-dashboard-card', imports: [SiContentActionBarComponent, SiTranslatePipe], host: {
234
235
  '[class.elevation-2]': 'isExpanded()',
235
236
  '[class.expanded]': 'isExpanded()',
236
237
  '[class.d-none]': 'hide'
237
- }, template: "@if (imgSrc()) {\n <img\n class=\"card-content-split\"\n [class.card-img-top]=\"imgDir() !== 'horizontal'\"\n [class.card-img-start]=\"imgDir() === 'horizontal'\"\n [attr.src]=\"imgSrc()\"\n [attr.alt]=\"imgAlt() | translate\"\n />\n}\n\n<div class=\"content-container\" [class.card-content-split]=\"imgSrc()\">\n @if (heading() || displayContentActionBar()) {\n <div class=\"card-header d-flex justify-content-between\">\n <ng-content #cardHeaderIcon select=\"[headerIcon]\" />\n @if (heading()) {\n <div class=\"text-truncate\">{{ heading() | translate }}</div>\n }\n\n <div class=\"cab d-flex ms-6 my-n4 me-n5\">\n @if (displayContentActionBar()) {\n <si-content-action-bar\n class=\"ms-auto\"\n [primaryActions]=\"primaryActionsComputed()\"\n [secondaryActions]=\"secondaryActions()\"\n [actionParam]=\"actionParam()\"\n [viewType]=\"actionBarViewTypeComputed()\"\n [attr.title]=\"actionBarTitleComputed() | translate\"\n />\n }\n </div>\n </div>\n }\n <ng-content #cardBody select=\"[body]\" />\n <ng-content #cardFooter select=\"[footer]\" />\n</div>\n", styles: [":host{block-size:100%}:host.card-horizontal{flex-direction:row}:host.expanded{position:absolute;inset:0}.card-header{block-size:40px}.text-truncate{flex:0 1 auto}.cab{flex:1 0 0;min-inline-size:40px}.card-img-top{block-size:50%;inline-size:auto;object-fit:var(--si-card-img-object-fit, scale-down);object-position:var(--si-card-img-object-position, center top)}.card-img-start{block-size:auto;inline-size:50%;object-fit:var(--si-card-img-object-fit, scale-down);object-position:var(--si-card-img-object-position, left center)}.card-content-split{flex:0 0 50%}.content-container{overflow:hidden;position:relative;display:flex;flex-direction:column;flex:1 1 auto;min-inline-size:0;word-wrap:break-word;border-radius:inherit}\n"] }]
238
- }], ctorParameters: () => [] });
238
+ }, template: "@if (imgSrc()) {\n <img\n class=\"card-content-split\"\n [class.card-img-top]=\"imgDir() !== 'horizontal'\"\n [class.card-img-start]=\"imgDir() === 'horizontal'\"\n [attr.src]=\"imgSrc()\"\n [attr.alt]=\"imgAlt() | translate\"\n />\n}\n\n<div class=\"content-container\" [class.card-content-split]=\"imgSrc()\">\n @if (heading() || displayContentActionBar()) {\n <div class=\"card-header d-flex justify-content-between\">\n <ng-content #cardHeaderIcon select=\"[headerIcon]\" />\n @if (heading()) {\n <div class=\"text-truncate\">{{ heading() | translate }}</div>\n }\n\n <div class=\"cab d-flex ms-6 my-n4 me-n5\">\n @if (displayContentActionBar()) {\n <si-content-action-bar\n class=\"ms-auto\"\n [primaryActions]=\"primaryActionsComputed()\"\n [secondaryActions]=\"secondaryActions()\"\n [actionParam]=\"actionParam()\"\n [viewType]=\"actionBarViewTypeComputed()\"\n [attr.title]=\"actionBarTitleComputed() | translate\"\n />\n }\n </div>\n </div>\n }\n <ng-content #cardBody select=\"[body]\" />\n <ng-content #cardFooter select=\"[footer]\" />\n</div>\n", styles: [":host.card-horizontal{flex-direction:row}:host{block-size:100%}:host.expanded{position:absolute;inset:0}.card-header{block-size:40px}.text-truncate{flex:0 1 auto}.cab{flex:1 0 0;min-inline-size:40px}.card-img-top{block-size:50%;inline-size:auto;object-fit:var(--si-card-img-object-fit, scale-down);object-position:var(--si-card-img-object-position, center top)}.card-img-start{block-size:auto;inline-size:50%;object-fit:var(--si-card-img-object-fit, scale-down);object-position:var(--si-card-img-object-position, left center)}.card-content-split{flex:0 0 50%}.content-container{overflow:hidden;position:relative;display:flex;flex-direction:column;flex:1 1 auto;min-inline-size:0;word-wrap:break-word;border-radius:inherit}\n"] }]
239
+ }], ctorParameters: () => [], propDecorators: { restoreText: [{ type: i0.Input, args: [{ isSignal: true, alias: "restoreText", required: false }] }], expandText: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandText", required: false }] }], enableExpandInteraction: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableExpandInteraction", required: false }] }], showMenubar: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMenubar", required: false }] }], expandChange: [{ type: i0.Output, args: ["expandChange"] }] } });
239
240
 
240
241
  /**
241
242
  * Copyright (c) Siemens 2016 - 2025
@@ -247,25 +248,25 @@ class SiDashboardComponent {
247
248
  /**
248
249
  * Heading for the dashboard page.
249
250
  */
250
- heading = input();
251
+ heading = input(...(ngDevMode ? [undefined, { debugName: "heading" }] : []));
251
252
  /**
252
253
  * Opt-in to enable expand interaction for all cards.
253
254
  *
254
255
  * @defaultValue false
255
256
  */
256
- enableExpandInteractions = input(false, { transform: booleanAttribute });
257
+ enableExpandInteractions = input(false, { ...(ngDevMode ? { debugName: "enableExpandInteractions" } : {}), transform: booleanAttribute });
257
258
  /**
258
259
  * Option to turn off the sticky behavior of the heading and menu bar.
259
260
  *
260
261
  * @defaultValue true
261
262
  */
262
- sticky = input(true, { transform: booleanAttribute });
263
+ sticky = input(true, { ...(ngDevMode ? { debugName: "sticky" } : {}), transform: booleanAttribute });
263
264
  /**
264
265
  * Option to hide the menu bar.
265
266
  *
266
267
  * @defaultValue false
267
268
  */
268
- hideMenubar = input(false, { transform: booleanAttribute });
269
+ hideMenubar = input(false, { ...(ngDevMode ? { debugName: "hideMenubar" } : {}), transform: booleanAttribute });
269
270
  /**
270
271
  * Is `true` if a card is expanded.
271
272
  * @defaultref {@link _isExpanded}
@@ -274,7 +275,7 @@ class SiDashboardComponent {
274
275
  return this._isExpanded;
275
276
  }
276
277
  dashboardFrameEndPadding = null;
277
- hideMenubarComputed = computed(() => this.hideMenubar() || this.hideMenubarInternal());
278
+ hideMenubarComputed = computed(() => this.hideMenubar() || this.hideMenubarInternal(), ...(ngDevMode ? [{ debugName: "hideMenubarComputed" }] : []));
278
279
  _isExpanded = false;
279
280
  scrollPosition = [0, 0];
280
281
  cards = [];
@@ -291,7 +292,7 @@ class SiDashboardComponent {
291
292
  scrollbarHelper = inject(ScrollbarHelper);
292
293
  cdRef = inject(ChangeDetectorRef);
293
294
  document = inject(DOCUMENT);
294
- hideMenubarInternal = signal(false);
295
+ hideMenubarInternal = signal(false, ...(ngDevMode ? [{ debugName: "hideMenubarInternal" }] : []));
295
296
  constructor() {
296
297
  this.dashboardService.cards$
297
298
  .pipe(takeUntilDestroyed())
@@ -432,24 +433,26 @@ class SiDashboardComponent {
432
433
  this.dashboardFrameEndPadding = padding;
433
434
  this.cdRef.markForCheck();
434
435
  }
435
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiDashboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
436
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiDashboardComponent, isStandalone: true, selector: "si-dashboard", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, enableExpandInteractions: { classPropertyName: "enableExpandInteractions", publicName: "enableExpandInteractions", isSignal: true, isRequired: false, transformFunction: null }, sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null }, hideMenubar: { classPropertyName: "hideMenubar", publicName: "hideMenubar", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "si-layout-fixed-height" }, providers: [SiDashboardService], viewQueries: [{ propertyName: "expandedPortalOutlet", first: true, predicate: ["expandedPortalOutlet"], descendants: true, read: CdkPortalOutlet, isSignal: true }, { propertyName: "dashboardFrame", first: true, predicate: ["dashboardFrame"], descendants: true, isSignal: true }, { propertyName: "dashboard", first: true, predicate: ["dashboard"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"si-layout-fixed-height si-dashboard si-layout-main-padding py-6\"\n [class.sticky]=\"sticky()\"\n>\n <div class=\"si-dashboard-header\" [class.sticky]=\"sticky()\">\n @if (heading()) {\n <div class=\"si-layout-header\">\n <h2 class=\"si-layout-title si-layout-top-element\">{{ heading() | translate }}</h2>\n </div>\n }\n @if (!hideMenubarComputed()) {\n <div class=\"mb-6\" [class.si-layout-top-element]=\"!heading()\">\n <ng-content select=\"[menubar]\" />\n </div>\n }\n </div>\n <div\n #dashboardFrame\n class=\"si-layout-fixed-height si-dashboard-content ps-2 pt-2 ms-n2 mt-n2\"\n [class.sticky]=\"sticky()\"\n [style.padding-inline-end.px]=\"dashboardFrameEndPadding\"\n >\n <div class=\"si-layout-fixed-height\" [class.d-none]=\"isExpanded\">\n <div #dashboard class=\"si-layout-fixed-height fix-si-layout-fixed-height\">\n <ng-content select=\"[dashboard]\" />\n </div>\n </div>\n <div class=\"position-relative flex-grow-1 flex-shrink-1 mb-6\" [class.d-none]=\"!isExpanded\">\n <ng-container #expandedPortalOutlet cdkPortalOutlet />\n </div>\n </div>\n</div>\n", styles: [".si-dashboard.sticky{padding-inline-end:0;overflow-x:hidden}.si-dashboard .si-dashboard-header.sticky{padding-inline-end:16px}@media (min-width: 768px){.si-dashboard .si-dashboard-header.sticky{padding-inline-end:32px}}.si-dashboard .si-dashboard-content.sticky{overflow-y:auto;overflow-x:hidden}.si-dashboard .fix-si-layout-fixed-height{min-block-size:auto}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
436
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiDashboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
437
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiDashboardComponent, isStandalone: true, selector: "si-dashboard", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, enableExpandInteractions: { classPropertyName: "enableExpandInteractions", publicName: "enableExpandInteractions", isSignal: true, isRequired: false, transformFunction: null }, sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null }, hideMenubar: { classPropertyName: "hideMenubar", publicName: "hideMenubar", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "si-layout-fixed-height" }, providers: [SiDashboardService], viewQueries: [{ propertyName: "expandedPortalOutlet", first: true, predicate: ["expandedPortalOutlet"], descendants: true, read: CdkPortalOutlet, isSignal: true }, { propertyName: "dashboardFrame", first: true, predicate: ["dashboardFrame"], descendants: true, isSignal: true }, { propertyName: "dashboard", first: true, predicate: ["dashboard"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"si-layout-fixed-height si-dashboard si-layout-main-padding py-6\"\n [class.sticky]=\"sticky()\"\n>\n <div class=\"si-dashboard-header\" [class.sticky]=\"sticky()\">\n @if (heading()) {\n <div class=\"si-layout-header\">\n <h2 class=\"si-layout-title si-layout-top-element\">{{ heading() | translate }}</h2>\n </div>\n }\n @if (!hideMenubarComputed()) {\n <div class=\"mb-6\" [class.si-layout-top-element]=\"!heading()\">\n <ng-content select=\"[menubar]\" />\n </div>\n }\n </div>\n <div\n #dashboardFrame\n class=\"si-layout-fixed-height si-dashboard-content ps-2 pt-2 ms-n2 mt-n2\"\n [class.sticky]=\"sticky()\"\n [style.padding-inline-end.px]=\"dashboardFrameEndPadding\"\n >\n <div class=\"si-layout-fixed-height\" [class.d-none]=\"isExpanded\">\n <div #dashboard class=\"si-layout-fixed-height fix-si-layout-fixed-height\">\n <ng-content select=\"[dashboard]\" />\n </div>\n </div>\n <div class=\"position-relative flex-grow-1 flex-shrink-1 mb-6\" [class.d-none]=\"!isExpanded\">\n <ng-container #expandedPortalOutlet cdkPortalOutlet />\n </div>\n </div>\n</div>\n", styles: [".si-dashboard.sticky{padding-inline-end:0;overflow-x:hidden}.si-dashboard .si-dashboard-header.sticky{padding-inline-end:16px}@media(min-width:768px){.si-dashboard .si-dashboard-header.sticky{padding-inline-end:32px}}.si-dashboard .si-dashboard-content.sticky{overflow-y:auto;overflow-x:hidden}.si-dashboard .fix-si-layout-fixed-height{min-block-size:auto}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
437
438
  }
438
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiDashboardComponent, decorators: [{
439
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiDashboardComponent, decorators: [{
439
440
  type: Component,
440
- args: [{ selector: 'si-dashboard', imports: [PortalModule, SiTranslatePipe], providers: [SiDashboardService], host: { class: 'si-layout-fixed-height' }, template: "<div\n class=\"si-layout-fixed-height si-dashboard si-layout-main-padding py-6\"\n [class.sticky]=\"sticky()\"\n>\n <div class=\"si-dashboard-header\" [class.sticky]=\"sticky()\">\n @if (heading()) {\n <div class=\"si-layout-header\">\n <h2 class=\"si-layout-title si-layout-top-element\">{{ heading() | translate }}</h2>\n </div>\n }\n @if (!hideMenubarComputed()) {\n <div class=\"mb-6\" [class.si-layout-top-element]=\"!heading()\">\n <ng-content select=\"[menubar]\" />\n </div>\n }\n </div>\n <div\n #dashboardFrame\n class=\"si-layout-fixed-height si-dashboard-content ps-2 pt-2 ms-n2 mt-n2\"\n [class.sticky]=\"sticky()\"\n [style.padding-inline-end.px]=\"dashboardFrameEndPadding\"\n >\n <div class=\"si-layout-fixed-height\" [class.d-none]=\"isExpanded\">\n <div #dashboard class=\"si-layout-fixed-height fix-si-layout-fixed-height\">\n <ng-content select=\"[dashboard]\" />\n </div>\n </div>\n <div class=\"position-relative flex-grow-1 flex-shrink-1 mb-6\" [class.d-none]=\"!isExpanded\">\n <ng-container #expandedPortalOutlet cdkPortalOutlet />\n </div>\n </div>\n</div>\n", styles: [".si-dashboard.sticky{padding-inline-end:0;overflow-x:hidden}.si-dashboard .si-dashboard-header.sticky{padding-inline-end:16px}@media (min-width: 768px){.si-dashboard .si-dashboard-header.sticky{padding-inline-end:32px}}.si-dashboard .si-dashboard-content.sticky{overflow-y:auto;overflow-x:hidden}.si-dashboard .fix-si-layout-fixed-height{min-block-size:auto}\n"] }]
441
- }], ctorParameters: () => [] });
441
+ args: [{ selector: 'si-dashboard', imports: [PortalModule, SiTranslatePipe], providers: [SiDashboardService], host: { class: 'si-layout-fixed-height' }, template: "<div\n class=\"si-layout-fixed-height si-dashboard si-layout-main-padding py-6\"\n [class.sticky]=\"sticky()\"\n>\n <div class=\"si-dashboard-header\" [class.sticky]=\"sticky()\">\n @if (heading()) {\n <div class=\"si-layout-header\">\n <h2 class=\"si-layout-title si-layout-top-element\">{{ heading() | translate }}</h2>\n </div>\n }\n @if (!hideMenubarComputed()) {\n <div class=\"mb-6\" [class.si-layout-top-element]=\"!heading()\">\n <ng-content select=\"[menubar]\" />\n </div>\n }\n </div>\n <div\n #dashboardFrame\n class=\"si-layout-fixed-height si-dashboard-content ps-2 pt-2 ms-n2 mt-n2\"\n [class.sticky]=\"sticky()\"\n [style.padding-inline-end.px]=\"dashboardFrameEndPadding\"\n >\n <div class=\"si-layout-fixed-height\" [class.d-none]=\"isExpanded\">\n <div #dashboard class=\"si-layout-fixed-height fix-si-layout-fixed-height\">\n <ng-content select=\"[dashboard]\" />\n </div>\n </div>\n <div class=\"position-relative flex-grow-1 flex-shrink-1 mb-6\" [class.d-none]=\"!isExpanded\">\n <ng-container #expandedPortalOutlet cdkPortalOutlet />\n </div>\n </div>\n</div>\n", styles: [".si-dashboard.sticky{padding-inline-end:0;overflow-x:hidden}.si-dashboard .si-dashboard-header.sticky{padding-inline-end:16px}@media(min-width:768px){.si-dashboard .si-dashboard-header.sticky{padding-inline-end:32px}}.si-dashboard .si-dashboard-content.sticky{overflow-y:auto;overflow-x:hidden}.si-dashboard .fix-si-layout-fixed-height{min-block-size:auto}\n"] }]
442
+ }], ctorParameters: () => [], propDecorators: { heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], enableExpandInteractions: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableExpandInteractions", required: false }] }], sticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "sticky", required: false }] }], hideMenubar: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideMenubar", required: false }] }], expandedPortalOutlet: [{ type: i0.ViewChild, args: ['expandedPortalOutlet', { ...{
443
+ read: CdkPortalOutlet
444
+ }, isSignal: true }] }], dashboardFrame: [{ type: i0.ViewChild, args: ['dashboardFrame', { isSignal: true }] }], dashboard: [{ type: i0.ViewChild, args: ['dashboard', { isSignal: true }] }] } });
442
445
 
443
446
  /**
444
447
  * Copyright (c) Siemens 2016 - 2025
445
448
  * SPDX-License-Identifier: MIT
446
449
  */
447
450
  class SiDashboardModule {
448
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiDashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
449
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: SiDashboardModule, imports: [SiDashboardCardComponent, SiDashboardComponent], exports: [SiDashboardCardComponent, SiDashboardComponent] });
450
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiDashboardModule, imports: [SiDashboardCardComponent, SiDashboardComponent] });
451
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiDashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
452
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: SiDashboardModule, imports: [SiDashboardCardComponent, SiDashboardComponent], exports: [SiDashboardCardComponent, SiDashboardComponent] });
453
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiDashboardModule, imports: [SiDashboardCardComponent, SiDashboardComponent] });
451
454
  }
452
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiDashboardModule, decorators: [{
455
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiDashboardModule, decorators: [{
453
456
  type: NgModule,
454
457
  args: [{
455
458
  imports: [SiDashboardCardComponent, SiDashboardComponent],
@@ -474,34 +477,33 @@ class SiWidgetBaseComponent {
474
477
  * the skeleton indicates the loading of the value. Disable
475
478
  * the automatic loading mechanism by setting `SiWidgetBodyBaseComponent.disableAutoLoadingIndicator`.
476
479
  */
477
- value = input.required();
480
+ value = input.required(...(ngDevMode ? [{ debugName: "value" }] : []));
478
481
  /**
479
482
  * Option to disable automatic start of skeleton loading indication.
480
483
  *
481
484
  * @defaultValue false
482
485
  */
483
- disableAutoLoadingIndicator = input(false, { transform: booleanAttribute });
486
+ disableAutoLoadingIndicator = input(false, { ...(ngDevMode ? { debugName: "disableAutoLoadingIndicator" } : {}), transform: booleanAttribute });
484
487
  /**
485
488
  * Input to start and stop the skeleton loading indication.
486
489
  *
487
490
  * @defaultValue false
488
491
  */
489
- showLoadingIndicatorInput = input(false, {
492
+ showLoadingIndicatorInput = input(false, { ...(ngDevMode ? { debugName: "showLoadingIndicatorInput" } : {}),
490
493
  // eslint-disable-next-line @angular-eslint/no-input-rename
491
494
  alias: 'showLoadingIndicator',
492
- transform: booleanAttribute
493
- });
494
- showLoadingIndicatorInternal = signal(false);
495
+ transform: booleanAttribute });
496
+ showLoadingIndicatorInternal = signal(false, ...(ngDevMode ? [{ debugName: "showLoadingIndicatorInternal" }] : []));
495
497
  showLoadingIndicator = computed(() => {
496
498
  return this.showLoadingIndicatorInternal() ?? this.showLoadingIndicatorInput();
497
- });
499
+ }, ...(ngDevMode ? [{ debugName: "showLoadingIndicator" }] : []));
498
500
  /**
499
501
  * Initial delay time in milliseconds before enabling loading indicator.
500
502
  * Only used once initially during construction.
501
503
  *
502
504
  * @defaultValue 300
503
505
  */
504
- initialLoadingIndicatorDebounceTime = input(300);
506
+ initialLoadingIndicatorDebounceTime = input(300, ...(ngDevMode ? [{ debugName: "initialLoadingIndicatorDebounceTime" }] : []));
505
507
  cdRef = inject(ChangeDetectorRef);
506
508
  loadingTimer;
507
509
  ngOnChanges(changes) {
@@ -522,15 +524,15 @@ class SiWidgetBaseComponent {
522
524
  }, this.initialLoadingIndicatorDebounceTime());
523
525
  }
524
526
  }
525
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiWidgetBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
526
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.6", type: SiWidgetBaseComponent, isStandalone: true, selector: "ng-component", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, disableAutoLoadingIndicator: { classPropertyName: "disableAutoLoadingIndicator", publicName: "disableAutoLoadingIndicator", isSignal: true, isRequired: false, transformFunction: null }, showLoadingIndicatorInput: { classPropertyName: "showLoadingIndicatorInput", publicName: "showLoadingIndicator", isSignal: true, isRequired: false, transformFunction: null }, initialLoadingIndicatorDebounceTime: { classPropertyName: "initialLoadingIndicatorDebounceTime", publicName: "initialLoadingIndicatorDebounceTime", isSignal: true, isRequired: false, transformFunction: null } }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
527
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiWidgetBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
528
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.8", type: SiWidgetBaseComponent, isStandalone: true, selector: "ng-component", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, disableAutoLoadingIndicator: { classPropertyName: "disableAutoLoadingIndicator", publicName: "disableAutoLoadingIndicator", isSignal: true, isRequired: false, transformFunction: null }, showLoadingIndicatorInput: { classPropertyName: "showLoadingIndicatorInput", publicName: "showLoadingIndicator", isSignal: true, isRequired: false, transformFunction: null }, initialLoadingIndicatorDebounceTime: { classPropertyName: "initialLoadingIndicatorDebounceTime", publicName: "initialLoadingIndicatorDebounceTime", isSignal: true, isRequired: false, transformFunction: null } }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
527
529
  }
528
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiWidgetBaseComponent, decorators: [{
530
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiWidgetBaseComponent, decorators: [{
529
531
  type: Component,
530
532
  args: [{
531
533
  template: ''
532
534
  }]
533
- }] });
535
+ }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], disableAutoLoadingIndicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableAutoLoadingIndicator", required: false }] }], showLoadingIndicatorInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLoadingIndicator", required: false }] }], initialLoadingIndicatorDebounceTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialLoadingIndicatorDebounceTime", required: false }] }] } });
534
536
 
535
537
  /**
536
538
  * Copyright (c) Siemens 2016 - 2025
@@ -546,22 +548,22 @@ class SiLinkWidgetComponent extends SiWidgetBaseComponent {
546
548
  *
547
549
  * @defaultValue false
548
550
  */
549
- showLinkIcons = input(false, { transform: booleanAttribute });
551
+ showLinkIcons = input(false, { ...(ngDevMode ? { debugName: "showLinkIcons" } : {}), transform: booleanAttribute });
550
552
  /**
551
553
  * The number of skeleton progress indication rows.
552
554
  *
553
555
  * @defaultValue 3
554
556
  */
555
- numberOfLinks = input(3);
556
- ghosts = computed(() => new Array(this.numberOfLinks() ?? 3));
557
+ numberOfLinks = input(3, ...(ngDevMode ? [{ debugName: "numberOfLinks" }] : []));
558
+ ghosts = computed(() => new Array(this.numberOfLinks() ?? 3), ...(ngDevMode ? [{ debugName: "ghosts" }] : []));
557
559
  icons = addIcons({ elementRight2 });
558
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiLinkWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
559
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiLinkWidgetComponent, isStandalone: true, selector: "si-link-widget", inputs: { showLinkIcons: { classPropertyName: "showLinkIcons", publicName: "showLinkIcons", isSignal: true, isRequired: false, transformFunction: null }, numberOfLinks: { classPropertyName: "numberOfLinks", publicName: "numberOfLinks", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "si-link-widget" }, usesInheritance: true, ngImport: i0, template: "@if (!showLoadingIndicator() && value()) {\n @for (link of value(); track link) {\n @if (link.action) {\n <button type=\"button\" class=\"btn btn-link\" [siLink]=\"link\">{{\n link.title | translate\n }}</button>\n } @else {\n <a [siLink]=\"link\">\n {{ link.title | translate }}\n @if (showLinkIcons()) {\n <si-icon class=\"link-icon link-end flip-rtl\" [icon]=\"icons.elementRight2\" />\n }\n </a>\n }\n }\n} @else {\n @for (some of ghosts(); track $index) {\n <div class=\"si-link-widget-skeleton\"></div>\n }\n}\n", dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
560
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLinkWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
561
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiLinkWidgetComponent, isStandalone: true, selector: "si-link-widget", inputs: { showLinkIcons: { classPropertyName: "showLinkIcons", publicName: "showLinkIcons", isSignal: true, isRequired: false, transformFunction: null }, numberOfLinks: { classPropertyName: "numberOfLinks", publicName: "numberOfLinks", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "si-link-widget" }, usesInheritance: true, ngImport: i0, template: "@if (!showLoadingIndicator() && value()) {\n @for (link of value(); track link) {\n @if (link.action) {\n <button type=\"button\" class=\"btn btn-link\" [siLink]=\"link\">{{\n link.title | translate\n }}</button>\n } @else {\n <a [siLink]=\"link\">\n {{ link.title | translate }}\n @if (showLinkIcons()) {\n <si-icon class=\"link-icon link-end flip-rtl\" [icon]=\"icons.elementRight2\" />\n }\n </a>\n }\n }\n} @else {\n @for (some of ghosts(); track $index) {\n <div class=\"si-link-widget-skeleton\"></div>\n }\n}\n", dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
560
562
  }
561
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiLinkWidgetComponent, decorators: [{
563
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLinkWidgetComponent, decorators: [{
562
564
  type: Component,
563
565
  args: [{ selector: 'si-link-widget', imports: [SiIconComponent, SiLinkDirective, SiTranslatePipe], host: { class: 'si-link-widget' }, template: "@if (!showLoadingIndicator() && value()) {\n @for (link of value(); track link) {\n @if (link.action) {\n <button type=\"button\" class=\"btn btn-link\" [siLink]=\"link\">{{\n link.title | translate\n }}</button>\n } @else {\n <a [siLink]=\"link\">\n {{ link.title | translate }}\n @if (showLinkIcons()) {\n <si-icon class=\"link-icon link-end flip-rtl\" [icon]=\"icons.elementRight2\" />\n }\n </a>\n }\n }\n} @else {\n @for (some of ghosts(); track $index) {\n <div class=\"si-link-widget-skeleton\"></div>\n }\n}\n" }]
564
- }] });
566
+ }], propDecorators: { showLinkIcons: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLinkIcons", required: false }] }], numberOfLinks: [{ type: i0.Input, args: [{ isSignal: true, alias: "numberOfLinks", required: false }] }] } });
565
567
 
566
568
  /**
567
569
  * Copyright (c) Siemens 2016 - 2025
@@ -574,26 +576,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
574
576
  class SiListWidgetItemComponent extends SiWidgetBaseComponent {
575
577
  isLink = computed(() => {
576
578
  return typeof this.value()?.label === 'object';
577
- });
579
+ }, ...(ngDevMode ? [{ debugName: "isLink" }] : []));
578
580
  badgeColor = computed(() => {
579
581
  return this.value()?.badgeColor ? 'bg-' + this.value()?.badgeColor : 'bg-default';
580
- });
582
+ }, ...(ngDevMode ? [{ debugName: "badgeColor" }] : []));
581
583
  link = computed(() => {
582
584
  return this.value()?.label;
583
- });
585
+ }, ...(ngDevMode ? [{ debugName: "link" }] : []));
584
586
  label = computed(() => {
585
587
  return this.value()?.label;
586
- });
588
+ }, ...(ngDevMode ? [{ debugName: "label" }] : []));
587
589
  icons = addIcons({ elementRight2 });
588
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiListWidgetItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
589
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiListWidgetItemComponent, isStandalone: true, selector: "si-list-widget-item", host: { attributes: { "role": "listitem" }, classAttribute: "list-group-item d-flex align-items-center" }, usesInheritance: true, ngImport: i0, template: "@let valueObject = value();\n@if (!showLoadingIndicator() && valueObject) {\n @if (valueObject.badge) {\n <span class=\"mx-0 badge me-4\" [ngClass]=\"badgeColor()\">{{\n valueObject.badge | translate\n }}</span>\n }\n <span class=\"me-auto\">\n @if (!isLink()) {\n <span class=\"si-h5\">{{ label() | translate }}</span>\n } @else {\n <a class=\"\" [siLink]=\"link()\"\n >{{ link().title | translate\n }}<si-icon class=\"link-icon link-start flip-rtl\" [icon]=\"icons.elementRight2\" />\n </a>\n }\n @if (valueObject.description) {\n <div class=\"mt-1 si-body text-secondary\">{{ valueObject.description | translate }}</div>\n }\n </span>\n <span>{{ valueObject.text | translate }}</span>\n @if (valueObject.action) {\n @if (valueObject.action.action) {\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-tertiary ms-4 p-2\"\n [attr.aria-label]=\"valueObject.action.title | translate\"\n [siLink]=\"valueObject.action\"\n >\n @if (valueObject.actionIcon) {\n <si-icon class=\"icon\" [icon]=\"valueObject.actionIcon\" />\n }\n </button>\n } @else {\n <a\n class=\"ms-4 p-2\"\n [siLink]=\"valueObject.action\"\n [attr.aria-label]=\"valueObject.action.title | translate\"\n >\n @if (valueObject.actionIcon) {\n <si-icon class=\"icon\" [icon]=\"valueObject.actionIcon\" />\n }\n </a>\n }\n }\n} @else {\n <div class=\"si-link-widget-skeleton my-4\"></div>\n}\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
590
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiListWidgetItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
591
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiListWidgetItemComponent, isStandalone: true, selector: "si-list-widget-item", host: { attributes: { "role": "listitem" }, classAttribute: "list-group-item d-flex align-items-center" }, usesInheritance: true, ngImport: i0, template: "@let valueObject = value();\n@if (!showLoadingIndicator() && valueObject) {\n @if (valueObject.badge) {\n <span class=\"mx-0 badge me-4\" [class]=\"badgeColor()\">{{ valueObject.badge | translate }}</span>\n }\n <span class=\"me-auto\">\n @if (!isLink()) {\n <span class=\"si-h5\">{{ label() | translate }}</span>\n } @else {\n <a class=\"\" [siLink]=\"link()\"\n >{{ link().title | translate\n }}<si-icon class=\"link-icon link-start flip-rtl\" [icon]=\"icons.elementRight2\" />\n </a>\n }\n @if (valueObject.description) {\n <div class=\"mt-1 si-body text-secondary\">{{ valueObject.description | translate }}</div>\n }\n </span>\n <span>{{ valueObject.text | translate }}</span>\n @if (valueObject.action) {\n @if (valueObject.action.action) {\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary ms-4 p-2\"\n [attr.aria-label]=\"valueObject.action.title | translate\"\n [siLink]=\"valueObject.action\"\n >\n @if (valueObject.actionIcon) {\n <si-icon class=\"icon\" [icon]=\"valueObject.actionIcon\" />\n }\n </button>\n } @else {\n <a\n class=\"ms-4 p-2\"\n [siLink]=\"valueObject.action\"\n [attr.aria-label]=\"valueObject.action.title | translate\"\n >\n @if (valueObject.actionIcon) {\n <si-icon class=\"icon\" [icon]=\"valueObject.actionIcon\" />\n }\n </a>\n }\n }\n} @else {\n <div class=\"si-link-widget-skeleton my-4\"></div>\n}\n", dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
590
592
  }
591
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiListWidgetItemComponent, decorators: [{
593
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiListWidgetItemComponent, decorators: [{
592
594
  type: Component,
593
- args: [{ selector: 'si-list-widget-item', imports: [NgClass, SiIconComponent, SiLinkDirective, SiTranslatePipe], host: {
595
+ args: [{ selector: 'si-list-widget-item', imports: [SiIconComponent, SiLinkDirective, SiTranslatePipe], host: {
594
596
  class: 'list-group-item d-flex align-items-center',
595
597
  role: 'listitem'
596
- }, template: "@let valueObject = value();\n@if (!showLoadingIndicator() && valueObject) {\n @if (valueObject.badge) {\n <span class=\"mx-0 badge me-4\" [ngClass]=\"badgeColor()\">{{\n valueObject.badge | translate\n }}</span>\n }\n <span class=\"me-auto\">\n @if (!isLink()) {\n <span class=\"si-h5\">{{ label() | translate }}</span>\n } @else {\n <a class=\"\" [siLink]=\"link()\"\n >{{ link().title | translate\n }}<si-icon class=\"link-icon link-start flip-rtl\" [icon]=\"icons.elementRight2\" />\n </a>\n }\n @if (valueObject.description) {\n <div class=\"mt-1 si-body text-secondary\">{{ valueObject.description | translate }}</div>\n }\n </span>\n <span>{{ valueObject.text | translate }}</span>\n @if (valueObject.action) {\n @if (valueObject.action.action) {\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-tertiary ms-4 p-2\"\n [attr.aria-label]=\"valueObject.action.title | translate\"\n [siLink]=\"valueObject.action\"\n >\n @if (valueObject.actionIcon) {\n <si-icon class=\"icon\" [icon]=\"valueObject.actionIcon\" />\n }\n </button>\n } @else {\n <a\n class=\"ms-4 p-2\"\n [siLink]=\"valueObject.action\"\n [attr.aria-label]=\"valueObject.action.title | translate\"\n >\n @if (valueObject.actionIcon) {\n <si-icon class=\"icon\" [icon]=\"valueObject.actionIcon\" />\n }\n </a>\n }\n }\n} @else {\n <div class=\"si-link-widget-skeleton my-4\"></div>\n}\n" }]
598
+ }, template: "@let valueObject = value();\n@if (!showLoadingIndicator() && valueObject) {\n @if (valueObject.badge) {\n <span class=\"mx-0 badge me-4\" [class]=\"badgeColor()\">{{ valueObject.badge | translate }}</span>\n }\n <span class=\"me-auto\">\n @if (!isLink()) {\n <span class=\"si-h5\">{{ label() | translate }}</span>\n } @else {\n <a class=\"\" [siLink]=\"link()\"\n >{{ link().title | translate\n }}<si-icon class=\"link-icon link-start flip-rtl\" [icon]=\"icons.elementRight2\" />\n </a>\n }\n @if (valueObject.description) {\n <div class=\"mt-1 si-body text-secondary\">{{ valueObject.description | translate }}</div>\n }\n </span>\n <span>{{ valueObject.text | translate }}</span>\n @if (valueObject.action) {\n @if (valueObject.action.action) {\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary ms-4 p-2\"\n [attr.aria-label]=\"valueObject.action.title | translate\"\n [siLink]=\"valueObject.action\"\n >\n @if (valueObject.actionIcon) {\n <si-icon class=\"icon\" [icon]=\"valueObject.actionIcon\" />\n }\n </button>\n } @else {\n <a\n class=\"ms-4 p-2\"\n [siLink]=\"valueObject.action\"\n [attr.aria-label]=\"valueObject.action.title | translate\"\n >\n @if (valueObject.actionIcon) {\n <si-icon class=\"icon\" [icon]=\"valueObject.actionIcon\" />\n }\n </a>\n }\n }\n} @else {\n <div class=\"si-link-widget-skeleton my-4\"></div>\n}\n" }]
597
599
  }] });
598
600
 
599
601
  /**
@@ -606,7 +608,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
606
608
  */
607
609
  class SiListWidgetBodyComponent extends SiWidgetBaseComponent {
608
610
  /** Optional footer link for the list widget */
609
- link = input();
611
+ link = input(...(ngDevMode ? [undefined, { debugName: "link" }] : []));
610
612
  /**
611
613
  * label for the "search placeholder" name
612
614
  *
@@ -615,18 +617,18 @@ class SiListWidgetBodyComponent extends SiWidgetBaseComponent {
615
617
  * t(() => $localize`:@@SI_LIST_WIDGET.SEARCH_PLACEHOLDER:Search...`)
616
618
  * ```
617
619
  */
618
- searchPlaceholderLabel = input(t(() => $localize `:@@SI_LIST_WIDGET.SEARCH_PLACEHOLDER:Search...`));
620
+ searchPlaceholderLabel = input(t(() => $localize `:@@SI_LIST_WIDGET.SEARCH_PLACEHOLDER:Search...`), ...(ngDevMode ? [{ debugName: "searchPlaceholderLabel" }] : []));
619
621
  /**
620
622
  * Enable ascending and descending SiListWidgetItem sorting. If enabled,
621
623
  * items are initially ascending sorted.
622
624
  */
623
- sort = input();
625
+ sort = input(...(ngDevMode ? [undefined, { debugName: "sort" }] : []));
624
626
  /**
625
627
  * Enables the search functionality.
626
628
  *
627
629
  * @defaultValue false
628
630
  */
629
- search = input(false, { transform: booleanAttribute });
631
+ search = input(false, { ...(ngDevMode ? { debugName: "search" } : {}), transform: booleanAttribute });
630
632
  /**
631
633
  * Compare function of for two `SiListWidgetItem`s that is used to sort
632
634
  * the array of items. The default compares the item labels by using the
@@ -654,7 +656,7 @@ class SiListWidgetBodyComponent extends SiWidgetBaseComponent {
654
656
  const aLabel = typeof a.label === 'object' ? a.label.title : a.label;
655
657
  const bLabel = typeof b.label === 'object' ? b.label.title : b.label;
656
658
  return aLabel.localeCompare(bLabel);
657
- });
659
+ }, ...(ngDevMode ? [{ debugName: "compareFn" }] : []));
658
660
  /**
659
661
  * Filter function that is used to filter down the list items when the user enters
660
662
  * a term in the search bar. Default function.
@@ -679,15 +681,15 @@ class SiListWidgetBodyComponent extends SiWidgetBaseComponent {
679
681
  filterFn = input((item, searchTerm) => {
680
682
  const aLabel = typeof item.label === 'object' ? item.label.title : item.label;
681
683
  return aLabel.toLowerCase().includes(searchTerm.toLowerCase());
682
- });
684
+ }, ...(ngDevMode ? [{ debugName: "filterFn" }] : []));
683
685
  /**
684
686
  * The number of skeleton progress indication rows.
685
687
  *
686
688
  * @defaultValue 6
687
689
  */
688
- numberOfLinks = input(6);
690
+ numberOfLinks = input(6, ...(ngDevMode ? [{ debugName: "numberOfLinks" }] : []));
689
691
  /** Used to display the defined number of ghost items */
690
- ghosts = computed(() => new Array(this.numberOfLinks() ?? 6));
692
+ ghosts = computed(() => new Array(this.numberOfLinks() ?? 6), ...(ngDevMode ? [{ debugName: "ghosts" }] : []));
691
693
  /** Holds the list items that are displayed. May be filtered and sorted. */
692
694
  filteredListWidgetItems = computed(() => {
693
695
  const value = this.value();
@@ -705,15 +707,15 @@ class SiListWidgetBodyComponent extends SiWidgetBaseComponent {
705
707
  filteredListWidgetItems = filteredListWidgetItems?.sort((a, b) => (this.compareFn()(a, b) ?? 0) * factor);
706
708
  }
707
709
  return filteredListWidgetItems;
708
- });
709
- searchText = model('');
710
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiListWidgetBodyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
711
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiListWidgetBodyComponent, isStandalone: true, selector: "si-list-widget-body", inputs: { link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholderLabel: { classPropertyName: "searchPlaceholderLabel", publicName: "searchPlaceholderLabel", isSignal: true, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null }, compareFn: { classPropertyName: "compareFn", publicName: "compareFn", isSignal: true, isRequired: false, transformFunction: null }, filterFn: { classPropertyName: "filterFn", publicName: "filterFn", isSignal: true, isRequired: false, transformFunction: null }, numberOfLinks: { classPropertyName: "numberOfLinks", publicName: "numberOfLinks", isSignal: true, isRequired: false, transformFunction: null }, searchText: { classPropertyName: "searchText", publicName: "searchText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchText: "searchTextChange" }, usesInheritance: true, ngImport: i0, template: "@if (search()) {\n <si-search-bar\n class=\"px-6 py-4\"\n showIcon\n colorVariant=\"base-0\"\n [debounceTime]=\"400\"\n [placeholder]=\"searchPlaceholderLabel() | translate\"\n [(ngModel)]=\"searchText\"\n />\n}\n@let filteredListWidgetItemsList = filteredListWidgetItems();\n@if (!showLoadingIndicator() && filteredListWidgetItemsList) {\n @if (filteredListWidgetItemsList.length > 0) {\n <div class=\"list-group list-group-lg\" role=\"list\">\n @for (item of filteredListWidgetItemsList; track $index) {\n <si-list-widget-item [value]=\"item\" />\n }\n </div>\n } @else {\n <ng-content select=\"[empty-state]\" />\n }\n} @else {\n <div class=\"list-group list-group-lg\" role=\"list\">\n @for (some of ghosts(); track $index) {\n <si-list-widget-item [value]=\"undefined\" />\n }\n </div>\n}\n", styles: [":host{background-color:var(--element-base-1);border-radius:var(--element-radius-3);display:flex;flex-direction:column;flex:1 1 auto;overflow:hidden}:host:has(si-search-bar){padding-block-start:8px}:host-context(si-card,si-dashboard-card){padding-block-start:unset!important}.list-group{border-radius:inherit;overflow-y:auto;overflow-x:hidden}\n"], dependencies: [{ kind: "component", type: SiListWidgetItemComponent, selector: "si-list-widget-item" }, { kind: "component", type: SiSearchBarComponent, selector: "si-search-bar", inputs: ["debounceTime", "prohibitedCharacters", "placeholder", "showIcon", "tabbable", "value", "readonly", "colorVariant", "disabled", "clearButtonAriaLabel"], outputs: ["searchChange"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
710
+ }, ...(ngDevMode ? [{ debugName: "filteredListWidgetItems" }] : []));
711
+ searchText = model('', ...(ngDevMode ? [{ debugName: "searchText" }] : []));
712
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiListWidgetBodyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
713
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiListWidgetBodyComponent, isStandalone: true, selector: "si-list-widget-body", inputs: { link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholderLabel: { classPropertyName: "searchPlaceholderLabel", publicName: "searchPlaceholderLabel", isSignal: true, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null }, compareFn: { classPropertyName: "compareFn", publicName: "compareFn", isSignal: true, isRequired: false, transformFunction: null }, filterFn: { classPropertyName: "filterFn", publicName: "filterFn", isSignal: true, isRequired: false, transformFunction: null }, numberOfLinks: { classPropertyName: "numberOfLinks", publicName: "numberOfLinks", isSignal: true, isRequired: false, transformFunction: null }, searchText: { classPropertyName: "searchText", publicName: "searchText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchText: "searchTextChange" }, usesInheritance: true, ngImport: i0, template: "@if (search()) {\n <si-search-bar\n class=\"px-6 py-4\"\n showIcon\n colorVariant=\"base-0\"\n [debounceTime]=\"400\"\n [placeholder]=\"searchPlaceholderLabel() | translate\"\n [(ngModel)]=\"searchText\"\n />\n}\n@let filteredListWidgetItemsList = filteredListWidgetItems();\n@if (!showLoadingIndicator() && filteredListWidgetItemsList) {\n @if (filteredListWidgetItemsList.length > 0) {\n <div class=\"list-group list-group-lg\" role=\"list\">\n @for (item of filteredListWidgetItemsList; track $index) {\n <si-list-widget-item [value]=\"item\" />\n }\n </div>\n } @else {\n <ng-content select=\"[empty-state]\" />\n }\n} @else {\n <div class=\"list-group list-group-lg\" role=\"list\">\n @for (some of ghosts(); track $index) {\n <si-list-widget-item [value]=\"undefined\" />\n }\n </div>\n}\n", styles: [":host{background-color:var(--element-base-1);border-radius:var(--element-radius-3);display:flex;flex-direction:column;flex:1 1 auto;overflow:hidden}:host:has(si-search-bar){padding-block-start:8px}:host-context(si-card,si-dashboard-card){padding-block-start:unset!important}.list-group{border-radius:inherit;overflow-y:auto;overflow-x:hidden}\n"], dependencies: [{ kind: "component", type: SiListWidgetItemComponent, selector: "si-list-widget-item" }, { kind: "component", type: SiSearchBarComponent, selector: "si-search-bar", inputs: ["debounceTime", "prohibitedCharacters", "placeholder", "showIcon", "tabbable", "value", "readonly", "colorVariant", "disabled", "clearButtonAriaLabel"], outputs: ["searchChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
712
714
  }
713
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiListWidgetBodyComponent, decorators: [{
715
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiListWidgetBodyComponent, decorators: [{
714
716
  type: Component,
715
717
  args: [{ selector: 'si-list-widget-body', imports: [SiListWidgetItemComponent, SiSearchBarComponent, SiTranslatePipe, FormsModule], host: { class: '' }, template: "@if (search()) {\n <si-search-bar\n class=\"px-6 py-4\"\n showIcon\n colorVariant=\"base-0\"\n [debounceTime]=\"400\"\n [placeholder]=\"searchPlaceholderLabel() | translate\"\n [(ngModel)]=\"searchText\"\n />\n}\n@let filteredListWidgetItemsList = filteredListWidgetItems();\n@if (!showLoadingIndicator() && filteredListWidgetItemsList) {\n @if (filteredListWidgetItemsList.length > 0) {\n <div class=\"list-group list-group-lg\" role=\"list\">\n @for (item of filteredListWidgetItemsList; track $index) {\n <si-list-widget-item [value]=\"item\" />\n }\n </div>\n } @else {\n <ng-content select=\"[empty-state]\" />\n }\n} @else {\n <div class=\"list-group list-group-lg\" role=\"list\">\n @for (some of ghosts(); track $index) {\n <si-list-widget-item [value]=\"undefined\" />\n }\n </div>\n}\n", styles: [":host{background-color:var(--element-base-1);border-radius:var(--element-radius-3);display:flex;flex-direction:column;flex:1 1 auto;overflow:hidden}:host:has(si-search-bar){padding-block-start:8px}:host-context(si-card,si-dashboard-card){padding-block-start:unset!important}.list-group{border-radius:inherit;overflow-y:auto;overflow-x:hidden}\n"] }]
716
- }] });
718
+ }], propDecorators: { link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }], searchPlaceholderLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholderLabel", required: false }] }], sort: [{ type: i0.Input, args: [{ isSignal: true, alias: "sort", required: false }] }], search: [{ type: i0.Input, args: [{ isSignal: true, alias: "search", required: false }] }], compareFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "compareFn", required: false }] }], filterFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterFn", required: false }] }], numberOfLinks: [{ type: i0.Input, args: [{ isSignal: true, alias: "numberOfLinks", required: false }] }], searchText: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchText", required: false }] }, { type: i0.Output, args: ["searchTextChange"] }] } });
717
719
 
718
720
  /**
719
721
  * Copyright (c) Siemens 2016 - 2025
@@ -726,9 +728,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
726
728
  class SiListWidgetComponent extends SiWidgetBaseComponent {
727
729
  icons = addIcons({ elementRight2, elementSortDown, elementSortUp });
728
730
  /** List widget heading. */
729
- heading = input();
731
+ heading = input(...(ngDevMode ? [undefined, { debugName: "heading" }] : []));
730
732
  /** Optional footer link for the list widget */
731
- link = input();
733
+ link = input(...(ngDevMode ? [undefined, { debugName: "link" }] : []));
732
734
  /**
733
735
  * label for the "search placeholder" name
734
736
  *
@@ -737,31 +739,31 @@ class SiListWidgetComponent extends SiWidgetBaseComponent {
737
739
  * t(() => $localize`:@@SI_LIST_WIDGET.SEARCH_PLACEHOLDER:Search...`)
738
740
  * ```
739
741
  */
740
- searchPlaceholderLabel = input(t(() => $localize `:@@SI_LIST_WIDGET.SEARCH_PLACEHOLDER:Search...`));
742
+ searchPlaceholderLabel = input(t(() => $localize `:@@SI_LIST_WIDGET.SEARCH_PLACEHOLDER:Search...`), ...(ngDevMode ? [{ debugName: "searchPlaceholderLabel" }] : []));
741
743
  /**
742
744
  * @defaultValue
743
745
  * ```
744
746
  * t(() => $localize`:@@SI_LIST_WIDGET.SORT_ASCENDING:Sort ascending`)
745
747
  * ```
746
748
  */
747
- sortAscendingLabel = input(t(() => $localize `:@@SI_LIST_WIDGET.SORT_ASCENDING:Sort ascending`));
749
+ sortAscendingLabel = input(t(() => $localize `:@@SI_LIST_WIDGET.SORT_ASCENDING:Sort ascending`), ...(ngDevMode ? [{ debugName: "sortAscendingLabel" }] : []));
748
750
  /**
749
751
  * @defaultValue
750
752
  * ```
751
753
  * t(() => $localize`:@@SI_LIST_WIDGET.SORT_DESCENDING:Sort descending`)
752
754
  * ```
753
755
  */
754
- sortDescendingLabel = input(t(() => $localize `:@@SI_LIST_WIDGET.SORT_DESCENDING:Sort descending`));
756
+ sortDescendingLabel = input(t(() => $localize `:@@SI_LIST_WIDGET.SORT_DESCENDING:Sort descending`), ...(ngDevMode ? [{ debugName: "sortDescendingLabel" }] : []));
755
757
  /**
756
758
  * Set `ASC` of ascending sorting, `DSC` for descending sorting and `undefined` for no sorting.
757
759
  */
758
- sort = model();
760
+ sort = model(...(ngDevMode ? [undefined, { debugName: "sort" }] : []));
759
761
  /**
760
762
  * Enables the search functionality.
761
763
  *
762
764
  * @defaultValue false
763
765
  */
764
- search = input(false, { transform: booleanAttribute });
766
+ search = input(false, { ...(ngDevMode ? { debugName: "search" } : {}), transform: booleanAttribute });
765
767
  /**
766
768
  * Compare function of for two `SiListWidgetItem`s that is used to sort
767
769
  * the array of items. The default compares the item labels by using the
@@ -789,7 +791,7 @@ class SiListWidgetComponent extends SiWidgetBaseComponent {
789
791
  const aLabel = typeof a.label === 'object' ? a.label.title : a.label;
790
792
  const bLabel = typeof b.label === 'object' ? b.label.title : b.label;
791
793
  return aLabel.localeCompare(bLabel);
792
- });
794
+ }, ...(ngDevMode ? [{ debugName: "compareFn" }] : []));
793
795
  /**
794
796
  * Filter function that is used to filter down the list items when the user enters
795
797
  * a term in the search bar. Default function.
@@ -814,21 +816,21 @@ class SiListWidgetComponent extends SiWidgetBaseComponent {
814
816
  filterFn = input((item, searchTerm) => {
815
817
  const aLabel = typeof item.label === 'object' ? item.label.title : item.label;
816
818
  return aLabel.toLowerCase().includes(searchTerm.toLowerCase());
817
- });
819
+ }, ...(ngDevMode ? [{ debugName: "filterFn" }] : []));
818
820
  /**
819
821
  * The number of skeleton progress indication rows.
820
822
  *
821
823
  * @defaultValue 6
822
824
  */
823
- numberOfLinks = input(6);
825
+ numberOfLinks = input(6, ...(ngDevMode ? [{ debugName: "numberOfLinks" }] : []));
824
826
  /**
825
827
  * Optional accent line
826
828
  */
827
- accentLine = input();
829
+ accentLine = input(...(ngDevMode ? [undefined, { debugName: "accentLine" }] : []));
828
830
  accentClass = computed(() => {
829
831
  const accentLine = this.accentLine();
830
832
  return accentLine ? 'accent-' + accentLine : '';
831
- });
833
+ }, ...(ngDevMode ? [{ debugName: "accentClass" }] : []));
832
834
  /** The menu item array used to display the sort button. */
833
835
  sortAction = computed(() => {
834
836
  const sortAction = [
@@ -849,7 +851,7 @@ class SiListWidgetComponent extends SiWidgetBaseComponent {
849
851
  sortAction[0].icon = this.icons.elementSortDown;
850
852
  }
851
853
  return sortAction;
852
- });
854
+ }, ...(ngDevMode ? [{ debugName: "sortAction" }] : []));
853
855
  doSort() {
854
856
  if (this.sort() === 'ASC') {
855
857
  this.sort.set('DSC');
@@ -858,20 +860,19 @@ class SiListWidgetComponent extends SiWidgetBaseComponent {
858
860
  this.sort.set('ASC');
859
861
  }
860
862
  }
861
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiListWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
862
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiListWidgetComponent, isStandalone: true, selector: "si-list-widget", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholderLabel: { classPropertyName: "searchPlaceholderLabel", publicName: "searchPlaceholderLabel", isSignal: true, isRequired: false, transformFunction: null }, sortAscendingLabel: { classPropertyName: "sortAscendingLabel", publicName: "sortAscendingLabel", isSignal: true, isRequired: false, transformFunction: null }, sortDescendingLabel: { classPropertyName: "sortDescendingLabel", publicName: "sortDescendingLabel", isSignal: true, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null }, compareFn: { classPropertyName: "compareFn", publicName: "compareFn", isSignal: true, isRequired: false, transformFunction: null }, filterFn: { classPropertyName: "filterFn", publicName: "filterFn", isSignal: true, isRequired: false, transformFunction: null }, numberOfLinks: { classPropertyName: "numberOfLinks", publicName: "numberOfLinks", isSignal: true, isRequired: false, transformFunction: null }, accentLine: { classPropertyName: "accentLine", publicName: "accentLine", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sort: "sortChange" }, host: { classAttribute: "si-list-widget" }, usesInheritance: true, ngImport: i0, template: "<si-card\n class=\"h-100\"\n actionBarViewType=\"expanded\"\n [ngClass]=\"accentClass()\"\n [heading]=\"heading()\"\n [primaryActions]=\"sort() ? sortAction() : []\"\n>\n <si-list-widget-body\n body\n [compareFn]=\"compareFn()\"\n [filterFn]=\"filterFn()\"\n [numberOfLinks]=\"numberOfLinks()\"\n [searchPlaceholderLabel]=\"searchPlaceholderLabel()\"\n [search]=\"search()\"\n [sort]=\"sort()\"\n [value]=\"value()\"\n [showLoadingIndicator]=\"showLoadingIndicator()\"\n >\n <ng-content select=\"[empty-state]\" empty-state />\n </si-list-widget-body>\n\n @let linkValue = link();\n @if (linkValue) {\n <div class=\"card-footer\" footer>\n @if (!linkValue.action) {\n <a [siLink]=\"linkValue\">\n {{ linkValue.title | translate }}\n <si-icon class=\"link-icon link-end flip-rtl\" [icon]=\"icons.elementRight2\" />\n </a>\n } @else {\n <button type=\"button\" class=\"btn btn-link\" [siLink]=\"linkValue\"\n >{{ linkValue.title | translate }}\n </button>\n }\n </div>\n }\n</si-card>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SiCardComponent, selector: "si-card", inputs: ["primaryActions", "secondaryActions", "actionParam", "actionBarViewType", "actionBarTitle"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "component", type: SiListWidgetBodyComponent, selector: "si-list-widget-body", inputs: ["link", "searchPlaceholderLabel", "sort", "search", "compareFn", "filterFn", "numberOfLinks", "searchText"], outputs: ["searchTextChange"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
863
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiListWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
864
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiListWidgetComponent, isStandalone: true, selector: "si-list-widget", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholderLabel: { classPropertyName: "searchPlaceholderLabel", publicName: "searchPlaceholderLabel", isSignal: true, isRequired: false, transformFunction: null }, sortAscendingLabel: { classPropertyName: "sortAscendingLabel", publicName: "sortAscendingLabel", isSignal: true, isRequired: false, transformFunction: null }, sortDescendingLabel: { classPropertyName: "sortDescendingLabel", publicName: "sortDescendingLabel", isSignal: true, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null }, compareFn: { classPropertyName: "compareFn", publicName: "compareFn", isSignal: true, isRequired: false, transformFunction: null }, filterFn: { classPropertyName: "filterFn", publicName: "filterFn", isSignal: true, isRequired: false, transformFunction: null }, numberOfLinks: { classPropertyName: "numberOfLinks", publicName: "numberOfLinks", isSignal: true, isRequired: false, transformFunction: null }, accentLine: { classPropertyName: "accentLine", publicName: "accentLine", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sort: "sortChange" }, host: { classAttribute: "si-list-widget" }, usesInheritance: true, ngImport: i0, template: "<si-card\n actionBarViewType=\"expanded\"\n class=\"h-100\"\n [class]=\"accentClass()\"\n [heading]=\"heading()\"\n [primaryActions]=\"sort() ? sortAction() : []\"\n>\n <si-list-widget-body\n body\n [compareFn]=\"compareFn()\"\n [filterFn]=\"filterFn()\"\n [numberOfLinks]=\"numberOfLinks()\"\n [searchPlaceholderLabel]=\"searchPlaceholderLabel()\"\n [search]=\"search()\"\n [sort]=\"sort()\"\n [value]=\"value()\"\n [showLoadingIndicator]=\"showLoadingIndicator()\"\n >\n <ng-content select=\"[empty-state]\" empty-state />\n </si-list-widget-body>\n\n @let linkValue = link();\n @if (linkValue) {\n <div class=\"card-footer\" footer>\n @if (!linkValue.action) {\n <a [siLink]=\"linkValue\">\n {{ linkValue.title | translate }}\n <si-icon class=\"link-icon link-end flip-rtl\" [icon]=\"icons.elementRight2\" />\n </a>\n } @else {\n <button type=\"button\" class=\"btn btn-link\" [siLink]=\"linkValue\"\n >{{ linkValue.title | translate }}\n </button>\n }\n </div>\n }\n</si-card>\n", dependencies: [{ kind: "component", type: SiCardComponent, selector: "si-card", inputs: ["primaryActions", "secondaryActions", "actionParam", "actionBarViewType", "actionBarTitle"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "component", type: SiListWidgetBodyComponent, selector: "si-list-widget-body", inputs: ["link", "searchPlaceholderLabel", "sort", "search", "compareFn", "filterFn", "numberOfLinks", "searchText"], outputs: ["searchTextChange"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
863
865
  }
864
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiListWidgetComponent, decorators: [{
866
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiListWidgetComponent, decorators: [{
865
867
  type: Component,
866
868
  args: [{ selector: 'si-list-widget', imports: [
867
- NgClass,
868
869
  SiCardComponent,
869
870
  SiIconComponent,
870
871
  SiLinkDirective,
871
872
  SiListWidgetBodyComponent,
872
873
  SiTranslatePipe
873
- ], host: { class: 'si-list-widget' }, template: "<si-card\n class=\"h-100\"\n actionBarViewType=\"expanded\"\n [ngClass]=\"accentClass()\"\n [heading]=\"heading()\"\n [primaryActions]=\"sort() ? sortAction() : []\"\n>\n <si-list-widget-body\n body\n [compareFn]=\"compareFn()\"\n [filterFn]=\"filterFn()\"\n [numberOfLinks]=\"numberOfLinks()\"\n [searchPlaceholderLabel]=\"searchPlaceholderLabel()\"\n [search]=\"search()\"\n [sort]=\"sort()\"\n [value]=\"value()\"\n [showLoadingIndicator]=\"showLoadingIndicator()\"\n >\n <ng-content select=\"[empty-state]\" empty-state />\n </si-list-widget-body>\n\n @let linkValue = link();\n @if (linkValue) {\n <div class=\"card-footer\" footer>\n @if (!linkValue.action) {\n <a [siLink]=\"linkValue\">\n {{ linkValue.title | translate }}\n <si-icon class=\"link-icon link-end flip-rtl\" [icon]=\"icons.elementRight2\" />\n </a>\n } @else {\n <button type=\"button\" class=\"btn btn-link\" [siLink]=\"linkValue\"\n >{{ linkValue.title | translate }}\n </button>\n }\n </div>\n }\n</si-card>\n" }]
874
- }] });
874
+ ], host: { class: 'si-list-widget' }, template: "<si-card\n actionBarViewType=\"expanded\"\n class=\"h-100\"\n [class]=\"accentClass()\"\n [heading]=\"heading()\"\n [primaryActions]=\"sort() ? sortAction() : []\"\n>\n <si-list-widget-body\n body\n [compareFn]=\"compareFn()\"\n [filterFn]=\"filterFn()\"\n [numberOfLinks]=\"numberOfLinks()\"\n [searchPlaceholderLabel]=\"searchPlaceholderLabel()\"\n [search]=\"search()\"\n [sort]=\"sort()\"\n [value]=\"value()\"\n [showLoadingIndicator]=\"showLoadingIndicator()\"\n >\n <ng-content select=\"[empty-state]\" empty-state />\n </si-list-widget-body>\n\n @let linkValue = link();\n @if (linkValue) {\n <div class=\"card-footer\" footer>\n @if (!linkValue.action) {\n <a [siLink]=\"linkValue\">\n {{ linkValue.title | translate }}\n <si-icon class=\"link-icon link-end flip-rtl\" [icon]=\"icons.elementRight2\" />\n </a>\n } @else {\n <button type=\"button\" class=\"btn btn-link\" [siLink]=\"linkValue\"\n >{{ linkValue.title | translate }}\n </button>\n }\n </div>\n }\n</si-card>\n" }]
875
+ }], propDecorators: { heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }], searchPlaceholderLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholderLabel", required: false }] }], sortAscendingLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortAscendingLabel", required: false }] }], sortDescendingLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortDescendingLabel", required: false }] }], sort: [{ type: i0.Input, args: [{ isSignal: true, alias: "sort", required: false }] }, { type: i0.Output, args: ["sortChange"] }], search: [{ type: i0.Input, args: [{ isSignal: true, alias: "search", required: false }] }], compareFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "compareFn", required: false }] }], filterFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterFn", required: false }] }], numberOfLinks: [{ type: i0.Input, args: [{ isSignal: true, alias: "numberOfLinks", required: false }] }], accentLine: [{ type: i0.Input, args: [{ isSignal: true, alias: "accentLine", required: false }] }] } });
875
876
 
876
877
  /**
877
878
  * Copyright (c) Siemens 2016 - 2025
@@ -886,29 +887,21 @@ class SiTimelineWidgetItemComponent extends SiWidgetBaseComponent {
886
887
  *
887
888
  * @defaultValue `true`
888
889
  */
889
- showDescription = input(true);
890
+ showDescription = input(true, ...(ngDevMode ? [{ debugName: "showDescription" }] : []));
890
891
  /**
891
892
  * Aria label text for actions button dropdown.
892
893
  */
893
894
  ariaLabelDropdown = t(() => $localize `:@@SI_DASHBOARD.EXPAND_WIDGET_ACTIONS:Expand actions`);
894
895
  activatedRoute = inject(ActivatedRoute, { optional: true });
895
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiTimelineWidgetItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
896
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiTimelineWidgetItemComponent, isStandalone: true, selector: "si-timeline-widget-item", inputs: { showDescription: { classPropertyName: "showDescription", publicName: "showDescription", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "listitem" } }, usesInheritance: true, ngImport: i0, template: "@let valueObject = value();\n@if (!showLoadingIndicator() && valueObject) {\n <div class=\"d-flex flex-row gap-4\" [class.pe-4]=\"!valueObject.action\">\n <div class=\"d-flex flex-column align-items-center gap-1 pt-4\">\n <span class=\"icon icon-stack\">\n <si-icon [class]=\"valueObject.iconColor\" [icon]=\"valueObject.icon\" />\n @if (valueObject.stackedIcon) {\n <si-icon [class]=\"valueObject.stackedIconColor\" [icon]=\"valueObject.stackedIcon\" />\n }\n </span>\n @if (valueObject.iconAlt) {\n <span class=\"visually-hidden\">{{ valueObject.iconAlt | translate }}</span>\n }\n <div class=\"si-timeline-widget-item-lower-line\"></div>\n </div>\n <div class=\"d-flex flex-column gap-1 py-4 flex-grow-1\">\n <span class=\"si-caption text-secondary\">{{ valueObject.timeStamp | translate }}</span>\n <span class=\"si-h5\">{{ valueObject.title | translate }}</span>\n @if (valueObject.description) {\n <span class=\"si-body text-secondary\">{{ valueObject.description | translate }}</span>\n }\n </div>\n @if (valueObject.action) {\n @let action = valueObject.action;\n <div class=\"si-timeline-widget-item-action align-self-center\">\n @if (action.type === 'action') {\n <button\n type=\"button\"\n class=\"d-flex btn\"\n [ngClass]=\"action.customClass ?? 'btn-tertiary'\"\n [class.btn-circle]=\"action.iconOnly\"\n [class.btn-sm]=\"action.iconOnly\"\n (click)=\"action.action(action)\"\n >\n @if (action.icon) {\n <si-icon class=\"icon\" [icon]=\"action.icon\" />\n }\n <span [class.visually-hidden]=\"action.iconOnly\">\n {{ action.label | translate }}\n </span>\n </button>\n } @else if (action.type === 'router-link') {\n <a\n class=\"d-flex btn btn-ghost\"\n [routerLink]=\"action.routerLink\"\n [queryParams]=\"action.extras?.queryParams\"\n [queryParamsHandling]=\"action.extras?.queryParamsHandling\"\n [fragment]=\"action.extras?.fragment\"\n [state]=\"action.extras?.state\"\n [relativeTo]=\"action.extras?.relativeTo ?? activatedRoute\"\n [preserveFragment]=\"action.extras?.preserveFragment\"\n [skipLocationChange]=\"action.extras?.skipLocationChange\"\n [replaceUrl]=\"action.extras?.replaceUrl\"\n [attr.aria-label]=\"action.label | translate\"\n [class.btn-circle]=\"action.iconOnly\"\n [class.btn-sm]=\"action.iconOnly\"\n >\n @if (action.icon) {\n <si-icon class=\"icon\" [icon]=\"action.icon\" />\n }\n <span [class.visually-hidden]=\"action.iconOnly\">\n {{ action.label | translate }}\n </span></a\n >\n } @else if (action.type === 'link') {\n <a\n class=\"d-flex btn btn-ghost\"\n [href]=\"action.href\"\n [target]=\"action.target\"\n [attr.aria-label]=\"action.label | translate\"\n [class.btn-circle]=\"action.iconOnly\"\n [class.btn-sm]=\"action.iconOnly\"\n >\n @if (action.icon) {\n <si-icon class=\"icon\" [icon]=\"action.icon\" />\n }\n <span [class.visually-hidden]=\"action.iconOnly\">\n {{ action.label | translate }}\n </span></a\n >\n } @else if (action.type === 'menu') {\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-tertiary element-options-vertical\"\n [attr.aria-label]=\"ariaLabelDropdown | translate\"\n [cdkMenuTriggerFor]=\"actionMenu\"\n ></button>\n\n <ng-template #actionMenu>\n <si-menu-factory [items]=\"action.menuItems\" />\n </ng-template>\n }\n </div>\n }\n </div>\n} @else {\n <div class=\"d-flex flex-row\">\n <div class=\"d-flex flex-column align-items-center gap-1 pt-4 pe-4\">\n <div class=\"p-5 si-skeleton\"></div>\n </div>\n <div class=\"d-flex flex-column flex-grow-1 gap-1 py-4\">\n <span class=\"si-link-widget-skeleton\"></span>\n <span class=\"si-link-widget-skeleton\" [class.w-50]=\"!showDescription()\"></span>\n @if (showDescription()) {\n <span class=\"si-link-widget-skeleton w-50\"></span>\n }\n </div>\n </div>\n}\n", dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: SiMenuModule }, { kind: "component", type: i1$2.SiMenuFactoryComponent, selector: "si-menu-factory", inputs: ["items", "actionParam"] }, { kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }] });
896
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiTimelineWidgetItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
897
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiTimelineWidgetItemComponent, isStandalone: true, selector: "si-timeline-widget-item", inputs: { showDescription: { classPropertyName: "showDescription", publicName: "showDescription", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "listitem" } }, usesInheritance: true, ngImport: i0, template: "@let valueObject = value();\n@if (!showLoadingIndicator() && valueObject) {\n <div class=\"d-flex flex-row gap-4\" [class.pe-4]=\"!valueObject.action\">\n <div class=\"d-flex flex-column align-items-center gap-1 pt-4\">\n <span class=\"icon icon-stack\">\n <si-icon [class]=\"valueObject.iconColor\" [icon]=\"valueObject.icon\" />\n @if (valueObject.stackedIcon) {\n <si-icon [class]=\"valueObject.stackedIconColor\" [icon]=\"valueObject.stackedIcon\" />\n }\n </span>\n @if (valueObject.iconAlt) {\n <span class=\"visually-hidden\">{{ valueObject.iconAlt | translate }}</span>\n }\n <div class=\"si-timeline-widget-item-lower-line\"></div>\n </div>\n <div class=\"d-flex flex-column gap-1 py-4 flex-grow-1\">\n <span class=\"si-caption text-secondary\">{{ valueObject.timeStamp | translate }}</span>\n <span class=\"si-h5\">{{ valueObject.title | translate }}</span>\n @if (valueObject.description) {\n <span class=\"si-body text-secondary\">{{ valueObject.description | translate }}</span>\n }\n </div>\n @if (valueObject.action) {\n @let action = valueObject.action;\n <div class=\"si-timeline-widget-item-action align-self-center\">\n @if (action.type === 'action') {\n <button\n type=\"button\"\n class=\"d-flex btn\"\n [class]=\"action.customClass ?? 'btn-tertiary'\"\n [class.btn-icon]=\"action.iconOnly\"\n (click)=\"action.action(action)\"\n >\n @if (action.icon) {\n <si-icon class=\"icon\" [icon]=\"action.icon\" />\n }\n <span [class.visually-hidden]=\"action.iconOnly\">\n {{ action.label | translate }}\n </span>\n </button>\n } @else if (action.type === 'router-link') {\n <a\n class=\"d-flex btn btn-ghost\"\n [routerLink]=\"action.routerLink\"\n [queryParams]=\"action.extras?.queryParams\"\n [queryParamsHandling]=\"action.extras?.queryParamsHandling\"\n [fragment]=\"action.extras?.fragment\"\n [state]=\"action.extras?.state\"\n [relativeTo]=\"action.extras?.relativeTo ?? activatedRoute\"\n [preserveFragment]=\"action.extras?.preserveFragment\"\n [skipLocationChange]=\"action.extras?.skipLocationChange\"\n [replaceUrl]=\"action.extras?.replaceUrl\"\n [attr.aria-label]=\"action.label | translate\"\n [class.btn-icon]=\"action.iconOnly\"\n >\n @if (action.icon) {\n <si-icon class=\"icon\" [icon]=\"action.icon\" />\n }\n <span [class.visually-hidden]=\"action.iconOnly\">\n {{ action.label | translate }}\n </span></a\n >\n } @else if (action.type === 'link') {\n <a\n class=\"d-flex btn btn-ghost\"\n [href]=\"action.href\"\n [target]=\"action.target\"\n [attr.aria-label]=\"action.label | translate\"\n [class.btn-icon]=\"action.iconOnly\"\n >\n @if (action.icon) {\n <si-icon class=\"icon\" [icon]=\"action.icon\" />\n }\n <span [class.visually-hidden]=\"action.iconOnly\">\n {{ action.label | translate }}\n </span></a\n >\n } @else if (action.type === 'menu') {\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary element-options-vertical\"\n [attr.aria-label]=\"ariaLabelDropdown | translate\"\n [cdkMenuTriggerFor]=\"actionMenu\"\n ></button>\n\n <ng-template #actionMenu>\n <si-menu-factory [items]=\"action.menuItems\" />\n </ng-template>\n }\n </div>\n }\n </div>\n} @else {\n <div class=\"d-flex flex-row\">\n <div class=\"d-flex flex-column align-items-center gap-1 pt-4 pe-4\">\n <div class=\"p-5 si-skeleton\"></div>\n </div>\n <div class=\"d-flex flex-column flex-grow-1 gap-1 py-4\">\n <span class=\"si-link-widget-skeleton\"></span>\n <span class=\"si-link-widget-skeleton\" [class.w-50]=\"!showDescription()\"></span>\n @if (showDescription()) {\n <span class=\"si-link-widget-skeleton w-50\"></span>\n }\n </div>\n </div>\n}\n", dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: SiMenuModule }, { kind: "component", type: i1$2.SiMenuFactoryComponent, selector: "si-menu-factory", inputs: ["items", "actionParam"] }, { kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData", "cdkMenuTriggerTransformOriginOn"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
897
898
  }
898
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiTimelineWidgetItemComponent, decorators: [{
899
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiTimelineWidgetItemComponent, decorators: [{
899
900
  type: Component,
900
- args: [{ selector: 'si-timeline-widget-item', imports: [
901
- SiIconComponent,
902
- SiTranslatePipe,
903
- NgClass,
904
- A11yModule,
905
- RouterLink,
906
- SiMenuModule,
907
- CdkMenuTrigger
908
- ], host: {
901
+ args: [{ selector: 'si-timeline-widget-item', imports: [SiIconComponent, SiTranslatePipe, A11yModule, RouterLink, SiMenuModule, CdkMenuTrigger], host: {
909
902
  role: 'listitem'
910
- }, template: "@let valueObject = value();\n@if (!showLoadingIndicator() && valueObject) {\n <div class=\"d-flex flex-row gap-4\" [class.pe-4]=\"!valueObject.action\">\n <div class=\"d-flex flex-column align-items-center gap-1 pt-4\">\n <span class=\"icon icon-stack\">\n <si-icon [class]=\"valueObject.iconColor\" [icon]=\"valueObject.icon\" />\n @if (valueObject.stackedIcon) {\n <si-icon [class]=\"valueObject.stackedIconColor\" [icon]=\"valueObject.stackedIcon\" />\n }\n </span>\n @if (valueObject.iconAlt) {\n <span class=\"visually-hidden\">{{ valueObject.iconAlt | translate }}</span>\n }\n <div class=\"si-timeline-widget-item-lower-line\"></div>\n </div>\n <div class=\"d-flex flex-column gap-1 py-4 flex-grow-1\">\n <span class=\"si-caption text-secondary\">{{ valueObject.timeStamp | translate }}</span>\n <span class=\"si-h5\">{{ valueObject.title | translate }}</span>\n @if (valueObject.description) {\n <span class=\"si-body text-secondary\">{{ valueObject.description | translate }}</span>\n }\n </div>\n @if (valueObject.action) {\n @let action = valueObject.action;\n <div class=\"si-timeline-widget-item-action align-self-center\">\n @if (action.type === 'action') {\n <button\n type=\"button\"\n class=\"d-flex btn\"\n [ngClass]=\"action.customClass ?? 'btn-tertiary'\"\n [class.btn-circle]=\"action.iconOnly\"\n [class.btn-sm]=\"action.iconOnly\"\n (click)=\"action.action(action)\"\n >\n @if (action.icon) {\n <si-icon class=\"icon\" [icon]=\"action.icon\" />\n }\n <span [class.visually-hidden]=\"action.iconOnly\">\n {{ action.label | translate }}\n </span>\n </button>\n } @else if (action.type === 'router-link') {\n <a\n class=\"d-flex btn btn-ghost\"\n [routerLink]=\"action.routerLink\"\n [queryParams]=\"action.extras?.queryParams\"\n [queryParamsHandling]=\"action.extras?.queryParamsHandling\"\n [fragment]=\"action.extras?.fragment\"\n [state]=\"action.extras?.state\"\n [relativeTo]=\"action.extras?.relativeTo ?? activatedRoute\"\n [preserveFragment]=\"action.extras?.preserveFragment\"\n [skipLocationChange]=\"action.extras?.skipLocationChange\"\n [replaceUrl]=\"action.extras?.replaceUrl\"\n [attr.aria-label]=\"action.label | translate\"\n [class.btn-circle]=\"action.iconOnly\"\n [class.btn-sm]=\"action.iconOnly\"\n >\n @if (action.icon) {\n <si-icon class=\"icon\" [icon]=\"action.icon\" />\n }\n <span [class.visually-hidden]=\"action.iconOnly\">\n {{ action.label | translate }}\n </span></a\n >\n } @else if (action.type === 'link') {\n <a\n class=\"d-flex btn btn-ghost\"\n [href]=\"action.href\"\n [target]=\"action.target\"\n [attr.aria-label]=\"action.label | translate\"\n [class.btn-circle]=\"action.iconOnly\"\n [class.btn-sm]=\"action.iconOnly\"\n >\n @if (action.icon) {\n <si-icon class=\"icon\" [icon]=\"action.icon\" />\n }\n <span [class.visually-hidden]=\"action.iconOnly\">\n {{ action.label | translate }}\n </span></a\n >\n } @else if (action.type === 'menu') {\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-tertiary element-options-vertical\"\n [attr.aria-label]=\"ariaLabelDropdown | translate\"\n [cdkMenuTriggerFor]=\"actionMenu\"\n ></button>\n\n <ng-template #actionMenu>\n <si-menu-factory [items]=\"action.menuItems\" />\n </ng-template>\n }\n </div>\n }\n </div>\n} @else {\n <div class=\"d-flex flex-row\">\n <div class=\"d-flex flex-column align-items-center gap-1 pt-4 pe-4\">\n <div class=\"p-5 si-skeleton\"></div>\n </div>\n <div class=\"d-flex flex-column flex-grow-1 gap-1 py-4\">\n <span class=\"si-link-widget-skeleton\"></span>\n <span class=\"si-link-widget-skeleton\" [class.w-50]=\"!showDescription()\"></span>\n @if (showDescription()) {\n <span class=\"si-link-widget-skeleton w-50\"></span>\n }\n </div>\n </div>\n}\n" }]
911
- }] });
903
+ }, template: "@let valueObject = value();\n@if (!showLoadingIndicator() && valueObject) {\n <div class=\"d-flex flex-row gap-4\" [class.pe-4]=\"!valueObject.action\">\n <div class=\"d-flex flex-column align-items-center gap-1 pt-4\">\n <span class=\"icon icon-stack\">\n <si-icon [class]=\"valueObject.iconColor\" [icon]=\"valueObject.icon\" />\n @if (valueObject.stackedIcon) {\n <si-icon [class]=\"valueObject.stackedIconColor\" [icon]=\"valueObject.stackedIcon\" />\n }\n </span>\n @if (valueObject.iconAlt) {\n <span class=\"visually-hidden\">{{ valueObject.iconAlt | translate }}</span>\n }\n <div class=\"si-timeline-widget-item-lower-line\"></div>\n </div>\n <div class=\"d-flex flex-column gap-1 py-4 flex-grow-1\">\n <span class=\"si-caption text-secondary\">{{ valueObject.timeStamp | translate }}</span>\n <span class=\"si-h5\">{{ valueObject.title | translate }}</span>\n @if (valueObject.description) {\n <span class=\"si-body text-secondary\">{{ valueObject.description | translate }}</span>\n }\n </div>\n @if (valueObject.action) {\n @let action = valueObject.action;\n <div class=\"si-timeline-widget-item-action align-self-center\">\n @if (action.type === 'action') {\n <button\n type=\"button\"\n class=\"d-flex btn\"\n [class]=\"action.customClass ?? 'btn-tertiary'\"\n [class.btn-icon]=\"action.iconOnly\"\n (click)=\"action.action(action)\"\n >\n @if (action.icon) {\n <si-icon class=\"icon\" [icon]=\"action.icon\" />\n }\n <span [class.visually-hidden]=\"action.iconOnly\">\n {{ action.label | translate }}\n </span>\n </button>\n } @else if (action.type === 'router-link') {\n <a\n class=\"d-flex btn btn-ghost\"\n [routerLink]=\"action.routerLink\"\n [queryParams]=\"action.extras?.queryParams\"\n [queryParamsHandling]=\"action.extras?.queryParamsHandling\"\n [fragment]=\"action.extras?.fragment\"\n [state]=\"action.extras?.state\"\n [relativeTo]=\"action.extras?.relativeTo ?? activatedRoute\"\n [preserveFragment]=\"action.extras?.preserveFragment\"\n [skipLocationChange]=\"action.extras?.skipLocationChange\"\n [replaceUrl]=\"action.extras?.replaceUrl\"\n [attr.aria-label]=\"action.label | translate\"\n [class.btn-icon]=\"action.iconOnly\"\n >\n @if (action.icon) {\n <si-icon class=\"icon\" [icon]=\"action.icon\" />\n }\n <span [class.visually-hidden]=\"action.iconOnly\">\n {{ action.label | translate }}\n </span></a\n >\n } @else if (action.type === 'link') {\n <a\n class=\"d-flex btn btn-ghost\"\n [href]=\"action.href\"\n [target]=\"action.target\"\n [attr.aria-label]=\"action.label | translate\"\n [class.btn-icon]=\"action.iconOnly\"\n >\n @if (action.icon) {\n <si-icon class=\"icon\" [icon]=\"action.icon\" />\n }\n <span [class.visually-hidden]=\"action.iconOnly\">\n {{ action.label | translate }}\n </span></a\n >\n } @else if (action.type === 'menu') {\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary element-options-vertical\"\n [attr.aria-label]=\"ariaLabelDropdown | translate\"\n [cdkMenuTriggerFor]=\"actionMenu\"\n ></button>\n\n <ng-template #actionMenu>\n <si-menu-factory [items]=\"action.menuItems\" />\n </ng-template>\n }\n </div>\n }\n </div>\n} @else {\n <div class=\"d-flex flex-row\">\n <div class=\"d-flex flex-column align-items-center gap-1 pt-4 pe-4\">\n <div class=\"p-5 si-skeleton\"></div>\n </div>\n <div class=\"d-flex flex-column flex-grow-1 gap-1 py-4\">\n <span class=\"si-link-widget-skeleton\"></span>\n <span class=\"si-link-widget-skeleton\" [class.w-50]=\"!showDescription()\"></span>\n @if (showDescription()) {\n <span class=\"si-link-widget-skeleton w-50\"></span>\n }\n </div>\n </div>\n}\n" }]
904
+ }], propDecorators: { showDescription: [{ type: i0.Input, args: [{ isSignal: true, alias: "showDescription", required: false }] }] } });
912
905
 
913
906
  /**
914
907
  * Copyright (c) Siemens 2016 - 2025
@@ -920,24 +913,24 @@ class SiTimelineWidgetBodyComponent extends SiWidgetBaseComponent {
920
913
  *
921
914
  * @defaultValue 4
922
915
  */
923
- numberOfItems = input(4);
916
+ numberOfItems = input(4, ...(ngDevMode ? [{ debugName: "numberOfItems" }] : []));
924
917
  /**
925
918
  * Whether to show or hide the description row during skeleton progress indication.
926
919
  *
927
920
  * @defaultValue `true`
928
921
  */
929
- showDescription = input(true);
922
+ showDescription = input(true, ...(ngDevMode ? [{ debugName: "showDescription" }] : []));
930
923
  /** Used to display the defined number of ghost items */
931
924
  ghosts = computed(() => {
932
925
  return new Array(this.numberOfItems() ?? 4);
933
- });
934
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiTimelineWidgetBodyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
935
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiTimelineWidgetBodyComponent, isStandalone: true, selector: "si-timeline-widget-body", inputs: { numberOfItems: { classPropertyName: "numberOfItems", publicName: "numberOfItems", isSignal: true, isRequired: false, transformFunction: null }, showDescription: { classPropertyName: "showDescription", publicName: "showDescription", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "@let valueObject = value();\n<div\n class=\"focus-inside\"\n tabindex=\"0\"\n [attr.role]=\"\n (!showLoadingIndicator() && valueObject && valueObject.length > 0) || showLoadingIndicator()\n ? 'list'\n : null\n \"\n>\n @if (!showLoadingIndicator() && valueObject) {\n @if (valueObject && valueObject.length > 0) {\n @for (item of valueObject; track $index) {\n <si-timeline-widget-item [value]=\"item\" />\n }\n } @else {\n <ng-content select=\"[empty-state]\" />\n }\n } @else {\n @for (some of ghosts(); track $index) {\n <si-timeline-widget-item [value]=\"undefined\" [showDescription]=\"showDescription()\" />\n }\n }\n</div>\n", styles: [":host{background-color:var(--element-base-1);flex:auto;overflow:hidden}:host si-timeline-widget-item:last-child ::ng-deep .si-timeline-widget-item-lower-line{display:none}div{block-size:100%;padding-inline:16px 8px;overflow-y:auto;overflow-x:hidden}\n"], dependencies: [{ kind: "component", type: SiTimelineWidgetItemComponent, selector: "si-timeline-widget-item", inputs: ["showDescription"] }] });
926
+ }, ...(ngDevMode ? [{ debugName: "ghosts" }] : []));
927
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiTimelineWidgetBodyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
928
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiTimelineWidgetBodyComponent, isStandalone: true, selector: "si-timeline-widget-body", inputs: { numberOfItems: { classPropertyName: "numberOfItems", publicName: "numberOfItems", isSignal: true, isRequired: false, transformFunction: null }, showDescription: { classPropertyName: "showDescription", publicName: "showDescription", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "@let valueObject = value();\n<div\n class=\"focus-inside\"\n tabindex=\"0\"\n [attr.role]=\"\n (!showLoadingIndicator() && valueObject && valueObject.length > 0) || showLoadingIndicator()\n ? 'list'\n : null\n \"\n>\n @if (!showLoadingIndicator() && valueObject) {\n @if (valueObject && valueObject.length > 0) {\n @for (item of valueObject; track $index) {\n <si-timeline-widget-item [value]=\"item\" />\n }\n } @else {\n <ng-content select=\"[empty-state]\" />\n }\n } @else {\n @for (some of ghosts(); track $index) {\n <si-timeline-widget-item [value]=\"undefined\" [showDescription]=\"showDescription()\" />\n }\n }\n</div>\n", styles: [":host{background-color:var(--element-base-1);flex:auto;overflow:hidden}:host si-timeline-widget-item:last-child ::ng-deep .si-timeline-widget-item-lower-line{display:none}div{block-size:100%;padding-inline:16px 8px;overflow-y:auto;overflow-x:hidden}\n"], dependencies: [{ kind: "component", type: SiTimelineWidgetItemComponent, selector: "si-timeline-widget-item", inputs: ["showDescription"] }] });
936
929
  }
937
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiTimelineWidgetBodyComponent, decorators: [{
930
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiTimelineWidgetBodyComponent, decorators: [{
938
931
  type: Component,
939
932
  args: [{ selector: 'si-timeline-widget-body', imports: [SiTimelineWidgetItemComponent], template: "@let valueObject = value();\n<div\n class=\"focus-inside\"\n tabindex=\"0\"\n [attr.role]=\"\n (!showLoadingIndicator() && valueObject && valueObject.length > 0) || showLoadingIndicator()\n ? 'list'\n : null\n \"\n>\n @if (!showLoadingIndicator() && valueObject) {\n @if (valueObject && valueObject.length > 0) {\n @for (item of valueObject; track $index) {\n <si-timeline-widget-item [value]=\"item\" />\n }\n } @else {\n <ng-content select=\"[empty-state]\" />\n }\n } @else {\n @for (some of ghosts(); track $index) {\n <si-timeline-widget-item [value]=\"undefined\" [showDescription]=\"showDescription()\" />\n }\n }\n</div>\n", styles: [":host{background-color:var(--element-base-1);flex:auto;overflow:hidden}:host si-timeline-widget-item:last-child ::ng-deep .si-timeline-widget-item-lower-line{display:none}div{block-size:100%;padding-inline:16px 8px;overflow-y:auto;overflow-x:hidden}\n"] }]
940
- }] });
933
+ }], propDecorators: { numberOfItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "numberOfItems", required: false }] }], showDescription: [{ type: i0.Input, args: [{ isSignal: true, alias: "showDescription", required: false }] }] } });
941
934
 
942
935
  /**
943
936
  * Copyright (c) Siemens 2016 - 2025
@@ -947,60 +940,59 @@ class SiTimelineWidgetComponent extends SiWidgetBaseComponent {
947
940
  /**
948
941
  * Timeline widget header text.
949
942
  */
950
- heading = input();
943
+ heading = input(...(ngDevMode ? [undefined, { debugName: "heading" }] : []));
951
944
  /**
952
945
  * Input list of primary action items. Supports up to **4** actions and omits additional ones.
953
946
  *
954
947
  * @defaultValue []
955
948
  */
956
- primaryActions = input([]);
949
+ primaryActions = input([], ...(ngDevMode ? [{ debugName: "primaryActions" }] : []));
957
950
  /**
958
951
  * Input list of secondary action items.
959
952
  *
960
953
  * @defaultValue []
961
954
  */
962
- secondaryActions = input([]);
955
+ secondaryActions = input([], ...(ngDevMode ? [{ debugName: "secondaryActions" }] : []));
963
956
  /**
964
957
  * Link that leads the user to more information
965
958
  * or triggers and action. The `link.title` is displayed.
966
959
  * The title will be translated.
967
960
  */
968
- link = input();
961
+ link = input(...(ngDevMode ? [undefined, { debugName: "link" }] : []));
969
962
  /**
970
963
  * Number of skeleton progress indication items.
971
964
  *
972
965
  * @defaultValue 4
973
966
  */
974
- numberOfItems = input(4);
967
+ numberOfItems = input(4, ...(ngDevMode ? [{ debugName: "numberOfItems" }] : []));
975
968
  /**
976
969
  * Whether to show or hide the description row during skeleton progress indication.
977
970
  *
978
971
  * @defaultValue `true`
979
972
  */
980
- showDescription = input(true);
973
+ showDescription = input(true, ...(ngDevMode ? [{ debugName: "showDescription" }] : []));
981
974
  /**
982
975
  * Optional accent line
983
976
  */
984
- accentLine = input();
977
+ accentLine = input(...(ngDevMode ? [undefined, { debugName: "accentLine" }] : []));
985
978
  accentClass = computed(() => {
986
979
  const accentLine = this.accentLine();
987
980
  return accentLine ? 'accent-' + accentLine : '';
988
- });
981
+ }, ...(ngDevMode ? [{ debugName: "accentClass" }] : []));
989
982
  icons = addIcons({ elementRight2 });
990
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiTimelineWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
991
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiTimelineWidgetComponent, isStandalone: true, selector: "si-timeline-widget", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, primaryActions: { classPropertyName: "primaryActions", publicName: "primaryActions", isSignal: true, isRequired: false, transformFunction: null }, secondaryActions: { classPropertyName: "secondaryActions", publicName: "secondaryActions", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, numberOfItems: { classPropertyName: "numberOfItems", publicName: "numberOfItems", isSignal: true, isRequired: false, transformFunction: null }, showDescription: { classPropertyName: "showDescription", publicName: "showDescription", isSignal: true, isRequired: false, transformFunction: null }, accentLine: { classPropertyName: "accentLine", publicName: "accentLine", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<si-card\n class=\"h-100\"\n [ngClass]=\"accentClass()\"\n [heading]=\"heading()\"\n [primaryActions]=\"primaryActions()\"\n [secondaryActions]=\"secondaryActions()\"\n>\n <si-timeline-widget-body\n body\n [value]=\"value()\"\n [showDescription]=\"showDescription()\"\n [numberOfItems]=\"numberOfItems()\"\n [class.pb-6]=\"!link()\"\n [showLoadingIndicator]=\"showLoadingIndicator()\"\n >\n <ng-content select=\"[empty-state]\" empty-state />\n </si-timeline-widget-body>\n @let linkValue = link();\n @if (linkValue) {\n <div class=\"card-footer\" footer>\n @if (!linkValue.action) {\n <a [siLink]=\"linkValue\">\n {{ linkValue.title | translate }}\n <si-icon class=\"link-icon link-end flip-rtl\" [icon]=\"icons.elementRight2\" />\n </a>\n } @else {\n <button type=\"button\" class=\"btn btn-link\" [siLink]=\"linkValue\">{{\n linkValue.title | translate\n }}</button>\n }\n </div>\n }\n</si-card>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "component", type: SiCardComponent, selector: "si-card", inputs: ["primaryActions", "secondaryActions", "actionParam", "actionBarViewType", "actionBarTitle"] }, { kind: "component", type: SiTimelineWidgetBodyComponent, selector: "si-timeline-widget-body", inputs: ["numberOfItems", "showDescription"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }] });
983
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiTimelineWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
984
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiTimelineWidgetComponent, isStandalone: true, selector: "si-timeline-widget", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, primaryActions: { classPropertyName: "primaryActions", publicName: "primaryActions", isSignal: true, isRequired: false, transformFunction: null }, secondaryActions: { classPropertyName: "secondaryActions", publicName: "secondaryActions", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, numberOfItems: { classPropertyName: "numberOfItems", publicName: "numberOfItems", isSignal: true, isRequired: false, transformFunction: null }, showDescription: { classPropertyName: "showDescription", publicName: "showDescription", isSignal: true, isRequired: false, transformFunction: null }, accentLine: { classPropertyName: "accentLine", publicName: "accentLine", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<si-card\n class=\"h-100\"\n [class]=\"accentClass()\"\n [heading]=\"heading()\"\n [primaryActions]=\"primaryActions()\"\n [secondaryActions]=\"secondaryActions()\"\n>\n <si-timeline-widget-body\n body\n [value]=\"value()\"\n [showDescription]=\"showDescription()\"\n [numberOfItems]=\"numberOfItems()\"\n [class.pb-6]=\"!link()\"\n [showLoadingIndicator]=\"showLoadingIndicator()\"\n >\n <ng-content select=\"[empty-state]\" empty-state />\n </si-timeline-widget-body>\n @let linkValue = link();\n @if (linkValue) {\n <div class=\"card-footer\" footer>\n @if (!linkValue.action) {\n <a [siLink]=\"linkValue\">\n {{ linkValue.title | translate }}\n <si-icon class=\"link-icon link-end flip-rtl\" [icon]=\"icons.elementRight2\" />\n </a>\n } @else {\n <button type=\"button\" class=\"btn btn-link\" [siLink]=\"linkValue\">{{\n linkValue.title | translate\n }}</button>\n }\n </div>\n }\n</si-card>\n", dependencies: [{ kind: "directive", type: SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "component", type: SiCardComponent, selector: "si-card", inputs: ["primaryActions", "secondaryActions", "actionParam", "actionBarViewType", "actionBarTitle"] }, { kind: "component", type: SiTimelineWidgetBodyComponent, selector: "si-timeline-widget-body", inputs: ["numberOfItems", "showDescription"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
992
985
  }
993
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiTimelineWidgetComponent, decorators: [{
986
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiTimelineWidgetComponent, decorators: [{
994
987
  type: Component,
995
988
  args: [{ selector: 'si-timeline-widget', imports: [
996
- NgClass,
997
989
  SiLinkDirective,
998
990
  SiCardComponent,
999
991
  SiTimelineWidgetBodyComponent,
1000
992
  SiTranslatePipe,
1001
993
  SiIconComponent
1002
- ], template: "<si-card\n class=\"h-100\"\n [ngClass]=\"accentClass()\"\n [heading]=\"heading()\"\n [primaryActions]=\"primaryActions()\"\n [secondaryActions]=\"secondaryActions()\"\n>\n <si-timeline-widget-body\n body\n [value]=\"value()\"\n [showDescription]=\"showDescription()\"\n [numberOfItems]=\"numberOfItems()\"\n [class.pb-6]=\"!link()\"\n [showLoadingIndicator]=\"showLoadingIndicator()\"\n >\n <ng-content select=\"[empty-state]\" empty-state />\n </si-timeline-widget-body>\n @let linkValue = link();\n @if (linkValue) {\n <div class=\"card-footer\" footer>\n @if (!linkValue.action) {\n <a [siLink]=\"linkValue\">\n {{ linkValue.title | translate }}\n <si-icon class=\"link-icon link-end flip-rtl\" [icon]=\"icons.elementRight2\" />\n </a>\n } @else {\n <button type=\"button\" class=\"btn btn-link\" [siLink]=\"linkValue\">{{\n linkValue.title | translate\n }}</button>\n }\n </div>\n }\n</si-card>\n" }]
1003
- }] });
994
+ ], template: "<si-card\n class=\"h-100\"\n [class]=\"accentClass()\"\n [heading]=\"heading()\"\n [primaryActions]=\"primaryActions()\"\n [secondaryActions]=\"secondaryActions()\"\n>\n <si-timeline-widget-body\n body\n [value]=\"value()\"\n [showDescription]=\"showDescription()\"\n [numberOfItems]=\"numberOfItems()\"\n [class.pb-6]=\"!link()\"\n [showLoadingIndicator]=\"showLoadingIndicator()\"\n >\n <ng-content select=\"[empty-state]\" empty-state />\n </si-timeline-widget-body>\n @let linkValue = link();\n @if (linkValue) {\n <div class=\"card-footer\" footer>\n @if (!linkValue.action) {\n <a [siLink]=\"linkValue\">\n {{ linkValue.title | translate }}\n <si-icon class=\"link-icon link-end flip-rtl\" [icon]=\"icons.elementRight2\" />\n </a>\n } @else {\n <button type=\"button\" class=\"btn btn-link\" [siLink]=\"linkValue\">{{\n linkValue.title | translate\n }}</button>\n }\n </div>\n }\n</si-card>\n" }]
995
+ }], propDecorators: { heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], primaryActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "primaryActions", required: false }] }], secondaryActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "secondaryActions", required: false }] }], link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }], numberOfItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "numberOfItems", required: false }] }], showDescription: [{ type: i0.Input, args: [{ isSignal: true, alias: "showDescription", required: false }] }], accentLine: [{ type: i0.Input, args: [{ isSignal: true, alias: "accentLine", required: false }] }] } });
1004
996
 
1005
997
  /**
1006
998
  * Copyright (c) Siemens 2016 - 2025
@@ -1013,27 +1005,27 @@ class SiValueWidgetBodyComponent extends SiWidgetBaseComponent {
1013
1005
  /**
1014
1006
  * The unit of the value (e.g. kWh or users). Only visible if `value` is available.
1015
1007
  */
1016
- unit = input();
1008
+ unit = input(...(ngDevMode ? [undefined, { debugName: "unit" }] : []));
1017
1009
  /**
1018
1010
  * The element icon name. Only visible if `value` is available.
1019
1011
  */
1020
- icon = input();
1012
+ icon = input(...(ngDevMode ? [undefined, { debugName: "icon" }] : []));
1021
1013
  /**
1022
1014
  * Show a status icon instead of the {@link icon}.
1023
1015
  */
1024
- status = input();
1016
+ status = input(...(ngDevMode ? [undefined, { debugName: "status" }] : []));
1025
1017
  /**
1026
1018
  * Short description of the value. A description is mandatory
1027
1019
  * to show an icon. Only visible if `value` is available.
1028
1020
  */
1029
- description = input();
1030
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiValueWidgetBodyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1031
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiValueWidgetBodyComponent, isStandalone: true, selector: "si-value-widget-body", inputs: { unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "@if (!showLoadingIndicator()) {\n @if (value()) {\n <span class=\"si-value-widget-value\">{{ value() | translate }}</span>\n <span class=\"si-value-widget-unit\">{{ unit() | translate }}</span>\n @if (description()) {\n <div class=\"si-value-widget-description\">\n @let statusValue = status();\n @let iconValue = icon();\n @if (statusValue) {\n <si-status-icon class=\"icon\" [status]=\"statusValue\" />\n } @else if (iconValue) {\n <si-icon class=\"icon\" [icon]=\"iconValue\" />\n }\n <span>{{ description() | translate }}</span>\n </div>\n }\n }\n} @else {\n <span class=\"si-value-widget-value w-100\">\n <div class=\"si-value-widget-value-skeleton\"></div>\n </span>\n <div class=\"si-value-widget-description si-skeleton w-100\"></div>\n}\n", dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "component", type: SiStatusIconComponent, selector: "si-status-icon", inputs: ["status"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
1021
+ description = input(...(ngDevMode ? [undefined, { debugName: "description" }] : []));
1022
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiValueWidgetBodyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1023
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiValueWidgetBodyComponent, isStandalone: true, selector: "si-value-widget-body", inputs: { unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "@if (!showLoadingIndicator()) {\n @if (value()) {\n <span class=\"si-value-widget-value\">{{ value() | translate }}</span>\n <span class=\"si-value-widget-unit\">{{ unit() | translate }}</span>\n @if (description()) {\n <div class=\"si-value-widget-description\">\n @let statusValue = status();\n @let iconValue = icon();\n @if (statusValue) {\n <si-status-icon class=\"icon\" [status]=\"statusValue\" />\n } @else if (iconValue) {\n <si-icon class=\"icon\" [icon]=\"iconValue\" />\n }\n <span>{{ description() | translate }}</span>\n </div>\n }\n }\n} @else {\n <span class=\"si-value-widget-value w-100\">\n <div class=\"si-value-widget-value-skeleton\"></div>\n </span>\n <div class=\"si-value-widget-description si-skeleton w-100\"></div>\n}\n", dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "component", type: SiStatusIconComponent, selector: "si-status-icon", inputs: ["status"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
1032
1024
  }
1033
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiValueWidgetBodyComponent, decorators: [{
1025
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiValueWidgetBodyComponent, decorators: [{
1034
1026
  type: Component,
1035
1027
  args: [{ selector: 'si-value-widget-body', imports: [SiIconComponent, SiStatusIconComponent, SiTranslatePipe], template: "@if (!showLoadingIndicator()) {\n @if (value()) {\n <span class=\"si-value-widget-value\">{{ value() | translate }}</span>\n <span class=\"si-value-widget-unit\">{{ unit() | translate }}</span>\n @if (description()) {\n <div class=\"si-value-widget-description\">\n @let statusValue = status();\n @let iconValue = icon();\n @if (statusValue) {\n <si-status-icon class=\"icon\" [status]=\"statusValue\" />\n } @else if (iconValue) {\n <si-icon class=\"icon\" [icon]=\"iconValue\" />\n }\n <span>{{ description() | translate }}</span>\n </div>\n }\n }\n} @else {\n <span class=\"si-value-widget-value w-100\">\n <div class=\"si-value-widget-value-skeleton\"></div>\n </span>\n <div class=\"si-value-widget-description si-skeleton w-100\"></div>\n}\n" }]
1036
- }] });
1028
+ }], propDecorators: { unit: [{ type: i0.Input, args: [{ isSignal: true, alias: "unit", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }] } });
1037
1029
 
1038
1030
  /**
1039
1031
  * Copyright (c) Siemens 2016 - 2025
@@ -1055,106 +1047,106 @@ class SiValueWidgetComponent {
1055
1047
  /**
1056
1048
  * Value widget header text.
1057
1049
  */
1058
- heading = input();
1050
+ heading = input(...(ngDevMode ? [undefined, { debugName: "heading" }] : []));
1059
1051
  /**
1060
1052
  * Input list of primary action items. Supports up to **4** actions and omits additional ones.
1061
1053
  *
1062
1054
  * @defaultValue []
1063
1055
  */
1064
- primaryActions = input([]);
1056
+ primaryActions = input([], ...(ngDevMode ? [{ debugName: "primaryActions" }] : []));
1065
1057
  /**
1066
1058
  * Input list of secondary action items.
1067
1059
  *
1068
1060
  * @defaultValue []
1069
1061
  */
1070
- secondaryActions = input([]);
1062
+ secondaryActions = input([], ...(ngDevMode ? [{ debugName: "secondaryActions" }] : []));
1071
1063
  /**
1072
1064
  * The main value to be displayed. If no value is set,
1073
1065
  * the skeleton indicates the loading of the value. Disable
1074
1066
  * the automatic loading mechanism by setting `SiValueWidgetComponent.disableAutoLoadingIndicator`.
1075
1067
  */
1076
- value = input();
1068
+ value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : []));
1077
1069
  /**
1078
1070
  * The unit of the value (e.g. kWh or users). Only visible if `value` is available.
1079
1071
  */
1080
- unit = input();
1072
+ unit = input(...(ngDevMode ? [undefined, { debugName: "unit" }] : []));
1081
1073
  /**
1082
1074
  * The element icon name. Only visible if `value` is available.
1083
1075
  */
1084
- icon = input();
1076
+ icon = input(...(ngDevMode ? [undefined, { debugName: "icon" }] : []));
1085
1077
  /**
1086
1078
  * Show a status icon instead of the {@link icon}.
1087
1079
  */
1088
- status = input();
1080
+ status = input(...(ngDevMode ? [undefined, { debugName: "status" }] : []));
1089
1081
  /**
1090
1082
  * Short description of the value. A description is mandatory
1091
1083
  * to show an icon. Only visible if `value` is available.
1092
1084
  */
1093
- description = input();
1085
+ description = input(...(ngDevMode ? [undefined, { debugName: "description" }] : []));
1094
1086
  /**
1095
1087
  * Link that leads the user to more information
1096
1088
  * or triggers and action. The `link.title` is displayed.
1097
1089
  * The title will be translated.
1098
1090
  */
1099
- link = input();
1091
+ link = input(...(ngDevMode ? [undefined, { debugName: "link" }] : []));
1100
1092
  /**
1101
1093
  * Option to disable automatic start of skeleton loading indication.
1102
1094
  *
1103
1095
  * @defaultValue false
1104
1096
  */
1105
- disableAutoLoadingIndicator = input(false, { transform: booleanAttribute });
1097
+ disableAutoLoadingIndicator = input(false, { ...(ngDevMode ? { debugName: "disableAutoLoadingIndicator" } : {}), transform: booleanAttribute });
1106
1098
  /**
1107
1099
  * Input to start and stop the skeleton loading indication.
1108
1100
  *
1109
1101
  * @defaultValue false
1110
1102
  */
1111
- showLoadingIndicator = input(false, { transform: booleanAttribute });
1103
+ showLoadingIndicator = input(false, { ...(ngDevMode ? { debugName: "showLoadingIndicator" } : {}), transform: booleanAttribute });
1112
1104
  /**
1113
1105
  * Initial delay time in milliseconds before enabling loading indicator.
1114
1106
  * Only used once initially during construction.
1115
1107
  *
1116
1108
  * @defaultValue 300
1117
1109
  */
1118
- initialLoadingIndicatorDebounceTime = input(300);
1110
+ initialLoadingIndicatorDebounceTime = input(300, ...(ngDevMode ? [{ debugName: "initialLoadingIndicatorDebounceTime" }] : []));
1119
1111
  /**
1120
1112
  * Image source for the card.
1121
1113
  */
1122
- imgSrc = input();
1114
+ imgSrc = input(...(ngDevMode ? [undefined, { debugName: "imgSrc" }] : []));
1123
1115
  /**
1124
1116
  * Alt text for a provided image.
1125
1117
  */
1126
- imgAlt = input();
1118
+ imgAlt = input(...(ngDevMode ? [undefined, { debugName: "imgAlt" }] : []));
1127
1119
  /**
1128
1120
  * Defines if an image is placed on top or start (left) of the card.
1129
1121
  *
1130
1122
  * @defaultValue 'vertical'
1131
1123
  */
1132
- imgDir = input('vertical');
1124
+ imgDir = input('vertical', ...(ngDevMode ? [{ debugName: "imgDir" }] : []));
1133
1125
  /**
1134
1126
  * Sets the image [object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) CSS property.
1135
1127
  *
1136
1128
  * @defaultValue 'scale-down'
1137
1129
  */
1138
- imgObjectFit = input('scale-down');
1130
+ imgObjectFit = input('scale-down', ...(ngDevMode ? [{ debugName: "imgObjectFit" }] : []));
1139
1131
  /**
1140
1132
  * Sets the image [object-position](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position) CSS property.
1141
1133
  */
1142
- imgObjectPosition = input();
1134
+ imgObjectPosition = input(...(ngDevMode ? [undefined, { debugName: "imgObjectPosition" }] : []));
1143
1135
  /**
1144
1136
  * Optional accent line
1145
1137
  */
1146
- accentLine = input();
1138
+ accentLine = input(...(ngDevMode ? [undefined, { debugName: "accentLine" }] : []));
1147
1139
  accentClass = computed(() => {
1148
1140
  const accentLine = this.accentLine();
1149
1141
  return accentLine ? 'accent-' + accentLine : '';
1150
- });
1151
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiValueWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1152
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiValueWidgetComponent, isStandalone: true, selector: "si-value-widget", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, primaryActions: { classPropertyName: "primaryActions", publicName: "primaryActions", isSignal: true, isRequired: false, transformFunction: null }, secondaryActions: { classPropertyName: "secondaryActions", publicName: "secondaryActions", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, disableAutoLoadingIndicator: { classPropertyName: "disableAutoLoadingIndicator", publicName: "disableAutoLoadingIndicator", isSignal: true, isRequired: false, transformFunction: null }, showLoadingIndicator: { classPropertyName: "showLoadingIndicator", publicName: "showLoadingIndicator", isSignal: true, isRequired: false, transformFunction: null }, initialLoadingIndicatorDebounceTime: { classPropertyName: "initialLoadingIndicatorDebounceTime", publicName: "initialLoadingIndicatorDebounceTime", isSignal: true, isRequired: false, transformFunction: null }, imgSrc: { classPropertyName: "imgSrc", publicName: "imgSrc", isSignal: true, isRequired: false, transformFunction: null }, imgAlt: { classPropertyName: "imgAlt", publicName: "imgAlt", isSignal: true, isRequired: false, transformFunction: null }, imgDir: { classPropertyName: "imgDir", publicName: "imgDir", isSignal: true, isRequired: false, transformFunction: null }, imgObjectFit: { classPropertyName: "imgObjectFit", publicName: "imgObjectFit", isSignal: true, isRequired: false, transformFunction: null }, imgObjectPosition: { classPropertyName: "imgObjectPosition", publicName: "imgObjectPosition", isSignal: true, isRequired: false, transformFunction: null }, accentLine: { classPropertyName: "accentLine", publicName: "accentLine", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<si-card\n class=\"h-100\"\n [ngClass]=\"accentClass()\"\n [heading]=\"heading()\"\n [primaryActions]=\"primaryActions()\"\n [secondaryActions]=\"secondaryActions()\"\n [imgSrc]=\"imgSrc()\"\n [imgDir]=\"imgDir()\"\n [imgAlt]=\"imgAlt()\"\n [imgObjectFit]=\"imgObjectFit()\"\n [imgObjectPosition]=\"imgObjectPosition()\"\n>\n <div class=\"card-body\" body>\n <si-value-widget-body\n [value]=\"value()\"\n [unit]=\"unit()\"\n [icon]=\"icon()\"\n [status]=\"status()\"\n [description]=\"description()\"\n [disableAutoLoadingIndicator]=\"disableAutoLoadingIndicator()\"\n [showLoadingIndicator]=\"showLoadingIndicator()\"\n [initialLoadingIndicatorDebounceTime]=\"initialLoadingIndicatorDebounceTime()\"\n />\n </div>\n @let linkObject = link();\n @if (linkObject) {\n <div class=\"card-footer\" footer>\n <a [siLink]=\"linkObject\">{{ linkObject.title | translate }}</a>\n </div>\n }\n</si-card>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SiCardComponent, selector: "si-card", inputs: ["primaryActions", "secondaryActions", "actionParam", "actionBarViewType", "actionBarTitle"] }, { kind: "directive", type: SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }, { kind: "component", type: SiValueWidgetBodyComponent, selector: "si-value-widget-body", inputs: ["unit", "icon", "status", "description"] }] });
1142
+ }, ...(ngDevMode ? [{ debugName: "accentClass" }] : []));
1143
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiValueWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1144
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiValueWidgetComponent, isStandalone: true, selector: "si-value-widget", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, primaryActions: { classPropertyName: "primaryActions", publicName: "primaryActions", isSignal: true, isRequired: false, transformFunction: null }, secondaryActions: { classPropertyName: "secondaryActions", publicName: "secondaryActions", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, disableAutoLoadingIndicator: { classPropertyName: "disableAutoLoadingIndicator", publicName: "disableAutoLoadingIndicator", isSignal: true, isRequired: false, transformFunction: null }, showLoadingIndicator: { classPropertyName: "showLoadingIndicator", publicName: "showLoadingIndicator", isSignal: true, isRequired: false, transformFunction: null }, initialLoadingIndicatorDebounceTime: { classPropertyName: "initialLoadingIndicatorDebounceTime", publicName: "initialLoadingIndicatorDebounceTime", isSignal: true, isRequired: false, transformFunction: null }, imgSrc: { classPropertyName: "imgSrc", publicName: "imgSrc", isSignal: true, isRequired: false, transformFunction: null }, imgAlt: { classPropertyName: "imgAlt", publicName: "imgAlt", isSignal: true, isRequired: false, transformFunction: null }, imgDir: { classPropertyName: "imgDir", publicName: "imgDir", isSignal: true, isRequired: false, transformFunction: null }, imgObjectFit: { classPropertyName: "imgObjectFit", publicName: "imgObjectFit", isSignal: true, isRequired: false, transformFunction: null }, imgObjectPosition: { classPropertyName: "imgObjectPosition", publicName: "imgObjectPosition", isSignal: true, isRequired: false, transformFunction: null }, accentLine: { classPropertyName: "accentLine", publicName: "accentLine", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<si-card\n class=\"h-100\"\n [class]=\"accentClass()\"\n [heading]=\"heading()\"\n [primaryActions]=\"primaryActions()\"\n [secondaryActions]=\"secondaryActions()\"\n [imgSrc]=\"imgSrc()\"\n [imgDir]=\"imgDir()\"\n [imgAlt]=\"imgAlt()\"\n [imgObjectFit]=\"imgObjectFit()\"\n [imgObjectPosition]=\"imgObjectPosition()\"\n>\n <div class=\"card-body\" body>\n <si-value-widget-body\n [value]=\"value()\"\n [unit]=\"unit()\"\n [icon]=\"icon()\"\n [status]=\"status()\"\n [description]=\"description()\"\n [disableAutoLoadingIndicator]=\"disableAutoLoadingIndicator()\"\n [showLoadingIndicator]=\"showLoadingIndicator()\"\n [initialLoadingIndicatorDebounceTime]=\"initialLoadingIndicatorDebounceTime()\"\n />\n </div>\n @let linkObject = link();\n @if (linkObject) {\n <div class=\"card-footer\" footer>\n <a [siLink]=\"linkObject\">{{ linkObject.title | translate }}</a>\n </div>\n }\n</si-card>\n", dependencies: [{ kind: "component", type: SiCardComponent, selector: "si-card", inputs: ["primaryActions", "secondaryActions", "actionParam", "actionBarViewType", "actionBarTitle"] }, { kind: "directive", type: SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "component", type: SiValueWidgetBodyComponent, selector: "si-value-widget-body", inputs: ["unit", "icon", "status", "description"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
1153
1145
  }
1154
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiValueWidgetComponent, decorators: [{
1146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiValueWidgetComponent, decorators: [{
1155
1147
  type: Component,
1156
- args: [{ selector: 'si-value-widget', imports: [NgClass, SiCardComponent, SiLinkDirective, SiTranslatePipe, SiValueWidgetBodyComponent], template: "<si-card\n class=\"h-100\"\n [ngClass]=\"accentClass()\"\n [heading]=\"heading()\"\n [primaryActions]=\"primaryActions()\"\n [secondaryActions]=\"secondaryActions()\"\n [imgSrc]=\"imgSrc()\"\n [imgDir]=\"imgDir()\"\n [imgAlt]=\"imgAlt()\"\n [imgObjectFit]=\"imgObjectFit()\"\n [imgObjectPosition]=\"imgObjectPosition()\"\n>\n <div class=\"card-body\" body>\n <si-value-widget-body\n [value]=\"value()\"\n [unit]=\"unit()\"\n [icon]=\"icon()\"\n [status]=\"status()\"\n [description]=\"description()\"\n [disableAutoLoadingIndicator]=\"disableAutoLoadingIndicator()\"\n [showLoadingIndicator]=\"showLoadingIndicator()\"\n [initialLoadingIndicatorDebounceTime]=\"initialLoadingIndicatorDebounceTime()\"\n />\n </div>\n @let linkObject = link();\n @if (linkObject) {\n <div class=\"card-footer\" footer>\n <a [siLink]=\"linkObject\">{{ linkObject.title | translate }}</a>\n </div>\n }\n</si-card>\n" }]
1157
- }] });
1148
+ args: [{ selector: 'si-value-widget', imports: [SiCardComponent, SiLinkDirective, SiTranslatePipe, SiValueWidgetBodyComponent], template: "<si-card\n class=\"h-100\"\n [class]=\"accentClass()\"\n [heading]=\"heading()\"\n [primaryActions]=\"primaryActions()\"\n [secondaryActions]=\"secondaryActions()\"\n [imgSrc]=\"imgSrc()\"\n [imgDir]=\"imgDir()\"\n [imgAlt]=\"imgAlt()\"\n [imgObjectFit]=\"imgObjectFit()\"\n [imgObjectPosition]=\"imgObjectPosition()\"\n>\n <div class=\"card-body\" body>\n <si-value-widget-body\n [value]=\"value()\"\n [unit]=\"unit()\"\n [icon]=\"icon()\"\n [status]=\"status()\"\n [description]=\"description()\"\n [disableAutoLoadingIndicator]=\"disableAutoLoadingIndicator()\"\n [showLoadingIndicator]=\"showLoadingIndicator()\"\n [initialLoadingIndicatorDebounceTime]=\"initialLoadingIndicatorDebounceTime()\"\n />\n </div>\n @let linkObject = link();\n @if (linkObject) {\n <div class=\"card-footer\" footer>\n <a [siLink]=\"linkObject\">{{ linkObject.title | translate }}</a>\n </div>\n }\n</si-card>\n" }]
1149
+ }], propDecorators: { heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], primaryActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "primaryActions", required: false }] }], secondaryActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "secondaryActions", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], unit: [{ type: i0.Input, args: [{ isSignal: true, alias: "unit", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }], disableAutoLoadingIndicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableAutoLoadingIndicator", required: false }] }], showLoadingIndicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLoadingIndicator", required: false }] }], initialLoadingIndicatorDebounceTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialLoadingIndicatorDebounceTime", required: false }] }], imgSrc: [{ type: i0.Input, args: [{ isSignal: true, alias: "imgSrc", required: false }] }], imgAlt: [{ type: i0.Input, args: [{ isSignal: true, alias: "imgAlt", required: false }] }], imgDir: [{ type: i0.Input, args: [{ isSignal: true, alias: "imgDir", required: false }] }], imgObjectFit: [{ type: i0.Input, args: [{ isSignal: true, alias: "imgObjectFit", required: false }] }], imgObjectPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "imgObjectPosition", required: false }] }], accentLine: [{ type: i0.Input, args: [{ isSignal: true, alias: "accentLine", required: false }] }] } });
1158
1150
 
1159
1151
  /**
1160
1152
  * Copyright (c) Siemens 2016 - 2025