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.
8 lines
2.6 KiB
8 lines
2.6 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 ../../../core/clock ../../../core/MapUtils ../../../core/maybe ../InputHandler ./support".split(" "),function(h,n,p,k,q,d){class r extends q.InputHandler{constructor(a=d.DefaultParameters.maximumDoubleClickDelay,b=d.DefaultParameters.maximumDoubleClickDistance,c=d.DefaultParameters.maximumDoubleTouchDelay,e=d.DefaultParameters.maximumDoubleTouchDistance,f=n.clock){super(!1);this._maximumDoubleClickDelay=a;this._maximumDoubleClickDistance=b;this._maximumDoubleTouchDelay=c;this._maximumDoubleTouchDistance= |
|
e;this._clock=f;this._pointerState=new Map;this._click=this.registerOutgoing("click");this._doubleClick=this.registerOutgoing("double-click");this.registerIncoming("immediate-click",this._handleImmediateClick.bind(this));this.registerIncoming("pointer-down",this._handlePointerDown.bind(this))}onUninstall(){this._pointerState.forEach(a=>a.doubleClickTimer=k.removeMaybe(a.doubleClickTimer))}get hasPendingInputs(){return p.someMap(this._pointerState,a=>null!=a.doubleClickTimer)}_clearDoubleClickTimer(a, |
|
b){const c=this._pointerState.get(a);c&&(c.doubleClickTimer=k.removeMaybe(c.doubleClickTimer),b&&this._click.emit(c.event.data,void 0,c.event.modifiers),this._pointerState.delete(a),this.refreshHasPendingInputs())}_doubleClickTimeoutExceeded(a){const b=this._pointerState.get(a);1===b.pointerDownCount&&this._click.emit(b.event.data,void 0,b.event.modifiers);b.doubleClickTimer=null;this._pointerState.delete(a);this.refreshHasPendingInputs()}_handleImmediateClick(a){const b=a.data;var {pointerType:c}= |
|
b.native;const {pointerId:e,pointerType:f,button:t}=b.native;var g="mouse"===f?`${e}:${t}`:`${f}`;if(this._pointerState.has(g)){var l=this._pointerState.get(g),{data:m,modifiers:u}=l.event;c="touch"===c?this._maximumDoubleTouchDistance:this._maximumDoubleClickDistance;d.manhattanDistance(m,b)>c?(this._clearDoubleClickTimer(g,!0),this._startClick(a)):(this._clearDoubleClickTimer(g,!1),2===l.pointerDownCount&&this._doubleClick.emit(m,void 0,u))}else this._startClick(a)}_handlePointerDown(a){a=d.getPointerId(a.data); |
|
if(a=this._pointerState.get(a))a.pointerDownCount+=1}_startClick(a){var {data:b}=a;const {native:{pointerType:c}}=b,e=d.getPointerId(b);b=this._clock.setTimeout(()=>this._doubleClickTimeoutExceeded(e),"touch"===c?this._maximumDoubleTouchDelay:this._maximumDoubleClickDelay);this._pointerState.set(e,{event:a,doubleClickTimer:b,pointerDownCount:1});this.refreshHasPendingInputs()}}h.SingleAndDoubleClick=r;Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})}); |