@siemens/element-ng 48.10.0 → 49.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (396) hide show
  1. package/about/package.json +2 -1
  2. package/accordion/package.json +2 -1
  3. package/action-modal/package.json +2 -1
  4. package/ag-grid/package.json +2 -1
  5. package/application-header/package.json +2 -1
  6. package/auto-collapsable-list/package.json +2 -1
  7. package/autocomplete/package.json +2 -1
  8. package/avatar/package.json +2 -1
  9. package/badge/package.json +2 -1
  10. package/breadcrumb/package.json +2 -1
  11. package/breadcrumb-router/package.json +2 -1
  12. package/card/package.json +2 -1
  13. package/chat-messages/package.json +2 -1
  14. package/circle-status/package.json +2 -1
  15. package/color-picker/package.json +2 -1
  16. package/column-selection-dialog/package.json +2 -1
  17. package/common/package.json +2 -1
  18. package/connection-strength/package.json +2 -1
  19. package/content-action-bar/package.json +2 -1
  20. package/copyright-notice/package.json +2 -1
  21. package/dashboard/package.json +2 -1
  22. package/datatable/package.json +2 -1
  23. package/date-range-filter/package.json +2 -1
  24. package/datepicker/package.json +2 -1
  25. package/electron-titlebar/package.json +2 -1
  26. package/empty-state/package.json +2 -1
  27. package/fesm2022/siemens-element-ng-about.mjs +25 -24
  28. package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
  29. package/fesm2022/siemens-element-ng-accordion.mjs +49 -75
  30. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
  31. package/fesm2022/siemens-element-ng-action-modal.mjs +59 -55
  32. package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
  33. package/fesm2022/siemens-element-ng-ag-grid.mjs +33 -37
  34. package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
  35. package/fesm2022/siemens-element-ng-application-header.mjs +122 -150
  36. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  37. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +30 -32
  38. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
  39. package/fesm2022/siemens-element-ng-autocomplete.mjs +34 -48
  40. package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
  41. package/fesm2022/siemens-element-ng-avatar.mjs +23 -24
  42. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  43. package/fesm2022/siemens-element-ng-badge.mjs +6 -6
  44. package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
  45. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +16 -16
  46. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
  47. package/fesm2022/siemens-element-ng-breadcrumb.mjs +18 -17
  48. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  49. package/fesm2022/siemens-element-ng-card.mjs +32 -34
  50. package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
  51. package/fesm2022/siemens-element-ng-chat-messages.mjs +204 -109
  52. package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
  53. package/fesm2022/siemens-element-ng-circle-status.mjs +26 -26
  54. package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
  55. package/fesm2022/siemens-element-ng-color-picker.mjs +18 -17
  56. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
  57. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +36 -35
  58. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
  59. package/fesm2022/siemens-element-ng-common.mjs +13 -38
  60. package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
  61. package/fesm2022/siemens-element-ng-connection-strength.mjs +11 -11
  62. package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
  63. package/fesm2022/siemens-element-ng-content-action-bar.mjs +33 -30
  64. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  65. package/fesm2022/siemens-element-ng-copyright-notice.mjs +13 -13
  66. package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
  67. package/fesm2022/siemens-element-ng-dashboard.mjs +161 -169
  68. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  69. package/fesm2022/siemens-element-ng-datatable.mjs +9 -9
  70. package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
  71. package/fesm2022/siemens-element-ng-date-range-filter.mjs +128 -149
  72. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  73. package/fesm2022/siemens-element-ng-datepicker.mjs +260 -271
  74. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  75. package/fesm2022/siemens-element-ng-electron-titlebar.mjs +19 -18
  76. package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
  77. package/fesm2022/siemens-element-ng-empty-state.mjs +11 -11
  78. package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
  79. package/fesm2022/siemens-element-ng-file-uploader.mjs +66 -69
  80. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  81. package/fesm2022/siemens-element-ng-filter-bar.mjs +23 -23
  82. package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
  83. package/fesm2022/siemens-element-ng-filtered-search.mjs +141 -159
  84. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  85. package/fesm2022/siemens-element-ng-footer.mjs +10 -10
  86. package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
  87. package/fesm2022/siemens-element-ng-form.mjs +99 -85
  88. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  89. package/fesm2022/siemens-element-ng-formly.mjs +96 -94
  90. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  91. package/fesm2022/siemens-element-ng-header-dropdown.mjs +33 -33
  92. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  93. package/fesm2022/siemens-element-ng-help-button.mjs +7 -6
  94. package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
  95. package/fesm2022/siemens-element-ng-icon-status.mjs +4 -4
  96. package/fesm2022/siemens-element-ng-icon.mjs +53 -135
  97. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  98. package/fesm2022/siemens-element-ng-info-page.mjs +11 -12
  99. package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
  100. package/fesm2022/siemens-element-ng-inline-notification.mjs +15 -16
  101. package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
  102. package/fesm2022/siemens-element-ng-ip-input.mjs +16 -16
  103. package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
  104. package/fesm2022/siemens-element-ng-landing-page.mjs +71 -71
  105. package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
  106. package/fesm2022/siemens-element-ng-language-switcher.mjs +13 -13
  107. package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
  108. package/fesm2022/siemens-element-ng-link.mjs +22 -23
  109. package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
  110. package/fesm2022/siemens-element-ng-list-details.mjs +68 -86
  111. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  112. package/fesm2022/siemens-element-ng-loading-spinner.mjs +38 -52
  113. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
  114. package/fesm2022/siemens-element-ng-localization.mjs +14 -11
  115. package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
  116. package/fesm2022/siemens-element-ng-main-detail-container.mjs +30 -30
  117. package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
  118. package/fesm2022/siemens-element-ng-markdown-renderer.mjs +5 -5
  119. package/fesm2022/siemens-element-ng-markdown-renderer.mjs.map +1 -1
  120. package/fesm2022/siemens-element-ng-menu.mjs +55 -54
  121. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  122. package/fesm2022/siemens-element-ng-modal.mjs +10 -13
  123. package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
  124. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +183 -298
  125. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  126. package/fesm2022/siemens-element-ng-navbar.mjs +43 -43
  127. package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
  128. package/fesm2022/siemens-element-ng-notification-item.mjs +14 -13
  129. package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
  130. package/fesm2022/siemens-element-ng-number-input.mjs +32 -32
  131. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  132. package/fesm2022/siemens-element-ng-pagination.mjs +21 -20
  133. package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
  134. package/fesm2022/siemens-element-ng-password-strength.mjs +21 -21
  135. package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
  136. package/fesm2022/siemens-element-ng-password-toggle.mjs +19 -15
  137. package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
  138. package/fesm2022/siemens-element-ng-phone-number.mjs +56 -50
  139. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
  140. package/fesm2022/siemens-element-ng-photo-upload.mjs +48 -47
  141. package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
  142. package/fesm2022/siemens-element-ng-pills-input.mjs +45 -44
  143. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
  144. package/fesm2022/siemens-element-ng-popover-legacy.mjs +31 -31
  145. package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
  146. package/fesm2022/siemens-element-ng-popover.mjs +29 -29
  147. package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
  148. package/fesm2022/siemens-element-ng-progressbar.mjs +15 -15
  149. package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
  150. package/fesm2022/siemens-element-ng-resize-observer.mjs +25 -61
  151. package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
  152. package/fesm2022/siemens-element-ng-result-details-list.mjs +13 -12
  153. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
  154. package/fesm2022/siemens-element-ng-search-bar.mjs +25 -24
  155. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  156. package/fesm2022/siemens-element-ng-select.mjs +204 -347
  157. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  158. package/fesm2022/siemens-element-ng-shadow-root.mjs +3 -3
  159. package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
  160. package/fesm2022/siemens-element-ng-side-panel.mjs +144 -69
  161. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  162. package/fesm2022/siemens-element-ng-skip-links.mjs +13 -13
  163. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
  164. package/fesm2022/siemens-element-ng-slider.mjs +30 -29
  165. package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
  166. package/fesm2022/siemens-element-ng-sort-bar.mjs +14 -13
  167. package/fesm2022/siemens-element-ng-sort-bar.mjs.map +1 -1
  168. package/fesm2022/siemens-element-ng-split.mjs +26 -28
  169. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  170. package/fesm2022/siemens-element-ng-status-bar.mjs +42 -43
  171. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  172. package/fesm2022/siemens-element-ng-status-counter.mjs +11 -12
  173. package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
  174. package/fesm2022/siemens-element-ng-status-toggle.mjs +15 -16
  175. package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
  176. package/fesm2022/siemens-element-ng-summary-chip.mjs +16 -17
  177. package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
  178. package/fesm2022/siemens-element-ng-summary-widget.mjs +16 -16
  179. package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
  180. package/fesm2022/siemens-element-ng-system-banner.mjs +7 -7
  181. package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
  182. package/fesm2022/siemens-element-ng-tabs-legacy.mjs +16 -16
  183. package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
  184. package/fesm2022/siemens-element-ng-tabs.mjs +44 -47
  185. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  186. package/fesm2022/siemens-element-ng-theme.mjs +4 -4
  187. package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
  188. package/fesm2022/siemens-element-ng-threshold.mjs +51 -71
  189. package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
  190. package/fesm2022/siemens-element-ng-toast-notification.mjs +26 -52
  191. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
  192. package/fesm2022/siemens-element-ng-tooltip.mjs +60 -68
  193. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
  194. package/fesm2022/siemens-element-ng-tour.mjs +20 -20
  195. package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
  196. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  197. package/fesm2022/siemens-element-ng-tree-view.mjs +92 -117
  198. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  199. package/fesm2022/siemens-element-ng-typeahead.mjs +46 -62
  200. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  201. package/fesm2022/siemens-element-ng-wizard.mjs +49 -48
  202. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  203. package/file-uploader/package.json +2 -1
  204. package/filter-bar/package.json +2 -1
  205. package/filtered-search/package.json +2 -1
  206. package/footer/package.json +2 -1
  207. package/form/package.json +2 -1
  208. package/formly/package.json +2 -1
  209. package/header-dropdown/package.json +2 -1
  210. package/help-button/package.json +2 -1
  211. package/icon/package.json +2 -1
  212. package/icon-status/package.json +2 -1
  213. package/info-page/package.json +2 -1
  214. package/inline-notification/package.json +2 -1
  215. package/ip-input/package.json +2 -1
  216. package/landing-page/package.json +2 -1
  217. package/language-switcher/package.json +2 -1
  218. package/link/package.json +2 -1
  219. package/list-details/package.json +2 -1
  220. package/loading-spinner/package.json +2 -1
  221. package/localization/package.json +2 -1
  222. package/main-detail-container/package.json +2 -1
  223. package/markdown-renderer/package.json +2 -1
  224. package/menu/package.json +2 -1
  225. package/modal/package.json +2 -1
  226. package/navbar/package.json +2 -1
  227. package/navbar-vertical/package.json +2 -1
  228. package/notification-item/package.json +2 -1
  229. package/number-input/package.json +2 -1
  230. package/package.json +115 -107
  231. package/pagination/package.json +2 -1
  232. package/password-strength/package.json +2 -1
  233. package/password-toggle/package.json +2 -1
  234. package/phone-number/package.json +2 -1
  235. package/photo-upload/package.json +2 -1
  236. package/pills-input/package.json +2 -1
  237. package/popover/package.json +2 -1
  238. package/popover-legacy/package.json +2 -1
  239. package/progressbar/package.json +2 -1
  240. package/resize-observer/package.json +2 -1
  241. package/result-details-list/package.json +2 -1
  242. package/schematics/collection.json +0 -12
  243. package/schematics/migration.json +15 -0
  244. package/schematics/migrations/data/attribute-selectors.js +1 -6
  245. package/schematics/migrations/data/component-names.js +9 -68
  246. package/schematics/migrations/data/element-selectors.js +9 -8
  247. package/schematics/migrations/data/index.js +0 -1
  248. package/schematics/migrations/data/migration-test-data.js +167 -0
  249. package/schematics/migrations/data/output-names.js +1 -7
  250. package/schematics/migrations/data/symbol-removals.js +4 -45
  251. package/schematics/migrations/element-migration/element-migration.js +1 -3
  252. package/schematics/migrations/index.js +15 -5
  253. package/schematics/migrations/ngx-translate/index.js +93 -0
  254. package/schematics/ng-update/index.js +17 -0
  255. package/schematics/ng-update/schema.json +15 -0
  256. package/schematics/simpl-siemens-migration/index.js +1 -5
  257. package/schematics/utils/ts-utils.js +135 -0
  258. package/search-bar/package.json +2 -1
  259. package/select/package.json +2 -1
  260. package/shadow-root/package.json +2 -1
  261. package/side-panel/package.json +2 -1
  262. package/skip-links/package.json +2 -1
  263. package/slider/package.json +2 -1
  264. package/sort-bar/package.json +2 -1
  265. package/split/package.json +2 -1
  266. package/status-bar/package.json +2 -1
  267. package/status-counter/package.json +2 -1
  268. package/status-toggle/package.json +2 -1
  269. package/summary-chip/package.json +2 -1
  270. package/summary-widget/package.json +2 -1
  271. package/system-banner/package.json +2 -1
  272. package/tabs/package.json +2 -1
  273. package/tabs-legacy/package.json +2 -1
  274. package/template-i18n.json +32 -25
  275. package/test-styles.scss +5 -0
  276. package/theme/package.json +2 -1
  277. package/threshold/package.json +2 -1
  278. package/toast-notification/package.json +2 -1
  279. package/tooltip/package.json +2 -1
  280. package/tour/package.json +2 -1
  281. package/translate/package.json +2 -1
  282. package/tree-view/package.json +2 -1
  283. package/typeahead/package.json +2 -1
  284. package/{accordion/index.d.ts → types/siemens-element-ng-accordion.d.ts} +2 -3
  285. package/{application-header/index.d.ts → types/siemens-element-ng-application-header.d.ts} +19 -18
  286. package/{autocomplete/index.d.ts → types/siemens-element-ng-autocomplete.d.ts} +1 -3
  287. package/{breadcrumb/index.d.ts → types/siemens-element-ng-breadcrumb.d.ts} +2 -2
  288. package/{chat-messages/index.d.ts → types/siemens-element-ng-chat-messages.d.ts} +72 -10
  289. package/{common/index.d.ts → types/siemens-element-ng-common.d.ts} +2 -30
  290. package/{content-action-bar/index.d.ts → types/siemens-element-ng-content-action-bar.d.ts} +2 -2
  291. package/{dashboard/index.d.ts → types/siemens-element-ng-dashboard.d.ts} +6 -6
  292. package/{date-range-filter/index.d.ts → types/siemens-element-ng-date-range-filter.d.ts} +28 -27
  293. package/{datepicker/index.d.ts → types/siemens-element-ng-datepicker.d.ts} +5 -6
  294. package/{electron-titlebar/index.d.ts → types/siemens-element-ng-electron-titlebar.d.ts} +4 -4
  295. package/{file-uploader/index.d.ts → types/siemens-element-ng-file-uploader.d.ts} +26 -26
  296. package/{filter-bar/index.d.ts → types/siemens-element-ng-filter-bar.d.ts} +4 -4
  297. package/{filtered-search/index.d.ts → types/siemens-element-ng-filtered-search.d.ts} +6 -21
  298. package/{form/index.d.ts → types/siemens-element-ng-form.d.ts} +4 -6
  299. package/{formly/index.d.ts → types/siemens-element-ng-formly.d.ts} +1 -1
  300. package/types/siemens-element-ng-icon.d.ts +203 -0
  301. package/{landing-page/index.d.ts → types/siemens-element-ng-landing-page.d.ts} +15 -15
  302. package/{language-switcher/index.d.ts → types/siemens-element-ng-language-switcher.d.ts} +1 -2
  303. package/{list-details/index.d.ts → types/siemens-element-ng-list-details.d.ts} +4 -11
  304. package/{loading-spinner/index.d.ts → types/siemens-element-ng-loading-spinner.d.ts} +2 -3
  305. package/{modal/index.d.ts → types/siemens-element-ng-modal.d.ts} +0 -6
  306. package/{navbar-vertical/index.d.ts → types/siemens-element-ng-navbar-vertical.d.ts} +12 -7
  307. package/{navbar/index.d.ts → types/siemens-element-ng-navbar.d.ts} +11 -11
  308. package/{notification-item/index.d.ts → types/siemens-element-ng-notification-item.d.ts} +15 -3
  309. package/{pagination/index.d.ts → types/siemens-element-ng-pagination.d.ts} +4 -4
  310. package/{password-toggle/index.d.ts → types/siemens-element-ng-password-toggle.d.ts} +6 -4
  311. package/{phone-number/index.d.ts → types/siemens-element-ng-phone-number.d.ts} +8 -11
  312. package/{pills-input/index.d.ts → types/siemens-element-ng-pills-input.d.ts} +3 -3
  313. package/{popover/index.d.ts → types/siemens-element-ng-popover.d.ts} +2 -2
  314. package/{resize-observer/index.d.ts → types/siemens-element-ng-resize-observer.d.ts} +0 -30
  315. package/{search-bar/index.d.ts → types/siemens-element-ng-search-bar.d.ts} +2 -2
  316. package/{select/index.d.ts → types/siemens-element-ng-select.d.ts} +18 -97
  317. package/{side-panel/index.d.ts → types/siemens-element-ng-side-panel.d.ts} +26 -5
  318. package/{slider/index.d.ts → types/siemens-element-ng-slider.d.ts} +4 -4
  319. package/{split/index.d.ts → types/siemens-element-ng-split.d.ts} +1 -3
  320. package/{status-bar/index.d.ts → types/siemens-element-ng-status-bar.d.ts} +6 -6
  321. package/{tabs-legacy/index.d.ts → types/siemens-element-ng-tabs-legacy.d.ts} +5 -0
  322. package/{threshold/index.d.ts → types/siemens-element-ng-threshold.d.ts} +7 -7
  323. package/{toast-notification/index.d.ts → types/siemens-element-ng-toast-notification.d.ts} +3 -4
  324. package/{tooltip/index.d.ts → types/siemens-element-ng-tooltip.d.ts} +3 -6
  325. package/{tour/index.d.ts → types/siemens-element-ng-tour.d.ts} +1 -10
  326. package/{translate/index.d.ts → types/siemens-element-ng-translate.d.ts} +8 -1
  327. package/{tree-view/index.d.ts → types/siemens-element-ng-tree-view.d.ts} +0 -1
  328. package/{typeahead/index.d.ts → types/siemens-element-ng-typeahead.d.ts} +0 -2
  329. package/{wizard/index.d.ts → types/siemens-element-ng-wizard.d.ts} +6 -6
  330. package/wizard/package.json +2 -1
  331. package/fesm2022/siemens-element-ng-unauthorized-page.mjs +0 -75
  332. package/fesm2022/siemens-element-ng-unauthorized-page.mjs.map +0 -1
  333. package/icon/index.d.ts +0 -285
  334. package/schematics/migrations/action-modal-migration/action-modal-migration.js +0 -162
  335. package/schematics/migrations/action-modal-migration/action-modal.mappings.js +0 -98
  336. package/schematics/migrations/action-modal-migration/index.js +0 -5
  337. package/schematics/migrations/wizard-migration/index.js +0 -80
  338. package/schematics/scss-import-to-siemens-migration/index.js +0 -101
  339. package/schematics/scss-import-to-siemens-migration/schema.json +0 -16
  340. package/schematics/scss-import-to-siemens-migration/style-mappings.js +0 -62
  341. package/schematics/ts-import-to-siemens-migration/index.js +0 -230
  342. package/schematics/ts-import-to-siemens-migration/mappings/charts-ng-mappings.js +0 -71
  343. package/schematics/ts-import-to-siemens-migration/mappings/dashboards-ng-mappings.js +0 -54
  344. package/schematics/ts-import-to-siemens-migration/mappings/element-ng-mappings.js +0 -705
  345. package/schematics/ts-import-to-siemens-migration/mappings/element-translate-ng-mappings.js +0 -21
  346. package/schematics/ts-import-to-siemens-migration/mappings/index.js +0 -10
  347. package/schematics/ts-import-to-siemens-migration/mappings/maps-ng-mappings.js +0 -47
  348. package/schematics/ts-import-to-siemens-migration/mappings/native-charts-ng-mappings.js +0 -33
  349. package/schematics/ts-import-to-siemens-migration/model.js +0 -4
  350. package/schematics/ts-import-to-siemens-migration/schema.json +0 -16
  351. package/unauthorized-page/index.d.ts +0 -44
  352. package/unauthorized-page/package.json +0 -3
  353. /package/{about/index.d.ts → types/siemens-element-ng-about.d.ts} +0 -0
  354. /package/{action-modal/index.d.ts → types/siemens-element-ng-action-modal.d.ts} +0 -0
  355. /package/{ag-grid/index.d.ts → types/siemens-element-ng-ag-grid.d.ts} +0 -0
  356. /package/{auto-collapsable-list/index.d.ts → types/siemens-element-ng-auto-collapsable-list.d.ts} +0 -0
  357. /package/{avatar/index.d.ts → types/siemens-element-ng-avatar.d.ts} +0 -0
  358. /package/{badge/index.d.ts → types/siemens-element-ng-badge.d.ts} +0 -0
  359. /package/{breadcrumb-router/index.d.ts → types/siemens-element-ng-breadcrumb-router.d.ts} +0 -0
  360. /package/{card/index.d.ts → types/siemens-element-ng-card.d.ts} +0 -0
  361. /package/{circle-status/index.d.ts → types/siemens-element-ng-circle-status.d.ts} +0 -0
  362. /package/{color-picker/index.d.ts → types/siemens-element-ng-color-picker.d.ts} +0 -0
  363. /package/{column-selection-dialog/index.d.ts → types/siemens-element-ng-column-selection-dialog.d.ts} +0 -0
  364. /package/{connection-strength/index.d.ts → types/siemens-element-ng-connection-strength.d.ts} +0 -0
  365. /package/{copyright-notice/index.d.ts → types/siemens-element-ng-copyright-notice.d.ts} +0 -0
  366. /package/{datatable/index.d.ts → types/siemens-element-ng-datatable.d.ts} +0 -0
  367. /package/{empty-state/index.d.ts → types/siemens-element-ng-empty-state.d.ts} +0 -0
  368. /package/{footer/index.d.ts → types/siemens-element-ng-footer.d.ts} +0 -0
  369. /package/{header-dropdown/index.d.ts → types/siemens-element-ng-header-dropdown.d.ts} +0 -0
  370. /package/{help-button/index.d.ts → types/siemens-element-ng-help-button.d.ts} +0 -0
  371. /package/{icon-status/index.d.ts → types/siemens-element-ng-icon-status.d.ts} +0 -0
  372. /package/{info-page/index.d.ts → types/siemens-element-ng-info-page.d.ts} +0 -0
  373. /package/{inline-notification/index.d.ts → types/siemens-element-ng-inline-notification.d.ts} +0 -0
  374. /package/{ip-input/index.d.ts → types/siemens-element-ng-ip-input.d.ts} +0 -0
  375. /package/{link/index.d.ts → types/siemens-element-ng-link.d.ts} +0 -0
  376. /package/{localization/index.d.ts → types/siemens-element-ng-localization.d.ts} +0 -0
  377. /package/{main-detail-container/index.d.ts → types/siemens-element-ng-main-detail-container.d.ts} +0 -0
  378. /package/{markdown-renderer/index.d.ts → types/siemens-element-ng-markdown-renderer.d.ts} +0 -0
  379. /package/{menu/index.d.ts → types/siemens-element-ng-menu.d.ts} +0 -0
  380. /package/{number-input/index.d.ts → types/siemens-element-ng-number-input.d.ts} +0 -0
  381. /package/{password-strength/index.d.ts → types/siemens-element-ng-password-strength.d.ts} +0 -0
  382. /package/{photo-upload/index.d.ts → types/siemens-element-ng-photo-upload.d.ts} +0 -0
  383. /package/{popover-legacy/index.d.ts → types/siemens-element-ng-popover-legacy.d.ts} +0 -0
  384. /package/{progressbar/index.d.ts → types/siemens-element-ng-progressbar.d.ts} +0 -0
  385. /package/{result-details-list/index.d.ts → types/siemens-element-ng-result-details-list.d.ts} +0 -0
  386. /package/{shadow-root/index.d.ts → types/siemens-element-ng-shadow-root.d.ts} +0 -0
  387. /package/{skip-links/index.d.ts → types/siemens-element-ng-skip-links.d.ts} +0 -0
  388. /package/{sort-bar/index.d.ts → types/siemens-element-ng-sort-bar.d.ts} +0 -0
  389. /package/{status-counter/index.d.ts → types/siemens-element-ng-status-counter.d.ts} +0 -0
  390. /package/{status-toggle/index.d.ts → types/siemens-element-ng-status-toggle.d.ts} +0 -0
  391. /package/{summary-chip/index.d.ts → types/siemens-element-ng-summary-chip.d.ts} +0 -0
  392. /package/{summary-widget/index.d.ts → types/siemens-element-ng-summary-widget.d.ts} +0 -0
  393. /package/{system-banner/index.d.ts → types/siemens-element-ng-system-banner.d.ts} +0 -0
  394. /package/{tabs/index.d.ts → types/siemens-element-ng-tabs.d.ts} +0 -0
  395. /package/{theme/index.d.ts → types/siemens-element-ng-theme.d.ts} +0 -0
  396. /package/{index.d.ts → types/siemens-element-ng.d.ts} +0 -0
