@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
3 lines (2 loc) • 1.93 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */
import{__decorate as t}from"tslib";import{IdentifiableMixin as e}from"../../core/Identifiable.js";import{property as i,subclass as o}from"../../core/accessorSupport/decorators.js";import r from"../Widget.js";import{tsx as n,isWidget as s}from"../support/widget.js";let l=class extends(e(r)){constructor(t,e){super(t,e),this.content=null,this.flowEnabled=!1,this.image=null,this.listItem=null,this.open=!1,this.visible=!0}get disabled(){return!(this.content&&this.listItem)}set disabled(t){this._overrideIfSome("disabled",t)}get icon(){const{image:t}=this,e=this._getFirstWidget();return this._get("icon")??(!t&&e?e.icon:null)}set icon(t){this._overrideIfSome("icon",t)}get title(){return this._get("title")||(this._getFirstWidget()?.label??"")}set title(t){this._override("title",t)}render(){return n("div",{class:"esri-list-item-panel"},this._renderContents())}_renderContent(t){const{disabled:e,open:i}=this;return t&&!e&&i?"string"==typeof t?n("div",{innerHTML:t,key:t}):s(t)?n("div",{key:"content-widget"},t.render()):t instanceof HTMLElement?n("div",{afterCreate:this._attachToNode,bind:t,key:"content-element"}):null:null}_renderContents(){const{content:t,open:e}=this;return e?Array.isArray(t)?t.map(t=>this._renderContent(t)):this._renderContent(t):null}_attachToNode(t){t.appendChild(this)}_getWidget(t){return s(t)?t:null}_getFirstWidget(){const{content:t}=this;return Array.isArray(t)?t.map(t=>this._getWidget(t)).find(t=>t):this._getWidget(t)}};t([i()],l.prototype,"content",void 0),t([i()],l.prototype,"disabled",null),t([i()],l.prototype,"flowEnabled",void 0),t([i()],l.prototype,"icon",null),t([i()],l.prototype,"image",void 0),t([i()],l.prototype,"listItem",void 0),t([i()],l.prototype,"open",void 0),t([i()],l.prototype,"title",null),t([i()],l.prototype,"visible",void 0),l=t([o("esri.widgets.TableList.ListItemPanel")],l);export{l as default};