@siemens/element-ng 49.16.0 → 51.0.0-rc.10

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 (314) hide show
  1. package/README.md +1 -1
  2. package/fesm2022/siemens-element-ng-about.mjs +41 -25
  3. package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
  4. package/fesm2022/siemens-element-ng-accordion.mjs +59 -41
  5. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
  6. package/fesm2022/siemens-element-ng-action-modal.mjs +83 -53
  7. package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
  8. package/fesm2022/siemens-element-ng-ag-grid.mjs +143 -148
  9. package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
  10. package/fesm2022/siemens-element-ng-application-header.mjs +180 -188
  11. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  12. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +34 -28
  13. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
  14. package/fesm2022/siemens-element-ng-autocomplete.mjs +27 -22
  15. package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
  16. package/fesm2022/siemens-element-ng-avatar.mjs +34 -24
  17. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  18. package/fesm2022/siemens-element-ng-badge.mjs +9 -8
  19. package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
  20. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +17 -14
  21. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
  22. package/fesm2022/siemens-element-ng-breadcrumb.mjs +21 -17
  23. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  24. package/fesm2022/siemens-element-ng-card.mjs +72 -47
  25. package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
  26. package/fesm2022/siemens-element-ng-carousel.mjs +58 -34
  27. package/fesm2022/siemens-element-ng-carousel.mjs.map +1 -1
  28. package/fesm2022/siemens-element-ng-chat-messages.mjs +323 -215
  29. package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
  30. package/fesm2022/siemens-element-ng-circle-status.mjs +39 -25
  31. package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
  32. package/fesm2022/siemens-element-ng-color-picker.mjs +44 -34
  33. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
  34. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +58 -37
  35. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
  36. package/fesm2022/siemens-element-ng-common.mjs +22 -22
  37. package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
  38. package/fesm2022/siemens-element-ng-connection-strength.mjs +14 -12
  39. package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
  40. package/fesm2022/siemens-element-ng-content-action-bar.mjs +37 -28
  41. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  42. package/fesm2022/siemens-element-ng-copyright-notice.mjs +19 -14
  43. package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
  44. package/fesm2022/siemens-element-ng-dashboard.mjs +337 -223
  45. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  46. package/fesm2022/siemens-element-ng-datatable.mjs +12 -15
  47. package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
  48. package/fesm2022/siemens-element-ng-date-range-filter.mjs +126 -76
  49. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  50. package/fesm2022/siemens-element-ng-datepicker.mjs +393 -251
  51. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  52. package/fesm2022/siemens-element-ng-electron-titlebar.mjs +22 -17
  53. package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
  54. package/fesm2022/siemens-element-ng-empty-state.mjs +15 -12
  55. package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
  56. package/fesm2022/siemens-element-ng-file-uploader.mjs +105 -91
  57. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  58. package/fesm2022/siemens-element-ng-filter-bar.mjs +33 -25
  59. package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
  60. package/fesm2022/siemens-element-ng-filtered-search.mjs +274 -165
  61. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  62. package/fesm2022/siemens-element-ng-footer.mjs +12 -10
  63. package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
  64. package/fesm2022/siemens-element-ng-form.mjs +361 -116
  65. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  66. package/fesm2022/siemens-element-ng-formly-legacy.mjs +99 -0
  67. package/fesm2022/siemens-element-ng-formly-legacy.mjs.map +1 -0
  68. package/fesm2022/siemens-element-ng-formly.mjs +224 -318
  69. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  70. package/fesm2022/siemens-element-ng-header-dropdown.mjs +40 -30
  71. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  72. package/fesm2022/siemens-element-ng-help-button.mjs +6 -6
  73. package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
  74. package/fesm2022/siemens-element-ng-icon.mjs +56 -57
  75. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  76. package/fesm2022/siemens-element-ng-info-page.mjs +17 -11
  77. package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
  78. package/fesm2022/siemens-element-ng-inline-notification.mjs +19 -14
  79. package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
  80. package/fesm2022/siemens-element-ng-ip-input.mjs +19 -15
  81. package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
  82. package/fesm2022/siemens-element-ng-landing-page.mjs +121 -75
  83. package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
  84. package/fesm2022/siemens-element-ng-language-switcher.mjs +16 -12
  85. package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
  86. package/fesm2022/siemens-element-ng-link.mjs +31 -21
  87. package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
  88. package/fesm2022/siemens-element-ng-list-details.mjs +132 -66
  89. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  90. package/fesm2022/siemens-element-ng-loading-spinner.mjs +51 -64
  91. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
  92. package/fesm2022/siemens-element-ng-localization.mjs +14 -12
  93. package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
  94. package/fesm2022/siemens-element-ng-main-detail-container.mjs +116 -51
  95. package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
  96. package/fesm2022/siemens-element-ng-maplibre.mjs +401 -0
  97. package/fesm2022/siemens-element-ng-maplibre.mjs.map +1 -0
  98. package/fesm2022/siemens-element-ng-markdown-directives-tabs.mjs +70 -0
  99. package/fesm2022/siemens-element-ng-markdown-directives-tabs.mjs.map +1 -0
  100. package/fesm2022/siemens-element-ng-markdown-extensions-citations.mjs +215 -0
  101. package/fesm2022/siemens-element-ng-markdown-extensions-citations.mjs.map +1 -0
  102. package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs +76 -0
  103. package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs.map +1 -0
  104. package/fesm2022/siemens-element-ng-markdown-extensions-mermaid.mjs +86 -0
  105. package/fesm2022/siemens-element-ng-markdown-extensions-mermaid.mjs.map +1 -0
  106. package/fesm2022/siemens-element-ng-markdown-hightlighter-highlightjs.mjs +130 -0
  107. package/fesm2022/siemens-element-ng-markdown-hightlighter-highlightjs.mjs.map +1 -0
  108. package/fesm2022/siemens-element-ng-markdown.mjs +800 -0
  109. package/fesm2022/siemens-element-ng-markdown.mjs.map +1 -0
  110. package/fesm2022/siemens-element-ng-menu.mjs +71 -57
  111. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  112. package/fesm2022/siemens-element-ng-modal.mjs +14 -11
  113. package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
  114. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +251 -206
  115. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
  116. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +123 -86
  117. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  118. package/fesm2022/siemens-element-ng-navbar.mjs +72 -45
  119. package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
  120. package/fesm2022/siemens-element-ng-notification-item.mjs +19 -11
  121. package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
  122. package/fesm2022/siemens-element-ng-number-input.mjs +41 -29
  123. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  124. package/fesm2022/siemens-element-ng-pagination.mjs +31 -20
  125. package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
  126. package/fesm2022/siemens-element-ng-password-strength.mjs +33 -24
  127. package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
  128. package/fesm2022/siemens-element-ng-password-toggle.mjs +19 -14
  129. package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
  130. package/fesm2022/siemens-element-ng-phone-number.mjs +144 -139
  131. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
  132. package/fesm2022/siemens-element-ng-photo-upload.mjs +85 -52
  133. package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
  134. package/fesm2022/siemens-element-ng-pills-input.mjs +56 -41
  135. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
  136. package/fesm2022/siemens-element-ng-popover-legacy.mjs +43 -28
  137. package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
  138. package/fesm2022/siemens-element-ng-popover.mjs +35 -27
  139. package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
  140. package/fesm2022/siemens-element-ng-progressbar.mjs +23 -16
  141. package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
  142. package/fesm2022/siemens-element-ng-resize-observer.mjs +32 -43
  143. package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
  144. package/fesm2022/siemens-element-ng-result-details-list.mjs +12 -10
  145. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
  146. package/fesm2022/siemens-element-ng-search-bar.mjs +38 -37
  147. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  148. package/fesm2022/siemens-element-ng-select.mjs +265 -170
  149. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  150. package/fesm2022/siemens-element-ng-shadow-root.mjs +4 -4
  151. package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
  152. package/fesm2022/siemens-element-ng-side-panel.mjs +181 -104
  153. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  154. package/fesm2022/siemens-element-ng-skip-links.mjs +21 -24
  155. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
  156. package/fesm2022/siemens-element-ng-slider.mjs +45 -30
  157. package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
  158. package/fesm2022/siemens-element-ng-source-chip.mjs +79 -0
  159. package/fesm2022/siemens-element-ng-source-chip.mjs.map +1 -0
  160. package/fesm2022/siemens-element-ng-split.mjs +290 -306
  161. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  162. package/fesm2022/siemens-element-ng-status-bar.mjs +66 -52
  163. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  164. package/fesm2022/siemens-element-ng-status-counter.mjs +15 -11
  165. package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
  166. package/fesm2022/siemens-element-ng-status-toggle.mjs +26 -16
  167. package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
  168. package/fesm2022/siemens-element-ng-summary-chip.mjs +25 -16
  169. package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
  170. package/fesm2022/siemens-element-ng-summary-widget.mjs +27 -17
  171. package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
  172. package/fesm2022/siemens-element-ng-system-banner.mjs +13 -10
  173. package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
  174. package/fesm2022/siemens-element-ng-tabs-legacy.mjs +20 -17
  175. package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
  176. package/fesm2022/siemens-element-ng-tabs.mjs +156 -131
  177. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  178. package/fesm2022/siemens-element-ng-theme.mjs +29 -6
  179. package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
  180. package/fesm2022/siemens-element-ng-threshold.mjs +62 -42
  181. package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
  182. package/fesm2022/siemens-element-ng-toast-notification.mjs +59 -40
  183. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
  184. package/fesm2022/siemens-element-ng-tooltip.mjs +108 -82
  185. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
  186. package/fesm2022/siemens-element-ng-tour.mjs +36 -19
  187. package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
  188. package/fesm2022/siemens-element-ng-translate.mjs +0 -1
  189. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  190. package/fesm2022/siemens-element-ng-tree-view.mjs +113 -84
  191. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  192. package/fesm2022/siemens-element-ng-typeahead.mjs +69 -49
  193. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  194. package/fesm2022/siemens-element-ng-wizard.mjs +95 -54
  195. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  196. package/formly-legacy/package.json +4 -0
  197. package/maplibre/package.json +4 -0
  198. package/maplibre/styles/_index.scss +1 -0
  199. package/maplibre/styles/maplibre-gl.scss +724 -0
  200. package/markdown/directives/tabs/package.json +4 -0
  201. package/markdown/extensions/citations/package.json +4 -0
  202. package/markdown/extensions/katex/package.json +4 -0
  203. package/markdown/extensions/mermaid/package.json +4 -0
  204. package/markdown/hightlighter/highlightjs/package.json +4 -0
  205. package/markdown/package.json +4 -0
  206. package/package.json +96 -25
  207. package/schematics/collection.json +5 -0
  208. package/schematics/{migrations/icon-path-migration → migrate-tabs-legacy}/index.js +1 -1
  209. package/schematics/migrate-tabs-legacy/migrate-tabs-legacy-rule.js +675 -0
  210. package/schematics/migrate-tabs-legacy/schema.json +14 -0
  211. package/schematics/migration.json +4 -4
  212. package/schematics/migrations/data/class-member-replacement.js +1 -19
  213. package/schematics/migrations/data/component-property-names.js +1 -25
  214. package/schematics/migrations/data/component-property-to-child.js +11 -0
  215. package/schematics/migrations/data/css-custom-properties.js +224 -0
  216. package/schematics/migrations/data/element-class-changes.js +116 -18
  217. package/schematics/migrations/data/element-migration-data.js +6 -0
  218. package/schematics/migrations/data/element-selectors.js +1 -9
  219. package/schematics/migrations/data/index.js +0 -4
  220. package/schematics/migrations/data/migration-test-data.js +49 -6
  221. package/schematics/migrations/data/provider-function-removals.js +7 -0
  222. package/schematics/migrations/data/symbol-removals.js +17 -7
  223. package/schematics/migrations/data/symbol-renaming.js +3 -44
  224. package/schematics/migrations/element-migration/element-migration.js +6 -6
  225. package/schematics/migrations/utilities/component-property-to-child.migration.js +73 -0
  226. package/schematics/migrations/utilities/css-custom-property.migration.js +51 -0
  227. package/schematics/migrations/utilities/element-class-change.migration.js +10 -5
  228. package/schematics/migrations/utilities/import-removal.js +39 -0
  229. package/schematics/migrations/utilities/index.js +4 -0
  230. package/schematics/migrations/utilities/provider-function-removal.migration.js +116 -0
  231. package/schematics/ng-update/index.js +1 -1
  232. package/schematics/ng-update/migrate-content-formatter.js +288 -0
  233. package/schematics/ng-update/migrate-list-details-units.js +86 -0
  234. package/schematics/ng-update/migrate-main-detail-units.js +89 -0
  235. package/schematics/ng-update/migrate-markdown-renderer.js +106 -0
  236. package/schematics/ng-update/migrate-spacers.js +32 -0
  237. package/schematics/ng-update/migrate-split-collapse.js +276 -0
  238. package/schematics/ng-update/migrate-split-scale.js +524 -0
  239. package/schematics/ng-update/migrate-split-sizes.js +107 -0
  240. package/schematics/ng-update/migrate-to-v51.js +35 -0
  241. package/schematics/utils/index.js +1 -0
  242. package/schematics/utils/template-edit-utils.js +35 -0
  243. package/schematics/utils/template-utils.js +31 -45
  244. package/source-chip/package.json +4 -0
  245. package/template-i18n.json +78 -47
  246. package/types/siemens-element-ng-application-header.d.ts +7 -33
  247. package/types/siemens-element-ng-avatar.d.ts +1 -1
  248. package/types/siemens-element-ng-breadcrumb.d.ts +1 -1
  249. package/types/siemens-element-ng-chat-messages.d.ts +118 -70
  250. package/types/siemens-element-ng-circle-status.d.ts +1 -1
  251. package/types/siemens-element-ng-content-action-bar.d.ts +1 -1
  252. package/types/siemens-element-ng-dashboard.d.ts +2 -2
  253. package/types/siemens-element-ng-datatable.d.ts +5 -56
  254. package/types/siemens-element-ng-date-range-filter.d.ts +1 -1
  255. package/types/siemens-element-ng-datepicker.d.ts +8 -15
  256. package/types/siemens-element-ng-electron-titlebar.d.ts +1 -1
  257. package/types/siemens-element-ng-file-uploader.d.ts +13 -31
  258. package/types/siemens-element-ng-filter-bar.d.ts +1 -1
  259. package/types/siemens-element-ng-filtered-search.d.ts +4 -4
  260. package/types/siemens-element-ng-form.d.ts +183 -44
  261. package/types/siemens-element-ng-formly-legacy.d.ts +40 -0
  262. package/types/siemens-element-ng-formly.d.ts +34 -167
  263. package/types/siemens-element-ng-icon.d.ts +2 -19
  264. package/types/siemens-element-ng-landing-page.d.ts +2 -2
  265. package/types/siemens-element-ng-list-details.d.ts +25 -3
  266. package/types/siemens-element-ng-loading-spinner.d.ts +11 -17
  267. package/types/siemens-element-ng-main-detail-container.d.ts +23 -3
  268. package/types/siemens-element-ng-maplibre.d.ts +190 -0
  269. package/types/siemens-element-ng-markdown-directives-tabs.d.ts +10 -0
  270. package/types/siemens-element-ng-markdown-extensions-citations.d.ts +11 -0
  271. package/types/siemens-element-ng-markdown-extensions-katex.d.ts +19 -0
  272. package/types/siemens-element-ng-markdown-extensions-mermaid.d.ts +11 -0
  273. package/types/siemens-element-ng-markdown-hightlighter-highlightjs.d.ts +48 -0
  274. package/types/siemens-element-ng-markdown.d.ts +367 -0
  275. package/types/siemens-element-ng-menu.d.ts +2 -0
  276. package/types/siemens-element-ng-navbar-vertical-next.d.ts +87 -39
  277. package/types/siemens-element-ng-navbar-vertical.d.ts +1 -1
  278. package/types/siemens-element-ng-navbar.d.ts +3 -3
  279. package/types/siemens-element-ng-notification-item.d.ts +12 -0
  280. package/types/siemens-element-ng-phone-number.d.ts +28 -10
  281. package/types/siemens-element-ng-photo-upload.d.ts +4 -4
  282. package/types/siemens-element-ng-resize-observer.d.ts +0 -17
  283. package/types/siemens-element-ng-search-bar.d.ts +2 -9
  284. package/types/siemens-element-ng-select.d.ts +32 -5
  285. package/types/siemens-element-ng-side-panel.d.ts +25 -11
  286. package/types/siemens-element-ng-source-chip.d.ts +53 -0
  287. package/types/siemens-element-ng-split.d.ts +101 -78
  288. package/types/siemens-element-ng-status-bar.d.ts +5 -13
  289. package/types/siemens-element-ng-status-counter.d.ts +1 -1
  290. package/types/siemens-element-ng-system-banner.d.ts +2 -2
  291. package/types/siemens-element-ng-tabs.d.ts +1 -2
  292. package/types/siemens-element-ng-theme.d.ts +12 -2
  293. package/types/siemens-element-ng-threshold.d.ts +1 -1
  294. package/types/siemens-element-ng-toast-notification.d.ts +0 -1
  295. package/types/siemens-element-ng-tooltip.d.ts +7 -7
  296. package/types/siemens-element-ng-translate.d.ts +35 -5
  297. package/types/siemens-element-ng-tree-view.d.ts +3 -0
  298. package/types/siemens-element-ng-wizard.d.ts +18 -3
  299. package/fesm2022/siemens-element-ng-icon-status.mjs +0 -46
  300. package/fesm2022/siemens-element-ng-icon-status.mjs.map +0 -1
  301. package/fesm2022/siemens-element-ng-markdown-renderer.mjs +0 -263
  302. package/fesm2022/siemens-element-ng-markdown-renderer.mjs.map +0 -1
  303. package/fesm2022/siemens-element-ng-sort-bar.mjs +0 -99
  304. package/fesm2022/siemens-element-ng-sort-bar.mjs.map +0 -1
  305. package/icon-status/package.json +0 -4
  306. package/markdown-renderer/package.json +0 -4
  307. package/schematics/migrations/icon-path-migration/icon-path-migration.js +0 -95
  308. package/schematics/ng-update/migrate-to-v49.js +0 -21
  309. package/schematics/vitest-setup.js +0 -5
  310. package/sort-bar/package.json +0 -4
  311. package/types/siemens-element-ng-icon-status.d.ts +0 -25
  312. package/types/siemens-element-ng-markdown-renderer.d.ts +0 -36
  313. package/types/siemens-element-ng-sort-bar.d.ts +0 -59
  314. /package/{LICENSE.md → LICENSE} +0 -0
