@@ -13,7 +13,7 @@ import {
13
13
coerceNumberProperty ,
14
14
NumberInput ,
15
15
} from '@angular/cdk/coercion' ;
16
- import { Platform } from '@angular/cdk/platform' ;
16
+ import { Platform , normalizePassiveListenerOptions } from '@angular/cdk/platform' ;
17
17
import { DOCUMENT } from '@angular/common' ;
18
18
import {
19
19
AfterViewInit ,
@@ -55,6 +55,9 @@ import {MDCSliderAdapter, MDCSliderFoundation, Thumb, TickMark} from '@material/
55
55
import { Subscription } from 'rxjs' ;
56
56
import { GlobalChangeAndInputListener } from './global-change-and-input-listener' ;
57
57
58
+ /** Options used to bind passive event listeners. */
59
+ const passiveEventListenerOptions = normalizePassiveListenerOptions ( { passive : true } ) ;
60
+
58
61
/** Represents a drag event emitted by the MatSlider component. */
59
62
export interface MatSliderDragEvent {
60
63
/** The MatSliderThumb that was interacted with. */
@@ -778,20 +781,36 @@ export class MatSlider
778
781
// would prefer to use "mousedown" as the default, for some reason it does not work (the
779
782
// callback is never triggered).
780
783
if ( this . _SUPPORTS_POINTER_EVENTS ) {
781
- this . _elementRef . nativeElement . addEventListener ( 'pointerdown' , this . _layout ) ;
784
+ this . _elementRef . nativeElement . addEventListener (
785
+ 'pointerdown' ,
786
+ this . _layout ,
787
+ passiveEventListenerOptions ,
788
+ ) ;
782
789
} else {
783
790
this . _elementRef . nativeElement . addEventListener ( 'mouseenter' , this . _layout ) ;
784
- this . _elementRef . nativeElement . addEventListener ( 'touchstart' , this . _layout ) ;
791
+ this . _elementRef . nativeElement . addEventListener (
792
+ 'touchstart' ,
793
+ this . _layout ,
794
+ passiveEventListenerOptions ,
795
+ ) ;
785
796
}
786
797
}
787
798
788
799
/** Removes the event listener that keeps sync the slider UI and the foundation in sync. */
789
800
_removeUISyncEventListener ( ) : void {
790
801
if ( this . _SUPPORTS_POINTER_EVENTS ) {
791
- this . _elementRef . nativeElement . removeEventListener ( 'pointerdown' , this . _layout ) ;
802
+ this . _elementRef . nativeElement . removeEventListener (
803
+ 'pointerdown' ,
804
+ this . _layout ,
805
+ passiveEventListenerOptions ,
806
+ ) ;
792
807
} else {
793
808
this . _elementRef . nativeElement . removeEventListener ( 'mouseenter' , this . _layout ) ;
794
- this . _elementRef . nativeElement . removeEventListener ( 'touchstart' , this . _layout ) ;
809
+ this . _elementRef . nativeElement . removeEventListener (
810
+ 'touchstart' ,
811
+ this . _layout ,
812
+ passiveEventListenerOptions ,
813
+ ) ;
795
814
}
796
815
}
797
816
0 commit comments