Skip to content

Commit 284bdaa

Browse files
authored
refactor(material/schematics): support extra variables in themingApi migration (#22741)
Adding support for extra variables to handle some Google-internal variables that need to be migrated as well.
1 parent 94076af commit 284bdaa

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

src/material/schematics/ng-update/migrations/theming-api-v12/migration.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ interface DetectImportResult {
2626
interface ExtraSymbols {
2727
mixins?: Record<string, string>;
2828
functions?: Record<string, string>;
29+
variables?: Record<string, string>;
2930
}
3031

3132
/**
@@ -123,19 +124,20 @@ function migrateMaterialSymbols(content: string, importPath: string,
123124
extraMaterialSymbols: ExtraSymbols = {}): string {
124125
const initialContent = content;
125126
const namespace = 'mat';
126-
const mixinsToUpdate = {...materialMixins, ...extraMaterialSymbols.mixins};
127-
const functionsToUpdate = {...materialFunctions, ...extraMaterialSymbols.functions};
128127

129128
// Migrate the mixins.
129+
const mixinsToUpdate = {...materialMixins, ...extraMaterialSymbols.mixins};
130130
content = renameSymbols(content, mixinsToUpdate, detectedImports.namespaces, mixinKeyFormatter,
131131
getMixinValueFormatter(namespace));
132132

133133
// Migrate the functions.
134+
const functionsToUpdate = {...materialFunctions, ...extraMaterialSymbols.functions};
134135
content = renameSymbols(content, functionsToUpdate, detectedImports.namespaces,
135136
functionKeyFormatter, getFunctionValueFormatter(namespace));
136137

137138
// Migrate the variables.
138-
content = renameSymbols(content, materialVariables, detectedImports.namespaces,
139+
const variablesToUpdate = {...materialVariables, ...extraMaterialSymbols.variables};
140+
content = renameSymbols(content, variablesToUpdate, detectedImports.namespaces,
139141
variableKeyFormatter, getVariableValueFormatter(namespace));
140142

141143
if (content !== initialContent) {

src/material/schematics/ng-update/test-cases/v12/misc/theming-api-v12.spec.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -698,6 +698,7 @@ describe('v12 theming API migration', () => {
698698
`@import '~@angular/material/theming';`,
699699
`$something: mat-mdc-typography-config();`,
700700
`@include mat-mdc-button-theme();`,
701+
`$another: $mat-vermillion`
701702
].join('\n');
702703

703704
const migratedContent = migrateFileContent(
@@ -708,12 +709,14 @@ describe('v12 theming API migration', () => {
708709
'~@angular/cdk', {
709710
mixins: {'mat-mdc-button-theme': 'mdc-button-theme'},
710711
functions: {'mat-mdc-typography-config': 'mdc-typography-config'},
712+
variables: {'mat-vermillion': 'vermillion-palette'},
711713
});
712714

713715
expect(migratedContent).toBe([
714716
`@use '~@angular/material' as mat;`,
715717
`$something: mat.mdc-typography-config();`,
716718
`@include mat.mdc-button-theme();`,
719+
`$another: mat.$vermillion-palette`,
717720
].join('\n'));
718721
});
719722

0 commit comments

Comments
 (0)