@openrewrite/recipes-angular 1.17.0 → 1.18.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 (125) hide show
  1. package/dist/index.d.ts +12 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +83 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/libraries/cdk/find-cdk-signature-changes.d.ts +48 -0
  6. package/dist/libraries/cdk/find-cdk-signature-changes.d.ts.map +1 -0
  7. package/dist/libraries/cdk/find-cdk-signature-changes.js +323 -0
  8. package/dist/libraries/cdk/find-cdk-signature-changes.js.map +1 -0
  9. package/dist/libraries/cdk/find-removed-cdk-apis.d.ts +32 -0
  10. package/dist/libraries/cdk/find-removed-cdk-apis.d.ts.map +1 -0
  11. package/dist/libraries/cdk/find-removed-cdk-apis.js +75 -0
  12. package/dist/libraries/cdk/find-removed-cdk-apis.js.map +1 -0
  13. package/dist/libraries/cdk/migrate-cdk-sass-imports.d.ts +17 -0
  14. package/dist/libraries/cdk/migrate-cdk-sass-imports.d.ts.map +1 -0
  15. package/dist/libraries/cdk/migrate-cdk-sass-imports.js +177 -0
  16. package/dist/libraries/cdk/migrate-cdk-sass-imports.js.map +1 -0
  17. package/dist/libraries/cdk/migrate-cdk-stepper.d.ts +8 -0
  18. package/dist/libraries/cdk/migrate-cdk-stepper.d.ts.map +1 -0
  19. package/dist/libraries/cdk/migrate-cdk-stepper.js +92 -0
  20. package/dist/libraries/cdk/migrate-cdk-stepper.js.map +1 -0
  21. package/dist/libraries/cdk/migrate-deprecated-overlay-sass.d.ts +9 -0
  22. package/dist/libraries/cdk/migrate-deprecated-overlay-sass.d.ts.map +1 -0
  23. package/dist/libraries/cdk/migrate-deprecated-overlay-sass.js +57 -0
  24. package/dist/libraries/cdk/migrate-deprecated-overlay-sass.js.map +1 -0
  25. package/dist/libraries/cdk/migrate-drag-drop-registry.d.ts +8 -0
  26. package/dist/libraries/cdk/migrate-drag-drop-registry.d.ts.map +1 -0
  27. package/dist/libraries/cdk/migrate-drag-drop-registry.js +118 -0
  28. package/dist/libraries/cdk/migrate-drag-drop-registry.js.map +1 -0
  29. package/dist/libraries/cdk/migrate-focus-trap-factory-create.d.ts +8 -0
  30. package/dist/libraries/cdk/migrate-focus-trap-factory-create.d.ts.map +1 -0
  31. package/dist/libraries/cdk/migrate-focus-trap-factory-create.js +74 -0
  32. package/dist/libraries/cdk/migrate-focus-trap-factory-create.js.map +1 -0
  33. package/dist/libraries/cdk/remove-cdk-super-arguments.d.ts +8 -0
  34. package/dist/libraries/cdk/remove-cdk-super-arguments.d.ts.map +1 -0
  35. package/dist/libraries/cdk/remove-cdk-super-arguments.js +111 -0
  36. package/dist/libraries/cdk/remove-cdk-super-arguments.js.map +1 -0
  37. package/dist/libraries/cdk/remove-portal-factory-resolver-arguments.d.ts +8 -0
  38. package/dist/libraries/cdk/remove-portal-factory-resolver-arguments.d.ts.map +1 -0
  39. package/dist/libraries/cdk/remove-portal-factory-resolver-arguments.js +108 -0
  40. package/dist/libraries/cdk/remove-portal-factory-resolver-arguments.js.map +1 -0
  41. package/dist/libraries/cdk/remove-tilde-from-stylesheet-imports.d.ts +8 -0
  42. package/dist/libraries/cdk/remove-tilde-from-stylesheet-imports.d.ts.map +1 -0
  43. package/dist/libraries/cdk/remove-tilde-from-stylesheet-imports.js +27 -0
  44. package/dist/libraries/cdk/remove-tilde-from-stylesheet-imports.js.map +1 -0
  45. package/dist/libraries/cdk/rename-portal-template-selectors.d.ts +27 -0
  46. package/dist/libraries/cdk/rename-portal-template-selectors.d.ts.map +1 -0
  47. package/dist/libraries/cdk/rename-portal-template-selectors.js +75 -0
  48. package/dist/libraries/cdk/rename-portal-template-selectors.js.map +1 -0
  49. package/dist/libraries/cdk/upgrade-to-cdk.d.ts +38 -0
  50. package/dist/libraries/cdk/upgrade-to-cdk.d.ts.map +1 -0
  51. package/dist/libraries/cdk/upgrade-to-cdk.js +173 -0
  52. package/dist/libraries/cdk/upgrade-to-cdk.js.map +1 -0
  53. package/dist/libraries/components/lst.d.ts +9 -0
  54. package/dist/libraries/components/lst.d.ts.map +1 -0
  55. package/dist/libraries/components/lst.js +37 -0
  56. package/dist/libraries/components/lst.js.map +1 -0
  57. package/dist/libraries/components/stylesheets.d.ts +13 -0
  58. package/dist/libraries/components/stylesheets.d.ts.map +1 -0
  59. package/dist/libraries/components/stylesheets.js +71 -0
  60. package/dist/libraries/components/stylesheets.js.map +1 -0
  61. package/dist/libraries/components/symbols.d.ts +27 -0
  62. package/dist/libraries/components/symbols.d.ts.map +1 -0
  63. package/dist/libraries/components/symbols.js +120 -0
  64. package/dist/libraries/components/symbols.js.map +1 -0
  65. package/dist/libraries/components/templates.d.ts +24 -0
  66. package/dist/libraries/components/templates.d.ts.map +1 -0
  67. package/dist/libraries/components/templates.js +141 -0
  68. package/dist/libraries/components/templates.js.map +1 -0
  69. package/dist/libraries/primeng/18/mark-deprecated-components.d.ts.map +1 -1
  70. package/dist/libraries/primeng/18/mark-deprecated-components.js +9 -5
  71. package/dist/libraries/primeng/18/mark-deprecated-components.js.map +1 -1
  72. package/dist/migration/add-trust-proxy-headers.d.ts.map +1 -1
  73. package/dist/migration/add-trust-proxy-headers.js +2 -1
  74. package/dist/migration/add-trust-proxy-headers.js.map +1 -1
  75. package/dist/migration/replace-initial-navigation.d.ts.map +1 -1
  76. package/dist/migration/replace-initial-navigation.js +2 -2
  77. package/dist/migration/replace-initial-navigation.js.map +1 -1
  78. package/dist/migration/update-component-template-url.js +1 -1
  79. package/dist/migration/update-component-template-url.js.map +1 -1
  80. package/dist/migration/upgrade-to-angular-13.d.ts.map +1 -1
  81. package/dist/migration/upgrade-to-angular-13.js +2 -0
  82. package/dist/migration/upgrade-to-angular-13.js.map +1 -1
  83. package/dist/migration/upgrade-to-angular-14.d.ts.map +1 -1
  84. package/dist/migration/upgrade-to-angular-14.js +2 -0
  85. package/dist/migration/upgrade-to-angular-14.js.map +1 -1
  86. package/dist/migration/upgrade-to-angular-17.d.ts.map +1 -1
  87. package/dist/migration/upgrade-to-angular-17.js +2 -0
  88. package/dist/migration/upgrade-to-angular-17.js.map +1 -1
  89. package/dist/migration/upgrade-to-angular-20.d.ts.map +1 -1
  90. package/dist/migration/upgrade-to-angular-20.js +2 -0
  91. package/dist/migration/upgrade-to-angular-20.js.map +1 -1
  92. package/dist/migration/upgrade-to-angular-21.d.ts.map +1 -1
  93. package/dist/migration/upgrade-to-angular-21.js +2 -0
  94. package/dist/migration/upgrade-to-angular-21.js.map +1 -1
  95. package/dist/migration/upgrade-to-angular-22.d.ts.map +1 -1
  96. package/dist/migration/upgrade-to-angular-22.js +2 -0
  97. package/dist/migration/upgrade-to-angular-22.js.map +1 -1
  98. package/package.json +2 -2
  99. package/src/index.ts +97 -0
  100. package/src/libraries/cdk/find-cdk-signature-changes.ts +209 -0
  101. package/src/libraries/cdk/find-removed-cdk-apis.ts +76 -0
  102. package/src/libraries/cdk/migrate-cdk-sass-imports.ts +174 -0
  103. package/src/libraries/cdk/migrate-cdk-stepper.ts +58 -0
  104. package/src/libraries/cdk/migrate-deprecated-overlay-sass.ts +56 -0
  105. package/src/libraries/cdk/migrate-drag-drop-registry.ts +79 -0
  106. package/src/libraries/cdk/migrate-focus-trap-factory-create.ts +51 -0
  107. package/src/libraries/cdk/remove-cdk-super-arguments.ts +83 -0
  108. package/src/libraries/cdk/remove-portal-factory-resolver-arguments.ts +88 -0
  109. package/src/libraries/cdk/remove-tilde-from-stylesheet-imports.ts +22 -0
  110. package/src/libraries/cdk/rename-portal-template-selectors.ts +51 -0
  111. package/src/libraries/cdk/upgrade-to-cdk.ts +146 -0
  112. package/src/libraries/components/lst.ts +33 -0
  113. package/src/libraries/components/stylesheets.ts +55 -0
  114. package/src/libraries/components/symbols.ts +116 -0
  115. package/src/libraries/components/templates.ts +126 -0
  116. package/src/libraries/primeng/18/mark-deprecated-components.ts +8 -4
  117. package/src/migration/add-trust-proxy-headers.ts +2 -1
  118. package/src/migration/replace-initial-navigation.ts +3 -1
  119. package/src/migration/update-component-template-url.ts +1 -1
  120. package/src/migration/upgrade-to-angular-13.ts +2 -0
  121. package/src/migration/upgrade-to-angular-14.ts +2 -0
  122. package/src/migration/upgrade-to-angular-17.ts +2 -0
  123. package/src/migration/upgrade-to-angular-20.ts +2 -0
  124. package/src/migration/upgrade-to-angular-21.ts +2 -0
  125. package/src/migration/upgrade-to-angular-22.ts +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-cdk-super-arguments.d.ts","sourceRoot":"","sources":["../../../src/libraries/cdk/remove-cdk-super-arguments.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAiD3E,qBAAa,uBAAwB,SAAQ,MAAM;IAC/C,QAAQ,CAAC,IAAI,yDAAyD;IACtE,QAAQ,CAAC,WAAW,yDAAyD;IAC7E,QAAQ,CAAC,WAAW,SAEoF;IAElG,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAoB9D"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2026 the original author or authors.
