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 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"./DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.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 c="esri-direct-line-measurement-3d",m={buttonDisabled:"esri-button--disabled",base:`${c} esri-widget esri-widget--panel`,container:`${c}__container`,hint:`${c}__hint`,hintText:`${c}__hint-text`,panelError:`${c}__panel--error`,measurement:`${c}__measurement`,measurementItem:`${c}__measurement-item`,measurementItemDisabled:`${c}__measurement-item--disabled`,measurementItemTitle:`${c}__measurement-item-title`,measurementItemValue:`${c}__measurement-item-value`,settings:`${c}__settings`,units:`${c}__units`,unitsLabel:`${c}__units-label`,unitsSelect:`${c}__units-select esri-select`,unitsSelectWrapper:`${c}__units-select-wrapper`,actionSection:`${c}__actions`,newMeasurementButton:`${c}__clear-button esri-button esri-button--primary`,widgetIcon:"esri-icon-measure-line"};let p=class extends r{constructor(e,t){super(e,t),this.iconClass=m.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{supported:e,active:t,state:i,measurement:n,unit:r}=this.viewModel,a="disabled"===i,l="ready"===i,o="measuring"===i||"measured"===i,{messages:c,messagesUnits:p}=this,d=t&&l?u("section",{key:"esri-direct-line-measurement-3d__hint",class:m.hint},u("p",{class:m.hintText},c.hint)):null,v=e?null:u("section",{key:"esri-direct-line-measurement-3d__unsupported",class:m.panelError},u("p",null,c.unsupported)),_=(e,t,s)=>{switch(t.state){case"available":return u("div",{key:`${s}-enabled`,class:m.measurementItem},u("span",{class:m.measurementItemTitle},e),u("span",{"aria-live":"polite",class:m.measurementItemValue},t.text));case"unavailable":return u("div",{key:`${s}-disabled`,class:this.classes(m.measurementItem,m.measurementItemDisabled)},u("span",{class:m.measurementItemTitle},e))}},h=o?u("section",{key:"esri-direct-line-measurement-3d__measurement",class:m.measurement},_(c.direct,n.directDistance,"direct"),_(c.horizontal,n.horizontalDistance,"horizontal"),_(c.vertical,n.verticalDistance,"vertical")):null,b=`${this.id}__units`,w=u("label",{class:m.unitsLabel,for:b},c.unit),y=u("div",{class:m.unitsSelectWrapper},u("select",{class:m.unitsSelect,id:b,onchange:this._changeUnit,bind:this,value:r},this.viewModel.unitOptions.map((e=>u("option",{key:e,value:e},s(e)?p.systems[e]:p.units[e]?.pluralCapitalized))))),g=u("section",{key:"esri-direct-line-measurement-3d__units",class:m.units},w,y),M=o?u("div",{key:"settings",class:m.settings},g):null,$=!e||t&&!o?null:u("div",{class:m.actionSection},u("button",{disabled:a,class:this.classes(m.newMeasurementButton,a&&m.buttonDisabled),bind:this,onclick:this._newMeasurement,type:"button"},c.newMeasurement)),D=this.visible?u("div",{class:m.container},v,d,M,h,$):null;return u("div",{"aria-label":c.widgetLabel,key:this,class:m.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()],p.prototype,"view",null),e([i()],p.prototype,"visible",null),e([i()],p.prototype,"active",null),e([i({constructOnly:!0,nonNullable:!0})],p.prototype,"analysis",null),e([i()],p.prototype,"iconClass",void 0),e([i()],p.prototype,"label",null),e([i(),o("esri/widgets/DirectLineMeasurement3D/t9n/DirectLineMeasurement3D")],p.prototype,"messages",void 0),e([i(),o("esri/core/t9n/Units")],p.prototype,"messagesUnits",void 0),e([i()],p.prototype,"uiStrings",void 0),e([i({type:a})],p.prototype,"viewModel",void 0),e([i()],p.prototype,"unitOptions",null),e([i()],p.prototype,"unit",null),e([l()],p.prototype,"_newMeasurement",null),e([l()],p.prototype,"_changeUnit",null),p=e([n("esri.widgets.DirectLineMeasurement3D")],p);const d=p;export{d as default};
|