maplair
Version:
JavaScript library for mobile-friendly interactive maps
46 lines (45 loc) • 1.79 kB
JavaScript
import { __exportAll } from "../_virtual/_rolldown/runtime.js";
//#region src/dom/DomEvent.PointerEvents.js
var DomEvent_PointerEvents_exports = /* @__PURE__ */ __exportAll({
cleanupPointers: () => cleanupPointers,
disablePointerDetection: () => disablePointerDetection,
enablePointerDetection: () => enablePointerDetection,
getPointers: () => getPointers
});
const activePointers = /* @__PURE__ */ new Map();
function enablePointerDetection(el) {
el.addEventListener("pointerdown", _onSet, { capture: true });
el.addEventListener("pointermove", _onUpdate, { capture: true });
el.addEventListener("pointerup", _onDelete, { capture: true });
el.addEventListener("pointercancel", _onDelete, { capture: true });
activePointers.clear();
}
function disablePointerDetection(el) {
el.removeEventListener("pointerdown", _onSet, { capture: true });
el.removeEventListener("pointermove", _onUpdate, { capture: true });
el.removeEventListener("pointerup", _onDelete, { capture: true });
el.removeEventListener("pointercancel", _onDelete, { capture: true });
}
function _onSet(e) {
e.target.setPointerCapture(e.pointerId);
activePointers.set(e.pointerId, e);
}
function _onUpdate(e) {
if (activePointers.has(e.pointerId)) activePointers.set(e.pointerId, e);
}
function _onDelete(e) {
e.target.releasePointerCapture(e.pointerId);
activePointers.delete(e.pointerId);
}
function getPointers() {
return [...activePointers.values()];
}
function cleanupPointers() {
for (const e of activePointers.values()) try {
e.target.releasePointerCapture(e.pointerId);
} catch {}
activePointers.clear();
}
//#endregion
export { DomEvent_PointerEvents_exports, cleanupPointers, disablePointerDetection, enablePointerDetection, getPointers };
//# sourceMappingURL=DomEvent.PointerEvents.js.map