@@ -1 +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/login-basic/si-login-basic.component.ts","../../../../projects/element-ng/landing-page/login-basic/si-login-basic.component.html","../../../../projects/element-ng/landing-page/login-single-sign-on/si-login-single-sign-on.component.ts","../../../../projects/element-ng/landing-page/login-single-sign-on/si-login-single-sign-on.component.html","../../../../projects/element-ng/landing-page/explicit-legal-acknowledge/si-explicit-legal-acknowledge.component.ts","../../../../projects/element-ng/landing-page/explicit-legal-acknowledge/si-explicit-legal-acknowledge.component.html","../../../../projects/element-ng/landing-page/change-password/si-change-password.component.ts","../../../../projects/element-ng/landing-page/change-password/si-change-password.component.html","../../../../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 { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, TemplateRef, signal } 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 { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { AlertConfig } from './alert-config.model';\nimport { LandingPageWarning } from './si-landing-page.model';\n\n/**\n * A comprehensive landing page component that provides a standardized layout for authentication flows.\n * \n * This component serves as a container for various authentication-related components and provides\n * a consistent layout with support for branding, internationalization, legal acknowledgments,\n * and various notification types. It includes slots for custom content and handles responsive\n * layout adjustments.\n * \n * The component supports:\n * - Custom branding and background images\n * - Multi-language support with language switcher\n * - Legal acknowledgments and terms display\n * - Alert and notification systems\n * - Copyright information display\n * - Responsive layout with full-height section option\n * \n * @example\n * ```html\n * <si-landing-page\n * [heading]=\"appTitle\"\n * [subtitle]=\"appDescription\"\n * [availableLanguages]=\"languages\"\n * [copyrightDetails]=\"copyright\"\n * [announcement]=\"announcementConfig\"\n * [loginAlert]=\"loginErrorConfig\">\n * \n * <si-login-basic\n * (login)=\"handleLogin($event)\"\n * (usernameValidation)=\"validateUsername($event)\">\n * </si-login-basic>\n\n * </si-landing-page>\n * ```\n */\n@Component({\n selector: 'si-landing-page',\n imports: [\n SiCopyrightNoticeComponent,\n SiLanguageSwitcherComponent,\n SiLinkDirective,\n SiInlineNotificationComponent,\n SiTranslatePipe,\n NgTemplateOutlet\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<TranslatableString>();\n /**\n * Secondary heading of the application.\n */\n readonly subheading = input<TranslatableString>();\n /**\n * Short description of the application.\n */\n readonly subtitle = input.required<TranslatableString>();\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 * @defaultValue []\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 * Warning text for Live Data. Can be shown, if there is no legal artifact which needs immediate user attention.\n */\n readonly liveDataWarning = input<LandingPageWarning>();\n /**\n * Text for some legal artifacts (e.g. Terms of Use) that needs more attention before the login.\n */\n readonly implicitLegalAcknowledge = input<string | TemplateRef<unknown>>();\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 * Option to display the landing page content in full height.\n *\n * @defaultValue false\n */\n readonly isFullHeightSection = signal(false);\n}\n","@let announcement = this.announcement();\n@let availableLanguages = this.availableLanguages();\n@let loginAlert = this.loginAlert();\n@let implicitLegalAcknowledge = this.implicitLegalAcknowledge();\n@let liveDataWarning = this.liveDataWarning();\n@let isFullHeightSection = this.isFullHeightSection();\n\n@if (announcement) {\n <si-inline-notification\n class=\"rounded-0\"\n [severity]=\"announcement.severity\"\n [heading]=\"announcement.heading\"\n [message]=\"announcement.message\"\n [action]=\"announcement.action\"\n [translationParams]=\"announcement.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=\"landing-page-content-inner\">\n @if (!isFullHeightSection) {\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 } @else {\n <img\n class=\"landing-page-logo landing-page-custom-logo\"\n [src]=\"logoUrl()\"\n [alt]=\"heading() + '\\'s Background'\"\n />\n }\n @if (availableLanguages.length > 1) {\n <div class=\"landing-page-language-switcher\">\n <si-language-switcher\n [translationKey]=\"translationKey()\"\n [availableLanguages]=\"availableLanguages\"\n />\n </div>\n }\n </div>\n }\n <div class=\"landing-page-main\">\n @if (!isFullHeightSection) {\n @if (subheading()) {\n <div class=\"si-h2\">{{ subheading() | translate }}</div>\n }\n <h1 class=\"si-h1-bold my-2\">{{ heading() | translate }}</h1>\n <div class=\"position-relative\">\n <h2 class=\"mt-10 si-h2\" [class.invisible]=\"loginAlert\">{{ subtitle() | translate }}</h2>\n @if (loginAlert) {\n <si-inline-notification\n class=\"landing-page-alert w-100\"\n [severity]=\"loginAlert.severity || 'danger'\"\n [heading]=\"loginAlert.heading\"\n [message]=\"loginAlert.message\"\n />\n }\n </div>\n }\n <div class=\"landing-page-custom-content\">\n <ng-content />\n @if (!isFullHeightSection) {\n @if (implicitLegalAcknowledge) {\n @if (typeof implicitLegalAcknowledge === 'string') {\n <div class=\"text-secondary mt-8\" [innerHTML]=\"implicitLegalAcknowledge\"></div>\n } @else {\n <div class=\"text-secondary mt-8\">\n <ng-container [ngTemplateOutlet]=\"implicitLegalAcknowledge\" />\n </div>\n }\n }\n @if (liveDataWarning) {\n <div class=\"text-secondary mt-8\">\n <div class=\"si-h5\">{{ liveDataWarning.title | translate }}</div>\n <div class=\"si-body my-4\">{{ liveDataWarning.content | translate }}</div>\n </div>\n }\n }\n </div>\n </div>\n @if (!isFullHeightSection) {\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 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 }\n </div>\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 */\nimport {\n booleanAttribute,\n Component,\n input,\n OnInit,\n output,\n signal,\n DestroyRef,\n inject,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { SiLoadingButtonComponent } from '@siemens/element-ng/loading-spinner';\nimport { SiPasswordToggleComponent } from '@siemens/element-ng/password-toggle';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { UsernamePassword, UsernameValidationPayload } from '../si-landing-page.model';\n\n/**\n * A basic login component that supports both single-step and two-step authentication flows.\n *\n * This component provides a standard login form with username and password fields.\n * It can be configured to work in two-step mode where username validation happens first,\n * followed by password entry.\n *\n * @example\n * ```html\n * <si-login-basic\n * [forgotPasswordLink]=\"forgotPasswordLink\"\n * [registerNowLink]=\"registerNowLink\"\n * [twoStep]=\"true\"\n * [loading]=\"isLoading\"\n * (login)=\"handleLogin($event)\"\n * (usernameValidation)=\"handleUsernameValidation($event)\">\n * </si-login-basic>\n * ```\n */\n@Component({\n selector: 'si-login-basic',\n imports: [\n ReactiveFormsModule,\n SiTranslatePipe,\n SiLinkDirective,\n SiPasswordToggleComponent,\n SiLoadingButtonComponent\n ],\n templateUrl: './si-login-basic.component.html',\n styleUrl: './si-login-basic.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiLoginBasicComponent implements OnInit {\n private static idCounter = 0;\n /**\n * Label for username input field.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.USERNAME:Username`)\n * ```\n */\n readonly usernameLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.USERNAME:Username`));\n /**\n * Label for password input field.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.PASSWORD:Password`)\n * ```\n */\n readonly passwordLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.PASSWORD:Password`));\n /**\n * Config for Forgot Password link.\n */\n readonly forgotPasswordLink = input<Link>();\n /**\n * Text for register now.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.REGISTER_NOW_INTRO:Don't have an account?`)\n * ```\n */\n readonly registerNowIntroText = input(\n t(() => $localize`:@@SI_LOGIN_BASIC.REGISTER_NOW_INTRO:Don't have an account?`)\n );\n /**\n * Config for Register Now link.\n */\n readonly registerNowLink = input<Link>();\n /**\n * Label for login button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.LOGIN:Login`)\n * ```\n */\n readonly loginButtonLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.LOGIN:Login`));\n /**\n * Disables the login button.\n *\n * @defaultValue false\n */\n readonly disableLogin = input(false);\n /**\n * Enables the two-step login flow.\n *\n * @defaultValue false\n */\n readonly twoStep = input(false, { transform: booleanAttribute });\n\n /**\n * Indicates whether the login button should show a loading state.\n *\n * @defaultValue false\n */\n readonly loading = input(false);\n /**\n * Description of back button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.BACK:Back`)\n * ```\n */\n readonly backButtonLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.BACK:Back`));\n /**\n * Description of next button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.NEXT:Next`)\n * ```\n */\n readonly nextButtonLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.NEXT:Next`));\n /**\n * Emits username when user clicks on next button.\n */\n readonly usernameValidation = output<UsernameValidationPayload>();\n /**\n * Emits username and password on value change.\n */\n readonly valueChanged = output<UsernamePassword>();\n /**\n * Emits username and password on login event.\n */\n readonly login = output<UsernamePassword>();\n\n private destroyRef = inject(DestroyRef);\n protected readonly secondStepVisible = signal(false);\n protected readonly loadingNext = signal(false);\n\n private readonly index = SiLoginBasicComponent.idCounter++;\n protected usernameId = `__si-login-basic-username-${this.index}`;\n protected passwordId = `__si-login-basic-password-${this.index}`;\n\n protected loginCredentials = new FormGroup({\n username: new FormControl('', Validators.required),\n password: new FormControl('', Validators.required)\n });\n\n ngOnInit(): void {\n this.loginCredentials.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.handleValueChanges();\n });\n\n this.loginCredentials.controls.username.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.secondStepVisible() && this.goBack());\n }\n\n protected submit(): void {\n if (this.twoStep() && !this.secondStepVisible()) {\n this.validateUsername();\n return;\n }\n this.login.emit(this.getLoginFormValues());\n }\n\n protected handleValueChanges(): void {\n this.valueChanged.emit(this.getLoginFormValues());\n }\n\n protected validateUsername(): void {\n if (this.loginCredentials.controls.username.valid) {\n this.loadingNext.set(true);\n }\n const activateArgs = {\n ...this.getLoginFormValues(),\n validate: (isValid: boolean): void => {\n if (isValid) {\n this.nextStep();\n } else {\n this.loadingNext.set(false);\n this.loginCredentials.controls.username.setErrors({ invalid: true });\n }\n }\n };\n this.usernameValidation.emit(activateArgs);\n }\n\n private getLoginFormValues(): UsernamePassword {\n const { username: username, password } = this.loginCredentials.value;\n return { username: username, password };\n }\n\n protected goBack(): void {\n this.secondStepVisible.set(false);\n this.loginCredentials.controls.password.reset();\n }\n\n private nextStep(): void {\n if (this.twoStep() && !this.secondStepVisible()) {\n this.loadingNext.set(false);\n this.secondStepVisible.set(true);\n }\n }\n}\n","@let forgotPasswordLink = this.forgotPasswordLink();\n@let registerNowLink = this.registerNowLink();\n@let secondStepVisible = this.secondStepVisible();\n\n<form #loginForm [formGroup]=\"loginCredentials\" (ngSubmit)=\"submit()\">\n <div class=\"my-4\">\n <label class=\"form-label\" [for]=\"usernameId\">{{ usernameLabel() | translate }}</label>\n <input type=\"email\" class=\"form-control\" formControlName=\"username\" [id]=\"usernameId\" />\n </div>\n <div class=\"login-basic-second-step--container\" [class.active]=\"!twoStep() || secondStepVisible\">\n <div class=\"login-basic-second-step--content\">\n <div class=\"mb-4\">\n <label class=\"form-label\" [for]=\"passwordId\">{{ passwordLabel() | translate }}</label>\n <si-password-toggle #toggle>\n <input\n class=\"form-control\"\n formControlName=\"password\"\n [id]=\"passwordId\"\n [type]=\"toggle.inputType\"\n />\n </si-password-toggle>\n </div>\n @if (forgotPasswordLink) {\n <a class=\"si-h5 mb-4\" [siLink]=\"forgotPasswordLink\">{{\n forgotPasswordLink.title | translate\n }}</a>\n }\n <div class=\"d-flex align-items-center gap-6 mt-8\">\n @if (twoStep()) {\n <button type=\"button\" class=\"btn btn-secondary w-100\" (click)=\"goBack()\">\n {{ backButtonLabel() | translate }}\n </button>\n }\n <si-loading-button\n type=\"submit\"\n class=\"w-100\"\n buttonClass=\"btn btn-primary\"\n [disabled]=\"disableLogin()\"\n [loading]=\"loading()\"\n >\n {{ loginButtonLabel() | translate }}\n </si-loading-button>\n </div>\n </div>\n </div>\n @if (twoStep()) {\n <div\n class=\"login-basic-next-button--container\"\n [attr.aria-hidden]=\"secondStepVisible\"\n [class.active]=\"!secondStepVisible\"\n >\n <si-loading-button\n class=\"login-basic-next-button w-100\"\n buttonClass=\"btn btn-primary\"\n [loading]=\"loadingNext()\"\n (click)=\"validateUsername()\"\n >\n {{ nextButtonLabel() | translate }}\n </si-loading-button>\n </div>\n }\n</form>\n@if (registerNowLink) {\n <div class=\"si-body mt-8\">\n {{ registerNowIntroText() | translate }}\n <a class=\"si-h5 ms-6\" [siLink]=\"registerNowLink\">{{ registerNowLink.title | translate }}</a>\n </div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\n/**\n * A single sign-on (SSO) login component that provides a button for SSO authentication.\n *\n * This component renders a simple button that users can click to initiate\n * single sign-on authentication flow.\n *\n * @example\n * ```html\n * <si-login-single-sign-on\n * [ssoButtonLabel]=\"customLabel\"\n * [disableSso]=\"isLoading\"\n * (ssoEvent)=\"handleSsoLogin()\">\n * </si-login-single-sign-on>\n * ```\n */\n@Component({\n selector: 'si-login-single-sign-on',\n imports: [SiTranslatePipe],\n templateUrl: './si-login-single-sign-on.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiLoginSingleSignOnComponent {\n /**\n * Label for login button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_SINGLE-SIGN-ON.LOGIN_SIGN_UP:Login / Sign un`)\n * ```\n */\n readonly ssoButtonLabel = input(\n t(() => $localize`:@@SI_LOGIN_SINGLE-SIGN-ON.LOGIN_SIGN_UP:Login / Sign un`)\n );\n /**\n * Disables the sso button.\n *\n * @defaultValue false\n */\n readonly disableSso = input(false);\n /**\n * Emits username and password on login event.\n */\n readonly ssoEvent = output<void>();\n\n protected ssoClick(): void {\n this.ssoEvent.emit();\n }\n}\n","<button\n type=\"button\"\n class=\"btn btn-primary mt-4 w-100\"\n [disabled]=\"disableSso()\"\n (click)=\"ssoClick()\"\n>\n {{ ssoButtonLabel() | translate }}\n</button>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport {\n Component,\n inject,\n input,\n OnInit,\n output,\n OnDestroy,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { SiTranslatePipe, t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiLandingPageComponent } from '../si-landing-page.component';\n\n/**\n * A component for displaying legal agreements that require explicit user acknowledgment.\n *\n * This component provides a standardized interface for presenting legal documents,\n * terms of service, privacy policies, or other agreements that users must\n * explicitly accept before proceeding.\n *\n * @example\n * ```html\n * <si-explicit-legal-acknowledge\n * [heading]=\"agreementTitle\"\n * [subheading]=\"agreementDescription\"\n * [disableAcceptance]=\"isProcessing\"\n * (accept)=\"handleAcceptance()\"\n * (back)=\"handleBack()\">\n * <div>\n * <h3>Terms of Service</h3>\n * <p>Please read and accept our terms before continuing.</p>\n * <ul>\n * <li>Term 1: You agree to ...</li>\n * <li>Term 2: You acknowledge ...</li>\n * </ul>\n * </div>\n * </si-explicit-legal-acknowledge>\n * ```\n */\n@Component({\n selector: 'si-explicit-legal-acknowledge',\n imports: [SiTranslatePipe],\n templateUrl: './si-explicit-legal-acknowledge.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiExplicitLegalAcknowledgeComponent implements OnInit, OnDestroy {\n /**\n * Heading of the agreement.\n */\n readonly heading = input.required<TranslatableString>();\n /**\n * Short description of the agreement.\n */\n readonly subheading = input.required<TranslatableString>();\n /**\n * Label for accept button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_EXPLICIT_LEGAL_ACKNOWLEDGE.ACCEPT:Accept`)\n * ```\n */\n readonly acceptButtonLabel = input(\n t(() => $localize`:@@SI_EXPLICIT_LEGAL_ACKNOWLEDGE.ACCEPT:Accept`)\n );\n /**\n * Description of back button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_EXPLICIT_LEGAL_ACKNOWLEDGE.BACK:Back`)\n * ```\n */\n readonly backButtonLabel = input(t(() => $localize`:@@SI_EXPLICIT_LEGAL_ACKNOWLEDGE.BACK:Back`));\n /**\n * Disables the acceptance button.\n *\n * @defaultValue false\n */\n readonly disableAcceptance = input(false);\n /**\n * Emits end user license agreement on acceptance event.\n */\n readonly accept = output<void>();\n /**\n * Emits on back click.\n */\n readonly back = output<void>();\n /**\n * Reference to the landing page parent component.\n */\n protected landingPage = inject(SiLandingPageComponent, { skipSelf: true, optional: true });\n\n protected handleBack(): void {\n this.back.emit();\n }\n\n protected handleAccept(): void {\n this.accept.emit();\n }\n\n ngOnInit(): void {\n this.landingPage?.isFullHeightSection.set(true);\n }\n\n ngOnDestroy(): void {\n this.landingPage?.isFullHeightSection.set(false);\n }\n}\n","<div class=\"d-flex flex-column py-8 h-100\">\n <h2 class=\"si-h2 mb-4\">{{ heading() | translate }}</h2>\n <div class=\"si-body mb-6\">{{ subheading() | translate }}</div>\n\n <div tabindex=\"0\" class=\"form-control si-body text-secondary flex-grow-1 overflow-auto\">\n <ng-content />\n </div>\n <div class=\"d-flex align-items-center gap-6 mt-6\">\n <button type=\"button\" class=\"btn btn-secondary w-100\" (click)=\"handleBack()\">\n {{ backButtonLabel() | translate }}\n </button>\n <button\n type=\"button\"\n class=\"btn btn-primary w-100\"\n [disabled]=\"disableAcceptance()\"\n (click)=\"handleAccept()\"\n >\n {{ acceptButtonLabel() | translate }}\n </button>\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n input,\n OnInit,\n output,\n TemplateRef,\n OnDestroy,\n inject,\n DestroyRef,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { SiInlineNotificationComponent } from '@siemens/element-ng/inline-notification';\nimport {\n PasswordPolicy,\n SiPasswordStrengthComponent,\n SiPasswordStrengthDirective\n} from '@siemens/element-ng/password-strength';\nimport { SiPasswordToggleComponent } from '@siemens/element-ng/password-toggle';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { AlertConfig } from '../alert-config.model';\nimport { SiLandingPageComponent } from '../si-landing-page.component';\nimport { ChangePassword } from '../si-landing-page.model';\n\n/**\n * A component for changing user passwords with strength validation and policy enforcement.\n *\n * This component provides a form for users to change their password, including\n * password strength indicators, policy validation, and confirmation fields.\n * It supports custom password policies and displays inline notifications for alerts.\n *\n * @example\n * ```html\n * <si-change-password\n * [passwordStrength]=\"passwordPolicy\"\n * [passwordPolicyContent]=\"policyTemplate\"\n * [changePasswordAlert]=\"alertConfig\"\n * (changePasswordRequested)=\"handlePasswordChange($event)\"\n * (back)=\"handleBack()\">\n * </si-change-password>\n * ```\n */\n@Component({\n selector: 'si-change-password',\n imports: [\n ReactiveFormsModule,\n SiTranslatePipe,\n SiPasswordToggleComponent,\n NgTemplateOutlet,\n SiInlineNotificationComponent,\n SiPasswordStrengthComponent,\n SiPasswordStrengthDirective\n ],\n templateUrl: './si-change-password.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiChangePasswordComponent implements OnInit, OnDestroy {\n private static idCounter = 0;\n /**\n * Change password heading.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE_PASSWORD:Change password`)\n * ```\n */\n readonly heading = input(\n t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE_PASSWORD:Change password`)\n );\n /**\n * Short description of the action to perform.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE_FACTORY_PASSWORD:Factory set password must be changed`)\n * ```\n */\n readonly subheading = input(\n t(\n () =>\n $localize`:@@SI_CHANGE_PASSWORD.CHANGE_FACTORY_PASSWORD:Factory set password must be changed`\n )\n );\n /**\n * Label for new password input field.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.NEW_PASSWORD:New password`)\n * ```\n */\n readonly newPasswordLabel = input(\n t(() => $localize`:@@SI_CHANGE_PASSWORD.NEW_PASSWORD:New password`)\n );\n /**\n * Label for confirm password input field.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.CONFIRM_PASSWORD:Confirm password`)\n * ```\n */\n readonly confirmPasswordLabel = input(\n t(() => $localize`:@@SI_CHANGE_PASSWORD.CONFIRM_PASSWORD:Confirm password`)\n );\n /**\n * Label for change password button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE:Change`)\n * ```\n */\n readonly changeButtonLabel = input(t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE:Change`));\n /**\n * Description of back button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.BACK:Back`)\n * ```\n */\n readonly backButtonLabel = input(t(() => $localize`:@@SI_CHANGE_PASSWORD.BACK:Back`));\n /**\n * Disables the change password button.\n *\n * @defaultValue false\n */\n readonly disableChange = input(false);\n /**\n * Title of the password policy.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.PASSWORD_POLICY:Password policy`)\n * ```\n */\n readonly passwordPolicyTitle = input(\n t(() => $localize`:@@SI_CHANGE_PASSWORD.PASSWORD_POLICY:Password policy`)\n );\n /**\n * Description of the password policy requirements.\n */\n readonly passwordPolicyContent = input.required<string | TemplateRef<unknown>>();\n /**\n * Description of the password policy requirements.\n */\n readonly passwordStrength = input.required<PasswordPolicy>();\n /**\n * Config to enable/disable password related error/alerts.\n */\n readonly changePasswordAlert = input<AlertConfig>();\n /**\n * Emits password on value change.\n */\n readonly valueChanged = output<ChangePassword>();\n /**\n * Emits password on change event.\n */\n readonly changePasswordRequested = output<ChangePassword>();\n /**\n * The number indicating the number of rules which still can be met. (`-2` --\\> 2 rules are\n * still unmet, `0` --\\> all met)\n */\n readonly passwordStrengthChanged = output<number | void>();\n /**\n * Emits on back click.\n */\n readonly back = output<void>();\n /**\n * Reference to the landing page parent component.\n */\n protected landingPage = inject(SiLandingPageComponent, { skipSelf: true, optional: true });\n\n private readonly index = SiChangePasswordComponent.idCounter++;\n protected newPasswordId = `__si-change-password-new-password-${this.index}`;\n protected confirmPasswordId = `__si-change-password-confirm-password-${this.index}`;\n\n protected changePasswordForm = new FormGroup({\n newPassword: new FormControl(''),\n confirmPassword: new FormControl('')\n });\n protected passwordPolicyContentTemplate: TemplateRef<any> | null = null;\n\n private destroyRef = inject(DestroyRef);\n\n ngOnInit(): void {\n this.landingPage?.isFullHeightSection.set(true);\n const passwordPolicy = this.passwordPolicyContent();\n if (passwordPolicy instanceof TemplateRef) {\n this.passwordPolicyContentTemplate = passwordPolicy;\n }\n this.changePasswordForm.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.handleValueChanges();\n });\n }\n\n ngOnDestroy(): void {\n this.landingPage?.isFullHeightSection.set(false);\n }\n\n protected submit(): void {\n this.changePasswordRequested.emit(this.getPasswordFormValues());\n }\n\n protected handleValueChanges(): void {\n this.valueChanged.emit(this.getPasswordFormValues());\n }\n\n protected handlePasswordStrengthChanged(data: number | void): void {\n this.passwordStrengthChanged.emit(data);\n }\n\n private getPasswordFormValues(): ChangePassword {\n const { newPassword: newPassword, confirmPassword } = this.changePasswordForm.value;\n return { newPassword: newPassword, confirmPassword };\n }\n\n protected handleBackClick(): void {\n this.back.emit();\n this.changePasswordForm.reset();\n }\n}\n","@let changePasswordAlert = this.changePasswordAlert();\n@let passwordPolicyContent = this.passwordPolicyContent();\n\n<div class=\"d-flex flex-column justify-content-center py-8 h-100\">\n <div class=\"position-relative\">\n <h2 class=\"si-h2\" [class.invisible]=\"changePasswordAlert\">{{ heading() | translate }}</h2>\n <div class=\"si-body mb-4\" [class.invisible]=\"changePasswordAlert\">{{\n subheading() | translate\n }}</div>\n @if (changePasswordAlert) {\n <si-inline-notification\n class=\"position-absolute bottom-0 w-100\"\n [severity]=\"changePasswordAlert.severity || 'danger'\"\n [heading]=\"changePasswordAlert.heading\"\n [message]=\"changePasswordAlert.message\"\n />\n }\n </div>\n <form [formGroup]=\"changePasswordForm\" (ngSubmit)=\"submit()\">\n <div class=\"my-4\">\n <label class=\"form-label\" [for]=\"newPasswordId\">{{ newPasswordLabel() | translate }}</label>\n <si-password-strength>\n <input\n type=\"password\"\n class=\"form-control\"\n formControlName=\"newPassword\"\n [id]=\"newPasswordId\"\n [siPasswordStrength]=\"passwordStrength()\"\n (passwordStrengthChanged)=\"handlePasswordStrengthChanged($event)\"\n />\n </si-password-strength>\n </div>\n <div class=\"mb-4\">\n <label class=\"form-label\" [for]=\"confirmPasswordId\">{{\n confirmPasswordLabel() | translate\n }}</label>\n <si-password-toggle #toggleConfirmPassword>\n <input\n class=\"form-control\"\n formControlName=\"confirmPassword\"\n [id]=\"confirmPasswordId\"\n [type]=\"toggleConfirmPassword.inputType\"\n />\n </si-password-toggle>\n </div>\n <div class=\"d-flex align-items-center gap-6 mt-6\">\n <button type=\"button\" class=\"btn btn-secondary w-100 back-button\" (click)=\"handleBackClick()\">\n {{ backButtonLabel() | translate }}\n </button>\n <button type=\"submit\" class=\"btn btn-primary w-100\" [disabled]=\"disableChange()\">\n {{ changeButtonLabel() | translate }}\n </button>\n </div>\n </form>\n <div class=\"text-secondary mt-8\">\n <div class=\"si-h5\">{{ passwordPolicyTitle() | translate }}</div>\n @if (!passwordPolicyContentTemplate) {\n <div class=\"my-4\" [innerHTML]=\"passwordPolicyContent\"></div>\n } @else {\n <div class=\"my-4\">\n <ng-container [ngTemplateOutlet]=\"passwordPolicyContentTemplate\" />\n </div>\n }\n </div>\n</div>\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 './login-basic/si-login-basic.component';\nexport * from './login-single-sign-on/si-login-single-sign-on.component';\nexport * from './explicit-legal-acknowledge/si-explicit-legal-acknowledge.component';\nexport * from './change-password/si-change-password.component';\nexport * from './alert-config.model';\nexport * from './si-landing-page.model';\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-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/login-basic/si-login-basic.component.ts","../../../../projects/element-ng/landing-page/login-basic/si-login-basic.component.html","../../../../projects/element-ng/landing-page/login-single-sign-on/si-login-single-sign-on.component.ts","../../../../projects/element-ng/landing-page/login-single-sign-on/si-login-single-sign-on.component.html","../../../../projects/element-ng/landing-page/explicit-legal-acknowledge/si-explicit-legal-acknowledge.component.ts","../../../../projects/element-ng/landing-page/explicit-legal-acknowledge/si-explicit-legal-acknowledge.component.html","../../../../projects/element-ng/landing-page/change-password/si-change-password.component.ts","../../../../projects/element-ng/landing-page/change-password/si-change-password.component.html","../../../../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 { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, TemplateRef, signal } 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 { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { AlertConfig } from './alert-config.model';\nimport { LandingPageWarning } from './si-landing-page.model';\n\n/**\n * A comprehensive landing page component that provides a standardized layout for authentication flows.\n * \n * This component serves as a container for various authentication-related components and provides\n * a consistent layout with support for branding, internationalization, legal acknowledgments,\n * and various notification types. It includes slots for custom content and handles responsive\n * layout adjustments.\n * \n * The component supports:\n * - Custom branding and background images\n * - Multi-language support with language switcher\n * - Legal acknowledgments and terms display\n * - Alert and notification systems\n * - Copyright information display\n * - Responsive layout with full-height section option\n * \n * @example\n * ```html\n * <si-landing-page\n * [heading]=\"appTitle\"\n * [subtitle]=\"appDescription\"\n * [availableLanguages]=\"languages\"\n * [copyrightDetails]=\"copyright\"\n * [announcement]=\"announcementConfig\"\n * [loginAlert]=\"loginErrorConfig\">\n * \n * <si-login-basic\n * (login)=\"handleLogin($event)\"\n * (usernameValidation)=\"validateUsername($event)\">\n * </si-login-basic>\n\n * </si-landing-page>\n * ```\n */\n@Component({\n selector: 'si-landing-page',\n imports: [\n SiCopyrightNoticeComponent,\n SiLanguageSwitcherComponent,\n SiLinkDirective,\n SiInlineNotificationComponent,\n SiTranslatePipe,\n NgTemplateOutlet\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<TranslatableString>();\n /**\n * Secondary heading of the application.\n */\n readonly subheading = input<TranslatableString>();\n /**\n * Short description of the application.\n */\n readonly subtitle = input.required<TranslatableString>();\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 * @defaultValue []\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 * Warning text for Live Data. Can be shown, if there is no legal artifact which needs immediate user attention.\n */\n readonly liveDataWarning = input<LandingPageWarning>();\n /**\n * Text for some legal artifacts (e.g. Terms of Use) that needs more attention before the login.\n */\n readonly implicitLegalAcknowledge = input<string | TemplateRef<unknown>>();\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 * Option to display the landing page content in full height.\n *\n * @defaultValue false\n */\n readonly isFullHeightSection = signal(false);\n}\n","@let announcement = this.announcement();\n@let availableLanguages = this.availableLanguages();\n@let loginAlert = this.loginAlert();\n@let implicitLegalAcknowledge = this.implicitLegalAcknowledge();\n@let liveDataWarning = this.liveDataWarning();\n@let isFullHeightSection = this.isFullHeightSection();\n\n@if (announcement) {\n <si-inline-notification\n class=\"rounded-0\"\n [severity]=\"announcement.severity\"\n [heading]=\"announcement.heading\"\n [message]=\"announcement.message\"\n [action]=\"announcement.action\"\n [translationParams]=\"announcement.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=\"landing-page-content-inner\">\n @if (!isFullHeightSection) {\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 } @else {\n <img\n class=\"landing-page-logo landing-page-custom-logo\"\n [src]=\"logoUrl()\"\n [alt]=\"heading() + '\\'s Background'\"\n />\n }\n @if (availableLanguages.length > 1) {\n <div class=\"landing-page-language-switcher\">\n <si-language-switcher\n [translationKey]=\"translationKey()\"\n [availableLanguages]=\"availableLanguages\"\n />\n </div>\n }\n </div>\n }\n <div class=\"landing-page-main\">\n @if (!isFullHeightSection) {\n @if (subheading()) {\n <div class=\"si-h2\">{{ subheading() | translate }}</div>\n }\n <h1 class=\"si-h1-bold my-2\">{{ heading() | translate }}</h1>\n <div class=\"position-relative\">\n <h2 class=\"mt-10 si-h2\" [class.invisible]=\"loginAlert\">{{ subtitle() | translate }}</h2>\n @if (loginAlert) {\n <si-inline-notification\n class=\"landing-page-alert w-100\"\n [severity]=\"loginAlert.severity || 'danger'\"\n [heading]=\"loginAlert.heading\"\n [message]=\"loginAlert.message\"\n />\n }\n </div>\n }\n <div class=\"landing-page-custom-content\">\n <ng-content />\n @if (!isFullHeightSection) {\n @if (implicitLegalAcknowledge) {\n @if (typeof implicitLegalAcknowledge === 'string') {\n <div class=\"text-secondary mt-8\" [innerHTML]=\"implicitLegalAcknowledge\"></div>\n } @else {\n <div class=\"text-secondary mt-8\">\n <ng-container [ngTemplateOutlet]=\"implicitLegalAcknowledge\" />\n </div>\n }\n }\n @if (liveDataWarning) {\n <div class=\"text-secondary mt-8\">\n <div class=\"si-h5\">{{ liveDataWarning.title | translate }}</div>\n <div class=\"si-body my-4\">{{ liveDataWarning.content | translate }}</div>\n </div>\n }\n }\n </div>\n </div>\n @if (!isFullHeightSection) {\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 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 }\n </div>\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 */\nimport {\n booleanAttribute,\n Component,\n input,\n OnInit,\n output,\n signal,\n DestroyRef,\n inject,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { SiLoadingButtonComponent } from '@siemens/element-ng/loading-spinner';\nimport { SiPasswordToggleComponent } from '@siemens/element-ng/password-toggle';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { UsernamePassword, UsernameValidationPayload } from '../si-landing-page.model';\n\n/**\n * A basic login component that supports both single-step and two-step authentication flows.\n *\n * This component provides a standard login form with username and password fields.\n * It can be configured to work in two-step mode where username validation happens first,\n * followed by password entry.\n *\n * @example\n * ```html\n * <si-login-basic\n * [forgotPasswordLink]=\"forgotPasswordLink\"\n * [registerNowLink]=\"registerNowLink\"\n * [twoStep]=\"true\"\n * [loading]=\"isLoading\"\n * (login)=\"handleLogin($event)\"\n * (usernameValidation)=\"handleUsernameValidation($event)\">\n * </si-login-basic>\n * ```\n */\n@Component({\n selector: 'si-login-basic',\n imports: [\n ReactiveFormsModule,\n SiTranslatePipe,\n SiLinkDirective,\n SiPasswordToggleComponent,\n SiLoadingButtonComponent\n ],\n templateUrl: './si-login-basic.component.html',\n styleUrl: './si-login-basic.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiLoginBasicComponent implements OnInit {\n private static idCounter = 0;\n /**\n * Label for username input field.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.USERNAME:Username`)\n * ```\n */\n readonly usernameLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.USERNAME:Username`));\n /**\n * Label for password input field.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.PASSWORD:Password`)\n * ```\n */\n readonly passwordLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.PASSWORD:Password`));\n /**\n * Config for Forgot Password link.\n */\n readonly forgotPasswordLink = input<Link>();\n /**\n * Text for register now.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.REGISTER_NOW_INTRO:Don't have an account?`)\n * ```\n */\n readonly registerNowIntroText = input(\n t(() => $localize`:@@SI_LOGIN_BASIC.REGISTER_NOW_INTRO:Don't have an account?`)\n );\n /**\n * Config for Register Now link.\n */\n readonly registerNowLink = input<Link>();\n /**\n * Label for login button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.LOGIN:Login`)\n * ```\n */\n readonly loginButtonLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.LOGIN:Login`));\n /**\n * Disables the login button.\n *\n * @defaultValue false\n */\n readonly disableLogin = input(false);\n /**\n * Enables the two-step login flow.\n *\n * @defaultValue false\n */\n readonly twoStep = input(false, { transform: booleanAttribute });\n\n /**\n * Indicates whether the login button should show a loading state.\n *\n * @defaultValue false\n */\n readonly loading = input(false);\n /**\n * Description of back button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.BACK:Back`)\n * ```\n */\n readonly backButtonLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.BACK:Back`));\n /**\n * Description of next button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.NEXT:Next`)\n * ```\n */\n readonly nextButtonLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.NEXT:Next`));\n /**\n * Emits username when user clicks on next button.\n */\n readonly usernameValidation = output<UsernameValidationPayload>();\n /**\n * Emits username and password on value change.\n */\n readonly valueChanged = output<UsernamePassword>();\n /**\n * Emits username and password on login event.\n */\n readonly login = output<UsernamePassword>();\n\n private destroyRef = inject(DestroyRef);\n protected readonly secondStepVisible = signal(false);\n protected readonly loadingNext = signal(false);\n\n private readonly index = SiLoginBasicComponent.idCounter++;\n protected usernameId = `__si-login-basic-username-${this.index}`;\n protected passwordId = `__si-login-basic-password-${this.index}`;\n\n protected loginCredentials = new FormGroup({\n username: new FormControl('', Validators.required),\n password: new FormControl('', Validators.required)\n });\n\n ngOnInit(): void {\n this.loginCredentials.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.handleValueChanges();\n });\n\n this.loginCredentials.controls.username.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.secondStepVisible() && this.goBack());\n }\n\n protected submit(): void {\n if (this.twoStep() && !this.secondStepVisible()) {\n this.validateUsername();\n return;\n }\n this.login.emit(this.getLoginFormValues());\n }\n\n protected handleValueChanges(): void {\n this.valueChanged.emit(this.getLoginFormValues());\n }\n\n protected validateUsername(): void {\n if (this.loginCredentials.controls.username.valid) {\n this.loadingNext.set(true);\n }\n const activateArgs = {\n ...this.getLoginFormValues(),\n validate: (isValid: boolean): void => {\n if (isValid) {\n this.nextStep();\n } else {\n this.loadingNext.set(false);\n this.loginCredentials.controls.username.setErrors({ invalid: true });\n }\n }\n };\n this.usernameValidation.emit(activateArgs);\n }\n\n private getLoginFormValues(): UsernamePassword {\n const { username: username, password } = this.loginCredentials.value;\n return { username: username, password };\n }\n\n protected goBack(): void {\n this.secondStepVisible.set(false);\n this.loginCredentials.controls.password.reset();\n }\n\n private nextStep(): void {\n if (this.twoStep() && !this.secondStepVisible()) {\n this.loadingNext.set(false);\n this.secondStepVisible.set(true);\n }\n }\n}\n","@let forgotPasswordLink = this.forgotPasswordLink();\n@let registerNowLink = this.registerNowLink();\n@let secondStepVisible = this.secondStepVisible();\n\n<form #loginForm [formGroup]=\"loginCredentials\" (ngSubmit)=\"submit()\">\n <div class=\"my-4\">\n <label class=\"form-label\" [for]=\"usernameId\">{{ usernameLabel() | translate }}</label>\n <input type=\"email\" class=\"form-control\" formControlName=\"username\" [id]=\"usernameId\" />\n </div>\n <div class=\"login-basic-second-step--container\" [class.active]=\"!twoStep() || secondStepVisible\">\n <div class=\"login-basic-second-step--content\">\n <div class=\"mb-4\">\n <label class=\"form-label\" [for]=\"passwordId\">{{ passwordLabel() | translate }}</label>\n <si-password-toggle #toggle>\n <input\n class=\"form-control\"\n formControlName=\"password\"\n [id]=\"passwordId\"\n [type]=\"toggle.inputType\"\n />\n </si-password-toggle>\n </div>\n @if (forgotPasswordLink) {\n <a class=\"si-h5 mb-4\" [siLink]=\"forgotPasswordLink\">{{\n forgotPasswordLink.title | translate\n }}</a>\n }\n <div class=\"d-flex align-items-center gap-6 mt-8\">\n @if (twoStep()) {\n <button type=\"button\" class=\"btn btn-secondary w-100\" (click)=\"goBack()\">\n {{ backButtonLabel() | translate }}\n </button>\n }\n <si-loading-button\n type=\"submit\"\n class=\"w-100\"\n buttonClass=\"btn btn-primary\"\n [disabled]=\"disableLogin()\"\n [loading]=\"loading()\"\n >\n {{ loginButtonLabel() | translate }}\n </si-loading-button>\n </div>\n </div>\n </div>\n @if (twoStep()) {\n <div\n class=\"login-basic-next-button--container\"\n [attr.aria-hidden]=\"secondStepVisible\"\n [class.active]=\"!secondStepVisible\"\n >\n <si-loading-button\n class=\"login-basic-next-button w-100\"\n buttonClass=\"btn btn-primary\"\n [loading]=\"loadingNext()\"\n (click)=\"validateUsername()\"\n >\n {{ nextButtonLabel() | translate }}\n </si-loading-button>\n </div>\n }\n</form>\n@if (registerNowLink) {\n <div class=\"si-body mt-8\">\n {{ registerNowIntroText() | translate }}\n <a class=\"si-h5 ms-6\" [siLink]=\"registerNowLink\">{{ registerNowLink.title | translate }}</a>\n </div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\n/**\n * A single sign-on (SSO) login component that provides a button for SSO authentication.\n *\n * This component renders a simple button that users can click to initiate\n * single sign-on authentication flow.\n *\n * @example\n * ```html\n * <si-login-single-sign-on\n * [ssoButtonLabel]=\"customLabel\"\n * [disableSso]=\"isLoading\"\n * (ssoEvent)=\"handleSsoLogin()\">\n * </si-login-single-sign-on>\n * ```\n */\n@Component({\n selector: 'si-login-single-sign-on',\n imports: [SiTranslatePipe],\n templateUrl: './si-login-single-sign-on.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiLoginSingleSignOnComponent {\n /**\n * Label for login button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_SINGLE-SIGN-ON.LOGIN_SIGN_UP:Login / Sign un`)\n * ```\n */\n readonly ssoButtonLabel = input(\n t(() => $localize`:@@SI_LOGIN_SINGLE-SIGN-ON.LOGIN_SIGN_UP:Login / Sign un`)\n );\n /**\n * Disables the sso button.\n *\n * @defaultValue false\n */\n readonly disableSso = input(false);\n /**\n * Emits username and password on login event.\n */\n readonly ssoEvent = output<void>();\n\n protected ssoClick(): void {\n this.ssoEvent.emit();\n }\n}\n","<button\n type=\"button\"\n class=\"btn btn-primary mt-4 w-100\"\n [disabled]=\"disableSso()\"\n (click)=\"ssoClick()\"\n>\n {{ ssoButtonLabel() | translate }}\n</button>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport {\n Component,\n inject,\n input,\n OnInit,\n output,\n OnDestroy,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { SiTranslatePipe, t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiLandingPageComponent } from '../si-landing-page.component';\n\n/**\n * A component for displaying legal agreements that require explicit user acknowledgment.\n *\n * This component provides a standardized interface for presenting legal documents,\n * terms of service, privacy policies, or other agreements that users must\n * explicitly accept before proceeding.\n *\n * @example\n * ```html\n * <si-explicit-legal-acknowledge\n * [heading]=\"agreementTitle\"\n * [subheading]=\"agreementDescription\"\n * [disableAcceptance]=\"isProcessing\"\n * (accept)=\"handleAcceptance()\"\n * (back)=\"handleBack()\">\n * <div>\n * <h3>Terms of Service</h3>\n * <p>Please read and accept our terms before continuing.</p>\n * <ul>\n * <li>Term 1: You agree to ...</li>\n * <li>Term 2: You acknowledge ...</li>\n * </ul>\n * </div>\n * </si-explicit-legal-acknowledge>\n * ```\n */\n@Component({\n selector: 'si-explicit-legal-acknowledge',\n imports: [SiTranslatePipe],\n templateUrl: './si-explicit-legal-acknowledge.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiExplicitLegalAcknowledgeComponent implements OnInit, OnDestroy {\n /**\n * Heading of the agreement.\n */\n readonly heading = input.required<TranslatableString>();\n /**\n * Short description of the agreement.\n */\n readonly subheading = input.required<TranslatableString>();\n /**\n * Label for accept button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_EXPLICIT_LEGAL_ACKNOWLEDGE.ACCEPT:Accept`)\n * ```\n */\n readonly acceptButtonLabel = input(\n t(() => $localize`:@@SI_EXPLICIT_LEGAL_ACKNOWLEDGE.ACCEPT:Accept`)\n );\n /**\n * Description of back button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_EXPLICIT_LEGAL_ACKNOWLEDGE.BACK:Back`)\n * ```\n */\n readonly backButtonLabel = input(t(() => $localize`:@@SI_EXPLICIT_LEGAL_ACKNOWLEDGE.BACK:Back`));\n /**\n * Disables the acceptance button.\n *\n * @defaultValue false\n */\n readonly disableAcceptance = input(false);\n /**\n * Emits end user license agreement on acceptance event.\n */\n readonly accept = output<void>();\n /**\n * Emits on back click.\n */\n readonly back = output<void>();\n /**\n * Reference to the landing page parent component.\n */\n protected landingPage = inject(SiLandingPageComponent, { skipSelf: true, optional: true });\n\n protected handleBack(): void {\n this.back.emit();\n }\n\n protected handleAccept(): void {\n this.accept.emit();\n }\n\n ngOnInit(): void {\n this.landingPage?.isFullHeightSection.set(true);\n }\n\n ngOnDestroy(): void {\n this.landingPage?.isFullHeightSection.set(false);\n }\n}\n","<div class=\"d-flex flex-column py-8 h-100\">\n <h2 class=\"si-h2 mb-4\">{{ heading() | translate }}</h2>\n <div class=\"si-body mb-6\">{{ subheading() | translate }}</div>\n\n <div tabindex=\"0\" class=\"form-control si-body text-secondary flex-grow-1 overflow-auto\">\n <ng-content />\n </div>\n <div class=\"d-flex align-items-center gap-6 mt-6\">\n <button type=\"button\" class=\"btn btn-secondary w-100\" (click)=\"handleBack()\">\n {{ backButtonLabel() | translate }}\n </button>\n <button\n type=\"button\"\n class=\"btn btn-primary w-100\"\n [disabled]=\"disableAcceptance()\"\n (click)=\"handleAccept()\"\n >\n {{ acceptButtonLabel() | translate }}\n </button>\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n input,\n OnInit,\n output,\n TemplateRef,\n OnDestroy,\n inject,\n DestroyRef,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { SiInlineNotificationComponent } from '@siemens/element-ng/inline-notification';\nimport {\n PasswordPolicy,\n SiPasswordStrengthComponent,\n SiPasswordStrengthDirective\n} from '@siemens/element-ng/password-strength';\nimport { SiPasswordToggleComponent } from '@siemens/element-ng/password-toggle';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { AlertConfig } from '../alert-config.model';\nimport { SiLandingPageComponent } from '../si-landing-page.component';\nimport { ChangePassword } from '../si-landing-page.model';\n\n/**\n * A component for changing user passwords with strength validation and policy enforcement.\n *\n * This component provides a form for users to change their password, including\n * password strength indicators, policy validation, and confirmation fields.\n * It supports custom password policies and displays inline notifications for alerts.\n *\n * @example\n * ```html\n * <si-change-password\n * [passwordStrength]=\"passwordPolicy\"\n * [passwordPolicyContent]=\"policyTemplate\"\n * [changePasswordAlert]=\"alertConfig\"\n * (changePasswordRequested)=\"handlePasswordChange($event)\"\n * (back)=\"handleBack()\">\n * </si-change-password>\n * ```\n */\n@Component({\n selector: 'si-change-password',\n imports: [\n ReactiveFormsModule,\n SiTranslatePipe,\n SiPasswordToggleComponent,\n NgTemplateOutlet,\n SiInlineNotificationComponent,\n SiPasswordStrengthComponent,\n SiPasswordStrengthDirective\n ],\n templateUrl: './si-change-password.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiChangePasswordComponent implements OnInit, OnDestroy {\n private static idCounter = 0;\n /**\n * Change password heading.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE_PASSWORD:Change password`)\n * ```\n */\n readonly heading = input(\n t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE_PASSWORD:Change password`)\n );\n /**\n * Short description of the action to perform.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE_FACTORY_PASSWORD:Factory set password must be changed`)\n * ```\n */\n readonly subheading = input(\n t(\n () =>\n $localize`:@@SI_CHANGE_PASSWORD.CHANGE_FACTORY_PASSWORD:Factory set password must be changed`\n )\n );\n /**\n * Label for new password input field.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.NEW_PASSWORD:New password`)\n * ```\n */\n readonly newPasswordLabel = input(\n t(() => $localize`:@@SI_CHANGE_PASSWORD.NEW_PASSWORD:New password`)\n );\n /**\n * Label for confirm password input field.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.CONFIRM_PASSWORD:Confirm password`)\n * ```\n */\n readonly confirmPasswordLabel = input(\n t(() => $localize`:@@SI_CHANGE_PASSWORD.CONFIRM_PASSWORD:Confirm password`)\n );\n /**\n * Label for change password button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE:Change`)\n * ```\n */\n readonly changeButtonLabel = input(t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE:Change`));\n /**\n * Description of back button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.BACK:Back`)\n * ```\n */\n readonly backButtonLabel = input(t(() => $localize`:@@SI_CHANGE_PASSWORD.BACK:Back`));\n /**\n * Disables the change password button.\n *\n * @defaultValue false\n */\n readonly disableChange = input(false);\n /**\n * Title of the password policy.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.PASSWORD_POLICY:Password policy`)\n * ```\n */\n readonly passwordPolicyTitle = input(\n t(() => $localize`:@@SI_CHANGE_PASSWORD.PASSWORD_POLICY:Password policy`)\n );\n /**\n * Description of the password policy requirements.\n */\n readonly passwordPolicyContent = input.required<string | TemplateRef<unknown>>();\n /**\n * Description of the password policy requirements.\n */\n readonly passwordStrength = input.required<PasswordPolicy>();\n /**\n * Config to enable/disable password related error/alerts.\n */\n readonly changePasswordAlert = input<AlertConfig>();\n /**\n * Emits password on value change.\n */\n readonly valueChanged = output<ChangePassword>();\n /**\n * Emits password on change event.\n */\n readonly changePasswordRequested = output<ChangePassword>();\n /**\n * The number indicating the number of rules which still can be met. (`-2` --\\> 2 rules are\n * still unmet, `0` --\\> all met)\n */\n readonly passwordStrengthChanged = output<number | void>();\n /**\n * Emits on back click.\n */\n readonly back = output<void>();\n /**\n * Reference to the landing page parent component.\n */\n protected landingPage = inject(SiLandingPageComponent, { skipSelf: true, optional: true });\n\n private readonly index = SiChangePasswordComponent.idCounter++;\n protected newPasswordId = `__si-change-password-new-password-${this.index}`;\n protected confirmPasswordId = `__si-change-password-confirm-password-${this.index}`;\n\n protected changePasswordForm = new FormGroup({\n newPassword: new FormControl(''),\n confirmPassword: new FormControl('')\n });\n protected passwordPolicyContentTemplate: TemplateRef<any> | null = null;\n\n private destroyRef = inject(DestroyRef);\n\n ngOnInit(): void {\n this.landingPage?.isFullHeightSection.set(true);\n const passwordPolicy = this.passwordPolicyContent();\n if (passwordPolicy instanceof TemplateRef) {\n this.passwordPolicyContentTemplate = passwordPolicy;\n }\n this.changePasswordForm.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.handleValueChanges();\n });\n }\n\n ngOnDestroy(): void {\n this.landingPage?.isFullHeightSection.set(false);\n }\n\n protected submit(): void {\n this.changePasswordRequested.emit(this.getPasswordFormValues());\n }\n\n protected handleValueChanges(): void {\n this.valueChanged.emit(this.getPasswordFormValues());\n }\n\n protected handlePasswordStrengthChanged(data: number | void): void {\n this.passwordStrengthChanged.emit(data);\n }\n\n private getPasswordFormValues(): ChangePassword {\n const { newPassword: newPassword, confirmPassword } = this.changePasswordForm.value;\n return { newPassword: newPassword, confirmPassword };\n }\n\n protected handleBackClick(): void {\n this.back.emit();\n this.changePasswordForm.reset();\n }\n}\n","@let changePasswordAlert = this.changePasswordAlert();\n@let passwordPolicyContent = this.passwordPolicyContent();\n\n<div class=\"d-flex flex-column justify-content-center py-8 h-100\">\n <div class=\"position-relative\">\n <h2 class=\"si-h2\" [class.invisible]=\"changePasswordAlert\">{{ heading() | translate }}</h2>\n <div class=\"si-body mb-4\" [class.invisible]=\"changePasswordAlert\">{{\n subheading() | translate\n }}</div>\n @if (changePasswordAlert) {\n <si-inline-notification\n class=\"position-absolute bottom-0 w-100\"\n [severity]=\"changePasswordAlert.severity || 'danger'\"\n [heading]=\"changePasswordAlert.heading\"\n [message]=\"changePasswordAlert.message\"\n />\n }\n </div>\n <form [formGroup]=\"changePasswordForm\" (ngSubmit)=\"submit()\">\n <div class=\"my-4\">\n <label class=\"form-label\" [for]=\"newPasswordId\">{{ newPasswordLabel() | translate }}</label>\n <si-password-strength>\n <input\n type=\"password\"\n class=\"form-control\"\n formControlName=\"newPassword\"\n [id]=\"newPasswordId\"\n [siPasswordStrength]=\"passwordStrength()\"\n (passwordStrengthChanged)=\"handlePasswordStrengthChanged($event)\"\n />\n </si-password-strength>\n </div>\n <div class=\"mb-4\">\n <label class=\"form-label\" [for]=\"confirmPasswordId\">{{\n confirmPasswordLabel() | translate\n }}</label>\n <si-password-toggle #toggleConfirmPassword>\n <input\n class=\"form-control\"\n formControlName=\"confirmPassword\"\n [id]=\"confirmPasswordId\"\n [type]=\"toggleConfirmPassword.inputType\"\n />\n </si-password-toggle>\n </div>\n <div class=\"d-flex align-items-center gap-6 mt-6\">\n <button type=\"button\" class=\"btn btn-secondary w-100 back-button\" (click)=\"handleBackClick()\">\n {{ backButtonLabel() | translate }}\n </button>\n <button type=\"submit\" class=\"btn btn-primary w-100\" [disabled]=\"disableChange()\">\n {{ changeButtonLabel() | translate }}\n </button>\n </div>\n </form>\n <div class=\"text-secondary mt-8\">\n <div class=\"si-h5\">{{ passwordPolicyTitle() | translate }}</div>\n @if (!passwordPolicyContentTemplate) {\n <div class=\"my-4\" [innerHTML]=\"passwordPolicyContent\"></div>\n } @else {\n <div class=\"my-4\">\n <ng-container [ngTemplateOutlet]=\"passwordPolicyContentTemplate\" />\n </div>\n }\n </div>\n</div>\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 './login-basic/si-login-basic.component';\nexport * from './login-single-sign-on/si-login-single-sign-on.component';\nexport * from './explicit-legal-acknowledge/si-explicit-legal-acknowledge.component';\nexport * from './change-password/si-change-password.component';\nexport * from './alert-config.model';\nexport * from './si-landing-page.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ class SiLanguageSwitcherComponent {
13
13
  *
14
14
  * @defaultValue 'LANGUAGE'
15
15
  */
16
- translationKey = input('LANGUAGE');
16
+ translationKey = input('LANGUAGE', ...(ngDevMode ? [{ debugName: "translationKey" }] : []));
17
17
  /**
18
18
  * Text for aria label for the language selector. Needed for a11y
19
19
  *
@@ -22,13 +22,13 @@ class SiLanguageSwitcherComponent {
22
22
  * t(() => $localize`:@@SI_LANGUAGE_SWITCHER.LABEL:Language switcher`)
23
23
  * ```
24
24
  */
25
- languageSwitcherLabel = input(t(() => $localize `:@@SI_LANGUAGE_SWITCHER.LABEL:Language switcher`));
25
+ languageSwitcherLabel = input(t(() => $localize `:@@SI_LANGUAGE_SWITCHER.LABEL:Language switcher`), ...(ngDevMode ? [{ debugName: "languageSwitcherLabel" }] : []));
26
26
  /**
27
27
  * List of all available languages in this application.
28
28
  *
29
29
  * @defaultValue null
30
30
  */
31
- availableLanguages = input(null);
31
+ availableLanguages = input(null, ...(ngDevMode ? [{ debugName: "availableLanguages" }] : []));
32
32
  translate = injectSiTranslateService();
33
33
  availableIsoLanguages = computed(() => {
34
34
  let languages = this.availableLanguages() ?? this.translate.availableLanguages;
@@ -42,7 +42,7 @@ class SiLanguageSwitcherComponent {
42
42
  });
43
43
  }
44
44
  return languages;
45
- });
45
+ }, ...(ngDevMode ? [{ debugName: "availableIsoLanguages" }] : []));
46
46
  switchLanguage(target) {
47
47
  const language = target?.value;
48
48
  const translationKey = this.translationKey();
@@ -51,24 +51,24 @@ class SiLanguageSwitcherComponent {
51
51
  }
52
52
  this.translate.setCurrentLanguage(language);
53
53
  }
