@siemens/element-ng 47.6.0 → 47.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/README.md +4 -1
  2. package/about/index.d.ts +7 -0
  3. package/about/package.json +3 -0
  4. package/about/si-about-data.model.d.ts +49 -0
  5. package/about/si-about.component.d.ts +71 -0
  6. package/about/si-about.module.d.ts +7 -0
  7. package/accordion/index.d.ts +1 -1
  8. package/accordion/si-accordion.component.d.ts +1 -1
  9. package/accordion/si-collapsible-panel.component.d.ts +1 -1
  10. package/action-modal/index.d.ts +1 -1
  11. package/action-modal/si-action-dialog.types.d.ts +1 -1
  12. package/application-header/index.d.ts +1 -1
  13. package/application-header/launchpad/si-launchpad.model.d.ts +1 -1
  14. package/application-header/si-header-action-item-icon-base.directive.d.ts +1 -1
  15. package/application-header/si-header-action-item.base.d.ts +1 -1
  16. package/application-header/si-header-logo.directive.d.ts +1 -1
  17. package/assets/images/landing-page-steel.webp +0 -0
  18. package/auto-collapsable-list/index.d.ts +1 -1
  19. package/auto-collapsable-list/si-auto-collapsable-list-item.directive.d.ts +1 -1
  20. package/auto-collapsable-list/si-auto-collapsable-list-measurable.class.d.ts +1 -1
  21. package/auto-collapsable-list/si-auto-collapsable-list.directive.d.ts +1 -1
  22. package/autocomplete/index.d.ts +1 -1
  23. package/autocomplete/si-autocomplete-option.directive.d.ts +1 -1
  24. package/autocomplete/si-autocomplete.model.d.ts +1 -1
  25. package/avatar/index.d.ts +1 -1
  26. package/avatar/si-avatar-background-color.directive.d.ts +1 -1
  27. package/badge/index.d.ts +1 -1
  28. package/breadcrumb/breadcrumb-item.model.d.ts +1 -1
  29. package/breadcrumb/index.d.ts +1 -1
  30. package/breadcrumb-router/index.d.ts +1 -1
  31. package/breadcrumb-router/si-breadcrumb-router.component.d.ts +1 -1
  32. package/breadcrumb-router/si-breadcrumb-router.model.d.ts +1 -1
  33. package/card/index.d.ts +1 -1
  34. package/circle-status/index.d.ts +1 -1
  35. package/color-picker/index.d.ts +1 -1
  36. package/column-selection-dialog/index.d.ts +1 -1
  37. package/column-selection-dialog/si-column-selection-dialog.types.d.ts +1 -1
  38. package/common/decorators/index.d.ts +1 -1
  39. package/common/decorators/webcomponent.decorator.d.ts +1 -1
  40. package/common/helpers/animation.helpers.d.ts +1 -1
  41. package/common/helpers/global-events.helpers.d.ts +1 -1
  42. package/common/helpers/index.d.ts +1 -1
  43. package/common/helpers/overlay-helper.d.ts +1 -1
  44. package/common/helpers/rtl.d.ts +1 -1
  45. package/common/helpers/track-by.helper.d.ts +1 -1
  46. package/common/index.d.ts +1 -1
  47. package/common/models/color-variant.model.d.ts +1 -1
  48. package/common/models/index.d.ts +1 -1
  49. package/common/models/menu.model.d.ts +1 -1
  50. package/common/models/positions.model.d.ts +1 -1
  51. package/common/models/status-type.model.d.ts +1 -1
  52. package/common/services/index.d.ts +1 -1
  53. package/connection-strength/index.d.ts +1 -1
  54. package/content-action-bar/index.d.ts +1 -1
  55. package/content-action-bar/si-content-action-bar.component.d.ts +1 -1
  56. package/content-action-bar/si-content-action-bar.model.d.ts +3 -3
  57. package/copyright-notice/index.d.ts +1 -1
  58. package/copyright-notice/si-copyright-notice.d.ts +1 -1
  59. package/datatable/index.d.ts +1 -1
  60. package/datatable/si-datatable-interaction.directive.d.ts +1 -1
  61. package/date-range-filter/index.d.ts +1 -1
  62. package/date-range-filter/si-date-range-filter.types.d.ts +1 -1
  63. package/date-range-filter/si-relative-date.component.d.ts +1 -1
  64. package/datepicker/components/si-calendar-date-cell.directive.d.ts +1 -1
  65. package/datepicker/components/si-initial-focus.component.d.ts +1 -1
  66. package/datepicker/index.d.ts +1 -1
  67. package/datepicker/si-datepicker.directive.d.ts +1 -1
  68. package/datepicker/si-datepicker.model.d.ts +1 -1
  69. package/datepicker/si-timepicker.component.d.ts +1 -1
  70. package/electron-titlebar/electron.helpers.d.ts +1 -1
  71. package/electron-titlebar/index.d.ts +1 -1
  72. package/empty-state/index.d.ts +1 -1
  73. package/fesm2022/siemens-element-ng-about.mjs +157 -0
  74. package/fesm2022/siemens-element-ng-about.mjs.map +1 -0
  75. package/fesm2022/siemens-element-ng-accordion.mjs +11 -12
  76. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
  77. package/fesm2022/siemens-element-ng-action-modal.mjs +15 -16
  78. package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
  79. package/fesm2022/siemens-element-ng-application-header.mjs +29 -30
  80. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  81. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +7 -7
  82. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
  83. package/fesm2022/siemens-element-ng-autocomplete.mjs +5 -5
  84. package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
  85. package/fesm2022/siemens-element-ng-avatar.mjs +4 -4
  86. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  87. package/fesm2022/siemens-element-ng-badge.mjs +2 -2
  88. package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
  89. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +5 -5
  90. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
  91. package/fesm2022/siemens-element-ng-breadcrumb.mjs +8 -9
  92. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  93. package/fesm2022/siemens-element-ng-card.mjs +7 -8
  94. package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
  95. package/fesm2022/siemens-element-ng-circle-status.mjs +6 -7
  96. package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
  97. package/fesm2022/siemens-element-ng-color-picker.mjs +6 -7
  98. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
  99. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +11 -12
  100. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
  101. package/fesm2022/siemens-element-ng-common.mjs +14 -14
  102. package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
  103. package/fesm2022/siemens-element-ng-connection-strength.mjs +3 -3
  104. package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
  105. package/fesm2022/siemens-element-ng-content-action-bar.mjs +9 -10
  106. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  107. package/fesm2022/siemens-element-ng-copyright-notice.mjs +4 -4
  108. package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
  109. package/fesm2022/siemens-element-ng-datatable.mjs +2 -2
  110. package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
  111. package/fesm2022/siemens-element-ng-date-range-filter.mjs +13 -15
  112. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  113. package/fesm2022/siemens-element-ng-datepicker.mjs +48 -54
  114. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  115. package/fesm2022/siemens-element-ng-electron-titlebar.mjs +7 -8
  116. package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
  117. package/fesm2022/siemens-element-ng-empty-state.mjs +6 -7
  118. package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
  119. package/fesm2022/siemens-element-ng-file-uploader.mjs +9 -10
  120. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  121. package/fesm2022/siemens-element-ng-filter-bar.mjs +10 -11
  122. package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
  123. package/fesm2022/siemens-element-ng-filtered-search.mjs +19 -20
  124. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  125. package/fesm2022/siemens-element-ng-footer.mjs +7 -8
  126. package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
  127. package/fesm2022/siemens-element-ng-form.mjs +20 -23
  128. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  129. package/fesm2022/siemens-element-ng-formly.mjs +46 -53
  130. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  131. package/fesm2022/siemens-element-ng-header-dropdown.mjs +8 -9
  132. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  133. package/fesm2022/siemens-element-ng-icon-status.mjs +3 -3
  134. package/fesm2022/siemens-element-ng-icon-status.mjs.map +1 -1
  135. package/fesm2022/siemens-element-ng-icon.mjs +17 -18
  136. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  137. package/fesm2022/siemens-element-ng-info-page.mjs +5 -6
  138. package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
  139. package/fesm2022/siemens-element-ng-inline-notification.mjs +6 -7
  140. package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
  141. package/fesm2022/siemens-element-ng-ip-input.mjs +4 -4
  142. package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
  143. package/fesm2022/siemens-element-ng-landing-page.mjs +121 -0
  144. package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -0
  145. package/fesm2022/siemens-element-ng-language-switcher.mjs +9 -10
  146. package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
  147. package/fesm2022/siemens-element-ng-link.mjs +6 -6
  148. package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
  149. package/fesm2022/siemens-element-ng-list-details.mjs +15 -16
  150. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  151. package/fesm2022/siemens-element-ng-loading-spinner.mjs +13 -14
  152. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
  153. package/fesm2022/siemens-element-ng-localization.mjs +6 -6
  154. package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
  155. package/fesm2022/siemens-element-ng-main-detail-container.mjs +6 -7
  156. package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
  157. package/fesm2022/siemens-element-ng-menu.mjs +22 -22
  158. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  159. package/fesm2022/siemens-element-ng-modal.mjs +4 -4
  160. package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
  161. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +31 -32
  162. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  163. package/fesm2022/siemens-element-ng-navbar.mjs +11 -12
  164. package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
  165. package/fesm2022/siemens-element-ng-number-input.mjs +7 -8
  166. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  167. package/fesm2022/siemens-element-ng-pagination.mjs +6 -7
  168. package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
  169. package/fesm2022/siemens-element-ng-password-strength.mjs +6 -6
  170. package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
  171. package/fesm2022/siemens-element-ng-password-toggle.mjs +8 -9
  172. package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
  173. package/fesm2022/siemens-element-ng-phone-number.mjs +16 -17
  174. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
  175. package/fesm2022/siemens-element-ng-photo-upload.mjs +7 -9
  176. package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
  177. package/fesm2022/siemens-element-ng-pills-input.mjs +14 -15
  178. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
  179. package/fesm2022/siemens-element-ng-popover-next.mjs +5 -5
  180. package/fesm2022/siemens-element-ng-popover-next.mjs.map +1 -1
  181. package/fesm2022/siemens-element-ng-popover.mjs +3 -3
  182. package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
  183. package/fesm2022/siemens-element-ng-progressbar.mjs +7 -8
  184. package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
  185. package/fesm2022/siemens-element-ng-resize-observer.mjs +5 -5
  186. package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
  187. package/fesm2022/siemens-element-ng-result-details-list.mjs +6 -7
  188. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
  189. package/fesm2022/siemens-element-ng-search-bar.mjs +6 -6
  190. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  191. package/fesm2022/siemens-element-ng-select.mjs +39 -40
  192. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  193. package/fesm2022/siemens-element-ng-shadow-root.mjs +2 -2
  194. package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
  195. package/fesm2022/siemens-element-ng-side-panel.mjs +12 -13
  196. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  197. package/fesm2022/siemens-element-ng-skip-links.mjs +7 -8
  198. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
  199. package/fesm2022/siemens-element-ng-slider.mjs +7 -8
  200. package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
  201. package/fesm2022/siemens-element-ng-sort-bar.mjs +6 -7
  202. package/fesm2022/siemens-element-ng-sort-bar.mjs.map +1 -1
  203. package/fesm2022/siemens-element-ng-split.mjs +6 -7
  204. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  205. package/fesm2022/siemens-element-ng-status-bar.mjs +13 -14
  206. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  207. package/fesm2022/siemens-element-ng-status-toggle.mjs +5 -6
  208. package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
  209. package/fesm2022/siemens-element-ng-summary-chip.mjs +5 -6
  210. package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
  211. package/fesm2022/siemens-element-ng-summary-widget.mjs +5 -6
  212. package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
  213. package/fesm2022/siemens-element-ng-system-banner.mjs +5 -6
  214. package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
  215. package/fesm2022/siemens-element-ng-tabs-next.mjs +16 -17
  216. package/fesm2022/siemens-element-ng-tabs-next.mjs.map +1 -1
  217. package/fesm2022/siemens-element-ng-tabs.mjs +9 -16
  218. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  219. package/fesm2022/siemens-element-ng-theme.mjs +3 -3
  220. package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
  221. package/fesm2022/siemens-element-ng-threshold.mjs +11 -12
  222. package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
  223. package/fesm2022/siemens-element-ng-toast-notification.mjs +9 -10
  224. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
  225. package/fesm2022/siemens-element-ng-tooltip.mjs +7 -8
  226. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
  227. package/fesm2022/siemens-element-ng-tour.mjs +7 -8
  228. package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
  229. package/fesm2022/siemens-element-ng-translate.mjs +1 -1
  230. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  231. package/fesm2022/siemens-element-ng-tree-view.mjs +22 -23
  232. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  233. package/fesm2022/siemens-element-ng-typeahead.mjs +12 -13
  234. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  235. package/fesm2022/siemens-element-ng-unauthorized-page.mjs +6 -7
  236. package/fesm2022/siemens-element-ng-unauthorized-page.mjs.map +1 -1
  237. package/fesm2022/siemens-element-ng-wizard.mjs +8 -9
  238. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  239. package/fesm2022/siemens-element-ng.mjs +1 -1
  240. package/fesm2022/siemens-element-ng.mjs.map +1 -1
  241. package/file-uploader/index.d.ts +1 -1
  242. package/file-uploader/si-file-uploader.model.d.ts +1 -1
  243. package/filter-bar/filter.d.ts +1 -1
  244. package/filter-bar/index.d.ts +1 -1
  245. package/filtered-search/index.d.ts +1 -1
  246. package/filtered-search/si-filtered-search-value.component.d.ts +1 -1
  247. package/filtered-search/si-filtered-search.component.d.ts +1 -1
  248. package/filtered-search/si-filtered-search.model.d.ts +1 -1
  249. package/filtered-search/values/si-filtered-search-value.base.d.ts +1 -1
  250. package/filtered-search/values/typeahead/si-filtered-search-typeahead.component.d.ts +1 -1
  251. package/footer/index.d.ts +1 -1
  252. package/form/form-fieldset/si-form-fieldset.component.d.ts +1 -1
  253. package/form/index.d.ts +1 -1
  254. package/form/si-form-container/si-form-container.component.d.ts +24 -24
  255. package/form/si-form-item/si-form-field-native.control.d.ts +1 -1
  256. package/form/si-form-item.control.d.ts +1 -1
  257. package/form/si-form-validation-error.model.d.ts +1 -1
  258. package/form/si-form-validation-error.provider.d.ts +1 -1
  259. package/form/si-form-validation-tooltip/si-form-validation-tooltip.component.d.ts +1 -1
  260. package/form/si-form-validation-tooltip/si-form-validation-tooltip.directive.d.ts +1 -1
  261. package/form/si-form.module.d.ts +1 -1
  262. package/formly/fields/datetime/si-formly-datetime.component.d.ts +1 -1
  263. package/formly/fields/textarea/si-formly-textarea.component.d.ts +1 -1
  264. package/formly/fields/time/si-formly-time.component.d.ts +1 -1
  265. package/formly/index.d.ts +1 -1
  266. package/formly/si-formly-translate.extension.d.ts +1 -3
  267. package/formly/si-formly.component.d.ts +1 -1
  268. package/formly/structural/si-formly-accordion/si-formly-accordion.component.d.ts +1 -1
  269. package/formly/structural/si-formly-object-grid/si-formly-object-grid.component.d.ts +1 -1
  270. package/formly/structural/si-formly-object-grid/si-formly-object-grid.model.d.ts +1 -1
  271. package/formly/utils.d.ts +1 -1
  272. package/formly/wrapper/si-formly-form-field-provider.directive.d.ts +1 -1
  273. package/header-dropdown/index.d.ts +1 -1
  274. package/header-dropdown/si-header.model.d.ts +1 -1
  275. package/icon/element-icons.d.ts +1 -1
  276. package/icon/icon-status.d.ts +1 -1
  277. package/icon/index.d.ts +1 -1
  278. package/icon-status/index.d.ts +1 -1
  279. package/info-page/index.d.ts +1 -1
  280. package/inline-notification/index.d.ts +1 -1
  281. package/ip-input/address-utils.d.ts +1 -1
  282. package/ip-input/address-validators.d.ts +1 -1
  283. package/ip-input/index.d.ts +1 -1
  284. package/ip-input/si-ip-input.directive.d.ts +1 -1
  285. package/landing-page/alert-config.model.d.ts +15 -0
  286. package/landing-page/index.d.ts +7 -0
  287. package/landing-page/package.json +3 -0
  288. package/landing-page/si-landing-page.component.d.ts +74 -0
  289. package/landing-page/si-landing-page.module.d.ts +7 -0
  290. package/language-switcher/index.d.ts +1 -1
  291. package/language-switcher/iso-language-value.d.ts +1 -1
  292. package/language-switcher/si-language-switcher.component.d.ts +1 -2
  293. package/link/aria-current.model.d.ts +1 -1
  294. package/link/index.d.ts +1 -1
  295. package/link/link.model.d.ts +1 -1
  296. package/list-details/index.d.ts +1 -1
  297. package/list-details/si-details-pane-header/si-details-pane-header.component.d.ts +1 -1
  298. package/loading-spinner/index.d.ts +1 -1
  299. package/localization/index.d.ts +1 -1
  300. package/localization/si-directionality.d.ts +1 -1
  301. package/localization/si-locale-store.d.ts +1 -1
  302. package/main-detail-container/index.d.ts +1 -1
  303. package/menu/index.d.ts +1 -1
  304. package/menu/si-menu-action.service.d.ts +1 -1
  305. package/menu/si-menu-factory.component.d.ts +1 -1
  306. package/menu/si-menu-item-checkbox.component.d.ts +2 -1
  307. package/menu/si-menu-model.d.ts +1 -1
  308. package/modal/index.d.ts +1 -1
  309. package/modal/modal.helpers.d.ts +1 -1
  310. package/modal/modalref.d.ts +1 -1
  311. package/navbar/account.model.d.ts +1 -1
  312. package/navbar/index.d.ts +1 -1
  313. package/navbar/si-navbar-item/index.d.ts +1 -1
  314. package/navbar/si-navbar-primary/index.d.ts +1 -1
  315. package/navbar/si-navbar-primary/si-navbar-primary.model.d.ts +1 -1
  316. package/navbar-vertical/index.d.ts +1 -1
  317. package/navbar-vertical/si-navbar-vertical.model.d.ts +1 -1
  318. package/navbar-vertical/si-navbar-vertical.provider.d.ts +1 -1
  319. package/number-input/index.d.ts +1 -1
  320. package/number-input/si-number-input.component.d.ts +1 -1
  321. package/package.json +11 -3
  322. package/pagination/index.d.ts +1 -1
  323. package/password-strength/index.d.ts +1 -1
  324. package/password-strength/si-password-strength.component.d.ts +1 -1
  325. package/password-toggle/index.d.ts +1 -1
  326. package/phone-number/index.d.ts +1 -1
  327. package/phone-number/si-phone-number-input.models.d.ts +1 -1
  328. package/photo-upload/index.d.ts +1 -1
  329. package/pills-input/index.d.ts +1 -1
  330. package/pills-input/si-pills-input-pattern-base.d.ts +1 -1
  331. package/pills-input/si-pills-input.component.d.ts +1 -1
  332. package/popover/index.d.ts +1 -1
  333. package/popover/si-popover.component.d.ts +1 -1
  334. package/popover-next/index.d.ts +1 -1
  335. package/progressbar/index.d.ts +1 -1
  336. package/public-api.d.ts +1 -1
  337. package/resize-observer/index.d.ts +1 -1
  338. package/resize-observer/si-resize-observer.directive.d.ts +1 -1
  339. package/resize-observer/si-responsive-container.directive.d.ts +1 -1
  340. package/result-details-list/index.d.ts +1 -1
  341. package/result-details-list/si-result-details-list.datamodel.d.ts +1 -1
  342. package/search-bar/index.d.ts +1 -1
  343. package/search-bar/si-search-bar.component.d.ts +1 -1
  344. package/select/index.d.ts +1 -1
  345. package/select/options/si-select-complex-options.directive.d.ts +1 -1
  346. package/select/options/si-select-lazy-options.directive.d.ts +1 -1
  347. package/select/options/si-select-option.source.d.ts +1 -1
  348. package/select/options/si-select-options-strategy.base.d.ts +1 -1
  349. package/select/options/si-select-options-strategy.d.ts +1 -1
  350. package/select/options/si-select-simple-options.directive.d.ts +1 -1
  351. package/select/select-input/si-select-input.component.d.ts +1 -1
  352. package/select/select-list/si-select-list.base.d.ts +1 -1
  353. package/select/select-list/si-select-list.component.d.ts +1 -1
  354. package/select/select-option/si-select-option-row.component.d.ts +1 -1
  355. package/select/selection/si-select-selection-strategy.d.ts +1 -1
  356. package/select/si-select.types.d.ts +1 -1
  357. package/shadow-root/index.d.ts +1 -1
  358. package/shadow-root/si-shadow-root.directive.d.ts +1 -1
  359. package/side-panel/index.d.ts +1 -1
  360. package/side-panel/si-side-panel.service.d.ts +1 -1
  361. package/side-panel/side-panel.model.d.ts +1 -1
  362. package/skip-links/index.d.ts +1 -1
  363. package/skip-links/si-skip-link-target.directive.d.ts +1 -1
  364. package/slider/index.d.ts +1 -1
  365. package/sort-bar/index.d.ts +1 -1
  366. package/sort-bar/si-sort-bar.component.d.ts +1 -1
  367. package/split/index.d.ts +1 -1
  368. package/split/si-split.interfaces.d.ts +1 -1
  369. package/status-bar/index.d.ts +1 -1
  370. package/status-bar/si-status-bar-item/index.d.ts +1 -1
  371. package/status-bar/si-status-bar-item/si-status-bar-item.model.d.ts +1 -1
  372. package/status-toggle/index.d.ts +1 -1
  373. package/status-toggle/status-toggle.model.d.ts +1 -1
  374. package/summary-chip/index.d.ts +1 -1
  375. package/summary-widget/index.d.ts +1 -1
  376. package/system-banner/index.d.ts +1 -1
  377. package/tabs/index.d.ts +1 -1
  378. package/tabs/si-tab/index.d.ts +1 -1
  379. package/tabs/si-tab/si-tab.component.d.ts +1 -1
  380. package/tabs/si-tabset/index.d.ts +1 -1
  381. package/tabs-next/index.d.ts +1 -1
  382. package/tabs-next/si-tab-next-base.directive.d.ts +1 -1
  383. package/tabs-next/si-tabs-tokens.d.ts +1 -1
  384. package/tabs-next/si-tabset-next.component.d.ts +1 -1
  385. package/theme/index.d.ts +1 -1
  386. package/theme/si-theme-store.d.ts +1 -1
  387. package/theme/si-theme.model.d.ts +1 -1
  388. package/threshold/index.d.ts +1 -1
  389. package/toast-notification/index.d.ts +1 -1
  390. package/toast-notification/si-toast.model.d.ts +1 -1
  391. package/tooltip/index.d.ts +1 -1
  392. package/tooltip/si-tooltip.component.d.ts +1 -1
  393. package/tooltip/si-tooltip.directive.d.ts +1 -1
  394. package/tooltip/si-tooltip.service.d.ts +1 -1
  395. package/tour/index.d.ts +1 -1
  396. package/tour/si-tour-token.model.d.ts +1 -1
  397. package/tour/si-tour.model.d.ts +1 -1
  398. package/translate/index.d.ts +1 -1
  399. package/translate/si-translatable-overrides.provider.d.ts +1 -1
  400. package/tree-view/drag-drop.util.d.ts +1 -1
  401. package/tree-view/index.d.ts +1 -1
  402. package/tree-view/si-tree-view-item/si-tree-view-item.component.d.ts +1 -1
  403. package/tree-view/si-tree-view-item/si-tree-view-item.directive.d.ts +1 -1
  404. package/tree-view/si-tree-view-item-context.d.ts +1 -1
  405. package/tree-view/si-tree-view-item-height.service.d.ts +1 -1
  406. package/tree-view/si-tree-view-item-template.directive.d.ts +1 -1
  407. package/tree-view/si-tree-view.model.d.ts +1 -1
  408. package/tree-view/si-tree-view.service.d.ts +1 -1
  409. package/tree-view/si-tree-view.utils.d.ts +1 -1
  410. package/typeahead/index.d.ts +1 -1
  411. package/typeahead/si-typeahead.directive.d.ts +1 -1
  412. package/typeahead/si-typeahead.model.d.ts +1 -1
  413. package/typeahead/si-typeahead.sorting.d.ts +1 -1
  414. package/unauthorized-page/index.d.ts +1 -1
  415. package/wizard/index.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-ip-input.mjs","sources":["../../../../projects/element-ng/ip-input/address-utils.ts","../../../../projects/element-ng/ip-input/address-validators.ts","../../../../projects/element-ng/ip-input/si-ip-input.directive.ts","../../../../projects/element-ng/ip-input/si-ip4-input.directive.ts","../../../../projects/element-ng/ip-input/si-ip6-input.directive.ts","../../../../projects/element-ng/ip-input/index.ts","../../../../projects/element-ng/ip-input/siemens-element-ng-ip-input.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport interface Section {\n value: string;\n current?: boolean;\n /** Indicate this is a network mask. */\n mask?: boolean;\n}\n\nexport interface Ip4SplitOptions {\n type?: 'insert' | 'delete' | 'paste';\n input?: string | null;\n pos?: number;\n cidr?: boolean;\n}\n\nexport interface Ip6SplitOptions {\n type?: 'insert' | 'delete' | 'paste';\n input?: string | null;\n pos?: number;\n zeroCompression?: boolean;\n cidr?: boolean;\n}\n\nconst isDigit = (c: string): boolean => c >= '0' && c <= '9';\nconst isHex = (c: string): boolean => (c >= '0' && c <= '9') || (c >= 'A' && c <= 'F');\n\n/**\n * Parse IPv4 input string into IPv4 address section array.\n */\nexport const splitIpV4Sections = (options: Ip4SplitOptions): Section[] => {\n const { input, pos, cidr } = options;\n const sections: Section[] = [{ value: '' }];\n if (!input) {\n return sections;\n }\n let maxDots = 3;\n for (let i = 0; i < input.length; i++) {\n const c = input.charAt(i);\n if (isDigit(c)) {\n sections.at(-1)!.value += c;\n } else if (c === '.' && maxDots > 0) {\n maxDots--;\n sections.push({ value: c }, { value: '' });\n } else if (cidr && c === '/') {\n sections.push({ value: c }, { value: '', mask: true });\n }\n if (pos === i) {\n sections.at(-1)!.current = true;\n }\n }\n\n // Trim empty sections for example the user entered ..\n let previousDivider = false;\n for (let i = 0; i < sections.length; i += 2) {\n const isDivider = sections.at(i)?.value === '' && sections.at(i + 1)?.value === '.';\n if (previousDivider && isDivider) {\n sections.splice(i, 2);\n }\n previousDivider = isDivider;\n }\n\n // Split values > 255 in multiple sections:\n // - 256 will be split into 25 and 6\n // - 255255255 will be split into 255, 255 and 255\n for (let i = 0; i < sections.length; i++) {\n const { value, current } = sections[i];\n if (value.length >= 3 && parseInt(value, 10) > 255) {\n const append: Section[] = [];\n let n = '';\n for (const c of value) {\n if (parseInt(n + c, 10) > 255) {\n append.push({ value: n }, { value: '.' });\n n = c;\n } else {\n n += c;\n }\n }\n if (n.length > 0) {\n append.push({ value: n });\n }\n sections.splice(i, 1, ...append);\n if (current) {\n sections[i + append.length - 1].current = true;\n }\n }\n }\n\n // Split leading zero sections:\n // Assume a string starting by 0 e.g. 012 will be split into 0 and 12\n for (let i = 0; i < sections.length; i++) {\n const sec = sections[i];\n if (sec.value.length > 1 && sec.value.startsWith('0')) {\n sections.splice(i, 1, { value: '0' }, { value: sec.value.substring(1) });\n }\n }\n\n // Ensure the that the CIDR divider is a slash\n if (cidr) {\n const startCidr = 7;\n if (startCidr < sections.length && sections[startCidr].value === '.') {\n sections[startCidr].value = '/';\n }\n const prefixPos = startCidr + 1;\n if (prefixPos < sections.length) {\n const prefixLength = sections[prefixPos].value;\n if (parseInt(prefixLength, 10) > 32) {\n sections[prefixPos].value = prefixLength.substring(0, 2);\n }\n }\n }\n\n return sections;\n};\n\nexport const splitIpV6Sections = (options: Ip6SplitOptions): Section[] => {\n const { type, input, pos, zeroCompression, cidr } = options;\n const sections: Section[] = [{ value: '' }];\n if (!input) {\n return sections;\n }\n\n for (let i = 0; i < input.length; i++) {\n const c = input.charAt(i).toUpperCase();\n if (isHex(c)) {\n sections.at(-1)!.value += c;\n } else if (c === ':') {\n if (input.charAt(i - 1) === c) {\n // Merge :: characters\n sections.at(-2)!.value += c;\n } else {\n sections.push({ value: c }, { value: '' });\n }\n } else if (cidr && c === '/') {\n sections.push({ value: c }, { value: '', mask: true });\n }\n if (pos === i) {\n sections.at(-1)!.current = true;\n }\n }\n\n // Split values > FFFF in multiple sections:\n // - 1FFFF will be split into 1FFF and F\n for (let i = 0; i < sections.length; i++) {\n const { value, current } = sections[i];\n if (value.length > 4) {\n const append: Section[] = [];\n for (let p = 0; p < value.length; p += 4) {\n const part = value.substring(p, p + 4);\n append.push({ value: part });\n if (part.length === 4) {\n append.push({ value: ':' });\n }\n }\n\n sections.splice(i, 1, ...append);\n if (current) {\n sections[i + append.length - 1].current = true;\n }\n }\n }\n\n // Drop invalid zero compression indicators '::'\n const removeEnd = pos === input.length - 1 || type === 'paste';\n let matches = sections.filter(s => s.value.startsWith('::'));\n if (matches) {\n matches = removeEnd ? matches : matches.reverse();\n if (zeroCompression) {\n matches.shift();\n }\n // Only allow one occurrence of ::\n for (const drop of matches) {\n drop.value = drop.value.substring(1);\n }\n }\n\n // Ensure the that the CIDR divider is a slash\n if (cidr) {\n const startCidr = matches.length > 0 ? 13 : 15;\n if (startCidr < sections.length && sections[startCidr].value === ':') {\n sections[startCidr].value = '/';\n }\n const prefixPos = startCidr + 1;\n if (prefixPos < sections.length) {\n const prefixLength = sections[prefixPos].value;\n if (parseInt(prefixLength, 10) > 128) {\n sections[prefixPos].value = prefixLength.substring(0, 2);\n }\n }\n }\n\n return sections;\n};\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nconst ipv4Regex =\n /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;\n\nconst ipv4CIDRRegex =\n /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\/([1-9]|1[0-9]|2[0-9]|3[0-2]))$/;\n\n// Matches 1:2:3:4:5:6:7:8\nconst ipV6Regex = /^(([0-9A-Fa-f]{1,4}:){7})([0-9A-Fa-f]{1,4})$/;\n\n// Matches range from 1:2:3:4:5:6:7:8/1 to 1:2:3:4:5:6:7:8/128\nconst ipV6CIDRRegex =\n /^(([0-9A-Fa-f]{1,4}:){7})([0-9A-Fa-f]{1,4})\\/([1-9]|[1-9][0-9]|10[0-9]|11[0-9]|12[0-8])$/;\n\n// Matches\n// 1:2:3:4:5:6:7:8\n// 1:: (1:0:0:0:0:0:0:0)\n// 1:2:3:4:5:6:7:: (1:2:3:4:5:6:7:0)\n// 1::8 (1:0:0:0:0:0:0:8)\n// 1:2:3:4:5:6::8 (1:2:3:4:5:6:0:8)\n// 1::7:8 (1:0:0:0:0:0:7:8)\n// 1:2:3:4:5::7:8 (1:2:3:4:5:0:7:8)\n// ...\nconst ipV6ZeroCompressionRegex =\n /^(([0-9A-Fa-f]{1,4}:){7})([0-9A-Fa-f]{1,4})|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)$/;\n\nconst ipV6ZeroCompressionCIDRRegex =\n /^((([0-9A-Fa-f]{1,4}:){7})([0-9A-Fa-f]{1,4})|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([1-9]|[1-9][0-9]|10[0-9]|11[0-9]|12[0-8])$/;\n\n/**\n * Validator factory for a IPV6 address.\n\n */\nexport const ipV6Validator = (options: {\n zeroCompression?: boolean;\n cidr?: boolean;\n}): ValidatorFn => {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value;\n let valid: boolean | RegExpMatchArray | null | undefined;\n if (options.cidr && options.zeroCompression) {\n valid = value === '' || value?.match(ipV6ZeroCompressionCIDRRegex);\n } else if (options.cidr) {\n valid = value === '' || value?.match(ipV6CIDRRegex);\n } else if (options.zeroCompression) {\n valid =\n (value === '' || value?.toString().match(ipV6ZeroCompressionRegex)) &&\n value?.split('::').length <= 2;\n } else {\n valid = value === '' || value?.toString().match(ipV6Regex);\n }\n return valid ? null : { ipv6Address: true };\n };\n};\n\n/**\n * Validates a IPV4 address.\n */\nexport const ipV4Validator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const v = control.value;\n const valid = v === '' || v?.toString().match(ipv4Regex);\n return valid ? null : { ipv4Address: true };\n};\n\n/**\n * Validates a IPV4 address including CIDR.\n */\nexport const ipV4CIDRValidator: ValidatorFn = (\n control: AbstractControl\n): ValidationErrors | null => {\n const v = control.value;\n const valid = v === '' || v?.toString().match(ipv4CIDRRegex);\n return valid ? null : { ipv4Address: true };\n};\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n HostListener,\n inject,\n input,\n Renderer2,\n signal\n} from '@angular/core';\nimport { SI_FORM_ITEM_CONTROL } from '@siemens/element-ng/form';\n\nconst eventMap = new Map<string, 'insert' | 'delete' | 'paste'>([\n ['insertText', 'insert'],\n ['insertFromPaste', 'paste'],\n ['deleteContentBackward', 'delete']\n]);\n\nexport interface AddrInputEvent {\n type?: 'insert' | 'delete' | 'paste';\n pos: number;\n change: string | null;\n value?: string | null;\n previous?: string | null;\n}\n\n/**\n * Base directive for ip address input fields.\n */\n@Directive({\n providers: [\n {\n provide: SI_FORM_ITEM_CONTROL,\n useExisting: SiIpInputDirective\n }\n ],\n host: {\n '[id]': 'id()',\n '[disabled]': 'disabled() || null'\n }\n})\nexport abstract class SiIpInputDirective {\n private static idCounter = 0;\n protected readonly elementRef = inject(ElementRef<HTMLInputElement>);\n protected readonly renderer = inject(Renderer2);\n protected readonly inputEl = this.elementRef.nativeElement;\n\n /**\n * @defaultValue\n * ```\n * `si-ip-input-${SiIpInputDirective.idCounter++}`\n * ```\n */\n readonly id = input(`si-ip-input-${SiIpInputDirective.idCounter++}`);\n\n /**\n * Enable CIDR (Classless Inter-Domain Routing) notation.\n * @defaultValue false\n */\n readonly cidr = input(false, { transform: booleanAttribute });\n\n /**\n * Whether the ip address input is disabled.\n * @defaultValue false\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled' });\n\n private readonly disabledNgControl = signal(false);\n protected readonly disabled = computed(() => this.disabledInput() || this.disabledNgControl());\n protected onTouched: () => void = () => {};\n protected onChange: (value: any) => void = () => {};\n protected value?: string | null = '';\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledNgControl.set(isDisabled);\n }\n\n writeValue(value?: string | null): void {\n this.value = value;\n this.renderer.setProperty(this.inputEl, 'value', value ?? '');\n }\n\n @HostListener('input', ['$event'])\n protected onInput(e: InputEvent): void {\n const el = e.target as HTMLInputElement;\n const selStart = el.selectionStart ?? 0;\n const { inputType, data } = e;\n const len = data?.length ?? 0;\n this.maskInput({\n value: el.value,\n type: eventMap.get(inputType),\n change: data,\n pos: selStart - len,\n previous: this.value\n });\n\n this.value = el.value;\n this.onChange(this.value);\n }\n\n @HostListener('blur')\n protected blur(): void {\n this.onTouched();\n }\n\n abstract maskInput(e: AddrInputEvent): void;\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator\n} from '@angular/forms';\n\nimport { splitIpV4Sections } from './address-utils';\nimport { ipV4CIDRValidator, ipV4Validator } from './address-validators';\nimport { AddrInputEvent, SiIpInputDirective } from './si-ip-input.directive';\n\n@Directive({\n selector: 'input[siIpV4]',\n exportAs: 'siIpV4',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiIp4InputDirective,\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: SiIp4InputDirective,\n multi: true\n }\n ]\n})\nexport class SiIp4InputDirective\n extends SiIpInputDirective\n implements ControlValueAccessor, Validator\n{\n validate(control: AbstractControl): ValidationErrors | null {\n return this.cidr() ? ipV4CIDRValidator(control) : ipV4Validator(control);\n }\n\n maskInput(e: AddrInputEvent): void {\n const { value, pos, type } = e;\n const sections = splitIpV4Sections({ type, input: value, pos, cidr: this.cidr() });\n\n this.renderer.setProperty(\n this.inputEl,\n 'value',\n sections\n .splice(0, this.cidr() ? 9 : 7)\n .map(s => s.value)\n .join('')\n );\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { computed, Directive } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator\n} from '@angular/forms';\n\nimport { splitIpV6Sections } from './address-utils';\nimport { ipV6Validator } from './address-validators';\nimport { AddrInputEvent, SiIpInputDirective } from './si-ip-input.directive';\n\n@Directive({\n selector: 'input[siIpV6]',\n exportAs: 'siIpV6',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiIp6InputDirective,\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: SiIp6InputDirective,\n multi: true\n }\n ]\n})\nexport class SiIp6InputDirective\n extends SiIpInputDirective\n implements ControlValueAccessor, Validator\n{\n readonly validatorFn = computed(() =>\n ipV6Validator({ zeroCompression: true, cidr: this.cidr() })\n );\n\n validate(control: AbstractControl): ValidationErrors | null {\n return this.validatorFn()(control);\n }\n\n maskInput(e: AddrInputEvent): void {\n const { value, pos, type } = e;\n if (!value) {\n this.renderer.setProperty(this.inputEl, 'value', '');\n return;\n }\n\n // TODO: Restore cursor position\n const sections = splitIpV6Sections({\n type,\n input: value,\n pos,\n zeroCompression: true,\n cidr: this.cidr()\n });\n this.renderer.setProperty(\n this.inputEl,\n 'value',\n sections\n .splice(0, this.cidr() ? 17 : 15)\n .map(s => s.value)\n .join('')\n );\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-ip4-input.directive';\nexport * from './si-ip6-input.directive';\nexport * from './address-validators';\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-ip-input.mjs","sources":["../../../../projects/element-ng/ip-input/address-utils.ts","../../../../projects/element-ng/ip-input/address-validators.ts","../../../../projects/element-ng/ip-input/si-ip-input.directive.ts","../../../../projects/element-ng/ip-input/si-ip4-input.directive.ts","../../../../projects/element-ng/ip-input/si-ip6-input.directive.ts","../../../../projects/element-ng/ip-input/index.ts","../../../../projects/element-ng/ip-input/siemens-element-ng-ip-input.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport interface Section {\n value: string;\n current?: boolean;\n /** Indicate this is a network mask. */\n mask?: boolean;\n}\n\nexport interface Ip4SplitOptions {\n type?: 'insert' | 'delete' | 'paste';\n input?: string | null;\n pos?: number;\n cidr?: boolean;\n}\n\nexport interface Ip6SplitOptions {\n type?: 'insert' | 'delete' | 'paste';\n input?: string | null;\n pos?: number;\n zeroCompression?: boolean;\n cidr?: boolean;\n}\n\nconst isDigit = (c: string): boolean => c >= '0' && c <= '9';\nconst isHex = (c: string): boolean => (c >= '0' && c <= '9') || (c >= 'A' && c <= 'F');\n\n/**\n * Parse IPv4 input string into IPv4 address section array.\n */\nexport const splitIpV4Sections = (options: Ip4SplitOptions): Section[] => {\n const { input, pos, cidr } = options;\n const sections: Section[] = [{ value: '' }];\n if (!input) {\n return sections;\n }\n let maxDots = 3;\n for (let i = 0; i < input.length; i++) {\n const c = input.charAt(i);\n if (isDigit(c)) {\n sections.at(-1)!.value += c;\n } else if (c === '.' && maxDots > 0) {\n maxDots--;\n sections.push({ value: c }, { value: '' });\n } else if (cidr && c === '/') {\n sections.push({ value: c }, { value: '', mask: true });\n }\n if (pos === i) {\n sections.at(-1)!.current = true;\n }\n }\n\n // Trim empty sections for example the user entered ..\n let previousDivider = false;\n for (let i = 0; i < sections.length; i += 2) {\n const isDivider = sections.at(i)?.value === '' && sections.at(i + 1)?.value === '.';\n if (previousDivider && isDivider) {\n sections.splice(i, 2);\n }\n previousDivider = isDivider;\n }\n\n // Split values > 255 in multiple sections:\n // - 256 will be split into 25 and 6\n // - 255255255 will be split into 255, 255 and 255\n for (let i = 0; i < sections.length; i++) {\n const { value, current } = sections[i];\n if (value.length >= 3 && parseInt(value, 10) > 255) {\n const append: Section[] = [];\n let n = '';\n for (const c of value) {\n if (parseInt(n + c, 10) > 255) {\n append.push({ value: n }, { value: '.' });\n n = c;\n } else {\n n += c;\n }\n }\n if (n.length > 0) {\n append.push({ value: n });\n }\n sections.splice(i, 1, ...append);\n if (current) {\n sections[i + append.length - 1].current = true;\n }\n }\n }\n\n // Split leading zero sections:\n // Assume a string starting by 0 e.g. 012 will be split into 0 and 12\n for (let i = 0; i < sections.length; i++) {\n const sec = sections[i];\n if (sec.value.length > 1 && sec.value.startsWith('0')) {\n sections.splice(i, 1, { value: '0' }, { value: sec.value.substring(1) });\n }\n }\n\n // Ensure the that the CIDR divider is a slash\n if (cidr) {\n const startCidr = 7;\n if (startCidr < sections.length && sections[startCidr].value === '.') {\n sections[startCidr].value = '/';\n }\n const prefixPos = startCidr + 1;\n if (prefixPos < sections.length) {\n const prefixLength = sections[prefixPos].value;\n if (parseInt(prefixLength, 10) > 32) {\n sections[prefixPos].value = prefixLength.substring(0, 2);\n }\n }\n }\n\n return sections;\n};\n\nexport const splitIpV6Sections = (options: Ip6SplitOptions): Section[] => {\n const { type, input, pos, zeroCompression, cidr } = options;\n const sections: Section[] = [{ value: '' }];\n if (!input) {\n return sections;\n }\n\n for (let i = 0; i < input.length; i++) {\n const c = input.charAt(i).toUpperCase();\n if (isHex(c)) {\n sections.at(-1)!.value += c;\n } else if (c === ':') {\n if (input.charAt(i - 1) === c) {\n // Merge :: characters\n sections.at(-2)!.value += c;\n } else {\n sections.push({ value: c }, { value: '' });\n }\n } else if (cidr && c === '/') {\n sections.push({ value: c }, { value: '', mask: true });\n }\n if (pos === i) {\n sections.at(-1)!.current = true;\n }\n }\n\n // Split values > FFFF in multiple sections:\n // - 1FFFF will be split into 1FFF and F\n for (let i = 0; i < sections.length; i++) {\n const { value, current } = sections[i];\n if (value.length > 4) {\n const append: Section[] = [];\n for (let p = 0; p < value.length; p += 4) {\n const part = value.substring(p, p + 4);\n append.push({ value: part });\n if (part.length === 4) {\n append.push({ value: ':' });\n }\n }\n\n sections.splice(i, 1, ...append);\n if (current) {\n sections[i + append.length - 1].current = true;\n }\n }\n }\n\n // Drop invalid zero compression indicators '::'\n const removeEnd = pos === input.length - 1 || type === 'paste';\n let matches = sections.filter(s => s.value.startsWith('::'));\n if (matches) {\n matches = removeEnd ? matches : matches.reverse();\n if (zeroCompression) {\n matches.shift();\n }\n // Only allow one occurrence of ::\n for (const drop of matches) {\n drop.value = drop.value.substring(1);\n }\n }\n\n // Ensure the that the CIDR divider is a slash\n if (cidr) {\n const startCidr = matches.length > 0 ? 13 : 15;\n if (startCidr < sections.length && sections[startCidr].value === ':') {\n sections[startCidr].value = '/';\n }\n const prefixPos = startCidr + 1;\n if (prefixPos < sections.length) {\n const prefixLength = sections[prefixPos].value;\n if (parseInt(prefixLength, 10) > 128) {\n sections[prefixPos].value = prefixLength.substring(0, 2);\n }\n }\n }\n\n return sections;\n};\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nconst ipv4Regex =\n /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;\n\nconst ipv4CIDRRegex =\n /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\/([1-9]|1[0-9]|2[0-9]|3[0-2]))$/;\n\n// Matches 1:2:3:4:5:6:7:8\nconst ipV6Regex = /^(([0-9A-Fa-f]{1,4}:){7})([0-9A-Fa-f]{1,4})$/;\n\n// Matches range from 1:2:3:4:5:6:7:8/1 to 1:2:3:4:5:6:7:8/128\nconst ipV6CIDRRegex =\n /^(([0-9A-Fa-f]{1,4}:){7})([0-9A-Fa-f]{1,4})\\/([1-9]|[1-9][0-9]|10[0-9]|11[0-9]|12[0-8])$/;\n\n// Matches\n// 1:2:3:4:5:6:7:8\n// 1:: (1:0:0:0:0:0:0:0)\n// 1:2:3:4:5:6:7:: (1:2:3:4:5:6:7:0)\n// 1::8 (1:0:0:0:0:0:0:8)\n// 1:2:3:4:5:6::8 (1:2:3:4:5:6:0:8)\n// 1::7:8 (1:0:0:0:0:0:7:8)\n// 1:2:3:4:5::7:8 (1:2:3:4:5:0:7:8)\n// ...\nconst ipV6ZeroCompressionRegex =\n /^(([0-9A-Fa-f]{1,4}:){7})([0-9A-Fa-f]{1,4})|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)$/;\n\nconst ipV6ZeroCompressionCIDRRegex =\n /^((([0-9A-Fa-f]{1,4}:){7})([0-9A-Fa-f]{1,4})|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([1-9]|[1-9][0-9]|10[0-9]|11[0-9]|12[0-8])$/;\n\n/**\n * Validator factory for a IPV6 address.\n\n */\nexport const ipV6Validator = (options: {\n zeroCompression?: boolean;\n cidr?: boolean;\n}): ValidatorFn => {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value;\n let valid: boolean | RegExpMatchArray | null | undefined;\n if (options.cidr && options.zeroCompression) {\n valid = value === '' || value?.match(ipV6ZeroCompressionCIDRRegex);\n } else if (options.cidr) {\n valid = value === '' || value?.match(ipV6CIDRRegex);\n } else if (options.zeroCompression) {\n valid =\n (value === '' || value?.toString().match(ipV6ZeroCompressionRegex)) &&\n value?.split('::').length <= 2;\n } else {\n valid = value === '' || value?.toString().match(ipV6Regex);\n }\n return valid ? null : { ipv6Address: true };\n };\n};\n\n/**\n * Validates a IPV4 address.\n */\nexport const ipV4Validator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const v = control.value;\n const valid = v === '' || v?.toString().match(ipv4Regex);\n return valid ? null : { ipv4Address: true };\n};\n\n/**\n * Validates a IPV4 address including CIDR.\n */\nexport const ipV4CIDRValidator: ValidatorFn = (\n control: AbstractControl\n): ValidationErrors | null => {\n const v = control.value;\n const valid = v === '' || v?.toString().match(ipv4CIDRRegex);\n return valid ? null : { ipv4Address: true };\n};\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n HostListener,\n inject,\n input,\n Renderer2,\n signal\n} from '@angular/core';\nimport { SI_FORM_ITEM_CONTROL } from '@siemens/element-ng/form';\n\nconst eventMap = new Map<string, 'insert' | 'delete' | 'paste'>([\n ['insertText', 'insert'],\n ['insertFromPaste', 'paste'],\n ['deleteContentBackward', 'delete']\n]);\n\nexport interface AddrInputEvent {\n type?: 'insert' | 'delete' | 'paste';\n pos: number;\n change: string | null;\n value?: string | null;\n previous?: string | null;\n}\n\n/**\n * Base directive for ip address input fields.\n */\n@Directive({\n providers: [\n {\n provide: SI_FORM_ITEM_CONTROL,\n useExisting: SiIpInputDirective\n }\n ],\n host: {\n '[id]': 'id()',\n '[disabled]': 'disabled() || null'\n }\n})\nexport abstract class SiIpInputDirective {\n private static idCounter = 0;\n protected readonly elementRef = inject(ElementRef<HTMLInputElement>);\n protected readonly renderer = inject(Renderer2);\n protected readonly inputEl = this.elementRef.nativeElement;\n\n /**\n * @defaultValue\n * ```\n * `si-ip-input-${SiIpInputDirective.idCounter++}`\n * ```\n */\n readonly id = input(`si-ip-input-${SiIpInputDirective.idCounter++}`);\n\n /**\n * Enable CIDR (Classless Inter-Domain Routing) notation.\n * @defaultValue false\n */\n readonly cidr = input(false, { transform: booleanAttribute });\n\n /**\n * Whether the ip address input is disabled.\n * @defaultValue false\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled' });\n\n private readonly disabledNgControl = signal(false);\n protected readonly disabled = computed(() => this.disabledInput() || this.disabledNgControl());\n protected onTouched: () => void = () => {};\n protected onChange: (value: any) => void = () => {};\n protected value?: string | null = '';\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledNgControl.set(isDisabled);\n }\n\n writeValue(value?: string | null): void {\n this.value = value;\n this.renderer.setProperty(this.inputEl, 'value', value ?? '');\n }\n\n @HostListener('input', ['$event'])\n protected onInput(e: InputEvent): void {\n const el = e.target as HTMLInputElement;\n const selStart = el.selectionStart ?? 0;\n const { inputType, data } = e;\n const len = data?.length ?? 0;\n this.maskInput({\n value: el.value,\n type: eventMap.get(inputType),\n change: data,\n pos: selStart - len,\n previous: this.value\n });\n\n this.value = el.value;\n this.onChange(this.value);\n }\n\n @HostListener('blur')\n protected blur(): void {\n this.onTouched();\n }\n\n abstract maskInput(e: AddrInputEvent): void;\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator\n} from '@angular/forms';\n\nimport { splitIpV4Sections } from './address-utils';\nimport { ipV4CIDRValidator, ipV4Validator } from './address-validators';\nimport { AddrInputEvent, SiIpInputDirective } from './si-ip-input.directive';\n\n@Directive({\n selector: 'input[siIpV4]',\n exportAs: 'siIpV4',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiIp4InputDirective,\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: SiIp4InputDirective,\n multi: true\n }\n ]\n})\nexport class SiIp4InputDirective\n extends SiIpInputDirective\n implements ControlValueAccessor, Validator\n{\n validate(control: AbstractControl): ValidationErrors | null {\n return this.cidr() ? ipV4CIDRValidator(control) : ipV4Validator(control);\n }\n\n maskInput(e: AddrInputEvent): void {\n const { value, pos, type } = e;\n const sections = splitIpV4Sections({ type, input: value, pos, cidr: this.cidr() });\n\n this.renderer.setProperty(\n this.inputEl,\n 'value',\n sections\n .splice(0, this.cidr() ? 9 : 7)\n .map(s => s.value)\n .join('')\n );\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { computed, Directive } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator\n} from '@angular/forms';\n\nimport { splitIpV6Sections } from './address-utils';\nimport { ipV6Validator } from './address-validators';\nimport { AddrInputEvent, SiIpInputDirective } from './si-ip-input.directive';\n\n@Directive({\n selector: 'input[siIpV6]',\n exportAs: 'siIpV6',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiIp6InputDirective,\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: SiIp6InputDirective,\n multi: true\n }\n ]\n})\nexport class SiIp6InputDirective\n extends SiIpInputDirective\n implements ControlValueAccessor, Validator\n{\n readonly validatorFn = computed(() =>\n ipV6Validator({ zeroCompression: true, cidr: this.cidr() })\n );\n\n validate(control: AbstractControl): ValidationErrors | null {\n return this.validatorFn()(control);\n }\n\n maskInput(e: AddrInputEvent): void {\n const { value, pos, type } = e;\n if (!value) {\n this.renderer.setProperty(this.inputEl, 'value', '');\n return;\n }\n\n // TODO: Restore cursor position\n const sections = splitIpV6Sections({\n type,\n input: value,\n pos,\n zeroCompression: true,\n cidr: this.cidr()\n });\n this.renderer.setProperty(\n this.inputEl,\n 'value',\n sections\n .splice(0, this.cidr() ? 17 : 15)\n .map(s => s.value)\n .join('')\n );\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-ip4-input.directive';\nexport * from './si-ip6-input.directive';\nexport * from './address-validators';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
+ import { SiCopyrightNoticeComponent } from '@siemens/element-ng/copyright-notice';
4
+ import { SiInlineNotificationComponent } from '@siemens/element-ng/inline-notification';
5
+ import { SiLanguageSwitcherComponent } from '@siemens/element-ng/language-switcher';
6
+ import { SiLinkDirective } from '@siemens/element-ng/link';
7
+ import * as i1 from '@siemens/element-translate-ng/translate';
8
+ import { SiTranslateModule } from '@siemens/element-translate-ng/translate';
9
+
10
+ /**
11
+ * Copyright (c) Siemens 2016 - 2025
12
+ * SPDX-License-Identifier: MIT
13
+ */
14
+ class SiLandingPageComponent {
15
+ /**
16
+ * Heading of the application.
17
+ */
18
+ heading = input.required();
19
+ /**
20
+ * Secondary heading of the application.
21
+ */
22
+ subheading = input();
23
+ /**
24
+ * Short description of the application.
25
+ */
26
+ subtitle = input.required();
27
+ /**
28
+ * List of links (e.g. Corporate information)
29
+ *
30
+ * @defaultValue []
31
+ */
32
+ links = input([]);
33
+ /**
34
+ * URL to custom background image
35
+ *
36
+ * @defaultValue './assets/images/landing-page-steel.webp'
37
+ */
38
+ backgroundImageUrl = input('./assets/images/landing-page-steel.webp');
39
+ /**
40
+ * URL to custom brand image.
41
+ *
42
+ * @deprecated By default the logo provided in the theme will be used.
43
+ * For a different logo use the respective CSS variables:
44
+ * ```html
45
+ * <si-landing-page style="--landing-page-logo: url('https://example.com'); --landing-page-logo-width: 100px; --landing-page-logo-height: 100px" />
46
+ * ```
47
+ */
48
+ logoUrl = input();
49
+ /**
50
+ * Input of si-language-switcher: Key for translation.
51
+ * If your languages are already translated, you may display them without any
52
+ * manipulation by passing in an empty string.
53
+ *
54
+ * @defaultValue 'LANGUAGE'
55
+ */
56
+ translationKey = input('LANGUAGE');
57
+ /**
58
+ * Input of si-language-switcher: List of all available languages in this
59
+ * application.
60
+ */
61
+ availableLanguages = input();
62
+ /**
63
+ *
64
+ * Config to enable/disable general alerts on landing page
65
+ */
66
+ announcement = input();
67
+ /**
68
+ *
69
+ * Config to enable/disable login related error/alerts
70
+ */
71
+ loginAlert = input();
72
+ /**
73
+ * Version of the application
74
+ */
75
+ version = input();
76
+ /**
77
+ * Copyright information to be displayed. Alternatively, you can use the {@link SI_COPYRIGHT_DETAILS} global inject.
78
+ */
79
+ copyrightDetails = input();
80
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLandingPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
81
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiLandingPageComponent, isStandalone: true, selector: "si-landing-page", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: true, transformFunction: null }, subheading: { classPropertyName: "subheading", publicName: "subheading", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: true, transformFunction: null }, links: { classPropertyName: "links", publicName: "links", isSignal: true, isRequired: false, transformFunction: null }, backgroundImageUrl: { classPropertyName: "backgroundImageUrl", publicName: "backgroundImageUrl", isSignal: true, isRequired: false, transformFunction: null }, logoUrl: { classPropertyName: "logoUrl", publicName: "logoUrl", isSignal: true, isRequired: false, transformFunction: null }, translationKey: { classPropertyName: "translationKey", publicName: "translationKey", isSignal: true, isRequired: false, transformFunction: null }, availableLanguages: { classPropertyName: "availableLanguages", publicName: "availableLanguages", isSignal: true, isRequired: false, transformFunction: null }, announcement: { classPropertyName: "announcement", publicName: "announcement", isSignal: true, isRequired: false, transformFunction: null }, loginAlert: { classPropertyName: "loginAlert", publicName: "loginAlert", isSignal: true, isRequired: false, transformFunction: null }, version: { classPropertyName: "version", publicName: "version", isSignal: true, isRequired: false, transformFunction: null }, copyrightDetails: { classPropertyName: "copyrightDetails", publicName: "copyrightDetails", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@let announcementAlert = announcement();\n@let supportedLanguages = availableLanguages();\n@let loginAlertDetails = loginAlert();\n\n@if (announcementAlert) {\n <si-inline-notification\n class=\"rounded-0\"\n [severity]=\"announcementAlert.severity\"\n [heading]=\"announcementAlert.heading\"\n [message]=\"announcementAlert.message\"\n [action]=\"announcementAlert.action\"\n [translationParams]=\"announcementAlert.translationParams\"\n />\n}\n<div class=\"landing-page\">\n <div\n class=\"landing-page-background d-none d-md-block\"\n [style.background-image]=\"'url(' + backgroundImageUrl() + ')'\"\n >\n </div>\n <div class=\"landing-page-content\">\n <div class=\"d-flex justify-content-between align-items-center pb-9\">\n @if (!logoUrl()) {\n <span role=\"img\" class=\"landing-page-logo\"></span>\n }\n @if (logoUrl()) {\n <img\n class=\"landing-page-logo landing-page-custom-logo\"\n [src]=\"logoUrl()\"\n [alt]=\"heading() + '\\'s Background'\"\n />\n }\n @if (supportedLanguages && supportedLanguages.length > 1) {\n <div class=\"landing-page-language-switcher\">\n <si-language-switcher\n [translationKey]=\"translationKey()\"\n [availableLanguages]=\"supportedLanguages\"\n />\n </div>\n }\n </div>\n <div class=\"landing-page-main\">\n @if (subheading()) {\n <div class=\"si-h2\">{{ subheading() }}</div>\n }\n <h1 class=\"si-h1-black my-2\">{{ heading() }}</h1>\n @if (!loginAlert()) {\n <h2 class=\"mt-10 si-h2\">{{ subtitle() }}</h2>\n }\n @if (loginAlertDetails) {\n <si-inline-notification\n class=\"my-6\"\n [severity]=\"loginAlertDetails.severity || 'danger'\"\n [heading]=\"loginAlertDetails.heading\"\n [message]=\"loginAlertDetails.message\"\n />\n }\n <div class=\"landing-page-custom-content\">\n <ng-content />\n </div>\n </div>\n <footer>\n <div>\n <div class=\"d-flex justify-content-start flex-row flex-wrap mt-6\">\n @for (link of links(); track $index) {\n <span>\n <a siLinkDefaultTarget=\"_blank\" class=\"si-body-2 d-flex-inline me-6\" [siLink]=\"link\">\n {{ link.title | translate }}\n </a>\n </span>\n }\n </div>\n <div class=\"si-caption mt-4 mb-6 text-secondary d-flex flex-wrap\">\n @if (version()) {\n <span class=\"me-6\">{{ version() }}</span>\n }\n <si-copyright-notice [copyright]=\"copyrightDetails()\" />\n </div>\n </div>\n </footer>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;block-size:100%;padding-block-start:calc(var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px))}.landing-page{display:flex;flex-direction:row-reverse;flex-grow:1}.landing-page-background{background-size:cover;background-position:center;inline-size:60%}.landing-page-content{display:flex;flex-direction:column;justify-content:space-between;position:relative;inline-size:40%;background-color:var(--element-base-0);padding-block:32px 32px;padding-inline:96px}.landing-page-logo{block-size:var(--landing-page-logo-height, var(--element-brand-logo-height));inline-size:var(--landing-page-logo-width, var(--element-brand-logo-width));content:var(--landing-page-logo, var(--element-brand-logo))/var(--element-brand-logo-text);box-sizing:content-box}.landing-page-custom-logo{block-size:var(--landing-page-logo-height);inline-size:var(--landing-page-logo-width, 180px);content:none}.landing-page-custom-content{margin-block:16px;margin-inline:0}.landing-page-links a{font-size:12px}footer{color:var(--element-text-secondary);overflow:auto}@media (max-width: 1199.98px){.landing-page-background{padding:64px}.landing-page-content{padding-block:32px 32px;padding-inline:64px}}@media (max-width: 991.98px){.landing-page-background{padding:32px}.landing-page-content{padding-block:32px 32px;padding-inline:32px}}@media (max-width: 767.98px){.landing-page{flex-direction:column}.landing-page-custom-logo{transform:scale(.6);transform-origin:top left}.landing-page-content{inline-size:100%;flex-grow:1;padding:32px}}\n"], dependencies: [{ kind: "component", type: SiCopyrightNoticeComponent, selector: "si-copyright-notice", inputs: ["copyright"] }, { kind: "component", type: SiLanguageSwitcherComponent, selector: "si-language-switcher", inputs: ["translationKey", "languageSwitcherLabel", "availableLanguages"] }, { kind: "directive", type: SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "component", type: SiInlineNotificationComponent, selector: "si-inline-notification", inputs: ["severity", "heading", "message", "action", "translationParams", "embedded"] }, { kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
82
+ }
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLandingPageComponent, decorators: [{
84
+ type: Component,
85
+ args: [{ selector: 'si-landing-page', imports: [
86
+ SiCopyrightNoticeComponent,
87
+ SiLanguageSwitcherComponent,
88
+ SiLinkDirective,
89
+ SiInlineNotificationComponent,
90
+ SiTranslateModule
91
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@let announcementAlert = announcement();\n@let supportedLanguages = availableLanguages();\n@let loginAlertDetails = loginAlert();\n\n@if (announcementAlert) {\n <si-inline-notification\n class=\"rounded-0\"\n [severity]=\"announcementAlert.severity\"\n [heading]=\"announcementAlert.heading\"\n [message]=\"announcementAlert.message\"\n [action]=\"announcementAlert.action\"\n [translationParams]=\"announcementAlert.translationParams\"\n />\n}\n<div class=\"landing-page\">\n <div\n class=\"landing-page-background d-none d-md-block\"\n [style.background-image]=\"'url(' + backgroundImageUrl() + ')'\"\n >\n </div>\n <div class=\"landing-page-content\">\n <div class=\"d-flex justify-content-between align-items-center pb-9\">\n @if (!logoUrl()) {\n <span role=\"img\" class=\"landing-page-logo\"></span>\n }\n @if (logoUrl()) {\n <img\n class=\"landing-page-logo landing-page-custom-logo\"\n [src]=\"logoUrl()\"\n [alt]=\"heading() + '\\'s Background'\"\n />\n }\n @if (supportedLanguages && supportedLanguages.length > 1) {\n <div class=\"landing-page-language-switcher\">\n <si-language-switcher\n [translationKey]=\"translationKey()\"\n [availableLanguages]=\"supportedLanguages\"\n />\n </div>\n }\n </div>\n <div class=\"landing-page-main\">\n @if (subheading()) {\n <div class=\"si-h2\">{{ subheading() }}</div>\n }\n <h1 class=\"si-h1-black my-2\">{{ heading() }}</h1>\n @if (!loginAlert()) {\n <h2 class=\"mt-10 si-h2\">{{ subtitle() }}</h2>\n }\n @if (loginAlertDetails) {\n <si-inline-notification\n class=\"my-6\"\n [severity]=\"loginAlertDetails.severity || 'danger'\"\n [heading]=\"loginAlertDetails.heading\"\n [message]=\"loginAlertDetails.message\"\n />\n }\n <div class=\"landing-page-custom-content\">\n <ng-content />\n </div>\n </div>\n <footer>\n <div>\n <div class=\"d-flex justify-content-start flex-row flex-wrap mt-6\">\n @for (link of links(); track $index) {\n <span>\n <a siLinkDefaultTarget=\"_blank\" class=\"si-body-2 d-flex-inline me-6\" [siLink]=\"link\">\n {{ link.title | translate }}\n </a>\n </span>\n }\n </div>\n <div class=\"si-caption mt-4 mb-6 text-secondary d-flex flex-wrap\">\n @if (version()) {\n <span class=\"me-6\">{{ version() }}</span>\n }\n <si-copyright-notice [copyright]=\"copyrightDetails()\" />\n </div>\n </div>\n </footer>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;block-size:100%;padding-block-start:calc(var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px))}.landing-page{display:flex;flex-direction:row-reverse;flex-grow:1}.landing-page-background{background-size:cover;background-position:center;inline-size:60%}.landing-page-content{display:flex;flex-direction:column;justify-content:space-between;position:relative;inline-size:40%;background-color:var(--element-base-0);padding-block:32px 32px;padding-inline:96px}.landing-page-logo{block-size:var(--landing-page-logo-height, var(--element-brand-logo-height));inline-size:var(--landing-page-logo-width, var(--element-brand-logo-width));content:var(--landing-page-logo, var(--element-brand-logo))/var(--element-brand-logo-text);box-sizing:content-box}.landing-page-custom-logo{block-size:var(--landing-page-logo-height);inline-size:var(--landing-page-logo-width, 180px);content:none}.landing-page-custom-content{margin-block:16px;margin-inline:0}.landing-page-links a{font-size:12px}footer{color:var(--element-text-secondary);overflow:auto}@media (max-width: 1199.98px){.landing-page-background{padding:64px}.landing-page-content{padding-block:32px 32px;padding-inline:64px}}@media (max-width: 991.98px){.landing-page-background{padding:32px}.landing-page-content{padding-block:32px 32px;padding-inline:32px}}@media (max-width: 767.98px){.landing-page{flex-direction:column}.landing-page-custom-logo{transform:scale(.6);transform-origin:top left}.landing-page-content{inline-size:100%;flex-grow:1;padding:32px}}\n"] }]
92
+ }] });
93
+
94
+ /**
95
+ * Copyright (c) Siemens 2016 - 2025
96
+ * SPDX-License-Identifier: MIT
97
+ */
98
+ class SiLandingPageModule {
99
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLandingPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
100
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: SiLandingPageModule, imports: [SiLandingPageComponent], exports: [SiLandingPageComponent] });
101
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLandingPageModule, imports: [SiLandingPageComponent] });
102
+ }
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLandingPageModule, decorators: [{
104
+ type: NgModule,
105
+ args: [{
106
+ imports: [SiLandingPageComponent],
107
+ exports: [SiLandingPageComponent]
108
+ }]
109
+ }] });
110
+
111
+ /**
112
+ * Copyright (c) Siemens 2016 - 2025
113
+ * SPDX-License-Identifier: MIT
114
+ */
115
+
116
+ /**
117
+ * Generated bundle index. Do not edit.
118
+ */
119
+
120
+ export { SiLandingPageComponent, SiLandingPageModule };
121
+ //# sourceMappingURL=siemens-element-ng-landing-page.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"siemens-element-ng-landing-page.mjs","sources":["../../../../projects/element-ng/landing-page/si-landing-page.component.ts","../../../../projects/element-ng/landing-page/si-landing-page.component.html","../../../../projects/element-ng/landing-page/si-landing-page.module.ts","../../../../projects/element-ng/landing-page/index.ts","../../../../projects/element-ng/landing-page/siemens-element-ng-landing-page.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { CopyrightDetails, SiCopyrightNoticeComponent } from '@siemens/element-ng/copyright-notice';\nimport { SiInlineNotificationComponent } from '@siemens/element-ng/inline-notification';\nimport {\n IsoLanguageValue,\n SiLanguageSwitcherComponent\n} from '@siemens/element-ng/language-switcher';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { SiTranslateModule } from '@siemens/element-translate-ng/translate';\n\nimport { AlertConfig } from './alert-config.model';\n\n@Component({\n selector: 'si-landing-page',\n imports: [\n SiCopyrightNoticeComponent,\n SiLanguageSwitcherComponent,\n SiLinkDirective,\n SiInlineNotificationComponent,\n SiTranslateModule\n ],\n templateUrl: './si-landing-page.component.html',\n styleUrl: './si-landing-page.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiLandingPageComponent {\n /**\n * Heading of the application.\n */\n readonly heading = input.required<string>();\n /**\n * Secondary heading of the application.\n */\n readonly subheading = input<string>();\n /**\n * Short description of the application.\n */\n readonly subtitle = input.required<string>();\n /**\n * List of links (e.g. Corporate information)\n *\n * @defaultValue []\n */\n readonly links = input<Link[]>([]);\n\n /**\n * URL to custom background image\n *\n * @defaultValue './assets/images/landing-page-steel.webp'\n */\n readonly backgroundImageUrl = input('./assets/images/landing-page-steel.webp');\n\n /**\n * URL to custom brand image.\n *\n * @deprecated By default the logo provided in the theme will be used.\n * For a different logo use the respective CSS variables:\n * ```html\n * <si-landing-page style=\"--landing-page-logo: url('https://example.com'); --landing-page-logo-width: 100px; --landing-page-logo-height: 100px\" />\n * ```\n */\n readonly logoUrl = input<string>();\n\n /**\n * Input of si-language-switcher: Key for translation.\n * If your languages are already translated, you may display them without any\n * manipulation by passing in an empty string.\n *\n * @defaultValue 'LANGUAGE'\n */\n readonly translationKey = input('LANGUAGE');\n /**\n * Input of si-language-switcher: List of all available languages in this\n * application.\n */\n readonly availableLanguages = input<string[] | IsoLanguageValue[]>();\n\n /**\n *\n * Config to enable/disable general alerts on landing page\n */\n readonly announcement = input<AlertConfig>();\n\n /**\n *\n * Config to enable/disable login related error/alerts\n */\n readonly loginAlert = input<AlertConfig>();\n\n /**\n * Version of the application\n */\n readonly version = input<string>();\n\n /**\n * Copyright information to be displayed. Alternatively, you can use the {@link SI_COPYRIGHT_DETAILS} global inject.\n */\n readonly copyrightDetails = input<CopyrightDetails>();\n}\n","@let announcementAlert = announcement();\n@let supportedLanguages = availableLanguages();\n@let loginAlertDetails = loginAlert();\n\n@if (announcementAlert) {\n <si-inline-notification\n class=\"rounded-0\"\n [severity]=\"announcementAlert.severity\"\n [heading]=\"announcementAlert.heading\"\n [message]=\"announcementAlert.message\"\n [action]=\"announcementAlert.action\"\n [translationParams]=\"announcementAlert.translationParams\"\n />\n}\n<div class=\"landing-page\">\n <div\n class=\"landing-page-background d-none d-md-block\"\n [style.background-image]=\"'url(' + backgroundImageUrl() + ')'\"\n >\n </div>\n <div class=\"landing-page-content\">\n <div class=\"d-flex justify-content-between align-items-center pb-9\">\n @if (!logoUrl()) {\n <span role=\"img\" class=\"landing-page-logo\"></span>\n }\n @if (logoUrl()) {\n <img\n class=\"landing-page-logo landing-page-custom-logo\"\n [src]=\"logoUrl()\"\n [alt]=\"heading() + '\\'s Background'\"\n />\n }\n @if (supportedLanguages && supportedLanguages.length > 1) {\n <div class=\"landing-page-language-switcher\">\n <si-language-switcher\n [translationKey]=\"translationKey()\"\n [availableLanguages]=\"supportedLanguages\"\n />\n </div>\n }\n </div>\n <div class=\"landing-page-main\">\n @if (subheading()) {\n <div class=\"si-h2\">{{ subheading() }}</div>\n }\n <h1 class=\"si-h1-black my-2\">{{ heading() }}</h1>\n @if (!loginAlert()) {\n <h2 class=\"mt-10 si-h2\">{{ subtitle() }}</h2>\n }\n @if (loginAlertDetails) {\n <si-inline-notification\n class=\"my-6\"\n [severity]=\"loginAlertDetails.severity || 'danger'\"\n [heading]=\"loginAlertDetails.heading\"\n [message]=\"loginAlertDetails.message\"\n />\n }\n <div class=\"landing-page-custom-content\">\n <ng-content />\n </div>\n </div>\n <footer>\n <div>\n <div class=\"d-flex justify-content-start flex-row flex-wrap mt-6\">\n @for (link of links(); track $index) {\n <span>\n <a siLinkDefaultTarget=\"_blank\" class=\"si-body-2 d-flex-inline me-6\" [siLink]=\"link\">\n {{ link.title | translate }}\n </a>\n </span>\n }\n </div>\n <div class=\"si-caption mt-4 mb-6 text-secondary d-flex flex-wrap\">\n @if (version()) {\n <span class=\"me-6\">{{ version() }}</span>\n }\n <si-copyright-notice [copyright]=\"copyrightDetails()\" />\n </div>\n </div>\n </footer>\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiLandingPageComponent } from './si-landing-page.component';\n\n@NgModule({\n imports: [SiLandingPageComponent],\n exports: [SiLandingPageComponent]\n})\nexport class SiLandingPageModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-landing-page.module';\nexport * from './si-landing-page.component';\nexport * from './alert-config.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, inject, computed, Component, NgModule } from '@angular/core';
3
- import * as i1 from '@siemens/element-translate-ng/translate';
4
- import { SiTranslateService, SiTranslateModule } from '@siemens/element-translate-ng/translate';
2
+ import { input, computed, Component, NgModule } from '@angular/core';
3
+ import { injectSiTranslateService, SiTranslatePipe } from '@siemens/element-translate-ng/translate';
5
4
 
