treeselectjs 0.4.2 → 0.4.3
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/dist/treeselectjs.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function t(t,e,s,i){Object.defineProperty(t,e,{get:s,set:i,enumerable:!0,configurable:!0})}t(module.exports,"Treeselect",(function(){return ae}),(function(t){return ae=t}));var e={};t(e,"TreeselectInput",(function(){return M}),(function(t){return M=t}));const s={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>'},i=(t,e)=>{if(e.innerHTML="","string"==typeof t)e.innerHTML=t;else{const s=t.cloneNode(!0);e.appendChild(s)}},l=t=>{const e=t?Object.assign({},t):{};return Object.keys(s).forEach((t=>{e[t]||(e[t]=s[t])})),e};var n,o,a,c,r,h,d,u,p,m,f,v,w,g,E,b,k,y,L,C,_,x,T,S,O,A,B,H,P=function(t,e,s,i){if("a"===s&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?i:"a"===s?i.call(t):i?i.value:e.get(t)},N=function(t,e,s,i,l){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!l)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!l:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?l.call(t,s):l?l.value=s:e.set(t,s),s};class M{focus(){setTimeout((()=>P(this,a,"f").focus()),0)}blur(){this.isOpened&&P(this,n,"m",f).call(this),this.clearSearch(),P(this,a,"f").blur()}updateValue(t){this.value=t,P(this,n,"m",d).call(this),P(this,n,"m",m).call(this)}removeItem(t){this.value=this.value.filter((e=>e.id!==t)),P(this,n,"m",H).call(this),P(this,n,"m",d).call(this),P(this,n,"m",m).call(this)}clear(){this.value=[],P(this,n,"m",H).call(this),P(this,n,"m",d).call(this),this.clearSearch()}openClose(){P(this,n,"m",f).call(this)}clearSearch(){this.searchText="",this.searchCallback(""),P(this,n,"m",m).call(this)}constructor({value:t,showTags:e,tagsCountText:s,clearable:i,isAlwaysOpened:l,searchable:d,placeholder:u,disabled:p,id:m,iconElements:f,inputCallback:w,searchCallback:E,openCallback:b,closeCallback:k,keydownCallback:y,focusCallback:L}){n.add(this),o.set(this,void 0),a.set(this,void 0),c.set(this,void 0),r.set(this,void 0),this.value=t,this.showTags=e,this.tagsCountText=s,this.searchable=d,this.placeholder=u,this.clearable=i,this.isAlwaysOpened=l,this.disabled=p,this.id=m,this.iconElements=f,this.isOpened=!1,this.searchText="",N(this,o,P(this,n,"m",g).call(this),"f"),N(this,a,P(this,n,"m",C).call(this),"f"),N(this,c,P(this,n,"m",T).call(this),"f"),N(this,r,null,"f"),this.inputCallback=w,this.searchCallback=E,this.openCallback=b,this.closeCallback=k,this.keydownCallback=y,this.focusCallback=L,this.srcElement=P(this,n,"m",v).call(this,P(this,o,"f"),P(this,a,"f"),P(this,c,"f")),P(this,n,"m",h).call(this)}}o=new WeakMap,a=new WeakMap,c=new WeakMap,r=new WeakMap,n=new WeakSet,h=function(){P(this,n,"m",d).call(this),P(this,n,"m",m).call(this),P(this,n,"m",u).call(this)},d=function(){P(this,o,"f").innerHTML="",this.showTags?P(this,o,"f").append(...P(this,n,"m",E).call(this)):P(this,o,"f").appendChild(P(this,n,"m",L).call(this)),P(this,o,"f").appendChild(P(this,a,"f"))},u=function(){const t=[];P(this,c,"f").innerHTML="",this.clearable&&t.push(P(this,n,"m",S).call(this)),this.isAlwaysOpened||t.push(P(this,n,"m",A).call(this,this.isOpened)),t.length&&P(this,c,"f").append(...t)},p=function(){if(!this.isAlwaysOpened&&P(this,r,"f")){const t=this.isOpened?this.iconElements.arrowUp:this.iconElements.arrowDown;i(t,P(this,r,"f"))}},m=function(){var t;(null===(t=this.value)||void 0===t?void 0:t.length)?(P(this,a,"f").removeAttribute("placeholder"),this.srcElement.classList.remove("treeselect-input--value-not-selected")):(P(this,a,"f").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"),P(this,a,"f").value=this.searchText},f=function(){this.isOpened=!this.isOpened,P(this,n,"m",p).call(this),this.isOpened?this.openCallback():this.closeCallback()},v=function(t,e,s){const i=document.createElement("div");return i.classList.add("treeselect-input"),i.setAttribute("tabindex","-1"),i.addEventListener("mousedown",(t=>P(this,n,"m",w).call(this,t))),i.addEventListener("focus",(()=>this.focusCallback()),!0),t.appendChild(e),i.append(t,s),i},w=function(t){t.preventDefault(),t.stopPropagation(),this.isOpened||P(this,n,"m",f).call(this),this.focus()},g=function(){const t=document.createElement("div");return t.classList.add("treeselect-input__tags"),t},E=function(){return this.value.map((t=>{const 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);const s=P(this,n,"m",k).call(this,t.name),i=P(this,n,"m",y).call(this);return e.addEventListener("mousedown",(e=>P(this,n,"m",b).call(this,e,t.id))),e.append(s,i),e}))},b=function(t,e){t.preventDefault(),t.stopPropagation(),this.removeItem(e),this.focus()},k=function(t){const e=document.createElement("span");return e.classList.add("treeselect-input__tags-name"),e.innerHTML=t,e},y=function(){const t=document.createElement("span");return t.classList.add("treeselect-input__tags-cross"),i(this.iconElements.cross,t),t},L=function(){const t=document.createElement("span");if(t.classList.add("treeselect-input__tags-count"),!this.value.length)return t.innerHTML="",t.setAttribute("title",""),t;const e=1===this.value.length?this.value[0].name:`${this.value.length} ${this.tagsCountText}`;return t.innerHTML=e,t.setAttribute("title",e),t},C=function(){const t=document.createElement("input");return t.classList.add("treeselect-input__edit"),t.setAttribute("id",this.id),this.disabled&&t.setAttribute("tabindex","-1"),t.addEventListener("keydown",(t=>P(this,n,"m",_).call(this,t))),t.addEventListener("input",(e=>P(this,n,"m",x).call(this,e,t))),t},_=function(t){t.stopPropagation(),"Backspace"!==t.key||this.searchText.length||!this.value.length||this.showTags||this.clear(),"Backspace"===t.key&&!this.searchText.length&&this.value.length&&this.removeItem(this.value[this.value.length-1].id),"Space"!==t.code||this.searchText&&this.searchable||P(this,n,"m",f).call(this),"Enter"===t.key&&t.preventDefault(),this.keydownCallback(t.key),"Tab"!==t.key&&this.focus()},x=function(t,e){t.stopPropagation();const s=this.searchText,i=e.value.trim();if(0!==s.length||0!==i.length){if(this.searchable){const e=t.target.value;this.searchCallback(e),this.isOpened||P(this,n,"m",f).call(this)}else e.value="";this.searchText=e.value}else e.value=""},T=function(){const t=document.createElement("div");return t.classList.add("treeselect-input__operators"),t},S=function(){const t=document.createElement("span");return t.classList.add("treeselect-input__clear"),t.setAttribute("tabindex","-1"),i(this.iconElements.clear,t),t.addEventListener("mousedown",(t=>P(this,n,"m",O).call(this,t))),t},O=function(t){t.preventDefault(),t.stopPropagation(),(this.searchText.length||this.value.length)&&this.clear(),this.focus()},A=function(t){N(this,r,document.createElement("span"),"f"),P(this,r,"f").classList.add("treeselect-input__arrow");const e=t?this.iconElements.arrowUp:this.iconElements.arrowDown;return i(e,P(this,r,"f")),P(this,r,"f").addEventListener("mousedown",(t=>P(this,n,"m",B).call(this,t))),P(this,r,"f")},B=function(t){t.stopPropagation(),t.preventDefault(),this.focus(),P(this,n,"m",f).call(this)},H=function(){this.inputCallback(this.value)};var G={};t(G,"TreeselectList",(function(){return Nt}),(function(t){return Nt=t}));const W=(t,e,s="",i=0)=>t.reduce(((t,l)=>{var n;const o=!!(null===(n=l.children)||void 0===n?void 0:n.length),a=i>=e&&o,c=i>e;if(t.push({id:l.value,name:l.name,childOf:s,isGroup:o,checked:!1,isPartialChecked:!1,level:i,isClosed:a,hidden:c}),o){const s=W(l.children,e,l.value,i+1);t.push(...s)}return t}),[]),V=({id:t,checked:e},s)=>{s.forEach((i=>{i.childOf===t&&(i.checked=null==e||e,i.isPartialChecked=!1,i.isGroup&&V(i,s))}))},j=(t,e)=>{const s=e.find((e=>e.id===t)),i=e.filter((t=>t.childOf===(null==s?void 0:s.id)));if(!s)return;const l=i.every((t=>t.checked)),n=i.some((t=>t.isPartialChecked||t.checked))&&!l,o=!l&&!n;l&&(s.checked=!0,s.isPartialChecked=!1),n&&(s.checked=!1,s.isPartialChecked=!0),o&&(s.checked=!1,s.isPartialChecked=!1),s.childOf&&j(s.childOf,e)},q=({id:t,isGroup:e,childOf:s,checked:i},l)=>{e&&V({id:t,checked:i},l),s&&j(s,l)},D=(t,e)=>e.reduce(((s,i)=>(i.childOf===t&&(s.push(i),i.isGroup&&s.push(...D(i.id,e))),s)),[]),I=(t,e)=>e.reduce(((s,i)=>(i.id===t&&(s.push(i),i.childOf&&s.push(...I(i.childOf,e))),s)),[]),$=t=>{const{onlyGroupsIds:e,allItems:s}=t.reduce(((t,e)=>e.checked?(e.isGroup&&t.onlyGroupsIds.push(e.id),t.allItems.push(e),t):t),{onlyGroupsIds:[],allItems:[]});return s.filter((t=>!e.some((e=>e===t.childOf))))},R=(t,{id:e,isClosed:s})=>{t.filter((t=>t.childOf===e)).forEach((e=>{e.hidden=null!=s&&s,e.isGroup&&!e.isClosed&&R(t,{id:e.id,isClosed:s})}))},z=(t,e)=>{const s=((t,e)=>t.reduce(((s,i)=>{if(i.name.toLowerCase().includes(e.toLowerCase())){if(s.push(i),i.isGroup){const e=D(i.id,t);s.push(...e)}if(i.childOf){const e=I(i.childOf,t);s.push(...e)}}return s}),[]))(t,e);t.forEach((e=>{s.some((t=>t.id===e.id))?(e.isGroup&&(e.isClosed=!1,R(t,e)),e.hidden=!1):e.hidden=!0}))},U=(t,e)=>{(t=>{t.forEach((t=>{t.checked=!1,t.isPartialChecked=!1}))})(e);e.filter((e=>t.some((t=>t===e.id)))).forEach((t=>{t.checked=!0,t.isPartialChecked=!1,q(t,e)}))};var Y,F,J,K,X,Q,Z,tt,et,st,it,lt,nt,ot,at,ct,rt,ht,dt,ut,pt,mt,ft,vt,wt,gt,Et,bt,kt=function(t,e,s,i){if("a"===s&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?i:"a"===s?i.call(t):i?i.value:e.get(t)},yt=function(t,e,s,i,l){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!l)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!l:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?l.call(t,s):l?l.value=s:e.set(t,s),s};let Lt=[];const Ct=(t,e,s)=>{t.forEach((i=>{const l=e.querySelector(`[input-id="${i.id}"]`),n=Ht(l);l.checked=i.checked,_t(i,n),xt(i,n),Tt(i,n,s),St(i,n),At(i,n,t),Ot(i,l,s)})),Bt(t,e)},_t=(t,e)=>{t.checked?e.classList.add("treeselect-list__item--checked"):e.classList.remove("treeselect-list__item--checked"),Array.isArray(Lt)&&Lt[0]===t.id?e.classList.add("treeselect-list__item--single-selected"):e.classList.remove("treeselect-list__item--single-selected")},xt=(t,e)=>{t.isPartialChecked?e.classList.add("treeselect-list__item--partial-checked"):e.classList.remove("treeselect-list__item--partial-checked")},Tt=(t,e,s)=>{if(t.isGroup){const l=e.querySelector(".treeselect-list__item-icon"),n=t.isClosed?s.arrowRight:s.arrowDown;i(n,l),t.isClosed?e.classList.add("treeselect-list__item--closed"):e.classList.remove("treeselect-list__item--closed")}},St=(t,e)=>{t.hidden?e.classList.add("treeselect-list__item--hidden"):e.classList.remove("treeselect-list__item--hidden")},Ot=(t,e,s)=>{const l=e.parentNode.querySelector(".treeselect-list__item-checkbox-icon");t.checked?i(s.check,l):t.isPartialChecked?i(s.partialCheck,l):l.innerHTML=""},At=(t,e,s)=>{if(0===t.level){const i=s.some((e=>e.isGroup&&e.level===t.level)),l=!t.isGroup&&i?"20px":"5px";e.style.paddingLeft=t.isGroup?"0":l}else e.style.paddingLeft=t.isGroup?20*t.level+"px":20*t.level+20+"px";e.setAttribute("level",t.level.toString()),e.setAttribute("group",t.isGroup.toString())},Bt=(t,e)=>{const s=t.some((t=>!t.hidden)),i=e.querySelector(".treeselect-list__empty");s?i.classList.add("treeselect-list__empty--hidden"):i.classList.remove("treeselect-list__empty--hidden")},Ht=t=>t.parentNode.parentNode,Pt=(t,e)=>e.find((e=>e.id.toString()===t));class Nt{updateValue(t){var e,s,i,l;this.value=t,Lt=this.isSingleSelect?this.value:[],e=t,s=this.flattedOptions,i=this.srcElement,l=this.iconElements,U(e,s),Ct(s,i,l),kt(this,Y,"m",Et).call(this)}updateSearchValue(t){if(t===this.searchText)return;const e=""===this.searchText&&""!==t;this.searchText=t,e&&(this.flattedOptionsBeforeSearch=JSON.parse(JSON.stringify(this.flattedOptions))),""===this.searchText&&(this.flattedOptions=this.flattedOptionsBeforeSearch.map((t=>{const e=this.flattedOptions.find((e=>e.id===t.id));return e.isClosed=t.isClosed,e.hidden=t.hidden,e})),this.flattedOptionsBeforeSearch=[]),this.searchText&&z(this.flattedOptions,t),Ct(this.flattedOptions,this.srcElement,this.iconElements),this.focusFirstListElement()}callKeyAction(t){yt(this,J,!1,"f");const e=this.srcElement.querySelector(".treeselect-list__item--focused");"Enter"===t&&e&&e.dispatchEvent(new Event("mousedown")),"ArrowLeft"!==t&&"ArrowRight"!==t||kt(this,Y,"m",K).call(this,e,t),"ArrowDown"!==t&&"ArrowUp"!==t||kt(this,Y,"m",X).call(this,e,t)}focusFirstListElement(){const t="treeselect-list__item--focused",e=this.srcElement.querySelector(`.${t}`),s=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter((t=>"none"!==window.getComputedStyle(Ht(t)).display));if(!s.length)return;e&&e.classList.remove(t);Ht(s[0]).classList.add(t)}constructor({options:t,value:e,openLevel:s,listSlotHtmlComponent:i,emptyText:l,isSingleSelect:n,iconElements:o,showCount:a,disabledBranchNode:c,inputCallback:r,arrowClickCallback:h,mouseupCallback:d}){Y.add(this),F.set(this,null),J.set(this,!0),this.options=t,this.value=e,this.openLevel=null!=s?s:0,this.listSlotHtmlComponent=null!=i?i:null,this.emptyText=null!=l?l:"No results found...",this.isSingleSelect=null!=n&&n,this.showCount=null!=a&&a,this.disabledBranchNode=null!=c&&c,this.iconElements=o,this.searchText="",this.flattedOptions=W(this.options,this.openLevel),this.flattedOptionsBeforeSearch=this.flattedOptions,this.selectedNodes={nodes:[],groupedNodes:[]},this.srcElement=kt(this,Y,"m",Q).call(this),this.inputCallback=r,this.arrowClickCallback=h,this.mouseupCallback=d,this.updateValue(this.value),(t=>{const{duplications:e}=t.reduce(((t,e)=>(t.allItems.some((t=>t.toString()===e.id.toString()))&&t.duplications.push(e.id),t.allItems.push(e.id),t)),{duplications:[],allItems:[]});e.length&&console.error(`Validation: You have duplicated values: ${e.join(", ")}! You should use unique values.`)})(this.flattedOptions)}}F=new WeakMap,J=new WeakMap,Y=new WeakSet,K=function(t,e){if(!t)return;const s=t.querySelector(".treeselect-list__item-checkbox").getAttribute("input-id"),i=Pt(s,this.flattedOptions),l=t.querySelector(".treeselect-list__item-icon");"ArrowLeft"===e&&!i.isClosed&&i.isGroup&&l.dispatchEvent(new Event("mousedown")),"ArrowRight"===e&&i.isClosed&&i.isGroup&&l.dispatchEvent(new Event("mousedown"))},X=function(t,e){var s;const i=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter((t=>"none"!==window.getComputedStyle(Ht(t)).display));if(i.length)if(t){const t=i.findIndex((t=>Ht(t).classList.contains("treeselect-list__item--focused")));Ht(i[t]).classList.remove("treeselect-list__item--focused");const l="ArrowDown"===e?t+1:t-1,n="ArrowDown"===e?0:i.length-1,o=null!==(s=i[l])&&void 0!==s?s:i[n],a=!i[l],c=Ht(o);c.classList.add("treeselect-list__item--focused");const r=this.srcElement.getBoundingClientRect(),h=c.getBoundingClientRect();if(a&&"ArrowDown"===e)return void this.srcElement.scroll(0,0);if(a&&"ArrowUp"===e)return void this.srcElement.scroll(0,this.srcElement.scrollHeight);if(r.y+r.height<h.y+h.height)return void this.srcElement.scroll(0,this.srcElement.scrollTop+h.height);if(r.y>h.y)return void this.srcElement.scroll(0,this.srcElement.scrollTop-h.height)}else{Ht(i[0]).classList.add("treeselect-list__item--focused")}},Q=function(){const t=kt(this,Y,"m",Z).call(this),e=kt(this,Y,"m",st).call(this,this.options);t.append(...e);const s=kt(this,Y,"m",it).call(this);s&&t.append(s);const i=kt(this,Y,"m",lt).call(this);return t.append(i),t},Z=function(){const 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",(t=>kt(this,Y,"m",tt).call(this,t))),t.addEventListener("mousemove",(()=>kt(this,Y,"m",et).call(this))),t.addEventListener("mouseup",(()=>this.mouseupCallback()),!0),t},tt=function(t){t.stopPropagation(),kt(this,F,"f")&&kt(this,J,"f")&&kt(this,F,"f").classList.add("treeselect-list__item--focused")},et=function(){yt(this,J,!0,"f")},st=function t(e){return e.reduce(((e,s)=>{var i;if(null===(i=s.children)||void 0===i?void 0:i.length){const i=kt(this,Y,"m",nt).call(this,s),l=kt(this,Y,"m",t).call(this,s.children);return i.append(...l),e.push(i),e}const l=kt(this,Y,"m",ot).call(this,s,!1);return e.push(l),e}),[])},it=function(){if(!this.listSlotHtmlComponent)return null;const t=document.createElement("div");return t.classList.add("treeselect-list__slot"),t.appendChild(this.listSlotHtmlComponent),t},lt=function(){const t=document.createElement("div");t.classList.add("treeselect-list__empty"),t.setAttribute("title",this.emptyText);const e=document.createElement("span");e.classList.add("treeselect-list__empty-icon"),i(this.iconElements.attention,e);const s=document.createElement("span");return s.classList.add("treeselect-list__empty-text"),s.innerHTML=this.emptyText,t.append(e,s),t},nt=function(t){const e=document.createElement("div");e.setAttribute("group-container-id",t.value.toString()),e.classList.add("treeselect-list__group-container");const s=kt(this,Y,"m",ot).call(this,t,!0);return e.appendChild(s),e},ot=function(t,e){const s=kt(this,Y,"m",at).call(this,t);if(e){const t=kt(this,Y,"m",dt).call(this);s.appendChild(t),s.classList.add("treeselect-list__item--group")}const i=kt(this,Y,"m",pt).call(this,t),l=kt(this,Y,"m",mt).call(this,t,e);return s.append(i,l),s},at=function(t){const e=document.createElement("div");return e.setAttribute("tabindex","-1"),e.setAttribute("title",t.name),e.classList.add("treeselect-list__item"),e.addEventListener("mouseover",(()=>kt(this,Y,"m",ct).call(this,e)),!0),e.addEventListener("mouseout",(()=>kt(this,Y,"m",rt).call(this,e)),!0),e.addEventListener("mousedown",(e=>kt(this,Y,"m",ht).call(this,e,t))),e},ct=function(t){kt(this,J,"f")&&kt(this,Y,"m",gt).call(this,!0,t)},rt=function(t){kt(this,J,"f")&&(kt(this,Y,"m",gt).call(this,!1,t),yt(this,F,t,"f"))},ht=function(t,e){t.preventDefault(),t.stopPropagation();const s=t.target.querySelector(".treeselect-list__item-checkbox");s.checked=!s.checked,kt(this,Y,"m",vt).call(this,s,e)},dt=function(){const t=document.createElement("span");return t.setAttribute("tabindex","-1"),t.classList.add("treeselect-list__item-icon"),i(this.iconElements.arrowDown,t),t.addEventListener("mousedown",(t=>kt(this,Y,"m",ut).call(this,t))),t},ut=function(t){t.preventDefault(),t.stopPropagation(),kt(this,Y,"m",wt).call(this,t)},pt=function(t){const e=document.createElement("div");e.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",t.value.toString()),i.classList.add("treeselect-list__item-checkbox"),e.append(s,i),e},mt=function(t,e){const s=document.createElement("label");if(s.innerHTML=t.name,s.classList.add("treeselect-list__item-label"),e&&this.showCount){const e=kt(this,Y,"m",ft).call(this,t);s.appendChild(e)}return s},ft=function(t){const e=document.createElement("span"),s=this.flattedOptions.filter((e=>e.childOf===t.value));return e.innerHTML=`(${s.length})`,e.classList.add("treeselect-list__item-label-counter"),e},vt=function(t,e){const s=this.flattedOptions.find((t=>t.id===e.value));if(s)if((null==s?void 0:s.isGroup)&&this.disabledBranchNode){const e=Ht(t).querySelector(".treeselect-list__item-icon");null==e||e.dispatchEvent(new Event("mousedown"))}else{if(this.isSingleSelect){const[t]=Lt;if(s.id===t)return;Lt=[s.id],U([s.id],this.flattedOptions)}else s.checked=t.checked,s.isPartialChecked=!1,q(s,this.flattedOptions);Ct(this.flattedOptions,this.srcElement,this.iconElements),kt(this,Y,"m",bt).call(this)}},wt=function(t){var e,s,i;const l=null===(s=null===(e=t.target)||void 0===e?void 0:e.parentNode)||void 0===s?void 0:s.querySelector("[input-id]"),n=null!==(i=null==l?void 0:l.getAttribute("input-id"))&&void 0!==i?i:null,o=Pt(n,this.flattedOptions);o&&(o.isClosed=!o.isClosed,R(this.flattedOptions,o),Ct(this.flattedOptions,this.srcElement,this.iconElements),this.arrowClickCallback())},gt=function(t,e){const s="treeselect-list__item--focused";if(t){const t=Array.from(this.srcElement.querySelectorAll(`.${s}`));t.length&&t.forEach((t=>t.classList.remove(s))),e.classList.add(s)}else e.classList.remove(s)},Et=function(){var t;this.selectedNodes={nodes:(t=this.flattedOptions,t.filter((t=>t.checked&&!t.isGroup))),groupedNodes:$(this.flattedOptions)}},bt=function(){kt(this,Y,"m",Et).call(this),this.inputCallback(this.selectedNodes),this.value=this.selectedNodes.nodes.map((t=>t.id))};var Mt,Gt,Wt,Vt,jt,qt,Dt,It,$t,Rt,zt,Ut,Yt,Ft,Jt,Kt,Xt,Qt,Zt,te,ee,se,ie=function(t,e,s,i){if("a"===s&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?i:"a"===s?i.call(t):i?i.value:e.get(t)},le=function(t,e,s,i,l){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!l)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!l:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?l.call(t,s):l?l.value=s:e.set(t,s),s};const ne=t=>t.map((t=>t.id)),oe=t=>t?Array.isArray(t)?t:[t]:[];class ae{mount(){var t;this.destroy();const{container:e,list:s,input:i}=ie(this,Mt,"m",$t).call(this);this.srcElement=e,le(this,Gt,s,"f"),le(this,Wt,i,"f"),le(this,jt,this.scrollWindowHandler.bind(this),"f"),le(this,qt,this.scrollWindowHandler.bind(this),"f"),le(this,Dt,this.focusWindowHandler.bind(this),"f"),le(this,It,this.blurWindowHandler.bind(this),"f"),this.alwaysOpen&&(null===(t=ie(this,Wt,"f"))||void 0===t||t.openClose()),this.disabled&&this.srcElement.classList.add("treeselect--disabled")}updateValue(t){var e;const s=ie(this,Gt,"f");if(s){const i=oe(t);s.updateValue(i);const{groupedNodes:l,nodes:n}=s.selectedNodes,o=this.grouped?l:n;null===(e=ie(this,Wt,"f"))||void 0===e||e.updateValue(o)}}destroy(){this.srcElement&&(ie(this,Mt,"m",Xt).call(this),this.srcElement.innerHTML="",this.srcElement=null,ie(this,Mt,"m",ee).call(this,!0))}focus(){ie(this,Wt,"f")&&ie(this,Wt,"f").focus()}toggleOpenClose(){ie(this,Wt,"f")&&(ie(this,Wt,"f").openClose(),ie(this,Wt,"f").focus())}scrollWindowHandler(){this.updateListPosition()}focusWindowHandler(t){var e,s,i;(null===(e=this.srcElement)||void 0===e?void 0:e.contains(t.target))||(null===(s=ie(this,Gt,"f"))||void 0===s?void 0:s.srcElement.contains(t.target))||(null===(i=ie(this,Wt,"f"))||void 0===i||i.blur(),ie(this,Mt,"m",ee).call(this,!1),ie(this,Mt,"m",Zt).call(this,!1))}blurWindowHandler(){var t;null===(t=ie(this,Wt,"f"))||void 0===t||t.blur(),ie(this,Mt,"m",ee).call(this,!1),ie(this,Mt,"m",Zt).call(this,!1)}updateListPosition(){var t;const e=this.srcElement,s=null===(t=ie(this,Gt,"f"))||void 0===t?void 0:t.srcElement;if(!e||!s)return;s.style.transform="";const{y:i,height:l}=s.getBoundingClientRect(),{x:n,y:o,height:a,width:c}=e.getBoundingClientRect(),r=window.innerHeight-o-a,h=o>r&&o>=l&&r<l;this.appendToBody&&(s.style.transform=h?`translateY(${o-i-l}px)`:`translateY(${o+a-i}px)`,s.style.width=`${c}px`,s.style.left=`${n+window.scrollX}px`);const d=h?"top":"bottom";s.getAttribute("direction")!==d&&(s.setAttribute("direction",d),ie(this,Mt,"m",Qt).call(this,h,this.appendToBody))}constructor({parentHtmlContainer:t,value:e,options:s,openLevel:i,appendToBody:n,alwaysOpen:o,showTags:a,tagsCountText:c,clearable:r,searchable:h,placeholder:d,grouped:u,isGroupedValue:p,listSlotHtmlComponent:m,disabled:f,emptyText:v,staticList:w,id:g,isSingleSelect:E,showCount:b,disabledBranchNode:k,iconElements:y,inputCallback:L}){Mt.add(this),Gt.set(this,null),Wt.set(this,null),Vt.set(this,null),jt.set(this,null),qt.set(this,null),Dt.set(this,null),It.set(this,null),(({parentHtmlContainer:t,staticList:e,appendToBody:s,isSingleSelect:i,value:l})=>{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(l)&&console.error("Validation: if you use isSingleSelect prop, you should pass a single value!"),i||Array.isArray(l)||console.error("Validation: you should pass an array as a value!")})({parentHtmlContainer:t,value:e,staticList:w,appendToBody:n,isSingleSelect:E}),this.parentHtmlContainer=t,this.value=oe(e),this.options=null!=s?s:[],this.openLevel=null!=i?i:0,this.appendToBody=null==n||n,this.alwaysOpen=!(!o||f),this.showTags=null==a||a,this.tagsCountText=null!=c?c:"elements selected",this.clearable=null==r||r,this.searchable=null==h||h,this.placeholder=null!=d?d:"Search...",this.grouped=null==u||u,this.isGroupedValue=null!=p&&p,this.listSlotHtmlComponent=null!=m?m:null,this.disabled=null!=f&&f,this.emptyText=null!=v?v:"No results found...",this.staticList=!(!w||this.appendToBody),this.id=null!=g?g:"",this.isSingleSelect=null!=E&&E,this.showCount=null!=b&&b,this.disabledBranchNode=null!=k&&k,this.iconElements=l(y),this.inputCallback=L,this.groupedValue=[],this.isListOpened=!1,this.srcElement=null,this.mount()}}Gt=new WeakMap,Wt=new WeakMap,Vt=new WeakMap,jt=new WeakMap,qt=new WeakMap,Dt=new WeakMap,It=new WeakMap,Mt=new WeakSet,$t=function(){const t=this.parentHtmlContainer;t.classList.add("treeselect");const s=new(0,G.TreeselectList)({options:this.options,value:this.value,openLevel:this.openLevel,listSlotHtmlComponent:this.listSlotHtmlComponent,emptyText:this.emptyText,isSingleSelect:this.isSingleSelect,showCount:this.showCount,disabledBranchNode:this.disabledBranchNode,iconElements:this.iconElements,inputCallback:t=>ie(this,Mt,"m",Ft).call(this,t),arrowClickCallback:()=>ie(this,Mt,"m",Jt).call(this),mouseupCallback:()=>{var t;return null===(t=ie(this,Wt,"f"))||void 0===t?void 0:t.focus()}}),{groupedNodes:i,nodes:l}=s.selectedNodes,n=new(0,e.TreeselectInput)({value:this.grouped?i:l,showTags:this.showTags,tagsCountText:this.tagsCountText,clearable:this.clearable,isAlwaysOpened:this.alwaysOpen,searchable:this.searchable,placeholder:this.placeholder,disabled:this.disabled,id:this.id,iconElements:this.iconElements,inputCallback:t=>ie(this,Mt,"m",Rt).call(this,t),searchCallback:t=>ie(this,Mt,"m",Ut).call(this,t),openCallback:()=>ie(this,Mt,"m",Kt).call(this),closeCallback:()=>ie(this,Mt,"m",Xt).call(this),keydownCallback:t=>ie(this,Mt,"m",zt).call(this,t),focusCallback:()=>ie(this,Mt,"m",Yt).call(this)});return this.appendToBody&&le(this,Vt,new ResizeObserver((()=>this.updateListPosition())),"f"),t.append(n.srcElement),{container:t,list:s,input:n}},Rt=function(t){var e,s,i,l,n;const o=ne(t);null===(e=ie(this,Gt,"f"))||void 0===e||e.updateValue(o);const a=null===(i=null===(s=ie(this,Gt,"f"))||void 0===s?void 0:s.selectedNodes)||void 0===i?void 0:i.nodes,c=null===(n=null===(l=ie(this,Gt,"f"))||void 0===l?void 0:l.selectedNodes)||void 0===n?void 0:n.groupedNodes;this.value=a?ne(a):[],this.groupedValue=c?ne(c):[],ie(this,Mt,"m",se).call(this)},zt=function(t){var e;this.isListOpened&&(null===(e=ie(this,Gt,"f"))||void 0===e||e.callKeyAction(t))},Ut=function(t){var e;null===(e=ie(this,Gt,"f"))||void 0===e||e.updateSearchValue(t),this.updateListPosition()},Yt=function(){ie(this,Mt,"m",Zt).call(this,!0),ie(this,Dt,"f")&&ie(this,Dt,"f")&&ie(this,It,"f")&&(document.addEventListener("mousedown",ie(this,Dt,"f"),!0),document.addEventListener("focus",ie(this,Dt,"f"),!0),window.addEventListener("blur",ie(this,It,"f")))},Ft=function(t){var e,s,i;const{groupedNodes:l,nodes:n}=t,o=this.grouped?l:n;null===(e=ie(this,Wt,"f"))||void 0===e||e.updateValue(o),this.value=ne(n),this.groupedValue=ne(l),this.isSingleSelect&&!this.alwaysOpen&&(null===(s=ie(this,Wt,"f"))||void 0===s||s.openClose(),null===(i=ie(this,Wt,"f"))||void 0===i||i.clearSearch()),setTimeout((()=>{var t;null===(t=ie(this,Wt,"f"))||void 0===t||t.focus()}),0),ie(this,Mt,"m",se).call(this)},Jt=function(){var t;null===(t=ie(this,Wt,"f"))||void 0===t||t.focus(),this.updateListPosition()},Kt=function(){var t;this.isListOpened=!0,ie(this,jt,"f")&&ie(this,qt,"f")&&(window.addEventListener("scroll",ie(this,jt,"f"),!0),window.addEventListener("resize",ie(this,qt,"f"))),ie(this,Gt,"f")&&this.srcElement&&(this.appendToBody?(document.body.appendChild(ie(this,Gt,"f").srcElement),null===(t=ie(this,Vt,"f"))||void 0===t||t.observe(this.srcElement)):this.srcElement.appendChild(ie(this,Gt,"f").srcElement),this.updateListPosition(),ie(this,Mt,"m",te).call(this,!0),ie(this,Gt,"f").focusFirstListElement())},Xt=function(){var t;if(this.alwaysOpen)return;if(this.isListOpened=!1,ie(this,jt,"f")&&ie(this,qt,"f")&&(window.removeEventListener("scroll",ie(this,jt,"f"),!0),window.removeEventListener("resize",ie(this,qt,"f"))),!ie(this,Gt,"f")||!this.srcElement)return;(this.appendToBody?document.body.contains(ie(this,Gt,"f").srcElement):this.srcElement.contains(ie(this,Gt,"f").srcElement))&&(this.appendToBody?(document.body.removeChild(ie(this,Gt,"f").srcElement),null===(t=ie(this,Vt,"f"))||void 0===t||t.disconnect()):this.srcElement.removeChild(ie(this,Gt,"f").srcElement),ie(this,Mt,"m",te).call(this,!1))},Qt=function(t,e){if(!ie(this,Gt,"f")||!ie(this,Wt,"f"))return;const s=e?"treeselect-list--top-to-body":"treeselect-list--top",i=e?"treeselect-list--bottom-to-body":"treeselect-list--bottom";t?(ie(this,Gt,"f").srcElement.classList.add(s),ie(this,Gt,"f").srcElement.classList.remove(i),ie(this,Wt,"f").srcElement.classList.add("treeselect-input--top"),ie(this,Wt,"f").srcElement.classList.remove("treeselect-input--bottom")):(ie(this,Gt,"f").srcElement.classList.remove(s),ie(this,Gt,"f").srcElement.classList.add(i),ie(this,Wt,"f").srcElement.classList.remove("treeselect-input--top"),ie(this,Wt,"f").srcElement.classList.add("treeselect-input--bottom"))},Zt=function(t){ie(this,Wt,"f")&&ie(this,Gt,"f")&&(t?(ie(this,Wt,"f").srcElement.classList.add("treeselect-input--focused"),ie(this,Gt,"f").srcElement.classList.add("treeselect-list--focused")):(ie(this,Wt,"f").srcElement.classList.remove("treeselect-input--focused"),ie(this,Gt,"f").srcElement.classList.remove("treeselect-list--focused")))},te=function(t){var e,s,i,l;t?null===(e=ie(this,Wt,"f"))||void 0===e||e.srcElement.classList.add("treeselect-input--opened"):null===(s=ie(this,Wt,"f"))||void 0===s||s.srcElement.classList.remove("treeselect-input--opened"),this.staticList?null===(i=ie(this,Gt,"f"))||void 0===i||i.srcElement.classList.add("treeselect-list--static"):null===(l=ie(this,Gt,"f"))||void 0===l||l.srcElement.classList.remove("treeselect-list--static")},ee=function(t){ie(this,jt,"f")&&ie(this,qt,"f")&&ie(this,Dt,"f")&&ie(this,It,"f")&&(this.alwaysOpen&&!t||(window.removeEventListener("scroll",ie(this,jt,"f"),!0),window.removeEventListener("resize",ie(this,qt,"f"))),document.removeEventListener("mousedown",ie(this,Dt,"f"),!0),document.removeEventListener("focus",ie(this,Dt,"f"),!0),window.removeEventListener("blur",ie(this,It,"f")))},se=function(){var t;const e=((t,e)=>{if(e){const[e]=t;return e}return t})(this.isGroupedValue||this.isSingleSelect?this.groupedValue:this.value,this.isSingleSelect);null===(t=this.srcElement)||void 0===t||t.dispatchEvent(new CustomEvent("input",{detail:e})),this.inputCallback&&this.inputCallback(e)};
|
|
1
|
+
function t(t,e,s,i){Object.defineProperty(t,e,{get:s,set:i,enumerable:!0,configurable:!0})}t(module.exports,"Treeselect",(function(){return ce}),(function(t){return ce=t}));var e={};t(e,"TreeselectInput",(function(){return M}),(function(t){return M=t}));const s={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>'},i=(t,e)=>{if(e.innerHTML="","string"==typeof t)e.innerHTML=t;else{const s=t.cloneNode(!0);e.appendChild(s)}},l=t=>{const e=t?Object.assign({},t):{};return Object.keys(s).forEach((t=>{e[t]||(e[t]=s[t])})),e};var n,o,a,c,r,h,d,u,p,m,f,v,w,g,b,E,k,y,L,C,_,x,T,S,O,A,B,H,P=function(t,e,s,i){if("a"===s&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?i:"a"===s?i.call(t):i?i.value:e.get(t)},N=function(t,e,s,i,l){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!l)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!l:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?l.call(t,s):l?l.value=s:e.set(t,s),s};class M{focus(){setTimeout((()=>P(this,a,"f").focus()),0)}blur(){this.isOpened&&P(this,n,"m",f).call(this),this.clearSearch(),P(this,a,"f").blur()}updateValue(t){this.value=t,P(this,n,"m",d).call(this),P(this,n,"m",m).call(this)}removeItem(t){this.value=this.value.filter((e=>e.id!==t)),P(this,n,"m",H).call(this),P(this,n,"m",d).call(this),P(this,n,"m",m).call(this)}clear(){this.value=[],P(this,n,"m",H).call(this),P(this,n,"m",d).call(this),this.clearSearch()}openClose(){P(this,n,"m",f).call(this)}clearSearch(){this.searchText="",this.searchCallback(""),P(this,n,"m",m).call(this)}constructor({value:t,showTags:e,tagsCountText:s,clearable:i,isAlwaysOpened:l,searchable:d,placeholder:u,disabled:p,id:m,iconElements:f,inputCallback:w,searchCallback:b,openCallback:E,closeCallback:k,keydownCallback:y,focusCallback:L,blurCallback:_}){n.add(this),o.set(this,void 0),a.set(this,void 0),c.set(this,void 0),r.set(this,void 0),this.value=t,this.showTags=e,this.tagsCountText=s,this.searchable=d,this.placeholder=u,this.clearable=i,this.isAlwaysOpened=l,this.disabled=p,this.id=m,this.iconElements=f,this.isOpened=!1,this.searchText="",N(this,o,P(this,n,"m",g).call(this),"f"),N(this,a,P(this,n,"m",C).call(this),"f"),N(this,c,P(this,n,"m",T).call(this),"f"),N(this,r,null,"f"),this.inputCallback=w,this.searchCallback=b,this.openCallback=E,this.closeCallback=k,this.keydownCallback=y,this.focusCallback=L,this.blurCallback=_,this.srcElement=P(this,n,"m",v).call(this,P(this,o,"f"),P(this,a,"f"),P(this,c,"f")),P(this,n,"m",h).call(this)}}o=new WeakMap,a=new WeakMap,c=new WeakMap,r=new WeakMap,n=new WeakSet,h=function(){P(this,n,"m",d).call(this),P(this,n,"m",m).call(this),P(this,n,"m",u).call(this)},d=function(){P(this,o,"f").innerHTML="",this.showTags?P(this,o,"f").append(...P(this,n,"m",b).call(this)):P(this,o,"f").appendChild(P(this,n,"m",L).call(this)),P(this,o,"f").appendChild(P(this,a,"f"))},u=function(){const t=[];P(this,c,"f").innerHTML="",this.clearable&&t.push(P(this,n,"m",S).call(this)),this.isAlwaysOpened||t.push(P(this,n,"m",A).call(this,this.isOpened)),t.length&&P(this,c,"f").append(...t)},p=function(){if(!this.isAlwaysOpened&&P(this,r,"f")){const t=this.isOpened?this.iconElements.arrowUp:this.iconElements.arrowDown;i(t,P(this,r,"f"))}},m=function(){var t;(null===(t=this.value)||void 0===t?void 0:t.length)?(P(this,a,"f").removeAttribute("placeholder"),this.srcElement.classList.remove("treeselect-input--value-not-selected")):(P(this,a,"f").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"),P(this,a,"f").value=this.searchText},f=function(){this.isOpened=!this.isOpened,P(this,n,"m",p).call(this),this.isOpened?this.openCallback():this.closeCallback()},v=function(t,e,s){const i=document.createElement("div");return i.classList.add("treeselect-input"),i.setAttribute("tabindex","-1"),i.addEventListener("mousedown",(t=>P(this,n,"m",w).call(this,t))),i.addEventListener("focus",(()=>this.focusCallback()),!0),i.addEventListener("blur",(()=>this.blurCallback()),!0),t.appendChild(e),i.append(t,s),i},w=function(t){t.preventDefault(),t.stopPropagation(),this.isOpened||P(this,n,"m",f).call(this),this.focus()},g=function(){const t=document.createElement("div");return t.classList.add("treeselect-input__tags"),t},b=function(){return this.value.map((t=>{const 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);const s=P(this,n,"m",k).call(this,t.name),i=P(this,n,"m",y).call(this);return e.addEventListener("mousedown",(e=>P(this,n,"m",E).call(this,e,t.id))),e.append(s,i),e}))},E=function(t,e){t.preventDefault(),t.stopPropagation(),this.removeItem(e),this.focus()},k=function(t){const e=document.createElement("span");return e.classList.add("treeselect-input__tags-name"),e.innerHTML=t,e},y=function(){const t=document.createElement("span");return t.classList.add("treeselect-input__tags-cross"),i(this.iconElements.cross,t),t},L=function(){const t=document.createElement("span");if(t.classList.add("treeselect-input__tags-count"),!this.value.length)return t.innerHTML="",t.setAttribute("title",""),t;const e=1===this.value.length?this.value[0].name:`${this.value.length} ${this.tagsCountText}`;return t.innerHTML=e,t.setAttribute("title",e),t},C=function(){const t=document.createElement("input");return t.classList.add("treeselect-input__edit"),t.setAttribute("id",this.id),this.disabled&&t.setAttribute("tabindex","-1"),t.addEventListener("keydown",(t=>P(this,n,"m",_).call(this,t))),t.addEventListener("input",(e=>P(this,n,"m",x).call(this,e,t))),t},_=function(t){t.stopPropagation(),"Backspace"!==t.key||this.searchText.length||!this.value.length||this.showTags||this.clear(),"Backspace"===t.key&&!this.searchText.length&&this.value.length&&this.removeItem(this.value[this.value.length-1].id),"Space"!==t.code||this.searchText&&this.searchable||P(this,n,"m",f).call(this),"Enter"===t.key&&t.preventDefault(),this.keydownCallback(t.key),"Tab"!==t.key&&this.focus()},x=function(t,e){t.stopPropagation();const s=this.searchText,i=e.value.trim();if(0!==s.length||0!==i.length){if(this.searchable){const e=t.target.value;this.searchCallback(e),this.isOpened||P(this,n,"m",f).call(this)}else e.value="";this.searchText=e.value}else e.value=""},T=function(){const t=document.createElement("div");return t.classList.add("treeselect-input__operators"),t},S=function(){const t=document.createElement("span");return t.classList.add("treeselect-input__clear"),t.setAttribute("tabindex","-1"),i(this.iconElements.clear,t),t.addEventListener("mousedown",(t=>P(this,n,"m",O).call(this,t))),t},O=function(t){t.preventDefault(),t.stopPropagation(),(this.searchText.length||this.value.length)&&this.clear(),this.focus()},A=function(t){N(this,r,document.createElement("span"),"f"),P(this,r,"f").classList.add("treeselect-input__arrow");const e=t?this.iconElements.arrowUp:this.iconElements.arrowDown;return i(e,P(this,r,"f")),P(this,r,"f").addEventListener("mousedown",(t=>P(this,n,"m",B).call(this,t))),P(this,r,"f")},B=function(t){t.stopPropagation(),t.preventDefault(),this.focus(),P(this,n,"m",f).call(this)},H=function(){this.inputCallback(this.value)};var G={};t(G,"TreeselectList",(function(){return Nt}),(function(t){return Nt=t}));const W=(t,e,s="",i=0)=>t.reduce(((t,l)=>{var n;const o=!!(null===(n=l.children)||void 0===n?void 0:n.length),a=i>=e&&o,c=i>e;if(t.push({id:l.value,name:l.name,childOf:s,isGroup:o,checked:!1,isPartialChecked:!1,level:i,isClosed:a,hidden:c}),o){const s=W(l.children,e,l.value,i+1);t.push(...s)}return t}),[]),V=({id:t,checked:e},s)=>{s.forEach((i=>{i.childOf===t&&(i.checked=null==e||e,i.isPartialChecked=!1,i.isGroup&&V(i,s))}))},j=(t,e)=>{const s=e.find((e=>e.id===t)),i=e.filter((t=>t.childOf===(null==s?void 0:s.id)));if(!s)return;const l=i.every((t=>t.checked)),n=i.some((t=>t.isPartialChecked||t.checked))&&!l,o=!l&&!n;l&&(s.checked=!0,s.isPartialChecked=!1),n&&(s.checked=!1,s.isPartialChecked=!0),o&&(s.checked=!1,s.isPartialChecked=!1),s.childOf&&j(s.childOf,e)},q=({id:t,isGroup:e,childOf:s,checked:i},l)=>{e&&V({id:t,checked:i},l),s&&j(s,l)},D=(t,e)=>e.reduce(((s,i)=>(i.childOf===t&&(s.push(i),i.isGroup&&s.push(...D(i.id,e))),s)),[]),I=(t,e)=>e.reduce(((s,i)=>(i.id===t&&(s.push(i),i.childOf&&s.push(...I(i.childOf,e))),s)),[]),$=t=>{const{onlyGroupsIds:e,allItems:s}=t.reduce(((t,e)=>e.checked?(e.isGroup&&t.onlyGroupsIds.push(e.id),t.allItems.push(e),t):t),{onlyGroupsIds:[],allItems:[]});return s.filter((t=>!e.some((e=>e===t.childOf))))},R=(t,{id:e,isClosed:s})=>{t.filter((t=>t.childOf===e)).forEach((e=>{e.hidden=null!=s&&s,e.isGroup&&!e.isClosed&&R(t,{id:e.id,isClosed:s})}))},z=(t,e)=>{const s=((t,e)=>t.reduce(((s,i)=>{if(i.name.toLowerCase().includes(e.toLowerCase())){if(s.push(i),i.isGroup){const e=D(i.id,t);s.push(...e)}if(i.childOf){const e=I(i.childOf,t);s.push(...e)}}return s}),[]))(t,e);t.forEach((e=>{s.some((t=>t.id===e.id))?(e.isGroup&&(e.isClosed=!1,R(t,e)),e.hidden=!1):e.hidden=!0}))},U=(t,e)=>{(t=>{t.forEach((t=>{t.checked=!1,t.isPartialChecked=!1}))})(e);e.filter((e=>t.some((t=>t===e.id)))).forEach((t=>{t.checked=!0,t.isPartialChecked=!1,q(t,e)}))};var Y,F,J,K,X,Q,Z,tt,et,st,it,lt,nt,ot,at,ct,rt,ht,dt,ut,pt,mt,ft,vt,wt,gt,bt,Et,kt=function(t,e,s,i){if("a"===s&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?i:"a"===s?i.call(t):i?i.value:e.get(t)},yt=function(t,e,s,i,l){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!l)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!l:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?l.call(t,s):l?l.value=s:e.set(t,s),s};let Lt=[];const Ct=(t,e,s)=>{t.forEach((i=>{const l=e.querySelector(`[input-id="${i.id}"]`),n=Ht(l);l.checked=i.checked,_t(i,n),xt(i,n),Tt(i,n,s),St(i,n),At(i,n,t),Ot(i,l,s)})),Bt(t,e)},_t=(t,e)=>{t.checked?e.classList.add("treeselect-list__item--checked"):e.classList.remove("treeselect-list__item--checked"),Array.isArray(Lt)&&Lt[0]===t.id?e.classList.add("treeselect-list__item--single-selected"):e.classList.remove("treeselect-list__item--single-selected")},xt=(t,e)=>{t.isPartialChecked?e.classList.add("treeselect-list__item--partial-checked"):e.classList.remove("treeselect-list__item--partial-checked")},Tt=(t,e,s)=>{if(t.isGroup){const l=e.querySelector(".treeselect-list__item-icon"),n=t.isClosed?s.arrowRight:s.arrowDown;i(n,l),t.isClosed?e.classList.add("treeselect-list__item--closed"):e.classList.remove("treeselect-list__item--closed")}},St=(t,e)=>{t.hidden?e.classList.add("treeselect-list__item--hidden"):e.classList.remove("treeselect-list__item--hidden")},Ot=(t,e,s)=>{const l=e.parentNode.querySelector(".treeselect-list__item-checkbox-icon");t.checked?i(s.check,l):t.isPartialChecked?i(s.partialCheck,l):l.innerHTML=""},At=(t,e,s)=>{if(0===t.level){const i=s.some((e=>e.isGroup&&e.level===t.level)),l=!t.isGroup&&i?"20px":"5px";e.style.paddingLeft=t.isGroup?"0":l}else e.style.paddingLeft=t.isGroup?20*t.level+"px":20*t.level+20+"px";e.setAttribute("level",t.level.toString()),e.setAttribute("group",t.isGroup.toString())},Bt=(t,e)=>{const s=t.some((t=>!t.hidden)),i=e.querySelector(".treeselect-list__empty");s?i.classList.add("treeselect-list__empty--hidden"):i.classList.remove("treeselect-list__empty--hidden")},Ht=t=>t.parentNode.parentNode,Pt=(t,e)=>e.find((e=>e.id.toString()===t));class Nt{updateValue(t){var e,s,i,l;this.value=t,Lt=this.isSingleSelect?this.value:[],e=t,s=this.flattedOptions,i=this.srcElement,l=this.iconElements,U(e,s),Ct(s,i,l),kt(this,Y,"m",bt).call(this)}updateSearchValue(t){if(t===this.searchText)return;const e=""===this.searchText&&""!==t;this.searchText=t,e&&(this.flattedOptionsBeforeSearch=JSON.parse(JSON.stringify(this.flattedOptions))),""===this.searchText&&(this.flattedOptions=this.flattedOptionsBeforeSearch.map((t=>{const e=this.flattedOptions.find((e=>e.id===t.id));return e.isClosed=t.isClosed,e.hidden=t.hidden,e})),this.flattedOptionsBeforeSearch=[]),this.searchText&&z(this.flattedOptions,t),Ct(this.flattedOptions,this.srcElement,this.iconElements),this.focusFirstListElement()}callKeyAction(t){yt(this,J,!1,"f");const e=this.srcElement.querySelector(".treeselect-list__item--focused");"Enter"===t&&e&&e.dispatchEvent(new Event("mousedown")),"ArrowLeft"!==t&&"ArrowRight"!==t||kt(this,Y,"m",K).call(this,e,t),"ArrowDown"!==t&&"ArrowUp"!==t||kt(this,Y,"m",X).call(this,e,t)}focusFirstListElement(){const t="treeselect-list__item--focused",e=this.srcElement.querySelector(`.${t}`),s=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter((t=>"none"!==window.getComputedStyle(Ht(t)).display));if(!s.length)return;e&&e.classList.remove(t);Ht(s[0]).classList.add(t)}constructor({options:t,value:e,openLevel:s,listSlotHtmlComponent:i,emptyText:l,isSingleSelect:n,iconElements:o,showCount:a,disabledBranchNode:c,inputCallback:r,arrowClickCallback:h,mouseupCallback:d}){Y.add(this),F.set(this,null),J.set(this,!0),this.options=t,this.value=e,this.openLevel=null!=s?s:0,this.listSlotHtmlComponent=null!=i?i:null,this.emptyText=null!=l?l:"No results found...",this.isSingleSelect=null!=n&&n,this.showCount=null!=a&&a,this.disabledBranchNode=null!=c&&c,this.iconElements=o,this.searchText="",this.flattedOptions=W(this.options,this.openLevel),this.flattedOptionsBeforeSearch=this.flattedOptions,this.selectedNodes={nodes:[],groupedNodes:[]},this.srcElement=kt(this,Y,"m",Q).call(this),this.inputCallback=r,this.arrowClickCallback=h,this.mouseupCallback=d,this.updateValue(this.value),(t=>{const{duplications:e}=t.reduce(((t,e)=>(t.allItems.some((t=>t.toString()===e.id.toString()))&&t.duplications.push(e.id),t.allItems.push(e.id),t)),{duplications:[],allItems:[]});e.length&&console.error(`Validation: You have duplicated values: ${e.join(", ")}! You should use unique values.`)})(this.flattedOptions)}}F=new WeakMap,J=new WeakMap,Y=new WeakSet,K=function(t,e){if(!t)return;const s=t.querySelector(".treeselect-list__item-checkbox").getAttribute("input-id"),i=Pt(s,this.flattedOptions),l=t.querySelector(".treeselect-list__item-icon");"ArrowLeft"===e&&!i.isClosed&&i.isGroup&&l.dispatchEvent(new Event("mousedown")),"ArrowRight"===e&&i.isClosed&&i.isGroup&&l.dispatchEvent(new Event("mousedown"))},X=function(t,e){var s;const i=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter((t=>"none"!==window.getComputedStyle(Ht(t)).display));if(i.length)if(t){const t=i.findIndex((t=>Ht(t).classList.contains("treeselect-list__item--focused")));Ht(i[t]).classList.remove("treeselect-list__item--focused");const l="ArrowDown"===e?t+1:t-1,n="ArrowDown"===e?0:i.length-1,o=null!==(s=i[l])&&void 0!==s?s:i[n],a=!i[l],c=Ht(o);c.classList.add("treeselect-list__item--focused");const r=this.srcElement.getBoundingClientRect(),h=c.getBoundingClientRect();if(a&&"ArrowDown"===e)return void this.srcElement.scroll(0,0);if(a&&"ArrowUp"===e)return void this.srcElement.scroll(0,this.srcElement.scrollHeight);if(r.y+r.height<h.y+h.height)return void this.srcElement.scroll(0,this.srcElement.scrollTop+h.height);if(r.y>h.y)return void this.srcElement.scroll(0,this.srcElement.scrollTop-h.height)}else{Ht(i[0]).classList.add("treeselect-list__item--focused")}},Q=function(){const t=kt(this,Y,"m",Z).call(this),e=kt(this,Y,"m",st).call(this,this.options);t.append(...e);const s=kt(this,Y,"m",it).call(this);s&&t.append(s);const i=kt(this,Y,"m",lt).call(this);return t.append(i),t},Z=function(){const 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",(t=>kt(this,Y,"m",tt).call(this,t))),t.addEventListener("mousemove",(()=>kt(this,Y,"m",et).call(this))),t.addEventListener("mouseup",(()=>this.mouseupCallback()),!0),t},tt=function(t){t.stopPropagation(),kt(this,F,"f")&&kt(this,J,"f")&&kt(this,F,"f").classList.add("treeselect-list__item--focused")},et=function(){yt(this,J,!0,"f")},st=function t(e){return e.reduce(((e,s)=>{var i;if(null===(i=s.children)||void 0===i?void 0:i.length){const i=kt(this,Y,"m",nt).call(this,s),l=kt(this,Y,"m",t).call(this,s.children);return i.append(...l),e.push(i),e}const l=kt(this,Y,"m",ot).call(this,s,!1);return e.push(l),e}),[])},it=function(){if(!this.listSlotHtmlComponent)return null;const t=document.createElement("div");return t.classList.add("treeselect-list__slot"),t.appendChild(this.listSlotHtmlComponent),t},lt=function(){const t=document.createElement("div");t.classList.add("treeselect-list__empty"),t.setAttribute("title",this.emptyText);const e=document.createElement("span");e.classList.add("treeselect-list__empty-icon"),i(this.iconElements.attention,e);const s=document.createElement("span");return s.classList.add("treeselect-list__empty-text"),s.innerHTML=this.emptyText,t.append(e,s),t},nt=function(t){const e=document.createElement("div");e.setAttribute("group-container-id",t.value.toString()),e.classList.add("treeselect-list__group-container");const s=kt(this,Y,"m",ot).call(this,t,!0);return e.appendChild(s),e},ot=function(t,e){const s=kt(this,Y,"m",at).call(this,t);if(e){const t=kt(this,Y,"m",dt).call(this);s.appendChild(t),s.classList.add("treeselect-list__item--group")}const i=kt(this,Y,"m",pt).call(this,t),l=kt(this,Y,"m",mt).call(this,t,e);return s.append(i,l),s},at=function(t){const e=document.createElement("div");return e.setAttribute("tabindex","-1"),e.setAttribute("title",t.name),e.classList.add("treeselect-list__item"),e.addEventListener("mouseover",(()=>kt(this,Y,"m",ct).call(this,e)),!0),e.addEventListener("mouseout",(()=>kt(this,Y,"m",rt).call(this,e)),!0),e.addEventListener("mousedown",(e=>kt(this,Y,"m",ht).call(this,e,t))),e},ct=function(t){kt(this,J,"f")&&kt(this,Y,"m",gt).call(this,!0,t)},rt=function(t){kt(this,J,"f")&&(kt(this,Y,"m",gt).call(this,!1,t),yt(this,F,t,"f"))},ht=function(t,e){t.preventDefault(),t.stopPropagation();const s=t.target.querySelector(".treeselect-list__item-checkbox");s.checked=!s.checked,kt(this,Y,"m",vt).call(this,s,e)},dt=function(){const t=document.createElement("span");return t.setAttribute("tabindex","-1"),t.classList.add("treeselect-list__item-icon"),i(this.iconElements.arrowDown,t),t.addEventListener("mousedown",(t=>kt(this,Y,"m",ut).call(this,t))),t},ut=function(t){t.preventDefault(),t.stopPropagation(),kt(this,Y,"m",wt).call(this,t)},pt=function(t){const e=document.createElement("div");e.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",t.value.toString()),i.classList.add("treeselect-list__item-checkbox"),e.append(s,i),e},mt=function(t,e){const s=document.createElement("label");if(s.innerHTML=t.name,s.classList.add("treeselect-list__item-label"),e&&this.showCount){const e=kt(this,Y,"m",ft).call(this,t);s.appendChild(e)}return s},ft=function(t){const e=document.createElement("span"),s=this.flattedOptions.filter((e=>e.childOf===t.value));return e.innerHTML=`(${s.length})`,e.classList.add("treeselect-list__item-label-counter"),e},vt=function(t,e){const s=this.flattedOptions.find((t=>t.id===e.value));if(s)if((null==s?void 0:s.isGroup)&&this.disabledBranchNode){const e=Ht(t).querySelector(".treeselect-list__item-icon");null==e||e.dispatchEvent(new Event("mousedown"))}else{if(this.isSingleSelect){const[t]=Lt;if(s.id===t)return;Lt=[s.id],U([s.id],this.flattedOptions)}else s.checked=t.checked,s.isPartialChecked=!1,q(s,this.flattedOptions);Ct(this.flattedOptions,this.srcElement,this.iconElements),kt(this,Y,"m",Et).call(this)}},wt=function(t){var e,s,i;const l=null===(s=null===(e=t.target)||void 0===e?void 0:e.parentNode)||void 0===s?void 0:s.querySelector("[input-id]"),n=null!==(i=null==l?void 0:l.getAttribute("input-id"))&&void 0!==i?i:null,o=Pt(n,this.flattedOptions);o&&(o.isClosed=!o.isClosed,R(this.flattedOptions,o),Ct(this.flattedOptions,this.srcElement,this.iconElements),this.arrowClickCallback())},gt=function(t,e){const s="treeselect-list__item--focused";if(t){const t=Array.from(this.srcElement.querySelectorAll(`.${s}`));t.length&&t.forEach((t=>t.classList.remove(s))),e.classList.add(s)}else e.classList.remove(s)},bt=function(){var t;this.selectedNodes={nodes:(t=this.flattedOptions,t.filter((t=>t.checked&&!t.isGroup))),groupedNodes:$(this.flattedOptions)}},Et=function(){kt(this,Y,"m",bt).call(this),this.inputCallback(this.selectedNodes),this.value=this.selectedNodes.nodes.map((t=>t.id))};var Mt,Gt,Wt,Vt,jt,qt,Dt,It,$t,Rt,zt,Ut,Yt,Ft,Jt,Kt,Xt,Qt,Zt,te,ee,se,ie,le=function(t,e,s,i){if("a"===s&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?i:"a"===s?i.call(t):i?i.value:e.get(t)},ne=function(t,e,s,i,l){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!l)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!l:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?l.call(t,s):l?l.value=s:e.set(t,s),s};const oe=t=>t.map((t=>t.id)),ae=t=>t?Array.isArray(t)?t:[t]:[];class ce{mount(){var t;this.destroy();const{container:e,list:s,input:i}=le(this,Mt,"m",$t).call(this);this.srcElement=e,ne(this,Gt,s,"f"),ne(this,Wt,i,"f"),ne(this,jt,this.scrollWindowHandler.bind(this),"f"),ne(this,qt,this.scrollWindowHandler.bind(this),"f"),ne(this,Dt,this.focusWindowHandler.bind(this),"f"),ne(this,It,this.blurWindowHandler.bind(this),"f"),this.alwaysOpen&&(null===(t=le(this,Wt,"f"))||void 0===t||t.openClose()),this.disabled&&this.srcElement.classList.add("treeselect--disabled")}updateValue(t){var e;const s=le(this,Gt,"f");if(s){const i=ae(t);s.updateValue(i);const{groupedNodes:l,nodes:n}=s.selectedNodes,o=this.grouped?l:n;null===(e=le(this,Wt,"f"))||void 0===e||e.updateValue(o)}}destroy(){this.srcElement&&(le(this,Mt,"m",Qt).call(this),this.srcElement.innerHTML="",this.srcElement=null,le(this,Mt,"m",se).call(this,!0))}focus(){le(this,Wt,"f")&&le(this,Wt,"f").focus()}toggleOpenClose(){le(this,Wt,"f")&&(le(this,Wt,"f").openClose(),le(this,Wt,"f").focus())}scrollWindowHandler(){this.updateListPosition()}focusWindowHandler(t){var e,s,i;(null===(e=this.srcElement)||void 0===e?void 0:e.contains(t.target))||(null===(s=le(this,Gt,"f"))||void 0===s?void 0:s.srcElement.contains(t.target))||(null===(i=le(this,Wt,"f"))||void 0===i||i.blur(),le(this,Mt,"m",se).call(this,!1),le(this,Mt,"m",te).call(this,!1))}blurWindowHandler(){var t;null===(t=le(this,Wt,"f"))||void 0===t||t.blur(),le(this,Mt,"m",se).call(this,!1),le(this,Mt,"m",te).call(this,!1)}updateListPosition(){var t;const e=this.srcElement,s=null===(t=le(this,Gt,"f"))||void 0===t?void 0:t.srcElement;if(!e||!s)return;s.style.transform="";const{y:i,height:l}=s.getBoundingClientRect(),{x:n,y:o,height:a,width:c}=e.getBoundingClientRect(),r=window.innerHeight-o-a,h=o>r&&o>=l&&r<l;this.appendToBody&&(s.style.transform=h?`translateY(${o-i-l}px)`:`translateY(${o+a-i}px)`,s.style.width=`${c}px`,s.style.left=`${n+window.scrollX}px`);const d=h?"top":"bottom";s.getAttribute("direction")!==d&&(s.setAttribute("direction",d),le(this,Mt,"m",Zt).call(this,h,this.appendToBody))}constructor({parentHtmlContainer:t,value:e,options:s,openLevel:i,appendToBody:n,alwaysOpen:o,showTags:a,tagsCountText:c,clearable:r,searchable:h,placeholder:d,grouped:u,isGroupedValue:p,listSlotHtmlComponent:m,disabled:f,emptyText:v,staticList:w,id:g,isSingleSelect:b,showCount:E,disabledBranchNode:k,iconElements:y,inputCallback:L}){Mt.add(this),Gt.set(this,null),Wt.set(this,null),Vt.set(this,null),jt.set(this,null),qt.set(this,null),Dt.set(this,null),It.set(this,null),(({parentHtmlContainer:t,staticList:e,appendToBody:s,isSingleSelect:i,value:l})=>{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(l)&&console.error("Validation: if you use isSingleSelect prop, you should pass a single value!"),i||Array.isArray(l)||console.error("Validation: you should pass an array as a value!")})({parentHtmlContainer:t,value:e,staticList:w,appendToBody:n,isSingleSelect:b}),this.parentHtmlContainer=t,this.value=ae(e),this.options=null!=s?s:[],this.openLevel=null!=i?i:0,this.appendToBody=null==n||n,this.alwaysOpen=!(!o||f),this.showTags=null==a||a,this.tagsCountText=null!=c?c:"elements selected",this.clearable=null==r||r,this.searchable=null==h||h,this.placeholder=null!=d?d:"Search...",this.grouped=null==u||u,this.isGroupedValue=null!=p&&p,this.listSlotHtmlComponent=null!=m?m:null,this.disabled=null!=f&&f,this.emptyText=null!=v?v:"No results found...",this.staticList=!(!w||this.appendToBody),this.id=null!=g?g:"",this.isSingleSelect=null!=b&&b,this.showCount=null!=E&&E,this.disabledBranchNode=null!=k&&k,this.iconElements=l(y),this.inputCallback=L,this.groupedValue=[],this.isListOpened=!1,this.srcElement=null,this.mount()}}Gt=new WeakMap,Wt=new WeakMap,Vt=new WeakMap,jt=new WeakMap,qt=new WeakMap,Dt=new WeakMap,It=new WeakMap,Mt=new WeakSet,$t=function(){const t=this.parentHtmlContainer;t.classList.add("treeselect");const s=new(0,G.TreeselectList)({options:this.options,value:this.value,openLevel:this.openLevel,listSlotHtmlComponent:this.listSlotHtmlComponent,emptyText:this.emptyText,isSingleSelect:this.isSingleSelect,showCount:this.showCount,disabledBranchNode:this.disabledBranchNode,iconElements:this.iconElements,inputCallback:t=>le(this,Mt,"m",Jt).call(this,t),arrowClickCallback:()=>le(this,Mt,"m",Kt).call(this),mouseupCallback:()=>{var t;return null===(t=le(this,Wt,"f"))||void 0===t?void 0:t.focus()}}),{groupedNodes:i,nodes:l}=s.selectedNodes,n=new(0,e.TreeselectInput)({value:this.grouped?i:l,showTags:this.showTags,tagsCountText:this.tagsCountText,clearable:this.clearable,isAlwaysOpened:this.alwaysOpen,searchable:this.searchable,placeholder:this.placeholder,disabled:this.disabled,id:this.id,iconElements:this.iconElements,inputCallback:t=>le(this,Mt,"m",Rt).call(this,t),searchCallback:t=>le(this,Mt,"m",Ut).call(this,t),openCallback:()=>le(this,Mt,"m",Xt).call(this),closeCallback:()=>le(this,Mt,"m",Qt).call(this),keydownCallback:t=>le(this,Mt,"m",zt).call(this,t),focusCallback:()=>le(this,Mt,"m",Yt).call(this),blurCallback:()=>le(this,Mt,"m",Ft).call(this)});return this.appendToBody&&ne(this,Vt,new ResizeObserver((()=>this.updateListPosition())),"f"),t.append(n.srcElement),{container:t,list:s,input:n}},Rt=function(t){var e,s,i,l,n;const o=oe(t);null===(e=le(this,Gt,"f"))||void 0===e||e.updateValue(o);const a=null===(i=null===(s=le(this,Gt,"f"))||void 0===s?void 0:s.selectedNodes)||void 0===i?void 0:i.nodes,c=null===(n=null===(l=le(this,Gt,"f"))||void 0===l?void 0:l.selectedNodes)||void 0===n?void 0:n.groupedNodes;this.value=a?oe(a):[],this.groupedValue=c?oe(c):[],le(this,Mt,"m",ie).call(this)},zt=function(t){var e;this.isListOpened&&(null===(e=le(this,Gt,"f"))||void 0===e||e.callKeyAction(t))},Ut=function(t){var e;null===(e=le(this,Gt,"f"))||void 0===e||e.updateSearchValue(t),this.updateListPosition()},Yt=function(){le(this,Mt,"m",te).call(this,!0),le(this,Dt,"f")&&le(this,Dt,"f")&&le(this,It,"f")&&(document.addEventListener("mousedown",le(this,Dt,"f"),!0),document.addEventListener("focus",le(this,Dt,"f"),!0),window.addEventListener("blur",le(this,It,"f")))},Ft=function(){setTimeout((()=>{var t,e;const s=null===(t=le(this,Wt,"f"))||void 0===t?void 0:t.srcElement.contains(document.activeElement),i=null===(e=le(this,Gt,"f"))||void 0===e?void 0:e.srcElement.contains(document.activeElement);s||i||this.blurWindowHandler()}),1)},Jt=function(t){var e,s,i,l;const{groupedNodes:n,nodes:o}=t,a=this.grouped?n:o;null===(e=le(this,Wt,"f"))||void 0===e||e.updateValue(a),this.value=oe(o),this.groupedValue=oe(n),this.isSingleSelect&&!this.alwaysOpen&&(null===(s=le(this,Wt,"f"))||void 0===s||s.openClose(),null===(i=le(this,Wt,"f"))||void 0===i||i.clearSearch()),null===(l=le(this,Wt,"f"))||void 0===l||l.focus(),le(this,Mt,"m",ie).call(this)},Kt=function(){var t;null===(t=le(this,Wt,"f"))||void 0===t||t.focus(),this.updateListPosition()},Xt=function(){var t;this.isListOpened=!0,le(this,jt,"f")&&le(this,qt,"f")&&(window.addEventListener("scroll",le(this,jt,"f"),!0),window.addEventListener("resize",le(this,qt,"f"))),le(this,Gt,"f")&&this.srcElement&&(this.appendToBody?(document.body.appendChild(le(this,Gt,"f").srcElement),null===(t=le(this,Vt,"f"))||void 0===t||t.observe(this.srcElement)):this.srcElement.appendChild(le(this,Gt,"f").srcElement),this.updateListPosition(),le(this,Mt,"m",ee).call(this,!0),le(this,Gt,"f").focusFirstListElement())},Qt=function(){var t;if(this.alwaysOpen)return;if(this.isListOpened=!1,le(this,jt,"f")&&le(this,qt,"f")&&(window.removeEventListener("scroll",le(this,jt,"f"),!0),window.removeEventListener("resize",le(this,qt,"f"))),!le(this,Gt,"f")||!this.srcElement)return;(this.appendToBody?document.body.contains(le(this,Gt,"f").srcElement):this.srcElement.contains(le(this,Gt,"f").srcElement))&&(this.appendToBody?(document.body.removeChild(le(this,Gt,"f").srcElement),null===(t=le(this,Vt,"f"))||void 0===t||t.disconnect()):this.srcElement.removeChild(le(this,Gt,"f").srcElement),le(this,Mt,"m",ee).call(this,!1))},Zt=function(t,e){if(!le(this,Gt,"f")||!le(this,Wt,"f"))return;const s=e?"treeselect-list--top-to-body":"treeselect-list--top",i=e?"treeselect-list--bottom-to-body":"treeselect-list--bottom";t?(le(this,Gt,"f").srcElement.classList.add(s),le(this,Gt,"f").srcElement.classList.remove(i),le(this,Wt,"f").srcElement.classList.add("treeselect-input--top"),le(this,Wt,"f").srcElement.classList.remove("treeselect-input--bottom")):(le(this,Gt,"f").srcElement.classList.remove(s),le(this,Gt,"f").srcElement.classList.add(i),le(this,Wt,"f").srcElement.classList.remove("treeselect-input--top"),le(this,Wt,"f").srcElement.classList.add("treeselect-input--bottom"))},te=function(t){le(this,Wt,"f")&&le(this,Gt,"f")&&(t?(le(this,Wt,"f").srcElement.classList.add("treeselect-input--focused"),le(this,Gt,"f").srcElement.classList.add("treeselect-list--focused")):(le(this,Wt,"f").srcElement.classList.remove("treeselect-input--focused"),le(this,Gt,"f").srcElement.classList.remove("treeselect-list--focused")))},ee=function(t){var e,s,i,l;t?null===(e=le(this,Wt,"f"))||void 0===e||e.srcElement.classList.add("treeselect-input--opened"):null===(s=le(this,Wt,"f"))||void 0===s||s.srcElement.classList.remove("treeselect-input--opened"),this.staticList?null===(i=le(this,Gt,"f"))||void 0===i||i.srcElement.classList.add("treeselect-list--static"):null===(l=le(this,Gt,"f"))||void 0===l||l.srcElement.classList.remove("treeselect-list--static")},se=function(t){le(this,jt,"f")&&le(this,qt,"f")&&le(this,Dt,"f")&&le(this,It,"f")&&(this.alwaysOpen&&!t||(window.removeEventListener("scroll",le(this,jt,"f"),!0),window.removeEventListener("resize",le(this,qt,"f"))),document.removeEventListener("mousedown",le(this,Dt,"f"),!0),document.removeEventListener("focus",le(this,Dt,"f"),!0),window.removeEventListener("blur",le(this,It,"f")))},ie=function(){var t;const e=((t,e)=>{if(e){const[e]=t;return e}return t})(this.isGroupedValue||this.isSingleSelect?this.groupedValue:this.value,this.isSingleSelect);null===(t=this.srcElement)||void 0===t||t.dispatchEvent(new CustomEvent("input",{detail:e})),this.inputCallback&&this.inputCallback(e)};
|
package/dist/treeselectjs.mjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function t(t,e,s,i){Object.defineProperty(t,e,{get:s,set:i,enumerable:!0,configurable:!0})}var e={};t(e,"Treeselect",(function(){return ce}),(function(t){return ce=t}));var s={};t(s,"TreeselectInput",(function(){return G}),(function(t){return G=t}));const i={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>'},l=(t,e)=>{if(e.innerHTML="","string"==typeof t)e.innerHTML=t;else{const s=t.cloneNode(!0);e.appendChild(s)}},n=t=>{const e=t?Object.assign({},t):{};return Object.keys(i).forEach((t=>{e[t]||(e[t]=i[t])})),e};var o,a,c,r,h,d,u,p,m,f,v,w,g,E,b,k,y,L,C,_,x,T,S,O,A,B,H,P,N=function(t,e,s,i){if("a"===s&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?i:"a"===s?i.call(t):i?i.value:e.get(t)},M=function(t,e,s,i,l){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!l)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!l:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?l.call(t,s):l?l.value=s:e.set(t,s),s};class G{focus(){setTimeout((()=>N(this,c,"f").focus()),0)}blur(){this.isOpened&&N(this,o,"m",v).call(this),this.clearSearch(),N(this,c,"f").blur()}updateValue(t){this.value=t,N(this,o,"m",u).call(this),N(this,o,"m",f).call(this)}removeItem(t){this.value=this.value.filter((e=>e.id!==t)),N(this,o,"m",P).call(this),N(this,o,"m",u).call(this),N(this,o,"m",f).call(this)}clear(){this.value=[],N(this,o,"m",P).call(this),N(this,o,"m",u).call(this),this.clearSearch()}openClose(){N(this,o,"m",v).call(this)}clearSearch(){this.searchText="",this.searchCallback(""),N(this,o,"m",f).call(this)}constructor({value:t,showTags:e,tagsCountText:s,clearable:i,isAlwaysOpened:l,searchable:n,placeholder:u,disabled:p,id:m,iconElements:f,inputCallback:v,searchCallback:g,openCallback:b,closeCallback:k,keydownCallback:y,focusCallback:L}){o.add(this),a.set(this,void 0),c.set(this,void 0),r.set(this,void 0),h.set(this,void 0),this.value=t,this.showTags=e,this.tagsCountText=s,this.searchable=n,this.placeholder=u,this.clearable=i,this.isAlwaysOpened=l,this.disabled=p,this.id=m,this.iconElements=f,this.isOpened=!1,this.searchText="",M(this,a,N(this,o,"m",E).call(this),"f"),M(this,c,N(this,o,"m",_).call(this),"f"),M(this,r,N(this,o,"m",S).call(this),"f"),M(this,h,null,"f"),this.inputCallback=v,this.searchCallback=g,this.openCallback=b,this.closeCallback=k,this.keydownCallback=y,this.focusCallback=L,this.srcElement=N(this,o,"m",w).call(this,N(this,a,"f"),N(this,c,"f"),N(this,r,"f")),N(this,o,"m",d).call(this)}}a=new WeakMap,c=new WeakMap,r=new WeakMap,h=new WeakMap,o=new WeakSet,d=function(){N(this,o,"m",u).call(this),N(this,o,"m",f).call(this),N(this,o,"m",p).call(this)},u=function(){N(this,a,"f").innerHTML="",this.showTags?N(this,a,"f").append(...N(this,o,"m",b).call(this)):N(this,a,"f").appendChild(N(this,o,"m",C).call(this)),N(this,a,"f").appendChild(N(this,c,"f"))},p=function(){const t=[];N(this,r,"f").innerHTML="",this.clearable&&t.push(N(this,o,"m",O).call(this)),this.isAlwaysOpened||t.push(N(this,o,"m",B).call(this,this.isOpened)),t.length&&N(this,r,"f").append(...t)},m=function(){if(!this.isAlwaysOpened&&N(this,h,"f")){const t=this.isOpened?this.iconElements.arrowUp:this.iconElements.arrowDown;l(t,N(this,h,"f"))}},f=function(){var t;(null===(t=this.value)||void 0===t?void 0:t.length)?(N(this,c,"f").removeAttribute("placeholder"),this.srcElement.classList.remove("treeselect-input--value-not-selected")):(N(this,c,"f").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"),N(this,c,"f").value=this.searchText},v=function(){this.isOpened=!this.isOpened,N(this,o,"m",m).call(this),this.isOpened?this.openCallback():this.closeCallback()},w=function(t,e,s){const i=document.createElement("div");return i.classList.add("treeselect-input"),i.setAttribute("tabindex","-1"),i.addEventListener("mousedown",(t=>N(this,o,"m",g).call(this,t))),i.addEventListener("focus",(()=>this.focusCallback()),!0),t.appendChild(e),i.append(t,s),i},g=function(t){t.preventDefault(),t.stopPropagation(),this.isOpened||N(this,o,"m",v).call(this),this.focus()},E=function(){const t=document.createElement("div");return t.classList.add("treeselect-input__tags"),t},b=function(){return this.value.map((t=>{const 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);const s=N(this,o,"m",y).call(this,t.name),i=N(this,o,"m",L).call(this);return e.addEventListener("mousedown",(e=>N(this,o,"m",k).call(this,e,t.id))),e.append(s,i),e}))},k=function(t,e){t.preventDefault(),t.stopPropagation(),this.removeItem(e),this.focus()},y=function(t){const e=document.createElement("span");return e.classList.add("treeselect-input__tags-name"),e.innerHTML=t,e},L=function(){const t=document.createElement("span");return t.classList.add("treeselect-input__tags-cross"),l(this.iconElements.cross,t),t},C=function(){const t=document.createElement("span");if(t.classList.add("treeselect-input__tags-count"),!this.value.length)return t.innerHTML="",t.setAttribute("title",""),t;const e=1===this.value.length?this.value[0].name:`${this.value.length} ${this.tagsCountText}`;return t.innerHTML=e,t.setAttribute("title",e),t},_=function(){const t=document.createElement("input");return t.classList.add("treeselect-input__edit"),t.setAttribute("id",this.id),this.disabled&&t.setAttribute("tabindex","-1"),t.addEventListener("keydown",(t=>N(this,o,"m",x).call(this,t))),t.addEventListener("input",(e=>N(this,o,"m",T).call(this,e,t))),t},x=function(t){t.stopPropagation(),"Backspace"!==t.key||this.searchText.length||!this.value.length||this.showTags||this.clear(),"Backspace"===t.key&&!this.searchText.length&&this.value.length&&this.removeItem(this.value[this.value.length-1].id),"Space"!==t.code||this.searchText&&this.searchable||N(this,o,"m",v).call(this),"Enter"===t.key&&t.preventDefault(),this.keydownCallback(t.key),"Tab"!==t.key&&this.focus()},T=function(t,e){t.stopPropagation();const s=this.searchText,i=e.value.trim();if(0!==s.length||0!==i.length){if(this.searchable){const e=t.target.value;this.searchCallback(e),this.isOpened||N(this,o,"m",v).call(this)}else e.value="";this.searchText=e.value}else e.value=""},S=function(){const t=document.createElement("div");return t.classList.add("treeselect-input__operators"),t},O=function(){const t=document.createElement("span");return t.classList.add("treeselect-input__clear"),t.setAttribute("tabindex","-1"),l(this.iconElements.clear,t),t.addEventListener("mousedown",(t=>N(this,o,"m",A).call(this,t))),t},A=function(t){t.preventDefault(),t.stopPropagation(),(this.searchText.length||this.value.length)&&this.clear(),this.focus()},B=function(t){M(this,h,document.createElement("span"),"f"),N(this,h,"f").classList.add("treeselect-input__arrow");const e=t?this.iconElements.arrowUp:this.iconElements.arrowDown;return l(e,N(this,h,"f")),N(this,h,"f").addEventListener("mousedown",(t=>N(this,o,"m",H).call(this,t))),N(this,h,"f")},H=function(t){t.stopPropagation(),t.preventDefault(),this.focus(),N(this,o,"m",v).call(this)},P=function(){this.inputCallback(this.value)};var W={};t(W,"TreeselectList",(function(){return Mt}),(function(t){return Mt=t}));const V=(t,e,s="",i=0)=>t.reduce(((t,l)=>{var n;const o=!!(null===(n=l.children)||void 0===n?void 0:n.length),a=i>=e&&o,c=i>e;if(t.push({id:l.value,name:l.name,childOf:s,isGroup:o,checked:!1,isPartialChecked:!1,level:i,isClosed:a,hidden:c}),o){const s=V(l.children,e,l.value,i+1);t.push(...s)}return t}),[]),j=({id:t,checked:e},s)=>{s.forEach((i=>{i.childOf===t&&(i.checked=null==e||e,i.isPartialChecked=!1,i.isGroup&&j(i,s))}))},q=(t,e)=>{const s=e.find((e=>e.id===t)),i=e.filter((t=>t.childOf===(null==s?void 0:s.id)));if(!s)return;const l=i.every((t=>t.checked)),n=i.some((t=>t.isPartialChecked||t.checked))&&!l,o=!l&&!n;l&&(s.checked=!0,s.isPartialChecked=!1),n&&(s.checked=!1,s.isPartialChecked=!0),o&&(s.checked=!1,s.isPartialChecked=!1),s.childOf&&q(s.childOf,e)},D=({id:t,isGroup:e,childOf:s,checked:i},l)=>{e&&j({id:t,checked:i},l),s&&q(s,l)},I=(t,e)=>e.reduce(((s,i)=>(i.childOf===t&&(s.push(i),i.isGroup&&s.push(...I(i.id,e))),s)),[]),$=(t,e)=>e.reduce(((s,i)=>(i.id===t&&(s.push(i),i.childOf&&s.push(...$(i.childOf,e))),s)),[]),R=t=>{const{onlyGroupsIds:e,allItems:s}=t.reduce(((t,e)=>e.checked?(e.isGroup&&t.onlyGroupsIds.push(e.id),t.allItems.push(e),t):t),{onlyGroupsIds:[],allItems:[]});return s.filter((t=>!e.some((e=>e===t.childOf))))},z=(t,{id:e,isClosed:s})=>{t.filter((t=>t.childOf===e)).forEach((e=>{e.hidden=null!=s&&s,e.isGroup&&!e.isClosed&&z(t,{id:e.id,isClosed:s})}))},U=(t,e)=>{const s=((t,e)=>t.reduce(((s,i)=>{if(i.name.toLowerCase().includes(e.toLowerCase())){if(s.push(i),i.isGroup){const e=I(i.id,t);s.push(...e)}if(i.childOf){const e=$(i.childOf,t);s.push(...e)}}return s}),[]))(t,e);t.forEach((e=>{s.some((t=>t.id===e.id))?(e.isGroup&&(e.isClosed=!1,z(t,e)),e.hidden=!1):e.hidden=!0}))},Y=(t,e)=>{(t=>{t.forEach((t=>{t.checked=!1,t.isPartialChecked=!1}))})(e);e.filter((e=>t.some((t=>t===e.id)))).forEach((t=>{t.checked=!0,t.isPartialChecked=!1,D(t,e)}))};var F,J,K,X,Q,Z,tt,et,st,it,lt,nt,ot,at,ct,rt,ht,dt,ut,pt,mt,ft,vt,wt,gt,Et,bt,kt,yt=function(t,e,s,i){if("a"===s&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?i:"a"===s?i.call(t):i?i.value:e.get(t)},Lt=function(t,e,s,i,l){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!l)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!l:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?l.call(t,s):l?l.value=s:e.set(t,s),s};let Ct=[];const _t=(t,e,s)=>{t.forEach((i=>{const l=e.querySelector(`[input-id="${i.id}"]`),n=Pt(l);l.checked=i.checked,xt(i,n),Tt(i,n),St(i,n,s),Ot(i,n),Bt(i,n,t),At(i,l,s)})),Ht(t,e)},xt=(t,e)=>{t.checked?e.classList.add("treeselect-list__item--checked"):e.classList.remove("treeselect-list__item--checked"),Array.isArray(Ct)&&Ct[0]===t.id?e.classList.add("treeselect-list__item--single-selected"):e.classList.remove("treeselect-list__item--single-selected")},Tt=(t,e)=>{t.isPartialChecked?e.classList.add("treeselect-list__item--partial-checked"):e.classList.remove("treeselect-list__item--partial-checked")},St=(t,e,s)=>{if(t.isGroup){const i=e.querySelector(".treeselect-list__item-icon"),n=t.isClosed?s.arrowRight:s.arrowDown;l(n,i),t.isClosed?e.classList.add("treeselect-list__item--closed"):e.classList.remove("treeselect-list__item--closed")}},Ot=(t,e)=>{t.hidden?e.classList.add("treeselect-list__item--hidden"):e.classList.remove("treeselect-list__item--hidden")},At=(t,e,s)=>{const i=e.parentNode.querySelector(".treeselect-list__item-checkbox-icon");t.checked?l(s.check,i):t.isPartialChecked?l(s.partialCheck,i):i.innerHTML=""},Bt=(t,e,s)=>{if(0===t.level){const i=s.some((e=>e.isGroup&&e.level===t.level)),l=!t.isGroup&&i?"20px":"5px";e.style.paddingLeft=t.isGroup?"0":l}else e.style.paddingLeft=t.isGroup?20*t.level+"px":20*t.level+20+"px";e.setAttribute("level",t.level.toString()),e.setAttribute("group",t.isGroup.toString())},Ht=(t,e)=>{const s=t.some((t=>!t.hidden)),i=e.querySelector(".treeselect-list__empty");s?i.classList.add("treeselect-list__empty--hidden"):i.classList.remove("treeselect-list__empty--hidden")},Pt=t=>t.parentNode.parentNode,Nt=(t,e)=>e.find((e=>e.id.toString()===t));class Mt{updateValue(t){var e,s,i,l;this.value=t,Ct=this.isSingleSelect?this.value:[],e=t,s=this.flattedOptions,i=this.srcElement,l=this.iconElements,Y(e,s),_t(s,i,l),yt(this,F,"m",bt).call(this)}updateSearchValue(t){if(t===this.searchText)return;const e=""===this.searchText&&""!==t;this.searchText=t,e&&(this.flattedOptionsBeforeSearch=JSON.parse(JSON.stringify(this.flattedOptions))),""===this.searchText&&(this.flattedOptions=this.flattedOptionsBeforeSearch.map((t=>{const e=this.flattedOptions.find((e=>e.id===t.id));return e.isClosed=t.isClosed,e.hidden=t.hidden,e})),this.flattedOptionsBeforeSearch=[]),this.searchText&&U(this.flattedOptions,t),_t(this.flattedOptions,this.srcElement,this.iconElements),this.focusFirstListElement()}callKeyAction(t){Lt(this,K,!1,"f");const e=this.srcElement.querySelector(".treeselect-list__item--focused");"Enter"===t&&e&&e.dispatchEvent(new Event("mousedown")),"ArrowLeft"!==t&&"ArrowRight"!==t||yt(this,F,"m",X).call(this,e,t),"ArrowDown"!==t&&"ArrowUp"!==t||yt(this,F,"m",Q).call(this,e,t)}focusFirstListElement(){const t="treeselect-list__item--focused",e=this.srcElement.querySelector(`.${t}`),s=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter((t=>"none"!==window.getComputedStyle(Pt(t)).display));if(!s.length)return;e&&e.classList.remove(t);Pt(s[0]).classList.add(t)}constructor({options:t,value:e,openLevel:s,listSlotHtmlComponent:i,emptyText:l,isSingleSelect:n,iconElements:o,showCount:a,disabledBranchNode:c,inputCallback:r,arrowClickCallback:h,mouseupCallback:d}){F.add(this),J.set(this,null),K.set(this,!0),this.options=t,this.value=e,this.openLevel=null!=s?s:0,this.listSlotHtmlComponent=null!=i?i:null,this.emptyText=null!=l?l:"No results found...",this.isSingleSelect=null!=n&&n,this.showCount=null!=a&&a,this.disabledBranchNode=null!=c&&c,this.iconElements=o,this.searchText="",this.flattedOptions=V(this.options,this.openLevel),this.flattedOptionsBeforeSearch=this.flattedOptions,this.selectedNodes={nodes:[],groupedNodes:[]},this.srcElement=yt(this,F,"m",Z).call(this),this.inputCallback=r,this.arrowClickCallback=h,this.mouseupCallback=d,this.updateValue(this.value),(t=>{const{duplications:e}=t.reduce(((t,e)=>(t.allItems.some((t=>t.toString()===e.id.toString()))&&t.duplications.push(e.id),t.allItems.push(e.id),t)),{duplications:[],allItems:[]});e.length&&console.error(`Validation: You have duplicated values: ${e.join(", ")}! You should use unique values.`)})(this.flattedOptions)}}J=new WeakMap,K=new WeakMap,F=new WeakSet,X=function(t,e){if(!t)return;const s=t.querySelector(".treeselect-list__item-checkbox").getAttribute("input-id"),i=Nt(s,this.flattedOptions),l=t.querySelector(".treeselect-list__item-icon");"ArrowLeft"===e&&!i.isClosed&&i.isGroup&&l.dispatchEvent(new Event("mousedown")),"ArrowRight"===e&&i.isClosed&&i.isGroup&&l.dispatchEvent(new Event("mousedown"))},Q=function(t,e){var s;const i=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter((t=>"none"!==window.getComputedStyle(Pt(t)).display));if(i.length)if(t){const t=i.findIndex((t=>Pt(t).classList.contains("treeselect-list__item--focused")));Pt(i[t]).classList.remove("treeselect-list__item--focused");const l="ArrowDown"===e?t+1:t-1,n="ArrowDown"===e?0:i.length-1,o=null!==(s=i[l])&&void 0!==s?s:i[n],a=!i[l],c=Pt(o);c.classList.add("treeselect-list__item--focused");const r=this.srcElement.getBoundingClientRect(),h=c.getBoundingClientRect();if(a&&"ArrowDown"===e)return void this.srcElement.scroll(0,0);if(a&&"ArrowUp"===e)return void this.srcElement.scroll(0,this.srcElement.scrollHeight);if(r.y+r.height<h.y+h.height)return void this.srcElement.scroll(0,this.srcElement.scrollTop+h.height);if(r.y>h.y)return void this.srcElement.scroll(0,this.srcElement.scrollTop-h.height)}else{Pt(i[0]).classList.add("treeselect-list__item--focused")}},Z=function(){const t=yt(this,F,"m",tt).call(this),e=yt(this,F,"m",it).call(this,this.options);t.append(...e);const s=yt(this,F,"m",lt).call(this);s&&t.append(s);const i=yt(this,F,"m",nt).call(this);return t.append(i),t},tt=function(){const 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",(t=>yt(this,F,"m",et).call(this,t))),t.addEventListener("mousemove",(()=>yt(this,F,"m",st).call(this))),t.addEventListener("mouseup",(()=>this.mouseupCallback()),!0),t},et=function(t){t.stopPropagation(),yt(this,J,"f")&&yt(this,K,"f")&&yt(this,J,"f").classList.add("treeselect-list__item--focused")},st=function(){Lt(this,K,!0,"f")},it=function t(e){return e.reduce(((e,s)=>{var i;if(null===(i=s.children)||void 0===i?void 0:i.length){const i=yt(this,F,"m",ot).call(this,s),l=yt(this,F,"m",t).call(this,s.children);return i.append(...l),e.push(i),e}const l=yt(this,F,"m",at).call(this,s,!1);return e.push(l),e}),[])},lt=function(){if(!this.listSlotHtmlComponent)return null;const t=document.createElement("div");return t.classList.add("treeselect-list__slot"),t.appendChild(this.listSlotHtmlComponent),t},nt=function(){const t=document.createElement("div");t.classList.add("treeselect-list__empty"),t.setAttribute("title",this.emptyText);const e=document.createElement("span");e.classList.add("treeselect-list__empty-icon"),l(this.iconElements.attention,e);const s=document.createElement("span");return s.classList.add("treeselect-list__empty-text"),s.innerHTML=this.emptyText,t.append(e,s),t},ot=function(t){const e=document.createElement("div");e.setAttribute("group-container-id",t.value.toString()),e.classList.add("treeselect-list__group-container");const s=yt(this,F,"m",at).call(this,t,!0);return e.appendChild(s),e},at=function(t,e){const s=yt(this,F,"m",ct).call(this,t);if(e){const t=yt(this,F,"m",ut).call(this);s.appendChild(t),s.classList.add("treeselect-list__item--group")}const i=yt(this,F,"m",mt).call(this,t),l=yt(this,F,"m",ft).call(this,t,e);return s.append(i,l),s},ct=function(t){const e=document.createElement("div");return e.setAttribute("tabindex","-1"),e.setAttribute("title",t.name),e.classList.add("treeselect-list__item"),e.addEventListener("mouseover",(()=>yt(this,F,"m",rt).call(this,e)),!0),e.addEventListener("mouseout",(()=>yt(this,F,"m",ht).call(this,e)),!0),e.addEventListener("mousedown",(e=>yt(this,F,"m",dt).call(this,e,t))),e},rt=function(t){yt(this,K,"f")&&yt(this,F,"m",Et).call(this,!0,t)},ht=function(t){yt(this,K,"f")&&(yt(this,F,"m",Et).call(this,!1,t),Lt(this,J,t,"f"))},dt=function(t,e){t.preventDefault(),t.stopPropagation();const s=t.target.querySelector(".treeselect-list__item-checkbox");s.checked=!s.checked,yt(this,F,"m",wt).call(this,s,e)},ut=function(){const t=document.createElement("span");return t.setAttribute("tabindex","-1"),t.classList.add("treeselect-list__item-icon"),l(this.iconElements.arrowDown,t),t.addEventListener("mousedown",(t=>yt(this,F,"m",pt).call(this,t))),t},pt=function(t){t.preventDefault(),t.stopPropagation(),yt(this,F,"m",gt).call(this,t)},mt=function(t){const e=document.createElement("div");e.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",t.value.toString()),i.classList.add("treeselect-list__item-checkbox"),e.append(s,i),e},ft=function(t,e){const s=document.createElement("label");if(s.innerHTML=t.name,s.classList.add("treeselect-list__item-label"),e&&this.showCount){const e=yt(this,F,"m",vt).call(this,t);s.appendChild(e)}return s},vt=function(t){const e=document.createElement("span"),s=this.flattedOptions.filter((e=>e.childOf===t.value));return e.innerHTML=`(${s.length})`,e.classList.add("treeselect-list__item-label-counter"),e},wt=function(t,e){const s=this.flattedOptions.find((t=>t.id===e.value));if(s)if((null==s?void 0:s.isGroup)&&this.disabledBranchNode){const e=Pt(t).querySelector(".treeselect-list__item-icon");null==e||e.dispatchEvent(new Event("mousedown"))}else{if(this.isSingleSelect){const[t]=Ct;if(s.id===t)return;Ct=[s.id],Y([s.id],this.flattedOptions)}else s.checked=t.checked,s.isPartialChecked=!1,D(s,this.flattedOptions);_t(this.flattedOptions,this.srcElement,this.iconElements),yt(this,F,"m",kt).call(this)}},gt=function(t){var e,s,i;const l=null===(s=null===(e=t.target)||void 0===e?void 0:e.parentNode)||void 0===s?void 0:s.querySelector("[input-id]"),n=null!==(i=null==l?void 0:l.getAttribute("input-id"))&&void 0!==i?i:null,o=Nt(n,this.flattedOptions);o&&(o.isClosed=!o.isClosed,z(this.flattedOptions,o),_t(this.flattedOptions,this.srcElement,this.iconElements),this.arrowClickCallback())},Et=function(t,e){const s="treeselect-list__item--focused";if(t){const t=Array.from(this.srcElement.querySelectorAll(`.${s}`));t.length&&t.forEach((t=>t.classList.remove(s))),e.classList.add(s)}else e.classList.remove(s)},bt=function(){var t;this.selectedNodes={nodes:(t=this.flattedOptions,t.filter((t=>t.checked&&!t.isGroup))),groupedNodes:R(this.flattedOptions)}},kt=function(){yt(this,F,"m",bt).call(this),this.inputCallback(this.selectedNodes),this.value=this.selectedNodes.nodes.map((t=>t.id))};var Gt,Wt,Vt,jt,qt,Dt,It,$t,Rt,zt,Ut,Yt,Ft,Jt,Kt,Xt,Qt,Zt,te,ee,se,ie,le=function(t,e,s,i){if("a"===s&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?i:"a"===s?i.call(t):i?i.value:e.get(t)},ne=function(t,e,s,i,l){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!l)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!l:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?l.call(t,s):l?l.value=s:e.set(t,s),s};const oe=t=>t.map((t=>t.id)),ae=t=>t?Array.isArray(t)?t:[t]:[];class ce{mount(){var t;this.destroy();const{container:e,list:s,input:i}=le(this,Gt,"m",Rt).call(this);this.srcElement=e,ne(this,Wt,s,"f"),ne(this,Vt,i,"f"),ne(this,qt,this.scrollWindowHandler.bind(this),"f"),ne(this,Dt,this.scrollWindowHandler.bind(this),"f"),ne(this,It,this.focusWindowHandler.bind(this),"f"),ne(this,$t,this.blurWindowHandler.bind(this),"f"),this.alwaysOpen&&(null===(t=le(this,Vt,"f"))||void 0===t||t.openClose()),this.disabled&&this.srcElement.classList.add("treeselect--disabled")}updateValue(t){var e;const s=le(this,Wt,"f");if(s){const i=ae(t);s.updateValue(i);const{groupedNodes:l,nodes:n}=s.selectedNodes,o=this.grouped?l:n;null===(e=le(this,Vt,"f"))||void 0===e||e.updateValue(o)}}destroy(){this.srcElement&&(le(this,Gt,"m",Qt).call(this),this.srcElement.innerHTML="",this.srcElement=null,le(this,Gt,"m",se).call(this,!0))}focus(){le(this,Vt,"f")&&le(this,Vt,"f").focus()}toggleOpenClose(){le(this,Vt,"f")&&(le(this,Vt,"f").openClose(),le(this,Vt,"f").focus())}scrollWindowHandler(){this.updateListPosition()}focusWindowHandler(t){var e,s,i;(null===(e=this.srcElement)||void 0===e?void 0:e.contains(t.target))||(null===(s=le(this,Wt,"f"))||void 0===s?void 0:s.srcElement.contains(t.target))||(null===(i=le(this,Vt,"f"))||void 0===i||i.blur(),le(this,Gt,"m",se).call(this,!1),le(this,Gt,"m",te).call(this,!1))}blurWindowHandler(){var t;null===(t=le(this,Vt,"f"))||void 0===t||t.blur(),le(this,Gt,"m",se).call(this,!1),le(this,Gt,"m",te).call(this,!1)}updateListPosition(){var t;const e=this.srcElement,s=null===(t=le(this,Wt,"f"))||void 0===t?void 0:t.srcElement;if(!e||!s)return;s.style.transform="";const{y:i,height:l}=s.getBoundingClientRect(),{x:n,y:o,height:a,width:c}=e.getBoundingClientRect(),r=window.innerHeight-o-a,h=o>r&&o>=l&&r<l;this.appendToBody&&(s.style.transform=h?`translateY(${o-i-l}px)`:`translateY(${o+a-i}px)`,s.style.width=`${c}px`,s.style.left=`${n+window.scrollX}px`);const d=h?"top":"bottom";s.getAttribute("direction")!==d&&(s.setAttribute("direction",d),le(this,Gt,"m",Zt).call(this,h,this.appendToBody))}constructor({parentHtmlContainer:t,value:e,options:s,openLevel:i,appendToBody:l,alwaysOpen:o,showTags:a,tagsCountText:c,clearable:r,searchable:h,placeholder:d,grouped:u,isGroupedValue:p,listSlotHtmlComponent:m,disabled:f,emptyText:v,staticList:w,id:g,isSingleSelect:E,showCount:b,disabledBranchNode:k,iconElements:y,inputCallback:L}){Gt.add(this),Wt.set(this,null),Vt.set(this,null),jt.set(this,null),qt.set(this,null),Dt.set(this,null),It.set(this,null),$t.set(this,null),(({parentHtmlContainer:t,staticList:e,appendToBody:s,isSingleSelect:i,value:l})=>{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(l)&&console.error("Validation: if you use isSingleSelect prop, you should pass a single value!"),i||Array.isArray(l)||console.error("Validation: you should pass an array as a value!")})({parentHtmlContainer:t,value:e,staticList:w,appendToBody:l,isSingleSelect:E}),this.parentHtmlContainer=t,this.value=ae(e),this.options=null!=s?s:[],this.openLevel=null!=i?i:0,this.appendToBody=null==l||l,this.alwaysOpen=!(!o||f),this.showTags=null==a||a,this.tagsCountText=null!=c?c:"elements selected",this.clearable=null==r||r,this.searchable=null==h||h,this.placeholder=null!=d?d:"Search...",this.grouped=null==u||u,this.isGroupedValue=null!=p&&p,this.listSlotHtmlComponent=null!=m?m:null,this.disabled=null!=f&&f,this.emptyText=null!=v?v:"No results found...",this.staticList=!(!w||this.appendToBody),this.id=null!=g?g:"",this.isSingleSelect=null!=E&&E,this.showCount=null!=b&&b,this.disabledBranchNode=null!=k&&k,this.iconElements=n(y),this.inputCallback=L,this.groupedValue=[],this.isListOpened=!1,this.srcElement=null,this.mount()}}Wt=new WeakMap,Vt=new WeakMap,jt=new WeakMap,qt=new WeakMap,Dt=new WeakMap,It=new WeakMap,$t=new WeakMap,Gt=new WeakSet,Rt=function(){const t=this.parentHtmlContainer;t.classList.add("treeselect");const e=new(0,W.TreeselectList)({options:this.options,value:this.value,openLevel:this.openLevel,listSlotHtmlComponent:this.listSlotHtmlComponent,emptyText:this.emptyText,isSingleSelect:this.isSingleSelect,showCount:this.showCount,disabledBranchNode:this.disabledBranchNode,iconElements:this.iconElements,inputCallback:t=>le(this,Gt,"m",Jt).call(this,t),arrowClickCallback:()=>le(this,Gt,"m",Kt).call(this),mouseupCallback:()=>{var t;return null===(t=le(this,Vt,"f"))||void 0===t?void 0:t.focus()}}),{groupedNodes:i,nodes:l}=e.selectedNodes,n=new(0,s.TreeselectInput)({value:this.grouped?i:l,showTags:this.showTags,tagsCountText:this.tagsCountText,clearable:this.clearable,isAlwaysOpened:this.alwaysOpen,searchable:this.searchable,placeholder:this.placeholder,disabled:this.disabled,id:this.id,iconElements:this.iconElements,inputCallback:t=>le(this,Gt,"m",zt).call(this,t),searchCallback:t=>le(this,Gt,"m",Yt).call(this,t),openCallback:()=>le(this,Gt,"m",Xt).call(this),closeCallback:()=>le(this,Gt,"m",Qt).call(this),keydownCallback:t=>le(this,Gt,"m",Ut).call(this,t),focusCallback:()=>le(this,Gt,"m",Ft).call(this)});return this.appendToBody&&ne(this,jt,new ResizeObserver((()=>this.updateListPosition())),"f"),t.append(n.srcElement),{container:t,list:e,input:n}},zt=function(t){var e,s,i,l,n;const o=oe(t);null===(e=le(this,Wt,"f"))||void 0===e||e.updateValue(o);const a=null===(i=null===(s=le(this,Wt,"f"))||void 0===s?void 0:s.selectedNodes)||void 0===i?void 0:i.nodes,c=null===(n=null===(l=le(this,Wt,"f"))||void 0===l?void 0:l.selectedNodes)||void 0===n?void 0:n.groupedNodes;this.value=a?oe(a):[],this.groupedValue=c?oe(c):[],le(this,Gt,"m",ie).call(this)},Ut=function(t){var e;this.isListOpened&&(null===(e=le(this,Wt,"f"))||void 0===e||e.callKeyAction(t))},Yt=function(t){var e;null===(e=le(this,Wt,"f"))||void 0===e||e.updateSearchValue(t),this.updateListPosition()},Ft=function(){le(this,Gt,"m",te).call(this,!0),le(this,It,"f")&&le(this,It,"f")&&le(this,$t,"f")&&(document.addEventListener("mousedown",le(this,It,"f"),!0),document.addEventListener("focus",le(this,It,"f"),!0),window.addEventListener("blur",le(this,$t,"f")))},Jt=function(t){var e,s,i;const{groupedNodes:l,nodes:n}=t,o=this.grouped?l:n;null===(e=le(this,Vt,"f"))||void 0===e||e.updateValue(o),this.value=oe(n),this.groupedValue=oe(l),this.isSingleSelect&&!this.alwaysOpen&&(null===(s=le(this,Vt,"f"))||void 0===s||s.openClose(),null===(i=le(this,Vt,"f"))||void 0===i||i.clearSearch()),setTimeout((()=>{var t;null===(t=le(this,Vt,"f"))||void 0===t||t.focus()}),0),le(this,Gt,"m",ie).call(this)},Kt=function(){var t;null===(t=le(this,Vt,"f"))||void 0===t||t.focus(),this.updateListPosition()},Xt=function(){var t;this.isListOpened=!0,le(this,qt,"f")&&le(this,Dt,"f")&&(window.addEventListener("scroll",le(this,qt,"f"),!0),window.addEventListener("resize",le(this,Dt,"f"))),le(this,Wt,"f")&&this.srcElement&&(this.appendToBody?(document.body.appendChild(le(this,Wt,"f").srcElement),null===(t=le(this,jt,"f"))||void 0===t||t.observe(this.srcElement)):this.srcElement.appendChild(le(this,Wt,"f").srcElement),this.updateListPosition(),le(this,Gt,"m",ee).call(this,!0),le(this,Wt,"f").focusFirstListElement())},Qt=function(){var t;if(this.alwaysOpen)return;if(this.isListOpened=!1,le(this,qt,"f")&&le(this,Dt,"f")&&(window.removeEventListener("scroll",le(this,qt,"f"),!0),window.removeEventListener("resize",le(this,Dt,"f"))),!le(this,Wt,"f")||!this.srcElement)return;(this.appendToBody?document.body.contains(le(this,Wt,"f").srcElement):this.srcElement.contains(le(this,Wt,"f").srcElement))&&(this.appendToBody?(document.body.removeChild(le(this,Wt,"f").srcElement),null===(t=le(this,jt,"f"))||void 0===t||t.disconnect()):this.srcElement.removeChild(le(this,Wt,"f").srcElement),le(this,Gt,"m",ee).call(this,!1))},Zt=function(t,e){if(!le(this,Wt,"f")||!le(this,Vt,"f"))return;const s=e?"treeselect-list--top-to-body":"treeselect-list--top",i=e?"treeselect-list--bottom-to-body":"treeselect-list--bottom";t?(le(this,Wt,"f").srcElement.classList.add(s),le(this,Wt,"f").srcElement.classList.remove(i),le(this,Vt,"f").srcElement.classList.add("treeselect-input--top"),le(this,Vt,"f").srcElement.classList.remove("treeselect-input--bottom")):(le(this,Wt,"f").srcElement.classList.remove(s),le(this,Wt,"f").srcElement.classList.add(i),le(this,Vt,"f").srcElement.classList.remove("treeselect-input--top"),le(this,Vt,"f").srcElement.classList.add("treeselect-input--bottom"))},te=function(t){le(this,Vt,"f")&&le(this,Wt,"f")&&(t?(le(this,Vt,"f").srcElement.classList.add("treeselect-input--focused"),le(this,Wt,"f").srcElement.classList.add("treeselect-list--focused")):(le(this,Vt,"f").srcElement.classList.remove("treeselect-input--focused"),le(this,Wt,"f").srcElement.classList.remove("treeselect-list--focused")))},ee=function(t){var e,s,i,l;t?null===(e=le(this,Vt,"f"))||void 0===e||e.srcElement.classList.add("treeselect-input--opened"):null===(s=le(this,Vt,"f"))||void 0===s||s.srcElement.classList.remove("treeselect-input--opened"),this.staticList?null===(i=le(this,Wt,"f"))||void 0===i||i.srcElement.classList.add("treeselect-list--static"):null===(l=le(this,Wt,"f"))||void 0===l||l.srcElement.classList.remove("treeselect-list--static")},se=function(t){le(this,qt,"f")&&le(this,Dt,"f")&&le(this,It,"f")&&le(this,$t,"f")&&(this.alwaysOpen&&!t||(window.removeEventListener("scroll",le(this,qt,"f"),!0),window.removeEventListener("resize",le(this,Dt,"f"))),document.removeEventListener("mousedown",le(this,It,"f"),!0),document.removeEventListener("focus",le(this,It,"f"),!0),window.removeEventListener("blur",le(this,$t,"f")))},ie=function(){var t;const e=((t,e)=>{if(e){const[e]=t;return e}return t})(this.isGroupedValue||this.isSingleSelect?this.groupedValue:this.value,this.isSingleSelect);null===(t=this.srcElement)||void 0===t||t.dispatchEvent(new CustomEvent("input",{detail:e})),this.inputCallback&&this.inputCallback(e)};export{ce as Treeselect,e as default};
|
|
1
|
+
function t(t,e,s,i){Object.defineProperty(t,e,{get:s,set:i,enumerable:!0,configurable:!0})}var e={};t(e,"Treeselect",(function(){return re}),(function(t){return re=t}));var s={};t(s,"TreeselectInput",(function(){return G}),(function(t){return G=t}));const i={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>'},l=(t,e)=>{if(e.innerHTML="","string"==typeof t)e.innerHTML=t;else{const s=t.cloneNode(!0);e.appendChild(s)}},n=t=>{const e=t?Object.assign({},t):{};return Object.keys(i).forEach((t=>{e[t]||(e[t]=i[t])})),e};var o,a,c,r,h,d,u,p,m,f,v,w,g,b,E,k,y,L,C,_,x,T,S,O,A,B,H,P,N=function(t,e,s,i){if("a"===s&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?i:"a"===s?i.call(t):i?i.value:e.get(t)},M=function(t,e,s,i,l){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!l)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!l:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?l.call(t,s):l?l.value=s:e.set(t,s),s};class G{focus(){setTimeout((()=>N(this,c,"f").focus()),0)}blur(){this.isOpened&&N(this,o,"m",v).call(this),this.clearSearch(),N(this,c,"f").blur()}updateValue(t){this.value=t,N(this,o,"m",u).call(this),N(this,o,"m",f).call(this)}removeItem(t){this.value=this.value.filter((e=>e.id!==t)),N(this,o,"m",P).call(this),N(this,o,"m",u).call(this),N(this,o,"m",f).call(this)}clear(){this.value=[],N(this,o,"m",P).call(this),N(this,o,"m",u).call(this),this.clearSearch()}openClose(){N(this,o,"m",v).call(this)}clearSearch(){this.searchText="",this.searchCallback(""),N(this,o,"m",f).call(this)}constructor({value:t,showTags:e,tagsCountText:s,clearable:i,isAlwaysOpened:l,searchable:n,placeholder:u,disabled:p,id:m,iconElements:f,inputCallback:v,searchCallback:g,openCallback:E,closeCallback:k,keydownCallback:y,focusCallback:L,blurCallback:C}){o.add(this),a.set(this,void 0),c.set(this,void 0),r.set(this,void 0),h.set(this,void 0),this.value=t,this.showTags=e,this.tagsCountText=s,this.searchable=n,this.placeholder=u,this.clearable=i,this.isAlwaysOpened=l,this.disabled=p,this.id=m,this.iconElements=f,this.isOpened=!1,this.searchText="",M(this,a,N(this,o,"m",b).call(this),"f"),M(this,c,N(this,o,"m",_).call(this),"f"),M(this,r,N(this,o,"m",S).call(this),"f"),M(this,h,null,"f"),this.inputCallback=v,this.searchCallback=g,this.openCallback=E,this.closeCallback=k,this.keydownCallback=y,this.focusCallback=L,this.blurCallback=C,this.srcElement=N(this,o,"m",w).call(this,N(this,a,"f"),N(this,c,"f"),N(this,r,"f")),N(this,o,"m",d).call(this)}}a=new WeakMap,c=new WeakMap,r=new WeakMap,h=new WeakMap,o=new WeakSet,d=function(){N(this,o,"m",u).call(this),N(this,o,"m",f).call(this),N(this,o,"m",p).call(this)},u=function(){N(this,a,"f").innerHTML="",this.showTags?N(this,a,"f").append(...N(this,o,"m",E).call(this)):N(this,a,"f").appendChild(N(this,o,"m",C).call(this)),N(this,a,"f").appendChild(N(this,c,"f"))},p=function(){const t=[];N(this,r,"f").innerHTML="",this.clearable&&t.push(N(this,o,"m",O).call(this)),this.isAlwaysOpened||t.push(N(this,o,"m",B).call(this,this.isOpened)),t.length&&N(this,r,"f").append(...t)},m=function(){if(!this.isAlwaysOpened&&N(this,h,"f")){const t=this.isOpened?this.iconElements.arrowUp:this.iconElements.arrowDown;l(t,N(this,h,"f"))}},f=function(){var t;(null===(t=this.value)||void 0===t?void 0:t.length)?(N(this,c,"f").removeAttribute("placeholder"),this.srcElement.classList.remove("treeselect-input--value-not-selected")):(N(this,c,"f").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"),N(this,c,"f").value=this.searchText},v=function(){this.isOpened=!this.isOpened,N(this,o,"m",m).call(this),this.isOpened?this.openCallback():this.closeCallback()},w=function(t,e,s){const i=document.createElement("div");return i.classList.add("treeselect-input"),i.setAttribute("tabindex","-1"),i.addEventListener("mousedown",(t=>N(this,o,"m",g).call(this,t))),i.addEventListener("focus",(()=>this.focusCallback()),!0),i.addEventListener("blur",(()=>this.blurCallback()),!0),t.appendChild(e),i.append(t,s),i},g=function(t){t.preventDefault(),t.stopPropagation(),this.isOpened||N(this,o,"m",v).call(this),this.focus()},b=function(){const t=document.createElement("div");return t.classList.add("treeselect-input__tags"),t},E=function(){return this.value.map((t=>{const 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);const s=N(this,o,"m",y).call(this,t.name),i=N(this,o,"m",L).call(this);return e.addEventListener("mousedown",(e=>N(this,o,"m",k).call(this,e,t.id))),e.append(s,i),e}))},k=function(t,e){t.preventDefault(),t.stopPropagation(),this.removeItem(e),this.focus()},y=function(t){const e=document.createElement("span");return e.classList.add("treeselect-input__tags-name"),e.innerHTML=t,e},L=function(){const t=document.createElement("span");return t.classList.add("treeselect-input__tags-cross"),l(this.iconElements.cross,t),t},C=function(){const t=document.createElement("span");if(t.classList.add("treeselect-input__tags-count"),!this.value.length)return t.innerHTML="",t.setAttribute("title",""),t;const e=1===this.value.length?this.value[0].name:`${this.value.length} ${this.tagsCountText}`;return t.innerHTML=e,t.setAttribute("title",e),t},_=function(){const t=document.createElement("input");return t.classList.add("treeselect-input__edit"),t.setAttribute("id",this.id),this.disabled&&t.setAttribute("tabindex","-1"),t.addEventListener("keydown",(t=>N(this,o,"m",x).call(this,t))),t.addEventListener("input",(e=>N(this,o,"m",T).call(this,e,t))),t},x=function(t){t.stopPropagation(),"Backspace"!==t.key||this.searchText.length||!this.value.length||this.showTags||this.clear(),"Backspace"===t.key&&!this.searchText.length&&this.value.length&&this.removeItem(this.value[this.value.length-1].id),"Space"!==t.code||this.searchText&&this.searchable||N(this,o,"m",v).call(this),"Enter"===t.key&&t.preventDefault(),this.keydownCallback(t.key),"Tab"!==t.key&&this.focus()},T=function(t,e){t.stopPropagation();const s=this.searchText,i=e.value.trim();if(0!==s.length||0!==i.length){if(this.searchable){const e=t.target.value;this.searchCallback(e),this.isOpened||N(this,o,"m",v).call(this)}else e.value="";this.searchText=e.value}else e.value=""},S=function(){const t=document.createElement("div");return t.classList.add("treeselect-input__operators"),t},O=function(){const t=document.createElement("span");return t.classList.add("treeselect-input__clear"),t.setAttribute("tabindex","-1"),l(this.iconElements.clear,t),t.addEventListener("mousedown",(t=>N(this,o,"m",A).call(this,t))),t},A=function(t){t.preventDefault(),t.stopPropagation(),(this.searchText.length||this.value.length)&&this.clear(),this.focus()},B=function(t){M(this,h,document.createElement("span"),"f"),N(this,h,"f").classList.add("treeselect-input__arrow");const e=t?this.iconElements.arrowUp:this.iconElements.arrowDown;return l(e,N(this,h,"f")),N(this,h,"f").addEventListener("mousedown",(t=>N(this,o,"m",H).call(this,t))),N(this,h,"f")},H=function(t){t.stopPropagation(),t.preventDefault(),this.focus(),N(this,o,"m",v).call(this)},P=function(){this.inputCallback(this.value)};var W={};t(W,"TreeselectList",(function(){return Mt}),(function(t){return Mt=t}));const V=(t,e,s="",i=0)=>t.reduce(((t,l)=>{var n;const o=!!(null===(n=l.children)||void 0===n?void 0:n.length),a=i>=e&&o,c=i>e;if(t.push({id:l.value,name:l.name,childOf:s,isGroup:o,checked:!1,isPartialChecked:!1,level:i,isClosed:a,hidden:c}),o){const s=V(l.children,e,l.value,i+1);t.push(...s)}return t}),[]),j=({id:t,checked:e},s)=>{s.forEach((i=>{i.childOf===t&&(i.checked=null==e||e,i.isPartialChecked=!1,i.isGroup&&j(i,s))}))},q=(t,e)=>{const s=e.find((e=>e.id===t)),i=e.filter((t=>t.childOf===(null==s?void 0:s.id)));if(!s)return;const l=i.every((t=>t.checked)),n=i.some((t=>t.isPartialChecked||t.checked))&&!l,o=!l&&!n;l&&(s.checked=!0,s.isPartialChecked=!1),n&&(s.checked=!1,s.isPartialChecked=!0),o&&(s.checked=!1,s.isPartialChecked=!1),s.childOf&&q(s.childOf,e)},D=({id:t,isGroup:e,childOf:s,checked:i},l)=>{e&&j({id:t,checked:i},l),s&&q(s,l)},I=(t,e)=>e.reduce(((s,i)=>(i.childOf===t&&(s.push(i),i.isGroup&&s.push(...I(i.id,e))),s)),[]),$=(t,e)=>e.reduce(((s,i)=>(i.id===t&&(s.push(i),i.childOf&&s.push(...$(i.childOf,e))),s)),[]),R=t=>{const{onlyGroupsIds:e,allItems:s}=t.reduce(((t,e)=>e.checked?(e.isGroup&&t.onlyGroupsIds.push(e.id),t.allItems.push(e),t):t),{onlyGroupsIds:[],allItems:[]});return s.filter((t=>!e.some((e=>e===t.childOf))))},z=(t,{id:e,isClosed:s})=>{t.filter((t=>t.childOf===e)).forEach((e=>{e.hidden=null!=s&&s,e.isGroup&&!e.isClosed&&z(t,{id:e.id,isClosed:s})}))},U=(t,e)=>{const s=((t,e)=>t.reduce(((s,i)=>{if(i.name.toLowerCase().includes(e.toLowerCase())){if(s.push(i),i.isGroup){const e=I(i.id,t);s.push(...e)}if(i.childOf){const e=$(i.childOf,t);s.push(...e)}}return s}),[]))(t,e);t.forEach((e=>{s.some((t=>t.id===e.id))?(e.isGroup&&(e.isClosed=!1,z(t,e)),e.hidden=!1):e.hidden=!0}))},Y=(t,e)=>{(t=>{t.forEach((t=>{t.checked=!1,t.isPartialChecked=!1}))})(e);e.filter((e=>t.some((t=>t===e.id)))).forEach((t=>{t.checked=!0,t.isPartialChecked=!1,D(t,e)}))};var F,J,K,X,Q,Z,tt,et,st,it,lt,nt,ot,at,ct,rt,ht,dt,ut,pt,mt,ft,vt,wt,gt,bt,Et,kt,yt=function(t,e,s,i){if("a"===s&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?i:"a"===s?i.call(t):i?i.value:e.get(t)},Lt=function(t,e,s,i,l){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!l)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!l:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?l.call(t,s):l?l.value=s:e.set(t,s),s};let Ct=[];const _t=(t,e,s)=>{t.forEach((i=>{const l=e.querySelector(`[input-id="${i.id}"]`),n=Pt(l);l.checked=i.checked,xt(i,n),Tt(i,n),St(i,n,s),Ot(i,n),Bt(i,n,t),At(i,l,s)})),Ht(t,e)},xt=(t,e)=>{t.checked?e.classList.add("treeselect-list__item--checked"):e.classList.remove("treeselect-list__item--checked"),Array.isArray(Ct)&&Ct[0]===t.id?e.classList.add("treeselect-list__item--single-selected"):e.classList.remove("treeselect-list__item--single-selected")},Tt=(t,e)=>{t.isPartialChecked?e.classList.add("treeselect-list__item--partial-checked"):e.classList.remove("treeselect-list__item--partial-checked")},St=(t,e,s)=>{if(t.isGroup){const i=e.querySelector(".treeselect-list__item-icon"),n=t.isClosed?s.arrowRight:s.arrowDown;l(n,i),t.isClosed?e.classList.add("treeselect-list__item--closed"):e.classList.remove("treeselect-list__item--closed")}},Ot=(t,e)=>{t.hidden?e.classList.add("treeselect-list__item--hidden"):e.classList.remove("treeselect-list__item--hidden")},At=(t,e,s)=>{const i=e.parentNode.querySelector(".treeselect-list__item-checkbox-icon");t.checked?l(s.check,i):t.isPartialChecked?l(s.partialCheck,i):i.innerHTML=""},Bt=(t,e,s)=>{if(0===t.level){const i=s.some((e=>e.isGroup&&e.level===t.level)),l=!t.isGroup&&i?"20px":"5px";e.style.paddingLeft=t.isGroup?"0":l}else e.style.paddingLeft=t.isGroup?20*t.level+"px":20*t.level+20+"px";e.setAttribute("level",t.level.toString()),e.setAttribute("group",t.isGroup.toString())},Ht=(t,e)=>{const s=t.some((t=>!t.hidden)),i=e.querySelector(".treeselect-list__empty");s?i.classList.add("treeselect-list__empty--hidden"):i.classList.remove("treeselect-list__empty--hidden")},Pt=t=>t.parentNode.parentNode,Nt=(t,e)=>e.find((e=>e.id.toString()===t));class Mt{updateValue(t){var e,s,i,l;this.value=t,Ct=this.isSingleSelect?this.value:[],e=t,s=this.flattedOptions,i=this.srcElement,l=this.iconElements,Y(e,s),_t(s,i,l),yt(this,F,"m",Et).call(this)}updateSearchValue(t){if(t===this.searchText)return;const e=""===this.searchText&&""!==t;this.searchText=t,e&&(this.flattedOptionsBeforeSearch=JSON.parse(JSON.stringify(this.flattedOptions))),""===this.searchText&&(this.flattedOptions=this.flattedOptionsBeforeSearch.map((t=>{const e=this.flattedOptions.find((e=>e.id===t.id));return e.isClosed=t.isClosed,e.hidden=t.hidden,e})),this.flattedOptionsBeforeSearch=[]),this.searchText&&U(this.flattedOptions,t),_t(this.flattedOptions,this.srcElement,this.iconElements),this.focusFirstListElement()}callKeyAction(t){Lt(this,K,!1,"f");const e=this.srcElement.querySelector(".treeselect-list__item--focused");"Enter"===t&&e&&e.dispatchEvent(new Event("mousedown")),"ArrowLeft"!==t&&"ArrowRight"!==t||yt(this,F,"m",X).call(this,e,t),"ArrowDown"!==t&&"ArrowUp"!==t||yt(this,F,"m",Q).call(this,e,t)}focusFirstListElement(){const t="treeselect-list__item--focused",e=this.srcElement.querySelector(`.${t}`),s=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter((t=>"none"!==window.getComputedStyle(Pt(t)).display));if(!s.length)return;e&&e.classList.remove(t);Pt(s[0]).classList.add(t)}constructor({options:t,value:e,openLevel:s,listSlotHtmlComponent:i,emptyText:l,isSingleSelect:n,iconElements:o,showCount:a,disabledBranchNode:c,inputCallback:r,arrowClickCallback:h,mouseupCallback:d}){F.add(this),J.set(this,null),K.set(this,!0),this.options=t,this.value=e,this.openLevel=null!=s?s:0,this.listSlotHtmlComponent=null!=i?i:null,this.emptyText=null!=l?l:"No results found...",this.isSingleSelect=null!=n&&n,this.showCount=null!=a&&a,this.disabledBranchNode=null!=c&&c,this.iconElements=o,this.searchText="",this.flattedOptions=V(this.options,this.openLevel),this.flattedOptionsBeforeSearch=this.flattedOptions,this.selectedNodes={nodes:[],groupedNodes:[]},this.srcElement=yt(this,F,"m",Z).call(this),this.inputCallback=r,this.arrowClickCallback=h,this.mouseupCallback=d,this.updateValue(this.value),(t=>{const{duplications:e}=t.reduce(((t,e)=>(t.allItems.some((t=>t.toString()===e.id.toString()))&&t.duplications.push(e.id),t.allItems.push(e.id),t)),{duplications:[],allItems:[]});e.length&&console.error(`Validation: You have duplicated values: ${e.join(", ")}! You should use unique values.`)})(this.flattedOptions)}}J=new WeakMap,K=new WeakMap,F=new WeakSet,X=function(t,e){if(!t)return;const s=t.querySelector(".treeselect-list__item-checkbox").getAttribute("input-id"),i=Nt(s,this.flattedOptions),l=t.querySelector(".treeselect-list__item-icon");"ArrowLeft"===e&&!i.isClosed&&i.isGroup&&l.dispatchEvent(new Event("mousedown")),"ArrowRight"===e&&i.isClosed&&i.isGroup&&l.dispatchEvent(new Event("mousedown"))},Q=function(t,e){var s;const i=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter((t=>"none"!==window.getComputedStyle(Pt(t)).display));if(i.length)if(t){const t=i.findIndex((t=>Pt(t).classList.contains("treeselect-list__item--focused")));Pt(i[t]).classList.remove("treeselect-list__item--focused");const l="ArrowDown"===e?t+1:t-1,n="ArrowDown"===e?0:i.length-1,o=null!==(s=i[l])&&void 0!==s?s:i[n],a=!i[l],c=Pt(o);c.classList.add("treeselect-list__item--focused");const r=this.srcElement.getBoundingClientRect(),h=c.getBoundingClientRect();if(a&&"ArrowDown"===e)return void this.srcElement.scroll(0,0);if(a&&"ArrowUp"===e)return void this.srcElement.scroll(0,this.srcElement.scrollHeight);if(r.y+r.height<h.y+h.height)return void this.srcElement.scroll(0,this.srcElement.scrollTop+h.height);if(r.y>h.y)return void this.srcElement.scroll(0,this.srcElement.scrollTop-h.height)}else{Pt(i[0]).classList.add("treeselect-list__item--focused")}},Z=function(){const t=yt(this,F,"m",tt).call(this),e=yt(this,F,"m",it).call(this,this.options);t.append(...e);const s=yt(this,F,"m",lt).call(this);s&&t.append(s);const i=yt(this,F,"m",nt).call(this);return t.append(i),t},tt=function(){const 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",(t=>yt(this,F,"m",et).call(this,t))),t.addEventListener("mousemove",(()=>yt(this,F,"m",st).call(this))),t.addEventListener("mouseup",(()=>this.mouseupCallback()),!0),t},et=function(t){t.stopPropagation(),yt(this,J,"f")&&yt(this,K,"f")&&yt(this,J,"f").classList.add("treeselect-list__item--focused")},st=function(){Lt(this,K,!0,"f")},it=function t(e){return e.reduce(((e,s)=>{var i;if(null===(i=s.children)||void 0===i?void 0:i.length){const i=yt(this,F,"m",ot).call(this,s),l=yt(this,F,"m",t).call(this,s.children);return i.append(...l),e.push(i),e}const l=yt(this,F,"m",at).call(this,s,!1);return e.push(l),e}),[])},lt=function(){if(!this.listSlotHtmlComponent)return null;const t=document.createElement("div");return t.classList.add("treeselect-list__slot"),t.appendChild(this.listSlotHtmlComponent),t},nt=function(){const t=document.createElement("div");t.classList.add("treeselect-list__empty"),t.setAttribute("title",this.emptyText);const e=document.createElement("span");e.classList.add("treeselect-list__empty-icon"),l(this.iconElements.attention,e);const s=document.createElement("span");return s.classList.add("treeselect-list__empty-text"),s.innerHTML=this.emptyText,t.append(e,s),t},ot=function(t){const e=document.createElement("div");e.setAttribute("group-container-id",t.value.toString()),e.classList.add("treeselect-list__group-container");const s=yt(this,F,"m",at).call(this,t,!0);return e.appendChild(s),e},at=function(t,e){const s=yt(this,F,"m",ct).call(this,t);if(e){const t=yt(this,F,"m",ut).call(this);s.appendChild(t),s.classList.add("treeselect-list__item--group")}const i=yt(this,F,"m",mt).call(this,t),l=yt(this,F,"m",ft).call(this,t,e);return s.append(i,l),s},ct=function(t){const e=document.createElement("div");return e.setAttribute("tabindex","-1"),e.setAttribute("title",t.name),e.classList.add("treeselect-list__item"),e.addEventListener("mouseover",(()=>yt(this,F,"m",rt).call(this,e)),!0),e.addEventListener("mouseout",(()=>yt(this,F,"m",ht).call(this,e)),!0),e.addEventListener("mousedown",(e=>yt(this,F,"m",dt).call(this,e,t))),e},rt=function(t){yt(this,K,"f")&&yt(this,F,"m",bt).call(this,!0,t)},ht=function(t){yt(this,K,"f")&&(yt(this,F,"m",bt).call(this,!1,t),Lt(this,J,t,"f"))},dt=function(t,e){t.preventDefault(),t.stopPropagation();const s=t.target.querySelector(".treeselect-list__item-checkbox");s.checked=!s.checked,yt(this,F,"m",wt).call(this,s,e)},ut=function(){const t=document.createElement("span");return t.setAttribute("tabindex","-1"),t.classList.add("treeselect-list__item-icon"),l(this.iconElements.arrowDown,t),t.addEventListener("mousedown",(t=>yt(this,F,"m",pt).call(this,t))),t},pt=function(t){t.preventDefault(),t.stopPropagation(),yt(this,F,"m",gt).call(this,t)},mt=function(t){const e=document.createElement("div");e.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",t.value.toString()),i.classList.add("treeselect-list__item-checkbox"),e.append(s,i),e},ft=function(t,e){const s=document.createElement("label");if(s.innerHTML=t.name,s.classList.add("treeselect-list__item-label"),e&&this.showCount){const e=yt(this,F,"m",vt).call(this,t);s.appendChild(e)}return s},vt=function(t){const e=document.createElement("span"),s=this.flattedOptions.filter((e=>e.childOf===t.value));return e.innerHTML=`(${s.length})`,e.classList.add("treeselect-list__item-label-counter"),e},wt=function(t,e){const s=this.flattedOptions.find((t=>t.id===e.value));if(s)if((null==s?void 0:s.isGroup)&&this.disabledBranchNode){const e=Pt(t).querySelector(".treeselect-list__item-icon");null==e||e.dispatchEvent(new Event("mousedown"))}else{if(this.isSingleSelect){const[t]=Ct;if(s.id===t)return;Ct=[s.id],Y([s.id],this.flattedOptions)}else s.checked=t.checked,s.isPartialChecked=!1,D(s,this.flattedOptions);_t(this.flattedOptions,this.srcElement,this.iconElements),yt(this,F,"m",kt).call(this)}},gt=function(t){var e,s,i;const l=null===(s=null===(e=t.target)||void 0===e?void 0:e.parentNode)||void 0===s?void 0:s.querySelector("[input-id]"),n=null!==(i=null==l?void 0:l.getAttribute("input-id"))&&void 0!==i?i:null,o=Nt(n,this.flattedOptions);o&&(o.isClosed=!o.isClosed,z(this.flattedOptions,o),_t(this.flattedOptions,this.srcElement,this.iconElements),this.arrowClickCallback())},bt=function(t,e){const s="treeselect-list__item--focused";if(t){const t=Array.from(this.srcElement.querySelectorAll(`.${s}`));t.length&&t.forEach((t=>t.classList.remove(s))),e.classList.add(s)}else e.classList.remove(s)},Et=function(){var t;this.selectedNodes={nodes:(t=this.flattedOptions,t.filter((t=>t.checked&&!t.isGroup))),groupedNodes:R(this.flattedOptions)}},kt=function(){yt(this,F,"m",Et).call(this),this.inputCallback(this.selectedNodes),this.value=this.selectedNodes.nodes.map((t=>t.id))};var Gt,Wt,Vt,jt,qt,Dt,It,$t,Rt,zt,Ut,Yt,Ft,Jt,Kt,Xt,Qt,Zt,te,ee,se,ie,le,ne=function(t,e,s,i){if("a"===s&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?i:"a"===s?i.call(t):i?i.value:e.get(t)},oe=function(t,e,s,i,l){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!l)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!l:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?l.call(t,s):l?l.value=s:e.set(t,s),s};const ae=t=>t.map((t=>t.id)),ce=t=>t?Array.isArray(t)?t:[t]:[];class re{mount(){var t;this.destroy();const{container:e,list:s,input:i}=ne(this,Gt,"m",Rt).call(this);this.srcElement=e,oe(this,Wt,s,"f"),oe(this,Vt,i,"f"),oe(this,qt,this.scrollWindowHandler.bind(this),"f"),oe(this,Dt,this.scrollWindowHandler.bind(this),"f"),oe(this,It,this.focusWindowHandler.bind(this),"f"),oe(this,$t,this.blurWindowHandler.bind(this),"f"),this.alwaysOpen&&(null===(t=ne(this,Vt,"f"))||void 0===t||t.openClose()),this.disabled&&this.srcElement.classList.add("treeselect--disabled")}updateValue(t){var e;const s=ne(this,Wt,"f");if(s){const i=ce(t);s.updateValue(i);const{groupedNodes:l,nodes:n}=s.selectedNodes,o=this.grouped?l:n;null===(e=ne(this,Vt,"f"))||void 0===e||e.updateValue(o)}}destroy(){this.srcElement&&(ne(this,Gt,"m",Zt).call(this),this.srcElement.innerHTML="",this.srcElement=null,ne(this,Gt,"m",ie).call(this,!0))}focus(){ne(this,Vt,"f")&&ne(this,Vt,"f").focus()}toggleOpenClose(){ne(this,Vt,"f")&&(ne(this,Vt,"f").openClose(),ne(this,Vt,"f").focus())}scrollWindowHandler(){this.updateListPosition()}focusWindowHandler(t){var e,s,i;(null===(e=this.srcElement)||void 0===e?void 0:e.contains(t.target))||(null===(s=ne(this,Wt,"f"))||void 0===s?void 0:s.srcElement.contains(t.target))||(null===(i=ne(this,Vt,"f"))||void 0===i||i.blur(),ne(this,Gt,"m",ie).call(this,!1),ne(this,Gt,"m",ee).call(this,!1))}blurWindowHandler(){var t;null===(t=ne(this,Vt,"f"))||void 0===t||t.blur(),ne(this,Gt,"m",ie).call(this,!1),ne(this,Gt,"m",ee).call(this,!1)}updateListPosition(){var t;const e=this.srcElement,s=null===(t=ne(this,Wt,"f"))||void 0===t?void 0:t.srcElement;if(!e||!s)return;s.style.transform="";const{y:i,height:l}=s.getBoundingClientRect(),{x:n,y:o,height:a,width:c}=e.getBoundingClientRect(),r=window.innerHeight-o-a,h=o>r&&o>=l&&r<l;this.appendToBody&&(s.style.transform=h?`translateY(${o-i-l}px)`:`translateY(${o+a-i}px)`,s.style.width=`${c}px`,s.style.left=`${n+window.scrollX}px`);const d=h?"top":"bottom";s.getAttribute("direction")!==d&&(s.setAttribute("direction",d),ne(this,Gt,"m",te).call(this,h,this.appendToBody))}constructor({parentHtmlContainer:t,value:e,options:s,openLevel:i,appendToBody:l,alwaysOpen:o,showTags:a,tagsCountText:c,clearable:r,searchable:h,placeholder:d,grouped:u,isGroupedValue:p,listSlotHtmlComponent:m,disabled:f,emptyText:v,staticList:w,id:g,isSingleSelect:b,showCount:E,disabledBranchNode:k,iconElements:y,inputCallback:L}){Gt.add(this),Wt.set(this,null),Vt.set(this,null),jt.set(this,null),qt.set(this,null),Dt.set(this,null),It.set(this,null),$t.set(this,null),(({parentHtmlContainer:t,staticList:e,appendToBody:s,isSingleSelect:i,value:l})=>{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(l)&&console.error("Validation: if you use isSingleSelect prop, you should pass a single value!"),i||Array.isArray(l)||console.error("Validation: you should pass an array as a value!")})({parentHtmlContainer:t,value:e,staticList:w,appendToBody:l,isSingleSelect:b}),this.parentHtmlContainer=t,this.value=ce(e),this.options=null!=s?s:[],this.openLevel=null!=i?i:0,this.appendToBody=null==l||l,this.alwaysOpen=!(!o||f),this.showTags=null==a||a,this.tagsCountText=null!=c?c:"elements selected",this.clearable=null==r||r,this.searchable=null==h||h,this.placeholder=null!=d?d:"Search...",this.grouped=null==u||u,this.isGroupedValue=null!=p&&p,this.listSlotHtmlComponent=null!=m?m:null,this.disabled=null!=f&&f,this.emptyText=null!=v?v:"No results found...",this.staticList=!(!w||this.appendToBody),this.id=null!=g?g:"",this.isSingleSelect=null!=b&&b,this.showCount=null!=E&&E,this.disabledBranchNode=null!=k&&k,this.iconElements=n(y),this.inputCallback=L,this.groupedValue=[],this.isListOpened=!1,this.srcElement=null,this.mount()}}Wt=new WeakMap,Vt=new WeakMap,jt=new WeakMap,qt=new WeakMap,Dt=new WeakMap,It=new WeakMap,$t=new WeakMap,Gt=new WeakSet,Rt=function(){const t=this.parentHtmlContainer;t.classList.add("treeselect");const e=new(0,W.TreeselectList)({options:this.options,value:this.value,openLevel:this.openLevel,listSlotHtmlComponent:this.listSlotHtmlComponent,emptyText:this.emptyText,isSingleSelect:this.isSingleSelect,showCount:this.showCount,disabledBranchNode:this.disabledBranchNode,iconElements:this.iconElements,inputCallback:t=>ne(this,Gt,"m",Kt).call(this,t),arrowClickCallback:()=>ne(this,Gt,"m",Xt).call(this),mouseupCallback:()=>{var t;return null===(t=ne(this,Vt,"f"))||void 0===t?void 0:t.focus()}}),{groupedNodes:i,nodes:l}=e.selectedNodes,n=new(0,s.TreeselectInput)({value:this.grouped?i:l,showTags:this.showTags,tagsCountText:this.tagsCountText,clearable:this.clearable,isAlwaysOpened:this.alwaysOpen,searchable:this.searchable,placeholder:this.placeholder,disabled:this.disabled,id:this.id,iconElements:this.iconElements,inputCallback:t=>ne(this,Gt,"m",zt).call(this,t),searchCallback:t=>ne(this,Gt,"m",Yt).call(this,t),openCallback:()=>ne(this,Gt,"m",Qt).call(this),closeCallback:()=>ne(this,Gt,"m",Zt).call(this),keydownCallback:t=>ne(this,Gt,"m",Ut).call(this,t),focusCallback:()=>ne(this,Gt,"m",Ft).call(this),blurCallback:()=>ne(this,Gt,"m",Jt).call(this)});return this.appendToBody&&oe(this,jt,new ResizeObserver((()=>this.updateListPosition())),"f"),t.append(n.srcElement),{container:t,list:e,input:n}},zt=function(t){var e,s,i,l,n;const o=ae(t);null===(e=ne(this,Wt,"f"))||void 0===e||e.updateValue(o);const a=null===(i=null===(s=ne(this,Wt,"f"))||void 0===s?void 0:s.selectedNodes)||void 0===i?void 0:i.nodes,c=null===(n=null===(l=ne(this,Wt,"f"))||void 0===l?void 0:l.selectedNodes)||void 0===n?void 0:n.groupedNodes;this.value=a?ae(a):[],this.groupedValue=c?ae(c):[],ne(this,Gt,"m",le).call(this)},Ut=function(t){var e;this.isListOpened&&(null===(e=ne(this,Wt,"f"))||void 0===e||e.callKeyAction(t))},Yt=function(t){var e;null===(e=ne(this,Wt,"f"))||void 0===e||e.updateSearchValue(t),this.updateListPosition()},Ft=function(){ne(this,Gt,"m",ee).call(this,!0),ne(this,It,"f")&&ne(this,It,"f")&&ne(this,$t,"f")&&(document.addEventListener("mousedown",ne(this,It,"f"),!0),document.addEventListener("focus",ne(this,It,"f"),!0),window.addEventListener("blur",ne(this,$t,"f")))},Jt=function(){setTimeout((()=>{var t,e;const s=null===(t=ne(this,Vt,"f"))||void 0===t?void 0:t.srcElement.contains(document.activeElement),i=null===(e=ne(this,Wt,"f"))||void 0===e?void 0:e.srcElement.contains(document.activeElement);s||i||this.blurWindowHandler()}),1)},Kt=function(t){var e,s,i,l;const{groupedNodes:n,nodes:o}=t,a=this.grouped?n:o;null===(e=ne(this,Vt,"f"))||void 0===e||e.updateValue(a),this.value=ae(o),this.groupedValue=ae(n),this.isSingleSelect&&!this.alwaysOpen&&(null===(s=ne(this,Vt,"f"))||void 0===s||s.openClose(),null===(i=ne(this,Vt,"f"))||void 0===i||i.clearSearch()),null===(l=ne(this,Vt,"f"))||void 0===l||l.focus(),ne(this,Gt,"m",le).call(this)},Xt=function(){var t;null===(t=ne(this,Vt,"f"))||void 0===t||t.focus(),this.updateListPosition()},Qt=function(){var t;this.isListOpened=!0,ne(this,qt,"f")&&ne(this,Dt,"f")&&(window.addEventListener("scroll",ne(this,qt,"f"),!0),window.addEventListener("resize",ne(this,Dt,"f"))),ne(this,Wt,"f")&&this.srcElement&&(this.appendToBody?(document.body.appendChild(ne(this,Wt,"f").srcElement),null===(t=ne(this,jt,"f"))||void 0===t||t.observe(this.srcElement)):this.srcElement.appendChild(ne(this,Wt,"f").srcElement),this.updateListPosition(),ne(this,Gt,"m",se).call(this,!0),ne(this,Wt,"f").focusFirstListElement())},Zt=function(){var t;if(this.alwaysOpen)return;if(this.isListOpened=!1,ne(this,qt,"f")&&ne(this,Dt,"f")&&(window.removeEventListener("scroll",ne(this,qt,"f"),!0),window.removeEventListener("resize",ne(this,Dt,"f"))),!ne(this,Wt,"f")||!this.srcElement)return;(this.appendToBody?document.body.contains(ne(this,Wt,"f").srcElement):this.srcElement.contains(ne(this,Wt,"f").srcElement))&&(this.appendToBody?(document.body.removeChild(ne(this,Wt,"f").srcElement),null===(t=ne(this,jt,"f"))||void 0===t||t.disconnect()):this.srcElement.removeChild(ne(this,Wt,"f").srcElement),ne(this,Gt,"m",se).call(this,!1))},te=function(t,e){if(!ne(this,Wt,"f")||!ne(this,Vt,"f"))return;const s=e?"treeselect-list--top-to-body":"treeselect-list--top",i=e?"treeselect-list--bottom-to-body":"treeselect-list--bottom";t?(ne(this,Wt,"f").srcElement.classList.add(s),ne(this,Wt,"f").srcElement.classList.remove(i),ne(this,Vt,"f").srcElement.classList.add("treeselect-input--top"),ne(this,Vt,"f").srcElement.classList.remove("treeselect-input--bottom")):(ne(this,Wt,"f").srcElement.classList.remove(s),ne(this,Wt,"f").srcElement.classList.add(i),ne(this,Vt,"f").srcElement.classList.remove("treeselect-input--top"),ne(this,Vt,"f").srcElement.classList.add("treeselect-input--bottom"))},ee=function(t){ne(this,Vt,"f")&&ne(this,Wt,"f")&&(t?(ne(this,Vt,"f").srcElement.classList.add("treeselect-input--focused"),ne(this,Wt,"f").srcElement.classList.add("treeselect-list--focused")):(ne(this,Vt,"f").srcElement.classList.remove("treeselect-input--focused"),ne(this,Wt,"f").srcElement.classList.remove("treeselect-list--focused")))},se=function(t){var e,s,i,l;t?null===(e=ne(this,Vt,"f"))||void 0===e||e.srcElement.classList.add("treeselect-input--opened"):null===(s=ne(this,Vt,"f"))||void 0===s||s.srcElement.classList.remove("treeselect-input--opened"),this.staticList?null===(i=ne(this,Wt,"f"))||void 0===i||i.srcElement.classList.add("treeselect-list--static"):null===(l=ne(this,Wt,"f"))||void 0===l||l.srcElement.classList.remove("treeselect-list--static")},ie=function(t){ne(this,qt,"f")&&ne(this,Dt,"f")&&ne(this,It,"f")&&ne(this,$t,"f")&&(this.alwaysOpen&&!t||(window.removeEventListener("scroll",ne(this,qt,"f"),!0),window.removeEventListener("resize",ne(this,Dt,"f"))),document.removeEventListener("mousedown",ne(this,It,"f"),!0),document.removeEventListener("focus",ne(this,It,"f"),!0),window.removeEventListener("blur",ne(this,$t,"f")))},le=function(){var t;const e=((t,e)=>{if(e){const[e]=t;return e}return t})(this.isGroupedValue||this.isSingleSelect?this.groupedValue:this.value,this.isSingleSelect);null===(t=this.srcElement)||void 0===t||t.dispatchEvent(new CustomEvent("input",{detail:e})),this.inputCallback&&this.inputCallback(e)};export{re as Treeselect,e as default};
|