index-BThGzczo.js 26 KB

1
  1. import{s as bn,D as ze,a4 as Cn,I as mn,z as Dn,A as z,q as ge,S as ye,_ as ke,h as Fe,v as En,w as wn}from"./index-DnTunbJs.js";import{u as F,t as Tn}from"./index-DpAIyTtw.js";import{i as $n,d as ne,l as Y,h as Q,r as w,ae as Ln,g as In,c as b,f as q,m as A,o as C,a as P,q as E,e as he,N as se,X as Ae,n as I,B as de,_ as Pn,y as ue,k as W,p as T,aa as qe,A as $,F as Bn,G as xn,C as On,Z as tn,s as Fn}from"./vue-vendor-B2yM2jt_.js";import{R as an}from"./render-function-Dfmb-c1a.js";import{I as An,a as _n}from"./index-CNrI-TFC.js";import{C as jn,V as Vn}from"./index-BPy71hpd.js";import{u as Ye}from"./index-MBd3sYCs.js";const rn=Symbol("TreeInjectionKey");function Rn(e){const n=[];function t(a){a&&a.forEach(r=>{n.push(r),t(r.children)})}return t(e),n}function Hn(e){const n=new Map;return e.forEach(t=>{n.set(t.key,t)}),n}function Ge(e){return e.selectable&&!e.disabled}function Ue(e){return!e.isLeaf&&e.children}function Mn(e){return bn(e.isLeaf)?e.isLeaf:!e.children}function Pe(e){return Set.prototype.add.bind(e)}function Be(e){return Set.prototype.delete.bind(e)}function ee(e){return e.disabled||e.disableCheckbox?!1:!!e.checkable}function _e(e){var n;const t=[];return(n=e.children)==null||n.forEach(a=>{ee(a)&&t.push(a.key,..._e(a))}),t}function ln(e){var n;const{node:t,checkedKeySet:a,indeterminateKeySet:r}=e;let c=t.parent;for(;c;){if(ee(c)){const d=c.key,v=((n=c.children)==null?void 0:n.filter(ee))||[];let l=0;const u=v.length;v.some(({key:f})=>{if(a.has(f))l+=1;else if(r.has(f))return l+=.5,!0;return!1}),l&&l!==u?r.add(d):r.delete(d),l&&l===u?a.add(d):a.delete(d)}c=c.parent}}function Xe(e){const{node:n,checked:t,checkedKeys:a,indeterminateKeys:r,checkStrictly:c=!1}=e,{key:d}=n,v=new Set(a),l=new Set(r);if(t?v.add(d):v.delete(d),l.delete(d),!c){const u=_e(n);t?u.forEach(Pe(v)):u.forEach(Be(v)),u.forEach(Be(l)),ln({node:n,checkedKeySet:v,indeterminateKeySet:l})}return[[...v],[...l]]}function zn(e){const{initCheckedKeys:n,key2TreeNode:t,checkStrictly:a,onlyCheckLeaf:r}=e,c=new Set,d=new Set,v=new Set;return a?n.forEach(Pe(c)):n.forEach(l=>{var u;const f=t.get(l);if(!f||d.has(l)||r&&((u=f.children)!=null&&u.length))return;const g=_e(f);g.forEach(Pe(d)),g.forEach(Be(v)),c.add(l),v.delete(l),ln({node:f,checkedKeySet:c,indeterminateKeySet:v})}),[[...c,...d],[...v]]}function Ke(){return $n(rn)||{}}var qn=ne({name:"TreeNodeSwitcher",components:{IconLoading:ze,RenderFunction:an},props:{prefixCls:String,loading:Boolean,showLine:Boolean,treeNodeData:{type:Object},icons:{type:Object},nodeStatus:{type:Object}},emits:["click"],setup(e,{slots:n,emit:t}){const{icons:a,nodeStatus:r,treeNodeData:c}=Y(e),d=Ke(),v=F(n,"switcher-icon"),l=F(n,"loading-icon");return{getSwitcherIcon:()=>{var u,f,g;const N=(f=(u=a==null?void 0:a.value)==null?void 0:u.switcherIcon)!=null?f:v.value;return N?N(r.value):(g=d.switcherIcon)==null?void 0:g.call(d,c.value,r.value)},getLoadingIcon:()=>{var u,f,g;const N=(f=(u=a==null?void 0:a.value)==null?void 0:u.loadingIcon)!=null?f:l.value;return N?N(r.value):(g=d.loadingIcon)==null?void 0:g.call(d,c.value,r.value)},onClick(u){t("click",u)}}},render(){var e,n,t;const{prefixCls:a,getSwitcherIcon:r,getLoadingIcon:c,onClick:d,nodeStatus:v={},loading:l,showLine:u}=this,{expanded:f,isLeaf:g}=v;if(l)return(e=c())!=null?e:Q(ze);let N=null,S=!1;if(g)u&&(N=(t=r())!=null?t:Q(Cn));else{const L=u?Q("span",{class:`${a}-${f?"minus":"plus"}-icon`}):Q(An);N=(n=r())!=null?n:L,S=!u}if(!N)return null;const D=Q("span",{class:`${a}-switcher-icon`,onClick:d},N);return S?Q(mn,{class:`${a}-icon-hover`},()=>D):D}}),Yn=Object.defineProperty,Gn=Object.defineProperties,Un=Object.getOwnPropertyDescriptors,Ze=Object.getOwnPropertySymbols,Xn=Object.prototype.hasOwnProperty,Zn=Object.prototype.propertyIsEnumerable,Je=(e,n,t)=>n in e?Yn(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,xe=(e,n)=>{for(var t in n||(n={}))Xn.call(n,t)&&Je(e,t,n[t]);if(Ze)for(var t of Ze(n))Zn.call(n,t)&&Je(e,t,n[t]);return e},Qe=(e,n)=>Gn(e,Un(n));const on=(()=>{let e=0;return()=>(e+=1,`__arco_tree${e}`)})();function Jn(e,n){return!!(z(e)?n:e)}function Qn(e,n){const t=xe({},e);return n&&Object.keys(n).forEach(r=>{const c=n[r];c!==r&&(t[r]=e[c],delete t[c])}),t}function We({subEnable:e,superEnable:n,isLeaf:t,treeNodeData:a,level:r}){return z(e)?ge(n)?n(a,{isLeaf:t,level:r}):n??!1:e}function Wn(e){var n,t;const{treeNodeData:a,parentNode:r,isTail:c=!0,treeProps:d}=e,{fieldNames:v}=d||{},l=Qn(a,v),u=d.loadMore?!!l.isLeaf:!((n=l.children)!=null&&n.length),f=r?r.level+1:0,g=Qe(xe({},Dn(l,["children"])),{key:(t=l.key)!=null?t:on(),selectable:We({subEnable:l.selectable,superEnable:d==null?void 0:d.selectable,isLeaf:u,level:f,treeNodeData:a}),disabled:!!l.disabled,disableCheckbox:!!l.disableCheckbox,checkable:We({subEnable:l.checkable,superEnable:d==null?void 0:d.checkable,isLeaf:u,level:f,treeNodeData:a}),isLeaf:u,isTail:c,blockNode:!!(d!=null&&d.blockNode),showLine:!!(d!=null&&d.showLine),level:f,lineless:r?[...r.lineless,r.isTail]:[],draggable:Jn(l.draggable,d==null?void 0:d.draggable)});return Qe(xe({},g),{treeNodeProps:g,treeNodeData:a,parent:r,parentKey:r==null?void 0:r.key,pathParentKeys:r?[...r.pathParentKeys,r.key]:[]})}function et(e,n){function t(a,r){if(!a)return;const{fieldNames:c}=n,d=[];return a.forEach((v,l)=>{const u=Wn({treeNodeData:v,treeProps:n,parentNode:r,isTail:l===a.length-1});u.children=t(v[(c==null?void 0:c.children)||"children"],u),d.push(u)}),d}return t(e)}function dn(){const e=In(),n=()=>{var a;return(a=e==null?void 0:e.vnode.key)!=null?a:on()},t=w(n());return Ln(()=>{t.value=n()}),t}function nt(e){const{key:n,refTitle:t}=Y(e),a=Ke(),r=w(!1),c=w(!1),d=w(!1),v=w(0),l=Tn(u=>{if(!t.value)return;const f=t.value.getBoundingClientRect(),g=window.pageYOffset+f.top,{pageY:N}=u,S=f.height/4,D=N-g;v.value=D<S?-1:D<f.height-S?0:1,d.value=a.allowDrop?a.allowDrop(n.value,v.value):!0});return{isDragOver:r,isDragging:c,isAllowDrop:d,dropPosition:v,setDragStatus(u,f){switch(u){case"dragStart":c.value=!0,v.value=0,a.onDragStart&&a.onDragStart(n.value,f);break;case"dragEnd":c.value=!1,r.value=!1,v.value=0,l.cancel(),a.onDragEnd&&a.onDragEnd(n.value,f);break;case"dragOver":r.value=!0,l(f),a.onDragOver&&a.onDragOver(n.value,f);break;case"dragLeave":r.value=!1,v.value=0,l.cancel(),a.onDragLeave&&a.onDragLeave(n.value,f);break;case"drop":a.onDrop&&a.onDrop(n.value,v.value,f),r.value=!1,v.value=0,l.cancel();break}}}}function tt(e){return ye(e)?e:[e]}const at=ne({name:"BaseTreeNode",components:{NodeSwitcher:qn,Checkbox:jn,RenderFunction:an,IconDragDotVertical:_n},props:{title:{type:String},selectable:{type:Boolean},disabled:{type:Boolean},disableCheckbox:{type:Boolean},checkable:{type:Boolean},draggable:{type:Boolean},isLeaf:{type:Boolean},icon:{type:Function},switcherIcon:{type:Function},loadingIcon:{type:Function},dragIcon:{type:Function},isTail:{type:Boolean},blockNode:{type:Boolean},showLine:{type:Boolean},level:{type:Number,default:0},lineless:{type:Array,default:()=>[]}},setup(e){const n=dn(),t=Fe("tree-node"),a=Ke(),r=b(()=>{var i;return(i=a.key2TreeNode)==null?void 0:i.get(n.value)}),c=b(()=>r.value.treeNodeData),d=b(()=>r.value.children),v=b(()=>{var i;const K=(i=a.treeProps)==null?void 0:i.actionOnNodeClick;return K?tt(K):[]}),{isLeaf:l,isTail:u,selectable:f,disabled:g,disableCheckbox:N,draggable:S}=Y(e),D=b(()=>{var i;return[`${t}`,{[`${t}-selected`]:U.value,[`${t}-is-leaf`]:l.value,[`${t}-is-tail`]:u.value,[`${t}-expanded`]:V.value,[`${t}-disabled-selectable`]:!f.value&&!((i=a.treeProps)!=null&&i.disableSelectActionOnly),[`${t}-disabled`]:g.value}]}),L=w(),{isDragOver:B,isDragging:ie,isAllowDrop:G,dropPosition:te,setDragStatus:_}=nt(q({key:n,refTitle:L})),j=b(()=>[`${t}-title`,{[`${t}-title-draggable`]:S.value,[`${t}-title-gap-top`]:B.value&&G.value&&te.value<0,[`${t}-title-gap-bottom`]:B.value&&G.value&&te.value>0,[`${t}-title-highlight`]:!ie.value&&B.value&&G.value&&te.value===0,[`${t}-title-dragging`]:ie.value,[`${t}-title-block`]:r.value.blockNode}]),ce=b(()=>{var i,K;return(K=(i=a.checkedKeys)==null?void 0:i.includes)==null?void 0:K.call(i,n.value)}),ae=b(()=>{var i,K;return(K=(i=a.indeterminateKeys)==null?void 0:i.includes)==null?void 0:K.call(i,n.value)}),U=b(()=>{var i,K;return(K=(i=a.selectedKeys)==null?void 0:i.includes)==null?void 0:K.call(i,n.value)}),V=b(()=>{var i,K;return(K=(i=a.expandedKeys)==null?void 0:i.includes)==null?void 0:K.call(i,n.value)}),fe=b(()=>{var i,K;return(K=(i=a.loadingKeys)==null?void 0:i.includes)==null?void 0:K.call(i,n.value)}),Ne=b(()=>a.dragIcon),Se=b(()=>a.nodeIcon);function pe(i){var K,O;l.value||(!((K=d.value)!=null&&K.length)&&ge(a.onLoadMore)?a.onLoadMore(n.value):(O=a==null?void 0:a.onExpand)==null||O.call(a,!V.value,n.value,i))}const x=q({loading:fe,checked:ce,selected:U,indeterminate:ae,expanded:V,isLeaf:l}),be=b(()=>a.nodeTitle?()=>{var i;return(i=a.nodeTitle)==null?void 0:i.call(a,c.value,x)}:void 0),Ce=b(()=>a.nodeExtra?()=>{var i;return(i=a.nodeExtra)==null?void 0:i.call(a,c.value,x)}:void 0);return{nodekey:n,refTitle:L,prefixCls:t,classNames:D,titleClassNames:j,indeterminate:ae,checked:ce,expanded:V,selected:U,treeTitle:be,treeNodeData:c,loading:fe,treeDragIcon:Ne,treeNodeIcon:Se,extra:Ce,nodeStatus:x,onCheckboxChange(i,K){var O;N.value||g.value||(O=a.onCheck)==null||O.call(a,i,n.value,K)},onTitleClick(i){var K;v.value.includes("expand")&&pe(i),!(!f.value||g.value)&&((K=a.onSelect)==null||K.call(a,n.value,i))},onSwitcherClick:pe,onDragStart(i){var K;if(S.value){i.stopPropagation(),_("dragStart",i);try{(K=i.dataTransfer)==null||K.setData("text/plain","")}catch{}}},onDragEnd(i){S.value&&(i.stopPropagation(),_("dragEnd",i))},onDragOver(i){S&&(i.stopPropagation(),i.preventDefault(),_("dragOver",i))},onDragLeave(i){S.value&&(i.stopPropagation(),_("dragLeave",i))},onDrop(i){!S.value||!G.value||(i.stopPropagation(),i.preventDefault(),_("drop",i))}}}}),rt=["data-level","data-key"],lt=["draggable"];function ot(e,n,t,a,r,c){const d=A("NodeSwitcher"),v=A("Checkbox"),l=A("RenderFunction"),u=A("IconDragDotVertical");return C(),P("div",{class:I(e.classNames),"data-level":e.level,"data-key":e.nodekey},[E(" 缩进 "),he("span",{class:I(`${e.prefixCls}-indent`)},[(C(!0),P(se,null,Ae(e.level,f=>(C(),P("span",{key:f,class:I([`${e.prefixCls}-indent-block`,{[`${e.prefixCls}-indent-block-lineless`]:e.lineless[f-1]}])},null,2))),128))],2),E(" switcher "),he("span",{class:I([`${e.prefixCls}-switcher`,{[`${e.prefixCls}-switcher-expanded`]:e.expanded}])},[de(d,{"prefix-cls":e.prefixCls,loading:e.loading,"show-line":e.showLine,"tree-node-data":e.treeNodeData,icons:{switcherIcon:e.switcherIcon,loadingIcon:e.loadingIcon},"node-status":e.nodeStatus,onClick:e.onSwitcherClick},Pn({_:2},[e.$slots["switcher-icon"]?{name:"switcher-icon",fn:ue(()=>[E(" @slot 定制 switcher 图标,会覆盖 Tree 的配置 "),W(e.$slots,"switcher-icon")])}:void 0,e.$slots["loading-icon"]?{name:"loading-icon",fn:ue(()=>[E(" @slot 定制 loading 图标,会覆盖 Tree 的配置 "),W(e.$slots,"loading-icon")])}:void 0]),1032,["prefix-cls","loading","show-line","tree-node-data","icons","node-status","onClick"])],2),E(" checkbox "),e.checkable?(C(),T(v,{key:0,disabled:e.disableCheckbox||e.disabled,"model-value":e.checked,indeterminate:e.indeterminate,"uninject-group-context":"",onChange:e.onCheckboxChange},null,8,["disabled","model-value","indeterminate","onChange"])):E("v-if",!0),E(" 内容 "),he("span",{ref:"refTitle",class:I(e.titleClassNames),draggable:e.draggable,onDragstart:n[0]||(n[0]=(...f)=>e.onDragStart&&e.onDragStart(...f)),onDragend:n[1]||(n[1]=(...f)=>e.onDragEnd&&e.onDragEnd(...f)),onDragover:n[2]||(n[2]=(...f)=>e.onDragOver&&e.onDragOver(...f)),onDragleave:n[3]||(n[3]=(...f)=>e.onDragLeave&&e.onDragLeave(...f)),onDrop:n[4]||(n[4]=(...f)=>e.onDrop&&e.onDrop(...f)),onClick:n[5]||(n[5]=(...f)=>e.onTitleClick&&e.onTitleClick(...f))},[e.$slots.icon||e.icon||e.treeNodeIcon?(C(),P("span",{key:0,class:I([`${e.prefixCls}-icon`,`${e.prefixCls}-custom-icon`])},[E(" 节点图标 "),e.$slots.icon?W(e.$slots,"icon",qe($({key:0},e.nodeStatus))):e.icon?(C(),T(l,$({key:1,"render-func":e.icon},e.nodeStatus),null,16,["render-func"])):e.treeNodeIcon?(C(),T(l,$({key:2,"render-func":e.treeNodeIcon,node:e.treeNodeData},e.nodeStatus),null,16,["render-func","node"])):E("v-if",!0)],2)):E("v-if",!0),he("span",{class:I(`${e.prefixCls}-title-text`)},[e.treeTitle?(C(),T(l,{key:0,"render-func":e.treeTitle},null,8,["render-func"])):(C(),P(se,{key:1},[E(" 标题,treeTitle 优先级高于节点的 title "),W(e.$slots,"title",{title:e.title},()=>[Bn(xn(e.title),1)])],2112)),e.draggable?(C(),P("span",{key:2,class:I([`${e.prefixCls}-icon`,`${e.prefixCls}-drag-icon`])},[E(" 拖拽图标 "),e.$slots["drag-icon"]?W(e.$slots,"drag-icon",qe($({key:0},e.nodeStatus))):e.dragIcon?(C(),T(l,$({key:1,"render-func":e.dragIcon},e.nodeStatus),null,16,["render-func"])):e.treeDragIcon?(C(),T(l,$({key:2,"render-func":e.treeDragIcon,node:e.treeNodeData},e.nodeStatus),null,16,["render-func","node"])):(C(),T(u,{key:3}))],2)):E("v-if",!0)],2)],42,lt),E(" 额外 "),e.extra?(C(),T(l,{key:1,"render-func":e.extra},null,8,["render-func"])):E("v-if",!0)],10,rt)}var Oe=ke(at,[["render",ot]]);const dt=ne({name:"ExpandTransition",props:{expanded:Boolean},emits:["end"],setup(e,{emit:n}){return{onEnter(t){const a=`${t.scrollHeight}px`;t.style.height=e.expanded?"0":a,t.offsetHeight,t.style.height=e.expanded?a:"0"},onAfterEnter(t){t.style.height=e.expanded?"":"0",n("end")},onBeforeLeave(t){t.style.display="none"}}}});function st(e,n,t,a,r,c){return C(),T(On,{onEnter:e.onEnter,onAfterEnter:e.onAfterEnter,onBeforeLeave:e.onBeforeLeave},{default:ue(()=>[W(e.$slots,"default")]),_:3},8,["onEnter","onAfterEnter","onBeforeLeave"])}var ut=ke(dt,[["render",st]]);const it=ne({name:"TransitionNodeList",components:{ExpandTransition:ut,BaseTreeNode:Oe},props:{nodeKey:{type:[String,Number],required:!0}},setup(e){const t=[`${Fe("tree")}-node-list`],a=Ke(),{nodeKey:r}=Y(e),c=b(()=>{var l,u;return(u=(l=a.expandedKeys)==null?void 0:l.includes)==null?void 0:u.call(l,r.value)}),d=b(()=>{var l;const u=new Set(a.expandedKeys||[]),f=(l=a.flattenTreeData)==null?void 0:l.filter(g=>{var N,S;return(N=g.pathParentKeys)!=null&&N.includes(r.value)?!a.filterTreeNode||((S=a.filterTreeNode)==null?void 0:S.call(a,g.treeNodeData)):!1});return f==null?void 0:f.filter(g=>{var N;if(c.value)return(N=g.pathParentKeys)==null?void 0:N.every(D=>u.has(D));const S=g.pathParentKeys.indexOf(r.value);return g.pathParentKeys.slice(S+1).every(D=>u.has(D))})}),v=b(()=>{var l,u;return((l=a.currentExpandKeys)==null?void 0:l.includes(r.value))&&((u=d.value)==null?void 0:u.length)});return{classNames:t,visibleNodeList:d,show:v,expanded:c,onTransitionEnd(){var l;(l=a.onExpandEnd)==null||l.call(a,r.value)}}}});function ct(e,n,t,a,r,c){const d=A("BaseTreeNode"),v=A("ExpandTransition");return C(),T(v,{expanded:e.expanded,onEnd:e.onTransitionEnd},{default:ue(()=>[e.show?(C(),P("div",{key:0,class:I(e.classNames)},[(C(!0),P(se,null,Ae(e.visibleNodeList,l=>(C(),T(d,$({key:l.key},l.treeNodeProps),null,16))),128))],2)):E("v-if",!0)]),_:1},8,["expanded","onEnd"])}var ft=ke(it,[["render",ct]]),pt=Object.defineProperty,en=Object.getOwnPropertySymbols,vt=Object.prototype.hasOwnProperty,ht=Object.prototype.propertyIsEnumerable,nn=(e,n,t)=>n in e?pt(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,yt=(e,n)=>{for(var t in n||(n={}))vt.call(n,t)&&nn(e,t,n[t]);if(en)for(var t of en(n))ht.call(n,t)&&nn(e,t,n[t]);return e},gt=ne({name:"TreeNode",inheritAttrs:!1,props:yt({},Oe.props),setup(e,{slots:n,attrs:t}){const a=dn();return()=>de(se,null,[de(Oe,$(e,t,{key:a.value}),n),de(ft,{key:a.value,nodeKey:a.value},null)])}});function kt(e){const{defaultCheckedKeys:n,checkedKeys:t,key2TreeNode:a,checkStrictly:r,halfCheckedKeys:c,onlyCheckLeaf:d}=Y(e),v=w(!1),l=w([]),u=w([]),f=w(),g=w(),N=D=>zn({initCheckedKeys:D,key2TreeNode:a.value,checkStrictly:r.value,onlyCheckLeaf:d.value}),S=D=>{const L=N(D);[l.value,u.value]=L};return S(t.value||(n==null?void 0:n.value)||[]),tn(()=>{t.value?[f.value,g.value]=N(t.value):v.value&&(f.value=void 0,g.value=void 0,l.value=[],u.value=[]),v.value||(v.value=!0)}),{checkedKeys:b(()=>f.value||l.value),indeterminateKeys:b(()=>r.value&&c.value?c.value:g.value||u.value),setCheckedState(D,L,B=!1){return B?S(D):(l.value=D,u.value=L),[l.value,u.value]}}}function Kt(e){const{treeData:n,fieldNames:t,selectable:a,showLine:r,blockNode:c,checkable:d,loadMore:v,draggable:l}=Y(e),u=w([]);tn(()=>{var N,S;u.value=et(n.value||[],{selectable:(N=a==null?void 0:a.value)!=null?N:!1,showLine:!!(r!=null&&r.value),blockNode:!!(c!=null&&c.value),checkable:(S=d==null?void 0:d.value)!=null?S:!1,fieldNames:t==null?void 0:t.value,loadMore:!!(v!=null&&v.value),draggable:!!(l!=null&&l.value)})});const f=b(()=>Rn(u.value)),g=b(()=>Hn(f.value));return{treeData:u,flattenTreeData:f,key2TreeNode:g}}const Nt=ne({name:"Tree",components:{VirtualList:Vn,TreeNode:gt},props:{size:{type:String,default:"medium"},blockNode:{type:Boolean},defaultExpandAll:{type:Boolean,default:!0},multiple:{type:Boolean},checkable:{type:[Boolean,String,Function],default:!1},selectable:{type:[Boolean,Function],default:!0},checkStrictly:{type:Boolean},checkedStrategy:{type:String,default:"all"},defaultSelectedKeys:{type:Array},selectedKeys:{type:Array},defaultCheckedKeys:{type:Array},checkedKeys:{type:Array},defaultExpandedKeys:{type:Array},expandedKeys:{type:Array},data:{type:Array,default:()=>[]},fieldNames:{type:Object},showLine:{type:Boolean},loadMore:{type:Function},draggable:{type:Boolean},allowDrop:{type:Function},filterTreeNode:{type:Function},searchValue:{type:String,default:""},virtualListProps:{type:Object},defaultExpandSelected:{type:Boolean},defaultExpandChecked:{type:Boolean},autoExpandParent:{type:Boolean,default:!0},halfCheckedKeys:{type:Array},onlyCheckLeaf:{type:Boolean,default:!1},animation:{type:Boolean,default:!0},actionOnNodeClick:{type:String},disableSelectActionOnly:{type:Boolean,default:!1}},emits:{select:(e,n)=>!0,"update:selectedKeys":e=>!0,check:(e,n)=>!0,"update:checkedKeys":e=>!0,"update:halfCheckedKeys":e=>!0,expand:(e,n)=>!0,"update:expandedKeys":e=>!0,dragStart:(e,n)=>!0,dragEnd:(e,n)=>!0,dragOver:(e,n)=>!0,dragLeave:(e,n)=>!0,drop:e=>!0},setup(e,{emit:n,slots:t}){const{data:a,showLine:r,multiple:c,loadMore:d,checkStrictly:v,checkedKeys:l,defaultCheckedKeys:u,selectedKeys:f,defaultSelectedKeys:g,expandedKeys:N,defaultExpandedKeys:S,checkedStrategy:D,selectable:L,checkable:B,blockNode:ie,fieldNames:G,size:te,defaultExpandAll:_,filterTreeNode:j,draggable:ce,allowDrop:ae,defaultExpandSelected:U,defaultExpandChecked:V,autoExpandParent:fe,halfCheckedKeys:Ne,onlyCheckLeaf:Se,animation:pe}=Y(e),x=Fe("tree"),be=b(()=>[`${x}`,{[`${x}-checkable`]:B.value,[`${x}-show-line`]:r.value},`${x}-size-${te.value}`]),Ce=F(t,"switcher-icon"),i=F(t,"loading-icon"),K=F(t,"drag-icon"),O=F(t,"icon"),sn=F(t,"title"),un=F(t,"extra"),{treeData:cn,flattenTreeData:me,key2TreeNode:m}=Kt(q({treeData:a,selectable:L,showLine:r,blockNode:ie,checkable:B,fieldNames:G,loadMore:d,draggable:ce})),{checkedKeys:X,indeterminateKeys:ve,setCheckedState:De}=kt(q({defaultCheckedKeys:u,checkedKeys:l,checkStrictly:v,key2TreeNode:m,halfCheckedKeys:Ne,onlyCheckLeaf:Se})),[re,Ee]=Ye((g==null?void 0:g.value)||[],q({value:f})),R=w([]),Z=w();function fn(){if(S!=null&&S.value){const o=new Set([]);return S.value.forEach(s=>{if(o.has(s))return;const p=m.value.get(s);p&&[...fe.value?p.pathParentKeys:[],s].forEach(h=>o.add(h))}),[...o]}if(_.value)return me.value.filter(o=>o.children&&o.children.length).map(o=>o.key);if(U.value||V.value){const o=new Set([]),s=p=>{p.forEach(h=>{const y=m.value.get(h);y&&(y.pathParentKeys||[]).forEach(k=>o.add(k))})};return U.value&&s(re.value),V.value&&s(X.value),[...o]}return[]}const[le,we]=Ye(fn(),q({value:N})),H=w([]),pn=b(()=>{const o=new Set(le.value),s=new Set(H.value);return me.value.filter(p=>{var h;if(!(!j||!j.value||(j==null?void 0:j.value(p.treeNodeData))))return!1;const k=z(p.parentKey),M=(h=p.pathParentKeys)==null?void 0:h.every(J=>o.has(J)&&!s.has(J));return k||M})});function je(o,s=D.value){let p=[...o];return s==="parent"?p=o.filter(h=>{const y=m.value.get(h);return y&&!(!z(y.parentKey)&&o.includes(y.parentKey))}):s==="child"&&(p=o.filter(h=>{var y,k;return!((k=(y=m.value.get(h))==null?void 0:y.children)!=null&&k.length)})),p}function oe(o){return o.map(s=>{var p;return((p=m.value.get(s))==null?void 0:p.treeNodeData)||void 0}).filter(Boolean)}function Te(o){const{targetKey:s,targetChecked:p,newCheckedKeys:h,newIndeterminateKeys:y,event:k}=o,M=s?m.value.get(s):void 0,J=je(h);n("update:checkedKeys",J),n("update:halfCheckedKeys",y),n("check",J,{checked:p,node:M==null?void 0:M.treeNodeData,checkedNodes:oe(J),halfCheckedKeys:y,halfCheckedNodes:oe(y),e:k})}function $e(o){const{targetKey:s,targetSelected:p,newSelectedKeys:h,event:y}=o,k=s?m.value.get(s):void 0;n("update:selectedKeys",h),n("select",h,{selected:p,node:k==null?void 0:k.treeNodeData,selectedNodes:oe(h),e:y})}function Le(o){const{targetKey:s,targetExpanded:p,newExpandedKeys:h,event:y}=o,k=s?m.value.get(s):void 0;n("expand",h,{expanded:p,node:k==null?void 0:k.treeNodeData,expandedNodes:oe(h),e:y}),n("update:expandedKeys",h)}function vn(o){const[s,p]=De(o,[],!0);Te({newCheckedKeys:s,newIndeterminateKeys:p})}function hn(o){let s=o;!c.value&&o.length>1&&(s=[o[0]]),Ee(s),$e({newSelectedKeys:s})}function yn(o){H.value=[],we(o),Le({newExpandedKeys:o})}function gn(o,s,p){if(!o.length)return;let h=[...X.value],y=[...ve.value];o.forEach(k=>{const M=m.value.get(k);M&&([h,y]=Xe({node:M,checked:s,checkedKeys:[...h],indeterminateKeys:[...y],checkStrictly:v.value}))}),De(h,y),Te({targetKey:p,targetChecked:z(p)?void 0:s,newCheckedKeys:h,newIndeterminateKeys:y})}function kn(o,s,p){if(!o.length)return;let h;if(c.value){const y=new Set(re.value);o.forEach(k=>{s?y.add(k):y.delete(k)}),h=[...y]}else h=s?[o[0]]:[];Ee(h),$e({targetKey:p,targetSelected:z(p)?void 0:s,newSelectedKeys:h})}function Kn(o,s,p){const h=new Set(le.value);o.forEach(k=>{s?h.add(k):h.delete(k),He(k)});const y=[...h];we(y),Le({targetKey:p,targetExpanded:z(p)?void 0:s,newExpandedKeys:y})}function Ve(o,s,p){const h=m.value.get(s);if(!h)return;const[y,k]=Xe({node:h,checked:o,checkedKeys:X.value,indeterminateKeys:ve.value,checkStrictly:v.value});De(y,k),Te({targetKey:s,targetChecked:o,newCheckedKeys:y,newIndeterminateKeys:k,event:p})}function Nn(o,s){if(!m.value.get(o))return;let h,y;if(c.value){const k=new Set(re.value);y=!k.has(o),y?k.add(o):k.delete(o),h=[...k]}else y=!0,h=[o];Ee(h),$e({targetKey:o,targetSelected:y,newSelectedKeys:h,event:s})}function Re(o,s,p){if(H.value.includes(s)||!m.value.get(s))return;const y=new Set(le.value);o?y.add(s):y.delete(s);const k=[...y];we(k),pe.value&&H.value.push(s),Le({targetKey:s,targetExpanded:o,newExpandedKeys:k,event:p})}function He(o){const s=H.value.indexOf(o);H.value.splice(s,1)}const Sn=b(()=>d!=null&&d.value?async o=>{if(!ge(d.value))return;const s=m.value.get(o);if(!s)return;const{treeNodeData:p}=s;R.value=[...new Set([...R.value,o])];try{await d.value(p),R.value=R.value.filter(h=>h!==o),Re(!0,o),X.value.includes(o)&&Ve(!0,o)}catch(h){R.value=R.value.filter(y=>y!==o),console.error("[tree]load data error: ",h)}}:void 0),Me=q({treeProps:e,switcherIcon:Ce,loadingIcon:i,dragIcon:K,nodeIcon:O,nodeTitle:sn,nodeExtra:un,treeData:cn,flattenTreeData:me,key2TreeNode:m,checkedKeys:X,indeterminateKeys:ve,selectedKeys:re,expandedKeys:le,loadingKeys:R,currentExpandKeys:H,onLoadMore:Sn,filterTreeNode:j,onCheck:Ve,onSelect:Nn,onExpand:Re,onExpandEnd:He,allowDrop(o,s){const p=m.value.get(o);return p&&ge(ae.value)?!!ae.value({dropNode:p.treeNodeData,dropPosition:s}):!0},onDragStart(o,s){const p=m.value.get(o);Z.value=p,p&&n("dragStart",s,p.treeNodeData)},onDragEnd(o,s){const p=m.value.get(o);Z.value=void 0,p&&n("dragEnd",s,p.treeNodeData)},onDragOver(o,s){const p=m.value.get(o);p&&n("dragOver",s,p.treeNodeData)},onDragLeave(o,s){const p=m.value.get(o);p&&n("dragLeave",s,p.treeNodeData)},onDrop(o,s,p){const h=m.value.get(o);Z.value&&h&&!(h.key===Z.value.key||h.pathParentKeys.includes(Z.value.key||""))&&n("drop",{e:p,dragNode:Z.value.treeNodeData,dropNode:h.treeNodeData,dropPosition:s})}});return Fn(rn,Me),{classNames:be,visibleTreeNodeList:pn,treeContext:Me,virtualListRef:w(),computedSelectedKeys:re,computedExpandedKeys:le,computedCheckedKeys:X,computedIndeterminateKeys:ve,getPublicCheckedKeys:je,getNodes:oe,internalCheckNodes:gn,internalSetCheckedKeys:vn,internalSelectNodes:kn,internalSetSelectedKeys:hn,internalExpandNodes:Kn,internalSetExpandedKeys:yn}},methods:{toggleCheck(e,n){const{key2TreeNode:t,onCheck:a,checkedKeys:r}=this.treeContext,c=!r.includes(e),d=t.get(e);d&&ee(d)&&a(c,e,n)},scrollIntoView(e){this.virtualListRef&&this.virtualListRef.scrollTo(e)},getSelectedNodes(){return this.getNodes(this.computedSelectedKeys)},getCheckedNodes(e={}){const{checkedStrategy:n,includeHalfChecked:t}=e,a=this.getPublicCheckedKeys(this.computedCheckedKeys,n);return[...this.getNodes(a),...t?this.getHalfCheckedNodes():[]]},getHalfCheckedNodes(){return this.getNodes(this.computedIndeterminateKeys)},getExpandedNodes(){return this.getNodes(this.computedExpandedKeys)},checkAll(e=!0){const{key2TreeNode:n}=this.treeContext,t=e?[...n.keys()].filter(a=>{const r=n.get(a);return r&&ee(r)}):[];this.internalSetCheckedKeys(t)},checkNode(e,n=!0,t=!1){const{checkStrictly:a,treeContext:r}=this,{key2TreeNode:c}=r,d=ye(e),v=(d?e:[e]).filter(l=>{const u=c.get(l);return u&&ee(u)&&(a||!t||Mn(u))});this.internalCheckNodes(v,n,d?void 0:e)},selectAll(e=!0){const{key2TreeNode:n}=this.treeContext,t=e?[...n.keys()].filter(a=>{const r=n.get(a);return r&&Ge(r)}):[];this.internalSetSelectedKeys(t)},selectNode(e,n=!0){const{key2TreeNode:t}=this.treeContext,a=ye(e),r=(a?e:[e]).filter(c=>{const d=t.get(c);return d&&Ge(d)});this.internalSelectNodes(r,n,a?void 0:e)},expandAll(e=!0){const{key2TreeNode:n}=this.treeContext,t=e?[...n.keys()].filter(a=>{const r=n.get(a);return r&&Ue(r)}):[];this.internalSetExpandedKeys(t)},expandNode(e,n=!0){const{key2TreeNode:t}=this.treeContext,a=ye(e),r=(a?e:[e]).filter(c=>{const d=t.get(c);return d&&Ue(d)});this.internalExpandNodes(r,n,a?void 0:e)}}});function St(e,n,t,a,r,c){const d=A("TreeNode"),v=A("VirtualList");return C(),P("div",{class:I(e.classNames)},[e.virtualListProps?(C(),T(v,$({key:0,ref:"virtualListRef"},e.virtualListProps,{data:e.visibleTreeNodeList}),{item:ue(({item:l})=>[de(d,$({key:`${e.searchValue}-${l.key}`},l.treeNodeProps),null,16)]),_:1},16,["data"])):(C(!0),P(se,{key:1},Ae(e.visibleTreeNodeList,l=>(C(),T(d,$({key:l.key},l.treeNodeProps),null,16))),128))],2)}var Ie=ke(Nt,[["render",St]]);const $t=Object.assign(Ie,{install:(e,n)=>{En(e,n);const t=wn(n);e.component(t+Ie.name,Ie)}});export{$t as T};