UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 2.32 kB
/* 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{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,legend as i}from"./css.js";import n from"./LegendElement.js";import{globalCss as l}from"../../../support/globalCss.js";import{Heading as a}from"../../../support/Heading.js";import"../../../support/widgetUtils.js";import{messageBundle as c}from"../../../support/decorators/messageBundle.js";import{tsx as p}from"../../../support/jsxFactory.js";const d=`${i}__`;let m=class extends t{constructor(e,s){super(e,s),this.activeLayerInfos=null,this.headingLevel=3,this.messages=null,this.type="classic"}render(){const e=this.activeLayerInfos,s=e?.toArray().map((e=>this._renderLegendForLayer(e))).filter(Boolean);return s?.length?p("section",null,s):p("div",{class:o.message,key:"no-legend"},this.messages.noLegend)}_renderLegendForLayer(e,s){if(!e.ready)return null;const r=`${e.layer.uid}-version-${e.version}`,t=`${d}${s?`${s}-`:""}${r}`,i=e.title?a({level:this.headingLevel,class:this.classes(l.heading,o.label)},e.title):null;if(e.children.length){const s=e.children.toArray().map((e=>this._renderLegendForLayer(e,r)));return p("section",{class:this.classes(o.service,o.groupLayer),key:t},i,s)}return this._renderLegendElementsForLayer(e,i,t)}_renderLegendElementsForLayer(e,s,r){const t=e.legendElements?.filter(Boolean);if(!t?.length)return null;const i=t.map((s=>p(n,{effectList:e.effectList,isChild:!1,key:`${r}-${s.type}`,layer:e.layer,legendElement:s,messages:this.messages}))),l={[o.groupLayerChild]:!!e.parent};return p("section",{class:this.classes(o.service,l),key:r},s,p("div",{class:o.layer},i))}};e([s()],m.prototype,"activeLayerInfos",void 0),e([s()],m.prototype,"headingLevel",void 0),e([s(),c("esri/widgets/Legend/t9n/Legend")],m.prototype,"messages",void 0),e([s({readOnly:!0})],m.prototype,"type",void 0),m=e([r("esri.widgets.Legend.styles.classic.ClassicView")],m);export{m as default};