54
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiLanguageSwitcherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
55
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.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-h5 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" }] });
54
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLanguageSwitcherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
55
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", 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-h5 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" }] });
56
56
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiLanguageSwitcherComponent, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLanguageSwitcherComponent, decorators: [{
58
58
  type: Component,
59
- args: [{ selector: 'si-language-switcher', imports: [SiTranslatePipe], template: "<select\n class=\"si-h5 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"] }]
60
- }] });
59
+ args: [{ selector: 'si-language-switcher', imports: [SiTranslatePipe], template: "<select\n class=\"si-h5 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"] }]
60
+ }], propDecorators: { translationKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "translationKey", required: false }] }], languageSwitcherLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "languageSwitcherLabel", required: false }] }], availableLanguages: [{ type: i0.Input, args: [{ isSignal: true, alias: "availableLanguages", required: false }] }] } });
61
61
 
62
62
  /**
63
63
  * Copyright (c) Siemens 2016 - 2025
64
64
  * SPDX-License-Identifier: MIT
65
65
  */
66
66
  class SiLanguageSwitcherModule {
67
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiLanguageSwitcherModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
68
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: SiLanguageSwitcherModule, imports: [SiLanguageSwitcherComponent], exports: [SiLanguageSwitcherComponent] });
69
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiLanguageSwitcherModule });
67
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLanguageSwitcherModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
68
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: SiLanguageSwitcherModule, imports: [SiLanguageSwitcherComponent], exports: [SiLanguageSwitcherComponent] });
69
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLanguageSwitcherModule });
70
70
  }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiLanguageSwitcherModule, decorators: [{
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLanguageSwitcherModule, decorators: [{
72
72
  type: NgModule,
73
73
  args: [{
74
74
  imports: [SiLanguageSwitcherComponent],
@@ -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 (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, input } from '@angular/core';\nimport {\n injectSiTranslateService,\n SiTranslatePipe,\n t\n} 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 * t(() => $localize`:@@SI_LANGUAGE_SWITCHER.LABEL:Language switcher`)\n * ```\n */\n readonly languageSwitcherLabel = input(\n t(() => $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?.length) {\n return;\n }\n this.translate.setCurrentLanguage(language);\n }\n}\n","<select\n class=\"si-h5 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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"}
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 {\n injectSiTranslateService,\n SiTranslatePipe,\n t\n} 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 * t(() => $localize`:@@SI_LANGUAGE_SWITCHER.LABEL:Language switcher`)\n * ```\n */\n readonly languageSwitcherLabel = input(\n t(() => $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?.length) {\n return;\n }\n this.translate.setCurrentLanguage(language);\n }\n}\n","<select\n class=\"si-h5 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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"}
@@ -24,10 +24,10 @@ class SiLinkActionService {
24
24
  emit(link, param) {
25
25
  this.actionSubject.next({ link, param });
26
26
  }
27
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiLinkActionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
28
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiLinkActionService });
27
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLinkActionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
28
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLinkActionService });
29
29
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiLinkActionService, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLinkActionService, decorators: [{
31
31
  type: Injectable
32
32
  }] });
