@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 5.1 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{_ as e}from"../../../../../chunks/tslib.es6.js";import t from"../../../../../Graphic.js";import{makeHandle as i}from"../../../../../core/handleUtils.js";import{destroyMaybe as r}from"../../../../../core/maybe.js";import{watch as s,initial as a}from"../../../../../core/reactiveUtils.js";import{property as l}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/has.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as n}from"../../../../../core/accessorSupport/decorators/subclass.js";import o from"../../../../../geometry/Multipoint.js";import c from"../../../../../geometry/Point.js";import{SnappingVisualizer2D as h}from"../../SnappingVisualizer2D.js";import{activeVertex as m,regularVertices as p,outline as u}from"./symbols.js";import{DrawGraphicTool as v,geometryTypeToDrawOperationGeometryType as y}from"../../../../draw/DrawGraphicTool.js";import{DrawOperation as d}from"../../../../draw/DrawOperation.js";import{MapDrawSurface as g}from"../../../../draw/drawSurfaces.js";let E=class extends v{constructor(e){super(e),this._visualElementGraphics={regularVertices:null,activeVertex:null,activeEdge:null},this.activeFillSymbol=null,this.type="draw-2d",this._visualElementSymbols={outline:e.activeLineSymbol??u,regularVertices:e.regularVerticesSymbol??p,activeVertex:e.activeVertexSymbol??m,fill:e.activeFillSymbol},e.activeVertexSymbol||this.addHandles(s((()=>this.view?.effectiveTheme?.accentColor),(e=>{if(!e)return;const t=this._visualElementSymbols.activeVertex.clone().set({color:e});this._visualElementGraphics.activeVertex?.set("symbol",t),this._visualElementSymbols={...this._visualElementSymbols,activeVertex:t}}),a))}normalizeCtorArgs(e){const t={...e};return delete t.activeFillSymbol,delete t.activeVertexSymbol,delete t.regularVerticesSymbol,delete t.activeLineSymbol,t}initializeGraphic(e){return null!=this._visualElementSymbols.fill&&(e.symbol=this._visualElementSymbols.fill),this.internalGraphicsLayer.graphics.sort(G),i()}makeDrawOperation(){const{defaultZ:e,hasZ:t,view:i}=this;return this._createOrUpdateGraphic(null),new d({view:i,manipulators:this.manipulators,geometryType:y(this.geometryType),drawingMode:this.mode,hasZ:t,defaultZ:e,snapToSceneEnabled:this.snapToScene,drawSurface:new g(i,t,e),hasM:!1,snappingManager:this.snappingManager,snappingVisualizer:new h(this.internalGraphicsLayer),graphic:this.graphic,cursor:this.cursor,constraintsEnabled:!0,automaticLengthMeasurementUtils:this.automaticLengthMeasurementUtils})}onActiveVertexChanged(e){if("point"===this.geometryType)return i();const[s,a]=e,l=new c({x:s,y:a,spatialReference:this.view.spatialReference});return null!=this._visualElementGraphics.activeVertex?(this._visualElementGraphics.activeVertex.geometry=l,i()):(this._visualElementGraphics.activeVertex=new t({geometry:l,symbol:this._visualElementSymbols.activeVertex,attributes:{displayOrder:2}}),this.internalGraphicsLayer.add(this._visualElementGraphics.activeVertex),this.internalGraphicsLayer.graphics.sort(G),i((()=>{null!=this._visualElementGraphics.activeVertex&&(this.internalGraphicsLayer.remove(this._visualElementGraphics.activeVertex),this._visualElementGraphics.activeVertex=r(this._visualElementGraphics.activeVertex))})))}onCursorEdgeChanged(e){return null!=this._visualElementGraphics.activeEdge?(this._visualElementGraphics.activeEdge.geometry=e,i()):(this._visualElementGraphics.activeEdge=new t({geometry:e,symbol:this._visualElementSymbols.outline,attributes:{displayOrder:0}}),this.internalGraphicsLayer.add(this._visualElementGraphics.activeEdge),this.internalGraphicsLayer.graphics.sort(G),i((()=>{null!=this._visualElementGraphics.activeEdge&&(this.internalGraphicsLayer.remove(this._visualElementGraphics.activeEdge),this._visualElementGraphics.activeEdge=r(this._visualElementGraphics.activeEdge))})))}onRegularVerticesChanged(e){const s=new o({points:e,spatialReference:this.view.spatialReference});return null!=this._visualElementGraphics.regularVertices?(this._visualElementGraphics.regularVertices.geometry=s,i()):(this._visualElementGraphics.regularVertices=new t({geometry:s,symbol:this._visualElementSymbols.regularVertices,attributes:{displayOrder:1}}),this.internalGraphicsLayer.add(this._visualElementGraphics.regularVertices),this.internalGraphicsLayer.graphics.sort(G),i((()=>{null!=this._visualElementGraphics.regularVertices&&(this.internalGraphicsLayer.remove(this._visualElementGraphics.regularVertices),this._visualElementGraphics.regularVertices=r(this._visualElementGraphics.regularVertices))})))}};function G(e,t){return(e.attributes?.displayOrder??-1/0)-(t.attributes?.displayOrder??-1/0)}e([l()],E.prototype,"activeFillSymbol",void 0),e([l({readOnly:!0})],E.prototype,"type",void 0),e([l({constructOnly:!0,nonNullable:!0})],E.prototype,"view",void 0),E=e([n("esri.views.2d.interactive.editingTools.draw.DrawGraphicTool2D")],E);export{E as DrawGraphicTool2D};