@@ -30,22 +30,22 @@ export default class MDCSliderFoundation extends MDCFoundation {
30
30
31
31
static get defaultAdapter ( ) {
32
32
return {
33
- addClass : ( /* className: string */ ) => { } ,
34
- removeClass : ( /* className: string */ ) => { } ,
35
- hasClass : ( /* className: string */ ) => { } ,
36
- addInputClass : ( /* className: string */ ) => { } ,
37
- removeInputClass : ( /* className: string */ ) => { } ,
38
- getNativeInput : ( /* HTMLInputElement */ ) => { } ,
39
- registerHandler : ( /* type: string, handler: EventListener */ ) => { } ,
40
- deregisterHandler : ( /* type: string, handler: EventListener */ ) => { } ,
41
- registerRootHandler : ( /* type: string, handler: EventListener */ ) => { } ,
42
- deregisterRootHandler : ( /* type: string, handler: EventListener */ ) => { } ,
43
- setAttr : ( /* name: string, value: string */ ) => { } ,
44
- setLowerStyle : ( /* name: string, value: number */ ) => { } ,
45
- setUpperStyle : ( /* name: string, value: number */ ) => { } ,
46
- hasNecessaryDom : ( /* boolean */ ) => false ,
47
- notifyChange : ( /* evtData: {value: number} */ ) => { } ,
48
- detectIsIE : ( /* boolean */ ) => { } ,
33
+ addClass : ( /* className: string */ ) => { } ,
34
+ removeClass : ( /* className: string */ ) => { } ,
35
+ hasClass : ( /* className: string */ ) => { } ,
36
+ addInputClass : ( /* className: string */ ) => { } ,
37
+ removeInputClass : ( /* className: string */ ) => { } ,
38
+ getNativeInput : ( /* HTMLInputElement */ ) => { } ,
39
+ registerHandler : ( /* type: string, handler: EventListener */ ) => { } ,
40
+ deregisterHandler : ( /* type: string, handler: EventListener */ ) => { } ,
41
+ registerRootHandler : ( /* type: string, handler: EventListener */ ) => { } ,
42
+ deregisterRootHandler : ( /* type: string, handler: EventListener */ ) => { } ,
43
+ setAttr : ( /* name: string, value: string */ ) => { } ,
44
+ setLowerStyle : ( /* name: string, value: number */ ) => { } ,
45
+ setUpperStyle : ( /* name: string, value: number */ ) => { } ,
46
+ hasNecessaryDom : ( /* boolean */ ) => false ,
47
+ notifyChange : ( /* evtData: {value: number} */ ) => { } ,
48
+ detectIsIE : ( /* boolean */ ) => { } ,
49
49
} ;
50
50
}
51
51
@@ -106,7 +106,8 @@ export default class MDCSliderFoundation extends MDCFoundation {
106
106
}
107
107
108
108
handleTouchMove_ ( event ) {
109
- if ( event . pointerType && event . pointerType !== 'touch' ) {
109
+ // IE handles events on input[range] so no additional help is needed here
110
+ if ( this . isIE_ || ( event . pointerType && event . pointerType !== 'touch' ) ) {
110
111
return ;
111
112
}
112
113
@@ -121,13 +122,18 @@ export default class MDCSliderFoundation extends MDCFoundation {
121
122
122
123
// create a new event on the slider element to ensure
123
124
// listeners receive the input event
125
+ let newEvent ;
126
+
127
+ // Only if browser supports new Event
128
+ if ( typeof Event === 'function' ) {
129
+ newEvent = new Event ( 'input' , {
130
+ target : event . target ,
131
+ buttons : event . buttons ,
132
+ clientX : eventclientX ,
133
+ clientY : rect . top ,
134
+ } ) ;
135
+ }
124
136
125
- const newEvent = new Event ( 'input' , {
126
- target : event . target ,
127
- buttons : event . buttons ,
128
- clientX : eventclientX ,
129
- clientY : rect . top ,
130
- } ) ;
131
137
input_ . dispatchEvent ( newEvent ) ;
132
138
}
133
139
0 commit comments