33
33
 
@@ -35,26 +35,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
35
35
  * Copyright (c) Siemens 2016 - 2025
36
36
  * SPDX-License-Identifier: MIT
37
37
  */
38
- /* eslint-disable @angular-eslint/no-conflicting-lifecycle */
39
38
  const SI_LINK_DEFAULT_NAVIGATION_EXTRA = new InjectionToken('SI_LINK_DEFAULT_NAVIGATION_EXTRA');
40
39
  class SiLinkDirective {
41
- siLink = input();
42
- siLinkDefaultTarget = input();
43
- actionParam = input();
44
- activeClass = input();
40
+ siLink = input(...(ngDevMode ? [undefined, { debugName: "siLink" }] : []));
41
+ siLinkDefaultTarget = input(...(ngDevMode ? [undefined, { debugName: "siLinkDefaultTarget" }] : []));
42
+ actionParam = input(...(ngDevMode ? [undefined, { debugName: "actionParam" }] : []));
43
+ activeClass = input(...(ngDevMode ? [undefined, { debugName: "activeClass" }] : []));
45
44
  /** @defaultValue false */
46
- exactMatch = input(false, { transform: booleanAttribute });
45
+ exactMatch = input(false, { ...(ngDevMode ? { debugName: "exactMatch" } : {}), transform: booleanAttribute });
47
46
  /**
48
47
  * Type for `aria-current` to set if routerLink is active.
49
48
  */
50
- ariaCurrent = input();
49
+ ariaCurrent = input(...(ngDevMode ? [undefined, { debugName: "ariaCurrent" }] : []));
51
50
  activeChange = output();
52
- href = signal(undefined);
53
- target = signal(undefined);
54
- title = signal(undefined);
55
- isAriaCurrent = computed(() => this.active() ? (this.ariaCurrent() ?? 'true') : undefined);
51
+ href = signal(undefined, ...(ngDevMode ? [{ debugName: "href" }] : []));
52
+ target = signal(undefined, ...(ngDevMode ? [{ debugName: "target" }] : []));
53
+ title = signal(undefined, ...(ngDevMode ? [{ debugName: "title" }] : []));
54
+ isAriaCurrent = computed(() => this.active() ? (this.ariaCurrent() ?? 'true') : undefined, ...(ngDevMode ? [{ debugName: "isAriaCurrent" }] : []));
56
55
  /** @defaultValue false */
57
- active = signal(false);
56
+ active = signal(false, ...(ngDevMode ? [{ debugName: "active" }] : []));
58
57
  destroyer = new Subject();
59
58
  router = inject(Router, { optional: true });
60
59
  activatedRoute = inject(ActivatedRoute, { optional: true });
@@ -182,10 +181,10 @@ class SiLinkDirective {
182
181
  this.router.navigateByUrl(this.urlTree, this.navigationExtras);
183
182
  }
184
183
  }
