import{Scope as e,SignalArgs as t}from"./scope.prod.js";import o from"../utils/browser.prod.js";import n from"../utils/domObjects.prod.js";import{nodeContains as r}from"../utils/domUtils.prod.js";import*as i from"../utils/pointerUtils.prod.js";import s from"./Interaction.prod.js";import p from"./interactablePreventDefault.prod.js";import c from"./interactionFinder.prod.js";const a=["pointerDown","pointerMove","pointerUp","updatePointer","removePointer","windowBlur"];function l(e,t){return n=>{const r=t.interactions.list,s=i.getPointerType(n),[p,c]=i.getEventTargets(n),a=[];if(/^touch/.test(n.type)){t.prevTouchTime=t.now();for(const e of n.changedTouches){const o=e,r={pointer:o,pointerId:i.getPointerId(o),pointerType:s,eventType:n.type,eventTarget:p,curEventTarget:c,scope:t},l=u(r);a.push([r.pointer,r.eventTarget,r.curEventTarget,l])}}else{let e=!1;if(!o.supportsPointerEvent&&/mouse/.test(n.type)){for(let t=0;tr(e,o.downTarget)))||t.removePointer(o.pointer,o.event)}c=n.PointerEvent?[{type:i.down,listener:u},{type:i.down,listener:t.pointerDown},{type:i.move,listener:t.pointerMove},{type:i.up,listener:t.pointerUp},{type:i.cancel,listener:t.pointerUp}]:[{type:"mousedown",listener:t.pointerDown},{type:"mousemove",listener:t.pointerMove},{type:"mouseup",listener:t.pointerUp},{type:"touchstart",listener:u},{type:"touchstart",listener:t.pointerDown},{type:"touchmove",listener:t.pointerMove},{type:"touchend",listener:t.pointerUp},{type:"touchcancel",listener:t.pointerUp}],c.push({type:"blur",listener(t){for(const o of e.interactions.list)o.documentBlur(t)}}),e.prevTouchTime=0,e.Interaction=class extends s{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:c,pointerMoveTolerance:1},e.usePlugin(p)},listeners:{"scope:add-document":e=>d(e,"add"),"scope:remove-document":e=>d(e,"remove"),"interactable:unset"({interactable:e},t){for(let o=t.interactions.list.length-1;o>=0;o--){const n=t.interactions.list[o];n.interactable===e&&(n.stop(),t.fire("interactions:destroy",{interaction:n}),n.destroy(),t.interactions.list.length>2&&t.interactions.list.splice(o,1))}}},onDocSignal:d,doOnInteractions:l,methodNames:a};export default v; //# sourceMappingURL=interactions.prod.js.map