@@ -33,34 +33,34 @@ export class MdGestureConfig extends HammerGestureConfig {
3333 * TODO: Confirm threshold numbers with Material Design UX Team
3434 * */
3535 buildHammer ( element : HTMLElement ) {
36- var mc = new Hammer ( element ) ;
36+ const mc = new Hammer ( element ) ;
3737
38- // Create custom gesture recognizers
39- let drag = this . _createRecognizer ( Hammer . Pan , { event : 'drag' , threshold : 6 } , Hammer . Swipe ) ;
40- let slide = this . _createRecognizer ( Hammer . Pan , { event : 'slide ' , threshold : 0 } , Hammer . Swipe ) ;
41- let longpress = this . _createRecognizer ( Hammer . Press , { event : 'longpress ' , time : 500 } ) ;
38+ // create custom gesture recognizers
39+ const drag = new Hammer . Pan ( { event : 'drag' , threshold : 6 } ) ;
40+ const longpress = new Hammer . Press ( { event : 'longpress ' , time : 500 } ) ;
41+ const slide = new Hammer . Pan ( { event : 'slide ' , threshold : 0 } ) ;
4242
43- let pan = new Hammer . Pan ( ) ;
44- let swipe = new Hammer . Swipe ( ) ;
43+ // ensure custom recognizers can coexist with the default gestures (i.e. pan, press, swipe)
44+ // custom recognizers can overwrite default recognizers if they aren't configured to
45+ // "recognizeWith" others that listen to the same base events.
46+ const pan = new Hammer . Pan ( ) ;
47+ const press = new Hammer . Press ( ) ;
48+ const swipe = new Hammer . Swipe ( ) ;
4549
46- // Overwrite the default `pan` event to use the swipe event.
47- pan . recognizeWith ( swipe ) ;
48-
49- // Add customized gestures to Hammer manager
50- mc . add ( [ drag , slide , pan , longpress ] ) ;
50+ drag . recognizeWith ( pan ) ;
51+ drag . recognizeWith ( swipe ) ;
52+ drag . recognizeWith ( slide ) ;
5153
52- return mc ;
53- }
54+ pan . recognizeWith ( swipe ) ;
55+ pan . recognizeWith ( slide ) ;
5456
55- /** Creates a new recognizer, without affecting the default recognizers of HammerJS */
56- private _createRecognizer ( type : RecognizerStatic , options : any , ...extra : RecognizerStatic [ ] ) {
57- let recognizer = new type ( options ) ;
57+ slide . recognizeWith ( swipe ) ;
5858
59- // Add the default recognizer to the new custom recognizer.
60- extra . push ( type ) ;
61- extra . forEach ( entry => recognizer . recognizeWith ( new entry ( ) ) ) ;
59+ longpress . recognizeWith ( press ) ;
6260
63- return recognizer ;
61+ // add customized gestures to Hammer manager
62+ mc . add ( [ drag , pan , swipe , press , longpress , slide ] ) ;
63+ return mc ;
6464 }
6565
6666}
0 commit comments