You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
9 lines
2.8 KiB
9 lines
2.8 KiB
// All material copyright Esri, All Rights Reserved, unless otherwise specified. |
|
// See https://js.arcgis.com/4.30/esri/copyright.txt for details. |
|
//>>built |
|
define(["exports","../DragEventSeparator","../InputHandler"],function(p,q,r){class t extends r.InputHandler{constructor(c=20,a=40){super(!1);this._threshold=c;this._maxDelta=a;this._state="ready";this._emittedArtificalEnd2=!1;this._vertical=this.registerOutgoing("vertical-two-finger-drag");this._artificalDrag=this.registerOutgoing("drag");this._dragEventSeparator=new q.DragEventSeparator({start:(b,d)=>this._observeStart(b,d),update:(b,d,e)=>this._observeUpdate(b,d,e),end:(b,d)=>this._observeEnd(d)}); |
|
this.registerIncoming("drag",b=>this._dragEventSeparator.handle(b))}get failed(){return"failed"===this._state}_observeStart(c,a){1===c&&this._emittedArtificalEnd2&&(this._emittedArtificalEnd2=!1,this._artificalDrag.emit({action:"start",button:a.data.button,buttons:a.data.buttons,pointerType:a.data.pointerType,timestamp:a.data.timestamp,pointers:a.data.pointers,pointer:a.data.pointer,angle:a.data.angle,radius:a.data.radius,center:a.data.center}),a.stopPropagation());this._state=2===c?"ready":"failed"}_observeUpdate(c, |
|
a,b){"failed"!==this._state&&2===c&&("active"===this._state?(this._vertical.emit({delta:a.data.center.y-this._thresholdReachedCenter.y,action:"update"}),a.stopPropagation()):this._checkMovementWithinLimits(a.data,b.data)?this._checkVerticalThresholdReached(a.data,b.data)&&(this._state="active",this._emittedArtificalEnd2=!0,this._thresholdReachedCenter=a.data.center,this._artificalDrag.emit({action:"end",button:a.data.button,buttons:a.data.buttons,pointerType:a.data.pointerType,timestamp:a.data.timestamp, |
|
pointers:a.data.pointers,pointer:a.data.pointer,angle:a.data.angle,radius:a.data.radius,center:a.data.center}),this._vertical.emit({delta:a.data.center.y-this._thresholdReachedCenter.y,action:"begin"}),a.stopPropagation()):this._state="failed")}_observeEnd(c){"active"===this._state&&(this._vertical.emit({delta:c.data.center.y-this._thresholdReachedCenter.y,action:"end"}),this._state="ready",c.stopPropagation())}_checkMovementWithinLimits(c,a){let b=-Infinity,d=Infinity,e=-Infinity,h=Infinity;for(const {x:f, |
|
y:g}of a.pointers.values())b=Math.max(b,f),d=Math.min(d,f),e=Math.max(e,g),h=Math.min(h,g);let k=-Infinity,l=Infinity,m=-Infinity,n=Infinity;for(const {x:f,y:g}of c.pointers.values())k=Math.max(k,f),l=Math.min(l,f),m=Math.max(m,g),n=Math.min(n,g);return Math.abs(c.center.x-a.center.x)<this._threshold&&Math.abs(k-l-(b-d))<=this._maxDelta&&Math.abs(m-n-(e-h))<=this._maxDelta}_checkVerticalThresholdReached(c,a){let b=Math.abs(c.center.y-a.center.y);c.pointers.forEach((d,e)=>{e=a.pointers.get(e);b=Math.min(b, |
|
Math.abs(d.y-e.y))});return b>=this._threshold}}p.VerticalTwoFingerDrag=t;Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})}); |