@fundamental-ngx/cx 0.58.0-rc.66 → 0.58.0-rc.68
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/package.json +4 -4
- package/schematics/collection.json +0 -10
- package/schematics/ng-add/index.d.ts +0 -3
- package/schematics/ng-add/index.js +0 -101
- package/schematics/ng-add/index.js.map +0 -1
- package/schematics/ng-add/schema.d.ts +0 -4
- package/schematics/ng-add/schema.js +0 -3
- package/schematics/ng-add/schema.js.map +0 -1
- package/schematics/ng-add/schema.json +0 -21
- package/schematics/utils/ng-module-utils.d.ts +0 -3
- package/schematics/utils/ng-module-utils.js +0 -62
- package/schematics/utils/ng-module-utils.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fundamental-ngx/cx",
|
|
3
|
-
"version": "0.58.0-rc.
|
|
3
|
+
"version": "0.58.0-rc.68",
|
|
4
4
|
"schematics": "./schematics/collection.json",
|
|
5
5
|
"description": "Fundamental Library for Angular - cx",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"@angular/forms": "^20.0.0",
|
|
21
21
|
"@angular/platform-browser": "^20.0.0",
|
|
22
22
|
"@angular/router": "^20.0.0",
|
|
23
|
-
"@fundamental-ngx/core": "0.58.0-rc.
|
|
24
|
-
"@fundamental-ngx/i18n": "0.58.0-rc.
|
|
23
|
+
"@fundamental-ngx/core": "0.58.0-rc.68",
|
|
24
|
+
"@fundamental-ngx/i18n": "0.58.0-rc.68",
|
|
25
25
|
"rxjs": "^7.8.0"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
@@ -57,4 +57,4 @@
|
|
|
57
57
|
}
|
|
58
58
|
},
|
|
59
59
|
"sideEffects": false
|
|
60
|
-
}
|
|
60
|
+
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json",
|
|
3
|
-
"schematics": {
|
|
4
|
-
"ng-add": {
|
|
5
|
-
"description": "Adds @fundamental-ngx/cx to the project.",
|
|
6
|
-
"factory": "./ng-add/index#ngAdd",
|
|
7
|
-
"schema": "./ng-add/schema.json"
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.ngAdd = ngAdd;
|
|
13
|
-
const schematics_1 = require("@angular-devkit/schematics");
|
|
14
|
-
const tasks_1 = require("@angular-devkit/schematics/tasks");
|
|
15
|
-
const dependencies_1 = require("@schematics/angular/utility/dependencies");
|
|
16
|
-
const ng_module_utils_1 = require("../utils/ng-module-utils");
|
|
17
|
-
const schematics_2 = require("@angular/cdk/schematics");
|
|
18
|
-
const browserAnimationsModuleName = 'BrowserAnimationsModule';
|
|
19
|
-
const noopAnimationsModuleName = 'NoopAnimationsModule';
|
|
20
|
-
const fdStylesIconPath = 'node_modules/fundamental-styles/dist/icon.css';
|
|
21
|
-
/** Installs cx package and dependencies. */
|
|
22
|
-
function ngAdd(options) {
|
|
23
|
-
return (0, schematics_1.chain)([addDependencies(), addAnimations(options), addStylePathToConfig(options)]);
|
|
24
|
-
}
|
|
25
|
-
// Adds missing dependencies to the project.
|
|
26
|
-
function addDependencies() {
|
|
27
|
-
return (tree, context) => {
|
|
28
|
-
const ngCoreVersionTag = (0, dependencies_1.getPackageJsonDependency)(tree, '@angular/core');
|
|
29
|
-
const dependencies = [];
|
|
30
|
-
const formsDependency = (0, dependencies_1.getPackageJsonDependency)(tree, '@angular/forms');
|
|
31
|
-
if (!formsDependency) {
|
|
32
|
-
dependencies.push(Object.assign(Object.assign({}, ngCoreVersionTag), { name: '@angular/forms' }));
|
|
33
|
-
}
|
|
34
|
-
const animationsDependency = (0, dependencies_1.getPackageJsonDependency)(tree, '@angular/animations');
|
|
35
|
-
if (!animationsDependency) {
|
|
36
|
-
dependencies.push(Object.assign(Object.assign({}, ngCoreVersionTag), { name: '@angular/animations' }));
|
|
37
|
-
}
|
|
38
|
-
dependencies.forEach((dependency) => {
|
|
39
|
-
(0, dependencies_1.addPackageJsonDependency)(tree, dependency);
|
|
40
|
-
console.log(`✅️ Added ${dependency.name} to ${dependency.type}.`);
|
|
41
|
-
});
|
|
42
|
-
context.addTask(new tasks_1.NodePackageInstallTask());
|
|
43
|
-
return tree;
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
// Configures browser animations.
|
|
47
|
-
function addAnimations(options) {
|
|
48
|
-
return (tree) => __awaiter(this, void 0, void 0, function* () {
|
|
49
|
-
const modulePath = yield (0, schematics_2.findModuleFromOptions)(tree, options);
|
|
50
|
-
if (options.animations) {
|
|
51
|
-
if ((0, ng_module_utils_1.hasModuleImport)(tree, modulePath, noopAnimationsModuleName)) {
|
|
52
|
-
return console.warn(`Could not set up "${browserAnimationsModuleName}" ` +
|
|
53
|
-
`because "${noopAnimationsModuleName}" is already imported. Please manually ` +
|
|
54
|
-
`set up browser animations.`);
|
|
55
|
-
}
|
|
56
|
-
(0, schematics_2.addModuleImportToModule)(tree, modulePath, browserAnimationsModuleName, '@angular/platform-browser/animations');
|
|
57
|
-
console.log(`✅️ Added ${browserAnimationsModuleName} to root module.`);
|
|
58
|
-
}
|
|
59
|
-
else if (!(0, ng_module_utils_1.hasModuleImport)(tree, modulePath, browserAnimationsModuleName)) {
|
|
60
|
-
(0, schematics_2.addModuleImportToModule)(tree, modulePath, noopAnimationsModuleName, '@angular/platform-browser/animations');
|
|
61
|
-
console.log(`✅️ Added ${noopAnimationsModuleName} to root module.`);
|
|
62
|
-
}
|
|
63
|
-
return tree;
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
// Adds the icon style path to the angular.json.
|
|
67
|
-
function addStylePathToConfig(options) {
|
|
68
|
-
return (tree) => {
|
|
69
|
-
const angularConfigPath = '/angular.json';
|
|
70
|
-
const workspaceConfig = tree.read('/angular.json');
|
|
71
|
-
if (!workspaceConfig) {
|
|
72
|
-
throw new schematics_1.SchematicsException(`Unable to find angular.json. Please manually configure your styles array.`);
|
|
73
|
-
}
|
|
74
|
-
const workspaceJson = JSON.parse(workspaceConfig.toString());
|
|
75
|
-
try {
|
|
76
|
-
let stylesArray = workspaceJson.projects[options.project].architect.build.options['styles'];
|
|
77
|
-
if (!stylesArray.includes(fdStylesIconPath)) {
|
|
78
|
-
stylesArray = pushStylesToArray(stylesArray, fdStylesIconPath);
|
|
79
|
-
workspaceJson.projects[options.project].architect.build.options['styles'] = stylesArray;
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
console.log(`✅️ Found duplicate style path in angular.json. Skipping.`);
|
|
83
|
-
return tree;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
catch (e) {
|
|
87
|
-
console.error('Error:', e);
|
|
88
|
-
throw new schematics_1.SchematicsException(`Unable to find angular.json project styles. Please manually configure your styles array.`);
|
|
89
|
-
}
|
|
90
|
-
tree.overwrite(angularConfigPath, JSON.stringify(workspaceJson, null, 2));
|
|
91
|
-
console.log(`✅️ Added fundamental-styles path to angular.json.`);
|
|
92
|
-
return tree;
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
function pushStylesToArray(stylesArray, path) {
|
|
96
|
-
if (!stylesArray.includes(path)) {
|
|
97
|
-
stylesArray.push(path);
|
|
98
|
-
}
|
|
99
|
-
return stylesArray;
|
|
100
|
-
}
|
|
101
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/cx/schematics/ng-add/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../libs/cx/schematics/ng-add/schema.ts"],"names":[],"mappings":""}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/schema",
|
|
3
|
-
"$id": "fundamental-ngx-ng-add",
|
|
4
|
-
"title": "Fundamental Library for Angular ng-add schematic",
|
|
5
|
-
"type": "object",
|
|
6
|
-
"properties": {
|
|
7
|
-
"animations": {
|
|
8
|
-
"type": "boolean",
|
|
9
|
-
"default": true,
|
|
10
|
-
"description": "Whether Angular browser animations should be set up.",
|
|
11
|
-
"x-prompt": "Set up browser animations for Fundamental Library for Angular?"
|
|
12
|
-
},
|
|
13
|
-
"project": {
|
|
14
|
-
"type": "string",
|
|
15
|
-
"description": "The name of the project.",
|
|
16
|
-
"$default": {
|
|
17
|
-
"$source": "projectName"
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.hasModuleImport = hasModuleImport;
|
|
4
|
-
const schematics_1 = require("@angular-devkit/schematics");
|
|
5
|
-
const ts = require("typescript");
|
|
6
|
-
/** Checks if an import is included in the module. */
|
|
7
|
-
function hasModuleImport(tree, modulePath, className) {
|
|
8
|
-
const moduleFileContent = tree.read(modulePath);
|
|
9
|
-
if (!moduleFileContent) {
|
|
10
|
-
throw new schematics_1.SchematicsException(`Could not read Angular module file: ${modulePath}`);
|
|
11
|
-
}
|
|
12
|
-
const parsedFile = ts.createSourceFile(modulePath, moduleFileContent.toString(), ts.ScriptTarget.Latest, true);
|
|
13
|
-
const ngModuleMetadata = findNgModuleMetadata(parsedFile);
|
|
14
|
-
if (!ngModuleMetadata) {
|
|
15
|
-
throw new schematics_1.SchematicsException(`Could not find NgModule declaration inside: "${modulePath}"`);
|
|
16
|
-
}
|
|
17
|
-
for (const property of ngModuleMetadata.properties) {
|
|
18
|
-
if (!ts.isPropertyAssignment(property) ||
|
|
19
|
-
property.name.getText() !== 'imports' ||
|
|
20
|
-
!ts.isArrayLiteralExpression(property.initializer)) {
|
|
21
|
-
continue;
|
|
22
|
-
}
|
|
23
|
-
if (property.initializer.elements.some((element) => element.getText() === className)) {
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return false;
|
|
28
|
-
}
|
|
29
|
-
// Borrowed from the Angular CDK
|
|
30
|
-
function findNgModuleMetadata(rootNode) {
|
|
31
|
-
// Add immediate child nodes of the root node to the queue.
|
|
32
|
-
const nodeQueue = [...rootNode.getChildren()];
|
|
33
|
-
while (nodeQueue.length) {
|
|
34
|
-
const node = nodeQueue.shift();
|
|
35
|
-
if (ts.isDecorator(node) && ts.isCallExpression(node.expression) && isNgModuleCallExpression(node.expression)) {
|
|
36
|
-
return node.expression.arguments[0];
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
nodeQueue.push(...node.getChildren());
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
// Borrowed from the Angular CDK
|
|
45
|
-
function resolveIdentifierOfExpression(expression) {
|
|
46
|
-
if (ts.isIdentifier(expression)) {
|
|
47
|
-
return expression;
|
|
48
|
-
}
|
|
49
|
-
else if (ts.isPropertyAccessExpression(expression) && ts.isIdentifier(expression.name)) {
|
|
50
|
-
return expression.name;
|
|
51
|
-
}
|
|
52
|
-
return null;
|
|
53
|
-
}
|
|
54
|
-
// Borrowed from the Angular CDK
|
|
55
|
-
function isNgModuleCallExpression(callExpression) {
|
|
56
|
-
if (!callExpression.arguments.length || !ts.isObjectLiteralExpression(callExpression.arguments[0])) {
|
|
57
|
-
return false;
|
|
58
|
-
}
|
|
59
|
-
const decoratorIdentifier = resolveIdentifierOfExpression(callExpression.expression);
|
|
60
|
-
return decoratorIdentifier ? decoratorIdentifier.text === 'NgModule' : false;
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=ng-module-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ng-module-utils.js","sourceRoot":"","sources":["../../../../../libs/cx/schematics/utils/ng-module-utils.ts"],"names":[],"mappings":"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"}
|