-
diff --git a/src/lib/stepper/stepper.spec.ts b/src/lib/stepper/stepper.spec.ts
index dbb9b1ef34b..09ba8859221 100644
--- a/src/lib/stepper/stepper.spec.ts
+++ b/src/lib/stepper/stepper.spec.ts
@@ -28,11 +28,12 @@ import {
Validators,
FormBuilder
} from '@angular/forms';
+import {MatRipple} from '@angular/material/core';
import {By} from '@angular/platform-browser';
import {NoopAnimationsModule} from '@angular/platform-browser/animations';
import {Observable, Subject} from 'rxjs';
import {map, take} from 'rxjs/operators';
-import {MatStepperModule} from './index';
+import {MatStepHeader, MatStepperModule} from './index';
import {MatHorizontalStepper, MatStep, MatStepper, MatVerticalStepper} from './stepper';
import {MatStepperNext, MatStepperPrevious} from './stepper-button';
import {MatStepperIntl} from './stepper-intl';
@@ -795,6 +796,22 @@ describe('MatStepper', () => {
let stepHeaders = fixture.debugElement.queryAll(By.css('.mat-vertical-stepper-header'));
assertArrowKeyInteractionInRtl(fixture, stepHeaders);
});
+
+ it('should be able to disable ripples', () => {
+ const fixture = createComponent(SimpleMatVerticalStepperApp);
+ fixture.detectChanges();
+
+ const stepHeaders = fixture.debugElement.queryAll(By.directive(MatStepHeader));
+ const headerRipples = stepHeaders.map(headerDebugEl =>
+ headerDebugEl.query(By.directive(MatRipple)).injector.get(MatRipple));
+
+ expect(headerRipples.every(ripple => ripple.disabled)).toBe(false);
+
+ fixture.componentInstance.disableRipple = true;
+ fixture.detectChanges();
+
+ expect(headerRipples.every(ripple => ripple.disabled)).toBe(true);
+ });
});
describe('horizontal stepper', () => {
@@ -836,6 +853,22 @@ describe('MatStepper', () => {
assertArrowKeyInteractionInRtl(fixture, stepHeaders);
});
+
+ it('should be able to disable ripples', () => {
+ const fixture = createComponent(SimpleMatHorizontalStepperApp);
+ fixture.detectChanges();
+
+ const stepHeaders = fixture.debugElement.queryAll(By.directive(MatStepHeader));
+ const headerRipples = stepHeaders.map(headerDebugEl =>
+ headerDebugEl.query(By.directive(MatRipple)).injector.get(MatRipple));
+
+ expect(headerRipples.every(ripple => ripple.disabled)).toBe(false);
+
+ fixture.componentInstance.disableRipple = true;
+ fixture.detectChanges();
+
+ expect(headerRipples.every(ripple => ripple.disabled)).toBe(true);
+ });
});
describe('linear stepper with valid step', () => {
@@ -1200,7 +1233,7 @@ class MatHorizontalStepperWithErrorsApp implements OnInit {
@Component({
template: `
-
+
Step 1
Content 1
@@ -1229,11 +1262,12 @@ class MatHorizontalStepperWithErrorsApp implements OnInit {
})
class SimpleMatHorizontalStepperApp {
inputLabel = 'Step 3';
+ disableRipple = false;
}
@Component({
template: `
-
+
Step 1
Content 1
@@ -1263,6 +1297,7 @@ class SimpleMatHorizontalStepperApp {
class SimpleMatVerticalStepperApp {
inputLabel = 'Step 3';
showStepTwo = true;
+ disableRipple = false;
}
@Component({
diff --git a/src/lib/stepper/stepper.ts b/src/lib/stepper/stepper.ts
index ebde9063562..bd3d69a31ec 100644
--- a/src/lib/stepper/stepper.ts
+++ b/src/lib/stepper/stepper.ts
@@ -97,6 +97,9 @@ export class MatStepper extends CdkStepper implements AfterContentInit {
/** Event emitted when the current step is done transitioning in. */
@Output() readonly animationDone: EventEmitter = new EventEmitter();
+ /** Whether ripples should be disabled for the step headers. */
+ @Input() disableRipple: boolean;
+
/** Consumer-specified template-refs to be used to override the header icons. */
_iconOverrides: {[key: string]: TemplateRef} = {};
diff --git a/tools/public_api_guard/lib/stepper.d.ts b/tools/public_api_guard/lib/stepper.d.ts
index cd9f4d2255e..a96b7f9186a 100644
--- a/tools/public_api_guard/lib/stepper.d.ts
+++ b/tools/public_api_guard/lib/stepper.d.ts
@@ -19,6 +19,7 @@ export declare class MatStep extends CdkStep implements ErrorStateMatcher {
export declare class MatStepHeader extends CdkStepHeader implements OnDestroy {
_intl: MatStepperIntl;
active: boolean;
+ disableRipple: boolean;
errorMessage: string;
iconOverrides: {
[key: string]: TemplateRef;
@@ -49,6 +50,7 @@ export declare class MatStepper extends CdkStepper implements AfterContentInit {
_stepHeader: QueryList;
_steps: QueryList;
readonly animationDone: EventEmitter;
+ disableRipple: boolean;
ngAfterContentInit(): void;
}