@siemens/element-ng 47.6.0 → 47.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/README.md +4 -1
  2. package/about/index.d.ts +7 -0
  3. package/about/package.json +3 -0
  4. package/about/si-about-data.model.d.ts +49 -0
  5. package/about/si-about.component.d.ts +71 -0
  6. package/about/si-about.module.d.ts +7 -0
  7. package/accordion/index.d.ts +1 -1
  8. package/accordion/si-accordion.component.d.ts +1 -1
  9. package/accordion/si-collapsible-panel.component.d.ts +1 -1
  10. package/action-modal/index.d.ts +1 -1
  11. package/action-modal/si-action-dialog.types.d.ts +1 -1
  12. package/application-header/index.d.ts +1 -1
  13. package/application-header/launchpad/si-launchpad.model.d.ts +1 -1
  14. package/application-header/si-header-action-item-icon-base.directive.d.ts +1 -1
  15. package/application-header/si-header-action-item.base.d.ts +1 -1
  16. package/application-header/si-header-logo.directive.d.ts +1 -1
  17. package/assets/images/landing-page-steel.webp +0 -0
  18. package/auto-collapsable-list/index.d.ts +1 -1
  19. package/auto-collapsable-list/si-auto-collapsable-list-item.directive.d.ts +1 -1
  20. package/auto-collapsable-list/si-auto-collapsable-list-measurable.class.d.ts +1 -1
  21. package/auto-collapsable-list/si-auto-collapsable-list.directive.d.ts +1 -1
  22. package/autocomplete/index.d.ts +1 -1
  23. package/autocomplete/si-autocomplete-option.directive.d.ts +1 -1
  24. package/autocomplete/si-autocomplete.model.d.ts +1 -1
  25. package/avatar/index.d.ts +1 -1
  26. package/avatar/si-avatar-background-color.directive.d.ts +1 -1
  27. package/badge/index.d.ts +1 -1
  28. package/breadcrumb/breadcrumb-item.model.d.ts +1 -1
  29. package/breadcrumb/index.d.ts +1 -1
  30. package/breadcrumb-router/index.d.ts +1 -1
  31. package/breadcrumb-router/si-breadcrumb-router.component.d.ts +1 -1
  32. package/breadcrumb-router/si-breadcrumb-router.model.d.ts +1 -1
  33. package/card/index.d.ts +1 -1
  34. package/circle-status/index.d.ts +1 -1
  35. package/color-picker/index.d.ts +1 -1
  36. package/column-selection-dialog/index.d.ts +1 -1
  37. package/column-selection-dialog/si-column-selection-dialog.types.d.ts +1 -1
  38. package/common/decorators/index.d.ts +1 -1
  39. package/common/decorators/webcomponent.decorator.d.ts +1 -1
  40. package/common/helpers/animation.helpers.d.ts +1 -1
  41. package/common/helpers/global-events.helpers.d.ts +1 -1
  42. package/common/helpers/index.d.ts +1 -1
  43. package/common/helpers/overlay-helper.d.ts +1 -1
  44. package/common/helpers/rtl.d.ts +1 -1
  45. package/common/helpers/track-by.helper.d.ts +1 -1
  46. package/common/index.d.ts +1 -1
  47. package/common/models/color-variant.model.d.ts +1 -1
  48. package/common/models/index.d.ts +1 -1
  49. package/common/models/menu.model.d.ts +1 -1
  50. package/common/models/positions.model.d.ts +1 -1
  51. package/common/models/status-type.model.d.ts +1 -1
  52. package/common/services/index.d.ts +1 -1
  53. package/connection-strength/index.d.ts +1 -1
  54. package/content-action-bar/index.d.ts +1 -1
  55. package/content-action-bar/si-content-action-bar.component.d.ts +1 -1
  56. package/content-action-bar/si-content-action-bar.model.d.ts +3 -3
  57. package/copyright-notice/index.d.ts +1 -1
  58. package/copyright-notice/si-copyright-notice.d.ts +1 -1
  59. package/datatable/index.d.ts +1 -1
  60. package/datatable/si-datatable-interaction.directive.d.ts +1 -1
  61. package/date-range-filter/index.d.ts +1 -1
  62. package/date-range-filter/si-date-range-filter.types.d.ts +1 -1
  63. package/date-range-filter/si-relative-date.component.d.ts +1 -1
  64. package/datepicker/components/si-calendar-date-cell.directive.d.ts +1 -1
  65. package/datepicker/components/si-initial-focus.component.d.ts +1 -1
  66. package/datepicker/index.d.ts +1 -1
  67. package/datepicker/si-datepicker.directive.d.ts +1 -1
  68. package/datepicker/si-datepicker.model.d.ts +1 -1
  69. package/datepicker/si-timepicker.component.d.ts +1 -1
  70. package/electron-titlebar/electron.helpers.d.ts +1 -1
  71. package/electron-titlebar/index.d.ts +1 -1
  72. package/empty-state/index.d.ts +1 -1
  73. package/fesm2022/siemens-element-ng-about.mjs +157 -0
  74. package/fesm2022/siemens-element-ng-about.mjs.map +1 -0
  75. package/fesm2022/siemens-element-ng-accordion.mjs +11 -12
  76. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
  77. package/fesm2022/siemens-element-ng-action-modal.mjs +15 -16
  78. package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
  79. package/fesm2022/siemens-element-ng-application-header.mjs +29 -30
  80. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  81. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +7 -7
  82. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
  83. package/fesm2022/siemens-element-ng-autocomplete.mjs +5 -5
  84. package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
  85. package/fesm2022/siemens-element-ng-avatar.mjs +4 -4
  86. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  87. package/fesm2022/siemens-element-ng-badge.mjs +2 -2
  88. package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
  89. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +5 -5
  90. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
  91. package/fesm2022/siemens-element-ng-breadcrumb.mjs +8 -9
  92. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  93. package/fesm2022/siemens-element-ng-card.mjs +7 -8
  94. package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
  95. package/fesm2022/siemens-element-ng-circle-status.mjs +6 -7
  96. package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
  97. package/fesm2022/siemens-element-ng-color-picker.mjs +6 -7
  98. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
  99. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +11 -12
  100. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
  101. package/fesm2022/siemens-element-ng-common.mjs +14 -14
  102. package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
  103. package/fesm2022/siemens-element-ng-connection-strength.mjs +3 -3
  104. package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
  105. package/fesm2022/siemens-element-ng-content-action-bar.mjs +9 -10
  106. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  107. package/fesm2022/siemens-element-ng-copyright-notice.mjs +4 -4
  108. package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
  109. package/fesm2022/siemens-element-ng-datatable.mjs +2 -2
  110. package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
  111. package/fesm2022/siemens-element-ng-date-range-filter.mjs +13 -15
  112. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  113. package/fesm2022/siemens-element-ng-datepicker.mjs +48 -54
  114. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  115. package/fesm2022/siemens-element-ng-electron-titlebar.mjs +7 -8
  116. package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
  117. package/fesm2022/siemens-element-ng-empty-state.mjs +6 -7
  118. package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
  119. package/fesm2022/siemens-element-ng-file-uploader.mjs +9 -10
  120. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  121. package/fesm2022/siemens-element-ng-filter-bar.mjs +10 -11
  122. package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
  123. package/fesm2022/siemens-element-ng-filtered-search.mjs +19 -20
  124. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  125. package/fesm2022/siemens-element-ng-footer.mjs +7 -8
  126. package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
  127. package/fesm2022/siemens-element-ng-form.mjs +20 -23
  128. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  129. package/fesm2022/siemens-element-ng-formly.mjs +46 -53
  130. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  131. package/fesm2022/siemens-element-ng-header-dropdown.mjs +8 -9
  132. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  133. package/fesm2022/siemens-element-ng-icon-status.mjs +3 -3
  134. package/fesm2022/siemens-element-ng-icon-status.mjs.map +1 -1
  135. package/fesm2022/siemens-element-ng-icon.mjs +17 -18
  136. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  137. package/fesm2022/siemens-element-ng-info-page.mjs +5 -6
  138. package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
  139. package/fesm2022/siemens-element-ng-inline-notification.mjs +6 -7
  140. package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
  141. package/fesm2022/siemens-element-ng-ip-input.mjs +4 -4
  142. package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
  143. package/fesm2022/siemens-element-ng-landing-page.mjs +121 -0
  144. package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -0
  145. package/fesm2022/siemens-element-ng-language-switcher.mjs +9 -10
  146. package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
  147. package/fesm2022/siemens-element-ng-link.mjs +6 -6
  148. package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
  149. package/fesm2022/siemens-element-ng-list-details.mjs +15 -16
  150. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  151. package/fesm2022/siemens-element-ng-loading-spinner.mjs +13 -14
  152. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
  153. package/fesm2022/siemens-element-ng-localization.mjs +6 -6
  154. package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
  155. package/fesm2022/siemens-element-ng-main-detail-container.mjs +6 -7
  156. package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
  157. package/fesm2022/siemens-element-ng-menu.mjs +22 -22
  158. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  159. package/fesm2022/siemens-element-ng-modal.mjs +4 -4
  160. package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
  161. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +31 -32
  162. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  163. package/fesm2022/siemens-element-ng-navbar.mjs +11 -12
  164. package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
  165. package/fesm2022/siemens-element-ng-number-input.mjs +7 -8
  166. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  167. package/fesm2022/siemens-element-ng-pagination.mjs +6 -7
  168. package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
  169. package/fesm2022/siemens-element-ng-password-strength.mjs +6 -6
  170. package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
  171. package/fesm2022/siemens-element-ng-password-toggle.mjs +8 -9
  172. package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
  173. package/fesm2022/siemens-element-ng-phone-number.mjs +16 -17
  174. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
  175. package/fesm2022/siemens-element-ng-photo-upload.mjs +7 -9
  176. package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
  177. package/fesm2022/siemens-element-ng-pills-input.mjs +14 -15
  178. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
  179. package/fesm2022/siemens-element-ng-popover-next.mjs +5 -5
  180. package/fesm2022/siemens-element-ng-popover-next.mjs.map +1 -1
  181. package/fesm2022/siemens-element-ng-popover.mjs +3 -3
  182. package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
  183. package/fesm2022/siemens-element-ng-progressbar.mjs +7 -8
  184. package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
  185. package/fesm2022/siemens-element-ng-resize-observer.mjs +5 -5
  186. package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
  187. package/fesm2022/siemens-element-ng-result-details-list.mjs +6 -7
  188. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
  189. package/fesm2022/siemens-element-ng-search-bar.mjs +6 -6
  190. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  191. package/fesm2022/siemens-element-ng-select.mjs +39 -40
  192. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  193. package/fesm2022/siemens-element-ng-shadow-root.mjs +2 -2
  194. package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
  195. package/fesm2022/siemens-element-ng-side-panel.mjs +12 -13
  196. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  197. package/fesm2022/siemens-element-ng-skip-links.mjs +7 -8
  198. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
  199. package/fesm2022/siemens-element-ng-slider.mjs +7 -8
  200. package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
  201. package/fesm2022/siemens-element-ng-sort-bar.mjs +6 -7
  202. package/fesm2022/siemens-element-ng-sort-bar.mjs.map +1 -1
  203. package/fesm2022/siemens-element-ng-split.mjs +6 -7
  204. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  205. package/fesm2022/siemens-element-ng-status-bar.mjs +13 -14
  206. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  207. package/fesm2022/siemens-element-ng-status-toggle.mjs +5 -6
  208. package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
  209. package/fesm2022/siemens-element-ng-summary-chip.mjs +5 -6
  210. package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
  211. package/fesm2022/siemens-element-ng-summary-widget.mjs +5 -6
  212. package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
  213. package/fesm2022/siemens-element-ng-system-banner.mjs +5 -6
  214. package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
  215. package/fesm2022/siemens-element-ng-tabs-next.mjs +16 -17
  216. package/fesm2022/siemens-element-ng-tabs-next.mjs.map +1 -1
  217. package/fesm2022/siemens-element-ng-tabs.mjs +9 -16
  218. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  219. package/fesm2022/siemens-element-ng-theme.mjs +3 -3
  220. package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
  221. package/fesm2022/siemens-element-ng-threshold.mjs +11 -12
  222. package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
  223. package/fesm2022/siemens-element-ng-toast-notification.mjs +9 -10
  224. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
  225. package/fesm2022/siemens-element-ng-tooltip.mjs +7 -8
  226. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
  227. package/fesm2022/siemens-element-ng-tour.mjs +7 -8
  228. package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
  229. package/fesm2022/siemens-element-ng-translate.mjs +1 -1
  230. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  231. package/fesm2022/siemens-element-ng-tree-view.mjs +22 -23
  232. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  233. package/fesm2022/siemens-element-ng-typeahead.mjs +12 -13
  234. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  235. package/fesm2022/siemens-element-ng-unauthorized-page.mjs +6 -7
  236. package/fesm2022/siemens-element-ng-unauthorized-page.mjs.map +1 -1
  237. package/fesm2022/siemens-element-ng-wizard.mjs +8 -9
  238. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  239. package/fesm2022/siemens-element-ng.mjs +1 -1
  240. package/fesm2022/siemens-element-ng.mjs.map +1 -1
  241. package/file-uploader/index.d.ts +1 -1
  242. package/file-uploader/si-file-uploader.model.d.ts +1 -1
  243. package/filter-bar/filter.d.ts +1 -1
  244. package/filter-bar/index.d.ts +1 -1
  245. package/filtered-search/index.d.ts +1 -1
  246. package/filtered-search/si-filtered-search-value.component.d.ts +1 -1
  247. package/filtered-search/si-filtered-search.component.d.ts +1 -1
  248. package/filtered-search/si-filtered-search.model.d.ts +1 -1
  249. package/filtered-search/values/si-filtered-search-value.base.d.ts +1 -1
  250. package/filtered-search/values/typeahead/si-filtered-search-typeahead.component.d.ts +1 -1
  251. package/footer/index.d.ts +1 -1
  252. package/form/form-fieldset/si-form-fieldset.component.d.ts +1 -1
  253. package/form/index.d.ts +1 -1
  254. package/form/si-form-container/si-form-container.component.d.ts +24 -24
  255. package/form/si-form-item/si-form-field-native.control.d.ts +1 -1
  256. package/form/si-form-item.control.d.ts +1 -1
  257. package/form/si-form-validation-error.model.d.ts +1 -1
  258. package/form/si-form-validation-error.provider.d.ts +1 -1
  259. package/form/si-form-validation-tooltip/si-form-validation-tooltip.component.d.ts +1 -1
  260. package/form/si-form-validation-tooltip/si-form-validation-tooltip.directive.d.ts +1 -1
  261. package/form/si-form.module.d.ts +1 -1
  262. package/formly/fields/datetime/si-formly-datetime.component.d.ts +1 -1
  263. package/formly/fields/textarea/si-formly-textarea.component.d.ts +1 -1
  264. package/formly/fields/time/si-formly-time.component.d.ts +1 -1
  265. package/formly/index.d.ts +1 -1
  266. package/formly/si-formly-translate.extension.d.ts +1 -3
  267. package/formly/si-formly.component.d.ts +1 -1
  268. package/formly/structural/si-formly-accordion/si-formly-accordion.component.d.ts +1 -1
  269. package/formly/structural/si-formly-object-grid/si-formly-object-grid.component.d.ts +1 -1
  270. package/formly/structural/si-formly-object-grid/si-formly-object-grid.model.d.ts +1 -1
  271. package/formly/utils.d.ts +1 -1
  272. package/formly/wrapper/si-formly-form-field-provider.directive.d.ts +1 -1
  273. package/header-dropdown/index.d.ts +1 -1
  274. package/header-dropdown/si-header.model.d.ts +1 -1
  275. package/icon/element-icons.d.ts +1 -1
  276. package/icon/icon-status.d.ts +1 -1
  277. package/icon/index.d.ts +1 -1
  278. package/icon-status/index.d.ts +1 -1
  279. package/info-page/index.d.ts +1 -1
  280. package/inline-notification/index.d.ts +1 -1
  281. package/ip-input/address-utils.d.ts +1 -1
  282. package/ip-input/address-validators.d.ts +1 -1
  283. package/ip-input/index.d.ts +1 -1
  284. package/ip-input/si-ip-input.directive.d.ts +1 -1
  285. package/landing-page/alert-config.model.d.ts +15 -0
  286. package/landing-page/index.d.ts +7 -0
  287. package/landing-page/package.json +3 -0
  288. package/landing-page/si-landing-page.component.d.ts +74 -0
  289. package/landing-page/si-landing-page.module.d.ts +7 -0
  290. package/language-switcher/index.d.ts +1 -1
  291. package/language-switcher/iso-language-value.d.ts +1 -1
  292. package/language-switcher/si-language-switcher.component.d.ts +1 -2
  293. package/link/aria-current.model.d.ts +1 -1
  294. package/link/index.d.ts +1 -1
  295. package/link/link.model.d.ts +1 -1
  296. package/list-details/index.d.ts +1 -1
  297. package/list-details/si-details-pane-header/si-details-pane-header.component.d.ts +1 -1
  298. package/loading-spinner/index.d.ts +1 -1
  299. package/localization/index.d.ts +1 -1
  300. package/localization/si-directionality.d.ts +1 -1
  301. package/localization/si-locale-store.d.ts +1 -1
  302. package/main-detail-container/index.d.ts +1 -1
  303. package/menu/index.d.ts +1 -1
  304. package/menu/si-menu-action.service.d.ts +1 -1
  305. package/menu/si-menu-factory.component.d.ts +1 -1
  306. package/menu/si-menu-item-checkbox.component.d.ts +2 -1
  307. package/menu/si-menu-model.d.ts +1 -1
  308. package/modal/index.d.ts +1 -1
  309. package/modal/modal.helpers.d.ts +1 -1
  310. package/modal/modalref.d.ts +1 -1
  311. package/navbar/account.model.d.ts +1 -1
  312. package/navbar/index.d.ts +1 -1
  313. package/navbar/si-navbar-item/index.d.ts +1 -1
  314. package/navbar/si-navbar-primary/index.d.ts +1 -1
  315. package/navbar/si-navbar-primary/si-navbar-primary.model.d.ts +1 -1
  316. package/navbar-vertical/index.d.ts +1 -1
  317. package/navbar-vertical/si-navbar-vertical.model.d.ts +1 -1
  318. package/navbar-vertical/si-navbar-vertical.provider.d.ts +1 -1
  319. package/number-input/index.d.ts +1 -1
  320. package/number-input/si-number-input.component.d.ts +1 -1
  321. package/package.json +11 -3
  322. package/pagination/index.d.ts +1 -1
  323. package/password-strength/index.d.ts +1 -1
  324. package/password-strength/si-password-strength.component.d.ts +1 -1
  325. package/password-toggle/index.d.ts +1 -1
  326. package/phone-number/index.d.ts +1 -1
  327. package/phone-number/si-phone-number-input.models.d.ts +1 -1
  328. package/photo-upload/index.d.ts +1 -1
  329. package/pills-input/index.d.ts +1 -1
  330. package/pills-input/si-pills-input-pattern-base.d.ts +1 -1
  331. package/pills-input/si-pills-input.component.d.ts +1 -1
  332. package/popover/index.d.ts +1 -1
  333. package/popover/si-popover.component.d.ts +1 -1
  334. package/popover-next/index.d.ts +1 -1
  335. package/progressbar/index.d.ts +1 -1
  336. package/public-api.d.ts +1 -1
  337. package/resize-observer/index.d.ts +1 -1
  338. package/resize-observer/si-resize-observer.directive.d.ts +1 -1
  339. package/resize-observer/si-responsive-container.directive.d.ts +1 -1
  340. package/result-details-list/index.d.ts +1 -1
  341. package/result-details-list/si-result-details-list.datamodel.d.ts +1 -1
  342. package/search-bar/index.d.ts +1 -1
  343. package/search-bar/si-search-bar.component.d.ts +1 -1
  344. package/select/index.d.ts +1 -1
  345. package/select/options/si-select-complex-options.directive.d.ts +1 -1
  346. package/select/options/si-select-lazy-options.directive.d.ts +1 -1
  347. package/select/options/si-select-option.source.d.ts +1 -1
  348. package/select/options/si-select-options-strategy.base.d.ts +1 -1
  349. package/select/options/si-select-options-strategy.d.ts +1 -1
  350. package/select/options/si-select-simple-options.directive.d.ts +1 -1
  351. package/select/select-input/si-select-input.component.d.ts +1 -1
  352. package/select/select-list/si-select-list.base.d.ts +1 -1
  353. package/select/select-list/si-select-list.component.d.ts +1 -1
  354. package/select/select-option/si-select-option-row.component.d.ts +1 -1
  355. package/select/selection/si-select-selection-strategy.d.ts +1 -1
  356. package/select/si-select.types.d.ts +1 -1
  357. package/shadow-root/index.d.ts +1 -1
  358. package/shadow-root/si-shadow-root.directive.d.ts +1 -1
  359. package/side-panel/index.d.ts +1 -1
  360. package/side-panel/si-side-panel.service.d.ts +1 -1
  361. package/side-panel/side-panel.model.d.ts +1 -1
  362. package/skip-links/index.d.ts +1 -1
  363. package/skip-links/si-skip-link-target.directive.d.ts +1 -1
  364. package/slider/index.d.ts +1 -1
  365. package/sort-bar/index.d.ts +1 -1
  366. package/sort-bar/si-sort-bar.component.d.ts +1 -1
  367. package/split/index.d.ts +1 -1
  368. package/split/si-split.interfaces.d.ts +1 -1
  369. package/status-bar/index.d.ts +1 -1
  370. package/status-bar/si-status-bar-item/index.d.ts +1 -1
  371. package/status-bar/si-status-bar-item/si-status-bar-item.model.d.ts +1 -1
  372. package/status-toggle/index.d.ts +1 -1
  373. package/status-toggle/status-toggle.model.d.ts +1 -1
  374. package/summary-chip/index.d.ts +1 -1
  375. package/summary-widget/index.d.ts +1 -1
  376. package/system-banner/index.d.ts +1 -1
  377. package/tabs/index.d.ts +1 -1
  378. package/tabs/si-tab/index.d.ts +1 -1
  379. package/tabs/si-tab/si-tab.component.d.ts +1 -1
  380. package/tabs/si-tabset/index.d.ts +1 -1
  381. package/tabs-next/index.d.ts +1 -1
  382. package/tabs-next/si-tab-next-base.directive.d.ts +1 -1
  383. package/tabs-next/si-tabs-tokens.d.ts +1 -1
  384. package/tabs-next/si-tabset-next.component.d.ts +1 -1
  385. package/theme/index.d.ts +1 -1
  386. package/theme/si-theme-store.d.ts +1 -1
  387. package/theme/si-theme.model.d.ts +1 -1
  388. package/threshold/index.d.ts +1 -1
  389. package/toast-notification/index.d.ts +1 -1
  390. package/toast-notification/si-toast.model.d.ts +1 -1
  391. package/tooltip/index.d.ts +1 -1
  392. package/tooltip/si-tooltip.component.d.ts +1 -1
  393. package/tooltip/si-tooltip.directive.d.ts +1 -1
  394. package/tooltip/si-tooltip.service.d.ts +1 -1
  395. package/tour/index.d.ts +1 -1
  396. package/tour/si-tour-token.model.d.ts +1 -1
  397. package/tour/si-tour.model.d.ts +1 -1
  398. package/translate/index.d.ts +1 -1
  399. package/translate/si-translatable-overrides.provider.d.ts +1 -1
  400. package/tree-view/drag-drop.util.d.ts +1 -1
  401. package/tree-view/index.d.ts +1 -1
  402. package/tree-view/si-tree-view-item/si-tree-view-item.component.d.ts +1 -1
  403. package/tree-view/si-tree-view-item/si-tree-view-item.directive.d.ts +1 -1
  404. package/tree-view/si-tree-view-item-context.d.ts +1 -1
  405. package/tree-view/si-tree-view-item-height.service.d.ts +1 -1
  406. package/tree-view/si-tree-view-item-template.directive.d.ts +1 -1
  407. package/tree-view/si-tree-view.model.d.ts +1 -1
  408. package/tree-view/si-tree-view.service.d.ts +1 -1
  409. package/tree-view/si-tree-view.utils.d.ts +1 -1
  410. package/typeahead/index.d.ts +1 -1
  411. package/typeahead/si-typeahead.directive.d.ts +1 -1
  412. package/typeahead/si-typeahead.model.d.ts +1 -1
  413. package/typeahead/si-typeahead.sorting.d.ts +1 -1
  414. package/unauthorized-page/index.d.ts +1 -1
  415. package/wizard/index.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-popover.mjs","sources":["../../../../projects/element-ng/popover/si-popover.component.ts","../../../../projects/element-ng/popover/si-popover.component.html","../../../../projects/element-ng/popover/si-popover.directive.ts","../../../../projects/element-ng/popover/si-popover.module.ts","../../../../projects/element-ng/popover/index.ts","../../../../projects/element-ng/popover/siemens-element-ng-popover.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { Component, ElementRef, inject, input, OnInit, signal, TemplateRef } from '@angular/core';\nimport { calculateOverlayArrowPosition, OverlayArrowPosition } from '@siemens/element-ng/common';\nimport { SiIconNextComponent } from '@siemens/element-ng/icon';\n\n@Component({\n selector: 'si-popover',\n templateUrl: './si-popover.component.html',\n imports: [NgClass, NgTemplateOutlet, SiIconNextComponent]\n})\nexport class PopoverComponent implements OnInit {\n readonly popover = input<string | TemplateRef<any>>();\n /** @defaultValue '' */\n readonly popoverTitle = input('');\n /** @defaultValue '' */\n readonly containerClass = input('');\n readonly icon = input<string>();\n readonly popoverContext = input<unknown>();\n\n protected readonly positionClass = signal('');\n protected readonly arrowPos = signal<OverlayArrowPosition | undefined>(undefined);\n protected popoverTemplate: TemplateRef<any> | null = null;\n\n private elementRef = inject(ElementRef);\n\n ngOnInit(): void {\n const popover = this.popover();\n if (popover instanceof TemplateRef) {\n this.popoverTemplate = popover;\n }\n }\n\n /** @internal */\n updateArrow(change: ConnectedOverlayPositionChange, anchor?: ElementRef): void {\n const positionClass = `popover-${change.connectionPair.overlayX}-${change.connectionPair.overlayY}`;\n // need two updates as class changes affect the position\n this.positionClass.set(positionClass);\n const arrowPos = calculateOverlayArrowPosition(change, this.elementRef, anchor);\n this.arrowPos.set(arrowPos);\n }\n}\n","<div\n class=\"popover position-relative focus-outline-padding\"\n [ngClass]=\"[containerClass(), positionClass()]\"\n>\n <div\n class=\"popover-arrow\"\n [style.left.px]=\"arrowPos()?.left\"\n [style.right.px]=\"arrowPos()?.right\"\n ></div>\n @if (popoverTitle()) {\n <div class=\"popover-header\">\n @let iconValue = icon();\n @if (iconValue) {\n <si-icon-next class=\"icon me-2\" [icon]=\"iconValue\" />\n }\n <span class=\"si-title-2\">{{ popoverTitle() }}</span>\n </div>\n }\n <div class=\"popover-body\">\n @if (!popoverTemplate) {\n <div class=\"si-body-2\" [innerHTML]=\"popover()\"></div>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"popoverTemplate\"\n [ngTemplateOutletContext]=\"popoverContext()\"\n />\n }\n </div>\n</div>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n booleanAttribute,\n ComponentRef,\n computed,\n Directive,\n ElementRef,\n HostListener,\n inject,\n input,\n OnDestroy,\n OnInit,\n output,\n TemplateRef\n} from '@angular/core';\nimport { getOverlay, getPositionStrategy, hasTrigger, positions } from '@siemens/element-ng/common';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { PopoverComponent } from './si-popover.component';\n\n@Directive({\n selector: '[siPopover]',\n exportAs: 'si-popover'\n})\nexport class SiPopoverDirective implements OnInit, OnDestroy {\n /**\n * The popover text to be displayed\n */\n readonly siPopover = input<string | TemplateRef<any>>();\n\n /**\n * The placement of the popover. One of 'top', 'start', end', 'bottom'\n *\n * @defaultValue 'auto'\n */\n readonly placement = input<keyof typeof positions>('auto');\n\n readonly placementInternal = computed(() => {\n if (\n this.placement() !== 'top' &&\n this.placement() !== 'bottom' &&\n this.placement() !== 'start' &&\n this.placement() !== 'end'\n ) {\n return 'auto';\n } else {\n return this.placement();\n }\n });\n\n /**\n * The trigger event(s) on which the popover shall be displayed.\n * Applications can pass multiple triggers separated by space.\n * Supported events are 'click', 'hover' and 'focus'.\n *\n * **Limitations:**\n * Safari browsers do not raise a 'focus' event on host element click and 'focus'\n * on tab key has to be enabled in the advanced browser settings.\n *\n * @defaultValue 'click'\n */\n readonly triggers = input('click');\n\n /**\n * The title to be displayed on top for the popover\n *\n * @defaultValue ''\n */\n readonly popoverTitle = input('');\n\n /**\n * The class that will be applied to container of the popover\n *\n * @defaultValue ''\n */\n readonly containerClass = input('');\n\n /**\n * The flag determines whether to close popover on clicking outside\n *\n * @defaultValue true\n */\n readonly outsideClick = input(true, { transform: booleanAttribute });\n\n /**\n * The icon to be displayed besides popover title\n */\n readonly icon = input<string>();\n\n /**\n * Specify whether or not the popover is currently shown\n *\n * @defaultValue false\n */\n readonly isOpen = input<boolean | undefined, unknown>(false, { transform: booleanAttribute });\n\n /**\n * The context for the attached template\n */\n readonly popoverContext = input<unknown>();\n\n /**\n * Emits an event when the popover is shown\n */\n readonly shown = output<void>();\n\n /**\n * Emits an event when the popover is hidden\n */\n readonly hidden = output<void>();\n\n private overlayref?: OverlayRef;\n private overlay = inject(Overlay);\n private elementRef = inject(ElementRef);\n private destroyer = new Subject<void>();\n\n ngOnInit(): void {\n if (this.isOpen()) {\n this.show();\n }\n }\n\n ngOnDestroy(): void {\n this.overlayref?.dispose();\n this.destroyer.next();\n this.destroyer.complete();\n }\n\n /**\n * Displays popover and emits 'shown' event.\n */\n show(): void {\n if (!this.overlayref?.hasAttached()) {\n const triggers = this.triggers();\n const backdrop =\n this.outsideClick() && !hasTrigger('focus', triggers) && !hasTrigger('hover', triggers);\n this.overlayref = getOverlay(\n this.elementRef,\n this.overlay,\n backdrop,\n this.placementInternal()\n );\n if (backdrop) {\n this.overlayref\n .backdropClick()\n .pipe(takeUntil(this.destroyer))\n .subscribe(() => this.hide());\n }\n }\n\n if (this.overlayref.hasAttached()) {\n return;\n }\n const popoverPortal = new ComponentPortal(PopoverComponent);\n const popoverRef: ComponentRef<PopoverComponent> = this.overlayref.attach(popoverPortal);\n\n popoverRef.setInput('popover', this.siPopover());\n popoverRef.setInput('popoverTitle', this.popoverTitle());\n popoverRef.setInput('icon', this.icon());\n popoverRef.setInput('containerClass', this.containerClass());\n popoverRef.setInput('popoverContext', this.popoverContext());\n\n const positionStrategy = getPositionStrategy(this.overlayref);\n positionStrategy?.positionChanges\n .pipe(takeUntil(this.destroyer))\n .subscribe(change => popoverRef.instance.updateArrow(change, this.elementRef));\n\n this.shown.emit();\n }\n\n /**\n * Hides the popover and emits 'hidden' event.\n */\n hide(): void {\n if (this.overlayref?.hasAttached()) {\n this.overlayref?.detach();\n this.hidden.emit();\n this.destroyer.next();\n }\n }\n\n /**\n * Updates the position of the popover based on the position strategy.\n */\n updatePosition(): void {\n this.overlayref?.updatePosition();\n }\n\n @HostListener('mouseenter', ['\"hover\"'])\n @HostListener('mouseleave', ['\"hover\"'])\n @HostListener('focus', ['\"focus\"'])\n @HostListener('click', ['\"click\"'])\n protected onTrigger(trigger: string): void {\n if (hasTrigger(trigger, this.triggers())) {\n if (this.overlayref?.hasAttached()) {\n this.hide();\n } else {\n this.show();\n }\n }\n }\n\n @HostListener('touchstart')\n @HostListener('focusout')\n protected focusOut(): void {\n if (hasTrigger('focus', this.triggers())) {\n if (this.outsideClick()) {\n this.hide();\n }\n }\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiPopoverDirective } from './si-popover.directive';\n\n@NgModule({\n imports: [SiPopoverDirective],\n exports: [SiPopoverDirective]\n})\nexport class SiPopoverModule {}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-popover.directive';\nexport * from './si-popover.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"siemens-element-ng-popover.mjs","sources":["../../../../projects/element-ng/popover/si-popover.component.ts","../../../../projects/element-ng/popover/si-popover.component.html","../../../../projects/element-ng/popover/si-popover.directive.ts","../../../../projects/element-ng/popover/si-popover.module.ts","../../../../projects/element-ng/popover/index.ts","../../../../projects/element-ng/popover/siemens-element-ng-popover.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { Component, ElementRef, inject, input, OnInit, signal, TemplateRef } from '@angular/core';\nimport { calculateOverlayArrowPosition, OverlayArrowPosition } from '@siemens/element-ng/common';\nimport { SiIconNextComponent } from '@siemens/element-ng/icon';\n\n@Component({\n selector: 'si-popover',\n imports: [NgClass, NgTemplateOutlet, SiIconNextComponent],\n templateUrl: './si-popover.component.html'\n})\nexport class PopoverComponent implements OnInit {\n readonly popover = input<string | TemplateRef<any>>();\n /** @defaultValue '' */\n readonly popoverTitle = input('');\n /** @defaultValue '' */\n readonly containerClass = input('');\n readonly icon = input<string>();\n readonly popoverContext = input<unknown>();\n\n protected readonly positionClass = signal('');\n protected readonly arrowPos = signal<OverlayArrowPosition | undefined>(undefined);\n protected popoverTemplate: TemplateRef<any> | null = null;\n\n private elementRef = inject(ElementRef);\n\n ngOnInit(): void {\n const popover = this.popover();\n if (popover instanceof TemplateRef) {\n this.popoverTemplate = popover;\n }\n }\n\n /** @internal */\n updateArrow(change: ConnectedOverlayPositionChange, anchor?: ElementRef): void {\n const positionClass = `popover-${change.connectionPair.overlayX}-${change.connectionPair.overlayY}`;\n // need two updates as class changes affect the position\n this.positionClass.set(positionClass);\n const arrowPos = calculateOverlayArrowPosition(change, this.elementRef, anchor);\n this.arrowPos.set(arrowPos);\n }\n}\n","<div\n class=\"popover position-relative focus-outline-padding\"\n [ngClass]=\"[containerClass(), positionClass()]\"\n>\n <div\n class=\"popover-arrow\"\n [style.left.px]=\"arrowPos()?.left\"\n [style.right.px]=\"arrowPos()?.right\"\n ></div>\n @if (popoverTitle()) {\n <div class=\"popover-header\">\n @let iconValue = icon();\n @if (iconValue) {\n <si-icon-next class=\"icon me-2\" [icon]=\"iconValue\" />\n }\n <span class=\"si-title-2\">{{ popoverTitle() }}</span>\n </div>\n }\n <div class=\"popover-body\">\n @if (!popoverTemplate) {\n <div class=\"si-body-2\" [innerHTML]=\"popover()\"></div>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"popoverTemplate\"\n [ngTemplateOutletContext]=\"popoverContext()\"\n />\n }\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n booleanAttribute,\n ComponentRef,\n computed,\n Directive,\n ElementRef,\n HostListener,\n inject,\n input,\n OnDestroy,\n OnInit,\n output,\n TemplateRef\n} from '@angular/core';\nimport { getOverlay, getPositionStrategy, hasTrigger, positions } from '@siemens/element-ng/common';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { PopoverComponent } from './si-popover.component';\n\n@Directive({\n selector: '[siPopover]',\n exportAs: 'si-popover'\n})\nexport class SiPopoverDirective implements OnInit, OnDestroy {\n /**\n * The popover text to be displayed\n */\n readonly siPopover = input<string | TemplateRef<any>>();\n\n /**\n * The placement of the popover. One of 'top', 'start', end', 'bottom'\n *\n * @defaultValue 'auto'\n */\n readonly placement = input<keyof typeof positions>('auto');\n\n readonly placementInternal = computed(() => {\n if (\n this.placement() !== 'top' &&\n this.placement() !== 'bottom' &&\n this.placement() !== 'start' &&\n this.placement() !== 'end'\n ) {\n return 'auto';\n } else {\n return this.placement();\n }\n });\n\n /**\n * The trigger event(s) on which the popover shall be displayed.\n * Applications can pass multiple triggers separated by space.\n * Supported events are 'click', 'hover' and 'focus'.\n *\n * **Limitations:**\n * Safari browsers do not raise a 'focus' event on host element click and 'focus'\n * on tab key has to be enabled in the advanced browser settings.\n *\n * @defaultValue 'click'\n */\n readonly triggers = input('click');\n\n /**\n * The title to be displayed on top for the popover\n *\n * @defaultValue ''\n */\n readonly popoverTitle = input('');\n\n /**\n * The class that will be applied to container of the popover\n *\n * @defaultValue ''\n */\n readonly containerClass = input('');\n\n /**\n * The flag determines whether to close popover on clicking outside\n *\n * @defaultValue true\n */\n readonly outsideClick = input(true, { transform: booleanAttribute });\n\n /**\n * The icon to be displayed besides popover title\n */\n readonly icon = input<string>();\n\n /**\n * Specify whether or not the popover is currently shown\n *\n * @defaultValue false\n */\n readonly isOpen = input<boolean | undefined, unknown>(false, { transform: booleanAttribute });\n\n /**\n * The context for the attached template\n */\n readonly popoverContext = input<unknown>();\n\n /**\n * Emits an event when the popover is shown\n */\n readonly shown = output<void>();\n\n /**\n * Emits an event when the popover is hidden\n */\n readonly hidden = output<void>();\n\n private overlayref?: OverlayRef;\n private overlay = inject(Overlay);\n private elementRef = inject(ElementRef);\n private destroyer = new Subject<void>();\n\n ngOnInit(): void {\n if (this.isOpen()) {\n this.show();\n }\n }\n\n ngOnDestroy(): void {\n this.overlayref?.dispose();\n this.destroyer.next();\n this.destroyer.complete();\n }\n\n /**\n * Displays popover and emits 'shown' event.\n */\n show(): void {\n if (!this.overlayref?.hasAttached()) {\n const triggers = this.triggers();\n const backdrop =\n this.outsideClick() && !hasTrigger('focus', triggers) && !hasTrigger('hover', triggers);\n this.overlayref = getOverlay(\n this.elementRef,\n this.overlay,\n backdrop,\n this.placementInternal()\n );\n if (backdrop) {\n this.overlayref\n .backdropClick()\n .pipe(takeUntil(this.destroyer))\n .subscribe(() => this.hide());\n }\n }\n\n if (this.overlayref.hasAttached()) {\n return;\n }\n const popoverPortal = new ComponentPortal(PopoverComponent);\n const popoverRef: ComponentRef<PopoverComponent> = this.overlayref.attach(popoverPortal);\n\n popoverRef.setInput('popover', this.siPopover());\n popoverRef.setInput('popoverTitle', this.popoverTitle());\n popoverRef.setInput('icon', this.icon());\n popoverRef.setInput('containerClass', this.containerClass());\n popoverRef.setInput('popoverContext', this.popoverContext());\n\n const positionStrategy = getPositionStrategy(this.overlayref);\n positionStrategy?.positionChanges\n .pipe(takeUntil(this.destroyer))\n .subscribe(change => popoverRef.instance.updateArrow(change, this.elementRef));\n\n this.shown.emit();\n }\n\n /**\n * Hides the popover and emits 'hidden' event.\n */\n hide(): void {\n if (this.overlayref?.hasAttached()) {\n this.overlayref?.detach();\n this.hidden.emit();\n this.destroyer.next();\n }\n }\n\n /**\n * Updates the position of the popover based on the position strategy.\n */\n updatePosition(): void {\n this.overlayref?.updatePosition();\n }\n\n @HostListener('mouseenter', ['\"hover\"'])\n @HostListener('mouseleave', ['\"hover\"'])\n @HostListener('focus', ['\"focus\"'])\n @HostListener('click', ['\"click\"'])\n protected onTrigger(trigger: string): void {\n if (hasTrigger(trigger, this.triggers())) {\n if (this.overlayref?.hasAttached()) {\n this.hide();\n } else {\n this.show();\n }\n }\n }\n\n @HostListener('touchstart')\n @HostListener('focusout')\n protected focusOut(): void {\n if (hasTrigger('focus', this.triggers())) {\n if (this.outsideClick()) {\n this.hide();\n }\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiPopoverDirective } from './si-popover.directive';\n\n@NgModule({\n imports: [SiPopoverDirective],\n exports: [SiPopoverDirective]\n})\nexport class SiPopoverModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-popover.directive';\nexport * from './si-popover.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { input, computed, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
- import * as i1 from '@siemens/element-translate-ng/translate';
4
- import { SiTranslateModule } from '@siemens/element-translate-ng/translate';
3
+ import { SiTranslatePipe } from '@siemens/element-translate-ng/translate';
5
4
 
6
5
  /**
7
- * Copyright Siemens 2016 - 2025.
6
+ * Copyright (c) Siemens 2016 - 2025
8
7
  * SPDX-License-Identifier: MIT
9
8
  */
10
9
  class SiProgressbarComponent {
@@ -46,21 +45,21 @@ class SiProgressbarComponent {
46
45
  height = input('normal');
47
46
  percent = computed(() => (100 * Number(this.value() ?? 0)) / Number(this.max() ?? 100));
48
47
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiProgressbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
49
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiProgressbarComponent, isStandalone: true, selector: "si-progressbar", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (heading() || progress()) {\n <div\n class=\"d-flex align-items-baseline\"\n [class.justify-content-end]=\"!heading()\"\n [class.justify-content-between]=\"heading()\"\n >\n @if (heading()) {\n <span class=\"si-title-2 mb-2\">{{ heading() | translate }}</span>\n }\n @if (progress()) {\n <small class=\"text-nowrap\">{{ progress() }}</small>\n }\n </div>\n}\n<div class=\"progress\" [class.si-progress-small]=\"height() === 'small'\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value()\"\n [attr.aria-valuetext]=\"value() !== undefined ? percent().toFixed(0) + '%' : null\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [style.width.%]=\"percent()\"\n >\n </div>\n</div>\n", styles: [".si-progress-small{block-size:.125rem;border-radius:.0625rem}\n"], dependencies: [{ kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
48
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiProgressbarComponent, isStandalone: true, selector: "si-progressbar", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (heading() || progress()) {\n <div\n class=\"d-flex align-items-baseline\"\n [class.justify-content-end]=\"!heading()\"\n [class.justify-content-between]=\"heading()\"\n >\n @if (heading()) {\n <span class=\"si-title-2 mb-2\">{{ heading() | translate }}</span>\n }\n @if (progress()) {\n <small class=\"text-nowrap\">{{ progress() }}</small>\n }\n </div>\n}\n<div class=\"progress\" [class.si-progress-small]=\"height() === 'small'\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value()\"\n [attr.aria-valuetext]=\"value() !== undefined ? percent().toFixed(0) + '%' : null\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [style.width.%]=\"percent()\"\n >\n </div>\n</div>\n", styles: [".si-progress-small{block-size:.125rem;border-radius:.0625rem}\n"], dependencies: [{ kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
50
49
  }
51
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiProgressbarComponent, decorators: [{
52
51
  type: Component,
53
- args: [{ selector: 'si-progressbar', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SiTranslateModule], template: "@if (heading() || progress()) {\n <div\n class=\"d-flex align-items-baseline\"\n [class.justify-content-end]=\"!heading()\"\n [class.justify-content-between]=\"heading()\"\n >\n @if (heading()) {\n <span class=\"si-title-2 mb-2\">{{ heading() | translate }}</span>\n }\n @if (progress()) {\n <small class=\"text-nowrap\">{{ progress() }}</small>\n }\n </div>\n}\n<div class=\"progress\" [class.si-progress-small]=\"height() === 'small'\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value()\"\n [attr.aria-valuetext]=\"value() !== undefined ? percent().toFixed(0) + '%' : null\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [style.width.%]=\"percent()\"\n >\n </div>\n</div>\n", styles: [".si-progress-small{block-size:.125rem;border-radius:.0625rem}\n"] }]
52
+ args: [{ selector: 'si-progressbar', imports: [SiTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (heading() || progress()) {\n <div\n class=\"d-flex align-items-baseline\"\n [class.justify-content-end]=\"!heading()\"\n [class.justify-content-between]=\"heading()\"\n >\n @if (heading()) {\n <span class=\"si-title-2 mb-2\">{{ heading() | translate }}</span>\n }\n @if (progress()) {\n <small class=\"text-nowrap\">{{ progress() }}</small>\n }\n </div>\n}\n<div class=\"progress\" [class.si-progress-small]=\"height() === 'small'\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value()\"\n [attr.aria-valuetext]=\"value() !== undefined ? percent().toFixed(0) + '%' : null\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [style.width.%]=\"percent()\"\n >\n </div>\n</div>\n", styles: [".si-progress-small{block-size:.125rem;border-radius:.0625rem}\n"] }]
54
53
  }] });
55
54
 
56
55
  /**
57
- * Copyright Siemens 2016 - 2025.
56
+ * Copyright (c) Siemens 2016 - 2025
58
57
  * SPDX-License-Identifier: MIT
59
58
  */
60
59
  class SiProgressbarModule {
61
60
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiProgressbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
62
61
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: SiProgressbarModule, imports: [SiProgressbarComponent], exports: [SiProgressbarComponent] });
63
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiProgressbarModule, imports: [SiProgressbarComponent] });
62
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiProgressbarModule });
64
63
  }
65
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiProgressbarModule, decorators: [{
66
65
  type: NgModule,
@@ -71,7 +70,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
71
70
  }] });