6
5
  /**
7
- * Copyright Siemens 2016 - 2025.
6
+ * Copyright (c) Siemens 2016 - 2025
8
7
  * SPDX-License-Identifier: MIT
9
8
  */
10
9
  class SiLanguageSwitcherComponent {
@@ -30,7 +29,7 @@ class SiLanguageSwitcherComponent {
30
29
  * @defaultValue null
31
30
  */
32
31
  availableLanguages = input(null);
33
- translate = inject(SiTranslateService);
32
+ translate = injectSiTranslateService();
34
33
  availableIsoLanguages = computed(() => {
35
34
  let languages = this.availableLanguages() ?? this.translate.availableLanguages;
36
35
  if (typeof languages[0] !== 'object') {
@@ -53,21 +52,21 @@ class SiLanguageSwitcherComponent {
53
52
  this.translate.setCurrentLanguage(language);
54
53
  }
55
54
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLanguageSwitcherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
56
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiLanguageSwitcherComponent, isStandalone: true, selector: "si-language-switcher", inputs: { translationKey: { classPropertyName: "translationKey", publicName: "translationKey", isSignal: true, isRequired: false, transformFunction: null }, languageSwitcherLabel: { classPropertyName: "languageSwitcherLabel", publicName: "languageSwitcherLabel", isSignal: true, isRequired: false, transformFunction: null }, availableLanguages: { classPropertyName: "availableLanguages", publicName: "availableLanguages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<select\n class=\"si-title-2 language-switcher-select\"\n [attr.aria-label]=\"languageSwitcherLabel() | translate\"\n (change)=\"switchLanguage($event.target)\"\n>\n @for (language of availableIsoLanguages(); track language.value) {\n <option [value]=\"language.value\" [selected]=\"language.value === translate.currentLanguage\">\n {{ language.name | translate }}\n </option>\n }\n</select>\n", styles: [":host{--language-switcher-color: var(--element-text-active)}.language-switcher-select{inline-size:100%;background-color:transparent;border:0;border-block-end:1px solid var(--input-border-color);padding:6px;cursor:pointer;color:var(--language-switcher-color)}@media (min-width: 768px){.language-switcher-select{max-inline-size:200px}}.language-switcher-select option{background-color:var(--element-base-1)}\n"], dependencies: [{ kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }] });
55
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiLanguageSwitcherComponent, isStandalone: true, selector: "si-language-switcher", inputs: { translationKey: { classPropertyName: "translationKey", publicName: "translationKey", isSignal: true, isRequired: false, transformFunction: null }, languageSwitcherLabel: { classPropertyName: "languageSwitcherLabel", publicName: "languageSwitcherLabel", isSignal: true, isRequired: false, transformFunction: null }, availableLanguages: { classPropertyName: "availableLanguages", publicName: "availableLanguages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<select\n class=\"si-title-2 language-switcher-select\"\n [attr.aria-label]=\"languageSwitcherLabel() | translate\"\n (change)=\"switchLanguage($event.target)\"\n>\n @for (language of availableIsoLanguages(); track language.value) {\n <option [value]=\"language.value\" [selected]=\"language.value === translate.currentLanguage\">\n {{ language.name | translate }}\n </option>\n }\n</select>\n", styles: [":host{--language-switcher-color: var(--element-text-active)}.language-switcher-select{inline-size:100%;background-color:transparent;border:0;border-block-end:1px solid var(--input-border-color);padding:6px;cursor:pointer;color:var(--language-switcher-color)}@media (min-width: 768px){.language-switcher-select{max-inline-size:200px}}.language-switcher-select option{background-color:var(--element-base-1)}\n"], dependencies: [{ kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
57
56
  }
58
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLanguageSwitcherComponent, decorators: [{
59
58
  type: Component,
60
- args: [{ selector: 'si-language-switcher', imports: [SiTranslateModule], template: "<select\n class=\"si-title-2 language-switcher-select\"\n [attr.aria-label]=\"languageSwitcherLabel() | translate\"\n (change)=\"switchLanguage($event.target)\"\n>\n @for (language of availableIsoLanguages(); track language.value) {\n <option [value]=\"language.value\" [selected]=\"language.value === translate.currentLanguage\">\n {{ language.name | translate }}\n </option>\n }\n</select>\n", styles: [":host{--language-switcher-color: var(--element-text-active)}.language-switcher-select{inline-size:100%;background-color:transparent;border:0;border-block-end:1px solid var(--input-border-color);padding:6px;cursor:pointer;color:var(--language-switcher-color)}@media (min-width: 768px){.language-switcher-select{max-inline-size:200px}}.language-switcher-select option{background-color:var(--element-base-1)}\n"] }]
59
+ args: [{ selector: 'si-language-switcher', imports: [SiTranslatePipe], template: "<select\n class=\"si-title-2 language-switcher-select\"\n [attr.aria-label]=\"languageSwitcherLabel() | translate\"\n (change)=\"switchLanguage($event.target)\"\n>\n @for (language of availableIsoLanguages(); track language.value) {\n <option [value]=\"language.value\" [selected]=\"language.value === translate.currentLanguage\">\n {{ language.name | translate }}\n </option>\n }\n</select>\n", styles: [":host{--language-switcher-color: var(--element-text-active)}.language-switcher-select{inline-size:100%;background-color:transparent;border:0;border-block-end:1px solid var(--input-border-color);padding:6px;cursor:pointer;color:var(--language-switcher-color)}@media (min-width: 768px){.language-switcher-select{max-inline-size:200px}}.language-switcher-select option{background-color:var(--element-base-1)}\n"] }]
61
60
  }] });
62
61
 
63
62
  /**
64
- * Copyright Siemens 2016 - 2025.
63
+ * Copyright (c) Siemens 2016 - 2025
65
64
  * SPDX-License-Identifier: MIT
66
65
  */
67
66
  class SiLanguageSwitcherModule {
68
67
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLanguageSwitcherModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
69
68
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: SiLanguageSwitcherModule, imports: [SiLanguageSwitcherComponent], exports: [SiLanguageSwitcherComponent] });
70
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLanguageSwitcherModule, imports: [SiLanguageSwitcherComponent] });
69
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLanguageSwitcherModule });
71
70
  }
