@@ -13,7 +13,7 @@ import {
1313 coerceNumberProperty ,
1414 NumberInput ,
1515} from '@angular/cdk/coercion' ;
16- import { Platform } from '@angular/cdk/platform' ;
16+ import { Platform , normalizePassiveListenerOptions } from '@angular/cdk/platform' ;
1717import { DOCUMENT } from '@angular/common' ;
1818import {
1919 AfterViewInit ,
@@ -55,6 +55,9 @@ import {MDCSliderAdapter, MDCSliderFoundation, Thumb, TickMark} from '@material/
5555import { Subscription } from 'rxjs' ;
5656import { GlobalChangeAndInputListener } from './global-change-and-input-listener' ;
5757
58+ /** Options used to bind passive event listeners. */
59+ const passiveEventListenerOptions = normalizePassiveListenerOptions ( { passive : true } ) ;
60+
5861/** Represents a drag event emitted by the MatSlider component. */
5962export interface MatSliderDragEvent {
6063 /** The MatSliderThumb that was interacted with. */
@@ -778,20 +781,36 @@ export class MatSlider
778781 // would prefer to use "mousedown" as the default, for some reason it does not work (the
779782 // callback is never triggered).
780783 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+ ) ;
782789 } else {
783790 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+ ) ;
785796 }
786797 }
787798
788799 /** Removes the event listener that keeps sync the slider UI and the foundation in sync. */
789800 _removeUISyncEventListener ( ) : void {
790801 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+ ) ;
792807 } else {
793808 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+ ) ;
795814 }
796815 }
797816
0 commit comments