diff --git a/package-lock.json b/package-lock.json index 3cd2ee9..e710988 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "dependencies": { - "treeselectjs": "^0.10.0" + "treeselectjs": "^0.13.0" }, "devDependencies": { "cssnano": "^6.0.1", @@ -3271,9 +3271,10 @@ } }, "node_modules/treeselectjs": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/treeselectjs/-/treeselectjs-0.10.0.tgz", - "integrity": "sha512-jImo5u/Lf5vmg+AdYoamiI0dTdHKsNo0K57G+e27VgQM1SlJK3U0WCCvoWSuKhiDXOPJE0H/2GeB2f/JvDsqOg==" + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/treeselectjs/-/treeselectjs-0.13.0.tgz", + "integrity": "sha512-1s0yfl09I9L+7m2boD/eUShDbVPXXFdP7zibg1uuXYO7fcOMONDV3nkzRtgdEnkF4gpAsjLQP1Qzm9eEJk8KWA==", + "license": "MIT" }, "node_modules/typed-array-buffer": { "version": "1.0.0", diff --git a/package.json b/package.json index 7e749c0..3f1e703 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,6 @@ "postcss-nesting": "^12.0.2" }, "dependencies": { - "treeselectjs": "^0.10.0" + "treeselectjs": "^0.13.0" } -} +} \ No newline at end of file diff --git a/resources/dist/filament-select-tree.js b/resources/dist/filament-select-tree.js index c19316c..1c977d7 100644 --- a/resources/dist/filament-select-tree.js +++ b/resources/dist/filament-select-tree.js @@ -1 +1 @@ -var di=Object.defineProperty,ui=(t,e,s)=>e in t?di(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,c=(t,e,s)=>(ui(t,typeof e!="symbol"?e+"":e,s),s),He=(t,e,s)=>{if(!e.has(t))throw TypeError("Cannot "+s)},l=(t,e,s)=>(He(t,e,"read from private field"),s?s.call(t):e.get(t)),h=(t,e,s)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,s)},m=(t,e,s,i)=>(He(t,e,"write to private field"),i?i.call(t,s):e.set(t,s),s),a=(t,e,s)=>(He(t,e,"access private method"),s),Ve={arrowUp:'',arrowDown:'',arrowRight:'',attention:'',clear:'',cross:'',check:'',partialCheck:''},O=(t,e)=>{if(e.innerHTML="",typeof t=="string")e.innerHTML=t;else{let s=t.cloneNode(!0);e.appendChild(s)}},Ge=t=>{let e=t?{...t}:{};return Object.keys(Ve).forEach(s=>{e[s]||(e[s]=Ve[s])}),e},pi=t=>t.reduce((e,{name:s},i)=>(e+=s,il(this,L).focus(),0)}blur(){this.isOpened&&a(this,A,H).call(this),this.clearSearch(),l(this,L).blur()}updateValue(e){this.value=e,a(this,G,F).call(this),a(this,M,Y).call(this)}removeItem(e){this.value=this.value.filter(s=>s.id!==e),a(this,Q,qt).call(this),a(this,G,F).call(this),a(this,M,Y).call(this)}clear(){this.value=[],a(this,Q,qt).call(this),a(this,G,F).call(this),this.clearSearch()}openClose(){a(this,A,H).call(this)}clearSearch(){this.searchText="",this.searchCallback(""),a(this,M,Y).call(this)}};N=new WeakMap,L=new WeakMap,D=new WeakMap,S=new WeakMap,St=new WeakSet,Hs=function(){a(this,G,F).call(this),a(this,M,Y).call(this),a(this,Lt,Me).call(this)},G=new WeakSet,F=function(){if(l(this,N).innerHTML="",this.showTags){l(this,N).append(...a(this,Tt,$e).call(this));let t=pi(this.value);this.nameChangeCallback(t)}else{let t=a(this,Bt,Ue).call(this);l(this,N).appendChild(t),this.nameChangeCallback(t.innerText)}l(this,N).appendChild(l(this,L))},Lt=new WeakSet,Me=function(){let t=[];l(this,D).innerHTML="",this.clearable&&t.push(a(this,Mt,Ye).call(this)),this.isAlwaysOpened||t.push(a(this,Dt,Ke).call(this,this.isOpened)),t.length&&l(this,D).append(...t)},yt=new WeakSet,Ie=function(){if(!this.isAlwaysOpened&&l(this,S)){let t=this.isOpened?this.iconElements.arrowUp:this.iconElements.arrowDown;O(t,l(this,S))}},M=new WeakSet,Y=function(){var t;(t=this.value)!=null&&t.length?(l(this,L).removeAttribute("placeholder"),this.srcElement.classList.remove("treeselect-input--value-not-selected")):(l(this,L).setAttribute("placeholder",this.placeholder),this.srcElement.classList.add("treeselect-input--value-not-selected")),this.searchable?this.srcElement.classList.remove("treeselect-input--unsearchable"):this.srcElement.classList.add("treeselect-input--unsearchable"),this.isSingleSelect?this.srcElement.classList.add("treeselect-input--is-single-select"):this.srcElement.classList.remove("treeselect-input--is-single-select"),l(this,L).value=this.searchText},A=new WeakSet,H=function(){this.isOpened=!this.isOpened,a(this,yt,Ie).call(this),this.isOpened?this.openCallback():this.closeCallback()},xt=new WeakSet,Ps=function(t,e,s){let i=document.createElement("div");return i.classList.add("treeselect-input"),i.setAttribute("tabindex","-1"),i.addEventListener("mousedown",n=>a(this,_t,De).call(this,n)),i.addEventListener("focus",()=>this.focusCallback(),!0),i.addEventListener("blur",()=>this.blurCallback(),!0),t.appendChild(e),i.append(t,s),i},_t=new WeakSet,De=function(t){t.stopPropagation(),this.isOpened||a(this,A,H).call(this),this.focus()},Wt=new WeakSet,Vs=function(){let t=document.createElement("div");return t.classList.add("treeselect-input__tags"),t},Tt=new WeakSet,$e=function(){return this.value.map(t=>{let e=document.createElement("div");e.classList.add("treeselect-input__tags-element"),e.setAttribute("tabindex","-1"),e.setAttribute("tag-id",t.id.toString()),e.setAttribute("title",t.name);let s=a(this,Nt,je).call(this,t.name),i=a(this,At,Re).call(this);return e.addEventListener("mousedown",n=>a(this,Ot,qe).call(this,n,t.id)),e.append(s,i),e})},Ot=new WeakSet,qe=function(t,e){t.preventDefault(),t.stopPropagation(),this.removeItem(e),this.focus()},Nt=new WeakSet,je=function(t){let e=document.createElement("span");return e.classList.add("treeselect-input__tags-name"),e.textContent=t,e},At=new WeakSet,Re=function(){let t=document.createElement("span");return t.classList.add("treeselect-input__tags-cross"),O(this.iconElements.cross,t),t},Bt=new WeakSet,Ue=function(){let t=document.createElement("span");if(t.classList.add("treeselect-input__tags-count"),!this.value.length)return t.textContent="",t.setAttribute("title",""),t;let e=this.value.length===1?this.value[0].name:`${this.value.length} ${this.tagsCountText}`;return t.textContent=e,t.setAttribute("title",e),t},Ht=new WeakSet,Gs=function(){let t=document.createElement("input");return t.classList.add("treeselect-input__edit"),this.id&&t.setAttribute("id",this.id),(!this.searchable||this.disabled)&&t.setAttribute("readonly","readonly"),this.disabled&&t.setAttribute("tabindex","-1"),this.ariaLabel.length&&t.setAttribute("aria-label",this.ariaLabel),t.addEventListener("keydown",e=>a(this,Pt,ze).call(this,e)),t.addEventListener("input",e=>a(this,Vt,Fe).call(this,e,t)),t},Pt=new WeakSet,ze=function(t){t.stopPropagation();let e=t.key;e==="Backspace"&&!this.searchText.length&&this.value.length&&!this.showTags&&this.clear(),e==="Backspace"&&!this.searchText.length&&this.value.length&&this.removeItem(this.value[this.value.length-1].id),t.code==="Space"&&(!this.searchText||!this.searchable)&&a(this,A,H).call(this),(e==="Enter"||e==="ArrowDown"||e==="ArrowUp")&&t.preventDefault(),this.keydownCallback(t),e!=="Tab"&&this.focus()},Vt=new WeakSet,Fe=function(t,e){t.stopPropagation();let s=this.searchText,i=e.value.trim();if(s.length===0&&i.length===0){e.value="";return}if(this.searchable){let n=t.target.value;this.searchCallback(n),this.isOpened||a(this,A,H).call(this)}else e.value="";this.searchText=e.value},Gt=new WeakSet,Ms=function(){let t=document.createElement("div");return t.classList.add("treeselect-input__operators"),t},Mt=new WeakSet,Ye=function(){let t=document.createElement("span");return t.classList.add("treeselect-input__clear"),t.setAttribute("tabindex","-1"),O(this.iconElements.clear,t),t.addEventListener("mousedown",e=>a(this,It,Je).call(this,e)),t},It=new WeakSet,Je=function(t){t.preventDefault(),t.stopPropagation(),(this.searchText.length||this.value.length)&&this.clear(),this.focus()},Dt=new WeakSet,Ke=function(t){m(this,S,document.createElement("span")),l(this,S).classList.add("treeselect-input__arrow");let e=t?this.iconElements.arrowUp:this.iconElements.arrowDown;return O(e,l(this,S)),l(this,S).addEventListener("mousedown",s=>a(this,$t,Xe).call(this,s)),l(this,S)},$t=new WeakSet,Xe=function(t){t.stopPropagation(),t.preventDefault(),this.focus(),a(this,A,H).call(this)},Q=new WeakSet,qt=function(){this.inputCallback(this.value)};var Is=(t,e,s,i)=>{vi(e);let n=e.filter(o=>!o.disabled&&t.some(r=>r===o.id));if(s&&n.length){n[0].checked=!0;return}n.forEach(o=>{o.checked=!0;let r=Pe(o,e,i);o.checked=r})},Pe=({id:t,checked:e},s,i)=>{let n=s.find(r=>r.id===t);if(!n)return!1;if(i)return n.checked=n.disabled?!1:!!e,n.checked;let o=Ds(!!e,n,s);return $s(n,s),o},Ds=(t,e,s)=>{if(!e.isGroup)return e.checked=e.disabled?!1:!!t,e.isPartialChecked=!1,e.checked;let i=s.filter(n=>n.childOf===e.id);return!t||e.disabled||e.isPartialChecked?(e.checked=!1,e.isPartialChecked=!1,Rt(e,i,s),e.checked):qs(i,s)?js(i)?(e.checked=!1,e.isPartialChecked=!1,e.disabled=!0,e.checked):(e.checked=!1,e.isPartialChecked=!0,i.forEach(n=>{Ds(t,n,s)}),e.checked):(e.checked=!0,e.isPartialChecked=!1,Rt(e,i,s),e.checked)},$s=(t,e)=>{let s=e.find(i=>i.id===t.childOf);s&&(mi(s,e),$s(s,e))},mi=(t,e)=>{let s=kt(t,e);if(js(s)){t.checked=!1,t.isPartialChecked=!1,t.disabled=!0;return}if(ki(s)){t.checked=!0,t.isPartialChecked=!1;return}if(wi(s)){t.checked=!1,t.isPartialChecked=!0;return}t.checked=!1,t.isPartialChecked=!1},Rt=({checked:t,disabled:e},s,i)=>{s.forEach(n=>{n.disabled=!!e||!!n.disabled,n.checked=!!t&&!n.disabled,n.isPartialChecked=!1;let o=kt(n,i);Rt({checked:t,disabled:e},o,i)})},qs=(t,e)=>t.some(s=>s.disabled)?!0:t.some(s=>{if(s.isGroup){let i=kt(s,e);return qs(i,e)}return!1}),js=t=>t.every(e=>!!e.disabled),ki=t=>t.every(e=>!!e.checked),wi=t=>t.some(e=>!!e.checked||!!e.isPartialChecked),vi=t=>{t.forEach(e=>{e.checked=!1,e.isPartialChecked=!1})},fi=(t,e,s)=>{let i={level:0,groupId:""},n=Rs(t,e,i.groupId,i.level);return gi(n,s)},Rs=(t,e,s,i)=>t.reduce((n,o)=>{var r;let u=!!((r=o.children)!=null&&r.length),v=i>=e&&u,k=i>e;if(n.push({id:o.value,name:o.name,childOf:s,isGroup:u,checked:!1,isPartialChecked:!1,level:i,isClosed:v,hidden:k,disabled:o.disabled??!1}),u){let w=Rs(o.children,e,o.value,i+1);n.push(...w)}return n},[]),kt=({id:t},e)=>e.filter(s=>s.childOf===t),bi=t=>{let{ungroupedNodes:e,allGroupedNodes:s,allNodes:i}=t.reduce((o,r)=>(r.checked&&(o.allNodes.push(r),r.isGroup?o.allGroupedNodes.push(r):o.ungroupedNodes.push(r)),o),{ungroupedNodes:[],allGroupedNodes:[],allNodes:[]}),n=i.filter(o=>!s.some(({id:r})=>r===o.childOf));return{ungroupedNodes:e,groupedNodes:n,allNodes:i}},gi=(t,e)=>(t.filter(s=>!!s.disabled).forEach(({id:s})=>Pe({id:s,checked:!1},t,e)),t),wt=(t,{id:e,isClosed:s})=>{kt({id:e},t).forEach(i=>{i.hidden=s??!1,i.isGroup&&!i.isClosed&&wt(t,{id:i.id,isClosed:s})})},Ci=t=>{t.filter(e=>e.isGroup&&!e.disabled&&(e.checked||e.isPartialChecked)).forEach(e=>{e.isClosed=!1,wt(t,e)})},Ei=(t,e)=>{let s=Si(t,e);t.forEach(i=>{s.some(({id:n})=>n===i.id)?(i.isGroup&&(i.isClosed=!1,wt(t,i)),i.hidden=!1):i.hidden=!0})},Si=(t,e)=>t.reduce((s,i)=>{if(i.name.toLowerCase().includes(e.toLowerCase())){if(s.push(i),i.isGroup){let n=Us(i.id,t);s.push(...n)}if(i.childOf){let n=zs(i.childOf,t);s.push(...n)}}return s},[]),Us=(t,e)=>e.reduce((s,i)=>(i.childOf===t&&(s.push(i),i.isGroup&&s.push(...Us(i.id,e))),s),[]),zs=(t,e)=>e.reduce((s,i)=>(i.id===t&&(s.push(i),i.childOf&&s.push(...zs(i.childOf,e))),s),[]),Li=t=>{let{duplications:e}=t.reduce((s,i)=>(s.allItems.some(n=>n.toString()===i.id.toString())&&s.duplications.push(i.id),s.allItems.push(i.id),s),{duplications:[],allItems:[]});e.length&&console.error(`Validation: You have duplicated values: ${e.join(", ")}! You should use unique values.`)},yi=(t,e,s,i,n,o,r,u,v,k)=>{Is(t,e,n,v),u&&r&&Ci(e),ot(e,s,i,o,k)},ot=(t,e,s,i,n)=>{t.forEach(o=>{let r=e.querySelector(`[input-id="${o.id}"]`),u=W(r);r.checked=o.checked,xi(o,u,i),_i(o,u),Wi(o,u),Ti(o,u,s),Oi(o,u),Ai(o,u,t,n),Ni(o,r,s)}),Bi(t,e)},xi=(t,e,s)=>{t.checked?e.classList.add("treeselect-list__item--checked"):e.classList.remove("treeselect-list__item--checked"),Array.isArray(s)&&s[0]===t.id&&!t.disabled?e.classList.add("treeselect-list__item--single-selected"):e.classList.remove("treeselect-list__item--single-selected")},_i=(t,e)=>{t.isPartialChecked?e.classList.add("treeselect-list__item--partial-checked"):e.classList.remove("treeselect-list__item--partial-checked")},Wi=(t,e)=>{t.disabled?e.classList.add("treeselect-list__item--disabled"):e.classList.remove("treeselect-list__item--disabled")},Ti=(t,e,s)=>{if(t.isGroup){let i=e.querySelector(".treeselect-list__item-icon"),n=t.isClosed?s.arrowRight:s.arrowDown;O(n,i),t.isClosed?e.classList.add("treeselect-list__item--closed"):e.classList.remove("treeselect-list__item--closed")}},Oi=(t,e)=>{t.hidden?e.classList.add("treeselect-list__item--hidden"):e.classList.remove("treeselect-list__item--hidden")},Ni=(t,e,s)=>{let i=e.parentNode.querySelector(".treeselect-list__item-checkbox-icon");t.checked?O(s.check,i):t.isPartialChecked?O(s.partialCheck,i):i.innerHTML=""},Ai=(t,e,s,i)=>{let n=t.level===0,o=20,r=5;if(n){let u=s.some(w=>w.isGroup&&w.level===t.level),v=!t.isGroup&&u?`${o}px`:`${r}px`,k=t.isGroup?"0":v;i?e.style.paddingRight=k:e.style.paddingLeft=k}else{let u=t.isGroup?`${t.level*o}px`:`${t.level*o+o}px`;i?e.style.paddingRight=u:e.style.paddingLeft=u}e.setAttribute("level",t.level.toString()),e.setAttribute("group",t.isGroup.toString())},Bi=(t,e)=>{let s=t.some(n=>!n.hidden),i=e.querySelector(".treeselect-list__empty");s?i.classList.add("treeselect-list__empty--hidden"):i.classList.remove("treeselect-list__empty--hidden")},W=t=>t.parentNode.parentNode,Qe=(t,e)=>e.find(s=>s.id.toString()===t),Hi=t=>W(t).querySelector(".treeselect-list__item-icon"),Pi=(t,e)=>{e&&Object.keys(e).forEach(s=>{let i=e[s];typeof i=="string"&&t.setAttribute(s,i)})},I,P,T,Z,Ut,Fs,zt,Ys,Ft,Js,Yt,Ze,Jt,ts,Kt,es,tt,vt,Xt,ss,Qt,is,Zt,ls,et,ft,te,ns,ee,as,se,hs,ie,cs,le,os,ne,rs,ae,ds,he,us,ce,ps,oe,ms,re,ks,st,bt,rt,de,ue,ws,pe=class{constructor({options:e,value:s,openLevel:i,listSlotHtmlComponent:n,emptyText:o,isSingleSelect:r,iconElements:u,showCount:v,disabledBranchNode:k,expandSelected:w,isIndependentNodes:f,rtl:b,inputCallback:g,arrowClickCallback:y,mouseupCallback:C}){h(this,Ut),h(this,zt),h(this,Ft),h(this,Yt),h(this,Jt),h(this,Kt),h(this,tt),h(this,Xt),h(this,Qt),h(this,Zt),h(this,et),h(this,te),h(this,ee),h(this,se),h(this,ie),h(this,le),h(this,ne),h(this,ae),h(this,he),h(this,ce),h(this,oe),h(this,re),h(this,st),h(this,rt),h(this,ue),c(this,"options"),c(this,"value"),c(this,"openLevel"),c(this,"listSlotHtmlComponent"),c(this,"emptyText"),c(this,"isSingleSelect"),c(this,"showCount"),c(this,"disabledBranchNode"),c(this,"expandSelected"),c(this,"isIndependentNodes"),c(this,"rtl"),c(this,"iconElements"),c(this,"searchText"),c(this,"flattedOptions"),c(this,"flattedOptionsBeforeSearch"),c(this,"selectedNodes"),c(this,"srcElement"),c(this,"inputCallback"),c(this,"arrowClickCallback"),c(this,"mouseupCallback"),h(this,I,null),h(this,P,!0),h(this,T,[]),h(this,Z,!0),this.options=e,this.value=s,this.openLevel=i??0,this.listSlotHtmlComponent=n??null,this.emptyText=o??"No results found...",this.isSingleSelect=r??!1,this.showCount=v??!1,this.disabledBranchNode=k??!1,this.expandSelected=w??!1,this.isIndependentNodes=f??!1,this.rtl=b??!1,this.iconElements=u,this.searchText="",this.flattedOptions=fi(this.options,this.openLevel,this.isIndependentNodes),this.flattedOptionsBeforeSearch=this.flattedOptions,this.selectedNodes={nodes:[],groupedNodes:[],allNodes:[]},this.srcElement=a(this,Ft,Js).call(this),this.inputCallback=g,this.arrowClickCallback=y,this.mouseupCallback=C,Li(this.flattedOptions)}updateValue(e){this.value=e,m(this,T,this.isSingleSelect?this.value:[]),yi(e,this.flattedOptions,this.srcElement,this.iconElements,this.isSingleSelect,l(this,T),this.expandSelected,l(this,Z),this.isIndependentNodes,this.rtl),m(this,Z,!1),a(this,rt,de).call(this)}updateSearchValue(e){if(e===this.searchText)return;let s=this.searchText===""&&e!=="";this.searchText=e,s&&(this.flattedOptionsBeforeSearch=JSON.parse(JSON.stringify(this.flattedOptions))),this.searchText===""&&(this.flattedOptions=this.flattedOptionsBeforeSearch.map(i=>{let n=this.flattedOptions.find(o=>o.id===i.id);return n.isClosed=i.isClosed,n.hidden=i.hidden,n}),this.flattedOptionsBeforeSearch=[]),this.searchText&&Ei(this.flattedOptions,e),ot(this.flattedOptions,this.srcElement,this.iconElements,l(this,T),this.rtl),this.focusFirstListElement()}callKeyAction(e){m(this,P,!1);let s=this.srcElement.querySelector(".treeselect-list__item--focused");if(s?.classList.contains("treeselect-list__item--hidden"))return;let i=e.key;i==="Enter"&&s&&s.dispatchEvent(new Event("mousedown")),(i==="ArrowLeft"||i==="ArrowRight")&&a(this,Ut,Fs).call(this,s,e),(i==="ArrowDown"||i==="ArrowUp")&&a(this,zt,Ys).call(this,s,i)}focusFirstListElement(){let e="treeselect-list__item--focused",s=this.srcElement.querySelector(`.${e}`),i=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter(n=>window.getComputedStyle(W(n)).display!=="none");i.length&&(s&&s.classList.remove(e),W(i[0]).classList.add(e))}isLastFocusedElementExist(){return!!l(this,I)}};I=new WeakMap,P=new WeakMap,T=new WeakMap,Z=new WeakMap,Ut=new WeakSet,Fs=function(t,e){if(!t)return;let s=e.key,i=t.querySelector(".treeselect-list__item-checkbox").getAttribute("input-id"),n=Qe(i,this.flattedOptions),o=t.querySelector(".treeselect-list__item-icon");s==="ArrowLeft"&&!n.isClosed&&n.isGroup&&(o.dispatchEvent(new Event("mousedown")),e.preventDefault()),s==="ArrowRight"&&n.isClosed&&n.isGroup&&(o.dispatchEvent(new Event("mousedown")),e.preventDefault())},zt=new WeakSet,Ys=function(t,e){var s;let i=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter(n=>window.getComputedStyle(W(n)).display!=="none");if(i.length)if(!t)W(i[0]).classList.add("treeselect-list__item--focused");else{let n=i.findIndex(g=>W(g).classList.contains("treeselect-list__item--focused"));W(i[n]).classList.remove("treeselect-list__item--focused");let o=e==="ArrowDown"?n+1:n-1,r=e==="ArrowDown"?0:i.length-1,u=i[o]??i[r],v=!i[o],k=W(u);k.classList.add("treeselect-list__item--focused");let w=this.srcElement.getBoundingClientRect(),f=k.getBoundingClientRect();if(v&&e==="ArrowDown"){this.srcElement.scroll(0,0);return}if(v&&e==="ArrowUp"){this.srcElement.scroll(0,this.srcElement.scrollHeight);return}let b=((s=this.listSlotHtmlComponent)==null?void 0:s.clientHeight)??0;if(w.y+w.heightf.y){this.srcElement.scroll(0,this.srcElement.scrollTop-f.height);return}}},Ft=new WeakSet,Js=function(){let t=a(this,Yt,Ze).call(this),e=a(this,tt,vt).call(this,this.options);t.append(...e);let s=a(this,Qt,is).call(this);t.append(s);let i=a(this,Xt,ss).call(this);return i&&t.append(i),t},Yt=new WeakSet,Ze=function(){let t=document.createElement("div");return t.classList.add("treeselect-list"),this.isSingleSelect&&t.classList.add("treeselect-list--single-select"),this.disabledBranchNode&&t.classList.add("treeselect-list--disabled-branch-node"),t.addEventListener("mouseout",e=>a(this,Jt,ts).call(this,e)),t.addEventListener("mousemove",()=>a(this,Kt,es).call(this)),t.addEventListener("mouseup",()=>this.mouseupCallback(),!0),t},Jt=new WeakSet,ts=function(t){t.stopPropagation(),l(this,I)&&l(this,P)&&l(this,I).classList.add("treeselect-list__item--focused")},Kt=new WeakSet,es=function(){m(this,P,!0)},tt=new WeakSet,vt=function(t){return t.reduce((e,s)=>{var i;if((i=s.children)!=null&&i.length){let o=a(this,Zt,ls).call(this,s),r=a(this,tt,vt).call(this,s.children);return o.append(...r),e.push(o),e}let n=a(this,et,ft).call(this,s,!1);return e.push(n),e},[])},Xt=new WeakSet,ss=function(){if(!this.listSlotHtmlComponent)return null;let t=document.createElement("div");return t.classList.add("treeselect-list__slot"),t.appendChild(this.listSlotHtmlComponent),t},Qt=new WeakSet,is=function(){let t=document.createElement("div");t.classList.add("treeselect-list__empty"),t.setAttribute("title",this.emptyText);let e=document.createElement("span");e.classList.add("treeselect-list__empty-icon"),O(this.iconElements.attention,e);let s=document.createElement("span");return s.classList.add("treeselect-list__empty-text"),s.textContent=this.emptyText,t.append(e,s),t},Zt=new WeakSet,ls=function(t){let e=document.createElement("div");e.setAttribute("group-container-id",t.value.toString()),e.classList.add("treeselect-list__group-container");let s=a(this,et,ft).call(this,t,!0);return e.appendChild(s),e},et=new WeakSet,ft=function(t,e){let s=a(this,te,ns).call(this,t);if(e){let o=a(this,le,os).call(this);s.appendChild(o),s.classList.add("treeselect-list__item--group")}let i=a(this,ae,ds).call(this,t),n=a(this,he,us).call(this,t,e);return s.append(i,n),s},te=new WeakSet,ns=function(t){let e=document.createElement("div");return Pi(e,t.htmlAttr),e.setAttribute("tabindex","-1"),e.setAttribute("title",t.name),e.classList.add("treeselect-list__item"),e.addEventListener("mouseover",()=>a(this,ee,as).call(this,e),!0),e.addEventListener("mouseout",()=>a(this,se,hs).call(this,e),!0),e.addEventListener("mousedown",s=>a(this,ie,cs).call(this,s,t)),e},ee=new WeakSet,as=function(t){l(this,P)&&a(this,st,bt).call(this,!0,t)},se=new WeakSet,hs=function(t){l(this,P)&&(a(this,st,bt).call(this,!1,t),m(this,I,t))},ie=new WeakSet,cs=function(t,e){var s;if(t.preventDefault(),t.stopPropagation(),(s=this.flattedOptions.find(n=>n.id===e.value))==null?void 0:s.disabled)return;let i=t.target.querySelector(".treeselect-list__item-checkbox");i.checked=!i.checked,a(this,oe,ms).call(this,i,e)},le=new WeakSet,os=function(){let t=document.createElement("span");return t.setAttribute("tabindex","-1"),t.classList.add("treeselect-list__item-icon"),O(this.iconElements.arrowDown,t),t.addEventListener("mousedown",e=>a(this,ne,rs).call(this,e)),t},ne=new WeakSet,rs=function(t){t.preventDefault(),t.stopPropagation(),a(this,re,ks).call(this,t)},ae=new WeakSet,ds=function(t){let e=document.createElement("div");e.classList.add("treeselect-list__item-checkbox-container");let s=document.createElement("span");s.classList.add("treeselect-list__item-checkbox-icon"),s.innerHTML="";let i=document.createElement("input");return i.setAttribute("tabindex","-1"),i.setAttribute("type","checkbox"),i.setAttribute("input-id",t.value.toString()),i.classList.add("treeselect-list__item-checkbox"),e.append(s,i),e},he=new WeakSet,us=function(t,e){let s=document.createElement("label");if(s.textContent=t.name,s.classList.add("treeselect-list__item-label"),e&&this.showCount){let i=a(this,ce,ps).call(this,t);s.appendChild(i)}return s},ce=new WeakSet,ps=function(t){let e=document.createElement("span"),s=this.flattedOptions.filter(i=>i.childOf===t.value);return e.textContent=`(${s.length})`,e.classList.add("treeselect-list__item-label-counter"),e},oe=new WeakSet,ms=function(t,e){let s=this.flattedOptions.find(i=>i.id===e.value);if(s){if(s!=null&&s.isGroup&&this.disabledBranchNode){let i=Hi(t);i?.dispatchEvent(new Event("mousedown"));return}if(this.isSingleSelect){let[i]=l(this,T);if(s.id===i)return;m(this,T,[s.id]),Is([s.id],this.flattedOptions,this.isSingleSelect,this.isIndependentNodes)}else{s.checked=t.checked;let i=Pe(s,this.flattedOptions,this.isIndependentNodes);t.checked=i}ot(this.flattedOptions,this.srcElement,this.iconElements,l(this,T),this.rtl),a(this,ue,ws).call(this)}},re=new WeakSet,ks=function(t){var e,s;let i=(s=(e=t.target)==null?void 0:e.parentNode)==null?void 0:s.querySelector("[input-id]"),n=i?.getAttribute("input-id")??null,o=Qe(n,this.flattedOptions);o&&(o.isClosed=!o.isClosed,wt(this.flattedOptions,o),ot(this.flattedOptions,this.srcElement,this.iconElements,l(this,T),this.rtl),this.arrowClickCallback(o.id,o.isClosed))},st=new WeakSet,bt=function(t,e){let s="treeselect-list__item--focused";if(t){let i=Array.from(this.srcElement.querySelectorAll(`.${s}`));i.length&&i.forEach(n=>n.classList.remove(s)),e.classList.add(s)}else e.classList.remove(s)},rt=new WeakSet,de=function(){let{ungroupedNodes:t,groupedNodes:e,allNodes:s}=bi(this.flattedOptions);this.selectedNodes={nodes:t,groupedNodes:e,allNodes:s}},ue=new WeakSet,ws=function(){a(this,rt,de).call(this),this.inputCallback(this.selectedNodes),this.value=this.selectedNodes.nodes.map(t=>t.id)};var vs=({parentHtmlContainer:t,staticList:e,appendToBody:s,isSingleSelect:i,value:n,direction:o})=>{t||console.error("Validation: parentHtmlContainer prop is required!"),e&&s&&console.error("Validation: You should set staticList to false if you use appendToBody!"),i&&Array.isArray(n)&&console.error("Validation: if you use isSingleSelect prop, you should pass a single value!"),!i&&!Array.isArray(n)&&console.error("Validation: you should pass an array as a value!"),o&&o!=="auto"&&o!=="bottom"&&o!=="top"&&console.error("Validation: you should pass (auto | top | bottom | undefined) as a value for the direction prop!")},X=t=>t.map(e=>e.id),Vi=t=>t?Array.isArray(t)?t:[t]:[],Gi=(t,e)=>{if(e){let[s]=t;return s??null}return t},d,p,R,it,U,x,_,E,B,lt,me,nt,gt,ke,fs,we,bs,ve,gs,fe,Cs,be,Es,ge,Ss,dt,Ce,Ee,Ls,Se,ys,Le,xs,ye,_s,ut,xe,_e,Ks,J,pt,at,Ct,z,ht,We,Ws,ct,Et,Te,Ts,Oe,Os,Ne,Ns,Ae,As,Be,Bs,mt=class{constructor({parentHtmlContainer:e,value:s,options:i,openLevel:n,appendToBody:o,alwaysOpen:r,showTags:u,tagsCountText:v,clearable:k,searchable:w,placeholder:f,grouped:b,isGroupedValue:g,listSlotHtmlComponent:y,disabled:C,emptyText:$,staticList:V,id:q,ariaLabel:j,isSingleSelect:K,showCount:Xs,disabledBranchNode:Qs,direction:Zs,expandSelected:ti,saveScrollPosition:ei,isIndependentNodes:si,rtl:ii,iconElements:li,inputCallback:ni,openCallback:ai,closeCallback:hi,nameChangeCallback:ci,searchCallback:oi,openCloseGroupCallback:ri}){h(this,lt),h(this,nt),h(this,ke),h(this,we),h(this,ve),h(this,fe),h(this,be),h(this,ge),h(this,dt),h(this,Ee),h(this,Se),h(this,Le),h(this,ye),h(this,ut),h(this,_e),h(this,J),h(this,at),h(this,z),h(this,We),h(this,ct),h(this,Te),h(this,Oe),h(this,Ne),h(this,Ae),h(this,Be),c(this,"parentHtmlContainer"),c(this,"value"),c(this,"options"),c(this,"openLevel"),c(this,"appendToBody"),c(this,"alwaysOpen"),c(this,"showTags"),c(this,"tagsCountText"),c(this,"clearable"),c(this,"searchable"),c(this,"placeholder"),c(this,"grouped"),c(this,"isGroupedValue"),c(this,"listSlotHtmlComponent"),c(this,"disabled"),c(this,"emptyText"),c(this,"staticList"),c(this,"id"),c(this,"ariaLabel"),c(this,"isSingleSelect"),c(this,"showCount"),c(this,"disabledBranchNode"),c(this,"direction"),c(this,"expandSelected"),c(this,"saveScrollPosition"),c(this,"isIndependentNodes"),c(this,"rtl"),c(this,"iconElements"),c(this,"inputCallback"),c(this,"openCallback"),c(this,"closeCallback"),c(this,"nameChangeCallback"),c(this,"searchCallback"),c(this,"openCloseGroupCallback"),c(this,"ungroupedValue"),c(this,"groupedValue"),c(this,"allValue"),c(this,"isListOpened"),c(this,"selectedName"),c(this,"srcElement"),h(this,d,null),h(this,p,null),h(this,R,null),h(this,it,0),h(this,U,0),h(this,x,null),h(this,_,null),h(this,E,null),h(this,B,null),vs({parentHtmlContainer:e,value:s,staticList:V,appendToBody:o,isSingleSelect:K}),this.parentHtmlContainer=e,this.value=[],this.options=i??[],this.openLevel=n??0,this.appendToBody=o??!1,this.alwaysOpen=!!(r&&!C),this.showTags=u??!0,this.tagsCountText=v??"elements selected",this.clearable=k??!0,this.searchable=w??!0,this.placeholder=f??"Search...",this.grouped=b??!0,this.isGroupedValue=g??!1,this.listSlotHtmlComponent=y??null,this.disabled=C??!1,this.emptyText=$??"No results found...",this.staticList=!!(V&&!this.appendToBody),this.id=q??"",this.ariaLabel=j??"",this.isSingleSelect=K??!1,this.showCount=Xs??!1,this.disabledBranchNode=Qs??!1,this.direction=Zs??"auto",this.expandSelected=ti??!1,this.saveScrollPosition=ei??!0,this.isIndependentNodes=si??!1,this.rtl=ii??!1,this.iconElements=Ge(li),this.inputCallback=ni,this.openCallback=ai,this.closeCallback=hi,this.nameChangeCallback=ci,this.searchCallback=oi,this.openCloseGroupCallback=ri,this.ungroupedValue=[],this.groupedValue=[],this.allValue=[],this.isListOpened=!1,this.selectedName="",this.srcElement=null,a(this,lt,me).call(this,s)}mount(){vs({parentHtmlContainer:this.parentHtmlContainer,value:this.value,staticList:this.staticList,appendToBody:this.appendToBody,isSingleSelect:this.isSingleSelect}),this.iconElements=Ge(this.iconElements),a(this,lt,me).call(this,this.value)}updateValue(e){let s=Vi(e),i=l(this,d);i&&(i.updateValue(s),a(this,dt,Ce).call(this,i?.selectedNodes))}destroy(){this.srcElement&&(a(this,ut,xe).call(this),this.srcElement.innerHTML="",this.srcElement=null,a(this,z,ht).call(this,!0))}focus(){l(this,p)&&l(this,p).focus()}toggleOpenClose(){l(this,p)&&(l(this,p).openClose(),l(this,p).focus())}scrollWindowHandler(){this.updateListPosition()}focusWindowHandler(e){var s,i,n;(s=this.srcElement)!=null&&s.contains(e.target)||(i=l(this,d))!=null&&i.srcElement.contains(e.target)||((n=l(this,p))==null||n.blur(),a(this,z,ht).call(this,!1),a(this,J,pt).call(this,!1))}blurWindowHandler(){var e;(e=l(this,p))==null||e.blur(),a(this,z,ht).call(this,!1),a(this,J,pt).call(this,!1)}updateListPosition(){var e;let s=this.srcElement,i=(e=l(this,d))==null?void 0:e.srcElement;if(!s||!i)return;let{height:n}=i.getBoundingClientRect(),{x:o,y:r,height:u,width:v}=s.getBoundingClientRect(),k=window.innerHeight,w=r,f=k-r-u,b=w>f&&w>=n&&fa(this,Ee,Ls).call(this,i),arrowClickCallback:(i,n)=>a(this,Se,ys).call(this,i,n),mouseupCallback:()=>{var i;return(i=l(this,p))==null?void 0:i.focus()}}),s=new jt({value:[],showTags:this.showTags,tagsCountText:this.tagsCountText,clearable:this.clearable,isAlwaysOpened:this.alwaysOpen,searchable:this.searchable,placeholder:this.placeholder,disabled:this.disabled,isSingleSelect:this.isSingleSelect,id:this.id,ariaLabel:this.ariaLabel,iconElements:this.iconElements,inputCallback:i=>a(this,we,bs).call(this,i),searchCallback:i=>a(this,fe,Cs).call(this,i),openCallback:()=>a(this,ye,_s).call(this),closeCallback:()=>a(this,ut,xe).call(this),keydownCallback:i=>a(this,ve,gs).call(this,i),focusCallback:()=>a(this,be,Es).call(this),blurCallback:()=>a(this,ge,Ss).call(this),nameChangeCallback:i=>a(this,Le,xs).call(this,i)});return this.appendToBody&&m(this,R,new ResizeObserver(()=>this.updateListPosition())),t.append(s.srcElement),{container:t,list:e,input:s}},we=new WeakSet,bs=function(t){var e,s;let i=X(t);(e=l(this,d))==null||e.updateValue(i);let n=((s=l(this,d))==null?void 0:s.selectedNodes)??{};a(this,nt,gt).call(this,n),a(this,ct,Et).call(this)},ve=new WeakSet,gs=function(t){var e;this.isListOpened&&((e=l(this,d))==null||e.callKeyAction(t))},fe=new WeakSet,Cs=function(t){l(this,U)&&clearTimeout(l(this,U)),m(this,U,window.setTimeout(()=>{var e;(e=l(this,d))==null||e.updateSearchValue(t),this.updateListPosition()},350)),a(this,Ae,As).call(this,t)},be=new WeakSet,Es=function(){a(this,J,pt).call(this,!0),l(this,E)&&l(this,E)&&l(this,B)&&(document.addEventListener("mousedown",l(this,E),!0),document.addEventListener("focus",l(this,E),!0),window.addEventListener("blur",l(this,B)))},ge=new WeakSet,Ss=function(){setTimeout(()=>{var t,e;let s=(t=l(this,p))==null?void 0:t.srcElement.contains(document.activeElement),i=(e=l(this,d))==null?void 0:e.srcElement.contains(document.activeElement);!s&&!i&&this.blurWindowHandler()},1)},dt=new WeakSet,Ce=function(t){var e;if(!t)return;let s=[];this.isIndependentNodes||this.isSingleSelect?s=t.allNodes:this.grouped?s=t.groupedNodes:s=t.nodes,(e=l(this,p))==null||e.updateValue(s),a(this,nt,gt).call(this,t)},Ee=new WeakSet,Ls=function(t){var e,s,i;a(this,dt,Ce).call(this,t),this.isSingleSelect&&!this.alwaysOpen&&((e=l(this,p))==null||e.openClose(),(s=l(this,p))==null||s.clearSearch()),(i=l(this,p))==null||i.focus(),a(this,ct,Et).call(this)},Se=new WeakSet,ys=function(t,e){var s;(s=l(this,p))==null||s.focus(),this.updateListPosition(),a(this,Be,Bs).call(this,t,e)},Le=new WeakSet,xs=function(t){this.selectedName!==t&&(this.selectedName=t,a(this,Te,Ts).call(this))},ye=new WeakSet,_s=function(){var t;this.isListOpened=!0,l(this,x)&&l(this,_)&&(window.addEventListener("scroll",l(this,x),!0),window.addEventListener("resize",l(this,_))),!(!l(this,d)||!this.srcElement)&&(this.appendToBody?(document.body.appendChild(l(this,d).srcElement),(t=l(this,R))==null||t.observe(this.srcElement)):this.srcElement.appendChild(l(this,d).srcElement),this.updateListPosition(),a(this,at,Ct).call(this,!0),a(this,We,Ws).call(this),a(this,Oe,Os).call(this))},ut=new WeakSet,xe=function(){var t;this.alwaysOpen||(this.isListOpened=!1,l(this,x)&&l(this,_)&&(window.removeEventListener("scroll",l(this,x),!0),window.removeEventListener("resize",l(this,_))),!l(this,d)||!this.srcElement)||!(this.appendToBody?document.body.contains(l(this,d).srcElement):this.srcElement.contains(l(this,d).srcElement))||(m(this,it,l(this,d).srcElement.scrollTop),this.appendToBody?(document.body.removeChild(l(this,d).srcElement),(t=l(this,R))==null||t.disconnect()):this.srcElement.removeChild(l(this,d).srcElement),a(this,at,Ct).call(this,!1),a(this,Ne,Ns).call(this))},_e=new WeakSet,Ks=function(t,e){if(!l(this,d)||!l(this,p))return;let s=e?"treeselect-list--top-to-body":"treeselect-list--top",i=e?"treeselect-list--bottom-to-body":"treeselect-list--bottom";t?(l(this,d).srcElement.classList.add(s),l(this,d).srcElement.classList.remove(i),l(this,p).srcElement.classList.add("treeselect-input--top"),l(this,p).srcElement.classList.remove("treeselect-input--bottom")):(l(this,d).srcElement.classList.remove(s),l(this,d).srcElement.classList.add(i),l(this,p).srcElement.classList.remove("treeselect-input--top"),l(this,p).srcElement.classList.add("treeselect-input--bottom"))},J=new WeakSet,pt=function(t){!l(this,p)||!l(this,d)||(t?(l(this,p).srcElement.classList.add("treeselect-input--focused"),l(this,d).srcElement.classList.add("treeselect-list--focused")):(l(this,p).srcElement.classList.remove("treeselect-input--focused"),l(this,d).srcElement.classList.remove("treeselect-list--focused")))},at=new WeakSet,Ct=function(t){var e,s,i,n;t?(e=l(this,p))==null||e.srcElement.classList.add("treeselect-input--opened"):(s=l(this,p))==null||s.srcElement.classList.remove("treeselect-input--opened"),this.staticList?(i=l(this,d))==null||i.srcElement.classList.add("treeselect-list--static"):(n=l(this,d))==null||n.srcElement.classList.remove("treeselect-list--static")},z=new WeakSet,ht=function(t){!l(this,x)||!l(this,_)||!l(this,E)||!l(this,B)||((!this.alwaysOpen||t)&&(window.removeEventListener("scroll",l(this,x),!0),window.removeEventListener("resize",l(this,_))),document.removeEventListener("mousedown",l(this,E),!0),document.removeEventListener("focus",l(this,E),!0),window.removeEventListener("blur",l(this,B)))},We=new WeakSet,Ws=function(){var t,e,s;let i=(t=l(this,d))==null?void 0:t.isLastFocusedElementExist();this.saveScrollPosition&&i?(e=l(this,d))==null||e.srcElement.scroll(0,l(this,it)):(s=l(this,d))==null||s.focusFirstListElement()},ct=new WeakSet,Et=function(){var t;(t=this.srcElement)==null||t.dispatchEvent(new CustomEvent("input",{detail:this.value})),this.inputCallback&&this.inputCallback(this.value)},Te=new WeakSet,Ts=function(){var t;(t=this.srcElement)==null||t.dispatchEvent(new CustomEvent("name-change",{detail:this.selectedName})),this.nameChangeCallback&&this.nameChangeCallback(this.selectedName)},Oe=new WeakSet,Os=function(){var t;this.alwaysOpen||((t=this.srcElement)==null||t.dispatchEvent(new CustomEvent("open",{detail:this.value})),this.openCallback&&this.openCallback(this.value))},Ne=new WeakSet,Ns=function(){var t;this.alwaysOpen||((t=this.srcElement)==null||t.dispatchEvent(new CustomEvent("close",{detail:this.value})),this.closeCallback&&this.closeCallback(this.value))},Ae=new WeakSet,As=function(t){var e;let s=t?.trim()??"";(e=this.srcElement)==null||e.dispatchEvent(new CustomEvent("search",{detail:s})),this.searchCallback&&this.searchCallback(s)},Be=new WeakSet,Bs=function(t,e){var s;(s=this.srcElement)==null||s.dispatchEvent(new CustomEvent("open-close-group",{detail:{groupId:t,isClosed:e}})),this.openCloseGroupCallback&&this.openCloseGroupCallback(t,e)};function Mi({state:t,name:e,options:s,searchable:i,showCount:n,placeholder:o,rtl:r,disabledBranchNode:u=!0,disabled:v=!1,isSingleSelect:k=!0,showTags:w=!0,clearable:f=!0,isIndependentNodes:b=!0,alwaysOpen:g=!1,emptyText:y,expandSelected:C=!0,grouped:$=!0,openLevel:V=0,direction:q="auto"}){return{state:t,tree:null,init(){this.tree=new mt({id:`tree-${e}-id`,ariaLabel:`tree-${e}-label`,parentHtmlContainer:this.$refs.tree,value:this.state,options:s,searchable:i,showCount:n,placeholder:o,disabledBranchNode:u,disabled:v,isSingleSelect:k,showTags:w,clearable:f,isIndependentNodes:b,alwaysOpen:g,emptyText:y,expandSelected:C,grouped:$,openLevel:V,direction:q,rtl:r}),this.tree.srcElement.addEventListener("input",j=>{this.state=j.detail})}}}export{Mi as default}; +var Qt=Object.defineProperty,Ct=e=>{throw TypeError(e)},es=(e,t,s)=>t in e?Qt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,a=(e,t,s)=>es(e,typeof t!="symbol"?t+"":t,s),Ee=(e,t,s)=>t.has(e)||Ct("Cannot "+s),l=(e,t,s)=>(Ee(e,t,"read from private field"),s?s.call(e):t.get(e)),k=(e,t,s)=>t.has(e)?Ct("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),E=(e,t,s,i)=>(Ee(e,t,"write to private field"),i?i.call(e,s):t.set(e,s),s),o=(e,t,s)=>(Ee(e,t,"access private method"),s),Se={arrowUp:'',arrowDown:'',arrowRight:'',attention:'',clear:'',cross:'',check:'',partialCheck:''},H=(e,t)=>{if(t.innerHTML="",typeof e=="string")t.innerHTML=e;else{let s=e.cloneNode(!0);t.appendChild(s)}},Te=e=>{let t=e?{...e}:{};return Object.keys(Se).forEach(s=>{t[s]||(t[s]=Se[s])}),t},ts=e=>e.reduce((t,{name:s},i)=>(t+=s,il(this,y).focus(),0)}blur(){this.isOpened&&o(this,u,P).call(this),this.clearSearch(),l(this,y).blur()}updateValue(t){this.value=t,o(this,u,U).call(this),o(this,u,q).call(this)}removeItem(t){this.value=this.value.filter(s=>s.id!==t),o(this,u,re).call(this),o(this,u,U).call(this),o(this,u,q).call(this)}clear(){this.value=[],o(this,u,re).call(this),o(this,u,U).call(this),this.clearSearch()}openClose(){o(this,u,P).call(this)}clearSearch(){this.searchText="",this.searchCallback(""),o(this,u,q).call(this)}};I=new WeakMap,y=new WeakMap,R=new WeakMap,T=new WeakMap,u=new WeakSet,wt=function(){o(this,u,U).call(this),o(this,u,q).call(this),o(this,u,ye).call(this)},U=function(){if(l(this,I).innerHTML="",this.showTags){l(this,I).append(...o(this,u,Ne).call(this));let e=ts(this.value);this.nameChangeCallback(e)}else{let e=o(this,u,Ae).call(this);l(this,I).appendChild(e),this.nameChangeCallback(e.innerText)}l(this,I).appendChild(l(this,y))},ye=function(){let e=[];l(this,R).innerHTML="",this.clearable&&e.push(o(this,u,Ve).call(this)),this.isAlwaysOpened||e.push(o(this,u,Ge).call(this,this.isOpened)),e.length&&l(this,R).append(...e)},xe=function(){if(!this.isAlwaysOpened&&l(this,T)){let e=this.isOpened?this.iconElements.arrowUp:this.iconElements.arrowDown;H(e,l(this,T))}},q=function(){var e;(e=this.value)!=null&&e.length?(l(this,y).removeAttribute("placeholder"),this.srcElement.classList.remove("treeselect-input--value-not-selected")):(l(this,y).setAttribute("placeholder",this.placeholder),this.srcElement.classList.add("treeselect-input--value-not-selected")),this.searchable?this.srcElement.classList.remove("treeselect-input--unsearchable"):this.srcElement.classList.add("treeselect-input--unsearchable"),this.isSingleSelect?this.srcElement.classList.add("treeselect-input--is-single-select"):this.srcElement.classList.remove("treeselect-input--is-single-select"),l(this,y).value=this.searchText},P=function(){this.isOpened=!this.isOpened,o(this,u,xe).call(this),this.isOpened?this.openCallback():this.closeCallback()},Lt=function({htmlTagsSection:e,htmlEditControl:t,htmlOperators:s}){let i=document.createElement("div");return i.classList.add("treeselect-input"),i.setAttribute("tabindex","-1"),i.addEventListener("mousedown",n=>o(this,u,Me).call(this,n)),i.addEventListener("focus",()=>this.focusCallback(),!0),i.addEventListener("blur",()=>this.blurCallback(),!0),e.appendChild(t),i.append(e,s),i},Me=function(e){e.stopPropagation(),this.isOpened||o(this,u,P).call(this),this.focus()},St=function(){let e=document.createElement("div");return e.classList.add("treeselect-input__tags"),e},Ne=function(){return this.value.map(e=>{let t=document.createElement("div");t.classList.add("treeselect-input__tags-element"),t.setAttribute("tabindex","-1"),t.setAttribute("tag-id",e.id.toString()),t.setAttribute("title",e.name);let s=o(this,u,He).call(this,e.name),i=o(this,u,Oe).call(this);return t.addEventListener("mousedown",n=>o(this,u,_e).call(this,n,e.id)),t.append(s,i),t})},_e=function(e,t){e.preventDefault(),e.stopPropagation(),this.removeItem(t),this.focus()},He=function(e){let t=document.createElement("span");return t.classList.add("treeselect-input__tags-name"),t.textContent=e,t},Oe=function(){let e=document.createElement("span");return e.classList.add("treeselect-input__tags-cross"),H(this.iconElements.cross,e),e},Ae=function(){let e=document.createElement("span");if(e.classList.add("treeselect-input__tags-count"),!this.value.length)return e.textContent="",e.setAttribute("title",""),e;let t=this.value.length===1?this.value[0].name:`${this.value.length} ${this.tagsCountText}`;return e.textContent=t,e.setAttribute("title",t),e},Tt=function(){let e=document.createElement("input");return e.classList.add("treeselect-input__edit"),this.id&&e.setAttribute("id",this.id),(!this.searchable||this.disabled)&&e.setAttribute("readonly","readonly"),this.disabled&&e.setAttribute("tabindex","-1"),this.ariaLabel.length&&e.setAttribute("aria-label",this.ariaLabel),e.addEventListener("keydown",t=>o(this,u,Ie).call(this,t)),e.addEventListener("input",t=>o(this,u,Be).call(this,t,e)),e},Ie=function(e){e.stopPropagation();let t=e.key;t==="Backspace"&&!this.searchText.length&&this.value.length&&!this.showTags&&this.clear(),t==="Backspace"&&!this.searchText.length&&this.value.length&&this.removeItem(this.value[this.value.length-1].id),e.code==="Space"&&(!this.searchText||!this.searchable)&&o(this,u,P).call(this),(t==="Enter"||t==="ArrowDown"||t==="ArrowUp")&&e.preventDefault(),this.keydownCallback(e),t!=="Tab"&&this.focus()},Be=function(e,t){e.stopPropagation();let s=this.searchText,i=t.value.trim();if(s.length===0&&i.length===0){t.value="";return}if(this.searchable){let n=e.target.value;this.searchCallback(n),this.isOpened||o(this,u,P).call(this)}else t.value="";this.searchText=t.value},yt=function(){let e=document.createElement("div");return e.classList.add("treeselect-input__operators"),e},Ve=function(){let e=document.createElement("span");return e.classList.add("treeselect-input__clear"),e.setAttribute("tabindex","-1"),H(this.iconElements.clear,e),e.addEventListener("mousedown",t=>o(this,u,Pe).call(this,t)),e},Pe=function(e){e.preventDefault(),e.stopPropagation(),(this.searchText.length||this.value.length)&&this.clear(),this.focus()},Ge=function(e){E(this,T,document.createElement("span")),l(this,T).classList.add("treeselect-input__arrow");let t=e?this.iconElements.arrowUp:this.iconElements.arrowDown;return H(t,l(this,T)),l(this,T).addEventListener("mousedown",s=>o(this,u,We).call(this,s)),l(this,T)},We=function(e){e.stopPropagation(),e.preventDefault(),this.focus(),o(this,u,P).call(this)},re=function(){this.inputCallback(this.value)};var xt=({newValue:e,optionsTreeMap:t,isSingleSelect:s,isIndependentNodes:i})=>{ns(t);let n=e.map(r=>t.get(r)??null).filter(r=>r!==null&&!r.disabled),[c]=n;if(s&&n.length&&c){c.checked=!0;return}n.forEach(r=>{r.checked=!0;let v=Ce({option:r,optionsTreeMap:t,isIndependentNodes:i});r.checked=v})},Ce=({option:{id:e,checked:t},optionsTreeMap:s,isIndependentNodes:i})=>{let n=s.get(e)??null;if(n===null)return!1;if(i)return n.checked=!n.disabled&&t,n.checked;let c=Mt({checked:t,currentOption:n,optionsTreeMap:s});return Nt({childOption:n,optionsTreeMap:s}),c},Mt=({checked:e,currentOption:t,optionsTreeMap:s})=>{if(!t.isGroup)return t.checked=!t.disabled&&e,t.isPartialChecked=!1,t.checked;let i=Y({id:t.id,optionsTreeMap:s});return!e||t.disabled||t.isPartialChecked?(t.checked=!1,t.isPartialChecked=!1,ue({option:t,children:i,optionsTreeMap:s}),t.checked):_t({children:i,optionsTreeMap:s})?Ht(i)?(t.checked=!1,t.isPartialChecked=!1,t.disabled=!0,t.checked):(t.checked=!1,t.isPartialChecked=!0,i.forEach(n=>{Mt({checked:e,currentOption:n,optionsTreeMap:s})}),t.checked):(t.checked=!0,t.isPartialChecked=!1,ue({option:t,children:i,optionsTreeMap:s}),t.checked)},Nt=({childOption:e,optionsTreeMap:t})=>{let s=t.get(e.childOf)??null;s!==null&&(ss({parentOption:s,optionsTreeMap:t}),Nt({childOption:s,optionsTreeMap:t}))},ss=({parentOption:e,optionsTreeMap:t})=>{let s=Y({id:e.id,optionsTreeMap:t});if(Ht(s)){e.checked=!1,e.isPartialChecked=!1,e.disabled=!0;return}if(is(s)){e.checked=!0,e.isPartialChecked=!1;return}if(ls(s)){e.checked=!1,e.isPartialChecked=!0;return}e.checked=!1,e.isPartialChecked=!1},ue=({option:{checked:e,disabled:t},children:s,optionsTreeMap:i})=>{s.forEach(n=>{n.disabled=t||n.disabled,n.checked=e&&!n.disabled,n.isPartialChecked=!1;let c=Y({id:n.id,optionsTreeMap:i});ue({option:{checked:e,disabled:t},children:c,optionsTreeMap:i})})},_t=({children:e,optionsTreeMap:t})=>e.some(s=>s.disabled)?!0:e.some(s=>{if(!s.isGroup)return!1;let i=Y({id:s.id,optionsTreeMap:t});return _t({children:i,optionsTreeMap:t})}),Ht=e=>e.every(t=>!!t.disabled),is=e=>e.every(t=>t.checked),ls=e=>e.some(t=>t.checked||t.isPartialChecked),ns=e=>{e.forEach(t=>{t.checked=!1,t.isPartialChecked=!1})},os=({options:e,openLevel:t,isIndependentNodes:s})=>{let i={level:0,groupId:""},n=new Map;return Ot({optionsTreeMap:n,options:e,openLevel:t,groupId:i.groupId,level:i.level}),hs({optionsTreeMap:n,isIndependentNodes:s}),n},Ot=({optionsTreeMap:e,options:t,openLevel:s,groupId:i,level:n})=>{t.forEach(c=>{var r,v;let g=(((r=c.children)==null?void 0:r.length)??0)>0,w=n>=s&&g,C=n>s,b=((v=c.children)==null?void 0:v.map(L=>L.value))??[],f=c.value;e.has(f)&&console.error(`Validation: You have duplicated option value: ${f}! You should use unique values. Duplicates will lead to unexpected behavior.`),e.set(f,{id:f,name:c.name,childOf:i,isGroup:g,checked:!1,isPartialChecked:!1,level:n,isClosed:w,hidden:C,disabled:c.disabled??!1,isGroupSelectable:!g||(c.isGroupSelectable??!0),children:b,checkboxHtmlElement:null,itemHtmlElement:null,arrowItemHtmlElement:null,checkboxIconHtmlElement:null}),g&&Ot({optionsTreeMap:e,options:c.children,openLevel:s,groupId:f,level:n+1})})},as=(e,t)=>e===null?null:t.get(e)??t.get(parseInt(e))??null,Y=({id:e,optionsTreeMap:t})=>{let s=t.get(e)??null;return s===null?[]:s.children.reduce((i,n)=>{let c=t.get(n)??null;return c!==null&&i.push(c),i},[])},cs=e=>{let t=[],s=[],i=[];e.forEach(c=>{c.checked&&(i.push(c),c.isGroup?s.push(c):t.push(c))});let n=i.filter(c=>!s.some(({id:r})=>r===c.childOf));return{ungroupedNodes:t,groupedNodes:n,allNodes:i}},hs=({optionsTreeMap:e,isIndependentNodes:t})=>{let s=[];e.forEach(i=>{i.disabled&&s.push(i)}),s.forEach(({id:i})=>Ce({option:{id:i,checked:!1},optionsTreeMap:e,isIndependentNodes:t}))},K=(e,{id:t,isClosed:s})=>{Y({id:t,optionsTreeMap:e}).forEach(i=>{i.hidden=s??!1,i.isGroup&&!i.isClosed&&K(e,{id:i.id,isClosed:s})})},rs=(e,t)=>{if(t){ds(e);return}e.forEach(s=>{s.checked&&we(s.childOf,e),s.isGroup&&!s.disabled&&(s.checked||s.isPartialChecked)&&(s.isClosed=!1,K(e,s))})},ds=e=>{let t=null;for(let[s,i]of e)if(i.checked&&!i.disabled){t=i;break}t&&(t.isGroup&&(t.isClosed=!1,K(e,t)),we(t.childOf,e))},we=(e,t)=>{let s=t.get(e)??null;s&&(s.isClosed=!1,K(t,s),we(s.childOf,t))},us=(e,t)=>{e.forEach(s=>{let i=s.name.toLowerCase().includes(t.toLowerCase());i&&(s.isGroup&&(s.isClosed=!0),s.childOf&&At(s.childOf,e)),s.hidden=!i})},At=(e,t)=>{let s=t.get(e)??null;s&&(s.hidden=!1,s.isClosed=!1,At(s.childOf,t))},ps=({optionsTreeMap:e,beforeSearchStateMap:t})=>{e.forEach(s=>{let i=t.get(s.id);i&&(s.hidden=i.hidden,s.isClosed=i.isClosed)}),t.clear()},ms=({optionsTreeMap:e,beforeSearchStateMap:t})=>{t.clear(),e.forEach(s=>{t.set(s.id,{hidden:s.hidden,isClosed:s.isClosed})})},vs=e=>new IntersectionObserver(t=>{t.forEach(s=>{s.target.classList.toggle("treeselect-list__item--scroll-not-visible",!s.isIntersecting)})},{root:e,threshold:.5}),bs=({optionsTreeMap:e,emptyListHtmlElement:t,iconElements:s,previousSingleSelectedValue:i,rtl:n})=>{e.forEach(c=>{let r=c.checkboxHtmlElement;r&&(r.checked=c.checked),Es({option:c,previousSingleSelectedValue:i}),Cs(c),ws(c),Ls({option:c,iconElements:s}),Ss(c),gs({option:c,optionsTreeMap:e,rtl:n}),Ts({option:c,iconElements:s}),ys(c)}),fs({optionsTreeMap:e,emptyListHtmlElement:t})},gs=({option:e,optionsTreeMap:t,rtl:s})=>{let i=e.level===0,n=20,c=5,r="0";if(i){let g=!1;for(let[C,b]of t)if(b.isGroup&&b.level===e.level){g=!0;break}let w=!e.isGroup&&g?`${n}px`:`${c}px`;r=e.isGroup?"0":w}else r=e.isGroup?`${e.level*n}px`:`${e.level*n+n}px`;let v=e.itemHtmlElement;v&&(s?v.style.paddingRight=r:v.style.paddingLeft=r,v.setAttribute("level",e.level.toString()),v.setAttribute("group",e.isGroup.toString()))},fs=({optionsTreeMap:e,emptyListHtmlElement:t})=>{let s=!1;for(let[i,n]of e)if(!n.hidden){s=!0;break}t?.classList.toggle("treeselect-list__empty--hidden",s)},ks=(e,t)=>{t&&Object.keys(t).forEach(s=>{let i=t[s];typeof i=="string"&&e.setAttribute(s,i)})},Es=({option:e,previousSingleSelectedValue:t})=>{let s=e.itemHtmlElement;s?.classList.toggle("treeselect-list__item--checked",e.checked);let i=Array.isArray(t)&&t[0]===e.id&&!e.disabled;s?.classList.toggle("treeselect-list__item--single-selected",i)},Cs=e=>{let t=e.itemHtmlElement;t?.classList.toggle("treeselect-list__item--partial-checked",e.isPartialChecked)},ws=e=>{let t=e.itemHtmlElement;t?.classList.toggle("treeselect-list__item--disabled",e.disabled)},Ls=({option:e,iconElements:t})=>{let s=e.arrowItemHtmlElement;if(e.isGroup&&s){let i=e.isClosed?t.arrowRight:t.arrowDown;H(i,s);let n=e.itemHtmlElement;n?.classList.toggle("treeselect-list__item--closed",e.isClosed)}},Ss=e=>{let t=e.itemHtmlElement;t?.classList.toggle("treeselect-list__item--hidden",e.hidden)},Ts=({option:e,iconElements:t})=>{let s=e.checkboxIconHtmlElement;s&&(e.checked?H(t.check,s):e.isPartialChecked?H(t.partialCheck,s):s.innerHTML="")},ys=e=>{let t=e.itemHtmlElement;t?.classList.toggle("treeselect-list__item--non-selectable-group",!e.isGroupSelectable)},xs=({newValue:e,optionsTreeMap:t,isSingleSelect:s,expandSelected:i,isFirstValueUpdate:n,isIndependentNodes:c})=>{xt({newValue:e,optionsTreeMap:t,isSingleSelect:s,isIndependentNodes:c}),n&&i&&rs(t,s)},W,G,D,Z,h,z,It,Bt,Vt,De,Re,$e,le,Fe,je,Ue,ne,qe,ze,Ye,Ke,Xe,Je,Ze,Qe,et,pe,tt,st,oe,X,me,it,ve=class{constructor({options:t,value:s,openLevel:i,listSlotHtmlComponent:n,tagsSortFn:c,emptyText:r,isSingleSelect:v,iconElements:g,showCount:w,disabledBranchNode:C,expandSelected:b,isIndependentNodes:f,rtl:L,listClassName:x,isBoostedRendering:M,inputCallback:O,arrowClickCallback:B,mouseupCallback:A}){k(this,h),a(this,"options"),a(this,"value"),a(this,"openLevel"),a(this,"listSlotHtmlComponent"),a(this,"tagsSortFn"),a(this,"emptyText"),a(this,"isSingleSelect"),a(this,"showCount"),a(this,"disabledBranchNode"),a(this,"expandSelected"),a(this,"isIndependentNodes"),a(this,"rtl"),a(this,"listClassName"),a(this,"isBoostedRendering"),a(this,"iconElements"),a(this,"searchText"),a(this,"intersectionItemsObserver"),a(this,"selectedNodes"),a(this,"optionsTreeMap"),a(this,"beforeSearchStateMap"),a(this,"emptyListHtmlElement"),a(this,"srcElement"),a(this,"inputCallback"),a(this,"arrowClickCallback"),a(this,"mouseupCallback"),k(this,W,null),k(this,G,!0),k(this,D,[]),k(this,Z,!0),this.options=t,this.value=s,this.openLevel=i??0,this.listSlotHtmlComponent=n??null,this.tagsSortFn=c??null,this.emptyText=r??"No results found...",this.isSingleSelect=v??!1,this.showCount=w??!1,this.disabledBranchNode=C??!1,this.expandSelected=b??!1,this.isIndependentNodes=f??!1,this.rtl=L??!1,this.listClassName=x??"",this.isBoostedRendering=M,this.iconElements=g,this.searchText="",this.intersectionItemsObserver=null,this.selectedNodes={nodes:[],groupedNodes:[],allNodes:[]},this.optionsTreeMap=os({options:this.options,openLevel:this.openLevel,isIndependentNodes:this.isIndependentNodes}),this.beforeSearchStateMap=new Map,this.emptyListHtmlElement=null,this.srcElement=o(this,h,Vt).call(this),this.inputCallback=O,this.arrowClickCallback=B,this.mouseupCallback=A}updateValue(t){this.value=t,E(this,D,this.isSingleSelect?this.value:[]),xs({newValue:t,optionsTreeMap:this.optionsTreeMap,isSingleSelect:this.isSingleSelect,expandSelected:this.expandSelected,isFirstValueUpdate:l(this,Z),isIndependentNodes:this.isIndependentNodes}),o(this,h,z).call(this),E(this,Z,!1),o(this,h,me).call(this)}updateSearchValue(t){if(t===this.searchText)return;let s=this.searchText===""&&t!=="";this.searchText=t,s&&ms({beforeSearchStateMap:this.beforeSearchStateMap,optionsTreeMap:this.optionsTreeMap}),this.searchText===""&&ps({beforeSearchStateMap:this.beforeSearchStateMap,optionsTreeMap:this.optionsTreeMap}),this.searchText&&us(this.optionsTreeMap,t),o(this,h,z).call(this),this.focusFirstListElement()}callKeyAction(t){E(this,G,!1);let s=this.srcElement.querySelector(".treeselect-list__item--focused");if(s?.classList.contains("treeselect-list__item--hidden"))return;let i=t.key;i==="Enter"&&s&&s.dispatchEvent(new Event("mousedown")),(i==="ArrowLeft"||i==="ArrowRight")&&o(this,h,It).call(this,s,t),(i==="ArrowDown"||i==="ArrowUp")&&o(this,h,Bt).call(this,s,i)}focusFirstListElement(){let t="treeselect-list__item--focused",s=this.srcElement.querySelector(`.${t}`),i=o(this,h,pe).call(this);if(!i.length)return;s&&s.classList.remove(t);let[n]=i;n.classList.add(t)}isLastFocusedElementExist(){return!!l(this,W)}destroy(){this.intersectionItemsObserver&&this.intersectionItemsObserver.disconnect()}};W=new WeakMap,G=new WeakMap,D=new WeakMap,Z=new WeakMap,h=new WeakSet,z=function(){bs({optionsTreeMap:this.optionsTreeMap,emptyListHtmlElement:this.emptyListHtmlElement,iconElements:this.iconElements,previousSingleSelectedValue:l(this,D),rtl:this.rtl})},It=function(e,t){if(!e)return;let s=t.key,i=e.querySelector(".treeselect-list__item-checkbox").getAttribute("input-id"),n=as(i,this.optionsTreeMap),c=n.arrowItemHtmlElement;s==="ArrowLeft"&&!n.isClosed&&n.isGroup&&(c.dispatchEvent(new Event("mousedown")),t.preventDefault()),s==="ArrowRight"&&n.isClosed&&n.isGroup&&(c.dispatchEvent(new Event("mousedown")),t.preventDefault())},Bt=function(e,t){var s;let i=o(this,h,pe).call(this);if(!i.length)return;let n="treeselect-list__item--focused";if(e){let c=i.findIndex(L=>L.classList.contains(n));i[c].classList.remove(n);let r=t==="ArrowDown"?c+1:c-1,v=t==="ArrowDown"?0:i.length-1,g=!i[r],w=i[r]??i[v];w.classList.add(n);let C=this.srcElement.getBoundingClientRect(),b=w.getBoundingClientRect();if(g&&t==="ArrowDown"){this.srcElement.scroll(0,0);return}if(g&&t==="ArrowUp"){this.srcElement.scroll(0,this.srcElement.scrollHeight);return}let f=((s=this.listSlotHtmlComponent)==null?void 0:s.clientHeight)??0;if(C.y+C.heightb.y){this.srcElement.scroll(0,this.srcElement.scrollTop-b.height);return}}else{let[c]=i;c.classList.add(n)}},Vt=function(){let e=o(this,h,De).call(this),t=o(this,h,le).call(this,this.options);e.append(...t);let s=o(this,h,je).call(this);e.append(s);let i=o(this,h,Fe).call(this);return i&&e.append(i),e},De=function(){let e=document.createElement("div");return e.classList.add("treeselect-list"),this.listClassName.length>0&&e.classList.add(this.listClassName),this.isSingleSelect&&e.classList.add("treeselect-list--single-select"),this.disabledBranchNode&&e.classList.add("treeselect-list--disabled-branch-node"),e.addEventListener("mouseout",t=>o(this,h,Re).call(this,t)),e.addEventListener("mousemove",()=>o(this,h,$e).call(this)),e.addEventListener("mouseup",()=>this.mouseupCallback(),!0),this.isBoostedRendering&&(this.intersectionItemsObserver=vs(e)),e},Re=function(e){e.stopPropagation(),l(this,W)&&l(this,G)&&l(this,W).classList.add("treeselect-list__item--focused")},$e=function(){E(this,G,!0)},le=function(e){return e.reduce((t,s)=>{var i;if((i=s.children)!=null&&i.length){let c=o(this,h,Ue).call(this,s),r=o(this,h,le).call(this,s.children);return c.append(...r),t.push(c),t}let n=o(this,h,ne).call(this,s,!1);return t.push(n),t},[])},Fe=function(){if(!this.listSlotHtmlComponent)return null;let e=document.createElement("div");return e.classList.add("treeselect-list__slot"),e.appendChild(this.listSlotHtmlComponent),e},je=function(){let e=document.createElement("div");e.classList.add("treeselect-list__empty"),e.setAttribute("title",this.emptyText);let t=document.createElement("span");t.classList.add("treeselect-list__empty-icon"),H(this.iconElements.attention,t);let s=document.createElement("span");return s.classList.add("treeselect-list__empty-text"),s.textContent=this.emptyText,e.append(t,s),this.emptyListHtmlElement=e,e},Ue=function(e){let t=document.createElement("div");t.setAttribute("group-container-id",e.value.toString()),t.classList.add("treeselect-list__group-container");let s=o(this,h,ne).call(this,e,!0);return t.appendChild(s),t},ne=function(e,t){let s=o(this,h,qe).call(this,e);if(t){let c=o(this,h,Xe).call(this,e);s.appendChild(c),s.classList.add("treeselect-list__item--group")}let i=o(this,h,Ze).call(this,e),n=o(this,h,Qe).call(this,e,t);return s.append(i,n),s},qe=function(e){let t=document.createElement("div");t.setAttribute("tabindex","-1"),t.setAttribute("title",e.name),ks(t,e.htmlAttr),t.classList.add("treeselect-list__item"),t.addEventListener("mouseover",()=>o(this,h,ze).call(this,t),!0),t.addEventListener("mouseout",()=>o(this,h,Ye).call(this,t),!0),t.addEventListener("mousedown",i=>o(this,h,Ke).call(this,i,e)),this.intersectionItemsObserver&&this.intersectionItemsObserver.observe(t);let s=this.optionsTreeMap.get(e.value);return s&&(s.itemHtmlElement=t),t},ze=function(e){l(this,G)&&o(this,h,oe).call(this,!0,e)},Ye=function(e){l(this,G)&&(o(this,h,oe).call(this,!1,e),E(this,W,e))},Ke=function(e,t){e.preventDefault(),e.stopPropagation();let s=this.optionsTreeMap.get(t.value)??null;if(s!=null&&s.disabled)return;let i=s?.checkboxHtmlElement;i&&(i.checked=!i.checked,o(this,h,tt).call(this,i,t))},Xe=function(e){let t=document.createElement("span");t.setAttribute("tabindex","-1"),t.classList.add("treeselect-list__item-icon"),H(this.iconElements.arrowDown,t),t.addEventListener("mousedown",i=>o(this,h,Je).call(this,i,e));let s=this.optionsTreeMap.get(e.value);return s&&(s.arrowItemHtmlElement=t),t},Je=function(e,t){e.preventDefault(),e.stopPropagation(),o(this,h,st).call(this,t)},Ze=function(e){let t=document.createElement("div");t.classList.add("treeselect-list__item-checkbox-container");let s=document.createElement("span");s.classList.add("treeselect-list__item-checkbox-icon"),s.innerHTML="";let i=document.createElement("input");i.setAttribute("tabindex","-1"),i.setAttribute("type","checkbox"),i.setAttribute("input-id",e.value.toString()),i.classList.add("treeselect-list__item-checkbox"),t.append(s,i);let n=this.optionsTreeMap.get(e.value);return n&&(n.checkboxHtmlElement=i,n.checkboxIconHtmlElement=s),t},Qe=function(e,t){let s=document.createElement("label");if(s.textContent=e.name,s.classList.add("treeselect-list__item-label"),t&&this.showCount){let i=o(this,h,et).call(this,e);s.appendChild(i)}return s},et=function(e){var t;let s=document.createElement("span"),i=((t=this.optionsTreeMap.get(e.value))==null?void 0:t.children)??[];return s.textContent=`(${i.length})`,s.classList.add("treeselect-list__item-label-counter"),s},pe=function(){let e=[];return this.optionsTreeMap.forEach(t=>{!t.hidden&&t.itemHtmlElement&&e.push(t.itemHtmlElement)}),e},tt=function(e,t){let s=this.optionsTreeMap.get(t.value)??null;if(s===null)return;let i=s.isGroupSelectable??!0;if(s.isGroup&&(this.disabledBranchNode||!i)){let n=s.arrowItemHtmlElement;n?.dispatchEvent(new Event("mousedown"));return}if(this.isSingleSelect){let[n]=l(this,D);if(s.id===n)return;E(this,D,[s.id]),xt({newValue:[s.id],optionsTreeMap:this.optionsTreeMap,isSingleSelect:this.isSingleSelect,isIndependentNodes:this.isIndependentNodes})}else{s.checked=e.checked;let n=Ce({option:s,optionsTreeMap:this.optionsTreeMap,isIndependentNodes:this.isIndependentNodes});e.checked=n}o(this,h,z).call(this),o(this,h,it).call(this)},st=function(e){let t=this.optionsTreeMap.get(e.value)??null;t!==null&&(t.isClosed=!t.isClosed,K(this.optionsTreeMap,t),o(this,h,z).call(this),this.arrowClickCallback(t.id,t.isClosed))},oe=function(e,t){let s="treeselect-list__item--focused";if(e){let i=Array.from(this.srcElement.querySelectorAll(`.${s}`));i.length&&i.forEach(n=>n.classList.remove(s)),t.classList.add(s)}else t.classList.remove(s)},X=function(e){return this.tagsSortFn===null?e:[...e].sort((t,s)=>this.tagsSortFn({value:t.id,name:t.name},{value:s.id,name:s.name}))},me=function(){let{ungroupedNodes:e,groupedNodes:t,allNodes:s}=cs(this.optionsTreeMap);this.selectedNodes={nodes:o(this,h,X).call(this,e),groupedNodes:o(this,h,X).call(this,t),allNodes:o(this,h,X).call(this,s)}},it=function(){o(this,h,me).call(this),this.inputCallback(this.selectedNodes),this.value=this.selectedNodes.nodes.map(e=>e.id)};var lt=({parentHtmlContainer:e,staticList:t,appendToBody:s,isSingleSelect:i,value:n,direction:c})=>{e||console.error("Validation: parentHtmlContainer prop is required!"),t&&s&&console.error("Validation: You should set staticList to false if you use appendToBody!"),i&&Array.isArray(n)&&console.error("Validation: if you use isSingleSelect prop, you should pass a single value!"),!i&&!Array.isArray(n)&&console.error("Validation: you should pass an array as a value!"),c&&c!=="auto"&&c!=="bottom"&&c!=="top"&&console.error("Validation: you should pass (auto | top | bottom | undefined) as a value for the direction prop!")},J=e=>e.map(t=>t.id),Ms=e=>e==null?[]:Array.isArray(e)?e:[e],Ns=(e,t)=>{if(t){let[s]=e;return s??null}return e},p,m,F,Q,j,N,_,S,V,d,be,ae,nt,ot,at,ct,ht,rt,ge,dt,ut,pt,mt,fe,ke,te,ce,ee,vt,he,bt,gt,ft,kt,Et,se=class{constructor({parentHtmlContainer:t,value:s,options:i,openLevel:n,appendToBody:c,alwaysOpen:r,showTags:v,tagsCountText:g,tagsSortFn:w,clearable:C,searchable:b,placeholder:f,grouped:L,isGroupedValue:x,listSlotHtmlComponent:M,disabled:O,emptyText:B,staticList:A,id:$,ariaLabel:ie,isSingleSelect:Le,showCount:Pt,disabledBranchNode:Gt,direction:Wt,expandSelected:Dt,saveScrollPosition:Rt,isIndependentNodes:$t,rtl:Ft,listClassName:jt,isBoostedRendering:Ut,iconElements:qt,inputCallback:zt,openCallback:Yt,closeCallback:Kt,nameChangeCallback:Xt,searchCallback:Jt,openCloseGroupCallback:Zt}){k(this,d),a(this,"parentHtmlContainer"),a(this,"value"),a(this,"options"),a(this,"openLevel"),a(this,"appendToBody"),a(this,"alwaysOpen"),a(this,"showTags"),a(this,"tagsCountText"),a(this,"tagsSortFn"),a(this,"clearable"),a(this,"searchable"),a(this,"placeholder"),a(this,"grouped"),a(this,"isGroupedValue"),a(this,"listSlotHtmlComponent"),a(this,"disabled"),a(this,"emptyText"),a(this,"staticList"),a(this,"id"),a(this,"ariaLabel"),a(this,"isSingleSelect"),a(this,"showCount"),a(this,"disabledBranchNode"),a(this,"direction"),a(this,"expandSelected"),a(this,"saveScrollPosition"),a(this,"isIndependentNodes"),a(this,"rtl"),a(this,"listClassName"),a(this,"isBoostedRendering"),a(this,"iconElements"),a(this,"inputCallback"),a(this,"openCallback"),a(this,"closeCallback"),a(this,"nameChangeCallback"),a(this,"searchCallback"),a(this,"openCloseGroupCallback"),a(this,"ungroupedValue"),a(this,"groupedValue"),a(this,"allValue"),a(this,"isListOpened"),a(this,"selectedName"),a(this,"srcElement"),k(this,p,null),k(this,m,null),k(this,F,null),k(this,Q,0),k(this,j,0),k(this,N,null),k(this,_,null),k(this,S,null),k(this,V,null),lt({parentHtmlContainer:t,value:s,staticList:A,appendToBody:c,isSingleSelect:Le}),this.parentHtmlContainer=t,this.value=[],this.options=i??[],this.openLevel=n??0,this.appendToBody=c??!1,this.alwaysOpen=!!(r&&!O),this.showTags=v??!0,this.tagsCountText=g??"elements selected",this.tagsSortFn=w??null,this.clearable=C??!0,this.searchable=b??!0,this.placeholder=f??"Search...",this.grouped=L??!0,this.isGroupedValue=x??!1,this.listSlotHtmlComponent=M??null,this.disabled=O??!1,this.emptyText=B??"No results found...",this.staticList=!!(A&&!this.appendToBody),this.id=$??"",this.ariaLabel=ie??"",this.isSingleSelect=Le??!1,this.showCount=Pt??!1,this.disabledBranchNode=Gt??!1,this.direction=Wt??"auto",this.expandSelected=Dt??!1,this.saveScrollPosition=Rt??!0,this.isIndependentNodes=$t??!1,this.rtl=Ft??!1,this.listClassName=jt??"",this.isBoostedRendering=Ut??!1,this.iconElements=Te(qt),this.inputCallback=zt,this.openCallback=Yt,this.closeCallback=Kt,this.nameChangeCallback=Xt,this.searchCallback=Jt,this.openCloseGroupCallback=Zt,this.ungroupedValue=[],this.groupedValue=[],this.allValue=[],this.isListOpened=!1,this.selectedName="",this.srcElement=null,o(this,d,be).call(this,s)}mount(){lt({parentHtmlContainer:this.parentHtmlContainer,value:this.value,staticList:this.staticList,appendToBody:this.appendToBody,isSingleSelect:this.isSingleSelect}),this.iconElements=Te(this.iconElements),o(this,d,be).call(this,this.value)}updateValue(t){let s=Ms(t),i=l(this,p);i&&(i.updateValue(s),o(this,d,ge).call(this,i?.selectedNodes))}destroy(){var t;this.srcElement&&(o(this,d,fe).call(this),this.srcElement.innerHTML="",this.srcElement=null,o(this,d,ee).call(this,!0),(t=l(this,p))==null||t.destroy())}focus(){l(this,m)&&l(this,m).focus()}toggleOpenClose(){l(this,m)&&(l(this,m).openClose(),l(this,m).focus())}scrollWindowHandler(){this.updateListPosition()}focusWindowHandler(t){var s,i,n;(s=this.srcElement)!=null&&s.contains(t.target)||(i=l(this,p))!=null&&i.srcElement.contains(t.target)||((n=l(this,m))==null||n.blur(),o(this,d,ee).call(this,!1),o(this,d,te).call(this,!1))}blurWindowHandler(){var t;(t=l(this,m))==null||t.blur(),o(this,d,ee).call(this,!1),o(this,d,te).call(this,!1)}updateListPosition(){var t;let s=this.srcElement,i=(t=l(this,p))==null?void 0:t.srcElement;if(!s||!i)return;if(this.staticList){i.setAttribute("direction","bottom"),o(this,d,ke).call(this,!1,this.appendToBody);return}let{height:n}=i.getBoundingClientRect(),{x:c,y:r,height:v,width:g}=s.getBoundingClientRect(),w=window.innerHeight,C=r,b=w-r-v,f=C>b&&C>=n&&bo(this,d,dt).call(this,i),arrowClickCallback:(i,n)=>o(this,d,ut).call(this,i,n),mouseupCallback:()=>{var i;return(i=l(this,m))==null?void 0:i.focus()}}),s=new de({value:[],showTags:this.showTags,tagsCountText:this.tagsCountText,clearable:this.clearable,isAlwaysOpened:this.alwaysOpen,searchable:this.searchable,placeholder:this.placeholder,disabled:this.disabled,isSingleSelect:this.isSingleSelect,id:this.id,ariaLabel:this.ariaLabel,iconElements:this.iconElements,inputCallback:i=>o(this,d,ot).call(this,i),searchCallback:i=>o(this,d,ct).call(this,i),openCallback:()=>o(this,d,mt).call(this),closeCallback:()=>o(this,d,fe).call(this),keydownCallback:i=>o(this,d,at).call(this,i),focusCallback:()=>o(this,d,ht).call(this),blurCallback:()=>o(this,d,rt).call(this),nameChangeCallback:i=>o(this,d,pt).call(this,i)});return this.rtl&&(e.setAttribute("dir","rtl"),t.srcElement.setAttribute("dir","rtl")),this.appendToBody&&E(this,F,new ResizeObserver(()=>this.updateListPosition())),e.append(s.srcElement),{container:e,list:t,input:s}},ot=function(e){var t,s;let i=J(e);(t=l(this,p))==null||t.updateValue(i);let n=((s=l(this,p))==null?void 0:s.selectedNodes)??{};o(this,d,ae).call(this,n),o(this,d,he).call(this)},at=function(e){var t;this.isListOpened&&((t=l(this,p))==null||t.callKeyAction(e))},ct=function(e){l(this,j)&&clearTimeout(l(this,j)),E(this,j,window.setTimeout(()=>{var t;(t=l(this,p))==null||t.updateSearchValue(e),this.updateListPosition()},350)),o(this,d,kt).call(this,e)},ht=function(){o(this,d,te).call(this,!0),l(this,S)&&l(this,S)&&l(this,V)&&(document.addEventListener("mousedown",l(this,S),!0),document.addEventListener("focus",l(this,S),!0),window.addEventListener("blur",l(this,V)))},rt=function(){setTimeout(()=>{var e,t;let s=(e=l(this,m))==null?void 0:e.srcElement.contains(document.activeElement),i=(t=l(this,p))==null?void 0:t.srcElement.contains(document.activeElement);!s&&!i&&this.blurWindowHandler()},1)},ge=function(e){var t;if(!e)return;let s=[];this.isIndependentNodes||this.isSingleSelect?s=e.allNodes:this.grouped?s=e.groupedNodes:s=e.nodes,(t=l(this,m))==null||t.updateValue(s),o(this,d,ae).call(this,e)},dt=function(e){var t,s,i;o(this,d,ge).call(this,e),this.isSingleSelect&&!this.alwaysOpen&&((t=l(this,m))==null||t.openClose(),(s=l(this,m))==null||s.clearSearch()),(i=l(this,m))==null||i.focus(),o(this,d,he).call(this)},ut=function(e,t){var s;(s=l(this,m))==null||s.focus(),this.updateListPosition(),o(this,d,Et).call(this,e,t)},pt=function(e){this.selectedName!==e&&(this.selectedName=e,o(this,d,bt).call(this))},mt=function(){var e;this.isListOpened=!0,l(this,N)&&l(this,_)&&(window.addEventListener("scroll",l(this,N),!0),window.addEventListener("resize",l(this,_))),!(!l(this,p)||!this.srcElement)&&(this.appendToBody?(document.body.appendChild(l(this,p).srcElement),(e=l(this,F))==null||e.observe(this.srcElement)):this.srcElement.appendChild(l(this,p).srcElement),this.updateListPosition(),o(this,d,ce).call(this,!0),o(this,d,vt).call(this),o(this,d,gt).call(this))},fe=function(){var e;this.alwaysOpen||(this.isListOpened=!1,l(this,N)&&l(this,_)&&(window.removeEventListener("scroll",l(this,N),!0),window.removeEventListener("resize",l(this,_))),!l(this,p)||!this.srcElement)||!(this.appendToBody?document.body.contains(l(this,p).srcElement):this.srcElement.contains(l(this,p).srcElement))||(E(this,Q,l(this,p).srcElement.scrollTop),this.appendToBody?(document.body.removeChild(l(this,p).srcElement),(e=l(this,F))==null||e.disconnect()):this.srcElement.removeChild(l(this,p).srcElement),o(this,d,ce).call(this,!1),o(this,d,ft).call(this))},ke=function(e,t){if(!l(this,p)||!l(this,m))return;let s=t?"treeselect-list--top-to-body":"treeselect-list--top",i=t?"treeselect-list--bottom-to-body":"treeselect-list--bottom";e?(l(this,p).srcElement.classList.add(s),l(this,p).srcElement.classList.remove(i),l(this,m).srcElement.classList.add("treeselect-input--top"),l(this,m).srcElement.classList.remove("treeselect-input--bottom")):(l(this,p).srcElement.classList.remove(s),l(this,p).srcElement.classList.add(i),l(this,m).srcElement.classList.remove("treeselect-input--top"),l(this,m).srcElement.classList.add("treeselect-input--bottom"))},te=function(e){!l(this,m)||!l(this,p)||(e?(l(this,m).srcElement.classList.add("treeselect-input--focused"),l(this,p).srcElement.classList.add("treeselect-list--focused")):(l(this,m).srcElement.classList.remove("treeselect-input--focused"),l(this,p).srcElement.classList.remove("treeselect-list--focused")))},ce=function(e){var t,s,i,n;e?(t=l(this,m))==null||t.srcElement.classList.add("treeselect-input--opened"):(s=l(this,m))==null||s.srcElement.classList.remove("treeselect-input--opened"),this.staticList?(i=l(this,p))==null||i.srcElement.classList.add("treeselect-list--static"):(n=l(this,p))==null||n.srcElement.classList.remove("treeselect-list--static")},ee=function(e){!l(this,N)||!l(this,_)||!l(this,S)||!l(this,V)||((!this.alwaysOpen||e)&&(window.removeEventListener("scroll",l(this,N),!0),window.removeEventListener("resize",l(this,_))),document.removeEventListener("mousedown",l(this,S),!0),document.removeEventListener("focus",l(this,S),!0),window.removeEventListener("blur",l(this,V)))},vt=function(){var e,t,s;let i=(e=l(this,p))==null?void 0:e.isLastFocusedElementExist();this.saveScrollPosition&&i?(t=l(this,p))==null||t.srcElement.scroll(0,l(this,Q)):(s=l(this,p))==null||s.focusFirstListElement()},he=function(){var e;(e=this.srcElement)==null||e.dispatchEvent(new CustomEvent("input",{detail:this.value})),this.inputCallback&&this.inputCallback(this.value)},bt=function(){var e;(e=this.srcElement)==null||e.dispatchEvent(new CustomEvent("name-change",{detail:this.selectedName})),this.nameChangeCallback&&this.nameChangeCallback(this.selectedName)},gt=function(){var e;this.alwaysOpen||((e=this.srcElement)==null||e.dispatchEvent(new CustomEvent("open",{detail:this.value})),this.openCallback&&this.openCallback(this.value))},ft=function(){var e;this.alwaysOpen||((e=this.srcElement)==null||e.dispatchEvent(new CustomEvent("close",{detail:this.value})),this.closeCallback&&this.closeCallback(this.value))},kt=function(e){var t;let s=e?.trim()??"";(t=this.srcElement)==null||t.dispatchEvent(new CustomEvent("search",{detail:s})),this.searchCallback&&this.searchCallback(s)},Et=function(e,t){var s;(s=this.srcElement)==null||s.dispatchEvent(new CustomEvent("open-close-group",{detail:{groupId:e,isClosed:t}})),this.openCloseGroupCallback&&this.openCloseGroupCallback(e,t)};function _s({state:e,name:t,options:s,searchable:i,showCount:n,placeholder:c,rtl:r,disabledBranchNode:v=!0,disabled:g=!1,isSingleSelect:w=!0,showTags:C=!0,clearable:b=!0,isIndependentNodes:f=!0,alwaysOpen:L=!1,emptyText:x,expandSelected:M=!0,grouped:O=!0,openLevel:B=0,direction:A="auto"}){return{state:e,tree:null,init(){this.tree=new se({id:`tree-${t}-id`,ariaLabel:`tree-${t}-label`,parentHtmlContainer:this.$refs.tree,value:this.state,options:s,searchable:i,showCount:n,placeholder:c,disabledBranchNode:v,disabled:g,isSingleSelect:w,showTags:C,clearable:b,isIndependentNodes:f,alwaysOpen:L,emptyText:x,expandSelected:M,grouped:O,openLevel:B,direction:A,rtl:r}),this.tree.srcElement.addEventListener("input",$=>{this.state=$.detail})}}}export{_s as default};