72
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLanguageSwitcherModule, decorators: [{
73
72
  type: NgModule,
@@ -78,7 +77,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
78
77
  }] });
79
78
 
80
79
  /**
81
- * Copyright Siemens 2016 - 2025.
80
+ * Copyright (c) Siemens 2016 - 2025
82
81
  * SPDX-License-Identifier: MIT
83
82
  */
84
83
 
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-language-switcher.mjs","sources":["../../../../projects/element-ng/language-switcher/si-language-switcher.component.ts","../../../../projects/element-ng/language-switcher/si-language-switcher.component.html","../../../../projects/element-ng/language-switcher/si-language-switcher.module.ts","../../../../projects/element-ng/language-switcher/index.ts","../../../../projects/element-ng/language-switcher/siemens-element-ng-language-switcher.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, inject, input } from '@angular/core';\nimport { SiTranslateModule, SiTranslateService } from '@siemens/element-translate-ng/translate';\n\nimport { IsoLanguageValue } from './iso-language-value';\n\n@Component({\n selector: 'si-language-switcher',\n templateUrl: './si-language-switcher.component.html',\n styleUrl: './si-language-switcher.component.scss',\n imports: [SiTranslateModule]\n})\nexport class SiLanguageSwitcherComponent {\n /**\n * Key for translation.\n * If the key is set to an empty string, the language of the underlying translation framework will not be switched.\n *\n * @defaultValue 'LANGUAGE'\n */\n readonly translationKey = input('LANGUAGE');\n /**\n * Text for aria label for the language selector. Needed for a11y\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_LANGUAGE_SWITCHER.LABEL:Language switcher`\n * ```\n */\n readonly languageSwitcherLabel = input(\n $localize`:@@SI_LANGUAGE_SWITCHER.LABEL:Language switcher`\n );\n\n /**\n * List of all available languages in this application.\n *\n * @defaultValue null\n */\n readonly availableLanguages = input<(string | IsoLanguageValue)[] | null>(null);\n\n protected readonly translate = inject(SiTranslateService);\n\n protected readonly availableIsoLanguages = computed(() => {\n let languages = this.availableLanguages() ?? this.translate.availableLanguages;\n if (typeof languages[0] !== 'object') {\n languages = (languages as string[]).map(languageValue => {\n const translationKey = this.translationKey();\n return {\n value: languageValue,\n name: translationKey ? `${translationKey}.${languageValue.toUpperCase()}` : languageValue\n };\n });\n }\n return languages as IsoLanguageValue[];\n });\n\n protected switchLanguage(target: EventTarget | null): void {\n const language = (target as HTMLSelectElement)?.value;\n const translationKey = this.translationKey();\n if (!language || !translationKey || translationKey.length === 0) {\n return;\n }\n this.translate.setCurrentLanguage(language);\n }\n}\n","<select\n class=\"si-title-2 language-switcher-select\"\n [attr.aria-label]=\"languageSwitcherLabel() | translate\"\n (change)=\"switchLanguage($event.target)\"\n>\n @for (language of availableIsoLanguages(); track language.value) {\n <option [value]=\"language.value\" [selected]=\"language.value === translate.currentLanguage\">\n {{ language.name | translate }}\n </option>\n }\n</select>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiLanguageSwitcherComponent } from './si-language-switcher.component';\n\n@NgModule({\n imports: [SiLanguageSwitcherComponent],\n exports: [SiLanguageSwitcherComponent]\n})\nexport class SiLanguageSwitcherModule {}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-language-switcher.component';\nexport * from './si-language-switcher.module';\nexport * from './iso-language-value';\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-language-switcher.mjs","sources":["../../../../projects/element-ng/language-switcher/si-language-switcher.component.ts","../../../../projects/element-ng/language-switcher/si-language-switcher.component.html","../../../../projects/element-ng/language-switcher/si-language-switcher.module.ts","../../../../projects/element-ng/language-switcher/index.ts","../../../../projects/element-ng/language-switcher/siemens-element-ng-language-switcher.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, input } from '@angular/core';\nimport { injectSiTranslateService, SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { IsoLanguageValue } from './iso-language-value';\n\n@Component({\n selector: 'si-language-switcher',\n imports: [SiTranslatePipe],\n templateUrl: './si-language-switcher.component.html',\n styleUrl: './si-language-switcher.component.scss'\n})\nexport class SiLanguageSwitcherComponent {\n /**\n * Key for translation.\n * If the key is set to an empty string, the language of the underlying translation framework will not be switched.\n *\n * @defaultValue 'LANGUAGE'\n */\n readonly translationKey = input('LANGUAGE');\n /**\n * Text for aria label for the language selector. Needed for a11y\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_LANGUAGE_SWITCHER.LABEL:Language switcher`\n * ```\n */\n readonly languageSwitcherLabel = input(\n $localize`:@@SI_LANGUAGE_SWITCHER.LABEL:Language switcher`\n );\n\n /**\n * List of all available languages in this application.\n *\n * @defaultValue null\n */\n readonly availableLanguages = input<(string | IsoLanguageValue)[] | null>(null);\n\n protected readonly translate = injectSiTranslateService();\n\n protected readonly availableIsoLanguages = computed(() => {\n let languages = this.availableLanguages() ?? this.translate.availableLanguages;\n if (typeof languages[0] !== 'object') {\n languages = (languages as string[]).map(languageValue => {\n const translationKey = this.translationKey();\n return {\n value: languageValue,\n name: translationKey ? `${translationKey}.${languageValue.toUpperCase()}` : languageValue\n };\n });\n }\n return languages as IsoLanguageValue[];\n });\n\n protected switchLanguage(target: EventTarget | null): void {\n const language = (target as HTMLSelectElement)?.value;\n const translationKey = this.translationKey();\n if (!language || !translationKey || translationKey.length === 0) {\n return;\n }\n this.translate.setCurrentLanguage(language);\n }\n}\n","<select\n class=\"si-title-2 language-switcher-select\"\n [attr.aria-label]=\"languageSwitcherLabel() | translate\"\n (change)=\"switchLanguage($event.target)\"\n>\n @for (language of availableIsoLanguages(); track language.value) {\n <option [value]=\"language.value\" [selected]=\"language.value === translate.currentLanguage\">\n {{ language.name | translate }}\n </option>\n }\n</select>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiLanguageSwitcherComponent } from './si-language-switcher.component';\n\n@NgModule({\n imports: [SiLanguageSwitcherComponent],\n exports: [SiLanguageSwitcherComponent]\n})\nexport class SiLanguageSwitcherModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-language-switcher.component';\nexport * from './si-language-switcher.module';\nexport * from './iso-language-value';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -3,11 +3,11 @@ import { Injectable, InjectionToken, input, booleanAttribute, output, signal, co
3
3
  import { Subject } from 'rxjs';
4
4
  import { LocationStrategy } from '@angular/common';
5
5
  import { Router, ActivatedRoute, NavigationEnd } from '@angular/router';
6
- import { SiTranslateService } from '@siemens/element-translate-ng/translate';
6
+ import { injectSiTranslateService } from '@siemens/element-translate-ng/translate';
7
7
  import { takeUntil, filter } from 'rxjs/operators';
8
8
 
9
9
  /**
10
- * Copyright Siemens 2016 - 2025.
10
+ * Copyright (c) Siemens 2016 - 2025
11
11
  * SPDX-License-Identifier: MIT
12
12
  */
13
13
  class SiLinkActionService {
@@ -32,7 +32,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
32
32
  }] });