72
71
 
73
72
  /**
74
- * Copyright Siemens 2016 - 2025.
73
+ * Copyright (c) Siemens 2016 - 2025
75
74
  * SPDX-License-Identifier: MIT
76
75
  */
77
76
 
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-progressbar.mjs","sources":["../../../../projects/element-ng/progressbar/si-progressbar.component.ts","../../../../projects/element-ng/progressbar/si-progressbar.component.html","../../../../projects/element-ng/progressbar/si-progressbar.module.ts","../../../../projects/element-ng/progressbar/index.ts","../../../../projects/element-ng/progressbar/siemens-element-ng-progressbar.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { SiTranslateModule } from '@siemens/element-translate-ng/translate';\n\n@Component({\n selector: 'si-progressbar',\n templateUrl: './si-progressbar.component.html',\n styleUrl: './si-progressbar.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SiTranslateModule]\n})\nexport class SiProgressbarComponent {\n /**\n * Needed for a11y\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_PROGRESSBAR.LABEL:Progress`\n * ```\n */\n readonly ariaLabel = input($localize`:@@SI_PROGRESSBAR.LABEL:Progress`);\n\n /**\n * Max value for progressbar\n *\n * @defaultValue 100\n */\n readonly max = input(100);\n\n /**\n * Current value\n *\n * @defaultValue 0\n */\n readonly value = input<number | undefined>(0);\n\n /**\n * Heading to display on top of progress bar.\n */\n readonly heading = input<string>();\n\n /**\n * Optional progress text to be shown on top right (in LTR).\n * It can be percentage value or a progress status. E.g `50 %` or `Downloading 2/8`.\n */\n readonly progress = input<string>();\n\n /**\n * Height for progress bar.\n *\n * @defaultValue 'normal'\n */\n readonly height = input<ProgressbarHeight>('normal');\n\n protected readonly percent = computed(\n () => (100 * Number(this.value() ?? 0)) / Number(this.max() ?? 100)\n );\n}\n\nexport type ProgressbarHeight = 'small' | 'normal';\n","@if (heading() || progress()) {\n <div\n class=\"d-flex align-items-baseline\"\n [class.justify-content-end]=\"!heading()\"\n [class.justify-content-between]=\"heading()\"\n >\n @if (heading()) {\n <span class=\"si-title-2 mb-2\">{{ heading() | translate }}</span>\n }\n @if (progress()) {\n <small class=\"text-nowrap\">{{ progress() }}</small>\n }\n </div>\n}\n<div class=\"progress\" [class.si-progress-small]=\"height() === 'small'\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value()\"\n [attr.aria-valuetext]=\"value() !== undefined ? percent().toFixed(0) + '%' : null\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [style.width.%]=\"percent()\"\n >\n </div>\n</div>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiProgressbarComponent } from './si-progressbar.component';\n\n@NgModule({\n imports: [SiProgressbarComponent],\n exports: [SiProgressbarComponent]\n})\nexport class SiProgressbarModule {}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-progressbar.component';\nexport * from './si-progressbar.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAAA;;;AAGG;MAWU,sBAAsB,CAAA;AACjC;;;;;;;AAOG;AACM,IAAA,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA,CAAA,gCAAA,CAAkC,CAAC;AAEvE;;;;AAIG;AACM,IAAA,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;AAEzB;;;;AAIG;AACM,IAAA,KAAK,GAAG,KAAK,CAAqB,CAAC,CAAC;AAE7C;;AAEG;IACM,OAAO,GAAG,KAAK,EAAU;AAElC;;;AAGG;IACM,QAAQ,GAAG,KAAK,EAAU;AAEnC;;;;AAIG;AACM,IAAA,MAAM,GAAG,KAAK,CAAoB,QAAQ,CAAC;AAEjC,IAAA,OAAO,GAAG,QAAQ,CACnC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CACpE;uGA7CU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdnC,00BA2BA,EAAA,MAAA,EAAA,CAAA,iEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDfY,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAEhB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,mBAGT,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAAA,00BAAA,EAAA,MAAA,EAAA,CAAA,iEAAA,CAAA,EAAA;;;AEZ9B;;;AAGG;MASU,mBAAmB,CAAA;uGAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAnB,mBAAmB,EAAA,OAAA,EAAA,CAHpB,sBAAsB,CAAA,EAAA,OAAA,EAAA,CACtB,sBAAsB,CAAA,EAAA,CAAA;AAErB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHpB,sBAAsB,CAAA,EAAA,CAAA;;2FAGrB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,sBAAsB,CAAC;oBACjC,OAAO,EAAE,CAAC,sBAAsB;AACjC,iBAAA;;;ACXD;;;AAGG;;ACHH;;AAEG;;;;"}
1
+ {"version":3,"file":"siemens-element-ng-progressbar.mjs","sources":["../../../../projects/element-ng/progressbar/si-progressbar.component.ts","../../../../projects/element-ng/progressbar/si-progressbar.component.html","../../../../projects/element-ng/progressbar/si-progressbar.module.ts","../../../../projects/element-ng/progressbar/index.ts","../../../../projects/element-ng/progressbar/siemens-element-ng-progressbar.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\n@Component({\n selector: 'si-progressbar',\n imports: [SiTranslatePipe],\n templateUrl: './si-progressbar.component.html',\n styleUrl: './si-progressbar.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiProgressbarComponent {\n /**\n * Needed for a11y\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_PROGRESSBAR.LABEL:Progress`\n * ```\n */\n readonly ariaLabel = input($localize`:@@SI_PROGRESSBAR.LABEL:Progress`);\n\n /**\n * Max value for progressbar\n *\n * @defaultValue 100\n */\n readonly max = input(100);\n\n /**\n * Current value\n *\n * @defaultValue 0\n */\n readonly value = input<number | undefined>(0);\n\n /**\n * Heading to display on top of progress bar.\n */\n readonly heading = input<string>();\n\n /**\n * Optional progress text to be shown on top right (in LTR).\n * It can be percentage value or a progress status. E.g `50 %` or `Downloading 2/8`.\n */\n readonly progress = input<string>();\n\n /**\n * Height for progress bar.\n *\n * @defaultValue 'normal'\n */\n readonly height = input<ProgressbarHeight>('normal');\n\n protected readonly percent = computed(\n () => (100 * Number(this.value() ?? 0)) / Number(this.max() ?? 100)\n );\n}\n\nexport type ProgressbarHeight = 'small' | 'normal';\n","@if (heading() || progress()) {\n <div\n class=\"d-flex align-items-baseline\"\n [class.justify-content-end]=\"!heading()\"\n [class.justify-content-between]=\"heading()\"\n >\n @if (heading()) {\n <span class=\"si-title-2 mb-2\">{{ heading() | translate }}</span>\n }\n @if (progress()) {\n <small class=\"text-nowrap\">{{ progress() }}</small>\n }\n </div>\n}\n<div class=\"progress\" [class.si-progress-small]=\"height() === 'small'\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value()\"\n [attr.aria-valuetext]=\"value() !== undefined ? percent().toFixed(0) + '%' : null\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [style.width.%]=\"percent()\"\n >\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiProgressbarComponent } from './si-progressbar.component';\n\n@NgModule({\n imports: [SiProgressbarComponent],\n exports: [SiProgressbarComponent]\n})\nexport class SiProgressbarModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-progressbar.component';\nexport * from './si-progressbar.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { inject, NgZone, PLATFORM_ID, Injectable, input, booleanAttribute, outpu
4
4
  import { Observable } from 'rxjs';
5
5
 
6
6
  /**
7
- * Copyright Siemens 2016 - 2025.
7
+ * Copyright (c) Siemens 2016 - 2025
8
8
  * SPDX-License-Identifier: MIT
9
9
  */
10
10
  /**
@@ -153,7 +153,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
153
153
  }], ctorParameters: () => [] });
154
154
 
155
155
  /**
156
- * Copyright Siemens 2016 - 2025.
156
+ * Copyright (c) Siemens 2016 - 2025
157
157
  * SPDX-License-Identifier: MIT
158
158
  */
159
159
  /**
@@ -195,7 +195,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
195
195
  }] });
196
196
 
197
197
  /**
198
- * Copyright Siemens 2016 - 2025.
198
+ * Copyright (c) Siemens 2016 - 2025
199
199
  * SPDX-License-Identifier: MIT
200
200
  */
201
201
  // keep in sync with the Bootstrap variables
@@ -306,7 +306,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
306
306
  }] });
