index-8xG_TqDZ.js 26 KB

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