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 r}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import a from"./AreaMeasurement2D/AreaMeasurement2DViewModel.js";import{accessibleHandler as o}from"./support/decorators/accessibleHandler.js";import{messageBundle as l}from"./support/decorators/messageBundle.js";import{tsx as u}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const m="esri-area-measurement-2d",p={buttonDisabled:"esri-button--disabled",widgetIcon:"esri-icon-measure-area",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`};let c=class extends n{constructor(e,t){super(e,t),this.iconClass=p.widgetIcon,this.messages=null,this.messagesUnits=null,this.viewModel=new a}get active(){return this.viewModel.active}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get unit(){return this.viewModel.unit}set unit(e){this.viewModel.unit=e}get unitOptions(){return this.viewModel.unitOptions}set unitOptions(e){this.viewModel.unitOptions=e}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}render(){const{id:e,viewModel:t,visible:i}=this,{active:r,supported:n,measurementLabel:a,state:o,unit:l,unitOptions:m}=t,c="disabled"===o,d="ready"===o,v="measuring"===o||"measured"===o,{messages:b,messagesUnits:_}=this,w=r&&d?u("section",{key:"hint",class:p.hint},u("p",{class:p.hintText},b.hint)):null,h=n?null:u("section",{key:"unsupported",class:p.panelError},u("p",null,b.unsupported)),g=(e,t,s)=>t?u("div",{key:`${s}-enabled`,class:p.measurementItem},u("span",{class:p.measurementItemTitle},e),u("span",{"aria-live":"polite",class:p.measurementItemValue},t)):u("div",{key:`${s}-disabled`,class:this.classes(p.measurementItem,p.measurementItemDisabled),"aria-disabled":"true"},u("span",{class:p.measurementItemTitle},e)),y=v?u("section",{key:"measurement",class:p.measurement},g(b.area,a?.area,"area"),g(b.perimeter,a?.perimeter,"perimeter")):null,M=`${e}__units`,$=u("section",{key:"units",class:p.units},u("label",{class:p.unitsLabel,for:M},b.unit),u("div",{class:p.unitsSelectWrapper},u("select",{class:p.unitsSelect,id:M,onchange:this._changeUnit,bind:this,value:l},m.map((e=>u("option",{key:e,value:e},s(e)?_.systems[e]:_.units[e]?.pluralCapitalized)))))),j=v?u("div",{key:"settings",class:p.settings},$):null,I=!n||r&&!v?null:u("div",{class:p.actionSection},u("button",{"aria-label":b.newMeasurement,bind:this,class:this.classes(p.newMeasurementButton,c&&p.buttonDisabled),disabled:c,onclick:this._newMeasurement,title:b.newMeasurement,type:"button"},b.newMeasurement)),f=i?u("div",{class:p.container},h,w,j,y,I):null;return u("div",{"aria-label":b.widgetLabel,class:p.base,role:"region"},f)}_newMeasurement(){t(this.viewModel.start())}_changeUnit(e){const t=e.target,s=t.options[t.selectedIndex];s&&(this.viewModel.unit=s.value)}};e([i({readOnly:!0})],c.prototype,"active",null),e([i()],c.prototype,"iconClass",void 0),e([i()],c.prototype,"label",null),e([i(),l("esri/widgets/AreaMeasurement2D/t9n/AreaMeasurement2D")],c.prototype,"messages",void 0),e([i(),l("esri/core/t9n/Units")],c.prototype,"messagesUnits",void 0),e([i()],c.prototype,"uiStrings",void 0),e([i()],c.prototype,"unit",null),e([i()],c.prototype,"unitOptions",null),e([i()],c.prototype,"view",null),e([i({type:a})],c.prototype,"viewModel",void 0),e([i({type:Boolean})],c.prototype,"visible",null),e([o()],c.prototype,"_newMeasurement",null),e([o()],c.prototype,"_changeUnit",null),c=e([r("esri.widgets.AreaMeasurement2D")],c);const d=c;export{d as default};
|