UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

6 lines (5 loc) 3.65 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import{_ as i}from"../../../chunks/tslib.es6.js";import s from"../../../core/Accessor.js";import{destroyHandle as t}from"../../../core/handleUtils.js";import"../../../core/has.js";import o from"../../../core/Logger.js";import{abortMaybe as e,destroyMaybe as n}from"../../../core/maybe.js";import{mapCollection as a}from"../../../core/reactiveUtils.js";import{property as r}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/RandomLCG.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{AnalysisView3D as m}from"./AnalysisView3D.js";import{DimensionController as p}from"./Dimension/DimensionController.js";import{DimensionTool as c}from"./Dimension/DimensionTool.js";import{DimensionVisualization as u}from"./Dimension/DimensionVisualization.js";import{LengthDimensionComputation as d}from"./Dimension/LengthDimensionComputation.js";import{applyProjectionAndElevationAlignment as h,logFailedGeometryProjectionError as y}from"./support/projectionUtils.js";import{connectAnalysisViewToTool as _,removeAnalysisViewTool as j,activateAnalysisViewTool as D}from"../../analysis/analysisViewUtils.js";import f from"../../analysis/DimensionAnalysisView.js";let g=class extends(f(m(s))){constructor(i){super(i),this.type="dimension-view-3d",this.tool=null,this.selectedDimension=null,this._dimensionsToComputations=new Map,this._placementTask=null,this._projectAndAlignPoint=null}initialize(){this._projectAndAlignPoint=i=>{if(null==i)return null;const{spatialReference:s,elevationProvider:t}=this.view,e=h(i,s,t);return null==e&&y(this.analysis,i.spatialReference,o.getLogger(this)),e};const i=a((()=>this.analysis.dimensions),(i=>this._createComputation(i)));this.computations=i,this.addHandles([_(this,c),t(i)]),this._analysisVisualization=new u({analysisViewData:this,view:this.view,isDecoration:!this.parent}),this._analysisController=new p({analysisViewData:this,view:this.view})}destroy(){this._placementTask=e(this._placementTask),this._analysisVisualization=n(this._analysisVisualization),j(this)}get updating(){return this._analysisVisualization?.loadingMessages??!1}get results(){return this.analysis.dimensions.map((i=>this._dimensionsToComputations.get(i).result))}get selectedComputation(){const{selectedDimension:i}=this;return null==i?null:this._dimensionsToComputations.get(i)}get testInfo(){}async createLengthDimensions(i){return this.selectedDimension=null,this._placementTask=e(this._placementTask),this._placementTask=D(this,i),this._placementTask.promise}_createComputation(i){const{_dimensionsToComputations:s}=this,t=new d({dimension:i,projectAndAlignPoint:this._projectAndAlignPoint});return s.set(i,t),{computation:t,remove:()=>this._removeComputation(t)}}_removeComputation(i){const{dimension:s}=i;s===this.selectedDimension&&(this.selectedDimension=null),this._dimensionsToComputations.delete(s),i.destroy()}};i([r({readOnly:!0})],g.prototype,"type",void 0),i([r()],g.prototype,"tool",void 0),i([r()],g.prototype,"updating",null),i([r({readOnly:!0})],g.prototype,"results",null),i([r()],g.prototype,"computations",void 0),i([r()],g.prototype,"selectedDimension",void 0),i([r()],g.prototype,"selectedComputation",null),i([r()],g.prototype,"_analysisVisualization",void 0),i([r()],g.prototype,"_analysisController",void 0),i([r()],g.prototype,"_dimensionsToComputations",void 0),i([r()],g.prototype,"_placementTask",void 0),g=i([l("esri.views.3d.analysis.DimensionAnalysisView3D")],g);const v=g;export{v as default};