/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
import{a as o}from"./JAL7MAFZ.js";import{B as l,E as p,H as m,g as c,i,q as d}from"./NRTJ53CF.js";var b=c`:host{overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;height:100%;width:100%}`,n=class extends l{constructor(){super(...arguments),this.treeItemsOpen=new Set,this.handleMutations=e=>{e.forEach(t=>{if(t.type==="attributes"&&t.attributeName==="expanded"){let s=t.target;"key"in s.dataset&&s.dataset.key!==void 0&&this.treeItemsOpen.has(s.dataset.key)!==s.expanded&&this.toggleTreeItem(s.dataset.key)}})},this.renderedTree=[],this.data={},this.arcgisChange=d()}static{this.properties={renderedTree:16,data:0,value:1}}static{this.styles=b}load(){this.setupComponent()}willUpdate(e){e.has("data")&&(this.hasUpdated||Object.keys(this.data??{}).length>0)&&this.setupComponent()}loaded(){this.manager.onLifecycle(()=>{this.observer=new MutationObserver(this.handleMutations);let e=this.el.shadowRoot??this.el;return this.observer.observe(e,{attributes:!0,subtree:!0,attributeFilter:["expanded"]}),()=>{this.observer?.disconnect(),this.observer=void 0}})}setupComponent(){this.treeItemsOpen.clear(),this.buildJSXTree()}buildJSXTree(){let e=t=>{let s=[];for(let r of Object.keys(t)){let a=t[r],h;typeof a=="object"&&(h=this.treeItemsOpen.has(r)?e(a):[]);let u=typeof a=="object"?r:a;s.push(this.createTreeItem(r,u,h))}return s};this.renderedTree=e(this.data)}toggleTreeItem(e){this.treeItemsOpen.has(e)?this.treeItemsOpen.delete(e):this.treeItemsOpen.add(e),this.buildJSXTree()}createTreeItem(e,t,s){return i`<calcite-tree-item data-key=${e??p} .selected=${this.value===e} .expanded=${this.treeItemsOpen.has(e)}>${t}${s!==void 0&&o(`${e}-child-tree`,i`<calcite-tree slot=children>${s}</calcite-tree>`)||""}</calcite-tree-item>`}handleTreeSelect(e){let t=e.currentTarget?.selectedItems[0]?.dataset.key;t!==void 0&&(this.value=t,this.arcgisChange.emit())}render(){return o("base-tree",i`<calcite-tree scale=s @calciteTreeSelect=${this.handleTreeSelect}>${this.renderedTree}</calcite-tree>`)}};m("arcgis-spatial-reference-picker-tree",n);export{n as ArcgisSpatialReferencePickerTree};