4
+ *
5
+ * Moderne Proprietary. Only for use by Moderne customers under the terms of a commercial contract.
6
+ */
7
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
+ return new (P || (P = Promise))(function (resolve, reject) {
10
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
14
+ });
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.RemoveCdkSuperArguments = void 0;
18
+ const rewrite_1 = require("@openrewrite/rewrite");
19
+ const javascript_1 = require("@openrewrite/rewrite/javascript");
20
+ const java_1 = require("@openrewrite/rewrite/java");
21
+ const symbols_1 = require("../components/symbols");
22
+ const lst_1 = require("../components/lst");
23
+ const find_cdk_signature_changes_1 = require("./find-cdk-signature-changes");
24
+ /** Classes whose constructor was `constructor(...args: unknown[])` in CDK 21 and takes no arguments in CDK 22. */
25
+ const ZERO_ARGUMENT_CONSTRUCTORS = {
26
+ '@angular/cdk/a11y': [
27
+ 'AriaDescriber', 'CdkAriaLive', 'CdkMonitorFocus', 'CdkTrapFocus', 'ConfigurableFocusTrapFactory',
28
+ 'FocusMonitor', 'FocusTrapFactory', 'HighContrastModeDetector', 'InputModalityDetector',
29
+ 'InteractivityChecker', 'LiveAnnouncer'
30
+ ],
31
+ '@angular/cdk/accordion': ['CdkAccordionItem'],
32
+ '@angular/cdk/bidi': ['Directionality'],
33
+ '@angular/cdk/clipboard': ['CdkCopyToClipboard', 'Clipboard'],
34
+ '@angular/cdk/dialog': ['CdkDialogContainer', 'Dialog'],
35
+ '@angular/cdk/drag-drop': [
36
+ 'CdkDrag', 'CdkDragHandle', 'CdkDragPlaceholder', 'CdkDragPreview', 'CdkDropList', 'DragDrop',
37
+ 'DragDropRegistry'
38
+ ],
39
+ '@angular/cdk/layout': ['BreakpointObserver', 'MediaMatcher'],
40
+ '@angular/cdk/observers': ['CdkObserveContent', 'ContentObserver'],
41
+ '@angular/cdk/overlay': [
42
+ 'CdkConnectedOverlay', 'CdkOverlayOrigin', 'CdkScrollable', 'FullscreenOverlayContainer', 'Overlay',
43
+ 'OverlayContainer', 'OverlayPositionBuilder', 'ScrollDispatcher', 'ScrollStrategyOptions', 'ViewportRuler'
44
+ ],
45
+ '@angular/cdk/portal': ['CdkPortal', 'CdkPortalOutlet'],
46
+ '@angular/cdk/scrolling': [
47
+ 'CdkScrollable', 'CdkVirtualForOf', 'CdkVirtualScrollViewport', 'CdkVirtualScrollable',
48
+ 'CdkVirtualScrollableElement', 'CdkVirtualScrollableWindow', 'ScrollDispatcher', 'ViewportRuler'
49
+ ],
50
+ '@angular/cdk/stepper': [
51
+ 'CdkStep', 'CdkStepHeader', 'CdkStepLabel', 'CdkStepper', 'CdkStepperNext', 'CdkStepperPrevious'
52
+ ],
53
+ '@angular/cdk/table': [
54
+ 'BaseRowDef', 'CdkCell', 'CdkCellDef', 'CdkCellOutlet', 'CdkColumnDef', 'CdkFooterCell',
55
+ 'CdkFooterCellDef', 'CdkFooterRowDef', 'CdkHeaderCell', 'CdkHeaderCellDef', 'CdkHeaderRowDef',
56
+ 'CdkNoDataRow', 'CdkRowDef', 'CdkTable', 'CdkTextColumn', 'DataRowOutlet', 'FooterRowOutlet',
57
+ 'HeaderRowOutlet', 'NoDataRowOutlet'
58
+ ],
59
+ '@angular/cdk/text-field': ['AutofillMonitor', 'CdkAutofill', 'CdkTextareaAutosize'],
60
+ '@angular/cdk/tree': [
61
+ 'CdkNestedTreeNode', 'CdkTree', 'CdkTreeNode', 'CdkTreeNodeDef', 'CdkTreeNodeOutlet', 'CdkTreeNodePadding',
62
+ 'CdkTreeNodeToggle'
63
+ ],
64
+ };
65
+ class RemoveCdkSuperArguments extends rewrite_1.Recipe {
66
+ constructor() {
67
+ super(...arguments);
68
+ this.name = "org.openrewrite.angular.cdk.RemoveCdkSuperArguments";
69
+ this.displayName = "Remove the `super(...)` arguments of CDK subclasses";
70
+ this.description = "CDK 22 removed the `constructor(...args: unknown[])` that kept old `super(...)` calls compiling " +
71
+ "after the CDK classes moved to `inject()`. Removes the arguments of `super(...)` in classes that extend one of " +
72
+ "those classes, such as `CdkStepper`, `CdkTable` or `Overlay`, since the CDK already ignored them.";
73
+ }
74
+ editor() {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ return new class extends javascript_1.JavaScriptVisitor {
77
+ constructor() {
78
+ super(...arguments);
79
+ this.cdkClasses = new Set();
80
+ }
81
+ visitJsCompilationUnit(cu, p) {
82
+ const _super = Object.create(null, {
83
+ visitJsCompilationUnit: { get: () => super.visitJsCompilationUnit }
84
+ });
85
+ return __awaiter(this, void 0, void 0, function* () {
86
+ this.cdkClasses = new Set(Object.entries(ZERO_ARGUMENT_CONSTRUCTORS)
87
+ .flatMap(([module, classes]) => [...(0, symbols_1.importedNames)(cu, module, classes).keys()]));
88
+ return this.cdkClasses.size === 0 ? cu : _super.visitJsCompilationUnit.call(this, cu, p);
89
+ });
90
+ }
91
+ visitFunctionCall(functionCall, p) {
92
+ const _super = Object.create(null, {
93
+ visitFunctionCall: { get: () => super.visitFunctionCall }
94
+ });
95
+ return __awaiter(this, void 0, void 0, function* () {
96
+ const call = yield _super.visitFunctionCall.call(this, functionCall, p);
97
+ if (!(0, lst_1.isSuperCall)(call) || (0, find_cdk_signature_changes_1.argumentCount)(call.arguments) === 0)
98
+ return call;
99
+ const classDecl = this.cursor.firstEnclosing((t) => (t === null || t === void 0 ? void 0 : t.kind) === java_1.J.Kind.ClassDeclaration);
100
+ const extended = classDecl && (0, lst_1.extendedClassName)(classDecl);
101
+ if (!extended || !this.cdkClasses.has(extended))
102
+ return call;
103
+ return Object.assign(Object.assign({}, call), { arguments: (0, lst_1.emptyArguments)(call.arguments) });
104
+ });
105
+ }
106
+ }();
107
+ });
108
+ }
109
+ }
110
+ exports.RemoveCdkSuperArguments = RemoveCdkSuperArguments;
111
+ //# sourceMappingURL=remove-cdk-super-arguments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-cdk-super-arguments.js","sourceRoot":"","sources":["../../../src/libraries/cdk/remove-cdk-super-arguments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ export declare class RemovePortalFactoryResolverArguments extends Recipe {
3
+ readonly name = "org.openrewrite.angular.cdk.RemovePortalFactoryResolverArguments";
4
+ readonly displayName = "Remove the `ComponentFactoryResolver` argument of CDK portals";
5
+ readonly description: string;
6
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
7
+ }
8
+ //# sourceMappingURL=remove-portal-factory-resolver-arguments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-portal-factory-resolver-arguments.d.ts","sourceRoot":"","sources":["../../../src/libraries/cdk/remove-portal-factory-resolver-arguments.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAuB3E,qBAAa,oCAAqC,SAAQ,MAAM;IAC5D,QAAQ,CAAC,IAAI,sEAAsE;IACnF,QAAQ,CAAC,WAAW,mEAAmE;IACvF,QAAQ,CAAC,WAAW,SAI8C;IAE5D,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA8B9D"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2026 the original author or authors.
4
+ *
5
+ * Moderne Proprietary. Only for use by Moderne customers under the terms of a commercial contract.
6
+ */
7
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
+ return new (P || (P = Promise))(function (resolve, reject) {
10
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
14
+ });
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.RemovePortalFactoryResolverArguments = void 0;
18
+ const rewrite_1 = require("@openrewrite/rewrite");
19
+ const javascript_1 = require("@openrewrite/rewrite/javascript");
20
+ const java_1 = require("@openrewrite/rewrite/java");
21
+ const symbols_1 = require("../components/symbols");
22
+ const find_cdk_signature_changes_1 = require("./find-cdk-signature-changes");
23
+ const REMOVED_PARAMETERS = {
24
+ // (component, viewContainerRef, injector, componentFactoryResolver, projectableNodes)
25
+ ComponentPortal: { resolver: 3, newArity: 4 },
26
+ // (outletElement, componentFactoryResolver, appRef, defaultInjector, document)
27
+ DomPortalOutlet: { resolver: 1, trailing: 4, newArity: 3 },
28
+ DomPortalHost: { resolver: 1, trailing: 4, newArity: 3 },
29
+ };
30
+ class RemovePortalFactoryResolverArguments extends rewrite_1.Recipe {
31
+ constructor() {
32
+ super(...arguments);
33
+ this.name = "org.openrewrite.angular.cdk.RemovePortalFactoryResolverArguments";
34
+ this.displayName = "Remove the `ComponentFactoryResolver` argument of CDK portals";
35
+ this.description = "CDK 20 removed the deprecated `ComponentFactoryResolver` parameter of the `ComponentPortal` " +
36
+ "constructor and the `ComponentFactoryResolver` and `Document` parameters of the `DomPortalOutlet` constructor. " +
37
+ "Removes those arguments from `new ComponentPortal(...)` and `new DomPortalOutlet(...)` so the remaining ones " +
38
+ "line up with the new parameter lists. A call that also fits the new parameter list is only changed when the " +
39
+ "argument is typed or named as a `ComponentFactoryResolver`.";
40
+ }
41
+ editor() {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ return new class extends javascript_1.JavaScriptVisitor {
44
+ constructor() {
45
+ super(...arguments);
46
+ this.portalClasses = new Map();
47
+ }
48
+ visitJsCompilationUnit(cu, p) {
49
+ const _super = Object.create(null, {
50
+ visitJsCompilationUnit: { get: () => super.visitJsCompilationUnit }
51
+ });
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ this.portalClasses = (0, symbols_1.importedNames)(cu, '@angular/cdk/portal', Object.keys(REMOVED_PARAMETERS));
54
+ if (this.portalClasses.size === 0)
55
+ return cu;
56
+ return _super.visitJsCompilationUnit.call(this, cu, p);
57
+ });
58
+ }
59
+ visitNewClass(newClass, p) {
60
+ const _super = Object.create(null, {
61
+ visitNewClass: { get: () => super.visitNewClass }
62
+ });
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ var _a;
65
+ const n = yield _super.visitNewClass.call(this, newClass, p);
66
+ const clazz = n.class;
67
+ if (!clazz || !(0, java_1.isIdentifier)(clazz))
68
+ return n;
69
+ const portalClass = this.portalClasses.get(clazz.simpleName);
70
+ if (!portalClass)
71
+ return n;
72
+ const removed = REMOVED_PARAMETERS[portalClass];
73
+ let elements = n.arguments.elements;
74
+ const resolver = (_a = elements[removed.resolver]) === null || _a === void 0 ? void 0 : _a.element;
75
+ if (!resolver || ((0, find_cdk_signature_changes_1.argumentCount)(n.arguments) <= removed.newArity && !isResolver(resolver)))
76
+ return n;
77
+ if (removed.trailing !== undefined) {
78
+ elements = removeArgument(elements, removed.trailing);
79
+ }
80
+ elements = removeArgument(elements, removed.resolver);
81
+ return Object.assign(Object.assign({}, n), { arguments: Object.assign(Object.assign({}, n.arguments), { elements }) });
82
+ });
83
+ }
84
+ }();
85
+ });
86
+ }
87
+ }
88
+ exports.RemovePortalFactoryResolverArguments = RemovePortalFactoryResolverArguments;
89
+ function removeArgument(elements, index) {
90
+ if (index >= elements.length)
91
+ return elements;
92
+ const retained = elements.filter((_, i) => i !== index);
93
+ if (index === elements.length - 1) {
94
+ retained[retained.length - 1] = Object.assign(Object.assign({}, retained[retained.length - 1]), { after: elements[index].after });
95
+ }
96
+ return retained;
97
+ }
98
+ /** Whether an argument is typed as, or named like, a `ComponentFactoryResolver`. */
99
+ function isResolver(argument) {
100
+ const type = argument.type;
101
+ if (java_1.Type.isClass(type) && type.fullyQualifiedName.endsWith('ComponentFactoryResolver'))
102
+ return true;
103
+ const name = (0, java_1.isIdentifier)(argument) ? argument.simpleName
104
+ : argument.kind === java_1.J.Kind.FieldAccess ? argument.name.element.simpleName
105
+ : undefined;
106
+ return name !== undefined && /resolver/i.test(name);
107
+ }
108
+ //# sourceMappingURL=remove-portal-factory-resolver-arguments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-portal-factory-resolver-arguments.js","sourceRoot":"","sources":["../../../src/libraries/cdk/remove-portal-factory-resolver-arguments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { StylesheetRecipe } from "../components/stylesheets";
2
+ export declare class RemoveTildeFromStylesheetImports extends StylesheetRecipe {
3
+ readonly name = "org.openrewrite.angular.cdk.RemoveTildeFromStylesheetImports";
4
+ readonly displayName = "Remove `~` from `@angular` stylesheet imports";
5
+ readonly description: string;
6
+ protected migrate(content: string): string;
7
+ }
8
+ //# sourceMappingURL=remove-tilde-from-stylesheet-imports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-tilde-from-stylesheet-imports.d.ts","sourceRoot":"","sources":["../../../src/libraries/cdk/remove-tilde-from-stylesheet-imports.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAkB,MAAM,2BAA2B,CAAC;AAI5E,qBAAa,gCAAiC,SAAQ,gBAAgB;IAClE,QAAQ,CAAC,IAAI,kEAAkE;IAC/E,QAAQ,CAAC,WAAW,mDAAmD;IACvE,QAAQ,CAAC,WAAW,SAEsE;IAE1F,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAI7C"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2026 the original author or authors.
4
+ *
5
+ * Moderne Proprietary. Only for use by Moderne customers under the terms of a commercial contract.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.RemoveTildeFromStylesheetImports = void 0;
9
+ const stylesheets_1 = require("../components/stylesheets");
10
+ const TILDE_IMPORT = /(@(?:import|use|forward)\s+['"])~(@angular\/[^'"]*?)(?:\.scss)?(['"])/g;
11
+ class RemoveTildeFromStylesheetImports extends stylesheets_1.StylesheetRecipe {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.name = "org.openrewrite.angular.cdk.RemoveTildeFromStylesheetImports";
15
+ this.displayName = "Remove `~` from `@angular` stylesheet imports";
16
+ this.description = "Removes the webpack-specific `~` prefix and the `.scss` extension from `@import`, `@use` and " +
17
+ "`@forward` rules that load `@angular/cdk` or `@angular/material` stylesheets. The Angular 13 CLI deprecated " +
18
+ "tilde imports. This is the `ng update` tilde-import migration of `@angular/cdk` 13.";
19
+ }
20
+ migrate(content) {
21
+ if (!content.includes('~@angular/'))
22
+ return content;
23
+ return (0, stylesheets_1.withoutComments)(content, masked => masked.replace(TILDE_IMPORT, '$1$2$3'));
24
+ }
25
+ }
26
+ exports.RemoveTildeFromStylesheetImports = RemoveTildeFromStylesheetImports;
27
+ //# sourceMappingURL=remove-tilde-from-stylesheet-imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-tilde-from-stylesheet-imports.js","sourceRoot":"","sources":["../../../src/libraries/cdk/remove-tilde-from-stylesheet-imports.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,2DAA4E;AAE5E,MAAM,YAAY,GAAG,wEAAwE,CAAC;AAE9F,MAAa,gCAAiC,SAAQ,8BAAgB;IAAtE;;QACa,SAAI,GAAG,8DAA8D,CAAC;QACtE,gBAAW,GAAG,+CAA+C,CAAC;QAC9D,gBAAW,GAAG,+FAA+F;YAClH,8GAA8G;YAC9G,qFAAqF,CAAC;IAM9F,CAAC;IAJa,OAAO,CAAC,OAAe;QAC7B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,OAAO,CAAC;QACpD,OAAO,IAAA,6BAAe,EAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IACtF,CAAC;CACJ;AAXD,4EAWC"}
@@ -0,0 +1,27 @@
1
+ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ import { RenameTemplateAttributes } from "../components/templates";
3
+ export declare class RenamePortalTemplateSelectors extends RenameTemplateAttributes {
4
+ readonly name = "org.openrewrite.angular.cdk.RenamePortalTemplateSelectors";
5
+ readonly displayName = "Rename the removed CDK portal directive selectors";
6
+ readonly description: string;
7
+ protected readonly attributes: ({
8
+ name: string;
9
+ newName: string;
10
+ element?: undefined;
11
+ } | {
12
+ name: string;
13
+ newName: string;
14
+ element: string;
15
+ })[];
16
+ protected readonly exportAs: {
17
+ name: string;
18
+ newName: string;
19
+ }[];
20
+ }
21
+ export declare class FindUnprefixedPortalSelectors extends Recipe {
22
+ readonly name = "org.openrewrite.angular.cdk.FindUnprefixedPortalSelectors";
23
+ readonly displayName = "Find the removed unprefixed CDK portal selectors";
24
+ readonly description: string;
25
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
26
+ }
27
+ //# sourceMappingURL=rename-portal-template-selectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rename-portal-template-selectors.d.ts","sourceRoot":"","sources":["../../../src/libraries/cdk/rename-portal-template-selectors.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAqB,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAE9F,OAAO,EAAC,wBAAwB,EAA2B,MAAM,yBAAyB,CAAC;AAE3F,qBAAa,6BAA8B,SAAQ,wBAAwB;IACvE,QAAQ,CAAC,IAAI,+DAA+D;IAC5E,QAAQ,CAAC,WAAW,uDAAuD;IAC3E,QAAQ,CAAC,WAAW,SAGkE;IAEtF,SAAS,CAAC,QAAQ,CAAC,UAAU;;;;;;;;SAG3B;IACF,SAAS,CAAC,QAAQ,CAAC,QAAQ;;;QAEzB;CACL;AAOD,qBAAa,6BAA8B,SAAQ,MAAM;IACrD,QAAQ,CAAC,IAAI,+DAA+D;IAC5E,QAAQ,CAAC,WAAW,sDAAsD;IAC1E,QAAQ,CAAC,WAAW,SAE+F;IAE7G,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAW9D"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2026 the original author or authors.
4
+ *
5
+ * Moderne Proprietary. Only for use by Moderne customers under the terms of a commercial contract.
6
+ */
7
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
+ return new (P || (P = Promise))(function (resolve, reject) {
10
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
14
+ });
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.FindUnprefixedPortalSelectors = exports.RenamePortalTemplateSelectors = void 0;
18
+ const rewrite_1 = require("@openrewrite/rewrite");
19
+ const text_1 = require("@openrewrite/rewrite/text");
20
+ const templates_1 = require("../components/templates");
21
+ class RenamePortalTemplateSelectors extends templates_1.RenameTemplateAttributes {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.name = "org.openrewrite.angular.cdk.RenamePortalTemplateSelectors";
25
+ this.displayName = "Rename the removed CDK portal directive selectors";
26
+ this.description = "CDK 21 removed `PortalHostDirective` and `TemplatePortalDirective`. Renames the selectors " +
27
+ "only they matched to those of `CdkPortalOutlet` and `CdkPortal`: `[cdkPortalHost]` becomes `[cdkPortalOutlet]`, " +
28
+ "a `#ref=\"cdkPortalHost\"` reference becomes `#ref=\"cdkPortalOutlet\"`, and `<ng-template cdk-portal>` becomes " +
29
+ "`<ng-template cdkPortal>`, in `.html` templates and inline `template` metadata.";
30
+ this.attributes = [
31
+ { name: 'cdkPortalHost', newName: 'cdkPortalOutlet' },
32
+ { name: 'cdk-portal', newName: 'cdkPortal', element: 'ng-template' },
33
+ ];
34
+ this.exportAs = [
35
+ { name: 'cdkPortalHost', newName: 'cdkPortalOutlet' },
36
+ ];
37
+ }
38
+ }
39
+ exports.RenamePortalTemplateSelectors = RenamePortalTemplateSelectors;
40
+ const UNPREFIXED_SELECTORS = [
41
+ { name: 'portal', newName: 'cdkPortal', element: 'ng-template' },
42
+ { name: 'portalHost', newName: 'cdkPortalOutlet' },
43
+ ];
44
+ class FindUnprefixedPortalSelectors extends rewrite_1.Recipe {
45
+ constructor() {
46
+ super(...arguments);
47
+ this.name = "org.openrewrite.angular.cdk.FindUnprefixedPortalSelectors";
48
+ this.displayName = "Find the removed unprefixed CDK portal selectors";
49
+ this.description = "Finds `.html` templates that use the `portal` or `portalHost` attribute, which only the " +
50
+ "`TemplatePortalDirective` and `PortalHostDirective` that CDK 21 removed matched. These names are too generic to " +
51
+ "rename blindly, so confirm they are the CDK directives and rename them to `cdkPortal` and `cdkPortalOutlet`.";
52
+ }
53
+ editor() {
54
+ return __awaiter(this, void 0, void 0, function* () {
55
+ return new class extends text_1.PlainTextVisitor {
56
+ visitText(text, p) {
57
+ const _super = Object.create(null, {
58
+ visitText: { get: () => super.visitText }
59
+ });
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ const t = yield _super.visitText.call(this, text, p);
62
+ if (!t || !t.sourcePath.endsWith('.html'))
63
+ return t;
64
+ if ((0, templates_1.renameTemplateAttributes)(t.text, UNPREFIXED_SELECTORS) === t.text)
65
+ return t;
66
+ return (0, rewrite_1.foundSearchResult)(t, "`portal` and `portalHost` stopped matching a CDK directive in " +
67
+ "@angular/cdk 21. If they refer to the CDK portal directives, rename them to `cdkPortal` and `cdkPortalOutlet`.");
68
+ });
69
+ }
70
+ }();
71
+ });
72
+ }
73
+ }
74
+ exports.FindUnprefixedPortalSelectors = FindUnprefixedPortalSelectors;
75
+ //# sourceMappingURL=rename-portal-template-selectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rename-portal-template-selectors.js","sourceRoot":"","sources":["../../../src/libraries/cdk/rename-portal-template-selectors.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA8F;AAC9F,oDAAsE;AACtE,uDAA2F;AAE3F,MAAa,6BAA8B,SAAQ,oCAAwB;IAA3E;;QACa,SAAI,GAAG,2DAA2D,CAAC;QACnE,gBAAW,GAAG,mDAAmD,CAAC;QAClE,gBAAW,GAAG,4FAA4F;YAC/G,kHAAkH;YAClH,kHAAkH;YAClH,iFAAiF,CAAC;QAEnE,eAAU,GAAG;YAC5B,EAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,iBAAiB,EAAC;YACnD,EAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAC;SACrE,CAAC;QACiB,aAAQ,GAAG;YAC1B,EAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,iBAAiB,EAAC;SACtD,CAAC;IACN,CAAC;CAAA;AAfD,sEAeC;AAED,MAAM,oBAAoB,GAAG;IACzB,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAC;IAC9D,EAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAC;CACnD,CAAC;AAEF,MAAa,6BAA8B,SAAQ,gBAAM;IAAzD;;QACa,SAAI,GAAG,2DAA2D,CAAC;QACnE,gBAAW,GAAG,kDAAkD,CAAC;QACjE,gBAAW,GAAG,0FAA0F;YAC7G,kHAAkH;YAClH,8GAA8G,CAAC;IAavH,CAAC;IAXS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,uBAAkC;gBACxC,SAAS,CAAC,IAAe,EAAE,CAAmB;;;;;wBACzD,MAAM,CAAC,GAAG,MAAM,OAAM,SAAS,YAAC,IAAI,EAAE,CAAC,CAAc,CAAC;wBACtD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;4BAAE,OAAO,CAAC,CAAC;wBACpD,IAAI,IAAA,oCAAwB,EAAC,CAAC,CAAC,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,IAAI;4BAAE,OAAO,CAAC,CAAC;wBAChF,OAAO,IAAA,2BAAiB,EAAC,CAAC,EAAE,gEAAgE;4BACxF,gHAAgH,CAAC,CAAC;oBAC1H,CAAC;iBAAA;aACJ,EAAE,CAAC;QACR,CAAC;KAAA;CACJ;AAlBD,sEAkBC"}
@@ -0,0 +1,38 @@
1
+ import { Recipe } from "@openrewrite/rewrite";
2
+ export declare class UpgradeToCdk13CodeChanges extends Recipe {
3
+ readonly name = "org.openrewrite.angular.cdk.UpgradeToCdk13CodeChanges";
4
+ readonly displayName = "Angular CDK 13 code changes";
5
+ readonly description: string;
6
+ recipeList(): Promise<Recipe[]>;
7
+ }
8
+ export declare class UpgradeToCdk14CodeChanges extends Recipe {
9
+ readonly name = "org.openrewrite.angular.cdk.UpgradeToCdk14CodeChanges";
10
+ readonly displayName = "Angular CDK 14 code changes";
11
+ readonly description: string;
12
+ recipeList(): Promise<Recipe[]>;
13
+ }
14
+ export declare class UpgradeToCdk17CodeChanges extends Recipe {
15
+ readonly name = "org.openrewrite.angular.cdk.UpgradeToCdk17CodeChanges";
16
+ readonly displayName = "Angular CDK 17 code changes";
17
+ readonly description: string;
18
+ recipeList(): Promise<Recipe[]>;
19
+ }
20
+ export declare class UpgradeToCdk20CodeChanges extends Recipe {
21
+ readonly name = "org.openrewrite.angular.cdk.UpgradeToCdk20CodeChanges";
22
+ readonly displayName = "Angular CDK 20 code changes";
23
+ readonly description: string;
24
+ recipeList(): Promise<Recipe[]>;
25
+ }
26
+ export declare class UpgradeToCdk21CodeChanges extends Recipe {
27
+ readonly name = "org.openrewrite.angular.cdk.UpgradeToCdk21CodeChanges";
28
+ readonly displayName = "Angular CDK 21 code changes";
29
+ readonly description: string;
30
+ recipeList(): Promise<Recipe[]>;
31
+ }
32
+ export declare class UpgradeToCdk22CodeChanges extends Recipe {
33
+ readonly name = "org.openrewrite.angular.cdk.UpgradeToCdk22CodeChanges";
34
+ readonly displayName = "Angular CDK 22 code changes";
35
+ readonly description: string;
36
+ recipeList(): Promise<Recipe[]>;
37
+ }
38
+ //# sourceMappingURL=upgrade-to-cdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-to-cdk.d.ts","sourceRoot":"","sources":["../../../src/libraries/cdk/upgrade-to-cdk.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAwB5C,qBAAa,yBAA0B,SAAQ,MAAM;IACjD,QAAQ,CAAC,IAAI,2DAA2D;IACxE,QAAQ,CAAC,WAAW,iCAAiC;IACrD,QAAQ,CAAC,WAAW,SAE8D;IAE5E,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAUxC;AAED,qBAAa,yBAA0B,SAAQ,MAAM;IACjD,QAAQ,CAAC,IAAI,2DAA2D;IACxE,QAAQ,CAAC,WAAW,iCAAiC;IACrD,QAAQ,CAAC,WAAW,SAEoF;IAElG,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAMxC;AAED,qBAAa,yBAA0B,SAAQ,MAAM;IACjD,QAAQ,CAAC,IAAI,2DAA2D;IACxE,QAAQ,CAAC,WAAW,iCAAiC;IACrD,QAAQ,CAAC,WAAW,SAC0F;IAExG,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAGxC;AAED,qBAAa,yBAA0B,SAAQ,MAAM;IACjD,QAAQ,CAAC,IAAI,2DAA2D;IACxE,QAAQ,CAAC,WAAW,iCAAiC;IACrD,QAAQ,CAAC,WAAW,SAI6B;IAE3C,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAexC;AAED,qBAAa,yBAA0B,SAAQ,MAAM;IACjD,QAAQ,CAAC,IAAI,2DAA2D;IACxE,QAAQ,CAAC,WAAW,iCAAiC;IACrD,QAAQ,CAAC,WAAW,SAG6B;IAE3C,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAaxC;AAED,qBAAa,yBAA0B,SAAQ,MAAM;IACjD,QAAQ,CAAC,IAAI,2DAA2D;IACxE,QAAQ,CAAC,WAAW,iCAAiC;IACrD,QAAQ,CAAC,WAAW,SAI6B;IAE3C,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAYxC"}
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2026 the original author or authors.
4
+ *
5
+ * Moderne Proprietary. Only for use by Moderne customers under the terms of a commercial contract.
6
+ */
7
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
+ return new (P || (P = Promise))(function (resolve, reject) {
10
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
14
+ });
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.UpgradeToCdk22CodeChanges = exports.UpgradeToCdk21CodeChanges = exports.UpgradeToCdk20CodeChanges = exports.UpgradeToCdk17CodeChanges = exports.UpgradeToCdk14CodeChanges = exports.UpgradeToCdk13CodeChanges = void 0;
18
+ const rewrite_1 = require("@openrewrite/rewrite");
19
+ const symbols_1 = require("../components/symbols");
20
+ const remove_tilde_from_stylesheet_imports_1 = require("./remove-tilde-from-stylesheet-imports");
21
+ const find_removed_cdk_apis_1 = require("./find-removed-cdk-apis");
22
+ const find_cdk_signature_changes_1 = require("./find-cdk-signature-changes");
23
+ const migrate_cdk_sass_imports_1 = require("./migrate-cdk-sass-imports");
24
+ const remove_portal_factory_resolver_arguments_1 = require("./remove-portal-factory-resolver-arguments");
25
+ const rename_portal_template_selectors_1 = require("./rename-portal-template-selectors");
26
+ const migrate_focus_trap_factory_create_1 = require("./migrate-focus-trap-factory-create");
27
+ const migrate_cdk_stepper_1 = require("./migrate-cdk-stepper");
28
+ const migrate_drag_drop_registry_1 = require("./migrate-drag-drop-registry");
29
+ const migrate_deprecated_overlay_sass_1 = require("./migrate-deprecated-overlay-sass");
30
+ const remove_cdk_super_arguments_1 = require("./remove-cdk-super-arguments");
31
+ // The `@angular/cdk` version bump is part of `UpgradeToAngularN`, which runs these composites as well.
32
+ class UpgradeToCdk13CodeChanges extends rewrite_1.Recipe {
33
+ constructor() {
34
+ super(...arguments);
35
+ this.name = "org.openrewrite.angular.cdk.UpgradeToCdk13CodeChanges";
36
+ this.displayName = "Angular CDK 13 code changes";
37
+ this.description = "The `@angular/cdk` source changes of the version 13 migration: renames " +
38
+ "`CKD_COPY_TO_CLIPBOARD_CONFIG`, removes `~` from `@angular` stylesheet imports, and finds the removed " +
39
+ "`ConnectedPositionStrategy` API. `UpgradeToAngular13` includes this recipe.";
40
+ }
41
+ recipeList() {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ return [
44
+ ...(0, symbols_1.renameSymbols)([
45
+ { module: '@angular/cdk/clipboard', name: 'CKD_COPY_TO_CLIPBOARD_CONFIG', newName: 'CDK_COPY_TO_CLIPBOARD_CONFIG' },
46
+ ]),
47
+ new remove_tilde_from_stylesheet_imports_1.RemoveTildeFromStylesheetImports(),
48
+ new find_removed_cdk_apis_1.FindRemovedCdk13Apis(),
49
+ new find_cdk_signature_changes_1.FindOverlayConnectedTo(),
50
+ ];
51
+ });
52
+ }
53
+ }
54
+ exports.UpgradeToCdk13CodeChanges = UpgradeToCdk13CodeChanges;
55
+ class UpgradeToCdk14CodeChanges extends rewrite_1.Recipe {
56
+ constructor() {
57
+ super(...arguments);
58
+ this.name = "org.openrewrite.angular.cdk.UpgradeToCdk14CodeChanges";
59
+ this.displayName = "Angular CDK 14 code changes";
60
+ this.description = "The `@angular/cdk` source changes of the version 14 migration: migrates `CdkStepper` " +
61
+ "subclasses off the private `_orientation` and the removed `_document` parameter, and finds imports from the " +
62
+ "removed `@angular/cdk/testing/protractor` entry point. `UpgradeToAngular14` includes this recipe.";
63
+ }
64
+ recipeList() {
65
+ return __awaiter(this, void 0, void 0, function* () {
66
+ return [
67
+ new migrate_cdk_stepper_1.MigrateCdkStepper(),
68
+ new find_removed_cdk_apis_1.FindRemovedCdk14Apis(),
69
+ ];
70
+ });
71
+ }
72
+ }
73
+ exports.UpgradeToCdk14CodeChanges = UpgradeToCdk14CodeChanges;
74
+ class UpgradeToCdk17CodeChanges extends rewrite_1.Recipe {
75
+ constructor() {
76
+ super(...arguments);
77
+ this.name = "org.openrewrite.angular.cdk.UpgradeToCdk17CodeChanges";
78
+ this.displayName = "Angular CDK 17 code changes";
79
+ this.description = "The `@angular/cdk` source changes of the version 17 migration: replaces the Sass `@import` " +
80
+ "entry points that CDK 17 deleted with `@use '@angular/cdk'`. `UpgradeToAngular17` includes this recipe.";
81
+ }
82
+ recipeList() {
83
+ return __awaiter(this, void 0, void 0, function* () {
84
+ return [new migrate_cdk_sass_imports_1.MigrateCdkSassImports()];
85
+ });
86
+ }
87
+ }
88
+ exports.UpgradeToCdk17CodeChanges = UpgradeToCdk17CodeChanges;
89
+ class UpgradeToCdk20CodeChanges extends rewrite_1.Recipe {
90
+ constructor() {
91
+ super(...arguments);
92
+ this.name = "org.openrewrite.angular.cdk.UpgradeToCdk20CodeChanges";
93
+ this.displayName = "Angular CDK 20 code changes";
94
+ this.description = "The `@angular/cdk` source changes of the version 20 migration: renames the removed " +
95
+ "`*PortalHost` aliases to their `*PortalOutlet` classes, drops the `ComponentFactoryResolver` arguments of the " +
96
+ "portal constructors, migrates `DragDropRegistry` off its type arguments and `scroll` subject, and finds the " +
97
+ "removed dialog, portal and table APIs and the `SelectionModel` overrides that still return `void`. " +
98
+ "`UpgradeToAngular20` includes this recipe.";
99
+ }
100
+ recipeList() {
101
+ return __awaiter(this, void 0, void 0, function* () {
102
+ return [
103
+ ...(0, symbols_1.renameSymbols)([
104
+ { module: '@angular/cdk/portal', name: 'BasePortalHost', newName: 'BasePortalOutlet' },
105
+ { module: '@angular/cdk/portal', name: 'DomPortalHost', newName: 'DomPortalOutlet' },
106
+ { module: '@angular/cdk/portal', name: 'PortalHost', newName: 'PortalOutlet' },
107
+ ]),
108
+ new remove_portal_factory_resolver_arguments_1.RemovePortalFactoryResolverArguments(),
109
+ new migrate_drag_drop_registry_1.MigrateDragDropRegistry(),
110
+ new find_removed_cdk_apis_1.FindRemovedCdk20Apis(),
111
+ new find_cdk_signature_changes_1.FindDialogComponentFactoryResolver(),
112
+ new find_cdk_signature_changes_1.FindComponentPortalFactoryResolver(),
113
+ new find_cdk_signature_changes_1.FindSelectionModelVoidOverrides(),
114
+ ];
115
+ });
116
+ }
117
+ }
118
+ exports.UpgradeToCdk20CodeChanges = UpgradeToCdk20CodeChanges;
119
+ class UpgradeToCdk21CodeChanges extends rewrite_1.Recipe {
120
+ constructor() {
121
+ super(...arguments);
122
+ this.name = "org.openrewrite.angular.cdk.UpgradeToCdk21CodeChanges";
123
+ this.displayName = "Angular CDK 21 code changes";
124
+ this.description = "The `@angular/cdk` source changes of the version 21 migration: replaces the removed " +
125
+ "`TemplatePortalDirective` and `PortalHostDirective` with `CdkPortal` and `CdkPortalOutlet` in code and " +
126
+ "templates, renames the removed overlay Sass variables, and finds the removed `@angular/cdk/a11y` factories and incomplete `TestElement` implementations. " +
127
+ "`UpgradeToAngular21` includes this recipe.";
128
+ }
129
+ recipeList() {
130
+ return __awaiter(this, void 0, void 0, function* () {
131
+ return [
132
+ ...(0, symbols_1.renameSymbols)([
133
+ { module: '@angular/cdk/portal', name: 'TemplatePortalDirective', newName: 'CdkPortal' },
134
+ { module: '@angular/cdk/portal', name: 'PortalHostDirective', newName: 'CdkPortalOutlet' },
135
+ ]),
136
+ new rename_portal_template_selectors_1.RenamePortalTemplateSelectors(),
137
+ new rename_portal_template_selectors_1.FindUnprefixedPortalSelectors(),
138
+ new migrate_deprecated_overlay_sass_1.MigrateDeprecatedOverlaySass(),
139
+ new find_removed_cdk_apis_1.FindRemovedCdk21Apis(),
140
+ new find_cdk_signature_changes_1.FindTestElementImplementations(),
141
+ ];
142
+ });
143
+ }
144
+ }
145
+ exports.UpgradeToCdk21CodeChanges = UpgradeToCdk21CodeChanges;
146
+ class UpgradeToCdk22CodeChanges extends rewrite_1.Recipe {
147
+ constructor() {
148
+ super(...arguments);
149
+ this.name = "org.openrewrite.angular.cdk.UpgradeToCdk22CodeChanges";
150
+ this.displayName = "Angular CDK 22 code changes";
151
+ this.description = "The `@angular/cdk` source changes of the version 22 migration: renames `ContextMenuTracker` " +
152
+ "to `MenuTracker`, removes the `super(...)` arguments that CDK constructors no longer accept, rewrites the boolean " +
153
+ "overload of `ConfigurableFocusTrapFactory.create`, and finds the removed " +
154
+ "`AriaDescriber` constants and the calls missing a now-required `Injector` or `event` argument. " +
155
+ "`UpgradeToAngular22` includes this recipe.";
156
+ }
157
+ recipeList() {
158
+ return __awaiter(this, void 0, void 0, function* () {
159
+ return [
160
+ ...(0, symbols_1.renameSymbols)([
161
+ { module: '@angular/cdk/menu', name: 'ContextMenuTracker', newName: 'MenuTracker' },
162
+ ]),
163
+ new remove_cdk_super_arguments_1.RemoveCdkSuperArguments(),
164
+ new migrate_focus_trap_factory_create_1.MigrateFocusTrapFactoryCreate(),
165
+ new find_removed_cdk_apis_1.FindRemovedCdk22Apis(),
166
+ new find_cdk_signature_changes_1.FindFocusTrapWithoutInjector(),
167
+ new find_cdk_signature_changes_1.FindDropListRefDropWithoutEvent(),
168
+ ];
169
+ });
170
+ }
171
+ }
172
+ exports.UpgradeToCdk22CodeChanges = UpgradeToCdk22CodeChanges;
173
+ //# sourceMappingURL=upgrade-to-cdk.js.map