@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
3 lines (2 loc) • 1.29 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */
import{makeHandle as t}from"../../../../../core/handleUtils.js";import{screenToMapXYForManipulatedObject as i}from"../dragEventPipeline3D.js";import{Manipulation as e}from"./Manipulation.js";import{createManipulatedMoveDragPipeline as o}from"./moveUtils.js";import{createManipulatorDragEventPipeline as r,addMapDelta as a,addScreenDelta as s}from"../../../../interactive/dragEventPipeline.js";class n extends e{constructor(t){super(),this._view=t.view,this._tool=t.tool,this._object=t.object,this._manipulator=this._object.createManipulator?.({selectable:!0,cursor:"move"}),this.forEachManipulator(t=>this._tool.manipulators.add(t))}destroy(){this.forEachManipulator(t=>{this._tool.manipulators.remove(t),t.destroy()}),this._tool=null,this._view=null,this._manipulator=null}forEachManipulator(t){this._manipulator&&t(this._manipulator,1)}createManipulatedObjectDragPipeline(t){return o(this._object,t,t=>this.createDragPipeline(t))}createDragPipeline(e){if(!this._manipulator)return t();const o=this._view;return r(this._manipulator,(t,r,n,l,p)=>{const h=this._object.operations?.data.spatialReference,c=r.next(t=>h?t:null).next(i(p,o,this._object,h)).next(a()).next(s());e(t,c,n,l,p)})}}export{n as MoveXYObjectManipulation};