185
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
186
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: SiLinkDirective, isStandalone: true, selector: "[siLink]", inputs: { siLink: { classPropertyName: "siLink", publicName: "siLink", isSignal: true, isRequired: false, transformFunction: null }, siLinkDefaultTarget: { classPropertyName: "siLinkDefaultTarget", publicName: "siLinkDefaultTarget", isSignal: true, isRequired: false, transformFunction: null }, actionParam: { classPropertyName: "actionParam", publicName: "actionParam", isSignal: true, isRequired: false, transformFunction: null }, activeClass: { classPropertyName: "activeClass", publicName: "activeClass", isSignal: true, isRequired: false, transformFunction: null }, exactMatch: { classPropertyName: "exactMatch", publicName: "exactMatch", isSignal: true, isRequired: false, transformFunction: null }, ariaCurrent: { classPropertyName: "ariaCurrent", publicName: "ariaCurrent", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeChange: "activeChange" }, host: { listeners: { "click": "onClick($event)" }, properties: { "attr.href": "href()", "attr.target": "target()", "attr.title": "title()", "attr.aria-current": "isAriaCurrent()", "class": "active() ? activeClass() : null" } }, exportAs: ["siLink"], usesOnChanges: true, ngImport: i0 });
184
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
185
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.8", type: SiLinkDirective, isStandalone: true, selector: "[siLink]", inputs: { siLink: { classPropertyName: "siLink", publicName: "siLink", isSignal: true, isRequired: false, transformFunction: null }, siLinkDefaultTarget: { classPropertyName: "siLinkDefaultTarget", publicName: "siLinkDefaultTarget", isSignal: true, isRequired: false, transformFunction: null }, actionParam: { classPropertyName: "actionParam", publicName: "actionParam", isSignal: true, isRequired: false, transformFunction: null }, activeClass: { classPropertyName: "activeClass", publicName: "activeClass", isSignal: true, isRequired: false, transformFunction: null }, exactMatch: { classPropertyName: "exactMatch", publicName: "exactMatch", isSignal: true, isRequired: false, transformFunction: null }, ariaCurrent: { classPropertyName: "ariaCurrent", publicName: "ariaCurrent", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeChange: "activeChange" }, host: { listeners: { "click": "onClick($event)" }, properties: { "attr.href": "href()", "attr.target": "target()", "attr.title": "title()", "attr.aria-current": "isAriaCurrent()", "class": "active() ? activeClass() : null" } }, exportAs: ["siLink"], usesOnChanges: true, ngImport: i0 });
187
186
  }
