"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/pointer-event.ts var pointer_event_exports = {}; __export(pointer_event_exports, { addPointerEvent: () => addPointerEvent, extractEventInfo: () => extractEventInfo, getPointerEventName: () => getPointerEventName, getViewportPointFromEvent: () => getViewportPointFromEvent, isMouseEvent: () => isMouseEvent, isMultiTouchEvent: () => isMultiTouchEvent, isTouchEvent: () => isTouchEvent, wrapPointerEventHandler: () => wrapPointerEventHandler }); module.exports = __toCommonJS(pointer_event_exports); // src/dom.ts function getEventWindow(event) { var _a; return (_a = event.view) != null ? _a : window; } function canUseDOM() { return !!(typeof window !== "undefined" && window.document && window.document.createElement); } var isBrowser = /* @__PURE__ */ canUseDOM(); function addDomEvent(target, eventName, handler, options) { target.addEventListener(eventName, handler, options); return () => { target.removeEventListener(eventName, handler, options); }; } // src/pointer-event.ts function isMouseEvent(event) { const win = getEventWindow(event); if (typeof win.PointerEvent !== "undefined" && event instanceof win.PointerEvent) { return !!(event.pointerType === "mouse"); } return event instanceof win.MouseEvent; } function isTouchEvent(event) { const hasTouches = !!event.touches; return hasTouches; } function filterPrimaryPointer(eventHandler) { return (event) => { const win = getEventWindow(event); const isMouseEvent2 = event instanceof win.MouseEvent; const isPrimaryPointer = !isMouseEvent2 || isMouseEvent2 && event.button === 0; if (isPrimaryPointer) { eventHandler(event); } }; } var defaultPagePoint = { pageX: 0, pageY: 0 }; function pointFromTouch(e, pointType = "page") { const primaryTouch = e.touches[0] || e.changedTouches[0]; const point = primaryTouch || defaultPagePoint; return { x: point[`${pointType}X`], y: point[`${pointType}Y`] }; } function pointFromMouse(point, pointType = "page") { return { x: point[`${pointType}X`], y: point[`${pointType}Y`] }; } function extractEventInfo(event, pointType = "page") { return { point: isTouchEvent(event) ? pointFromTouch(event, pointType) : pointFromMouse(event, pointType) }; } function getViewportPointFromEvent(event) { return extractEventInfo(event, "client"); } var wrapPointerEventHandler = (handler, shouldFilterPrimaryPointer = false) => { const listener = (event) => handler(event, extractEventInfo(event)); return shouldFilterPrimaryPointer ? filterPrimaryPointer(listener) : listener; }; var supportsPointerEvents = () => isBrowser && window.onpointerdown === null; var supportsTouchEvents = () => isBrowser && window.ontouchstart === null; var supportsMouseEvents = () => isBrowser && window.onmousedown === null; var mouseEventNames = { pointerdown: "mousedown", pointermove: "mousemove", pointerup: "mouseup", pointercancel: "mousecancel", pointerover: "mouseover", pointerout: "mouseout", pointerenter: "mouseenter", pointerleave: "mouseleave" }; var touchEventNames = { pointerdown: "touchstart", pointermove: "touchmove", pointerup: "touchend", pointercancel: "touchcancel" }; function getPointerEventName(name) { if (supportsPointerEvents()) { return name; } if (supportsTouchEvents()) { return touchEventNames[name]; } if (supportsMouseEvents()) { return mouseEventNames[name]; } return name; } function addPointerEvent(target, eventName, handler, options) { return addDomEvent( target, getPointerEventName(eventName), wrapPointerEventHandler(handler, eventName === "pointerdown"), options ); } function isMultiTouchEvent(event) { return isTouchEvent(event) && event.touches.length > 1; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { addPointerEvent, extractEventInfo, getPointerEventName, getViewportPointFromEvent, isMouseEvent, isMultiTouchEvent, isTouchEvent, wrapPointerEventHandler });