treeselectjs 0.9.1 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -9,8 +9,8 @@ A multi-select js component with nested options.
9
9
  - Typescript support
10
10
 
11
11
  Build data:
12
- - treeselectjs.mjs 50.05 kB │ gzip: 11.33 kB
13
- - treeselectjs.umd.js 40.62 kB │ gzip: 10.35 kB
12
+ - treeselectjs.mjs 50.04 kB │ gzip: 11.33 kB
13
+ - treeselectjs.umd.js 40.61 kB │ gzip: 10.35 kB
14
14
  - treeselectjs.css 6.41 kB │ gzip: 1.27 kB
15
15
 
16
16
  **Live Demo:** https://dipson88.github.io/treeselectjs/
@@ -30,8 +30,8 @@ import Treeselect from 'treeselectjs'
30
30
 
31
31
  Import treeselectjs (UMD)
32
32
  ```
33
- <script src="https://cdn.jsdelivr.net/npm/treeselectjs@0.9.1/dist/treeselectjs.umd.js"></script>
34
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/treeselectjs@0.9.1/dist/treeselectjs.css" />
33
+ <script src="https://cdn.jsdelivr.net/npm/treeselectjs@0.9.2/dist/treeselectjs.umd.js"></script>
34
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/treeselectjs@0.9.2/dist/treeselectjs.css" />
35
35
  ...
36
36
  <script>
37
37
  ...
@@ -123,6 +123,7 @@ Name | Type (default) | Description
123
123
  **options** | Array[Object] ([]) | It is an array of objects ```{name: String, value: String, disabled?: Boolean, htmlAttr?: object, children: [] }```, where children are the same array of objects. Do not use duplicated `value` field. But you can use duplicated names. [Read more](#option-description).
124
124
  **disabled** | Boolean (false) | List will be disabled.
125
125
  **id** | String ('') | id attribute for the accessibility.
126
+ **ariaLabel** | String ('') | ariaLabel attribute for the accessibility.
126
127
  **isSingleSelect** | Boolean (false) | Converts multi-select to the single value select. Checkboxes will be removed. You should pass only one id instead of array of values. Also you can set **showTags** to false. It helps to show treeselect as a dropdown.
127
128
  **isGroupedValue** | Boolean (false) | Return groups if they selected instead of separate ids. Treeselect returns only leaves ids by default.
128
129
  **isIndependentNodes** | Boolean (false) | All nodes in treeselect work as an independent entity. Check/uncheck action ignore children/parent updates workflow. Disabled nodes ignore children/parent workflow as well.
@@ -151,7 +152,6 @@ Name | Type (default) | Description
151
152
  **searchable** | Boolean (true) | Search is available.
152
153
  **placeholder** | String ('Search...') | Placeholder text.
153
154
  **grouped** | Boolean (true) | Show groups in the input and group leafs if all group selected.
154
- **ariaLabel** | String (**placeholder**) | ariaLabel attribute for the accessibility. Prop uses **placeholder** as a default value.
155
155
 
156
156
  #### Callback props
157
157
  Name | Type (default) | Description
@@ -193,7 +193,7 @@ T = new WeakMap(), E = new WeakMap(), D = new WeakMap(), v = new WeakMap(), ue =
193
193
  return e.textContent = t, e.setAttribute("title", t), e;
194
194
  }, Le = new WeakSet(), zt = function() {
195
195
  const e = document.createElement("input");
196
- 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 && e.setAttribute("aria-label", this.ariaLabel), e.addEventListener("keydown", (t) => o(this, ye, Yt).call(this, t)), e.addEventListener("input", (t) => o(this, xe, Kt).call(this, t, e)), e;
196
+ 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, ye, Yt).call(this, t)), e.addEventListener("input", (t) => o(this, xe, Kt).call(this, t, e)), e;
197
197
  }, ye = new WeakSet(), Yt = function(e) {
198
198
  e.stopPropagation();
199
199
  const t = e.key;
@@ -812,7 +812,7 @@ class Bi {
812
812
  staticList: ae,
813
813
  appendToBody: a,
814
814
  isSingleSelect: oe
815
- }), this.parentHtmlContainer = e, this.value = [], this.options = s ?? [], this.openLevel = i ?? 0, this.appendToBody = a ?? !1, this.alwaysOpen = !!(h && !I), this.showTags = p ?? !0, this.tagsCountText = f ?? "elements selected", this.clearable = b ?? !0, this.searchable = C ?? !0, this.placeholder = g ?? "Search...", this.grouped = w ?? !0, this.isGroupedValue = k ?? !1, this.listSlotHtmlComponent = y ?? null, this.disabled = I ?? !1, this.emptyText = W ?? "No results found...", this.staticList = !!(ae && !this.appendToBody), this.id = bt ?? "", this.ariaLabel = Ct ?? this.placeholder, this.isSingleSelect = oe ?? !1, this.showCount = Us ?? !1, this.disabledBranchNode = zs ?? !1, this.direction = Ys ?? "auto", this.expandSelected = Ks ?? !1, this.saveScrollPosition = Xs ?? !0, this.isIndependentNodes = Js ?? !1, this.iconElements = Pt(Zs), this.inputCallback = Qs, this.openCallback = ei, this.closeCallback = ti, this.nameChangeCallback = si, this.searchCallback = ii, this.ungroupedValue = [], this.groupedValue = [], this.allValue = [], this.isListOpened = !1, this.selectedName = "", this.srcElement = null, o(this, ee, xt).call(this, t);
815
+ }), this.parentHtmlContainer = e, this.value = [], this.options = s ?? [], this.openLevel = i ?? 0, this.appendToBody = a ?? !1, this.alwaysOpen = !!(h && !I), this.showTags = p ?? !0, this.tagsCountText = f ?? "elements selected", this.clearable = b ?? !0, this.searchable = C ?? !0, this.placeholder = g ?? "Search...", this.grouped = w ?? !0, this.isGroupedValue = k ?? !1, this.listSlotHtmlComponent = y ?? null, this.disabled = I ?? !1, this.emptyText = W ?? "No results found...", this.staticList = !!(ae && !this.appendToBody), this.id = bt ?? "", this.ariaLabel = Ct ?? "", this.isSingleSelect = oe ?? !1, this.showCount = Us ?? !1, this.disabledBranchNode = zs ?? !1, this.direction = Ys ?? "auto", this.expandSelected = Ks ?? !1, this.saveScrollPosition = Xs ?? !0, this.isIndependentNodes = Js ?? !1, this.iconElements = Pt(Zs), this.inputCallback = Qs, this.openCallback = ei, this.closeCallback = ti, this.nameChangeCallback = si, this.searchCallback = ii, this.ungroupedValue = [], this.groupedValue = [], this.allValue = [], this.isListOpened = !1, this.selectedName = "", this.srcElement = null, o(this, ee, xt).call(this, t);
816
816
  }
817
817
  mount() {
818
818
  Vt({
@@ -1 +1 @@
1
- (function(f,u){typeof exports=="object"&&typeof module<"u"?module.exports=u():typeof define=="function"&&define.amd?define(u):(f=typeof globalThis<"u"?globalThis:f||self,f.Treeselect=u())})(this,function(){var I,y,H,x,pe,Rt,G,oe,me,Ut,fe,zt,M,re,P,j,be,Yt,Ce,Kt,ge,Xt,we,Jt,ke,Zt,Ee,Qt,ve,es,Le,ts,ye,ss,xe,is,Se,ls,_e,ns,Ae,as,Te,os,Ne,rs,Oe,cs,z,yt,F,B,_,Y,Ie,ds,Pe,hs,Be,us,Ve,ps,De,ms,He,fs,K,xt,Ge,bs,Me,Cs,Fe,gs,X,St,je,ws,qe,ks,$e,Es,We,vs,Re,Ls,Ue,ys,ze,xs,Ye,Ss,Ke,_s,Xe,As,Je,Ts,J,_t,Z,At,Ze,Ns,h,p,q,Q,$,A,T,S,V,ee,Tt,te,Nt,Qe,Os,et,Is,tt,Ps,st,Bs,it,Vs,lt,Ds,se,Ot,nt,Hs,at,Gs,ot,Ms,rt,Fs,ie,It,ct,js,W,Ct,le,Pt,R,gt,dt,qs,ne,Bt,ht,$s,ut,Ws,pt,Rs,mt,Us;"use strict";var Pi=Object.defineProperty;var Bi=(f,u,m)=>u in f?Pi(f,u,{enumerable:!0,configurable:!0,writable:!0,value:m}):f[u]=m;var c=(f,u,m)=>(Bi(f,typeof u!="symbol"?u+"":u,m),m),Lt=(f,u,m)=>{if(!u.has(f))throw TypeError("Cannot "+m)};var n=(f,u,m)=>(Lt(f,u,"read from private field"),m?m.call(f):u.get(f)),r=(f,u,m)=>{if(u.has(f))throw TypeError("Cannot add the same private member more than once");u instanceof WeakSet?u.add(f):u.set(f,m)},C=(f,u,m,U)=>(Lt(f,u,"write to private field"),U?U.call(f,m):u.set(f,m),m);var o=(f,u,m)=>(Lt(f,u,"access private method"),m);const f="",u={arrowUp:'<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 25 25" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 15l-6-6-6 6"/></svg>',arrowDown:'<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 25 25" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 9l6 6 6-6"/></svg>',arrowRight:'<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 25 25" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 18l6-6-6-6"/></svg>',attention:'<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 25 25" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>',clear:'<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 25 25" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>',cross:'<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 25 25" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>',check:'<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 25 25" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>',partialCheck:'<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 25 25" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line></svg>'},m=(l,e)=>{if(e.innerHTML="",typeof l=="string")e.innerHTML=l;else{const t=l.cloneNode(!0);e.appendChild(t)}},U=l=>{const e=l?{...l}:{};return Object.keys(u).forEach(t=>{e[t]||(e[t]=u[t])}),e},zs=l=>l.reduce((e,{name:t},s)=>(e+=t,s<l.length-1&&(e+=", "),e),"");class Ys{constructor({value:e,showTags:t,tagsCountText:s,clearable:i,isAlwaysOpened:a,searchable:d,placeholder:b,disabled:g,isSingleSelect:w,id:k,ariaLabel:E,iconElements:v,inputCallback:L,searchCallback:N,openCallback:D,closeCallback:ae,keydownCallback:ft,focusCallback:Et,blurCallback:vt,nameChangeCallback:bt}){r(this,pe);r(this,G);r(this,me);r(this,fe);r(this,M);r(this,P);r(this,be);r(this,Ce);r(this,ge);r(this,we);r(this,ke);r(this,Ee);r(this,ve);r(this,Le);r(this,ye);r(this,xe);r(this,Se);r(this,_e);r(this,Ae);r(this,Te);r(this,Ne);r(this,Oe);r(this,z);c(this,"value");c(this,"showTags");c(this,"tagsCountText");c(this,"clearable");c(this,"isAlwaysOpened");c(this,"searchable");c(this,"placeholder");c(this,"disabled");c(this,"isSingleSelect");c(this,"id");c(this,"ariaLabel");c(this,"iconElements");c(this,"isOpened");c(this,"searchText");c(this,"srcElement");r(this,I,void 0);r(this,y,void 0);r(this,H,void 0);r(this,x,void 0);c(this,"inputCallback");c(this,"searchCallback");c(this,"openCallback");c(this,"closeCallback");c(this,"keydownCallback");c(this,"focusCallback");c(this,"blurCallback");c(this,"nameChangeCallback");this.value=e,this.showTags=t,this.tagsCountText=s,this.searchable=d,this.placeholder=b,this.clearable=i,this.isAlwaysOpened=a,this.disabled=g,this.isSingleSelect=w,this.id=k,this.ariaLabel=E,this.iconElements=v,this.isOpened=!1,this.searchText="",C(this,I,o(this,ge,Xt).call(this)),C(this,y,o(this,ye,ss).call(this)),C(this,H,o(this,_e,ns).call(this)),C(this,x,null),this.inputCallback=L,this.searchCallback=N,this.openCallback=D,this.closeCallback=ae,this.keydownCallback=ft,this.focusCallback=Et,this.blurCallback=vt,this.nameChangeCallback=bt,this.srcElement=o(this,be,Yt).call(this,n(this,I),n(this,y),n(this,H)),o(this,pe,Rt).call(this)}focus(){setTimeout(()=>n(this,y).focus(),0)}blur(){this.isOpened&&o(this,P,j).call(this),this.clearSearch(),n(this,y).blur()}updateValue(e){this.value=e,o(this,G,oe).call(this),o(this,M,re).call(this)}removeItem(e){this.value=this.value.filter(t=>t.id!==e),o(this,z,yt).call(this),o(this,G,oe).call(this),o(this,M,re).call(this)}clear(){this.value=[],o(this,z,yt).call(this),o(this,G,oe).call(this),this.clearSearch()}openClose(){o(this,P,j).call(this)}clearSearch(){this.searchText="",this.searchCallback(""),o(this,M,re).call(this)}}I=new WeakMap,y=new WeakMap,H=new WeakMap,x=new WeakMap,pe=new WeakSet,Rt=function(){o(this,G,oe).call(this),o(this,M,re).call(this),o(this,me,Ut).call(this)},G=new WeakSet,oe=function(){if(n(this,I).innerHTML="",this.showTags){n(this,I).append(...o(this,we,Jt).call(this));const e=zs(this.value);this.nameChangeCallback(e)}else{const e=o(this,Le,ts).call(this);n(this,I).appendChild(e),this.nameChangeCallback(e.innerText)}n(this,I).appendChild(n(this,y))},me=new WeakSet,Ut=function(){const e=[];n(this,H).innerHTML="",this.clearable&&e.push(o(this,Ae,as).call(this)),this.isAlwaysOpened||e.push(o(this,Ne,rs).call(this,this.isOpened)),e.length&&n(this,H).append(...e)},fe=new WeakSet,zt=function(){if(!this.isAlwaysOpened&&n(this,x)){const e=this.isOpened?this.iconElements.arrowUp:this.iconElements.arrowDown;m(e,n(this,x))}},M=new WeakSet,re=function(){var e;(e=this.value)!=null&&e.length?(n(this,y).removeAttribute("placeholder"),this.srcElement.classList.remove("treeselect-input--value-not-selected")):(n(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"),n(this,y).value=this.searchText},P=new WeakSet,j=function(){this.isOpened=!this.isOpened,o(this,fe,zt).call(this),this.isOpened?this.openCallback():this.closeCallback()},be=new WeakSet,Yt=function(e,t,s){const i=document.createElement("div");return i.classList.add("treeselect-input"),i.setAttribute("tabindex","-1"),i.addEventListener("mousedown",a=>o(this,Ce,Kt).call(this,a)),i.addEventListener("focus",()=>this.focusCallback(),!0),i.addEventListener("blur",()=>this.blurCallback(),!0),e.appendChild(t),i.append(e,s),i},Ce=new WeakSet,Kt=function(e){e.stopPropagation(),this.isOpened||o(this,P,j).call(this),this.focus()},ge=new WeakSet,Xt=function(){const e=document.createElement("div");return e.classList.add("treeselect-input__tags"),e},we=new WeakSet,Jt=function(){return this.value.map(e=>{const 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);const s=o(this,Ee,Qt).call(this,e.name),i=o(this,ve,es).call(this);return t.addEventListener("mousedown",a=>o(this,ke,Zt).call(this,a,e.id)),t.append(s,i),t})},ke=new WeakSet,Zt=function(e,t){e.preventDefault(),e.stopPropagation(),this.removeItem(t),this.focus()},Ee=new WeakSet,Qt=function(e){const t=document.createElement("span");return t.classList.add("treeselect-input__tags-name"),t.textContent=e,t},ve=new WeakSet,es=function(){const e=document.createElement("span");return e.classList.add("treeselect-input__tags-cross"),m(this.iconElements.cross,e),e},Le=new WeakSet,ts=function(){const e=document.createElement("span");if(e.classList.add("treeselect-input__tags-count"),!this.value.length)return e.textContent="",e.setAttribute("title",""),e;const t=this.value.length===1?this.value[0].name:`${this.value.length} ${this.tagsCountText}`;return e.textContent=t,e.setAttribute("title",t),e},ye=new WeakSet,ss=function(){const 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&&e.setAttribute("aria-label",this.ariaLabel),e.addEventListener("keydown",t=>o(this,xe,is).call(this,t)),e.addEventListener("input",t=>o(this,Se,ls).call(this,t,e)),e},xe=new WeakSet,is=function(e){e.stopPropagation();const 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,P,j).call(this),(t==="Enter"||t==="ArrowDown"||t==="ArrowUp")&&e.preventDefault(),this.keydownCallback(e),t!=="Tab"&&this.focus()},Se=new WeakSet,ls=function(e,t){e.stopPropagation();const s=this.searchText,i=t.value.trim();if(s.length===0&&i.length===0){t.value="";return}if(this.searchable){const a=e.target.value;this.searchCallback(a),this.isOpened||o(this,P,j).call(this)}else t.value="";this.searchText=t.value},_e=new WeakSet,ns=function(){const e=document.createElement("div");return e.classList.add("treeselect-input__operators"),e},Ae=new WeakSet,as=function(){const e=document.createElement("span");return e.classList.add("treeselect-input__clear"),e.setAttribute("tabindex","-1"),m(this.iconElements.clear,e),e.addEventListener("mousedown",t=>o(this,Te,os).call(this,t)),e},Te=new WeakSet,os=function(e){e.preventDefault(),e.stopPropagation(),(this.searchText.length||this.value.length)&&this.clear(),this.focus()},Ne=new WeakSet,rs=function(e){C(this,x,document.createElement("span")),n(this,x).classList.add("treeselect-input__arrow");const t=e?this.iconElements.arrowUp:this.iconElements.arrowDown;return m(t,n(this,x)),n(this,x).addEventListener("mousedown",s=>o(this,Oe,cs).call(this,s)),n(this,x)},Oe=new WeakSet,cs=function(e){e.stopPropagation(),e.preventDefault(),this.focus(),o(this,P,j).call(this)},z=new WeakSet,yt=function(){this.inputCallback(this.value)};const Vt=(l,e,t,s)=>{Zs(e);const i=e.filter(a=>!a.disabled&&l.some(d=>d===a.id));if(t&&i.length){i[0].checked=!0;return}i.forEach(a=>{a.checked=!0;const d=wt(a,e,s);a.checked=d})},wt=({id:l,checked:e},t,s)=>{const i=t.find(d=>d.id===l);if(!i)return!1;if(s)return i.checked=i.disabled?!1:!!e,i.checked;const a=Dt(!!e,i,t);return Ht(i,t),a},Dt=(l,e,t)=>{if(!e.isGroup)return e.checked=e.disabled?!1:!!l,e.isPartialChecked=!1,e.checked;const s=t.filter(b=>b.childOf===e.id);return!l||e.disabled||e.isPartialChecked?(e.checked=!1,e.isPartialChecked=!1,kt(e,s,t),e.checked):Gt(s,t)?Mt(s)?(e.checked=!1,e.isPartialChecked=!1,e.disabled=!0,e.checked):(e.checked=!1,e.isPartialChecked=!0,s.forEach(b=>{Dt(l,b,t)}),e.checked):(e.checked=!0,e.isPartialChecked=!1,kt(e,s,t),e.checked)},Ht=(l,e)=>{const t=e.find(s=>s.id===l.childOf);t&&(Ks(t,e),Ht(t,e))},Ks=(l,e)=>{const t=ce(l,e);if(Mt(t)){l.checked=!1,l.isPartialChecked=!1,l.disabled=!0;return}if(Xs(t)){l.checked=!0,l.isPartialChecked=!1;return}if(Js(t)){l.checked=!1,l.isPartialChecked=!0;return}l.checked=!1,l.isPartialChecked=!1},kt=({checked:l,disabled:e},t,s)=>{t.forEach(i=>{i.disabled=!!e||!!i.disabled,i.checked=!!l&&!i.disabled,i.isPartialChecked=!1;const a=ce(i,s);kt({checked:l,disabled:e},a,s)})},Gt=(l,e)=>l.some(i=>i.disabled)?!0:l.some(i=>{if(i.isGroup){const a=ce(i,e);return Gt(a,e)}return!1}),Mt=l=>l.every(e=>!!e.disabled),Xs=l=>l.every(e=>!!e.checked),Js=l=>l.some(e=>!!e.checked||!!e.isPartialChecked),Zs=l=>{l.forEach(e=>{e.checked=!1,e.isPartialChecked=!1})},Qs=(l,e,t)=>{const s={level:0,groupId:""},i=Ft(l,e,s.groupId,s.level);return ti(i,t)},Ft=(l,e,t,s)=>l.reduce((i,a)=>{var w;const d=!!((w=a.children)!=null&&w.length),b=s>=e&&d,g=s>e;if(i.push({id:a.value,name:a.name,childOf:t,isGroup:d,checked:!1,isPartialChecked:!1,level:s,isClosed:b,hidden:g,disabled:a.disabled??!1}),d){const k=Ft(a.children,e,a.value,s+1);i.push(...k)}return i},[]),ce=({id:l},e)=>e.filter(t=>t.childOf===l),ei=l=>{const{ungroupedNodes:e,allGroupedNodes:t,allNodes:s}=l.reduce((a,d)=>(d.checked&&(a.allNodes.push(d),d.isGroup?a.allGroupedNodes.push(d):a.ungroupedNodes.push(d)),a),{ungroupedNodes:[],allGroupedNodes:[],allNodes:[]}),i=s.filter(a=>!t.some(({id:d})=>d===a.childOf));return{ungroupedNodes:e,groupedNodes:i,allNodes:s}},ti=(l,e)=>(l.filter(s=>!!s.disabled).forEach(({id:s})=>wt({id:s,checked:!1},l,e)),l),de=(l,{id:e,isClosed:t})=>{ce({id:e},l).forEach(i=>{i.hidden=t??!1,i.isGroup&&!i.isClosed&&de(l,{id:i.id,isClosed:t})})},si=l=>{l.filter(e=>e.isGroup&&!e.disabled&&(e.checked||e.isPartialChecked)).forEach(e=>{e.isClosed=!1,de(l,e)})},ii=(l,e)=>{const t=li(l,e);l.forEach(s=>{t.some(({id:a})=>a===s.id)?(s.isGroup&&(s.isClosed=!1,de(l,s)),s.hidden=!1):s.hidden=!0})},li=(l,e)=>l.reduce((t,s)=>{if(s.name.toLowerCase().includes(e.toLowerCase())){if(t.push(s),s.isGroup){const a=jt(s.id,l);t.push(...a)}if(s.childOf){const a=qt(s.childOf,l);t.push(...a)}}return t},[]),jt=(l,e)=>e.reduce((t,s)=>(s.childOf===l&&(t.push(s),s.isGroup&&t.push(...jt(s.id,e))),t),[]),qt=(l,e)=>e.reduce((t,s)=>(s.id===l&&(t.push(s),s.childOf&&t.push(...qt(s.childOf,e))),t),[]),ni=l=>{const{duplications:e}=l.reduce((t,s)=>(t.allItems.some(i=>i.toString()===s.id.toString())&&t.duplications.push(s.id),t.allItems.push(s.id),t),{duplications:[],allItems:[]});e.length&&console.error(`Validation: You have duplicated values: ${e.join(", ")}! You should use unique values.`)},ai=(l,e,t,s,i,a,d,b,g)=>{Vt(l,e,i,g),b&&d&&si(e),he(e,t,s,a)},he=(l,e,t,s)=>{l.forEach(i=>{const a=e.querySelector(`[input-id="${i.id}"]`),d=O(a);a.checked=i.checked,oi(i,d,s),ri(i,d),ci(i,d),di(i,d,t),hi(i,d),pi(i,d,l),ui(i,a,t)}),mi(l,e)},oi=(l,e,t)=>{l.checked?e.classList.add("treeselect-list__item--checked"):e.classList.remove("treeselect-list__item--checked"),Array.isArray(t)&&t[0]===l.id&&!l.disabled?e.classList.add("treeselect-list__item--single-selected"):e.classList.remove("treeselect-list__item--single-selected")},ri=(l,e)=>{l.isPartialChecked?e.classList.add("treeselect-list__item--partial-checked"):e.classList.remove("treeselect-list__item--partial-checked")},ci=(l,e)=>{l.disabled?e.classList.add("treeselect-list__item--disabled"):e.classList.remove("treeselect-list__item--disabled")},di=(l,e,t)=>{if(l.isGroup){const s=e.querySelector(".treeselect-list__item-icon"),i=l.isClosed?t.arrowRight:t.arrowDown;m(i,s),l.isClosed?e.classList.add("treeselect-list__item--closed"):e.classList.remove("treeselect-list__item--closed")}},hi=(l,e)=>{l.hidden?e.classList.add("treeselect-list__item--hidden"):e.classList.remove("treeselect-list__item--hidden")},ui=(l,e,t)=>{const i=e.parentNode.querySelector(".treeselect-list__item-checkbox-icon");l.checked?m(t.check,i):l.isPartialChecked?m(t.partialCheck,i):i.innerHTML=""},pi=(l,e,t)=>{const s=l.level===0,i=20,a=5;if(s){const d=t.some(g=>g.isGroup&&g.level===l.level),b=!l.isGroup&&d?`${i}px`:`${a}px`;e.style.paddingLeft=l.isGroup?"0":b}else e.style.paddingLeft=l.isGroup?`${l.level*i}px`:`${l.level*i+i}px`;e.setAttribute("level",l.level.toString()),e.setAttribute("group",l.isGroup.toString())},mi=(l,e)=>{const t=l.some(i=>!i.hidden),s=e.querySelector(".treeselect-list__empty");t?s.classList.add("treeselect-list__empty--hidden"):s.classList.remove("treeselect-list__empty--hidden")},O=l=>l.parentNode.parentNode,$t=(l,e)=>e.find(t=>t.id.toString()===l),fi=l=>O(l).querySelector(".treeselect-list__item-icon"),bi=(l,e)=>{e&&Object.keys(e).forEach(t=>{const s=e[t];typeof s=="string"&&l.setAttribute(t,s)})};class Ci{constructor({options:e,value:t,openLevel:s,listSlotHtmlComponent:i,emptyText:a,isSingleSelect:d,iconElements:b,showCount:g,disabledBranchNode:w,expandSelected:k,isIndependentNodes:E,inputCallback:v,arrowClickCallback:L,mouseupCallback:N}){r(this,Ie);r(this,Pe);r(this,Be);r(this,Ve);r(this,De);r(this,He);r(this,K);r(this,Ge);r(this,Me);r(this,Fe);r(this,X);r(this,je);r(this,qe);r(this,$e);r(this,We);r(this,Re);r(this,Ue);r(this,ze);r(this,Ye);r(this,Ke);r(this,Xe);r(this,Je);r(this,J);r(this,Z);r(this,Ze);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,"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");r(this,F,null);r(this,B,!0);r(this,_,[]);r(this,Y,!0);this.options=e,this.value=t,this.openLevel=s??0,this.listSlotHtmlComponent=i??null,this.emptyText=a??"No results found...",this.isSingleSelect=d??!1,this.showCount=g??!1,this.disabledBranchNode=w??!1,this.expandSelected=k??!1,this.isIndependentNodes=E??!1,this.iconElements=b,this.searchText="",this.flattedOptions=Qs(this.options,this.openLevel,this.isIndependentNodes),this.flattedOptionsBeforeSearch=this.flattedOptions,this.selectedNodes={nodes:[],groupedNodes:[],allNodes:[]},this.srcElement=o(this,Be,us).call(this),this.inputCallback=v,this.arrowClickCallback=L,this.mouseupCallback=N,ni(this.flattedOptions)}updateValue(e){this.value=e,C(this,_,this.isSingleSelect?this.value:[]),ai(e,this.flattedOptions,this.srcElement,this.iconElements,this.isSingleSelect,n(this,_),this.expandSelected,n(this,Y),this.isIndependentNodes),C(this,Y,!1),o(this,Z,At).call(this)}updateSearchValue(e){if(e===this.searchText)return;const t=this.searchText===""&&e!=="";this.searchText=e,t&&(this.flattedOptionsBeforeSearch=JSON.parse(JSON.stringify(this.flattedOptions))),this.searchText===""&&(this.flattedOptions=this.flattedOptionsBeforeSearch.map(s=>{const i=this.flattedOptions.find(a=>a.id===s.id);return i.isClosed=s.isClosed,i.hidden=s.hidden,i}),this.flattedOptionsBeforeSearch=[]),this.searchText&&ii(this.flattedOptions,e),he(this.flattedOptions,this.srcElement,this.iconElements,n(this,_)),this.focusFirstListElement()}callKeyAction(e){C(this,B,!1);const t=this.srcElement.querySelector(".treeselect-list__item--focused");if(t==null?void 0:t.classList.contains("treeselect-list__item--hidden"))return;const i=e.key;i==="Enter"&&t&&t.dispatchEvent(new Event("mousedown")),(i==="ArrowLeft"||i==="ArrowRight")&&o(this,Ie,ds).call(this,t,e),(i==="ArrowDown"||i==="ArrowUp")&&o(this,Pe,hs).call(this,t,i)}focusFirstListElement(){const e="treeselect-list__item--focused",t=this.srcElement.querySelector(`.${e}`),s=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter(a=>window.getComputedStyle(O(a)).display!=="none");if(!s.length)return;t&&t.classList.remove(e),O(s[0]).classList.add(e)}isLastFocusedElementExist(){return!!n(this,F)}}F=new WeakMap,B=new WeakMap,_=new WeakMap,Y=new WeakMap,Ie=new WeakSet,ds=function(e,t){if(!e)return;const s=t.key,a=e.querySelector(".treeselect-list__item-checkbox").getAttribute("input-id"),d=$t(a,this.flattedOptions),b=e.querySelector(".treeselect-list__item-icon");s==="ArrowLeft"&&!d.isClosed&&d.isGroup&&(b.dispatchEvent(new Event("mousedown")),t.preventDefault()),s==="ArrowRight"&&d.isClosed&&d.isGroup&&(b.dispatchEvent(new Event("mousedown")),t.preventDefault())},Pe=new WeakSet,hs=function(e,t){var i;const s=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter(a=>window.getComputedStyle(O(a)).display!=="none");if(s.length)if(!e)O(s[0]).classList.add("treeselect-list__item--focused");else{const a=s.findIndex(D=>O(D).classList.contains("treeselect-list__item--focused"));O(s[a]).classList.remove("treeselect-list__item--focused");const b=t==="ArrowDown"?a+1:a-1,g=t==="ArrowDown"?0:s.length-1,w=s[b]??s[g],k=!s[b],E=O(w);E.classList.add("treeselect-list__item--focused");const v=this.srcElement.getBoundingClientRect(),L=E.getBoundingClientRect();if(k&&t==="ArrowDown"){this.srcElement.scroll(0,0);return}if(k&&t==="ArrowUp"){this.srcElement.scroll(0,this.srcElement.scrollHeight);return}const N=((i=this.listSlotHtmlComponent)==null?void 0:i.clientHeight)??0;if(v.y+v.height<L.y+L.height+N){this.srcElement.scroll(0,this.srcElement.scrollTop+L.height);return}if(v.y>L.y){this.srcElement.scroll(0,this.srcElement.scrollTop-L.height);return}}},Be=new WeakSet,us=function(){const e=o(this,Ve,ps).call(this),t=o(this,K,xt).call(this,this.options);e.append(...t);const s=o(this,Me,Cs).call(this);e.append(s);const i=o(this,Ge,bs).call(this);return i&&e.append(i),e},Ve=new WeakSet,ps=function(){const e=document.createElement("div");return e.classList.add("treeselect-list"),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,De,ms).call(this,t)),e.addEventListener("mousemove",()=>o(this,He,fs).call(this)),e.addEventListener("mouseup",()=>this.mouseupCallback(),!0),e},De=new WeakSet,ms=function(e){e.stopPropagation(),n(this,F)&&n(this,B)&&n(this,F).classList.add("treeselect-list__item--focused")},He=new WeakSet,fs=function(){C(this,B,!0)},K=new WeakSet,xt=function(e){return e.reduce((t,s)=>{var a;if((a=s.children)!=null&&a.length){const d=o(this,Fe,gs).call(this,s),b=o(this,K,xt).call(this,s.children);return d.append(...b),t.push(d),t}const i=o(this,X,St).call(this,s,!1);return t.push(i),t},[])},Ge=new WeakSet,bs=function(){if(!this.listSlotHtmlComponent)return null;const e=document.createElement("div");return e.classList.add("treeselect-list__slot"),e.appendChild(this.listSlotHtmlComponent),e},Me=new WeakSet,Cs=function(){const e=document.createElement("div");e.classList.add("treeselect-list__empty"),e.setAttribute("title",this.emptyText);const t=document.createElement("span");t.classList.add("treeselect-list__empty-icon"),m(this.iconElements.attention,t);const s=document.createElement("span");return s.classList.add("treeselect-list__empty-text"),s.textContent=this.emptyText,e.append(t,s),e},Fe=new WeakSet,gs=function(e){const t=document.createElement("div");t.setAttribute("group-container-id",e.value.toString()),t.classList.add("treeselect-list__group-container");const s=o(this,X,St).call(this,e,!0);return t.appendChild(s),t},X=new WeakSet,St=function(e,t){const s=o(this,je,ws).call(this,e);if(t){const d=o(this,Re,Ls).call(this);s.appendChild(d),s.classList.add("treeselect-list__item--group")}const i=o(this,ze,xs).call(this,e),a=o(this,Ye,Ss).call(this,e,t);return s.append(i,a),s},je=new WeakSet,ws=function(e){const t=document.createElement("div");return bi(t,e.htmlAttr),t.setAttribute("tabindex","-1"),t.setAttribute("title",e.name),t.classList.add("treeselect-list__item"),t.addEventListener("mouseover",()=>o(this,qe,ks).call(this,t),!0),t.addEventListener("mouseout",()=>o(this,$e,Es).call(this,t),!0),t.addEventListener("mousedown",s=>o(this,We,vs).call(this,s,e)),t},qe=new WeakSet,ks=function(e){n(this,B)&&o(this,J,_t).call(this,!0,e)},$e=new WeakSet,Es=function(e){n(this,B)&&(o(this,J,_t).call(this,!1,e),C(this,F,e))},We=new WeakSet,vs=function(e,t){var a;if(e.preventDefault(),e.stopPropagation(),(a=this.flattedOptions.find(d=>d.id===t.value))==null?void 0:a.disabled)return;const i=e.target.querySelector(".treeselect-list__item-checkbox");i.checked=!i.checked,o(this,Xe,As).call(this,i,t)},Re=new WeakSet,Ls=function(){const e=document.createElement("span");return e.setAttribute("tabindex","-1"),e.classList.add("treeselect-list__item-icon"),m(this.iconElements.arrowDown,e),e.addEventListener("mousedown",t=>o(this,Ue,ys).call(this,t)),e},Ue=new WeakSet,ys=function(e){e.preventDefault(),e.stopPropagation(),o(this,Je,Ts).call(this,e)},ze=new WeakSet,xs=function(e){const t=document.createElement("div");t.classList.add("treeselect-list__item-checkbox-container");const s=document.createElement("span");s.classList.add("treeselect-list__item-checkbox-icon"),s.innerHTML="";const i=document.createElement("input");return 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),t},Ye=new WeakSet,Ss=function(e,t){const s=document.createElement("label");if(s.textContent=e.name,s.classList.add("treeselect-list__item-label"),t&&this.showCount){const i=o(this,Ke,_s).call(this,e);s.appendChild(i)}return s},Ke=new WeakSet,_s=function(e){const t=document.createElement("span"),s=this.flattedOptions.filter(i=>i.childOf===e.value);return t.textContent=`(${s.length})`,t.classList.add("treeselect-list__item-label-counter"),t},Xe=new WeakSet,As=function(e,t){const s=this.flattedOptions.find(i=>i.id===t.value);if(s){if(s!=null&&s.isGroup&&this.disabledBranchNode){const i=fi(e);i==null||i.dispatchEvent(new Event("mousedown"));return}if(this.isSingleSelect){const[i]=n(this,_);if(s.id===i)return;C(this,_,[s.id]),Vt([s.id],this.flattedOptions,this.isSingleSelect,this.isIndependentNodes)}else{s.checked=e.checked;const i=wt(s,this.flattedOptions,this.isIndependentNodes);e.checked=i}he(this.flattedOptions,this.srcElement,this.iconElements,n(this,_)),o(this,Ze,Ns).call(this)}},Je=new WeakSet,Ts=function(e){var a,d;const t=(d=(a=e.target)==null?void 0:a.parentNode)==null?void 0:d.querySelector("[input-id]"),s=(t==null?void 0:t.getAttribute("input-id"))??null,i=$t(s,this.flattedOptions);i&&(i.isClosed=!i.isClosed,de(this.flattedOptions,i),he(this.flattedOptions,this.srcElement,this.iconElements,n(this,_)),this.arrowClickCallback())},J=new WeakSet,_t=function(e,t){const s="treeselect-list__item--focused";if(e){const i=Array.from(this.srcElement.querySelectorAll(`.${s}`));i.length&&i.forEach(a=>a.classList.remove(s)),t.classList.add(s)}else t.classList.remove(s)},Z=new WeakSet,At=function(){const{ungroupedNodes:e,groupedNodes:t,allNodes:s}=ei(this.flattedOptions);this.selectedNodes={nodes:e,groupedNodes:t,allNodes:s}},Ze=new WeakSet,Ns=function(){o(this,Z,At).call(this),this.inputCallback(this.selectedNodes),this.value=this.selectedNodes.nodes.map(e=>e.id)};const Wt=({parentHtmlContainer:l,staticList:e,appendToBody:t,isSingleSelect:s,value:i,direction:a})=>{l||console.error("Validation: parentHtmlContainer prop is required!"),e&&t&&console.error("Validation: You should set staticList to false if you use appendToBody!"),s&&Array.isArray(i)&&console.error("Validation: if you use isSingleSelect prop, you should pass a single value!"),!s&&!Array.isArray(i)&&console.error("Validation: you should pass an array as a value!"),a&&a!=="auto"&&a!=="bottom"&&a!=="top"&&console.error("Validation: you should pass (auto | top | bottom | undefined) as a value for the direction prop!")},ue=l=>l.map(e=>e.id),gi=l=>l?Array.isArray(l)?l:[l]:[],wi=(l,e)=>{if(e){const[t]=l;return t??null}return l};class ki{constructor({parentHtmlContainer:e,value:t,options:s,openLevel:i,appendToBody:a,alwaysOpen:d,showTags:b,tagsCountText:g,clearable:w,searchable:k,placeholder:E,grouped:v,isGroupedValue:L,listSlotHtmlComponent:N,disabled:D,emptyText:ae,staticList:ft,id:Et,ariaLabel:vt,isSingleSelect:bt,showCount:Ei,disabledBranchNode:vi,direction:Li,expandSelected:yi,saveScrollPosition:xi,isIndependentNodes:Si,iconElements:_i,inputCallback:Ai,openCallback:Ti,closeCallback:Ni,nameChangeCallback:Oi,searchCallback:Ii}){r(this,ee);r(this,te);r(this,Qe);r(this,et);r(this,tt);r(this,st);r(this,it);r(this,lt);r(this,se);r(this,nt);r(this,at);r(this,ot);r(this,rt);r(this,ie);r(this,ct);r(this,W);r(this,le);r(this,R);r(this,dt);r(this,ne);r(this,ht);r(this,ut);r(this,pt);r(this,mt);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,"iconElements");c(this,"inputCallback");c(this,"openCallback");c(this,"closeCallback");c(this,"nameChangeCallback");c(this,"searchCallback");c(this,"ungroupedValue");c(this,"groupedValue");c(this,"allValue");c(this,"isListOpened");c(this,"selectedName");c(this,"srcElement");r(this,h,null);r(this,p,null);r(this,q,null);r(this,Q,0);r(this,$,0);r(this,A,null);r(this,T,null);r(this,S,null);r(this,V,null);Wt({parentHtmlContainer:e,value:t,staticList:ft,appendToBody:a,isSingleSelect:bt}),this.parentHtmlContainer=e,this.value=[],this.options=s??[],this.openLevel=i??0,this.appendToBody=a??!1,this.alwaysOpen=!!(d&&!D),this.showTags=b??!0,this.tagsCountText=g??"elements selected",this.clearable=w??!0,this.searchable=k??!0,this.placeholder=E??"Search...",this.grouped=v??!0,this.isGroupedValue=L??!1,this.listSlotHtmlComponent=N??null,this.disabled=D??!1,this.emptyText=ae??"No results found...",this.staticList=!!(ft&&!this.appendToBody),this.id=Et??"",this.ariaLabel=vt??this.placeholder,this.isSingleSelect=bt??!1,this.showCount=Ei??!1,this.disabledBranchNode=vi??!1,this.direction=Li??"auto",this.expandSelected=yi??!1,this.saveScrollPosition=xi??!0,this.isIndependentNodes=Si??!1,this.iconElements=U(_i),this.inputCallback=Ai,this.openCallback=Ti,this.closeCallback=Ni,this.nameChangeCallback=Oi,this.searchCallback=Ii,this.ungroupedValue=[],this.groupedValue=[],this.allValue=[],this.isListOpened=!1,this.selectedName="",this.srcElement=null,o(this,ee,Tt).call(this,t)}mount(){Wt({parentHtmlContainer:this.parentHtmlContainer,value:this.value,staticList:this.staticList,appendToBody:this.appendToBody,isSingleSelect:this.isSingleSelect}),this.iconElements=U(this.iconElements),o(this,ee,Tt).call(this,this.value)}updateValue(e){const t=gi(e),s=n(this,h);s&&(s.updateValue(t),o(this,se,Ot).call(this,s==null?void 0:s.selectedNodes))}destroy(){this.srcElement&&(o(this,ie,It).call(this),this.srcElement.innerHTML="",this.srcElement=null,o(this,R,gt).call(this,!0))}focus(){n(this,p)&&n(this,p).focus()}toggleOpenClose(){n(this,p)&&(n(this,p).openClose(),n(this,p).focus())}scrollWindowHandler(){this.updateListPosition()}focusWindowHandler(e){var s,i,a;((s=this.srcElement)==null?void 0:s.contains(e.target))||((i=n(this,h))==null?void 0:i.srcElement.contains(e.target))||((a=n(this,p))==null||a.blur(),o(this,R,gt).call(this,!1),o(this,W,Ct).call(this,!1))}blurWindowHandler(){var e;(e=n(this,p))==null||e.blur(),o(this,R,gt).call(this,!1),o(this,W,Ct).call(this,!1)}updateListPosition(){var N;const e=this.srcElement,t=(N=n(this,h))==null?void 0:N.srcElement;if(!e||!t)return;const{height:s}=t.getBoundingClientRect(),{x:i,y:a,height:d,width:b}=e.getBoundingClientRect(),g=window.innerHeight,w=a,k=g-a-d;let E=w>k&&w>=s&&k<s;if(this.direction!=="auto"&&(E=this.direction==="top"),this.appendToBody){(t.style.top!=="0px"||t.style.left!=="0px")&&(t.style.top="0px",t.style.left="0px");const D=i+window.scrollX,ae=E?a+window.scrollY-s:a+window.scrollY+d;t.style.transform=`translate(${D}px,${ae}px)`,t.style.width=`${b}px`}const v=E?"top":"bottom";t.getAttribute("direction")!==v&&(t.setAttribute("direction",v),o(this,ct,js).call(this,E,this.appendToBody))}}return h=new WeakMap,p=new WeakMap,q=new WeakMap,Q=new WeakMap,$=new WeakMap,A=new WeakMap,T=new WeakMap,S=new WeakMap,V=new WeakMap,ee=new WeakSet,Tt=function(e){var a;this.destroy();const{container:t,list:s,input:i}=o(this,Qe,Os).call(this);this.srcElement=t,C(this,h,s),C(this,p,i),C(this,A,this.scrollWindowHandler.bind(this)),C(this,T,this.scrollWindowHandler.bind(this)),C(this,S,this.focusWindowHandler.bind(this)),C(this,V,this.blurWindowHandler.bind(this)),this.alwaysOpen&&((a=n(this,p))==null||a.openClose()),this.disabled?this.srcElement.classList.add("treeselect--disabled"):this.srcElement.classList.remove("treeselect--disabled"),this.updateValue(e??this.value)},te=new WeakSet,Nt=function({groupedNodes:e,nodes:t,allNodes:s}){this.ungroupedValue=t?ue(t):[],this.groupedValue=e?ue(e):[],this.allValue=s?ue(s):[];let i=[];this.isIndependentNodes||this.isSingleSelect?i=this.allValue:this.isGroupedValue?i=this.groupedValue:i=this.ungroupedValue,this.value=wi(i,this.isSingleSelect)},Qe=new WeakSet,Os=function(){const e=this.parentHtmlContainer;e.classList.add("treeselect");const t=new Ci({value:[],options:this.options,openLevel:this.openLevel,listSlotHtmlComponent:this.listSlotHtmlComponent,emptyText:this.emptyText,isSingleSelect:this.isSingleSelect,showCount:this.showCount,disabledBranchNode:this.disabledBranchNode,expandSelected:this.expandSelected,isIndependentNodes:this.isIndependentNodes,iconElements:this.iconElements,inputCallback:i=>o(this,nt,Hs).call(this,i),arrowClickCallback:()=>o(this,at,Gs).call(this),mouseupCallback:()=>{var i;return(i=n(this,p))==null?void 0:i.focus()}}),s=new Ys({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,et,Is).call(this,i),searchCallback:i=>o(this,st,Bs).call(this,i),openCallback:()=>o(this,rt,Fs).call(this),closeCallback:()=>o(this,ie,It).call(this),keydownCallback:i=>o(this,tt,Ps).call(this,i),focusCallback:()=>o(this,it,Vs).call(this),blurCallback:()=>o(this,lt,Ds).call(this),nameChangeCallback:i=>o(this,ot,Ms).call(this,i)});return this.appendToBody&&C(this,q,new ResizeObserver(()=>this.updateListPosition())),e.append(s.srcElement),{container:e,list:t,input:s}},et=new WeakSet,Is=function(e){var i,a;const t=ue(e);(i=n(this,h))==null||i.updateValue(t);const s=((a=n(this,h))==null?void 0:a.selectedNodes)??{};o(this,te,Nt).call(this,s),o(this,ne,Bt).call(this)},tt=new WeakSet,Ps=function(e){var t;this.isListOpened&&((t=n(this,h))==null||t.callKeyAction(e))},st=new WeakSet,Bs=function(e){n(this,$)&&clearTimeout(n(this,$)),C(this,$,window.setTimeout(()=>{var t;(t=n(this,h))==null||t.updateSearchValue(e),this.updateListPosition()},350)),o(this,mt,Us).call(this,e)},it=new WeakSet,Vs=function(){o(this,W,Ct).call(this,!0),n(this,S)&&n(this,S)&&n(this,V)&&(document.addEventListener("mousedown",n(this,S),!0),document.addEventListener("focus",n(this,S),!0),window.addEventListener("blur",n(this,V)))},lt=new WeakSet,Ds=function(){setTimeout(()=>{var s,i;const e=(s=n(this,p))==null?void 0:s.srcElement.contains(document.activeElement),t=(i=n(this,h))==null?void 0:i.srcElement.contains(document.activeElement);!e&&!t&&this.blurWindowHandler()},1)},se=new WeakSet,Ot=function(e){var s;if(!e)return;let t=[];this.isIndependentNodes||this.isSingleSelect?t=e.allNodes:this.grouped?t=e.groupedNodes:t=e.nodes,(s=n(this,p))==null||s.updateValue(t),o(this,te,Nt).call(this,e)},nt=new WeakSet,Hs=function(e){var t,s,i;o(this,se,Ot).call(this,e),this.isSingleSelect&&!this.alwaysOpen&&((t=n(this,p))==null||t.openClose(),(s=n(this,p))==null||s.clearSearch()),(i=n(this,p))==null||i.focus(),o(this,ne,Bt).call(this)},at=new WeakSet,Gs=function(){var e;(e=n(this,p))==null||e.focus(),this.updateListPosition()},ot=new WeakSet,Ms=function(e){this.selectedName!==e&&(this.selectedName=e,o(this,ht,$s).call(this))},rt=new WeakSet,Fs=function(){var e;this.isListOpened=!0,n(this,A)&&n(this,T)&&(window.addEventListener("scroll",n(this,A),!0),window.addEventListener("resize",n(this,T))),!(!n(this,h)||!this.srcElement)&&(this.appendToBody?(document.body.appendChild(n(this,h).srcElement),(e=n(this,q))==null||e.observe(this.srcElement)):this.srcElement.appendChild(n(this,h).srcElement),this.updateListPosition(),o(this,le,Pt).call(this,!0),o(this,dt,qs).call(this),o(this,ut,Ws).call(this))},ie=new WeakSet,It=function(){var t;this.alwaysOpen||(this.isListOpened=!1,n(this,A)&&n(this,T)&&(window.removeEventListener("scroll",n(this,A),!0),window.removeEventListener("resize",n(this,T))),!n(this,h)||!this.srcElement)||!(this.appendToBody?document.body.contains(n(this,h).srcElement):this.srcElement.contains(n(this,h).srcElement))||(C(this,Q,n(this,h).srcElement.scrollTop),this.appendToBody?(document.body.removeChild(n(this,h).srcElement),(t=n(this,q))==null||t.disconnect()):this.srcElement.removeChild(n(this,h).srcElement),o(this,le,Pt).call(this,!1),o(this,pt,Rs).call(this))},ct=new WeakSet,js=function(e,t){if(!n(this,h)||!n(this,p))return;const s=t?"treeselect-list--top-to-body":"treeselect-list--top",i=t?"treeselect-list--bottom-to-body":"treeselect-list--bottom";e?(n(this,h).srcElement.classList.add(s),n(this,h).srcElement.classList.remove(i),n(this,p).srcElement.classList.add("treeselect-input--top"),n(this,p).srcElement.classList.remove("treeselect-input--bottom")):(n(this,h).srcElement.classList.remove(s),n(this,h).srcElement.classList.add(i),n(this,p).srcElement.classList.remove("treeselect-input--top"),n(this,p).srcElement.classList.add("treeselect-input--bottom"))},W=new WeakSet,Ct=function(e){!n(this,p)||!n(this,h)||(e?(n(this,p).srcElement.classList.add("treeselect-input--focused"),n(this,h).srcElement.classList.add("treeselect-list--focused")):(n(this,p).srcElement.classList.remove("treeselect-input--focused"),n(this,h).srcElement.classList.remove("treeselect-list--focused")))},le=new WeakSet,Pt=function(e){var t,s,i,a;e?(t=n(this,p))==null||t.srcElement.classList.add("treeselect-input--opened"):(s=n(this,p))==null||s.srcElement.classList.remove("treeselect-input--opened"),this.staticList?(i=n(this,h))==null||i.srcElement.classList.add("treeselect-list--static"):(a=n(this,h))==null||a.srcElement.classList.remove("treeselect-list--static")},R=new WeakSet,gt=function(e){!n(this,A)||!n(this,T)||!n(this,S)||!n(this,V)||((!this.alwaysOpen||e)&&(window.removeEventListener("scroll",n(this,A),!0),window.removeEventListener("resize",n(this,T))),document.removeEventListener("mousedown",n(this,S),!0),document.removeEventListener("focus",n(this,S),!0),window.removeEventListener("blur",n(this,V)))},dt=new WeakSet,qs=function(){var t,s,i;const e=(t=n(this,h))==null?void 0:t.isLastFocusedElementExist();this.saveScrollPosition&&e?(s=n(this,h))==null||s.srcElement.scroll(0,n(this,Q)):(i=n(this,h))==null||i.focusFirstListElement()},ne=new WeakSet,Bt=function(){var e;(e=this.srcElement)==null||e.dispatchEvent(new CustomEvent("input",{detail:this.value})),this.inputCallback&&this.inputCallback(this.value)},ht=new WeakSet,$s=function(){var e;(e=this.srcElement)==null||e.dispatchEvent(new CustomEvent("name-change",{detail:this.selectedName})),this.nameChangeCallback&&this.nameChangeCallback(this.selectedName)},ut=new WeakSet,Ws=function(){var e;this.alwaysOpen||((e=this.srcElement)==null||e.dispatchEvent(new CustomEvent("open",{detail:this.value})),this.openCallback&&this.openCallback(this.value))},pt=new WeakSet,Rs=function(){var e;this.alwaysOpen||((e=this.srcElement)==null||e.dispatchEvent(new CustomEvent("close",{detail:this.value})),this.closeCallback&&this.closeCallback(this.value))},mt=new WeakSet,Us=function(e){var s;const t=(e==null?void 0:e.trim())??"";(s=this.srcElement)==null||s.dispatchEvent(new CustomEvent("search",{detail:t})),this.searchCallback&&this.searchCallback(t)},ki});
1
+ (function(f,u){typeof exports=="object"&&typeof module<"u"?module.exports=u():typeof define=="function"&&define.amd?define(u):(f=typeof globalThis<"u"?globalThis:f||self,f.Treeselect=u())})(this,function(){var I,y,H,x,pe,Rt,G,oe,me,Ut,fe,zt,M,re,P,j,be,Yt,Ce,Kt,ge,Xt,we,Jt,ke,Zt,Ee,Qt,ve,es,Le,ts,ye,ss,xe,is,Se,ls,_e,ns,Ae,as,Te,os,Ne,rs,Oe,cs,z,yt,F,B,_,Y,Ie,ds,Pe,hs,Be,us,Ve,ps,De,ms,He,fs,K,xt,Ge,bs,Me,Cs,Fe,gs,X,St,je,ws,qe,ks,$e,Es,We,vs,Re,Ls,Ue,ys,ze,xs,Ye,Ss,Ke,_s,Xe,As,Je,Ts,J,_t,Z,At,Ze,Ns,h,p,q,Q,$,A,T,S,V,ee,Tt,te,Nt,Qe,Os,et,Is,tt,Ps,st,Bs,it,Vs,lt,Ds,se,Ot,nt,Hs,at,Gs,ot,Ms,rt,Fs,ie,It,ct,js,W,Ct,le,Pt,R,gt,dt,qs,ne,Bt,ht,$s,ut,Ws,pt,Rs,mt,Us;"use strict";var Pi=Object.defineProperty;var Bi=(f,u,m)=>u in f?Pi(f,u,{enumerable:!0,configurable:!0,writable:!0,value:m}):f[u]=m;var c=(f,u,m)=>(Bi(f,typeof u!="symbol"?u+"":u,m),m),Lt=(f,u,m)=>{if(!u.has(f))throw TypeError("Cannot "+m)};var n=(f,u,m)=>(Lt(f,u,"read from private field"),m?m.call(f):u.get(f)),r=(f,u,m)=>{if(u.has(f))throw TypeError("Cannot add the same private member more than once");u instanceof WeakSet?u.add(f):u.set(f,m)},C=(f,u,m,U)=>(Lt(f,u,"write to private field"),U?U.call(f,m):u.set(f,m),m);var o=(f,u,m)=>(Lt(f,u,"access private method"),m);const f="",u={arrowUp:'<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 25 25" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 15l-6-6-6 6"/></svg>',arrowDown:'<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 25 25" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 9l6 6 6-6"/></svg>',arrowRight:'<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 25 25" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 18l6-6-6-6"/></svg>',attention:'<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 25 25" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>',clear:'<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 25 25" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>',cross:'<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 25 25" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>',check:'<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 25 25" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>',partialCheck:'<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 25 25" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line></svg>'},m=(l,e)=>{if(e.innerHTML="",typeof l=="string")e.innerHTML=l;else{const t=l.cloneNode(!0);e.appendChild(t)}},U=l=>{const e=l?{...l}:{};return Object.keys(u).forEach(t=>{e[t]||(e[t]=u[t])}),e},zs=l=>l.reduce((e,{name:t},s)=>(e+=t,s<l.length-1&&(e+=", "),e),"");class Ys{constructor({value:e,showTags:t,tagsCountText:s,clearable:i,isAlwaysOpened:a,searchable:d,placeholder:b,disabled:g,isSingleSelect:w,id:k,ariaLabel:E,iconElements:v,inputCallback:L,searchCallback:N,openCallback:D,closeCallback:ae,keydownCallback:ft,focusCallback:Et,blurCallback:vt,nameChangeCallback:bt}){r(this,pe);r(this,G);r(this,me);r(this,fe);r(this,M);r(this,P);r(this,be);r(this,Ce);r(this,ge);r(this,we);r(this,ke);r(this,Ee);r(this,ve);r(this,Le);r(this,ye);r(this,xe);r(this,Se);r(this,_e);r(this,Ae);r(this,Te);r(this,Ne);r(this,Oe);r(this,z);c(this,"value");c(this,"showTags");c(this,"tagsCountText");c(this,"clearable");c(this,"isAlwaysOpened");c(this,"searchable");c(this,"placeholder");c(this,"disabled");c(this,"isSingleSelect");c(this,"id");c(this,"ariaLabel");c(this,"iconElements");c(this,"isOpened");c(this,"searchText");c(this,"srcElement");r(this,I,void 0);r(this,y,void 0);r(this,H,void 0);r(this,x,void 0);c(this,"inputCallback");c(this,"searchCallback");c(this,"openCallback");c(this,"closeCallback");c(this,"keydownCallback");c(this,"focusCallback");c(this,"blurCallback");c(this,"nameChangeCallback");this.value=e,this.showTags=t,this.tagsCountText=s,this.searchable=d,this.placeholder=b,this.clearable=i,this.isAlwaysOpened=a,this.disabled=g,this.isSingleSelect=w,this.id=k,this.ariaLabel=E,this.iconElements=v,this.isOpened=!1,this.searchText="",C(this,I,o(this,ge,Xt).call(this)),C(this,y,o(this,ye,ss).call(this)),C(this,H,o(this,_e,ns).call(this)),C(this,x,null),this.inputCallback=L,this.searchCallback=N,this.openCallback=D,this.closeCallback=ae,this.keydownCallback=ft,this.focusCallback=Et,this.blurCallback=vt,this.nameChangeCallback=bt,this.srcElement=o(this,be,Yt).call(this,n(this,I),n(this,y),n(this,H)),o(this,pe,Rt).call(this)}focus(){setTimeout(()=>n(this,y).focus(),0)}blur(){this.isOpened&&o(this,P,j).call(this),this.clearSearch(),n(this,y).blur()}updateValue(e){this.value=e,o(this,G,oe).call(this),o(this,M,re).call(this)}removeItem(e){this.value=this.value.filter(t=>t.id!==e),o(this,z,yt).call(this),o(this,G,oe).call(this),o(this,M,re).call(this)}clear(){this.value=[],o(this,z,yt).call(this),o(this,G,oe).call(this),this.clearSearch()}openClose(){o(this,P,j).call(this)}clearSearch(){this.searchText="",this.searchCallback(""),o(this,M,re).call(this)}}I=new WeakMap,y=new WeakMap,H=new WeakMap,x=new WeakMap,pe=new WeakSet,Rt=function(){o(this,G,oe).call(this),o(this,M,re).call(this),o(this,me,Ut).call(this)},G=new WeakSet,oe=function(){if(n(this,I).innerHTML="",this.showTags){n(this,I).append(...o(this,we,Jt).call(this));const e=zs(this.value);this.nameChangeCallback(e)}else{const e=o(this,Le,ts).call(this);n(this,I).appendChild(e),this.nameChangeCallback(e.innerText)}n(this,I).appendChild(n(this,y))},me=new WeakSet,Ut=function(){const e=[];n(this,H).innerHTML="",this.clearable&&e.push(o(this,Ae,as).call(this)),this.isAlwaysOpened||e.push(o(this,Ne,rs).call(this,this.isOpened)),e.length&&n(this,H).append(...e)},fe=new WeakSet,zt=function(){if(!this.isAlwaysOpened&&n(this,x)){const e=this.isOpened?this.iconElements.arrowUp:this.iconElements.arrowDown;m(e,n(this,x))}},M=new WeakSet,re=function(){var e;(e=this.value)!=null&&e.length?(n(this,y).removeAttribute("placeholder"),this.srcElement.classList.remove("treeselect-input--value-not-selected")):(n(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"),n(this,y).value=this.searchText},P=new WeakSet,j=function(){this.isOpened=!this.isOpened,o(this,fe,zt).call(this),this.isOpened?this.openCallback():this.closeCallback()},be=new WeakSet,Yt=function(e,t,s){const i=document.createElement("div");return i.classList.add("treeselect-input"),i.setAttribute("tabindex","-1"),i.addEventListener("mousedown",a=>o(this,Ce,Kt).call(this,a)),i.addEventListener("focus",()=>this.focusCallback(),!0),i.addEventListener("blur",()=>this.blurCallback(),!0),e.appendChild(t),i.append(e,s),i},Ce=new WeakSet,Kt=function(e){e.stopPropagation(),this.isOpened||o(this,P,j).call(this),this.focus()},ge=new WeakSet,Xt=function(){const e=document.createElement("div");return e.classList.add("treeselect-input__tags"),e},we=new WeakSet,Jt=function(){return this.value.map(e=>{const 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);const s=o(this,Ee,Qt).call(this,e.name),i=o(this,ve,es).call(this);return t.addEventListener("mousedown",a=>o(this,ke,Zt).call(this,a,e.id)),t.append(s,i),t})},ke=new WeakSet,Zt=function(e,t){e.preventDefault(),e.stopPropagation(),this.removeItem(t),this.focus()},Ee=new WeakSet,Qt=function(e){const t=document.createElement("span");return t.classList.add("treeselect-input__tags-name"),t.textContent=e,t},ve=new WeakSet,es=function(){const e=document.createElement("span");return e.classList.add("treeselect-input__tags-cross"),m(this.iconElements.cross,e),e},Le=new WeakSet,ts=function(){const e=document.createElement("span");if(e.classList.add("treeselect-input__tags-count"),!this.value.length)return e.textContent="",e.setAttribute("title",""),e;const t=this.value.length===1?this.value[0].name:`${this.value.length} ${this.tagsCountText}`;return e.textContent=t,e.setAttribute("title",t),e},ye=new WeakSet,ss=function(){const 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,xe,is).call(this,t)),e.addEventListener("input",t=>o(this,Se,ls).call(this,t,e)),e},xe=new WeakSet,is=function(e){e.stopPropagation();const 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,P,j).call(this),(t==="Enter"||t==="ArrowDown"||t==="ArrowUp")&&e.preventDefault(),this.keydownCallback(e),t!=="Tab"&&this.focus()},Se=new WeakSet,ls=function(e,t){e.stopPropagation();const s=this.searchText,i=t.value.trim();if(s.length===0&&i.length===0){t.value="";return}if(this.searchable){const a=e.target.value;this.searchCallback(a),this.isOpened||o(this,P,j).call(this)}else t.value="";this.searchText=t.value},_e=new WeakSet,ns=function(){const e=document.createElement("div");return e.classList.add("treeselect-input__operators"),e},Ae=new WeakSet,as=function(){const e=document.createElement("span");return e.classList.add("treeselect-input__clear"),e.setAttribute("tabindex","-1"),m(this.iconElements.clear,e),e.addEventListener("mousedown",t=>o(this,Te,os).call(this,t)),e},Te=new WeakSet,os=function(e){e.preventDefault(),e.stopPropagation(),(this.searchText.length||this.value.length)&&this.clear(),this.focus()},Ne=new WeakSet,rs=function(e){C(this,x,document.createElement("span")),n(this,x).classList.add("treeselect-input__arrow");const t=e?this.iconElements.arrowUp:this.iconElements.arrowDown;return m(t,n(this,x)),n(this,x).addEventListener("mousedown",s=>o(this,Oe,cs).call(this,s)),n(this,x)},Oe=new WeakSet,cs=function(e){e.stopPropagation(),e.preventDefault(),this.focus(),o(this,P,j).call(this)},z=new WeakSet,yt=function(){this.inputCallback(this.value)};const Vt=(l,e,t,s)=>{Zs(e);const i=e.filter(a=>!a.disabled&&l.some(d=>d===a.id));if(t&&i.length){i[0].checked=!0;return}i.forEach(a=>{a.checked=!0;const d=wt(a,e,s);a.checked=d})},wt=({id:l,checked:e},t,s)=>{const i=t.find(d=>d.id===l);if(!i)return!1;if(s)return i.checked=i.disabled?!1:!!e,i.checked;const a=Dt(!!e,i,t);return Ht(i,t),a},Dt=(l,e,t)=>{if(!e.isGroup)return e.checked=e.disabled?!1:!!l,e.isPartialChecked=!1,e.checked;const s=t.filter(b=>b.childOf===e.id);return!l||e.disabled||e.isPartialChecked?(e.checked=!1,e.isPartialChecked=!1,kt(e,s,t),e.checked):Gt(s,t)?Mt(s)?(e.checked=!1,e.isPartialChecked=!1,e.disabled=!0,e.checked):(e.checked=!1,e.isPartialChecked=!0,s.forEach(b=>{Dt(l,b,t)}),e.checked):(e.checked=!0,e.isPartialChecked=!1,kt(e,s,t),e.checked)},Ht=(l,e)=>{const t=e.find(s=>s.id===l.childOf);t&&(Ks(t,e),Ht(t,e))},Ks=(l,e)=>{const t=ce(l,e);if(Mt(t)){l.checked=!1,l.isPartialChecked=!1,l.disabled=!0;return}if(Xs(t)){l.checked=!0,l.isPartialChecked=!1;return}if(Js(t)){l.checked=!1,l.isPartialChecked=!0;return}l.checked=!1,l.isPartialChecked=!1},kt=({checked:l,disabled:e},t,s)=>{t.forEach(i=>{i.disabled=!!e||!!i.disabled,i.checked=!!l&&!i.disabled,i.isPartialChecked=!1;const a=ce(i,s);kt({checked:l,disabled:e},a,s)})},Gt=(l,e)=>l.some(i=>i.disabled)?!0:l.some(i=>{if(i.isGroup){const a=ce(i,e);return Gt(a,e)}return!1}),Mt=l=>l.every(e=>!!e.disabled),Xs=l=>l.every(e=>!!e.checked),Js=l=>l.some(e=>!!e.checked||!!e.isPartialChecked),Zs=l=>{l.forEach(e=>{e.checked=!1,e.isPartialChecked=!1})},Qs=(l,e,t)=>{const s={level:0,groupId:""},i=Ft(l,e,s.groupId,s.level);return ti(i,t)},Ft=(l,e,t,s)=>l.reduce((i,a)=>{var w;const d=!!((w=a.children)!=null&&w.length),b=s>=e&&d,g=s>e;if(i.push({id:a.value,name:a.name,childOf:t,isGroup:d,checked:!1,isPartialChecked:!1,level:s,isClosed:b,hidden:g,disabled:a.disabled??!1}),d){const k=Ft(a.children,e,a.value,s+1);i.push(...k)}return i},[]),ce=({id:l},e)=>e.filter(t=>t.childOf===l),ei=l=>{const{ungroupedNodes:e,allGroupedNodes:t,allNodes:s}=l.reduce((a,d)=>(d.checked&&(a.allNodes.push(d),d.isGroup?a.allGroupedNodes.push(d):a.ungroupedNodes.push(d)),a),{ungroupedNodes:[],allGroupedNodes:[],allNodes:[]}),i=s.filter(a=>!t.some(({id:d})=>d===a.childOf));return{ungroupedNodes:e,groupedNodes:i,allNodes:s}},ti=(l,e)=>(l.filter(s=>!!s.disabled).forEach(({id:s})=>wt({id:s,checked:!1},l,e)),l),de=(l,{id:e,isClosed:t})=>{ce({id:e},l).forEach(i=>{i.hidden=t??!1,i.isGroup&&!i.isClosed&&de(l,{id:i.id,isClosed:t})})},si=l=>{l.filter(e=>e.isGroup&&!e.disabled&&(e.checked||e.isPartialChecked)).forEach(e=>{e.isClosed=!1,de(l,e)})},ii=(l,e)=>{const t=li(l,e);l.forEach(s=>{t.some(({id:a})=>a===s.id)?(s.isGroup&&(s.isClosed=!1,de(l,s)),s.hidden=!1):s.hidden=!0})},li=(l,e)=>l.reduce((t,s)=>{if(s.name.toLowerCase().includes(e.toLowerCase())){if(t.push(s),s.isGroup){const a=jt(s.id,l);t.push(...a)}if(s.childOf){const a=qt(s.childOf,l);t.push(...a)}}return t},[]),jt=(l,e)=>e.reduce((t,s)=>(s.childOf===l&&(t.push(s),s.isGroup&&t.push(...jt(s.id,e))),t),[]),qt=(l,e)=>e.reduce((t,s)=>(s.id===l&&(t.push(s),s.childOf&&t.push(...qt(s.childOf,e))),t),[]),ni=l=>{const{duplications:e}=l.reduce((t,s)=>(t.allItems.some(i=>i.toString()===s.id.toString())&&t.duplications.push(s.id),t.allItems.push(s.id),t),{duplications:[],allItems:[]});e.length&&console.error(`Validation: You have duplicated values: ${e.join(", ")}! You should use unique values.`)},ai=(l,e,t,s,i,a,d,b,g)=>{Vt(l,e,i,g),b&&d&&si(e),he(e,t,s,a)},he=(l,e,t,s)=>{l.forEach(i=>{const a=e.querySelector(`[input-id="${i.id}"]`),d=O(a);a.checked=i.checked,oi(i,d,s),ri(i,d),ci(i,d),di(i,d,t),hi(i,d),pi(i,d,l),ui(i,a,t)}),mi(l,e)},oi=(l,e,t)=>{l.checked?e.classList.add("treeselect-list__item--checked"):e.classList.remove("treeselect-list__item--checked"),Array.isArray(t)&&t[0]===l.id&&!l.disabled?e.classList.add("treeselect-list__item--single-selected"):e.classList.remove("treeselect-list__item--single-selected")},ri=(l,e)=>{l.isPartialChecked?e.classList.add("treeselect-list__item--partial-checked"):e.classList.remove("treeselect-list__item--partial-checked")},ci=(l,e)=>{l.disabled?e.classList.add("treeselect-list__item--disabled"):e.classList.remove("treeselect-list__item--disabled")},di=(l,e,t)=>{if(l.isGroup){const s=e.querySelector(".treeselect-list__item-icon"),i=l.isClosed?t.arrowRight:t.arrowDown;m(i,s),l.isClosed?e.classList.add("treeselect-list__item--closed"):e.classList.remove("treeselect-list__item--closed")}},hi=(l,e)=>{l.hidden?e.classList.add("treeselect-list__item--hidden"):e.classList.remove("treeselect-list__item--hidden")},ui=(l,e,t)=>{const i=e.parentNode.querySelector(".treeselect-list__item-checkbox-icon");l.checked?m(t.check,i):l.isPartialChecked?m(t.partialCheck,i):i.innerHTML=""},pi=(l,e,t)=>{const s=l.level===0,i=20,a=5;if(s){const d=t.some(g=>g.isGroup&&g.level===l.level),b=!l.isGroup&&d?`${i}px`:`${a}px`;e.style.paddingLeft=l.isGroup?"0":b}else e.style.paddingLeft=l.isGroup?`${l.level*i}px`:`${l.level*i+i}px`;e.setAttribute("level",l.level.toString()),e.setAttribute("group",l.isGroup.toString())},mi=(l,e)=>{const t=l.some(i=>!i.hidden),s=e.querySelector(".treeselect-list__empty");t?s.classList.add("treeselect-list__empty--hidden"):s.classList.remove("treeselect-list__empty--hidden")},O=l=>l.parentNode.parentNode,$t=(l,e)=>e.find(t=>t.id.toString()===l),fi=l=>O(l).querySelector(".treeselect-list__item-icon"),bi=(l,e)=>{e&&Object.keys(e).forEach(t=>{const s=e[t];typeof s=="string"&&l.setAttribute(t,s)})};class Ci{constructor({options:e,value:t,openLevel:s,listSlotHtmlComponent:i,emptyText:a,isSingleSelect:d,iconElements:b,showCount:g,disabledBranchNode:w,expandSelected:k,isIndependentNodes:E,inputCallback:v,arrowClickCallback:L,mouseupCallback:N}){r(this,Ie);r(this,Pe);r(this,Be);r(this,Ve);r(this,De);r(this,He);r(this,K);r(this,Ge);r(this,Me);r(this,Fe);r(this,X);r(this,je);r(this,qe);r(this,$e);r(this,We);r(this,Re);r(this,Ue);r(this,ze);r(this,Ye);r(this,Ke);r(this,Xe);r(this,Je);r(this,J);r(this,Z);r(this,Ze);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,"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");r(this,F,null);r(this,B,!0);r(this,_,[]);r(this,Y,!0);this.options=e,this.value=t,this.openLevel=s??0,this.listSlotHtmlComponent=i??null,this.emptyText=a??"No results found...",this.isSingleSelect=d??!1,this.showCount=g??!1,this.disabledBranchNode=w??!1,this.expandSelected=k??!1,this.isIndependentNodes=E??!1,this.iconElements=b,this.searchText="",this.flattedOptions=Qs(this.options,this.openLevel,this.isIndependentNodes),this.flattedOptionsBeforeSearch=this.flattedOptions,this.selectedNodes={nodes:[],groupedNodes:[],allNodes:[]},this.srcElement=o(this,Be,us).call(this),this.inputCallback=v,this.arrowClickCallback=L,this.mouseupCallback=N,ni(this.flattedOptions)}updateValue(e){this.value=e,C(this,_,this.isSingleSelect?this.value:[]),ai(e,this.flattedOptions,this.srcElement,this.iconElements,this.isSingleSelect,n(this,_),this.expandSelected,n(this,Y),this.isIndependentNodes),C(this,Y,!1),o(this,Z,At).call(this)}updateSearchValue(e){if(e===this.searchText)return;const t=this.searchText===""&&e!=="";this.searchText=e,t&&(this.flattedOptionsBeforeSearch=JSON.parse(JSON.stringify(this.flattedOptions))),this.searchText===""&&(this.flattedOptions=this.flattedOptionsBeforeSearch.map(s=>{const i=this.flattedOptions.find(a=>a.id===s.id);return i.isClosed=s.isClosed,i.hidden=s.hidden,i}),this.flattedOptionsBeforeSearch=[]),this.searchText&&ii(this.flattedOptions,e),he(this.flattedOptions,this.srcElement,this.iconElements,n(this,_)),this.focusFirstListElement()}callKeyAction(e){C(this,B,!1);const t=this.srcElement.querySelector(".treeselect-list__item--focused");if(t==null?void 0:t.classList.contains("treeselect-list__item--hidden"))return;const i=e.key;i==="Enter"&&t&&t.dispatchEvent(new Event("mousedown")),(i==="ArrowLeft"||i==="ArrowRight")&&o(this,Ie,ds).call(this,t,e),(i==="ArrowDown"||i==="ArrowUp")&&o(this,Pe,hs).call(this,t,i)}focusFirstListElement(){const e="treeselect-list__item--focused",t=this.srcElement.querySelector(`.${e}`),s=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter(a=>window.getComputedStyle(O(a)).display!=="none");if(!s.length)return;t&&t.classList.remove(e),O(s[0]).classList.add(e)}isLastFocusedElementExist(){return!!n(this,F)}}F=new WeakMap,B=new WeakMap,_=new WeakMap,Y=new WeakMap,Ie=new WeakSet,ds=function(e,t){if(!e)return;const s=t.key,a=e.querySelector(".treeselect-list__item-checkbox").getAttribute("input-id"),d=$t(a,this.flattedOptions),b=e.querySelector(".treeselect-list__item-icon");s==="ArrowLeft"&&!d.isClosed&&d.isGroup&&(b.dispatchEvent(new Event("mousedown")),t.preventDefault()),s==="ArrowRight"&&d.isClosed&&d.isGroup&&(b.dispatchEvent(new Event("mousedown")),t.preventDefault())},Pe=new WeakSet,hs=function(e,t){var i;const s=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter(a=>window.getComputedStyle(O(a)).display!=="none");if(s.length)if(!e)O(s[0]).classList.add("treeselect-list__item--focused");else{const a=s.findIndex(D=>O(D).classList.contains("treeselect-list__item--focused"));O(s[a]).classList.remove("treeselect-list__item--focused");const b=t==="ArrowDown"?a+1:a-1,g=t==="ArrowDown"?0:s.length-1,w=s[b]??s[g],k=!s[b],E=O(w);E.classList.add("treeselect-list__item--focused");const v=this.srcElement.getBoundingClientRect(),L=E.getBoundingClientRect();if(k&&t==="ArrowDown"){this.srcElement.scroll(0,0);return}if(k&&t==="ArrowUp"){this.srcElement.scroll(0,this.srcElement.scrollHeight);return}const N=((i=this.listSlotHtmlComponent)==null?void 0:i.clientHeight)??0;if(v.y+v.height<L.y+L.height+N){this.srcElement.scroll(0,this.srcElement.scrollTop+L.height);return}if(v.y>L.y){this.srcElement.scroll(0,this.srcElement.scrollTop-L.height);return}}},Be=new WeakSet,us=function(){const e=o(this,Ve,ps).call(this),t=o(this,K,xt).call(this,this.options);e.append(...t);const s=o(this,Me,Cs).call(this);e.append(s);const i=o(this,Ge,bs).call(this);return i&&e.append(i),e},Ve=new WeakSet,ps=function(){const e=document.createElement("div");return e.classList.add("treeselect-list"),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,De,ms).call(this,t)),e.addEventListener("mousemove",()=>o(this,He,fs).call(this)),e.addEventListener("mouseup",()=>this.mouseupCallback(),!0),e},De=new WeakSet,ms=function(e){e.stopPropagation(),n(this,F)&&n(this,B)&&n(this,F).classList.add("treeselect-list__item--focused")},He=new WeakSet,fs=function(){C(this,B,!0)},K=new WeakSet,xt=function(e){return e.reduce((t,s)=>{var a;if((a=s.children)!=null&&a.length){const d=o(this,Fe,gs).call(this,s),b=o(this,K,xt).call(this,s.children);return d.append(...b),t.push(d),t}const i=o(this,X,St).call(this,s,!1);return t.push(i),t},[])},Ge=new WeakSet,bs=function(){if(!this.listSlotHtmlComponent)return null;const e=document.createElement("div");return e.classList.add("treeselect-list__slot"),e.appendChild(this.listSlotHtmlComponent),e},Me=new WeakSet,Cs=function(){const e=document.createElement("div");e.classList.add("treeselect-list__empty"),e.setAttribute("title",this.emptyText);const t=document.createElement("span");t.classList.add("treeselect-list__empty-icon"),m(this.iconElements.attention,t);const s=document.createElement("span");return s.classList.add("treeselect-list__empty-text"),s.textContent=this.emptyText,e.append(t,s),e},Fe=new WeakSet,gs=function(e){const t=document.createElement("div");t.setAttribute("group-container-id",e.value.toString()),t.classList.add("treeselect-list__group-container");const s=o(this,X,St).call(this,e,!0);return t.appendChild(s),t},X=new WeakSet,St=function(e,t){const s=o(this,je,ws).call(this,e);if(t){const d=o(this,Re,Ls).call(this);s.appendChild(d),s.classList.add("treeselect-list__item--group")}const i=o(this,ze,xs).call(this,e),a=o(this,Ye,Ss).call(this,e,t);return s.append(i,a),s},je=new WeakSet,ws=function(e){const t=document.createElement("div");return bi(t,e.htmlAttr),t.setAttribute("tabindex","-1"),t.setAttribute("title",e.name),t.classList.add("treeselect-list__item"),t.addEventListener("mouseover",()=>o(this,qe,ks).call(this,t),!0),t.addEventListener("mouseout",()=>o(this,$e,Es).call(this,t),!0),t.addEventListener("mousedown",s=>o(this,We,vs).call(this,s,e)),t},qe=new WeakSet,ks=function(e){n(this,B)&&o(this,J,_t).call(this,!0,e)},$e=new WeakSet,Es=function(e){n(this,B)&&(o(this,J,_t).call(this,!1,e),C(this,F,e))},We=new WeakSet,vs=function(e,t){var a;if(e.preventDefault(),e.stopPropagation(),(a=this.flattedOptions.find(d=>d.id===t.value))==null?void 0:a.disabled)return;const i=e.target.querySelector(".treeselect-list__item-checkbox");i.checked=!i.checked,o(this,Xe,As).call(this,i,t)},Re=new WeakSet,Ls=function(){const e=document.createElement("span");return e.setAttribute("tabindex","-1"),e.classList.add("treeselect-list__item-icon"),m(this.iconElements.arrowDown,e),e.addEventListener("mousedown",t=>o(this,Ue,ys).call(this,t)),e},Ue=new WeakSet,ys=function(e){e.preventDefault(),e.stopPropagation(),o(this,Je,Ts).call(this,e)},ze=new WeakSet,xs=function(e){const t=document.createElement("div");t.classList.add("treeselect-list__item-checkbox-container");const s=document.createElement("span");s.classList.add("treeselect-list__item-checkbox-icon"),s.innerHTML="";const i=document.createElement("input");return 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),t},Ye=new WeakSet,Ss=function(e,t){const s=document.createElement("label");if(s.textContent=e.name,s.classList.add("treeselect-list__item-label"),t&&this.showCount){const i=o(this,Ke,_s).call(this,e);s.appendChild(i)}return s},Ke=new WeakSet,_s=function(e){const t=document.createElement("span"),s=this.flattedOptions.filter(i=>i.childOf===e.value);return t.textContent=`(${s.length})`,t.classList.add("treeselect-list__item-label-counter"),t},Xe=new WeakSet,As=function(e,t){const s=this.flattedOptions.find(i=>i.id===t.value);if(s){if(s!=null&&s.isGroup&&this.disabledBranchNode){const i=fi(e);i==null||i.dispatchEvent(new Event("mousedown"));return}if(this.isSingleSelect){const[i]=n(this,_);if(s.id===i)return;C(this,_,[s.id]),Vt([s.id],this.flattedOptions,this.isSingleSelect,this.isIndependentNodes)}else{s.checked=e.checked;const i=wt(s,this.flattedOptions,this.isIndependentNodes);e.checked=i}he(this.flattedOptions,this.srcElement,this.iconElements,n(this,_)),o(this,Ze,Ns).call(this)}},Je=new WeakSet,Ts=function(e){var a,d;const t=(d=(a=e.target)==null?void 0:a.parentNode)==null?void 0:d.querySelector("[input-id]"),s=(t==null?void 0:t.getAttribute("input-id"))??null,i=$t(s,this.flattedOptions);i&&(i.isClosed=!i.isClosed,de(this.flattedOptions,i),he(this.flattedOptions,this.srcElement,this.iconElements,n(this,_)),this.arrowClickCallback())},J=new WeakSet,_t=function(e,t){const s="treeselect-list__item--focused";if(e){const i=Array.from(this.srcElement.querySelectorAll(`.${s}`));i.length&&i.forEach(a=>a.classList.remove(s)),t.classList.add(s)}else t.classList.remove(s)},Z=new WeakSet,At=function(){const{ungroupedNodes:e,groupedNodes:t,allNodes:s}=ei(this.flattedOptions);this.selectedNodes={nodes:e,groupedNodes:t,allNodes:s}},Ze=new WeakSet,Ns=function(){o(this,Z,At).call(this),this.inputCallback(this.selectedNodes),this.value=this.selectedNodes.nodes.map(e=>e.id)};const Wt=({parentHtmlContainer:l,staticList:e,appendToBody:t,isSingleSelect:s,value:i,direction:a})=>{l||console.error("Validation: parentHtmlContainer prop is required!"),e&&t&&console.error("Validation: You should set staticList to false if you use appendToBody!"),s&&Array.isArray(i)&&console.error("Validation: if you use isSingleSelect prop, you should pass a single value!"),!s&&!Array.isArray(i)&&console.error("Validation: you should pass an array as a value!"),a&&a!=="auto"&&a!=="bottom"&&a!=="top"&&console.error("Validation: you should pass (auto | top | bottom | undefined) as a value for the direction prop!")},ue=l=>l.map(e=>e.id),gi=l=>l?Array.isArray(l)?l:[l]:[],wi=(l,e)=>{if(e){const[t]=l;return t??null}return l};class ki{constructor({parentHtmlContainer:e,value:t,options:s,openLevel:i,appendToBody:a,alwaysOpen:d,showTags:b,tagsCountText:g,clearable:w,searchable:k,placeholder:E,grouped:v,isGroupedValue:L,listSlotHtmlComponent:N,disabled:D,emptyText:ae,staticList:ft,id:Et,ariaLabel:vt,isSingleSelect:bt,showCount:Ei,disabledBranchNode:vi,direction:Li,expandSelected:yi,saveScrollPosition:xi,isIndependentNodes:Si,iconElements:_i,inputCallback:Ai,openCallback:Ti,closeCallback:Ni,nameChangeCallback:Oi,searchCallback:Ii}){r(this,ee);r(this,te);r(this,Qe);r(this,et);r(this,tt);r(this,st);r(this,it);r(this,lt);r(this,se);r(this,nt);r(this,at);r(this,ot);r(this,rt);r(this,ie);r(this,ct);r(this,W);r(this,le);r(this,R);r(this,dt);r(this,ne);r(this,ht);r(this,ut);r(this,pt);r(this,mt);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,"iconElements");c(this,"inputCallback");c(this,"openCallback");c(this,"closeCallback");c(this,"nameChangeCallback");c(this,"searchCallback");c(this,"ungroupedValue");c(this,"groupedValue");c(this,"allValue");c(this,"isListOpened");c(this,"selectedName");c(this,"srcElement");r(this,h,null);r(this,p,null);r(this,q,null);r(this,Q,0);r(this,$,0);r(this,A,null);r(this,T,null);r(this,S,null);r(this,V,null);Wt({parentHtmlContainer:e,value:t,staticList:ft,appendToBody:a,isSingleSelect:bt}),this.parentHtmlContainer=e,this.value=[],this.options=s??[],this.openLevel=i??0,this.appendToBody=a??!1,this.alwaysOpen=!!(d&&!D),this.showTags=b??!0,this.tagsCountText=g??"elements selected",this.clearable=w??!0,this.searchable=k??!0,this.placeholder=E??"Search...",this.grouped=v??!0,this.isGroupedValue=L??!1,this.listSlotHtmlComponent=N??null,this.disabled=D??!1,this.emptyText=ae??"No results found...",this.staticList=!!(ft&&!this.appendToBody),this.id=Et??"",this.ariaLabel=vt??"",this.isSingleSelect=bt??!1,this.showCount=Ei??!1,this.disabledBranchNode=vi??!1,this.direction=Li??"auto",this.expandSelected=yi??!1,this.saveScrollPosition=xi??!0,this.isIndependentNodes=Si??!1,this.iconElements=U(_i),this.inputCallback=Ai,this.openCallback=Ti,this.closeCallback=Ni,this.nameChangeCallback=Oi,this.searchCallback=Ii,this.ungroupedValue=[],this.groupedValue=[],this.allValue=[],this.isListOpened=!1,this.selectedName="",this.srcElement=null,o(this,ee,Tt).call(this,t)}mount(){Wt({parentHtmlContainer:this.parentHtmlContainer,value:this.value,staticList:this.staticList,appendToBody:this.appendToBody,isSingleSelect:this.isSingleSelect}),this.iconElements=U(this.iconElements),o(this,ee,Tt).call(this,this.value)}updateValue(e){const t=gi(e),s=n(this,h);s&&(s.updateValue(t),o(this,se,Ot).call(this,s==null?void 0:s.selectedNodes))}destroy(){this.srcElement&&(o(this,ie,It).call(this),this.srcElement.innerHTML="",this.srcElement=null,o(this,R,gt).call(this,!0))}focus(){n(this,p)&&n(this,p).focus()}toggleOpenClose(){n(this,p)&&(n(this,p).openClose(),n(this,p).focus())}scrollWindowHandler(){this.updateListPosition()}focusWindowHandler(e){var s,i,a;((s=this.srcElement)==null?void 0:s.contains(e.target))||((i=n(this,h))==null?void 0:i.srcElement.contains(e.target))||((a=n(this,p))==null||a.blur(),o(this,R,gt).call(this,!1),o(this,W,Ct).call(this,!1))}blurWindowHandler(){var e;(e=n(this,p))==null||e.blur(),o(this,R,gt).call(this,!1),o(this,W,Ct).call(this,!1)}updateListPosition(){var N;const e=this.srcElement,t=(N=n(this,h))==null?void 0:N.srcElement;if(!e||!t)return;const{height:s}=t.getBoundingClientRect(),{x:i,y:a,height:d,width:b}=e.getBoundingClientRect(),g=window.innerHeight,w=a,k=g-a-d;let E=w>k&&w>=s&&k<s;if(this.direction!=="auto"&&(E=this.direction==="top"),this.appendToBody){(t.style.top!=="0px"||t.style.left!=="0px")&&(t.style.top="0px",t.style.left="0px");const D=i+window.scrollX,ae=E?a+window.scrollY-s:a+window.scrollY+d;t.style.transform=`translate(${D}px,${ae}px)`,t.style.width=`${b}px`}const v=E?"top":"bottom";t.getAttribute("direction")!==v&&(t.setAttribute("direction",v),o(this,ct,js).call(this,E,this.appendToBody))}}return h=new WeakMap,p=new WeakMap,q=new WeakMap,Q=new WeakMap,$=new WeakMap,A=new WeakMap,T=new WeakMap,S=new WeakMap,V=new WeakMap,ee=new WeakSet,Tt=function(e){var a;this.destroy();const{container:t,list:s,input:i}=o(this,Qe,Os).call(this);this.srcElement=t,C(this,h,s),C(this,p,i),C(this,A,this.scrollWindowHandler.bind(this)),C(this,T,this.scrollWindowHandler.bind(this)),C(this,S,this.focusWindowHandler.bind(this)),C(this,V,this.blurWindowHandler.bind(this)),this.alwaysOpen&&((a=n(this,p))==null||a.openClose()),this.disabled?this.srcElement.classList.add("treeselect--disabled"):this.srcElement.classList.remove("treeselect--disabled"),this.updateValue(e??this.value)},te=new WeakSet,Nt=function({groupedNodes:e,nodes:t,allNodes:s}){this.ungroupedValue=t?ue(t):[],this.groupedValue=e?ue(e):[],this.allValue=s?ue(s):[];let i=[];this.isIndependentNodes||this.isSingleSelect?i=this.allValue:this.isGroupedValue?i=this.groupedValue:i=this.ungroupedValue,this.value=wi(i,this.isSingleSelect)},Qe=new WeakSet,Os=function(){const e=this.parentHtmlContainer;e.classList.add("treeselect");const t=new Ci({value:[],options:this.options,openLevel:this.openLevel,listSlotHtmlComponent:this.listSlotHtmlComponent,emptyText:this.emptyText,isSingleSelect:this.isSingleSelect,showCount:this.showCount,disabledBranchNode:this.disabledBranchNode,expandSelected:this.expandSelected,isIndependentNodes:this.isIndependentNodes,iconElements:this.iconElements,inputCallback:i=>o(this,nt,Hs).call(this,i),arrowClickCallback:()=>o(this,at,Gs).call(this),mouseupCallback:()=>{var i;return(i=n(this,p))==null?void 0:i.focus()}}),s=new Ys({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,et,Is).call(this,i),searchCallback:i=>o(this,st,Bs).call(this,i),openCallback:()=>o(this,rt,Fs).call(this),closeCallback:()=>o(this,ie,It).call(this),keydownCallback:i=>o(this,tt,Ps).call(this,i),focusCallback:()=>o(this,it,Vs).call(this),blurCallback:()=>o(this,lt,Ds).call(this),nameChangeCallback:i=>o(this,ot,Ms).call(this,i)});return this.appendToBody&&C(this,q,new ResizeObserver(()=>this.updateListPosition())),e.append(s.srcElement),{container:e,list:t,input:s}},et=new WeakSet,Is=function(e){var i,a;const t=ue(e);(i=n(this,h))==null||i.updateValue(t);const s=((a=n(this,h))==null?void 0:a.selectedNodes)??{};o(this,te,Nt).call(this,s),o(this,ne,Bt).call(this)},tt=new WeakSet,Ps=function(e){var t;this.isListOpened&&((t=n(this,h))==null||t.callKeyAction(e))},st=new WeakSet,Bs=function(e){n(this,$)&&clearTimeout(n(this,$)),C(this,$,window.setTimeout(()=>{var t;(t=n(this,h))==null||t.updateSearchValue(e),this.updateListPosition()},350)),o(this,mt,Us).call(this,e)},it=new WeakSet,Vs=function(){o(this,W,Ct).call(this,!0),n(this,S)&&n(this,S)&&n(this,V)&&(document.addEventListener("mousedown",n(this,S),!0),document.addEventListener("focus",n(this,S),!0),window.addEventListener("blur",n(this,V)))},lt=new WeakSet,Ds=function(){setTimeout(()=>{var s,i;const e=(s=n(this,p))==null?void 0:s.srcElement.contains(document.activeElement),t=(i=n(this,h))==null?void 0:i.srcElement.contains(document.activeElement);!e&&!t&&this.blurWindowHandler()},1)},se=new WeakSet,Ot=function(e){var s;if(!e)return;let t=[];this.isIndependentNodes||this.isSingleSelect?t=e.allNodes:this.grouped?t=e.groupedNodes:t=e.nodes,(s=n(this,p))==null||s.updateValue(t),o(this,te,Nt).call(this,e)},nt=new WeakSet,Hs=function(e){var t,s,i;o(this,se,Ot).call(this,e),this.isSingleSelect&&!this.alwaysOpen&&((t=n(this,p))==null||t.openClose(),(s=n(this,p))==null||s.clearSearch()),(i=n(this,p))==null||i.focus(),o(this,ne,Bt).call(this)},at=new WeakSet,Gs=function(){var e;(e=n(this,p))==null||e.focus(),this.updateListPosition()},ot=new WeakSet,Ms=function(e){this.selectedName!==e&&(this.selectedName=e,o(this,ht,$s).call(this))},rt=new WeakSet,Fs=function(){var e;this.isListOpened=!0,n(this,A)&&n(this,T)&&(window.addEventListener("scroll",n(this,A),!0),window.addEventListener("resize",n(this,T))),!(!n(this,h)||!this.srcElement)&&(this.appendToBody?(document.body.appendChild(n(this,h).srcElement),(e=n(this,q))==null||e.observe(this.srcElement)):this.srcElement.appendChild(n(this,h).srcElement),this.updateListPosition(),o(this,le,Pt).call(this,!0),o(this,dt,qs).call(this),o(this,ut,Ws).call(this))},ie=new WeakSet,It=function(){var t;this.alwaysOpen||(this.isListOpened=!1,n(this,A)&&n(this,T)&&(window.removeEventListener("scroll",n(this,A),!0),window.removeEventListener("resize",n(this,T))),!n(this,h)||!this.srcElement)||!(this.appendToBody?document.body.contains(n(this,h).srcElement):this.srcElement.contains(n(this,h).srcElement))||(C(this,Q,n(this,h).srcElement.scrollTop),this.appendToBody?(document.body.removeChild(n(this,h).srcElement),(t=n(this,q))==null||t.disconnect()):this.srcElement.removeChild(n(this,h).srcElement),o(this,le,Pt).call(this,!1),o(this,pt,Rs).call(this))},ct=new WeakSet,js=function(e,t){if(!n(this,h)||!n(this,p))return;const s=t?"treeselect-list--top-to-body":"treeselect-list--top",i=t?"treeselect-list--bottom-to-body":"treeselect-list--bottom";e?(n(this,h).srcElement.classList.add(s),n(this,h).srcElement.classList.remove(i),n(this,p).srcElement.classList.add("treeselect-input--top"),n(this,p).srcElement.classList.remove("treeselect-input--bottom")):(n(this,h).srcElement.classList.remove(s),n(this,h).srcElement.classList.add(i),n(this,p).srcElement.classList.remove("treeselect-input--top"),n(this,p).srcElement.classList.add("treeselect-input--bottom"))},W=new WeakSet,Ct=function(e){!n(this,p)||!n(this,h)||(e?(n(this,p).srcElement.classList.add("treeselect-input--focused"),n(this,h).srcElement.classList.add("treeselect-list--focused")):(n(this,p).srcElement.classList.remove("treeselect-input--focused"),n(this,h).srcElement.classList.remove("treeselect-list--focused")))},le=new WeakSet,Pt=function(e){var t,s,i,a;e?(t=n(this,p))==null||t.srcElement.classList.add("treeselect-input--opened"):(s=n(this,p))==null||s.srcElement.classList.remove("treeselect-input--opened"),this.staticList?(i=n(this,h))==null||i.srcElement.classList.add("treeselect-list--static"):(a=n(this,h))==null||a.srcElement.classList.remove("treeselect-list--static")},R=new WeakSet,gt=function(e){!n(this,A)||!n(this,T)||!n(this,S)||!n(this,V)||((!this.alwaysOpen||e)&&(window.removeEventListener("scroll",n(this,A),!0),window.removeEventListener("resize",n(this,T))),document.removeEventListener("mousedown",n(this,S),!0),document.removeEventListener("focus",n(this,S),!0),window.removeEventListener("blur",n(this,V)))},dt=new WeakSet,qs=function(){var t,s,i;const e=(t=n(this,h))==null?void 0:t.isLastFocusedElementExist();this.saveScrollPosition&&e?(s=n(this,h))==null||s.srcElement.scroll(0,n(this,Q)):(i=n(this,h))==null||i.focusFirstListElement()},ne=new WeakSet,Bt=function(){var e;(e=this.srcElement)==null||e.dispatchEvent(new CustomEvent("input",{detail:this.value})),this.inputCallback&&this.inputCallback(this.value)},ht=new WeakSet,$s=function(){var e;(e=this.srcElement)==null||e.dispatchEvent(new CustomEvent("name-change",{detail:this.selectedName})),this.nameChangeCallback&&this.nameChangeCallback(this.selectedName)},ut=new WeakSet,Ws=function(){var e;this.alwaysOpen||((e=this.srcElement)==null||e.dispatchEvent(new CustomEvent("open",{detail:this.value})),this.openCallback&&this.openCallback(this.value))},pt=new WeakSet,Rs=function(){var e;this.alwaysOpen||((e=this.srcElement)==null||e.dispatchEvent(new CustomEvent("close",{detail:this.value})),this.closeCallback&&this.closeCallback(this.value))},mt=new WeakSet,Us=function(e){var s;const t=(e==null?void 0:e.trim())??"";(s=this.srcElement)==null||s.dispatchEvent(new CustomEvent("search",{detail:t})),this.searchCallback&&this.searchCallback(t)},ki});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "treeselectjs",
3
- "version": "0.9.1",
3
+ "version": "0.9.2",
4
4
  "description": "Treeselect JS",
5
5
  "main": "./dist/treeselectjs.umd.js",
6
6
  "module": "./dist/treeselectjs.mjs",