@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.
- package/about/package.json +2 -1
- package/accordion/package.json +2 -1
- package/action-modal/package.json +2 -1
- package/ag-grid/package.json +2 -1
- package/application-header/package.json +2 -1
- package/auto-collapsable-list/package.json +2 -1
- package/autocomplete/package.json +2 -1
- package/avatar/package.json +2 -1
- package/badge/package.json +2 -1
- package/breadcrumb/package.json +2 -1
- package/breadcrumb-router/package.json +2 -1
- package/card/package.json +2 -1
- package/chat-messages/package.json +2 -1
- package/circle-status/package.json +2 -1
- package/color-picker/package.json +2 -1
- package/column-selection-dialog/package.json +2 -1
- package/common/package.json +2 -1
- package/connection-strength/package.json +2 -1
- package/content-action-bar/package.json +2 -1
- package/copyright-notice/package.json +2 -1
- package/dashboard/package.json +2 -1
- package/datatable/package.json +2 -1
- package/date-range-filter/package.json +2 -1
- package/datepicker/package.json +2 -1
- package/electron-titlebar/package.json +2 -1
- package/empty-state/package.json +2 -1
- package/fesm2022/siemens-element-ng-about.mjs +25 -24
- package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-accordion.mjs +49 -75
- package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-action-modal.mjs +59 -55
- package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ag-grid.mjs +33 -37
- package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-application-header.mjs +122 -150
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +30 -32
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-autocomplete.mjs +34 -48
- package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-avatar.mjs +23 -24
- package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-badge.mjs +6 -6
- package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +16 -16
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb.mjs +18 -17
- package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-card.mjs +32 -34
- package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-chat-messages.mjs +204 -109
- package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-circle-status.mjs +26 -26
- package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-color-picker.mjs +18 -17
- package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +36 -35
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-common.mjs +13 -38
- package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-connection-strength.mjs +11 -11
- package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-content-action-bar.mjs +33 -30
- package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-copyright-notice.mjs +13 -13
- package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs +161 -169
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datatable.mjs +9 -9
- package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs +128 -149
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +260 -271
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs +19 -18
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-empty-state.mjs +11 -11
- package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-file-uploader.mjs +66 -69
- package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filter-bar.mjs +23 -23
- package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +141 -159
- package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-footer.mjs +10 -10
- package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-form.mjs +99 -85
- package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-formly.mjs +96 -94
- package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-header-dropdown.mjs +33 -33
- package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-help-button.mjs +7 -6
- package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-icon-status.mjs +4 -4
- package/fesm2022/siemens-element-ng-icon.mjs +53 -135
- package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-info-page.mjs +11 -12
- package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-inline-notification.mjs +15 -16
- package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ip-input.mjs +16 -16
- package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-landing-page.mjs +71 -71
- package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-language-switcher.mjs +13 -13
- package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-link.mjs +22 -23
- package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-list-details.mjs +68 -86
- package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-loading-spinner.mjs +38 -52
- package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-localization.mjs +14 -11
- package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-main-detail-container.mjs +30 -30
- package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-markdown-renderer.mjs +5 -5
- package/fesm2022/siemens-element-ng-markdown-renderer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-menu.mjs +55 -54
- package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-modal.mjs +10 -13
- package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +183 -298
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar.mjs +43 -43
- package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-notification-item.mjs +14 -13
- package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-number-input.mjs +32 -32
- package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pagination.mjs +21 -20
- package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-strength.mjs +21 -21
- package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-toggle.mjs +19 -15
- package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-phone-number.mjs +56 -50
- package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-photo-upload.mjs +48 -47
- package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pills-input.mjs +45 -44
- package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover-legacy.mjs +31 -31
- package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover.mjs +29 -29
- package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-progressbar.mjs +15 -15
- package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-resize-observer.mjs +25 -61
- package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-result-details-list.mjs +13 -12
- package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-search-bar.mjs +25 -24
- package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-select.mjs +204 -347
- package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-shadow-root.mjs +3 -3
- package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-side-panel.mjs +144 -69
- package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-skip-links.mjs +13 -13
- package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-slider.mjs +30 -29
- package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-sort-bar.mjs +14 -13
- package/fesm2022/siemens-element-ng-sort-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-split.mjs +26 -28
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs +42 -43
- package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-counter.mjs +11 -12
- package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-toggle.mjs +15 -16
- package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-chip.mjs +16 -17
- package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-widget.mjs +16 -16
- package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-system-banner.mjs +7 -7
- package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs +16 -16
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs.mjs +44 -47
- package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-theme.mjs +4 -4
- package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-threshold.mjs +51 -71
- package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-toast-notification.mjs +26 -52
- package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tooltip.mjs +60 -68
- package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tour.mjs +20 -20
- package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tree-view.mjs +92 -117
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs +46 -62
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-wizard.mjs +49 -48
- package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
- package/file-uploader/package.json +2 -1
- package/filter-bar/package.json +2 -1
- package/filtered-search/package.json +2 -1
- package/footer/package.json +2 -1
- package/form/package.json +2 -1
- package/formly/package.json +2 -1
- package/header-dropdown/package.json +2 -1
- package/help-button/package.json +2 -1
- package/icon/package.json +2 -1
- package/icon-status/package.json +2 -1
- package/info-page/package.json +2 -1
- package/inline-notification/package.json +2 -1
- package/ip-input/package.json +2 -1
- package/landing-page/package.json +2 -1
- package/language-switcher/package.json +2 -1
- package/link/package.json +2 -1
- package/list-details/package.json +2 -1
- package/loading-spinner/package.json +2 -1
- package/localization/package.json +2 -1
- package/main-detail-container/package.json +2 -1
- package/markdown-renderer/package.json +2 -1
- package/menu/package.json +2 -1
- package/modal/package.json +2 -1
- package/navbar/package.json +2 -1
- package/navbar-vertical/package.json +2 -1
- package/notification-item/package.json +2 -1
- package/number-input/package.json +2 -1
- package/package.json +115 -107
- package/pagination/package.json +2 -1
- package/password-strength/package.json +2 -1
- package/password-toggle/package.json +2 -1
- package/phone-number/package.json +2 -1
- package/photo-upload/package.json +2 -1
- package/pills-input/package.json +2 -1
- package/popover/package.json +2 -1
- package/popover-legacy/package.json +2 -1
- package/progressbar/package.json +2 -1
- package/resize-observer/package.json +2 -1
- package/result-details-list/package.json +2 -1
- package/schematics/collection.json +0 -12
- package/schematics/migration.json +15 -0
- package/schematics/migrations/data/attribute-selectors.js +1 -6
- package/schematics/migrations/data/component-names.js +9 -68
- package/schematics/migrations/data/element-selectors.js +9 -8
- package/schematics/migrations/data/index.js +0 -1
- package/schematics/migrations/data/migration-test-data.js +167 -0
- package/schematics/migrations/data/output-names.js +1 -7
- package/schematics/migrations/data/symbol-removals.js +4 -45
- package/schematics/migrations/element-migration/element-migration.js +1 -3
- package/schematics/migrations/index.js +15 -5
- package/schematics/migrations/ngx-translate/index.js +93 -0
- package/schematics/ng-update/index.js +17 -0
- package/schematics/ng-update/schema.json +15 -0
- package/schematics/simpl-siemens-migration/index.js +1 -5
- package/schematics/utils/ts-utils.js +135 -0
- package/search-bar/package.json +2 -1
- package/select/package.json +2 -1
- package/shadow-root/package.json +2 -1
- package/side-panel/package.json +2 -1
- package/skip-links/package.json +2 -1
- package/slider/package.json +2 -1
- package/sort-bar/package.json +2 -1
- package/split/package.json +2 -1
- package/status-bar/package.json +2 -1
- package/status-counter/package.json +2 -1
- package/status-toggle/package.json +2 -1
- package/summary-chip/package.json +2 -1
- package/summary-widget/package.json +2 -1
- package/system-banner/package.json +2 -1
- package/tabs/package.json +2 -1
- package/tabs-legacy/package.json +2 -1
- package/template-i18n.json +32 -25
- package/test-styles.scss +5 -0
- package/theme/package.json +2 -1
- package/threshold/package.json +2 -1
- package/toast-notification/package.json +2 -1
- package/tooltip/package.json +2 -1
- package/tour/package.json +2 -1
- package/translate/package.json +2 -1
- package/tree-view/package.json +2 -1
- package/typeahead/package.json +2 -1
- package/{accordion/index.d.ts → types/siemens-element-ng-accordion.d.ts} +2 -3
- package/{application-header/index.d.ts → types/siemens-element-ng-application-header.d.ts} +19 -18
- package/{autocomplete/index.d.ts → types/siemens-element-ng-autocomplete.d.ts} +1 -3
- package/{breadcrumb/index.d.ts → types/siemens-element-ng-breadcrumb.d.ts} +2 -2
- package/{chat-messages/index.d.ts → types/siemens-element-ng-chat-messages.d.ts} +72 -10
- package/{common/index.d.ts → types/siemens-element-ng-common.d.ts} +2 -30
- package/{content-action-bar/index.d.ts → types/siemens-element-ng-content-action-bar.d.ts} +2 -2
- package/{dashboard/index.d.ts → types/siemens-element-ng-dashboard.d.ts} +6 -6
- package/{date-range-filter/index.d.ts → types/siemens-element-ng-date-range-filter.d.ts} +28 -27
- package/{datepicker/index.d.ts → types/siemens-element-ng-datepicker.d.ts} +5 -6
- package/{electron-titlebar/index.d.ts → types/siemens-element-ng-electron-titlebar.d.ts} +4 -4
- package/{file-uploader/index.d.ts → types/siemens-element-ng-file-uploader.d.ts} +26 -26
- package/{filter-bar/index.d.ts → types/siemens-element-ng-filter-bar.d.ts} +4 -4
- package/{filtered-search/index.d.ts → types/siemens-element-ng-filtered-search.d.ts} +6 -21
- package/{form/index.d.ts → types/siemens-element-ng-form.d.ts} +4 -6
- package/{formly/index.d.ts → types/siemens-element-ng-formly.d.ts} +1 -1
- package/types/siemens-element-ng-icon.d.ts +203 -0
- package/{landing-page/index.d.ts → types/siemens-element-ng-landing-page.d.ts} +15 -15
- package/{language-switcher/index.d.ts → types/siemens-element-ng-language-switcher.d.ts} +1 -2
- package/{list-details/index.d.ts → types/siemens-element-ng-list-details.d.ts} +4 -11
- package/{loading-spinner/index.d.ts → types/siemens-element-ng-loading-spinner.d.ts} +2 -3
- package/{modal/index.d.ts → types/siemens-element-ng-modal.d.ts} +0 -6
- package/{navbar-vertical/index.d.ts → types/siemens-element-ng-navbar-vertical.d.ts} +12 -7
- package/{navbar/index.d.ts → types/siemens-element-ng-navbar.d.ts} +11 -11
- package/{notification-item/index.d.ts → types/siemens-element-ng-notification-item.d.ts} +15 -3
- package/{pagination/index.d.ts → types/siemens-element-ng-pagination.d.ts} +4 -4
- package/{password-toggle/index.d.ts → types/siemens-element-ng-password-toggle.d.ts} +6 -4
- package/{phone-number/index.d.ts → types/siemens-element-ng-phone-number.d.ts} +8 -11
- package/{pills-input/index.d.ts → types/siemens-element-ng-pills-input.d.ts} +3 -3
- package/{popover/index.d.ts → types/siemens-element-ng-popover.d.ts} +2 -2
- package/{resize-observer/index.d.ts → types/siemens-element-ng-resize-observer.d.ts} +0 -30
- package/{search-bar/index.d.ts → types/siemens-element-ng-search-bar.d.ts} +2 -2
- package/{select/index.d.ts → types/siemens-element-ng-select.d.ts} +18 -97
- package/{side-panel/index.d.ts → types/siemens-element-ng-side-panel.d.ts} +26 -5
- package/{slider/index.d.ts → types/siemens-element-ng-slider.d.ts} +4 -4
- package/{split/index.d.ts → types/siemens-element-ng-split.d.ts} +1 -3
- package/{status-bar/index.d.ts → types/siemens-element-ng-status-bar.d.ts} +6 -6
- package/{tabs-legacy/index.d.ts → types/siemens-element-ng-tabs-legacy.d.ts} +5 -0
- package/{threshold/index.d.ts → types/siemens-element-ng-threshold.d.ts} +7 -7
- package/{toast-notification/index.d.ts → types/siemens-element-ng-toast-notification.d.ts} +3 -4
- package/{tooltip/index.d.ts → types/siemens-element-ng-tooltip.d.ts} +3 -6
- package/{tour/index.d.ts → types/siemens-element-ng-tour.d.ts} +1 -10
- package/{translate/index.d.ts → types/siemens-element-ng-translate.d.ts} +8 -1
- package/{tree-view/index.d.ts → types/siemens-element-ng-tree-view.d.ts} +0 -1
- package/{typeahead/index.d.ts → types/siemens-element-ng-typeahead.d.ts} +0 -2
- package/{wizard/index.d.ts → types/siemens-element-ng-wizard.d.ts} +6 -6
- package/wizard/package.json +2 -1
- package/fesm2022/siemens-element-ng-unauthorized-page.mjs +0 -75
- package/fesm2022/siemens-element-ng-unauthorized-page.mjs.map +0 -1
- package/icon/index.d.ts +0 -285
- package/schematics/migrations/action-modal-migration/action-modal-migration.js +0 -162
- package/schematics/migrations/action-modal-migration/action-modal.mappings.js +0 -98
- package/schematics/migrations/action-modal-migration/index.js +0 -5
- package/schematics/migrations/wizard-migration/index.js +0 -80
- package/schematics/scss-import-to-siemens-migration/index.js +0 -101
- package/schematics/scss-import-to-siemens-migration/schema.json +0 -16
- package/schematics/scss-import-to-siemens-migration/style-mappings.js +0 -62
- package/schematics/ts-import-to-siemens-migration/index.js +0 -230
- package/schematics/ts-import-to-siemens-migration/mappings/charts-ng-mappings.js +0 -71
- package/schematics/ts-import-to-siemens-migration/mappings/dashboards-ng-mappings.js +0 -54
- package/schematics/ts-import-to-siemens-migration/mappings/element-ng-mappings.js +0 -705
- package/schematics/ts-import-to-siemens-migration/mappings/element-translate-ng-mappings.js +0 -21
- package/schematics/ts-import-to-siemens-migration/mappings/index.js +0 -10
- package/schematics/ts-import-to-siemens-migration/mappings/maps-ng-mappings.js +0 -47
- package/schematics/ts-import-to-siemens-migration/mappings/native-charts-ng-mappings.js +0 -33
- package/schematics/ts-import-to-siemens-migration/model.js +0 -4
- package/schematics/ts-import-to-siemens-migration/schema.json +0 -16
- package/unauthorized-page/index.d.ts +0 -44
- package/unauthorized-page/package.json +0 -3
- /package/{about/index.d.ts → types/siemens-element-ng-about.d.ts} +0 -0
- /package/{action-modal/index.d.ts → types/siemens-element-ng-action-modal.d.ts} +0 -0
- /package/{ag-grid/index.d.ts → types/siemens-element-ng-ag-grid.d.ts} +0 -0
- /package/{auto-collapsable-list/index.d.ts → types/siemens-element-ng-auto-collapsable-list.d.ts} +0 -0
- /package/{avatar/index.d.ts → types/siemens-element-ng-avatar.d.ts} +0 -0
- /package/{badge/index.d.ts → types/siemens-element-ng-badge.d.ts} +0 -0
- /package/{breadcrumb-router/index.d.ts → types/siemens-element-ng-breadcrumb-router.d.ts} +0 -0
- /package/{card/index.d.ts → types/siemens-element-ng-card.d.ts} +0 -0
- /package/{circle-status/index.d.ts → types/siemens-element-ng-circle-status.d.ts} +0 -0
- /package/{color-picker/index.d.ts → types/siemens-element-ng-color-picker.d.ts} +0 -0
- /package/{column-selection-dialog/index.d.ts → types/siemens-element-ng-column-selection-dialog.d.ts} +0 -0
- /package/{connection-strength/index.d.ts → types/siemens-element-ng-connection-strength.d.ts} +0 -0
- /package/{copyright-notice/index.d.ts → types/siemens-element-ng-copyright-notice.d.ts} +0 -0
- /package/{datatable/index.d.ts → types/siemens-element-ng-datatable.d.ts} +0 -0
- /package/{empty-state/index.d.ts → types/siemens-element-ng-empty-state.d.ts} +0 -0
- /package/{footer/index.d.ts → types/siemens-element-ng-footer.d.ts} +0 -0
- /package/{header-dropdown/index.d.ts → types/siemens-element-ng-header-dropdown.d.ts} +0 -0
- /package/{help-button/index.d.ts → types/siemens-element-ng-help-button.d.ts} +0 -0
- /package/{icon-status/index.d.ts → types/siemens-element-ng-icon-status.d.ts} +0 -0
- /package/{info-page/index.d.ts → types/siemens-element-ng-info-page.d.ts} +0 -0
- /package/{inline-notification/index.d.ts → types/siemens-element-ng-inline-notification.d.ts} +0 -0
- /package/{ip-input/index.d.ts → types/siemens-element-ng-ip-input.d.ts} +0 -0
- /package/{link/index.d.ts → types/siemens-element-ng-link.d.ts} +0 -0
- /package/{localization/index.d.ts → types/siemens-element-ng-localization.d.ts} +0 -0
- /package/{main-detail-container/index.d.ts → types/siemens-element-ng-main-detail-container.d.ts} +0 -0
- /package/{markdown-renderer/index.d.ts → types/siemens-element-ng-markdown-renderer.d.ts} +0 -0
- /package/{menu/index.d.ts → types/siemens-element-ng-menu.d.ts} +0 -0
- /package/{number-input/index.d.ts → types/siemens-element-ng-number-input.d.ts} +0 -0
- /package/{password-strength/index.d.ts → types/siemens-element-ng-password-strength.d.ts} +0 -0
- /package/{photo-upload/index.d.ts → types/siemens-element-ng-photo-upload.d.ts} +0 -0
- /package/{popover-legacy/index.d.ts → types/siemens-element-ng-popover-legacy.d.ts} +0 -0
- /package/{progressbar/index.d.ts → types/siemens-element-ng-progressbar.d.ts} +0 -0
- /package/{result-details-list/index.d.ts → types/siemens-element-ng-result-details-list.d.ts} +0 -0
- /package/{shadow-root/index.d.ts → types/siemens-element-ng-shadow-root.d.ts} +0 -0
- /package/{skip-links/index.d.ts → types/siemens-element-ng-skip-links.d.ts} +0 -0
- /package/{sort-bar/index.d.ts → types/siemens-element-ng-sort-bar.d.ts} +0 -0
- /package/{status-counter/index.d.ts → types/siemens-element-ng-status-counter.d.ts} +0 -0
- /package/{status-toggle/index.d.ts → types/siemens-element-ng-status-toggle.d.ts} +0 -0
- /package/{summary-chip/index.d.ts → types/siemens-element-ng-summary-chip.d.ts} +0 -0
- /package/{summary-widget/index.d.ts → types/siemens-element-ng-summary-widget.d.ts} +0 -0
- /package/{system-banner/index.d.ts → types/siemens-element-ng-system-banner.d.ts} +0 -0
- /package/{tabs/index.d.ts → types/siemens-element-ng-tabs.d.ts} +0 -0
- /package/{theme/index.d.ts → types/siemens-element-ng-theme.d.ts} +0 -0
- /package/{index.d.ts → types/siemens-element-ng.d.ts} +0 -0
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Siemens 2016 - 2025
|
|
3
|
-
* SPDX-License-Identifier: MIT
|
|
4
|
-
*/
|
|
5
|
-
import { SchematicsException } from '@angular-devkit/schematics';
|
|
6
|
-
import * as ts from 'typescript';
|
|
7
|
-
import { discoverSourceFiles, getImportSpecifiers } from '../../utils/index.js';
|
|
8
|
-
import { ACTION_DIALOG_TYPES_REPLACEMENTS, ACTION_MODAL_SYMBOLS, DIALOG_METHOD_CONFIGS, LEGACY_METHODS } from './action-modal.mappings.js';
|
|
9
|
-
/**
|
|
10
|
-
* Migration rule for action modal methods.
|
|
11
|
-
* @param options - The options object containing the path to the project files to be migrated.
|
|
12
|
-
* @returns A schematic rule for migrating action modal methods.
|
|
13
|
-
*/
|
|
14
|
-
export const actionModalMigrationRule = (options) => {
|
|
15
|
-
return async (tree, context) => {
|
|
16
|
-
context.logger.info('🔄 Migrating action modal methods to v48...');
|
|
17
|
-
const tsSourceFiles = await discoverSourceFiles(tree, context, options.path);
|
|
18
|
-
for (const filePath of tsSourceFiles) {
|
|
19
|
-
const content = tree.read(filePath);
|
|
20
|
-
if (!content) {
|
|
21
|
-
continue;
|
|
22
|
-
}
|
|
23
|
-
const sourceFile = ts.createSourceFile(filePath, content.toString(), ts.ScriptTarget.Latest, true);
|
|
24
|
-
// Match both @siemens/element-ng and @simpl/element-ng, with or without /action-modal
|
|
25
|
-
// This ensures we only process files that import from these modules
|
|
26
|
-
const modulePathToMatch = /@(siemens|simpl)\/element-ng(\/action-modal)?/;
|
|
27
|
-
const actionModalImports = getImportSpecifiers(sourceFile, modulePathToMatch, ACTION_MODAL_SYMBOLS);
|
|
28
|
-
if (!actionModalImports?.length) {
|
|
29
|
-
continue;
|
|
30
|
-
}
|
|
31
|
-
const pendingTransformations = [];
|
|
32
|
-
const usedIdentifier = new Set();
|
|
33
|
-
const visitNodeAndCollectTransformations = (node) => {
|
|
34
|
-
if (ts.isImportDeclaration(node)) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
// Collect method call transformations
|
|
38
|
-
if (ts.isCallExpression(node)) {
|
|
39
|
-
const methodTransformation = createActionDialogMethodCallTransformation(node);
|
|
40
|
-
if (methodTransformation) {
|
|
41
|
-
pendingTransformations.push(methodTransformation);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
// Collect type reference transformations
|
|
45
|
-
if (ts.isPropertyAccessExpression(node)) {
|
|
46
|
-
const typeTransformation = createActionDialogTypeTransformation(node);
|
|
47
|
-
if (typeTransformation) {
|
|
48
|
-
pendingTransformations.push(typeTransformation);
|
|
49
|
-
// We remove the usage here. In order to avoid counting it as used identifier, we skip further processing.
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
if (ts.isIdentifier(node)) {
|
|
54
|
-
usedIdentifier.add(node.text);
|
|
55
|
-
}
|
|
56
|
-
node.forEachChild(visitNodeAndCollectTransformations);
|
|
57
|
-
};
|
|
58
|
-
sourceFile.forEachChild(visitNodeAndCollectTransformations);
|
|
59
|
-
pendingTransformations.push(...removeUnusedImports(sourceFile, usedIdentifier));
|
|
60
|
-
if (pendingTransformations.length > 0) {
|
|
61
|
-
applyCodeTransformations(tree, filePath, pendingTransformations);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return tree;
|
|
65
|
-
};
|
|
66
|
-
};
|
|
67
|
-
const createActionDialogMethodCallTransformation = (node) => {
|
|
68
|
-
const expression = node.expression;
|
|
69
|
-
if (!ts.isPropertyAccessExpression(expression)) {
|
|
70
|
-
return null;
|
|
71
|
-
}
|
|
72
|
-
const methodName = expression.name.text;
|
|
73
|
-
if (!LEGACY_METHODS.includes(methodName)) {
|
|
74
|
-
return null;
|
|
75
|
-
}
|
|
76
|
-
const dialogPropertiesArray = generateDialogProperties(methodName, node.arguments);
|
|
77
|
-
const printer = ts.createPrinter();
|
|
78
|
-
const newNode = ts.factory.createCallExpression(ts.factory.createPropertyAccessExpression(expression.expression, ts.factory.createIdentifier('showActionDialog')), undefined, [ts.factory.createObjectLiteralExpression(dialogPropertiesArray)]);
|
|
79
|
-
const newCode = printer.printNode(ts.EmitHint.Expression, newNode, node.getSourceFile());
|
|
80
|
-
return {
|
|
81
|
-
node,
|
|
82
|
-
newCode
|
|
83
|
-
};
|
|
84
|
-
};
|
|
85
|
-
const createActionDialogTypeTransformation = (node) => {
|
|
86
|
-
const nodeText = node.getText().trim();
|
|
87
|
-
const matchingReplacement = ACTION_DIALOG_TYPES_REPLACEMENTS.find(typeReplacement => nodeText === typeReplacement.old);
|
|
88
|
-
if (!matchingReplacement) {
|
|
89
|
-
return null;
|
|
90
|
-
}
|
|
91
|
-
return {
|
|
92
|
-
node,
|
|
93
|
-
newCode: `'${matchingReplacement.new}'`
|
|
94
|
-
};
|
|
95
|
-
};
|
|
96
|
-
/**
|
|
97
|
-
* Generates the dialog properties for the action dialog.
|
|
98
|
-
* @param methodName - The name of the method being migrated.
|
|
99
|
-
* @param nodeArguments - The arguments passed to the method.
|
|
100
|
-
* @returns An array of PropertyAssignment nodes for TypeScript printer.
|
|
101
|
-
* @throws SchematicsException if the method configuration is unknown.
|
|
102
|
-
*/
|
|
103
|
-
const generateDialogProperties = (methodName, nodeArguments) => {
|
|
104
|
-
const methodConfig = DIALOG_METHOD_CONFIGS[methodName];
|
|
105
|
-
if (!methodConfig) {
|
|
106
|
-
throw new SchematicsException(`Unknown method configuration for: ${methodName}`);
|
|
107
|
-
}
|
|
108
|
-
const dialogProperties = [
|
|
109
|
-
ts.factory.createPropertyAssignment(ts.factory.createIdentifier('type'), ts.factory.createStringLiteral(methodConfig.type, true))
|
|
110
|
-
];
|
|
111
|
-
nodeArguments.forEach((arg, index) => {
|
|
112
|
-
const paramName = methodConfig.parameters[index];
|
|
113
|
-
if (paramName) {
|
|
114
|
-
dialogProperties.push(ts.factory.createPropertyAssignment(ts.factory.createIdentifier(paramName), arg));
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
return dialogProperties;
|
|
118
|
-
};
|
|
119
|
-
const applyCodeTransformations = (tree, filePath, codeTransformations) => {
|
|
120
|
-
const recorder = tree.beginUpdate(filePath);
|
|
121
|
-
// Sort by position (descending) to avoid offset issues
|
|
122
|
-
codeTransformations
|
|
123
|
-
.sort((a, b) => b.node.getStart() - a.node.getStart())
|
|
124
|
-
.forEach(({ node, newCode }) => {
|
|
125
|
-
recorder.remove(node.getStart(), node.getWidth());
|
|
126
|
-
recorder.insertLeft(node.getStart(), newCode);
|
|
127
|
-
});
|
|
128
|
-
tree.commitUpdate(recorder);
|
|
129
|
-
};
|
|
130
|
-
const removeUnusedImports = (sourceFile, usedIdentifier) => {
|
|
131
|
-
const printer = ts.createPrinter();
|
|
132
|
-
const importFinder = (node) => {
|
|
133
|
-
if (ts.isImportDeclaration(node) &&
|
|
134
|
-
ts.isStringLiteral(node.moduleSpecifier) &&
|
|
135
|
-
/@(siemens|simpl)\/element-ng(\/action-modal)?/.test(node.moduleSpecifier.text) &&
|
|
136
|
-
node.importClause?.namedBindings &&
|
|
137
|
-
ts.isNamedImports(node.importClause.namedBindings)) {
|
|
138
|
-
const usedBindings = node.importClause.namedBindings.elements.filter(element =>
|
|
139
|
-
// This script anyway is not capable of handling aliasing imports, so we can ignore them here.
|
|
140
|
-
usedIdentifier.has(element.name.text) || !ACTION_MODAL_SYMBOLS.includes(element.name.text));
|
|
141
|
-
if (usedBindings.length === node.importClause.namedBindings.elements.length) {
|
|
142
|
-
// All bindings are used, no changes needed
|
|
143
|
-
return undefined;
|
|
144
|
-
}
|
|
145
|
-
if (usedBindings.length === 0) {
|
|
146
|
-
// No bindings are used, remove the entire import statement
|
|
147
|
-
return {
|
|
148
|
-
node,
|
|
149
|
-
newCode: ''
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
// Recreate import statement with only used bindings
|
|
153
|
-
const newImport = ts.factory.createImportDeclaration(node.modifiers, ts.factory.createImportClause(node.importClause.isTypeOnly, node.importClause.name, ts.factory.createNamedImports(usedBindings)), node.moduleSpecifier, node.attributes);
|
|
154
|
-
return {
|
|
155
|
-
node,
|
|
156
|
-
newCode: printer.printNode(ts.EmitHint.Unspecified, newImport, sourceFile)
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
return undefined;
|
|
160
|
-
};
|
|
161
|
-
return sourceFile.statements.map(importFinder).filter(transform => transform !== undefined);
|
|
162
|
-
};
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Siemens 2016 - 2025
|
|
3
|
-
* SPDX-License-Identifier: MIT
|
|
4
|
-
*/
|
|
5
|
-
export const ACTION_MODAL_SYMBOLS = [
|
|
6
|
-
'AlertDialogResult',
|
|
7
|
-
'ConfirmationDialogResult',
|
|
8
|
-
'DeleteConfirmationDialogResult',
|
|
9
|
-
'EditDiscardDialogResult',
|
|
10
|
-
'SiActionDialogService'
|
|
11
|
-
];
|
|
12
|
-
export const LEGACY_METHODS = [
|
|
13
|
-
'showAlertDialog',
|
|
14
|
-
'showConfirmationDialog',
|
|
15
|
-
'showEditDiscardDialog',
|
|
16
|
-
'showDeleteConfirmationDialog'
|
|
17
|
-
];
|
|
18
|
-
export const DIALOG_METHOD_CONFIGS = {
|
|
19
|
-
showAlertDialog: {
|
|
20
|
-
type: 'alert',
|
|
21
|
-
parameters: ['message', 'heading', 'confirmBtnName', 'translationParams', 'icon', 'diOptions']
|
|
22
|
-
},
|
|
23
|
-
showConfirmationDialog: {
|
|
24
|
-
type: 'confirmation',
|
|
25
|
-
parameters: [
|
|
26
|
-
'message',
|
|
27
|
-
'heading',
|
|
28
|
-
'confirmBtnName',
|
|
29
|
-
'declineBtnName',
|
|
30
|
-
'translationParams',
|
|
31
|
-
'icon',
|
|
32
|
-
'diOptions'
|
|
33
|
-
]
|
|
34
|
-
},
|
|
35
|
-
showEditDiscardDialog: {
|
|
36
|
-
type: 'edit-discard',
|
|
37
|
-
parameters: [
|
|
38
|
-
'disableSave',
|
|
39
|
-
'message',
|
|
40
|
-
'heading',
|
|
41
|
-
'saveBtnName',
|
|
42
|
-
'discardBtnName',
|
|
43
|
-
'cancelBtnName',
|
|
44
|
-
'disableSaveMessage',
|
|
45
|
-
'disableSaveDiscardBtnName',
|
|
46
|
-
'translationParams',
|
|
47
|
-
'icon',
|
|
48
|
-
'diOptions'
|
|
49
|
-
]
|
|
50
|
-
},
|
|
51
|
-
showDeleteConfirmationDialog: {
|
|
52
|
-
type: 'delete-confirm',
|
|
53
|
-
parameters: [
|
|
54
|
-
'message',
|
|
55
|
-
'heading',
|
|
56
|
-
'deleteBtnName',
|
|
57
|
-
'cancelBtnName',
|
|
58
|
-
'translationParams',
|
|
59
|
-
'icon',
|
|
60
|
-
'diOptions'
|
|
61
|
-
]
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
export const ACTION_DIALOG_TYPES_REPLACEMENTS = [
|
|
65
|
-
// Alert dialog
|
|
66
|
-
{
|
|
67
|
-
old: 'AlertDialogResult.Confirm',
|
|
68
|
-
new: 'confirm'
|
|
69
|
-
},
|
|
70
|
-
// Edit discard dialog
|
|
71
|
-
{
|
|
72
|
-
old: 'EditDiscardDialogResult.Save',
|
|
73
|
-
new: 'save'
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
old: 'EditDiscardDialogResult.Discard',
|
|
77
|
-
new: 'discard'
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
old: 'EditDiscardDialogResult.Cancel',
|
|
81
|
-
new: 'cancel'
|
|
82
|
-
},
|
|
83
|
-
// Confirmation dialog
|
|
84
|
-
{
|
|
85
|
-
old: 'ConfirmationDialogResult.Confirm',
|
|
86
|
-
new: 'confirm'
|
|
87
|
-
},
|
|
88
|
-
{ old: 'ConfirmationDialogResult.Decline', new: 'decline' },
|
|
89
|
-
// Delete confirmation dialog
|
|
90
|
-
{
|
|
91
|
-
old: 'DeleteConfirmationDialogResult.Delete',
|
|
92
|
-
new: 'delete'
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
old: 'DeleteConfirmationDialogResult.Cancel',
|
|
96
|
-
new: 'cancel'
|
|
97
|
-
}
|
|
98
|
-
];
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Siemens 2016 - 2025
|
|
3
|
-
* SPDX-License-Identifier: MIT
|
|
4
|
-
*/
|
|
5
|
-
import { join, dirname } from 'path/posix';
|
|
6
|
-
import * as ts from 'typescript';
|
|
7
|
-
import { discoverSourceFiles, findElement, getInlineTemplates, getTemplateUrl } from '../../utils/index.js';
|
|
8
|
-
export const wizardMigrationRule = (options) => {
|
|
9
|
-
return async (tree, context) => {
|
|
10
|
-
context.logger.info('🔄 Migrating wizard api...');
|
|
11
|
-
const tsSourceFiles = await discoverSourceFiles(tree, context, options.path);
|
|
12
|
-
for (const filePath of tsSourceFiles) {
|
|
13
|
-
const content = tree.read(filePath);
|
|
14
|
-
if (!content) {
|
|
15
|
-
continue;
|
|
16
|
-
}
|
|
17
|
-
const sourceFile = ts.createSourceFile(filePath, content.toString(), ts.ScriptTarget.Latest, true);
|
|
18
|
-
const recorder = tree.beginUpdate(filePath);
|
|
19
|
-
renameApi({
|
|
20
|
-
tree,
|
|
21
|
-
filePath,
|
|
22
|
-
sourceFile,
|
|
23
|
-
recorder,
|
|
24
|
-
elementName: 'si-wizard'
|
|
25
|
-
});
|
|
26
|
-
if (recorder) {
|
|
27
|
-
tree.commitUpdate(recorder);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
const renameApi = ({ tree, filePath, sourceFile, recorder, elementName }) => {
|
|
33
|
-
getInlineTemplates(sourceFile).forEach(template => addOrRemoveInlineNavigationAttribute({
|
|
34
|
-
template: template.text,
|
|
35
|
-
offset: template.getStart() + 1,
|
|
36
|
-
elementName,
|
|
37
|
-
recorder
|
|
38
|
-
}));
|
|
39
|
-
getTemplateUrl(sourceFile).forEach(templateUrl => {
|
|
40
|
-
const templatePath = join(dirname(filePath), templateUrl);
|
|
41
|
-
const templateContent = tree.read(templatePath).toString('utf-8');
|
|
42
|
-
const templateRecorder = tree.beginUpdate(templatePath);
|
|
43
|
-
addOrRemoveInlineNavigationAttribute({
|
|
44
|
-
template: templateContent,
|
|
45
|
-
offset: 0,
|
|
46
|
-
elementName,
|
|
47
|
-
recorder: templateRecorder
|
|
48
|
-
});
|
|
49
|
-
tree.commitUpdate(templateRecorder);
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
|
-
/**
|
|
53
|
-
* Migrates the inlineNavigation attribute on wizard elements.
|
|
54
|
-
* - Adds `inlineNavigation` when not present (new default: true)
|
|
55
|
-
* - Removes `[inlineNavigation]="false"` (false is now the default)
|
|
56
|
-
* - Keeps `[inlineNavigation]="true"` and dynamic bindings unchanged
|
|
57
|
-
*/
|
|
58
|
-
const addOrRemoveInlineNavigationAttribute = ({ template, offset, recorder, elementName }) => {
|
|
59
|
-
const elements = findElement(template, element => element.name === elementName);
|
|
60
|
-
for (const element of elements) {
|
|
61
|
-
const inlineNavigationAttr = element.attrs.find(attr => attr.name === '[inlineNavigation]' || attr.name === 'inlineNavigation');
|
|
62
|
-
if (!inlineNavigationAttr) {
|
|
63
|
-
// No attribute exists → Add default inlineNavigation
|
|
64
|
-
const insertPosition = element.startSourceSpan.end.offset + offset - 1;
|
|
65
|
-
recorder.insertLeft(insertPosition, ' inlineNavigation');
|
|
66
|
-
}
|
|
67
|
-
else if ((inlineNavigationAttr.name === '[inlineNavigation]' ||
|
|
68
|
-
inlineNavigationAttr.name === 'inlineNavigation') &&
|
|
69
|
-
inlineNavigationAttr.value === 'false') {
|
|
70
|
-
const { start, end } = inlineNavigationAttr.sourceSpan;
|
|
71
|
-
const length = end.offset - start.offset;
|
|
72
|
-
recorder.remove(start.offset + offset, length);
|
|
73
|
-
// Also remove extra whitespace if present
|
|
74
|
-
const nextChar = template.charAt(end.offset);
|
|
75
|
-
if (nextChar === ' ') {
|
|
76
|
-
recorder.remove(end.offset + offset, 1);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
};
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Siemens 2016 - 2025
|
|
3
|
-
* SPDX-License-Identifier: MIT
|
|
4
|
-
*/
|
|
5
|
-
import { chain } from '@angular-devkit/schematics';
|
|
6
|
-
import { getGlobalStyles, discoverSourceFiles } from '../utils/index.js';
|
|
7
|
-
import { SCSS_USE_PATTERNS, STYLE_REPLACEMENTS, THEME_STYLE_ENTRIES } from './style-mappings.js';
|
|
8
|
-
export const scssImportMigration = (_options) => {
|
|
9
|
-
return (tree, context) => scssMigrationRule(_options)(tree, context);
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* Creates a schematic rule for migrating SCSS files in a Siemens migration context.
|
|
13
|
-
*
|
|
14
|
-
* This rule performs the following migration tasks:
|
|
15
|
-
* - Processes global styles files (`.scss` and `.sass`) and removes specific SCSS use patterns
|
|
16
|
-
* - Applies theme style entries to global styles based on predefined patterns
|
|
17
|
-
* - Discovers and migrates SCSS source files that contain specific style replacements
|
|
18
|
-
*
|
|
19
|
-
* @param _options - Migration options configuration (currently unused)
|
|
20
|
-
* @returns A schematic rule function that processes the file tree and applies SCSS migrations
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* ```typescript
|
|
24
|
-
* const rule = scssMigrationRule({ path: 'some-path' });
|
|
25
|
-
* // Use with Angular Schematics
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
export const scssMigrationRule = (_options) => {
|
|
29
|
-
return async (tree, context) => {
|
|
30
|
-
const rules = [];
|
|
31
|
-
context.logger.info('🎨 Migrating SCSS styles...');
|
|
32
|
-
const globalStyles = await getGlobalStyles(tree);
|
|
33
|
-
for (const style of globalStyles) {
|
|
34
|
-
if (style.endsWith('.scss') || style.endsWith('.sass')) {
|
|
35
|
-
const content = tree.readText(style);
|
|
36
|
-
for (const pattern of SCSS_USE_PATTERNS) {
|
|
37
|
-
const match = pattern.exec(content);
|
|
38
|
-
if (match) {
|
|
39
|
-
rules.push(migrateScssImports(style, [{ replace: match[0], new: '' }]));
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
let predecessor = '';
|
|
43
|
-
for (const themeEntry of THEME_STYLE_ENTRIES) {
|
|
44
|
-
const match = content.match(themeEntry.pattern ?? themeEntry.insert);
|
|
45
|
-
if (match) {
|
|
46
|
-
predecessor = match[0];
|
|
47
|
-
continue;
|
|
48
|
-
}
|
|
49
|
-
rules.push(applyGlobalStyles(style, predecessor, themeEntry.insert + '\n'));
|
|
50
|
-
predecessor = themeEntry.insert;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
const scssFiles = await discoverSourceFiles(tree, context, _options.path, '.scss');
|
|
55
|
-
for (const filePath of scssFiles) {
|
|
56
|
-
const content = tree.readText(filePath);
|
|
57
|
-
if (content.includes(STYLE_REPLACEMENTS[0].replace) ||
|
|
58
|
-
content.includes(STYLE_REPLACEMENTS[1].replace)) {
|
|
59
|
-
rules.push(migrateScssImports(filePath));
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return chain([...rules]);
|
|
63
|
-
};
|
|
64
|
-
};
|
|
65
|
-
const migrateScssImports = (filePath, replacements = STYLE_REPLACEMENTS) => {
|
|
66
|
-
return (tree) => {
|
|
67
|
-
const recorder = tree.beginUpdate(filePath);
|
|
68
|
-
const content = tree.readText(filePath);
|
|
69
|
-
let offset = 0;
|
|
70
|
-
let hasMore = true;
|
|
71
|
-
while (hasMore) {
|
|
72
|
-
hasMore = false;
|
|
73
|
-
for (const replacement of replacements) {
|
|
74
|
-
const start = content.indexOf(replacement.replace, offset);
|
|
75
|
-
if (start >= 0) {
|
|
76
|
-
recorder.remove(start, replacement.replace.length);
|
|
77
|
-
recorder.insertLeft(start, replacement.new);
|
|
78
|
-
const size = replacement.new.length === 0 ? 1 : replacement.new.length;
|
|
79
|
-
offset = start + size;
|
|
80
|
-
hasMore = true;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
tree.commitUpdate(recorder);
|
|
85
|
-
return tree;
|
|
86
|
-
};
|
|
87
|
-
};
|
|
88
|
-
const applyGlobalStyles = (filePath, anchor, insert) => {
|
|
89
|
-
return (tree) => {
|
|
90
|
-
const recorder = tree.beginUpdate(filePath);
|
|
91
|
-
const content = tree.readText(filePath);
|
|
92
|
-
let pos = content.indexOf(anchor) + anchor.length;
|
|
93
|
-
if (pos > 0) {
|
|
94
|
-
// If the insert position is not the file start we want to insert the next line after the new line
|
|
95
|
-
pos = content.indexOf('\n', pos) + 1;
|
|
96
|
-
}
|
|
97
|
-
recorder.insertRight(pos, insert);
|
|
98
|
-
tree.commitUpdate(recorder);
|
|
99
|
-
return tree;
|
|
100
|
-
};
|
|
101
|
-
};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema",
|
|
3
|
-
"$id": "ScssImportToSiemensMigrationSchema",
|
|
4
|
-
"title": "SCSS Import to Siemens Migration Schema",
|
|
5
|
-
"type": "object",
|
|
6
|
-
"properties": {
|
|
7
|
-
"path": {
|
|
8
|
-
"type": "string",
|
|
9
|
-
"description": "Path to the directory where all SCSS imports should be migrated.",
|
|
10
|
-
"x-prompt": "Which directory do you want to migrate?",
|
|
11
|
-
"format": "path",
|
|
12
|
-
"default": "/"
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
"required": []
|
|
16
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Siemens 2016 - 2025
|
|
3
|
-
* SPDX-License-Identifier: MIT
|
|
4
|
-
*/
|
|
5
|
-
export const STYLE_REPLACEMENTS = [
|
|
6
|
-
// Single quotes
|
|
7
|
-
{
|
|
8
|
-
replace: `@import '@simpl/element-theme/`,
|
|
9
|
-
new: `@import '@siemens/element-theme/`
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
replace: `@use '@simpl/element-theme/`,
|
|
13
|
-
new: `@use '@siemens/element-theme/`
|
|
14
|
-
},
|
|
15
|
-
// Double quotes
|
|
16
|
-
{
|
|
17
|
-
replace: `@import "@simpl/element-theme/`,
|
|
18
|
-
new: `@import "@siemens/element-theme/`
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
replace: `@use "@simpl/element-theme/`,
|
|
22
|
-
new: `@use "@siemens/element-theme/`
|
|
23
|
-
}
|
|
24
|
-
];
|
|
25
|
-
// Apply theme styles if not already present
|
|
26
|
-
export const THEME_STYLE_ENTRIES = [
|
|
27
|
-
{ insert: `// Load Siemens fonts` },
|
|
28
|
-
{ insert: `@use '@simpl/brand/assets/fonts/styles/siemens-sans';` },
|
|
29
|
-
{ insert: `// Load Element icons` },
|
|
30
|
-
{ insert: `@use '@simpl/element-icons/dist/style/simpl-element-icons';` },
|
|
31
|
-
{ insert: `// Use Element theme` },
|
|
32
|
-
{
|
|
33
|
-
insert: `@use '@siemens/element-theme/src/theme' with (
|
|
34
|
-
$element-theme-default: 'siemens-brand',
|
|
35
|
-
$element-themes: (
|
|
36
|
-
'siemens-brand',
|
|
37
|
-
'element'
|
|
38
|
-
)
|
|
39
|
-
);`,
|
|
40
|
-
pattern: /@use ['"]@siemens\/element-theme\/src\/theme['"] with \(([\s\S]*?)\);/g
|
|
41
|
-
},
|
|
42
|
-
{ insert: `// Use Element components` },
|
|
43
|
-
{ insert: `@use '@siemens/element-ng/element-ng';` },
|
|
44
|
-
{ insert: `// Actually build the siemens-brand theme` },
|
|
45
|
-
{ insert: `@use '@siemens/element-theme/src/styles/themes';` },
|
|
46
|
-
{ insert: `@use '@simpl/brand/dist/element-theme-siemens-brand-light' as brand-light;` },
|
|
47
|
-
{ insert: `@use '@simpl/brand/dist/element-theme-siemens-brand-dark' as brand-dark;` },
|
|
48
|
-
{
|
|
49
|
-
insert: `@include themes.make-theme(brand-light.$tokens, 'siemens-brand');`,
|
|
50
|
-
pattern: /@include themes\.make-theme\(brand-light\.\$tokens, 'siemens-brand'\);/g
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
insert: `@include themes.make-theme(brand-dark.$tokens, 'siemens-brand', true);`,
|
|
54
|
-
pattern: /@include themes\.make-theme\(brand-dark\.\$tokens, 'siemens-brand', true\);/g
|
|
55
|
-
}
|
|
56
|
-
];
|
|
57
|
-
export const SCSS_USE_PATTERNS = [
|
|
58
|
-
/@use ['"]@simpl\/element-theme\/src\/theme['"] with \(([\s\S]*?)\);/g,
|
|
59
|
-
/@use ['"]@simpl\/element-ng\/simpl-element-ng['"] with \(([\s\S]*?)\);/g,
|
|
60
|
-
/@use ['"]@simpl\/element-theme\/src\/theme['"];/g,
|
|
61
|
-
/@use ['"]@simpl\/element-ng\/simpl-element-ng['"];/g
|
|
62
|
-
];
|