@siemens/element-ng 47.8.0 → 48.0.0-next.1

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 (679) hide show
  1. package/about/index.d.ts +127 -3
  2. package/accordion/index.d.ts +152 -9
  3. package/action-modal/index.d.ts +92 -2
  4. package/application-header/index.d.ts +357 -13
  5. package/auto-collapsable-list/index.d.ts +114 -10
  6. package/autocomplete/index.d.ts +77 -8
  7. package/avatar/index.d.ts +83 -4
  8. package/badge/index.d.ts +21 -5
  9. package/breadcrumb/index.d.ts +90 -3
  10. package/breadcrumb-router/index.d.ts +104 -4
  11. package/card/index.d.ts +88 -6
  12. package/circle-status/index.d.ts +75 -6
  13. package/color-picker/index.d.ts +65 -5
  14. package/column-selection-dialog/index.d.ts +89 -2
  15. package/common/index.d.ts +421 -4
  16. package/connection-strength/index.d.ts +29 -6
  17. package/content-action-bar/index.d.ts +88 -3
  18. package/copyright-notice/index.d.ts +48 -3
  19. package/dashboard/index.d.ts +782 -16
  20. package/datatable/index.d.ts +45 -6
  21. package/date-range-filter/index.d.ts +333 -4
  22. package/datepicker/index.d.ts +1409 -11
  23. package/electron-titlebar/index.d.ts +84 -3
  24. package/empty-state/index.d.ts +27 -6
  25. package/fesm2022/siemens-element-ng-about.mjs +7 -7
  26. package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
  27. package/fesm2022/siemens-element-ng-accordion.mjs +17 -30
  28. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
  29. package/fesm2022/siemens-element-ng-action-modal.mjs +41 -125
  30. package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
  31. package/fesm2022/siemens-element-ng-application-header.mjs +69 -65
  32. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  33. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +47 -43
  34. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
  35. package/fesm2022/siemens-element-ng-autocomplete.mjs +35 -35
  36. package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
  37. package/fesm2022/siemens-element-ng-avatar.mjs +6 -6
  38. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  39. package/fesm2022/siemens-element-ng-badge.mjs +3 -3
  40. package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
  41. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +10 -10
  42. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
  43. package/fesm2022/siemens-element-ng-breadcrumb.mjs +13 -13
  44. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  45. package/fesm2022/siemens-element-ng-card.mjs +7 -7
  46. package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
  47. package/fesm2022/siemens-element-ng-circle-status.mjs +7 -7
  48. package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
  49. package/fesm2022/siemens-element-ng-color-picker.mjs +11 -12
  50. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
  51. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +28 -31
  52. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
  53. package/fesm2022/siemens-element-ng-common.mjs +14 -14
  54. package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
  55. package/fesm2022/siemens-element-ng-connection-strength.mjs +7 -7
  56. package/fesm2022/siemens-element-ng-content-action-bar.mjs +13 -13
  57. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  58. package/fesm2022/siemens-element-ng-copyright-notice.mjs +7 -7
  59. package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
  60. package/fesm2022/siemens-element-ng-dashboard.mjs +61 -61
  61. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  62. package/fesm2022/siemens-element-ng-datatable.mjs +7 -7
  63. package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
  64. package/fesm2022/siemens-element-ng-date-range-filter.mjs +87 -73
  65. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  66. package/fesm2022/siemens-element-ng-datepicker.mjs +104 -142
  67. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  68. package/fesm2022/siemens-element-ng-electron-titlebar.mjs +14 -14
  69. package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
  70. package/fesm2022/siemens-element-ng-empty-state.mjs +7 -7
  71. package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
  72. package/fesm2022/siemens-element-ng-file-uploader.mjs +54 -54
  73. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  74. package/fesm2022/siemens-element-ng-filter-bar.mjs +18 -18
  75. package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
  76. package/fesm2022/siemens-element-ng-filtered-search.mjs +31 -74
  77. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  78. package/fesm2022/siemens-element-ng-footer.mjs +7 -7
  79. package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
  80. package/fesm2022/siemens-element-ng-form.mjs +125 -271
  81. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  82. package/fesm2022/siemens-element-ng-formly.mjs +78 -83
  83. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  84. package/fesm2022/siemens-element-ng-header-dropdown.mjs +18 -17
  85. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  86. package/fesm2022/siemens-element-ng-help-button.mjs +63 -0
  87. package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -0
  88. package/fesm2022/siemens-element-ng-icon-status.mjs +7 -7
  89. package/fesm2022/siemens-element-ng-icon-status.mjs.map +1 -1
  90. package/fesm2022/siemens-element-ng-icon.mjs +28 -27
  91. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  92. package/fesm2022/siemens-element-ng-info-page.mjs +3 -3
  93. package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
  94. package/fesm2022/siemens-element-ng-inline-notification.mjs +7 -7
  95. package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
  96. package/fesm2022/siemens-element-ng-ip-input.mjs +10 -9
  97. package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
  98. package/fesm2022/siemens-element-ng-landing-page.mjs +7 -7
  99. package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
  100. package/fesm2022/siemens-element-ng-language-switcher.mjs +10 -10
  101. package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
  102. package/fesm2022/siemens-element-ng-link.mjs +10 -10
  103. package/fesm2022/siemens-element-ng-list-details.mjs +27 -27
  104. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  105. package/fesm2022/siemens-element-ng-loading-spinner.mjs +19 -19
  106. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
  107. package/fesm2022/siemens-element-ng-localization.mjs +9 -9
  108. package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
  109. package/fesm2022/siemens-element-ng-main-detail-container.mjs +10 -10
  110. package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
  111. package/fesm2022/siemens-element-ng-menu.mjs +34 -34
  112. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  113. package/fesm2022/siemens-element-ng-modal.mjs +8 -8
  114. package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
  115. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +43 -57
  116. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  117. package/fesm2022/siemens-element-ng-navbar.mjs +29 -29
  118. package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
  119. package/fesm2022/siemens-element-ng-number-input.mjs +7 -7
  120. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  121. package/fesm2022/siemens-element-ng-pagination.mjs +14 -14
  122. package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
  123. package/fesm2022/siemens-element-ng-password-strength.mjs +13 -16
  124. package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
  125. package/fesm2022/siemens-element-ng-password-toggle.mjs +12 -12
  126. package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
  127. package/fesm2022/siemens-element-ng-phone-number.mjs +19 -19
  128. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
  129. package/fesm2022/siemens-element-ng-photo-upload.mjs +25 -25
  130. package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
  131. package/fesm2022/siemens-element-ng-pills-input.mjs +22 -22
  132. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
  133. package/fesm2022/siemens-element-ng-popover-next.mjs +34 -23
  134. package/fesm2022/siemens-element-ng-popover-next.mjs.map +1 -1
  135. package/fesm2022/siemens-element-ng-popover.mjs +10 -10
  136. package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
  137. package/fesm2022/siemens-element-ng-progressbar.mjs +10 -10
  138. package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
  139. package/fesm2022/siemens-element-ng-resize-observer.mjs +13 -13
  140. package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
  141. package/fesm2022/siemens-element-ng-result-details-list.mjs +8 -20
  142. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
  143. package/fesm2022/siemens-element-ng-search-bar.mjs +18 -15
  144. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  145. package/fesm2022/siemens-element-ng-select.mjs +66 -66
  146. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  147. package/fesm2022/siemens-element-ng-shadow-root.mjs +4 -5
  148. package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
  149. package/fesm2022/siemens-element-ng-side-panel.mjs +24 -24
  150. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  151. package/fesm2022/siemens-element-ng-skip-links.mjs +12 -13
  152. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
  153. package/fesm2022/siemens-element-ng-slider.mjs +14 -14
  154. package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
  155. package/fesm2022/siemens-element-ng-sort-bar.mjs +10 -10
  156. package/fesm2022/siemens-element-ng-sort-bar.mjs.map +1 -1
  157. package/fesm2022/siemens-element-ng-split.mjs +13 -29
  158. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  159. package/fesm2022/siemens-element-ng-status-bar.mjs +19 -19
  160. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  161. package/fesm2022/siemens-element-ng-status-toggle.mjs +7 -7
  162. package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
  163. package/fesm2022/siemens-element-ng-summary-chip.mjs +3 -3
  164. package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
  165. package/fesm2022/siemens-element-ng-summary-widget.mjs +5 -5
  166. package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
  167. package/fesm2022/siemens-element-ng-system-banner.mjs +3 -3
  168. package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
  169. package/fesm2022/siemens-element-ng-tabs-next.mjs +147 -176
  170. package/fesm2022/siemens-element-ng-tabs-next.mjs.map +1 -1
  171. package/fesm2022/siemens-element-ng-tabs.mjs +12 -11
  172. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  173. package/fesm2022/siemens-element-ng-theme.mjs +5 -5
  174. package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
  175. package/fesm2022/siemens-element-ng-threshold.mjs +22 -22
  176. package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
  177. package/fesm2022/siemens-element-ng-toast-notification.mjs +11 -11
  178. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
  179. package/fesm2022/siemens-element-ng-tooltip.mjs +22 -16
  180. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
  181. package/fesm2022/siemens-element-ng-tour.mjs +19 -19
  182. package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
  183. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  184. package/fesm2022/siemens-element-ng-tree-view.mjs +44 -55
  185. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  186. package/fesm2022/siemens-element-ng-typeahead.mjs +19 -36
  187. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  188. package/fesm2022/siemens-element-ng-unauthorized-page.mjs +7 -7
  189. package/fesm2022/siemens-element-ng-unauthorized-page.mjs.map +1 -1
  190. package/fesm2022/siemens-element-ng-wizard.mjs +76 -109
  191. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  192. package/file-uploader/index.d.ts +419 -4
  193. package/filter-bar/index.d.ts +117 -4
  194. package/filtered-search/index.d.ts +433 -3
  195. package/footer/index.d.ts +23 -6
  196. package/form/index.d.ts +411 -10
  197. package/formly/index.d.ts +217 -2
  198. package/header-dropdown/index.d.ts +150 -5
  199. package/help-button/index.d.ts +26 -0
  200. package/help-button/package.json +3 -0
  201. package/icon/index.d.ts +210 -7
  202. package/icon-status/index.d.ts +33 -6
  203. package/index.d.ts +5 -3
  204. package/info-page/index.d.ts +39 -3
  205. package/inline-notification/index.d.ts +49 -6
  206. package/ip-input/index.d.ts +87 -3
  207. package/landing-page/index.d.ts +95 -3
  208. package/language-switcher/index.d.ts +53 -3
  209. package/link/index.d.ts +127 -4
  210. package/list-details/index.d.ts +176 -12
  211. package/loading-spinner/index.d.ts +128 -9
  212. package/localization/index.d.ts +147 -4
  213. package/main-detail-container/index.d.ts +161 -6
  214. package/menu/index.d.ts +195 -11
  215. package/modal/index.d.ts +129 -3
  216. package/navbar/index.d.ts +304 -4
  217. package/navbar-vertical/index.d.ts +226 -3
  218. package/number-input/index.d.ts +111 -6
  219. package/package.json +17 -13
  220. package/pagination/index.d.ts +75 -6
  221. package/password-strength/index.d.ts +96 -7
  222. package/password-toggle/index.d.ts +49 -6
  223. package/phone-number/index.d.ts +192 -3
  224. package/photo-upload/index.d.ts +304 -4
  225. package/pills-input/index.d.ts +135 -9
  226. package/popover/index.d.ts +98 -6
  227. package/popover-next/index.d.ts +112 -7
  228. package/progressbar/index.d.ts +54 -6
  229. package/resize-observer/index.d.ts +143 -6
  230. package/result-details-list/index.d.ts +58 -3
  231. package/search-bar/index.d.ts +93 -6
  232. package/select/index.d.ts +605 -14
  233. package/shadow-root/index.d.ts +39 -1
  234. package/side-panel/index.d.ts +276 -5
  235. package/skip-links/index.d.ts +24 -3
  236. package/slider/index.d.ts +139 -6
  237. package/sort-bar/index.d.ts +49 -6
  238. package/split/index.d.ts +207 -4
  239. package/status-bar/index.d.ts +178 -3
  240. package/status-toggle/index.d.ts +81 -2
  241. package/summary-chip/index.d.ts +48 -5
  242. package/summary-widget/index.d.ts +48 -5
  243. package/system-banner/index.d.ts +24 -3
  244. package/tabs/index.d.ts +161 -7
  245. package/tabs-next/index.d.ts +121 -7
  246. package/template-i18n.json +0 -3
  247. package/theme/index.d.ts +259 -3
  248. package/threshold/index.d.ts +156 -4
  249. package/toast-notification/index.d.ts +66 -2
  250. package/tooltip/index.d.ts +92 -3
  251. package/tour/index.d.ts +114 -2
  252. package/translate/index.d.ts +199 -3
  253. package/tree-view/index.d.ts +818 -8
  254. package/typeahead/index.d.ts +262 -4
  255. package/unauthorized-page/index.d.ts +42 -4
  256. package/wizard/index.d.ts +209 -7
  257. package/about/si-about-data.model.d.ts +0 -49
  258. package/about/si-about.component.d.ts +0 -71
  259. package/about/si-about.module.d.ts +0 -7
  260. package/accordion/si-accordion-hcollapse.service.d.ts +0 -17
  261. package/accordion/si-accordion.component.d.ts +0 -37
  262. package/accordion/si-accordion.module.d.ts +0 -8
  263. package/accordion/si-accordion.service.d.ts +0 -17
  264. package/accordion/si-collapsible-panel.component.d.ts +0 -89
  265. package/action-modal/si-action-dialog.service.d.ts +0 -49
  266. package/action-modal/si-action-dialog.types.d.ts +0 -92
  267. package/action-modal/si-alert-dialog/si-alert-dialog.component.d.ts +0 -32
  268. package/action-modal/si-confirmation-dialog/si-confirmation-dialog.component.d.ts +0 -40
  269. package/action-modal/si-delete-confirmation-dialog/si-delete-confirmation-dialog.component.d.ts +0 -45
  270. package/action-modal/si-edit-discard-dialog/si-edit-discard-dialog.component.d.ts +0 -68
  271. package/application-header/launchpad/si-launchpad-app.component.d.ts +0 -21
  272. package/application-header/launchpad/si-launchpad-factory.component.d.ts +0 -83
  273. package/application-header/launchpad/si-launchpad.model.d.ts +0 -33
  274. package/application-header/si-application-header.component.d.ts +0 -60
  275. package/application-header/si-header-account-item.component.d.ts +0 -13
  276. package/application-header/si-header-action-item-icon-base.directive.d.ts +0 -26
  277. package/application-header/si-header-action-item.base.d.ts +0 -19
  278. package/application-header/si-header-action-item.component.d.ts +0 -9
  279. package/application-header/si-header-actions.directive.d.ts +0 -5
  280. package/application-header/si-header-brand.directive.d.ts +0 -5
  281. package/application-header/si-header-collapsible-actions.component.d.ts +0 -33
  282. package/application-header/si-header-logo.directive.d.ts +0 -16
  283. package/application-header/si-header-navigation-item.component.d.ts +0 -10
  284. package/application-header/si-header-navigation.component.d.ts +0 -11
  285. package/application-header/si-header-selection-item.component.d.ts +0 -12
  286. package/application-header/si-header-siemens-logo.component.d.ts +0 -21
  287. package/auto-collapsable-list/si-auto-collapsable-list-additional-content.directive.d.ts +0 -6
  288. package/auto-collapsable-list/si-auto-collapsable-list-item.directive.d.ts +0 -29
  289. package/auto-collapsable-list/si-auto-collapsable-list-measurable.class.d.ts +0 -16
  290. package/auto-collapsable-list/si-auto-collapsable-list-overflow-item.directive.d.ts +0 -12
  291. package/auto-collapsable-list/si-auto-collapsable-list.directive.d.ts +0 -47
  292. package/auto-collapsable-list/si-auto-collapsable-list.module.d.ts +0 -10
  293. package/autocomplete/si-autocomplete-listbox.directive.d.ts +0 -31
  294. package/autocomplete/si-autocomplete-option.directive.d.ts +0 -31
  295. package/autocomplete/si-autocomplete.directive.d.ts +0 -14
  296. package/autocomplete/si-autocomplete.model.d.ts +0 -7
  297. package/autocomplete/si-autocomplete.module.d.ts +0 -9
  298. package/avatar/si-avatar-background-color.directive.d.ts +0 -35
  299. package/avatar/si-avatar.component.d.ts +0 -51
  300. package/badge/si-badge.component.d.ts +0 -17
  301. package/breadcrumb/breadcrumb-item.model.d.ts +0 -36
  302. package/breadcrumb/si-breadcrumb-item-template.directive.d.ts +0 -10
  303. package/breadcrumb/si-breadcrumb.component.d.ts +0 -46
  304. package/breadcrumb/si-breadcrumb.module.d.ts +0 -7
  305. package/breadcrumb-router/si-breadcrumb-default-resolver.service.d.ts +0 -23
  306. package/breadcrumb-router/si-breadcrumb-router.component.d.ts +0 -30
  307. package/breadcrumb-router/si-breadcrumb-router.model.d.ts +0 -53
  308. package/breadcrumb-router/si-breadcrumb-router.module.d.ts +0 -7
  309. package/card/si-card.component.d.ts +0 -79
  310. package/card/si-card.module.d.ts +0 -7
  311. package/circle-status/si-circle-status.component.d.ts +0 -66
  312. package/circle-status/si-circle-status.module.d.ts +0 -7
  313. package/color-picker/si-color-picker.component.d.ts +0 -61
  314. package/column-selection-dialog/column-selection-editor/si-column-selection-editor.component.d.ts +0 -23
  315. package/column-selection-dialog/si-column-selection-dialog.component.d.ts +0 -114
  316. package/column-selection-dialog/si-column-selection-dialog.service.d.ts +0 -20
  317. package/column-selection-dialog/si-column-selection-dialog.types.d.ts +0 -68
  318. package/common/decorators/index.d.ts +0 -5
  319. package/common/decorators/webcomponent.decorator.d.ts +0 -6
  320. package/common/helpers/animation.helpers.d.ts +0 -10
  321. package/common/helpers/global-events.helpers.d.ts +0 -5
  322. package/common/helpers/index.d.ts +0 -10
  323. package/common/helpers/overlay-helper.d.ts +0 -24
  324. package/common/helpers/positioning.helpers.d.ts +0 -58
  325. package/common/helpers/rtl.d.ts +0 -6
  326. package/common/helpers/track-by.helper.d.ts +0 -27
  327. package/common/models/color-variant.model.d.ts +0 -8
  328. package/common/models/index.d.ts +0 -8
  329. package/common/models/menu.model.d.ts +0 -85
  330. package/common/models/positions.model.d.ts +0 -18
  331. package/common/models/status-type.model.d.ts +0 -21
  332. package/common/services/blink.service.d.ts +0 -41
  333. package/common/services/index.d.ts +0 -8
  334. package/common/services/scrollbar-helper.service.d.ts +0 -17
  335. package/common/services/si-uistate.service.d.ts +0 -61
  336. package/common/services/text-measure.service.d.ts +0 -21
  337. package/connection-strength/si-connection-strength.component.d.ts +0 -19
  338. package/connection-strength/si-connection-strength.module.d.ts +0 -7
  339. package/content-action-bar/si-content-action-bar-toggle.component.d.ts +0 -6
  340. package/content-action-bar/si-content-action-bar.component.d.ts +0 -72
  341. package/content-action-bar/si-content-action-bar.model.d.ts +0 -9
  342. package/content-action-bar/si-content-action-bar.module.d.ts +0 -7
  343. package/copyright-notice/si-copyright-notice.component.d.ts +0 -18
  344. package/copyright-notice/si-copyright-notice.d.ts +0 -23
  345. package/copyright-notice/si-copyright-notice.module.d.ts +0 -7
  346. package/dashboard/si-dashboard-card.component.d.ts +0 -82
  347. package/dashboard/si-dashboard.component.d.ts +0 -75
  348. package/dashboard/si-dashboard.module.d.ts +0 -8
  349. package/dashboard/si-dashboard.service.d.ts +0 -21
  350. package/dashboard/widgets/si-link-widget.component.d.ts +0 -25
  351. package/dashboard/widgets/si-list-widget/si-list-widget-body.component.d.ts +0 -98
  352. package/dashboard/widgets/si-list-widget/si-list-widget-item.component.d.ts +0 -39
  353. package/dashboard/widgets/si-list-widget/si-list-widget.component.d.ts +0 -115
  354. package/dashboard/widgets/si-timeline-widget/si-timeline-widget-body.component.d.ts +0 -21
  355. package/dashboard/widgets/si-timeline-widget/si-timeline-widget-item.component.d.ts +0 -103
  356. package/dashboard/widgets/si-timeline-widget/si-timeline-widget.component.d.ts +0 -52
  357. package/dashboard/widgets/si-value-widget-body.component.d.ts +0 -33
  358. package/dashboard/widgets/si-value-widget.component.d.ts +0 -115
  359. package/dashboard/widgets/si-widget-base.component.d.ts +0 -48
  360. package/datatable/si-datatable-interaction.directive.d.ts +0 -34
  361. package/datatable/si-datatable.module.d.ts +0 -7
  362. package/date-range-filter/si-date-range-calculation.service.d.ts +0 -33
  363. package/date-range-filter/si-date-range-filter.component.d.ts +0 -252
  364. package/date-range-filter/si-date-range-filter.module.d.ts +0 -7
  365. package/date-range-filter/si-date-range-filter.types.d.ts +0 -40
  366. package/date-range-filter/si-relative-date.component.d.ts +0 -31
  367. package/datepicker/components/si-calendar-body.component.d.ts +0 -137
  368. package/datepicker/components/si-calendar-date-cell.directive.d.ts +0 -16
  369. package/datepicker/components/si-calendar-direction-button.component.d.ts +0 -18
  370. package/datepicker/components/si-compare-adapter.d.ts +0 -37
  371. package/datepicker/components/si-day-selection.component.d.ts +0 -76
  372. package/datepicker/components/si-initial-focus.component.d.ts +0 -74
  373. package/datepicker/components/si-month-selection.component.d.ts +0 -62
  374. package/datepicker/components/si-year-selection.component.d.ts +0 -65
  375. package/datepicker/date-time-helper.d.ts +0 -302
  376. package/datepicker/si-calendar-button.component.d.ts +0 -49
  377. package/datepicker/si-date-input.directive.d.ts +0 -114
  378. package/datepicker/si-date-range.component.d.ts +0 -150
  379. package/datepicker/si-datepicker-overlay.component.d.ts +0 -82
  380. package/datepicker/si-datepicker-overlay.directive.d.ts +0 -104
  381. package/datepicker/si-datepicker.component.d.ts +0 -228
  382. package/datepicker/si-datepicker.directive.d.ts +0 -62
  383. package/datepicker/si-datepicker.model.d.ts +0 -129
  384. package/datepicker/si-datepicker.module.d.ts +0 -12
  385. package/datepicker/si-timepicker.component.d.ts +0 -214
  386. package/electron-titlebar/electron.helpers.d.ts +0 -5
  387. package/electron-titlebar/si-electron-titlebar.component.d.ts +0 -72
  388. package/electron-titlebar/si-electron-titlebar.module.d.ts +0 -7
  389. package/empty-state/si-empty-state.component.d.ts +0 -18
  390. package/empty-state/si-empty-state.module.d.ts +0 -7
  391. package/file-uploader/si-file-dropzone.component.d.ts +0 -106
  392. package/file-uploader/si-file-uploader.component.d.ts +0 -296
  393. package/file-uploader/si-file-uploader.model.d.ts +0 -12
  394. package/file-uploader/si-file-uploader.module.d.ts +0 -8
  395. package/filter-bar/filter.d.ts +0 -26
  396. package/filter-bar/si-filter-bar.component.d.ts +0 -65
  397. package/filter-bar/si-filter-bar.module.d.ts +0 -7
  398. package/filter-bar/si-filter-pill.component.d.ts +0 -20
  399. package/filtered-search/si-filtered-search-helper.d.ts +0 -22
  400. package/filtered-search/si-filtered-search-value.component.d.ts +0 -53
  401. package/filtered-search/si-filtered-search.component.d.ts +0 -329
  402. package/filtered-search/si-filtered-search.model.d.ts +0 -139
  403. package/filtered-search/si-filtered-search.module.d.ts +0 -7
  404. package/filtered-search/values/date-value/si-filtered-search-date-value.component.d.ts +0 -57
  405. package/filtered-search/values/si-filtered-search-value.base.d.ts +0 -27
  406. package/filtered-search/values/typeahead/si-filtered-search-typeahead.component.d.ts +0 -45
  407. package/footer/si-footer.component.d.ts +0 -14
  408. package/footer/si-footer.module.d.ts +0 -7
  409. package/form/form-fieldset/si-form-fieldset.component.d.ts +0 -40
  410. package/form/si-form-container/si-form-container.component.d.ts +0 -155
  411. package/form/si-form-item/si-form-field-native.control.d.ts +0 -22
  412. package/form/si-form-item/si-form-item.component.d.ts +0 -90
  413. package/form/si-form-item-control-input.directive.d.ts +0 -18
  414. package/form/si-form-item.control.d.ts +0 -35
  415. package/form/si-form-validation-error.model.d.ts +0 -55
  416. package/form/si-form-validation-error.provider.d.ts +0 -11
  417. package/form/si-form-validation-error.service.d.ts +0 -42
  418. package/form/si-form-validation-tooltip/si-form-validation-tooltip.component.d.ts +0 -13
  419. package/form/si-form-validation-tooltip/si-form-validation-tooltip.directive.d.ts +0 -42
  420. package/form/si-form.module.d.ts +0 -25
  421. package/formly/fields/button/si-formly-button.component.d.ts +0 -7
  422. package/formly/fields/date-range/si-formly-date-range.component.d.ts +0 -6
  423. package/formly/fields/datetime/si-formly-datetime.component.d.ts +0 -13
  424. package/formly/fields/email/si-formly-email.component.d.ts +0 -6
  425. package/formly/fields/ip-input/si-formly-ip-input.component.d.ts +0 -6
  426. package/formly/fields/number/si-formly-number.component.d.ts +0 -6
  427. package/formly/fields/password/si-formly-password.component.d.ts +0 -6
  428. package/formly/fields/select/si-formly-select.component.d.ts +0 -6
  429. package/formly/fields/text/si-formly-text-display.component.d.ts +0 -7
  430. package/formly/fields/textarea/si-formly-textarea.component.d.ts +0 -18
  431. package/formly/fields/time/si-formly-time.component.d.ts +0 -13
  432. package/formly/si-formly-translate.extension.d.ts +0 -9
  433. package/formly/si-formly.component.d.ts +0 -62
  434. package/formly/si-formly.module.d.ts +0 -35
  435. package/formly/structural/si-formly-accordion/si-formly-accordion.component.d.ts +0 -13
  436. package/formly/structural/si-formly-array/si-formly-array.component.d.ts +0 -6
  437. package/formly/structural/si-formly-object/si-formly-object.component.d.ts +0 -6
  438. package/formly/structural/si-formly-object-grid/si-formly-object-grid.component.d.ts +0 -22
  439. package/formly/structural/si-formly-object-grid/si-formly-object-grid.model.d.ts +0 -21
  440. package/formly/structural/si-formly-object-plain/si-formly-object-plain.component.d.ts +0 -6
  441. package/formly/structural/si-formly-tabset/si-formly-object-tabset.component.d.ts +0 -7
  442. package/formly/utils.d.ts +0 -6
  443. package/formly/wrapper/si-formly-fieldset.component.d.ts +0 -8
  444. package/formly/wrapper/si-formly-form-field-provider.directive.d.ts +0 -19
  445. package/formly/wrapper/si-formly-horizontal-wrapper.component.d.ts +0 -6
  446. package/formly/wrapper/si-formly-icon-wrapper.component.d.ts +0 -6
  447. package/formly/wrapper/si-formly-wrapper.component.d.ts +0 -8
  448. package/header-dropdown/si-header-dropdown-item.component.d.ts +0 -23
  449. package/header-dropdown/si-header-dropdown-items-factory.component.d.ts +0 -14
  450. package/header-dropdown/si-header-dropdown-trigger.directive.d.ts +0 -57
  451. package/header-dropdown/si-header-dropdown.component.d.ts +0 -20
  452. package/header-dropdown/si-header.model.d.ts +0 -37
  453. package/icon/element-icons.d.ts +0 -59
  454. package/icon/icon-status.d.ts +0 -22
  455. package/icon/si-icon-next.component.d.ts +0 -64
  456. package/icon/si-icon.component.d.ts +0 -23
  457. package/icon/si-icon.module.d.ts +0 -7
  458. package/icon/si-icons.d.ts +0 -31
  459. package/icon/si-status-icon.component.d.ts +0 -9
  460. package/icon-status/si-icon-status.component.d.ts +0 -24
  461. package/icon-status/si-icon-status.module.d.ts +0 -7
  462. package/info-page/si-info-page.component.d.ts +0 -38
  463. package/inline-notification/si-inline-notification.component.d.ts +0 -40
  464. package/inline-notification/si-inline-notification.module.d.ts +0 -7
  465. package/ip-input/address-utils.d.ts +0 -28
  466. package/ip-input/address-validators.d.ts +0 -21
  467. package/ip-input/si-ip-input.directive.d.ts +0 -53
  468. package/ip-input/si-ip4-input.directive.d.ts +0 -9
  469. package/ip-input/si-ip6-input.directive.d.ts +0 -10
  470. package/landing-page/alert-config.model.d.ts +0 -15
  471. package/landing-page/si-landing-page.component.d.ts +0 -74
  472. package/landing-page/si-landing-page.module.d.ts +0 -7
  473. package/language-switcher/iso-language-value.d.ts +0 -14
  474. package/language-switcher/si-language-switcher.component.d.ts +0 -31
  475. package/language-switcher/si-language-switcher.module.d.ts +0 -7
  476. package/link/aria-current.model.d.ts +0 -5
  477. package/link/link.model.d.ts +0 -57
  478. package/link/si-link-action.service.d.ts +0 -17
  479. package/link/si-link.directive.d.ts +0 -42
  480. package/link/si-link.module.d.ts +0 -7
  481. package/list-details/si-details-pane/si-details-pane.component.d.ts +0 -8
  482. package/list-details/si-details-pane-body/si-details-pane-body.component.d.ts +0 -6
  483. package/list-details/si-details-pane-footer/si-details-pane-footer.component.d.ts +0 -6
  484. package/list-details/si-details-pane-header/si-details-pane-header.component.d.ts +0 -38
  485. package/list-details/si-list-details.component.d.ts +0 -100
  486. package/list-details/si-list-pane/si-list-pane.component.d.ts +0 -10
  487. package/list-details/si-list-pane-body/si-list-pane-body.component.d.ts +0 -6
  488. package/list-details/si-list-pane-header/si-list-pane-header.component.d.ts +0 -6
  489. package/loading-spinner/si-loading-button.component.d.ts +0 -31
  490. package/loading-spinner/si-loading-spinner.component.d.ts +0 -32
  491. package/loading-spinner/si-loading-spinner.directive.d.ts +0 -37
  492. package/loading-spinner/si-loading-spinner.module.d.ts +0 -8
  493. package/loading-spinner/si-loading-spinner.service.d.ts +0 -18
  494. package/localization/si-directionality.d.ts +0 -41
  495. package/localization/si-locale-id.d.ts +0 -22
  496. package/localization/si-locale-store.d.ts +0 -16
  497. package/localization/si-locale.service.d.ts +0 -73
  498. package/main-detail-container/si-main-detail-container.component.d.ts +0 -151
  499. package/main-detail-container/si-main-detail-container.module.d.ts +0 -7
  500. package/menu/si-menu-action.service.d.ts +0 -13
  501. package/menu/si-menu-bar.directive.d.ts +0 -12
  502. package/menu/si-menu-divider.directive.d.ts +0 -5
  503. package/menu/si-menu-factory-item-guard.directive.d.ts +0 -11
  504. package/menu/si-menu-factory.component.d.ts +0 -15
  505. package/menu/si-menu-header.directive.d.ts +0 -5
  506. package/menu/si-menu-item-base.directive.d.ts +0 -16
  507. package/menu/si-menu-item-checkbox.component.d.ts +0 -11
  508. package/menu/si-menu-item-radio.component.d.ts +0 -10
  509. package/menu/si-menu-item.component.d.ts +0 -10
  510. package/menu/si-menu-model.d.ts +0 -91
  511. package/menu/si-menu.directive.d.ts +0 -6
  512. package/menu/si-menu.module.d.ts +0 -14
  513. package/modal/modal.helpers.d.ts +0 -8
  514. package/modal/modalref.d.ts +0 -64
  515. package/modal/si-modal.component.d.ts +0 -32
  516. package/modal/si-modal.service.d.ts +0 -57
  517. package/navbar/account.model.d.ts +0 -39
  518. package/navbar/si-navbar-item/index.d.ts +0 -5
  519. package/navbar/si-navbar-item/si-navbar-item.component.d.ts +0 -29
  520. package/navbar/si-navbar-primary/index.d.ts +0 -6
  521. package/navbar/si-navbar-primary/si-navbar-primary.component.d.ts +0 -198
  522. package/navbar/si-navbar-primary/si-navbar-primary.model.d.ts +0 -34
  523. package/navbar/si-navbar.module.d.ts +0 -9
  524. package/navbar-vertical/si-navbar-vertical-divider.component.d.ts +0 -5
  525. package/navbar-vertical/si-navbar-vertical-group-trigger.directive.d.ts +0 -38
  526. package/navbar-vertical/si-navbar-vertical-group.component.d.ts +0 -16
  527. package/navbar-vertical/si-navbar-vertical-header.component.d.ts +0 -6
  528. package/navbar-vertical/si-navbar-vertical-item-legacy.component.d.ts +0 -17
  529. package/navbar-vertical/si-navbar-vertical-item.component.d.ts +0 -21
  530. package/navbar-vertical/si-navbar-vertical.component.d.ts +0 -148
  531. package/navbar-vertical/si-navbar-vertical.model.d.ts +0 -77
  532. package/navbar-vertical/si-navbar-vertical.module.d.ts +0 -7
  533. package/navbar-vertical/si-navbar-vertical.provider.d.ts +0 -7
  534. package/number-input/si-number-input.component.d.ts +0 -106
  535. package/number-input/si-number-input.module.d.ts +0 -7
  536. package/pagination/si-pagination.component.d.ts +0 -65
  537. package/pagination/si-pagination.module.d.ts +0 -7
  538. package/password-strength/si-password-strength.component.d.ts +0 -25
  539. package/password-strength/si-password-strength.directive.d.ts +0 -65
  540. package/password-strength/si-password-strength.module.d.ts +0 -8
  541. package/password-toggle/si-password-toggle.component.d.ts +0 -39
  542. package/password-toggle/si-password-toggle.module.d.ts +0 -7
  543. package/phone-number/si-phone-number-input-select.directive.d.ts +0 -10
  544. package/phone-number/si-phone-number-input.component.d.ts +0 -137
  545. package/phone-number/si-phone-number-input.models.d.ts +0 -48
  546. package/phone-number/si-phone-number-input.module.d.ts +0 -7
  547. package/photo-upload/si-image-cropper-style.component.d.ts +0 -5
  548. package/photo-upload/si-photo-upload.component.d.ts +0 -298
  549. package/pills-input/si-input-pill.component.d.ts +0 -9
  550. package/pills-input/si-pills-input-csv.directive.d.ts +0 -8
  551. package/pills-input/si-pills-input-email.directive.d.ts +0 -10
  552. package/pills-input/si-pills-input-pattern-base.d.ts +0 -19
  553. package/pills-input/si-pills-input-value-handler.d.ts +0 -12
  554. package/pills-input/si-pills-input.component.d.ts +0 -87
  555. package/pills-input/si-pills-input.module.d.ts +0 -9
  556. package/popover/si-popover.component.d.ts +0 -26
  557. package/popover/si-popover.directive.d.ts +0 -89
  558. package/popover/si-popover.module.d.ts +0 -7
  559. package/popover-next/si-popover-description.directive.d.ts +0 -7
  560. package/popover-next/si-popover-next.directive.d.ts +0 -61
  561. package/popover-next/si-popover-title.directive.d.ts +0 -7
  562. package/popover-next/si-popover.component.d.ts +0 -27
  563. package/progressbar/si-progressbar.component.d.ts +0 -43
  564. package/progressbar/si-progressbar.module.d.ts +0 -7
  565. package/public-api.d.ts +0 -5
  566. package/resize-observer/resize-observer.service.d.ts +0 -41
  567. package/resize-observer/si-resize-observer.directive.d.ts +0 -31
  568. package/resize-observer/si-resize-observer.module.d.ts +0 -8
  569. package/resize-observer/si-responsive-container.directive.d.ts +0 -73
  570. package/result-details-list/si-result-details-list.component.d.ts +0 -14
  571. package/result-details-list/si-result-details-list.datamodel.d.ts +0 -48
  572. package/result-details-list/si-result-details-list.module.d.ts +0 -7
  573. package/search-bar/si-search-bar.component.d.ts +0 -87
  574. package/search-bar/si-search-bar.module.d.ts +0 -7
  575. package/select/options/si-select-complex-options.directive.d.ts +0 -69
  576. package/select/options/si-select-lazy-options.directive.d.ts +0 -38
  577. package/select/options/si-select-option.source.d.ts +0 -49
  578. package/select/options/si-select-options-strategy.base.d.ts +0 -35
  579. package/select/options/si-select-options-strategy.d.ts +0 -37
  580. package/select/options/si-select-simple-options.directive.d.ts +0 -34
  581. package/select/select-input/si-select-input.component.d.ts +0 -43
  582. package/select/select-list/si-select-list-has-filter.component.d.ts +0 -20
  583. package/select/select-list/si-select-list.base.d.ts +0 -37
  584. package/select/select-list/si-select-list.component.d.ts +0 -15
  585. package/select/select-option/si-select-option-row.component.d.ts +0 -16
  586. package/select/select-option/si-select-option.component.d.ts +0 -9
  587. package/select/selection/si-select-multi-value.directive.d.ts +0 -26
  588. package/select/selection/si-select-selection-strategy.d.ts +0 -58
  589. package/select/selection/si-select-single-value.directive.d.ts +0 -26
  590. package/select/si-select-action.directive.d.ts +0 -12
  591. package/select/si-select-actions.directive.d.ts +0 -5
  592. package/select/si-select-group-template.directive.d.ts +0 -20
  593. package/select/si-select-option-row-template.directive.d.ts +0 -9
  594. package/select/si-select-option-template.directive.d.ts +0 -21
  595. package/select/si-select.component.d.ts +0 -96
  596. package/select/si-select.module.d.ts +0 -15
  597. package/select/si-select.types.d.ts +0 -65
  598. package/shadow-root/si-shadow-root.directive.d.ts +0 -39
  599. package/side-panel/si-side-panel-content.component.d.ts +0 -105
  600. package/side-panel/si-side-panel.component.d.ts +0 -108
  601. package/side-panel/si-side-panel.module.d.ts +0 -8
  602. package/side-panel/si-side-panel.service.d.ts +0 -45
  603. package/side-panel/side-panel.model.d.ts +0 -16
  604. package/skip-links/si-skip-link-target.directive.d.ts +0 -27
  605. package/skip-links/si-skip-links.component.d.ts +0 -9
  606. package/skip-links/skip-link.service.d.ts +0 -14
  607. package/slider/si-slider.component.d.ts +0 -129
  608. package/slider/si-slider.module.d.ts +0 -7
  609. package/sort-bar/si-sort-bar.component.d.ts +0 -42
  610. package/sort-bar/si-sort-bar.module.d.ts +0 -7
  611. package/split/si-split-part.component.d.ts +0 -154
  612. package/split/si-split.component.d.ts +0 -48
  613. package/split/si-split.interfaces.d.ts +0 -17
  614. package/split/si-split.module.d.ts +0 -8
  615. package/status-bar/si-status-bar-item/index.d.ts +0 -6
  616. package/status-bar/si-status-bar-item/si-status-bar-item.component.d.ts +0 -22
  617. package/status-bar/si-status-bar-item/si-status-bar-item.model.d.ts +0 -33
  618. package/status-bar/si-status-bar.component.d.ts +0 -116
  619. package/status-bar/si-status-bar.module.d.ts +0 -7
  620. package/status-toggle/si-status-toggle.component.d.ts +0 -54
  621. package/status-toggle/status-toggle.model.d.ts +0 -26
  622. package/summary-chip/si-summary-chip.component.d.ts +0 -44
  623. package/summary-widget/si-summary-widget.component.d.ts +0 -44
  624. package/system-banner/system-banner.component.d.ts +0 -23
  625. package/tabs/si-tab/index.d.ts +0 -5
  626. package/tabs/si-tab/si-tab.component.d.ts +0 -58
  627. package/tabs/si-tabs.module.d.ts +0 -8
  628. package/tabs/si-tabset/index.d.ts +0 -5
  629. package/tabs/si-tabset/si-tabset.component.d.ts +0 -100
  630. package/tabs-next/si-tab-next-base.directive.d.ts +0 -63
  631. package/tabs-next/si-tab-next-link.component.d.ts +0 -16
  632. package/tabs-next/si-tab-next.component.d.ts +0 -16
  633. package/tabs-next/si-tabs-tokens.d.ts +0 -7
  634. package/tabs-next/si-tabset-next.component.d.ts +0 -57
  635. package/theme/si-theme-store.d.ts +0 -82
  636. package/theme/si-theme.model.d.ts +0 -48
  637. package/theme/si-theme.service.d.ts +0 -129
  638. package/threshold/si-readonly-threshold-option.component.d.ts +0 -11
  639. package/threshold/si-threshold.component.d.ts +0 -147
  640. package/threshold/si-threshold.module.d.ts +0 -7
  641. package/toast-notification/si-toast-notification/si-toast-notification.component.d.ts +0 -17
  642. package/toast-notification/si-toast-notification-drawer/si-toast-notification-drawer.component.d.ts +0 -9
  643. package/toast-notification/si-toast-notification.service.d.ts +0 -41
  644. package/toast-notification/si-toast.model.d.ts +0 -25
  645. package/tooltip/si-tooltip.component.d.ts +0 -25
  646. package/tooltip/si-tooltip.directive.d.ts +0 -45
  647. package/tooltip/si-tooltip.module.d.ts +0 -7
  648. package/tooltip/si-tooltip.service.d.ts +0 -44
  649. package/tour/si-tour-highlight.component.d.ts +0 -15
  650. package/tour/si-tour-token.model.d.ts +0 -27
  651. package/tour/si-tour.component.d.ts +0 -31
  652. package/tour/si-tour.model.d.ts +0 -51
  653. package/tour/si-tour.service.d.ts +0 -62
  654. package/translate/si-translatable-keys.interface.d.ts +0 -193
  655. package/translate/si-translatable-overrides.provider.d.ts +0 -7
  656. package/tree-view/drag-drop.util.d.ts +0 -32
  657. package/tree-view/si-tree-view-converter.service.d.ts +0 -41
  658. package/tree-view/si-tree-view-item/si-tree-view-item.component.d.ts +0 -104
  659. package/tree-view/si-tree-view-item/si-tree-view-item.directive.d.ts +0 -24
  660. package/tree-view/si-tree-view-item-context.d.ts +0 -11
  661. package/tree-view/si-tree-view-item-height.service.d.ts +0 -49
  662. package/tree-view/si-tree-view-item-template.directive.d.ts +0 -18
  663. package/tree-view/si-tree-view-virtualization.service.d.ts +0 -150
  664. package/tree-view/si-tree-view.component.d.ts +0 -467
  665. package/tree-view/si-tree-view.model.d.ts +0 -146
  666. package/tree-view/si-tree-view.module.d.ts +0 -10
  667. package/tree-view/si-tree-view.service.d.ts +0 -55
  668. package/tree-view/si-tree-view.utils.d.ts +0 -46
  669. package/typeahead/si-typeahead-item-template.directive.d.ts +0 -7
  670. package/typeahead/si-typeahead.component.d.ts +0 -22
  671. package/typeahead/si-typeahead.directive.d.ts +0 -196
  672. package/typeahead/si-typeahead.model.d.ts +0 -60
  673. package/typeahead/si-typeahead.module.d.ts +0 -8
  674. package/typeahead/si-typeahead.sorting.d.ts +0 -10
  675. package/unauthorized-page/si-unauthorized-page.component.d.ts +0 -35
  676. package/unauthorized-page/si-unauthorized-page.module.d.ts +0 -7
  677. package/wizard/si-wizard-step.component.d.ts +0 -21
  678. package/wizard/si-wizard.component.d.ts +0 -196
  679. package/wizard/si-wizard.module.d.ts +0 -8