@@ -0,0 +1,276 @@
1
+ /**
2
+ * Copyright (c) Siemens 2016 - 2026
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+ import { dirname, join } from 'path/posix';
6
+ import ts from 'typescript';
7
+ import { discoverSourceFiles, findElement, formatBoundAttribute, getInlineTemplates, getTemplateUrl, insertAttribute, removeAttribute, replaceAttribute } from '../utils/index.js';
8
+ const collapseValues = new Map([
9
+ ['start', 'to-start'],
10
+ ['end', 'to-end']
11
+ ]);
12
+ const collapseDirectionNames = ['collapseDirection', '[collapseDirection]'];
13
+ const collapsibleNames = ['collapsible', '[collapsible]'];
14
+ const showCollapseButtonNames = ['showCollapseButton', '[showCollapseButton]'];
15
+ export const splitCollapseMigrationRule = (options) => {
16
+ return async (tree, context) => {
17
+ const processedTemplates = new Set();
18
+ for await (const discoveredSourceFile of discoverSourceFiles(tree, context, options.path)) {
19
+ const { path: filePath, sourceFile } = discoveredSourceFile;
20
+ const recorder = tree.beginUpdate(filePath);
21
+ for (const template of getInlineTemplates(sourceFile)) {
22
+ migrateSplitCollapseTemplate(sourceFile.text.substring(template.getStart() + 1, template.getEnd() - 1), template.getStart() + 1, recorder);
23
+ }
24
+ migrateCollapseToLiterals(sourceFile, recorder);
25
+ tree.commitUpdate(recorder);
26
+ for (const templateUrl of getTemplateUrl(sourceFile)) {
27
+ const templatePath = join(dirname(filePath), templateUrl);
28
+ if (processedTemplates.has(templatePath) || !tree.exists(templatePath)) {
29
+ continue;
30
+ }
31
+ processedTemplates.add(templatePath);
32
+ const templateRecorder = tree.beginUpdate(templatePath);
33
+ migrateSplitCollapseTemplate(tree.read(templatePath).toString('utf-8'), 0, templateRecorder);
34
+ tree.commitUpdate(templateRecorder);
35
+ }
36
+ }
37
+ return tree;
38
+ };
39
+ };
40
+ const migrateSplitCollapseTemplate = (template, offset, recorder) => {
41
+ findElement(template, element => element.name === 'si-split-part').forEach(element => {
42
+ migrateSplitCollapseElement(template, element, offset, recorder);
43
+ });
44
+ };
45
+ const migrateSplitCollapseElement = (template, element, offset, recorder) => {
46
+ const showCollapseButton = element.attrs.find(attribute => showCollapseButtonNames.includes(attribute.name));
47
+ const collapseDirections = element.attrs.filter(attribute => collapseDirectionNames.includes(attribute.name));
48
+ const collapseDirection = collapseDirections[0];
49
+ const collapsible = element.attrs.find(attribute => collapsibleNames.includes(attribute.name));
50
+ if (showCollapseButton) {
51
+ const staticValue = getStaticBooleanValue(showCollapseButton);
52
+ if (staticValue === undefined) {
53
+ const target = collapsible ?? collapseDirection ?? showCollapseButton;
54
+ replaceAttribute(target, formatBoundAttribute('collapsible', `${getBooleanAttributeCondition(getShowCollapseButtonExpression(showCollapseButton))} ? ${getCollapsibleExpression(collapsible ?? collapseDirection)} : undefined`), offset, recorder);
55
+ if (target !== showCollapseButton) {
56
+ removeAttribute(template, showCollapseButton, offset, recorder);
57
+ }
58
+ collapseDirections
59
+ .filter(attribute => attribute !== target)
60
+ .forEach(attribute => removeAttribute(template, attribute, offset, recorder));
61
+ return;
62
+ }
63
+ removeAttribute(template, showCollapseButton, offset, recorder);
64
+ if (!staticValue && !collapsible) {
65
+ collapseDirections.forEach(attribute => removeAttribute(template, attribute, offset, recorder));
66
+ return;
67
+ }
68
+ }
69
+ if (collapsible) {
70
+ collapseDirections.forEach(attribute => removeAttribute(template, attribute, offset, recorder));
71
+ return;
72
+ }
73
+ if (collapseDirections.length > 0) {
74
+ collapseDirections.forEach(attribute => migrateCollapseDirection(attribute, offset, recorder));
75
+ }
76
+ else {
77
+ insertAttribute(template, element, 'collapsible="to-start"', offset, recorder);
78
+ }
79
+ };
80
+ const migrateCollapseDirection = (attribute, offset, recorder) => {
81
+ const isBound = attribute.name.startsWith('[');
82
+ const attributeNameOffset = attribute.sourceSpan.start.offset + offset + (isBound ? 1 : 0);
83
+ recorder.remove(attributeNameOffset, 'collapseDirection'.length);
84
+ recorder.insertLeft(attributeNameOffset, 'collapsible');
85
+ const value = isBound ? getStringLiteral(attribute.value) : collapseValues.get(attribute.value);
86
+ if (!value || !attribute.valueSpan) {
87
+ return;
88
+ }
89
+ const valueOffset = attribute.valueSpan.start.offset + offset;
90
+ recorder.remove(valueOffset, attribute.valueSpan.end.offset - attribute.valueSpan.start.offset);
91
+ recorder.insertLeft(valueOffset, isBound ? `'${value}'` : value);
92
+ };
93
+ const getCollapsibleExpression = (attribute) => {
94
+ if (!attribute) {
95
+ return `'to-start'`;
96
+ }
97
+ if (attribute.name.startsWith('[')) {
98
+ const migratedLiteral = getStringLiteral(attribute.value);
99
+ return migratedLiteral ? `'${migratedLiteral}'` : `(${attribute.value})`;
100
+ }
101
+ return `'${collapseValues.get(attribute.value) ?? attribute.value}'`;
102
+ };
103
+ const getStaticBooleanValue = (attribute) => {
104
+ if (!attribute.name.startsWith('[')) {
105
+ if (/^\s*{{[\s\S]*}}\s*$/.test(attribute.value)) {
106
+ return undefined;
107
+ }
108
+ return attribute.value !== 'false';
109
+ }
110
+ const initializer = getExpression(attribute.value);
111
+ if (!initializer) {
112
+ return undefined;
113
+ }
114
+ if (initializer.kind === ts.SyntaxKind.TrueKeyword) {
115
+ return true;
116
+ }
117
+ if (initializer.kind === ts.SyntaxKind.FalseKeyword ||
118
+ initializer.kind === ts.SyntaxKind.NullKeyword ||
119
+ (ts.isIdentifier(initializer) && initializer.text === 'undefined') ||
120
+ (ts.isStringLiteral(initializer) && initializer.text === 'false')) {
121
+ return false;
122
+ }
123
+ if (ts.isStringLiteral(initializer) || ts.isNumericLiteral(initializer)) {
124
+ return true;
125
+ }
126
+ return undefined;
127
+ };
128
+ const getShowCollapseButtonExpression = (attribute) => {
129
+ if (attribute.name.startsWith('[')) {
130
+ return attribute.value;
131
+ }
132
+ return attribute.value.replace(/^\s*{{\s*|\s*}}\s*$/g, '');
133
+ };
134
+ const getBooleanAttributeCondition = (expression) => `![false, null, undefined, 'false'].includes($any(${expression}))`;
135
+ const getStringLiteral = (value) => {
136
+ const initializer = getExpression(value);
137
+ return initializer && ts.isStringLiteral(initializer)
138
+ ? collapseValues.get(initializer.text)
139
+ : undefined;
140
+ };
141
+ const getExpression = (value) => {
142
+ const statement = ts.createSourceFile('template-expression.ts', `const value = ${value};`, ts.ScriptTarget.Latest, true).statements[0];
143
+ if (!statement || !ts.isVariableStatement(statement)) {
144
+ return undefined;
145
+ }
146
+ return statement.declarationList.declarations[0]?.initializer;
147
+ };
148
+ const migrateCollapseToLiterals = (sourceFile, recorder) => {
149
+ const collapseToTypeNames = getCollapseToTypeNames(sourceFile);
150
+ if (collapseToTypeNames.size === 0) {
151
+ return;
152
+ }
153
+ const collapseToVariables = new Set();
154
+ const visit = (node) => {
155
+ if (ts.isVariableDeclaration(node) &&
156
+ ts.isIdentifier(node.name) &&
157
+ (isCollapseToType(node.type, collapseToTypeNames) ||
158
+ isCollapseToExpression(node.initializer, collapseToTypeNames))) {
159
+ collapseToVariables.add(node.name.text);
160
+ replaceCollapseLiterals(node.initializer, recorder);
161
+ }
162
+ if (ts.isPropertyDeclaration(node) &&
163
+ ts.isIdentifier(node.name) &&
164
+ (isCollapseToType(node.type, collapseToTypeNames) ||
165
+ isCollapseToExpression(node.initializer, collapseToTypeNames))) {
166
+ collapseToVariables.add(node.name.text);
167
+ replaceCollapseLiterals(node.initializer, recorder);
168
+ }
169
+ if (ts.isParameter(node) &&
170
+ ts.isIdentifier(node.name) &&
171
+ isCollapseToType(node.type, collapseToTypeNames)) {
172
+ collapseToVariables.add(node.name.text);
173
+ }
174
+ ts.forEachChild(node, visit);
175
+ };
176
+ visit(sourceFile);
177
+ migrateCollapseToSetCalls(sourceFile, collapseToVariables, recorder);
178
+ };
179
+ const getCollapseToTypeNames = (sourceFile) => {
180
+ const names = new Set();
181
+ sourceFile.statements.forEach(statement => {
182
+ if (!ts.isImportDeclaration(statement) || !ts.isStringLiteral(statement.moduleSpecifier)) {
183
+ return;
184
+ }
185
+ const importPath = statement.moduleSpecifier.text;
186
+ if (!importPath.startsWith('@siemens/element-ng/split')) {
187
+ return;
188
+ }
189
+ const imports = statement.importClause?.namedBindings;
190
+ if (!imports || !ts.isNamedImports(imports)) {
191
+ return;
192
+ }
193
+ imports.elements.forEach(importSpecifier => {
194
+ if ((importSpecifier.propertyName?.text ?? importSpecifier.name.text) === 'CollapseTo') {
195
+ names.add(importSpecifier.name.text);
196
+ }
197
+ });
198
+ });
199
+ let addedName = true;
200
+ while (addedName) {
201
+ addedName = false;
202
+ for (const statement of sourceFile.statements) {
203
+ if (ts.isTypeAliasDeclaration(statement) &&
204
+ isCollapseToType(statement.type, names) &&
205
+ !names.has(statement.name.text)) {
206
+ names.add(statement.name.text);
207
+ addedName = true;
208
+ }
209
+ }
210
+ }
211
+ return names;
212
+ };
213
+ const isCollapseToType = (node, names) => {
214
+ if (!node) {
215
+ return false;
216
+ }
217
+ if (ts.isTypeReferenceNode(node) && ts.isIdentifier(node.typeName)) {
218
+ return (names.has(node.typeName.text) ||
219
+ node.typeArguments?.some(typeArgument => isCollapseToType(typeArgument, names)) === true);
220
+ }
221
+ if (ts.isArrayTypeNode(node)) {
222
+ return isCollapseToType(node.elementType, names);
223
+ }
224
+ if (ts.isParenthesizedTypeNode(node)) {
225
+ return isCollapseToType(node.type, names);
226
+ }
227
+ if (ts.isUnionTypeNode(node)) {
228
+ return node.types.some(type => isCollapseToType(type, names));
229
+ }
230
+ return false;
231
+ };
232
+ const isCollapseToExpression = (node, names) => !!node &&
233
+ ts.isCallExpression(node) &&
234
+ node.typeArguments?.some(typeArgument => isCollapseToType(typeArgument, names)) === true;
235
+ const migrateCollapseToSetCalls = (sourceFile, collapseToVariables, recorder) => {
236
+ const visit = (node) => {
237
+ if (ts.isCallExpression(node) &&
238
+ ts.isPropertyAccessExpression(node.expression) &&
239
+ (node.expression.name.text === 'set' || node.expression.name.text === 'update') &&
240
+ collapseToVariables.has(getRootIdentifier(node.expression.expression) ?? '')) {
241
+ node.arguments.forEach(argument => replaceCollapseLiterals(argument, recorder));
242
+ }
243
+ if (ts.isBinaryExpression(node) &&
244
+ node.operatorToken.kind === ts.SyntaxKind.EqualsToken &&
245
+ collapseToVariables.has(getRootIdentifier(node.left) ?? '')) {
246
+ replaceCollapseLiterals(node.right, recorder);
247
+ }
248
+ ts.forEachChild(node, visit);
249
+ };
250
+ visit(sourceFile);
251
+ };
252
+ const getRootIdentifier = (node) => {
253
+ if (ts.isIdentifier(node)) {
254
+ return node.text;
255
+ }
256
+ if (ts.isPropertyAccessExpression(node)) {
257
+ return node.name.text;
258
+ }
259
+ return undefined;
260
+ };
261
+ const replaceCollapseLiterals = (node, recorder) => {
262
+ if (!node) {
263
+ return;
264
+ }
265
+ const visit = (child) => {
266
+ if (ts.isStringLiteral(child)) {
267
+ const replacement = collapseValues.get(child.text);
268
+ if (replacement) {
269
+ recorder.remove(child.getStart() + 1, child.getWidth() - 2);
270
+ recorder.insertLeft(child.getStart() + 1, replacement);
271
+ }
272
+ }
273
+ ts.forEachChild(child, visit);
274
+ };
275
+ visit(node);
276
+ };