12345 |
- /*
- All material copyright ESRI, All Rights Reserved, unless otherwise specified.
- See https://js.arcgis.com/4.25/esri/copyright.txt for details.
- */
- import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../analysis/AreaMeasurementAnalysis.js";import{isSome as s,isNone as i,unwrap as r}from"../../core/maybe.js";import{watch as n,syncAndInitial as a}from"../../core/reactiveUtils.js";import{measurementAreaUnits as l}from"../../core/unitUtils.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/accessorSupport/ensureType.js";import{subclass as u}from"../../core/accessorSupport/decorators/subclass.js";import{defaultUnitPropertyMetadata as p}from"../../properties/defaultUnit.js";import d from"../../views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DTool.js";import{InteractiveAnalysisViewModel as c}from"../support/InteractiveAnalysisViewModel.js";let m=class extends c{constructor(t){super(t),this.analysis=null,this.supportedViewType="3d",this.unsupportedErrorMessage="AreaMeasurement3DViewModel is only supported in 3D views.",this._userUnitOptions=null,this._userUnit=null}initialize(){this.addHandles(n((()=>({analysis:this.analysis,unit:this.unit})),(({analysis:t,unit:e})=>{s(t)&&(t.unit=e)}),a))}get state(){return this.disabled||!this.ready?"disabled":i(this.tool)?"ready":this.tool.state}get measurement(){if(i(this.tool)||this.disabled||this.tool.destroyed)return null;const{analysisView:t}=this;if(i(t))return null;const e=t.analysisVisualization,s=e.viewData,r=s.measurementData,n=t.validMeasurement,a="euclidean"===s.mode,l=0===(a?r.intersectingSegments:r.geodesicIntersectingSegments).size,o=l?n?"available":"unavailable":"invalid";return{mode:a?"euclidean":"geodesic",area:{text:l&&n?e.areaLabel:null,state:o},perimeterLength:{text:l&&n?e.perimeterLengthLabel:null,state:o}}}set unitOptions(t){this._userUnitOptions=t,this._set("unitOptions",this._filteredOrAllUnits(this._userUnitOptions))}get unitOptions(){return this._filteredOrAllUnits(this._userUnitOptions)}set unit(t){this._userUnit=t?this._findSelectableUnit(t,this._userUnit):null}get unit(){return s(this._userUnit)?(this._userUnit=this._findSelectableUnit(this._userUnit,this.defaultUnit),this._userUnit):this._findSelectableUnit(this.defaultUnit)}constructAnalysis(){return new e}constructTool(){return new d({view:r(this.view),analysis:this.analysis,analysisViewData:r(this.analysisView),visible:this.visible})}_findSelectableUnit(t,e){const{unitOptions:i}=this;return i.includes(t)?t:s(e)?this._findSelectableUnit(e):i[0]}_filteredOrAllUnits(t){if(i(t))return l.slice();const e=t.filter((t=>l.includes(t)));return 0===e.length?l.slice():e}};t([o({type:e})],m.prototype,"analysis",void 0),t([o({readOnly:!0})],m.prototype,"state",null),t([o({readOnly:!0})],m.prototype,"measurement",null),t([o()],m.prototype,"unitOptions",null),t([o()],m.prototype,"unit",null),t([o(p)],m.prototype,"defaultUnit",void 0),t([o()],m.prototype,"_userUnit",void 0),m=t([u("esri.widgets.AreaMeasurement3D.AreaMeasurement3DViewModel")],m);const h=m;export{h as default};
|