@@ -6,7 +6,7 @@ import * as i1 from '@siemens/element-ng/avatar';
6
6
  import { SiAvatarBackgroundColorDirective } from '@siemens/element-ng/avatar';
7
7
  import { addIcons, elementStateExclamationMark, elementCircleFilled, elementCancel, SiIconNextComponent } from '@siemens/element-ng/icon';
8
8
  import { SiModalService } from '@siemens/element-ng/modal';
9
- import { SiTranslatePipe } from '@siemens/element-translate-ng/translate';
9
+ import { t, SiTranslatePipe } from '@siemens/element-translate-ng/translate';
10
10
  import { ImageCropperComponent } from 'ngx-image-cropper';
11
11
 
12
12
  /**
@@ -14,10 +14,10 @@ import { ImageCropperComponent } from 'ngx-image-cropper';
14
14
  * SPDX-License-Identifier: MIT
15
15
  */
16
16
  class SiImageCropperStyleComponent {
17
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiImageCropperStyleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.6", type: SiImageCropperStyleComponent, isStandalone: true, selector: "si-image-cropper-style", ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host ::ng-deep image-cropper{max-block-size:70vh;--image-cropper-outline-color: var(--element-base-translucent-1);--cropper-outline-color: var(--image-cropper-outline-color);--cropper-overlay-color: var(--element-ui-5)}:host ::ng-deep image-cropper .ngx-ic-square{background:var(--element-ui-0)!important}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper{outline:2px solid var(--element-ui-0)!important}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper:after{z-index:0;border:unset;box-shadow:0 0 0 9999px var(--cropper-outline-color)}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper .ngx-ic-move.ngx-ic-move{position:relative;overflow:hidden;border:0}\n"] });
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiImageCropperStyleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: SiImageCropperStyleComponent, isStandalone: true, selector: "si-image-cropper-style", ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host ::ng-deep image-cropper{max-block-size:70vh;--image-cropper-outline-color: var(--element-base-translucent-1);--cropper-outline-color: var(--image-cropper-outline-color);--cropper-overlay-color: var(--element-ui-5)}:host ::ng-deep image-cropper .ngx-ic-square{background:var(--element-ui-0)!important}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper{outline:2px solid var(--element-ui-0)!important}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper:after{z-index:0;border:unset;box-shadow:0 0 0 9999px var(--cropper-outline-color)}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper .ngx-ic-move.ngx-ic-move{position:relative;overflow:hidden;border:0}\n"] });
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiImageCropperStyleComponent, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiImageCropperStyleComponent, decorators: [{
21
21
  type: Component,
22
22
  args: [{ selector: 'si-image-cropper-style', template: '<ng-content />', styles: [":host ::ng-deep image-cropper{max-block-size:70vh;--image-cropper-outline-color: var(--element-base-translucent-1);--cropper-outline-color: var(--image-cropper-outline-color);--cropper-overlay-color: var(--element-ui-5)}:host ::ng-deep image-cropper .ngx-ic-square{background:var(--element-ui-0)!important}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper{outline:2px solid var(--element-ui-0)!important}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper:after{z-index:0;border:unset;box-shadow:0 0 0 9999px var(--cropper-outline-color)}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper .ngx-ic-move.ngx-ic-move{position:relative;overflow:hidden;border:0}\n"] }]
23
23
  }] });
