Skip to content

Commit bf6f38a

Browse files
authored
feat(material/select): switch implementation to use MDC (#25360)
Switches `mat-select` to use MDC by default. BREAKING CHANGE: * DOM and CSS classes for `mat-select` have changes. * TypeScript API is largely the same but may have minor differences.
1 parent 5b8d521 commit bf6f38a

File tree

149 files changed

+3553
-3325
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

149 files changed

+3553
-3325
lines changed

.github/CODEOWNERS

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
/src/material/progress-spinner/** @andrewseguin @crisbeto
2626
/src/material/radio/** @andrewseguin @devversion
2727
/src/material/schematics/** @devversion @andrewseguin
28+
/src/material/legacy-select/** @crisbeto
2829
/src/material/select/** @crisbeto
2930
/src/material/sidenav/** @mmalerba
3031
/src/material/slide-toggle/** @devversion
@@ -119,7 +120,7 @@
119120
/src/material/form-field/** @devversion @mmalerba
120121
/src/material-experimental/mdc-list/** @mmalerba @devversion
121122
/src/material-experimental/mdc-menu/** @crisbeto
122-
/src/material-experimental/mdc-select/** @crisbeto
123+
/src/material/select/** @crisbeto
123124
/src/material-experimental/mdc-paginator/** @crisbeto
124125
/src/material-experimental/mdc-progress-spinner/** @andrewseguin
125126
/src/material/progress-bar/** @andrewseguin
@@ -338,7 +339,7 @@
338339
/tools/public_api_guard/material/legacy-progress-bar** @andrewseguin @crisbeto
339340
/tools/public_api_guard/material/progress-spinner**@andrewseguin @crisbeto
340341
/tools/public_api_guard/material/radio** @andrewseguin @devversion
341-
/tools/public_api_guard/material/select** @crisbeto
342+
/tools/public_api_guard/material/legacy-select** @crisbeto
342343
/tools/public_api_guard/material/sidenav** @mmalerba
343344
/tools/public_api_guard/material/slide-toggle** @devversion
344345
/tools/public_api_guard/material/slider** @mmalerba

.ng-dev/commit-message.mts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ export const commitMessage: CommitMessageConfig = {
5555
'material/progress-bar',
5656
'material-experimental/mdc-progress-spinner',
5757
'material-experimental/mdc-radio',
58-
'material-experimental/mdc-select',
5958
'material-experimental/mdc-slide-toggle',
6059
'material-experimental/mdc-slider',
6160
'material-experimental/mdc-snack-bar',
@@ -97,6 +96,7 @@ export const commitMessage: CommitMessageConfig = {
9796
'material/radio',
9897
'material/schematics',
9998
'material/select',
99+
'material/legacy-select',
100100
'material/sidenav',
101101
'material/slide-toggle',
102102
'material/slider',

integration/size-test/material/select/basic.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {Component, NgModule} from '@angular/core';
2-
import {MatSelectModule} from '@angular/material/select';
2+
import {MatLegacySelectModule} from '@angular/material/legacy-select';
33

44
/**
55
* Basic component using `MatSelect` and `MatOption`. Other supported parts of the
@@ -16,7 +16,7 @@ import {MatSelectModule} from '@angular/material/select';
1616
export class TestComponent {}
1717

1818
@NgModule({
19-
imports: [MatSelectModule],
19+
imports: [MatLegacySelectModule],
2020
declarations: [TestComponent],
2121
bootstrap: [TestComponent],
2222
})

src/components-examples/cdk/a11y/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ng_module(
1111
]),
1212
deps = [
1313
"//src/cdk/a11y",
14-
"//src/material/select",
14+
"//src/material/legacy-select",
1515
],
1616
)
1717

src/components-examples/cdk/a11y/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {A11yModule} from '@angular/cdk/a11y';
22
import {NgModule} from '@angular/core';
3-
import {MatSelectModule} from '@angular/material/select';
3+
import {MatLegacySelectModule} from '@angular/material/legacy-select';
44
import {FocusMonitorDirectivesExample} from './focus-monitor-directives/focus-monitor-directives-example';
55
import {FocusMonitorFocusViaExample} from './focus-monitor-focus-via/focus-monitor-focus-via-example';
66
import {FocusMonitorOverviewExample} from './focus-monitor-overview/focus-monitor-overview-example';
@@ -14,7 +14,7 @@ const EXAMPLES = [
1414
];
1515

1616
@NgModule({
17-
imports: [A11yModule, MatSelectModule],
17+
imports: [A11yModule, MatLegacySelectModule],
1818
declarations: EXAMPLES,
1919
exports: EXAMPLES,
2020
})

src/components-examples/cdk/text-field/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ ng_module(
1313
"//src/cdk/text-field",
1414
"//src/material/button",
1515
"//src/material/legacy-input",
16-
"//src/material/select",
16+
"//src/material/legacy-select",
1717
],
1818
)
1919

src/components-examples/cdk/text-field/index.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {CommonModule} from '@angular/common';
33
import {NgModule} from '@angular/core';
44
import {MatButtonModule} from '@angular/material/button';
55
import {MatLegacyInputModule} from '@angular/material/legacy-input';
6-
import {MatSelectModule} from '@angular/material/select';
6+
import {MatLegacySelectModule} from '@angular/material/legacy-select';
77
import {TextFieldAutofillDirectiveExample} from './text-field-autofill-directive/text-field-autofill-directive-example';
88
import {TextFieldAutofillMonitorExample} from './text-field-autofill-monitor/text-field-autofill-monitor-example';
99
import {TextFieldAutosizeTextareaExample} from './text-field-autosize-textarea/text-field-autosize-textarea-example';
@@ -21,7 +21,13 @@ const EXAMPLES = [
2121
];
2222

2323
@NgModule({
24-
imports: [CommonModule, TextFieldModule, MatButtonModule, MatLegacyInputModule, MatSelectModule],
24+
imports: [
25+
CommonModule,
26+
TextFieldModule,
27+
MatButtonModule,
28+
MatLegacyInputModule,
29+
MatLegacySelectModule,
30+
],
2531
declarations: EXAMPLES,
2632
exports: EXAMPLES,
2733
})

src/components-examples/material/form-field/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ ng_module(
2222
"//src/material/legacy-form-field/testing",
2323
"//src/material/legacy-input",
2424
"//src/material/legacy-input/testing",
25+
"//src/material/legacy-select",
2526
"//src/material/radio",
26-
"//src/material/select",
2727
"@npm//@angular/forms",
2828
"@npm//@angular/platform-browser",
2929
"@npm//@angular/platform-browser-dynamic",

src/components-examples/material/form-field/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {MatLegacyFormFieldModule} from '@angular/material/legacy-form-field';
77
import {MatIconModule} from '@angular/material/icon';
88
import {MatLegacyInputModule} from '@angular/material/legacy-input';
99
import {MatRadioModule} from '@angular/material/radio';
10-
import {MatSelectModule} from '@angular/material/select';
10+
import {MatLegacySelectModule} from '@angular/material/legacy-select';
1111
import {FormFieldAppearanceExample} from './form-field-appearance/form-field-appearance-example';
1212
import {
1313
FormFieldCustomControlExample,
@@ -55,7 +55,7 @@ const EXAMPLES = [
5555
MatIconModule,
5656
MatLegacyInputModule,
5757
MatRadioModule,
58-
MatSelectModule,
58+
MatLegacySelectModule,
5959
ReactiveFormsModule,
6060
],
6161
declarations: [...EXAMPLES, MyTelInput],

src/components-examples/material/select/BUILD.bazel

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ ng_module(
1818
"//src/material/checkbox",
1919
"//src/material/legacy-form-field",
2020
"//src/material/legacy-input",
21-
"//src/material/select",
22-
"//src/material/select/testing",
21+
"//src/material/legacy-select",
22+
"//src/material/legacy-select/testing",
2323
"@npm//@angular/forms",
2424
"@npm//@angular/platform-browser",
2525
"@npm//@angular/platform-browser-dynamic",
@@ -43,8 +43,8 @@ ng_test_library(
4343
":select",
4444
"//src/cdk/testing",
4545
"//src/cdk/testing/testbed",
46-
"//src/material/select",
47-
"//src/material/select/testing",
46+
"//src/material/legacy-select",
47+
"//src/material/legacy-select/testing",
4848
"@npm//@angular/platform-browser",
4949
"@npm//@angular/platform-browser-dynamic",
5050
],

src/components-examples/material/select/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {NgModule} from '@angular/core';
33
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
44
import {MatCheckboxModule} from '@angular/material/checkbox';
55
import {MatLegacyInputModule} from '@angular/material/legacy-input';
6-
import {MatSelectModule} from '@angular/material/select';
6+
import {MatLegacySelectModule} from '@angular/material/legacy-select';
77
import {SelectCustomTriggerExample} from './select-custom-trigger/select-custom-trigger-example';
88
import {SelectDisabledExample} from './select-disabled/select-disabled-example';
99
import {SelectErrorStateMatcherExample} from './select-error-state-matcher/select-error-state-matcher-example';
@@ -63,7 +63,7 @@ const EXAMPLES = [
6363
FormsModule,
6464
MatCheckboxModule,
6565
MatLegacyInputModule,
66-
MatSelectModule,
66+
MatLegacySelectModule,
6767
ReactiveFormsModule,
6868
MatLegacyFormFieldModule,
6969
],

src/components-examples/material/select/select-harness/select-harness-example.spec.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import {ComponentFixture, TestBed} from '@angular/core/testing';
22
import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed';
3-
import {MatSelectHarness} from '@angular/material/select/testing';
3+
import {MatLegacySelectHarness} from '@angular/material/legacy-select/testing';
44
import {HarnessLoader} from '@angular/cdk/testing';
5-
import {MatSelectModule} from '@angular/material/select';
5+
import {MatLegacySelectModule} from '@angular/material/legacy-select';
66
import {SelectHarnessExample} from './select-harness-example';
77
import {NoopAnimationsModule} from '@angular/platform-browser/animations';
88

@@ -12,7 +12,7 @@ describe('SelectHarnessExample', () => {
1212

1313
beforeEach(async () => {
1414
await TestBed.configureTestingModule({
15-
imports: [MatSelectModule, NoopAnimationsModule],
15+
imports: [MatLegacySelectModule, NoopAnimationsModule],
1616
declarations: [SelectHarnessExample],
1717
}).compileComponents();
1818
fixture = TestBed.createComponent(SelectHarnessExample);
@@ -21,18 +21,18 @@ describe('SelectHarnessExample', () => {
2121
});
2222

2323
it('should load all select harnesses', async () => {
24-
const selects = await loader.getAllHarnesses(MatSelectHarness);
24+
const selects = await loader.getAllHarnesses(MatLegacySelectHarness);
2525
expect(selects.length).toBe(1);
2626
});
2727

2828
it('should be able to check whether a select is in multi-selection mode', async () => {
29-
const select = await loader.getHarness(MatSelectHarness);
29+
const select = await loader.getHarness(MatLegacySelectHarness);
3030

3131
expect(await select.isMultiple()).toBe(false);
3232
});
3333

3434
it('should be able to open and close a select', async () => {
35-
const select = await loader.getHarness(MatSelectHarness);
35+
const select = await loader.getHarness(MatLegacySelectHarness);
3636

3737
expect(await select.isOpen()).toBe(false);
3838

@@ -44,7 +44,7 @@ describe('SelectHarnessExample', () => {
4444
});
4545

4646
it('should be able to get the value text from a select', async () => {
47-
const select = await loader.getHarness(MatSelectHarness);
47+
const select = await loader.getHarness(MatLegacySelectHarness);
4848
await select.open();
4949
const options = await select.getOptions();
5050

src/components-examples/material/sidenav/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ ng_module(
1919
"//src/material/button",
2020
"//src/material/checkbox",
2121
"//src/material/icon",
22+
"//src/material/legacy-select",
2223
"//src/material/list",
2324
"//src/material/radio",
24-
"//src/material/select",
2525
"//src/material/sidenav",
2626
"//src/material/toolbar",
2727
"@npm//@angular/forms",

src/components-examples/material/sidenav/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {MatCheckboxModule} from '@angular/material/checkbox';
66
import {MatIconModule} from '@angular/material/icon';
77
import {MatListModule} from '@angular/material/list';
88
import {MatRadioModule} from '@angular/material/radio';
9-
import {MatSelectModule} from '@angular/material/select';
9+
import {MatLegacySelectModule} from '@angular/material/legacy-select';
1010
import {MatSidenavModule} from '@angular/material/sidenav';
1111
import {MatToolbarModule} from '@angular/material/toolbar';
1212
import {SidenavAutosizeExample} from './sidenav-autosize/sidenav-autosize-example';
@@ -59,7 +59,7 @@ const EXAMPLES = [
5959
MatListModule,
6060
MatRadioModule,
6161
MatSidenavModule,
62-
MatSelectModule,
62+
MatLegacySelectModule,
6363
MatToolbarModule,
6464
ReactiveFormsModule,
6565
],

src/components-examples/material/snack-bar/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ ng_module(
1717
"//src/cdk/testing/testbed",
1818
"//src/material/button",
1919
"//src/material/legacy-input",
20-
"//src/material/select",
20+
"//src/material/legacy-select",
2121
"//src/material/snack-bar",
2222
"//src/material/snack-bar/testing",
2323
"@npm//@angular/forms",

src/components-examples/material/snack-bar/index.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {NgModule} from '@angular/core';
22
import {FormsModule} from '@angular/forms';
33
import {MatButtonModule} from '@angular/material/button';
44
import {MatLegacyInputModule} from '@angular/material/legacy-input';
5-
import {MatSelectModule} from '@angular/material/select';
5+
import {MatLegacySelectModule} from '@angular/material/legacy-select';
66
import {MatSnackBarModule} from '@angular/material/snack-bar';
77
import {
88
PizzaPartyComponent,
@@ -28,7 +28,13 @@ const EXAMPLES = [
2828
];
2929

3030
@NgModule({
31-
imports: [FormsModule, MatButtonModule, MatLegacyInputModule, MatSelectModule, MatSnackBarModule],
31+
imports: [
32+
FormsModule,
33+
MatButtonModule,
34+
MatLegacyInputModule,
35+
MatLegacySelectModule,
36+
MatSnackBarModule,
37+
],
3238
declarations: [...EXAMPLES, PizzaPartyComponent],
3339
exports: EXAMPLES,
3440
})

src/components-examples/material/tooltip/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ ng_module(
1919
"//src/material/button",
2020
"//src/material/checkbox",
2121
"//src/material/legacy-input",
22+
"//src/material/legacy-select",
2223
"//src/material/legacy-tooltip",
2324
"//src/material/legacy-tooltip/testing",
24-
"//src/material/select",
2525
"@npm//@angular/forms",
2626
"@npm//@angular/platform-browser",
2727
"@npm//@angular/platform-browser-dynamic",

src/components-examples/material/tooltip/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {ScrollingModule} from '@angular/cdk/scrolling';
55
import {MatButtonModule} from '@angular/material/button';
66
import {MatCheckboxModule} from '@angular/material/checkbox';
77
import {MatLegacyInputModule} from '@angular/material/legacy-input';
8-
import {MatSelectModule} from '@angular/material/select';
8+
import {MatLegacySelectModule} from '@angular/material/legacy-select';
99
import {MatLegacyTooltipModule} from '@angular/material/legacy-tooltip';
1010
import {TooltipAutoHideExample} from './tooltip-auto-hide/tooltip-auto-hide-example';
1111
import {TooltipCustomClassExample} from './tooltip-custom-class/tooltip-custom-class-example';
@@ -50,7 +50,7 @@ const EXAMPLES = [
5050
MatButtonModule,
5151
MatCheckboxModule,
5252
MatLegacyInputModule,
53-
MatSelectModule,
53+
MatLegacySelectModule,
5454
MatLegacyTooltipModule,
5555
ReactiveFormsModule,
5656
ScrollingModule, // Required for the auto-scrolling example

src/dev-app/baseline/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ ng_module(
1414
"//src/material/legacy-card",
1515
"//src/material/legacy-form-field",
1616
"//src/material/legacy-input",
17+
"//src/material/legacy-select",
1718
"//src/material/radio",
18-
"//src/material/select",
1919
"//src/material/toolbar",
2020
],
2121
)

src/dev-app/baseline/baseline-demo.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {MatCheckboxModule} from '@angular/material/checkbox';
1313
import {MatLegacyFormFieldModule} from '@angular/material/legacy-form-field';
1414
import {MatLegacyInputModule} from '@angular/material/legacy-input';
1515
import {MatRadioModule} from '@angular/material/radio';
16-
import {MatSelectModule} from '@angular/material/select';
16+
import {MatLegacySelectModule} from '@angular/material/legacy-select';
1717
import {MatToolbarModule} from '@angular/material/toolbar';
1818

1919
@Component({
@@ -28,7 +28,7 @@ import {MatToolbarModule} from '@angular/material/toolbar';
2828
MatLegacyFormFieldModule,
2929
MatLegacyInputModule,
3030
MatRadioModule,
31-
MatSelectModule,
31+
MatLegacySelectModule,
3232
MatToolbarModule,
3333
],
3434
})

src/dev-app/bottom-sheet/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ ng_module(
1717
"//src/material/legacy-card",
1818
"//src/material/legacy-form-field",
1919
"//src/material/legacy-input",
20+
"//src/material/legacy-select",
2021
"//src/material/list",
21-
"//src/material/select",
2222
"@npm//@angular/forms",
2323
],
2424
)

src/dev-app/bottom-sheet/bottom-sheet-demo.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import {MatLegacyFormFieldModule} from '@angular/material/legacy-form-field';
2222
import {MatIconModule} from '@angular/material/icon';
2323
import {MatLegacyInputModule} from '@angular/material/legacy-input';
2424
import {MatListModule} from '@angular/material/list';
25-
import {MatSelectModule} from '@angular/material/select';
25+
import {MatLegacySelectModule} from '@angular/material/legacy-select';
2626

2727
const defaultConfig = new MatBottomSheetConfig();
2828

@@ -41,7 +41,7 @@ const defaultConfig = new MatBottomSheetConfig();
4141
MatLegacyFormFieldModule,
4242
MatIconModule,
4343
MatLegacyInputModule,
44-
MatSelectModule,
44+
MatLegacySelectModule,
4545
MatListModule,
4646
],
4747
})

src/dev-app/cdk-experimental-listbox/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ ng_module(
1111
],
1212
deps = [
1313
"//src/cdk-experimental/listbox",
14-
"//src/material/select",
14+
"//src/material/legacy-select",
1515
],
1616
)

0 commit comments

Comments
 (0)