UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

71 lines (69 loc) 2.34 kB
/** * DevExtreme (cjs/__internal/events/pointer/m_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/ */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _base = _interopRequireDefault(require("../../../common/core/events/pointer/base")); var _extend = require("../../../core/utils/extend"); var _iterator = require("../../../core/utils/iterator"); var _m_devices = _interopRequireDefault(require("../../core/m_devices")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e } } const eventMap = { dxpointerdown: "touchstart", dxpointermove: "touchmove", dxpointerup: "touchend", dxpointercancel: "touchcancel", dxpointerover: "", dxpointerout: "", dxpointerenter: "", dxpointerleave: "" }; const normalizeTouchEvent = function(e) { const pointers = []; (0, _iterator.each)(e.touches, ((_, touch) => { pointers.push((0, _extend.extend)({ pointerId: touch.identifier }, touch)) })); return { pointers: pointers, pointerId: e.changedTouches[0].identifier } }; const skipTouchWithSameIdentifier = function(pointerEvent) { return "ios" === _m_devices.default.real().platform && ("dxpointerdown" === pointerEvent || "dxpointerup" === pointerEvent) }; const TouchStrategy = _base.default.inherit({ ctor() { this.callBase.apply(this, arguments); this._pointerId = 0 }, _handler(e) { if (skipTouchWithSameIdentifier(this._eventName)) { const touch = e.changedTouches[0]; if (this._pointerId === touch.identifier && 0 !== this._pointerId) { return } this._pointerId = touch.identifier } return this.callBase.apply(this, arguments) }, _fireEvent(args) { return this.callBase((0, _extend.extend)(normalizeTouchEvent(args.originalEvent), args)) } }); TouchStrategy.map = eventMap; TouchStrategy.normalize = normalizeTouchEvent; var _default = exports.default = TouchStrategy;