@clr/angular 18.0.0-beta.3 → 18.0.0-beta.5

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 (54) hide show
  1. package/fesm2022/clr-angular-data-datagrid.mjs +8 -2
  2. package/fesm2022/clr-angular-data-datagrid.mjs.map +1 -1
  3. package/fesm2022/clr-angular-forms-combobox.mjs +332 -39
  4. package/fesm2022/clr-angular-forms-combobox.mjs.map +1 -1
  5. package/fesm2022/clr-angular-layout-nav.mjs +27 -25
  6. package/fesm2022/clr-angular-layout-nav.mjs.map +1 -1
  7. package/fesm2022/clr-angular-modal.mjs +2 -3
  8. package/fesm2022/clr-angular-modal.mjs.map +1 -1
  9. package/fesm2022/clr-angular-utils.mjs +5 -0
  10. package/fesm2022/clr-angular-utils.mjs.map +1 -1
  11. package/fesm2022/clr-angular-wizard.mjs +427 -224
  12. package/fesm2022/clr-angular-wizard.mjs.map +1 -1
  13. package/package.json +7 -2
  14. package/schematics/collection.json +10 -0
  15. package/schematics/ng-update/index.d.ts +2 -0
  16. package/schematics/ng-update/index.js +69 -0
  17. package/schematics/ng-update/index.js.map +1 -0
  18. package/schematics/ng-update/migrations/css-migration.d.ts +6 -0
  19. package/schematics/ng-update/migrations/css-migration.js +177 -0
  20. package/schematics/ng-update/migrations/css-migration.js.map +1 -0
  21. package/schematics/ng-update/migrations/import-migration.d.ts +4 -0
  22. package/schematics/ng-update/migrations/import-migration.js +187 -0
  23. package/schematics/ng-update/migrations/import-migration.js.map +1 -0
  24. package/schematics/ng-update/migrations/template-migration.d.ts +6 -0
  25. package/schematics/ng-update/migrations/template-migration.js +203 -0
  26. package/schematics/ng-update/migrations/template-migration.js.map +1 -0
  27. package/schematics/ng-update/replacements/css-replacements.d.ts +17 -0
  28. package/schematics/ng-update/replacements/css-replacements.js +74 -0
  29. package/schematics/ng-update/replacements/css-replacements.js.map +1 -0
  30. package/schematics/ng-update/replacements/import-replacements.d.ts +13 -0
  31. package/schematics/ng-update/replacements/import-replacements.js +101 -0
  32. package/schematics/ng-update/replacements/import-replacements.js.map +1 -0
  33. package/schematics/ng-update/replacements/symbol-replacements.d.ts +12 -0
  34. package/schematics/ng-update/replacements/symbol-replacements.js +68 -0
  35. package/schematics/ng-update/replacements/symbol-replacements.js.map +1 -0
  36. package/schematics/ng-update/replacements/template-replacements.d.ts +14 -0
  37. package/schematics/ng-update/replacements/template-replacements.js +53 -0
  38. package/schematics/ng-update/replacements/template-replacements.js.map +1 -0
  39. package/schematics/ng-update/tests/test-helpers.d.ts +6 -0
  40. package/schematics/ng-update/tests/test-helpers.js +34 -0
  41. package/schematics/ng-update/tests/test-helpers.js.map +1 -0
  42. package/schematics/ng-update/utils/file-visitor.d.ts +8 -0
  43. package/schematics/ng-update/utils/file-visitor.js +44 -0
  44. package/schematics/ng-update/utils/file-visitor.js.map +1 -0
  45. package/schematics/ng-update/utils/regexp-utils.d.ts +16 -0
  46. package/schematics/ng-update/utils/regexp-utils.js +34 -0
  47. package/schematics/ng-update/utils/regexp-utils.js.map +1 -0
  48. package/schematics/vitest.config.d.ts +2 -0
  49. package/schematics/vitest.config.js +17 -0
  50. package/schematics/vitest.config.js.map +1 -0
  51. package/types/clr-angular-forms-combobox.d.ts +55 -9
  52. package/types/clr-angular-layout-nav.d.ts +6 -2
  53. package/types/clr-angular-utils.d.ts +5 -0
  54. package/types/clr-angular-wizard.d.ts +89 -35
package/package.json CHANGED
@@ -17,11 +17,15 @@
17
17
  "bugs": {
18
18
  "url": "https://github.com/vmware-clarity/ng-clarity/issues"
19
19
  },
20
+ "schematics": "./schematics/collection.json",
21
+ "ng-update": {
22
+ "migrations": "./schematics/collection.json"
23
+ },
20
24
  "peerDependencies": {
21
25
  "@angular/cdk": "^21",
22
26
  "@angular/common": "^21",
23
27
  "@angular/core": "^21",
24
- "@clr/ui": "18.0.0-beta.3"
28
+ "@clr/ui": "18.0.0-beta.5"
25
29
  },
