UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

60 lines (59 loc) 1.9 kB
/** * DevExtreme (esm/__internal/events/pointer/m_observer.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/ */ import domAdapter from "../../../core/dom_adapter"; import { each } from "../../../core/utils/iterator"; import readyCallbacks from "../../../core/utils/ready_callbacks"; const addEventsListener = function(events, handler) { readyCallbacks.add((() => { events.split(" ").forEach((event => { domAdapter.listen(domAdapter.getDocument(), event, handler, true) })) })) }; const Observer = function(eventMap, pointerEquals, onPointerAdding) { onPointerAdding = onPointerAdding || function() {}; let pointers = []; const getPointerIndex = function(e) { let index = -1; each(pointers, ((i, pointer) => { if (!pointerEquals(e, pointer)) { return true } index = i; return false })); return index }; const removePointer = function(e) { const index = getPointerIndex(e); if (index > -1) { pointers.splice(index, 1) } }; addEventsListener(eventMap.dxpointerdown, (function(e) { if (-1 === getPointerIndex(e)) { onPointerAdding(e); pointers.push(e) } })); addEventsListener(eventMap.dxpointermove, (function(e) { pointers[getPointerIndex(e)] = e })); addEventsListener(eventMap.dxpointerup, removePointer); addEventsListener(eventMap.dxpointercancel, removePointer); this.pointers = function() { return pointers }; this.reset = function() { pointers = [] } }; export default Observer;