@siemens/element-ng 47.7.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 (668) hide show
  1. package/README.md +1 -1
  2. package/about/index.d.ts +127 -3
  3. package/accordion/index.d.ts +152 -9
  4. package/action-modal/index.d.ts +92 -2
  5. package/application-header/index.d.ts +357 -13
  6. package/auto-collapsable-list/index.d.ts +114 -10
  7. package/autocomplete/index.d.ts +77 -8
  8. package/avatar/index.d.ts +83 -4
  9. package/badge/index.d.ts +21 -5
  10. package/breadcrumb/index.d.ts +90 -3
  11. package/breadcrumb-router/index.d.ts +104 -4
  12. package/card/index.d.ts +88 -6
  13. package/circle-status/index.d.ts +75 -6
  14. package/color-picker/index.d.ts +65 -5
  15. package/column-selection-dialog/index.d.ts +89 -2
  16. package/common/index.d.ts +421 -4
  17. package/connection-strength/index.d.ts +29 -6
  18. package/content-action-bar/index.d.ts +88 -3
  19. package/copyright-notice/index.d.ts +48 -3
  20. package/dashboard/index.d.ts +783 -0
  21. package/dashboard/package.json +3 -0
  22. package/datatable/index.d.ts +45 -6
  23. package/date-range-filter/index.d.ts +333 -4
  24. package/datepicker/index.d.ts +1409 -11
  25. package/electron-titlebar/index.d.ts +84 -3
  26. package/empty-state/index.d.ts +27 -6
  27. package/fesm2022/siemens-element-ng-about.mjs +7 -7
  28. package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
  29. package/fesm2022/siemens-element-ng-accordion.mjs +23 -36
  30. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
  31. package/fesm2022/siemens-element-ng-action-modal.mjs +41 -125
  32. package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
  33. package/fesm2022/siemens-element-ng-application-header.mjs +80 -76
  34. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  35. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +51 -47
  36. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
  37. package/fesm2022/siemens-element-ng-autocomplete.mjs +42 -42
  38. package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
  39. package/fesm2022/siemens-element-ng-avatar.mjs +10 -10
  40. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  41. package/fesm2022/siemens-element-ng-badge.mjs +3 -3
  42. package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
  43. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +10 -10
  44. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
  45. package/fesm2022/siemens-element-ng-breadcrumb.mjs +13 -13
  46. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  47. package/fesm2022/siemens-element-ng-card.mjs +7 -7
  48. package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
  49. package/fesm2022/siemens-element-ng-circle-status.mjs +7 -7
  50. package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
  51. package/fesm2022/siemens-element-ng-color-picker.mjs +12 -13
  52. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
  53. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +29 -32
  54. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
  55. package/fesm2022/siemens-element-ng-common.mjs +14 -14
  56. package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
  57. package/fesm2022/siemens-element-ng-connection-strength.mjs +7 -7
  58. package/fesm2022/siemens-element-ng-content-action-bar.mjs +14 -14
  59. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  60. package/fesm2022/siemens-element-ng-copyright-notice.mjs +7 -7
  61. package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
  62. package/fesm2022/siemens-element-ng-dashboard.mjs +1170 -0
  63. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -0
  64. package/fesm2022/siemens-element-ng-datatable.mjs +7 -7
  65. package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
  66. package/fesm2022/siemens-element-ng-date-range-filter.mjs +87 -73
  67. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  68. package/fesm2022/siemens-element-ng-datepicker.mjs +120 -158
  69. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  70. package/fesm2022/siemens-element-ng-electron-titlebar.mjs +14 -14
  71. package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
  72. package/fesm2022/siemens-element-ng-empty-state.mjs +7 -7
  73. package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
  74. package/fesm2022/siemens-element-ng-file-uploader.mjs +54 -54
  75. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  76. package/fesm2022/siemens-element-ng-filter-bar.mjs +19 -19
  77. package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
  78. package/fesm2022/siemens-element-ng-filtered-search.mjs +31 -74
  79. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  80. package/fesm2022/siemens-element-ng-footer.mjs +7 -7
  81. package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
  82. package/fesm2022/siemens-element-ng-form.mjs +126 -271
  83. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  84. package/fesm2022/siemens-element-ng-formly.mjs +81 -86
  85. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  86. package/fesm2022/siemens-element-ng-header-dropdown.mjs +24 -23
  87. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  88. package/fesm2022/siemens-element-ng-help-button.mjs +63 -0
  89. package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -0
  90. package/fesm2022/siemens-element-ng-icon-status.mjs +7 -7
  91. package/fesm2022/siemens-element-ng-icon-status.mjs.map +1 -1
  92. package/fesm2022/siemens-element-ng-icon.mjs +32 -27
  93. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  94. package/fesm2022/siemens-element-ng-info-page.mjs +3 -3
  95. package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
  96. package/fesm2022/siemens-element-ng-inline-notification.mjs +7 -7
  97. package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
  98. package/fesm2022/siemens-element-ng-ip-input.mjs +14 -13
  99. package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
  100. package/fesm2022/siemens-element-ng-landing-page.mjs +7 -7
  101. package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
  102. package/fesm2022/siemens-element-ng-language-switcher.mjs +10 -10
  103. package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
  104. package/fesm2022/siemens-element-ng-link.mjs +12 -12
  105. package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
  106. package/fesm2022/siemens-element-ng-list-details.mjs +39 -39
  107. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  108. package/fesm2022/siemens-element-ng-loading-spinner.mjs +19 -19
  109. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
  110. package/fesm2022/siemens-element-ng-localization.mjs +9 -9
  111. package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
  112. package/fesm2022/siemens-element-ng-main-detail-container.mjs +10 -10
  113. package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
  114. package/fesm2022/siemens-element-ng-menu.mjs +38 -38
  115. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  116. package/fesm2022/siemens-element-ng-modal.mjs +8 -8
  117. package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
  118. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +47 -61
  119. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  120. package/fesm2022/siemens-element-ng-navbar.mjs +29 -29
  121. package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
  122. package/fesm2022/siemens-element-ng-number-input.mjs +9 -9
  123. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  124. package/fesm2022/siemens-element-ng-pagination.mjs +14 -14
  125. package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
  126. package/fesm2022/siemens-element-ng-password-strength.mjs +13 -16
  127. package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
  128. package/fesm2022/siemens-element-ng-password-toggle.mjs +12 -12
  129. package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
  130. package/fesm2022/siemens-element-ng-phone-number.mjs +21 -21
  131. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
  132. package/fesm2022/siemens-element-ng-photo-upload.mjs +26 -26
  133. package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
  134. package/fesm2022/siemens-element-ng-pills-input.mjs +24 -24
  135. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
  136. package/fesm2022/siemens-element-ng-popover-next.mjs +36 -25
  137. package/fesm2022/siemens-element-ng-popover-next.mjs.map +1 -1
  138. package/fesm2022/siemens-element-ng-popover.mjs +10 -10
  139. package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
  140. package/fesm2022/siemens-element-ng-progressbar.mjs +10 -10
  141. package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
  142. package/fesm2022/siemens-element-ng-resize-observer.mjs +15 -15
  143. package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
  144. package/fesm2022/siemens-element-ng-result-details-list.mjs +8 -20
  145. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
  146. package/fesm2022/siemens-element-ng-search-bar.mjs +20 -17
  147. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  148. package/fesm2022/siemens-element-ng-select.mjs +73 -73
  149. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  150. package/fesm2022/siemens-element-ng-shadow-root.mjs +4 -5
  151. package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
  152. package/fesm2022/siemens-element-ng-side-panel.mjs +24 -24
  153. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  154. package/fesm2022/siemens-element-ng-skip-links.mjs +12 -13
  155. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
  156. package/fesm2022/siemens-element-ng-slider.mjs +16 -16
  157. package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
  158. package/fesm2022/siemens-element-ng-sort-bar.mjs +10 -10
  159. package/fesm2022/siemens-element-ng-sort-bar.mjs.map +1 -1
  160. package/fesm2022/siemens-element-ng-split.mjs +13 -29
  161. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  162. package/fesm2022/siemens-element-ng-status-bar.mjs +19 -19
  163. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  164. package/fesm2022/siemens-element-ng-status-toggle.mjs +7 -7
  165. package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
  166. package/fesm2022/siemens-element-ng-summary-chip.mjs +3 -3
  167. package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
  168. package/fesm2022/siemens-element-ng-summary-widget.mjs +5 -5
  169. package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
  170. package/fesm2022/siemens-element-ng-system-banner.mjs +3 -3
  171. package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
  172. package/fesm2022/siemens-element-ng-tabs-next.mjs +148 -177
  173. package/fesm2022/siemens-element-ng-tabs-next.mjs.map +1 -1
  174. package/fesm2022/siemens-element-ng-tabs.mjs +12 -11
  175. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  176. package/fesm2022/siemens-element-ng-theme.mjs +5 -5
  177. package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
  178. package/fesm2022/siemens-element-ng-threshold.mjs +22 -22
  179. package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
  180. package/fesm2022/siemens-element-ng-toast-notification.mjs +15 -15
  181. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
  182. package/fesm2022/siemens-element-ng-tooltip.mjs +24 -18
  183. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
  184. package/fesm2022/siemens-element-ng-tour.mjs +19 -19
  185. package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
  186. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  187. package/fesm2022/siemens-element-ng-tree-view.mjs +72 -97
  188. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  189. package/fesm2022/siemens-element-ng-typeahead.mjs +22 -39
  190. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  191. package/fesm2022/siemens-element-ng-unauthorized-page.mjs +7 -7
  192. package/fesm2022/siemens-element-ng-unauthorized-page.mjs.map +1 -1
  193. package/fesm2022/siemens-element-ng-wizard.mjs +76 -109
  194. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  195. package/file-uploader/index.d.ts +419 -4
  196. package/filter-bar/index.d.ts +117 -4
  197. package/filtered-search/index.d.ts +433 -3
  198. package/footer/index.d.ts +23 -6
  199. package/form/index.d.ts +411 -10
  200. package/formly/index.d.ts +217 -2
  201. package/header-dropdown/index.d.ts +150 -5
  202. package/help-button/index.d.ts +26 -0
  203. package/help-button/package.json +3 -0
  204. package/icon/index.d.ts +210 -7
  205. package/icon-status/index.d.ts +33 -6
  206. package/index.d.ts +5 -3
  207. package/info-page/index.d.ts +39 -3
  208. package/inline-notification/index.d.ts +49 -6
  209. package/ip-input/index.d.ts +87 -3
  210. package/landing-page/index.d.ts +95 -3
  211. package/language-switcher/index.d.ts +53 -3
  212. package/link/index.d.ts +127 -4
  213. package/list-details/index.d.ts +176 -12
  214. package/loading-spinner/index.d.ts +128 -9
  215. package/localization/index.d.ts +147 -4
  216. package/main-detail-container/index.d.ts +161 -6
  217. package/menu/index.d.ts +195 -11
  218. package/modal/index.d.ts +129 -3
  219. package/navbar/index.d.ts +304 -4
  220. package/navbar-vertical/index.d.ts +226 -3
  221. package/number-input/index.d.ts +111 -6
  222. package/package.json +21 -13
  223. package/pagination/index.d.ts +75 -6
  224. package/password-strength/index.d.ts +96 -7
  225. package/password-toggle/index.d.ts +49 -6
  226. package/phone-number/index.d.ts +192 -3
  227. package/photo-upload/index.d.ts +304 -4
  228. package/pills-input/index.d.ts +135 -9
  229. package/popover/index.d.ts +98 -6
  230. package/popover-next/index.d.ts +112 -7
  231. package/progressbar/index.d.ts +54 -6
  232. package/resize-observer/index.d.ts +143 -6
  233. package/result-details-list/index.d.ts +58 -3
  234. package/search-bar/index.d.ts +93 -6
  235. package/select/index.d.ts +605 -14
  236. package/shadow-root/index.d.ts +39 -1
  237. package/side-panel/index.d.ts +276 -5
  238. package/skip-links/index.d.ts +24 -3
  239. package/slider/index.d.ts +139 -6
  240. package/sort-bar/index.d.ts +49 -6
  241. package/split/index.d.ts +207 -4
  242. package/status-bar/index.d.ts +178 -3
  243. package/status-toggle/index.d.ts +81 -2
  244. package/summary-chip/index.d.ts +48 -5
  245. package/summary-widget/index.d.ts +48 -5
  246. package/system-banner/index.d.ts +24 -3
  247. package/tabs/index.d.ts +161 -7
  248. package/tabs-next/index.d.ts +121 -7
  249. package/template-i18n.json +5 -3
  250. package/theme/index.d.ts +259 -3
  251. package/threshold/index.d.ts +156 -4
  252. package/toast-notification/index.d.ts +66 -2
  253. package/tooltip/index.d.ts +92 -3
  254. package/tour/index.d.ts +114 -2
  255. package/translate/index.d.ts +199 -3
  256. package/tree-view/index.d.ts +818 -8
  257. package/typeahead/index.d.ts +262 -4
  258. package/unauthorized-page/index.d.ts +42 -4
  259. package/wizard/index.d.ts +209 -7
  260. package/about/si-about-data.model.d.ts +0 -49
  261. package/about/si-about.component.d.ts +0 -71
  262. package/about/si-about.module.d.ts +0 -7
  263. package/accordion/si-accordion-hcollapse.service.d.ts +0 -17
  264. package/accordion/si-accordion.component.d.ts +0 -37
  265. package/accordion/si-accordion.module.d.ts +0 -8
  266. package/accordion/si-accordion.service.d.ts +0 -17
  267. package/accordion/si-collapsible-panel.component.d.ts +0 -89
  268. package/action-modal/si-action-dialog.service.d.ts +0 -49
  269. package/action-modal/si-action-dialog.types.d.ts +0 -92
  270. package/action-modal/si-alert-dialog/si-alert-dialog.component.d.ts +0 -32
  271. package/action-modal/si-confirmation-dialog/si-confirmation-dialog.component.d.ts +0 -40
  272. package/action-modal/si-delete-confirmation-dialog/si-delete-confirmation-dialog.component.d.ts +0 -45
  273. package/action-modal/si-edit-discard-dialog/si-edit-discard-dialog.component.d.ts +0 -68
  274. package/application-header/launchpad/si-launchpad-app.component.d.ts +0 -21
  275. package/application-header/launchpad/si-launchpad-factory.component.d.ts +0 -83
  276. package/application-header/launchpad/si-launchpad.model.d.ts +0 -33
  277. package/application-header/si-application-header.component.d.ts +0 -60
  278. package/application-header/si-header-account-item.component.d.ts +0 -13
  279. package/application-header/si-header-action-item-icon-base.directive.d.ts +0 -26
  280. package/application-header/si-header-action-item.base.d.ts +0 -19
  281. package/application-header/si-header-action-item.component.d.ts +0 -9
  282. package/application-header/si-header-actions.directive.d.ts +0 -5
  283. package/application-header/si-header-brand.directive.d.ts +0 -5
  284. package/application-header/si-header-collapsible-actions.component.d.ts +0 -33
  285. package/application-header/si-header-logo.directive.d.ts +0 -16
  286. package/application-header/si-header-navigation-item.component.d.ts +0 -10
  287. package/application-header/si-header-navigation.component.d.ts +0 -11
  288. package/application-header/si-header-selection-item.component.d.ts +0 -12
  289. package/application-header/si-header-siemens-logo.component.d.ts +0 -21
  290. package/auto-collapsable-list/si-auto-collapsable-list-additional-content.directive.d.ts +0 -6
  291. package/auto-collapsable-list/si-auto-collapsable-list-item.directive.d.ts +0 -29
  292. package/auto-collapsable-list/si-auto-collapsable-list-measurable.class.d.ts +0 -16
  293. package/auto-collapsable-list/si-auto-collapsable-list-overflow-item.directive.d.ts +0 -12
  294. package/auto-collapsable-list/si-auto-collapsable-list.directive.d.ts +0 -47
  295. package/auto-collapsable-list/si-auto-collapsable-list.module.d.ts +0 -10
  296. package/autocomplete/si-autocomplete-listbox.directive.d.ts +0 -31
  297. package/autocomplete/si-autocomplete-option.directive.d.ts +0 -31
  298. package/autocomplete/si-autocomplete.directive.d.ts +0 -14
  299. package/autocomplete/si-autocomplete.model.d.ts +0 -7
  300. package/autocomplete/si-autocomplete.module.d.ts +0 -9
  301. package/avatar/si-avatar-background-color.directive.d.ts +0 -35
  302. package/avatar/si-avatar.component.d.ts +0 -51
  303. package/badge/si-badge.component.d.ts +0 -17
  304. package/breadcrumb/breadcrumb-item.model.d.ts +0 -36
  305. package/breadcrumb/si-breadcrumb-item-template.directive.d.ts +0 -10
  306. package/breadcrumb/si-breadcrumb.component.d.ts +0 -46
  307. package/breadcrumb/si-breadcrumb.module.d.ts +0 -7
  308. package/breadcrumb-router/si-breadcrumb-default-resolver.service.d.ts +0 -23
  309. package/breadcrumb-router/si-breadcrumb-router.component.d.ts +0 -30
  310. package/breadcrumb-router/si-breadcrumb-router.model.d.ts +0 -53
  311. package/breadcrumb-router/si-breadcrumb-router.module.d.ts +0 -7
  312. package/card/si-card.component.d.ts +0 -79
  313. package/card/si-card.module.d.ts +0 -7
  314. package/circle-status/si-circle-status.component.d.ts +0 -66
  315. package/circle-status/si-circle-status.module.d.ts +0 -7
  316. package/color-picker/si-color-picker.component.d.ts +0 -61
  317. package/column-selection-dialog/column-selection-editor/si-column-selection-editor.component.d.ts +0 -23
  318. package/column-selection-dialog/si-column-selection-dialog.component.d.ts +0 -114
  319. package/column-selection-dialog/si-column-selection-dialog.service.d.ts +0 -20
  320. package/column-selection-dialog/si-column-selection-dialog.types.d.ts +0 -68
  321. package/common/decorators/index.d.ts +0 -5
  322. package/common/decorators/webcomponent.decorator.d.ts +0 -6
  323. package/common/helpers/animation.helpers.d.ts +0 -10
  324. package/common/helpers/global-events.helpers.d.ts +0 -5
  325. package/common/helpers/index.d.ts +0 -10
  326. package/common/helpers/overlay-helper.d.ts +0 -24
  327. package/common/helpers/positioning.helpers.d.ts +0 -58
  328. package/common/helpers/rtl.d.ts +0 -6
  329. package/common/helpers/track-by.helper.d.ts +0 -27
  330. package/common/models/color-variant.model.d.ts +0 -8
  331. package/common/models/index.d.ts +0 -8
  332. package/common/models/menu.model.d.ts +0 -85
  333. package/common/models/positions.model.d.ts +0 -18
  334. package/common/models/status-type.model.d.ts +0 -21
  335. package/common/services/blink.service.d.ts +0 -41
  336. package/common/services/index.d.ts +0 -8
  337. package/common/services/scrollbar-helper.service.d.ts +0 -17
  338. package/common/services/si-uistate.service.d.ts +0 -61
  339. package/common/services/text-measure.service.d.ts +0 -21
  340. package/connection-strength/si-connection-strength.component.d.ts +0 -19
  341. package/connection-strength/si-connection-strength.module.d.ts +0 -7
  342. package/content-action-bar/si-content-action-bar-toggle.component.d.ts +0 -6
  343. package/content-action-bar/si-content-action-bar.component.d.ts +0 -72
  344. package/content-action-bar/si-content-action-bar.model.d.ts +0 -9
  345. package/content-action-bar/si-content-action-bar.module.d.ts +0 -7
  346. package/copyright-notice/si-copyright-notice.component.d.ts +0 -18
  347. package/copyright-notice/si-copyright-notice.d.ts +0 -23
  348. package/copyright-notice/si-copyright-notice.module.d.ts +0 -7
  349. package/datatable/si-datatable-interaction.directive.d.ts +0 -34
  350. package/datatable/si-datatable.module.d.ts +0 -7
  351. package/date-range-filter/si-date-range-calculation.service.d.ts +0 -33
  352. package/date-range-filter/si-date-range-filter.component.d.ts +0 -252
  353. package/date-range-filter/si-date-range-filter.module.d.ts +0 -7
  354. package/date-range-filter/si-date-range-filter.types.d.ts +0 -40
  355. package/date-range-filter/si-relative-date.component.d.ts +0 -31
  356. package/datepicker/components/si-calendar-body.component.d.ts +0 -137
  357. package/datepicker/components/si-calendar-date-cell.directive.d.ts +0 -16
  358. package/datepicker/components/si-calendar-direction-button.component.d.ts +0 -18
  359. package/datepicker/components/si-compare-adapter.d.ts +0 -37
  360. package/datepicker/components/si-day-selection.component.d.ts +0 -76
  361. package/datepicker/components/si-initial-focus.component.d.ts +0 -74
  362. package/datepicker/components/si-month-selection.component.d.ts +0 -62
  363. package/datepicker/components/si-year-selection.component.d.ts +0 -65
  364. package/datepicker/date-time-helper.d.ts +0 -302
  365. package/datepicker/si-calendar-button.component.d.ts +0 -49
  366. package/datepicker/si-date-input.directive.d.ts +0 -114
  367. package/datepicker/si-date-range.component.d.ts +0 -150
  368. package/datepicker/si-datepicker-overlay.component.d.ts +0 -82
  369. package/datepicker/si-datepicker-overlay.directive.d.ts +0 -104
  370. package/datepicker/si-datepicker.component.d.ts +0 -228
  371. package/datepicker/si-datepicker.directive.d.ts +0 -62
  372. package/datepicker/si-datepicker.model.d.ts +0 -129
  373. package/datepicker/si-datepicker.module.d.ts +0 -12
  374. package/datepicker/si-timepicker.component.d.ts +0 -214
  375. package/electron-titlebar/electron.helpers.d.ts +0 -5
  376. package/electron-titlebar/si-electron-titlebar.component.d.ts +0 -72
  377. package/electron-titlebar/si-electron-titlebar.module.d.ts +0 -7
  378. package/empty-state/si-empty-state.component.d.ts +0 -18
  379. package/empty-state/si-empty-state.module.d.ts +0 -7
  380. package/file-uploader/si-file-dropzone.component.d.ts +0 -106
  381. package/file-uploader/si-file-uploader.component.d.ts +0 -296
  382. package/file-uploader/si-file-uploader.model.d.ts +0 -12
  383. package/file-uploader/si-file-uploader.module.d.ts +0 -8
  384. package/filter-bar/filter.d.ts +0 -26
  385. package/filter-bar/si-filter-bar.component.d.ts +0 -65
  386. package/filter-bar/si-filter-bar.module.d.ts +0 -7
  387. package/filter-bar/si-filter-pill.component.d.ts +0 -20
  388. package/filtered-search/si-filtered-search-helper.d.ts +0 -22
  389. package/filtered-search/si-filtered-search-value.component.d.ts +0 -53
  390. package/filtered-search/si-filtered-search.component.d.ts +0 -329
  391. package/filtered-search/si-filtered-search.model.d.ts +0 -139
  392. package/filtered-search/si-filtered-search.module.d.ts +0 -7
  393. package/filtered-search/values/date-value/si-filtered-search-date-value.component.d.ts +0 -57
  394. package/filtered-search/values/si-filtered-search-value.base.d.ts +0 -27
  395. package/filtered-search/values/typeahead/si-filtered-search-typeahead.component.d.ts +0 -45
  396. package/footer/si-footer.component.d.ts +0 -14
  397. package/footer/si-footer.module.d.ts +0 -7
  398. package/form/form-fieldset/si-form-fieldset.component.d.ts +0 -40
  399. package/form/si-form-container/si-form-container.component.d.ts +0 -155
  400. package/form/si-form-item/si-form-field-native.control.d.ts +0 -22
  401. package/form/si-form-item/si-form-item.component.d.ts +0 -90
  402. package/form/si-form-item-control-input.directive.d.ts +0 -18
  403. package/form/si-form-item.control.d.ts +0 -35
  404. package/form/si-form-validation-error.model.d.ts +0 -55
  405. package/form/si-form-validation-error.provider.d.ts +0 -11
  406. package/form/si-form-validation-error.service.d.ts +0 -42
  407. package/form/si-form-validation-tooltip/si-form-validation-tooltip.component.d.ts +0 -13
  408. package/form/si-form-validation-tooltip/si-form-validation-tooltip.directive.d.ts +0 -42
  409. package/form/si-form.module.d.ts +0 -25
  410. package/formly/fields/button/si-formly-button.component.d.ts +0 -7
  411. package/formly/fields/date-range/si-formly-date-range.component.d.ts +0 -6
  412. package/formly/fields/datetime/si-formly-datetime.component.d.ts +0 -13
  413. package/formly/fields/email/si-formly-email.component.d.ts +0 -6
  414. package/formly/fields/ip-input/si-formly-ip-input.component.d.ts +0 -6
  415. package/formly/fields/number/si-formly-number.component.d.ts +0 -6
  416. package/formly/fields/password/si-formly-password.component.d.ts +0 -6
  417. package/formly/fields/select/si-formly-select.component.d.ts +0 -6
  418. package/formly/fields/text/si-formly-text-display.component.d.ts +0 -7
  419. package/formly/fields/textarea/si-formly-textarea.component.d.ts +0 -18
  420. package/formly/fields/time/si-formly-time.component.d.ts +0 -13
  421. package/formly/si-formly-translate.extension.d.ts +0 -9
  422. package/formly/si-formly.component.d.ts +0 -62
  423. package/formly/si-formly.module.d.ts +0 -35
  424. package/formly/structural/si-formly-accordion/si-formly-accordion.component.d.ts +0 -13
  425. package/formly/structural/si-formly-array/si-formly-array.component.d.ts +0 -6
  426. package/formly/structural/si-formly-object/si-formly-object.component.d.ts +0 -6
  427. package/formly/structural/si-formly-object-grid/si-formly-object-grid.component.d.ts +0 -22
  428. package/formly/structural/si-formly-object-grid/si-formly-object-grid.model.d.ts +0 -21
  429. package/formly/structural/si-formly-object-plain/si-formly-object-plain.component.d.ts +0 -6
  430. package/formly/structural/si-formly-tabset/si-formly-object-tabset.component.d.ts +0 -7
  431. package/formly/utils.d.ts +0 -6
  432. package/formly/wrapper/si-formly-fieldset.component.d.ts +0 -8
  433. package/formly/wrapper/si-formly-form-field-provider.directive.d.ts +0 -19
  434. package/formly/wrapper/si-formly-horizontal-wrapper.component.d.ts +0 -6
  435. package/formly/wrapper/si-formly-icon-wrapper.component.d.ts +0 -6
  436. package/formly/wrapper/si-formly-wrapper.component.d.ts +0 -8
  437. package/header-dropdown/si-header-dropdown-item.component.d.ts +0 -23
  438. package/header-dropdown/si-header-dropdown-items-factory.component.d.ts +0 -14
  439. package/header-dropdown/si-header-dropdown-trigger.directive.d.ts +0 -57
  440. package/header-dropdown/si-header-dropdown.component.d.ts +0 -20
  441. package/header-dropdown/si-header.model.d.ts +0 -37
  442. package/icon/element-icons.d.ts +0 -55
  443. package/icon/icon-status.d.ts +0 -22
  444. package/icon/si-icon-next.component.d.ts +0 -64
  445. package/icon/si-icon.component.d.ts +0 -23
  446. package/icon/si-icon.module.d.ts +0 -7
  447. package/icon/si-icons.d.ts +0 -31
  448. package/icon/si-status-icon.component.d.ts +0 -9
  449. package/icon-status/si-icon-status.component.d.ts +0 -24
  450. package/icon-status/si-icon-status.module.d.ts +0 -7
  451. package/info-page/si-info-page.component.d.ts +0 -38
  452. package/inline-notification/si-inline-notification.component.d.ts +0 -40
  453. package/inline-notification/si-inline-notification.module.d.ts +0 -7
  454. package/ip-input/address-utils.d.ts +0 -28
  455. package/ip-input/address-validators.d.ts +0 -21
  456. package/ip-input/si-ip-input.directive.d.ts +0 -53
  457. package/ip-input/si-ip4-input.directive.d.ts +0 -9
  458. package/ip-input/si-ip6-input.directive.d.ts +0 -10
  459. package/landing-page/alert-config.model.d.ts +0 -15
  460. package/landing-page/si-landing-page.component.d.ts +0 -74
  461. package/landing-page/si-landing-page.module.d.ts +0 -7
  462. package/language-switcher/iso-language-value.d.ts +0 -14
  463. package/language-switcher/si-language-switcher.component.d.ts +0 -31
  464. package/language-switcher/si-language-switcher.module.d.ts +0 -7
  465. package/link/aria-current.model.d.ts +0 -5
  466. package/link/link.model.d.ts +0 -57
  467. package/link/si-link-action.service.d.ts +0 -17
  468. package/link/si-link.directive.d.ts +0 -42
  469. package/link/si-link.module.d.ts +0 -7
  470. package/list-details/si-details-pane/si-details-pane.component.d.ts +0 -8
  471. package/list-details/si-details-pane-body/si-details-pane-body.component.d.ts +0 -6
  472. package/list-details/si-details-pane-footer/si-details-pane-footer.component.d.ts +0 -6
  473. package/list-details/si-details-pane-header/si-details-pane-header.component.d.ts +0 -38
  474. package/list-details/si-list-details.component.d.ts +0 -100
  475. package/list-details/si-list-pane/si-list-pane.component.d.ts +0 -10
  476. package/list-details/si-list-pane-body/si-list-pane-body.component.d.ts +0 -6
  477. package/list-details/si-list-pane-header/si-list-pane-header.component.d.ts +0 -6
  478. package/loading-spinner/si-loading-button.component.d.ts +0 -31
  479. package/loading-spinner/si-loading-spinner.component.d.ts +0 -32
  480. package/loading-spinner/si-loading-spinner.directive.d.ts +0 -37
  481. package/loading-spinner/si-loading-spinner.module.d.ts +0 -8
  482. package/loading-spinner/si-loading-spinner.service.d.ts +0 -18
  483. package/localization/si-directionality.d.ts +0 -41
  484. package/localization/si-locale-id.d.ts +0 -22
  485. package/localization/si-locale-store.d.ts +0 -16
  486. package/localization/si-locale.service.d.ts +0 -73
  487. package/main-detail-container/si-main-detail-container.component.d.ts +0 -151
  488. package/main-detail-container/si-main-detail-container.module.d.ts +0 -7
  489. package/menu/si-menu-action.service.d.ts +0 -13
  490. package/menu/si-menu-bar.directive.d.ts +0 -12
  491. package/menu/si-menu-divider.directive.d.ts +0 -5
  492. package/menu/si-menu-factory-item-guard.directive.d.ts +0 -11
  493. package/menu/si-menu-factory.component.d.ts +0 -15
  494. package/menu/si-menu-header.directive.d.ts +0 -5
  495. package/menu/si-menu-item-base.directive.d.ts +0 -16
  496. package/menu/si-menu-item-checkbox.component.d.ts +0 -11
  497. package/menu/si-menu-item-radio.component.d.ts +0 -10
  498. package/menu/si-menu-item.component.d.ts +0 -10
  499. package/menu/si-menu-model.d.ts +0 -91
  500. package/menu/si-menu.directive.d.ts +0 -6
  501. package/menu/si-menu.module.d.ts +0 -14
  502. package/modal/modal.helpers.d.ts +0 -8
  503. package/modal/modalref.d.ts +0 -64
  504. package/modal/si-modal.component.d.ts +0 -32
  505. package/modal/si-modal.service.d.ts +0 -57
  506. package/navbar/account.model.d.ts +0 -39
  507. package/navbar/si-navbar-item/index.d.ts +0 -5
  508. package/navbar/si-navbar-item/si-navbar-item.component.d.ts +0 -29
  509. package/navbar/si-navbar-primary/index.d.ts +0 -6
  510. package/navbar/si-navbar-primary/si-navbar-primary.component.d.ts +0 -198
  511. package/navbar/si-navbar-primary/si-navbar-primary.model.d.ts +0 -34
  512. package/navbar/si-navbar.module.d.ts +0 -9
  513. package/navbar-vertical/si-navbar-vertical-divider.component.d.ts +0 -5
  514. package/navbar-vertical/si-navbar-vertical-group-trigger.directive.d.ts +0 -38
  515. package/navbar-vertical/si-navbar-vertical-group.component.d.ts +0 -16
  516. package/navbar-vertical/si-navbar-vertical-header.component.d.ts +0 -6
  517. package/navbar-vertical/si-navbar-vertical-item-legacy.component.d.ts +0 -17
  518. package/navbar-vertical/si-navbar-vertical-item.component.d.ts +0 -21
  519. package/navbar-vertical/si-navbar-vertical.component.d.ts +0 -148
  520. package/navbar-vertical/si-navbar-vertical.model.d.ts +0 -77
  521. package/navbar-vertical/si-navbar-vertical.module.d.ts +0 -7
  522. package/navbar-vertical/si-navbar-vertical.provider.d.ts +0 -7
  523. package/number-input/si-number-input.component.d.ts +0 -106
  524. package/number-input/si-number-input.module.d.ts +0 -7
  525. package/pagination/si-pagination.component.d.ts +0 -65
  526. package/pagination/si-pagination.module.d.ts +0 -7
  527. package/password-strength/si-password-strength.component.d.ts +0 -25
  528. package/password-strength/si-password-strength.directive.d.ts +0 -65
  529. package/password-strength/si-password-strength.module.d.ts +0 -8
  530. package/password-toggle/si-password-toggle.component.d.ts +0 -39
  531. package/password-toggle/si-password-toggle.module.d.ts +0 -7
  532. package/phone-number/si-phone-number-input-select.directive.d.ts +0 -10
  533. package/phone-number/si-phone-number-input.component.d.ts +0 -137
  534. package/phone-number/si-phone-number-input.models.d.ts +0 -48
  535. package/phone-number/si-phone-number-input.module.d.ts +0 -7
  536. package/photo-upload/si-image-cropper-style.component.d.ts +0 -5
  537. package/photo-upload/si-photo-upload.component.d.ts +0 -298
  538. package/pills-input/si-input-pill.component.d.ts +0 -9
  539. package/pills-input/si-pills-input-csv.directive.d.ts +0 -8
  540. package/pills-input/si-pills-input-email.directive.d.ts +0 -10
  541. package/pills-input/si-pills-input-pattern-base.d.ts +0 -19
  542. package/pills-input/si-pills-input-value-handler.d.ts +0 -12
  543. package/pills-input/si-pills-input.component.d.ts +0 -87
  544. package/pills-input/si-pills-input.module.d.ts +0 -9
  545. package/popover/si-popover.component.d.ts +0 -26
  546. package/popover/si-popover.directive.d.ts +0 -89
  547. package/popover/si-popover.module.d.ts +0 -7
  548. package/popover-next/si-popover-description.directive.d.ts +0 -7
  549. package/popover-next/si-popover-next.directive.d.ts +0 -61
  550. package/popover-next/si-popover-title.directive.d.ts +0 -7
  551. package/popover-next/si-popover.component.d.ts +0 -27
  552. package/progressbar/si-progressbar.component.d.ts +0 -43
  553. package/progressbar/si-progressbar.module.d.ts +0 -7
  554. package/public-api.d.ts +0 -5
  555. package/resize-observer/resize-observer.service.d.ts +0 -41
  556. package/resize-observer/si-resize-observer.directive.d.ts +0 -31
  557. package/resize-observer/si-resize-observer.module.d.ts +0 -8
  558. package/resize-observer/si-responsive-container.directive.d.ts +0 -73
  559. package/result-details-list/si-result-details-list.component.d.ts +0 -14
  560. package/result-details-list/si-result-details-list.datamodel.d.ts +0 -48
  561. package/result-details-list/si-result-details-list.module.d.ts +0 -7
  562. package/search-bar/si-search-bar.component.d.ts +0 -87
  563. package/search-bar/si-search-bar.module.d.ts +0 -7
  564. package/select/options/si-select-complex-options.directive.d.ts +0 -69
  565. package/select/options/si-select-lazy-options.directive.d.ts +0 -38
  566. package/select/options/si-select-option.source.d.ts +0 -49
  567. package/select/options/si-select-options-strategy.base.d.ts +0 -35
  568. package/select/options/si-select-options-strategy.d.ts +0 -37
  569. package/select/options/si-select-simple-options.directive.d.ts +0 -34
  570. package/select/select-input/si-select-input.component.d.ts +0 -43
  571. package/select/select-list/si-select-list-has-filter.component.d.ts +0 -20
  572. package/select/select-list/si-select-list.base.d.ts +0 -37
  573. package/select/select-list/si-select-list.component.d.ts +0 -15
  574. package/select/select-option/si-select-option-row.component.d.ts +0 -16
  575. package/select/select-option/si-select-option.component.d.ts +0 -9
  576. package/select/selection/si-select-multi-value.directive.d.ts +0 -26
  577. package/select/selection/si-select-selection-strategy.d.ts +0 -58
  578. package/select/selection/si-select-single-value.directive.d.ts +0 -26
  579. package/select/si-select-action.directive.d.ts +0 -12
  580. package/select/si-select-actions.directive.d.ts +0 -5
  581. package/select/si-select-group-template.directive.d.ts +0 -20
  582. package/select/si-select-option-row-template.directive.d.ts +0 -9
  583. package/select/si-select-option-template.directive.d.ts +0 -21
  584. package/select/si-select.component.d.ts +0 -96
  585. package/select/si-select.module.d.ts +0 -15
  586. package/select/si-select.types.d.ts +0 -65
  587. package/shadow-root/si-shadow-root.directive.d.ts +0 -39
  588. package/side-panel/si-side-panel-content.component.d.ts +0 -105
  589. package/side-panel/si-side-panel.component.d.ts +0 -108
  590. package/side-panel/si-side-panel.module.d.ts +0 -8
  591. package/side-panel/si-side-panel.service.d.ts +0 -45
  592. package/side-panel/side-panel.model.d.ts +0 -16
  593. package/skip-links/si-skip-link-target.directive.d.ts +0 -27
  594. package/skip-links/si-skip-links.component.d.ts +0 -9
  595. package/skip-links/skip-link.service.d.ts +0 -14
  596. package/slider/si-slider.component.d.ts +0 -129
  597. package/slider/si-slider.module.d.ts +0 -7
  598. package/sort-bar/si-sort-bar.component.d.ts +0 -42
  599. package/sort-bar/si-sort-bar.module.d.ts +0 -7
  600. package/split/si-split-part.component.d.ts +0 -154
  601. package/split/si-split.component.d.ts +0 -48
  602. package/split/si-split.interfaces.d.ts +0 -17
  603. package/split/si-split.module.d.ts +0 -8
  604. package/status-bar/si-status-bar-item/index.d.ts +0 -6
  605. package/status-bar/si-status-bar-item/si-status-bar-item.component.d.ts +0 -22
  606. package/status-bar/si-status-bar-item/si-status-bar-item.model.d.ts +0 -33
  607. package/status-bar/si-status-bar.component.d.ts +0 -116
  608. package/status-bar/si-status-bar.module.d.ts +0 -7
  609. package/status-toggle/si-status-toggle.component.d.ts +0 -54
  610. package/status-toggle/status-toggle.model.d.ts +0 -26
  611. package/summary-chip/si-summary-chip.component.d.ts +0 -44
  612. package/summary-widget/si-summary-widget.component.d.ts +0 -44
  613. package/system-banner/system-banner.component.d.ts +0 -23
  614. package/tabs/si-tab/index.d.ts +0 -5
  615. package/tabs/si-tab/si-tab.component.d.ts +0 -58
  616. package/tabs/si-tabs.module.d.ts +0 -8
  617. package/tabs/si-tabset/index.d.ts +0 -5
  618. package/tabs/si-tabset/si-tabset.component.d.ts +0 -100
  619. package/tabs-next/si-tab-next-base.directive.d.ts +0 -63
  620. package/tabs-next/si-tab-next-link.component.d.ts +0 -16
  621. package/tabs-next/si-tab-next.component.d.ts +0 -16
  622. package/tabs-next/si-tabs-tokens.d.ts +0 -7
  623. package/tabs-next/si-tabset-next.component.d.ts +0 -57
  624. package/theme/si-theme-store.d.ts +0 -82
  625. package/theme/si-theme.model.d.ts +0 -48
  626. package/theme/si-theme.service.d.ts +0 -129
  627. package/threshold/si-readonly-threshold-option.component.d.ts +0 -11
  628. package/threshold/si-threshold.component.d.ts +0 -147
  629. package/threshold/si-threshold.module.d.ts +0 -7
  630. package/toast-notification/si-toast-notification/si-toast-notification.component.d.ts +0 -17
  631. package/toast-notification/si-toast-notification-drawer/si-toast-notification-drawer.component.d.ts +0 -9
  632. package/toast-notification/si-toast-notification.service.d.ts +0 -41
  633. package/toast-notification/si-toast.model.d.ts +0 -25
  634. package/tooltip/si-tooltip.component.d.ts +0 -25
  635. package/tooltip/si-tooltip.directive.d.ts +0 -45
  636. package/tooltip/si-tooltip.module.d.ts +0 -7
  637. package/tooltip/si-tooltip.service.d.ts +0 -44
  638. package/tour/si-tour-highlight.component.d.ts +0 -15
  639. package/tour/si-tour-token.model.d.ts +0 -27
  640. package/tour/si-tour.component.d.ts +0 -31
  641. package/tour/si-tour.model.d.ts +0 -51
  642. package/tour/si-tour.service.d.ts +0 -62
  643. package/translate/si-translatable-keys.interface.d.ts +0 -188
  644. package/translate/si-translatable-overrides.provider.d.ts +0 -7
  645. package/tree-view/drag-drop.util.d.ts +0 -32
  646. package/tree-view/si-tree-view-converter.service.d.ts +0 -41
  647. package/tree-view/si-tree-view-item/si-tree-view-item.component.d.ts +0 -105
  648. package/tree-view/si-tree-view-item/si-tree-view-item.directive.d.ts +0 -24
  649. package/tree-view/si-tree-view-item-context.d.ts +0 -11
  650. package/tree-view/si-tree-view-item-height.service.d.ts +0 -49
  651. package/tree-view/si-tree-view-item-template.directive.d.ts +0 -18
  652. package/tree-view/si-tree-view-virtualization.service.d.ts +0 -150
  653. package/tree-view/si-tree-view.component.d.ts +0 -466
  654. package/tree-view/si-tree-view.model.d.ts +0 -146
  655. package/tree-view/si-tree-view.module.d.ts +0 -10
  656. package/tree-view/si-tree-view.service.d.ts +0 -55
  657. package/tree-view/si-tree-view.utils.d.ts +0 -46
  658. package/typeahead/si-typeahead-item-template.directive.d.ts +0 -7
  659. package/typeahead/si-typeahead.component.d.ts +0 -22
  660. package/typeahead/si-typeahead.directive.d.ts +0 -196
  661. package/typeahead/si-typeahead.model.d.ts +0 -60
  662. package/typeahead/si-typeahead.module.d.ts +0 -8
  663. package/typeahead/si-typeahead.sorting.d.ts +0 -10
  664. package/unauthorized-page/si-unauthorized-page.component.d.ts +0 -35
  665. package/unauthorized-page/si-unauthorized-page.module.d.ts +0 -7
  666. package/wizard/si-wizard-step.component.d.ts +0 -21
  667. package/wizard/si-wizard.component.d.ts +0 -196
  668. 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:contain}.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,
@@ -462,7 +462,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
462
462
  directive: SiAvatarBackgroundColorDirective,
463
463
  inputs: ['color', 'autoColor']
464
464
  }
465
- ], 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:contain}.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"] }]
465
+ ], 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"] }]
466
466
  }] });
467
467
 
468
468
  /**
@@ -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,9 +226,9 @@ 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
- args: [{ selector: 'si-pills-input', imports: [SiInputPillComponent, SiTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
231
+ args: [{ selector: 'si-pills-input', imports: [SiInputPillComponent, SiTranslatePipe], providers: [
232
232
  {
233
233
  provide: NG_VALUE_ACCESSOR,
234
234
  useExisting: SiPillsInputComponent,
@@ -238,7 +238,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
238
238
  provide: SI_FORM_ITEM_CONTROL,
239
239
  useExisting: SiPillsInputComponent
240
240
  }
241
- ], host: {
241
+ ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
242
242
  class: 'form-control',
243
243
  role: 'listbox',
244
244
  'aria-orientation': 'horizontal',
@@ -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],