307
307
 
308
308
  /**
309
- * Copyright Siemens 2016 - 2025.
309
+ * Copyright (c) Siemens 2016 - 2025
310
310
  * SPDX-License-Identifier: MIT
311
311
  */
312
312
  class SiResizeObserverModule {
@@ -323,7 +323,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
323
323
  }] });
324
324
 
325
325
  /**
326
- * Copyright Siemens 2016 - 2025.
326
+ * Copyright (c) Siemens 2016 - 2025
327
327
  * SPDX-License-Identifier: MIT
328
328
  */
329
329
 
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-resize-observer.mjs","sources":["../../../../projects/element-ng/resize-observer/resize-observer.service.ts","../../../../projects/element-ng/resize-observer/si-resize-observer.directive.ts","../../../../projects/element-ng/resize-observer/si-responsive-container.directive.ts","../../../../projects/element-ng/resize-observer/si-resize-observer.module.ts","../../../../projects/element-ng/resize-observer/index.ts","../../../../projects/element-ng/resize-observer/siemens-element-ng-resize-observer.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { isPlatformBrowser } from '@angular/common';\nimport { inject, Injectable, NgZone, PLATFORM_ID } from '@angular/core';\nimport { Observable, Subscriber } from 'rxjs';\n\nexport interface ElementDimensions {\n width: number;\n height: number;\n}\n\ninterface ResizeSubscriber {\n sub: Subscriber<ElementDimensions>;\n dim?: ElementDimensions;\n throttle: number;\n blocked: boolean;\n emitImmediate?: boolean;\n}\n\ninterface Listener {\n element: Element;\n subscribers: ResizeSubscriber[];\n}\n\ninterface QueueEntry {\n element: Element;\n subscriber: ResizeSubscriber;\n unblock: boolean;\n force: boolean;\n}\n\n/**\n * A service wrapping `ResizeObserver`. This is a service for those reasons:\n * - only one `ResizeObserver` should be used for performance reason.\n * - For Angular change detection to work, explicit `ngZone` calls are necessary\n * - Observable stream\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ResizeObserverService {\n private listeners = new Map<Element, Listener>();\n private resizeObserver?: ResizeObserver;\n private timerQueue = new Map<number, QueueEntry[]>();\n private zone = inject(NgZone);\n\n constructor() {\n const isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n if (!isBrowser || !ResizeObserver) {\n return;\n }\n this.resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]) =>\n entries.forEach(entry => this.handleElement(entry.target))\n );\n }\n\n /**\n * Observe the size of an element. Returns an observable with the changes.\n * @param element - The element to observe\n * @param throttle - Throttle time in ms. Will emit this time after the resize\n * @param emitInitial - Emit the initial size after subscribe?\n * @param emitImmediate - Emit an event immediately after the size changes. Useful e.g. for visibility checks.\n */\n observe(\n element: Element,\n throttle: number,\n emitInitial?: boolean,\n emitImmediate?: boolean\n ): Observable<ElementDimensions> {\n let entry = this.listeners.get(element);\n if (!entry) {\n entry = { element, subscribers: [] };\n this.listeners.set(element, entry);\n }\n\n return new Observable<ElementDimensions>(subscriber => {\n const sub: ResizeSubscriber = {\n sub: subscriber,\n dim: undefined,\n throttle,\n blocked: false,\n emitImmediate\n };\n this.subscriberAdded(entry!, sub, emitInitial);\n return () => this.subscriberRemoved(entry!, sub);\n });\n }\n\n private subscriberAdded(\n entry: Listener,\n subscriber: ResizeSubscriber,\n emitInitial?: boolean\n ): void {\n entry.subscribers.push(subscriber);\n if (entry.subscribers.length === 1) {\n this.resizeObserver?.observe(entry.element);\n }\n\n if (emitInitial) {\n this.schedule(0, entry.element, subscriber, false, true);\n }\n }\n\n private subscriberRemoved(entry: Listener, subscriber: ResizeSubscriber): void {\n const index = entry.subscribers.indexOf(subscriber);\n if (index >= 0) {\n entry.subscribers.splice(index, 1);\n }\n if (entry.subscribers.length === 0) {\n // no more subscribers, tear down everything\n this.resizeObserver?.unobserve(entry.element);\n this.listeners.delete(entry.element);\n }\n this.unschedule(subscriber);\n // close down, no re-subscription possible\n subscriber.sub.complete();\n }\n\n private handleElement(element: Element): void {\n const entry = this.listeners.get(element);\n if (!entry) {\n this.resizeObserver?.unobserve(element);\n return;\n }\n entry.subscribers.forEach(sub => this.handleResizeSubscriber(element, sub));\n }\n\n private handleResizeSubscriber(element: Element, entry: ResizeSubscriber): void {\n if (entry.blocked) {\n return;\n }\n if (entry.emitImmediate) {\n this.schedule(0, element, entry, false);\n }\n this.schedule(entry.throttle, element, entry, true);\n }\n\n private emitSize(element: Element, entry: ResizeSubscriber, force = false): void {\n const dimensions = { width: element.clientWidth, height: element.clientHeight };\n if (\n !force &&\n entry.dim?.width === dimensions.width &&\n entry.dim?.height === dimensions.height\n ) {\n // Prevent spurious emissions. Subpixels and all..\n return;\n }\n entry.dim = dimensions;\n entry.sub.next(dimensions);\n }\n\n private schedule(\n timeout: number,\n element: Element,\n subscriber: ResizeSubscriber,\n unblock: boolean,\n force = false\n ): void {\n if (unblock) {\n subscriber.blocked = true;\n }\n\n let queue = this.timerQueue.get(timeout);\n if (!queue) {\n queue = [];\n this.timerQueue.set(timeout, queue);\n setTimeout(() => {\n this.timerQueue.delete(timeout);\n this.processQueue(queue!);\n }, timeout);\n }\n\n queue.push({ element, subscriber, unblock, force });\n }\n\n private unschedule(entry: ResizeSubscriber): void {\n const queued = this.timerQueue.get(entry.throttle);\n if (queued) {\n const index = queued.findIndex(q => q.subscriber === entry);\n if (index > -1) {\n queued.splice(index, 1);\n }\n }\n }\n\n private processQueue(queue: QueueEntry[]): void {\n this.zone.run(() => {\n queue?.forEach(q => {\n if (q.unblock) {\n q.subscriber.blocked = false;\n }\n this.emitSize(q.element, q.subscriber, q.force);\n });\n });\n }\n\n /**\n * check size on all observed elements. Only use in testing!\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n _checkAll(): void {\n this.listeners.forEach(entry => this.handleElement(entry.element));\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n Directive,\n ElementRef,\n inject,\n input,\n OnDestroy,\n OnInit,\n output\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { ElementDimensions, ResizeObserverService } from './resize-observer.service';\n\n/**\n * Directive to emit events on element size change. Use like this:\n * `<div (siResizeObserver)=\"handleResize($event)\">`\n * When the size of the element changes, an event in the format\n * `{ width: number, height: number }`\n * will be emitted. Also an initial event will be emitted on init.\n *\n * By default, events are throttled and to an event every 100ms. To change\n * this, add `[resizeThrottle]=\"200\"` on the same element. Input in milliseconds.\n */\n@Directive({\n selector: '[siResizeObserver]'\n})\nexport class SiResizeObserverDirective implements OnInit, OnDestroy {\n /** @defaultValue 100 */\n readonly resizeThrottle = input(100);\n /** @defaultValue true */\n // TODO: switch default to false in v48.0.0\n readonly emitInitial = input(true, { transform: booleanAttribute });\n readonly siResizeObserver = output<ElementDimensions>();\n\n private subs?: Subscription;\n private element = inject(ElementRef);\n private service = inject(ResizeObserverService);\n\n ngOnInit(): void {\n this.subs = this.service\n .observe(this.element.nativeElement, this.resizeThrottle(), this.emitInitial())\n .subscribe(value => this.siResizeObserver.emit(value));\n }\n\n ngOnDestroy(): void {\n this.subs?.unsubscribe();\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, ElementRef, inject, input, OnDestroy, OnInit, signal } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { ResizeObserverService } from './resize-observer.service';\n\nexport interface Breakpoints {\n smMinimum: number;\n mdMinimum: number;\n lgMinimum: number;\n xlMinimum: number;\n xxlMinimum: number;\n}\n\n// keep in sync with the Bootstrap variables\nexport const BOOTSTRAP_BREAKPOINTS: Breakpoints = {\n smMinimum: 576,\n mdMinimum: 768,\n lgMinimum: 992,\n xlMinimum: 1200,\n xxlMinimum: 1400\n};\n\n/**\n * Directive to automatically set `si-container-*` classes so Bootstrap column classes work\n * in the context of the container instead of viewport size.\n */\n@Directive({\n selector: '[siResponsiveContainer]',\n exportAs: 'siResponsiveContainer',\n host: {\n '[class.si-container-xs]': 'xs()',\n '[class.si-container-sm]': 'sm()',\n '[class.si-container-md]': 'md()',\n '[class.si-container-lg]': 'lg()',\n '[class.si-container-xl]': 'xl()',\n '[class.si-container-xxl]': 'xxl()'\n }\n})\nexport class SiResponsiveContainerDirective implements OnInit, OnDestroy {\n /** @defaultValue false */\n readonly xs = signal(false);\n /**\n * @deprecated Use {@link xs} instead.\n * @defaultValue false\n **/\n isXs = false;\n /** @defaultValue false */\n readonly sm = signal(false);\n /**\n * @deprecated Use {@link sm} instead.\n * @defaultValue false\n **/\n isSm = false;\n /** @defaultValue false */\n readonly md = signal(false);\n /**\n * @deprecated Use {@link md} instead.\n * @defaultValue false\n **/\n isMd = false;\n /** @defaultValue false */\n readonly lg = signal(false);\n /**\n * @deprecated Use {@link lg} instead.\n * @defaultValue false\n **/\n isLg = false;\n /** @defaultValue false */\n readonly xl = signal(false);\n /**\n * @deprecated Use {@link xl} instead.\n * @defaultValue false\n **/\n isXl = false;\n /** @defaultValue false */\n readonly xxl = signal(false);\n /**\n * @deprecated Use {@link xxl} instead.\n * @defaultValue false\n **/\n isXxl = false;\n\n /** @defaultValue 100 */\n readonly resizeThrottle = input(100);\n readonly breakpoints = input<Breakpoints>();\n\n private subs?: Subscription;\n\n private element = inject(ElementRef);\n private service = inject(ResizeObserverService);\n\n ngOnInit(): void {\n this.subs = this.service\n .observe(this.element.nativeElement, this.resizeThrottle(), true)\n .subscribe(event => this.setResponsiveSize(event.width, event.height));\n }\n\n ngOnDestroy(): void {\n this.subs?.unsubscribe();\n }\n\n private setResponsiveSize(width: number, height: number): void {\n if (!width && !height) {\n // element is not visible, no point in changing anything\n return;\n }\n const breakpoints = this.breakpoints() ?? BOOTSTRAP_BREAKPOINTS;\n\n this.xs.set(width < breakpoints.smMinimum);\n this.isXs = this.xs();\n this.sm.set(width >= breakpoints.smMinimum && width < breakpoints.mdMinimum);\n this.isSm = this.sm();\n this.md.set(width >= breakpoints.mdMinimum && width < breakpoints.lgMinimum);\n this.isMd = this.md();\n this.lg.set(width >= breakpoints.lgMinimum && width < breakpoints.xlMinimum);\n this.isLg = this.lg();\n this.xl.set(width >= breakpoints.xlMinimum && width < breakpoints.xxlMinimum);\n this.isXl = this.xl();\n this.xxl.set(width >= breakpoints.xxlMinimum);\n this.isXxl = this.xxl();\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiResizeObserverDirective } from './si-resize-observer.directive';\nimport { SiResponsiveContainerDirective } from './si-responsive-container.directive';\n\n@NgModule({\n imports: [SiResizeObserverDirective, SiResponsiveContainerDirective],\n exports: [SiResizeObserverDirective, SiResponsiveContainerDirective]\n})\nexport class SiResizeObserverModule {}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './resize-observer.service';\nexport * from './si-resize-observer.directive';\nexport * from './si-resize-observer.module';\nexport * from './si-responsive-container.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"siemens-element-ng-resize-observer.mjs","sources":["../../../../projects/element-ng/resize-observer/resize-observer.service.ts","../../../../projects/element-ng/resize-observer/si-resize-observer.directive.ts","../../../../projects/element-ng/resize-observer/si-responsive-container.directive.ts","../../../../projects/element-ng/resize-observer/si-resize-observer.module.ts","../../../../projects/element-ng/resize-observer/index.ts","../../../../projects/element-ng/resize-observer/siemens-element-ng-resize-observer.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { isPlatformBrowser } from '@angular/common';\nimport { inject, Injectable, NgZone, PLATFORM_ID } from '@angular/core';\nimport { Observable, Subscriber } from 'rxjs';\n\nexport interface ElementDimensions {\n width: number;\n height: number;\n}\n\ninterface ResizeSubscriber {\n sub: Subscriber<ElementDimensions>;\n dim?: ElementDimensions;\n throttle: number;\n blocked: boolean;\n emitImmediate?: boolean;\n}\n\ninterface Listener {\n element: Element;\n subscribers: ResizeSubscriber[];\n}\n\ninterface QueueEntry {\n element: Element;\n subscriber: ResizeSubscriber;\n unblock: boolean;\n force: boolean;\n}\n\n/**\n * A service wrapping `ResizeObserver`. This is a service for those reasons:\n * - only one `ResizeObserver` should be used for performance reason.\n * - For Angular change detection to work, explicit `ngZone` calls are necessary\n * - Observable stream\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ResizeObserverService {\n private listeners = new Map<Element, Listener>();\n private resizeObserver?: ResizeObserver;\n private timerQueue = new Map<number, QueueEntry[]>();\n private zone = inject(NgZone);\n\n constructor() {\n const isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n if (!isBrowser || !ResizeObserver) {\n return;\n }\n this.resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]) =>\n entries.forEach(entry => this.handleElement(entry.target))\n );\n }\n\n /**\n * Observe the size of an element. Returns an observable with the changes.\n * @param element - The element to observe\n * @param throttle - Throttle time in ms. Will emit this time after the resize\n * @param emitInitial - Emit the initial size after subscribe?\n * @param emitImmediate - Emit an event immediately after the size changes. Useful e.g. for visibility checks.\n */\n observe(\n element: Element,\n throttle: number,\n emitInitial?: boolean,\n emitImmediate?: boolean\n ): Observable<ElementDimensions> {\n let entry = this.listeners.get(element);\n if (!entry) {\n entry = { element, subscribers: [] };\n this.listeners.set(element, entry);\n }\n\n return new Observable<ElementDimensions>(subscriber => {\n const sub: ResizeSubscriber = {\n sub: subscriber,\n dim: undefined,\n throttle,\n blocked: false,\n emitImmediate\n };\n this.subscriberAdded(entry!, sub, emitInitial);\n return () => this.subscriberRemoved(entry!, sub);\n });\n }\n\n private subscriberAdded(\n entry: Listener,\n subscriber: ResizeSubscriber,\n emitInitial?: boolean\n ): void {\n entry.subscribers.push(subscriber);\n if (entry.subscribers.length === 1) {\n this.resizeObserver?.observe(entry.element);\n }\n\n if (emitInitial) {\n this.schedule(0, entry.element, subscriber, false, true);\n }\n }\n\n private subscriberRemoved(entry: Listener, subscriber: ResizeSubscriber): void {\n const index = entry.subscribers.indexOf(subscriber);\n if (index >= 0) {\n entry.subscribers.splice(index, 1);\n }\n if (entry.subscribers.length === 0) {\n // no more subscribers, tear down everything\n this.resizeObserver?.unobserve(entry.element);\n this.listeners.delete(entry.element);\n }\n this.unschedule(subscriber);\n // close down, no re-subscription possible\n subscriber.sub.complete();\n }\n\n private handleElement(element: Element): void {\n const entry = this.listeners.get(element);\n if (!entry) {\n this.resizeObserver?.unobserve(element);\n return;\n }\n entry.subscribers.forEach(sub => this.handleResizeSubscriber(element, sub));\n }\n\n private handleResizeSubscriber(element: Element, entry: ResizeSubscriber): void {\n if (entry.blocked) {\n return;\n }\n if (entry.emitImmediate) {\n this.schedule(0, element, entry, false);\n }\n this.schedule(entry.throttle, element, entry, true);\n }\n\n private emitSize(element: Element, entry: ResizeSubscriber, force = false): void {\n const dimensions = { width: element.clientWidth, height: element.clientHeight };\n if (\n !force &&\n entry.dim?.width === dimensions.width &&\n entry.dim?.height === dimensions.height\n ) {\n // Prevent spurious emissions. Subpixels and all..\n return;\n }\n entry.dim = dimensions;\n entry.sub.next(dimensions);\n }\n\n private schedule(\n timeout: number,\n element: Element,\n subscriber: ResizeSubscriber,\n unblock: boolean,\n force = false\n ): void {\n if (unblock) {\n subscriber.blocked = true;\n }\n\n let queue = this.timerQueue.get(timeout);\n if (!queue) {\n queue = [];\n this.timerQueue.set(timeout, queue);\n setTimeout(() => {\n this.timerQueue.delete(timeout);\n this.processQueue(queue!);\n }, timeout);\n }\n\n queue.push({ element, subscriber, unblock, force });\n }\n\n private unschedule(entry: ResizeSubscriber): void {\n const queued = this.timerQueue.get(entry.throttle);\n if (queued) {\n const index = queued.findIndex(q => q.subscriber === entry);\n if (index > -1) {\n queued.splice(index, 1);\n }\n }\n }\n\n private processQueue(queue: QueueEntry[]): void {\n this.zone.run(() => {\n queue?.forEach(q => {\n if (q.unblock) {\n q.subscriber.blocked = false;\n }\n this.emitSize(q.element, q.subscriber, q.force);\n });\n });\n }\n\n /**\n * check size on all observed elements. Only use in testing!\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n _checkAll(): void {\n this.listeners.forEach(entry => this.handleElement(entry.element));\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n Directive,\n ElementRef,\n inject,\n input,\n OnDestroy,\n OnInit,\n output\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { ElementDimensions, ResizeObserverService } from './resize-observer.service';\n\n/**\n * Directive to emit events on element size change. Use like this:\n * `<div (siResizeObserver)=\"handleResize($event)\">`\n * When the size of the element changes, an event in the format\n * `{ width: number, height: number }`\n * will be emitted. Also an initial event will be emitted on init.\n *\n * By default, events are throttled and to an event every 100ms. To change\n * this, add `[resizeThrottle]=\"200\"` on the same element. Input in milliseconds.\n */\n@Directive({\n selector: '[siResizeObserver]'\n})\nexport class SiResizeObserverDirective implements OnInit, OnDestroy {\n /** @defaultValue 100 */\n readonly resizeThrottle = input(100);\n /** @defaultValue true */\n // TODO: switch default to false in v48.0.0\n readonly emitInitial = input(true, { transform: booleanAttribute });\n readonly siResizeObserver = output<ElementDimensions>();\n\n private subs?: Subscription;\n private element = inject(ElementRef);\n private service = inject(ResizeObserverService);\n\n ngOnInit(): void {\n this.subs = this.service\n .observe(this.element.nativeElement, this.resizeThrottle(), this.emitInitial())\n .subscribe(value => this.siResizeObserver.emit(value));\n }\n\n ngOnDestroy(): void {\n this.subs?.unsubscribe();\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, ElementRef, inject, input, OnDestroy, OnInit, signal } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { ResizeObserverService } from './resize-observer.service';\n\nexport interface Breakpoints {\n smMinimum: number;\n mdMinimum: number;\n lgMinimum: number;\n xlMinimum: number;\n xxlMinimum: number;\n}\n\n// keep in sync with the Bootstrap variables\nexport const BOOTSTRAP_BREAKPOINTS: Breakpoints = {\n smMinimum: 576,\n mdMinimum: 768,\n lgMinimum: 992,\n xlMinimum: 1200,\n xxlMinimum: 1400\n};\n\n/**\n * Directive to automatically set `si-container-*` classes so Bootstrap column classes work\n * in the context of the container instead of viewport size.\n */\n@Directive({\n selector: '[siResponsiveContainer]',\n exportAs: 'siResponsiveContainer',\n host: {\n '[class.si-container-xs]': 'xs()',\n '[class.si-container-sm]': 'sm()',\n '[class.si-container-md]': 'md()',\n '[class.si-container-lg]': 'lg()',\n '[class.si-container-xl]': 'xl()',\n '[class.si-container-xxl]': 'xxl()'\n }\n})\nexport class SiResponsiveContainerDirective implements OnInit, OnDestroy {\n /** @defaultValue false */\n readonly xs = signal(false);\n /**\n * @deprecated Use {@link xs} instead.\n * @defaultValue false\n **/\n isXs = false;\n /** @defaultValue false */\n readonly sm = signal(false);\n /**\n * @deprecated Use {@link sm} instead.\n * @defaultValue false\n **/\n isSm = false;\n /** @defaultValue false */\n readonly md = signal(false);\n /**\n * @deprecated Use {@link md} instead.\n * @defaultValue false\n **/\n isMd = false;\n /** @defaultValue false */\n readonly lg = signal(false);\n /**\n * @deprecated Use {@link lg} instead.\n * @defaultValue false\n **/\n isLg = false;\n /** @defaultValue false */\n readonly xl = signal(false);\n /**\n * @deprecated Use {@link xl} instead.\n * @defaultValue false\n **/\n isXl = false;\n /** @defaultValue false */\n readonly xxl = signal(false);\n /**\n * @deprecated Use {@link xxl} instead.\n * @defaultValue false\n **/\n isXxl = false;\n\n /** @defaultValue 100 */\n readonly resizeThrottle = input(100);\n readonly breakpoints = input<Breakpoints>();\n\n private subs?: Subscription;\n\n private element = inject(ElementRef);\n private service = inject(ResizeObserverService);\n\n ngOnInit(): void {\n this.subs = this.service\n .observe(this.element.nativeElement, this.resizeThrottle(), true)\n .subscribe(event => this.setResponsiveSize(event.width, event.height));\n }\n\n ngOnDestroy(): void {\n this.subs?.unsubscribe();\n }\n\n private setResponsiveSize(width: number, height: number): void {\n if (!width && !height) {\n // element is not visible, no point in changing anything\n return;\n }\n const breakpoints = this.breakpoints() ?? BOOTSTRAP_BREAKPOINTS;\n\n this.xs.set(width < breakpoints.smMinimum);\n this.isXs = this.xs();\n this.sm.set(width >= breakpoints.smMinimum && width < breakpoints.mdMinimum);\n this.isSm = this.sm();\n this.md.set(width >= breakpoints.mdMinimum && width < breakpoints.lgMinimum);\n this.isMd = this.md();\n this.lg.set(width >= breakpoints.lgMinimum && width < breakpoints.xlMinimum);\n this.isLg = this.lg();\n this.xl.set(width >= breakpoints.xlMinimum && width < breakpoints.xxlMinimum);\n this.isXl = this.xl();\n this.xxl.set(width >= breakpoints.xxlMinimum);\n this.isXxl = this.xxl();\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiResizeObserverDirective } from './si-resize-observer.directive';\nimport { SiResponsiveContainerDirective } from './si-responsive-container.directive';\n\n@NgModule({\n imports: [SiResizeObserverDirective, SiResponsiveContainerDirective],\n exports: [SiResizeObserverDirective, SiResponsiveContainerDirective]\n})\nexport class SiResizeObserverModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './resize-observer.service';\nexport * from './si-resize-observer.directive';\nexport * from './si-resize-observer.module';\nexport * from './si-responsive-container.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -2,11 +2,10 @@ import * as i0 from '@angular/core';
2
2
  import { input, computed, Component, NgModule } from '@angular/core';
3
3
  import { addIcons, elementStateTick, elementStateExclamationMark, elementOutOfService, elementNotChecked, elementCircleFilled, SiIconNextComponent } from '@siemens/element-ng/icon';
4
4
  import { SiLoadingSpinnerComponent } from '@siemens/element-ng/loading-spinner';
5
- import * as i1 from '@siemens/element-translate-ng/translate';
6
- import { SiTranslateModule } from '@siemens/element-translate-ng/translate';
5
+ import { SiTranslatePipe } from '@siemens/element-translate-ng/translate';
7
6
 
8
7
  /**
9
- * Copyright Siemens 2016 - 2025.
8
+ * Copyright (c) Siemens 2016 - 2025
10
9
  * SPDX-License-Identifier: MIT
11
10
  */
12
11
  class SiResultDetailsListComponent {
@@ -25,11 +24,11 @@ class SiResultDetailsListComponent {
25
24
  elementStateTick
26
25
  });
27
26
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiResultDetailsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiResultDetailsListComponent, isStandalone: true, selector: "si-result-details-list", inputs: { steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ul class=\"list-unstyled d-flex flex-column mb-0\">\n @for (step of steps(); track $index) {\n <li\n class=\"position-relative d-flex align-items-center timeline px-6 py-5\"\n [class.text-primary]=\"step.state === 'running'\"\n >\n @if (step.state === 'running') {\n <si-loading-spinner class=\"me-4\" />\n }\n @if (step.icon && step.state !== 'running') {\n <si-icon-next class=\"me-4 icon\" [icon]=\"step.icon\" />\n }\n @if (!step.icon && step.state !== 'running') {\n @switch (step.state) {\n @case ('passed') {\n <span class=\"me-4 icon icon-stack\">\n <si-icon-next class=\"status-success\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon-next class=\"status-critical-contrast\" [icon]=\"icons.elementStateTick\" />\n </span>\n }\n @case ('failed') {\n <span class=\"me-4 icon icon-stack\">\n <si-icon-next class=\"status-danger\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon-next\n class=\"status-critical-contrast\"\n [icon]=\"icons.elementStateExclamationMark\"\n />\n </span>\n }\n @case ('not-started') {\n <si-icon-next class=\"me-4 icon\" [icon]=\"icons.elementNotChecked\" />\n }\n @default {\n <si-icon-next class=\"me-4 icon\" [icon]=\"icons.elementOutOfService\" />\n }\n }\n }\n <div class=\"d-flex flex-column justify-content-center w-100 overflow-hidden\">\n <div class=\"d-flex\">\n <div class=\"result-description\">\n <span class=\"si-title-2\">{{\n step.description | translate: step.translationParams\n }}</span>\n @if (step.detail) {\n <div class=\"si-body-2 text-secondary result-detail\">{{\n step.detail | translate: step.translationParams\n }}</div>\n }\n @if (step.errorMessage) {\n <div class=\"si-title-2 text-danger\">{{\n step.errorMessage | translate: step.translationParams\n }}</div>\n }\n </div>\n @if (step.value) {\n <span class=\"result-value\">{{ step.value }}</span>\n } @else if (stepHasValue()) {\n <!-- empty placeholder to align step description with other steps-->\n <span class=\"result-value\"></span>\n }\n </div>\n </div>\n </li>\n }\n</ul>\n", styles: ["si-loading-spinner{--loading-spinner-size: 1.5rem;--loading-spinner-color: var(--element-text-active)}.result-description{flex:2 1;align-self:center;overflow:hidden}.result-value{flex:1 1;white-space:nowrap;align-self:top}.result-detail{letter-spacing:.15px;display:block;display:-webkit-box;max-block-size:2.00025rem;word-wrap:break-word;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.timeline:not(:last-child):after,.timeline:not(:first-child):before{content:\"\";position:absolute;inline-size:1px;background-color:var(--element-ui-2);block-size:calc(50% - .75rem);margin-inline-start:calc(.75rem - .5px)}si-icon-next{color:var(--element-ui-2)}.timeline:not(:first-child):before{inset-block-start:0}.timeline:not(:last-child):after{inset-block-end:0}\n"], dependencies: [{ kind: "component", type: SiLoadingSpinnerComponent, selector: "si-loading-spinner", inputs: ["isBlockingSpinner", "isSpinnerOverlay", "ariaLabel"] }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }, { kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }] });
27
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiResultDetailsListComponent, isStandalone: true, selector: "si-result-details-list", inputs: { steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ul class=\"list-unstyled d-flex flex-column mb-0\">\n @for (step of steps(); track $index) {\n <li\n class=\"position-relative d-flex align-items-center timeline px-6 py-5\"\n [class.text-primary]=\"step.state === 'running'\"\n >\n @if (step.state === 'running') {\n <si-loading-spinner class=\"me-4\" />\n }\n @if (step.icon && step.state !== 'running') {\n <si-icon-next class=\"me-4 icon\" [icon]=\"step.icon\" />\n }\n @if (!step.icon && step.state !== 'running') {\n @switch (step.state) {\n @case ('passed') {\n <span class=\"me-4 icon icon-stack\">\n <si-icon-next class=\"status-success\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon-next class=\"status-critical-contrast\" [icon]=\"icons.elementStateTick\" />\n </span>\n }\n @case ('failed') {\n <span class=\"me-4 icon icon-stack\">\n <si-icon-next class=\"status-danger\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon-next\n class=\"status-critical-contrast\"\n [icon]=\"icons.elementStateExclamationMark\"\n />\n </span>\n }\n @case ('not-started') {\n <si-icon-next class=\"me-4 icon\" [icon]=\"icons.elementNotChecked\" />\n }\n @default {\n <si-icon-next class=\"me-4 icon\" [icon]=\"icons.elementOutOfService\" />\n }\n }\n }\n <div class=\"d-flex flex-column justify-content-center w-100 overflow-hidden\">\n <div class=\"d-flex\">\n <div class=\"result-description\">\n <span class=\"si-title-2\">{{\n step.description | translate: step.translationParams\n }}</span>\n @if (step.detail) {\n <div class=\"si-body-2 text-secondary result-detail\">{{\n step.detail | translate: step.translationParams\n }}</div>\n }\n @if (step.errorMessage) {\n <div class=\"si-title-2 text-danger\">{{\n step.errorMessage | translate: step.translationParams\n }}</div>\n }\n </div>\n @if (step.value) {\n <span class=\"result-value\">{{ step.value }}</span>\n } @else if (stepHasValue()) {\n <!-- empty placeholder to align step description with other steps-->\n <span class=\"result-value\"></span>\n }\n </div>\n </div>\n </li>\n }\n</ul>\n", styles: ["si-loading-spinner{--loading-spinner-size: 1.5rem;--loading-spinner-color: var(--element-text-active)}.result-description{flex:2 1;align-self:center;overflow:hidden}.result-value{flex:1 1;white-space:nowrap;align-self:top}.result-detail{letter-spacing:.15px;display:block;display:-webkit-box;max-block-size:2.00025rem;word-wrap:break-word;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.timeline:not(:last-child):after,.timeline:not(:first-child):before{content:\"\";position:absolute;inline-size:1px;background-color:var(--element-ui-2);block-size:calc(50% - .75rem);margin-inline-start:calc(.75rem - .5px)}si-icon-next{color:var(--element-ui-2)}.timeline:not(:first-child):before{inset-block-start:0}.timeline:not(:last-child):after{inset-block-end:0}\n"], dependencies: [{ kind: "component", type: SiLoadingSpinnerComponent, selector: "si-loading-spinner", inputs: ["isBlockingSpinner", "isSpinnerOverlay", "ariaLabel"] }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
29
28
  }
30
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiResultDetailsListComponent, decorators: [{
31
30
  type: Component,
32
- args: [{ selector: 'si-result-details-list', imports: [SiLoadingSpinnerComponent, SiIconNextComponent, SiTranslateModule], template: "<ul class=\"list-unstyled d-flex flex-column mb-0\">\n @for (step of steps(); track $index) {\n <li\n class=\"position-relative d-flex align-items-center timeline px-6 py-5\"\n [class.text-primary]=\"step.state === 'running'\"\n >\n @if (step.state === 'running') {\n <si-loading-spinner class=\"me-4\" />\n }\n @if (step.icon && step.state !== 'running') {\n <si-icon-next class=\"me-4 icon\" [icon]=\"step.icon\" />\n }\n @if (!step.icon && step.state !== 'running') {\n @switch (step.state) {\n @case ('passed') {\n <span class=\"me-4 icon icon-stack\">\n <si-icon-next class=\"status-success\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon-next class=\"status-critical-contrast\" [icon]=\"icons.elementStateTick\" />\n </span>\n }\n @case ('failed') {\n <span class=\"me-4 icon icon-stack\">\n <si-icon-next class=\"status-danger\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon-next\n class=\"status-critical-contrast\"\n [icon]=\"icons.elementStateExclamationMark\"\n />\n </span>\n }\n @case ('not-started') {\n <si-icon-next class=\"me-4 icon\" [icon]=\"icons.elementNotChecked\" />\n }\n @default {\n <si-icon-next class=\"me-4 icon\" [icon]=\"icons.elementOutOfService\" />\n }\n }\n }\n <div class=\"d-flex flex-column justify-content-center w-100 overflow-hidden\">\n <div class=\"d-flex\">\n <div class=\"result-description\">\n <span class=\"si-title-2\">{{\n step.description | translate: step.translationParams\n }}</span>\n @if (step.detail) {\n <div class=\"si-body-2 text-secondary result-detail\">{{\n step.detail | translate: step.translationParams\n }}</div>\n }\n @if (step.errorMessage) {\n <div class=\"si-title-2 text-danger\">{{\n step.errorMessage | translate: step.translationParams\n }}</div>\n }\n </div>\n @if (step.value) {\n <span class=\"result-value\">{{ step.value }}</span>\n } @else if (stepHasValue()) {\n <!-- empty placeholder to align step description with other steps-->\n <span class=\"result-value\"></span>\n }\n </div>\n </div>\n </li>\n }\n</ul>\n", styles: ["si-loading-spinner{--loading-spinner-size: 1.5rem;--loading-spinner-color: var(--element-text-active)}.result-description{flex:2 1;align-self:center;overflow:hidden}.result-value{flex:1 1;white-space:nowrap;align-self:top}.result-detail{letter-spacing:.15px;display:block;display:-webkit-box;max-block-size:2.00025rem;word-wrap:break-word;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.timeline:not(:last-child):after,.timeline:not(:first-child):before{content:\"\";position:absolute;inline-size:1px;background-color:var(--element-ui-2);block-size:calc(50% - .75rem);margin-inline-start:calc(.75rem - .5px)}si-icon-next{color:var(--element-ui-2)}.timeline:not(:first-child):before{inset-block-start:0}.timeline:not(:last-child):after{inset-block-end:0}\n"] }]
31
+ args: [{ selector: 'si-result-details-list', imports: [SiLoadingSpinnerComponent, SiIconNextComponent, SiTranslatePipe], template: "<ul class=\"list-unstyled d-flex flex-column mb-0\">\n @for (step of steps(); track $index) {\n <li\n class=\"position-relative d-flex align-items-center timeline px-6 py-5\"\n [class.text-primary]=\"step.state === 'running'\"\n >\n @if (step.state === 'running') {\n <si-loading-spinner class=\"me-4\" />\n }\n @if (step.icon && step.state !== 'running') {\n <si-icon-next class=\"me-4 icon\" [icon]=\"step.icon\" />\n }\n @if (!step.icon && step.state !== 'running') {\n @switch (step.state) {\n @case ('passed') {\n <span class=\"me-4 icon icon-stack\">\n <si-icon-next class=\"status-success\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon-next class=\"status-critical-contrast\" [icon]=\"icons.elementStateTick\" />\n </span>\n }\n @case ('failed') {\n <span class=\"me-4 icon icon-stack\">\n <si-icon-next class=\"status-danger\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon-next\n class=\"status-critical-contrast\"\n [icon]=\"icons.elementStateExclamationMark\"\n />\n </span>\n }\n @case ('not-started') {\n <si-icon-next class=\"me-4 icon\" [icon]=\"icons.elementNotChecked\" />\n }\n @default {\n <si-icon-next class=\"me-4 icon\" [icon]=\"icons.elementOutOfService\" />\n }\n }\n }\n <div class=\"d-flex flex-column justify-content-center w-100 overflow-hidden\">\n <div class=\"d-flex\">\n <div class=\"result-description\">\n <span class=\"si-title-2\">{{\n step.description | translate: step.translationParams\n }}</span>\n @if (step.detail) {\n <div class=\"si-body-2 text-secondary result-detail\">{{\n step.detail | translate: step.translationParams\n }}</div>\n }\n @if (step.errorMessage) {\n <div class=\"si-title-2 text-danger\">{{\n step.errorMessage | translate: step.translationParams\n }}</div>\n }\n </div>\n @if (step.value) {\n <span class=\"result-value\">{{ step.value }}</span>\n } @else if (stepHasValue()) {\n <!-- empty placeholder to align step description with other steps-->\n <span class=\"result-value\"></span>\n }\n </div>\n </div>\n </li>\n }\n</ul>\n", styles: ["si-loading-spinner{--loading-spinner-size: 1.5rem;--loading-spinner-color: var(--element-text-active)}.result-description{flex:2 1;align-self:center;overflow:hidden}.result-value{flex:1 1;white-space:nowrap;align-self:top}.result-detail{letter-spacing:.15px;display:block;display:-webkit-box;max-block-size:2.00025rem;word-wrap:break-word;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.timeline:not(:last-child):after,.timeline:not(:first-child):before{content:\"\";position:absolute;inline-size:1px;background-color:var(--element-ui-2);block-size:calc(50% - .75rem);margin-inline-start:calc(.75rem - .5px)}si-icon-next{color:var(--element-ui-2)}.timeline:not(:first-child):before{inset-block-start:0}.timeline:not(:last-child):after{inset-block-end:0}\n"] }]
33
32
  }] });
