5 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			5 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* interact.js 1.10.27 | https://raw.github.com/taye/interact.js/main/LICENSE */
 | 
						|
 | 
						|
import*as domUtils from"../utils/domUtils.prod.js";import extend from"../utils/extend.prod.js";import getOriginXY from"../utils/getOriginXY.prod.js";import{PointerEvent}from"./PointerEvent.prod.js";const defaults={holdDuration:600,ignoreFrom:null,allowFrom:null,origin:{x:0,y:0}},pointerEvents={id:"pointer-events/base",before:["inertia","modifiers","auto-start","actions"],install:install,listeners:{"interactions:new":addInteractionProps,"interactions:update-pointer":addHoldInfo,"interactions:move":moveAndClearHold,"interactions:down"(t,e){downAndStartHold(t,e),fire(t,e)},"interactions:up"(t,e){clearHold(t),fire(t,e),tapAfterUp(t,e)},"interactions:cancel"(t,e){clearHold(t),fire(t,e)}},PointerEvent:PointerEvent,fire:fire,collectEventTargets:collectEventTargets,defaults:defaults,types:{down:!0,move:!0,up:!0,cancel:!0,tap:!0,doubletap:!0,hold:!0}};function fire(t,e){const{interaction:n,pointer:o,event:r,eventTarget:i,type:a,targets:l=collectEventTargets(t,e)}=t,s=new PointerEvent(a,o,r,i,n,e.now());e.fire("pointerEvents:new",{pointerEvent:s});const p={interaction:n,pointer:o,event:r,eventTarget:i,targets:l,type:a,pointerEvent:s};for(let t=0;t<l.length;t++){const e=l[t];for(const t in e.props||{})s[t]=e.props[t];const n=getOriginXY(e.eventable,e.node);if(s._subtractOrigin(n),s.eventable=e.eventable,s.currentTarget=e.node,e.eventable.fire(s),s._addOrigin(n),s.immediatePropagationStopped||s.propagationStopped&&t+1<l.length&&l[t+1].node!==s.currentTarget)break}if(e.fire("pointerEvents:fired",p),"tap"===a){const t=s.double?fire({interaction:n,pointer:o,event:r,eventTarget:i,type:"doubletap"},e):s;n.prevTap=t,n.tapTime=t.timeStamp}return s}function collectEventTargets(t,e){let{interaction:n,pointer:o,event:r,eventTarget:i,type:a}=t;const l=n.getPointerIndex(o),s=n.pointers[l];if("tap"===a&&(n.pointerWasMoved||!s||s.downTarget!==i))return[];const p=domUtils.getPath(i),d={interaction:n,pointer:o,event:r,eventTarget:i,type:a,path:p,targets:[],node:null};for(const t of p)d.node=t,e.fire("pointerEvents:collect-targets",d);return"hold"===a&&(d.targets=d.targets.filter((t=>{var e,o;return t.eventable.options.holdDuration===(null==(e=n.pointers[l])||null==(o=e.hold)?void 0:o.duration)}))),d.targets}function addInteractionProps(t){let{interaction:e}=t;e.prevTap=null,e.tapTime=0}function addHoldInfo(t){let{down:e,pointerInfo:n}=t;!e&&n.hold||(n.hold={duration:1/0,timeout:null})}function clearHold(t){let{interaction:e,pointerIndex:n}=t;const o=e.pointers[n].hold;o&&o.timeout&&(clearTimeout(o.timeout),o.timeout=null)}function moveAndClearHold(t,e){const{interaction:n,pointer:o,event:r,eventTarget:i,duplicate:a}=t;a||n.pointerIsDown&&!n.pointerWasMoved||(n.pointerIsDown&&clearHold(t),fire({interaction:n,pointer:o,event:r,eventTarget:i,type:"move"},e))}function downAndStartHold(t,e){let{interaction:n,pointer:o,event:r,eventTarget:i,pointerIndex:a}=t;const l=n.pointers[a].hold,s=domUtils.getPath(i),p={interaction:n,pointer:o,event:r,eventTarget:i,type:"hold",targets:[],path:s,node:null};for(const t of s)p.node=t,e.fire("pointerEvents:collect-targets",p);if(!p.targets.length)return;let d=1/0;for(const t of p.targets){const e=t.eventable.options.holdDuration;e<d&&(d=e)}l.duration=d,l.timeout=setTimeout((()=>{fire({interaction:n,eventTarget:i,pointer:o,event:r,type:"hold"},e)}),d)}function tapAfterUp(t,e){let{interaction:n,pointer:o,event:r,eventTarget:i}=t;n.pointerWasMoved||fire({interaction:n,eventTarget:i,pointer:o,event:r,type:"tap"},e)}function install(t){t.pointerEvents=pointerEvents,t.defaults.actions.pointerEvents=pointerEvents.defaults,extend(t.actions.phaselessTypes,pointerEvents.types)}var pointerEvents$1=Object.freeze({__proto__:null,default:pointerEvents});export{pointerEvents as a,pointerEvents$1 as p};
 | 
						|
//# sourceMappingURL=base-PHHQHneY.js.map
 |