@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 2.97 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{_ as e}from"../../chunks/tslib.es6.js";import"../../intl.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 t}from"../../core/accessorSupport/decorators/subclass.js";import o from"../Widget.js";import{css as r}from"./searchResultRendererCSS.js";import i from"./SearchViewModel.js";import{loadCalciteComponents as l}from"../support/componentsUtils.js";import{globalCss as c}from"../support/globalCss.js";import"../support/widgetUtils.js";import{messageBundle as n}from"../support/decorators/messageBundle.js";import{tsx as p}from"../support/jsxFactory.js";import{substitute as u}from"../../intl/substitute.js";let m=class extends o{constructor(e,s){super(e,s),this.messages=null,this.showMoreResultsOpen=!1,this.viewModel=null}loadDependencies(){return l({block:()=>import("@esri/calcite-components/dist/components/calcite-block"),list:()=>import("@esri/calcite-components/dist/components/calcite-list"),"list-item":()=>import("@esri/calcite-components/dist/components/calcite-list-item"),"list-item-group":()=>import("@esri/calcite-components/dist/components/calcite-list-item-group")})}destroy(){this.viewModel=null}render(){return p("div",{class:this.classes(r.base,c.widget)},this.viewModel?.selectedResult?.name??"",this._renderMoreResults())}_renderMoreResults(){if(!this.viewModel)return null;const{resultCount:e,results:s}=this.viewModel;return!e||e<2||!s?null:p("calcite-block",{class:r.moreResults,collapsible:!0,expanded:this.showMoreResultsOpen,heading:u(this.messages.showMoreResults,{count:e-1}),onCalciteBlockClose:()=>this._toggleShowMoreResults(!1),onCalciteBlockOpen:()=>this._toggleShowMoreResults(!0)},s.map((e=>this._renderMoreResultsList(e,s?.length>1))))}_renderListItem(e){return p("calcite-list-item",{key:`result-${e.sourceIndex}-${e.key}`,label:e.name,onCalciteListItemSelect:()=>this._selectResult(e)})}_renderMoreResultsList(e,s){const{results:t}=e;if(!(t?.length??0)||!t)return null;const o=this.viewModel?.selectedResult,r=this._getSourceName(e.source,e.sourceIndex),i=t.filter((e=>e!==o)).map((e=>this._renderListItem(e)));return p("calcite-list",{label:r},s?p("calcite-list-item-group",{heading:r,key:`group-${e.sourceIndex}`},i):i)}_selectResult(e){this.showMoreResultsOpen=!1,this.viewModel?.select(e)}_toggleShowMoreResults(e){this.showMoreResultsOpen=e;const s=this.viewModel?.view?.popup;s&&"reposition"in s&&s.reposition()}_getSourceName(e,s){return s===i.ALL_INDEX?this.messages.all:e.name}};e([s(),n("esri/widgets/Search/t9n/Search")],m.prototype,"messages",void 0),e([s()],m.prototype,"showMoreResultsOpen",void 0),e([s()],m.prototype,"viewModel",void 0),m=e([t("esri.widgets.Search.SearchResultRenderer")],m);const a=m;export{a as default};