34
33
 
35
34
  /**
@@ -45,7 +44,7 @@ const ResultDetailStepState = {
45
44
  };
46
45
 
47
46
  /**
48
- * Copyright Siemens 2016 - 2025.
47
+ * Copyright (c) Siemens 2016 - 2025
49
48
  * SPDX-License-Identifier: MIT
50
49
  */
51
50
  class SiResultDetailsListModule {
@@ -62,7 +61,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
62
61
  }] });
63
62
 
64
63
  /**
65
- * Copyright Siemens 2016 - 2025.
64
+ * Copyright (c) Siemens 2016 - 2025
66
65
  * SPDX-License-Identifier: MIT
67
66
  */
68
67
 
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-result-details-list.mjs","sources":["../../../../projects/element-ng/result-details-list/si-result-details-list.component.ts","../../../../projects/element-ng/result-details-list/si-result-details-list.component.html","../../../../projects/element-ng/result-details-list/si-result-details-list.datamodel.ts","../../../../projects/element-ng/result-details-list/si-result-details-list.module.ts","../../../../projects/element-ng/result-details-list/index.ts","../../../../projects/element-ng/result-details-list/siemens-element-ng-result-details-list.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, input } from '@angular/core';\nimport {\n elementCircleFilled,\n elementOutOfService,\n elementNotChecked,\n elementStateExclamationMark,\n elementStateTick,\n addIcons,\n SiIconNextComponent\n} from '@siemens/element-ng/icon';\nimport { SiLoadingSpinnerComponent } from '@siemens/element-ng/loading-spinner';\nimport { SiTranslateModule } from '@siemens/element-translate-ng/translate';\n\nimport { ResultDetailStep } from './si-result-details-list.datamodel';\n\n@Component({\n selector: 'si-result-details-list',\n templateUrl: './si-result-details-list.component.html',\n styleUrl: './si-result-details-list.component.scss',\n imports: [SiLoadingSpinnerComponent, SiIconNextComponent, SiTranslateModule]\n})\nexport class SiResultDetailsListComponent {\n /**\n * Array of steps to show in the list.\n *\n * @defaultValue []\n */\n readonly steps = input<ResultDetailStep[]>([]);\n\n protected readonly stepHasValue = computed(() => this.steps().some(item => !!item.value));\n\n protected readonly icons = addIcons({\n elementCircleFilled,\n elementNotChecked,\n elementOutOfService,\n elementStateExclamationMark,\n elementStateTick\n });\n}\n","<ul class=\"list-unstyled d-flex flex-column mb-0\">\n @for (step of steps(); track $index) {\n <li\n class=\"position-relative d-flex align-items-center timeline px-6 py-5\"\n [class.text-primary]=\"step.state === 'running'\"\n >\n @if (step.state === 'running') {\n <si-loading-spinner class=\"me-4\" />\n }\n @if (step.icon && step.state !== 'running') {\n <si-icon-next class=\"me-4 icon\" [icon]=\"step.icon\" />\n }\n @if (!step.icon && step.state !== 'running') {\n @switch (step.state) {\n @case ('passed') {\n <span class=\"me-4 icon icon-stack\">\n <si-icon-next class=\"status-success\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon-next class=\"status-critical-contrast\" [icon]=\"icons.elementStateTick\" />\n </span>\n }\n @case ('failed') {\n <span class=\"me-4 icon icon-stack\">\n <si-icon-next class=\"status-danger\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon-next\n class=\"status-critical-contrast\"\n [icon]=\"icons.elementStateExclamationMark\"\n />\n </span>\n }\n @case ('not-started') {\n <si-icon-next class=\"me-4 icon\" [icon]=\"icons.elementNotChecked\" />\n }\n @default {\n <si-icon-next class=\"me-4 icon\" [icon]=\"icons.elementOutOfService\" />\n }\n }\n }\n <div class=\"d-flex flex-column justify-content-center w-100 overflow-hidden\">\n <div class=\"d-flex\">\n <div class=\"result-description\">\n <span class=\"si-title-2\">{{\n step.description | translate: step.translationParams\n }}</span>\n @if (step.detail) {\n <div class=\"si-body-2 text-secondary result-detail\">{{\n step.detail | translate: step.translationParams\n }}</div>\n }\n @if (step.errorMessage) {\n <div class=\"si-title-2 text-danger\">{{\n step.errorMessage | translate: step.translationParams\n }}</div>\n }\n </div>\n @if (step.value) {\n <span class=\"result-value\">{{ step.value }}</span>\n } @else if (stepHasValue()) {\n <!-- empty placeholder to align step description with other steps-->\n <span class=\"result-value\"></span>\n }\n </div>\n </div>\n </li>\n }\n</ul>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport interface ResultDetailStep {\n /**\n * A description of the step.\n */\n description: string;\n /**\n * A state object defining the state of the step.\n */\n state: ResultDetailStepState;\n /**\n * Optional value to be displayed for the step.\n */\n value?: string;\n /**\n * Optional error message to display.\n */\n errorMessage?: string;\n /**\n * Optional custom icon to display. Otherwise a default icon will be shown based on the state property.\n */\n icon?: string;\n /**\n * Optional detail text which appears below description.\n */\n detail?: string;\n /**\n * Optional translation params to be used with translate pipe.\n */\n translationParams?: Record<string, unknown>;\n}\n\n/**\n * @deprecated This will be removed in a future release. Use the string values directly.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const ResultDetailStepState = {\n Passed: 'passed',\n Failed: 'failed',\n Running: 'running',\n NotSupported: 'not-supported',\n NotStarted: 'not-started'\n} as const;\n\n/**\n * This type defines the state that a detailed result step can have.\n */\nexport type ResultDetailStepState =\n (typeof ResultDetailStepState)[keyof typeof ResultDetailStepState];\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiResultDetailsListComponent } from './si-result-details-list.component';\n\n@NgModule({\n imports: [SiResultDetailsListComponent],\n exports: [SiResultDetailsListComponent]\n})\nexport class SiResultDetailsListModule {}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-result-details-list.component';\nexport * from './si-result-details-list.datamodel';\nexport * from './si-result-details-list.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAAA;;;AAGG;MAsBU,4BAA4B,CAAA;AACvC;;;;AAIG;AACM,IAAA,KAAK,GAAG,KAAK,CAAqB,EAAE,CAAC;IAE3B,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEtE,KAAK,GAAG,QAAQ,CAAC;QAClC,mBAAmB;QACnB,iBAAiB;QACjB,mBAAmB;QACnB,2BAA2B;QAC3B;AACD,KAAA,CAAC;uGAhBS,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,sNCzBzC,shFAiEA,EAAA,MAAA,EAAA,CAAA,2yBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED1CY,yBAAyB,EAAE,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,kBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,0EAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAEhE,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,WAGzB,CAAC,yBAAyB,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,EAAA,QAAA,EAAA,shFAAA,EAAA,MAAA,EAAA,CAAA,2yBAAA,CAAA,EAAA;;;AEY9E;;AAEG;AACH;AACa,MAAA,qBAAqB,GAAG;AACnC,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,YAAY,EAAE,eAAe;AAC7B,IAAA,UAAU,EAAE;;;AC5Cd;;;AAGG;MASU,yBAAyB,CAAA;uGAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAzB,yBAAyB,EAAA,OAAA,EAAA,CAH1B,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAC5B,4BAA4B,CAAA,EAAA,CAAA;AAE3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,YAH1B,4BAA4B,CAAA,EAAA,CAAA;;2FAG3B,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,4BAA4B,CAAC;oBACvC,OAAO,EAAE,CAAC,4BAA4B;AACvC,iBAAA;;;ACXD;;;AAGG;;ACHH;;AAEG;;;;"}
1
+ {"version":3,"file":"siemens-element-ng-result-details-list.mjs","sources":["../../../../projects/element-ng/result-details-list/si-result-details-list.component.ts","../../../../projects/element-ng/result-details-list/si-result-details-list.component.html","../../../../projects/element-ng/result-details-list/si-result-details-list.datamodel.ts","../../../../projects/element-ng/result-details-list/si-result-details-list.module.ts","../../../../projects/element-ng/result-details-list/index.ts","../../../../projects/element-ng/result-details-list/siemens-element-ng-result-details-list.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, input } from '@angular/core';\nimport {\n addIcons,\n elementCircleFilled,\n elementNotChecked,\n elementOutOfService,\n elementStateExclamationMark,\n elementStateTick,\n SiIconNextComponent\n} from '@siemens/element-ng/icon';\nimport { SiLoadingSpinnerComponent } from '@siemens/element-ng/loading-spinner';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { ResultDetailStep } from './si-result-details-list.datamodel';\n\n@Component({\n selector: 'si-result-details-list',\n imports: [SiLoadingSpinnerComponent, SiIconNextComponent, SiTranslatePipe],\n templateUrl: './si-result-details-list.component.html',\n styleUrl: './si-result-details-list.component.scss'\n})\nexport class SiResultDetailsListComponent {\n /**\n * Array of steps to show in the list.\n *\n * @defaultValue []\n */\n readonly steps = input<ResultDetailStep[]>([]);\n\n protected readonly stepHasValue = computed(() => this.steps().some(item => !!item.value));\n\n protected readonly icons = addIcons({\n elementCircleFilled,\n elementNotChecked,\n elementOutOfService,\n elementStateExclamationMark,\n elementStateTick\n });\n}\n","<ul class=\"list-unstyled d-flex flex-column mb-0\">\n @for (step of steps(); track $index) {\n <li\n class=\"position-relative d-flex align-items-center timeline px-6 py-5\"\n [class.text-primary]=\"step.state === 'running'\"\n >\n @if (step.state === 'running') {\n <si-loading-spinner class=\"me-4\" />\n }\n @if (step.icon && step.state !== 'running') {\n <si-icon-next class=\"me-4 icon\" [icon]=\"step.icon\" />\n }\n @if (!step.icon && step.state !== 'running') {\n @switch (step.state) {\n @case ('passed') {\n <span class=\"me-4 icon icon-stack\">\n <si-icon-next class=\"status-success\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon-next class=\"status-critical-contrast\" [icon]=\"icons.elementStateTick\" />\n </span>\n }\n @case ('failed') {\n <span class=\"me-4 icon icon-stack\">\n <si-icon-next class=\"status-danger\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon-next\n class=\"status-critical-contrast\"\n [icon]=\"icons.elementStateExclamationMark\"\n />\n </span>\n }\n @case ('not-started') {\n <si-icon-next class=\"me-4 icon\" [icon]=\"icons.elementNotChecked\" />\n }\n @default {\n <si-icon-next class=\"me-4 icon\" [icon]=\"icons.elementOutOfService\" />\n }\n }\n }\n <div class=\"d-flex flex-column justify-content-center w-100 overflow-hidden\">\n <div class=\"d-flex\">\n <div class=\"result-description\">\n <span class=\"si-title-2\">{{\n step.description | translate: step.translationParams\n }}</span>\n @if (step.detail) {\n <div class=\"si-body-2 text-secondary result-detail\">{{\n step.detail | translate: step.translationParams\n }}</div>\n }\n @if (step.errorMessage) {\n <div class=\"si-title-2 text-danger\">{{\n step.errorMessage | translate: step.translationParams\n }}</div>\n }\n </div>\n @if (step.value) {\n <span class=\"result-value\">{{ step.value }}</span>\n } @else if (stepHasValue()) {\n <!-- empty placeholder to align step description with other steps-->\n <span class=\"result-value\"></span>\n }\n </div>\n </div>\n </li>\n }\n</ul>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport interface ResultDetailStep {\n /**\n * A description of the step.\n */\n description: string;\n /**\n * A state object defining the state of the step.\n */\n state: ResultDetailStepState;\n /**\n * Optional value to be displayed for the step.\n */\n value?: string;\n /**\n * Optional error message to display.\n */\n errorMessage?: string;\n /**\n * Optional custom icon to display. Otherwise a default icon will be shown based on the state property.\n */\n icon?: string;\n /**\n * Optional detail text which appears below description.\n */\n detail?: string;\n /**\n * Optional translation params to be used with translate pipe.\n */\n translationParams?: Record<string, unknown>;\n}\n\n/**\n * @deprecated This will be removed in a future release. Use the string values directly.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const ResultDetailStepState = {\n Passed: 'passed',\n Failed: 'failed',\n Running: 'running',\n NotSupported: 'not-supported',\n NotStarted: 'not-started'\n} as const;\n\n/**\n * This type defines the state that a detailed result step can have.\n */\nexport type ResultDetailStepState =\n (typeof ResultDetailStepState)[keyof typeof ResultDetailStepState];\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiResultDetailsListComponent } from './si-result-details-list.component';\n\n@NgModule({\n imports: [SiResultDetailsListComponent],\n exports: [SiResultDetailsListComponent]\n})\nexport class SiResultDetailsListModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-result-details-list.component';\nexport * from './si-result-details-list.datamodel';\nexport * from './si-result-details-list.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAAA;;;AAGG;MAsBU,4BAA4B,CAAA;AACvC;;;;AAIG;AACM,IAAA,KAAK,GAAG,KAAK,CAAqB,EAAE,CAAC;IAE3B,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEtE,KAAK,GAAG,QAAQ,CAAC;QAClC,mBAAmB;QACnB,iBAAiB;QACjB,mBAAmB;QACnB,2BAA2B;QAC3B;AACD,KAAA,CAAC;uGAhBS,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,sNCzBzC,shFAiEA,EAAA,MAAA,EAAA,CAAA,2yBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED5CY,yBAAyB,EAAE,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,kBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,sEAAE,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAI9D,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,WACzB,CAAC,yBAAyB,EAAE,mBAAmB,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,shFAAA,EAAA,MAAA,EAAA,CAAA,2yBAAA,CAAA,EAAA;;;AEc5E;;AAEG;AACH;AACa,MAAA,qBAAqB,GAAG;AACnC,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,YAAY,EAAE,eAAe;AAC7B,IAAA,UAAU,EAAE;;;AC5Cd;;;AAGG;MASU,yBAAyB,CAAA;uGAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAzB,yBAAyB,EAAA,OAAA,EAAA,CAH1B,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAC5B,4BAA4B,CAAA,EAAA,CAAA;AAE3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,YAH1B,4BAA4B,CAAA,EAAA,CAAA;;2FAG3B,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,4BAA4B,CAAC;oBACvC,OAAO,EAAE,CAAC,4BAA4B;AACvC,iBAAA;;;ACXD;;;AAGG;;ACHH;;AAEG;;;;"}
@@ -6,7 +6,7 @@ import { Subject } from 'rxjs';
6
6
  import { debounceTime } from 'rxjs/operators';
7
7
 
8
8
  /**
9
- * Copyright Siemens 2016 - 2025.
9
+ * Copyright (c) Siemens 2016 - 2025
10
10
  * SPDX-License-Identifier: MIT
11
11
  */
12
12
  class SiSearchBarComponent {
@@ -149,22 +149,22 @@ class SiSearchBarComponent {
149
149
  }
150
150
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiSearchBarComponent, decorators: [{
151
151
  type: Component,
152
- args: [{ selector: 'si-search-bar', providers: [
152
+ args: [{ selector: 'si-search-bar', imports: [SiIconNextComponent], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
153
153
  {
154
154
  provide: NG_VALUE_ACCESSOR,
155
155
  useExisting: SiSearchBarComponent,
156
156
  multi: true
157
157
  }
158
- ], imports: [SiIconNextComponent], host: {
158
+ ], host: {
159
159
  '[class.readonly]': 'readonly()'
160
- }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"position-relative\" [class.disabled]=\"disabled()\" [class.focus]=\"inFocus\">\n @if (showIcon()) {\n <si-icon-next class=\"search-bar-icon icon text-secondary\" [icon]=\"icons.elementSearch\" />\n }\n <input\n #inputRef\n type=\"text\"\n class=\"form-control\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n [class.dark-background]=\"colorVariant() === 'base-0'\"\n [class.ps-9]=\"showIcon()\"\n [class.is-invalid]=\"isInvalid\"\n [class.icon-end]=\"searchValue()\"\n [attr.tabindex]=\"tabbable() ? '' : '-1'\"\n [readonly]=\"readonly()\"\n (focus)=\"inFocus = true\"\n (blur)=\"onBlur()\"\n (input)=\"input($event)\"\n />\n @if (searchValue()) {\n <button\n type=\"button\"\n aria-label=\"clear\"\n class=\"btn btn-circle btn-xs btn-ghost cancel-button\"\n [disabled]=\"disabled() || readonly()\"\n (click)=\"resetForm()\"\n (focusin)=\"onCancelFocus($event)\"\n >\n <si-icon-next [icon]=\"icons.elementCancel\" />\n </button>\n }\n</div>\n", styles: [":host{--search-bar-icon-color: var(--element-text-secondary);--input-background-color: var(--element-base-1);--input-background-hover-color: var(--element-base-1)}:host div:hover .search-bar-icon,:host div:hover ::placeholder,:host div.focus .search-bar-icon,:host div.focus ::placeholder{color:var(--element-text-primary)!important}.dark-background{--input-background-color: var(--element-base-0);--input-background-hover-color: var(--element-ui-4)}input{transition:none;background-color:var(--input-background-color);border-radius:4px;border-width:0}input.form-control:focus-visible{background-color:var(--input-background-color)}.cancel-button{position:absolute;inset-block-start:4px;inset-inline-end:4px}.is-invalid~.cancel-button{color:var(--element-status-danger)}.search-bar-icon{position:absolute;inset-block-start:4px;inset-inline-start:4px;color:var(--search-bar-icon-color);line-height:1}.icon-end{padding-inline-end:1.5rem}::placeholder{color:var(--element-text-secondary);padding-inline-start:2px}.disabled .search-bar-icon,.disabled input,.disabled .cancel-button,.disabled ::placeholder{color:var(--element-text-disabled)}.disabled input{background-color:var(--input-background-color)}\n"] }]
160
+ }, template: "<div class=\"position-relative\" [class.disabled]=\"disabled()\" [class.focus]=\"inFocus\">\n @if (showIcon()) {\n <si-icon-next class=\"search-bar-icon icon text-secondary\" [icon]=\"icons.elementSearch\" />\n }\n <input\n #inputRef\n type=\"text\"\n class=\"form-control\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n [class.dark-background]=\"colorVariant() === 'base-0'\"\n [class.ps-9]=\"showIcon()\"\n [class.is-invalid]=\"isInvalid\"\n [class.icon-end]=\"searchValue()\"\n [attr.tabindex]=\"tabbable() ? '' : '-1'\"\n [readonly]=\"readonly()\"\n (focus)=\"inFocus = true\"\n (blur)=\"onBlur()\"\n (input)=\"input($event)\"\n />\n @if (searchValue()) {\n <button\n type=\"button\"\n aria-label=\"clear\"\n class=\"btn btn-circle btn-xs btn-ghost cancel-button\"\n [disabled]=\"disabled() || readonly()\"\n (click)=\"resetForm()\"\n (focusin)=\"onCancelFocus($event)\"\n >\n <si-icon-next [icon]=\"icons.elementCancel\" />\n </button>\n }\n</div>\n", styles: [":host{--search-bar-icon-color: var(--element-text-secondary);--input-background-color: var(--element-base-1);--input-background-hover-color: var(--element-base-1)}:host div:hover .search-bar-icon,:host div:hover ::placeholder,:host div.focus .search-bar-icon,:host div.focus ::placeholder{color:var(--element-text-primary)!important}.dark-background{--input-background-color: var(--element-base-0);--input-background-hover-color: var(--element-ui-4)}input{transition:none;background-color:var(--input-background-color);border-radius:4px;border-width:0}input.form-control:focus-visible{background-color:var(--input-background-color)}.cancel-button{position:absolute;inset-block-start:4px;inset-inline-end:4px}.is-invalid~.cancel-button{color:var(--element-status-danger)}.search-bar-icon{position:absolute;inset-block-start:4px;inset-inline-start:4px;color:var(--search-bar-icon-color);line-height:1}.icon-end{padding-inline-end:1.5rem}::placeholder{color:var(--element-text-secondary);padding-inline-start:2px}.disabled .search-bar-icon,.disabled input,.disabled .cancel-button,.disabled ::placeholder{color:var(--element-text-disabled)}.disabled input{background-color:var(--input-background-color)}\n"] }]
161
161
  }], propDecorators: { focus: [{
162
162
  type: HostListener,
163
163
  args: ['focus']
164
164
  }] } });
