UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 4.76 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 e}from"../../../chunks/tslib.es6.js";import{measurementLengthUnits as t,measurementAreaUnits as s}from"../../../core/unitUtils.js";import{property as r}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{subclass as n}from"../../../core/accessorSupport/decorators/subclass.js";import a from"../../Widget.js";import{css as i}from"../css.js";import{ImageMeasurementMixin as c}from"../mixins/ImageMeasurementMixin.js";import{loadCalciteComponents as m}from"../../support/componentsUtils.js";import{tsx as o}from"../../support/jsxFactory.js";import{UnitSelect as l}from"../../support/UnitSelect.js";let u=class extends(c(a)){constructor(e){super(e)}loadDependencies(){return m({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),panel:()=>import("@esri/calcite-components/dist/components/calcite-panel"),button:()=>import("@esri/calcite-components/dist/components/calcite-button"),table:()=>import("@esri/calcite-components/dist/components/calcite-table"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon"),"table-row":()=>import("@esri/calcite-components/dist/components/calcite-table-row"),"table-header":()=>import("@esri/calcite-components/dist/components/calcite-table-header"),"table-cell":()=>import("@esri/calcite-components/dist/components/calcite-table-cell")})}get _measurementResult(){const{measurementType:e,oiViewModel:t}=this,{areaMeasurementResult:s,heightMeasurementResult:r,distanceMeasurementResult:n}=t;switch(e){case"area":return s;case"height":return r;case"distance":return n}}get _measurementAccuracy(){const{measurementType:e,oiViewModel:t}=this,{areaMeasurementAccuracy:s,heightMeasurementAccuracy:r,distanceAccuracyArray:n}=t;switch(e){case"area":return s;case"height":return r;case"distance":return n}}get _measurementUnit(){const{measurementType:e,pixelAreaMeasurementUnit:t,pixelMeasurementUnit:s}=this;return"area"===e?t:s}get _measurementUnitOptions(){const{measurementType:e}=this;return"area"===e?s:t}_convertedMeasurement(){const{measurementType:e}=this;switch(e){case"area":return this.getConvertedAreaString("measurement");case"height":return this.getConvertedHeightString("measurement");case"distance":return this.getConvertedDistanceString("measurement")}}_measurementUnitChangeHandler(e){const{measurementType:t}=this;if("area"===t)this.pixelAreaMeasurementUnit=e;else this.pixelMeasurementUnit=e}_renderUnitSelect(){const{_measurementUnit:e,_measurementResult:t,_measurementUnitOptions:s}=this;return t?o("div",{class:i.measurementsBar},o(l,{options:s,selectLabel:"",value:e,onChange:e=>this._measurementUnitChangeHandler(e)}),t?o("calcite-action",{bind:this,icon:"copy-to-clipboard",label:"copy",onclick:()=>this.copyMeasurementResult(this.measurementType),scale:"s",text:""}):null):null}_renderMeasurementResults(){const{_measurementResult:e,_measurementAccuracy:t,messages:s,measurementType:r}=this;return e?o("calcite-table",{bordered:!0,caption:s.measurementTable,class:i.measurementsTable,scale:"s"},o("calcite-table-row",{slot:"table-header"},o("calcite-table-header",{alignment:"center",heading:s.value}),o("calcite-table-header",{alignment:"center",heading:s.accuracy})),o("calcite-table-row",null,o("calcite-table-cell",{alignment:"center"},this._convertedMeasurement()),o("calcite-table-cell",{alignment:"center"},"distance"===r&&Array.isArray(t)&&t?.length||"area"===r&&t||"height"===r&&t?this.getAccuracy(this.measurementType):o("calcite-icon",{icon:"hourglass-active",scale:"s"})))):null}_renderNewMeasurementButton(){const{messages:e,measurementType:t}=this;return o("calcite-button",{class:i.measurementsButton,onclick:()=>this.oiViewModel.initializeMeasurement(t)},e.newMeasurement)}_renderStartMeasurementMessage(){const{oiViewModel:{displayNewMeasurementButton:e},messages:t,_measurementResult:s}=this;return!e&&!s&&o("div",{class:i.measurementDisplay,key:`start-measurement-${this.measurementType}`},t.startMeasurement)}render(){return o("calcite-panel",{class:i.measurementResults,key:`measurement-result-container-${this.measurementType}`},this._renderStartMeasurementMessage(),this._renderNewMeasurementButton(),this._renderUnitSelect(),this._renderMeasurementResults())}};e([r()],u.prototype,"_measurementResult",null),e([r()],u.prototype,"_measurementAccuracy",null),e([r()],u.prototype,"_measurementUnit",null),e([r()],u.prototype,"_measurementUnitOptions",null),u=e([n("esri.widgets.OrientedImageryViewer.components.ImageMeasurementWidget")],u);const p=u;export{p as default};