@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
3 lines (2 loc) • 1.78 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.19/LICENSE.txt */
import{__decorate as e}from"tslib";import{watch as t,syncAndInitial as n,sync as i}from"../../../core/reactiveUtils.js";import{property as a,subclass as r}from"../../../core/accessorSupport/decorators.js";import{PluginBase as s}from"./PluginBase.js";const p=Symbol("primary-vertex");let o=class extends s{constructor(){super(...arguments),this.completeOnDragEnd=!0,this.snappingBehavior="never"}get _effectiveSnappingEnabled(){return"when-not-capturing"===this.snappingBehavior&&!this._interactiveHandle?.dragging}get helpMessageKey(){return this._interactiveHandle?.dragging?"freehandEnd":"freehandStart"}start(e){super.start(e);const{session:a,positionOfLastUserInput:r}=e;if(r&&a.appendOrReplacePoint(p,r),!this._interactiveHandle){const a=this._effectiveSnappingEnabled;this._interactiveHandle=e.createInteractiveHandle({defaultCaptureMode:"capture-when-engaged",snappingEnabled:a,selfSnappingEnabled:a},{disableDefaultXYFields:!0}),this.addHandles([t(()=>[!!this._interactiveHandle?.dragging,this._effectiveSnappingEnabled],([t,n],i)=>{const a=!!i?.[0],r=this._interactiveHandle;r&&(r.snappingEnabled=n,r.selfSnappingEnabled=n),this.completeOnDragEnd&&!t&&a&&e.requestComplete()},n),t(()=>this._interactiveHandle?.outputMapPosition,e=>{e&&!this._isComplete&&this._session?.appendOrReplacePoint(p,e,{forceAppend:!!this._interactiveHandle?.dragging})},i)],this._ownHandlesKey)}}};e([a()],o.prototype,"_interactiveHandle",void 0),e([a()],o.prototype,"_effectiveSnappingEnabled",null),e([a()],o.prototype,"completeOnDragEnd",void 0),e([a()],o.prototype,"snappingBehavior",void 0),e([a()],o.prototype,"helpMessageKey",null),o=e([r("esri.views.draw.plugins.FreehandSegmentPlugin")],o);export{o as FreehandSegmentPlugin};