165
165
 
166
166
  /**
167
- * Copyright Siemens 2016 - 2025.
167
+ * Copyright (c) Siemens 2016 - 2025
168
168
  * SPDX-License-Identifier: MIT
169
169
  */
170
170
  class SiSearchBarModule {
@@ -181,7 +181,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
181
181
  }] });
182
182
 
183
183
  /**
184
- * Copyright Siemens 2016 - 2025.
184
+ * Copyright (c) Siemens 2016 - 2025
185
185
  * SPDX-License-Identifier: MIT
186
186
  */
187
187
 
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-search-bar.mjs","sources":["../../../../projects/element-ng/search-bar/si-search-bar.component.ts","../../../../projects/element-ng/search-bar/si-search-bar.component.html","../../../../projects/element-ng/search-bar/si-search-bar.module.ts","../../../../projects/element-ng/search-bar/index.ts","../../../../projects/element-ng/search-bar/siemens-element-ng-search-bar.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n HostListener,\n input,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n output,\n signal,\n SimpleChanges,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BackgroundColorVariant } from '@siemens/element-ng/common';\nimport {\n elementCancel,\n elementSearch,\n addIcons,\n SiIconNextComponent\n} from '@siemens/element-ng/icon';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'si-search-bar',\n templateUrl: './si-search-bar.component.html',\n styleUrl: './si-search-bar.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiSearchBarComponent,\n multi: true\n }\n ],\n imports: [SiIconNextComponent],\n host: {\n '[class.readonly]': 'readonly()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiSearchBarComponent implements OnInit, OnDestroy, ControlValueAccessor, OnChanges {\n private readonly inputRef = viewChild.required<ElementRef<HTMLInputElement>>('inputRef');\n private debouncer = new Subject<string>();\n private readonly disabledNgControl = signal(false);\n\n /**\n * Time unit change of search input takes effect.\n *\n * @defaultValue 400\n */\n readonly debounceTime = input(400, { transform: numberAttribute });\n /**\n * Prohibited characters restricting search.\n */\n readonly prohibitedCharacters = input<string>();\n /**\n * Define search input placeholder.\n *\n * @defaultValue ''\n */\n readonly placeholder = input('');\n /**\n * Display search icon before search input.\n *\n * @defaultValue false\n */\n readonly showIcon = input(false, { transform: booleanAttribute });\n /**\n * Whether the search is tabbable or not.\n *\n * @defaultValue true\n */\n readonly tabbable = input(true, { transform: booleanAttribute });\n\n /**\n * Define search input content.\n */\n readonly value = input<string>();\n\n /** @defaultValue false */\n readonly readonly = input(false, { transform: booleanAttribute });\n /**\n * Color to use for component background\n *\n * @defaultValue 'base-1'\n */\n readonly colorVariant = input<BackgroundColorVariant>('base-1');\n\n /** @defaultValue false */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n\n /**\n * Output callback event will provide you with search term if search input changes.\n */\n readonly searchChange = output<string>();\n\n protected isInvalid = false;\n protected inFocus = false;\n\n protected onChange = (val: any): void => {};\n protected onTouch = (): void => {};\n\n protected readonly disabled = computed(() => this.disabledInput() || this.disabledNgControl());\n\n protected readonly searchValue = signal('');\n protected readonly icons = addIcons({ elementCancel, elementSearch });\n\n /** @internal */\n writeValue(value: string): void {\n this.setSearch(value);\n }\n\n /** @internal */\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /** @internal */\n registerOnTouched(fn: () => void): void {\n this.onTouch = fn;\n }\n\n /** @internal */\n setDisabledState(disabled: boolean): void {\n this.disabledNgControl.set(disabled);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this.setSearch(changes.value.currentValue);\n }\n }\n\n ngOnInit(): void {\n this.debouncer.pipe(debounceTime(this.debounceTime())).subscribe(value => {\n this.setSearch(value);\n });\n }\n\n ngOnDestroy(): void {\n this.debouncer.complete();\n }\n\n private setSearch(value?: string): void {\n if (value !== this.searchValue()) {\n // FIXME: in v48, move outside the `if` so we don't emit when `value === undefined`\n const searchVal = value ?? '';\n this.searchValue.set(searchVal);\n this.inputRef().nativeElement.value = searchVal;\n this.onChange(searchVal);\n this.searchChange.emit(searchVal);\n }\n }\n\n private isProhibitedCharactersUsed(searchString: string | null): boolean {\n const prohibitedCharacters = this.prohibitedCharacters();\n if (!prohibitedCharacters || !searchString) {\n return false;\n }\n\n for (const prohibitedCharacter of prohibitedCharacters) {\n if (searchString.includes(prohibitedCharacter)) {\n return true;\n }\n }\n\n return false;\n }\n\n /** @internal */\n @HostListener('focus')\n focus(): void {\n this.inputRef().nativeElement.focus();\n }\n\n protected onCancelFocus(event: Event): void {\n event.stopPropagation();\n }\n\n protected input(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n if (!this.isProhibitedCharactersUsed(value)) {\n this.debouncer.next(value);\n }\n }\n\n protected onBlur(): void {\n this.inFocus = false;\n this.onTouch();\n }\n\n protected resetForm(): void {\n this.setSearch('');\n }\n}\n","<div class=\"position-relative\" [class.disabled]=\"disabled()\" [class.focus]=\"inFocus\">\n @if (showIcon()) {\n <si-icon-next class=\"search-bar-icon icon text-secondary\" [icon]=\"icons.elementSearch\" />\n }\n <input\n #inputRef\n type=\"text\"\n class=\"form-control\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n [class.dark-background]=\"colorVariant() === 'base-0'\"\n [class.ps-9]=\"showIcon()\"\n [class.is-invalid]=\"isInvalid\"\n [class.icon-end]=\"searchValue()\"\n [attr.tabindex]=\"tabbable() ? '' : '-1'\"\n [readonly]=\"readonly()\"\n (focus)=\"inFocus = true\"\n (blur)=\"onBlur()\"\n (input)=\"input($event)\"\n />\n @if (searchValue()) {\n <button\n type=\"button\"\n aria-label=\"clear\"\n class=\"btn btn-circle btn-xs btn-ghost cancel-button\"\n [disabled]=\"disabled() || readonly()\"\n (click)=\"resetForm()\"\n (focusin)=\"onCancelFocus($event)\"\n >\n <si-icon-next [icon]=\"icons.elementCancel\" />\n </button>\n }\n</div>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiSearchBarComponent } from './si-search-bar.component';\n\n@NgModule({\n imports: [SiSearchBarComponent],\n exports: [SiSearchBarComponent]\n})\nexport class SiSearchBarModule {}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-search-bar.component';\nexport * from './si-search-bar.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"siemens-element-ng-search-bar.mjs","sources":["../../../../projects/element-ng/search-bar/si-search-bar.component.ts","../../../../projects/element-ng/search-bar/si-search-bar.component.html","../../../../projects/element-ng/search-bar/si-search-bar.module.ts","../../../../projects/element-ng/search-bar/index.ts","../../../../projects/element-ng/search-bar/siemens-element-ng-search-bar.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n HostListener,\n input,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n output,\n signal,\n SimpleChanges,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BackgroundColorVariant } from '@siemens/element-ng/common';\nimport {\n elementCancel,\n elementSearch,\n addIcons,\n SiIconNextComponent\n} from '@siemens/element-ng/icon';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'si-search-bar',\n imports: [SiIconNextComponent],\n templateUrl: './si-search-bar.component.html',\n styleUrl: './si-search-bar.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiSearchBarComponent,\n multi: true\n }\n ],\n host: {\n '[class.readonly]': 'readonly()'\n }\n})\nexport class SiSearchBarComponent implements OnInit, OnDestroy, ControlValueAccessor, OnChanges {\n private readonly inputRef = viewChild.required<ElementRef<HTMLInputElement>>('inputRef');\n private debouncer = new Subject<string>();\n private readonly disabledNgControl = signal(false);\n\n /**\n * Time unit change of search input takes effect.\n *\n * @defaultValue 400\n */\n readonly debounceTime = input(400, { transform: numberAttribute });\n /**\n * Prohibited characters restricting search.\n */\n readonly prohibitedCharacters = input<string>();\n /**\n * Define search input placeholder.\n *\n * @defaultValue ''\n */\n readonly placeholder = input('');\n /**\n * Display search icon before search input.\n *\n * @defaultValue false\n */\n readonly showIcon = input(false, { transform: booleanAttribute });\n /**\n * Whether the search is tabbable or not.\n *\n * @defaultValue true\n */\n readonly tabbable = input(true, { transform: booleanAttribute });\n\n /**\n * Define search input content.\n */\n readonly value = input<string>();\n\n /** @defaultValue false */\n readonly readonly = input(false, { transform: booleanAttribute });\n /**\n * Color to use for component background\n *\n * @defaultValue 'base-1'\n */\n readonly colorVariant = input<BackgroundColorVariant>('base-1');\n\n /** @defaultValue false */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n\n /**\n * Output callback event will provide you with search term if search input changes.\n */\n readonly searchChange = output<string>();\n\n protected isInvalid = false;\n protected inFocus = false;\n\n protected onChange = (val: any): void => {};\n protected onTouch = (): void => {};\n\n protected readonly disabled = computed(() => this.disabledInput() || this.disabledNgControl());\n\n protected readonly searchValue = signal('');\n protected readonly icons = addIcons({ elementCancel, elementSearch });\n\n /** @internal */\n writeValue(value: string): void {\n this.setSearch(value);\n }\n\n /** @internal */\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /** @internal */\n registerOnTouched(fn: () => void): void {\n this.onTouch = fn;\n }\n\n /** @internal */\n setDisabledState(disabled: boolean): void {\n this.disabledNgControl.set(disabled);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this.setSearch(changes.value.currentValue);\n }\n }\n\n ngOnInit(): void {\n this.debouncer.pipe(debounceTime(this.debounceTime())).subscribe(value => {\n this.setSearch(value);\n });\n }\n\n ngOnDestroy(): void {\n this.debouncer.complete();\n }\n\n private setSearch(value?: string): void {\n if (value !== this.searchValue()) {\n // FIXME: in v48, move outside the `if` so we don't emit when `value === undefined`\n const searchVal = value ?? '';\n this.searchValue.set(searchVal);\n this.inputRef().nativeElement.value = searchVal;\n this.onChange(searchVal);\n this.searchChange.emit(searchVal);\n }\n }\n\n private isProhibitedCharactersUsed(searchString: string | null): boolean {\n const prohibitedCharacters = this.prohibitedCharacters();\n if (!prohibitedCharacters || !searchString) {\n return false;\n }\n\n for (const prohibitedCharacter of prohibitedCharacters) {\n if (searchString.includes(prohibitedCharacter)) {\n return true;\n }\n }\n\n return false;\n }\n\n /** @internal */\n @HostListener('focus')\n focus(): void {\n this.inputRef().nativeElement.focus();\n }\n\n protected onCancelFocus(event: Event): void {\n event.stopPropagation();\n }\n\n protected input(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n if (!this.isProhibitedCharactersUsed(value)) {\n this.debouncer.next(value);\n }\n }\n\n protected onBlur(): void {\n this.inFocus = false;\n this.onTouch();\n }\n\n protected resetForm(): void {\n this.setSearch('');\n }\n}\n","<div class=\"position-relative\" [class.disabled]=\"disabled()\" [class.focus]=\"inFocus\">\n @if (showIcon()) {\n <si-icon-next class=\"search-bar-icon icon text-secondary\" [icon]=\"icons.elementSearch\" />\n }\n <input\n #inputRef\n type=\"text\"\n class=\"form-control\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n [class.dark-background]=\"colorVariant() === 'base-0'\"\n [class.ps-9]=\"showIcon()\"\n [class.is-invalid]=\"isInvalid\"\n [class.icon-end]=\"searchValue()\"\n [attr.tabindex]=\"tabbable() ? '' : '-1'\"\n [readonly]=\"readonly()\"\n (focus)=\"inFocus = true\"\n (blur)=\"onBlur()\"\n (input)=\"input($event)\"\n />\n @if (searchValue()) {\n <button\n type=\"button\"\n aria-label=\"clear\"\n class=\"btn btn-circle btn-xs btn-ghost cancel-button\"\n [disabled]=\"disabled() || readonly()\"\n (click)=\"resetForm()\"\n (focusin)=\"onCancelFocus($event)\"\n >\n <si-icon-next [icon]=\"icons.elementCancel\" />\n </button>\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiSearchBarComponent } from './si-search-bar.component';\n\n@NgModule({\n imports: [SiSearchBarComponent],\n exports: [SiSearchBarComponent]\n})\nexport class SiSearchBarModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-search-bar.component';\nexport * from './si-search-bar.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}