Skip to content

Commit 950d437

Browse files
authored
feat(material/snack-bar): Switch snack-bar implementation to use MDC (#25458)
Old implementation is still available under @angular/material/legacy-snack-bar BREAKING CHANGE: - DOM and CSS classes for mat-snack-bar have changes - Typescript API is largely the same but may have minor differences - See the MDC migration guide for more information about the changes and how to migrate your app (TODO: link when available)
1 parent 0734564 commit 950d437

File tree

106 files changed

+1455
-1158
lines changed

Some content is hidden

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

106 files changed

+1455
-1158
lines changed

.github/CODEOWNERS

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
/src/material/sidenav/** @mmalerba
3131
/src/material/legacy-slide-toggle/** @devversion
3232
/src/material/legacy-slider/** @mmalerba
33-
/src/material/snack-bar/** @andrewseguin @crisbeto
33+
/src/material/legacy-snack-bar/** @andrewseguin @crisbeto
3434
/src/material/sort/** @andrewseguin
3535
/src/material/stepper/** @mmalerba
3636
/src/material/table/** @andrewseguin
@@ -126,7 +126,7 @@
126126
/src/material-experimental/mdc-progress-spinner/** @andrewseguin
127127
/src/material/progress-bar/** @andrewseguin
128128
/src/material/radio/** @mmalerba
129-
/src/material-experimental/mdc-snack-bar/** @andrewseguin
129+
/src/material/snack-bar/** @andrewseguin
130130
/src/material/slide-toggle/** @crisbeto
131131
/src/material/slider/** @devversion
132132
/src/material/tabs/** @crisbeto
@@ -344,7 +344,7 @@
344344
/tools/public_api_guard/material/sidenav** @mmalerba
345345
/tools/public_api_guard/material/legacy-slide-toggle** @devversion
346346
/tools/public_api_guard/material/slider** @mmalerba
347-
/tools/public_api_guard/material/snack-bar** @andrewseguin @crisbeto
347+
/tools/public_api_guard/material/legacy-snack-bar** @andrewseguin @crisbeto
348348
/tools/public_api_guard/material/sort** @andrewseguin
349349
/tools/public_api_guard/material/stepper** @mmalerba
350350
/tools/public_api_guard/material/table** @andrewseguin

.ng-dev/commit-message.mts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export const commitMessage: CommitMessageConfig = {
5151
'material/progress-bar',
5252
'material-experimental/mdc-progress-spinner',
5353
'material/slide-toggle',
54-
'material-experimental/mdc-snack-bar',
54+
'material/snack-bar',
5555
'material-experimental/mdc-table',
5656
'material/tabs',
5757
'material-experimental/menubar',
@@ -100,7 +100,7 @@ export const commitMessage: CommitMessageConfig = {
100100
'material/legacy-slide-toggle',
101101
'material/slider',
102102
'material/legacy-slider',
103-
'material/snack-bar',
103+
'material/legacy-snack-bar',
104104
'material/sort',
105105
'material/stepper',
106106
'material/table',

integration/mdc-migration/golden/src/app/app.module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import {MatRadioModule} from '@angular/material-experimental/mdc-radio';
2121
import {MatSelectModule} from '@angular/material-experimental/mdc-select';
2222
import {MatSlideToggleModule} from '@angular/material/slide-toggle';
2323
import {MatSliderModule} from '@angular/material-experimental/mdc-slider';
24-
import {MatSnackBarModule} from '@angular/material/snack-bar';
24+
import {MatSnackBarModule} from '@angular/material/legacy-snack-bar';
2525
import {MatTableModule} from '@angular/material-experimental/mdc-table';
2626
import {MatTabsModule} from '@angular/material/tabs';
2727
import {MatTooltipModule} from '@angular/material-experimental/mdc-tooltip';

integration/mdc-migration/golden/src/app/components/snack-bar/snack-bar.component.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {ComponentFixture, TestBed} from '@angular/core/testing';
22
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
3-
import {MatSnackBarModule} from '@angular/material/snack-bar';
3+
import {MatSnackBarModule} from '@angular/material/legacy-snack-bar';
44
import {SnackBarComponent} from './snack-bar.component';
55

66
describe('SnackBarComponent', () => {

integration/mdc-migration/golden/src/app/components/snack-bar/snack-bar.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {Component} from '@angular/core';
2-
import {MatSnackBar} from '@angular/material/snack-bar';
2+
import {MatSnackBar} from '@angular/material/legacy-snack-bar';
33

44
@Component({
55
selector: 'snack-bar-example',

integration/mdc-migration/golden/src/styles.scss

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,7 @@ $sample-project-theme: mat.define-light-theme((
6666
@include mat.slide-toggle-typography($sample-project-theme);
6767
@include mat.mdc-slider-theme($sample-project-theme);
6868
@include mat.mdc-slider-typography($sample-project-theme);
69-
@include mat.mdc-snack-bar-theme($sample-project-theme);
70-
@include mat.mdc-snack-bar-typography($sample-project-theme);
69+
@include mat.snack-bar-typography($sample-project-theme);
7170
@include mat.mdc-table-theme($sample-project-theme);
7271
@include mat.mdc-table-typography($sample-project-theme);
7372
@include mat.tabs-theme($sample-project-theme);

integration/mdc-migration/sample-project/src/app/app.module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import {MatRadioModule} from '@angular/material/radio';
2121
import {MatSelectModule} from '@angular/material/select';
2222
import {MatSlideToggleModule} from '@angular/material/legacy-slide-toggle';
2323
import {MatSliderModule} from '@angular/material/slider';
24-
import {MatSnackBarModule} from '@angular/material/snack-bar';
24+
import {MatSnackBarModule} from '@angular/material/legacy-snack-bar';
2525
import {MatTableModule} from '@angular/material/table';
2626
import {MatTabsModule} from '@angular/material/legacy-tabs';
2727
import {MatTooltipModule} from '@angular/material/tooltip';

integration/mdc-migration/sample-project/src/app/components/snack-bar/snack-bar.component.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {ComponentFixture, TestBed} from '@angular/core/testing';
22
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
3-
import {MatSnackBarModule} from '@angular/material/snack-bar';
3+
import {MatSnackBarModule} from '@angular/material/legacy-snack-bar';
44
import {SnackBarComponent} from './snack-bar.component';
55

66
describe('SnackBarComponent', () => {

integration/mdc-migration/sample-project/src/app/components/snack-bar/snack-bar.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {Component} from '@angular/core';
2-
import {MatSnackBar} from '@angular/material/snack-bar';
2+
import {MatSnackBar} from '@angular/material/legacy-snack-bar';
33

44
@Component({
55
selector: 'snack-bar-example',

integration/mdc-migration/sample-project/src/styles.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ $sample-project-theme: mat.define-light-theme((
4444
@include mat.select-theme($sample-project-theme);
4545
@include mat.legacy-slide-toggle-theme($sample-project-theme);
4646
@include mat.slider-theme($sample-project-theme);
47-
@include mat.snack-bar-theme($sample-project-theme);
47+
@include mat.legacy-snack-bar-theme($sample-project-theme);
4848
@include mat.table-theme($sample-project-theme);
4949
@include mat.legacy-tabs-theme($sample-project-theme);
5050
@include mat.tooltip-theme($sample-project-theme);

src/components-examples/material-experimental/popover-edit/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ ng_module(
1616
"//src/material/legacy-checkbox",
1717
"//src/material/legacy-input",
1818
"//src/material/legacy-list",
19-
"//src/material/snack-bar",
19+
"//src/material/legacy-snack-bar",
2020
"//src/material/table",
2121
"@npm//@angular/common",
2222
"@npm//@angular/forms",

src/components-examples/material-experimental/popover-edit/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {MatLegacyCheckboxModule} from '@angular/material/legacy-checkbox';
77
import {MatIconModule} from '@angular/material/icon';
88
import {MatLegacyInputModule} from '@angular/material/legacy-input';
99
import {MatLegacyListModule} from '@angular/material/legacy-list';
10-
import {MatSnackBarModule} from '@angular/material/snack-bar';
10+
import {MatLegacySnackBarModule} from '@angular/material/legacy-snack-bar';
1111
import {MatTableModule} from '@angular/material/table';
1212
import {PopoverEditCellSpanMatTableExample} from './popover-edit-cell-span-mat-table/popover-edit-cell-span-mat-table-example';
1313
import {PopoverEditMatTableFlexExample} from './popover-edit-mat-table-flex/popover-edit-mat-table-flex-example';
@@ -37,7 +37,7 @@ const EXAMPLES = [
3737
MatLegacyInputModule,
3838
MatLegacyListModule,
3939
MatPopoverEditModule,
40-
MatSnackBarModule,
40+
MatLegacySnackBarModule,
4141
MatTableModule,
4242
FormsModule,
4343
],

src/components-examples/material-experimental/popover-edit/popover-edit-mat-table/popover-edit-mat-table-example.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {Component} from '@angular/core';
22
import {DataSource} from '@angular/cdk/collections';
33
import {FormValueContainer} from '@angular/cdk-experimental/popover-edit';
44
import {NgForm} from '@angular/forms';
5-
import {MatSnackBar} from '@angular/material/snack-bar';
5+
import {MatLegacySnackBar} from '@angular/material/legacy-snack-bar';
66
import {BehaviorSubject, Observable} from 'rxjs';
77

88
export type ElementType = 'Metal' | 'Semimetal' | 'Nonmetal';
@@ -220,7 +220,7 @@ export class PopoverEditMatTableExample {
220220
readonly typeValues = new FormValueContainer<PeriodicElement, any>();
221221
readonly fantasyValues = new FormValueContainer<PeriodicElement, any>();
222222

223-
constructor(private readonly _snackBar: MatSnackBar) {}
223+
constructor(private readonly _snackBar: MatLegacySnackBar) {}
224224

225225
onSubmitName(element: PeriodicElement, f: NgForm) {
226226
if (!f.valid) {

src/components-examples/material/snack-bar/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/legacy-button",
1919
"//src/material/legacy-input",
2020
"//src/material/legacy-select",
21-
"//src/material/snack-bar",
22-
"//src/material/snack-bar/testing",
21+
"//src/material/legacy-snack-bar",
22+
"//src/material/legacy-snack-bar/testing",
2323
"@npm//@angular/forms",
2424
"@npm//@angular/platform-browser",
2525
"@npm//@angular/platform-browser-dynamic",
@@ -43,8 +43,8 @@ ng_test_library(
4343
":snack-bar",
4444
"//src/cdk/testing",
4545
"//src/cdk/testing/testbed",
46-
"//src/material/snack-bar",
47-
"//src/material/snack-bar/testing",
46+
"//src/material/legacy-snack-bar",
47+
"//src/material/legacy-snack-bar/testing",
4848
"@npm//@angular/platform-browser",
4949
"@npm//@angular/platform-browser-dynamic",
5050
],

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {FormsModule} from '@angular/forms';
33
import {MatLegacyButtonModule} from '@angular/material/legacy-button';
44
import {MatLegacyInputModule} from '@angular/material/legacy-input';
55
import {MatLegacySelectModule} from '@angular/material/legacy-select';
6-
import {MatSnackBarModule} from '@angular/material/snack-bar';
6+
import {MatLegacySnackBarModule} from '@angular/material/legacy-snack-bar';
77
import {
88
PizzaPartyComponent,
99
SnackBarComponentExample,
@@ -33,7 +33,7 @@ const EXAMPLES = [
3333
MatLegacyButtonModule,
3434
MatLegacyInputModule,
3535
MatLegacySelectModule,
36-
MatSnackBarModule,
36+
MatLegacySnackBarModule,
3737
],
3838
declarations: [...EXAMPLES, PizzaPartyComponent],
3939
exports: EXAMPLES,

src/components-examples/material/snack-bar/snack-bar-component/snack-bar-component-example.ts

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

44
/**
55
* @title Snack-bar with a custom component
@@ -12,7 +12,7 @@ import {MatSnackBar} from '@angular/material/snack-bar';
1212
export class SnackBarComponentExample {
1313
durationInSeconds = 5;
1414

15-
constructor(private _snackBar: MatSnackBar) {}
15+
constructor(private _snackBar: MatLegacySnackBar) {}
1616

1717
openSnackBar() {
1818
this._snackBar.openFromComponent(PizzaPartyComponent, {
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
import {ComponentFixture, TestBed} from '@angular/core/testing';
22
import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed';
3-
import {MatSnackBarHarness} from '@angular/material/snack-bar/testing';
43
import {HarnessLoader} from '@angular/cdk/testing';
5-
import {MatSnackBarModule} from '@angular/material/snack-bar';
4+
import {MatLegacySnackBarModule} from '@angular/material/legacy-snack-bar';
65
import {SnackBarHarnessExample} from './snack-bar-harness-example';
76
import {NoopAnimationsModule} from '@angular/platform-browser/animations';
7+
import {MatLegacySnackBarHarness} from '@angular/material/legacy-snack-bar/testing';
88

99
describe('SnackBarHarnessExample', () => {
1010
let fixture: ComponentFixture<SnackBarHarnessExample>;
1111
let loader: HarnessLoader;
1212

1313
beforeEach(async () => {
1414
await TestBed.configureTestingModule({
15-
imports: [MatSnackBarModule, NoopAnimationsModule],
15+
imports: [MatLegacySnackBarModule, NoopAnimationsModule],
1616
declarations: [SnackBarHarnessExample],
1717
}).compileComponents();
1818
fixture = TestBed.createComponent(SnackBarHarnessExample);
@@ -22,34 +22,34 @@ describe('SnackBarHarnessExample', () => {
2222

2323
it('should load harness for simple snack-bar', async () => {
2424
const snackBarRef = fixture.componentInstance.open('Hi!', '');
25-
let snackBars = await loader.getAllHarnesses(MatSnackBarHarness);
25+
let snackBars = await loader.getAllHarnesses(MatLegacySnackBarHarness);
2626

2727
expect(snackBars.length).toBe(1);
2828

2929
snackBarRef.dismiss();
30-
snackBars = await loader.getAllHarnesses(MatSnackBarHarness);
30+
snackBars = await loader.getAllHarnesses(MatLegacySnackBarHarness);
3131
expect(snackBars.length).toBe(0);
3232
});
3333

3434
it('should be able to get message of simple snack-bar', async () => {
3535
fixture.componentInstance.open('Subscribed to newsletter.');
36-
let snackBar = await loader.getHarness(MatSnackBarHarness);
36+
let snackBar = await loader.getHarness(MatLegacySnackBarHarness);
3737
expect(await snackBar.getMessage()).toBe('Subscribed to newsletter.');
3838
});
3939

4040
it('should be able to get action description of simple snack-bar', async () => {
4141
fixture.componentInstance.open('Hello', 'Unsubscribe');
42-
let snackBar = await loader.getHarness(MatSnackBarHarness);
42+
let snackBar = await loader.getHarness(MatLegacySnackBarHarness);
4343
expect(await snackBar.getActionDescription()).toBe('Unsubscribe');
4444
});
4545

4646
it('should be able to check whether simple snack-bar has action', async () => {
4747
fixture.componentInstance.open('With action', 'Unsubscribe');
48-
let snackBar = await loader.getHarness(MatSnackBarHarness);
48+
let snackBar = await loader.getHarness(MatLegacySnackBarHarness);
4949
expect(await snackBar.hasAction()).toBe(true);
5050

5151
fixture.componentInstance.open('No action');
52-
snackBar = await loader.getHarness(MatSnackBarHarness);
52+
snackBar = await loader.getHarness(MatLegacySnackBarHarness);
5353
expect(await snackBar.hasAction()).toBe(false);
5454
});
5555
});
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {Component} from '@angular/core';
2-
import {MatSnackBar, MatSnackBarConfig} from '@angular/material/snack-bar';
2+
import {MatLegacySnackBar, MatLegacySnackBarConfig} from '@angular/material/legacy-snack-bar';
33

44
/**
55
* @title Testing with MatSnackBarHarness
@@ -9,9 +9,9 @@ import {MatSnackBar, MatSnackBarConfig} from '@angular/material/snack-bar';
99
templateUrl: 'snack-bar-harness-example.html',
1010
})
1111
export class SnackBarHarnessExample {
12-
constructor(readonly snackBar: MatSnackBar) {}
12+
constructor(readonly snackBar: MatLegacySnackBar) {}
1313

14-
open(message: string, action = '', config?: MatSnackBarConfig) {
14+
open(message: string, action = '', config?: MatLegacySnackBarConfig) {
1515
return this.snackBar.open(message, action, config);
1616
}
1717
}

src/components-examples/material/snack-bar/snack-bar-overview/snack-bar-overview-example.ts

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

44
/**
55
* @title Basic snack-bar
@@ -10,7 +10,7 @@ import {MatSnackBar} from '@angular/material/snack-bar';
1010
styleUrls: ['snack-bar-overview-example.css'],
1111
})
1212
export class SnackBarOverviewExample {
13-
constructor(private _snackBar: MatSnackBar) {}
13+
constructor(private _snackBar: MatLegacySnackBar) {}
1414

1515
openSnackBar(message: string, action: string) {
1616
this._snackBar.open(message, action);

src/components-examples/material/snack-bar/snack-bar-position/snack-bar-position-example.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import {Component} from '@angular/core';
22
import {
3-
MatSnackBar,
4-
MatSnackBarHorizontalPosition,
5-
MatSnackBarVerticalPosition,
6-
} from '@angular/material/snack-bar';
3+
MatLegacySnackBar,
4+
MatLegacySnackBarHorizontalPosition,
5+
MatLegacySnackBarVerticalPosition,
6+
} from '@angular/material/legacy-snack-bar';
77

88
/**
99
* @title Snack-bar with configurable position
@@ -14,10 +14,10 @@ import {
1414
styleUrls: ['snack-bar-position-example.css'],
1515
})
1616
export class SnackBarPositionExample {
17-
horizontalPosition: MatSnackBarHorizontalPosition = 'start';
18-
verticalPosition: MatSnackBarVerticalPosition = 'bottom';
17+
horizontalPosition: MatLegacySnackBarHorizontalPosition = 'start';
18+
verticalPosition: MatLegacySnackBarVerticalPosition = 'bottom';
1919

20-
constructor(private _snackBar: MatSnackBar) {}
20+
constructor(private _snackBar: MatLegacySnackBar) {}
2121

2222
openSnackBar() {
2323
this._snackBar.open('Cannonball!!', 'Splash', {

src/dev-app/mdc-snack-bar/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ ng_module(
1111
],
1212
deps = [
1313
"//src/cdk/bidi",
14-
"//src/material-experimental/mdc-snack-bar",
1514
"//src/material/button",
1615
"//src/material/checkbox",
1716
"//src/material/form-field",
1817
"//src/material/input",
1918
"//src/material/select",
19+
"//src/material/snack-bar",
2020
"@npm//@angular/forms",
2121
],
2222
)

src/dev-app/mdc-snack-bar/mdc-snack-bar-demo.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
MatSnackBarHorizontalPosition,
1515
MatSnackBarVerticalPosition,
1616
MatSnackBarModule,
17-
} from '@angular/material-experimental/mdc-snack-bar';
17+
} from '@angular/material/snack-bar';
1818
import {CommonModule} from '@angular/common';
1919
import {FormsModule} from '@angular/forms';
2020
import {MatButtonModule} from '@angular/material/button';

src/dev-app/snack-bar/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ ng_module(
1616
"//src/material/legacy-form-field",
1717
"//src/material/legacy-input",
1818
"//src/material/legacy-select",
19-
"//src/material/snack-bar",
19+
"//src/material/legacy-snack-bar",
2020
"@npm//@angular/forms",
2121
],
2222
)

0 commit comments

Comments
 (0)