visjs-network
Version:
A dynamic, browser-based network visualization library.
67 lines (58 loc) • 1.88 kB
JavaScript
/**
* Register a touch event, taking place before a gesture
* @param {Hammer} hammer A hammer instance
* @param {function} callback Callback, called as callback(event)
*/
exports.onTouch = function(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 {*}
*/
exports.onRelease = function(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)
*/
exports.offTouch = function(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)
*/
exports.offRelease = exports.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
* @return {Hammer.Pinch} returns the pinchRecognizer
*/
exports.disablePreventDefaultVertically = function(pinchRecognizer) {
var TOUCH_ACTION_PAN_Y = 'pan-y'
pinchRecognizer.getTouchAction = function() {
// default method returns [TOUCH_ACTION_NONE]
return [TOUCH_ACTION_PAN_Y]
}
return pinchRecognizer
}