UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 8.83 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.33/esri/copyright.txt for details. */ import{_ as e}from"../../../chunks/tslib.es6.js";import{measurementLengthUnits as t,measurementAreaUnits as a}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 s from"../../Widget.js";import{css as c}from"../css.js";import{TriangulatedImageMeasurementMixin as i}from"../mixins/TriangulatedImageMeasurementMixin.js";import{loadCalciteComponents as l}from"../../support/componentsUtils.js";import{tsx as o}from"../../support/jsxFactory.js";import{UnitSelect as u}from"../../support/UnitSelect.js";import{messageBundle as m}from"../../support/decorators/messageBundle.js";let g=class extends(i(s)){constructor(e){super(e),this.messagesCommon=null}loadDependencies(){return l({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:a,heightMeasurementResult:r,distanceMeasurementResult:n}=t;switch(e){case"area":return a;case"height":return r;case"distance":return n}}get _measurementAccuracy(){const{measurementType:e,oiViewModel:t}=this,{areaMeasurementAccuracy:a,heightMeasurementAccuracy:r,distanceAccuracyArray:n}=t;switch(e){case"area":return a;case"height":return r;case"distance":return n}}get _measurementUnit(){const{measurementType:e,pixelAreaMeasurementUnit:t,pixelMeasurementUnit:a}=this;return"area"===e?t:a}get _measurementUnitOptions(){const{measurementType:e}=this;return"area"===e?a: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:a,oiViewModel:r,messagesCommon:n}=this,{triangularMeasurementActive:s}=r;return t?o("div",{class:c.measurementsBar},o(u,{options:a,selectLabel:"",value:e,onChange:e=>this._measurementUnitChangeHandler(e)}),t?o("calcite-action",{bind:this,icon:"copy-to-clipboard",label:"copy",onclick:()=>this.copyActiveMeasurementResults(this.measurementType,s),scale:"s",text:"",title:n.copy}):null):null}_renderMeasurementResults(){const{_measurementResult:e,_measurementAccuracy:t,messages:a,measurementType:r}=this,{measurementTable:n,value:s,accuracy:i}=a;return e?o("calcite-table",{bordered:!0,caption:n,class:c.measurementsTable,scale:"s"},o("calcite-table-row",{slot:"table-header"},o("calcite-table-header",{alignment:"center",heading:s}),o("calcite-table-header",{alignment:"center",heading:i})),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}_renderActiveMeasurementResults(){const{oiViewModel:e}=this,{triangularMeasurementActive:t,measureType:a}=e;if(t)switch(a){case"area":return this._renderTriangularAreaMeasurementResults();case"distance":return this._renderTriangularDistanceMeasurementResults()}return this._renderMeasurementResults()}_renderNewMeasurementButton(){const{messages:e,measurementType:t}=this;return o("calcite-button",{class:c.measurementsButton,onclick:()=>this.oiViewModel.initializeMeasurement(t)},e.newMeasurement)}_renderStartMeasurementMessage(){const{oiViewModel:{displayNewMeasurementButton:e},messages:t,_measurementResult:a}=this;return!e&&!a&&o("div",{class:c.measurementDisplay,key:`start-measurement-${this.measurementType}`},t.startMeasurement)}_renderTriangularAreaMeasurementResults(){const{messages:e,oiViewModel:t}=this,{measurementTable:a,value:r,accuracy:n}=e,{triangulatedAreaMeasurement:s}=t;return s?o("calcite-table",{bordered:!0,caption:a,class:c.measurementsTable,scale:"s"},o("calcite-table-row",{slot:"table-header"},o("calcite-table-header",{alignment:"center",heading:r}),o("calcite-table-header",{alignment:"center",heading:n})),o("calcite-table-row",null,this._renderTriangularAreaCell("measurement"),this._renderTriangularAreaCell("accuracy"))):null}_renderTriangularDistanceAccuracyCell(){const{oiViewModel:e}=this,{triangulatedDistanceAccuracy:t}=e;return o("calcite-table-cell",{alignment:"center"},t?.distanceAccuracy?this.getConvertedTriangularDistanceMeasurementString(t.distanceAccuracy):o("calcite-icon",{icon:"hourglass-active",scale:"s"}))}_renderTriangularAreaCell(e){const{oiViewModel:t}=this,{triangulatedAreaMeasurement:a}=t;return o("calcite-table-cell",{alignment:"center"},a?this.getConvertedTriangularAreaString(e):o("calcite-icon",{icon:"hourglass-active",scale:"s"}))}_renderTriangularDistanceAngleAccuracyCell(){const{oiViewModel:e}=this,{triangulatedDistanceAccuracy:t}=e;return o("calcite-table-cell",{alignment:"center"},t?.angleAccuracy?this.getConvertedTriangularDistanceAngularResultsString(t.angleAccuracy):o("calcite-icon",{icon:"hourglass-active",scale:"s"}))}_renderTriangularDistanceMeasurementResults(){const{oiViewModel:e,messages:t}=this,{distance:a,horizontal:r,vertical:n,slope:s,aspect:i,measurementTable:l,value:u,accuracy:m}=t,{triangulatedDistanceMeasurement:g,triangularMeasurementActive:d,measureType:p}=e;return d&&"distance"===p&&g?o("calcite-table",{bordered:!0,caption:l,class:c.measurementsTable,scale:"s"},o("calcite-table-row",{slot:"table-header"},o("calcite-table-header",{alignment:"center",heading:"Type"}),o("calcite-table-header",{alignment:"center",heading:u}),o("calcite-table-header",{alignment:"center",heading:m})),o("calcite-table-row",null,o("calcite-table-cell",{alignment:"center"},a),o("calcite-table-cell",{alignment:"center"},g?.distance?this.getConvertedTriangularDistanceMeasurementString(g.distance):o("calcite-icon",{icon:"hourglass-active",scale:"s"})),this._renderTriangularDistanceAccuracyCell()),o("calcite-table-row",null,o("calcite-table-cell",{alignment:"center"},r),o("calcite-table-cell",{alignment:"center"},g?.horizontalDistance?this.getConvertedTriangularDistanceMeasurementString(g.horizontalDistance):o("calcite-icon",{icon:"hourglass-active",scale:"s"})),this._renderTriangularDistanceAccuracyCell()),o("calcite-table-row",null,o("calcite-table-cell",{alignment:"center"},n),o("calcite-table-cell",{alignment:"center"},g?.verticalDistance?this.getConvertedTriangularDistanceMeasurementString(g.verticalDistance):o("calcite-icon",{icon:"hourglass-active",scale:"s"})),this._renderTriangularDistanceAccuracyCell()),o("calcite-table-row",null,o("calcite-table-cell",{alignment:"center"},s),o("calcite-table-cell",{alignment:"center"},g?.slope?this.getConvertedTriangularDistanceAngularResultsString(g.slope):o("calcite-icon",{icon:"hourglass-active",scale:"s"})),this._renderTriangularDistanceAngleAccuracyCell()),o("calcite-table-row",null,o("calcite-table-cell",{alignment:"center"},i),o("calcite-table-cell",{alignment:"center"},g?.aspect?this.getConvertedTriangularDistanceAngularResultsString(g.aspect):o("calcite-icon",{icon:"hourglass-active",scale:"s"})),this._renderTriangularDistanceAngleAccuracyCell())):null}render(){return o("calcite-panel",{class:c.measurementResults,key:`measurement-result-container-${this.measurementType}`},this._renderStartMeasurementMessage(),this._renderNewMeasurementButton(),this._renderUnitSelect(),this._renderActiveMeasurementResults())}};e([r(),m("esri/t9n/common")],g.prototype,"messagesCommon",void 0),e([r()],g.prototype,"_measurementResult",null),e([r()],g.prototype,"_measurementAccuracy",null),e([r()],g.prototype,"_measurementUnit",null),e([r()],g.prototype,"_measurementUnitOptions",null),g=e([n("esri.widgets.OrientedImageryViewer.components.ImageMeasurementWidget")],g);const d=g;export{d as default};