12345 |
- /*
- All material copyright ESRI, All Rights Reserved, unless otherwise specified.
- See https://js.arcgis.com/4.25/esri/copyright.txt for details.
- */
- import{_ as e}from"../../chunks/tslib.es6.js";import"../../geometry.js";import{destroyMaybe as t,isSome as i}from"../../core/maybe.js";import"../../core/Logger.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/Error.js";import"../../core/has.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import r from"./DrawAction.js";import{DrawTool as s}from"./DrawTool.js";import{CursorUpdateEvent as n,DrawCompleteEvent as a}from"./input/DrawEvents.js";import{ViewEventPriorities as h}from"../input/InputManager.js";import{SKETCH_KEYS as d}from"../interactive/keybindings.js";import{createScreenPointFromEvent as p}from"../support/screenUtils.js";import l from"../../geometry/Point.js";let _=class extends r{constructor(e){super(e),this._addVertexOnPointerUp=!1}initialize(){"2d"===this.view.type?this._addViewHandles():this._addDrawTool()}destroy(){"2d"===this.view.type?this._removeViewHandles():this._removeDrawTool(),this.emit("destroy")}complete(){"2d"===this.view.type?this._cursorScreenPoint&&this._completeDrawing():this._drawTool.completeCreateOperation()}_addViewHandles(){this._removeViewHandles(),this._handles.add([this.view.on("pointer-down",(e=>{this._shouldHandlePointerEvent(e)&&(this._abortSnapping(),this._activePointerId=e.pointerId,this._addVertexOnPointerUp=!0,this._cursorScreenPoint=p(e),"touch"===e.pointerType&&this._updateCursor(e.native))}),h.TOOL),this.view.on("pointer-move",(e=>{this._abortSnapping(),this._cursorScreenPoint=p(e),"touch"!==e.pointerType&&this._updateCursor(e.native)}),h.TOOL),this.view.on("pointer-drag",(e=>{this._shouldHandlePointerEvent(e)&&(this._abortSnapping(),this._addVertexOnPointerUp=!1)}),h.TOOL),this.view.on("pointer-up",(e=>{if(this._shouldHandlePointerEvent(e))if(this._abortSnapping(),this._activePointerId=null,this._addVertexOnPointerUp)e.stopPropagation(),this._vertexAddHandler(e);else{const t="touch"===e.pointerType;this._updateCursor(e.native,t)}}),h.TOOL),this.view.on("drag",["Shift"],(e=>{e.stopPropagation()}),h.TOOL),this.view.on("key-down",(e=>{e.key===d.complete&&this._cursorScreenPoint&&(this._abortSnapping(),this._vertexAddHandler(e))}),h.TOOL)],this._viewHandlesKey)}_removeViewHandles(){this._handles.remove(this._viewHandlesKey)}_addDrawTool(){this._drawTool=new s({view:this.view,elevationInfo:this.elevationInfo,hasZ:this.hasZ,geometryType:"point",mode:"click"}),this.view.addAndActivateTool(this._drawTool),this._handles.add([this._drawTool.on("cursor-update",(e=>{1===e.vertices.length&&this.emit("cursor-update",new n(this.view,null,e.vertices[0].vertexIndex,this._drawTool.getVertexCoords()))})),this._drawTool.on("complete",(e=>{this.emit("draw-complete",new a(null,this._drawTool.getVertexCoords())),this._removeDrawTool()}))],this._drawToolHandlesKey)}_removeDrawTool(){this._handles.remove(this._drawToolHandlesKey),this.view.tools.remove(this._drawTool),this._drawTool=t(this._drawTool)}_addVertex(e){const t=this._coordinateHelper.arrayToVector(e);this._isDuplicateOfLastVertex(t)||(this._lastVertexUnsnapped=this._stagedVertexUnsnapped,this._popCursorVertex(),this._editGeometryOperations.appendVertex(t),this.notifyChange("vertices"),this._completeDrawing())}_updateCursor(e,t=!1){if(this._popCursorVertex(),!this._cursorScreenPoint)return;const o=this.getCoordsAndPointFromScreenPoint(this._cursorScreenPoint);i(o)&&!t&&this._pushCursorVertex(o.vertex,(()=>this.emit("cursor-update",new n(this.view,e,this._activeComponent.vertices.length,this.vertices,i(this._stagedVertex)?new l(this._stagedVertex):null))))}_completeDrawing(e){this._activePointerId=null,this._popCursorVertex(),this._abortSnapping(),i(this._snappingManager)&&this._snappingManager.doneSnapping();const t=new a(e,this.vertices);this.emit("draw-complete",t),t.defaultPrevented||this._removeViewHandles()}};_=e([o("esri.views.draw.PointDrawAction")],_);export{_ as PointDrawAction};
|