From 0d1fbe27d8e0c869e6b82238baf136961497816d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lloren=C3=A7=20Pujol?= Date: Thu, 25 Jan 2018 11:12:47 +0100 Subject: [PATCH] fix(slider): slider emiting changes on slide end when disabled Currently the slider is firing a change event on slideEnd when it is disabled. If it is disabled and the value of the slider doesn't change, it shouldn't have to emit any change event. --- src/lib/slider/slider.spec.ts | 9 +++++++++ src/lib/slider/slider.ts | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/lib/slider/slider.spec.ts b/src/lib/slider/slider.spec.ts index 6d213bda19ce..cdad8b42cdf7 100644 --- a/src/lib/slider/slider.spec.ts +++ b/src/lib/slider/slider.spec.ts @@ -249,6 +249,15 @@ describe('MatSlider without forms', () => { expect(sliderInstance.value).toBe(0); }); + it('should not emit change when disabled', () => { + const onChangeSpy = jasmine.createSpy('slider onChange'); + sliderInstance.change.subscribe(onChangeSpy); + + dispatchSlideEventSequence(sliderNativeElement, 0, 0.5, gestureConfig); + + expect(onChangeSpy).toHaveBeenCalledTimes(0); + }); + it('should not add the mat-slider-active class on click when disabled', () => { expect(sliderNativeElement.classList).not.toContain('mat-slider-active'); diff --git a/src/lib/slider/slider.ts b/src/lib/slider/slider.ts index ace527ba1b4c..e7af50391ed6 100644 --- a/src/lib/slider/slider.ts +++ b/src/lib/slider/slider.ts @@ -518,7 +518,7 @@ export class MatSlider extends _MatSliderMixinBase _onSlideEnd() { this._isSliding = false; - if (this._valueOnSlideStart != this.value) { + if (this._valueOnSlideStart != this.value && !this.disabled) { this._emitChangeEvent(); } this._valueOnSlideStart = null;