@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 2.22 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 t}from"../../chunks/tslib.es6.js";import e from"../../core/Identifiable.js";import{property as i}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import r from"../Widget.js";import{isWidget as s}from"../support/widget.js";import{tsx as n}from"../support/jsxFactory.js";let l=class extends(e.IdentifiableMixin(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};