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.
This commit is contained in:
Kristiyan Kostadinov
2019-04-11 19:47:32 +02:00
committed by Andrew Seguin
parent 48c70da05b
commit 1b13be5342
3 changed files with 8 additions and 11 deletions
+3 -9
View File
@@ -8,7 +8,6 @@
import {AriaDescriber} from '@angular/cdk/a11y';
import {coerceBooleanProperty} from '@angular/cdk/coercion';
import {DOCUMENT} from '@angular/common';
import {
Directive,
ElementRef,
@@ -119,12 +118,10 @@ export class MatBadge extends _MatBadgeMixinBase implements OnDestroy, OnChanges
private _badgeElement: HTMLElement;
constructor(
@Optional() @Inject(DOCUMENT) private _document: any,
private _ngZone: NgZone,
private _elementRef: ElementRef<HTMLElement>,
private _ariaDescriber: AriaDescriber,
/** @breaking-change 8.0.0 Make _renderer a required param and remove _document. */
private _renderer?: Renderer2,
private _renderer: Renderer2,
@Optional() @Inject(ANIMATION_MODULE_TYPE) private _animationMode?: string) {
super();
}
@@ -159,8 +156,7 @@ export class MatBadge extends _MatBadgeMixinBase implements OnDestroy, OnChanges
// When creating a badge through the Renderer, Angular will keep it in an index.
// We have to destroy it ourselves, otherwise it'll be retained in memory.
// @breaking-change 8.0.0 remove _renderer from null.
if (this._renderer && this._renderer.destroyNode) {
if (this._renderer.destroyNode) {
this._renderer.destroyNode(badgeElement);
}
}
@@ -178,9 +174,7 @@ export class MatBadge extends _MatBadgeMixinBase implements OnDestroy, OnChanges
/** Creates the badge element */
private _createBadgeElement(): HTMLElement {
// @breaking-change 8.0.0 Remove null check for _renderer
const rootNode = this._renderer || this._document;
const badgeElement = rootNode.createElement('span');
const badgeElement = this._renderer.createElement('span');
const activeClass = 'mat-badge-active';
const contentClass = 'mat-badge-content';
@@ -18,6 +18,10 @@ export const constructorChecks: VersionChanges<ConstructorChecksUpgradeData> = {
{
pr: 'https://github.com/angular/material2/pull/15647',
changes: ['MatFormField', 'MatTabLink', 'MatVerticalStepper']
},
{
pr: 'https://github.com/angular/material2/pull/15757',
changes: ['MatBadge']
}
],
+1 -2
View File
@@ -10,8 +10,7 @@ export declare class MatBadge extends _MatBadgeMixinBase implements OnDestroy, O
overlap: boolean;
position: MatBadgePosition;
size: MatBadgeSize;
constructor(_document: any, _ngZone: NgZone, _elementRef: ElementRef<HTMLElement>, _ariaDescriber: AriaDescriber,
_renderer?: Renderer2 | undefined, _animationMode?: string | undefined);
constructor(_ngZone: NgZone, _elementRef: ElementRef<HTMLElement>, _ariaDescriber: AriaDescriber, _renderer: Renderer2, _animationMode?: string | undefined);
isAbove(): boolean;
isAfter(): boolean;
ngOnChanges(changes: SimpleChanges): void;