@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,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Siemens 2016 - 2025
|
|
3
|
+
* SPDX-License-Identifier: MIT
|
|
4
|
+
*/
|
|
5
|
+
export const ELEMENT_TRANSLATE_NG_MAPPINGS = {
|
|
6
|
+
'getBrowserCultureLanguage': '@siemens/element-translate-ng/translate',
|
|
7
|
+
'getBrowserLanguage': '@siemens/element-translate-ng/translate',
|
|
8
|
+
'injectSiTranslateService': '@siemens/element-translate-ng/translate',
|
|
9
|
+
'provideMockTranslateServiceBuilder': '@siemens/element-translate-ng/translate',
|
|
10
|
+
'provideNgLocalizeForElement': '@siemens/element-translate-ng/angular-localize',
|
|
11
|
+
'provideNgxTranslateForElement': '@siemens/element-translate-ng/ngx-translate',
|
|
12
|
+
'SI_TRANSLATABLE_VALUES': '@siemens/element-translate-ng/translate',
|
|
13
|
+
'SiNoTranslateService': '@siemens/element-translate-ng/translate',
|
|
14
|
+
'SiTranslateModule': '@siemens/element-translate-ng/translate',
|
|
15
|
+
'SiTranslateNgLocalizeModule': '@siemens/element-translate-ng/angular-localize',
|
|
16
|
+
'SiTranslateNgxTModule': '@siemens/element-translate-ng/ngx-translate',
|
|
17
|
+
'SiTranslatePipe': '@siemens/element-translate-ng/translate',
|
|
18
|
+
't': '@siemens/element-translate-ng/translate',
|
|
19
|
+
'TranslatableString': '@siemens/element-translate-ng/translate-types',
|
|
20
|
+
'TranslationResult': '@siemens/element-translate-ng/translate'
|
|
21
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Siemens 2016 - 2025
|
|
3
|
+
* SPDX-License-Identifier: MIT
|
|
4
|
+
*/
|
|
5
|
+
export * from './charts-ng-mappings.js';
|
|
6
|
+
export * from './dashboards-ng-mappings.js';
|
|
7
|
+
export * from './element-ng-mappings.js';
|
|
8
|
+
export * from './element-translate-ng-mappings.js';
|
|
9
|
+
export * from './maps-ng-mappings.js';
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Siemens 2016 - 2025
|
|
3
|
+
* SPDX-License-Identifier: MIT
|
|
4
|
+
*/
|
|
5
|
+
export const MAPS_NG_MAPPINGS = {
|
|
6
|
+
'ANIMATION_DURATION': '@siemens/maps-ng',
|
|
7
|
+
'CLUSTER_CHARTS_FRAGMENTS': '@siemens/maps-ng',
|
|
8
|
+
'CLUSTER_RADIUS_SIZE': '@siemens/maps-ng',
|
|
9
|
+
'ColorPalette': '@siemens/maps-ng',
|
|
10
|
+
'ColorPalettes': '@siemens/maps-ng',
|
|
11
|
+
'DEFAULT_CLUSTER_CLICK_ZOOM': '@siemens/maps-ng',
|
|
12
|
+
'DEFAULT_CLUSTER_DISTANCE': '@siemens/maps-ng',
|
|
13
|
+
'DEFAULT_CLUSTER_TYPE': '@siemens/maps-ng',
|
|
14
|
+
'DEFAULT_DONUT_RATIO': '@siemens/maps-ng',
|
|
15
|
+
'DEFAULT_FEATURE_CLICK_ZOOM': '@siemens/maps-ng',
|
|
16
|
+
'DEFAULT_FEATURE_SELECT_ZOOM': '@siemens/maps-ng',
|
|
17
|
+
'DEFAULT_FIT_PADDING': '@siemens/maps-ng',
|
|
18
|
+
'DEFAULT_GLOBAL_ZOOM': '@siemens/maps-ng',
|
|
19
|
+
'DEFAULT_ICON_SCALE': '@siemens/maps-ng',
|
|
20
|
+
'DEFAULT_ICON': '@siemens/maps-ng',
|
|
21
|
+
'DEFAULT_OFFSET': '@siemens/maps-ng',
|
|
22
|
+
'DEFAULT_STROKE_WEIGHT': '@siemens/maps-ng',
|
|
23
|
+
'GEOJSON_LAYER': '@siemens/maps-ng',
|
|
24
|
+
'Grouping': '@siemens/maps-ng',
|
|
25
|
+
'IconMarkerOptions': '@siemens/maps-ng',
|
|
26
|
+
'LabelOptions': '@siemens/maps-ng',
|
|
27
|
+
'LAYER_NAME': '@siemens/maps-ng',
|
|
28
|
+
'MapPoint': '@siemens/maps-ng',
|
|
29
|
+
'MapPointMetaData': '@siemens/maps-ng',
|
|
30
|
+
'MapService': '@siemens/maps-ng',
|
|
31
|
+
'MarkerOptions': '@siemens/maps-ng',
|
|
32
|
+
'MarkerStatusType': '@siemens/maps-ng',
|
|
33
|
+
'MAX_CLUSTER_BUILDINGS': '@siemens/maps-ng',
|
|
34
|
+
'OverlayNativeProperties': '@siemens/maps-ng',
|
|
35
|
+
'POINTS_LAYER': '@siemens/maps-ng',
|
|
36
|
+
'provideSiMapsTranslatableOverrides': '@siemens/maps-ng/translate',
|
|
37
|
+
'RenderOptions': '@siemens/maps-ng',
|
|
38
|
+
'SIEMENS_FONT_LABELS': '@siemens/maps-ng',
|
|
39
|
+
'SIEMENS_FONT': '@siemens/maps-ng',
|
|
40
|
+
'SiMapComponent': '@siemens/maps-ng',
|
|
41
|
+
'SiMapModule': '@siemens/maps-ng',
|
|
42
|
+
'SiMapPopoverComponent': '@siemens/maps-ng',
|
|
43
|
+
'SiMapsNgModule': '@siemens/maps-ng',
|
|
44
|
+
'SiMapTooltipComponent': '@siemens/maps-ng',
|
|
45
|
+
'TOOLTIP_FEATURES_TO_DISPLAY': '@siemens/maps-ng'
|
|
46
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema",
|
|
3
|
+
"$id": "TsImportToSiemensMigrationSchema",
|
|
4
|
+
"title": "TypeScript import 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,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Siemens 2016 - 2025
|
|
3
|
+
* SPDX-License-Identifier: MIT
|
|
4
|
+
*/
|
|
5
|
+
import { normalize } from '@angular-devkit/core';
|
|
6
|
+
import { SchematicsException } from '@angular-devkit/schematics';
|
|
7
|
+
import { dirname, isAbsolute, resolve } from 'path';
|
|
8
|
+
import { parseTsconfigFile } from './ts-utils.js';
|
|
9
|
+
export const getGlobalStyles = (tree) => {
|
|
10
|
+
const globalStyles = new Set();
|
|
11
|
+
for (const target of getTargets(getWorkspace(tree))) {
|
|
12
|
+
if (target.options?.styles && Array.isArray(target.options.styles)) {
|
|
13
|
+
target.options.styles.forEach((style) => {
|
|
14
|
+
if (typeof style === 'string') {
|
|
15
|
+
globalStyles.add(normalize(style));
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return [...globalStyles];
|
|
21
|
+
};
|
|
22
|
+
export const getWorkspace = (tree) => {
|
|
23
|
+
const workspace = tree.read('/angular.json');
|
|
24
|
+
if (!workspace) {
|
|
25
|
+
throw new SchematicsException('Could not find angular.json');
|
|
26
|
+
}
|
|
27
|
+
return JSON.parse(workspace.toString());
|
|
28
|
+
};
|
|
29
|
+
export const getTsConfigPaths = (tree) => {
|
|
30
|
+
const buildPaths = new Set();
|
|
31
|
+
for (const target of getTargets(getWorkspace(tree))) {
|
|
32
|
+
if (target.options?.tsConfig && typeof target.options.tsConfig === 'string') {
|
|
33
|
+
const tsConfig = target.options.tsConfig;
|
|
34
|
+
if (tree.exists(tsConfig)) {
|
|
35
|
+
buildPaths.add(normalize(tsConfig));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return [...buildPaths];
|
|
40
|
+
};
|
|
41
|
+
export const discoverSourceFiles = (tree, context, projectPath, extension = '.ts') => {
|
|
42
|
+
const basePath = normalize(process.cwd());
|
|
43
|
+
// Wrap the tree to force full paths since parsing the typescript config requires full paths.
|
|
44
|
+
const tsConfigs = getTsConfigPaths(tree);
|
|
45
|
+
if (!tsConfigs.length) {
|
|
46
|
+
throw new SchematicsException('Could not find any tsconfig file. Cannot run the migration.');
|
|
47
|
+
}
|
|
48
|
+
context.logger.debug(`Found tsconfig files: ${tsConfigs.join(', ')}`);
|
|
49
|
+
let sourceFiles = [];
|
|
50
|
+
for (const configPath of tsConfigs) {
|
|
51
|
+
const tsConfigPath = resolve(basePath, configPath);
|
|
52
|
+
const config = parseTsconfigFile(tsConfigPath, dirname(tsConfigPath), tree);
|
|
53
|
+
sourceFiles.push(...config.fileNames.filter(f => f.endsWith(extension)));
|
|
54
|
+
}
|
|
55
|
+
// Filter all files which are in the path
|
|
56
|
+
if (projectPath) {
|
|
57
|
+
sourceFiles = isAbsolute(projectPath)
|
|
58
|
+
? sourceFiles.filter(f => f.startsWith(projectPath))
|
|
59
|
+
: sourceFiles.filter(f => f.startsWith(resolve(basePath, projectPath)));
|
|
60
|
+
}
|
|
61
|
+
return Array.from(new Set(sourceFiles)).map(p => p.substring(basePath.length + 1));
|
|
62
|
+
};
|
|
63
|
+
function* getTargets(workspace, targetNames = ['build', 'test']) {
|
|
64
|
+
for (const [, projectRaw] of Object.entries(workspace.projects)) {
|
|
65
|
+
const project = projectRaw;
|
|
66
|
+
if (!project.architect) {
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
for (const [name, target] of Object.entries(project.architect)) {
|
|
70
|
+
if (targetNames.includes(name) && target) {
|
|
71
|
+
yield target;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Siemens 2016 - 2025
|
|
3
|
+
* SPDX-License-Identifier: MIT
|
|
4
|
+
*/
|
|
5
|
+
import { normalize } from '@angular-devkit/core';
|
|
6
|
+
import { relative } from 'path';
|
|
7
|
+
export class SchematicsFileSystem {
|
|
8
|
+
tree;
|
|
9
|
+
basePath = normalize(process.cwd());
|
|
10
|
+
constructor(tree) {
|
|
11
|
+
this.tree = tree;
|
|
12
|
+
}
|
|
13
|
+
readText = (path) => {
|
|
14
|
+
return this.tree.readText(normalize(relative(this.basePath, path)));
|
|
15
|
+
};
|
|
16
|
+
exists = (path) => {
|
|
17
|
+
return this.tree.exists(normalize(relative(this.basePath, path)));
|
|
18
|
+
};
|
|
19
|
+
getDir = (path) => {
|
|
20
|
+
return this.tree.getDir(normalize(relative(this.basePath, path)));
|
|
21
|
+
};
|
|
22
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a sample workspace with two applications: 'app' (default) and 'second-app'
|
|
3
|
+
*/
|
|
4
|
+
export const createTestApp = async (runner, appOptions = {}, files) => {
|
|
5
|
+
let tree = await createWorkspace(runner);
|
|
6
|
+
if (files) {
|
|
7
|
+
addTestFiles(tree, files);
|
|
8
|
+
}
|
|
9
|
+
tree = await runner.runExternalSchematic('@schematics/angular', 'application', { name: 'app', ...appOptions }, tree);
|
|
10
|
+
return runner.runExternalSchematic('@schematics/angular', 'application', { name: 'second-app', ...appOptions }, tree);
|
|
11
|
+
};
|
|
12
|
+
const createWorkspace = (runner) => {
|
|
13
|
+
return runner.runExternalSchematic('@schematics/angular', 'workspace', {
|
|
14
|
+
name: 'workspace',
|
|
15
|
+
version: '1.0.0',
|
|
16
|
+
newProjectRoot: 'projects'
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
export const addTestFiles = (tree, files) => {
|
|
20
|
+
Object.entries(files).forEach(([path, content]) => {
|
|
21
|
+
if (tree.exists(path)) {
|
|
22
|
+
tree.overwrite(path, content);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
tree.create(path, content);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
return tree;
|
|
29
|
+
};
|
|
30
|
+
export const readLines = (tree, path) => tree
|
|
31
|
+
.readContent(path)
|
|
32
|
+
.split('\n')
|
|
33
|
+
.filter(l => l.length > 0);
|
|
34
|
+
export const removeTestFiles = (tree, files) => {
|
|
35
|
+
files.forEach(path => {
|
|
36
|
+
if (tree.exists(path)) {
|
|
37
|
+
tree.delete(path);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
return tree;
|
|
41
|
+
};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Siemens 2016 - 2025
|
|
3
|
+
* SPDX-License-Identifier: MIT
|
|
4
|
+
*/
|
|
5
|
+
import { normalize } from '@angular-devkit/core';
|
|
6
|
+
import { SchematicsException } from '@angular-devkit/schematics';
|
|
7
|
+
import { isAbsolute } from 'path';
|
|
8
|
+
import ts from 'typescript';
|
|
9
|
+
import { SchematicsFileSystem } from './schematics-file-system.js';
|
|
10
|
+
/**
|
|
11
|
+
* Reads and parses a tsconfig file from the given path.
|
|
12
|
+
*/
|
|
13
|
+
export const parseTsconfigFile = (tsconfigPath, basePath, tree) => {
|
|
14
|
+
// Parse the tsconfig file content
|
|
15
|
+
const fs = new SchematicsFileSystem(tree);
|
|
16
|
+
const { config, error } = ts.readConfigFile(tsconfigPath, fs.readText);
|
|
17
|
+
if (error) {
|
|
18
|
+
throw new SchematicsException(`Error parsing ${tsconfigPath}: ${error.messageText}`);
|
|
19
|
+
}
|
|
20
|
+
// Create a ts.ParseConfigHost that uses the schematics Tree
|
|
21
|
+
const parseConfigHost = {
|
|
22
|
+
fileExists: fs.exists,
|
|
23
|
+
readFile: fs.readText,
|
|
24
|
+
readDirectory: (path, _extensions, _excludes, _includes, _depth) => visitDirectory(fs, path),
|
|
25
|
+
useCaseSensitiveFileNames: true
|
|
26
|
+
};
|
|
27
|
+
// Throw if incorrect arguments are passed to this function. Passing relative base paths
|
|
28
|
+
// results in root directories not being resolved and in later type checking runtime errors.
|
|
29
|
+
// More details can be found here: https://github.com/microsoft/TypeScript/issues/37731.
|
|
30
|
+
if (!isAbsolute(basePath)) {
|
|
31
|
+
throw Error('Unexpected relative base path has been specified.');
|
|
32
|
+
}
|
|
33
|
+
return ts.parseJsonConfigFileContent(config, parseConfigHost, basePath, {});
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Finds all nodes which match the given kind.
|
|
37
|
+
*/
|
|
38
|
+
export const findNodes = (node, kindOrGuard, max = Infinity, recursive = false) => {
|
|
39
|
+
if (!node || max == 0) {
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
const test = typeof kindOrGuard === 'function'
|
|
43
|
+
? kindOrGuard
|
|
44
|
+
: // eslint-disable-next-line @typescript-eslint/no-shadow
|
|
45
|
+
(node) => node.kind === kindOrGuard;
|
|
46
|
+
const arr = [];
|
|
47
|
+
if (test(node)) {
|
|
48
|
+
arr.push(node);
|
|
49
|
+
max--;
|
|
50
|
+
}
|
|
51
|
+
if (max > 0 && (recursive || !test(node))) {
|
|
52
|
+
for (const child of node.getChildren()) {
|
|
53
|
+
// eslint-disable-next-line @typescript-eslint/no-loop-func, @typescript-eslint/no-shadow
|
|
54
|
+
findNodes(child, test, max, recursive).forEach(node => {
|
|
55
|
+
if (max > 0) {
|
|
56
|
+
arr.push(node);
|
|
57
|
+
}
|
|
58
|
+
max--;
|
|
59
|
+
});
|
|
60
|
+
if (max <= 0) {
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return arr;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Gets the import nodes from a TypeScript file which start the given import path.
|
|
69
|
+
*/
|
|
70
|
+
export const getImportNodes = (filePath, content, specifier) => {
|
|
71
|
+
const sourceFile = ts.createSourceFile(filePath, content.toString(), ts.ScriptTarget.Latest, true);
|
|
72
|
+
// Find all import declarations in the source file
|
|
73
|
+
const allImports = findNodes(sourceFile, ts.SyntaxKind.ImportDeclaration);
|
|
74
|
+
return allImports.filter(node => node.moduleSpecifier &&
|
|
75
|
+
ts.isStringLiteral(node.moduleSpecifier) &&
|
|
76
|
+
node.moduleSpecifier.text.startsWith(specifier));
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Gets the imported symbols from an import declaration.
|
|
80
|
+
*/
|
|
81
|
+
export const getSymbols = (node) => {
|
|
82
|
+
// Extract all imported component names or module names from @simpl/ imports
|
|
83
|
+
return node.importClause?.namedBindings && ts.isNamedImports(node.importClause.namedBindings)
|
|
84
|
+
? node.importClause.namedBindings.elements
|
|
85
|
+
: [];
|
|
86
|
+
};
|
|
87
|
+
const visitDirectory = (fs, dirPath) => {
|
|
88
|
+
const entries = fs.getDir(dirPath);
|
|
89
|
+
const files = [];
|
|
90
|
+
entries.subfiles.forEach(filename => {
|
|
91
|
+
const fullPath = normalize(`${dirPath}/${filename}`);
|
|
92
|
+
files.push(fullPath);
|
|
93
|
+
});
|
|
94
|
+
entries.subdirs.forEach(subdirname => {
|
|
95
|
+
const newFiles = visitDirectory(fs, `${dirPath}/${subdirname}`);
|
|
96
|
+
files.push(...newFiles);
|
|
97
|
+
});
|
|
98
|
+
return files;
|
|
99
|
+
};
|
package/search-bar/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as _siemens_element_translate_ng_translate_types from '@siemens/element-translate-ng/translate-types';
|
|
1
2
|
import * as _angular_core from '@angular/core';
|
|
2
3
|
import { OnInit, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';
|
|
3
4
|
import { ControlValueAccessor } from '@angular/forms';
|
|
@@ -49,6 +50,15 @@ declare class SiSearchBarComponent implements OnInit, OnDestroy, ControlValueAcc
|
|
|
49
50
|
readonly colorVariant: _angular_core.InputSignal<BackgroundColorVariant>;
|
|
50
51
|
/** @defaultValue false */
|
|
51
52
|
readonly disabledInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
53
|
+
/**
|
|
54
|
+
* Aria label for the clear button.
|
|
55
|
+
*
|
|
56
|
+
* @defaultValue
|
|
57
|
+
* ```
|
|
58
|
+
* t(() => $localize`:@@SI_SEARCH_BAR.CLEAR_BUTTON:clear`)
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
readonly clearButtonAriaLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate_types.TranslatableString>;
|
|
52
62
|
/**
|
|
53
63
|
* Output callback event will provide you with search term if search input changes.
|
|
54
64
|
*/
|
|
@@ -81,7 +91,7 @@ declare class SiSearchBarComponent implements OnInit, OnDestroy, ControlValueAcc
|
|
|
81
91
|
protected resetForm(): void;
|
|
82
92
|
protected writeSearchValue(value: string): void;
|
|
83
93
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiSearchBarComponent, never>;
|
|
84
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiSearchBarComponent, "si-search-bar", never, { "debounceTime": { "alias": "debounceTime"; "required": false; "isSignal": true; }; "prohibitedCharacters": { "alias": "prohibitedCharacters"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "showIcon": { "alias": "showIcon"; "required": false; "isSignal": true; }; "tabbable": { "alias": "tabbable"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "colorVariant": { "alias": "colorVariant"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "searchChange": "searchChange"; }, never, never, true, never>;
|
|
94
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiSearchBarComponent, "si-search-bar", never, { "debounceTime": { "alias": "debounceTime"; "required": false; "isSignal": true; }; "prohibitedCharacters": { "alias": "prohibitedCharacters"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "showIcon": { "alias": "showIcon"; "required": false; "isSignal": true; }; "tabbable": { "alias": "tabbable"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "colorVariant": { "alias": "colorVariant"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; "clearButtonAriaLabel": { "alias": "clearButtonAriaLabel"; "required": false; "isSignal": true; }; }, { "searchChange": "searchChange"; }, never, never, true, never>;
|
|
85
95
|
}
|
|
86
96
|
|
|
87
97
|
declare class SiSearchBarModule {
|
package/select/index.d.ts
CHANGED
|
@@ -62,7 +62,9 @@ declare abstract class SiSelectSelectionStrategy<T, IV = T | T[]> implements Con
|
|
|
62
62
|
/**
|
|
63
63
|
* Copyright (c) Siemens 2016 - 2025
|
|
64
64
|
* SPDX-License-Identifier: MIT
|
|
65
|
-
|
|
65
|
+
*/
|
|
66
|
+
|
|
67
|
+
/**
|
|
66
68
|
* @deprecated Use {@link SelectOption} instead.
|
|
67
69
|
*/
|
|
68
70
|
interface SelectOptionLegacy {
|
|
@@ -71,7 +73,7 @@ interface SelectOptionLegacy {
|
|
|
71
73
|
/** Identifies the option, will be used as `value` for the component */
|
|
72
74
|
id: string;
|
|
73
75
|
/** Title to display */
|
|
74
|
-
title:
|
|
76
|
+
title: TranslatableString;
|
|
75
77
|
/** Optional icon to display */
|
|
76
78
|
icon?: string;
|
|
77
79
|
/** Optional color class for the icon */
|
|
@@ -86,7 +88,7 @@ interface SelectGroup<T> {
|
|
|
86
88
|
/** An optional key to identify this group in a custom template. */
|
|
87
89
|
key?: string;
|
|
88
90
|
/** A label to be shown as header for this group. Is optional if a custom template is provided. */
|
|
89
|
-
label?:
|
|
91
|
+
label?: TranslatableString;
|
|
90
92
|
/** All options that are part of this group. */
|
|
91
93
|
options: SelectOption<T>[];
|
|
92
94
|
}
|
|
@@ -115,12 +117,12 @@ interface SelectOption<T> {
|
|
|
115
117
|
* A label to be shown for this option.
|
|
116
118
|
* Is optional if a custom template is provided or if the value should directly be rendered.
|
|
117
119
|
*/
|
|
118
|
-
label?:
|
|
120
|
+
label?: TranslatableString;
|
|
119
121
|
/**
|
|
120
122
|
* Used for typeahead functionality when filtering is disabled.
|
|
121
123
|
* If provided, this will be used, otherwise the innerText of the rendered element.
|
|
122
124
|
*/
|
|
123
|
-
typeaheadLabel?:
|
|
125
|
+
typeaheadLabel?: TranslatableString;
|
|
124
126
|
}
|
|
125
127
|
/** Alias for {@link SelectOption} or {@link SelectGroup} */
|
|
126
128
|
type SelectItem<T> = SelectGroup<T> | SelectOption<T>;
|
package/sort-bar/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { OnInit } from '@angular/core';
|
|
3
|
-
import * as _siemens_element_translate_ng_translate_types from '@siemens/element-translate-ng/translate-types';
|
|
4
3
|
import { HttpParams } from '@angular/common/http';
|
|
4
|
+
import { TranslatableString } from '@siemens/element-translate-ng/translate';
|
|
5
5
|
|
|
6
6
|
interface SortCriteria {
|
|
7
|
-
name:
|
|
7
|
+
name: TranslatableString;
|
|
8
8
|
key: number | string;
|
|
9
9
|
}
|
|
10
10
|
declare class SiSortBarComponent implements OnInit {
|
|
@@ -16,7 +16,7 @@ declare class SiSortBarComponent implements OnInit {
|
|
|
16
16
|
* t(() => $localize`:@@SI_SORT_BAR.TITLE:Sort by`)
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
|
-
readonly sortTitle: i0.InputSignal<
|
|
19
|
+
readonly sortTitle: i0.InputSignal<TranslatableString>;
|
|
20
20
|
/**
|
|
21
21
|
* List of sort criteria.
|
|
22
22
|
*/
|
package/split/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { OnChanges, TemplateRef, EventEmitter, SimpleChanges, AfterContentInit, QueryList, Signal } from '@angular/core';
|
|
3
|
+
import { TranslatableString } from '@siemens/element-translate-ng/translate';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Copyright (c) Siemens 2016 - 2025
|
|
@@ -43,7 +44,7 @@ declare class SiSplitPartComponent implements OnChanges {
|
|
|
43
44
|
/**
|
|
44
45
|
* Sets the title of the split part header.
|
|
45
46
|
*/
|
|
46
|
-
heading:
|
|
47
|
+
heading: TranslatableString;
|
|
47
48
|
/**
|
|
48
49
|
* Minimum size in px.
|
|
49
50
|
*
|
|
@@ -83,7 +84,7 @@ declare class SiSplitPartComponent implements OnChanges {
|
|
|
83
84
|
*
|
|
84
85
|
* @defaultValue 'collapse'
|
|
85
86
|
*/
|
|
86
|
-
collapseLabel:
|
|
87
|
+
collapseLabel: TranslatableString;
|
|
87
88
|
/**
|
|
88
89
|
* An optional stateId to uniquely identify a component instance.
|
|
89
90
|
* Required for persistence of ui state.
|
package/status-bar/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { DoCheck, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';
|
|
|
4
4
|
import { Observable } from 'rxjs';
|
|
5
5
|
import * as _siemens_element_ng_common from '@siemens/element-ng/common';
|
|
6
6
|
import { ExtendedStatusType } from '@siemens/element-ng/common';
|
|
7
|
+
import { TranslatableString } from '@siemens/element-translate-ng/translate';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Copyright (c) Siemens 2016 - 2025
|
|
@@ -160,8 +161,8 @@ declare class SiStatusBarModule {
|
|
|
160
161
|
declare class SiStatusBarItemComponent {
|
|
161
162
|
private readonly statusIcons;
|
|
162
163
|
readonly status: _angular_core.InputSignal<ExtendedStatusType | undefined>;
|
|
163
|
-
readonly value: _angular_core.InputSignal<
|
|
164
|
-
readonly heading: _angular_core.InputSignal<
|
|
164
|
+
readonly value: _angular_core.InputSignal<number | TranslatableString>;
|
|
165
|
+
readonly heading: _angular_core.InputSignal<TranslatableString>;
|
|
165
166
|
readonly color: _angular_core.InputSignal<string | undefined>;
|
|
166
167
|
/** @defaultValue false */
|
|
167
168
|
readonly blink: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
package/tabs/index.d.ts
CHANGED
|
@@ -41,6 +41,7 @@ declare abstract class SiTabBaseDirective implements OnDestroy, FocusableOption
|
|
|
41
41
|
readonly closable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
42
42
|
/** Event emitter to notify when a tab is closed. */
|
|
43
43
|
readonly closeTriggered: _angular_core.OutputEmitterRef<void>;
|
|
44
|
+
/** @internal */
|
|
44
45
|
protected readonly tabButton: ElementRef<HTMLElement>;
|
|
45
46
|
/** @internal */
|
|
46
47
|
readonly tabContent: Signal<TemplateRef<any> | undefined>;
|
|
@@ -64,6 +65,8 @@ declare abstract class SiTabBaseDirective implements OnDestroy, FocusableOption
|
|
|
64
65
|
selectTab(retainFocus?: boolean): void;
|
|
65
66
|
/** @internal */
|
|
66
67
|
deSelectTab(): void;
|
|
68
|
+
/** @internal */
|
|
69
|
+
scrollTabIntoView(): void;
|
|
67
70
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiTabBaseDirective, never>;
|
|
68
71
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SiTabBaseDirective, "[siTabNextBase]", never, { "heading": { "alias": "heading"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "badgeContent": { "alias": "badgeContent"; "required": false; "isSignal": true; }; "badgeColor": { "alias": "badgeColor"; "required": false; "isSignal": true; }; "disabledTab": { "alias": "disabled"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; }, { "closeTriggered": "closeTriggered"; }, never, never, true, never>;
|
|
69
72
|
}
|
|
@@ -107,6 +110,7 @@ declare class SiTabsetComponent {
|
|
|
107
110
|
/** @internal */
|
|
108
111
|
protected readonly showMenuButton: _angular_core.WritableSignal<boolean>;
|
|
109
112
|
protected tabIsLink(tab: unknown): tab is SiTabLinkComponent;
|
|
113
|
+
constructor();
|
|
110
114
|
/** @internal */
|
|
111
115
|
removedTabByUser(index: number, active?: boolean): void;
|
|
112
116
|
protected resizeContainer(width: number, scrollWidth: number): void;
|
|
@@ -134,13 +138,23 @@ declare class SiTabComponent extends SiTabBaseDirective implements OnDestroy {
|
|
|
134
138
|
* @defaultValue false
|
|
135
139
|
* */
|
|
136
140
|
readonly active: _angular_core.ModelSignal<boolean>;
|
|
141
|
+
/**
|
|
142
|
+
* Guard to check if the tab can be activated.
|
|
143
|
+
* If not provided, the tab can always be activated.
|
|
144
|
+
*/
|
|
145
|
+
readonly canActivate: _angular_core.InputSignal<(() => boolean) | undefined>;
|
|
146
|
+
/**
|
|
147
|
+
* Guard to check if the tab can be deactivated.
|
|
148
|
+
* If not provided, the tab can always be deactivated.
|
|
149
|
+
*/
|
|
150
|
+
readonly canDeactivate: _angular_core.InputSignal<(() => boolean) | undefined>;
|
|
137
151
|
protected selectTabByUser(): void;
|
|
138
152
|
/** {@inheritDoc} */
|
|
139
153
|
selectTab(retainFocus?: boolean): void;
|
|
140
154
|
/** @internal */
|
|
141
155
|
deSelectTab(): void;
|
|
142
156
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiTabComponent, never>;
|
|
143
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiTabComponent, "si-tab", never, { "active": { "alias": "active"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; }, never, ["*"], true, never>;
|
|
157
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiTabComponent, "si-tab", never, { "active": { "alias": "active"; "required": false; "isSignal": true; }; "canActivate": { "alias": "canActivate"; "required": false; "isSignal": true; }; "canDeactivate": { "alias": "canDeactivate"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; }, never, ["*"], true, never>;
|
|
144
158
|
}
|
|
145
159
|
|
|
146
160
|
export { SiTabComponent, SiTabLinkComponent, SiTabsetComponent };
|
package/template-i18n.json
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"SI_CONFIRMATION_DIALOG.YES": "Yes",
|
|
25
25
|
"SI_CONTENT_ACTION_BAR.TOGGLE": "Toggle",
|
|
26
26
|
"SI_DASHBOARD.EXPAND": "Expand",
|
|
27
|
+
"SI_DASHBOARD.EXPAND_WIDGET_ACTIONS": "Expand actions",
|
|
27
28
|
"SI_DASHBOARD.RESTORE": "Restore",
|
|
28
29
|
"SI_DATEPICKER.CALENDAR_TOGGLE_BUTTON": "Open calendar",
|
|
29
30
|
"SI_DATEPICKER.CALENDAR_WEEK_LABEL": "Calendar week",
|
|
@@ -101,18 +102,24 @@
|
|
|
101
102
|
"SI_FILTER_BAR.RESET_FILTERS": "Reset filters",
|
|
102
103
|
"SI_FORM_CONTAINER.ERROR.DATE_FORMAT": "Invalid date format.",
|
|
103
104
|
"SI_FORM_CONTAINER.ERROR.EMAIL": "The email is not valid.",
|
|
105
|
+
"SI_FORM_CONTAINER.ERROR.HOURS": "The hours are not valid.",
|
|
104
106
|
"SI_FORM_CONTAINER.ERROR.IPV4": "Invalid IPv4 address.",
|
|
105
107
|
"SI_FORM_CONTAINER.ERROR.IPV6": "Invalid IPv6 address.",
|
|
106
108
|
"SI_FORM_CONTAINER.ERROR.MAX": "The value is too large.",
|
|
107
109
|
"SI_FORM_CONTAINER.ERROR.MAX_DATE": "The date is too far in the future.",
|
|
108
110
|
"SI_FORM_CONTAINER.ERROR.MAX_LENGTH": "A maximum number of characters is exceeded.",
|
|
111
|
+
"SI_FORM_CONTAINER.ERROR.MAX_TIME": "The time is too far in the future.",
|
|
112
|
+
"SI_FORM_CONTAINER.ERROR.MILLISECONDS": "The milliseconds are not valid.",
|
|
109
113
|
"SI_FORM_CONTAINER.ERROR.MIN": "The value is too small",
|
|
114
|
+
"SI_FORM_CONTAINER.ERROR.MINUTES": "The minutes are not valid.",
|
|
110
115
|
"SI_FORM_CONTAINER.ERROR.MIN_DATE": "The date is too far in the past.",
|
|
111
116
|
"SI_FORM_CONTAINER.ERROR.MIN_LENGTH": "The minimum number of characters is not met.",
|
|
117
|
+
"SI_FORM_CONTAINER.ERROR.MIN_TIME": "The time is too far in the past.",
|
|
112
118
|
"SI_FORM_CONTAINER.ERROR.NUMBER_FORMAT": "The value is not a valid number.",
|
|
113
119
|
"SI_FORM_CONTAINER.ERROR.PATTERN": "The value does not match the predefined pattern.",
|
|
114
120
|
"SI_FORM_CONTAINER.ERROR.REQUIRED": "A value is required.",
|
|
115
121
|
"SI_FORM_CONTAINER.ERROR.REQUIRED_TRUE": "The value should be true.",
|
|
122
|
+
"SI_FORM_CONTAINER.ERROR.SECONDS": "The seconds are not valid.",
|
|
116
123
|
"SI_ICON_STATUS.CAUTION": "Caution",
|
|
117
124
|
"SI_ICON_STATUS.CRITICAL": "Critical",
|
|
118
125
|
"SI_ICON_STATUS.DANGER": "Danger",
|
|
@@ -171,6 +178,7 @@
|
|
|
171
178
|
"SI_PHOTO_UPLOAD.UPLOAD_PHOTO": "Upload photo",
|
|
172
179
|
"SI_PILLS_INPUT.INPUT_ELEMENT_ARIA_LABEL": "Create item",
|
|
173
180
|
"SI_PROGRESSBAR.LABEL": "Progress",
|
|
181
|
+
"SI_SEARCH_BAR.CLEAR_BUTTON": "clear",
|
|
174
182
|
"SI_SELECT.NO-RESULTS-FOUND": "No results found",
|
|
175
183
|
"SI_SELECT.SEARCH-PLACEHOLDER": "Search...",
|
|
176
184
|
"SI_SIDE_PANEL.CLOSE": "Close",
|
package/tooltip/index.d.ts
CHANGED
|
@@ -36,7 +36,6 @@ declare class SiTooltipDirective implements OnDestroy {
|
|
|
36
36
|
private tooltipRef?;
|
|
37
37
|
private tooltipService;
|
|
38
38
|
private elementRef;
|
|
39
|
-
private destroyer;
|
|
40
39
|
ngOnDestroy(): void;
|
|
41
40
|
private showTooltip;
|
|
42
41
|
protected focusIn(): void;
|
|
@@ -70,6 +69,7 @@ declare class TooltipRef {
|
|
|
70
69
|
private describedBy;
|
|
71
70
|
private injector?;
|
|
72
71
|
constructor(overlayRef: OverlayRef, element: ElementRef, describedBy: string, injector?: Injector | undefined);
|
|
72
|
+
private subscription?;
|
|
73
73
|
show(content: TranslatableString | TemplateRef<any> | Type<any>, tooltipContext?: unknown): void;
|
|
74
74
|
hide(): void;
|
|
75
75
|
destroy(): void;
|
package/translate/index.d.ts
CHANGED
|
@@ -27,6 +27,7 @@ interface SiTranslatableKeys {
|
|
|
27
27
|
'SI_CONFIRMATION_DIALOG.YES'?: string;
|
|
28
28
|
'SI_CONTENT_ACTION_BAR.TOGGLE'?: string;
|
|
29
29
|
'SI_DASHBOARD.EXPAND'?: string;
|
|
30
|
+
'SI_DASHBOARD.EXPAND_WIDGET_ACTIONS'?: string;
|
|
30
31
|
'SI_DASHBOARD.RESTORE'?: string;
|
|
31
32
|
'SI_DATEPICKER.CALENDAR_TOGGLE_BUTTON'?: string;
|
|
32
33
|
'SI_DATEPICKER.CALENDAR_WEEK_LABEL'?: string;
|
|
@@ -104,18 +105,24 @@ interface SiTranslatableKeys {
|
|
|
104
105
|
'SI_FILTER_BAR.RESET_FILTERS'?: string;
|
|
105
106
|
'SI_FORM_CONTAINER.ERROR.DATE_FORMAT'?: string;
|
|
106
107
|
'SI_FORM_CONTAINER.ERROR.EMAIL'?: string;
|
|
108
|
+
'SI_FORM_CONTAINER.ERROR.HOURS'?: string;
|
|
107
109
|
'SI_FORM_CONTAINER.ERROR.IPV4'?: string;
|
|
108
110
|
'SI_FORM_CONTAINER.ERROR.IPV6'?: string;
|
|
109
111
|
'SI_FORM_CONTAINER.ERROR.MAX'?: string;
|
|
110
112
|
'SI_FORM_CONTAINER.ERROR.MAX_DATE'?: string;
|
|
111
113
|
'SI_FORM_CONTAINER.ERROR.MAX_LENGTH'?: string;
|
|
114
|
+
'SI_FORM_CONTAINER.ERROR.MAX_TIME'?: string;
|
|
115
|
+
'SI_FORM_CONTAINER.ERROR.MILLISECONDS'?: string;
|
|
112
116
|
'SI_FORM_CONTAINER.ERROR.MIN'?: string;
|
|
117
|
+
'SI_FORM_CONTAINER.ERROR.MINUTES'?: string;
|
|
113
118
|
'SI_FORM_CONTAINER.ERROR.MIN_DATE'?: string;
|
|
114
119
|
'SI_FORM_CONTAINER.ERROR.MIN_LENGTH'?: string;
|
|
120
|
+
'SI_FORM_CONTAINER.ERROR.MIN_TIME'?: string;
|
|
115
121
|
'SI_FORM_CONTAINER.ERROR.NUMBER_FORMAT'?: string;
|
|
116
122
|
'SI_FORM_CONTAINER.ERROR.PATTERN'?: string;
|
|
117
123
|
'SI_FORM_CONTAINER.ERROR.REQUIRED'?: string;
|
|
118
124
|
'SI_FORM_CONTAINER.ERROR.REQUIRED_TRUE'?: string;
|
|
125
|
+
'SI_FORM_CONTAINER.ERROR.SECONDS'?: string;
|
|
119
126
|
'SI_ICON_STATUS.CAUTION'?: string;
|
|
120
127
|
'SI_ICON_STATUS.CRITICAL'?: string;
|
|
121
128
|
'SI_ICON_STATUS.DANGER'?: string;
|
|
@@ -174,6 +181,7 @@ interface SiTranslatableKeys {
|
|
|
174
181
|
'SI_PHOTO_UPLOAD.UPLOAD_PHOTO'?: string;
|
|
175
182
|
'SI_PILLS_INPUT.INPUT_ELEMENT_ARIA_LABEL'?: string;
|
|
176
183
|
'SI_PROGRESSBAR.LABEL'?: string;
|
|
184
|
+
'SI_SEARCH_BAR.CLEAR_BUTTON'?: string;
|
|
177
185
|
'SI_SELECT.NO-RESULTS-FOUND'?: string;
|
|
178
186
|
'SI_SELECT.SEARCH-PLACEHOLDER'?: string;
|
|
179
187
|
'SI_SIDE_PANEL.CLOSE'?: string;
|