devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
60 lines (59 loc) • 2.06 kB
JavaScript
/**
* DevExtreme (events/pointer.js)
* Version: 18.1.3
* Build date: Tue May 15 2018
*
* Copyright (c) 2012 - 2018 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
;
var support = require("../core/utils/support"),
each = require("../core/utils/iterator").each,
devices = require("../core/devices"),
registerEvent = require("./core/event_registrator"),
domAdapter = require("../core/dom_adapter"),
TouchStrategy = require("./pointer/touch"),
MsPointerStrategy = require("./pointer/mspointer"),
MouseStrategy = require("./pointer/mouse"),
MouseAndTouchStrategy = require("./pointer/mouse_and_touch");
var EventStrategy = function() {
if (support.pointerEvents) {
return MsPointerStrategy
}
var device = devices.real();
if (support.touch && !(device.tablet || device.phone)) {
return MouseAndTouchStrategy
}
if (support.touch) {
return TouchStrategy
}
return MouseStrategy
}();
each(EventStrategy.map, function(pointerEvent, originalEvents) {
registerEvent(pointerEvent, new EventStrategy(pointerEvent, originalEvents))
});
if (support.touch) {
each([TouchStrategy.map.dxpointerdown, TouchStrategy.map.dxpointermove], function(_, eventName) {
registerEvent(eventName, {
setup: function(element, data, namespaces, handler) {
if (namespaces.indexOf(TouchStrategy.POINTER_EVENTS_NAMESPACE) > -1) {
domAdapter.listen(element, eventName, handler, {
passive: false
});
return true
}
return false
}
})
})
}
module.exports = {
down: "dxpointerdown",
up: "dxpointerup",
move: "dxpointermove",
cancel: "dxpointercancel",
enter: "dxpointerenter",
leave: "dxpointerleave",
over: "dxpointerover",
out: "dxpointerout"
};