AreaMeasurement3D.js 4.9 KB

12345
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.25/esri/copyright.txt for details.
  4. */
  5. import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{isMeasurementSystem as s}from"../core/unitUtils.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/accessorSupport/ensureType.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import r from"./Widget.js";import a from"./AreaMeasurement3D/AreaMeasurement3DViewModel.js";import{accessibleHandler as l}from"./support/decorators/accessibleHandler.js";import{messageBundle as o}from"./support/decorators/messageBundle.js";import{tsx as u}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const m="esri-area-measurement-3d",p={buttonDisabled:"esri-button--disabled",base:`${m} esri-widget esri-widget--panel`,container:`${m}__container`,hint:`${m}__hint`,hintText:`${m}__hint-text`,panelError:`${m}__panel--error`,measurement:`${m}__measurement`,measurementItem:`${m}__measurement-item`,measurementItemDisabled:`${m}__measurement-item--disabled`,measurementItemTitle:`${m}__measurement-item-title`,measurementItemValue:`${m}__measurement-item-value`,settings:`${m}__settings`,units:`${m}__units`,unitsLabel:`${m}__units-label`,unitsSelect:`${m}__units-select esri-select`,unitsSelectWrapper:`${m}__units-select-wrapper`,actionSection:`${m}__actions`,newMeasurementButton:`${m}__clear-button esri-button esri-button--primary`,widgetIcon:"esri-icon-measure-area"};let c=class extends r{constructor(e,t){super(e,t),this.iconClass=p.widgetIcon,this.viewModel=new a}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visible(){return this.viewModel.visible}set visible(e){this.viewModel.visible=e}get active(){return this.viewModel.active}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get unitOptions(){return this.viewModel.unitOptions}set unitOptions(e){this.viewModel.unitOptions=e}get unit(){return this.viewModel.unit}set unit(e){this.viewModel.unit=e}render(){const{messages:e,messagesUnits:t}=this,{supported:i,active:n,measurement:r,state:a,unit:l}=this.viewModel,o="disabled"===a,m="measuring"===a||"measured"===a,c=n&&"ready"===a?u("section",{key:"esri-area-measurement-3d__hint",class:p.hint},u("p",{class:p.hintText},e.hint)):null,d=i?null:u("section",{key:"esri-area-measurement-3d__unsupported",class:p.panelError},u("p",null,e.unsupported)),v=(t,s,i)=>{switch(s.state){case"available":return u("div",{key:`${i}-enabled`,class:p.measurementItem},u("span",{class:p.measurementItemTitle},t),u("span",{"aria-live":"polite",class:p.measurementItemValue},s.text));case"unavailable":return u("div",{key:`${i}-disabled`,class:this.classes(p.measurementItem,p.measurementItemDisabled)},u("span",{class:p.measurementItemTitle},t));case"invalid":return u("div",{key:`${i}-enabled`,class:p.measurementItem},u("span",{class:p.measurementItemTitle},t),u("span",{class:p.measurementItemValue},e.notApplicable))}},_=m?u("section",{key:"esri-area-measurement-3d__measurement",class:p.measurement},v(e.area,r.area,"area"),v(e.perimeterLength,r.perimeterLength,"perimeter-length")):null,b=`${this.id}__units`,h=u("label",{class:p.unitsLabel,for:b},e.unit),w=u("div",{class:p.unitsSelectWrapper},u("select",{class:p.unitsSelect,id:b,onchange:this._changeUnit,bind:this,value:l},this.viewModel.unitOptions.map((e=>u("option",{key:e,value:e},s(e)?t.systems[e]:t.units[e]?.pluralCapitalized))))),y=m?u("section",{key:"esri-area-measurement-3d__units",class:p.units},h,w):null,g=m?u("div",{key:"settings",class:p.settings},y):null,M=!i||n&&!m?null:u("div",{class:p.actionSection},u("button",{bind:this,class:this.classes(p.newMeasurementButton,o&&p.buttonDisabled),disabled:o,onclick:this._newMeasurement,type:"button"},e.newMeasurement)),$=this.visible?u("div",{class:p.container},d,c,g,_,M):null;return u("div",{"aria-label":e.widgetLabel,key:this,class:p.base,role:"presentation"},$)}_newMeasurement(){t(this.viewModel.start())}_changeUnit(e){const t=e.target,s=t.options[t.selectedIndex];s&&(this.unit=s.value)}};e([i()],c.prototype,"view",null),e([i()],c.prototype,"visible",null),e([i()],c.prototype,"active",null),e([i({constructOnly:!0,nonNullable:!0})],c.prototype,"analysis",null),e([i()],c.prototype,"iconClass",void 0),e([i()],c.prototype,"label",null),e([i(),o("esri/widgets/AreaMeasurement3D/t9n/AreaMeasurement3D")],c.prototype,"messages",void 0),e([i(),o("esri/core/t9n/Units")],c.prototype,"messagesUnits",void 0),e([i()],c.prototype,"uiStrings",void 0),e([i({type:a})],c.prototype,"viewModel",void 0),e([i()],c.prototype,"unitOptions",null),e([i()],c.prototype,"unit",null),e([l()],c.prototype,"_newMeasurement",null),e([l()],c.prototype,"_changeUnit",null),c=e([n("esri.widgets.AreaMeasurement3D")],c);const d=c;export{d as default};