Skip to content

Commit 20a879a

Browse files
crisbetommalerba
authored andcommitted
refactor(sidenav): constructor breaking changes for 8.0 (#15773)
Handles the breaking constructor changes for 8.0 in `material/sidenav`. BREAKING CHANGES: * `viewportRuler` parameter in `MatDrawerContainer` constructor is now required. Also the parameter order has changed as a result.
1 parent cf76707 commit 20a879a

File tree

3 files changed

+10
-13
lines changed

3 files changed

+10
-13
lines changed

src/lib/schematics/ng-update/data/constructor-checks.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ export const constructorChecks: VersionChanges<ConstructorChecksUpgradeData> = {
4646
{
4747
pr: 'https://github.com/angular/material2/pull/15806',
4848
changes: ['MatSlideToggle']
49+
},
50+
{
51+
pr: 'https://github.com/angular/material2/pull/15773',
52+
changes: ['MatDrawerContainer']
4953
}
5054
],
5155

src/lib/sidenav/drawer.ts

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -527,13 +527,9 @@ export class MatDrawerContainer implements AfterContentInit, DoCheck, OnDestroy
527527
private _element: ElementRef<HTMLElement>,
528528
private _ngZone: NgZone,
529529
private _changeDetectorRef: ChangeDetectorRef,
530+
viewportRuler: ViewportRuler,
530531
@Inject(MAT_DRAWER_DEFAULT_AUTOSIZE) defaultAutosize = false,
531-
@Optional() @Inject(ANIMATION_MODULE_TYPE) private _animationMode?: string,
532-
/**
533-
* @deprecated viewportRuler to become a required parameter.
534-
* @breaking-change 8.0.0
535-
*/
536-
@Optional() viewportRuler?: ViewportRuler) {
532+
@Optional() @Inject(ANIMATION_MODULE_TYPE) private _animationMode?: string) {
537533

538534
// If a `Dir` directive exists up the tree, listen direction changes
539535
// and update the left/right properties to point to the proper start/end.
@@ -546,11 +542,9 @@ export class MatDrawerContainer implements AfterContentInit, DoCheck, OnDestroy
546542

547543
// Since the minimum width of the sidenav depends on the viewport width,
548544
// we need to recompute the margins if the viewport changes.
549-
if (viewportRuler) {
550-
viewportRuler.change()
551-
.pipe(takeUntil(this._destroyed))
552-
.subscribe(() => this._updateContentMargins());
553-
}
545+
viewportRuler.change()
546+
.pipe(takeUntil(this._destroyed))
547+
.subscribe(() => this._updateContentMargins());
554548

555549
this._autosize = defaultAutosize;
556550
}

tools/public_api_guard/lib/sidenav.d.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,7 @@ export declare class MatDrawerContainer implements AfterContentInit, DoCheck, On
5454
hasBackdrop: any;
5555
readonly scrollable: CdkScrollable;
5656
readonly start: MatDrawer | null;
57-
constructor(_dir: Directionality, _element: ElementRef<HTMLElement>, _ngZone: NgZone, _changeDetectorRef: ChangeDetectorRef, defaultAutosize?: boolean, _animationMode?: string | undefined,
58-
viewportRuler?: ViewportRuler);
57+
constructor(_dir: Directionality, _element: ElementRef<HTMLElement>, _ngZone: NgZone, _changeDetectorRef: ChangeDetectorRef, viewportRuler: ViewportRuler, defaultAutosize?: boolean, _animationMode?: string | undefined);
5958
_closeModalDrawer(): void;
6059
_isShowingBackdrop(): boolean;
6160
_onBackdropClicked(): void;

0 commit comments

Comments
 (0)