@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 2.42 kB
JavaScript
import{_ as s}from"../../../chunks/tslib.es6.js";import{createTask as i}from"../../../core/asyncUtils.js";import e from"../../../core/Error.js";import{isSome as a,destroyMaybe as t,abortMaybe as r,isNone as o}from"../../../core/maybe.js";import{isAborted as n}from"../../../core/promiseUtils.js";import{watch as l,syncAndInitial as y}from"../../../core/reactiveUtils.js";import{property as h}from"../../../core/accessorSupport/decorators/property.js";import{subclass as w}from"../../../core/accessorSupport/decorators/subclass.js";import{LayerView3D as c}from"./LayerView3D.js";import p from"../../layers/LayerView.js";const d="analysis-view-handles";let V=class extends(c(p)){constructor(s){super(s),this.type="line-of-sight-3d",this._analysisModule=null}initialize(){this.handles.add(l((()=>this.layer.analysis),(s=>{this._destroyAnalysisView(),a(s)&&this._createAnalysisView(s)}),y),d)}destroy(){this.handles.remove(d),this._destroyAnalysisView()}async whenAnalysisView(){if(a(this.analysisView))return this.analysisView;if(a(this._createAnalysisViewTask))return this._createAnalysisViewTask.promise;throw new e("layerview:no-analysisview-for-analysis","The analysis has not been set on the LineOfSightLayer of this layer view")}isUpdating(){return a(this._createAnalysisViewTask)||a(this.analysisView)&&this.analysisView.updating}_createAnalysisView(s){const e=i((async i=>(this.analysisView=await this._createAnalysisViewPromise(s,i),this._createAnalysisViewTask===e&&(this._createAnalysisViewTask=null),this.analysisView)));this._createAnalysisViewTask=e}_destroyAnalysisView(){this.analysisView=t(this.analysisView),this._createAnalysisViewTask=r(this._createAnalysisViewTask)}async _createAnalysisViewPromise(s,i){let a=this._analysisModule;if(o(a)){const s=await this._loadAnalysisModule();this._analysisModule=s,a=s}const t=new a.default({analysis:s,view:this.view,parent:this});if(await t.when(),n(i))throw t.destroy(),new e("layerview:no-analysisview-for-analysis","The analysis has not been added to the LineOfSightLayer of this layer view",{analysis:s});return t}_loadAnalysisModule(){return import("../analysis/LineOfSightAnalysisView3D.js")}};s([h()],V.prototype,"type",void 0),s([h()],V.prototype,"layer",void 0),s([h()],V.prototype,"analysisView",void 0),s([h()],V.prototype,"_createAnalysisViewTask",void 0),V=s([w("esri.views.3d.layers.LineOfSightLayerView3D")],V);const m=V;export{m as default};