@siemens/element-ng 48.0.3 → 48.2.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/accordion/index.d.ts +2 -1
- package/avatar/index.d.ts +3 -4
- package/card/index.d.ts +68 -29
- package/circle-status/index.d.ts +2 -1
- package/common/index.d.ts +11 -0
- package/dashboard/index.d.ts +6 -1
- package/datepicker/index.d.ts +32 -32
- package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-avatar.mjs +32 -36
- package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb.mjs +2 -2
- package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-card.mjs +103 -37
- package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +2 -2
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-common.mjs +6 -0
- package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-connection-strength.mjs +2 -2
- package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-content-action-bar.mjs +2 -2
- package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs +34 -35
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datatable.mjs +5 -0
- package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +176 -142
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-file-uploader.mjs +9 -2
- package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filter-bar.mjs +5 -5
- package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +34 -13
- package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-form.mjs +7 -1
- package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-formly.mjs +18 -18
- package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ip-input.mjs +38 -0
- package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-language-switcher.mjs +1 -1
- package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-list-details.mjs +9 -4
- package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +16 -3
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-notification-item.mjs +71 -0
- package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-pagination.mjs +2 -2
- package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-photo-upload.mjs +1 -1
- package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-resize-observer.mjs +0 -1
- package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-result-details-list.mjs +5 -0
- package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-search-bar.mjs +14 -4
- package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-side-panel.mjs +2 -2
- package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-sort-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs +2 -2
- package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs +2 -2
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs.mjs +45 -12
- package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tooltip.mjs +5 -6
- package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tree-view.mjs +4 -4
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs +329 -257
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
- package/file-uploader/index.d.ts +3 -1
- package/filter-bar/index.d.ts +13 -5
- package/form/index.d.ts +28 -29
- package/inline-notification/index.d.ts +3 -2
- package/ip-input/index.d.ts +42 -4
- package/landing-page/index.d.ts +3 -2
- package/language-switcher/index.d.ts +3 -1
- package/list-details/index.d.ts +2 -0
- package/main-detail-container/index.d.ts +4 -4
- package/navbar/index.d.ts +1 -1
- package/notification-item/index.d.ts +141 -0
- package/notification-item/package.json +3 -0
- package/package.json +19 -11
- package/progressbar/index.d.ts +3 -3
- package/result-details-list/index.d.ts +4 -2
- package/schematics/collection.json +28 -0
- package/schematics/ng-add/index.js +16 -0
- package/schematics/ng-add/schema.json +16 -0
- package/schematics/scss-import-to-siemens-migration/index.js +101 -0
- package/schematics/scss-import-to-siemens-migration/schema.json +16 -0
- package/schematics/scss-import-to-siemens-migration/style-mappings.js +46 -0
- package/schematics/simpl-siemens-migration/index.js +17 -0
- package/schematics/simpl-siemens-migration/schema.json +16 -0
- package/schematics/ts-import-to-siemens-migration/index.js +118 -0
- package/schematics/ts-import-to-siemens-migration/mappings/charts-ng-mappings.js +70 -0
- package/schematics/ts-import-to-siemens-migration/mappings/dashboards-ng-mappings.js +52 -0
- package/schematics/ts-import-to-siemens-migration/mappings/element-ng-mappings.js +651 -0
- package/schematics/ts-import-to-siemens-migration/mappings/element-translate-ng-mappings.js +21 -0
- package/schematics/ts-import-to-siemens-migration/mappings/index.js +9 -0
- package/schematics/ts-import-to-siemens-migration/mappings/maps-ng-mappings.js +46 -0
- package/schematics/ts-import-to-siemens-migration/model.js +4 -0
- package/schematics/ts-import-to-siemens-migration/schema.json +16 -0
- package/schematics/utils/index.js +8 -0
- package/schematics/utils/project-utils.js +75 -0
- package/schematics/utils/schematics-file-system.js +22 -0
- package/schematics/utils/testing.js +41 -0
- package/schematics/utils/ts-utils.js +99 -0
- package/search-bar/index.d.ts +11 -1
- package/select/index.d.ts +7 -5
- package/sort-bar/index.d.ts +3 -3
- package/split/index.d.ts +3 -2
- package/status-bar/index.d.ts +3 -2
- package/tabs/index.d.ts +15 -1
- package/template-i18n.json +8 -0
- package/tooltip/index.d.ts +1 -1
- package/translate/index.d.ts +8 -0
- package/tree-view/index.d.ts +4 -4
- package/typeahead/index.d.ts +85 -4
- package/wizard/index.d.ts +2 -1
|
@@ -0,0 +1,101 @@
|
|
|
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 (tree, context) => {
|
|
30
|
+
const rules = [];
|
|
31
|
+
context.logger.info('🎨 Migrating SCSS styles...');
|
|
32
|
+
const globalStyles = 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 = 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
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Siemens 2016 - 2025
|
|
3
|
+
* SPDX-License-Identifier: MIT
|
|
4
|
+
*/
|
|
5
|
+
export const STYLE_REPLACEMENTS = [
|
|
6
|
+
{
|
|
7
|
+
replace: `@import '@simpl/element-theme/`,
|
|
8
|
+
new: `@import '@siemens/element-theme/`
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
replace: `@use '@simpl/element-theme/`,
|
|
12
|
+
new: `@use '@siemens/element-theme/`
|
|
13
|
+
}
|
|
14
|
+
];
|
|
15
|
+
// Apply theme styles if not already present
|
|
16
|
+
export const THEME_STYLE_ENTRIES = [
|
|
17
|
+
{ insert: `@use '@simpl/brand/assets/fonts/styles/siemens-sans';` },
|
|
18
|
+
{ insert: `@use '@simpl/element-icons/dist/style/simpl-element-icons';` },
|
|
19
|
+
{
|
|
20
|
+
insert: `@use '@siemens/element-theme/src/theme' with (
|
|
21
|
+
$element-theme-default: 'siemens-brand',
|
|
22
|
+
$element-themes: (
|
|
23
|
+
'siemens-brand',
|
|
24
|
+
'element'
|
|
25
|
+
)
|
|
26
|
+
);`,
|
|
27
|
+
pattern: /@use '@siemens\/element-theme\/src\/theme' with \(([\s\S]*?)\);/g
|
|
28
|
+
},
|
|
29
|
+
{ insert: `@use '@siemens/element-ng/element-ng';` },
|
|
30
|
+
{ insert: `@use '@siemens/element-theme/src/styles/themes';` },
|
|
31
|
+
{ insert: `@use '@simpl/brand/dist/element-theme-siemens-brand-light' as brand-light;` },
|
|
32
|
+
{ insert: `@use '@simpl/brand/dist/element-theme-siemens-brand-dark' as brand-dark;` },
|
|
33
|
+
{
|
|
34
|
+
insert: `@include themes.make-theme(brand-light.$tokens, 'siemens-brand');`,
|
|
35
|
+
pattern: /@include themes\.make-theme\(brand-light\.\$tokens, 'siemens-brand'\);/g
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
insert: `@include themes.make-theme(brand-dark.$tokens, 'siemens-brand', true);`,
|
|
39
|
+
pattern: /@include themes\.make-theme\(brand-dark\.\$tokens, 'siemens-brand', true\);/g
|
|
40
|
+
}
|
|
41
|
+
];
|
|
42
|
+
export const SCSS_USE_PATTERNS = [
|
|
43
|
+
/@use '@simpl\/element-theme\/src\/theme' with \(([\s\S]*?)\);/g,
|
|
44
|
+
/@use '@simpl\/element-ng\/simpl-element-ng' with \(([\s\S]*?)\);/g,
|
|
45
|
+
/@use '@simpl\/element-theme\/src\/theme';/g
|
|
46
|
+
];
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Siemens 2016 - 2025
|
|
3
|
+
* SPDX-License-Identifier: MIT
|
|
4
|
+
*/
|
|
5
|
+
import { chain, schematic } from '@angular-devkit/schematics';
|
|
6
|
+
// You don't have to export the function as default. You can also have more than one rule factory
|
|
7
|
+
// per file.
|
|
8
|
+
export const simplSiemensMigration = (_options) => {
|
|
9
|
+
return (tree, context) => {
|
|
10
|
+
context.logger.info('🚀 Starting Simpl to Siemens migration...');
|
|
11
|
+
const chainedRules = chain([
|
|
12
|
+
schematic('migrate-ts-imports-to-siemens', _options),
|
|
13
|
+
schematic('migrate-scss-imports-to-siemens', _options)
|
|
14
|
+
]);
|
|
15
|
+
return chainedRules(tree, context);
|
|
16
|
+
};
|
|
17
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema",
|
|
3
|
+
"$id": "SimplToSiemensMigration",
|
|
4
|
+
"title": "Simpl to Siemens Migration Schema",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"path": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Path to the directory where all simpl imports should be migrated.",
|
|
10
|
+
"x-prompt": "Which directory do you want to migrate?",
|
|
11
|
+
"format": "path",
|
|
12
|
+
"default": "/"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"required": []
|
|
16
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Siemens 2016 - 2025
|
|
3
|
+
* SPDX-License-Identifier: MIT
|
|
4
|
+
*/
|
|
5
|
+
import { chain } from '@angular-devkit/schematics';
|
|
6
|
+
import { getImportNodes, getSymbols, discoverSourceFiles } from '../utils/index.js';
|
|
7
|
+
import { CHARTS_NG_MAPPINGS, DASHBOARDS_NG_MAPPINGS, ELEMENT_NG_MAPPINGS, ELEMENT_TRANSLATE_NG_MAPPINGS, MAPS_NG_MAPPINGS } from './mappings/index.js';
|
|
8
|
+
export const tsImportMigration = (_options) => {
|
|
9
|
+
return (tree, context) => {
|
|
10
|
+
context.logger.info('🚀 Starting Simpl to Siemens migration...');
|
|
11
|
+
return tsImportMigrationRule(_options)(tree, context);
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Creates a migration rule that updates import statements in TypeScript files.
|
|
16
|
+
*
|
|
17
|
+
* This rule discovers source files, analyzes their import statements, and applies
|
|
18
|
+
* necessary transformations to migrate imports according to the specified options.
|
|
19
|
+
* It processes each file individually and chains all the resulting rules together.
|
|
20
|
+
*
|
|
21
|
+
* @param _options - Configuration options for the migration process
|
|
22
|
+
* @returns A Rule function that can be executed by Angular Schematics
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* const migrationRule = tsImportMigrationRule({ path: 'some-path' });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export const tsImportMigrationRule = (_options) => {
|
|
30
|
+
return (tree, context) => {
|
|
31
|
+
const rules = [];
|
|
32
|
+
context.logger.info('📦 Migrating TypeScript imports...');
|
|
33
|
+
const sourceFiles = discoverSourceFiles(tree, context, _options.path);
|
|
34
|
+
for (const filePath of sourceFiles) {
|
|
35
|
+
const migrations = collectMigrationImports(filePath, tree, context);
|
|
36
|
+
const { imports, toRemoveImports } = migrations;
|
|
37
|
+
if (imports.size === 0 && toRemoveImports.length === 0) {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
const rule = rewriteImportsInFile(filePath, migrations);
|
|
41
|
+
rules.push(rule);
|
|
42
|
+
}
|
|
43
|
+
return chain([...rules]);
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
const collectMigrationImports = (filePath, tree, _context) => {
|
|
47
|
+
const content = tree.read(filePath);
|
|
48
|
+
const imports = new Map();
|
|
49
|
+
if (!content) {
|
|
50
|
+
return { imports, toRemoveImports: [] };
|
|
51
|
+
}
|
|
52
|
+
const simplImports = getImportNodes(filePath, content.toString(), '@simpl/');
|
|
53
|
+
const toRemoveImports = [];
|
|
54
|
+
for (const node of simplImports) {
|
|
55
|
+
const symbols = getSymbols(node);
|
|
56
|
+
const importPath = node.moduleSpecifier.getText().replace(/['"]/g, '');
|
|
57
|
+
let toRemove = false;
|
|
58
|
+
for (const symbol of symbols) {
|
|
59
|
+
const symbolName = symbol.name.getText();
|
|
60
|
+
const newImportPath = findComponentImportPath(symbolName, importPath);
|
|
61
|
+
if (!newImportPath) {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
toRemove = true;
|
|
65
|
+
const migration = imports.get(newImportPath);
|
|
66
|
+
if (!migration) {
|
|
67
|
+
imports.set(newImportPath, [symbolName]);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
migration.push(symbolName);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (toRemove) {
|
|
74
|
+
toRemoveImports.push(node);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return { imports, toRemoveImports };
|
|
78
|
+
};
|
|
79
|
+
const rewriteImportsInFile = (filePath, migrations) => {
|
|
80
|
+
return (tree) => {
|
|
81
|
+
const recorder = tree.beginUpdate(filePath);
|
|
82
|
+
const start = migrations.toRemoveImports.at(0)?.getFullStart() ?? 0;
|
|
83
|
+
// Remove old imports
|
|
84
|
+
for (const importDecl of migrations.toRemoveImports) {
|
|
85
|
+
recorder.remove(importDecl.getFullStart(), importDecl.getFullWidth());
|
|
86
|
+
}
|
|
87
|
+
// Add new imports
|
|
88
|
+
const importPaths = Array.from(migrations.imports.keys()).sort((a, b) => a.localeCompare(b));
|
|
89
|
+
for (const path of importPaths) {
|
|
90
|
+
const symbols = migrations.imports.get(path);
|
|
91
|
+
recorder.insertLeft(start, `\nimport { ${symbols.sort((a, b) => a.localeCompare(b)).join(', ')} } from '${path}';`);
|
|
92
|
+
}
|
|
93
|
+
tree.commitUpdate(recorder);
|
|
94
|
+
return tree;
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
const findComponentImportPath = (symbolName, moduleSpecifier) => {
|
|
98
|
+
const [, project, subPath] = moduleSpecifier.split('/');
|
|
99
|
+
switch (project) {
|
|
100
|
+
case 'element-ng': {
|
|
101
|
+
// Special case for MenuItem from menu package as it has conflicting name with MenuItem from common package
|
|
102
|
+
if (symbolName === 'MenuItem' && subPath === 'menu') {
|
|
103
|
+
return '@siemens/element-ng/menu';
|
|
104
|
+
}
|
|
105
|
+
return ELEMENT_NG_MAPPINGS[symbolName];
|
|
106
|
+
}
|
|
107
|
+
case 'maps-ng':
|
|
108
|
+
return MAPS_NG_MAPPINGS[symbolName];
|
|
109
|
+
case 'dashboards-ng':
|
|
110
|
+
return DASHBOARDS_NG_MAPPINGS[symbolName];
|
|
111
|
+
case 'charts-ng':
|
|
112
|
+
return CHARTS_NG_MAPPINGS[symbolName];
|
|
113
|
+
case 'element-translate-ng':
|
|
114
|
+
return ELEMENT_TRANSLATE_NG_MAPPINGS[symbolName];
|
|
115
|
+
default:
|
|
116
|
+
return undefined;
|
|
117
|
+
}
|
|
118
|
+
};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Siemens 2016 - 2025
|
|
3
|
+
* SPDX-License-Identifier: MIT
|
|
4
|
+
*/
|
|
5
|
+
export const CHARTS_NG_MAPPINGS = {
|
|
6
|
+
'AxisData': '@siemens/charts-ng',
|
|
7
|
+
'AxisPointerEvent': '@siemens/charts-ng',
|
|
8
|
+
'AxisType': '@siemens/charts-ng',
|
|
9
|
+
'BarSeriesData': '@siemens/charts-ng',
|
|
10
|
+
'CandlestickSeriesData': '@siemens/charts-ng',
|
|
11
|
+
'CartesianChartData': '@siemens/charts-ng',
|
|
12
|
+
'CartesianChartSeries': '@siemens/charts-ng',
|
|
13
|
+
'CartesianDataNullable': '@siemens/charts-ng',
|
|
14
|
+
'ChartXAxis': '@siemens/charts-ng',
|
|
15
|
+
'ChartYAxis': '@siemens/charts-ng',
|
|
16
|
+
'CircleChartData': '@siemens/charts-ng',
|
|
17
|
+
'CircleChartSeries': '@siemens/charts-ng',
|
|
18
|
+
'CircleValueUpdate': '@siemens/charts-ng',
|
|
19
|
+
'CustomLegend': '@siemens/charts-ng',
|
|
20
|
+
'CustomLegendItem': '@siemens/charts-ng',
|
|
21
|
+
'CustomLegendMultiLineInfo': '@siemens/charts-ng',
|
|
22
|
+
'CustomLegendProps': '@siemens/charts-ng',
|
|
23
|
+
'DataZoomEvent': '@siemens/charts-ng',
|
|
24
|
+
'DataZoomRange': '@siemens/charts-ng',
|
|
25
|
+
'EChartOption': '@siemens/charts-ng',
|
|
26
|
+
'echarts': '@siemens/charts-ng',
|
|
27
|
+
'EChartSeries': '@siemens/charts-ng',
|
|
28
|
+
'EChartSeriesOption': '@siemens/charts-ng',
|
|
29
|
+
'FilterMode': '@siemens/charts-ng',
|
|
30
|
+
'GaugeChartSeries': '@siemens/charts-ng',
|
|
31
|
+
'GridRectCoordinate': '@siemens/charts-ng',
|
|
32
|
+
'HeatmapSeriesData': '@siemens/charts-ng',
|
|
33
|
+
'LegendItem': '@siemens/charts-ng',
|
|
34
|
+
'LineColor': '@siemens/charts-ng',
|
|
35
|
+
'LineSeriesData': '@siemens/charts-ng',
|
|
36
|
+
'LineStepType': '@siemens/charts-ng',
|
|
37
|
+
'LineType': '@siemens/charts-ng',
|
|
38
|
+
'MarkAreaData': '@siemens/charts-ng',
|
|
39
|
+
'MarkLineData': '@siemens/charts-ng',
|
|
40
|
+
'MarkPointData': '@siemens/charts-ng',
|
|
41
|
+
'ProgressBarChartSeries': '@siemens/charts-ng',
|
|
42
|
+
'ProgressBarValueUpdate': '@siemens/charts-ng',
|
|
43
|
+
'ProgressChartSeries': '@siemens/charts-ng',
|
|
44
|
+
'ProgressValueUpdate': '@siemens/charts-ng',
|
|
45
|
+
'ScatterSeriesData': '@siemens/charts-ng',
|
|
46
|
+
'SelectedLegendItem': '@siemens/charts-ng',
|
|
47
|
+
'SeriesSelectionState': '@siemens/charts-ng',
|
|
48
|
+
'SeriesUpdate': '@siemens/charts-ng',
|
|
49
|
+
'SiBarSeriesOption': '@siemens/charts-ng',
|
|
50
|
+
'SiCandlestickSeriesOption': '@siemens/charts-ng',
|
|
51
|
+
'SiChartCartesianComponent': '@siemens/charts-ng',
|
|
52
|
+
'SiChartCircleComponent': '@siemens/charts-ng',
|
|
53
|
+
'SiChartComponent': '@siemens/charts-ng',
|
|
54
|
+
'SiChartGaugeComponent': '@siemens/charts-ng',
|
|
55
|
+
'SiChartProgressBarComponent': '@siemens/charts-ng',
|
|
56
|
+
'SiChartProgressComponent': '@siemens/charts-ng',
|
|
57
|
+
'SiChartSankeyComponent': '@siemens/charts-ng',
|
|
58
|
+
'SiChartsNgModule': '@siemens/charts-ng',
|
|
59
|
+
'SiChartSunburstComponent': '@siemens/charts-ng',
|
|
60
|
+
'SiCustomLegendComponent': '@siemens/charts-ng',
|
|
61
|
+
'SiHeatmapSeriesOption': '@siemens/charts-ng',
|
|
62
|
+
'SiLineSeriesOption': '@siemens/charts-ng',
|
|
63
|
+
'SiScatterSeriesOption': '@siemens/charts-ng',
|
|
64
|
+
'SiSeriesOption': '@siemens/charts-ng',
|
|
65
|
+
'SubchartGrid': '@siemens/charts-ng',
|
|
66
|
+
'themeElement': '@siemens/charts-ng',
|
|
67
|
+
'themeSupport': '@siemens/charts-ng',
|
|
68
|
+
'XAxisPosition': '@siemens/charts-ng',
|
|
69
|
+
'YAxisPosition': '@siemens/charts-ng'
|
|
70
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Siemens 2016 - 2025
|
|
3
|
+
* SPDX-License-Identifier: MIT
|
|
4
|
+
*/
|
|
5
|
+
export const DASHBOARDS_NG_MAPPINGS = {
|
|
6
|
+
'CONFIG_TOKEN': '@siemens/dashboards-ng',
|
|
7
|
+
'Config': '@siemens/dashboards-ng',
|
|
8
|
+
'createWidgetConfig': '@siemens/dashboards-ng',
|
|
9
|
+
'DashboardToolbarItem': '@siemens/dashboards-ng',
|
|
10
|
+
'DashboardToolbarItemAction': '@siemens/dashboards-ng',
|
|
11
|
+
'DashboardToolbarItemLink': '@siemens/dashboards-ng',
|
|
12
|
+
'DashboardToolbarItemRouterLink': '@siemens/dashboards-ng',
|
|
13
|
+
'DEFAULT_GRIDSTACK_OPTIONS': '@siemens/dashboards-ng',
|
|
14
|
+
'DEFAULT_WIDGET_STORAGE_TOKEN': '@siemens/dashboards-ng',
|
|
15
|
+
'FederatedModule': '@siemens/dashboards-ng',
|
|
16
|
+
'GridConfig': '@siemens/dashboards-ng',
|
|
17
|
+
'LoadRemoteModuleEsmOptions': '@siemens/dashboards-ng',
|
|
18
|
+
'LoadRemoteModuleManifestOptions': '@siemens/dashboards-ng',
|
|
19
|
+
'LoadRemoteModuleOptions': '@siemens/dashboards-ng',
|
|
20
|
+
'LoadRemoteModuleScriptOptions': '@siemens/dashboards-ng',
|
|
21
|
+
'NEW_WIDGET_PREFIX': '@siemens/dashboards-ng',
|
|
22
|
+
'ObjectFit': '@siemens/dashboards-ng',
|
|
23
|
+
'provideSiDashboardsTranslatableOverrides': '@siemens/dashboards-ng/translate',
|
|
24
|
+
'registerModuleFederatedWidgetLoader': '@siemens/dashboards-ng/module-federation',
|
|
25
|
+
'SetupComponentFn': '@siemens/dashboards-ng',
|
|
26
|
+
'setupWidgetEditor': '@siemens/dashboards-ng',
|
|
27
|
+
'setupWidgetInstance': '@siemens/dashboards-ng',
|
|
28
|
+
'SI_DASHBOARD_CONFIGURATION': '@siemens/dashboards-ng',
|
|
29
|
+
'SI_WIDGET_STORE': '@siemens/dashboards-ng',
|
|
30
|
+
'SiD': '@siemens/dashboards-ng',
|
|
31
|
+
'SiDashboardsNgModule': '@siemens/dashboards-ng',
|
|
32
|
+
'SiDefaultWidgetStorage': '@siemens/dashboards-ng',
|
|
33
|
+
'SiFlexibleDashboardComponent': '@siemens/dashboards-ng',
|
|
34
|
+
'SiGridComponent': '@siemens/dashboards-ng',
|
|
35
|
+
'SiWidgetCatalogComponent': '@siemens/dashboards-ng',
|
|
36
|
+
'SiWidgetInstanceEditorDialogComponent': '@siemens/dashboards-ng',
|
|
37
|
+
'STORAGE_KEY': '@siemens/dashboards-ng',
|
|
38
|
+
'WebComponent': '@siemens/dashboards-ng',
|
|
39
|
+
'Widget': '@siemens/dashboards-ng',
|
|
40
|
+
'WidgetComponentFactory': '@siemens/dashboards-ng',
|
|
41
|
+
'WidgetComponentTypeFactory': '@siemens/dashboards-ng',
|
|
42
|
+
'WidgetConfig': '@siemens/dashboards-ng',
|
|
43
|
+
'WidgetConfigEvent': '@siemens/dashboards-ng',
|
|
44
|
+
'WidgetConfigStatus': '@siemens/dashboards-ng',
|
|
45
|
+
'widgetFactoryRegistry': '@siemens/dashboards-ng',
|
|
46
|
+
'WidgetImage': '@siemens/dashboards-ng',
|
|
47
|
+
'WidgetInstance': '@siemens/dashboards-ng',
|
|
48
|
+
'WidgetInstanceEditor': '@siemens/dashboards-ng',
|
|
49
|
+
'WidgetInstanceEditorWizard': '@siemens/dashboards-ng',
|
|
50
|
+
'WidgetInstanceEditorWizardState': '@siemens/dashboards-ng',
|
|
51
|
+
'WidgetPositionConfig': '@siemens/dashboards-ng'
|
|
52
|
+
};
|