Skip to content

Commit 1b13be5

Browse files
crisbetoandrewseguin
authored andcommitted
refactor(badge): breaking constructor changes for 8.0 (#15758)
Handles the breaking changes in the badge constructor for 8.0. BREAKING CHANGES: * `_document` parameter has been removed and the `_renderer` parameter is now required in the `MatBadge` constructor.
1 parent 48c70da commit 1b13be5

File tree

3 files changed

+8
-11
lines changed

3 files changed

+8
-11
lines changed

src/lib/badge/badge.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import {AriaDescriber} from '@angular/cdk/a11y';
1010
import {coerceBooleanProperty} from '@angular/cdk/coercion';
11-
import {DOCUMENT} from '@angular/common';
1211
import {
1312
Directive,
1413
ElementRef,
@@ -119,12 +118,10 @@ export class MatBadge extends _MatBadgeMixinBase implements OnDestroy, OnChanges
119118
private _badgeElement: HTMLElement;
120119

121120
constructor(
122-
@Optional() @Inject(DOCUMENT) private _document: any,
123121
private _ngZone: NgZone,
124122
private _elementRef: ElementRef<HTMLElement>,
125123
private _ariaDescriber: AriaDescriber,
126-
/** @breaking-change 8.0.0 Make _renderer a required param and remove _document. */
127-
private _renderer?: Renderer2,
124+
private _renderer: Renderer2,
128125
@Optional() @Inject(ANIMATION_MODULE_TYPE) private _animationMode?: string) {
129126
super();
130127
}
@@ -159,8 +156,7 @@ export class MatBadge extends _MatBadgeMixinBase implements OnDestroy, OnChanges
159156

160157
// When creating a badge through the Renderer, Angular will keep it in an index.
161158
// We have to destroy it ourselves, otherwise it'll be retained in memory.
162-
// @breaking-change 8.0.0 remove _renderer from null.
163-
if (this._renderer && this._renderer.destroyNode) {
159+
if (this._renderer.destroyNode) {
164160
this._renderer.destroyNode(badgeElement);
165161
}
166162
}
@@ -178,9 +174,7 @@ export class MatBadge extends _MatBadgeMixinBase implements OnDestroy, OnChanges
178174

179175
/** Creates the badge element */
180176
private _createBadgeElement(): HTMLElement {
181-
// @breaking-change 8.0.0 Remove null check for _renderer
182-
const rootNode = this._renderer || this._document;
183-
const badgeElement = rootNode.createElement('span');
177+
const badgeElement = this._renderer.createElement('span');
184178
const activeClass = 'mat-badge-active';
185179
const contentClass = 'mat-badge-content';
186180

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ export const constructorChecks: VersionChanges<ConstructorChecksUpgradeData> = {
1818
{
1919
pr: 'https://github.com/angular/material2/pull/15647',
2020
changes: ['MatFormField', 'MatTabLink', 'MatVerticalStepper']
21+
},
22+
{
23+
pr: 'https://github.com/angular/material2/pull/15757',
24+
changes: ['MatBadge']
2125
}
2226
],
2327

tools/public_api_guard/lib/badge.d.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ export declare class MatBadge extends _MatBadgeMixinBase implements OnDestroy, O
1010
overlap: boolean;
1111
position: MatBadgePosition;
1212
size: MatBadgeSize;
13-
constructor(_document: any, _ngZone: NgZone, _elementRef: ElementRef<HTMLElement>, _ariaDescriber: AriaDescriber,
14-
_renderer?: Renderer2 | undefined, _animationMode?: string | undefined);
13+
constructor(_ngZone: NgZone, _elementRef: ElementRef<HTMLElement>, _ariaDescriber: AriaDescriber, _renderer: Renderer2, _animationMode?: string | undefined);
1514
isAbove(): boolean;
1615
isAfter(): boolean;
1716
ngOnChanges(changes: SimpleChanges): void;

0 commit comments

Comments
 (0)