devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
83 lines (81 loc) • 2.81 kB
JavaScript
/**
* DevExtreme (cjs/__internal/events/pointer/m_mouse_and_touch.js)
* Version: 24.2.6
* Build date: Mon Mar 17 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _base = _interopRequireDefault(require("../../../common/core/events/pointer/base"));
var _mouse = _interopRequireDefault(require("../../../common/core/events/pointer/mouse"));
var _touch = _interopRequireDefault(require("../../../common/core/events/pointer/touch"));
var _index = require("../../../common/core/events/utils/index");
var _extend = require("../../../core/utils/extend");
function _interopRequireDefault(e) {
return e && e.__esModule ? e : {
default: e
}
}
const eventMap = {
dxpointerdown: "touchstart mousedown",
dxpointermove: "touchmove mousemove",
dxpointerup: "touchend mouseup",
dxpointercancel: "touchcancel",
dxpointerover: "mouseover",
dxpointerout: "mouseout",
dxpointerenter: "mouseenter",
dxpointerleave: "mouseleave"
};
let activated = false;
const activateStrategy = function() {
if (activated) {
return
}
_mouse.default.activate();
activated = true
};
const MouseAndTouchStrategy = _base.default.inherit({
EVENT_LOCK_TIMEOUT: 100,
ctor() {
this.callBase.apply(this, arguments);
activateStrategy()
},
_handler(e) {
const isMouse = (0, _index.isMouseEvent)(e);
if (!isMouse) {
this._skipNextEvents = true
}
if (isMouse && this._mouseLocked) {
return
}
if (isMouse && this._skipNextEvents) {
this._skipNextEvents = false;
this._mouseLocked = true;
clearTimeout(this._unlockMouseTimer);
const that = this;
this._unlockMouseTimer = setTimeout((() => {
that._mouseLocked = false
}), this.EVENT_LOCK_TIMEOUT);
return
}
return this.callBase(e)
},
_fireEvent(args) {
const normalizer = (0, _index.isMouseEvent)(args.originalEvent) ? _mouse.default.normalize : _touch.default.normalize;
return this.callBase((0, _extend.extend)(normalizer(args.originalEvent), args))
},
dispose() {
this.callBase();
this._skipNextEvents = false;
this._mouseLocked = false;
clearTimeout(this._unlockMouseTimer)
}
});
MouseAndTouchStrategy.map = eventMap;
MouseAndTouchStrategy.resetObserver = _mouse.default.resetObserver;
var _default = exports.default = MouseAndTouchStrategy;