33
33
 
34
34
  /**
35
- * Copyright Siemens 2016 - 2025.
35
+ * Copyright (c) Siemens 2016 - 2025
36
36
  * SPDX-License-Identifier: MIT
37
37
  */
38
38
  /* eslint-disable @angular-eslint/no-conflicting-lifecycle */
@@ -59,7 +59,7 @@ class SiLinkDirective {
59
59
  router = inject(Router, { optional: true });
60
60
  activatedRoute = inject(ActivatedRoute, { optional: true });
61
61
  locationStrategy = inject(LocationStrategy, { optional: true });
62
- translateService = inject(SiTranslateService);
62
+ translateService = injectSiTranslateService();
63
63
  actionService = inject(SiLinkActionService, { optional: true });
64
64
  defaultNavigationExtra = inject(SI_LINK_DEFAULT_NAVIGATION_EXTRA, { optional: true });
65
65
  get urlTree() {
@@ -204,7 +204,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
204
204
  }] } });
205
205
 
206
206
  /**
207
- * Copyright Siemens 2016 - 2025.
207
+ * Copyright (c) Siemens 2016 - 2025
208
208
  * SPDX-License-Identifier: MIT
209
209
  */
210
210
  class SiLinkModule {
@@ -221,7 +221,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
221
221
  }] });