@@ -69,20 +69,20 @@ class SiPhotoUploadComponent {
69
69
  *
70
70
  * @defaultValue
71
71
  * ```
72
- * $localize`:@@SI_PHOTO_UPLOAD.ERROR_FILE_TYPE:The image file is not valid. Please upload a PNG or JP(E)G.`
72
+ * t(() => $localize`:@@SI_PHOTO_UPLOAD.ERROR_FILE_TYPE:The image file is not valid. Please upload a PNG or JP(E)G.`)
73
73
  * ```
74
74
  */
75
- uploadErrorWrongType = input($localize `:@@SI_PHOTO_UPLOAD.ERROR_FILE_TYPE:The image file is not valid. Please upload a PNG or JP(E)G.`);
75
+ uploadErrorWrongType = input(t(() => $localize `:@@SI_PHOTO_UPLOAD.ERROR_FILE_TYPE:The image file is not valid. Please upload a PNG or JP(E)G.`));
76
76
  /**
77
77
  * If the uploaded file exceeds the allowed upload size, this
78
78
  * error message will be displayed to the user.
79
79
  *
80
80
  * @defaultValue
81
81
  * ```
82
- * $localize`:@@SI_PHOTO_UPLOAD.ERROR_FILE_SIZE_EXCEEDED:The actual file size {{mb}} MB exceeds the {{maxSizeMb}} MB limit.`
82
+ * t(() => $localize`:@@SI_PHOTO_UPLOAD.ERROR_FILE_SIZE_EXCEEDED:The actual file size {{mb}} MB exceeds the {{maxSizeMb}} MB limit.`)
83
83
  * ```
84
84
  */
85
- uploadErrorTooBig = input($localize `:@@SI_PHOTO_UPLOAD.ERROR_FILE_SIZE_EXCEEDED:The actual file size {{mb}} MB exceeds the {{maxSizeMb}} MB limit.`);
85
+ uploadErrorTooBig = input(t(() => $localize `:@@SI_PHOTO_UPLOAD.ERROR_FILE_SIZE_EXCEEDED:The actual file size {{mb}} MB exceeds the {{maxSizeMb}} MB limit.`));
86
86
  /**
87
87
  * Alternative text for the photo.
88
88
  *
@@ -101,64 +101,64 @@ class SiPhotoUploadComponent {
101
101
  *
102
102
  * @defaultValue
103
103
  * ```
104
- * $localize`:@@SI_PHOTO_UPLOAD.CHANGE_PHOTO:Change`
104
+ * t(() => $localize`:@@SI_PHOTO_UPLOAD.CHANGE_PHOTO:Change`)
105
105
  * ```
106
106
  */
107
- changePhotoText = input($localize `:@@SI_PHOTO_UPLOAD.CHANGE_PHOTO:Change`);
107
+ changePhotoText = input(t(() => $localize `:@@SI_PHOTO_UPLOAD.CHANGE_PHOTO:Change`));
108
108
  /**
109
109
  * Cropper frame aria label.
110
110
  *
111
111
  * @defaultValue
112
112
  * ```
113
- * $localize`:@@SI_PHOTO_UPLOAD.CROPPER_FRAME_LABEL:Crop photo`
113
+ * t(() => $localize`:@@SI_PHOTO_UPLOAD.CROPPER_FRAME_LABEL:Crop photo`)
114
114
  * ```
115
115
  */
116
- cropperFrameAriaLabel = input($localize `:@@SI_PHOTO_UPLOAD.CROPPER_FRAME_LABEL:Crop photo`);
116
+ cropperFrameAriaLabel = input(t(() => $localize `:@@SI_PHOTO_UPLOAD.CROPPER_FRAME_LABEL:Crop photo`));
117
117
  /**
118
118
  * Text for the button uploading a photo.
119
119
  *
120
120
  * @defaultValue
121
121
  * ```
122
- * $localize`:@@SI_PHOTO_UPLOAD.UPLOAD_PHOTO:Upload photo`
122
+ * t(() => $localize`:@@SI_PHOTO_UPLOAD.UPLOAD_PHOTO:Upload photo`)
123
123
  * ```
124
124
  */
125
- uploadPhotoText = input($localize `:@@SI_PHOTO_UPLOAD.UPLOAD_PHOTO:Upload photo`);
125
+ uploadPhotoText = input(t(() => $localize `:@@SI_PHOTO_UPLOAD.UPLOAD_PHOTO:Upload photo`));
126
126
  /**
127
127
  * Text for the button removing the photo.
128
128
  *
129
129
  * @defaultValue
130
130
  * ```
131
- * $localize`:@@SI_PHOTO_UPLOAD.REMOVE:Remove`
131
+ * t(() => $localize`:@@SI_PHOTO_UPLOAD.REMOVE:Remove`)
132
132
  * ```
133
133
  */
134
- removePhotoText = input($localize `:@@SI_PHOTO_UPLOAD.REMOVE:Remove`);
134
+ removePhotoText = input(t(() => $localize `:@@SI_PHOTO_UPLOAD.REMOVE:Remove`));
135
135
  /**
136
136
  * Text for the button cancelling the editing process.
137
137
  *
138
138
  * @defaultValue
139
139
  * ```
140
- * $localize`:@@SI_PHOTO_UPLOAD.CANCEL:Cancel`
140
+ * t(() => $localize`:@@SI_PHOTO_UPLOAD.CANCEL:Cancel`)
141
141
  * ```
142
142
  */
143
- cancelEditText = input($localize `:@@SI_PHOTO_UPLOAD.CANCEL:Cancel`);
143
+ cancelEditText = input(t(() => $localize `:@@SI_PHOTO_UPLOAD.CANCEL:Cancel`));
144
144
  /**
145
145
  * Text for the button applying the edited photo.
146
146
  *
147
147
  * @defaultValue
148
148
  * ```
149
- * $localize`:@@SI_PHOTO_UPLOAD.APPLY_PHOTO:Apply`
149
+ * t(() => $localize`:@@SI_PHOTO_UPLOAD.APPLY_PHOTO:Apply`)
150
150
  * ```
151
151
  */
152
- applyEditText = input($localize `:@@SI_PHOTO_UPLOAD.APPLY_PHOTO:Apply`);
152
+ applyEditText = input(t(() => $localize `:@@SI_PHOTO_UPLOAD.APPLY_PHOTO:Apply`));
153
153
  /**
154
154
  * Text displayed as header of the editing modal.
155
155
  *
156
156
  * @defaultValue
157
157
  * ```
158
- * $localize`:@@SI_PHOTO_UPLOAD.MODAL_TITLE:Avatar photo`
158
+ * t(() => $localize`:@@SI_PHOTO_UPLOAD.MODAL_TITLE:Avatar photo`)
159
159
  * ```
160
160
  */
161
- modalHeader = input($localize `:@@SI_PHOTO_UPLOAD.MODAL_TITLE:Avatar photo`);
161
+ modalHeader = input(t(() => $localize `:@@SI_PHOTO_UPLOAD.MODAL_TITLE:Avatar photo`));
162
162
  /**
163
163
  * Text displayed as description of the editing modal.
164
164
  */
@@ -446,10 +446,10 @@ class SiPhotoUploadComponent {
446
446
  this.resetErrorMessage();
447
447
  this.sanitizedPhotoUrl.set(photo ? this.sanitizer.bypassSecurityTrustResourceUrl(photo) : undefined);
448
448
  }
449
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiPhotoUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
450
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiPhotoUploadComponent, isStandalone: true, selector: "si-photo-upload", inputs: { readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disabledCropping: { classPropertyName: "disabledCropping", publicName: "disabledCropping", isSignal: true, isRequired: false, transformFunction: null }, acceptedUploadFormats: { classPropertyName: "acceptedUploadFormats", publicName: "acceptedUploadFormats", isSignal: true, isRequired: false, transformFunction: null }, maxFileSize: { classPropertyName: "maxFileSize", publicName: "maxFileSize", isSignal: true, isRequired: false, transformFunction: null }, uploadErrorWrongType: { classPropertyName: "uploadErrorWrongType", publicName: "uploadErrorWrongType", isSignal: true, isRequired: false, transformFunction: null }, uploadErrorTooBig: { classPropertyName: "uploadErrorTooBig", publicName: "uploadErrorTooBig", isSignal: true, isRequired: false, transformFunction: null }, photoAltText: { classPropertyName: "photoAltText", publicName: "photoAltText", isSignal: true, isRequired: false, transformFunction: null }, placeholderAltText: { classPropertyName: "placeholderAltText", publicName: "placeholderAltText", isSignal: true, isRequired: false, transformFunction: null }, changePhotoText: { classPropertyName: "changePhotoText", publicName: "changePhotoText", isSignal: true, isRequired: false, transformFunction: null }, cropperFrameAriaLabel: { classPropertyName: "cropperFrameAriaLabel", publicName: "cropperFrameAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, uploadPhotoText: { classPropertyName: "uploadPhotoText", publicName: "uploadPhotoText", isSignal: true, isRequired: false, transformFunction: null }, removePhotoText: { classPropertyName: "removePhotoText", publicName: "removePhotoText", isSignal: true, isRequired: false, transformFunction: null }, cancelEditText: { classPropertyName: "cancelEditText", publicName: "cancelEditText", isSignal: true, isRequired: false, transformFunction: null }, applyEditText: { classPropertyName: "applyEditText", publicName: "applyEditText", isSignal: true, isRequired: false, transformFunction: null }, modalHeader: { classPropertyName: "modalHeader", publicName: "modalHeader", isSignal: true, isRequired: false, transformFunction: null }, modalDescription: { classPropertyName: "modalDescription", publicName: "modalDescription", isSignal: true, isRequired: false, transformFunction: null }, cropperImageFormat: { classPropertyName: "cropperImageFormat", publicName: "cropperImageFormat", isSignal: true, isRequired: false, transformFunction: null }, cropperAspectRatio: { classPropertyName: "cropperAspectRatio", publicName: "cropperAspectRatio", isSignal: true, isRequired: false, transformFunction: null }, cropperMaintainAspectRatio: { classPropertyName: "cropperMaintainAspectRatio", publicName: "cropperMaintainAspectRatio", isSignal: true, isRequired: false, transformFunction: null }, cropperContainWithinAspectRatio: { classPropertyName: "cropperContainWithinAspectRatio", publicName: "cropperContainWithinAspectRatio", isSignal: true, isRequired: false, transformFunction: null }, cropperMinWidth: { classPropertyName: "cropperMinWidth", publicName: "cropperMinWidth", isSignal: true, isRequired: false, transformFunction: null }, cropperMinHeight: { classPropertyName: "cropperMinHeight", publicName: "cropperMinHeight", isSignal: true, isRequired: false, transformFunction: null }, cropperMaxWidth: { classPropertyName: "cropperMaxWidth", publicName: "cropperMaxWidth", isSignal: true, isRequired: false, transformFunction: null }, cropperMaxHeight: { classPropertyName: "cropperMaxHeight", publicName: "cropperMaxHeight", isSignal: true, isRequired: false, transformFunction: null }, roundImage: { classPropertyName: "roundImage", publicName: "roundImage", isSignal: true, isRequired: false, transformFunction: null }, sourcePhoto: { classPropertyName: "sourcePhoto", publicName: "sourcePhoto", isSignal: true, isRequired: false, transformFunction: null }, sourcePhotoUrl: { classPropertyName: "sourcePhotoUrl", publicName: "sourcePhotoUrl", isSignal: true, isRequired: false, transformFunction: null }, croppedPhoto: { classPropertyName: "croppedPhoto", publicName: "croppedPhoto", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sourcePhoto: "sourcePhotoChange", croppedPhoto: "croppedPhotoChange" }, viewQueries: [{ propertyName: "editPhotoTemplate", first: true, predicate: ["editPhotoTemplate"], descendants: true, isSignal: true }, { propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, isSignal: true }, { propertyName: "imageCropper", first: true, predicate: ["imageCropper"], descendants: true, isSignal: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.SiAvatarBackgroundColorDirective, inputs: ["color", "color", "autoColor", "autoColor"] }], ngImport: i0, template: "<div class=\"photo-upload d-flex flex-column p-6\">\n <!-- File upload -->\n <input\n #fileInput\n type=\"file\"\n class=\"d-none\"\n [accept]=\"acceptedUploadFormats()\"\n (change)=\"fileUpload($event)\"\n />\n\n <!-- Image -->\n @if (sanitizedPhotoUrl()) {\n <img\n class=\"photo-upload-photo\"\n [class.round]=\"roundImage()\"\n [src]=\"sanitizedPhotoUrl()\"\n [alt]=\"photoAltText() | translate\"\n />\n } @else {\n <span\n class=\"photo-upload-placeholder d-flex align-items-center justify-content-center flex-none\"\n [class.round]=\"roundImage()\"\n >\n {{ placeholderAltText() | translate }}\n </span>\n }\n <!-- Buttons -->\n @if (!readonly()) {\n <div class=\"d-flex justify-content-center gap-6 mt-8\">\n <button\n type=\"button\"\n class=\"btn btn-secondary\"\n (click)=\"\n (sourcePhoto() || sourcePhotoUrl()) && !disabledCropping()\n ? showCroppingDialog()\n : fileInput.click()\n \"\n >\n {{ editButtonText() | translate }}\n </button>\n @if (sanitizedPhotoUrl()) {\n <button type=\"button\" class=\"btn btn-danger\" (click)=\"removePhoto()\">\n {{ removePhotoText() | translate }}\n </button>\n }\n </div>\n }\n\n <!-- Error message -->\n @if (uploadErrorMessage() && !modalRef) {\n <div class=\"mt-6\">\n <ng-container [ngTemplateOutlet]=\"errorMessageTemplate\" />\n </div>\n }\n</div>\n\n<!-- Template: modal -->\n<ng-template #editPhotoTemplate>\n <!-- Header -->\n <div class=\"modal-header\">\n <h4 class=\"modal-title\" [id]=\"titleId\">{{ modalHeader() | translate }}</h4>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost\"\n [attr.aria-label]=\"cancelEditText() | translate\"\n (click)=\"imageCropperCanceled()\"\n >\n <si-icon-next [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n <!-- Content -->\n <div class=\"modal-body\">\n @if (modalDescription()) {\n <div class=\"mb-4\">\n <span class=\"text-secondary\">{{ modalDescription() | translate }}</span>\n </div>\n }\n <ng-container [ngTemplateOutlet]=\"imageCropperTemplate\" />\n @if (uploadErrorMessage()) {\n <div class=\"d-flex mt-4\">\n <ng-container [ngTemplateOutlet]=\"errorMessageTemplate\" />\n </div>\n }\n </div>\n <!-- Footer -->\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary me-auto\" (click)=\"fileInput.click()\">\n {{ changePhotoText() | translate }}\n </button>\n <div class=\"d-flex gap-6\">\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"imageCropperCanceled()\">\n {{ cancelEditText() | translate }}\n </button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"imageCropperApplied()\">\n {{ applyEditText() | translate }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<!-- Template: error message -->\n<ng-template #errorMessageTemplate>\n <div class=\"d-flex align-items-center\">\n <span class=\"icon-small icon-stack d-inline-block my-n2 me-2\">\n <si-icon-next class=\"status-danger\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon-next class=\"status-danger-contrast\" [icon]=\"icons.elementStateExclamationMark\" />\n </span>\n <span class=\"text-danger\">{{\n uploadErrorMessage()\n | translate\n : {\n mb: currentFileSizeMegabytes(),\n kb: currentFileSizeKilobytes(),\n maxSizeMb: maxSizeMb()\n }\n }}</span>\n </div>\n</ng-template>\n\n<!-- Template: image cropper -->\n<ng-template #imageCropperTemplate>\n <si-image-cropper-style>\n <image-cropper\n #imageCropper\n output=\"base64\"\n [aspectRatio]=\"cropperAspectRatio()\"\n [containWithinAspectRatio]=\"cropperContainWithinAspectRatio()\"\n [cropperMinWidth]=\"cropperMinWidth()\"\n [cropperMinHeight]=\"cropperMinHeight()\"\n [cropperMaxWidth]=\"cropperMaxWidth()\"\n [cropperMaxHeight]=\"cropperMaxHeight()\"\n [cropperFrameAriaLabel]=\"cropperFrameAriaLabel() | translate\"\n [format]=\"cropperImageFormat()\"\n [imageBase64]=\"imageCropperPhoto()\"\n [imageURL]=\"sourcePhotoUrl()\"\n [maintainAspectRatio]=\"cropperMaintainAspectRatio()\"\n [onlyScaleDown]=\"true\"\n [roundCropper]=\"roundImage()\"\n (cropperReady)=\"cropperReady()\"\n (imageCropped)=\"cropperImageCropped($event)\"\n />\n </si-image-cropper-style>\n</ng-template>\n", styles: [":host{--si-photo-upload-photo-width: 200px;--si-photo-upload-photo-height: 200px}.photo-upload{box-sizing:content-box;max-inline-size:var(--si-photo-upload-photo-width)}.photo-upload-photo,.photo-upload-placeholder{display:block;margin:auto;inline-size:var(--si-photo-upload-photo-width);max-inline-size:100%;block-size:var(--si-photo-upload-photo-height);object-fit:cover}.photo-upload-photo.round,.photo-upload-placeholder.round{border-radius:50%}.photo-upload-placeholder{background-color:var(--background);color:var(--element-ui-5);font-size:3rem;text-align:center;overflow:hidden;word-break:break-all;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ImageCropperComponent, selector: "image-cropper", inputs: ["imageChangedEvent", "imageURL", "imageBase64", "imageFile", "imageAltText", "options", "cropperFrameAriaLabel", "output", "format", "autoCrop", "cropper", "transform", "maintainAspectRatio", "aspectRatio", "resetCropOnAspectRatioChange", "resizeToWidth", "resizeToHeight", "cropperMinWidth", "cropperMinHeight", "cropperMaxHeight", "cropperMaxWidth", "cropperStaticWidth", "cropperStaticHeight", "canvasRotation", "initialStepSize", "roundCropper", "onlyScaleDown", "imageQuality", "backgroundColor", "containWithinAspectRatio", "hideResizeSquares", "allowMoveImage", "checkImageType", "alignImage", "disabled", "hidden"], outputs: ["imageCropped", "startCropImage", "imageLoaded", "cropperReady", "loadImageFailed", "transformChange", "cropperChange"] }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }, { kind: "component", type: SiImageCropperStyleComponent, selector: "si-image-cropper-style" }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
449
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPhotoUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
450
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiPhotoUploadComponent, isStandalone: true, selector: "si-photo-upload", inputs: { readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disabledCropping: { classPropertyName: "disabledCropping", publicName: "disabledCropping", isSignal: true, isRequired: false, transformFunction: null }, acceptedUploadFormats: { classPropertyName: "acceptedUploadFormats", publicName: "acceptedUploadFormats", isSignal: true, isRequired: false, transformFunction: null }, maxFileSize: { classPropertyName: "maxFileSize", publicName: "maxFileSize", isSignal: true, isRequired: false, transformFunction: null }, uploadErrorWrongType: { classPropertyName: "uploadErrorWrongType", publicName: "uploadErrorWrongType", isSignal: true, isRequired: false, transformFunction: null }, uploadErrorTooBig: { classPropertyName: "uploadErrorTooBig", publicName: "uploadErrorTooBig", isSignal: true, isRequired: false, transformFunction: null }, photoAltText: { classPropertyName: "photoAltText", publicName: "photoAltText", isSignal: true, isRequired: false, transformFunction: null }, placeholderAltText: { classPropertyName: "placeholderAltText", publicName: "placeholderAltText", isSignal: true, isRequired: false, transformFunction: null }, changePhotoText: { classPropertyName: "changePhotoText", publicName: "changePhotoText", isSignal: true, isRequired: false, transformFunction: null }, cropperFrameAriaLabel: { classPropertyName: "cropperFrameAriaLabel", publicName: "cropperFrameAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, uploadPhotoText: { classPropertyName: "uploadPhotoText", publicName: "uploadPhotoText", isSignal: true, isRequired: false, transformFunction: null }, removePhotoText: { classPropertyName: "removePhotoText", publicName: "removePhotoText", isSignal: true, isRequired: false, transformFunction: null }, cancelEditText: { classPropertyName: "cancelEditText", publicName: "cancelEditText", isSignal: true, isRequired: false, transformFunction: null }, applyEditText: { classPropertyName: "applyEditText", publicName: "applyEditText", isSignal: true, isRequired: false, transformFunction: null }, modalHeader: { classPropertyName: "modalHeader", publicName: "modalHeader", isSignal: true, isRequired: false, transformFunction: null }, modalDescription: { classPropertyName: "modalDescription", publicName: "modalDescription", isSignal: true, isRequired: false, transformFunction: null }, cropperImageFormat: { classPropertyName: "cropperImageFormat", publicName: "cropperImageFormat", isSignal: true, isRequired: false, transformFunction: null }, cropperAspectRatio: { classPropertyName: "cropperAspectRatio", publicName: "cropperAspectRatio", isSignal: true, isRequired: false, transformFunction: null }, cropperMaintainAspectRatio: { classPropertyName: "cropperMaintainAspectRatio", publicName: "cropperMaintainAspectRatio", isSignal: true, isRequired: false, transformFunction: null }, cropperContainWithinAspectRatio: { classPropertyName: "cropperContainWithinAspectRatio", publicName: "cropperContainWithinAspectRatio", isSignal: true, isRequired: false, transformFunction: null }, cropperMinWidth: { classPropertyName: "cropperMinWidth", publicName: "cropperMinWidth", isSignal: true, isRequired: false, transformFunction: null }, cropperMinHeight: { classPropertyName: "cropperMinHeight", publicName: "cropperMinHeight", isSignal: true, isRequired: false, transformFunction: null }, cropperMaxWidth: { classPropertyName: "cropperMaxWidth", publicName: "cropperMaxWidth", isSignal: true, isRequired: false, transformFunction: null }, cropperMaxHeight: { classPropertyName: "cropperMaxHeight", publicName: "cropperMaxHeight", isSignal: true, isRequired: false, transformFunction: null }, roundImage: { classPropertyName: "roundImage", publicName: "roundImage", isSignal: true, isRequired: false, transformFunction: null }, sourcePhoto: { classPropertyName: "sourcePhoto", publicName: "sourcePhoto", isSignal: true, isRequired: false, transformFunction: null }, sourcePhotoUrl: { classPropertyName: "sourcePhotoUrl", publicName: "sourcePhotoUrl", isSignal: true, isRequired: false, transformFunction: null }, croppedPhoto: { classPropertyName: "croppedPhoto", publicName: "croppedPhoto", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sourcePhoto: "sourcePhotoChange", croppedPhoto: "croppedPhotoChange" }, viewQueries: [{ propertyName: "editPhotoTemplate", first: true, predicate: ["editPhotoTemplate"], descendants: true, isSignal: true }, { propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, isSignal: true }, { propertyName: "imageCropper", first: true, predicate: ["imageCropper"], descendants: true, isSignal: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.SiAvatarBackgroundColorDirective, inputs: ["color", "color", "autoColor", "autoColor"] }], ngImport: i0, template: "<div class=\"photo-upload d-flex flex-column p-6\">\n <!-- File upload -->\n <input\n #fileInput\n type=\"file\"\n class=\"d-none\"\n [accept]=\"acceptedUploadFormats()\"\n (change)=\"fileUpload($event)\"\n />\n\n <!-- Image -->\n @if (sanitizedPhotoUrl()) {\n <img\n class=\"photo-upload-photo\"\n [class.round]=\"roundImage()\"\n [src]=\"sanitizedPhotoUrl()\"\n [alt]=\"photoAltText() | translate\"\n />\n } @else {\n <span\n class=\"photo-upload-placeholder d-flex align-items-center justify-content-center flex-none\"\n [class.round]=\"roundImage()\"\n >\n {{ placeholderAltText() | translate }}\n </span>\n }\n <!-- Buttons -->\n @if (!readonly()) {\n <div class=\"d-flex justify-content-center gap-6 mt-8\">\n <button\n type=\"button\"\n class=\"btn btn-secondary\"\n (click)=\"\n (sourcePhoto() || sourcePhotoUrl()) && !disabledCropping()\n ? showCroppingDialog()\n : fileInput.click()\n \"\n >\n {{ editButtonText() | translate }}\n </button>\n @if (sanitizedPhotoUrl()) {\n <button type=\"button\" class=\"btn btn-danger\" (click)=\"removePhoto()\">\n {{ removePhotoText() | translate }}\n </button>\n }\n </div>\n }\n\n <!-- Error message -->\n @if (uploadErrorMessage() && !modalRef) {\n <div class=\"mt-6\">\n <ng-container [ngTemplateOutlet]=\"errorMessageTemplate\" />\n </div>\n }\n</div>\n\n<!-- Template: modal -->\n<ng-template #editPhotoTemplate>\n <!-- Header -->\n <div class=\"modal-header\">\n <h4 class=\"modal-title\" [id]=\"titleId\">{{ modalHeader() | translate }}</h4>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost\"\n [attr.aria-label]=\"cancelEditText() | translate\"\n (click)=\"imageCropperCanceled()\"\n >\n <si-icon-next [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n <!-- Content -->\n <div class=\"modal-body\">\n @if (modalDescription()) {\n <div class=\"mb-4\">\n <span class=\"text-secondary\">{{ modalDescription() | translate }}</span>\n </div>\n }\n <ng-container [ngTemplateOutlet]=\"imageCropperTemplate\" />\n @if (uploadErrorMessage()) {\n <div class=\"d-flex mt-4\">\n <ng-container [ngTemplateOutlet]=\"errorMessageTemplate\" />\n </div>\n }\n </div>\n <!-- Footer -->\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary me-auto\" (click)=\"fileInput.click()\">\n {{ changePhotoText() | translate }}\n </button>\n <div class=\"d-flex gap-6\">\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"imageCropperCanceled()\">\n {{ cancelEditText() | translate }}\n </button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"imageCropperApplied()\">\n {{ applyEditText() | translate }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<!-- Template: error message -->\n<ng-template #errorMessageTemplate>\n <div class=\"d-flex align-items-center\">\n <span class=\"icon-small icon-stack d-inline-block my-n2 me-2\">\n <si-icon-next class=\"status-danger\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon-next class=\"status-danger-contrast\" [icon]=\"icons.elementStateExclamationMark\" />\n </span>\n <span class=\"text-danger\">{{\n uploadErrorMessage()\n | translate\n : {\n mb: currentFileSizeMegabytes(),\n kb: currentFileSizeKilobytes(),\n maxSizeMb: maxSizeMb()\n }\n }}</span>\n </div>\n</ng-template>\n\n<!-- Template: image cropper -->\n<ng-template #imageCropperTemplate>\n <si-image-cropper-style>\n <image-cropper\n #imageCropper\n output=\"base64\"\n [aspectRatio]=\"cropperAspectRatio()\"\n [containWithinAspectRatio]=\"cropperContainWithinAspectRatio()\"\n [cropperMinWidth]=\"cropperMinWidth()\"\n [cropperMinHeight]=\"cropperMinHeight()\"\n [cropperMaxWidth]=\"cropperMaxWidth()\"\n [cropperMaxHeight]=\"cropperMaxHeight()\"\n [cropperFrameAriaLabel]=\"cropperFrameAriaLabel() | translate\"\n [format]=\"cropperImageFormat()\"\n [imageBase64]=\"imageCropperPhoto()\"\n [imageURL]=\"sourcePhotoUrl()\"\n [maintainAspectRatio]=\"cropperMaintainAspectRatio()\"\n [onlyScaleDown]=\"true\"\n [roundCropper]=\"roundImage()\"\n (cropperReady)=\"cropperReady()\"\n (imageCropped)=\"cropperImageCropped($event)\"\n />\n </si-image-cropper-style>\n</ng-template>\n", styles: [":host{--si-photo-upload-photo-width: 200px;--si-photo-upload-photo-height: 200px}.photo-upload{box-sizing:content-box;max-inline-size:var(--si-photo-upload-photo-width)}.photo-upload-photo,.photo-upload-placeholder{display:block;margin:auto;inline-size:var(--si-photo-upload-photo-width);max-inline-size:100%;block-size:var(--si-photo-upload-photo-height);object-fit:cover}.photo-upload-photo.round,.photo-upload-placeholder.round{border-radius:50%}.photo-upload-placeholder{background-color:var(--background);color:var(--element-ui-5);font-size:3rem;text-align:center;overflow:hidden;word-break:break-all;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ImageCropperComponent, selector: "image-cropper", inputs: ["imageChangedEvent", "imageURL", "imageBase64", "imageFile", "imageAltText", "options", "cropperFrameAriaLabel", "output", "format", "autoCrop", "cropper", "transform", "maintainAspectRatio", "aspectRatio", "resetCropOnAspectRatioChange", "resizeToWidth", "resizeToHeight", "cropperMinWidth", "cropperMinHeight", "cropperMaxHeight", "cropperMaxWidth", "cropperStaticWidth", "cropperStaticHeight", "canvasRotation", "initialStepSize", "roundCropper", "onlyScaleDown", "imageQuality", "backgroundColor", "containWithinAspectRatio", "hideResizeSquares", "allowMoveImage", "checkImageType", "alignImage", "disabled", "hidden"], outputs: ["imageCropped", "startCropImage", "imageLoaded", "cropperReady", "loadImageFailed", "transformChange", "cropperChange"] }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }, { kind: "component", type: SiImageCropperStyleComponent, selector: "si-image-cropper-style" }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
451
451
  }
452
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiPhotoUploadComponent, decorators: [{
452
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPhotoUploadComponent, decorators: [{
453
453
  type: Component,
454
454
  args: [{ selector: 'si-photo-upload', imports: [
455
455
  NgTemplateOutlet,
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-photo-upload.mjs","sources":["../../../../projects/element-ng/photo-upload/si-image-cropper-style.component.ts","../../../../projects/element-ng/photo-upload/si-photo-upload.component.ts","../../../../projects/element-ng/photo-upload/si-photo-upload.component.html","../../../../projects/element-ng/photo-upload/index.ts","../../../../projects/element-ng/photo-upload/siemens-element-ng-photo-upload.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'si-image-cropper-style',\n template: '<ng-content />',\n styleUrl: './si-image-cropper-style.component.scss'\n})\nexport class SiImageCropperStyleComponent {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n model,\n OnChanges,\n OnDestroy,\n signal,\n SimpleChanges,\n TemplateRef,\n viewChild\n} from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { SiAvatarBackgroundColorDirective } from '@siemens/element-ng/avatar';\nimport {\n addIcons,\n elementCancel,\n elementCircleFilled,\n elementStateExclamationMark,\n SiIconNextComponent\n} from '@siemens/element-ng/icon';\nimport { ModalRef, SiModalService } from '@siemens/element-ng/modal';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\nimport { CropperPosition, ImageCroppedEvent, ImageCropperComponent } from 'ngx-image-cropper';\n\nimport { SiImageCropperStyleComponent } from './si-image-cropper-style.component';\n\n/**\n * A component used to upload, edit, and delete a user's photo. The user can upload\n * a photo either via file browser or a URL to the photo. You can set the source\n * photo with the `sourcePhoto` Data URL input or the `sourcePhotoUrl` URL input.\n * If you already have a cropped image you can set it with the `croppedPhoto` input.\n * Cropping changes are emitted via the `croppedPhotoChange` output.\n */\n@Component({\n selector: 'si-photo-upload',\n imports: [\n NgTemplateOutlet,\n ImageCropperComponent,\n SiIconNextComponent,\n SiImageCropperStyleComponent,\n SiTranslatePipe\n ],\n templateUrl: './si-photo-upload.component.html',\n styleUrl: './si-photo-upload.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: SiAvatarBackgroundColorDirective,\n inputs: ['color', 'autoColor']\n }\n ]\n})\nexport class SiPhotoUploadComponent implements OnChanges, OnDestroy {\n private static idCounter = 0;\n\n /**\n * Indicate that changing or uploads are disabled.\n *\n * @defaultValue false\n */\n readonly readonly = input(false, { transform: booleanAttribute });\n\n /**\n * Optionally disable image cropping.\n *\n * @defaultValue false\n */\n readonly disabledCropping = input(false, { transform: booleanAttribute });\n\n /**\n * Accepted image formats for the file selection dialog.\n *\n * @defaultValue '.png, .jpg, .jpeg'\n *\n * @see\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#attr-accept\n */\n readonly acceptedUploadFormats = input('.png, .jpg, .jpeg');\n\n /**\n * Maximum allowed file size of the uploaded file in kilobytes.\n *\n * @defaultValue 2048\n */\n readonly maxFileSize = input(2048);\n\n /**\n * If the uploaded file is of an unsupported type, this\n * error message will be displayed to the user.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_PHOTO_UPLOAD.ERROR_FILE_TYPE:The image file is not valid. Please upload a PNG or JP(E)G.`\n * ```\n */\n readonly uploadErrorWrongType = input(\n $localize`:@@SI_PHOTO_UPLOAD.ERROR_FILE_TYPE:The image file is not valid. Please upload a PNG or JP(E)G.`\n );\n\n /**\n * If the uploaded file exceeds the allowed upload size, this\n * error message will be displayed to the user.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_PHOTO_UPLOAD.ERROR_FILE_SIZE_EXCEEDED:The actual file size {{mb}} MB exceeds the {{maxSizeMb}} MB limit.`\n * ```\n */\n readonly uploadErrorTooBig = input(\n $localize`:@@SI_PHOTO_UPLOAD.ERROR_FILE_SIZE_EXCEEDED:The actual file size {{mb}} MB exceeds the {{maxSizeMb}} MB limit.`\n );\n\n /**\n * Alternative text for the photo.\n *\n * @defaultValue ''\n */\n readonly photoAltText = input<TranslatableString>('');\n\n /**\n * Alternative text for the photo´s placeholder.\n * The value will be used to calculate the background color when `autoColor` is true.\n *\n * @defaultValue ''\n */\n readonly placeholderAltText = input<TranslatableString>('');\n\n /**\n * Text for the button changing the photo.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_PHOTO_UPLOAD.CHANGE_PHOTO:Change`\n * ```\n */\n readonly changePhotoText = input($localize`:@@SI_PHOTO_UPLOAD.CHANGE_PHOTO:Change`);\n\n /**\n * Cropper frame aria label.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_PHOTO_UPLOAD.CROPPER_FRAME_LABEL:Crop photo`\n * ```\n */\n readonly cropperFrameAriaLabel = input(\n $localize`:@@SI_PHOTO_UPLOAD.CROPPER_FRAME_LABEL:Crop photo`\n );\n\n /**\n * Text for the button uploading a photo.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_PHOTO_UPLOAD.UPLOAD_PHOTO:Upload photo`\n * ```\n */\n readonly uploadPhotoText = input($localize`:@@SI_PHOTO_UPLOAD.UPLOAD_PHOTO:Upload photo`);\n\n /**\n * Text for the button removing the photo.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_PHOTO_UPLOAD.REMOVE:Remove`\n * ```\n */\n readonly removePhotoText = input($localize`:@@SI_PHOTO_UPLOAD.REMOVE:Remove`);\n\n /**\n * Text for the button cancelling the editing process.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_PHOTO_UPLOAD.CANCEL:Cancel`\n * ```\n */\n readonly cancelEditText = input($localize`:@@SI_PHOTO_UPLOAD.CANCEL:Cancel`);\n\n /**\n * Text for the button applying the edited photo.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_PHOTO_UPLOAD.APPLY_PHOTO:Apply`\n * ```\n */\n readonly applyEditText = input($localize`:@@SI_PHOTO_UPLOAD.APPLY_PHOTO:Apply`);\n\n /**\n * Text displayed as header of the editing modal.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_PHOTO_UPLOAD.MODAL_TITLE:Avatar photo`\n * ```\n */\n readonly modalHeader = input($localize`:@@SI_PHOTO_UPLOAD.MODAL_TITLE:Avatar photo`);\n\n /**\n * Text displayed as description of the editing modal.\n */\n readonly modalDescription = input<TranslatableString>();\n\n /**\n * Output format of the edited image.\n *\n * @defaultValue 'jpeg'\n */\n readonly cropperImageFormat = input<'png' | 'jpeg'>('jpeg');\n\n /**\n * The width / height ratio (e.g. 1 / 1 for a square, 4 / 3, 16 / 9 ...).\n *\n * @defaultValue 1\n */\n readonly cropperAspectRatio = input(1);\n\n /**\n * Whether to keep the width and height of the cropped image equal according\n * to the aspectRatio.\n *\n * @defaultValue true\n */\n readonly cropperMaintainAspectRatio = input(true, { transform: booleanAttribute });\n\n /**\n * When set to true, padding will be added around the image to make it fit to\n * the aspect ratio. Be aware that this transformation will cause the loaded\n * image to be a png file with an increased base64 string payload.\n *\n * @defaultValue false\n */\n readonly cropperContainWithinAspectRatio = input(false, { transform: booleanAttribute });\n\n /**\n * The cropper´s width cannot be made smaller than this number of pixels\n * (relative to original image´s size). (0 = disabled).\n *\n * @defaultValue 50\n */\n readonly cropperMinWidth = input(50);\n\n /**\n * The cropper´s height cannot be made smaller than this number of pixels\n * (relative to original image´s size). Will be ignored if\n * `cropperMaintainAspectRatio` is set. (0 = disabled).\n *\n * @defaultValue 50\n */\n readonly cropperMinHeight = input(50);\n\n /**\n * The cropper´s width cannot be made bigger than this number of pixels.\n * Default is 0 (disabled).\n *\n * @defaultValue 0\n */\n readonly cropperMaxWidth = input(0);\n\n /**\n * The cropper´s height cannot be made bigger than this number of pixels.\n * Default is 0 (disabled).\n *\n * @defaultValue 0\n */\n readonly cropperMaxHeight = input(0);\n\n /**\n * Set this to true for a round cropper. Resulting image will still\n * be square, but visually clipped with a border-radius: 50% on the\n * resulting image to show it as round.\n *\n * @defaultValue true\n */\n readonly roundImage = input(true, { transform: booleanAttribute });\n\n /**\n * The input photo to be used for cropping. A string in [Data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) format\n * with base64 encoding.\n */\n readonly sourcePhoto = model<string>();\n\n /**\n * URL to a photo to be used for cropping.\n */\n readonly sourcePhotoUrl = input<string>();\n\n /**\n * The photo to be displayed and edited (when not readonly).\n */\n readonly croppedPhoto = model<string>();\n\n protected readonly editPhotoTemplate = viewChild.required<TemplateRef<any>>('editPhotoTemplate');\n protected readonly fileInput = viewChild.required<ElementRef<any>>('fileInput');\n protected readonly imageCropper = viewChild<ImageCropperComponent>('imageCropper');\n\n // used to label the dialog\n protected readonly titleId = `__si-photo-upload-${SiPhotoUploadComponent.idCounter++}`;\n\n /**\n * The trusted photo url string which is used to display the photo.\n */\n protected readonly sanitizedPhotoUrl = signal<SafeResourceUrl | undefined>(undefined);\n\n /**\n * The appropriate error message displayed to the user. Might be\n * `uploadErrorWrongType` or `uploadErrorTooBig`.\n */\n protected readonly uploadErrorMessage = signal<string | undefined>(undefined);\n protected readonly editButtonText = computed(() =>\n this.sanitizedPhotoUrl() ? this.changePhotoText() : this.uploadPhotoText()\n );\n protected readonly currentFileSizeKilobytes = signal(-1);\n protected readonly currentFileSizeMegabytes = signal(-1);\n protected readonly maxSizeMb = computed(() => this.maxFileSize() / 1024);\n\n /**\n * The photo instance to be used in the image cropper. We need a different\n * reference than `sourcePhoto` to support the cancel after uploading\n * a new photo. While `sourcePhoto` is A and image cropper uploads B,\n * we should not replace `sourcePhoto` A until user presses apply.\n */\n protected readonly imageCropperPhoto = signal<string | undefined>(undefined);\n\n protected readonly icons = addIcons({\n elementCancel,\n elementCircleFilled,\n elementStateExclamationMark\n });\n /**\n * Reference to the modal displaying the photo to edit.\n */\n protected modalRef?: ModalRef;\n /**\n * The last cropped event of the image cropper component.\n * Will be set on every mouse drag of the user. It contains\n * the cropped image and the position. When user completes\n * the cropping, the data from the last event is used.\n */\n private imageCroppedEvent?: ImageCroppedEvent;\n /**\n * Applied cropper position necessary to restore the cropper position when the use press the Change button.\n */\n private cropperPosition?: CropperPosition;\n\n private readonly sanitizer = inject(DomSanitizer);\n private readonly modalService = inject(SiModalService);\n private readonly autoBackgroundColorDirective = inject(SiAvatarBackgroundColorDirective);\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.readonly) {\n this.resetErrorMessage();\n this.resetFileInputValue();\n }\n\n if (changes.sourcePhotoUrl) {\n this.setPhoto(this.sourcePhotoUrl());\n this.cropperPosition = undefined;\n this.croppedPhoto.set(undefined);\n }\n if (changes.sourcePhoto && changes.sourcePhoto.currentValue !== this.imageCropperPhoto()) {\n const sourcePhoto = this.sourcePhoto();\n this.setPhoto(sourcePhoto);\n this.cropperPosition = undefined;\n this.croppedPhoto.set(undefined);\n this.imageCropperPhoto.set(sourcePhoto);\n }\n if (\n changes.croppedPhoto &&\n changes.croppedPhoto.previousValue?.length > 0 &&\n changes.croppedPhoto.previousValue !== changes.croppedPhoto.currentValue\n ) {\n this.setPhoto(this.croppedPhoto());\n }\n if (changes.placeholderAltText) {\n this.autoBackgroundColorDirective.calculateColorFromInitials(this.placeholderAltText());\n }\n }\n\n ngOnDestroy(): void {\n this.modalRef?.detach();\n }\n\n /**\n * Opens a modal dialog with the cropping component.\n */\n protected showCroppingDialog(): void {\n if (this.modalRef) {\n return;\n }\n if (this.disabledCropping()) {\n this.sourcePhoto.set(this.imageCropperPhoto());\n const sourcePhoto = this.sourcePhoto();\n this.updateCroppedPhoto(sourcePhoto ?? '');\n return;\n }\n this.modalRef = this.modalService.show(\n this.editPhotoTemplate(),\n {\n ignoreBackdropClick: false,\n keyboard: true,\n class: 'modal-dialog-centered',\n ariaLabelledBy: this.titleId\n },\n 'cancel'\n );\n this.resetErrorMessage();\n this.modalRef.hidden.subscribe(() => {\n this.resetErrorMessage();\n this.resetFileInputValue();\n this.modalRef = undefined;\n });\n }\n\n protected fileUpload(event: Event): void {\n // Initially reset a possible error message\n this.resetErrorMessage();\n const files = (event.target as HTMLInputElement).files;\n const file = files && files.length > 0 ? files[0] : undefined;\n if (!file) {\n return;\n }\n const fileType = file.type;\n const allowedFileTypes = this.acceptedUploadFormats()\n .split(',')\n .map(type => type.trim().replace('.', 'image/'));\n const fileTypeWrong = !allowedFileTypes.includes(fileType);\n if (fileTypeWrong) {\n this.uploadErrorMessage.set(this.uploadErrorWrongType());\n return;\n }\n const sizeInKb = file.size / 1024;\n this.currentFileSizeKilobytes.set(Math.round(sizeInKb * 10) / 10);\n this.currentFileSizeMegabytes.set(Math.round((sizeInKb / 1024) * 1000) / 1000);\n const fileSizeTooBig = sizeInKb > this.maxFileSize();\n if (fileSizeTooBig) {\n this.uploadErrorMessage.set(this.uploadErrorTooBig());\n return;\n }\n const reader = new FileReader();\n reader.addEventListener('loadend', () => {\n if (typeof reader.result === 'string') {\n this.cropperPosition = undefined;\n this.imageCropperPhoto.set(reader.result);\n\n // Bring up the editing modal if not already present\n this.showCroppingDialog();\n }\n });\n reader.readAsDataURL(file);\n }\n\n private updateCroppedPhoto(croppedPhoto: string, position?: CropperPosition): void {\n this.croppedPhoto.set(croppedPhoto);\n this.setPhoto(this.croppedPhoto());\n this.cropperPosition = position;\n }\n\n protected removePhoto(): void {\n // We emit undefined to notify consumers that the cropped\n // images is removed. This is a kind of special crop event.\n this.croppedPhoto.set(undefined);\n this.imageCropperPhoto.set(undefined);\n this.setPhoto(undefined);\n this.cropperPosition = undefined;\n this.resetFileInputValue();\n this.sourcePhoto.set(undefined);\n }\n\n /**\n * Invoked when user cropped the photo and pressed apply button.\n * Updates the current photo by the selected cropped photo and\n * closes the modal dialog.\n */\n protected imageCropperApplied(): void {\n if (this.imageCroppedEvent) {\n this.sourcePhoto.set(this.imageCropperPhoto());\n this.updateCroppedPhoto(\n this.imageCroppedEvent.base64!.toString(),\n this.imageCroppedEvent.cropperPosition\n );\n }\n this.modalRef?.hide();\n }\n\n protected imageCropperCanceled(): void {\n this.imageCropperPhoto.set(this.sourcePhoto());\n this.modalRef?.hide('cancel');\n }\n\n /**\n * Callback from the image cropper on every mouse drag invoking a cropping.\n *\n * @param event - Event containing the cropped image and the image cropped position.\n *\n */\n protected cropperImageCropped(event: ImageCroppedEvent): void {\n this.imageCroppedEvent = event;\n }\n\n /**\n * Lifecycle hook from the image cropper component. Informs\n * us when initialized and ready.\n */\n protected cropperReady(): void {\n // When the user opens cropper dialog multiple times we need to\n // apply existing cropper position.\n const imageCropper = this.imageCropper();\n if (this.cropperPosition && imageCropper) {\n imageCropper.cropper = { ...this.cropperPosition };\n imageCropper.crop();\n }\n }\n\n private resetFileInputValue(): void {\n if (this.fileInput()) {\n // Remove fileInput value to allow for selecting the same\n // file for being uploaded again.\n this.fileInput().nativeElement.value = null;\n }\n }\n\n private resetErrorMessage(): void {\n this.uploadErrorMessage.set(undefined);\n }\n\n private setPhoto(photo?: string): void {\n this.resetErrorMessage();\n this.sanitizedPhotoUrl.set(\n photo ? this.sanitizer.bypassSecurityTrustResourceUrl(photo) : undefined\n );\n }\n}\n","<div class=\"photo-upload d-flex flex-column p-6\">\n <!-- File upload -->\n <input\n #fileInput\n type=\"file\"\n class=\"d-none\"\n [accept]=\"acceptedUploadFormats()\"\n (change)=\"fileUpload($event)\"\n />\n\n <!-- Image -->\n @if (sanitizedPhotoUrl()) {\n <img\n class=\"photo-upload-photo\"\n [class.round]=\"roundImage()\"\n [src]=\"sanitizedPhotoUrl()\"\n [alt]=\"photoAltText() | translate\"\n />\n } @else {\n <span\n class=\"photo-upload-placeholder d-flex align-items-center justify-content-center flex-none\"\n [class.round]=\"roundImage()\"\n >\n {{ placeholderAltText() | translate }}\n </span>\n }\n <!-- Buttons -->\n @if (!readonly()) {\n <div class=\"d-flex justify-content-center gap-6 mt-8\">\n <button\n type=\"button\"\n class=\"btn btn-secondary\"\n (click)=\"\n (sourcePhoto() || sourcePhotoUrl()) && !disabledCropping()\n ? showCroppingDialog()\n : fileInput.click()\n \"\n >\n {{ editButtonText() | translate }}\n </button>\n @if (sanitizedPhotoUrl()) {\n <button type=\"button\" class=\"btn btn-danger\" (click)=\"removePhoto()\">\n {{ removePhotoText() | translate }}\n </button>\n }\n </div>\n }\n\n <!-- Error message -->\n @if (uploadErrorMessage() && !modalRef) {\n <div class=\"mt-6\">\n <ng-container [ngTemplateOutlet]=\"errorMessageTemplate\" />\n </div>\n }\n</div>\n\n<!-- Template: modal -->\n<ng-template #editPhotoTemplate>\n <!-- Header -->\n <div class=\"modal-header\">\n <h4 class=\"modal-title\" [id]=\"titleId\">{{ modalHeader() | translate }}</h4>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost\"\n [attr.aria-label]=\"cancelEditText() | translate\"\n (click)=\"imageCropperCanceled()\"\n >\n <si-icon-next [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n <!-- Content -->\n <div class=\"modal-body\">\n @if (modalDescription()) {\n <div class=\"mb-4\">\n <span class=\"text-secondary\">{{ modalDescription() | translate }}</span>\n </div>\n }\n <ng-container [ngTemplateOutlet]=\"imageCropperTemplate\" />\n @if (uploadErrorMessage()) {\n <div class=\"d-flex mt-4\">\n <ng-container [ngTemplateOutlet]=\"errorMessageTemplate\" />\n </div>\n }\n </div>\n <!-- Footer -->\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary me-auto\" (click)=\"fileInput.click()\">\n {{ changePhotoText() | translate }}\n </button>\n <div class=\"d-flex gap-6\">\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"imageCropperCanceled()\">\n {{ cancelEditText() | translate }}\n </button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"imageCropperApplied()\">\n {{ applyEditText() | translate }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<!-- Template: error message -->\n<ng-template #errorMessageTemplate>\n <div class=\"d-flex align-items-center\">\n <span class=\"icon-small icon-stack d-inline-block my-n2 me-2\">\n <si-icon-next class=\"status-danger\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon-next class=\"status-danger-contrast\" [icon]=\"icons.elementStateExclamationMark\" />\n </span>\n <span class=\"text-danger\">{{\n uploadErrorMessage()\n | translate\n : {\n mb: currentFileSizeMegabytes(),\n kb: currentFileSizeKilobytes(),\n maxSizeMb: maxSizeMb()\n }\n }}</span>\n </div>\n</ng-template>\n\n<!-- Template: image cropper -->\n<ng-template #imageCropperTemplate>\n <si-image-cropper-style>\n <image-cropper\n #imageCropper\n output=\"base64\"\n [aspectRatio]=\"cropperAspectRatio()\"\n [containWithinAspectRatio]=\"cropperContainWithinAspectRatio()\"\n [cropperMinWidth]=\"cropperMinWidth()\"\n [cropperMinHeight]=\"cropperMinHeight()\"\n [cropperMaxWidth]=\"cropperMaxWidth()\"\n [cropperMaxHeight]=\"cropperMaxHeight()\"\n [cropperFrameAriaLabel]=\"cropperFrameAriaLabel() | translate\"\n [format]=\"cropperImageFormat()\"\n [imageBase64]=\"imageCropperPhoto()\"\n [imageURL]=\"sourcePhotoUrl()\"\n [maintainAspectRatio]=\"cropperMaintainAspectRatio()\"\n [onlyScaleDown]=\"true\"\n [roundCropper]=\"roundImage()\"\n (cropperReady)=\"cropperReady()\"\n (imageCropped)=\"cropperImageCropped($event)\"\n />\n </si-image-cropper-style>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-image-cropper-style.component';\nexport * from './si-photo-upload.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"siemens-element-ng-photo-upload.mjs","sources":["../../../../projects/element-ng/photo-upload/si-image-cropper-style.component.ts","../../../../projects/element-ng/photo-upload/si-photo-upload.component.ts","../../../../projects/element-ng/photo-upload/si-photo-upload.component.html","../../../../projects/element-ng/photo-upload/index.ts","../../../../projects/element-ng/photo-upload/siemens-element-ng-photo-upload.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'si-image-cropper-style',\n template: '<ng-content />',\n styleUrl: './si-image-cropper-style.component.scss'\n})\nexport class SiImageCropperStyleComponent {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n model,\n OnChanges,\n OnDestroy,\n signal,\n SimpleChanges,\n TemplateRef,\n viewChild\n} from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { SiAvatarBackgroundColorDirective } from '@siemens/element-ng/avatar';\nimport {\n addIcons,\n elementCancel,\n elementCircleFilled,\n elementStateExclamationMark,\n SiIconNextComponent\n} from '@siemens/element-ng/icon';\nimport { ModalRef, SiModalService } from '@siemens/element-ng/modal';\nimport { SiTranslatePipe, t, TranslatableString } from '@siemens/element-translate-ng/translate';\nimport { CropperPosition, ImageCroppedEvent, ImageCropperComponent } from 'ngx-image-cropper';\n\nimport { SiImageCropperStyleComponent } from './si-image-cropper-style.component';\n\n/**\n * A component used to upload, edit, and delete a user's photo. The user can upload\n * a photo either via file browser or a URL to the photo. You can set the source\n * photo with the `sourcePhoto` Data URL input or the `sourcePhotoUrl` URL input.\n * If you already have a cropped image you can set it with the `croppedPhoto` input.\n * Cropping changes are emitted via the `croppedPhotoChange` output.\n */\n@Component({\n selector: 'si-photo-upload',\n imports: [\n NgTemplateOutlet,\n ImageCropperComponent,\n SiIconNextComponent,\n SiImageCropperStyleComponent,\n SiTranslatePipe\n ],\n templateUrl: './si-photo-upload.component.html',\n styleUrl: './si-photo-upload.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: SiAvatarBackgroundColorDirective,\n inputs: ['color', 'autoColor']\n }\n ]\n})\nexport class SiPhotoUploadComponent implements OnChanges, OnDestroy {\n private static idCounter = 0;\n\n /**\n * Indicate that changing or uploads are disabled.\n *\n * @defaultValue false\n */\n readonly readonly = input(false, { transform: booleanAttribute });\n\n /**\n * Optionally disable image cropping.\n *\n * @defaultValue false\n */\n readonly disabledCropping = input(false, { transform: booleanAttribute });\n\n /**\n * Accepted image formats for the file selection dialog.\n *\n * @defaultValue '.png, .jpg, .jpeg'\n *\n * @see\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#attr-accept\n */\n readonly acceptedUploadFormats = input('.png, .jpg, .jpeg');\n\n /**\n * Maximum allowed file size of the uploaded file in kilobytes.\n *\n * @defaultValue 2048\n */\n readonly maxFileSize = input(2048);\n\n /**\n * If the uploaded file is of an unsupported type, this\n * error message will be displayed to the user.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PHOTO_UPLOAD.ERROR_FILE_TYPE:The image file is not valid. Please upload a PNG or JP(E)G.`)\n * ```\n */\n readonly uploadErrorWrongType = input(\n t(\n () =>\n $localize`:@@SI_PHOTO_UPLOAD.ERROR_FILE_TYPE:The image file is not valid. Please upload a PNG or JP(E)G.`\n )\n );\n\n /**\n * If the uploaded file exceeds the allowed upload size, this\n * error message will be displayed to the user.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PHOTO_UPLOAD.ERROR_FILE_SIZE_EXCEEDED:The actual file size {{mb}} MB exceeds the {{maxSizeMb}} MB limit.`)\n * ```\n */\n readonly uploadErrorTooBig = input(\n t(\n () =>\n $localize`:@@SI_PHOTO_UPLOAD.ERROR_FILE_SIZE_EXCEEDED:The actual file size {{mb}} MB exceeds the {{maxSizeMb}} MB limit.`\n )\n );\n\n /**\n * Alternative text for the photo.\n *\n * @defaultValue ''\n */\n readonly photoAltText = input<TranslatableString>('');\n\n /**\n * Alternative text for the photo´s placeholder.\n * The value will be used to calculate the background color when `autoColor` is true.\n *\n * @defaultValue ''\n */\n readonly placeholderAltText = input<TranslatableString>('');\n\n /**\n * Text for the button changing the photo.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PHOTO_UPLOAD.CHANGE_PHOTO:Change`)\n * ```\n */\n readonly changePhotoText = input(t(() => $localize`:@@SI_PHOTO_UPLOAD.CHANGE_PHOTO:Change`));\n\n /**\n * Cropper frame aria label.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PHOTO_UPLOAD.CROPPER_FRAME_LABEL:Crop photo`)\n * ```\n */\n readonly cropperFrameAriaLabel = input(\n t(() => $localize`:@@SI_PHOTO_UPLOAD.CROPPER_FRAME_LABEL:Crop photo`)\n );\n\n /**\n * Text for the button uploading a photo.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PHOTO_UPLOAD.UPLOAD_PHOTO:Upload photo`)\n * ```\n */\n readonly uploadPhotoText = input(\n t(() => $localize`:@@SI_PHOTO_UPLOAD.UPLOAD_PHOTO:Upload photo`)\n );\n\n /**\n * Text for the button removing the photo.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PHOTO_UPLOAD.REMOVE:Remove`)\n * ```\n */\n readonly removePhotoText = input(t(() => $localize`:@@SI_PHOTO_UPLOAD.REMOVE:Remove`));\n\n /**\n * Text for the button cancelling the editing process.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PHOTO_UPLOAD.CANCEL:Cancel`)\n * ```\n */\n readonly cancelEditText = input(t(() => $localize`:@@SI_PHOTO_UPLOAD.CANCEL:Cancel`));\n\n /**\n * Text for the button applying the edited photo.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PHOTO_UPLOAD.APPLY_PHOTO:Apply`)\n * ```\n */\n readonly applyEditText = input(t(() => $localize`:@@SI_PHOTO_UPLOAD.APPLY_PHOTO:Apply`));\n\n /**\n * Text displayed as header of the editing modal.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PHOTO_UPLOAD.MODAL_TITLE:Avatar photo`)\n * ```\n */\n readonly modalHeader = input(t(() => $localize`:@@SI_PHOTO_UPLOAD.MODAL_TITLE:Avatar photo`));\n\n /**\n * Text displayed as description of the editing modal.\n */\n readonly modalDescription = input<TranslatableString>();\n\n /**\n * Output format of the edited image.\n *\n * @defaultValue 'jpeg'\n */\n readonly cropperImageFormat = input<'png' | 'jpeg'>('jpeg');\n\n /**\n * The width / height ratio (e.g. 1 / 1 for a square, 4 / 3, 16 / 9 ...).\n *\n * @defaultValue 1\n */\n readonly cropperAspectRatio = input(1);\n\n /**\n * Whether to keep the width and height of the cropped image equal according\n * to the aspectRatio.\n *\n * @defaultValue true\n */\n readonly cropperMaintainAspectRatio = input(true, { transform: booleanAttribute });\n\n /**\n * When set to true, padding will be added around the image to make it fit to\n * the aspect ratio. Be aware that this transformation will cause the loaded\n * image to be a png file with an increased base64 string payload.\n *\n * @defaultValue false\n */\n readonly cropperContainWithinAspectRatio = input(false, { transform: booleanAttribute });\n\n /**\n * The cropper´s width cannot be made smaller than this number of pixels\n * (relative to original image´s size). (0 = disabled).\n *\n * @defaultValue 50\n */\n readonly cropperMinWidth = input(50);\n\n /**\n * The cropper´s height cannot be made smaller than this number of pixels\n * (relative to original image´s size). Will be ignored if\n * `cropperMaintainAspectRatio` is set. (0 = disabled).\n *\n * @defaultValue 50\n */\n readonly cropperMinHeight = input(50);\n\n /**\n * The cropper´s width cannot be made bigger than this number of pixels.\n * Default is 0 (disabled).\n *\n * @defaultValue 0\n */\n readonly cropperMaxWidth = input(0);\n\n /**\n * The cropper´s height cannot be made bigger than this number of pixels.\n * Default is 0 (disabled).\n *\n * @defaultValue 0\n */\n readonly cropperMaxHeight = input(0);\n\n /**\n * Set this to true for a round cropper. Resulting image will still\n * be square, but visually clipped with a border-radius: 50% on the\n * resulting image to show it as round.\n *\n * @defaultValue true\n */\n readonly roundImage = input(true, { transform: booleanAttribute });\n\n /**\n * The input photo to be used for cropping. A string in [Data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) format\n * with base64 encoding.\n */\n readonly sourcePhoto = model<string>();\n\n /**\n * URL to a photo to be used for cropping.\n */\n readonly sourcePhotoUrl = input<string>();\n\n /**\n * The photo to be displayed and edited (when not readonly).\n */\n readonly croppedPhoto = model<string>();\n\n protected readonly editPhotoTemplate = viewChild.required<TemplateRef<any>>('editPhotoTemplate');\n protected readonly fileInput = viewChild.required<ElementRef<any>>('fileInput');\n protected readonly imageCropper = viewChild<ImageCropperComponent>('imageCropper');\n\n // used to label the dialog\n protected readonly titleId = `__si-photo-upload-${SiPhotoUploadComponent.idCounter++}`;\n\n /**\n * The trusted photo url string which is used to display the photo.\n */\n protected readonly sanitizedPhotoUrl = signal<SafeResourceUrl | undefined>(undefined);\n\n /**\n * The appropriate error message displayed to the user. Might be\n * `uploadErrorWrongType` or `uploadErrorTooBig`.\n */\n protected readonly uploadErrorMessage = signal<string | undefined>(undefined);\n protected readonly editButtonText = computed(() =>\n this.sanitizedPhotoUrl() ? this.changePhotoText() : this.uploadPhotoText()\n );\n protected readonly currentFileSizeKilobytes = signal(-1);\n protected readonly currentFileSizeMegabytes = signal(-1);\n protected readonly maxSizeMb = computed(() => this.maxFileSize() / 1024);\n\n /**\n * The photo instance to be used in the image cropper. We need a different\n * reference than `sourcePhoto` to support the cancel after uploading\n * a new photo. While `sourcePhoto` is A and image cropper uploads B,\n * we should not replace `sourcePhoto` A until user presses apply.\n */\n protected readonly imageCropperPhoto = signal<string | undefined>(undefined);\n\n protected readonly icons = addIcons({\n elementCancel,\n elementCircleFilled,\n elementStateExclamationMark\n });\n /**\n * Reference to the modal displaying the photo to edit.\n */\n protected modalRef?: ModalRef;\n /**\n * The last cropped event of the image cropper component.\n * Will be set on every mouse drag of the user. It contains\n * the cropped image and the position. When user completes\n * the cropping, the data from the last event is used.\n */\n private imageCroppedEvent?: ImageCroppedEvent;\n /**\n * Applied cropper position necessary to restore the cropper position when the use press the Change button.\n */\n private cropperPosition?: CropperPosition;\n\n private readonly sanitizer = inject(DomSanitizer);\n private readonly modalService = inject(SiModalService);\n private readonly autoBackgroundColorDirective = inject(SiAvatarBackgroundColorDirective);\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.readonly) {\n this.resetErrorMessage();\n this.resetFileInputValue();\n }\n\n if (changes.sourcePhotoUrl) {\n this.setPhoto(this.sourcePhotoUrl());\n this.cropperPosition = undefined;\n this.croppedPhoto.set(undefined);\n }\n if (changes.sourcePhoto && changes.sourcePhoto.currentValue !== this.imageCropperPhoto()) {\n const sourcePhoto = this.sourcePhoto();\n this.setPhoto(sourcePhoto);\n this.cropperPosition = undefined;\n this.croppedPhoto.set(undefined);\n this.imageCropperPhoto.set(sourcePhoto);\n }\n if (\n changes.croppedPhoto &&\n changes.croppedPhoto.previousValue?.length > 0 &&\n changes.croppedPhoto.previousValue !== changes.croppedPhoto.currentValue\n ) {\n this.setPhoto(this.croppedPhoto());\n }\n if (changes.placeholderAltText) {\n this.autoBackgroundColorDirective.calculateColorFromInitials(this.placeholderAltText());\n }\n }\n\n ngOnDestroy(): void {\n this.modalRef?.detach();\n }\n\n /**\n * Opens a modal dialog with the cropping component.\n */\n protected showCroppingDialog(): void {\n if (this.modalRef) {\n return;\n }\n if (this.disabledCropping()) {\n this.sourcePhoto.set(this.imageCropperPhoto());\n const sourcePhoto = this.sourcePhoto();\n this.updateCroppedPhoto(sourcePhoto ?? '');\n return;\n }\n this.modalRef = this.modalService.show(\n this.editPhotoTemplate(),\n {\n ignoreBackdropClick: false,\n keyboard: true,\n class: 'modal-dialog-centered',\n ariaLabelledBy: this.titleId\n },\n 'cancel'\n );\n this.resetErrorMessage();\n this.modalRef.hidden.subscribe(() => {\n this.resetErrorMessage();\n this.resetFileInputValue();\n this.modalRef = undefined;\n });\n }\n\n protected fileUpload(event: Event): void {\n // Initially reset a possible error message\n this.resetErrorMessage();\n const files = (event.target as HTMLInputElement).files;\n const file = files && files.length > 0 ? files[0] : undefined;\n if (!file) {\n return;\n }\n const fileType = file.type;\n const allowedFileTypes = this.acceptedUploadFormats()\n .split(',')\n .map(type => type.trim().replace('.', 'image/'));\n const fileTypeWrong = !allowedFileTypes.includes(fileType);\n if (fileTypeWrong) {\n this.uploadErrorMessage.set(this.uploadErrorWrongType());\n return;\n }\n const sizeInKb = file.size / 1024;\n this.currentFileSizeKilobytes.set(Math.round(sizeInKb * 10) / 10);\n this.currentFileSizeMegabytes.set(Math.round((sizeInKb / 1024) * 1000) / 1000);\n const fileSizeTooBig = sizeInKb > this.maxFileSize();\n if (fileSizeTooBig) {\n this.uploadErrorMessage.set(this.uploadErrorTooBig());\n return;\n }\n const reader = new FileReader();\n reader.addEventListener('loadend', () => {\n if (typeof reader.result === 'string') {\n this.cropperPosition = undefined;\n this.imageCropperPhoto.set(reader.result);\n\n // Bring up the editing modal if not already present\n this.showCroppingDialog();\n }\n });\n reader.readAsDataURL(file);\n }\n\n private updateCroppedPhoto(croppedPhoto: string, position?: CropperPosition): void {\n this.croppedPhoto.set(croppedPhoto);\n this.setPhoto(this.croppedPhoto());\n this.cropperPosition = position;\n }\n\n protected removePhoto(): void {\n // We emit undefined to notify consumers that the cropped\n // images is removed. This is a kind of special crop event.\n this.croppedPhoto.set(undefined);\n this.imageCropperPhoto.set(undefined);\n this.setPhoto(undefined);\n this.cropperPosition = undefined;\n this.resetFileInputValue();\n this.sourcePhoto.set(undefined);\n }\n\n /**\n * Invoked when user cropped the photo and pressed apply button.\n * Updates the current photo by the selected cropped photo and\n * closes the modal dialog.\n */\n protected imageCropperApplied(): void {\n if (this.imageCroppedEvent) {\n this.sourcePhoto.set(this.imageCropperPhoto());\n this.updateCroppedPhoto(\n this.imageCroppedEvent.base64!.toString(),\n this.imageCroppedEvent.cropperPosition\n );\n }\n this.modalRef?.hide();\n }\n\n protected imageCropperCanceled(): void {\n this.imageCropperPhoto.set(this.sourcePhoto());\n this.modalRef?.hide('cancel');\n }\n\n /**\n * Callback from the image cropper on every mouse drag invoking a cropping.\n *\n * @param event - Event containing the cropped image and the image cropped position.\n *\n */\n protected cropperImageCropped(event: ImageCroppedEvent): void {\n this.imageCroppedEvent = event;\n }\n\n /**\n * Lifecycle hook from the image cropper component. Informs\n * us when initialized and ready.\n */\n protected cropperReady(): void {\n // When the user opens cropper dialog multiple times we need to\n // apply existing cropper position.\n const imageCropper = this.imageCropper();\n if (this.cropperPosition && imageCropper) {\n imageCropper.cropper = { ...this.cropperPosition };\n imageCropper.crop();\n }\n }\n\n private resetFileInputValue(): void {\n if (this.fileInput()) {\n // Remove fileInput value to allow for selecting the same\n // file for being uploaded again.\n this.fileInput().nativeElement.value = null;\n }\n }\n\n private resetErrorMessage(): void {\n this.uploadErrorMessage.set(undefined);\n }\n\n private setPhoto(photo?: string): void {\n this.resetErrorMessage();\n this.sanitizedPhotoUrl.set(\n photo ? this.sanitizer.bypassSecurityTrustResourceUrl(photo) : undefined\n );\n }\n}\n","<div class=\"photo-upload d-flex flex-column p-6\">\n <!-- File upload -->\n <input\n #fileInput\n type=\"file\"\n class=\"d-none\"\n [accept]=\"acceptedUploadFormats()\"\n (change)=\"fileUpload($event)\"\n />\n\n <!-- Image -->\n @if (sanitizedPhotoUrl()) {\n <img\n class=\"photo-upload-photo\"\n [class.round]=\"roundImage()\"\n [src]=\"sanitizedPhotoUrl()\"\n [alt]=\"photoAltText() | translate\"\n />\n } @else {\n <span\n class=\"photo-upload-placeholder d-flex align-items-center justify-content-center flex-none\"\n [class.round]=\"roundImage()\"\n >\n {{ placeholderAltText() | translate }}\n </span>\n }\n <!-- Buttons -->\n @if (!readonly()) {\n <div class=\"d-flex justify-content-center gap-6 mt-8\">\n <button\n type=\"button\"\n class=\"btn btn-secondary\"\n (click)=\"\n (sourcePhoto() || sourcePhotoUrl()) && !disabledCropping()\n ? showCroppingDialog()\n : fileInput.click()\n \"\n >\n {{ editButtonText() | translate }}\n </button>\n @if (sanitizedPhotoUrl()) {\n <button type=\"button\" class=\"btn btn-danger\" (click)=\"removePhoto()\">\n {{ removePhotoText() | translate }}\n </button>\n }\n </div>\n }\n\n <!-- Error message -->\n @if (uploadErrorMessage() && !modalRef) {\n <div class=\"mt-6\">\n <ng-container [ngTemplateOutlet]=\"errorMessageTemplate\" />\n </div>\n }\n</div>\n\n<!-- Template: modal -->\n<ng-template #editPhotoTemplate>\n <!-- Header -->\n <div class=\"modal-header\">\n <h4 class=\"modal-title\" [id]=\"titleId\">{{ modalHeader() | translate }}</h4>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost\"\n [attr.aria-label]=\"cancelEditText() | translate\"\n (click)=\"imageCropperCanceled()\"\n >\n <si-icon-next [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n <!-- Content -->\n <div class=\"modal-body\">\n @if (modalDescription()) {\n <div class=\"mb-4\">\n <span class=\"text-secondary\">{{ modalDescription() | translate }}</span>\n </div>\n }\n <ng-container [ngTemplateOutlet]=\"imageCropperTemplate\" />\n @if (uploadErrorMessage()) {\n <div class=\"d-flex mt-4\">\n <ng-container [ngTemplateOutlet]=\"errorMessageTemplate\" />\n </div>\n }\n </div>\n <!-- Footer -->\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary me-auto\" (click)=\"fileInput.click()\">\n {{ changePhotoText() | translate }}\n </button>\n <div class=\"d-flex gap-6\">\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"imageCropperCanceled()\">\n {{ cancelEditText() | translate }}\n </button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"imageCropperApplied()\">\n {{ applyEditText() | translate }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<!-- Template: error message -->\n<ng-template #errorMessageTemplate>\n <div class=\"d-flex align-items-center\">\n <span class=\"icon-small icon-stack d-inline-block my-n2 me-2\">\n <si-icon-next class=\"status-danger\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon-next class=\"status-danger-contrast\" [icon]=\"icons.elementStateExclamationMark\" />\n </span>\n <span class=\"text-danger\">{{\n uploadErrorMessage()\n | translate\n : {\n mb: currentFileSizeMegabytes(),\n kb: currentFileSizeKilobytes(),\n maxSizeMb: maxSizeMb()\n }\n }}</span>\n </div>\n</ng-template>\n\n<!-- Template: image cropper -->\n<ng-template #imageCropperTemplate>\n <si-image-cropper-style>\n <image-cropper\n #imageCropper\n output=\"base64\"\n [aspectRatio]=\"cropperAspectRatio()\"\n [containWithinAspectRatio]=\"cropperContainWithinAspectRatio()\"\n [cropperMinWidth]=\"cropperMinWidth()\"\n [cropperMinHeight]=\"cropperMinHeight()\"\n [cropperMaxWidth]=\"cropperMaxWidth()\"\n [cropperMaxHeight]=\"cropperMaxHeight()\"\n [cropperFrameAriaLabel]=\"cropperFrameAriaLabel() | translate\"\n [format]=\"cropperImageFormat()\"\n [imageBase64]=\"imageCropperPhoto()\"\n [imageURL]=\"sourcePhotoUrl()\"\n [maintainAspectRatio]=\"cropperMaintainAspectRatio()\"\n [onlyScaleDown]=\"true\"\n [roundCropper]=\"roundImage()\"\n (cropperReady)=\"cropperReady()\"\n (imageCropped)=\"cropperImageCropped($event)\"\n />\n </si-image-cropper-style>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-image-cropper-style.component';\nexport * from './si-photo-upload.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { output, input, Component, Directive, booleanAttribute, signal, computed, viewChild, inject, ChangeDetectorRef, ElementRef, HostListener, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { SI_FORM_ITEM_CONTROL } from '@siemens/element-ng/form';
5
- import { SiTranslatePipe } from '@siemens/element-translate-ng/translate';
5
+ import { t, SiTranslatePipe } from '@siemens/element-translate-ng/translate';
6
6
  import { addIcons, elementCancel, SiIconNextComponent } from '@siemens/element-ng/icon';
7
7
 
8
8
  /**
@@ -14,10 +14,10 @@ class SiInputPillComponent {
14
14
  /** @defaultValue false */
15
15
  hideClose = input(false);
16
16
  icons = addIcons({ elementCancel });
17
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiInputPillComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiInputPillComponent, isStandalone: true, selector: "si-input-pill", inputs: { hideClose: { classPropertyName: "hideClose", publicName: "hideClose", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { deletePill: "deletePill" }, host: { properties: { "class.pe-4": "hideClose()" }, classAttribute: "pill pe-0" }, ngImport: i0, template: "<div class=\"text-truncate\">\n <ng-content />\n</div>\n@if (!hideClose()) {\n <span class=\"ms-2 btn btn-circle btn-xs btn-ghost\" aria-hidden=\"true\" (click)=\"deletePill.emit()\">\n <si-icon-next [icon]=\"icons.elementCancel\" />\n </span>\n}\n", dependencies: [{ kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }] });
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiInputPillComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiInputPillComponent, isStandalone: true, selector: "si-input-pill", inputs: { hideClose: { classPropertyName: "hideClose", publicName: "hideClose", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { deletePill: "deletePill" }, host: { properties: { "class.pe-4": "hideClose()" }, classAttribute: "pill pe-0" }, ngImport: i0, template: "<div class=\"text-truncate\">\n <ng-content />\n</div>\n@if (!hideClose()) {\n <span class=\"ms-2 btn btn-circle btn-xs btn-ghost\" aria-hidden=\"true\" (click)=\"deletePill.emit()\">\n <si-icon-next [icon]=\"icons.elementCancel\" />\n </span>\n}\n", dependencies: [{ kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }] });
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiInputPillComponent, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiInputPillComponent, decorators: [{
21
21
  type: Component,
22
22
  args: [{ selector: 'si-input-pill', imports: [SiIconNextComponent], host: {
23
23
  class: 'pill pe-0',
@@ -30,10 +30,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
30
30
  * SPDX-License-Identifier: MIT
31
31
  */
32
32
  class SiPillsInputValueHandlerDirective {
33
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiPillsInputValueHandlerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
34
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.6", type: SiPillsInputValueHandlerDirective, isStandalone: true, ngImport: i0 });
33
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPillsInputValueHandlerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
34
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.6", type: SiPillsInputValueHandlerDirective, isStandalone: true, ngImport: i0 });
35
35
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiPillsInputValueHandlerDirective, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPillsInputValueHandlerDirective, decorators: [{
37
37
  type: Directive
38
38
  }] });
39
39
 
@@ -57,10 +57,10 @@ class SiPillsInputComponent {
57
57
  *
58
58
  * @defaultValue
59
59
  * ```
60
- * $localize`:@@SI_PILLS_INPUT.INPUT_ELEMENT_ARIA_LABEL:Create item`
60
+ * t(() => $localize`:@@SI_PILLS_INPUT.INPUT_ELEMENT_ARIA_LABEL:Create item`)
61
61
  * ```
62
62
  */
63
- inputElementAriaLabel = input($localize `:@@SI_PILLS_INPUT.INPUT_ELEMENT_ARIA_LABEL:Create item`);
63
+ inputElementAriaLabel = input(t(() => $localize `:@@SI_PILLS_INPUT.INPUT_ELEMENT_ARIA_LABEL:Create item`));
64
64
  /**
65
65
  * Whether the pills-input is disabled.
66
66
  *
@@ -213,8 +213,8 @@ class SiPillsInputComponent {
213
213
  writeValue(value) {
214
214
  this.pills.set(value?.slice() ?? []);
215
215
  }
216
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiPillsInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
217
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiPillsInputComponent, isStandalone: true, selector: "si-pills-input", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, inputElementAriaLabel: { classPropertyName: "inputElementAriaLabel", publicName: "inputElementAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, labelledby: { classPropertyName: "labelledby", publicName: "labelledby", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "listbox", "aria-orientation": "horizontal" }, listeners: { "click": "click()", "keydown.arrowLeft": "arrowLeft()", "keydown.arrowRight": "arrowRight()", "keydown.backspace": "delete()", "keydown.delete": "delete()" }, properties: { "class.disabled": "disabled()", "attr.aria-disabled": "disabled()", "class.readonly": "readonly()", "attr.aria-readonly": "readonly()", "attr.tabindex": "tabindex()", "attr.aria-activedescendant": "activeDescendant()", "attr.aria-labelledby": "labelledby()", "attr.aria-describedby": "errormessageId" }, classAttribute: "form-control" }, providers: [
216
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPillsInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
217
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiPillsInputComponent, isStandalone: true, selector: "si-pills-input", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, inputElementAriaLabel: { classPropertyName: "inputElementAriaLabel", publicName: "inputElementAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, labelledby: { classPropertyName: "labelledby", publicName: "labelledby", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "listbox", "aria-orientation": "horizontal" }, listeners: { "click": "click()", "keydown.arrowLeft": "arrowLeft()", "keydown.arrowRight": "arrowRight()", "keydown.backspace": "delete()", "keydown.delete": "delete()" }, properties: { "class.disabled": "disabled()", "attr.aria-disabled": "disabled()", "class.readonly": "readonly()", "attr.aria-readonly": "readonly()", "attr.tabindex": "tabindex()", "attr.aria-activedescendant": "activeDescendant()", "attr.aria-labelledby": "labelledby()", "attr.aria-describedby": "errormessageId" }, classAttribute: "form-control" }, providers: [
218
218
  {
219
219
  provide: NG_VALUE_ACCESSOR,
220
220
  useExisting: SiPillsInputComponent,
@@ -226,7 +226,7 @@ class SiPillsInputComponent {
226
226
  }
227
227
  ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, isSignal: true }], ngImport: i0, template: "<!-- aria-required-children is disabled here -->\n@for (chip of pills(); track $index) {\n <si-input-pill\n role=\"option\"\n [id]=\"id() + '-pill-' + $index\"\n [class.active]=\"$index === activePillIndex()\"\n [hideClose]=\"disabled() || readonly()\"\n (deletePill)=\"remove($index)\"\n >\n {{ chip }}\n </si-input-pill>\n}\n@if (!readonly() && !disabled()) {\n <div role=\"presentation\" class=\"flex-fill\">\n <input\n #inputElement\n class=\"focus-none\"\n [id]=\"inputId()\"\n [attr.aria-label]=\"inputElementAriaLabel() | translate\"\n [placeholder]=\"!pills().length ? placeholder() : ''\"\n [value]=\"inputValue\"\n (keydown.enter)=\"keydownEnter($event)\"\n (keydown.backspace)=\"keydownBackspace($event)\"\n (input)=\"input()\"\n (blur)=\"blur()\"\n />\n </div>\n}\n", styles: [":host{display:flex;flex-wrap:wrap;gap:4px;padding-block:3px;block-size:auto!important;min-block-size:calc(1.143em + 16px)}:host:focus-within{outline:var(--element-button-focus-width) solid var(--element-focus-default);outline-offset:var(--element-button-focus-overlay-width)}input{padding-inline:0;padding-block:3px;margin-inline:4px;border:0;flex:1;background:transparent;color:inherit;inline-size:100%}input:focus{min-inline-size:100px}\n"], dependencies: [{ kind: "component", type: SiInputPillComponent, selector: "si-input-pill", inputs: ["hideClose"], outputs: ["deletePill"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
228
228
  }
229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiPillsInputComponent, decorators: [{
229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPillsInputComponent, decorators: [{
230
230
  type: Component,
231
231
  args: [{ selector: 'si-pills-input', imports: [SiInputPillComponent, SiTranslatePipe], providers: [
232
232
  {
@@ -313,15 +313,15 @@ class SiPillsInputCsvDirective extends SiPillsInputPatternBase {
313
313
  /** @defaultValue undefined */
314
314
  // eslint-disable-next-line @angular-eslint/no-input-rename
315
315
  validationRegex = input(undefined, { alias: 'pillsInputCsvItemRegex' });
316
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiPillsInputCsvDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
317
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: SiPillsInputCsvDirective, isStandalone: true, selector: "[siPillsInputCsv]", inputs: { validationRegex: { classPropertyName: "validationRegex", publicName: "pillsInputCsvItemRegex", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
316
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPillsInputCsvDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
317
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: SiPillsInputCsvDirective, isStandalone: true, selector: "[siPillsInputCsv]", inputs: { validationRegex: { classPropertyName: "validationRegex", publicName: "pillsInputCsvItemRegex", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
318
318
  {
319
319
  provide: SiPillsInputValueHandlerDirective,
320
320
  useExisting: SiPillsInputCsvDirective
321
321
  }
322
322
  ], usesInheritance: true, ngImport: i0 });
323
323
  }
324
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiPillsInputCsvDirective, decorators: [{
324
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPillsInputCsvDirective, decorators: [{
325
325
  type: Directive,
326
326
  args: [{
327
327
  selector: '[siPillsInputCsv]',
@@ -345,15 +345,15 @@ class SiPillsInputEmailDirective extends SiPillsInputPatternBase {
345
345
  * @defaultValue signal(EMAIL_REGEX).asReadonly()
346
346
  */
347
347
  validationRegex = signal(EMAIL_REGEX).asReadonly();
348
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiPillsInputEmailDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
349
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.6", type: SiPillsInputEmailDirective, isStandalone: true, selector: "[siPillsInputEmail]", providers: [
348
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPillsInputEmailDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
349
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.6", type: SiPillsInputEmailDirective, isStandalone: true, selector: "[siPillsInputEmail]", providers: [
350
350
  {
351
351
  provide: SiPillsInputValueHandlerDirective,
352
352
  useExisting: SiPillsInputEmailDirective
353
353
  }
354
354
  ], usesInheritance: true, ngImport: i0 });
355
355
  }
356
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiPillsInputEmailDirective, decorators: [{
356
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPillsInputEmailDirective, decorators: [{
357
357
  type: Directive,
358
358
  args: [{
359
359
  selector: '[siPillsInputEmail]',
@@ -371,11 +371,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
371
371
  * SPDX-License-Identifier: MIT
372
372
  */
373
373
  class SiPillsInputModule {
374
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiPillsInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
375
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: SiPillsInputModule, imports: [SiPillsInputComponent, SiPillsInputCsvDirective, SiPillsInputEmailDirective], exports: [SiPillsInputComponent, SiPillsInputCsvDirective, SiPillsInputEmailDirective] });
376
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiPillsInputModule, imports: [SiPillsInputComponent] });
374
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPillsInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
375
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: SiPillsInputModule, imports: [SiPillsInputComponent, SiPillsInputCsvDirective, SiPillsInputEmailDirective], exports: [SiPillsInputComponent, SiPillsInputCsvDirective, SiPillsInputEmailDirective] });
376
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPillsInputModule, imports: [SiPillsInputComponent] });
377
377
  }
378
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiPillsInputModule, decorators: [{
378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPillsInputModule, decorators: [{
379
379
  type: NgModule,
380
380
  args: [{
381
381
  imports: [SiPillsInputComponent, SiPillsInputCsvDirective, SiPillsInputEmailDirective],