Skip to content

Commit 369e74e

Browse files
committed
fixup! feat(material/button): make button ripples lazy
1 parent 6a8e00f commit 369e74e

File tree

2 files changed

+14
-34
lines changed

2 files changed

+14
-34
lines changed

tools/public_api_guard/material/button.md

Lines changed: 11 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@ import { NgZone } from '@angular/core';
2121
import { OnDestroy } from '@angular/core';
2222
import { OnInit } from '@angular/core';
2323
import { Platform } from '@angular/cdk/platform';
24-
import { RippleGlobalOptions } from '@angular/material/core';
25-
import { RippleRenderer } from '@angular/material/core';
26-
import { RippleTarget } from '@angular/material/core';
2724
import { ThemePalette } from '@angular/material/core';
2825

2926
// @public
@@ -36,9 +33,7 @@ export function MAT_FAB_DEFAULT_OPTIONS_FACTORY(): MatFabDefaultOptions;
3633
export class MatAnchor extends MatAnchorBase {
3734
constructor(elementRef: ElementRef, platform: Platform, ngZone: NgZone, animationMode?: string);
3835
// (undocumented)
39-
_ripple: MatButtonRipple;
40-
// (undocumented)
41-
static ɵcmp: i0.ɵɵComponentDeclaration<MatAnchor, "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", ["matButton", "matAnchor"], { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], false, [{ directive: typeof i1.MatButtonRipple; inputs: {}; outputs: {}; }]>;
36+
static ɵcmp: i0.ɵɵComponentDeclaration<MatAnchor, "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", ["matButton", "matAnchor"], { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], false, never>;
4237
// (undocumented)
4338
static ɵfac: i0.ɵɵFactoryDeclaration<MatAnchor, [null, null, null, { optional: true; }]>;
4439
}
@@ -47,9 +42,7 @@ export class MatAnchor extends MatAnchorBase {
4742
export class MatButton extends MatButtonBase {
4843
constructor(elementRef: ElementRef, platform: Platform, ngZone: NgZone, animationMode?: string);
4944
// (undocumented)
50-
_ripple: MatButtonRipple;
51-
// (undocumented)
52-
static ɵcmp: i0.ɵɵComponentDeclaration<MatButton, " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", ["matButton"], { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], false, [{ directive: typeof i1.MatButtonRipple; inputs: {}; outputs: {}; }]>;
45+
static ɵcmp: i0.ɵɵComponentDeclaration<MatButton, " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", ["matButton"], { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], false, never>;
5346
// (undocumented)
5447
static ɵfac: i0.ɵɵFactoryDeclaration<MatButton, [null, null, null, { optional: true; }]>;
5548
}
@@ -61,7 +54,7 @@ export class MatButtonModule {
6154
// (undocumented)
6255
static ɵinj: i0.ɵɵInjectorDeclaration<MatButtonModule>;
6356
// (undocumented)
64-
static ɵmod: i0.ɵɵNgModuleDeclaration<MatButtonModule, [typeof i1_2.MatAnchor, typeof i1_2.MatButton, typeof i2.MatIconAnchor, typeof i3.MatMiniFabAnchor, typeof i3.MatMiniFabButton, typeof i2.MatIconButton, typeof i3.MatFabAnchor, typeof i3.MatFabButton], [typeof i4.MatCommonModule, typeof i4.MatRippleModule], [typeof i1_2.MatAnchor, typeof i1_2.MatButton, typeof i2.MatIconAnchor, typeof i2.MatIconButton, typeof i3.MatMiniFabAnchor, typeof i3.MatMiniFabButton, typeof i3.MatFabAnchor, typeof i3.MatFabButton, typeof i4.MatCommonModule]>;
57+
static ɵmod: i0.ɵɵNgModuleDeclaration<MatButtonModule, [typeof i1.MatAnchor, typeof i1.MatButton, typeof i2.MatIconAnchor, typeof i3.MatMiniFabAnchor, typeof i3.MatMiniFabButton, typeof i2.MatIconButton, typeof i3.MatFabAnchor, typeof i3.MatFabButton], [typeof i4.MatCommonModule, typeof i4.MatRippleModule], [typeof i1.MatAnchor, typeof i1.MatButton, typeof i2.MatIconAnchor, typeof i2.MatIconButton, typeof i3.MatMiniFabAnchor, typeof i3.MatMiniFabButton, typeof i3.MatFabAnchor, typeof i3.MatFabButton, typeof i4.MatCommonModule]>;
6558
}
6659

6760
// @public
@@ -73,9 +66,7 @@ export class MatFabAnchor extends MatAnchor {
7366
// (undocumented)
7467
_isFab: boolean;
7568
// (undocumented)
76-
_ripple: MatButtonRipple;
77-
// (undocumented)
78-
static ɵcmp: i0.ɵɵComponentDeclaration<MatFabAnchor, "a[mat-fab]", ["matButton", "matAnchor"], { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "extended": { "alias": "extended"; "required": false; }; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], false, [{ directive: typeof i1.MatButtonRipple; inputs: {}; outputs: {}; }]>;
69+
static ɵcmp: i0.ɵɵComponentDeclaration<MatFabAnchor, "a[mat-fab]", ["matButton", "matAnchor"], { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "extended": { "alias": "extended"; "required": false; }; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], false, never>;
7970
// (undocumented)
8071
static ɵfac: i0.ɵɵFactoryDeclaration<MatFabAnchor, [null, null, null, { optional: true; }, { optional: true; }]>;
8172
}
@@ -89,9 +80,7 @@ export class MatFabButton extends MatButtonBase {
8980
// (undocumented)
9081
_isFab: boolean;
9182
// (undocumented)
92-
_ripple: MatButtonRipple;
93-
// (undocumented)
94-
static ɵcmp: i0.ɵɵComponentDeclaration<MatFabButton, "button[mat-fab]", ["matButton"], { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "extended": { "alias": "extended"; "required": false; }; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], false, [{ directive: typeof i1.MatButtonRipple; inputs: {}; outputs: {}; }]>;
83+
static ɵcmp: i0.ɵɵComponentDeclaration<MatFabButton, "button[mat-fab]", ["matButton"], { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "extended": { "alias": "extended"; "required": false; }; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], false, never>;
9584
// (undocumented)
9685
static ɵfac: i0.ɵɵFactoryDeclaration<MatFabButton, [null, null, null, { optional: true; }, { optional: true; }]>;
9786
}
@@ -106,20 +95,18 @@ export interface MatFabDefaultOptions {
10695
export class MatIconAnchor extends MatAnchorBase {
10796
constructor(elementRef: ElementRef, platform: Platform, ngZone: NgZone, animationMode?: string);
10897
// (undocumented)
109-
_ripple: MatButtonRipple;
110-
// (undocumented)
111-
static ɵcmp: i0.ɵɵComponentDeclaration<MatIconAnchor, "a[mat-icon-button]", ["matButton", "matAnchor"], { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], false, [{ directive: typeof i1.MatButtonRipple; inputs: {}; outputs: {}; }]>;
98+
static ɵcmp: i0.ɵɵComponentDeclaration<MatIconAnchor, "a[mat-icon-button]", ["matButton", "matAnchor"], { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], false, never>;
11299
// (undocumented)
113100
static ɵfac: i0.ɵɵFactoryDeclaration<MatIconAnchor, [null, null, null, { optional: true; }]>;
114101
}
115102

116103
// @public
117104
export class MatIconButton extends MatButtonBase {
118105
constructor(elementRef: ElementRef, platform: Platform, ngZone: NgZone, animationMode?: string);
106+
// @deprecated
107+
get ripple(): MatRipple;
119108
// (undocumented)
120-
_ripple: MatButtonRipple;
121-
// (undocumented)
122-
static ɵcmp: i0.ɵɵComponentDeclaration<MatIconButton, "button[mat-icon-button]", ["matButton"], { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; }, {}, never, ["*"], false, [{ directive: typeof i1.MatButtonRipple; inputs: {}; outputs: {}; }]>;
109+
static ɵcmp: i0.ɵɵComponentDeclaration<MatIconButton, "button[mat-icon-button]", ["matButton"], { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; }, {}, never, ["*"], false, never>;
123110
// (undocumented)
124111
static ɵfac: i0.ɵɵFactoryDeclaration<MatIconButton, [null, null, null, { optional: true; }]>;
125112
}
@@ -130,9 +117,7 @@ export class MatMiniFabAnchor extends MatAnchor {
130117
// (undocumented)
131118
_isFab: boolean;
132119
// (undocumented)
133-
_ripple: MatButtonRipple;
134-
// (undocumented)
135-
static ɵcmp: i0.ɵɵComponentDeclaration<MatMiniFabAnchor, "a[mat-mini-fab]", ["matButton", "matAnchor"], { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], false, [{ directive: typeof i1.MatButtonRipple; inputs: {}; outputs: {}; }]>;
120+
static ɵcmp: i0.ɵɵComponentDeclaration<MatMiniFabAnchor, "a[mat-mini-fab]", ["matButton", "matAnchor"], { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], false, never>;
136121
// (undocumented)
137122
static ɵfac: i0.ɵɵFactoryDeclaration<MatMiniFabAnchor, [null, null, null, { optional: true; }, { optional: true; }]>;
138123
}
@@ -143,9 +128,7 @@ export class MatMiniFabButton extends MatButtonBase {
143128
// (undocumented)
144129
_isFab: boolean;
145130
// (undocumented)
146-
_ripple: MatButtonRipple;
147-
// (undocumented)
148-
static ɵcmp: i0.ɵɵComponentDeclaration<MatMiniFabButton, "button[mat-mini-fab]", ["matButton"], { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], false, [{ directive: typeof i1.MatButtonRipple; inputs: {}; outputs: {}; }]>;
131+
static ɵcmp: i0.ɵɵComponentDeclaration<MatMiniFabButton, "button[mat-mini-fab]", ["matButton"], { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], false, never>;
149132
// (undocumented)
150133
static ɵfac: i0.ɵɵFactoryDeclaration<MatMiniFabButton, [null, null, null, { optional: true; }, { optional: true; }]>;
151134
}

tools/public_api_guard/material/core.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -368,17 +368,15 @@ export type MatPseudoCheckboxState = 'unchecked' | 'checked' | 'indeterminate';
368368

369369
// @public (undocumented)
370370
export class MatRipple implements OnInit, OnDestroy, RippleTarget {
371-
constructor(_elementRef: ElementRef<HTMLElement>, ngZone: NgZone, platform: Platform, globalOptions?: RippleGlobalOptions, _animationMode?: string | undefined, _document?: Document | undefined);
371+
constructor(_elementRef: ElementRef<HTMLElement>, ngZone: NgZone, platform: Platform, globalOptions?: RippleGlobalOptions, _animationMode?: string | undefined);
372372
animation: RippleAnimationConfig;
373373
centered: boolean;
374374
color: string;
375-
protected _createRippleRenderer(target: RippleTarget, ngZone: NgZone, elementRef: ElementRef, platform: Platform): RippleRenderer | undefined;
376375
get disabled(): boolean;
377376
set disabled(value: boolean);
378-
// (undocumented)
379-
protected _document?: Document | undefined;
380377
fadeOutAll(): void;
381378
fadeOutAllNonPersistent(): void;
379+
_isInitialized: boolean;
382380
launch(config: RippleConfig): RippleRef;
383381
launch(x: number, y: number, config?: RippleConfig): RippleRef;
384382
// (undocumented)
@@ -388,14 +386,13 @@ export class MatRipple implements OnInit, OnDestroy, RippleTarget {
388386
radius: number;
389387
get rippleConfig(): RippleConfig;
390388
get rippleDisabled(): boolean;
391-
protected _rippleRenderer?: RippleRenderer;
392389
get trigger(): HTMLElement;
393390
set trigger(trigger: HTMLElement);
394391
unbounded: boolean;
395392
// (undocumented)
396393
static ɵdir: i0.ɵɵDirectiveDeclaration<MatRipple, "[mat-ripple], [matRipple]", ["matRipple"], { "color": { "alias": "matRippleColor"; "required": false; }; "unbounded": { "alias": "matRippleUnbounded"; "required": false; }; "centered": { "alias": "matRippleCentered"; "required": false; }; "radius": { "alias": "matRippleRadius"; "required": false; }; "animation": { "alias": "matRippleAnimation"; "required": false; }; "disabled": { "alias": "matRippleDisabled"; "required": false; }; "trigger": { "alias": "matRippleTrigger"; "required": false; }; }, {}, never, never, false, never>;
397394
// (undocumented)
398-
static ɵfac: i0.ɵɵFactoryDeclaration<MatRipple, [null, null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
395+
static ɵfac: i0.ɵɵFactoryDeclaration<MatRipple, [null, null, null, { optional: true; }, { optional: true; }]>;
399396
}
400397

401398
// @public (undocumented)

0 commit comments

Comments
 (0)