devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
81 lines (79 loc) • 3.98 kB
JavaScript
/**
* DevExtreme (cjs/__internal/integration/jquery/hooks.js)
* Version: 25.2.3
* Build date: Fri Dec 12 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
;
var _m_iterator = require("../../core/utils/m_iterator");
var _m_type = require("../../core/utils/m_type");
var _m_version = require("../../core/utils/m_version");
var _m_event_registrator = _interopRequireDefault(require("../../events/core/m_event_registrator"));
var _m_hook_touch_props = _interopRequireDefault(require("../../events/core/m_hook_touch_props"));
var _index = require("../../events/utils/index");
var _jquery = _interopRequireDefault(require("jquery"));
var _use_jquery = _interopRequireDefault(require("./use_jquery"));
function _interopRequireDefault(e) {
return e && e.__esModule ? e : {
default: e
}
}
const useJQuery = (0, _use_jquery.default)();
if (useJQuery) {
if ((0, _m_version.compare)(_jquery.default.fn.jquery, [3]) < 0) {
const POINTER_TYPE_MAP = {
2: "touch",
3: "pen",
4: "mouse"
};
(0, _m_iterator.each)(["MSPointerDown", "MSPointerMove", "MSPointerUp", "MSPointerCancel", "MSPointerOver", "MSPointerOut", "mouseenter", "mouseleave", "pointerdown", "pointermove", "pointerup", "pointercancel", "pointerover", "pointerout", "pointerenter", "pointerleave"], (function() {
_jquery.default.event.fixHooks[this] = {
filter(event, originalEvent) {
const {
pointerType: pointerType
} = originalEvent;
if ((0, _m_type.isNumeric)(pointerType)) {
event.pointerType = POINTER_TYPE_MAP[pointerType]
}
return event
},
props: _jquery.default.event.mouseHooks.props.concat(["pointerId", "pointerType", "originalTarget", "width", "height", "pressure", "result", "tiltX", "charCode", "tiltY", "detail", "isPrimary", "prevValue"])
}
}));
(0, _m_iterator.each)(["touchstart", "touchmove", "touchend", "touchcancel"], (function() {
_jquery.default.event.fixHooks[this] = {
filter(event, originalEvent) {
(0, _m_hook_touch_props.default)(((name, hook) => {
event[name] = hook(originalEvent)
}));
return event
},
props: _jquery.default.event.mouseHooks.props.concat(["touches", "changedTouches", "targetTouches", "detail", "result", "originalTarget", "charCode", "prevValue"])
}
}));
_jquery.default.event.fixHooks.wheel = _jquery.default.event.mouseHooks;
const DX_EVENT_HOOKS = {
props: _jquery.default.event.mouseHooks.props.concat(["pointerType", "pointerId", "pointers"])
};
_m_event_registrator.default.callbacks.add((name => {
_jquery.default.event.fixHooks[name] = DX_EVENT_HOOKS
}));
const fix = function(event, originalEvent) {
const fixHook = _jquery.default.event.fixHooks[originalEvent.type] || _jquery.default.event.mouseHooks;
const props = fixHook.props ? _jquery.default.event.props.concat(fixHook.props) : _jquery.default.event.props;
let propIndex = props.length;
while (propIndex -= 1) {
const prop = props[propIndex];
event[prop] = originalEvent[prop]
}
return fixHook.filter ? fixHook.filter(event, originalEvent) : event
};
(0, _index.setEventFixMethod)(fix)
} else {
(0, _m_hook_touch_props.default)(((name, hook) => {
_jquery.default.event.addProp(name, hook)
}))
}
}