222
222
 
223
223
  /**
224
- * Copyright Siemens 2016 - 2025.
224
+ * Copyright (c) Siemens 2016 - 2025
225
225
  * SPDX-License-Identifier: MIT
226
226
  */
227
227
 
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-link.mjs","sources":["../../../../projects/element-ng/link/si-link-action.service.ts","../../../../projects/element-ng/link/si-link.directive.ts","../../../../projects/element-ng/link/si-link.module.ts","../../../../projects/element-ng/link/index.ts","../../../../projects/element-ng/link/siemens-element-ng-link.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { Link, LinkAction } from './link.model';\n\n@Injectable()\nexport class SiLinkActionService {\n private actionSubject = new Subject<LinkAction>();\n\n /**\n * Observable which emits the link and param to run the action on.\n *\n * @defaultValue this.actionSubject.asObservable()\n */\n readonly action$ = this.actionSubject.asObservable();\n\n /**\n * Emit a new link and param pair to run the action on.\n */\n emit(link: Link, param: any): void {\n this.actionSubject.next({ link, param });\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\n/* eslint-disable @angular-eslint/no-conflicting-lifecycle */\nimport { LocationStrategy } from '@angular/common';\nimport {\n booleanAttribute,\n computed,\n Directive,\n DoCheck,\n HostListener,\n inject,\n InjectionToken,\n input,\n OnChanges,\n OnDestroy,\n output,\n signal\n} from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, NavigationExtras, Router, UrlTree } from '@angular/router';\nimport { SiTranslateService } from '@siemens/element-translate-ng/translate';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { AriaCurrentType } from './aria-current.model';\nimport { Link } from './link.model';\nimport { SiLinkActionService } from './si-link-action.service';\n\nexport const SI_LINK_DEFAULT_NAVIGATION_EXTRA = new InjectionToken<NavigationExtras>(\n 'SI_LINK_DEFAULT_NAVIGATION_EXTRA'\n);\n\n@Directive({\n selector: '[siLink]',\n exportAs: 'siLink',\n host: {\n '[attr.href]': 'href()',\n '[attr.target]': 'target()',\n '[attr.title]': 'title()',\n '[attr.aria-current]': 'isAriaCurrent()',\n '[class]': 'active() ? activeClass() : null'\n }\n})\nexport class SiLinkDirective implements DoCheck, OnChanges, OnDestroy {\n readonly siLink = input<Link>();\n readonly siLinkDefaultTarget = input<string>();\n readonly actionParam = input<any>();\n readonly activeClass = input<string>();\n /** @defaultValue false */\n readonly exactMatch = input(false, { transform: booleanAttribute });\n /**\n * Type for `aria-current` to set if routerLink is active.\n */\n readonly ariaCurrent = input<AriaCurrentType>();\n\n readonly activeChange = output<boolean>();\n\n protected readonly href = signal<string | undefined>(undefined);\n protected readonly target = signal<string | undefined>(undefined);\n protected readonly title = signal<string | undefined>(undefined);\n protected readonly isAriaCurrent = computed(() =>\n this.active() ? (this.ariaCurrent() ?? 'true') : undefined\n );\n\n /** @defaultValue false */\n readonly active = signal(false);\n\n private readonly destroyer = new Subject<void>();\n\n private router = inject(Router, { optional: true });\n private activatedRoute = inject(ActivatedRoute, { optional: true });\n private locationStrategy = inject(LocationStrategy, { optional: true });\n private translateService = inject(SiTranslateService);\n private actionService = inject(SiLinkActionService, { optional: true });\n private defaultNavigationExtra = inject(SI_LINK_DEFAULT_NAVIGATION_EXTRA, { optional: true });\n\n private get urlTree(): UrlTree {\n const link = this.siLink()!.link;\n return this.router!.createUrlTree(\n Array.isArray(link!) ? link! : [link!],\n this.navigationExtras\n );\n }\n\n private get navigationExtras(): NavigationExtras {\n return {\n relativeTo: this.activatedRoute,\n preserveFragment: true,\n queryParamsHandling: 'merge',\n ...this.defaultNavigationExtra,\n ...this.siLink()!.navigationExtras\n };\n }\n\n ngOnDestroy(): void {\n this.destroyer.next();\n this.destroyer.complete();\n }\n\n ngOnChanges(): void {\n const siLink = this.siLink();\n if (!siLink) {\n this.href.set(undefined);\n return;\n }\n this.destroyer.next();\n\n if (siLink.tooltip) {\n this.translateService\n .translateAsync(siLink.tooltip)\n .pipe(takeUntil(this.destroyer))\n .subscribe(text => this.title.set(text));\n }\n\n if (siLink.action) {\n this.href.set('');\n } else if (siLink.link) {\n this.subscribeRouter();\n } else if (siLink.href) {\n this.href.set(siLink.href);\n this.target.set(siLink.target ?? this.siLinkDefaultTarget());\n } else {\n // In case the siLink has no link, href or action,\n // we remove the href to avoid the mouse pointer.\n this.href.set(undefined);\n }\n }\n\n ngDoCheck(): void {\n // this deep-checks if isActive has changed. It then updates the internal state and emits the event\n // to be symmetric with the router-link case. queueMicroTask avoids \"Expression has changed after it was checked\" errors\n const siLink = this.siLink();\n if (\n siLink &&\n !siLink.link &&\n siLink.isActive !== undefined &&\n this.active() !== siLink.isActive\n ) {\n this.active.set(siLink.isActive);\n queueMicrotask(() => {\n this.activeChange.emit(this.active());\n });\n }\n }\n\n private subscribeRouter(): void {\n if (!this.router || !this.activatedRoute) {\n return;\n }\n\n // Initial check\n this.updateActiveByRouter();\n this.router.events\n .pipe(\n takeUntil(this.destroyer),\n filter(e => e instanceof NavigationEnd)\n )\n .subscribe(() => this.updateActiveByRouter());\n }\n\n private updateActiveByRouter(): void {\n const urlTree = this.urlTree;\n this.active.set(\n this.siLink()!.isActive ??\n this.router!.isActive(\n urlTree,\n this.exactMatch()\n ? {\n queryParams: 'exact',\n matrixParams: 'exact',\n paths: 'exact',\n fragment: 'exact'\n }\n : {\n paths: 'subset',\n queryParams: 'subset',\n fragment: 'ignored',\n matrixParams: 'ignored'\n }\n )\n );\n this.href.set(this.locationStrategy!.prepareExternalUrl(this.router!.serializeUrl(urlTree)));\n }\n\n @HostListener('click', ['$event'])\n onClick(event: any): void {\n const siLink = this.siLink();\n if (siLink?.action) {\n event.preventDefault();\n\n const actionParam = this.actionParam();\n if (typeof siLink.action === 'string') {\n this.actionService?.emit(siLink, this.actionParam());\n } else if (actionParam === undefined) {\n siLink.action();\n } else {\n siLink.action(actionParam);\n }\n return;\n }\n\n // ignore regular links, allow user to open links in new tab or window\n if (\n !siLink ||\n siLink.href ||\n event.button > 0 ||\n event.ctrlKey ||\n event.metaKey ||\n event.shiftKey\n ) {\n return;\n }\n\n event.preventDefault();\n // We have links without any action, href or link. For example grouping navbar items that hold a\n // dropdown with links. That is why we need to check if the link property is set.\n if (siLink.link && this.router) {\n this.router.navigateByUrl(this.urlTree, this.navigationExtras);\n }\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiLinkDirective } from './si-link.directive';\n\n@NgModule({\n imports: [SiLinkDirective],\n exports: [SiLinkDirective]\n})\nexport class SiLinkModule {}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './link.model';\nexport * from './si-link-action.service';\nexport * from './si-link.directive';\nexport * from './si-link.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"siemens-element-ng-link.mjs","sources":["../../../../projects/element-ng/link/si-link-action.service.ts","../../../../projects/element-ng/link/si-link.directive.ts","../../../../projects/element-ng/link/si-link.module.ts","../../../../projects/element-ng/link/index.ts","../../../../projects/element-ng/link/siemens-element-ng-link.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { Link, LinkAction } from './link.model';\n\n@Injectable()\nexport class SiLinkActionService {\n private actionSubject = new Subject<LinkAction>();\n\n /**\n * Observable which emits the link and param to run the action on.\n *\n * @defaultValue this.actionSubject.asObservable()\n */\n readonly action$ = this.actionSubject.asObservable();\n\n /**\n * Emit a new link and param pair to run the action on.\n */\n emit(link: Link, param: any): void {\n this.actionSubject.next({ link, param });\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\n/* eslint-disable @angular-eslint/no-conflicting-lifecycle */\nimport { LocationStrategy } from '@angular/common';\nimport {\n booleanAttribute,\n computed,\n Directive,\n DoCheck,\n HostListener,\n inject,\n InjectionToken,\n input,\n OnChanges,\n OnDestroy,\n output,\n signal\n} from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, NavigationExtras, Router, UrlTree } from '@angular/router';\nimport { injectSiTranslateService } from '@siemens/element-translate-ng/translate';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { AriaCurrentType } from './aria-current.model';\nimport { Link } from './link.model';\nimport { SiLinkActionService } from './si-link-action.service';\n\nexport const SI_LINK_DEFAULT_NAVIGATION_EXTRA = new InjectionToken<NavigationExtras>(\n 'SI_LINK_DEFAULT_NAVIGATION_EXTRA'\n);\n\n@Directive({\n selector: '[siLink]',\n exportAs: 'siLink',\n host: {\n '[attr.href]': 'href()',\n '[attr.target]': 'target()',\n '[attr.title]': 'title()',\n '[attr.aria-current]': 'isAriaCurrent()',\n '[class]': 'active() ? activeClass() : null'\n }\n})\nexport class SiLinkDirective implements DoCheck, OnChanges, OnDestroy {\n readonly siLink = input<Link>();\n readonly siLinkDefaultTarget = input<string>();\n readonly actionParam = input<any>();\n readonly activeClass = input<string>();\n /** @defaultValue false */\n readonly exactMatch = input(false, { transform: booleanAttribute });\n /**\n * Type for `aria-current` to set if routerLink is active.\n */\n readonly ariaCurrent = input<AriaCurrentType>();\n\n readonly activeChange = output<boolean>();\n\n protected readonly href = signal<string | undefined>(undefined);\n protected readonly target = signal<string | undefined>(undefined);\n protected readonly title = signal<string | undefined>(undefined);\n protected readonly isAriaCurrent = computed(() =>\n this.active() ? (this.ariaCurrent() ?? 'true') : undefined\n );\n\n /** @defaultValue false */\n readonly active = signal(false);\n\n private readonly destroyer = new Subject<void>();\n\n private router = inject(Router, { optional: true });\n private activatedRoute = inject(ActivatedRoute, { optional: true });\n private locationStrategy = inject(LocationStrategy, { optional: true });\n private translateService = injectSiTranslateService();\n private actionService = inject(SiLinkActionService, { optional: true });\n private defaultNavigationExtra = inject(SI_LINK_DEFAULT_NAVIGATION_EXTRA, { optional: true });\n\n private get urlTree(): UrlTree {\n const link = this.siLink()!.link;\n return this.router!.createUrlTree(\n Array.isArray(link!) ? link! : [link!],\n this.navigationExtras\n );\n }\n\n private get navigationExtras(): NavigationExtras {\n return {\n relativeTo: this.activatedRoute,\n preserveFragment: true,\n queryParamsHandling: 'merge',\n ...this.defaultNavigationExtra,\n ...this.siLink()!.navigationExtras\n };\n }\n\n ngOnDestroy(): void {\n this.destroyer.next();\n this.destroyer.complete();\n }\n\n ngOnChanges(): void {\n const siLink = this.siLink();\n if (!siLink) {\n this.href.set(undefined);\n return;\n }\n this.destroyer.next();\n\n if (siLink.tooltip) {\n this.translateService\n .translateAsync(siLink.tooltip)\n .pipe(takeUntil(this.destroyer))\n .subscribe(text => this.title.set(text));\n }\n\n if (siLink.action) {\n this.href.set('');\n } else if (siLink.link) {\n this.subscribeRouter();\n } else if (siLink.href) {\n this.href.set(siLink.href);\n this.target.set(siLink.target ?? this.siLinkDefaultTarget());\n } else {\n // In case the siLink has no link, href or action,\n // we remove the href to avoid the mouse pointer.\n this.href.set(undefined);\n }\n }\n\n ngDoCheck(): void {\n // this deep-checks if isActive has changed. It then updates the internal state and emits the event\n // to be symmetric with the router-link case. queueMicroTask avoids \"Expression has changed after it was checked\" errors\n const siLink = this.siLink();\n if (\n siLink &&\n !siLink.link &&\n siLink.isActive !== undefined &&\n this.active() !== siLink.isActive\n ) {\n this.active.set(siLink.isActive);\n queueMicrotask(() => {\n this.activeChange.emit(this.active());\n });\n }\n }\n\n private subscribeRouter(): void {\n if (!this.router || !this.activatedRoute) {\n return;\n }\n\n // Initial check\n this.updateActiveByRouter();\n this.router.events\n .pipe(\n takeUntil(this.destroyer),\n filter(e => e instanceof NavigationEnd)\n )\n .subscribe(() => this.updateActiveByRouter());\n }\n\n private updateActiveByRouter(): void {\n const urlTree = this.urlTree;\n this.active.set(\n this.siLink()!.isActive ??\n this.router!.isActive(\n urlTree,\n this.exactMatch()\n ? {\n queryParams: 'exact',\n matrixParams: 'exact',\n paths: 'exact',\n fragment: 'exact'\n }\n : {\n paths: 'subset',\n queryParams: 'subset',\n fragment: 'ignored',\n matrixParams: 'ignored'\n }\n )\n );\n this.href.set(this.locationStrategy!.prepareExternalUrl(this.router!.serializeUrl(urlTree)));\n }\n\n @HostListener('click', ['$event'])\n onClick(event: any): void {\n const siLink = this.siLink();\n if (siLink?.action) {\n event.preventDefault();\n\n const actionParam = this.actionParam();\n if (typeof siLink.action === 'string') {\n this.actionService?.emit(siLink, this.actionParam());\n } else if (actionParam === undefined) {\n siLink.action();\n } else {\n siLink.action(actionParam);\n }\n return;\n }\n\n // ignore regular links, allow user to open links in new tab or window\n if (\n !siLink ||\n siLink.href ||\n event.button > 0 ||\n event.ctrlKey ||\n event.metaKey ||\n event.shiftKey\n ) {\n return;\n }\n\n event.preventDefault();\n // We have links without any action, href or link. For example grouping navbar items that hold a\n // dropdown with links. That is why we need to check if the link property is set.\n if (siLink.link && this.router) {\n this.router.navigateByUrl(this.urlTree, this.navigationExtras);\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiLinkDirective } from './si-link.directive';\n\n@NgModule({\n imports: [SiLinkDirective],\n exports: [SiLinkDirective]\n})\nexport class SiLinkModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './link.model';\nexport * from './si-link-action.service';\nexport * from './si-link.directive';\nexport * from './si-link.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}