@skyux/packages 12.24.0 → 12.26.0
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/collection.json +5 -0
- package/package.json +58 -58
- package/src/schematics/migrations/migration-collection.json +1 -1
- package/src/schematics/ng-generate/convert-definition-list-to-description-list/convert-definition-list-to-description-list.schematic.d.ts +6 -0
- package/src/schematics/ng-generate/convert-definition-list-to-description-list/convert-definition-list-to-description-list.schematic.js +15 -0
- package/src/schematics/ng-generate/convert-definition-list-to-description-list/convert-definition-list-to-description-list.schematic.js.map +1 -0
- package/src/schematics/ng-generate/convert-definition-list-to-description-list/schema.d.ts +9 -0
- package/src/schematics/ng-generate/convert-definition-list-to-description-list/schema.js +3 -0
- package/src/schematics/ng-generate/convert-definition-list-to-description-list/schema.js.map +1 -0
- package/src/schematics/ng-generate/convert-definition-list-to-description-list/schema.json +13 -0
- package/src/schematics/rules/convert-definition-list-to-description-list/convert-definition-list-to-description-list.d.ts +2 -0
- package/src/schematics/rules/convert-definition-list-to-description-list/convert-definition-list-to-description-list.js +117 -0
- package/src/schematics/rules/convert-definition-list-to-description-list/convert-definition-list-to-description-list.js.map +1 -0
- package/src/schematics/utility/template.d.ts +14 -0
- package/src/schematics/utility/template.js +66 -0
- package/src/schematics/utility/template.js.map +1 -0
- package/src/schematics/utility/typescript/ng-ast.d.ts +5 -0
- package/src/schematics/utility/typescript/ng-ast.js +31 -0
- package/src/schematics/utility/typescript/ng-ast.js.map +1 -0
- package/src/schematics/utility/typescript/remove-import.d.ts +2 -2
- package/src/schematics/utility/typescript/remove-import.js +1 -3
- package/src/schematics/utility/typescript/remove-import.js.map +1 -1
- package/src/schematics/utility/typescript/swap-imported-class.d.ts +2 -2
- package/src/schematics/utility/typescript/swap-imported-class.js +25 -16
- package/src/schematics/utility/typescript/swap-imported-class.js.map +1 -1
- package/src/version.js +1 -1
package/collection.json
CHANGED
|
@@ -16,6 +16,11 @@
|
|
|
16
16
|
"factory": "./src/schematics/ag-grid-migrate/ag-grid-migrate.schematic",
|
|
17
17
|
"schema": "./src/schematics/ag-grid-migrate/schema.json"
|
|
18
18
|
},
|
|
19
|
+
"convert-definition-list-to-description-list": {
|
|
20
|
+
"description": "Convert <sky-definition-list> components to <sky-description-list> components.",
|
|
21
|
+
"factory": "./src/schematics/ng-generate/convert-definition-list-to-description-list/convert-definition-list-to-description-list.schematic",
|
|
22
|
+
"schema": "./src/schematics/ng-generate/convert-definition-list-to-description-list/schema.json"
|
|
23
|
+
},
|
|
19
24
|
"polyfills": {
|
|
20
25
|
"description": "Add @skyux/packages/polyfills to project config.",
|
|
21
26
|
"factory": "./src/schematics/ng-generate/polyfills/polyfills.schematic",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skyux/packages",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.26.0",
|
|
4
4
|
"author": "Blackbaud, Inc.",
|
|
5
5
|
"description": "Handles the `ng update` command for SKY UX component libraries.",
|
|
6
6
|
"keywords": [
|
|
@@ -35,68 +35,68 @@
|
|
|
35
35
|
"ng-update": {
|
|
36
36
|
"migrations": "./src/schematics/migrations/migration-collection.json",
|
|
37
37
|
"packageGroup": {
|
|
38
|
-
"@skyux/packages": "12.
|
|
38
|
+
"@skyux/packages": "12.26.0",
|
|
39
39
|
"@blackbaud/angular-tree-component": "^1.0.0",
|
|
40
|
-
"@skyux-sdk/eslint-config": "12.
|
|
41
|
-
"@skyux-sdk/eslint-schematics": "12.
|
|
42
|
-
"@skyux-sdk/prettier-schematics": "12.
|
|
43
|
-
"@skyux-sdk/stylelint-schematics": "12.
|
|
44
|
-
"@skyux-sdk/testing": "12.
|
|
45
|
-
"@skyux/a11y": "12.
|
|
46
|
-
"@skyux/action-bars": "12.
|
|
47
|
-
"@skyux/ag-grid": "12.
|
|
48
|
-
"@skyux/angular-tree-component": "12.
|
|
49
|
-
"@skyux/animations": "12.
|
|
50
|
-
"@skyux/assets": "12.
|
|
51
|
-
"@skyux/autonumeric": "12.
|
|
52
|
-
"@skyux/avatar": "12.
|
|
53
|
-
"@skyux/code-examples": "12.
|
|
54
|
-
"@skyux/colorpicker": "12.
|
|
55
|
-
"@skyux/config": "12.
|
|
56
|
-
"@skyux/core": "12.
|
|
57
|
-
"@skyux/data-manager": "12.
|
|
58
|
-
"@skyux/datetime": "12.
|
|
59
|
-
"@skyux/docs-tools": "12.
|
|
60
|
-
"@skyux/errors": "12.
|
|
61
|
-
"@skyux/flyout": "12.
|
|
62
|
-
"@skyux/forms": "12.
|
|
63
|
-
"@skyux/grids": "12.
|
|
64
|
-
"@skyux/help-inline": "12.
|
|
65
|
-
"@skyux/i18n": "12.
|
|
66
|
-
"@skyux/icon": "12.
|
|
67
|
-
"@skyux/icons": "^
|
|
68
|
-
"@skyux/indicators": "12.
|
|
69
|
-
"@skyux/inline-form": "12.
|
|
70
|
-
"@skyux/layout": "12.
|
|
71
|
-
"@skyux/list-builder": "12.
|
|
72
|
-
"@skyux/list-builder-common": "12.
|
|
73
|
-
"@skyux/list-builder-view-checklist": "12.
|
|
74
|
-
"@skyux/list-builder-view-grids": "12.
|
|
75
|
-
"@skyux/lists": "12.
|
|
76
|
-
"@skyux/lookup": "12.
|
|
77
|
-
"@skyux/manifest": "12.
|
|
78
|
-
"@skyux/modals": "12.
|
|
79
|
-
"@skyux/navbar": "12.
|
|
80
|
-
"@skyux/pages": "12.
|
|
81
|
-
"@skyux/phone-field": "12.
|
|
82
|
-
"@skyux/popovers": "12.
|
|
83
|
-
"@skyux/progress-indicator": "12.
|
|
84
|
-
"@skyux/router": "12.
|
|
85
|
-
"@skyux/select-field": "12.
|
|
86
|
-
"@skyux/split-view": "12.
|
|
87
|
-
"@skyux/tabs": "12.
|
|
88
|
-
"@skyux/text-editor": "12.
|
|
89
|
-
"@skyux/theme": "12.
|
|
90
|
-
"@skyux/tiles": "12.
|
|
91
|
-
"@skyux/toast": "12.
|
|
92
|
-
"@skyux/validation": "12.
|
|
40
|
+
"@skyux-sdk/eslint-config": "12.26.0",
|
|
41
|
+
"@skyux-sdk/eslint-schematics": "12.26.0",
|
|
42
|
+
"@skyux-sdk/prettier-schematics": "12.26.0",
|
|
43
|
+
"@skyux-sdk/stylelint-schematics": "12.26.0",
|
|
44
|
+
"@skyux-sdk/testing": "12.26.0",
|
|
45
|
+
"@skyux/a11y": "12.26.0",
|
|
46
|
+
"@skyux/action-bars": "12.26.0",
|
|
47
|
+
"@skyux/ag-grid": "12.26.0",
|
|
48
|
+
"@skyux/angular-tree-component": "12.26.0",
|
|
49
|
+
"@skyux/animations": "12.26.0",
|
|
50
|
+
"@skyux/assets": "12.26.0",
|
|
51
|
+
"@skyux/autonumeric": "12.26.0",
|
|
52
|
+
"@skyux/avatar": "12.26.0",
|
|
53
|
+
"@skyux/code-examples": "12.26.0",
|
|
54
|
+
"@skyux/colorpicker": "12.26.0",
|
|
55
|
+
"@skyux/config": "12.26.0",
|
|
56
|
+
"@skyux/core": "12.26.0",
|
|
57
|
+
"@skyux/data-manager": "12.26.0",
|
|
58
|
+
"@skyux/datetime": "12.26.0",
|
|
59
|
+
"@skyux/docs-tools": "12.26.0",
|
|
60
|
+
"@skyux/errors": "12.26.0",
|
|
61
|
+
"@skyux/flyout": "12.26.0",
|
|
62
|
+
"@skyux/forms": "12.26.0",
|
|
63
|
+
"@skyux/grids": "12.26.0",
|
|
64
|
+
"@skyux/help-inline": "12.26.0",
|
|
65
|
+
"@skyux/i18n": "12.26.0",
|
|
66
|
+
"@skyux/icon": "12.26.0",
|
|
67
|
+
"@skyux/icons": "^9.0.0",
|
|
68
|
+
"@skyux/indicators": "12.26.0",
|
|
69
|
+
"@skyux/inline-form": "12.26.0",
|
|
70
|
+
"@skyux/layout": "12.26.0",
|
|
71
|
+
"@skyux/list-builder": "12.26.0",
|
|
72
|
+
"@skyux/list-builder-common": "12.26.0",
|
|
73
|
+
"@skyux/list-builder-view-checklist": "12.26.0",
|
|
74
|
+
"@skyux/list-builder-view-grids": "12.26.0",
|
|
75
|
+
"@skyux/lists": "12.26.0",
|
|
76
|
+
"@skyux/lookup": "12.26.0",
|
|
77
|
+
"@skyux/manifest": "12.26.0",
|
|
78
|
+
"@skyux/modals": "12.26.0",
|
|
79
|
+
"@skyux/navbar": "12.26.0",
|
|
80
|
+
"@skyux/pages": "12.26.0",
|
|
81
|
+
"@skyux/phone-field": "12.26.0",
|
|
82
|
+
"@skyux/popovers": "12.26.0",
|
|
83
|
+
"@skyux/progress-indicator": "12.26.0",
|
|
84
|
+
"@skyux/router": "12.26.0",
|
|
85
|
+
"@skyux/select-field": "12.26.0",
|
|
86
|
+
"@skyux/split-view": "12.26.0",
|
|
87
|
+
"@skyux/tabs": "12.26.0",
|
|
88
|
+
"@skyux/text-editor": "12.26.0",
|
|
89
|
+
"@skyux/theme": "12.26.0",
|
|
90
|
+
"@skyux/tiles": "12.26.0",
|
|
91
|
+
"@skyux/toast": "12.26.0",
|
|
92
|
+
"@skyux/validation": "12.26.0",
|
|
93
93
|
"ag-grid-angular": "^33.3.2",
|
|
94
94
|
"ag-grid-community": "^33.3.2",
|
|
95
95
|
"ag-grid-enterprise": "^32.1.0",
|
|
96
96
|
"autonumeric": "^4.10.5",
|
|
97
|
-
"eslint-config-skyux": "12.
|
|
98
|
-
"skyux-stylelint": "12.
|
|
99
|
-
"stylelint-config-skyux": "12.
|
|
97
|
+
"eslint-config-skyux": "12.26.0",
|
|
98
|
+
"skyux-stylelint": "12.26.0",
|
|
99
|
+
"stylelint-config-skyux": "12.26.0"
|
|
100
100
|
}
|
|
101
101
|
},
|
|
102
102
|
"peerDependencies": {
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = convertDefinitionListToDescriptionListSchematic;
|
|
4
|
+
const convert_definition_list_to_description_list_1 = require("../../rules/convert-definition-list-to-description-list/convert-definition-list-to-description-list");
|
|
5
|
+
const workspace_1 = require("../../utility/workspace");
|
|
6
|
+
/**
|
|
7
|
+
* Converts `<sky-definition-list>` to `<sky-description-list>`.
|
|
8
|
+
*/
|
|
9
|
+
function convertDefinitionListToDescriptionListSchematic(options) {
|
|
10
|
+
return async (tree) => {
|
|
11
|
+
const { project } = await (0, workspace_1.getRequiredProject)(tree, options.project);
|
|
12
|
+
return (0, convert_definition_list_to_description_list_1.convertDefinitionListToDescriptionList)(project.root);
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=convert-definition-list-to-description-list.schematic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-definition-list-to-description-list.schematic.js","sourceRoot":"","sources":["../../../../../../../../libs/components/packages/src/schematics/ng-generate/convert-definition-list-to-description-list/convert-definition-list-to-description-list.schematic.ts"],"names":[],"mappings":";;AAUA,kEAQC;AAhBD,qKAA6J;AAC7J,uDAA6D;AAI7D;;GAEG;AACH,SAAwB,+CAA+C,CACrE,OAAe;IAEf,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE;QACpB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,8BAAkB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAEpE,OAAO,IAAA,oFAAsC,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../../../../libs/components/packages/src/schematics/ng-generate/convert-definition-list-to-description-list/schema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertDefinitionListToDescriptionList = convertDefinitionListToDescriptionList;
|
|
4
|
+
const schematics_1 = require("@angular/cdk/schematics");
|
|
5
|
+
const eol_1 = require("@schematics/angular/utility/eol");
|
|
6
|
+
const template_1 = require("../../utility/template");
|
|
7
|
+
const ng_ast_1 = require("../../utility/typescript/ng-ast");
|
|
8
|
+
const swap_imported_class_1 = require("../../utility/typescript/swap-imported-class");
|
|
9
|
+
const visit_project_files_1 = require("../../utility/visit-project-files");
|
|
10
|
+
/**
|
|
11
|
+
* Description list does not use a heading element.
|
|
12
|
+
* Create a new `<h3>` element with the heading text.
|
|
13
|
+
*/
|
|
14
|
+
function moveHeading(definitionList, recorder, offset, eol) {
|
|
15
|
+
const heading = (0, template_1.getElementsByTagName)('sky-definition-list-heading', definitionList)[0];
|
|
16
|
+
if ((0, template_1.isParentNode)(heading)) {
|
|
17
|
+
const headingText = schematics_1.parse5.serialize(heading);
|
|
18
|
+
const indent = ' '.repeat(definitionList.sourceCodeLocation.startTag.startCol - 1);
|
|
19
|
+
recorder.insertLeft(offset + definitionList.sourceCodeLocation.startTag.startOffset, `<h3>${headingText}</h3>${eol}${indent}`);
|
|
20
|
+
recorder.remove(offset + heading.sourceCodeLocation.startOffset, heading.sourceCodeLocation.endOffset -
|
|
21
|
+
heading.sourceCodeLocation.startOffset);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
const regexpEscape = (str) => str.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
|
|
25
|
+
const tags = {
|
|
26
|
+
'sky-definition-list': 'sky-description-list',
|
|
27
|
+
'sky-definition-list-content': 'sky-description-list-content',
|
|
28
|
+
'sky-definition-list-label': 'sky-description-list-term',
|
|
29
|
+
'sky-definition-list-value': 'sky-description-list-description',
|
|
30
|
+
};
|
|
31
|
+
function definitionListTagSwap(context) {
|
|
32
|
+
return (position, oldTag, node, content) => {
|
|
33
|
+
if (position === 'open') {
|
|
34
|
+
const attributesString = content.substring(node.sourceCodeLocation.startOffset + oldTag.length + 1, node.sourceCodeLocation.startTag.endOffset);
|
|
35
|
+
if (oldTag === 'sky-definition-list') {
|
|
36
|
+
let value = `<${tags[oldTag]} mode="longDescription"`;
|
|
37
|
+
// Copy over any other attributes that are not in the new tag.
|
|
38
|
+
for (const attr of node.attrs) {
|
|
39
|
+
// eslint-disable-next-line @cspell/spellchecker
|
|
40
|
+
if (['labelwidth', '[labelwidth]'].includes(attr.name)) {
|
|
41
|
+
context.logger.warn(`The "labelWidth" attribute is not supported on the <${tags[oldTag]}> component. Please review the code to ensure it still works as expected.`);
|
|
42
|
+
}
|
|
43
|
+
else if (attr.name === 'defaultValue'.toLowerCase()) {
|
|
44
|
+
value += ` defaultDescription="${attr.value}"`;
|
|
45
|
+
}
|
|
46
|
+
else if (attr.name === '[defaultValue]'.toLowerCase()) {
|
|
47
|
+
value += ` [defaultDescription]="${attr.value}"`;
|
|
48
|
+
}
|
|
49
|
+
else if (!['defaultvalue', '[defaultvalue]', 'mode'].includes(attr.name)) {
|
|
50
|
+
const attributeText = new RegExp(`(?<=\\s)${regexpEscape(attr.name)}(="[^"]*")?`, 'di')
|
|
51
|
+
.exec(attributesString)
|
|
52
|
+
?.shift();
|
|
53
|
+
if (attributeText) {
|
|
54
|
+
value += ` ${attributeText}`;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
value += '>';
|
|
59
|
+
return value;
|
|
60
|
+
}
|
|
61
|
+
return `<${tags[oldTag]}${attributesString}`;
|
|
62
|
+
}
|
|
63
|
+
return `</${tags[oldTag]}>`;
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function convertTemplate(recorder, context, content, offset = 0) {
|
|
67
|
+
const eol = (0, eol_1.getEOL)(content);
|
|
68
|
+
const fragment = (0, template_1.parseTemplate)(content);
|
|
69
|
+
const definitionLists = (0, template_1.getElementsByTagName)('sky-definition-list', fragment);
|
|
70
|
+
for (const definitionList of definitionLists) {
|
|
71
|
+
moveHeading(definitionList, recorder, offset, eol);
|
|
72
|
+
(0, template_1.swapTags)(content, recorder, offset, Object.keys(tags), definitionListTagSwap(context), definitionList);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function convertHtmlFile(tree, filePath, context) {
|
|
76
|
+
const content = tree.readText(filePath);
|
|
77
|
+
if (content.includes('<sky-definition-list')) {
|
|
78
|
+
const recorder = tree.beginUpdate(filePath);
|
|
79
|
+
convertTemplate(recorder, context, content);
|
|
80
|
+
tree.commitUpdate(recorder);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function convertTypescriptFile(tree, filePath, context) {
|
|
84
|
+
const source = (0, schematics_1.parseSourceFile)(tree, filePath);
|
|
85
|
+
const templates = (0, ng_ast_1.getInlineTemplates)(source);
|
|
86
|
+
const recorder = tree.beginUpdate(filePath);
|
|
87
|
+
if (templates.length > 0) {
|
|
88
|
+
const content = tree.readText(filePath);
|
|
89
|
+
for (const template of templates) {
|
|
90
|
+
convertTemplate(recorder, context, content.slice(template.start, template.end), template.start);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if ((0, schematics_1.isImported)(source, 'SkyDefinitionListModule', '@skyux/layout')) {
|
|
94
|
+
(0, swap_imported_class_1.swapImportedClass)(recorder, filePath, source, [
|
|
95
|
+
{
|
|
96
|
+
classNames: {
|
|
97
|
+
SkyDefinitionListModule: 'SkyDescriptionListModule',
|
|
98
|
+
},
|
|
99
|
+
moduleName: '@skyux/layout',
|
|
100
|
+
},
|
|
101
|
+
]);
|
|
102
|
+
}
|
|
103
|
+
tree.commitUpdate(recorder);
|
|
104
|
+
}
|
|
105
|
+
function convertDefinitionListToDescriptionList(projectPath) {
|
|
106
|
+
return (tree, context) => {
|
|
107
|
+
(0, visit_project_files_1.visitProjectFiles)(tree, projectPath, (filePath) => {
|
|
108
|
+
if (filePath.endsWith('.html')) {
|
|
109
|
+
convertHtmlFile(tree, filePath, context);
|
|
110
|
+
}
|
|
111
|
+
else if (filePath.endsWith('.ts')) {
|
|
112
|
+
convertTypescriptFile(tree, filePath, context);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=convert-definition-list-to-description-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-definition-list-to-description-list.js","sourceRoot":"","sources":["../../../../../../../../libs/components/packages/src/schematics/rules/convert-definition-list-to-description-list/convert-definition-list-to-description-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { UpdateRecorder } from '@angular-devkit/schematics';
|
|
2
|
+
import { Element, parse5 } from '@angular/cdk/schematics';
|
|
3
|
+
export type ElementWithLocation = Element & {
|
|
4
|
+
sourceCodeLocation: Required<parse5.Token.ElementLocation>;
|
|
5
|
+
};
|
|
6
|
+
type ParentNode = parse5.DefaultTreeAdapterTypes.ParentNode & {
|
|
7
|
+
sourceCodeLocation: Required<parse5.Token.ElementLocation>;
|
|
8
|
+
};
|
|
9
|
+
export type SwapTagCallback<T extends string> = (position: 'open' | 'close', tag: T, node: ElementWithLocation, content: string) => string;
|
|
10
|
+
export declare function isParentNode(node: unknown): node is ParentNode;
|
|
11
|
+
export declare function getElementsByTagName(tagName: string, node: Element | ParentNode): ElementWithLocation[];
|
|
12
|
+
export declare function parseTemplate(template: string): ParentNode;
|
|
13
|
+
export declare function swapTags<T extends string>(content: string, recorder: UpdateRecorder, offset: number, oldTags: T[], callback: SwapTagCallback<T>, ...node: (ElementWithLocation | ParentNode)[]): void;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isParentNode = isParentNode;
|
|
4
|
+
exports.getElementsByTagName = getElementsByTagName;
|
|
5
|
+
exports.parseTemplate = parseTemplate;
|
|
6
|
+
exports.swapTags = swapTags;
|
|
7
|
+
const schematics_1 = require("@angular/cdk/schematics");
|
|
8
|
+
function isElement(node) {
|
|
9
|
+
return !!node && typeof node === 'object' && 'tagName' in node;
|
|
10
|
+
}
|
|
11
|
+
function isParentNode(node) {
|
|
12
|
+
return !!node && typeof node === 'object' && 'childNodes' in node;
|
|
13
|
+
}
|
|
14
|
+
function getElementsByTagName(tagName, node) {
|
|
15
|
+
const elements = [];
|
|
16
|
+
const nodeQueue = [node];
|
|
17
|
+
while (nodeQueue.length) {
|
|
18
|
+
const currentNode = nodeQueue.shift();
|
|
19
|
+
if (isElement(currentNode) &&
|
|
20
|
+
currentNode.tagName.toLowerCase() === tagName.toLowerCase()) {
|
|
21
|
+
elements.push(currentNode);
|
|
22
|
+
}
|
|
23
|
+
if (isParentNode(currentNode)) {
|
|
24
|
+
nodeQueue.push(...currentNode.childNodes.filter(isElement));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return elements;
|
|
28
|
+
}
|
|
29
|
+
function parseTemplate(template) {
|
|
30
|
+
const document = schematics_1.parse5.parseFragment(template, {
|
|
31
|
+
sourceCodeLocationInfo: true,
|
|
32
|
+
});
|
|
33
|
+
if (isParentNode(document)) {
|
|
34
|
+
return document;
|
|
35
|
+
}
|
|
36
|
+
return schematics_1.parse5.parseFragment('', {
|
|
37
|
+
sourceCodeLocationInfo: true,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
function swapTags(content, recorder, offset, oldTags, callback, ...node) {
|
|
41
|
+
const nodeQueue = [...node];
|
|
42
|
+
while (nodeQueue.length) {
|
|
43
|
+
const currentNode = nodeQueue.shift();
|
|
44
|
+
if (isElement(currentNode)) {
|
|
45
|
+
const tagName = currentNode.tagName.toLowerCase();
|
|
46
|
+
if (oldTags.includes(tagName)) {
|
|
47
|
+
/* istanbul ignore if */
|
|
48
|
+
if (!currentNode.sourceCodeLocation?.startTag ||
|
|
49
|
+
!currentNode.sourceCodeLocation?.endTag) {
|
|
50
|
+
// Skip if source code location is not available
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
recorder.remove(offset + currentNode.sourceCodeLocation.startTag.startOffset, currentNode.sourceCodeLocation.startTag.endOffset -
|
|
54
|
+
currentNode.sourceCodeLocation.startTag.startOffset);
|
|
55
|
+
recorder.insertLeft(offset + currentNode.sourceCodeLocation.startTag.startOffset, callback('open', tagName, currentNode, content));
|
|
56
|
+
recorder.remove(offset + currentNode.sourceCodeLocation.endTag.startOffset, currentNode.sourceCodeLocation.endTag.endOffset -
|
|
57
|
+
currentNode.sourceCodeLocation.endTag.startOffset);
|
|
58
|
+
recorder.insertLeft(offset + currentNode.sourceCodeLocation.endTag.startOffset, callback('close', tagName, currentNode, content));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (isParentNode(currentNode)) {
|
|
62
|
+
nodeQueue.push(...currentNode.childNodes.filter(isElement));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../../../libs/components/packages/src/schematics/utility/template.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getInlineTemplates = getInlineTemplates;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const schematics_1 = require("@angular/cdk/schematics");
|
|
6
|
+
const typescript_1 = tslib_1.__importDefault(require("@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript"));
|
|
7
|
+
function getInlineTemplates(sourceFile) {
|
|
8
|
+
if ((0, schematics_1.isImported)(sourceFile, 'Component', '@angular/core')) {
|
|
9
|
+
const components = (0, schematics_1.getDecoratorMetadata)(sourceFile, 'Component', '@angular/core');
|
|
10
|
+
const templates = components
|
|
11
|
+
.filter((component) => typescript_1.default.isObjectLiteralExpression(component))
|
|
12
|
+
.flatMap((component) => (0, schematics_1.getMetadataField)(component, 'template'))
|
|
13
|
+
.filter((template) => typescript_1.default.isPropertyAssignment(template));
|
|
14
|
+
if (templates.length > 0) {
|
|
15
|
+
return templates
|
|
16
|
+
.map((template) => {
|
|
17
|
+
if (typescript_1.default.isStringLiteralLike(template.initializer) ||
|
|
18
|
+
typescript_1.default.isNoSubstitutionTemplateLiteral(template.initializer)) {
|
|
19
|
+
return {
|
|
20
|
+
start: template.initializer.getStart() + 1,
|
|
21
|
+
end: template.initializer.getEnd() - 1, // Exclude quotes
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
return undefined;
|
|
25
|
+
})
|
|
26
|
+
.filter(Boolean);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=ng-ast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-ast.js","sourceRoot":"","sources":["../../../../../../../../libs/components/packages/src/schematics/utility/typescript/ng-ast.ts"],"names":[],"mappings":";;AAOA,gDA+BC;;AAtCD,wDAIiC;AACjC,wIAAgG;AAEhG,SAAgB,kBAAkB,CAChC,UAAyB;IAEzB,IAAI,IAAA,uBAAU,EAAC,UAAU,EAAE,WAAW,EAAE,eAAe,CAAC,EAAE,CAAC;QACzD,MAAM,UAAU,GAAG,IAAA,iCAAoB,EACrC,UAAU,EACV,WAAW,EACX,eAAe,CAChB,CAAC;QACF,MAAM,SAAS,GAAG,UAAU;aACzB,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,oBAAE,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;aAC9D,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAA,6BAAgB,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC;aAC/D,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,oBAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,SAAS;iBACb,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAChB,IACE,oBAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC;oBAC5C,oBAAE,CAAC,+BAA+B,CAAC,QAAQ,CAAC,WAAW,CAAC,EACxD,CAAC;oBACD,OAAO;wBACL,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC;wBAC1C,GAAG,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,iBAAiB;qBAC1D,CAAC;gBACJ,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;iBACD,MAAM,CAAC,OAAO,CAAqC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UpdateRecorder } from '@angular-devkit/schematics';
|
|
2
2
|
import ts from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript';
|
|
3
3
|
export interface RemoveImportOptions {
|
|
4
4
|
classNames: string[];
|
|
5
5
|
moduleName: string;
|
|
6
6
|
}
|
|
7
|
-
export declare function removeImport(
|
|
7
|
+
export declare function removeImport(recorder: UpdateRecorder, sourceFile: ts.SourceFile, options: RemoveImportOptions): void;
|
|
@@ -4,8 +4,7 @@ exports.removeImport = removeImport;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const typescript_1 = tslib_1.__importDefault(require("@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript"));
|
|
6
6
|
const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
|
|
7
|
-
function removeImport(
|
|
8
|
-
const recorder = tree.beginUpdate(projectPath);
|
|
7
|
+
function removeImport(recorder, sourceFile, options) {
|
|
9
8
|
const importDeclarations = (0, ast_utils_1.findNodes)(sourceFile, typescript_1.default.SyntaxKind.ImportDeclaration).filter((node) => typescript_1.default.isImportDeclaration(node) &&
|
|
10
9
|
typescript_1.default.isStringLiteral(node.moduleSpecifier) &&
|
|
11
10
|
node.moduleSpecifier.text === options.moduleName);
|
|
@@ -29,7 +28,6 @@ function removeImport(tree, projectPath, sourceFile, options) {
|
|
|
29
28
|
}
|
|
30
29
|
}
|
|
31
30
|
}
|
|
32
|
-
tree.commitUpdate(recorder);
|
|
33
31
|
}
|
|
34
32
|
}
|
|
35
33
|
//# sourceMappingURL=remove-import.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove-import.js","sourceRoot":"","sources":["../../../../../../../../libs/components/packages/src/schematics/utility/typescript/remove-import.ts"],"names":[],"mappings":";;AASA,
|
|
1
|
+
{"version":3,"file":"remove-import.js","sourceRoot":"","sources":["../../../../../../../../libs/components/packages/src/schematics/utility/typescript/remove-import.ts"],"names":[],"mappings":";;AASA,oCA2CC;;AAnDD,wIAAgG;AAChG,qEAAkE;AAOlE,SAAgB,YAAY,CAC1B,QAAwB,EACxB,UAAyB,EACzB,OAA4B;IAE5B,MAAM,kBAAkB,GAAG,IAAA,qBAAS,EAClC,UAAU,EACV,oBAAE,CAAC,UAAU,CAAC,iBAAiB,CAChC,CAAC,MAAM,CACN,CAAC,IAAI,EAAgC,EAAE,CACrC,oBAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAC5B,oBAAE,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC;QACxC,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,OAAO,CAAC,UAAU,CACnD,CAAC;IAEF,IAAI,kBAAkB,EAAE,CAAC;QACvB,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;YACnD,MAAM,gBAAgB,GAAG,IAAA,qBAAS,EAChC,iBAAiB,EACjB,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CACrC,CAAC;YACF,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,EAAE,CAC/D,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CACvD,CAAC;YACF,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAC1C,CAAC,eAAe,EAAE,EAAE,CAClB,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAC1D,CAAC;YACF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,YAAY,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;wBACvC,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;wBACzD,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;wBACzD,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;oBAChD,CAAC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,WAAW,GAAG,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAC3D,MAAM,WAAW,GAAG,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAC3D,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UpdateRecorder } from '@angular-devkit/schematics';
|
|
2
2
|
import ts from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript';
|
|
3
3
|
export interface SwapImportedClassOptions {
|
|
4
4
|
classNames: Record<string, string>;
|
|
5
5
|
moduleName: string;
|
|
6
6
|
filter?: (node: ts.Identifier) => boolean;
|
|
7
7
|
}
|
|
8
|
-
export declare function swapImportedClass(
|
|
8
|
+
export declare function swapImportedClass(recorder: UpdateRecorder, filePath: string, sourceFile: ts.SourceFile, options: SwapImportedClassOptions[]): void;
|
|
@@ -15,14 +15,12 @@ function swapReference(recorder, reference, newClassName) {
|
|
|
15
15
|
recorder.remove(start, reference.getWidth());
|
|
16
16
|
recorder.insertRight(start, newClassName);
|
|
17
17
|
}
|
|
18
|
-
function swapImportedClass(
|
|
18
|
+
function swapImportedClass(recorder, filePath, sourceFile, options) {
|
|
19
19
|
const applicableOptions = options.filter((option) => Object.keys(option.classNames).some((className) => (0, schematics_1.isImported)(sourceFile, className, option.moduleName)));
|
|
20
20
|
if (applicableOptions.length === 0) {
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
23
23
|
const endOfImports = (0, ast_utils_1.findNodes)(sourceFile, typescript_1.default.SyntaxKind.ImportDeclaration).reduce((max, node) => Math.max(max, node.getEnd()), 0);
|
|
24
|
-
const recorder = tree.beginUpdate(filePath);
|
|
25
|
-
const addImports = {};
|
|
26
24
|
const removeImports = {};
|
|
27
25
|
applicableOptions.forEach(({ classNames, moduleName, filter }) => {
|
|
28
26
|
Object.entries(classNames).forEach(([oldClassName, newClassName]) => {
|
|
@@ -31,24 +29,35 @@ function swapImportedClass(tree, filePath, sourceFile, options) {
|
|
|
31
29
|
referencesFiltered.forEach((reference) => {
|
|
32
30
|
swapReference(recorder, reference, newClassName);
|
|
33
31
|
});
|
|
34
|
-
if (referencesFiltered.length > 0
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
32
|
+
if (referencesFiltered.length > 0) {
|
|
33
|
+
const allReferencesToBeReplaced = referencesFiltered.length === referencesInCode.length;
|
|
34
|
+
if (!(0, schematics_1.isImported)(sourceFile, newClassName, moduleName)) {
|
|
35
|
+
if (allReferencesToBeReplaced) {
|
|
36
|
+
const referencesInImport = findReferences(sourceFile, oldClassName).filter((reference) => reference.getEnd() < endOfImports);
|
|
37
|
+
/* istanbul ignore if */
|
|
38
|
+
if (referencesInImport.length !== 1) {
|
|
39
|
+
throw new Error(`Expected exactly one import for ${oldClassName} from ${moduleName}, found ${referencesInImport.length}.`);
|
|
40
|
+
}
|
|
41
|
+
swapReference(recorder, referencesInImport[0], newClassName);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
(0, change_1.applyToUpdateRecorder)(recorder, [
|
|
45
|
+
(0, ast_utils_1.insertImport)(sourceFile, filePath, newClassName, moduleName),
|
|
46
|
+
]);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
if (allReferencesToBeReplaced) {
|
|
51
|
+
removeImports[moduleName] ??= [];
|
|
52
|
+
removeImports[moduleName].push(oldClassName);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
42
55
|
}
|
|
43
56
|
});
|
|
44
57
|
});
|
|
45
|
-
const changes = Object.entries(addImports).flatMap(([moduleName, classNames]) => classNames.map((className) => (0, ast_utils_1.insertImport)(sourceFile, filePath, className, moduleName)));
|
|
46
|
-
(0, change_1.applyToUpdateRecorder)(recorder, changes);
|
|
47
|
-
tree.commitUpdate(recorder);
|
|
48
58
|
const removeImportEntries = Object.entries(removeImports);
|
|
49
59
|
if (removeImportEntries.length > 0) {
|
|
50
|
-
|
|
51
|
-
removeImportEntries.forEach(([moduleName, classNames]) => (0, remove_import_1.removeImport)(tree, filePath, sourceFileAfterChanges, {
|
|
60
|
+
removeImportEntries.forEach(([moduleName, classNames]) => (0, remove_import_1.removeImport)(recorder, sourceFile, {
|
|
52
61
|
classNames,
|
|
53
62
|
moduleName,
|
|
54
63
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swap-imported-class.js","sourceRoot":"","sources":["../../../../../../../../libs/components/packages/src/schematics/utility/typescript/swap-imported-class.ts"],"names":[],"mappings":";;AAkCA,
|
|
1
|
+
{"version":3,"file":"swap-imported-class.js","sourceRoot":"","sources":["../../../../../../../../libs/components/packages/src/schematics/utility/typescript/swap-imported-class.ts"],"names":[],"mappings":"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"}
|
package/src/version.js
CHANGED