@@ -33,34 +33,34 @@ export class MdGestureConfig extends HammerGestureConfig {
33
33
* TODO: Confirm threshold numbers with Material Design UX Team
34
34
* */
35
35
buildHammer ( element : HTMLElement ) {
36
- var mc = new Hammer ( element ) ;
36
+ const mc = new Hammer ( element ) ;
37
37
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 } ) ;
42
42
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 ( ) ;
45
49
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 ) ;
51
53
52
- return mc ;
53
- }
54
+ pan . recognizeWith ( swipe ) ;
55
+ pan . recognizeWith ( slide ) ;
54
56
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 ) ;
58
58
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 ) ;
62
60
63
- return recognizer ;
61
+ // add customized gestures to Hammer manager
62
+ mc . add ( [ drag , pan , swipe , press , longpress , slide ] ) ;
63
+ return mc ;
64
64
}
65
65
66
66
}
0 commit comments