/*!
 * KoliBri - The accessible HTML-Standard
 */
import{r as e,h as t,H as i,g as s}from"./index-cf24d1fe.js";import{n as a,g as d,z as c}from"./component-names-0a8a1a6c.js";import{n as l}from"./dev.utils-44ef1bde.js";import{b as n}from"./prop.validators-5a58fa40.js";import{v as o}from"./label-084ed1e7.js";import{v as h}from"./open-7d2c57bd.js";import{v as r}from"./href-5e305ce2.js";import"./reuse-523ba2ac.js";import"./dev.utils-fab45cbc.js";import"./index-5728f164.js";const f=(e,t,a)=>{n(e,"_active",t,a)},b=class{constructor(t){e(this,t),this.groupId=`tree-group-${l()}`,this.level=void 0,this.state={_active:!1,_hasChildren:!1,_href:"",_label:"",_open:!1},this._active=void 0,this._label=void 0,this._open=void 0,this._href=void 0}render(){const{_href:e,_active:s,_hasChildren:l,_open:o,_label:n}=this.state;return t(i,{key:"80b4d8b5633b98cf7ebc12c3c9e50cd5a2617d4a",onSlotchange:this.handleSlotchange.bind(this),class:"kol-tree-item-wc"},t("li",{key:"0dc520638d2452cc5687e192300192b22322dd25",class:"tree-item",style:{"--level":`${this.level}`}},t(a,{key:"6cf78c51ec92daaa5d29830eb1e6dd0147c12ee4",class:{"tree-link":!0,"first-level":0===this.level,active:Boolean(s)},_href:e,_label:"",_role:"treeitem",_tabIndex:s?0:-1,_ariaExpanded:l?o:void 0,_ariaOwns:l?this.groupId:void 0,ref:e=>this.linkElement=e},t("span",{key:"7681b6f5f59dc63fc025c2e6bf589478cd8e8db2",slot:"expert"},l&&t("span",{key:"e2504c3cd286758f562bad3238ded934ef4482f2",class:"toggle-button",onClick:e=>o?void this.handleCollapseClick(e):void this.handleExpandClick(e)},t(d,{key:"892da807da1e116a0c6c6b1566f7db6e087886ff",class:"toggle-button-icon",_icons:"codicon codicon-"+(o?"chevron-down":"chevron-right"),_label:""}))," ",n)),t("ul",{key:"45db8c2f2dd4681e7ec0c130df25b0f97c3553ac",hidden:!l||!o,role:"group",id:this.groupId},t("slot",{key:"3052b7252e4188563fb2253a738421a3238da9a3"}))))}validateActive(e){f(this,e||!1)}validateLabel(e){o(this,e)}validateOpen(e){h(this,e)}validateHref(e){r(this,e)}componentWillLoad(){this.validateActive(this._active),this.validateLabel(this._label),this.validateOpen(this._open),this.validateHref(this._href),this.checkForChildren(),this.determineTreeItemDepth()}determineTreeItemDepth(){let e=0,t=this.host.parentNode.host.parentNode;for(;null!==t&&t.tagName.toLowerCase()!==c&&t!==document.body;)t=t.parentElement,e+=1;this.level=e}handleSlotchange(){this.checkForChildren()}checkForChildren(){var e,t;this.state=Object.assign(Object.assign({},this.state),{_hasChildren:Boolean(null===(t=null===(e=this.host.querySelector("slot"))||void 0===e?void 0:e.assignedElements)||void 0===t?void 0:t.call(e).length)})}async focusLink(){await this.linkElement.kolFocus()}async handleExpandClick(e){e.preventDefault(),await this.linkElement.kolFocus(),await this.expand()}async expand(){this.state._hasChildren&&(this.state=Object.assign(Object.assign({},this.state),{_open:!0}))}async handleCollapseClick(e){e.preventDefault(),this.linkElement.focus(),await this.collapse()}async collapse(){this.state._hasChildren&&(this.state=Object.assign(Object.assign({},this.state),{_open:!1}))}async isOpen(){var e;return null!==(e=this.state._open)&&void 0!==e&&e}get host(){return s(this)}static get watchers(){return{_active:["validateActive"],_label:["validateLabel"],_open:["validateOpen"],_href:["validateHref"]}}};export{b as kol_tree_item_wc};