188
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiLinkDirective, decorators: [{
187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLinkDirective, decorators: [{
189
188
  type: Directive,
190
189
  args: [{
191
190
  selector: '[siLink]',
@@ -198,7 +197,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
198
197
  },
199
198
  exportAs: 'siLink'
200
199
  }]
201
- }], propDecorators: { onClick: [{
200
+ }], propDecorators: { siLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "siLink", required: false }] }], siLinkDefaultTarget: [{ type: i0.Input, args: [{ isSignal: true, alias: "siLinkDefaultTarget", required: false }] }], actionParam: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionParam", required: false }] }], activeClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeClass", required: false }] }], exactMatch: [{ type: i0.Input, args: [{ isSignal: true, alias: "exactMatch", required: false }] }], ariaCurrent: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaCurrent", required: false }] }], activeChange: [{ type: i0.Output, args: ["activeChange"] }], onClick: [{
202
201
  type: HostListener,
203
202
  args: ['click', ['$event']]
204
203
  }] } });
@@ -208,11 +207,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
208
207
  * SPDX-License-Identifier: MIT
209
208
  */
210
209
  class SiLinkModule {
211
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiLinkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
212
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: SiLinkModule, imports: [SiLinkDirective], exports: [SiLinkDirective] });
213
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiLinkModule });
210
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLinkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
211
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: SiLinkModule, imports: [SiLinkDirective], exports: [SiLinkDirective] });
212
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLinkModule });
214
213
  }
215
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiLinkModule, decorators: [{
214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLinkModule, decorators: [{
216
215
  type: NgModule,
217
216
  args: [{
218
217
  imports: [SiLinkDirective],
@@ -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 (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 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 exportAs: 'siLink'\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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"}
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\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 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 exportAs: 'siLink'\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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"}