treeselectjs 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- var e,t,s,i,n;e=module.exports,Object.defineProperty(e,"__esModule",{value:!0,configurable:!0}),t=module.exports,s="default",i=()=>M,Object.defineProperty(t,s,{get:i,set:n,enumerable:!0,configurable:!0});const l={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>'},o=(e,t)=>{if(t.innerHTML="","string"==typeof e)t.innerHTML=e;else{const s=e.cloneNode(!0);t.appendChild(s)}},r=e=>{const t=e?{...e}:{};return Object.keys(l).forEach((e=>{t[e]||(t[e]=l[e])})),t};var c=class{#e;#t;#s;#i;constructor({value:e,showTags:t,tagsCountText:s,clearable:i,isAlwaysOpened:n,searchable:l,placeholder:o,disabled:r,id:c,iconElements:a}){this.value=e,this.showTags=t,this.tagsCountText=s,this.searchable=l,this.placeholder=o,this.clearable=i,this.isAlwaysOpened=n,this.disabled=r,this.id=c,this.iconElements=a,this.isOpened=!1,this.searchText="",this.#e=this.#n(),this.#t=this.#l(),this.#s=this.#o(),this.#i=null,this.srcElement=this.#r(this.#e,this.#t,this.#s),this.#c()}focus(){this.#t.focus()}blur(){this.isOpened&&this.#a()}updateValue(e){this.value=e,this.#d(),this.#h()}removeItem(e){this.value=this.value.filter((t=>t.id!==e)),this.#u(),this.#d(),this.#h()}clear(){this.value=[],this.searchText="",this.#p(""),this.#u(),this.#d(),this.#h()}openClose(){this.#a()}#c(){this.#d(),this.#h(),this.#m()}#d(){this.#e.innerHTML="",this.showTags?this.#e.append(...this.#v()):this.#e.appendChild(this.#E())}#m(){const e=[];this.#s.innerHTML="",this.clearable&&e.push(this.#w()),this.isAlwaysOpened||e.push(this.#L(this.isOpened)),e.length&&this.#s.append(...e)}#g(){if(!this.isAlwaysOpened&&this.#i){const e=this.isOpened?this.iconElements.arrowUp:this.iconElements.arrowDown;o(e,this.#i)}}#h(){this.value?.length?this.#t.removeAttribute("placeholder"):this.#t.setAttribute("placeholder",this.placeholder),this.searchable?this.srcElement.classList.remove("treeselect-input--unsearchable"):this.srcElement.classList.add("treeselect-input--unsearchable"),this.#t.value=this.searchText}#a(){this.isOpened=!this.isOpened,this.#g(),this.isOpened?this.#f():this.#C()}#r(e,t,s){const i=document.createElement("div");return i.classList.add("treeselect-input"),i.setAttribute("tabindex","-1"),i.addEventListener("mousedown",(e=>this.#b(e))),i.append(e,t,s),i}#b(e){e.preventDefault(),this.isOpened||this.#a(),this.focus()}#n(){const e=document.createElement("div");return e.classList.add("treeselect-input__tags"),e}#v(){return this.value.map((e=>{const t=document.createElement("div");t.classList.add("treeselect-input__tags-element"),t.setAttribute("tabindex","-1"),t.setAttribute("tag-id",e.id.toString()),t.setAttribute("title",e.name);const s=this.#y(e.name),i=this.#k();return t.addEventListener("mousedown",(t=>this.#x(t,e.id))),t.append(s,i),t}))}#x(e,t){e.preventDefault(),e.stopPropagation(),this.focus(),this.removeItem(t)}#y(e){const t=document.createElement("span");return t.classList.add("treeselect-input__tags-name"),t.innerHTML=e,t}#k(){const e=document.createElement("span");return e.classList.add("treeselect-input__tags-cross"),o(this.iconElements.cross,e),e}#E(){const e=document.createElement("span");return e.classList.add("treeselect-input__tags-count"),this.value.length?(e.innerHTML=1===this.value.length?this.value[0].name:`${this.value.length} ${this.tagsCountText}`,e):(e.innerHTML="",e)}#l(){const e=document.createElement("input");return e.classList.add("treeselect-input__edit"),e.setAttribute("id",this.id),this.disabled&&e.setAttribute("tabindex","-1"),e.addEventListener("keydown",(e=>this.#_(e))),e.addEventListener("input",(t=>this.#O(t,e))),e}#_(e){"Backspace"!==e.key||this.searchText.length||!this.value.length||this.showTags||this.clear(),"Backspace"===e.key&&!this.searchText.length&&this.value.length&&this.removeItem(this.value[this.value.length-1].id),"Space"!==e.code||this.searchText&&this.searchable||this.#a()}#O(e,t){e.stopPropagation();const s=this.searchText,i=t.value.trim();if(0!==s.length||0!==i.length){if(this.searchable){const t=e.target.value;this.#p(t),this.isOpened||this.#a()}else t.value="";this.searchText=t.value}else t.value=""}#o(){const e=document.createElement("div");return e.classList.add("treeselect-input__operators"),e}#w(){const e=document.createElement("span");return e.classList.add("treeselect-input__clear"),e.setAttribute("tabindex","-1"),o(this.iconElements.clear,e),e.addEventListener("mousedown",(e=>this.#T(e))),e}#T(e){e.preventDefault(),e.stopPropagation(),this.#t?.focus(),(this.searchText.length||this.value.length)&&this.clear()}#L(e){this.#i=document.createElement("span"),this.#i.classList.add("treeselect-input__arrow");const t=e?this.iconElements.arrowUp:this.iconElements.arrowDown;return o(t,this.#i),this.#i.addEventListener("mousedown",(e=>this.#A(e))),this.#i}#A(e){e.stopPropagation(),e.preventDefault(),this.focus(),this.#a()}#u(){this.srcElement.dispatchEvent(new CustomEvent("input",{detail:this.value}))}#p(e){this.srcElement.dispatchEvent(new CustomEvent("search",{detail:e}))}#f(){this.srcElement.dispatchEvent(new CustomEvent("open"))}#C(){this.srcElement.dispatchEvent(new CustomEvent("close"))}};const a=(e,t,s="",i=0)=>e.reduce(((e,n)=>{const l=!!n.children?.length,o=i>=t&&l,r=i>t;if(e.push({id:n.value,name:n.name,childOf:s,isGroup:l,checked:!1,isPartialChecked:!1,level:i,isClosed:o,hidden:r}),l){const s=a(n.children,t,n.value,i+1);e.push(...s)}return e}),[]),d=({id:e,checked:t},s)=>{s.forEach((i=>{i.childOf===e&&(i.checked=t??!0,i.isPartialChecked=!1,i.isGroup&&d(i,s))}))},h=(e,t)=>{const s=t.find((t=>t.id===e)),i=t.filter((e=>e.childOf===s?.id));if(!s)return;const n=i.every((e=>e.checked)),l=i.some((e=>e.isPartialChecked||e.checked))&&!n,o=!n&&!l;n&&(s.checked=!0,s.isPartialChecked=!1),l&&(s.checked=!1,s.isPartialChecked=!0),o&&(s.checked=!1,s.isPartialChecked=!1),s.childOf&&h(s.childOf,t)},u=({id:e,isGroup:t,childOf:s,checked:i},n)=>{t&&d({id:e,checked:i},n),s&&h(s,n)},p=(e,t)=>t.reduce(((s,i)=>(i.childOf===e&&(s.push(i),i.isGroup&&s.push(...p(i.id,t))),s)),[]),m=(e,t)=>t.reduce(((s,i)=>(i.id===e&&(s.push(i),i.childOf&&s.push(...m(i.childOf,t))),s)),[]),v=e=>{const{onlyGroupsIds:t,allItems:s}=e.reduce(((e,t)=>t.checked?(t.isGroup&&e.onlyGroupsIds.push(t.id),e.allItems.push(t),e):e),{onlyGroupsIds:[],allItems:[]});return s.filter((e=>!t.some((t=>t===e.childOf))))},E=(e,{id:t,isClosed:s})=>{e.filter((e=>e.childOf===t)).forEach((t=>{t.hidden=s??!1,t.isGroup&&!t.isClosed&&E(e,{id:t.id,isClosed:s})}))},w=(e,t)=>{const s=((e,t)=>e.reduce(((s,i)=>{if(i.name.toLowerCase().includes(t.toLowerCase())){if(s.push(i),i.isGroup){const t=p(i.id,e);s.push(...t)}if(i.childOf){const t=m(i.childOf,e);s.push(...t)}}return s}),[]))(e,t);e.forEach((t=>{s.some((e=>e.id===t.id))?(t.isGroup&&(t.isClosed=!1,E(e,t)),t.hidden=!1):t.hidden=!0}))},L=(e,t)=>{(e=>{e.forEach((e=>{e.checked=!1,e.isPartialChecked=!1}))})(t);t.filter((t=>e.some((e=>e===t.id)))).forEach((e=>{e.checked=!0,e.isPartialChecked=!1,u(e,t)}))},g=(e,t,s,i)=>{L(e,t),f(t,s,i)},f=(e,t,s)=>{e.forEach((i=>{const n=t.querySelector(`[input-id="${i.id}"]`),l=T(n);n.checked=i.checked,C(i,l),b(i,l),y(i,l,s),k(i,l),_(i,l,e),x(i,n,s)})),O(e,t)},C=(e,t)=>{e.checked?t.classList.add("treeselect-list__item--checked"):t.classList.remove("treeselect-list__item--checked")},b=(e,t)=>{e.isPartialChecked?t.classList.add("treeselect-list__item--partial-checked"):t.classList.remove("treeselect-list__item--partial-checked")},y=(e,t,s)=>{if(e.isGroup){const i=t.querySelector(".treeselect-list__item-icon"),n=e.isClosed?s.arrowRight:s.arrowDown;o(n,i),e.isClosed?t.classList.add("treeselect-list__item--closed"):t.classList.remove("treeselect-list__item--closed")}},k=(e,t)=>{e.hidden?t.classList.add("treeselect-list__item--hidden"):t.classList.remove("treeselect-list__item--hidden")},x=(e,t,s)=>{const i=t.parentNode.querySelector(".treeselect-list__item-checkbox-icon");e.checked?o(s.check,i):e.isPartialChecked?o(s.partialCheck,i):i.innerHTML=""},_=(e,t,s)=>{if(0===e.level){const i=s.some((t=>t.isGroup&&t.level===e.level)),n=!e.isGroup&&i?"20px":"5px";t.style.paddingLeft=e.isGroup?"0":n}else t.style.paddingLeft=e.isGroup?20*e.level+"px":20*e.level+20+"px";t.setAttribute("level",e.level.toString()),t.setAttribute("group",e.isGroup.toString())},O=(e,t)=>{const s=e.some((e=>!e.hidden)),i=t.querySelector(".treeselect-list__empty");s?i.classList.add("treeselect-list__empty--hidden"):i.classList.remove("treeselect-list__empty--hidden")},T=e=>e.parentNode.parentNode,A=(e,t)=>t.find((t=>t.id.toString()===e));var I=class{#I=null;#S=!0;constructor({options:e,value:t,openLevel:s,listSlotHtmlComponent:i,emptyText:n,iconElements:l}){this.options=e,this.value=t,this.openLevel=s??0,this.listSlotHtmlComponent=i??null,this.emptyText=n??"No results found...",this.iconElements=l,this.searchText="",this.flattedOptions=a(this.options,this.openLevel),this.flattedOptionsBeforeSearch=this.flattedOptions,this.selectedNodes={nodes:[],groupedNodes:[]},this.srcElement=this.#M(),this.updateValue(this.value),(e=>{const{duplications:t}=e.reduce(((e,t)=>(e.allItems.some((e=>e.toString()===t.id.toString()))&&e.duplications.push(t.id),e.allItems.push(t.id),e)),{duplications:[],allItems:[]});t.length&&console.error(`Validation: You have duplicated values: ${t.join(", ")}! You should use unique values.`)})(this.flattedOptions)}updateValue(e){g(e,this.flattedOptions,this.srcElement,this.iconElements),this.#H()}updateSearchValue(e){if(e===this.searchText)return;const t=""===this.searchText&&""!==e;this.searchText=e,t&&(this.flattedOptionsBeforeSearch=JSON.parse(JSON.stringify(this.flattedOptions))),""===this.searchText&&(this.flattedOptions=this.flattedOptionsBeforeSearch.map((e=>{const t=this.flattedOptions.find((t=>t.id===e.id));return t.isClosed=e.isClosed,t.hidden=e.hidden,t})),this.flattedOptionsBeforeSearch=[]),this.searchText&&w(this.flattedOptions,e),f(this.flattedOptions,this.srcElement,this.iconElements),this.focusFirstListElement()}callKeyAction(e){this.#S=!1;const t=this.srcElement.querySelector(".treeselect-list__item--focused");"Enter"===e&&t&&t.dispatchEvent(new Event("mousedown")),"ArrowLeft"!==e&&"ArrowRight"!==e||this.#B(t,e),"ArrowDown"!==e&&"ArrowUp"!==e||this.#P(t,e)}focusFirstListElement(){const e="treeselect-list__item--focused",t=this.srcElement.querySelector(`.${e}`),s=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter((e=>"none"!==window.getComputedStyle(T(e)).display));if(!s.length)return;t&&t.classList.remove(e);T(s[0]).classList.add(e)}#B(e,t){if(!e)return;const s=e.querySelector(".treeselect-list__item-checkbox").getAttribute("input-id"),i=A(s,this.flattedOptions),n=e.querySelector(".treeselect-list__item-icon");"ArrowLeft"!==t||i.isClosed||n.dispatchEvent(new Event("mousedown")),"ArrowRight"===t&&i.isClosed&&n.dispatchEvent(new Event("mousedown"))}#P(e,t){const s=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter((e=>"none"!==window.getComputedStyle(T(e)).display));if(s.length)if(e){const e=s.findIndex((e=>T(e).classList.contains("treeselect-list__item--focused")));T(s[e]).classList.remove("treeselect-list__item--focused");const i="ArrowDown"===t?e+1:e-1,n="ArrowDown"===t?0:s.length-1,l=s[i]??s[n],o=!s[i],r=T(l);r.classList.add("treeselect-list__item--focused");const c=this.srcElement.getBoundingClientRect(),a=r.getBoundingClientRect();if(o&&"ArrowDown"===t)return void this.srcElement.scroll(0,0);if(o&&"ArrowUp"===t)return void this.srcElement.scroll(0,this.srcElement.scrollHeight);if(c.y+c.height<a.y+a.height)return void this.srcElement.scroll(0,this.srcElement.scrollTop+a.height);if(c.y>a.y)return void this.srcElement.scroll(0,this.srcElement.scrollTop-a.height)}else{T(s[0]).classList.add("treeselect-list__item--focused")}}#M(){const e=this.#N(),t=this.#G(this.options);e.append(...t);const s=this.#D();s&&e.append(s);const i=this.#z();return e.append(i),e}#N(){const e=document.createElement("div");return e.classList.add("treeselect-list"),e.addEventListener("mouseout",(e=>this.#q(e))),e.addEventListener("mousemove",(()=>this.#R())),e}#q(e){e.stopPropagation(),this.#I&&this.#S&&this.#I.classList.add("treeselect-list__item--focused")}#R(){this.#S=!0}#G(e){return e.reduce(((e,t)=>{if(t.children?.length){const s=this.#F(t),i=this.#G(t.children);return s.append(...i),e.push(s),e}const s=this.#V(t,!1);return e.push(s),e}),[])}#D(){if(!this.listSlotHtmlComponent)return null;const e=document.createElement("div");return e.classList.add("treeselect-list__slot"),e.appendChild(this.listSlotHtmlComponent),e}#z(){const e=document.createElement("div");e.classList.add("treeselect-list__empty"),e.setAttribute("title",this.emptyText);const t=document.createElement("span");t.classList.add("treeselect-list__empty-icon"),o(this.iconElements.attention,t);const s=document.createElement("span");return s.classList.add("treeselect-list__empty-text"),s.innerHTML=this.emptyText,e.append(t,s),e}#F(e){const t=document.createElement("div");t.setAttribute("group-container-id",e.value.toString()),t.classList.add("treeselect-list__group-container");const s=this.#V(e,!0);return t.appendChild(s),t}#V(e,t){const s=this.#j(e);if(t){const e=this.#$();s.appendChild(e)}const i=this.#U(e),n=this.#W(e);return s.append(i,n),s}#j(e){const t=document.createElement("div");return t.setAttribute("tabindex","-1"),t.setAttribute("title",e.name),t.classList.add("treeselect-list__item"),t.addEventListener("mouseover",(()=>this.#K(t)),!0),t.addEventListener("mouseout",(()=>this.#Y(t)),!0),t.addEventListener("mousedown",(t=>this.#J(t,e))),t}#K(e){this.#S&&this.#X(!0,e)}#Y(e){this.#S&&(this.#X(!1,e),this.#I=e)}#J(e,t){e.stopPropagation();const s=e.target.querySelector(".treeselect-list__item-checkbox");s.checked=!s.checked,this.#Q(s,t)}#$(){const e=document.createElement("span");return e.setAttribute("tabindex","-1"),e.classList.add("treeselect-list__item-icon"),o(this.iconElements.arrowDown,e),e.addEventListener("mousedown",(e=>this.#Z(e))),e}#Z(e){e.stopPropagation(),this.#ee(e)}#U(e){const t=document.createElement("div");t.classList.add("treeselect-list__item-checkbox-container");const s=document.createElement("span");s.classList.add("treeselect-list__item-checkbox-icon"),s.innerHTML="";const i=document.createElement("input");return i.setAttribute("tabindex","-1"),i.setAttribute("type","checkbox"),i.setAttribute("input-id",e.value.toString()),i.classList.add("treeselect-list__item-checkbox"),t.append(s,i),t}#W(e){const t=document.createElement("label");return t.innerHTML=e.name,t.classList.add("treeselect-list__item-label"),t}#Q(e,t){const s=this.flattedOptions.find((e=>e.id===t.value));s&&(s.checked=e.checked,s.isPartialChecked=!1,u(s,this.flattedOptions),f(this.flattedOptions,this.srcElement,this.iconElements),this.#u())}#ee(e){const t=e.target?.parentNode?.querySelector("[input-id]"),s=t?.getAttribute("input-id")??null,i=A(s,this.flattedOptions);i&&(i.isClosed=!i.isClosed,E(this.flattedOptions,i),f(this.flattedOptions,this.srcElement,this.iconElements),this.#te())}#X(e,t){const s="treeselect-list__item--focused";if(e){const e=Array.from(this.srcElement.querySelectorAll(`.${s}`));e.length&&e.forEach((e=>e.classList.remove(s))),t.classList.add(s)}else t.classList.remove(s)}#H(){var e;this.selectedNodes={nodes:(e=this.flattedOptions,e.filter((e=>e.checked&&!e.isGroup))),groupedNodes:v(this.flattedOptions)}}#te(){this.srcElement.dispatchEvent(new CustomEvent("arrow-click"))}#u(){this.#H(),this.srcElement.dispatchEvent(new CustomEvent("input",{detail:this.selectedNodes}))}};const S=e=>e.map((e=>e.id));var M=class{#se=null;#ie=null;#ne=null;#le=null;#oe=null;#re=null;#ce=null;constructor({parentHtmlContainer:e,value:t,options:s,openLevel:i,appendToBody:n,alwaysOpen:l,showTags:o,tagsCountText:c,clearable:a,searchable:d,placeholder:h,grouped:u,listSlotHtmlComponent:p,disabled:m,emptyText:v,staticList:E,id:w,iconElements:L,inputCallback:g}){(({parentHtmlContainer:e,staticList:t,appendToBody:s})=>{e||console.error("Validation: parentHtmlContainer prop is required!"),t&&s&&console.error("Validation: You should set staticList to false if you use appendToBody!")})({parentHtmlContainer:e,staticList:E,appendToBody:n}),this.parentHtmlContainer=e,this.value=t??[],this.options=s??[],this.openLevel=i??0,this.appendToBody=n??!0,this.alwaysOpen=!(!l||m),this.showTags=o??!0,this.tagsCountText=c??"elements selected",this.clearable=a??!0,this.searchable=d??!0,this.placeholder=h??"Search...",this.grouped=u??!0,this.listSlotHtmlComponent=p??null,this.disabled=m??!1,this.emptyText=v??"No results found...",this.staticList=!(!E||this.appendToBody),this.id=w??"",this.iconElements=r(L),this.inputCallback=g,this.isListOpened=!1,this.srcElement=null,this.mount()}mount(){this.destroy();const{container:e,list:t,input:s}=this.#ae();this.srcElement=e,this.#se=t,this.#ie=s,this.#le=this.scrollWindowHandler.bind(this),this.#oe=this.scrollWindowHandler.bind(this),this.#re=this.focusWindowHandler.bind(this),this.#ce=this.blurWindowHandler.bind(this),this.alwaysOpen&&this.#ie?.openClose(),this.disabled&&this.srcElement.classList.add("treeselect--disabled")}updateValue(e){const t=this.#se;if(t){t.updateValue(e);const{groupedNodes:s,nodes:i}=t.selectedNodes,n=this.grouped?s:i;this.#ie?.updateValue(n)}}destroy(){this.srcElement&&(this.#de(),this.srcElement.innerHTML="",this.srcElement=null,this.#he(!0))}focus(){this.#ie&&this.#ie.focus()}toggleOpenClose(){this.#ie&&(this.#ie.openClose(),this.#ie.focus())}#ae(){const e=this.parentHtmlContainer;e.classList.add("treeselect");const t=new I({options:this.options,value:this.value,openLevel:this.openLevel,listSlotHtmlComponent:this.listSlotHtmlComponent,emptyText:this.emptyText,iconElements:this.iconElements}),{groupedNodes:s,nodes:i}=t.selectedNodes,n=new c({value:this.grouped?s:i,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});return this.appendToBody&&(this.#ne=new ResizeObserver((()=>this.updateListPosition()))),n.srcElement.addEventListener("input",(e=>this.#ue(e,t))),n.srcElement.addEventListener("open",(()=>this.#pe())),n.srcElement.addEventListener("keydown",(e=>this.#me(e,t))),n.srcElement.addEventListener("search",(e=>this.#ve(e,t))),n.srcElement.addEventListener("focus",(()=>this.#Ee()),!0),this.alwaysOpen||n.srcElement.addEventListener("close",(()=>this.#de())),t.srcElement.addEventListener("mouseup",(()=>n.focus()),!0),t.srcElement.addEventListener("input",(e=>this.#we(e,n))),t.srcElement.addEventListener("arrow-click",(()=>this.#Le(n))),e.append(n.srcElement),{container:e,list:t,input:n}}#ue(e,t){const s=S(e.detail);t.updateValue(s);const{nodes:i}=t.selectedNodes;this.value=S(i),this.#u()}#me(e,t){this.isListOpened&&t.callKeyAction(e.key)}#ve(e,t){t.updateSearchValue(e.detail),this.updateListPosition()}#Ee(){this.#ge(!0),this.#re&&this.#re&&this.#ce&&(document.addEventListener("mousedown",this.#re,!0),document.addEventListener("focus",this.#re,!0),window.addEventListener("blur",this.#ce))}#we(e,t){const{groupedNodes:s,nodes:i}=e.detail,n=this.grouped?s:i;t.updateValue(n),this.value=S(i),t.focus(),this.#u()}#Le(e){e.focus(),this.updateListPosition()}#pe(){this.isListOpened=!0,this.#le&&this.#oe&&(window.addEventListener("scroll",this.#le,!0),window.addEventListener("resize",this.#oe)),this.#se&&this.srcElement&&(this.appendToBody?(document.body.appendChild(this.#se.srcElement),this.#ne?.observe(this.srcElement)):this.srcElement.appendChild(this.#se.srcElement),this.updateListPosition(),this.#fe(!0),this.#se.focusFirstListElement())}#de(){if(this.isListOpened=!1,this.#le&&this.#oe&&(window.removeEventListener("scroll",this.#le,!0),window.removeEventListener("resize",this.#oe)),!this.#se||!this.srcElement)return;(this.appendToBody?document.body.contains(this.#se.srcElement):this.srcElement.contains(this.#se.srcElement))&&(this.appendToBody?(document.body.removeChild(this.#se.srcElement),this.#ne?.disconnect()):this.srcElement.removeChild(this.#se.srcElement),this.#fe(!1))}#Ce(e,t){if(!this.#se||!this.#ie)return;const s=t?"treeselect-list--top-to-body":"treeselect-list--top",i=t?"treeselect-list--bottom-to-body":"treeselect-list--bottom";e?(this.#se.srcElement.classList.add(s),this.#se.srcElement.classList.remove(i),this.#ie.srcElement.classList.add("treeselect-input--top"),this.#ie.srcElement.classList.remove("treeselect-input--bottom")):(this.#se.srcElement.classList.remove(s),this.#se.srcElement.classList.add(i),this.#ie.srcElement.classList.remove("treeselect-input--top"),this.#ie.srcElement.classList.add("treeselect-input--bottom"))}#ge(e){this.#ie&&this.#se&&(e?(this.#ie.srcElement.classList.add("treeselect-input--focused"),this.#se.srcElement.classList.add("treeselect-list--focused")):(this.#ie.srcElement.classList.remove("treeselect-input--focused"),this.#se.srcElement.classList.remove("treeselect-list--focused")))}#fe(e){e?this.#ie?.srcElement.classList.add("treeselect-input--opened"):this.#ie?.srcElement.classList.remove("treeselect-input--opened"),this.staticList?this.#se?.srcElement.classList.add("treeselect-list--static"):this.#se?.srcElement.classList.remove("treeselect-list--static")}#he(e){this.#le&&this.#oe&&this.#re&&this.#ce&&(this.alwaysOpen&&!e||(window.removeEventListener("scroll",this.#le,!0),window.removeEventListener("resize",this.#oe)),document.removeEventListener("click",this.#re,!0),document.removeEventListener("focus",this.#re,!0),window.removeEventListener("blur",this.#ce))}scrollWindowHandler(){this.updateListPosition()}focusWindowHandler(e){this.srcElement?.contains(e.target)||this.#se?.srcElement.contains(e.target)||(this.#ie?.blur(),this.#he(!1),this.#ge(!1))}blurWindowHandler(){this.#ie?.blur(),this.#he(!1),this.#ge(!1)}updateListPosition(){const e=this.srcElement,t=this.#se?.srcElement;if(!e||!t)return;t.style.transform="";const{y:s,height:i}=t.getBoundingClientRect(),{x:n,y:l,height:o,width:r}=e.getBoundingClientRect(),c=window.innerHeight-l-o,a=l>c&&l>=i&&c<i;this.appendToBody&&(t.style.transform=a?`translateY(${l-s-i}px)`:`translateY(${l+o-s}px)`,t.style.width=`${r}px`,t.style.left=`${n+window.scrollX}px`);const d=a?"top":"bottom";t.getAttribute("direction")!==d&&(t.setAttribute("direction",d),this.#Ce(a,this.appendToBody))}#u(){this.srcElement?.dispatchEvent(new CustomEvent("input",{detail:this.value})),this.inputCallback&&this.inputCallback(this.value)}};
1
+ var e,t,s,i,n,l=require("@swc/helpers/lib/_class_private_field_get.js"),o=require("@swc/helpers/lib/_class_private_field_init.js"),a=require("@swc/helpers/lib/_class_private_field_set.js"),c=require("@swc/helpers/lib/_class_private_method_get.js"),h=require("@swc/helpers/lib/_class_private_method_init.js");function r(e){return e&&e.__esModule?e.default:e}e=module.exports,Object.defineProperty(e,"__esModule",{value:!0,configurable:!0}),t=module.exports,s="default",i=function(){return ks},Object.defineProperty(t,s,{get:i,set:n,enumerable:!0,configurable:!0});const d={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>'},u=(e,t)=>{if(t.innerHTML="","string"==typeof e)t.innerHTML=e;else{const s=e.cloneNode(!0);t.appendChild(s)}},p=e=>{const t=e?{...e}:{};return Object.keys(d).forEach((e=>{t[e]||(t[e]=d[e])})),t};var m=new WeakMap,v=new WeakMap,w=new WeakMap,f=new WeakMap,E=new WeakSet,k=new WeakSet,g=new WeakSet,L=new WeakSet,b=new WeakSet,_=new WeakSet,y=new WeakSet,S=new WeakSet,x=new WeakSet,W=new WeakSet,C=new WeakSet,O=new WeakSet,T=new WeakSet,A=new WeakSet,H=new WeakSet,M=new WeakSet,B=new WeakSet,P=new WeakSet,q=new WeakSet,N=new WeakSet,G=new WeakSet,j=new WeakSet,D=new WeakSet,I=new WeakSet,V=new WeakSet,$=new WeakSet;function R(){r(c)(this,k,z).call(this),r(c)(this,b,F).call(this),r(c)(this,g,U).call(this)}function z(){r(l)(this,m).innerHTML="",this.showTags?r(l)(this,m).append(...r(c)(this,W,Z).call(this)):r(l)(this,m).appendChild(r(c)(this,A,ie).call(this))}function U(){const e=[];r(l)(this,w).innerHTML="",this.clearable&&e.push(r(c)(this,q,ce).call(this)),this.isAlwaysOpened||e.push(r(c)(this,G,re).call(this,this.isOpened)),e.length&&r(l)(this,w).append(...e)}function Y(){if(!this.isAlwaysOpened&&r(l)(this,f)){const e=this.isOpened?this.iconElements.arrowUp:this.iconElements.arrowDown;u(e,r(l)(this,f))}}function F(){var e;(null===(e=this.value)||void 0===e?void 0:e.length)?r(l)(this,v).removeAttribute("placeholder"):r(l)(this,v).setAttribute("placeholder",this.placeholder),this.searchable?this.srcElement.classList.remove("treeselect-input--unsearchable"):this.srcElement.classList.add("treeselect-input--unsearchable"),r(l)(this,v).value=this.searchText}function J(){this.isOpened=!this.isOpened,r(c)(this,L,Y).call(this),this.isOpened?r(c)(this,V,me).call(this):r(c)(this,$,ve).call(this)}function K(e,t,s){const i=document.createElement("div");return i.classList.add("treeselect-input"),i.setAttribute("tabindex","-1"),i.addEventListener("mousedown",(e=>r(c)(this,S,X).call(this,e))),i.append(e,t,s),i}function X(e){e.preventDefault(),this.isOpened||r(c)(this,_,J).call(this),this.focus()}function Q(){const e=document.createElement("div");return e.classList.add("treeselect-input__tags"),e}function Z(){return this.value.map((e=>{const t=document.createElement("div");t.classList.add("treeselect-input__tags-element"),t.setAttribute("tabindex","-1"),t.setAttribute("tag-id",e.id.toString()),t.setAttribute("title",e.name);const s=r(c)(this,O,te).call(this,e.name),i=r(c)(this,T,se).call(this);return t.addEventListener("mousedown",(t=>r(c)(this,C,ee).call(this,t,e.id))),t.append(s,i),t}))}function ee(e,t){e.preventDefault(),e.stopPropagation(),this.focus(),this.removeItem(t)}function te(e){const t=document.createElement("span");return t.classList.add("treeselect-input__tags-name"),t.innerHTML=e,t}function se(){const e=document.createElement("span");return e.classList.add("treeselect-input__tags-cross"),u(this.iconElements.cross,e),e}function ie(){const e=document.createElement("span");return e.classList.add("treeselect-input__tags-count"),this.value.length?(e.innerHTML=1===this.value.length?this.value[0].name:`${this.value.length} ${this.tagsCountText}`,e):(e.innerHTML="",e)}function ne(){const e=document.createElement("input");return e.classList.add("treeselect-input__edit"),e.setAttribute("id",this.id),this.disabled&&e.setAttribute("tabindex","-1"),e.addEventListener("keydown",(e=>r(c)(this,M,le).call(this,e))),e.addEventListener("input",(t=>r(c)(this,B,oe).call(this,t,e))),e}function le(e){"Backspace"!==e.key||this.searchText.length||!this.value.length||this.showTags||this.clear(),"Backspace"===e.key&&!this.searchText.length&&this.value.length&&this.removeItem(this.value[this.value.length-1].id),"Space"!==e.code||this.searchText&&this.searchable||r(c)(this,_,J).call(this)}function oe(e,t){e.stopPropagation();const s=this.searchText,i=t.value.trim();if(0!==s.length||0!==i.length){if(this.searchable){const t=e.target.value;r(c)(this,I,pe).call(this,t),this.isOpened||r(c)(this,_,J).call(this)}else t.value="";this.searchText=t.value}else t.value=""}function ae(){const e=document.createElement("div");return e.classList.add("treeselect-input__operators"),e}function ce(){const e=document.createElement("span");return e.classList.add("treeselect-input__clear"),e.setAttribute("tabindex","-1"),u(this.iconElements.clear,e),e.addEventListener("mousedown",(e=>r(c)(this,N,he).call(this,e))),e}function he(e){var t;e.preventDefault(),e.stopPropagation(),null===(t=r(l)(this,v))||void 0===t||t.focus(),(this.searchText.length||this.value.length)&&this.clear()}function re(e){r(a)(this,f,document.createElement("span")),r(l)(this,f).classList.add("treeselect-input__arrow");const t=e?this.iconElements.arrowUp:this.iconElements.arrowDown;return u(t,r(l)(this,f)),r(l)(this,f).addEventListener("mousedown",(e=>r(c)(this,j,de).call(this,e))),r(l)(this,f)}function de(e){e.stopPropagation(),e.preventDefault(),this.focus(),r(c)(this,_,J).call(this)}function ue(){this.srcElement.dispatchEvent(new CustomEvent("input",{detail:this.value}))}function pe(e){this.srcElement.dispatchEvent(new CustomEvent("search",{detail:e}))}function me(){this.srcElement.dispatchEvent(new CustomEvent("open"))}function ve(){this.srcElement.dispatchEvent(new CustomEvent("close"))}var we=class{focus(){r(l)(this,v).focus()}blur(){this.isOpened&&r(c)(this,_,J).call(this)}updateValue(e){this.value=e,r(c)(this,k,z).call(this),r(c)(this,b,F).call(this)}removeItem(e){this.value=this.value.filter((t=>t.id!==e)),r(c)(this,D,ue).call(this),r(c)(this,k,z).call(this),r(c)(this,b,F).call(this)}clear(){this.value=[],this.searchText="",r(c)(this,I,pe).call(this,""),r(c)(this,D,ue).call(this),r(c)(this,k,z).call(this),r(c)(this,b,F).call(this)}openClose(){r(c)(this,_,J).call(this)}constructor({value:e,showTags:t,tagsCountText:s,clearable:i,isAlwaysOpened:n,searchable:d,placeholder:u,disabled:p,id:z,iconElements:U}){r(h)(this,E),r(h)(this,k),r(h)(this,g),r(h)(this,L),r(h)(this,b),r(h)(this,_),r(h)(this,y),r(h)(this,S),r(h)(this,x),r(h)(this,W),r(h)(this,C),r(h)(this,O),r(h)(this,T),r(h)(this,A),r(h)(this,H),r(h)(this,M),r(h)(this,B),r(h)(this,P),r(h)(this,q),r(h)(this,N),r(h)(this,G),r(h)(this,j),r(h)(this,D),r(h)(this,I),r(h)(this,V),r(h)(this,$),r(o)(this,m,{writable:!0,value:void 0}),r(o)(this,v,{writable:!0,value:void 0}),r(o)(this,w,{writable:!0,value:void 0}),r(o)(this,f,{writable:!0,value:void 0}),this.value=e,this.showTags=t,this.tagsCountText=s,this.searchable=d,this.placeholder=u,this.clearable=i,this.isAlwaysOpened=n,this.disabled=p,this.id=z,this.iconElements=U,this.isOpened=!1,this.searchText="",r(a)(this,m,r(c)(this,x,Q).call(this)),r(a)(this,v,r(c)(this,H,ne).call(this)),r(a)(this,w,r(c)(this,P,ae).call(this)),r(a)(this,f,null),this.srcElement=r(c)(this,y,K).call(this,r(l)(this,m),r(l)(this,v),r(l)(this,w)),r(c)(this,E,R).call(this)}};const fe=(e,t,s="",i=0)=>e.reduce(((e,n)=>{var l;const o=!!(null===(l=n.children)||void 0===l?void 0:l.length),a=i>=t&&o,c=i>t;if(e.push({id:n.value,name:n.name,childOf:s,isGroup:o,checked:!1,isPartialChecked:!1,level:i,isClosed:a,hidden:c}),o){const s=fe(n.children,t,n.value,i+1);e.push(...s)}return e}),[]),Ee=({id:e,checked:t},s)=>{s.forEach((i=>{i.childOf===e&&(i.checked=null==t||t,i.isPartialChecked=!1,i.isGroup&&Ee(i,s))}))},ke=(e,t)=>{const s=t.find((t=>t.id===e)),i=t.filter((e=>e.childOf===(null==s?void 0:s.id)));if(!s)return;const n=i.every((e=>e.checked)),l=i.some((e=>e.isPartialChecked||e.checked))&&!n,o=!n&&!l;n&&(s.checked=!0,s.isPartialChecked=!1),l&&(s.checked=!1,s.isPartialChecked=!0),o&&(s.checked=!1,s.isPartialChecked=!1),s.childOf&&ke(s.childOf,t)},ge=({id:e,isGroup:t,childOf:s,checked:i},n)=>{t&&Ee({id:e,checked:i},n),s&&ke(s,n)},Le=(e,t)=>t.reduce(((s,i)=>(i.childOf===e&&(s.push(i),i.isGroup&&s.push(...Le(i.id,t))),s)),[]),be=(e,t)=>t.reduce(((s,i)=>(i.id===e&&(s.push(i),i.childOf&&s.push(...be(i.childOf,t))),s)),[]),_e=e=>{const{onlyGroupsIds:t,allItems:s}=e.reduce(((e,t)=>t.checked?(t.isGroup&&e.onlyGroupsIds.push(t.id),e.allItems.push(t),e):e),{onlyGroupsIds:[],allItems:[]});return s.filter((e=>!t.some((t=>t===e.childOf))))},ye=(e,{id:t,isClosed:s})=>{e.filter((e=>e.childOf===t)).forEach((t=>{t.hidden=null!=s&&s,t.isGroup&&!t.isClosed&&ye(e,{id:t.id,isClosed:s})}))},Se=(e,t)=>{const s=((e,t)=>e.reduce(((s,i)=>{if(i.name.toLowerCase().includes(t.toLowerCase())){if(s.push(i),i.isGroup){const t=Le(i.id,e);s.push(...t)}if(i.childOf){const t=be(i.childOf,e);s.push(...t)}}return s}),[]))(e,t);e.forEach((t=>{s.some((e=>e.id===t.id))?(t.isGroup&&(t.isClosed=!1,ye(e,t)),t.hidden=!1):t.hidden=!0}))},xe=(e,t)=>{(e=>{e.forEach((e=>{e.checked=!1,e.isPartialChecked=!1}))})(t);t.filter((t=>e.some((e=>e===t.id)))).forEach((e=>{e.checked=!0,e.isPartialChecked=!1,ge(e,t)}))},We=(e,t,s,i)=>{xe(e,t),Ce(t,s,i)},Ce=(e,t,s)=>{e.forEach((i=>{const n=t.querySelector(`[input-id="${i.id}"]`),l=qe(n);n.checked=i.checked,Oe(i,l),Te(i,l),Ae(i,l,s),He(i,l),Be(i,l,e),Me(i,n,s)})),Pe(e,t)},Oe=(e,t)=>{e.checked?t.classList.add("treeselect-list__item--checked"):t.classList.remove("treeselect-list__item--checked")},Te=(e,t)=>{e.isPartialChecked?t.classList.add("treeselect-list__item--partial-checked"):t.classList.remove("treeselect-list__item--partial-checked")},Ae=(e,t,s)=>{if(e.isGroup){const i=t.querySelector(".treeselect-list__item-icon"),n=e.isClosed?s.arrowRight:s.arrowDown;u(n,i),e.isClosed?t.classList.add("treeselect-list__item--closed"):t.classList.remove("treeselect-list__item--closed")}},He=(e,t)=>{e.hidden?t.classList.add("treeselect-list__item--hidden"):t.classList.remove("treeselect-list__item--hidden")},Me=(e,t,s)=>{const i=t.parentNode.querySelector(".treeselect-list__item-checkbox-icon");e.checked?u(s.check,i):e.isPartialChecked?u(s.partialCheck,i):i.innerHTML=""},Be=(e,t,s)=>{if(0===e.level){const i=s.some((t=>t.isGroup&&t.level===e.level)),n=!e.isGroup&&i?"20px":"5px";t.style.paddingLeft=e.isGroup?"0":n}else t.style.paddingLeft=e.isGroup?20*e.level+"px":20*e.level+20+"px";t.setAttribute("level",e.level.toString()),t.setAttribute("group",e.isGroup.toString())},Pe=(e,t)=>{const s=e.some((e=>!e.hidden)),i=t.querySelector(".treeselect-list__empty");s?i.classList.add("treeselect-list__empty--hidden"):i.classList.remove("treeselect-list__empty--hidden")},qe=e=>e.parentNode.parentNode,Ne=(e,t)=>t.find((t=>t.id.toString()===e));var Ge=new WeakMap,je=new WeakMap,De=new WeakSet,Ie=new WeakSet,Ve=new WeakSet,$e=new WeakSet,Re=new WeakSet,ze=new WeakSet,Ue=new WeakSet,Ye=new WeakSet,Fe=new WeakSet,Je=new WeakSet,Ke=new WeakSet,Xe=new WeakSet,Qe=new WeakSet,Ze=new WeakSet,et=new WeakSet,tt=new WeakSet,st=new WeakSet,it=new WeakSet,nt=new WeakSet,lt=new WeakSet,ot=new WeakSet,at=new WeakSet,ct=new WeakSet,ht=new WeakSet,rt=new WeakSet;function dt(e,t){if(!e)return;const s=e.querySelector(".treeselect-list__item-checkbox").getAttribute("input-id"),i=Ne(s,this.flattedOptions),n=e.querySelector(".treeselect-list__item-icon");"ArrowLeft"!==t||i.isClosed||n.dispatchEvent(new Event("mousedown")),"ArrowRight"===t&&i.isClosed&&n.dispatchEvent(new Event("mousedown"))}function ut(e,t){const s=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter((e=>"none"!==window.getComputedStyle(qe(e)).display));if(s.length)if(e){const e=s.findIndex((e=>qe(e).classList.contains("treeselect-list__item--focused")));qe(s[e]).classList.remove("treeselect-list__item--focused");const n="ArrowDown"===t?e+1:e-1,l="ArrowDown"===t?0:s.length-1;var i;const o=null!==(i=s[n])&&void 0!==i?i:s[l],a=!s[n],c=qe(o);c.classList.add("treeselect-list__item--focused");const h=this.srcElement.getBoundingClientRect(),r=c.getBoundingClientRect();if(a&&"ArrowDown"===t)return void this.srcElement.scroll(0,0);if(a&&"ArrowUp"===t)return void this.srcElement.scroll(0,this.srcElement.scrollHeight);if(h.y+h.height<r.y+r.height)return void this.srcElement.scroll(0,this.srcElement.scrollTop+r.height);if(h.y>r.y)return void this.srcElement.scroll(0,this.srcElement.scrollTop-r.height)}else{qe(s[0]).classList.add("treeselect-list__item--focused")}}function pt(){const e=r(c)(this,$e,mt).call(this),t=r(c)(this,Ue,ft).call(this,this.options);e.append(...t);const s=r(c)(this,Ye,Et).call(this);s&&e.append(s);const i=r(c)(this,Fe,kt).call(this);return e.append(i),e}function mt(){const e=document.createElement("div");return e.classList.add("treeselect-list"),e.addEventListener("mouseout",(e=>r(c)(this,Re,vt).call(this,e))),e.addEventListener("mousemove",(()=>r(c)(this,ze,wt).call(this))),e}function vt(e){e.stopPropagation(),r(l)(this,Ge)&&r(l)(this,je)&&r(l)(this,Ge).classList.add("treeselect-list__item--focused")}function wt(){r(a)(this,je,!0)}function ft(e){return e.reduce(((e,t)=>{var s;if(null===(s=t.children)||void 0===s?void 0:s.length){const s=r(c)(this,Je,gt).call(this,t),i=r(c)(this,Ue,ft).call(this,t.children);return s.append(...i),e.push(s),e}const i=r(c)(this,Ke,Lt).call(this,t,!1);return e.push(i),e}),[])}function Et(){if(!this.listSlotHtmlComponent)return null;const e=document.createElement("div");return e.classList.add("treeselect-list__slot"),e.appendChild(this.listSlotHtmlComponent),e}function kt(){const e=document.createElement("div");e.classList.add("treeselect-list__empty"),e.setAttribute("title",this.emptyText);const t=document.createElement("span");t.classList.add("treeselect-list__empty-icon"),u(this.iconElements.attention,t);const s=document.createElement("span");return s.classList.add("treeselect-list__empty-text"),s.innerHTML=this.emptyText,e.append(t,s),e}function gt(e){const t=document.createElement("div");t.setAttribute("group-container-id",e.value.toString()),t.classList.add("treeselect-list__group-container");const s=r(c)(this,Ke,Lt).call(this,e,!0);return t.appendChild(s),t}function Lt(e,t){const s=r(c)(this,Xe,bt).call(this,e);if(t){const e=r(c)(this,tt,xt).call(this);s.appendChild(e)}const i=r(c)(this,it,Ct).call(this,e),n=r(c)(this,nt,Ot).call(this,e);return s.append(i,n),s}function bt(e){const t=document.createElement("div");return t.setAttribute("tabindex","-1"),t.setAttribute("title",e.name),t.classList.add("treeselect-list__item"),t.addEventListener("mouseover",(()=>r(c)(this,Qe,_t).call(this,t)),!0),t.addEventListener("mouseout",(()=>r(c)(this,Ze,yt).call(this,t)),!0),t.addEventListener("mousedown",(t=>r(c)(this,et,St).call(this,t,e))),t}function _t(e){r(l)(this,je)&&r(c)(this,at,Ht).call(this,!0,e)}function yt(e){r(l)(this,je)&&(r(c)(this,at,Ht).call(this,!1,e),r(a)(this,Ge,e))}function St(e,t){e.stopPropagation();const s=e.target.querySelector(".treeselect-list__item-checkbox");s.checked=!s.checked,r(c)(this,lt,Tt).call(this,s,t)}function xt(){const e=document.createElement("span");return e.setAttribute("tabindex","-1"),e.classList.add("treeselect-list__item-icon"),u(this.iconElements.arrowDown,e),e.addEventListener("mousedown",(e=>r(c)(this,st,Wt).call(this,e))),e}function Wt(e){e.stopPropagation(),r(c)(this,ot,At).call(this,e)}function Ct(e){const t=document.createElement("div");t.classList.add("treeselect-list__item-checkbox-container");const s=document.createElement("span");s.classList.add("treeselect-list__item-checkbox-icon"),s.innerHTML="";const i=document.createElement("input");return i.setAttribute("tabindex","-1"),i.setAttribute("type","checkbox"),i.setAttribute("input-id",e.value.toString()),i.classList.add("treeselect-list__item-checkbox"),t.append(s,i),t}function Ot(e){const t=document.createElement("label");return t.innerHTML=e.name,t.classList.add("treeselect-list__item-label"),t}function Tt(e,t){const s=this.flattedOptions.find((e=>e.id===t.value));s&&(s.checked=e.checked,s.isPartialChecked=!1,ge(s,this.flattedOptions),Ce(this.flattedOptions,this.srcElement,this.iconElements),r(c)(this,rt,Pt).call(this))}function At(e){var t,s;const i=null===(t=e.target)||void 0===t||null===(s=t.parentNode)||void 0===s?void 0:s.querySelector("[input-id]");var n;const l=null!==(n=null==i?void 0:i.getAttribute("input-id"))&&void 0!==n?n:null,o=Ne(l,this.flattedOptions);o&&(o.isClosed=!o.isClosed,ye(this.flattedOptions,o),Ce(this.flattedOptions,this.srcElement,this.iconElements),r(c)(this,ht,Bt).call(this))}function Ht(e,t){const s="treeselect-list__item--focused";if(e){const e=Array.from(this.srcElement.querySelectorAll(`.${s}`));e.length&&e.forEach((e=>e.classList.remove(s))),t.classList.add(s)}else t.classList.remove(s)}function Mt(){var e;this.selectedNodes={nodes:(e=this.flattedOptions,e.filter((e=>e.checked&&!e.isGroup))),groupedNodes:_e(this.flattedOptions)}}function Bt(){this.srcElement.dispatchEvent(new CustomEvent("arrow-click"))}function Pt(){r(c)(this,ct,Mt).call(this),this.srcElement.dispatchEvent(new CustomEvent("input",{detail:this.selectedNodes}))}var qt=class{updateValue(e){We(e,this.flattedOptions,this.srcElement,this.iconElements),r(c)(this,ct,Mt).call(this)}updateSearchValue(e){if(e===this.searchText)return;const t=""===this.searchText&&""!==e;this.searchText=e,t&&(this.flattedOptionsBeforeSearch=JSON.parse(JSON.stringify(this.flattedOptions))),""===this.searchText&&(this.flattedOptions=this.flattedOptionsBeforeSearch.map((e=>{const t=this.flattedOptions.find((t=>t.id===e.id));return t.isClosed=e.isClosed,t.hidden=e.hidden,t})),this.flattedOptionsBeforeSearch=[]),this.searchText&&Se(this.flattedOptions,e),Ce(this.flattedOptions,this.srcElement,this.iconElements),this.focusFirstListElement()}callKeyAction(e){r(a)(this,je,!1);const t=this.srcElement.querySelector(".treeselect-list__item--focused");"Enter"===e&&t&&t.dispatchEvent(new Event("mousedown")),"ArrowLeft"!==e&&"ArrowRight"!==e||r(c)(this,De,dt).call(this,t,e),"ArrowDown"!==e&&"ArrowUp"!==e||r(c)(this,Ie,ut).call(this,t,e)}focusFirstListElement(){const e="treeselect-list__item--focused",t=this.srcElement.querySelector(`.${e}`),s=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter((e=>"none"!==window.getComputedStyle(qe(e)).display));if(!s.length)return;t&&t.classList.remove(e);qe(s[0]).classList.add(e)}constructor({options:e,value:t,openLevel:s,listSlotHtmlComponent:i,emptyText:n,iconElements:l}){r(h)(this,De),r(h)(this,Ie),r(h)(this,Ve),r(h)(this,$e),r(h)(this,Re),r(h)(this,ze),r(h)(this,Ue),r(h)(this,Ye),r(h)(this,Fe),r(h)(this,Je),r(h)(this,Ke),r(h)(this,Xe),r(h)(this,Qe),r(h)(this,Ze),r(h)(this,et),r(h)(this,tt),r(h)(this,st),r(h)(this,it),r(h)(this,nt),r(h)(this,lt),r(h)(this,ot),r(h)(this,at),r(h)(this,ct),r(h)(this,ht),r(h)(this,rt),r(o)(this,Ge,{writable:!0,value:null}),r(o)(this,je,{writable:!0,value:!0}),this.options=e,this.value=t,this.openLevel=null!=s?s:0,this.listSlotHtmlComponent=null!=i?i:null,this.emptyText=null!=n?n:"No results found...",this.iconElements=l,this.searchText="",this.flattedOptions=fe(this.options,this.openLevel),this.flattedOptionsBeforeSearch=this.flattedOptions,this.selectedNodes={nodes:[],groupedNodes:[]},this.srcElement=r(c)(this,Ve,pt).call(this),this.updateValue(this.value),(e=>{const{duplications:t}=e.reduce(((e,t)=>(e.allItems.some((e=>e.toString()===t.id.toString()))&&e.duplications.push(t.id),e.allItems.push(t.id),e)),{duplications:[],allItems:[]});t.length&&console.error(`Validation: You have duplicated values: ${t.join(", ")}! You should use unique values.`)})(this.flattedOptions)}};const Nt=e=>e.map((e=>e.id));var Gt=new WeakMap,jt=new WeakMap,Dt=new WeakMap,It=new WeakMap,Vt=new WeakMap,$t=new WeakMap,Rt=new WeakMap,zt=new WeakSet,Ut=new WeakSet,Yt=new WeakSet,Ft=new WeakSet,Jt=new WeakSet,Kt=new WeakSet,Xt=new WeakSet,Qt=new WeakSet,Zt=new WeakSet,es=new WeakSet,ts=new WeakSet,ss=new WeakSet,is=new WeakSet,ns=new WeakSet;function ls(){const e=this.parentHtmlContainer;e.classList.add("treeselect");const t=new qt({options:this.options,value:this.value,openLevel:this.openLevel,listSlotHtmlComponent:this.listSlotHtmlComponent,emptyText:this.emptyText,iconElements:this.iconElements}),{groupedNodes:s,nodes:i}=t.selectedNodes,n=new we({value:this.grouped?s:i,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});return this.appendToBody&&r(a)(this,Dt,new ResizeObserver((()=>this.updateListPosition()))),n.srcElement.addEventListener("input",(e=>r(c)(this,Ut,os).call(this,e,t))),n.srcElement.addEventListener("open",(()=>r(c)(this,Qt,us).call(this))),n.srcElement.addEventListener("keydown",(e=>r(c)(this,Yt,as).call(this,e,t))),n.srcElement.addEventListener("search",(e=>r(c)(this,Ft,cs).call(this,e,t))),n.srcElement.addEventListener("focus",(()=>r(c)(this,Jt,hs).call(this)),!0),this.alwaysOpen||n.srcElement.addEventListener("close",(()=>r(c)(this,Zt,ps).call(this))),t.srcElement.addEventListener("mouseup",(()=>n.focus()),!0),t.srcElement.addEventListener("input",(e=>r(c)(this,Kt,rs).call(this,e,n))),t.srcElement.addEventListener("arrow-click",(()=>r(c)(this,Xt,ds).call(this,n))),e.append(n.srcElement),{container:e,list:t,input:n}}function os(e,t){const s=Nt(e.detail);t.updateValue(s);const{nodes:i}=t.selectedNodes;this.value=Nt(i),r(c)(this,ns,Es).call(this)}function as(e,t){this.isListOpened&&t.callKeyAction(e.key)}function cs(e,t){t.updateSearchValue(e.detail),this.updateListPosition()}function hs(){r(c)(this,ts,vs).call(this,!0),r(l)(this,$t)&&r(l)(this,$t)&&r(l)(this,Rt)&&(document.addEventListener("mousedown",r(l)(this,$t),!0),document.addEventListener("focus",r(l)(this,$t),!0),window.addEventListener("blur",r(l)(this,Rt)))}function rs(e,t){const{groupedNodes:s,nodes:i}=e.detail,n=this.grouped?s:i;t.updateValue(n),this.value=Nt(i),t.focus(),r(c)(this,ns,Es).call(this)}function ds(e){e.focus(),this.updateListPosition()}function us(){if(this.isListOpened=!0,r(l)(this,It)&&r(l)(this,Vt)&&(window.addEventListener("scroll",r(l)(this,It),!0),window.addEventListener("resize",r(l)(this,Vt))),r(l)(this,Gt)&&this.srcElement){var e;if(this.appendToBody)document.body.appendChild(r(l)(this,Gt).srcElement),null===(e=r(l)(this,Dt))||void 0===e||e.observe(this.srcElement);else this.srcElement.appendChild(r(l)(this,Gt).srcElement);this.updateListPosition(),r(c)(this,ss,ws).call(this,!0),r(l)(this,Gt).focusFirstListElement()}}function ps(){if(this.isListOpened=!1,r(l)(this,It)&&r(l)(this,Vt)&&(window.removeEventListener("scroll",r(l)(this,It),!0),window.removeEventListener("resize",r(l)(this,Vt))),!r(l)(this,Gt)||!this.srcElement)return;if(this.appendToBody?document.body.contains(r(l)(this,Gt).srcElement):this.srcElement.contains(r(l)(this,Gt).srcElement)){var e;if(this.appendToBody)document.body.removeChild(r(l)(this,Gt).srcElement),null===(e=r(l)(this,Dt))||void 0===e||e.disconnect();else this.srcElement.removeChild(r(l)(this,Gt).srcElement);r(c)(this,ss,ws).call(this,!1)}}function ms(e,t){if(!r(l)(this,Gt)||!r(l)(this,jt))return;const s=t?"treeselect-list--top-to-body":"treeselect-list--top",i=t?"treeselect-list--bottom-to-body":"treeselect-list--bottom";e?(r(l)(this,Gt).srcElement.classList.add(s),r(l)(this,Gt).srcElement.classList.remove(i),r(l)(this,jt).srcElement.classList.add("treeselect-input--top"),r(l)(this,jt).srcElement.classList.remove("treeselect-input--bottom")):(r(l)(this,Gt).srcElement.classList.remove(s),r(l)(this,Gt).srcElement.classList.add(i),r(l)(this,jt).srcElement.classList.remove("treeselect-input--top"),r(l)(this,jt).srcElement.classList.add("treeselect-input--bottom"))}function vs(e){r(l)(this,jt)&&r(l)(this,Gt)&&(e?(r(l)(this,jt).srcElement.classList.add("treeselect-input--focused"),r(l)(this,Gt).srcElement.classList.add("treeselect-list--focused")):(r(l)(this,jt).srcElement.classList.remove("treeselect-input--focused"),r(l)(this,Gt).srcElement.classList.remove("treeselect-list--focused")))}function ws(e){var t,s,i,n;e?null===(t=r(l)(this,jt))||void 0===t||t.srcElement.classList.add("treeselect-input--opened"):null===(s=r(l)(this,jt))||void 0===s||s.srcElement.classList.remove("treeselect-input--opened"),this.staticList?null===(i=r(l)(this,Gt))||void 0===i||i.srcElement.classList.add("treeselect-list--static"):null===(n=r(l)(this,Gt))||void 0===n||n.srcElement.classList.remove("treeselect-list--static")}function fs(e){r(l)(this,It)&&r(l)(this,Vt)&&r(l)(this,$t)&&r(l)(this,Rt)&&(this.alwaysOpen&&!e||(window.removeEventListener("scroll",r(l)(this,It),!0),window.removeEventListener("resize",r(l)(this,Vt))),document.removeEventListener("click",r(l)(this,$t),!0),document.removeEventListener("focus",r(l)(this,$t),!0),window.removeEventListener("blur",r(l)(this,Rt)))}function Es(){var e;null===(e=this.srcElement)||void 0===e||e.dispatchEvent(new CustomEvent("input",{detail:this.value})),this.inputCallback&&this.inputCallback(this.value)}var ks=class{mount(){var e;this.destroy();const{container:t,list:s,input:i}=r(c)(this,zt,ls).call(this);this.srcElement=t,r(a)(this,Gt,s),r(a)(this,jt,i),r(a)(this,It,this.scrollWindowHandler.bind(this)),r(a)(this,Vt,this.scrollWindowHandler.bind(this)),r(a)(this,$t,this.focusWindowHandler.bind(this)),r(a)(this,Rt,this.blurWindowHandler.bind(this)),this.alwaysOpen&&(null===(e=r(l)(this,jt))||void 0===e||e.openClose()),this.disabled&&this.srcElement.classList.add("treeselect--disabled")}updateValue(e){const t=r(l)(this,Gt);if(t){var s;t.updateValue(e);const{groupedNodes:i,nodes:n}=t.selectedNodes,o=this.grouped?i:n;null===(s=r(l)(this,jt))||void 0===s||s.updateValue(o)}}destroy(){this.srcElement&&(r(c)(this,Zt,ps).call(this),this.srcElement.innerHTML="",this.srcElement=null,r(c)(this,is,fs).call(this,!0))}focus(){r(l)(this,jt)&&r(l)(this,jt).focus()}toggleOpenClose(){r(l)(this,jt)&&(r(l)(this,jt).openClose(),r(l)(this,jt).focus())}scrollWindowHandler(){this.updateListPosition()}focusWindowHandler(e){var t,s;var i;(null===(t=this.srcElement)||void 0===t?void 0:t.contains(e.target))||(null===(s=r(l)(this,Gt))||void 0===s?void 0:s.srcElement.contains(e.target))||(null===(i=r(l)(this,jt))||void 0===i||i.blur(),r(c)(this,is,fs).call(this,!1),r(c)(this,ts,vs).call(this,!1))}blurWindowHandler(){var e;null===(e=r(l)(this,jt))||void 0===e||e.blur(),r(c)(this,is,fs).call(this,!1),r(c)(this,ts,vs).call(this,!1)}updateListPosition(){var e;const t=this.srcElement,s=null===(e=r(l)(this,Gt))||void 0===e?void 0:e.srcElement;if(!t||!s)return;s.style.transform="";const{y:i,height:n}=s.getBoundingClientRect(),{x:o,y:a,height:h,width:d}=t.getBoundingClientRect(),u=window.innerHeight-a-h,p=a>u&&a>=n&&u<n;this.appendToBody&&(s.style.transform=p?`translateY(${a-i-n}px)`:`translateY(${a+h-i}px)`,s.style.width=`${d}px`,s.style.left=`${o+window.scrollX}px`);const m=p?"top":"bottom";s.getAttribute("direction")!==m&&(s.setAttribute("direction",m),r(c)(this,es,ms).call(this,p,this.appendToBody))}constructor({parentHtmlContainer:e,value:t,options:s,openLevel:i,appendToBody:n,alwaysOpen:l,showTags:a,tagsCountText:c,clearable:d,searchable:u,placeholder:m,grouped:v,listSlotHtmlComponent:w,disabled:f,emptyText:E,staticList:k,id:g,iconElements:L,inputCallback:b}){r(h)(this,zt),r(h)(this,Ut),r(h)(this,Yt),r(h)(this,Ft),r(h)(this,Jt),r(h)(this,Kt),r(h)(this,Xt),r(h)(this,Qt),r(h)(this,Zt),r(h)(this,es),r(h)(this,ts),r(h)(this,ss),r(h)(this,is),r(h)(this,ns),r(o)(this,Gt,{writable:!0,value:null}),r(o)(this,jt,{writable:!0,value:null}),r(o)(this,Dt,{writable:!0,value:null}),r(o)(this,It,{writable:!0,value:null}),r(o)(this,Vt,{writable:!0,value:null}),r(o)(this,$t,{writable:!0,value:null}),r(o)(this,Rt,{writable:!0,value:null}),(({parentHtmlContainer:e,staticList:t,appendToBody:s})=>{e||console.error("Validation: parentHtmlContainer prop is required!"),t&&s&&console.error("Validation: You should set staticList to false if you use appendToBody!")})({parentHtmlContainer:e,staticList:k,appendToBody:n}),this.parentHtmlContainer=e,this.value=null!=t?t:[],this.options=null!=s?s:[],this.openLevel=null!=i?i:0,this.appendToBody=null==n||n,this.alwaysOpen=!(!l||f),this.showTags=null==a||a,this.tagsCountText=null!=c?c:"elements selected",this.clearable=null==d||d,this.searchable=null==u||u,this.placeholder=null!=m?m:"Search...",this.grouped=null==v||v,this.listSlotHtmlComponent=null!=w?w:null,this.disabled=null!=f&&f,this.emptyText=null!=E?E:"No results found...",this.staticList=!(!k||this.appendToBody),this.id=null!=g?g:"",this.iconElements=p(L),this.inputCallback=b,this.isListOpened=!1,this.srcElement=null,this.mount()}};
@@ -1 +1 @@
1
- const e={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>'},t=(e,t)=>{if(t.innerHTML="","string"==typeof e)t.innerHTML=e;else{const s=e.cloneNode(!0);t.appendChild(s)}},s=t=>{const s=t?{...t}:{};return Object.keys(e).forEach((t=>{s[t]||(s[t]=e[t])})),s};var i=class{#e;#t;#s;#i;constructor({value:e,showTags:t,tagsCountText:s,clearable:i,isAlwaysOpened:n,searchable:l,placeholder:o,disabled:r,id:c,iconElements:a}){this.value=e,this.showTags=t,this.tagsCountText=s,this.searchable=l,this.placeholder=o,this.clearable=i,this.isAlwaysOpened=n,this.disabled=r,this.id=c,this.iconElements=a,this.isOpened=!1,this.searchText="",this.#e=this.#n(),this.#t=this.#l(),this.#s=this.#o(),this.#i=null,this.srcElement=this.#r(this.#e,this.#t,this.#s),this.#c()}focus(){this.#t.focus()}blur(){this.isOpened&&this.#a()}updateValue(e){this.value=e,this.#d(),this.#h()}removeItem(e){this.value=this.value.filter((t=>t.id!==e)),this.#u(),this.#d(),this.#h()}clear(){this.value=[],this.searchText="",this.#p(""),this.#u(),this.#d(),this.#h()}openClose(){this.#a()}#c(){this.#d(),this.#h(),this.#m()}#d(){this.#e.innerHTML="",this.showTags?this.#e.append(...this.#v()):this.#e.appendChild(this.#E())}#m(){const e=[];this.#s.innerHTML="",this.clearable&&e.push(this.#w()),this.isAlwaysOpened||e.push(this.#L(this.isOpened)),e.length&&this.#s.append(...e)}#g(){if(!this.isAlwaysOpened&&this.#i){const e=this.isOpened?this.iconElements.arrowUp:this.iconElements.arrowDown;t(e,this.#i)}}#h(){this.value?.length?this.#t.removeAttribute("placeholder"):this.#t.setAttribute("placeholder",this.placeholder),this.searchable?this.srcElement.classList.remove("treeselect-input--unsearchable"):this.srcElement.classList.add("treeselect-input--unsearchable"),this.#t.value=this.searchText}#a(){this.isOpened=!this.isOpened,this.#g(),this.isOpened?this.#f():this.#C()}#r(e,t,s){const i=document.createElement("div");return i.classList.add("treeselect-input"),i.setAttribute("tabindex","-1"),i.addEventListener("mousedown",(e=>this.#y(e))),i.append(e,t,s),i}#y(e){e.preventDefault(),this.isOpened||this.#a(),this.focus()}#n(){const e=document.createElement("div");return e.classList.add("treeselect-input__tags"),e}#v(){return this.value.map((e=>{const t=document.createElement("div");t.classList.add("treeselect-input__tags-element"),t.setAttribute("tabindex","-1"),t.setAttribute("tag-id",e.id.toString()),t.setAttribute("title",e.name);const s=this.#b(e.name),i=this.#k();return t.addEventListener("mousedown",(t=>this.#x(t,e.id))),t.append(s,i),t}))}#x(e,t){e.preventDefault(),e.stopPropagation(),this.focus(),this.removeItem(t)}#b(e){const t=document.createElement("span");return t.classList.add("treeselect-input__tags-name"),t.innerHTML=e,t}#k(){const e=document.createElement("span");return e.classList.add("treeselect-input__tags-cross"),t(this.iconElements.cross,e),e}#E(){const e=document.createElement("span");return e.classList.add("treeselect-input__tags-count"),this.value.length?(e.innerHTML=1===this.value.length?this.value[0].name:`${this.value.length} ${this.tagsCountText}`,e):(e.innerHTML="",e)}#l(){const e=document.createElement("input");return e.classList.add("treeselect-input__edit"),e.setAttribute("id",this.id),this.disabled&&e.setAttribute("tabindex","-1"),e.addEventListener("keydown",(e=>this.#_(e))),e.addEventListener("input",(t=>this.#O(t,e))),e}#_(e){"Backspace"!==e.key||this.searchText.length||!this.value.length||this.showTags||this.clear(),"Backspace"===e.key&&!this.searchText.length&&this.value.length&&this.removeItem(this.value[this.value.length-1].id),"Space"!==e.code||this.searchText&&this.searchable||this.#a()}#O(e,t){e.stopPropagation();const s=this.searchText,i=t.value.trim();if(0!==s.length||0!==i.length){if(this.searchable){const t=e.target.value;this.#p(t),this.isOpened||this.#a()}else t.value="";this.searchText=t.value}else t.value=""}#o(){const e=document.createElement("div");return e.classList.add("treeselect-input__operators"),e}#w(){const e=document.createElement("span");return e.classList.add("treeselect-input__clear"),e.setAttribute("tabindex","-1"),t(this.iconElements.clear,e),e.addEventListener("mousedown",(e=>this.#T(e))),e}#T(e){e.preventDefault(),e.stopPropagation(),this.#t?.focus(),(this.searchText.length||this.value.length)&&this.clear()}#L(e){this.#i=document.createElement("span"),this.#i.classList.add("treeselect-input__arrow");const s=e?this.iconElements.arrowUp:this.iconElements.arrowDown;return t(s,this.#i),this.#i.addEventListener("mousedown",(e=>this.#A(e))),this.#i}#A(e){e.stopPropagation(),e.preventDefault(),this.focus(),this.#a()}#u(){this.srcElement.dispatchEvent(new CustomEvent("input",{detail:this.value}))}#p(e){this.srcElement.dispatchEvent(new CustomEvent("search",{detail:e}))}#f(){this.srcElement.dispatchEvent(new CustomEvent("open"))}#C(){this.srcElement.dispatchEvent(new CustomEvent("close"))}};const n=(e,t,s="",i=0)=>e.reduce(((e,l)=>{const o=!!l.children?.length,r=i>=t&&o,c=i>t;if(e.push({id:l.value,name:l.name,childOf:s,isGroup:o,checked:!1,isPartialChecked:!1,level:i,isClosed:r,hidden:c}),o){const s=n(l.children,t,l.value,i+1);e.push(...s)}return e}),[]),l=({id:e,checked:t},s)=>{s.forEach((i=>{i.childOf===e&&(i.checked=t??!0,i.isPartialChecked=!1,i.isGroup&&l(i,s))}))},o=(e,t)=>{const s=t.find((t=>t.id===e)),i=t.filter((e=>e.childOf===s?.id));if(!s)return;const n=i.every((e=>e.checked)),l=i.some((e=>e.isPartialChecked||e.checked))&&!n,r=!n&&!l;n&&(s.checked=!0,s.isPartialChecked=!1),l&&(s.checked=!1,s.isPartialChecked=!0),r&&(s.checked=!1,s.isPartialChecked=!1),s.childOf&&o(s.childOf,t)},r=({id:e,isGroup:t,childOf:s,checked:i},n)=>{t&&l({id:e,checked:i},n),s&&o(s,n)},c=(e,t)=>t.reduce(((s,i)=>(i.childOf===e&&(s.push(i),i.isGroup&&s.push(...c(i.id,t))),s)),[]),a=(e,t)=>t.reduce(((s,i)=>(i.id===e&&(s.push(i),i.childOf&&s.push(...a(i.childOf,t))),s)),[]),d=e=>{const{onlyGroupsIds:t,allItems:s}=e.reduce(((e,t)=>t.checked?(t.isGroup&&e.onlyGroupsIds.push(t.id),e.allItems.push(t),e):e),{onlyGroupsIds:[],allItems:[]});return s.filter((e=>!t.some((t=>t===e.childOf))))},h=(e,{id:t,isClosed:s})=>{e.filter((e=>e.childOf===t)).forEach((t=>{t.hidden=s??!1,t.isGroup&&!t.isClosed&&h(e,{id:t.id,isClosed:s})}))},u=(e,t)=>{const s=((e,t)=>e.reduce(((s,i)=>{if(i.name.toLowerCase().includes(t.toLowerCase())){if(s.push(i),i.isGroup){const t=c(i.id,e);s.push(...t)}if(i.childOf){const t=a(i.childOf,e);s.push(...t)}}return s}),[]))(e,t);e.forEach((t=>{s.some((e=>e.id===t.id))?(t.isGroup&&(t.isClosed=!1,h(e,t)),t.hidden=!1):t.hidden=!0}))},p=(e,t)=>{(e=>{e.forEach((e=>{e.checked=!1,e.isPartialChecked=!1}))})(t);t.filter((t=>e.some((e=>e===t.id)))).forEach((e=>{e.checked=!0,e.isPartialChecked=!1,r(e,t)}))},m=(e,t,s,i)=>{p(e,t),v(t,s,i)},v=(e,t,s)=>{e.forEach((i=>{const n=t.querySelector(`[input-id="${i.id}"]`),l=b(n);n.checked=i.checked,E(i,l),w(i,l),L(i,l,s),g(i,l),C(i,l,e),f(i,n,s)})),y(e,t)},E=(e,t)=>{e.checked?t.classList.add("treeselect-list__item--checked"):t.classList.remove("treeselect-list__item--checked")},w=(e,t)=>{e.isPartialChecked?t.classList.add("treeselect-list__item--partial-checked"):t.classList.remove("treeselect-list__item--partial-checked")},L=(e,s,i)=>{if(e.isGroup){const n=s.querySelector(".treeselect-list__item-icon"),l=e.isClosed?i.arrowRight:i.arrowDown;t(l,n),e.isClosed?s.classList.add("treeselect-list__item--closed"):s.classList.remove("treeselect-list__item--closed")}},g=(e,t)=>{e.hidden?t.classList.add("treeselect-list__item--hidden"):t.classList.remove("treeselect-list__item--hidden")},f=(e,s,i)=>{const n=s.parentNode.querySelector(".treeselect-list__item-checkbox-icon");e.checked?t(i.check,n):e.isPartialChecked?t(i.partialCheck,n):n.innerHTML=""},C=(e,t,s)=>{if(0===e.level){const i=s.some((t=>t.isGroup&&t.level===e.level)),n=!e.isGroup&&i?"20px":"5px";t.style.paddingLeft=e.isGroup?"0":n}else t.style.paddingLeft=e.isGroup?20*e.level+"px":20*e.level+20+"px";t.setAttribute("level",e.level.toString()),t.setAttribute("group",e.isGroup.toString())},y=(e,t)=>{const s=e.some((e=>!e.hidden)),i=t.querySelector(".treeselect-list__empty");s?i.classList.add("treeselect-list__empty--hidden"):i.classList.remove("treeselect-list__empty--hidden")},b=e=>e.parentNode.parentNode,k=(e,t)=>t.find((t=>t.id.toString()===e));var x=class{#I=null;#S=!0;constructor({options:e,value:t,openLevel:s,listSlotHtmlComponent:i,emptyText:l,iconElements:o}){this.options=e,this.value=t,this.openLevel=s??0,this.listSlotHtmlComponent=i??null,this.emptyText=l??"No results found...",this.iconElements=o,this.searchText="",this.flattedOptions=n(this.options,this.openLevel),this.flattedOptionsBeforeSearch=this.flattedOptions,this.selectedNodes={nodes:[],groupedNodes:[]},this.srcElement=this.#M(),this.updateValue(this.value),(e=>{const{duplications:t}=e.reduce(((e,t)=>(e.allItems.some((e=>e.toString()===t.id.toString()))&&e.duplications.push(t.id),e.allItems.push(t.id),e)),{duplications:[],allItems:[]});t.length&&console.error(`Validation: You have duplicated values: ${t.join(", ")}! You should use unique values.`)})(this.flattedOptions)}updateValue(e){m(e,this.flattedOptions,this.srcElement,this.iconElements),this.#H()}updateSearchValue(e){if(e===this.searchText)return;const t=""===this.searchText&&""!==e;this.searchText=e,t&&(this.flattedOptionsBeforeSearch=JSON.parse(JSON.stringify(this.flattedOptions))),""===this.searchText&&(this.flattedOptions=this.flattedOptionsBeforeSearch.map((e=>{const t=this.flattedOptions.find((t=>t.id===e.id));return t.isClosed=e.isClosed,t.hidden=e.hidden,t})),this.flattedOptionsBeforeSearch=[]),this.searchText&&u(this.flattedOptions,e),v(this.flattedOptions,this.srcElement,this.iconElements),this.focusFirstListElement()}callKeyAction(e){this.#S=!1;const t=this.srcElement.querySelector(".treeselect-list__item--focused");"Enter"===e&&t&&t.dispatchEvent(new Event("mousedown")),"ArrowLeft"!==e&&"ArrowRight"!==e||this.#B(t,e),"ArrowDown"!==e&&"ArrowUp"!==e||this.#N(t,e)}focusFirstListElement(){const e="treeselect-list__item--focused",t=this.srcElement.querySelector(`.${e}`),s=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter((e=>"none"!==window.getComputedStyle(b(e)).display));if(!s.length)return;t&&t.classList.remove(e);b(s[0]).classList.add(e)}#B(e,t){if(!e)return;const s=e.querySelector(".treeselect-list__item-checkbox").getAttribute("input-id"),i=k(s,this.flattedOptions),n=e.querySelector(".treeselect-list__item-icon");"ArrowLeft"!==t||i.isClosed||n.dispatchEvent(new Event("mousedown")),"ArrowRight"===t&&i.isClosed&&n.dispatchEvent(new Event("mousedown"))}#N(e,t){const s=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter((e=>"none"!==window.getComputedStyle(b(e)).display));if(s.length)if(e){const e=s.findIndex((e=>b(e).classList.contains("treeselect-list__item--focused")));b(s[e]).classList.remove("treeselect-list__item--focused");const i="ArrowDown"===t?e+1:e-1,n="ArrowDown"===t?0:s.length-1,l=s[i]??s[n],o=!s[i],r=b(l);r.classList.add("treeselect-list__item--focused");const c=this.srcElement.getBoundingClientRect(),a=r.getBoundingClientRect();if(o&&"ArrowDown"===t)return void this.srcElement.scroll(0,0);if(o&&"ArrowUp"===t)return void this.srcElement.scroll(0,this.srcElement.scrollHeight);if(c.y+c.height<a.y+a.height)return void this.srcElement.scroll(0,this.srcElement.scrollTop+a.height);if(c.y>a.y)return void this.srcElement.scroll(0,this.srcElement.scrollTop-a.height)}else{b(s[0]).classList.add("treeselect-list__item--focused")}}#M(){const e=this.#P(),t=this.#G(this.options);e.append(...t);const s=this.#D();s&&e.append(s);const i=this.#z();return e.append(i),e}#P(){const e=document.createElement("div");return e.classList.add("treeselect-list"),e.addEventListener("mouseout",(e=>this.#q(e))),e.addEventListener("mousemove",(()=>this.#R())),e}#q(e){e.stopPropagation(),this.#I&&this.#S&&this.#I.classList.add("treeselect-list__item--focused")}#R(){this.#S=!0}#G(e){return e.reduce(((e,t)=>{if(t.children?.length){const s=this.#F(t),i=this.#G(t.children);return s.append(...i),e.push(s),e}const s=this.#V(t,!1);return e.push(s),e}),[])}#D(){if(!this.listSlotHtmlComponent)return null;const e=document.createElement("div");return e.classList.add("treeselect-list__slot"),e.appendChild(this.listSlotHtmlComponent),e}#z(){const e=document.createElement("div");e.classList.add("treeselect-list__empty"),e.setAttribute("title",this.emptyText);const s=document.createElement("span");s.classList.add("treeselect-list__empty-icon"),t(this.iconElements.attention,s);const i=document.createElement("span");return i.classList.add("treeselect-list__empty-text"),i.innerHTML=this.emptyText,e.append(s,i),e}#F(e){const t=document.createElement("div");t.setAttribute("group-container-id",e.value.toString()),t.classList.add("treeselect-list__group-container");const s=this.#V(e,!0);return t.appendChild(s),t}#V(e,t){const s=this.#j(e);if(t){const e=this.#$();s.appendChild(e)}const i=this.#U(e),n=this.#W(e);return s.append(i,n),s}#j(e){const t=document.createElement("div");return t.setAttribute("tabindex","-1"),t.setAttribute("title",e.name),t.classList.add("treeselect-list__item"),t.addEventListener("mouseover",(()=>this.#K(t)),!0),t.addEventListener("mouseout",(()=>this.#Y(t)),!0),t.addEventListener("mousedown",(t=>this.#J(t,e))),t}#K(e){this.#S&&this.#X(!0,e)}#Y(e){this.#S&&(this.#X(!1,e),this.#I=e)}#J(e,t){e.stopPropagation();const s=e.target.querySelector(".treeselect-list__item-checkbox");s.checked=!s.checked,this.#Q(s,t)}#$(){const e=document.createElement("span");return e.setAttribute("tabindex","-1"),e.classList.add("treeselect-list__item-icon"),t(this.iconElements.arrowDown,e),e.addEventListener("mousedown",(e=>this.#Z(e))),e}#Z(e){e.stopPropagation(),this.#ee(e)}#U(e){const t=document.createElement("div");t.classList.add("treeselect-list__item-checkbox-container");const s=document.createElement("span");s.classList.add("treeselect-list__item-checkbox-icon"),s.innerHTML="";const i=document.createElement("input");return i.setAttribute("tabindex","-1"),i.setAttribute("type","checkbox"),i.setAttribute("input-id",e.value.toString()),i.classList.add("treeselect-list__item-checkbox"),t.append(s,i),t}#W(e){const t=document.createElement("label");return t.innerHTML=e.name,t.classList.add("treeselect-list__item-label"),t}#Q(e,t){const s=this.flattedOptions.find((e=>e.id===t.value));s&&(s.checked=e.checked,s.isPartialChecked=!1,r(s,this.flattedOptions),v(this.flattedOptions,this.srcElement,this.iconElements),this.#u())}#ee(e){const t=e.target?.parentNode?.querySelector("[input-id]"),s=t?.getAttribute("input-id")??null,i=k(s,this.flattedOptions);i&&(i.isClosed=!i.isClosed,h(this.flattedOptions,i),v(this.flattedOptions,this.srcElement,this.iconElements),this.#te())}#X(e,t){const s="treeselect-list__item--focused";if(e){const e=Array.from(this.srcElement.querySelectorAll(`.${s}`));e.length&&e.forEach((e=>e.classList.remove(s))),t.classList.add(s)}else t.classList.remove(s)}#H(){var e;this.selectedNodes={nodes:(e=this.flattedOptions,e.filter((e=>e.checked&&!e.isGroup))),groupedNodes:d(this.flattedOptions)}}#te(){this.srcElement.dispatchEvent(new CustomEvent("arrow-click"))}#u(){this.#H(),this.srcElement.dispatchEvent(new CustomEvent("input",{detail:this.selectedNodes}))}};const _=e=>e.map((e=>e.id));var O=class{#se=null;#ie=null;#ne=null;#le=null;#oe=null;#re=null;#ce=null;constructor({parentHtmlContainer:e,value:t,options:i,openLevel:n,appendToBody:l,alwaysOpen:o,showTags:r,tagsCountText:c,clearable:a,searchable:d,placeholder:h,grouped:u,listSlotHtmlComponent:p,disabled:m,emptyText:v,staticList:E,id:w,iconElements:L,inputCallback:g}){(({parentHtmlContainer:e,staticList:t,appendToBody:s})=>{e||console.error("Validation: parentHtmlContainer prop is required!"),t&&s&&console.error("Validation: You should set staticList to false if you use appendToBody!")})({parentHtmlContainer:e,staticList:E,appendToBody:l}),this.parentHtmlContainer=e,this.value=t??[],this.options=i??[],this.openLevel=n??0,this.appendToBody=l??!0,this.alwaysOpen=!(!o||m),this.showTags=r??!0,this.tagsCountText=c??"elements selected",this.clearable=a??!0,this.searchable=d??!0,this.placeholder=h??"Search...",this.grouped=u??!0,this.listSlotHtmlComponent=p??null,this.disabled=m??!1,this.emptyText=v??"No results found...",this.staticList=!(!E||this.appendToBody),this.id=w??"",this.iconElements=s(L),this.inputCallback=g,this.isListOpened=!1,this.srcElement=null,this.mount()}mount(){this.destroy();const{container:e,list:t,input:s}=this.#ae();this.srcElement=e,this.#se=t,this.#ie=s,this.#le=this.scrollWindowHandler.bind(this),this.#oe=this.scrollWindowHandler.bind(this),this.#re=this.focusWindowHandler.bind(this),this.#ce=this.blurWindowHandler.bind(this),this.alwaysOpen&&this.#ie?.openClose(),this.disabled&&this.srcElement.classList.add("treeselect--disabled")}updateValue(e){const t=this.#se;if(t){t.updateValue(e);const{groupedNodes:s,nodes:i}=t.selectedNodes,n=this.grouped?s:i;this.#ie?.updateValue(n)}}destroy(){this.srcElement&&(this.#de(),this.srcElement.innerHTML="",this.srcElement=null,this.#he(!0))}focus(){this.#ie&&this.#ie.focus()}toggleOpenClose(){this.#ie&&(this.#ie.openClose(),this.#ie.focus())}#ae(){const e=this.parentHtmlContainer;e.classList.add("treeselect");const t=new x({options:this.options,value:this.value,openLevel:this.openLevel,listSlotHtmlComponent:this.listSlotHtmlComponent,emptyText:this.emptyText,iconElements:this.iconElements}),{groupedNodes:s,nodes:n}=t.selectedNodes,l=new i({value:this.grouped?s:n,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});return this.appendToBody&&(this.#ne=new ResizeObserver((()=>this.updateListPosition()))),l.srcElement.addEventListener("input",(e=>this.#ue(e,t))),l.srcElement.addEventListener("open",(()=>this.#pe())),l.srcElement.addEventListener("keydown",(e=>this.#me(e,t))),l.srcElement.addEventListener("search",(e=>this.#ve(e,t))),l.srcElement.addEventListener("focus",(()=>this.#Ee()),!0),this.alwaysOpen||l.srcElement.addEventListener("close",(()=>this.#de())),t.srcElement.addEventListener("mouseup",(()=>l.focus()),!0),t.srcElement.addEventListener("input",(e=>this.#we(e,l))),t.srcElement.addEventListener("arrow-click",(()=>this.#Le(l))),e.append(l.srcElement),{container:e,list:t,input:l}}#ue(e,t){const s=_(e.detail);t.updateValue(s);const{nodes:i}=t.selectedNodes;this.value=_(i),this.#u()}#me(e,t){this.isListOpened&&t.callKeyAction(e.key)}#ve(e,t){t.updateSearchValue(e.detail),this.updateListPosition()}#Ee(){this.#ge(!0),this.#re&&this.#re&&this.#ce&&(document.addEventListener("mousedown",this.#re,!0),document.addEventListener("focus",this.#re,!0),window.addEventListener("blur",this.#ce))}#we(e,t){const{groupedNodes:s,nodes:i}=e.detail,n=this.grouped?s:i;t.updateValue(n),this.value=_(i),t.focus(),this.#u()}#Le(e){e.focus(),this.updateListPosition()}#pe(){this.isListOpened=!0,this.#le&&this.#oe&&(window.addEventListener("scroll",this.#le,!0),window.addEventListener("resize",this.#oe)),this.#se&&this.srcElement&&(this.appendToBody?(document.body.appendChild(this.#se.srcElement),this.#ne?.observe(this.srcElement)):this.srcElement.appendChild(this.#se.srcElement),this.updateListPosition(),this.#fe(!0),this.#se.focusFirstListElement())}#de(){if(this.isListOpened=!1,this.#le&&this.#oe&&(window.removeEventListener("scroll",this.#le,!0),window.removeEventListener("resize",this.#oe)),!this.#se||!this.srcElement)return;(this.appendToBody?document.body.contains(this.#se.srcElement):this.srcElement.contains(this.#se.srcElement))&&(this.appendToBody?(document.body.removeChild(this.#se.srcElement),this.#ne?.disconnect()):this.srcElement.removeChild(this.#se.srcElement),this.#fe(!1))}#Ce(e,t){if(!this.#se||!this.#ie)return;const s=t?"treeselect-list--top-to-body":"treeselect-list--top",i=t?"treeselect-list--bottom-to-body":"treeselect-list--bottom";e?(this.#se.srcElement.classList.add(s),this.#se.srcElement.classList.remove(i),this.#ie.srcElement.classList.add("treeselect-input--top"),this.#ie.srcElement.classList.remove("treeselect-input--bottom")):(this.#se.srcElement.classList.remove(s),this.#se.srcElement.classList.add(i),this.#ie.srcElement.classList.remove("treeselect-input--top"),this.#ie.srcElement.classList.add("treeselect-input--bottom"))}#ge(e){this.#ie&&this.#se&&(e?(this.#ie.srcElement.classList.add("treeselect-input--focused"),this.#se.srcElement.classList.add("treeselect-list--focused")):(this.#ie.srcElement.classList.remove("treeselect-input--focused"),this.#se.srcElement.classList.remove("treeselect-list--focused")))}#fe(e){e?this.#ie?.srcElement.classList.add("treeselect-input--opened"):this.#ie?.srcElement.classList.remove("treeselect-input--opened"),this.staticList?this.#se?.srcElement.classList.add("treeselect-list--static"):this.#se?.srcElement.classList.remove("treeselect-list--static")}#he(e){this.#le&&this.#oe&&this.#re&&this.#ce&&(this.alwaysOpen&&!e||(window.removeEventListener("scroll",this.#le,!0),window.removeEventListener("resize",this.#oe)),document.removeEventListener("click",this.#re,!0),document.removeEventListener("focus",this.#re,!0),window.removeEventListener("blur",this.#ce))}scrollWindowHandler(){this.updateListPosition()}focusWindowHandler(e){this.srcElement?.contains(e.target)||this.#se?.srcElement.contains(e.target)||(this.#ie?.blur(),this.#he(!1),this.#ge(!1))}blurWindowHandler(){this.#ie?.blur(),this.#he(!1),this.#ge(!1)}updateListPosition(){const e=this.srcElement,t=this.#se?.srcElement;if(!e||!t)return;t.style.transform="";const{y:s,height:i}=t.getBoundingClientRect(),{x:n,y:l,height:o,width:r}=e.getBoundingClientRect(),c=window.innerHeight-l-o,a=l>c&&l>=i&&c<i;this.appendToBody&&(t.style.transform=a?`translateY(${l-s-i}px)`:`translateY(${l+o-s}px)`,t.style.width=`${r}px`,t.style.left=`${n+window.scrollX}px`);const d=a?"top":"bottom";t.getAttribute("direction")!==d&&(t.setAttribute("direction",d),this.#Ce(a,this.appendToBody))}#u(){this.srcElement?.dispatchEvent(new CustomEvent("input",{detail:this.value})),this.inputCallback&&this.inputCallback(this.value)}};export{O as default};
1
+ import t from"@swc/helpers/src/_class_private_field_get.mjs";import e from"@swc/helpers/src/_class_private_field_init.mjs";import s from"@swc/helpers/src/_class_private_field_set.mjs";import i from"@swc/helpers/src/_class_private_method_get.mjs";import n from"@swc/helpers/src/_class_private_method_init.mjs";const l={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>'},o=(t,e)=>{if(e.innerHTML="","string"==typeof t)e.innerHTML=t;else{const s=t.cloneNode(!0);e.appendChild(s)}},c=t=>{const e=t?{...t}:{};return Object.keys(l).forEach((t=>{e[t]||(e[t]=l[t])})),e};var a=new WeakMap,h=new WeakMap,r=new WeakMap,d=new WeakMap,u=new WeakSet,p=new WeakSet,m=new WeakSet,v=new WeakSet,w=new WeakSet,f=new WeakSet,E=new WeakSet,k=new WeakSet,g=new WeakSet,L=new WeakSet,_=new WeakSet,b=new WeakSet,y=new WeakSet,S=new WeakSet,x=new WeakSet,W=new WeakSet,C=new WeakSet,O=new WeakSet,T=new WeakSet,A=new WeakSet,H=new WeakSet,B=new WeakSet,M=new WeakSet,P=new WeakSet,N=new WeakSet,G=new WeakSet;function j(){i(this,p,q).call(this),i(this,w,V).call(this),i(this,m,D).call(this)}function q(){t(this,a).innerHTML="",this.showTags?t(this,a).append(...i(this,L,Y).call(this)):t(this,a).appendChild(i(this,S,X).call(this))}function D(){const e=[];t(this,r).innerHTML="",this.clearable&&e.push(i(this,T,st).call(this)),this.isAlwaysOpened||e.push(i(this,H,nt).call(this,this.isOpened)),e.length&&t(this,r).append(...e)}function I(){if(!this.isAlwaysOpened&&t(this,d)){const e=this.isOpened?this.iconElements.arrowUp:this.iconElements.arrowDown;o(e,t(this,d))}}function V(){var e;(null===(e=this.value)||void 0===e?void 0:e.length)?t(this,h).removeAttribute("placeholder"):t(this,h).setAttribute("placeholder",this.placeholder),this.searchable?this.srcElement.classList.remove("treeselect-input--unsearchable"):this.srcElement.classList.add("treeselect-input--unsearchable"),t(this,h).value=this.searchText}function $(){this.isOpened=!this.isOpened,i(this,v,I).call(this),this.isOpened?i(this,N,at).call(this):i(this,G,ht).call(this)}function R(t,e,s){const n=document.createElement("div");return n.classList.add("treeselect-input"),n.setAttribute("tabindex","-1"),n.addEventListener("mousedown",(t=>i(this,k,z).call(this,t))),n.append(t,e,s),n}function z(t){t.preventDefault(),this.isOpened||i(this,f,$).call(this),this.focus()}function U(){const t=document.createElement("div");return t.classList.add("treeselect-input__tags"),t}function Y(){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=i(this,b,J).call(this,t.name),n=i(this,y,K).call(this);return e.addEventListener("mousedown",(e=>i(this,_,F).call(this,e,t.id))),e.append(s,n),e}))}function F(t,e){t.preventDefault(),t.stopPropagation(),this.focus(),this.removeItem(e)}function J(t){const e=document.createElement("span");return e.classList.add("treeselect-input__tags-name"),e.innerHTML=t,e}function K(){const t=document.createElement("span");return t.classList.add("treeselect-input__tags-cross"),o(this.iconElements.cross,t),t}function X(){const t=document.createElement("span");return t.classList.add("treeselect-input__tags-count"),this.value.length?(t.innerHTML=1===this.value.length?this.value[0].name:`${this.value.length} ${this.tagsCountText}`,t):(t.innerHTML="",t)}function Q(){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=>i(this,W,Z).call(this,t))),t.addEventListener("input",(e=>i(this,C,tt).call(this,e,t))),t}function Z(t){"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||i(this,f,$).call(this)}function tt(t,e){t.stopPropagation();const s=this.searchText,n=e.value.trim();if(0!==s.length||0!==n.length){if(this.searchable){const e=t.target.value;i(this,P,ct).call(this,e),this.isOpened||i(this,f,$).call(this)}else e.value="";this.searchText=e.value}else e.value=""}function et(){const t=document.createElement("div");return t.classList.add("treeselect-input__operators"),t}function st(){const t=document.createElement("span");return t.classList.add("treeselect-input__clear"),t.setAttribute("tabindex","-1"),o(this.iconElements.clear,t),t.addEventListener("mousedown",(t=>i(this,A,it).call(this,t))),t}function it(e){var s;e.preventDefault(),e.stopPropagation(),null===(s=t(this,h))||void 0===s||s.focus(),(this.searchText.length||this.value.length)&&this.clear()}function nt(e){s(this,d,document.createElement("span")),t(this,d).classList.add("treeselect-input__arrow");const n=e?this.iconElements.arrowUp:this.iconElements.arrowDown;return o(n,t(this,d)),t(this,d).addEventListener("mousedown",(t=>i(this,B,lt).call(this,t))),t(this,d)}function lt(t){t.stopPropagation(),t.preventDefault(),this.focus(),i(this,f,$).call(this)}function ot(){this.srcElement.dispatchEvent(new CustomEvent("input",{detail:this.value}))}function ct(t){this.srcElement.dispatchEvent(new CustomEvent("search",{detail:t}))}function at(){this.srcElement.dispatchEvent(new CustomEvent("open"))}function ht(){this.srcElement.dispatchEvent(new CustomEvent("close"))}var rt=class{focus(){t(this,h).focus()}blur(){this.isOpened&&i(this,f,$).call(this)}updateValue(t){this.value=t,i(this,p,q).call(this),i(this,w,V).call(this)}removeItem(t){this.value=this.value.filter((e=>e.id!==t)),i(this,M,ot).call(this),i(this,p,q).call(this),i(this,w,V).call(this)}clear(){this.value=[],this.searchText="",i(this,P,ct).call(this,""),i(this,M,ot).call(this),i(this,p,q).call(this),i(this,w,V).call(this)}openClose(){i(this,f,$).call(this)}constructor({value:l,showTags:o,tagsCountText:c,clearable:q,isAlwaysOpened:D,searchable:I,placeholder:V,disabled:$,id:z,iconElements:Y}){n(this,u),n(this,p),n(this,m),n(this,v),n(this,w),n(this,f),n(this,E),n(this,k),n(this,g),n(this,L),n(this,_),n(this,b),n(this,y),n(this,S),n(this,x),n(this,W),n(this,C),n(this,O),n(this,T),n(this,A),n(this,H),n(this,B),n(this,M),n(this,P),n(this,N),n(this,G),e(this,a,{writable:!0,value:void 0}),e(this,h,{writable:!0,value:void 0}),e(this,r,{writable:!0,value:void 0}),e(this,d,{writable:!0,value:void 0}),this.value=l,this.showTags=o,this.tagsCountText=c,this.searchable=I,this.placeholder=V,this.clearable=q,this.isAlwaysOpened=D,this.disabled=$,this.id=z,this.iconElements=Y,this.isOpened=!1,this.searchText="",s(this,a,i(this,g,U).call(this)),s(this,h,i(this,x,Q).call(this)),s(this,r,i(this,O,et).call(this)),s(this,d,null),this.srcElement=i(this,E,R).call(this,t(this,a),t(this,h),t(this,r)),i(this,u,j).call(this)}};const dt=(t,e,s="",i=0)=>t.reduce(((t,n)=>{var l;const o=!!(null===(l=n.children)||void 0===l?void 0:l.length),c=i>=e&&o,a=i>e;if(t.push({id:n.value,name:n.name,childOf:s,isGroup:o,checked:!1,isPartialChecked:!1,level:i,isClosed:c,hidden:a}),o){const s=dt(n.children,e,n.value,i+1);t.push(...s)}return t}),[]),ut=({id:t,checked:e},s)=>{s.forEach((i=>{i.childOf===t&&(i.checked=null==e||e,i.isPartialChecked=!1,i.isGroup&&ut(i,s))}))},pt=(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 n=i.every((t=>t.checked)),l=i.some((t=>t.isPartialChecked||t.checked))&&!n,o=!n&&!l;n&&(s.checked=!0,s.isPartialChecked=!1),l&&(s.checked=!1,s.isPartialChecked=!0),o&&(s.checked=!1,s.isPartialChecked=!1),s.childOf&&pt(s.childOf,e)},mt=({id:t,isGroup:e,childOf:s,checked:i},n)=>{e&&ut({id:t,checked:i},n),s&&pt(s,n)},vt=(t,e)=>e.reduce(((s,i)=>(i.childOf===t&&(s.push(i),i.isGroup&&s.push(...vt(i.id,e))),s)),[]),wt=(t,e)=>e.reduce(((s,i)=>(i.id===t&&(s.push(i),i.childOf&&s.push(...wt(i.childOf,e))),s)),[]),ft=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))))},Et=(t,{id:e,isClosed:s})=>{t.filter((t=>t.childOf===e)).forEach((e=>{e.hidden=null!=s&&s,e.isGroup&&!e.isClosed&&Et(t,{id:e.id,isClosed:s})}))},kt=(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=vt(i.id,t);s.push(...e)}if(i.childOf){const e=wt(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,Et(t,e)),e.hidden=!1):e.hidden=!0}))},gt=(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,mt(t,e)}))},Lt=(t,e,s,i)=>{gt(t,e),_t(e,s,i)},_t=(t,e,s)=>{t.forEach((i=>{const n=e.querySelector(`[input-id="${i.id}"]`),l=Tt(n);n.checked=i.checked,bt(i,l),yt(i,l),St(i,l,s),xt(i,l),Ct(i,l,t),Wt(i,n,s)})),Ot(t,e)},bt=(t,e)=>{t.checked?e.classList.add("treeselect-list__item--checked"):e.classList.remove("treeselect-list__item--checked")},yt=(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;o(n,i),t.isClosed?e.classList.add("treeselect-list__item--closed"):e.classList.remove("treeselect-list__item--closed")}},xt=(t,e)=>{t.hidden?e.classList.add("treeselect-list__item--hidden"):e.classList.remove("treeselect-list__item--hidden")},Wt=(t,e,s)=>{const i=e.parentNode.querySelector(".treeselect-list__item-checkbox-icon");t.checked?o(s.check,i):t.isPartialChecked?o(s.partialCheck,i):i.innerHTML=""},Ct=(t,e,s)=>{if(0===t.level){const i=s.some((e=>e.isGroup&&e.level===t.level)),n=!t.isGroup&&i?"20px":"5px";e.style.paddingLeft=t.isGroup?"0":n}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())},Ot=(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")},Tt=t=>t.parentNode.parentNode,At=(t,e)=>e.find((e=>e.id.toString()===t));var Ht=new WeakMap,Bt=new WeakMap,Mt=new WeakSet,Pt=new WeakSet,Nt=new WeakSet,Gt=new WeakSet,jt=new WeakSet,qt=new WeakSet,Dt=new WeakSet,It=new WeakSet,Vt=new WeakSet,$t=new WeakSet,Rt=new WeakSet,zt=new WeakSet,Ut=new WeakSet,Yt=new WeakSet,Ft=new WeakSet,Jt=new WeakSet,Kt=new WeakSet,Xt=new WeakSet,Qt=new WeakSet,Zt=new WeakSet,te=new WeakSet,ee=new WeakSet,se=new WeakSet,ie=new WeakSet,ne=new WeakSet;function le(t,e){if(!t)return;const s=t.querySelector(".treeselect-list__item-checkbox").getAttribute("input-id"),i=At(s,this.flattedOptions),n=t.querySelector(".treeselect-list__item-icon");"ArrowLeft"!==e||i.isClosed||n.dispatchEvent(new Event("mousedown")),"ArrowRight"===e&&i.isClosed&&n.dispatchEvent(new Event("mousedown"))}function oe(t,e){const s=Array.from(this.srcElement.querySelectorAll(".treeselect-list__item-checkbox")).filter((t=>"none"!==window.getComputedStyle(Tt(t)).display));if(s.length)if(t){const t=s.findIndex((t=>Tt(t).classList.contains("treeselect-list__item--focused")));Tt(s[t]).classList.remove("treeselect-list__item--focused");const n="ArrowDown"===e?t+1:t-1,l="ArrowDown"===e?0:s.length-1;var i;const o=null!==(i=s[n])&&void 0!==i?i:s[l],c=!s[n],a=Tt(o);a.classList.add("treeselect-list__item--focused");const h=this.srcElement.getBoundingClientRect(),r=a.getBoundingClientRect();if(c&&"ArrowDown"===e)return void this.srcElement.scroll(0,0);if(c&&"ArrowUp"===e)return void this.srcElement.scroll(0,this.srcElement.scrollHeight);if(h.y+h.height<r.y+r.height)return void this.srcElement.scroll(0,this.srcElement.scrollTop+r.height);if(h.y>r.y)return void this.srcElement.scroll(0,this.srcElement.scrollTop-r.height)}else{Tt(s[0]).classList.add("treeselect-list__item--focused")}}function ce(){const t=i(this,Gt,ae).call(this),e=i(this,Dt,de).call(this,this.options);t.append(...e);const s=i(this,It,ue).call(this);s&&t.append(s);const n=i(this,Vt,pe).call(this);return t.append(n),t}function ae(){const t=document.createElement("div");return t.classList.add("treeselect-list"),t.addEventListener("mouseout",(t=>i(this,jt,he).call(this,t))),t.addEventListener("mousemove",(()=>i(this,qt,re).call(this))),t}function he(e){e.stopPropagation(),t(this,Ht)&&t(this,Bt)&&t(this,Ht).classList.add("treeselect-list__item--focused")}function re(){s(this,Bt,!0)}function de(t){return t.reduce(((t,e)=>{var s;if(null===(s=e.children)||void 0===s?void 0:s.length){const s=i(this,$t,me).call(this,e),n=i(this,Dt,de).call(this,e.children);return s.append(...n),t.push(s),t}const n=i(this,Rt,ve).call(this,e,!1);return t.push(n),t}),[])}function ue(){if(!this.listSlotHtmlComponent)return null;const t=document.createElement("div");return t.classList.add("treeselect-list__slot"),t.appendChild(this.listSlotHtmlComponent),t}function pe(){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"),o(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}function me(t){const e=document.createElement("div");e.setAttribute("group-container-id",t.value.toString()),e.classList.add("treeselect-list__group-container");const s=i(this,Rt,ve).call(this,t,!0);return e.appendChild(s),e}function ve(t,e){const s=i(this,zt,we).call(this,t);if(e){const t=i(this,Jt,ge).call(this);s.appendChild(t)}const n=i(this,Xt,_e).call(this,t),l=i(this,Qt,be).call(this,t);return s.append(n,l),s}function we(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",(()=>i(this,Ut,fe).call(this,e)),!0),e.addEventListener("mouseout",(()=>i(this,Yt,Ee).call(this,e)),!0),e.addEventListener("mousedown",(e=>i(this,Ft,ke).call(this,e,t))),e}function fe(e){t(this,Bt)&&i(this,ee,xe).call(this,!0,e)}function Ee(e){t(this,Bt)&&(i(this,ee,xe).call(this,!1,e),s(this,Ht,e))}function ke(t,e){t.stopPropagation();const s=t.target.querySelector(".treeselect-list__item-checkbox");s.checked=!s.checked,i(this,Zt,ye).call(this,s,e)}function ge(){const t=document.createElement("span");return t.setAttribute("tabindex","-1"),t.classList.add("treeselect-list__item-icon"),o(this.iconElements.arrowDown,t),t.addEventListener("mousedown",(t=>i(this,Kt,Le).call(this,t))),t}function Le(t){t.stopPropagation(),i(this,te,Se).call(this,t)}function _e(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}function be(t){const e=document.createElement("label");return e.innerHTML=t.name,e.classList.add("treeselect-list__item-label"),e}function ye(t,e){const s=this.flattedOptions.find((t=>t.id===e.value));s&&(s.checked=t.checked,s.isPartialChecked=!1,mt(s,this.flattedOptions),_t(this.flattedOptions,this.srcElement,this.iconElements),i(this,ne,Oe).call(this))}function Se(t){var e,s;const n=null===(e=t.target)||void 0===e||null===(s=e.parentNode)||void 0===s?void 0:s.querySelector("[input-id]");var l;const o=null!==(l=null==n?void 0:n.getAttribute("input-id"))&&void 0!==l?l:null,c=At(o,this.flattedOptions);c&&(c.isClosed=!c.isClosed,Et(this.flattedOptions,c),_t(this.flattedOptions,this.srcElement,this.iconElements),i(this,ie,Ce).call(this))}function xe(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)}function We(){var t;this.selectedNodes={nodes:(t=this.flattedOptions,t.filter((t=>t.checked&&!t.isGroup))),groupedNodes:ft(this.flattedOptions)}}function Ce(){this.srcElement.dispatchEvent(new CustomEvent("arrow-click"))}function Oe(){i(this,se,We).call(this),this.srcElement.dispatchEvent(new CustomEvent("input",{detail:this.selectedNodes}))}var Te=class{updateValue(t){Lt(t,this.flattedOptions,this.srcElement,this.iconElements),i(this,se,We).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&&kt(this.flattedOptions,t),_t(this.flattedOptions,this.srcElement,this.iconElements),this.focusFirstListElement()}callKeyAction(t){s(this,Bt,!1);const e=this.srcElement.querySelector(".treeselect-list__item--focused");"Enter"===t&&e&&e.dispatchEvent(new Event("mousedown")),"ArrowLeft"!==t&&"ArrowRight"!==t||i(this,Mt,le).call(this,e,t),"ArrowDown"!==t&&"ArrowUp"!==t||i(this,Pt,oe).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(Tt(t)).display));if(!s.length)return;e&&e.classList.remove(t);Tt(s[0]).classList.add(t)}constructor({options:t,value:s,openLevel:l,listSlotHtmlComponent:o,emptyText:c,iconElements:a}){n(this,Mt),n(this,Pt),n(this,Nt),n(this,Gt),n(this,jt),n(this,qt),n(this,Dt),n(this,It),n(this,Vt),n(this,$t),n(this,Rt),n(this,zt),n(this,Ut),n(this,Yt),n(this,Ft),n(this,Jt),n(this,Kt),n(this,Xt),n(this,Qt),n(this,Zt),n(this,te),n(this,ee),n(this,se),n(this,ie),n(this,ne),e(this,Ht,{writable:!0,value:null}),e(this,Bt,{writable:!0,value:!0}),this.options=t,this.value=s,this.openLevel=null!=l?l:0,this.listSlotHtmlComponent=null!=o?o:null,this.emptyText=null!=c?c:"No results found...",this.iconElements=a,this.searchText="",this.flattedOptions=dt(this.options,this.openLevel),this.flattedOptionsBeforeSearch=this.flattedOptions,this.selectedNodes={nodes:[],groupedNodes:[]},this.srcElement=i(this,Nt,ce).call(this),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)}};const Ae=t=>t.map((t=>t.id));var He=new WeakMap,Be=new WeakMap,Me=new WeakMap,Pe=new WeakMap,Ne=new WeakMap,Ge=new WeakMap,je=new WeakMap,qe=new WeakSet,De=new WeakSet,Ie=new WeakSet,Ve=new WeakSet,$e=new WeakSet,Re=new WeakSet,ze=new WeakSet,Ue=new WeakSet,Ye=new WeakSet,Fe=new WeakSet,Je=new WeakSet,Ke=new WeakSet,Xe=new WeakSet,Qe=new WeakSet;function Ze(){const t=this.parentHtmlContainer;t.classList.add("treeselect");const e=new Te({options:this.options,value:this.value,openLevel:this.openLevel,listSlotHtmlComponent:this.listSlotHtmlComponent,emptyText:this.emptyText,iconElements:this.iconElements}),{groupedNodes:n,nodes:l}=e.selectedNodes,o=new rt({value:this.grouped?n: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});return this.appendToBody&&s(this,Me,new ResizeObserver((()=>this.updateListPosition()))),o.srcElement.addEventListener("input",(t=>i(this,De,ts).call(this,t,e))),o.srcElement.addEventListener("open",(()=>i(this,Ue,os).call(this))),o.srcElement.addEventListener("keydown",(t=>i(this,Ie,es).call(this,t,e))),o.srcElement.addEventListener("search",(t=>i(this,Ve,ss).call(this,t,e))),o.srcElement.addEventListener("focus",(()=>i(this,$e,is).call(this)),!0),this.alwaysOpen||o.srcElement.addEventListener("close",(()=>i(this,Ye,cs).call(this))),e.srcElement.addEventListener("mouseup",(()=>o.focus()),!0),e.srcElement.addEventListener("input",(t=>i(this,Re,ns).call(this,t,o))),e.srcElement.addEventListener("arrow-click",(()=>i(this,ze,ls).call(this,o))),t.append(o.srcElement),{container:t,list:e,input:o}}function ts(t,e){const s=Ae(t.detail);e.updateValue(s);const{nodes:n}=e.selectedNodes;this.value=Ae(n),i(this,Qe,us).call(this)}function es(t,e){this.isListOpened&&e.callKeyAction(t.key)}function ss(t,e){e.updateSearchValue(t.detail),this.updateListPosition()}function is(){i(this,Je,hs).call(this,!0),t(this,Ge)&&t(this,Ge)&&t(this,je)&&(document.addEventListener("mousedown",t(this,Ge),!0),document.addEventListener("focus",t(this,Ge),!0),window.addEventListener("blur",t(this,je)))}function ns(t,e){const{groupedNodes:s,nodes:n}=t.detail,l=this.grouped?s:n;e.updateValue(l),this.value=Ae(n),e.focus(),i(this,Qe,us).call(this)}function ls(t){t.focus(),this.updateListPosition()}function os(){if(this.isListOpened=!0,t(this,Pe)&&t(this,Ne)&&(window.addEventListener("scroll",t(this,Pe),!0),window.addEventListener("resize",t(this,Ne))),t(this,He)&&this.srcElement){var e;if(this.appendToBody)document.body.appendChild(t(this,He).srcElement),null===(e=t(this,Me))||void 0===e||e.observe(this.srcElement);else this.srcElement.appendChild(t(this,He).srcElement);this.updateListPosition(),i(this,Ke,rs).call(this,!0),t(this,He).focusFirstListElement()}}function cs(){if(this.isListOpened=!1,t(this,Pe)&&t(this,Ne)&&(window.removeEventListener("scroll",t(this,Pe),!0),window.removeEventListener("resize",t(this,Ne))),!t(this,He)||!this.srcElement)return;if(this.appendToBody?document.body.contains(t(this,He).srcElement):this.srcElement.contains(t(this,He).srcElement)){var e;if(this.appendToBody)document.body.removeChild(t(this,He).srcElement),null===(e=t(this,Me))||void 0===e||e.disconnect();else this.srcElement.removeChild(t(this,He).srcElement);i(this,Ke,rs).call(this,!1)}}function as(e,s){if(!t(this,He)||!t(this,Be))return;const i=s?"treeselect-list--top-to-body":"treeselect-list--top",n=s?"treeselect-list--bottom-to-body":"treeselect-list--bottom";e?(t(this,He).srcElement.classList.add(i),t(this,He).srcElement.classList.remove(n),t(this,Be).srcElement.classList.add("treeselect-input--top"),t(this,Be).srcElement.classList.remove("treeselect-input--bottom")):(t(this,He).srcElement.classList.remove(i),t(this,He).srcElement.classList.add(n),t(this,Be).srcElement.classList.remove("treeselect-input--top"),t(this,Be).srcElement.classList.add("treeselect-input--bottom"))}function hs(e){t(this,Be)&&t(this,He)&&(e?(t(this,Be).srcElement.classList.add("treeselect-input--focused"),t(this,He).srcElement.classList.add("treeselect-list--focused")):(t(this,Be).srcElement.classList.remove("treeselect-input--focused"),t(this,He).srcElement.classList.remove("treeselect-list--focused")))}function rs(e){var s,i,n,l;e?null===(s=t(this,Be))||void 0===s||s.srcElement.classList.add("treeselect-input--opened"):null===(i=t(this,Be))||void 0===i||i.srcElement.classList.remove("treeselect-input--opened"),this.staticList?null===(n=t(this,He))||void 0===n||n.srcElement.classList.add("treeselect-list--static"):null===(l=t(this,He))||void 0===l||l.srcElement.classList.remove("treeselect-list--static")}function ds(e){t(this,Pe)&&t(this,Ne)&&t(this,Ge)&&t(this,je)&&(this.alwaysOpen&&!e||(window.removeEventListener("scroll",t(this,Pe),!0),window.removeEventListener("resize",t(this,Ne))),document.removeEventListener("click",t(this,Ge),!0),document.removeEventListener("focus",t(this,Ge),!0),window.removeEventListener("blur",t(this,je)))}function us(){var t;null===(t=this.srcElement)||void 0===t||t.dispatchEvent(new CustomEvent("input",{detail:this.value})),this.inputCallback&&this.inputCallback(this.value)}var ps=class{mount(){var e;this.destroy();const{container:n,list:l,input:o}=i(this,qe,Ze).call(this);this.srcElement=n,s(this,He,l),s(this,Be,o),s(this,Pe,this.scrollWindowHandler.bind(this)),s(this,Ne,this.scrollWindowHandler.bind(this)),s(this,Ge,this.focusWindowHandler.bind(this)),s(this,je,this.blurWindowHandler.bind(this)),this.alwaysOpen&&(null===(e=t(this,Be))||void 0===e||e.openClose()),this.disabled&&this.srcElement.classList.add("treeselect--disabled")}updateValue(e){const s=t(this,He);if(s){var i;s.updateValue(e);const{groupedNodes:n,nodes:l}=s.selectedNodes,o=this.grouped?n:l;null===(i=t(this,Be))||void 0===i||i.updateValue(o)}}destroy(){this.srcElement&&(i(this,Ye,cs).call(this),this.srcElement.innerHTML="",this.srcElement=null,i(this,Xe,ds).call(this,!0))}focus(){t(this,Be)&&t(this,Be).focus()}toggleOpenClose(){t(this,Be)&&(t(this,Be).openClose(),t(this,Be).focus())}scrollWindowHandler(){this.updateListPosition()}focusWindowHandler(e){var s,n;var l;(null===(s=this.srcElement)||void 0===s?void 0:s.contains(e.target))||(null===(n=t(this,He))||void 0===n?void 0:n.srcElement.contains(e.target))||(null===(l=t(this,Be))||void 0===l||l.blur(),i(this,Xe,ds).call(this,!1),i(this,Je,hs).call(this,!1))}blurWindowHandler(){var e;null===(e=t(this,Be))||void 0===e||e.blur(),i(this,Xe,ds).call(this,!1),i(this,Je,hs).call(this,!1)}updateListPosition(){var e;const s=this.srcElement,n=null===(e=t(this,He))||void 0===e?void 0:e.srcElement;if(!s||!n)return;n.style.transform="";const{y:l,height:o}=n.getBoundingClientRect(),{x:c,y:a,height:h,width:r}=s.getBoundingClientRect(),d=window.innerHeight-a-h,u=a>d&&a>=o&&d<o;this.appendToBody&&(n.style.transform=u?`translateY(${a-l-o}px)`:`translateY(${a+h-l}px)`,n.style.width=`${r}px`,n.style.left=`${c+window.scrollX}px`);const p=u?"top":"bottom";n.getAttribute("direction")!==p&&(n.setAttribute("direction",p),i(this,Fe,as).call(this,u,this.appendToBody))}constructor({parentHtmlContainer:t,value:s,options:i,openLevel:l,appendToBody:o,alwaysOpen:a,showTags:h,tagsCountText:r,clearable:d,searchable:u,placeholder:p,grouped:m,listSlotHtmlComponent:v,disabled:w,emptyText:f,staticList:E,id:k,iconElements:g,inputCallback:L}){n(this,qe),n(this,De),n(this,Ie),n(this,Ve),n(this,$e),n(this,Re),n(this,ze),n(this,Ue),n(this,Ye),n(this,Fe),n(this,Je),n(this,Ke),n(this,Xe),n(this,Qe),e(this,He,{writable:!0,value:null}),e(this,Be,{writable:!0,value:null}),e(this,Me,{writable:!0,value:null}),e(this,Pe,{writable:!0,value:null}),e(this,Ne,{writable:!0,value:null}),e(this,Ge,{writable:!0,value:null}),e(this,je,{writable:!0,value:null}),(({parentHtmlContainer:t,staticList:e,appendToBody:s})=>{t||console.error("Validation: parentHtmlContainer prop is required!"),e&&s&&console.error("Validation: You should set staticList to false if you use appendToBody!")})({parentHtmlContainer:t,staticList:E,appendToBody:o}),this.parentHtmlContainer=t,this.value=null!=s?s:[],this.options=null!=i?i:[],this.openLevel=null!=l?l:0,this.appendToBody=null==o||o,this.alwaysOpen=!(!a||w),this.showTags=null==h||h,this.tagsCountText=null!=r?r:"elements selected",this.clearable=null==d||d,this.searchable=null==u||u,this.placeholder=null!=p?p:"Search...",this.grouped=null==m||m,this.listSlotHtmlComponent=null!=v?v:null,this.disabled=null!=w&&w,this.emptyText=null!=f?f:"No results found...",this.staticList=!(!E||this.appendToBody),this.id=null!=k?k:"",this.iconElements=c(g),this.inputCallback=L,this.isListOpened=!1,this.srcElement=null,this.mount()}};export{ps as default};
package/package.json CHANGED
@@ -1,13 +1,12 @@
1
1
  {
2
2
  "name": "treeselectjs",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "description": "Treeselect JS",
5
5
  "main": "dist/treeselect-js.cjs.js",
6
6
  "module": "dist/treeselect-js.mjs.js",
7
7
  "types": "dist/treeselect-js.d.ts",
8
8
  "targets": {
9
9
  "main": {
10
- "context": "node",
11
10
  "source": "src/treeselect-js.ts",
12
11
  "outputFormat": "commonjs",
13
12
  "isLibrary": true,
@@ -18,7 +17,6 @@
18
17
  }
19
18
  },
20
19
  "module": {
21
- "context": "node",
22
20
  "source": "src/treeselect-js.ts",
23
21
  "outputFormat": "esmodule",
24
22
  "isLibrary": true,
@@ -75,5 +73,8 @@
75
73
  },
76
74
  "files": [
77
75
  "dist"
78
- ]
76
+ ],
77
+ "dependencies": {
78
+ "@swc/helpers": "^0.4.3"
79
+ }
79
80
  }