UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 1.57 kB
import{rad2deg as t,deg2rad as e}from"../../../../../core/mathUtils.js";import{isSome as a}from"../../../../../core/maybe.js";import{EventPipeline as n}from"../../../../interactive/dragEventPipeline.js";function s(t,e){"start"===t.action?e.cursor="grabbing":e.cursor="grab"}class r{constructor(){this._lastDragEvent=null,this.next=new n,this._enabled=!1}get enabled(){return this._enabled}set enabled(t){if(this._enabled!==t&&a(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 i{constructor(){this._lastDragEvent=null,this.next=new n,this._enabled=!1}get enabled(){return this._enabled}set enabled(t){if(this._enabled!==t&&a(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{r as PreserveAspectRatio,i as SnapRotation,s as onGrabChangedHandle};