/* COPYRIGHT Esri - https://js.arcgis.com/5.0/LICENSE.txt */
import{a as o}from"./LFIJXE3U.js";import"./36I27Q5R.js";import"./GDPFKW75.js";import{b as d}from"./VU3OQQKP.js";import{F as r,G as c,H as u,h as l,i as s,r as a}from"./46DQNAMV.js";import"./OR4HXHSY.js";export default $arcgis.t(([i,h])=>{var f=l`:host{display:block}.c-container{display:inline-flex}.flex-1{flex:"1"}.padding-end-1{padding-inline-end:1rem}.w-50{width:50%}`,n=class extends u{constructor(){super(...arguments),this.appearance="text",this.distance=0,this.geometries=[],this.max=0,this.min=0,this.sliderTicks=10,this.unionResults=!0,this.unit="meters",this.disabled=!1,this._translations=o({name:"buffer-tools",blocking:!0}),this._unitElement=r(),this.bufferComplete=a(),this.distanceChanged=a(),this.unitChanged=a()}static{this.properties={appearance:1,distance:9,geometries:0,max:9,min:9,sliderTicks:9,unionResults:5,unit:1,disabled:5,_translations:16,_units:16}}static{this.styles=f}willUpdate(t){t.has("geometries")&&(this.hasUpdated||this.geometries?.length>0)&&this.geometriesWatchHandler(),t.has("disabled")&&(this.hasUpdated||this.disabled!==!1)&&this.disabledWatchHandler(),t.has("_translations")&&this._defineTranslations(),t.has("unit")&&this.hasUpdated&&this._setUnit(this.unit),t.has("distance")&&this.hasUpdated&&this._setDistance({target:{value:this.distance}})}geometriesWatchHandler(){this._buffer()}disabledWatchHandler(){this._buffer()}async getTranslatedUnit(t){return this._units||await this._defineTranslations(),this._units?this._units[t]:""}render(){return this.appearance==="text"?this._getTextBoxDisplay():this._getSliderDisplay()}async _defineTranslations(){this._units={feet:this._translations.feet||"Feet",meters:this._translations.meters||"Meters",miles:this._translations.miles||"Miles",kilometers:this._translations.kilometers||"Kilometers"}}_getUnits(){return this._units?Object.keys(this._units).map(t=>this._units?s`<calcite-option .label=${this._units[t]} .selected=${this.unit===t} .value=${t}></calcite-option>`:void 0):void 0}_setDistance(t){let e=Number.parseInt(t.target.value,10);this.distance!==e&&e>=this.min&&(this.distanceChanged.emit({oldValue:this.distance,newValue:e}),this.distance=e,this.distance>0?this._buffer():this.bufferComplete.emit(void 0))}_setUnit(t){this.unitChanged.emit({oldValue:this.unit,newValue:t}),this.unit=t,this._buffer()}_buffer(){this.disabled?this.bufferComplete.emit(void 0):(this._bufferTimeout&&clearTimeout(this._bufferTimeout),this._bufferTimeout=setTimeout(async()=>{if(this.geometries?.length>0&&this.unit&&this.distance>0&&i&&h){i.isLoaded()||await i.load();let t=this.geometries[0].spatialReference,e=this.geometries,m=t.isWGS84||t.isWebMercator?i.executeMany(e,[this.distance],{union:this.unionResults,unit:this.unit}):h.executeMany(e,[this.distance],{unit:this.unit,union:this.unionResults});this.bufferComplete.emit(m)}},400))}_getTextBoxDisplay(){return s`<div class="c-container"><calcite-input class="padding-end-1 w-50" .max=${this.max&&this.max>0?this.max:void 0} .min=${this.min} number-button-type=vertical @calciteInputInput=${this._setDistance} placeholder=0 type=number .value=${this.distance?this.distance.toString():void 0}></calcite-input><calcite-select class="flex-1 w-50" label=label @calciteSelectChange=${()=>{this._unitElement?.value&&this._setUnit(this._unitElement?.value.value)}} ${c(this._unitElement)}>${this._getUnits()}</calcite-select></div>`}_getSliderDisplay(){return s`<div><calcite-slider label-handles .max=${this.max&&this.max>0?this.max:void 0} .min=${this.min} .ticks=${this.sliderTicks}></calcite-slider></div>`}_testAccess(t,e){switch(t){case"_setUnit":return this._setUnit(e);case"_setDistance":return this._setDistance(e)}return null}};d("buffer-tools",n);return n},"geometry/operators/geodesicBufferOperator","geometry/operators/bufferOperator")