/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
import{a as f}from"./H47NPYUM.js";import"./JCTU3MST.js";import"./BXKNMJRR.js";import"./IJQZON2Z.js";import{O as _,R as v,U as b,a as g,b as l,x as u}from"./IXZEUVT2.js";import"./H6RQVSYM.js";export default $arcgis.t(([n,$,y,{locationToAddress:x},{substitute:R},{watch:C}])=>{var w=g`calcite-notice{padding:var(--calcite-space-lg)}calcite-block{padding-inline-end:var(--calcite-spacing-xxs)}calcite-block[expanded]{margin:0}`,h=class extends _{constructor(){super(...arguments),this.messages=f(),this._abortController=null,this._location=null,this._results=null,this.headingLevel=3,this.portal=$.getDefault(),this.autoDestroyDisabled=!1,this.hideCoordinates=!1,this.arcgisReverseGeocodeResultsChange=u(),this.arcgisReverseGeocodeCopy=u()}static{this.properties={_abortController:16,_location:16,_results:16,headingLevel:9,portal:0,location:0,messageOverrides:0,autoDestroyDisabled:5,hideCoordinates:5,reverseGeocodeResults:32}}static{this.styles=w}get reverseGeocodeResults(){return this._results}async destroy(){await this.manager.destroy(),this._cancelQueries()}loaded(){this.manager.onLifecycle(()=>[C(()=>[this.portal,this.location],()=>{this._update()},{initial:!0}),C(()=>this._results,()=>{this.arcgisReverseGeocodeResultsChange.emit()})])}_cancelQueries(){this._abortController?.abort(),this._abortController=null}async _update(){let{location:e,messages:t}=this;if(this._cancelQueries(),!e){this._location=null,this._results=null;return}let s=new AbortController,o=s.signal;this._abortController=s;let i=()=>o.aborted||this._abortController!==s;if(!n.isLoaded()&&(await n.load(),i()))return;let d=n.execute(e,y.WGS84)??e;if(i()||(this._location=d,await this.portal?.load({signal:o}),i()))return;let r=this.portal?.helperServices?.geocode?.filter(a=>a.reverseGeocode??!0);if(!r){if(i())return;this._results=null;return}let c=r.map(async a=>await x(a.url,{location:e},{signal:o})),m=await Promise.allSettled(c);i()||(this._abortController=null,this._results=r.map((a,p)=>({name:a.name??t?.untitledService??"",address:(m[p].status==="fulfilled"?m[p].value.address:null)??t?.noResultFound??"",url:a.url})))}_copyTextToClipboard(e){navigator.clipboard.writeText(e),this.arcgisReverseGeocodeCopy.emit({data:e})}_renderMoreResults(e){let{messages:t}=this;return!this._abortController&&e?.length?l`<calcite-block collapsible scale=s .headingLevel=${this.headingLevel} .heading=${R(t?.showMoreResults??"",{count:e.length})}><calcite-list scale=s display-mode=flat interaction-mode=static selection-mode=none .label=${t?.moreResults??""}>${e?.map(s=>this._renderItem(s))}</calcite-list></calcite-block>`:null}_renderCopyAction({text:e,value:t}){return l`<calcite-action .text=${e} title=${e??v} slot=actions-end icon=copy @click=${()=>this._copyTextToClipboard(t)}></calcite-action>`}_renderCoordinatesItem(){let{_location:e,messages:t}=this;if(!e||this.hideCoordinates)return null;let{latitude:s,longitude:o}=e,i=s!=null&&o!=null?`${o.toFixed(6)}, ${s.toFixed(6)}`:null;return i?l`<calcite-list-item .label=${i} .description=${t.coordinates??""}>${this._renderCopyAction({text:t.copyCoordinates??"",value:i})}</calcite-list-item>`:null}_renderItem(e){let{messages:t}=this;return l`<calcite-list-item .label=${e.address} .description=${e.name}>${this._renderCopyAction({text:t.copyAddress??"",value:e.address??""})}</calcite-list-item>`}render(){let{_abortController:e,_location:t,_results:s,messages:o}=this;if(!t)return l`<calcite-notice scale=s open kind=warning icon><div slot=message>${o?.noLocation??""}</div></calcite-notice>`;let i=s?.[0],d=s&&s.length>1?s.slice(1):void 0,r=this._renderCoordinatesItem(),c=i?this._renderItem(i):null;return!e&&!c&&!r?l`<calcite-notice scale=s open kind=info><div slot=message>${o?.noResultFound??""}</div></calcite-notice>`:l`<calcite-list .loading=${!!e} display-mode=flat interaction-mode=static selection-mode=none .label=${o.label??""} scale=s>${r}${c}</calcite-list>${this._renderMoreResults(d)}`}};b("arcgis-reverse-geocode-list",h);return h},"geometry/operators/projectOperator","portal/Portal","geometry/SpatialReference","rest/locator","intl","core/reactiveUtils")