DirectLineMeasurement3D.js 4.8 KB

12345
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.24/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{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as n}from"../core/accessorSupport/decorators/property.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import o from"./DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.js";import{accessibleHandler as l}from"./support/decorators/accessibleHandler.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import{tsx as c}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const m="esri-direct-line-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-line"};let d=class extends a{constructor(e,t){super(e,t),this.view=null,this.visible=null,this.iconClass=p.widgetIcon,this.label=void 0,this.messages=null,this.messagesUnits=null,this.viewModel=new o,this.unitOptions=null,this.unit=null}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}render(){const{supported:e,active:t,state:i,measurement:n,unit:r}=this.viewModel,a="disabled"===i,o="ready"===i,l="measuring"===i||"measured"===i,{messages:u,messagesUnits:m}=this,d=t&&o?c("section",{key:"esri-direct-line-measurement-3d__hint",class:p.hint},c("p",{class:p.hintText},u.hint)):null,v=e?null:c("section",{key:"esri-direct-line-measurement-3d__unsupported",class:p.panelError},c("p",null,u.unsupported)),_=(e,t,s)=>{switch(t.state){case"available":return c("div",{key:`${s}-enabled`,class:p.measurementItem},c("span",{class:p.measurementItemTitle},e),c("span",{class:p.measurementItemValue},t.text));case"unavailable":return c("div",{key:`${s}-disabled`,class:this.classes(p.measurementItem,p.measurementItemDisabled)},c("span",{class:p.measurementItemTitle},e))}},h=l?c("section",{key:"esri-direct-line-measurement-3d__measurement",class:p.measurement},_(u.direct,n.directDistance,"direct"),_(u.horizontal,n.horizontalDistance,"horizontal"),_(u.vertical,n.verticalDistance,"vertical")):null,b=`${this.id}__units`,y=c("label",{class:p.unitsLabel,for:b},u.unit),w=c("div",{class:p.unitsSelectWrapper},c("select",{class:p.unitsSelect,id:b,onchange:this._changeUnit,bind:this,value:r},this.viewModel.unitOptions.map((e=>c("option",{key:e,value:e},s(e)?m.systems[e]:m.units[e]?.pluralCapitalized))))),g=c("section",{key:"esri-direct-line-measurement-3d__units",class:p.units},y,w),M=l?c("div",{key:"settings",class:p.settings},g):null,$=!e||t&&!l?null:c("div",{class:p.actionSection},c("button",{disabled:a,class:this.classes(p.newMeasurementButton,a&&p.buttonDisabled),bind:this,onclick:this._newMeasurement,type:"button"},u.newMeasurement)),D=this.visible?c("div",{class:p.container},v,d,M,h,$):null;return c("div",{key:this,class:p.base,role:"presentation"},D)}_newMeasurement(){t(this.viewModel.start())}_changeUnit(e){const t=e.target,s=t.options[t.selectedIndex];s&&(this.unit=s.value)}};e([i("viewModel.view")],d.prototype,"view",void 0),e([i("viewModel.visible")],d.prototype,"visible",void 0),e([i("viewModel.active")],d.prototype,"active",void 0),e([n({constructOnly:!0,nonNullable:!0})],d.prototype,"analysis",null),e([n()],d.prototype,"iconClass",void 0),e([n({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],d.prototype,"label",void 0),e([n(),u("esri/widgets/DirectLineMeasurement3D/t9n/DirectLineMeasurement3D")],d.prototype,"messages",void 0),e([n(),u("esri/core/t9n/Units")],d.prototype,"messagesUnits",void 0),e([n()],d.prototype,"uiStrings",void 0),e([n({type:o})],d.prototype,"viewModel",void 0),e([i("viewModel.unitOptions")],d.prototype,"unitOptions",void 0),e([i("viewModel.unit")],d.prototype,"unit",void 0),e([l()],d.prototype,"_newMeasurement",null),e([l()],d.prototype,"_changeUnit",null),d=e([r("esri.widgets.DirectLineMeasurement3D")],d);const v=d;export{v as default};