UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

6 lines (5 loc) 3.78 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import{_ as e}from"../../chunks/tslib.es6.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as r}from"../../core/accessorSupport/decorators/subclass.js";import t from"../Widget.js";import{css as o}from"./searchResultRendererCSS.js";import l from"./SearchViewModel.js";import{globalCss as i}from"../support/globalCss.js";import{accessibleHandler as u}from"../support/decorators/accessibleHandler.js";import{messageBundle as n}from"../support/decorators/messageBundle.js";import{tsx as c}from"../support/jsxFactory.js";import"../support/widgetUtils.js";let d=class extends t{constructor(e,s){super(e,s),this.messages=null,this.showMoreResultsOpen=!1,this.viewModel=null}destroy(){this.viewModel=null}render(){const e={[o.showMoreResults]:this.showMoreResultsOpen};return c("div",{class:this.classes(o.base,i.widget)},c("div",{class:this.classes(o.moreResults,e),key:"esri-search-renderer__container"},this._renderSearchResultName(),this._renderMoreResults()))}_renderMoreResults(){return c("div",{key:"esri-search-renderer__more-results"},this._renderMoreResultsButton(),this._renderMoreResultsLists())}_renderSearchResultName(){const e=this.viewModel?.selectedResult,s=e?.name||"";return c("div",{class:o.moreResultsItem,key:"esri-search-renderer__result-name"},s)}_renderMoreResultsLists(){const{viewModel:e}=this;if(!e)return[];const s=e.results;if((e.resultCount??0)<2)return null;const r=s?.map((e=>this._renderMoreResultsList(e)));return c("div",{class:o.moreResultsList,key:"esri-search-renderer__more-results-container"},r)}_renderMoreResultsButton(){const{messages:e,viewModel:s}=this;if(!s)return null;return(s.resultCount??0)<2?null:c("div",{class:o.moreResultsItem,key:"esri-search-renderer__more-results-button"},c("a",{bind:this,class:i.anchor,href:"#",onclick:this._showMoreResultsClick,onkeydown:this._showMoreResultsClick},this.showMoreResultsOpen?e.hideMoreResults:e.showMoreResults))}_renderMoreResultsHeader(e,s){return c("div",{class:o.moreResultsListHeader,key:`esri-search-result-renderer__header-${s}`},e)}_renderMoreResultsList(e){const{results:s}=e,r=s?.length??0,t=r>0,o=this.viewModel?.selectedResult,l=1===r&&s[0]===o,i=this._getSourceName(e.source,e.sourceIndex),u=(this.viewModel?.results?.length??0)>1&&!l?this._renderMoreResultsHeader(i,e.sourceIndex):null,n=t&&s.map(((e,s)=>this._renderMoreResultsListItem(e,s))),d=t&&!l?c("ul",{key:`esri-search-result-renderer__list-${e.sourceIndex}`},n):null;return t?c("div",{key:`esri-search-result-renderer__results-${e.sourceIndex}`},u,d):null}_renderMoreResultsListItem(e,s){const r=this.viewModel?.selectedResult;return e!==r?c("li",{key:`esri-search-result-renderer__list-item-${s}`},c("a",{bind:this,class:i.anchor,"data-result":e,href:"#",onclick:this._selectResultClick,onkeydown:this._selectResultClick,tabIndex:0},e.name)):null}_showMoreResultsClick(e){e.preventDefault(),this.showMoreResultsOpen=!this.showMoreResultsOpen;const s=this.viewModel?.view?.popup;s&&"reposition"in s&&s.reposition()}_selectResultClick(e){e.preventDefault();const s=e.currentTarget["data-result"];this.viewModel?.select(s)}_getSourceName(e,s){return s===l.ALL_INDEX?this.messages.all:e.name}};e([s(),n("esri/widgets/Search/t9n/Search")],d.prototype,"messages",void 0),e([s()],d.prototype,"showMoreResultsOpen",void 0),e([s()],d.prototype,"viewModel",void 0),e([u()],d.prototype,"_showMoreResultsClick",null),e([u()],d.prototype,"_selectResultClick",null),d=e([r("esri.widgets.Search.SearchResultRenderer")],d);const a=d;export{a as default};