devextreme-schematics 1.2.23 → 1.3.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.
Files changed (76) hide show
  1. package/LICENSE +21 -21
  2. package/package.json +7 -7
  3. package/src/add-app-template/index.d.ts +2 -2
  4. package/src/add-app-template/index.js +26 -26
  5. package/src/add-app-template/index_spec.d.ts +1 -1
  6. package/src/add-app-template/index_spec.js +70 -69
  7. package/src/add-app-template/index_spec.js.map +1 -1
  8. package/src/add-app-template/schema.json +2 -2
  9. package/src/add-layout/files/devextreme.json +1 -1
  10. package/src/add-layout/files/src/app/shared/services/screen.service.ts +1 -1
  11. package/src/add-layout/files/src/dx-styles.scss +4 -0
  12. package/src/add-layout/index.d.ts +2 -2
  13. package/src/add-layout/index.js +277 -266
  14. package/src/add-layout/index.js.map +1 -1
  15. package/src/add-layout/index.ts +28 -30
  16. package/src/add-layout/index_spec.d.ts +1 -1
  17. package/src/add-layout/index_spec.js +251 -250
  18. package/src/add-layout/index_spec.js.map +1 -1
  19. package/src/add-layout/index_spec.ts +2 -2
  20. package/src/add-layout/schema.json +2 -2
  21. package/src/add-sample-views/index.d.ts +2 -2
  22. package/src/add-sample-views/index.js +97 -88
  23. package/src/add-sample-views/index.js.map +1 -1
  24. package/src/add-sample-views/index.ts +3 -3
  25. package/src/add-sample-views/index_spec.d.ts +1 -1
  26. package/src/add-sample-views/index_spec.js +53 -52
  27. package/src/add-sample-views/index_spec.js.map +1 -1
  28. package/src/add-sample-views/index_spec.ts +1 -1
  29. package/src/add-sample-views/schema.json +1 -1
  30. package/src/add-view/index.d.ts +3 -3
  31. package/src/add-view/index.js +125 -113
  32. package/src/add-view/index.js.map +1 -1
  33. package/src/add-view/index.ts +14 -13
  34. package/src/add-view/index_spec.d.ts +1 -1
  35. package/src/add-view/index_spec.js +109 -108
  36. package/src/add-view/index_spec.js.map +1 -1
  37. package/src/add-view/schema.json +1 -1
  38. package/src/install/index.d.ts +2 -2
  39. package/src/install/index.js +76 -63
  40. package/src/install/index.js.map +1 -1
  41. package/src/install/index.ts +4 -2
  42. package/src/install/index_spec.d.ts +1 -1
  43. package/src/install/index_spec.js +96 -95
  44. package/src/install/index_spec.js.map +1 -1
  45. package/src/install/index_spec.ts +1 -1
  46. package/src/install/schema.json +1 -1
  47. package/src/utility/array.d.ts +1 -1
  48. package/src/utility/array.js +7 -6
  49. package/src/utility/array.js.map +1 -1
  50. package/src/utility/change.d.ts +7 -7
  51. package/src/utility/change.js +49 -48
  52. package/src/utility/change.js.map +1 -1
  53. package/src/utility/latest-versions.d.ts +5 -5
  54. package/src/utility/latest-versions.js +9 -8
  55. package/src/utility/latest-versions.js.map +1 -1
  56. package/src/utility/modify-json-file.d.ts +3 -2
  57. package/src/utility/modify-json-file.js +15 -11
  58. package/src/utility/modify-json-file.js.map +1 -1
  59. package/src/utility/modify-json-file.ts +6 -3
  60. package/src/utility/project.d.ts +5 -5
  61. package/src/utility/project.js +48 -25
  62. package/src/utility/project.js.map +1 -1
  63. package/src/utility/project.ts +19 -14
  64. package/src/utility/routing.d.ts +4 -4
  65. package/src/utility/routing.js +32 -31
  66. package/src/utility/routing.js.map +1 -1
  67. package/src/utility/source.d.ts +3 -3
  68. package/src/utility/source.js +13 -12
  69. package/src/utility/source.js.map +1 -1
  70. package/src/utility/string.d.ts +1 -1
  71. package/src/utility/string.js +8 -7
  72. package/src/utility/string.js.map +1 -1
  73. package/src/utility/styles.d.ts +1 -2
  74. package/src/utility/styles.js +29 -30
  75. package/src/utility/styles.js.map +1 -1
  76. package/src/utility/styles.ts +2 -5