26
30
  "module": "fesm2022/clr-angular.mjs",
27
31
  "typings": "types/clr-angular.d.ts",
@@ -223,8 +227,9 @@
223
227
  }
224
228
  },
225
229
  "sideEffects": false,
230
+ "type": "module",
226
231
  "dependencies": {
227
232
  "tslib": "^2.3.0"
228
233
  },
229
- "version": "18.0.0-beta.3"
234
+ "version": "18.0.0-beta.5"
230
235
  }
@@ -0,0 +1,10 @@
1
+ {
2
+ "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json",
3
+ "schematics": {
4
+ "ng-update": {
5
+ "version": "18.0.0-beta.5",
6
+ "description": "Migrates @clr/angular from v17 to v18",
7
+ "factory": "./ng-update/index#migrate"
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,2 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ export declare function migrate(): Rule;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
4
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
5
+ * This software is released under MIT license.
6
+ * The full license information can be found in LICENSE in the root directory of this project.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.migrate = migrate;
10
+ const schematics_1 = require("@angular-devkit/schematics");
11
+ const css_migration_1 = require("./migrations/css-migration");
12
+ const import_migration_1 = require("./migrations/import-migration");
13
+ const template_migration_1 = require("./migrations/template-migration");
14
+ const file_visitor_1 = require("./utils/file-visitor");
15
+ /**
16
+ * All candidate strings that may appear in .ts source files.
17
+ * Used as a fast-path pre-check to skip files that need no migration.
18
+ */
19
+ const TS_CANDIDATES = [
20
+ ...import_migration_1.IMPORT_MIGRATION_CANDIDATES,
21
+ ...template_migration_1.TEMPLATE_MIGRATION_INLINE_CANDIDATES,
22
+ ...css_migration_1.CSS_MIGRATION_INLINE_CANDIDATES,
23
+ ];
24
+ /**
25
+ * Single-pass migration for TypeScript source files.
26
+ *
27
+ * Reads each .ts file exactly once, applies import, inline-template, and
28
+ * inline-style transforms in sequence, then writes it if changed.
29
+ * This is more efficient than visiting .ts files separately in each migration
30
+ * because each file is read and written at most once.
31
+ */
32
+ function migrateTypeScriptFiles() {
33
+ return (tree, context) => {
34
+ context.logger.info(' Migrating TypeScript files (imports, inline templates, inline styles)');
35
+ let scanCount = 0;
36
+ let updateCount = 0;
37
+ (0, file_visitor_1.visitFiles)(tree, '**/*.ts', filePath => {
38
+ scanCount++;
39
+ const content = tree.read(filePath);
40
+ if (!content) {
41
+ return;
42
+ }
43
+ const original = content.toString('utf-8');
44
+ // Fast-path: skip entirely if no candidate string is present anywhere.
45
+ if (!TS_CANDIDATES.some(c => original.includes(c))) {
46
+ return;
47
+ }
48
+ let text = original;
49
+ text = (0, import_migration_1.transformImports)(text);
50
+ text = (0, template_migration_1.transformInlineTemplates)(text);
51
+ text = (0, css_migration_1.transformInlineStyles)(text);
52
+ if (text !== original) {
53
+ tree.overwrite(filePath, text);
54
+ updateCount++;
55
+ context.logger.info(` UPDATE ${filePath}`);
56
+ }
57
+ });
58
+ context.logger.info(` ${updateCount} of ${scanCount} file(s) updated.`);
59
+ };
60
+ }
61
+ function migrate() {
62
+ return (tree, context) => {
63
+ context.logger.info('');
64
+ context.logger.info('Running @clr/angular v18 migration...');
65
+ context.logger.info('');
66
+ return (0, schematics_1.chain)([migrateTypeScriptFiles(), (0, template_migration_1.migrateTemplates)(), (0, css_migration_1.migrateCssProperties)()])(tree, context);
67
+ };
68
+ }
69
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../projects/angular/schematics/ng-update/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAyEH,0BAQC;AA/ED,2DAAiF;AAEjF,8DAIoC;AACpC,oEAA8F;AAC9F,wEAIyC;AACzC,uDAAkD;AAElD;;;GAGG;AACH,MAAM,aAAa,GAAsB;IACvC,GAAG,8CAA2B;IAC9B,GAAG,yDAAoC;IACvC,GAAG,+CAA+B;CACnC,CAAC;AAEF;;;;;;;GAOG;AACH,SAAS,sBAAsB;IAC7B,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;QAE/F,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,IAAA,yBAAU,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;YACrC,SAAS,EAAE,CAAC;YAEZ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAE3C,uEAAuE;YACvE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,OAAO;YACT,CAAC;YAED,IAAI,IAAI,GAAG,QAAQ,CAAC;YACpB,IAAI,GAAG,IAAA,mCAAgB,EAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,GAAG,IAAA,6CAAwB,EAAC,IAAI,CAAC,CAAC;YACtC,IAAI,GAAG,IAAA,qCAAqB,EAAC,IAAI,CAAC,CAAC;YAEnC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC/B,WAAW,EAAE,CAAC;gBACd,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,WAAW,OAAO,SAAS,mBAAmB,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,OAAO;IACrB,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QAC7D,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAExB,OAAO,IAAA,kBAAK,EAAC,CAAC,sBAAsB,EAAE,EAAE,IAAA,qCAAgB,GAAE,EAAE,IAAA,oCAAoB,GAAE,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtG,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ export declare const CSS_MIGRATION_CANDIDATES: readonly string[];
3
+ export declare const CSS_MIGRATION_INLINE_CANDIDATES: readonly string[];
4
+ export declare function transformInlineStyles(text: string): string;
5
+ export declare function migrateCssProperties(): Rule;
6
+ export declare function applyStyleTransforms(text: string, filePath: string | null): string;
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
4
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
5
+ * This software is released under MIT license.
6
+ * The full license information can be found in LICENSE in the root directory of this project.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.CSS_MIGRATION_INLINE_CANDIDATES = exports.CSS_MIGRATION_CANDIDATES = void 0;
10
+ exports.transformInlineStyles = transformInlineStyles;
11
+ exports.migrateCssProperties = migrateCssProperties;
12
+ exports.applyStyleTransforms = applyStyleTransforms;
13
+ const css_replacements_1 = require("../replacements/css-replacements");
14
+ const file_visitor_1 = require("../utils/file-visitor");
15
+ const regexp_utils_1 = require("../utils/regexp-utils");
16
+ // ---------------------------------------------------------------------------
17
+ // Pre-compiled regex arrays — built once at module load, not per-file
18
+ // ---------------------------------------------------------------------------
19
+ // Negative lookahead (?![-\w]) ensures a CSS custom property name that is a
20
+ // prefix of a longer one (e.g. --clr-foo--active inside --clr-foo--active-extra)
21
+ // is NOT matched, preventing false-positive renames.
22
+ const COMPILED_PROPERTY_RENAME_REGEXES = css_replacements_1.CSS_PROPERTY_REPLACEMENTS.filter(r => r.new).map(r => ({
23
+ old: r.old,
24
+ new: r.new,
25
+ regex: (0, regexp_utils_1.prefixNegativeLookaheadRegex)(r.old),
26
+ }));
27
+ const COMPILED_PROPERTY_REMOVE_REGEXES = css_replacements_1.CSS_PROPERTY_REPLACEMENTS.filter(r => !r.new).map(r => ({
28
+ old: r.old,
29
+ regex: new RegExp(`(\\s*)(${(0, regexp_utils_1.escapeRegExp)(r.old)}(?![-\\w])\\s*:[^;]*;)`, 'g'),
30
+ }));
31
+ const COMPILED_SELECTOR_REGEXES = css_replacements_1.CSS_SELECTOR_REPLACEMENTS.map(r => ({
32
+ old: r.old,
33
+ new: r.new,
34
+ regex: (0, regexp_utils_1.wordBoundaryRegex)(r.old),
35
+ }));
36
+ const COMPILED_ATTRIBUTE_REGEXES = css_replacements_1.CSS_ATTRIBUTE_REPLACEMENTS.map(r => ({
37
+ old: r.old,
38
+ new: r.new,
39
+ regex: new RegExp((0, regexp_utils_1.escapeRegExp)(r.old), 'g'),
40
+ }));
41
+ const COMPILED_MIXIN_REGEXES = css_replacements_1.REMOVED_SCSS_MIXINS.map(name => ({
42
+ name,
43
+ regex: new RegExp(`@include\\s+${(0, regexp_utils_1.escapeRegExp)(name)}\\s*\\([^)]*\\)\\s*;`, 'g'),
44
+ }));
45
+ // ---------------------------------------------------------------------------
46
+ // Fast-path candidate strings
47
+ // ---------------------------------------------------------------------------
48
+ exports.CSS_MIGRATION_CANDIDATES = [
49
+ ...css_replacements_1.CSS_PROPERTY_REPLACEMENTS.map(r => r.old),
50
+ ...css_replacements_1.CSS_SELECTOR_REPLACEMENTS.map(r => r.old),
51
+ ...css_replacements_1.CSS_ATTRIBUTE_REPLACEMENTS.map(r => r.old),
52
+ ...css_replacements_1.REMOVED_SCSS_MIXINS,
53
+ ];
54
+ exports.CSS_MIGRATION_INLINE_CANDIDATES = exports.CSS_MIGRATION_CANDIDATES;
55
+ // ---------------------------------------------------------------------------
56
+ // Public pure transforms — used by the unified .ts pass in index.ts
57
+ // ---------------------------------------------------------------------------
58
+ function transformInlineStyles(text) {
59
+ const stylesRegex = /styles\s*:\s*\[([^\]]*)\]/g;
60
+ return text.replace(stylesRegex, (match, stylesContent) => {
61
+ if (!exports.CSS_MIGRATION_INLINE_CANDIDATES.some(c => stylesContent.includes(c))) {
62
+ return match;
63
+ }
64
+ const updated = applyStyleTransforms(stylesContent, null);
65
+ return updated !== stylesContent ? match.replace(stylesContent, updated) : match;
66
+ });
67
+ }
68
+ // ---------------------------------------------------------------------------
69
+ // Schematic Rule — visits style files and .ts inline styles
70
+ // ---------------------------------------------------------------------------
71
+ function migrateCssProperties() {
72
+ return (tree, context) => {
73
+ context.logger.info(' Migrating style files (CSS, SCSS, Sass, Less)');
74
+ let styleScanCount = 0;
75
+ let styleUpdateCount = 0;
76
+ let tsScanCount = 0;
77
+ let tsUpdateCount = 0;
78
+ (0, file_visitor_1.visitFiles)(tree, '**/*.{css,scss,sass,less}', filePath => {
79
+ styleScanCount++;
80
+ const content = tree.read(filePath);
81
+ if (!content) {
82
+ return;
83
+ }
84
+ const original = content.toString('utf-8');
85
+ if (!exports.CSS_MIGRATION_CANDIDATES.some(c => original.includes(c))) {
86
+ return;
87
+ }
88
+ const updated = applyStyleTransforms(original, filePath);
89
+ if (updated !== original) {
90
+ tree.overwrite(filePath, updated);
91
+ styleUpdateCount++;
92
+ context.logger.info(` UPDATE ${filePath}`);
93
+ }
94
+ });
95
+ (0, file_visitor_1.visitFiles)(tree, '**/*.ts', filePath => {
96
+ tsScanCount++;
97
+ const content = tree.read(filePath);
98
+ if (!content) {
99
+ return;
100
+ }
101
+ const original = content.toString('utf-8');
102
+ if (!exports.CSS_MIGRATION_INLINE_CANDIDATES.some(c => original.includes(c))) {
103
+ return;
104
+ }
105
+ const updated = transformInlineStyles(original);
106
+ if (updated !== original) {
107
+ tree.overwrite(filePath, updated);
108
+ tsUpdateCount++;
109
+ context.logger.info(` UPDATE ${filePath}`);
110
+ }
111
+ });
112
+ const totalScanned = styleScanCount + tsScanCount;
113
+ const totalUpdated = styleUpdateCount + tsUpdateCount;
114
+ context.logger.info(` ${totalUpdated} of ${totalScanned} file(s) updated.`);
115
+ };
116
+ }
117
+ // ---------------------------------------------------------------------------
118
+ // Helpers — exported for direct testing; not part of the public schematic API
119
+ // ---------------------------------------------------------------------------
120
+ function applyStyleTransforms(text, filePath) {
121
+ text = replaceCssProperties(text);
122
+ text = replaceCssSelectors(text);
123
+ text = replaceCssAttributes(text);
124
+ const isScssSass = filePath === null || filePath.endsWith('.scss') || filePath.endsWith('.sass');
125
+ if (isScssSass) {
126
+ text = replaceScssMixins(text);
127
+ }
128
+ return text;
129
+ }
130
+ function replaceCssProperties(text) {
131
+ for (const r of COMPILED_PROPERTY_RENAME_REGEXES) {
132
+ if (!text.includes(r.old)) {
133
+ continue;
134
+ }
135
+ r.regex.lastIndex = 0;
136
+ text = text.replace(r.regex, r.new);
137
+ }
138
+ for (const r of COMPILED_PROPERTY_REMOVE_REGEXES) {
139
+ if (!text.includes(r.old)) {
140
+ continue;
141
+ }
142
+ r.regex.lastIndex = 0;
143
+ text = text.replace(r.regex, `$1/* TODO(v18 migration): '${r.old}' has been removed. */ /* $2 */`);
144
+ }
145
+ return text;
146
+ }
147
+ function replaceCssSelectors(text) {
148
+ for (const r of COMPILED_SELECTOR_REGEXES) {
149
+ if (!text.includes(r.old)) {
150
+ continue;
151
+ }
152
+ r.regex.lastIndex = 0;
153
+ text = text.replace(r.regex, r.new);
154
+ }
155
+ return text;
156
+ }
157
+ function replaceCssAttributes(text) {
158
+ for (const r of COMPILED_ATTRIBUTE_REGEXES) {
159
+ if (!text.includes(r.old)) {
160
+ continue;
161
+ }
162
+ r.regex.lastIndex = 0;
163
+ text = text.replace(r.regex, r.new);
164
+ }
165
+ return text;
166
+ }
167
+ function replaceScssMixins(text) {
168
+ for (const r of COMPILED_MIXIN_REGEXES) {
169
+ if (!text.includes(r.name)) {
170
+ continue;
171
+ }
172
+ r.regex.lastIndex = 0;
173
+ text = text.replace(r.regex, `/* TODO(v18 migration): '@include ${r.name}(...)' has been removed. */`);
174
+ }
175
+ return text;
176
+ }
177
+ //# sourceMappingURL=css-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css-migration.js","sourceRoot":"","sources":["../../../../../projects/angular/schematics/ng-update/migrations/css-migration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ export declare const IMPORT_MIGRATION_CANDIDATES: readonly string[];
3
+ export declare function transformImports(text: string): string;
4
+ export declare function migrateImports(): Rule;
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
4
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
5
+ * This software is released under MIT license.
6
+ * The full license information can be found in LICENSE in the root directory of this project.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.IMPORT_MIGRATION_CANDIDATES = void 0;
10
+ exports.transformImports = transformImports;
11
+ exports.migrateImports = migrateImports;
12
+ const import_replacements_1 = require("../replacements/import-replacements");
13
+ const symbol_replacements_1 = require("../replacements/symbol-replacements");
14
+ const file_visitor_1 = require("../utils/file-visitor");
15
+ const regexp_utils_1 = require("../utils/regexp-utils");
16
+ // ---------------------------------------------------------------------------
17
+ // Pre-compiled regex arrays — built once at module load, not per-file
18
+ // ---------------------------------------------------------------------------
19
+ // Sort import replacements by path length descending so more-specific paths
20
+ // (e.g. '@clr/angular/src/accordion/stepper') match before shorter prefixes.
21
+ const SORTED_IMPORT_REPLACEMENTS = [...import_replacements_1.IMPORT_REPLACEMENTS].sort((a, b) => b.oldModule.length - a.oldModule.length);
22
+ // Wildcard replacements: change the whole module path for all symbols.
23
+ const COMPILED_WILDCARD_IMPORT_REGEXES = SORTED_IMPORT_REPLACEMENTS.filter(r => r.oldSymbol === '*').map(r => ({
24
+ oldModule: r.oldModule,
25
+ newModule: r.newModule,
26
+ regex: new RegExp(`(from\\s+['"])${(0, regexp_utils_1.escapeRegExp)(r.oldModule)}(?=[/'"])`, 'g'),
27
+ }));
28
+ // Symbol-specific replacements: only the named symbol moves to the new module.
29
+ // Kept as plain data — splitSymbolImport() handles them at runtime to avoid
30
+ // the false positive where sibling symbols in the same import are dragged to
31
+ // the wrong module path.
32
+ const SYMBOL_SPECIFIC_IMPORTS = SORTED_IMPORT_REPLACEMENTS.filter(r => r.oldSymbol !== '*').map(r => ({
33
+ oldModule: r.oldModule,
34
+ newModule: r.newModule,
35
+ oldSymbol: r.oldSymbol,
36
+ newSymbol: r.newSymbol,
37
+ }));
38
+ // Only symbols with a non-empty new name are renamed here; removed symbols handled separately.
39
+ const COMPILED_SYMBOL_REPLACEMENTS = symbol_replacements_1.SYMBOL_REPLACEMENTS.filter(r => r.new).map(r => ({
40
+ ...r,
41
+ // Ç (U+00C7) is not an ASCII word character so \b doesn't delimit it.
42
+ // Use explicit lookahead/lookbehind to avoid partial matches.
43
+ regex: r.old.startsWith('Ç')
44
+ ? new RegExp(`(?<![A-Za-z0-9_$Ç])${(0, regexp_utils_1.escapeRegExp)(r.old)}(?![A-Za-z0-9_$])`, 'g')
45
+ : (0, regexp_utils_1.wordBoundaryRegex)(r.old),
46
+ }));
47
+ const REMOVED_SYMBOLS = symbol_replacements_1.SYMBOL_REPLACEMENTS.filter(r => r.new === '').map(r => r.old);
48
+ const REMOVED_SYMBOL_SOLE_IMPORT_REGEXES = REMOVED_SYMBOLS.map(sym => new RegExp(`^\\s*import\\s*\\{\\s*${(0, regexp_utils_1.escapeRegExp)(sym)}\\s*\\}\\s*from\\s*['"][^'"]+['"]\\s*;?\\s*$`, 'gm'));
49
+ const REMOVED_SYMBOL_LEADING_COMMA_REGEXES = REMOVED_SYMBOLS.map(sym => new RegExp(`\\b${(0, regexp_utils_1.escapeRegExp)(sym)}\\b\\s*,\\s*`, 'g'));
50
+ const REMOVED_SYMBOL_TRAILING_COMMA_REGEXES = REMOVED_SYMBOLS.map(sym => new RegExp(`\\s*,\\s*${(0, regexp_utils_1.escapeRegExp)(sym)}\\b`, 'g'));
51
+ const REMOVED_SYMBOL_USAGE_REGEXES = REMOVED_SYMBOLS.map(sym => ({
52
+ sym,
53
+ test: new RegExp(`\\b${(0, regexp_utils_1.escapeRegExp)(sym)}\\b`),
54
+ replace: new RegExp(`\\b${(0, regexp_utils_1.escapeRegExp)(sym)}\\b`, 'g'),
55
+ }));
56
+ // ---------------------------------------------------------------------------
57
+ // Fast-path candidate strings — if none present, skip the file entirely
58
+ // ---------------------------------------------------------------------------
59
+ exports.IMPORT_MIGRATION_CANDIDATES = [
60
+ ...import_replacements_1.IMPORT_REPLACEMENTS.map(r => r.oldModule),
61
+ ...symbol_replacements_1.SYMBOL_REPLACEMENTS.filter(r => r.new).map(r => r.old),
62
+ ...REMOVED_SYMBOLS,
63
+ ];
64
+ // ---------------------------------------------------------------------------
65
+ // Public pure transform — used by the unified .ts pass in index.ts
66
+ // ---------------------------------------------------------------------------
67
+ function transformImports(text) {
68
+ if (!exports.IMPORT_MIGRATION_CANDIDATES.some(c => text.includes(c))) {
69
+ return text;
70
+ }
71
+ text = replaceImportPaths(text);
72
+ text = replaceSymbols(text);
73
+ text = removeDeletedImports(text);
74
+ return text;
75
+ }
76
+ // ---------------------------------------------------------------------------
77
+ // Schematic Rule — kept for backwards compatibility; unified pass in index.ts
78
+ // is preferred for performance.
79
+ // ---------------------------------------------------------------------------
80
+ function migrateImports() {
81
+ return (tree, context) => {
82
+ context.logger.info(' Migrating TypeScript imports and symbols');
83
+ let scanCount = 0;
84
+ let fileCount = 0;
85
+ (0, file_visitor_1.visitFiles)(tree, '**/*.ts', filePath => {
86
+ scanCount++;
87
+ const content = tree.read(filePath);
88
+ if (!content) {
89
+ return;
90
+ }
91
+ const original = content.toString('utf-8');
92
+ const updated = transformImports(original);
93
+ if (updated !== original) {
94
+ tree.overwrite(filePath, updated);
95
+ fileCount++;
96
+ context.logger.info(` UPDATE ${filePath}`);
97
+ }
98
+ });
99
+ context.logger.info(` ${fileCount} of ${scanCount} file(s) updated.`);
100
+ };
101
+ }
102
+ // ---------------------------------------------------------------------------
103
+ // Private helpers
104
+ // ---------------------------------------------------------------------------
105
+ function replaceImportPaths(text) {
106
+ // Wildcard replacements: move all symbols from oldModule to newModule.
107
+ for (const r of COMPILED_WILDCARD_IMPORT_REGEXES) {
108
+ if (!text.includes(r.oldModule)) {
109
+ continue;
110
+ }
111
+ r.regex.lastIndex = 0;
112
+ text = text.replace(r.regex, `$1${r.newModule}`);
113
+ }
114
+ // Symbol-specific replacements: extract one symbol to a new module, leaving
115
+ // any sibling symbols on the original module to prevent false positives.
116
+ for (const r of SYMBOL_SPECIFIC_IMPORTS) {
117
+ if (!text.includes(r.oldModule) || !text.includes(r.oldSymbol)) {
118
+ continue;
119
+ }
120
+ text = splitSymbolImport(text, r.oldSymbol, r.newSymbol, r.oldModule, r.newModule);
121
+ }
122
+ return text;
123
+ }
124
+ /**
125
+ * Extracts a single named symbol from an import and moves it to a new module.
126
+ *
127
+ * When the import contains sibling symbols, a second import for the remaining
128
+ * symbols on the original module is emitted. This prevents the false positive
129
+ * where all siblings are silently moved to the wrong module.
130
+ *
131
+ * Example (multi-symbol):
132
+ * import { FocusService, ClrFormsModule } from '@clr/angular/forms';
133
+ * →
134
+ * import { FormsFocusService } from '@clr/angular/forms/common';
135
+ * import { ClrFormsModule } from '@clr/angular/forms';
136
+ */
137
+ function splitSymbolImport(text, oldSymbol, newSymbol, oldModule, newModule) {
138
+ const modEsc = (0, regexp_utils_1.escapeRegExp)(oldModule);
139
+ const symEsc = (0, regexp_utils_1.escapeRegExp)(oldSymbol);
140
+ // Compiled once per call, not inside the replace callback.
141
+ const symInListRe = new RegExp(`(?:^|,)\\s*${symEsc}\\s*(?:,|$)`);
142
+ const importRe = new RegExp(`([ \\t]*)import\\s*\\{([^}]*)\\}\\s*from\\s*(['"])${modEsc}\\3(\\s*;?)`, 'gm');
143
+ return text.replace(importRe, (match, indent, symbolList, quote, semi) => {
144
+ if (!symInListRe.test(symbolList)) {
145
+ return match;
146
+ }
147
+ const semiStr = semi.trim() || ';';
148
+ const remaining = symbolList
149
+ .split(',')
150
+ .map(s => s.trim())
151
+ .filter(s => s && s !== oldSymbol);
152
+ if (remaining.length === 0) {
153
+ return `${indent}import { ${newSymbol} } from ${quote}${newModule}${quote}${semiStr}`;
154
+ }
155
+ const newLine = `${indent}import { ${newSymbol} } from ${quote}${newModule}${quote}${semiStr}`;
156
+ const oldLine = `${indent}import { ${remaining.join(', ')} } from ${quote}${oldModule}${quote}${semiStr}`;
157
+ return `${newLine}\n${oldLine}`;
158
+ });
159
+ }
160
+ function replaceSymbols(text) {
161
+ for (const r of COMPILED_SYMBOL_REPLACEMENTS) {
162
+ if (!text.includes(r.old)) {
163
+ continue;
164
+ }
165
+ r.regex.lastIndex = 0;
166
+ text = text.replace(r.regex, r.new);
167
+ }
168
+ return text;
169
+ }
170
+ function removeDeletedImports(text) {
171
+ for (let i = 0; i < REMOVED_SYMBOLS.length; i++) {
172
+ const sym = REMOVED_SYMBOLS[i];
173
+ if (!text.includes(sym)) {
174
+ continue;
175
+ }
176
+ text = text.replace(REMOVED_SYMBOL_SOLE_IMPORT_REGEXES[i], '');
177
+ text = text.replace(REMOVED_SYMBOL_LEADING_COMMA_REGEXES[i], '');
178
+ text = text.replace(REMOVED_SYMBOL_TRAILING_COMMA_REGEXES[i], '');
179
+ const usage = REMOVED_SYMBOL_USAGE_REGEXES[i];
180
+ if (usage.test.test(text)) {
181
+ usage.replace.lastIndex = 0;
182
+ text = text.replace(usage.replace, `${sym} /* TODO: '${sym}' was removed in @clr/angular v18. Use standard KeyboardEvent.key values instead. */`);
183
+ }
184
+ }
185
+ return text;
186
+ }
187
+ //# sourceMappingURL=import-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-migration.js","sourceRoot":"","sources":["../../../../../projects/angular/schematics/ng-update/migrations/import-migration.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAsFH,4CASC;AAOD,wCA2BC;AA7HD,6EAA0E;AAC1E,6EAA0E;AAC1E,wDAAmD;AACnD,wDAAwE;AAExE,8EAA8E;AAC9E,sEAAsE;AACtE,8EAA8E;AAE9E,4EAA4E;AAC5E,6EAA6E;AAC7E,MAAM,0BAA0B,GAAG,CAAC,GAAG,yCAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAEpH,uEAAuE;AACvE,MAAM,gCAAgC,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7G,SAAS,EAAE,CAAC,CAAC,SAAS;IACtB,SAAS,EAAE,CAAC,CAAC,SAAS;IACtB,KAAK,EAAE,IAAI,MAAM,CAAC,iBAAiB,IAAA,2BAAY,EAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC;CAC9E,CAAC,CAAC,CAAC;AAEJ,+EAA+E;AAC/E,4EAA4E;AAC5E,6EAA6E;AAC7E,yBAAyB;AACzB,MAAM,uBAAuB,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpG,SAAS,EAAE,CAAC,CAAC,SAAS;IACtB,SAAS,EAAE,CAAC,CAAC,SAAS;IACtB,SAAS,EAAE,CAAC,CAAC,SAAS;IACtB,SAAS,EAAE,CAAC,CAAC,SAAS;CACvB,CAAC,CAAC,CAAC;AASJ,+FAA+F;AAC/F,MAAM,4BAA4B,GAAgC,yCAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjH,GAAG,CAAC;IACJ,sEAAsE;IACtE,8DAA8D;IAC9D,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;QAC1B,CAAC,CAAC,IAAI,MAAM,CAAC,sBAAsB,IAAA,2BAAY,EAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,CAAC;QAC/E,CAAC,CAAC,IAAA,gCAAiB,EAAC,CAAC,CAAC,GAAG,CAAC;CAC7B,CAAC,CAAC,CAAC;AAEJ,MAAM,eAAe,GAAG,yCAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAEtF,MAAM,kCAAkC,GAAG,eAAe,CAAC,GAAG,CAC5D,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,yBAAyB,IAAA,2BAAY,EAAC,GAAG,CAAC,8CAA8C,EAAE,IAAI,CAAC,CAClH,CAAC;AAEF,MAAM,oCAAoC,GAAG,eAAe,CAAC,GAAG,CAC9D,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,IAAA,2BAAY,EAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAC9D,CAAC;AAEF,MAAM,qCAAqC,GAAG,eAAe,CAAC,GAAG,CAC/D,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,YAAY,IAAA,2BAAY,EAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAC3D,CAAC;AAEF,MAAM,4BAA4B,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/D,GAAG;IACH,IAAI,EAAE,IAAI,MAAM,CAAC,MAAM,IAAA,2BAAY,EAAC,GAAG,CAAC,KAAK,CAAC;IAC9C,OAAO,EAAE,IAAI,MAAM,CAAC,MAAM,IAAA,2BAAY,EAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC;CACvD,CAAC,CAAC,CAAC;AAEJ,8EAA8E;AAC9E,wEAAwE;AACxE,8EAA8E;AAEjE,QAAA,2BAA2B,GAAsB;IAC5D,GAAG,yCAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5C,GAAG,yCAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACzD,GAAG,eAAe;CACnB,CAAC;AAEF,8EAA8E;AAC9E,mEAAmE;AACnE,8EAA8E;AAE9E,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,IAAI,CAAC,mCAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E,SAAgB,cAAc;IAC5B,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAElE,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,IAAA,yBAAU,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;YACrC,SAAS,EAAE,CAAC;YAEZ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAE3C,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAClC,SAAS,EAAE,CAAC;gBACZ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,OAAO,SAAS,mBAAmB,CAAC,CAAC;IACzE,CAAC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,SAAS,kBAAkB,CAAC,IAAY;IACtC,uEAAuE;IACvE,KAAK,MAAM,CAAC,IAAI,gCAAgC,EAAE,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,SAAS;QACX,CAAC;QACD,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,KAAK,MAAM,CAAC,IAAI,uBAAuB,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/D,SAAS;QACX,CAAC;QACD,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,iBAAiB,CACxB,IAAY,EACZ,SAAiB,EACjB,SAAiB,EACjB,SAAiB,EACjB,SAAiB;IAEjB,MAAM,MAAM,GAAG,IAAA,2BAAY,EAAC,SAAS,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,IAAA,2BAAY,EAAC,SAAS,CAAC,CAAC;IACvC,2DAA2D;IAC3D,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,cAAc,MAAM,aAAa,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,qDAAqD,MAAM,aAAa,EAAE,IAAI,CAAC,CAAC;IAE5G,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAc,EAAE,UAAkB,EAAE,KAAa,EAAE,IAAY,EAAE,EAAE;QACvG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC;QACnC,MAAM,SAAS,GAAG,UAAU;aACzB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;QAErC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,MAAM,YAAY,SAAS,WAAW,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,EAAE,CAAC;QACxF,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,MAAM,YAAY,SAAS,WAAW,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,EAAE,CAAC;QAC/F,MAAM,OAAO,GAAG,GAAG,MAAM,YAAY,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,EAAE,CAAC;QAC1G,OAAO,GAAG,OAAO,KAAK,OAAO,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,KAAK,MAAM,CAAC,IAAI,4BAA4B,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,SAAS;QACX,CAAC;QAED,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAElE,MAAM,KAAK,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;YAC5B,IAAI,GAAG,IAAI,CAAC,OAAO,CACjB,KAAK,CAAC,OAAO,EACb,GAAG,GAAG,cAAc,GAAG,sFAAsF,CAC9G,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ export declare const TEMPLATE_MIGRATION_HTML_CANDIDATES: readonly string[];
3
+ export declare const TEMPLATE_MIGRATION_INLINE_CANDIDATES: readonly string[];
4
+ export declare function transformInlineTemplates(text: string): string;
5
+ export declare function migrateTemplates(): Rule;
6
+ export declare function applyHtmlTransforms(text: string): string;