UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 2.41 kB
import{_ as t}from"../../../../chunks/tslib.es6.js";import"../../../../geometry.js";import o from"../../../../core/Accessor.js";import e from"../../../../core/Logger.js";import{deg2rad as i}from"../../../../core/mathUtils.js";import{isNone as s,isSome as r}from"../../../../core/maybe.js";import{isAbortError as a}from"../../../../core/promiseUtils.js";import{property as l}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/accessorSupport/ensureType.js";import"../../../../core/arrayUtils.js";import{subclass as n}from"../../../../core/accessorSupport/decorators/subclass.js";import p from"../../../../geometry/Point.js";import c from"./FlowDisplayData.js";import{FlowDisplayObject as m}from"./FlowDisplayObject.js";import d from"../../../../geometry/Extent.js";const h=1.15;let y=class extends o{constructor(t){super(t),this._flowDisplayObject=new m,this._loading=null}initialize(){this.flowContainer.addChild(this._flowDisplayObject)}destroy(){this._clear(),this.flowContainer.removeAllChildren()}get updating(){return null!=this._loading}update(t){const{flowStyle:o}=this.flowContainer;if(s(o))return void this._clear();const{extent:i,rotation:l,resolution:n,pixelRatio:p}=t.state,m=u(i,l);m.expand(h);const d=[Math.round((m.xmax-m.xmin)/n),Math.round((m.ymax-m.ymin)/n)],y=new c(o,m,d,p);if(r(this._loading)){if(this._loading.update(y))return;this._loading.detach(),this._loading=null}!s(this._flowDisplayObject.displayData)&&this._flowDisplayObject.displayData.update(y)||(y.load().then((()=>{this._flowDisplayObject.clear(),this._flowDisplayObject.displayData=this._loading,this._loading=null}),(t=>{a(t)||(e.getLogger(this.declaredClass).error("A resource failed to load.",t),this._loading=null)})),this._loading=y)}_clear(){this._flowDisplayObject.clear(),r(this._loading)&&(this._loading.detach(),this._loading=null)}};t([l()],y.prototype,"_loading",void 0),t([l()],y.prototype,"flowContainer",void 0),t([l()],y.prototype,"updating",null),y=t([n("esri.views.2d.engine.flow.FlowStrategy")],y);const f=y;function u(t,o){const e=new p({x:(t.xmax+t.xmin)/2,y:(t.ymax+t.ymin)/2,spatialReference:t.spatialReference}),s=t.xmax-t.xmin,r=t.ymax-t.ymin,a=Math.abs(Math.cos(i(o))),l=Math.abs(Math.sin(i(o))),n=a*s+l*r,c=l*s+a*r,m=new d({xmin:e.x-n/2,ymin:e.y-c/2,xmax:e.x+n/2,ymax:e.y+c/2,spatialReference:t.spatialReference});return m.centerAt(e),m}export{f as default};