@arcgis/map-components
Version:
ArcGIS Map Components
4 lines • 11.9 kB
JavaScript
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
v4.33.13 */
import{b as g}from"./MF2SVVTD.js";import{a as d}from"./KW27SA4Q.js";import e from"./HXOMZNNJ.js";import{a as C}from"./MZHKSD55.js";import{a as x}from"./HA5P4MAX.js";import c from"./MX24TT2G.js";import a from"./2WKS6ZFG.js";import{e as $}from"./4TYQGSWG.js";import"./JDUE7Q24.js";import"./DXCYBWXJ.js";import{B as w,E as S,P as M,Q as l,S as f,U as b,a as m,j as _,k as r,p as v}from"./HX57SHRL.js";export default $arcgis.t(([A,{isAbortError:D},{substitute:T},{watch:E},,{a:a},R])=>{var h="arcgis-search",u={base:h,autocomplete:`${h}__autocomplete`,dropdown:`${h}__dropdown`,container:`${h}__container`,form:`${h}__form`},I=_`{arcgis-search{display:block}.arcgis-search{--arcgis-internal-search-width: 240px;display:flex;flex-flow:row nowrap;align-items:center;justify-content:center;width:var(--arcgis-internal-search-width)}.arcgis-search__dropdown{--calcite-color-border-1: var(--calcite-color-border-input);--calcite-dropdown-width: var(--arcgis-internal-search-width);width:31px}.arcgis-search__autocomplete{flex:1}.arcgis-search__container{display:flex;position:relative;flex:1 0 100%;flex-flow:row nowrap;align-items:stretch}.arcgis-search__form{display:flex;flex:1 0;flex-flow:row nowrap;align-items:stretch;margin:0;padding:0}}`,N=R(A),p=class extends M{constructor(){super(...arguments),this.viewModel=N(this),this._currentLocationValue="search-use-current-location",this._autocompleteEl=void 0,this._searchResultRendererContainerEl=document.createElement("div"),this._searchResultRendererEl=void 0,this._suggestController=void 0,this._searchController=void 0,this._lastSearchTerm="",this.messages=C({}),this._setSearchResultRendererRef=e=>{this._searchResultRendererEl=e},this._locateFailed=!1,this._showNoResults=!1,this.position="top-left",this.goToOverride=this.viewModel.goToOverride,this.icon="search",this.activeMenu="none",this.activeSourceIndex=this.viewModel.activeSourceIndex,this.allPlaceholder=this.viewModel.allPlaceholder,this.allSources=this.viewModel.allSources,this.autoNavigateDisabled=this.viewModel.autoNavigate,this.autoSelectDisabled=this.viewModel.autoSelect,this.defaultSources=this.viewModel.defaultSources,this.disabled=!1,this.includeDefaultSourcesDisabled=this.viewModel.includeDefaultSources,this.locationDisabled=this.viewModel.locationEnabled,this.maxResults=this.viewModel.maxResults,this.maxSuggestions=this.viewModel.maxSuggestions,this.minSuggestCharacters=this.viewModel.minSuggestCharacters,this.popupDisabled=this.viewModel.popupEnabled,this.popupTemplate=this.viewModel.popupTemplate,this.portal=this.viewModel.portal,this.resultGraphic=this.viewModel.resultGraphic,this.resultGraphicDisabled=this.viewModel.resultGraphicEnabled,this.results=this.viewModel.results,this.searchAllDisabled=this.viewModel.searchAllEnabled,this.searchTerm=this.viewModel.searchTerm,this.selectedResult=this.viewModel.selectedResult,this.sources=this.viewModel.sources,this.suggestions=this.viewModel.suggestions,this.suggestionsDisabled=this.viewModel.suggestionsEnabled,this.autoDestroyDisabled=!1,this.state=this.viewModel.state,this.arcgisPropertyChange=$()("state"),this.arcgisReady=w(),this.arcgisSearchClear=a(()=>this.viewModel,"search-clear"),this.arcgisSearchComplete=a(()=>this.viewModel,"search-complete"),this.arcgisSearchStart=a(()=>this.viewModel,"search-start"),this.arcgisSelectResult=a(()=>this.viewModel,"select-result"),this.arcgisSuggestComplete=a(()=>this.viewModel,"suggest-complete"),this.arcgisSuggestStart=a(()=>this.viewModel,"suggest-start")}static{this.properties={_locateFailed:16,_showNoResults:16,_isDisabled:16,_showCurrentLocation:16,_effectiveActiveMenu:16,referenceElement:1,position:3,goToOverride:0,icon:1,activeMenu:1,activeSource:32,activeSourceIndex:9,allPlaceholder:1,allSources:0,autoNavigateDisabled:5,autoSelectDisabled:5,defaultSources:0,disabled:5,includeDefaultSourcesDisabled:5,locationDisabled:5,maxResults:9,maxSuggestions:9,minSuggestCharacters:9,popupDisabled:5,popupTemplate:0,portal:0,resultGraphic:0,resultGraphicDisabled:5,results:0,searchAllDisabled:5,searchTerm:1,selectedResult:0,sources:0,suggestions:0,suggestionsDisabled:5,autoDestroyDisabled:5,messageOverrides:0,label:1,state:3}}static{this.styles=I}static{this.shadowRootOptions=S}get _isDisabled(){let{state:e}=this.viewModel;return e==="disabled"||e==="loading"||this.disabled}get _showCurrentLocation(){return!this.locationDisabled&&!this.searchTerm?.trim()}get _effectiveActiveMenu(){return this._isDisabled?"none":this.activeMenu}get activeSource(){return this.viewModel?.activeSource}clear(){this._locateFailed=!1,this.viewModel.clear()}async destroy(){await this.manager.destroy(),await this._searchResultRendererEl?.destroy(),this._cancelQueries()}async search(e){this._cancelQueries();let t=new AbortController,{signal:s}=t;this._searchController=t;try{let i=await this.viewModel.search(e,{signal:s});return this._searchController!==t?void 0:(i?.numResults||(this._showNoResults=!0,this.activeMenu="suggestion"),this._searchController=void 0,i)}catch{if(this._searchController!==t)return;this._searchController=void 0;return}}async suggest(e){this._cancelSuggest();let t=new AbortController,{signal:s}=t;this._suggestController=t;try{let i=await this.viewModel.suggest(e,null,{signal:s});return this._suggestController!==t?void 0:(this._suggestController=void 0,i?.numResults&&(this.activeMenu="suggestion",this._scrollToTopSuggestion()),i)}catch{return this._suggestController!==t||(this._suggestController=void 0),null}}async setFocus(){await this._autocompleteEl?.setFocus()}loaded(){this._addSearchResultRenderer(),this.manager.onLifecycle(()=>E(()=>this.viewModel?.defaultPopupTemplate,e=>{if(e){let t=document.createElement("div");t.appendChild(this._searchResultRendererContainerEl),e.content=t}},{initial:!0}))}_addSearchResultRenderer(){v(r`<arcgis-search-result-renderer auto-destroy-disabled .messages=${this.messages} .viewModel=${this.viewModel} ${g(this._setSearchResultRendererRef)}></arcgis-search-result-renderer>`,this._searchResultRendererContainerEl)}_handleInputKeydown(e){e.key==="Tab"&&this._cancelSuggest()}_handleAutocompleteCreate(e){this._autocompleteEl=e}_handleCalciteAutocompleteTextInput(e){let t=e.target.inputValue;t!==this.viewModel.searchTerm&&(this.viewModel.searchTerm=t,t||this.clear(),this.suggest())}_handleAutocompleteOpen(){this.activeMenu="suggestion"}_handleAutocompleteClose(){this.activeMenu==="suggestion"&&(this.activeMenu="none")}_handleCalciteAutocompleteChange(e){let t=e.target.value;if(t===this._currentLocationValue){this._useCurrentLocation();return}let s=JSON.parse(t),i=this.viewModel.suggestions?.find(({sourceIndex:o})=>o===s.sourceIndex)?.results?.find(({key:o})=>`${o}`==`${s.key}`);i&&this.search(i)}async _useCurrentLocation(){this._cancelQueries();let e=new AbortController,{signal:t}=e;this._searchController=e;try{await this.viewModel.searchNearby({signal:t})}catch(s){D(s)||(this._locateFailed=!0,this.activeMenu="suggestion")}finally{this._searchController=void 0}}_handleSourceOpen(){this.activeMenu="source"}_handleSourceClose(){this.activeMenu==="source"&&(this.activeMenu="none")}_handleSourceSelect(e){let t=e.target.selectedItems[0].getAttribute("data-source-index");t&&(this.viewModel.activeSourceIndex=Number.parseInt(t,10))}_cancelSuggest(){this.activeMenu="none",this._locateFailed=!1,this._showNoResults=!1,this._suggestController=d(this._suggestController)}_cancelQueries(){this._cancelSuggest(),this._searchController=d(this._searchController)}_scrollToTopSuggestion(){this._autocompleteEl?.scrollContentTo({top:0})}_formSubmit(e){e.preventDefault(),this.activeMenu="none",this._lastSearchTerm=this.searchTerm,this.searchTerm&&this.search()}_getSourceName(e){let{messages:t}=this,{allSources:s}=this.viewModel,i=s.at(e);return(e===-1?t.all:i?.name||t.untitledSource)||""}render(){return this._addSearchResultRenderer(),r`<div class=${l(m(u.base,x.widget))}><div class=${l(u.container)}>${this._renderSourcesMenu()}${this._renderForm()}</div></div>`}_renderSourcesMenu(){let{messages:e,_isDisabled:t,_effectiveActiveMenu:s}=this,{allSources:i,searchAllEnabled:o}=this.viewModel;return i.length>1?r`<calcite-dropdown class=${l(u.dropdown)} .disabled=${t} .open=${s==="source"} overlay-positioning=fixed =${this._handleSourceClose} =${this._handleSourceOpen} =${this._handleSourceSelect}><calcite-button appearance=outline-fill icon-start=caret-down kind=neutral .label=${e.searchIn} slot=trigger></calcite-button><calcite-dropdown-group .groupTitle=${e.searchIn}>${o?this._renderSource(-1):null}${i.map((c,n)=>this._renderSource(n)).toArray()}</calcite-dropdown-group></calcite-dropdown>`:null}_renderUseCurrentLocation(){let{_currentLocationValue:e}=this;return r`<calcite-autocomplete-item .heading=${this.messages.useCurrentLocation??""} icon-start=gps-on .value=${e}></calcite-autocomplete-item>`}_renderAutocomplete(){let{_effectiveActiveMenu:e,messages:t,_isDisabled:s}=this,{maxInputLength:i,placeholder:o,searchTerm:c,state:n}=this.viewModel,y=this.label??t.searchButtonTitle??"";return r`<calcite-autocomplete .autocomplete=${"off"} class=${l(u.autocomplete)} .disabled=${s} .icon=${this.icon} .inputValue=${c} .label=${y} .loading=${n==="searching"} .maxLength=${i} .name=${this.el.id} =${this._handleInputKeydown} .open=${e==="suggestion"} overlay-positioning=fixed .placeholder=${o} title=${(c?"":o)??f} =${this._handleCalciteAutocompleteChange} =${this._handleAutocompleteClose} =${this._handleAutocompleteOpen} =${this._handleCalciteAutocompleteTextInput} =${this._handleCalciteAutocompleteTextInput} ${g(this._handleAutocompleteCreate)}>${this._renderSuggestions()}${this._renderNotices()}</calcite-autocomplete>`}_renderForm(){return r`<form class=${l(u.form)} =${this._formSubmit} role=search>${this._renderAutocomplete()}</form>`}_renderSuggestGroup(e){return e.results?.map(t=>this._renderSuggestion(t))}_renderSuggestions(){let{suggestions:e}=this.viewModel;return this._showNoResults?null:this._showCurrentLocation?this._renderUseCurrentLocation():e?.map(t=>this._renderSuggestResults(t))}_renderSuggestResults(e){let{allSources:t,activeSourceIndex:s}=this.viewModel,{sourceIndex:i}=e,o=e.results?.length,c=t.length>1&&s===-1,n=this._getSourceName(i);return o&&c?r`<calcite-autocomplete-item-group .heading=${n}>${this._renderSuggestGroup(e)}</calcite-autocomplete-item-group>`:this._renderSuggestGroup(e)}_renderSuggestion({key:e,sourceIndex:t,text:s}){let i={key:e,sourceIndex:t};return r`<calcite-autocomplete-item .heading=${s??this.messages.untitledResult??""} .value=${JSON.stringify(i)}></calcite-autocomplete-item>`}_renderSource(e){let t=this._getSourceName(e);return r`<calcite-dropdown-item data-source-index=${`${e}`} .selected=${e===this.viewModel.activeSourceIndex}>${t}</calcite-dropdown-item>`}_renderNoResultsWarning(e){let{messages:t}=this,s=e?T(t.noResultsFoundForValue??"",{value:`"${e}"`}):t.noResultsFound;return r`<calcite-notice icon=exclamation-mark-triangle kind=warning open slot=content-bottom><div slot=title>${t.noResults}</div><div slot=message>${s}</div></calcite-notice>`}_renderLocateError(){return r`<calcite-notice icon=exclamation-mark-circle kind=danger open slot=content-bottom><div slot=message>${this.messages.locateError}</div></calcite-notice>`}_renderNotices(){return this._locateFailed?this._renderLocateError():this._showNoResults?this._renderNoResultsWarning(this._lastSearchTerm??this.viewModel.searchTerm):null}};b("arcgis-search",p);return p},"widgets/Search/SearchViewModel","core/promiseUtils","intl","core/reactiveUtils",a,c,e)