@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.67 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{rad2deg as t,deg2rad as e}from"../../../../../core/mathUtils.js";import{EventPipeline as a}from"../../../../interactive/dragEventPipeline.js";function n(t,e){"start"===t.action?e.cursor="grabbing":e.cursor="grab"}class s{constructor(){this._lastDragEvent=null,this.next=new a,this._enabled=!1}get enabled(){return this._enabled}set enabled(t){if(this._enabled!==t&&null!=this._lastDragEvent){const e={...this._lastDragEvent,action:"update"};t&&this._adjustScaleFactors(e),this.next.execute(e)}this._enabled=t}createDragEventPipelineStep(){return this._lastDragEvent=null,t=>(this._lastDragEvent="end"!==t.action?{...t}:null,this._enabled&&this._adjustScaleFactors(t),t)}_adjustScaleFactors(t){const e=0!==t.direction[0]&&0!==t.direction[1]?Math.max(Math.abs(t.factor1),Math.abs(t.factor2)):0===t.direction[0]?Math.abs(t.factor2):Math.abs(t.factor1);t.factor1=t.factor1<0?-e:e,t.factor2=t.factor2<0?-e:e}}class r{constructor(){this._lastDragEvent=null,this.next=new a,this._enabled=!1}get enabled(){return this._enabled}set enabled(t){if(this._enabled!==t&&null!=this._lastDragEvent){const e={...this._lastDragEvent,action:"update"};t&&this._adjustRotateAngle(e),this.next.execute(e)}this._enabled=t}createDragEventPipelineStep(){return this._lastDragEvent=null,t=>(this._lastDragEvent="end"!==t.action?{...t}:null,this._enabled&&this._adjustRotateAngle(t),t)}_adjustRotateAngle(a){const n=t(a.rotateAngle);a.rotateAngle=e(5*Math.round(n/5))}}export{s as PreserveAspectRatio,r as SnapRotation,n as onGrabChangedHandle};