1 | /**
|
2 | * Register a touch event, taking place before a gesture
|
3 | * @param {Hammer} hammer A hammer instance
|
4 | * @param {function} callback Callback, called as callback(event)
|
5 | */
|
6 | exports.onTouch = function (hammer, callback) {
|
7 | callback.inputHandler = function (event) {
|
8 | if (event.isFirst) {
|
9 | callback(event);
|
10 | }
|
11 | };
|
12 |
|
13 | hammer.on('hammer.input', callback.inputHandler);
|
14 | };
|
15 |
|
16 | /**
|
17 | * Register a release event, taking place after a gesture
|
18 | * @param {Hammer} hammer A hammer instance
|
19 | * @param {function} callback Callback, called as callback(event)
|
20 | * @returns {*}
|
21 | */
|
22 | exports.onRelease = function (hammer, callback) {
|
23 | callback.inputHandler = function (event) {
|
24 | if (event.isFinal) {
|
25 | callback(event);
|
26 | }
|
27 | };
|
28 |
|
29 | return hammer.on('hammer.input', callback.inputHandler);
|
30 | };
|
31 |
|
32 |
|
33 | /**
|
34 | * Unregister a touch event, taking place before a gesture
|
35 | * @param {Hammer} hammer A hammer instance
|
36 | * @param {function} callback Callback, called as callback(event)
|
37 | */
|
38 | exports.offTouch = function (hammer, callback) {
|
39 | hammer.off('hammer.input', callback.inputHandler);
|
40 | };
|
41 |
|
42 | /**
|
43 | * Unregister a release event, taking place before a gesture
|
44 | * @param {Hammer} hammer A hammer instance
|
45 | * @param {function} callback Callback, called as callback(event)
|
46 | */
|
47 | exports.offRelease = exports.offTouch;
|
48 |
|
49 | /**
|
50 | * Hack the PinchRecognizer such that it doesn't prevent default behavior
|
51 | * for vertical panning.
|
52 | *
|
53 | * Yeah ... this is quite a hack ... see https://github.com/hammerjs/hammer.js/issues/932
|
54 | *
|
55 | * @param {Hammer.Pinch} pinchRecognizer
|
56 | * @return {Hammer.Pinch} returns the pinchRecognizer
|
57 | */
|
58 | exports.disablePreventDefaultVertically = function (pinchRecognizer) {
|
59 | var TOUCH_ACTION_PAN_Y = 'pan-y';
|
60 |
|
61 | pinchRecognizer.getTouchAction = function() {
|
62 | // default method returns [TOUCH_ACTION_NONE]
|
63 | return [TOUCH_ACTION_PAN_Y];
|
64 | };
|
65 |
|
66 | return pinchRecognizer;
|
67 | };
|