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