(function(b,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(b=typeof globalThis<"u"?globalThis:b||self,e(b.VueTreeView={},b.Vue))})(this,function(b,e){"use strict";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const T=(t,l)=>(t=Math.ceil(t),l=Math.floor(l),Math.floor(Math.random()*(l-t+1))+t),k=new Map;function g(t){const l=e.getCurrentScope();function o(a){var s;const r=k.get(t)||new Set;r.add(a),k.set(t,r);const p=()=>f(a);return(s=l==null?void 0:l.cleanups)==null||s.push(p),p}function i(a){function s(...r){f(s),a(...r)}return o(s)}function f(a){const s=k.get(t);s&&(s.delete(a),s.size||c())}function c(){k.delete(t)}function y(a,s){var r;(r=k.get(t))==null||r.forEach(p=>p(a,s))}return{on:o,once:i,off:f,emit:y,reset:c}}const w=(t,l)=>{if(t.children)for(const o of t.children)l(o.id),o.children&&w(o,l)},E=(t,l)=>{if(t.children)for(const o of t.children)l=[...l,o.id],o.children&&(l=[...l,...E(o,l)]);return[...l,t.id]},C=(t,l,o)=>{if(l.children)for(const i of l.children)i.children?o=o&&t.has(i.id)&&C(t,i,o):o=o&&t.has(i.id);return o},I=(t,l,o)=>{if(l.children)for(const i of l.children)i.children?o=o||t.has(i.id)||I(t,i,o):o=o||t.has(i.id);return o},B=(t,l,o)=>o==="all"?C(t,l,!0):I(t,l,!1),j="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSIyOTgiIGhlaWdodD0iNTEyIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgdGV4dC1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgMjk4IDUxMS45MyI+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNNzAuNzcgNDk5Ljg1Yy0xNi4yNCAxNi4xNy00Mi41MyAxNi4wOS01OC42OS0uMTUtMTYuMTctMTYuMjUtMTYuMDktNDIuNTQuMTUtNTguN2wxODUuNS0xODUuMDNMMTIuMjMgNzAuOTNjLTE2LjI0LTE2LjE2LTE2LjMyLTQyLjQ1LS4xNS01OC43IDE2LjE2LTE2LjI0IDQyLjQ1LTE2LjMyIDU4LjY5LS4xNWwyMTUuMTUgMjE0LjYxYzE2LjE3IDE2LjI1IDE2LjA5IDQyLjU0LS4xNSA1OC43bC0yMTUgMjE0LjQ2eiIvPjwvc3ZnPg==",V={class:"treeview-node__root"},Z={class:"treeview-node__content"},O={key:1,class:"treeview-node__level"},D={key:2,class:"m-checkbox"},x=["disabled","indeterminate","checked"],W={key:0,class:"treeview-node__children"},A=e.defineComponent({__name:"treeViewNode",props:{level:{},item:{},selectable:{type:Boolean},disabled:{type:Boolean},unopenable:{type:Boolean},color:{},identifier:{}},emits:["change"],setup(t,{emit:l}){const o=l,i=e.inject("selected-nodes"),f=e.inject("opened-nodes"),c=t,{emit:y}=g(`open-node-${c.identifier}`),{emit:a}=g(`select-node-${c.identifier}`),s=e.computed(()=>({"treeview-node--leaf":!m.value})),r=e.computed(()=>f==null?void 0:f.has(c.item.id)),p=e.computed(()=>i==null?void 0:i.has(c.item.id)),m=e.computed(()=>!!c.item.children&&!!c.item.children.length),N=e.computed(()=>B(i,c.item,"all")),_=e.computed(()=>B(i,c.item,"atLeastOne")),d=e.computed(()=>m.value?N.value?!0:(_.value,!1):p.value),L=e.computed(()=>{if(m.value){if(N.value)return!1;if(_.value)return!0}return!1}),n=e.computed(()=>m.value||c.level!==1?c.level-1:0),u=()=>{const S=c.item.id;m.value&&(N.value?p.value||h():_.value?p.value||i.add(S):p.value&&h(),o("change"))},h=()=>{a(c.item),o("change")},z=()=>{m.value&&!c.unopenable&&y(c.item.id)};return(S,P)=>{const v=e.resolveComponent("tree-view-node",!0);return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([s.value,"treeview-node treeview-node--click"])},[e.createElementVNode("div",V,[e.createElementVNode("div",Z,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,M=>(e.openBlock(),e.createElementBlock("div",{class:"treeview-node__level",key:M}))),128)),m.value?(e.openBlock(),e.createElementBlock("img",{key:0,style:e.normalizeStyle({transform:`rotate(${r.value?90:0}deg)`}),class:e.normalizeClass([{open:r.value,close:!r.value},"treeview-node__toggle"]),src:j,width:"15",height:"15",onClick:e.withModifiers(z,["stop"])},null,6)):(e.openBlock(),e.createElementBlock("div",O)),c.selectable?(e.openBlock(),e.createElementBlock("label",D,[e.createElementVNode("input",{disabled:c.disabled,type:"checkbox",indeterminate:L.value,checked:d.value,onClick:h},null,8,x),e.createElementVNode("span",null,e.toDisplayString(S.item.name),1)])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createTextVNode(e.toDisplayString(S.item.name),1)],64))])]),r.value?(e.openBlock(),e.createElementBlock("div",W,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.item.children,M=>(e.openBlock(),e.createBlock(v,{selectable:c.selectable,level:c.level+1,key:M.id,item:M,color:c.color,disabled:c.disabled,unopenable:c.unopenable,identifier:c.identifier,onChange:u},null,8,["selectable","level","item","color","disabled","unopenable","identifier"]))),128))])):e.createCommentVNode("",!0)],2)}}}),U=e.defineComponent({__name:"treeView",props:{dense:{type:Boolean},disabled:{type:Boolean},openAll:{type:Boolean},selectable:{type:Boolean,default:!0},unopenable:{type:Boolean},color:{default:"#7e7ec2"},modelValue:{},items:{},selectionMode:{default:"leaf"}},emits:["update:modelValue"],setup(t,{emit:l}){e.useCssVars(n=>({"1809e5bf":n.color}));const o=l,i=t,f=T(1,9999),c=g(`open-node-${f}`),y=g(`select-node-${f}`),a=n=>{if(d.openedNodes.has(n)){d.openedNodes.delete(n);return}d.openedNodes.add(n)},s=n=>d.selectedNodes.delete(n),r=n=>{d.selectedNodes.add(n)},p=n=>{if(d.selectedNodes.has(n)){s(n);return}r(n)},m=n=>{n.children&&n.children.length?d.selectedNodes.has(n.id)&&B(d.selectedNodes,n,"atLeastOne")&&!B(d.selectedNodes,n,"all")?w(n,r):(p(n.id),w(n,d.selectedNodes.has(n.id)?r:s)):p(n.id)},N=c.on(a),_=y.on(m),d=e.reactive({selectedNodes:new Set,openedNodes:new Set,stopRecursion:!1});e.provide("selected-nodes",d.selectedNodes),e.provide("opened-nodes",d.openedNodes);const L=e.computed(()=>({"treeview--dense":i.dense}));return e.watch(()=>d.selectedNodes,n=>{o("update:modelValue",[...n]),d.stopRecursion=!0},{deep:!0}),e.watch(()=>i.modelValue,n=>{if(d.stopRecursion){d.stopRecursion=!1;return}if(n.length){for(const u of[...new Set(n)])d.selectedNodes.add(u);return}d.selectedNodes.clear()},{immediate:!0}),e.onMounted(()=>{if(i.openAll===!0){let n=[];for(const u of i.items){let h=E(u,[]);n=[...n,...h]}for(const u of[...new Set(n)])d.openedNodes.add(u)}}),e.onUnmounted(()=>{N(),_()}),(n,u)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["treeview",L.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,h=>(e.openBlock(),e.createBlock(A,{selectable:n.selectable,color:i.color,level:1,item:h,key:h.id,disabled:n.disabled,unopenable:n.unopenable,identifier:e.unref(f)},null,8,["selectable","color","item","disabled","unopenable","identifier"]))),128))],2))}}),H="";b.TreeView=U,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})});