@@ -1,267 +1,278 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const schematics_1 = require("@angular-devkit/schematics");
4
- const rxjs_1 = require("rxjs");
5
- const core_1 = require("@angular-devkit/core");
6
- const path_1 = require("path");
7
- const project_1 = require("../utility/project");
8
- const string_1 = require("../utility/string");
9
- const styles_1 = require("../utility/styles");
10
- const modify_json_file_1 = require("../utility/modify-json-file");
11
- const dependencies_1 = require("@schematics/angular/utility/dependencies");
12
- const tasks_1 = require("@angular-devkit/schematics/tasks");
13
- const source_1 = require("../utility/source");
14
- const change_1 = require("../utility/change");
15
- const routing_1 = require("../utility/routing");
16
- const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
17
- const config_1 = require("@schematics/angular/utility/config");
18
- const projectFilesSource = './files/src';
19
- const workspaceFilesSource = './files';
20
- function addScriptSafe(scripts, name, value) {
21
- const currentValue = scripts[name];
22
- if (!currentValue) {
23
- scripts[name] = value;
24
- return;
25
- }
26
- const alterName = `origin-${name}`;
27
- const safeValue = `npm run ${alterName} && ${value}`;
28
- if (currentValue === value || currentValue === safeValue) {
29
- return;
30
- }
31
- scripts[alterName] = currentValue;
32
- scripts[name] = safeValue;
33
- }
34
- function addBuildThemeScript() {
35
- return (host) => {
36
- modify_json_file_1.modifyJSONFile(host, './package.json', config => {
37
- const scripts = config['scripts'];
38
- addScriptSafe(scripts, 'build-themes', 'devextreme build');
39
- addScriptSafe(scripts, 'postinstall', 'npm run build-themes');
40
- return config;
41
- });
42
- return host;
43
- };
44
- }
45
- function addCustomThemeStyles(options, sourcePath) {
46
- return (host) => {
47
- modify_json_file_1.modifyJSONFile(host, './angular.json', config => {
48
- const stylesList = [
49
- `${sourcePath}/dx-styles.scss`,
50
- `${sourcePath}/themes/generated/theme.additional.css`,
51
- `${sourcePath}/themes/generated/theme.base.css`,
52
- 'node_modules/devextreme/dist/css/dx.common.css'
53
- ];
54
- return styles_1.addStylesToApp(host, options.project, config, stylesList);
55
- });
56
- return host;
57
- };
58
- }
59
- function updateBudgets(options) {
60
- return (host) => {
61
- modify_json_file_1.modifyJSONFile(host, './angular.json', config => {
62
- const projectName = project_1.getProjectName(host, options.project);
63
- const budgets = config.projects[projectName].architect.build.configurations.production.budgets;
64
- const budget = budgets.find((item) => item.type === 'initial');
65
- if (budget) {
66
- budget.maximumWarning = '4mb';
67
- budget.maximumError = '7mb';
68
- }
69
- return config;
70
- });
71
- return host;
72
- };
73
- }
74
- function addViewportToBody(sourcePath) {
75
- return (host) => {
76
- const indexPath = path_1.join(sourcePath, 'index.html');
77
- let indexContent = host.read(indexPath).toString();
78
- indexContent = indexContent.replace(/<body>/, '<body class="dx-viewport">');
79
- host.overwrite(indexPath, indexContent);
80
- return host;
81
- };
82
- }
83
- function modifyFileRule(path, callback) {
84
- return (host) => {
85
- const source = source_1.getSourceFile(host, path);
86
- if (!source) {
87
- return host;
88
- }
89
- const changes = callback(source);
90
- return change_1.applyChanges(host, changes, path);
91
- };
92
- }
93
- function updateAppModule(host, sourcePath) {
94
- const appModulePath = sourcePath + 'app.module.ts';
95
- const importSetter = (importName, path) => {
96
- return (source) => {
97
- return ast_utils_1.addImportToModule(source, appModulePath, importName, path);
98
- };
99
- };
100
- const providerSetter = (importName, path) => {
101
- return (source) => {
102
- return ast_utils_1.addProviderToModule(source, appModulePath, importName, path);
103
- };
104
- };
105
- const rules = [
106
- modifyFileRule(appModulePath, importSetter('SideNavOuterToolbarModule', './layouts')),
107
- modifyFileRule(appModulePath, importSetter('SideNavInnerToolbarModule', './layouts')),
108
- modifyFileRule(appModulePath, importSetter('SingleCardModule', './layouts')),
109
- modifyFileRule(appModulePath, importSetter('FooterModule', './shared/components')),
110
- modifyFileRule(appModulePath, importSetter('ResetPasswordFormModule', './shared/components')),
111
- modifyFileRule(appModulePath, importSetter('CreateAccountFormModule', './shared/components')),
112
- modifyFileRule(appModulePath, importSetter('ChangePasswordFormModule', './shared/components')),
113
- modifyFileRule(appModulePath, importSetter('LoginFormModule', './shared/components')),
114
- modifyFileRule(appModulePath, providerSetter('AuthService', './shared/services')),
115
- modifyFileRule(appModulePath, providerSetter('ScreenService', './shared/services')),
116
- modifyFileRule(appModulePath, providerSetter('AppInfoService', './shared/services')),
117
- modifyFileRule(appModulePath, importSetter('UnauthenticatedContentModule', './unauthenticated-content')),
118
- ];
119
- if (!hasRoutingModule(host, sourcePath)) {
120
- rules.push(modifyFileRule(appModulePath, importSetter('AppRoutingModule', './app-routing.module')));
121
- }
122
- return schematics_1.chain(rules);
123
- }
124
- function getComponentName(host, sourcePath) {
125
- let name = '';
126
- const index = 1;
127
- if (!host.exists(sourcePath + 'app.component.ts')) {
128
- name = 'app';
129
- }
130
- while (!name) {
131
- const componentName = `app${index}`;
132
- if (!host.exists(`${sourcePath}${componentName}.component.ts`)) {
133
- name = componentName;
134
- }
135
- }
136
- return name;
137
- }
138
- function hasRoutingModule(host, sourcePath) {
139
- return host.exists(sourcePath + 'app-routing.module.ts');
140
- }
141
- function addPackagesToDependency(globalNgCliVersion) {
142
- return (host) => {
143
- dependencies_1.addPackageJsonDependency(host, {
144
- type: dependencies_1.NodeDependencyType.Default,
145
- name: '@angular/cdk',
146
- version: globalNgCliVersion
147
- });
148
- return host;
149
- };
150
- }
151
- function modifyContentByTemplate(sourcePath, templateSourcePath, filePath, templateOptions = {}, modifyContent) {
152
- return (host, context) => {
153
- const modifyIfExists = (fileEntry) => {
154
- const fileEntryPath = path_1.join(sourcePath, fileEntry.path.toString());
155
- if (!host.exists(fileEntryPath)) {
156
- return fileEntry;
157
- }
158
- const templateContent = fileEntry.content.toString();
159
- let modifiedContent = templateContent;
160
- const currentContent = host.read(fileEntryPath).toString();
161
- if (modifyContent) {
162
- modifiedContent = modifyContent(templateContent, currentContent, fileEntryPath);
163
- }
164
- // NOTE: Workaround for https://github.com/angular/angular-cli/issues/11337
165
- if (modifiedContent !== currentContent) {
166
- host.overwrite(fileEntryPath, modifiedContent);
167
- }
168
- return null;
169
- };
170
- const rules = [
171
- schematics_1.filter(path => {
172
- return !filePath || path_1.join('./', path) === path_1.join('./', filePath);
173
- }),
174
- schematics_1.template(templateOptions),
175
- schematics_1.forEach(modifyIfExists),
176
- schematics_1.move(sourcePath)
177
- ];
178
- const modifiedSource = schematics_1.apply(schematics_1.url(templateSourcePath), rules);
179
- const resultRule = schematics_1.mergeWith(modifiedSource);
180
- return schematics_1.callRule(resultRule, rxjs_1.of(host), context);
181
- };
182
- }
183
- function updateDevextremeConfig(sourcePath) {
184
- const devextremeConfigPath = '/devextreme.json';
185
- const templateOptions = {
186
- engine: 'angular',
187
- sourcePath
188
- };
189
- const modifyConfig = (templateContent, currentContent) => {
190
- const oldConfig = JSON.parse(currentContent);
191
- const newConfig = JSON.parse(templateContent);
192
- [].push.apply(oldConfig.build.commands, newConfig.build.commands);
193
- return JSON.stringify(oldConfig, null, ' ');
194
- };
195
- return modifyContentByTemplate('./', workspaceFilesSource, devextremeConfigPath, templateOptions, modifyConfig);
196
- }
197
- const modifyRoutingModule = (host, routingModulePath) => {
198
- // TODO: Try to use the isolated host to generate the result string
199
- let source = source_1.getSourceFile(host, routingModulePath);
200
- const importChange = ast_utils_1.insertImport(source, routingModulePath, 'LoginFormComponent', './shared/components');
201
- const providerChanges = ast_utils_1.addProviderToModule(source, routingModulePath, 'AuthGuardService', './shared/services');
202
- change_1.applyChanges(host, [importChange, ...providerChanges], routingModulePath);
203
- source = source_1.getSourceFile(host, routingModulePath);
204
- const routes = routing_1.findRoutesInSource(source);
205
- if (!routing_1.hasComponentInRoutes(routes, 'login-form')) {
206
- const loginFormRoute = routing_1.getRoute('login-form');
207
- change_1.insertItemToArray(host, routingModulePath, routes, loginFormRoute);
208
- }
209
- };
210
- function default_1(options) {
211
- return (host) => {
212
- const project = project_1.getProjectName(host, options.project);
213
- const workspace = config_1.getWorkspace(host);
214
- const prefix = workspace.projects[project].prefix;
215
- const title = string_1.humanize(project);
216
- const appPath = project_1.getApplicationPath(host, project);
217
- const sourcePath = project_1.getSourceRootPath(host, project);
218
- const layout = options.layout;
219
- const override = options.resolveConflicts === 'override';
220
- const componentName = override ? 'app' : getComponentName(host, appPath);
221
- const pathToCss = sourcePath.replace(/\/?(\w)+\/?/g, '../');
222
- const templateOptions = {
223
- name: componentName,
224
- layout,
225
- title,
226
- strings: core_1.strings,
227
- path: pathToCss,
228
- prefix
229
- };
230
- const modifyContent = (templateContent, currentContent, filePath) => {
231
- if (path_1.basename(filePath) === 'styles.scss') {
232
- return `${currentContent}\n${templateContent}`;
233
- }
234
- if (path_1.basename(filePath) === 'app-routing.module.ts' && hasRoutingModule(host, appPath)) {
235
- modifyRoutingModule(host, filePath);
236
- return currentContent;
237
- }
238
- return templateContent;
239
- };
240
- const rules = [
241
- modifyContentByTemplate(sourcePath, projectFilesSource, null, templateOptions, modifyContent),
242
- updateDevextremeConfig(sourcePath),
243
- updateAppModule(host, appPath),
244
- addBuildThemeScript(),
245
- addCustomThemeStyles(options, sourcePath),
246
- addViewportToBody(sourcePath),
247
- addPackagesToDependency(options.globalNgCliVersion)
248
- ];
249
- if (options.updateBudgets) {
250
- rules.push(updateBudgets(options));
251
- }
252
- if (!options.skipInstall) {
253
- rules.push((_, context) => {
254
- context.addTask(new tasks_1.NodePackageInstallTask());
255
- });
256
- }
257
- if (override) {
258
- if (project === workspace.defaultProject) {
259
- rules.push(modifyContentByTemplate('./', workspaceFilesSource, 'e2e/src/app.e2e-spec.ts', { title }));
260
- rules.push(modifyContentByTemplate('./', workspaceFilesSource, 'e2e/src/app.po.ts'));
261
- }
262
- }
263
- return schematics_1.chain(rules);
264
- };
265
- }
266
- exports.default = default_1;
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
+ const schematics_1 = require("@angular-devkit/schematics");
13
+ const core_1 = require("@angular-devkit/core");
14
+ const path_1 = require("path");
15
+ const project_1 = require("../utility/project");
16
+ const string_1 = require("../utility/string");
17
+ const styles_1 = require("../utility/styles");
18
+ const modify_json_file_1 = require("../utility/modify-json-file");
19
+ const dependencies_1 = require("@schematics/angular/utility/dependencies");
20
+ const tasks_1 = require("@angular-devkit/schematics/tasks");
21
+ const source_1 = require("../utility/source");
22
+ const change_1 = require("../utility/change");
23
+ const routing_1 = require("../utility/routing");
24
+ const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
25
+ const workspace_1 = require("@schematics/angular/utility/workspace");
26
+ const projectFilesSource = './files/src';
27
+ const workspaceFilesSource = './files';
28
+ function addScriptSafe(scripts, name, value) {
29
+ const currentValue = scripts[name];
30
+ if (!currentValue) {
31
+ scripts[name] = value;
32
+ return;
33
+ }
34
+ const alterName = `origin-${name}`;
35
+ const safeValue = `npm run ${alterName} && ${value}`;
36
+ if (currentValue === value || currentValue === safeValue) {
37
+ return;
38
+ }
39
+ scripts[alterName] = currentValue;
40
+ scripts[name] = safeValue;
41
+ }
42
+ function addBuildThemeScript() {
43
+ return (host) => {
44
+ modify_json_file_1.modifyJSONFile(host, './package.json', config => {
45
+ const scripts = config['scripts'];
46
+ addScriptSafe(scripts, 'build-themes', 'devextreme build');
47
+ addScriptSafe(scripts, 'postinstall', 'npm run build-themes');
48
+ return config;
49
+ });
50
+ return host;
51
+ };
52
+ }
53
+ function addCustomThemeStyles(host, options, sourcePath = '') {
54
+ return __awaiter(this, void 0, void 0, function* () {
55
+ const projectName = yield project_1.getProjectName(host, options.project);
56
+ modify_json_file_1.modifyJSONFile(host, './angular.json', config => {
57
+ const stylesList = [
58
+ `${sourcePath}/dx-styles.scss`,
59
+ `${sourcePath}/themes/generated/theme.additional.css`,
60
+ `${sourcePath}/themes/generated/theme.base.css`,
61
+ 'node_modules/devextreme/dist/css/dx.common.css'
62
+ ];
63
+ return styles_1.addStylesToApp(projectName, config, stylesList);
64
+ });
65
+ return host;
66
+ });
67
+ }
68
+ function updateBudgets(host, options) {
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ const projectName = yield project_1.getProjectName(host, options.project);
71
+ modify_json_file_1.modifyJSONFile(host, './angular.json', config => {
72
+ const budgets = config.projects[projectName].architect.build.configurations.production.budgets;
73
+ const budget = budgets.find((item) => item.type === 'initial');
74
+ if (budget) {
75
+ budget.maximumWarning = '4mb';
76
+ budget.maximumError = '7mb';
77
+ }
78
+ return config;
79
+ });
80
+ return host;
81
+ });
82
+ }
83
+ function addViewportToBody(sourcePath = '') {
84
+ return (host) => {
85
+ const indexPath = path_1.join(sourcePath, 'index.html');
86
+ let indexContent = host.read(indexPath).toString();
87
+ indexContent = indexContent.replace(/<body>/, '<body class="dx-viewport">');
88
+ host.overwrite(indexPath, indexContent);
89
+ return host;
90
+ };
91
+ }
92
+ function modifyFileRule(path, callback) {
93
+ return (host) => {
94
+ const source = source_1.getSourceFile(host, path);
95
+ if (!source) {
96
+ return host;
97
+ }
98
+ const changes = callback(source);
99
+ return change_1.applyChanges(host, changes, path);
100
+ };
101
+ }
102
+ function updateAppModule(host, sourcePath) {
103
+ const appModulePath = sourcePath + 'app.module.ts';
104
+ const importSetter = (importName, path) => {
105
+ return (source) => {
106
+ return ast_utils_1.addImportToModule(source, appModulePath, importName, path);
107
+ };
108
+ };
109
+ const providerSetter = (importName, path) => {
110
+ return (source) => {
111
+ return ast_utils_1.addProviderToModule(source, appModulePath, importName, path);
112
+ };
113
+ };
114
+ const rules = [
115
+ modifyFileRule(appModulePath, importSetter('SideNavOuterToolbarModule', './layouts')),
116
+ modifyFileRule(appModulePath, importSetter('SideNavInnerToolbarModule', './layouts')),
117
+ modifyFileRule(appModulePath, importSetter('SingleCardModule', './layouts')),
118
+ modifyFileRule(appModulePath, importSetter('FooterModule', './shared/components')),
119
+ modifyFileRule(appModulePath, importSetter('ResetPasswordFormModule', './shared/components')),
120
+ modifyFileRule(appModulePath, importSetter('CreateAccountFormModule', './shared/components')),
121
+ modifyFileRule(appModulePath, importSetter('ChangePasswordFormModule', './shared/components')),
122
+ modifyFileRule(appModulePath, importSetter('LoginFormModule', './shared/components')),
123
+ modifyFileRule(appModulePath, providerSetter('AuthService', './shared/services')),
124
+ modifyFileRule(appModulePath, providerSetter('ScreenService', './shared/services')),
125
+ modifyFileRule(appModulePath, providerSetter('AppInfoService', './shared/services')),
126
+ modifyFileRule(appModulePath, importSetter('UnauthenticatedContentModule', './unauthenticated-content')),
127
+ ];
128
+ if (!hasRoutingModule(host, sourcePath)) {
129
+ rules.push(modifyFileRule(appModulePath, importSetter('AppRoutingModule', './app-routing.module')));
130
+ }
131
+ return schematics_1.chain(rules);
132
+ }
133
+ function getComponentName(host, sourcePath) {
134
+ let name = '';
135
+ const index = 1;
136
+ if (!host.exists(sourcePath + 'app.component.ts')) {
137
+ name = 'app';
138
+ }
139
+ while (!name) {
140
+ const componentName = `app${index}`;
141
+ if (!host.exists(`${sourcePath}${componentName}.component.ts`)) {
142
+ name = componentName;
143
+ }
144
+ }
145
+ return name;
146
+ }
147
+ function hasRoutingModule(host, sourcePath) {
148
+ return host.exists(sourcePath + 'app-routing.module.ts');
149
+ }
150
+ function addPackagesToDependency(globalNgCliVersion) {
151
+ return (host) => {
152
+ dependencies_1.addPackageJsonDependency(host, {
153
+ type: dependencies_1.NodeDependencyType.Default,
154
+ name: '@angular/cdk',
155
+ version: globalNgCliVersion
156
+ });
157
+ return host;
158
+ };
159
+ }
160
+ function modifyContentByTemplate(sourcePath = '', templateSourcePath, filePath, templateOptions = {}, modifyContent) {
161
+ return (host, context) => {
162
+ const modifyIfExists = (fileEntry) => {
163
+ const fileEntryPath = path_1.join(sourcePath, fileEntry.path.toString());
164
+ if (!host.exists(fileEntryPath)) {
165
+ return fileEntry;
166
+ }
167
+ const templateContent = fileEntry.content.toString();
168
+ let modifiedContent = templateContent;
169
+ const currentContent = host.read(fileEntryPath).toString();
170
+ if (modifyContent) {
171
+ modifiedContent = modifyContent(templateContent, currentContent, fileEntryPath);
172
+ }
173
+ // NOTE: Workaround for https://github.com/angular/angular-cli/issues/11337
174
+ if (modifiedContent !== currentContent) {
175
+ host.overwrite(fileEntryPath, modifiedContent);
176
+ }
177
+ return null;
178
+ };
179
+ const rules = [
180
+ schematics_1.filter(path => {
181
+ return !filePath || path_1.join('./', path) === path_1.join('./', filePath);
182
+ }),
183
+ schematics_1.template(templateOptions),
184
+ schematics_1.forEach(modifyIfExists),
185
+ schematics_1.move(sourcePath)
186
+ ];
187
+ const modifiedSource = schematics_1.apply(schematics_1.url(templateSourcePath), rules);
188
+ const resultRule = schematics_1.mergeWith(modifiedSource);
189
+ return schematics_1.callRule(resultRule, host, context);
190
+ };
191
+ }
192
+ function updateDevextremeConfig(sourcePath = '') {
193
+ const devextremeConfigPath = '/devextreme.json';
194
+ const templateOptions = {
195
+ sourcePath
196
+ };
197
+ const modifyConfig = (templateContent, currentContent) => {
198
+ const oldConfig = JSON.parse(currentContent);
199
+ const newConfig = JSON.parse(templateContent);
200
+ [].push.apply(oldConfig.build.commands, newConfig.build.commands);
201
+ return JSON.stringify(oldConfig, null, ' ');
202
+ };
203
+ return modifyContentByTemplate('./', workspaceFilesSource, devextremeConfigPath, templateOptions, modifyConfig);
204
+ }
205
+ const modifyRoutingModule = (host, routingModulePath) => {
206
+ // TODO: Try to use the isolated host to generate the result string
207
+ let source = source_1.getSourceFile(host, routingModulePath);
208
+ const importChange = ast_utils_1.insertImport(source, routingModulePath, 'LoginFormComponent', './shared/components');
209
+ const providerChanges = ast_utils_1.addProviderToModule(source, routingModulePath, 'AuthGuardService', './shared/services');
210
+ change_1.applyChanges(host, [importChange, ...providerChanges], routingModulePath);
211
+ source = source_1.getSourceFile(host, routingModulePath);
212
+ const routes = routing_1.findRoutesInSource(source);
213
+ if (!routing_1.hasComponentInRoutes(routes, 'login-form')) {
214
+ const loginFormRoute = routing_1.getRoute('login-form');
215
+ change_1.insertItemToArray(host, routingModulePath, routes, loginFormRoute);
216
+ }
217
+ };
218
+ function default_1(options) {
219
+ return (host) => __awaiter(this, void 0, void 0, function* () {
220
+ const ngConfig = host.read('./angular.json').toString();
221
+ const defaultProjectName = modify_json_file_1.parseJson(ngConfig).defaultProject;
222
+ const project = yield project_1.getProjectName(host, options.project);
223
+ const workspace = yield workspace_1.getWorkspace(host);
224
+ const ngProject = workspace.projects.get(project);
225
+ const prefix = ngProject === null || ngProject === void 0 ? void 0 : ngProject.prefix;
226
+ const title = string_1.humanize(project);
227
+ const appPath = yield project_1.getApplicationPath(host, project);
228
+ const sourcePath = yield project_1.getSourceRootPath(host, project);
229
+ const layout = options.layout;
230
+ const override = options.resolveConflicts === 'override';
231
+ const componentName = override ? 'app' : getComponentName(host, appPath);
232
+ const pathToCss = sourcePath === null || sourcePath === void 0 ? void 0 : sourcePath.replace(/\/?(\w)+\/?/g, '../');
233
+ const templateOptions = {
234
+ name: componentName,
235
+ layout,
236
+ title,
237
+ strings: core_1.strings,
238
+ path: pathToCss,
239
+ prefix
240
+ };
241
+ const modifyContent = (templateContent, currentContent, filePath) => {
242
+ if (path_1.basename(filePath) === 'styles.scss') {
243
+ return `${currentContent}\n${templateContent}`;
244
+ }
245
+ if (path_1.basename(filePath) === 'app-routing.module.ts' && hasRoutingModule(host, appPath)) {
246
+ modifyRoutingModule(host, filePath);
247
+ return currentContent;
248
+ }
249
+ return templateContent;
250
+ };
251
+ const rules = [
252
+ modifyContentByTemplate(sourcePath, projectFilesSource, null, templateOptions, modifyContent),
253
+ updateDevextremeConfig(sourcePath),
254
+ updateAppModule(host, appPath),
255
+ addBuildThemeScript(),
256
+ () => addCustomThemeStyles(host, options, sourcePath),
257
+ addViewportToBody(sourcePath),
258
+ addPackagesToDependency(options.globalNgCliVersion)
259
+ ];
260
+ if (options.updateBudgets) {
261
+ rules.push(() => updateBudgets(host, options));
262
+ }
263
+ if (!options.skipInstall) {
264
+ rules.push((_, context) => {
265
+ context.addTask(new tasks_1.NodePackageInstallTask());
266
+ });
267
+ }
268
+ if (override) {
269
+ if (project === defaultProjectName) {
270
+ rules.push(modifyContentByTemplate('./', workspaceFilesSource, 'e2e/src/app.e2e-spec.ts', { title }));
271
+ rules.push(modifyContentByTemplate('./', workspaceFilesSource, 'e2e/src/app.po.ts'));
272
+ }
273
+ }
274
+ return schematics_1.chain(rules);
275
+ });
276
+ }
277
+ exports.default = default_1;
267
278
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}