/* interact.js 1.10.27 | https://raw.github.com/taye/interact.js/main/LICENSE */ import browser from"../utils/browser.prod.js";import domObjects from"../utils/domObjects.prod.js";import{nodeContains}from"../utils/domUtils.prod.js";import*as pointerUtils from"../utils/pointerUtils.prod.js";import interactablePreventDefault from"./interactablePreventDefault.prod.js";import{Interaction}from"./Interaction.prod.js";import finder from"./interactionFinder.prod.js";import"../utils/is.prod.js";import"../utils/window.prod.js";import"../utils/arr.prod.js";import"../utils/extend.prod.js";import"../utils/hypot.prod.js";import"../utils/misc.prod.js";import"../utils/rect.prod.js";import"./InteractEvent.prod.js";import"../utils/getOriginXY.prod.js";import"./BaseEvent.prod.js";import"./options.prod.js";import"./PointerInfo.prod.js";const methodNames=["pointerDown","pointerMove","pointerUp","updatePointer","removePointer","windowBlur"];function install(e){const t={};for(const o of methodNames)t[o]=doOnInteractions(o,e);const o=browser.pEventTypes;let n;function r(){for(const t of e.interactions.list)if(t.pointerIsDown&&"touch"===t.pointerType&&!t._interacting)for(const o of t.pointers)e.documents.some((e=>{let{doc:t}=e;return nodeContains(t,o.downTarget)}))||t.removePointer(o.pointer,o.event)}n=domObjects.PointerEvent?[{type:o.down,listener:r},{type:o.down,listener:t.pointerDown},{type:o.move,listener:t.pointerMove},{type:o.up,listener:t.pointerUp},{type:o.cancel,listener:t.pointerUp}]:[{type:"mousedown",listener:t.pointerDown},{type:"mousemove",listener:t.pointerMove},{type:"mouseup",listener:t.pointerUp},{type:"touchstart",listener:r},{type:"touchstart",listener:t.pointerDown},{type:"touchmove",listener:t.pointerMove},{type:"touchend",listener:t.pointerUp},{type:"touchcancel",listener:t.pointerUp}],n.push({type:"blur",listener(t){for(const o of e.interactions.list)o.documentBlur(t)}}),e.prevTouchTime=0,e.Interaction=class extends Interaction{get pointerMoveTolerance(){return e.interactions.pointerMoveTolerance}set pointerMoveTolerance(t){e.interactions.pointerMoveTolerance=t}_now(){return e.now()}},e.interactions={list:[],new(t){t.scopeFire=(t,o)=>e.fire(t,o);const o=new e.Interaction(t);return e.interactions.list.push(o),o},listeners:t,docEvents:n,pointerMoveTolerance:1},e.usePlugin(interactablePreventDefault)}function doOnInteractions(e,t){return function(o){const n=t.interactions.list,r=pointerUtils.getPointerType(o),[i,s]=pointerUtils.getEventTargets(o),p=[];if(/^touch/.test(o.type)){t.prevTouchTime=t.now();for(const e of o.changedTouches){const n=e,c={pointer:n,pointerId:pointerUtils.getPointerId(n),pointerType:r,eventType:o.type,eventTarget:i,curEventTarget:s,scope:t},a=getInteraction(c);p.push([c.pointer,c.eventTarget,c.curEventTarget,a])}}else{let e=!1;if(!browser.supportsPointerEvent&&/mouse/.test(o.type)){for(let t=0;t=0;e--){const n=t.interactions.list[e];n.interactable===o&&(n.stop(),t.fire("interactions:destroy",{interaction:n}),n.destroy(),t.interactions.list.length>2&&t.interactions.list.splice(e,1))}}},onDocSignal:onDocSignal,doOnInteractions:doOnInteractions,methodNames:methodNames};export{interactions as default}; //# sourceMappingURL=interactions.prod.js.map