| 1 |
- import{a as he,E as Ke,e as Pe,s as je}from"./index.2edcba6e.js";import{L as ue,j as _,M as Fe,_ as ae,f as R,N as H,O as F,Q as G,R as we,S as Q,r as w,T as ie,U as Ve,B as Re,V as He,W as x,X as V,Y as Ue,Z as B,$ as fe,a0 as ye,o as S,c as P,a as pe,m as q,w as le,a1 as We,a2 as A,a3 as L,n as Y,b as ce,a4 as Ye,H as Se,I as xe,a5 as ve,a6 as Ae,a7 as Ge,s as Ee,C as Oe,a8 as Qe,a9 as Xe,aa as M,ab as Ze,ac as Je,y as T,ad as _e,t as et,ae as Te,af as ee}from"./entry.32bca663.js";import{_ as tt}from"./index.52300c7b.js";import{E as nt,p as se}from"./index.e967c3f2.js";import{i as ot}from"./index.862a4486.js";const j="$treeNodeId",De=function(e,t){!t||t[j]||Object.defineProperty(t,j,{value:e.id,enumerable:!1,configurable:!1,writable:!1})},me=function(e,t){return e?t[e]:t[j]},ge=(e,t,o)=>{const d=e.value.currentNode;o();const n=e.value.currentNode;d!==n&&t("current-change",n?n.data:null,n)},Ne=e=>{let t=!0,o=!0,d=!0;for(let n=0,s=e.length;n<s;n++){const r=e[n];(r.checked!==!0||r.indeterminate)&&(t=!1,r.disabled||(d=!1)),(r.checked!==!1||r.indeterminate)&&(o=!1)}return{all:t,none:o,allWithoutDisable:d,half:!t&&!o}},te=function(e){if(e.childNodes.length===0||e.loading)return;const{all:t,none:o,half:d}=Ne(e.childNodes);t?(e.checked=!0,e.indeterminate=!1):d?(e.checked=!1,e.indeterminate=!0):o&&(e.checked=!1,e.indeterminate=!1);const n=e.parent;!n||n.level===0||e.store.checkStrictly||te(n)},J=function(e,t){const o=e.store.props,d=e.data||{},n=o[t];if(typeof n=="function")return n(d,e);if(typeof n=="string")return d[n];if(typeof n>"u"){const s=d[t];return s===void 0?"":s}};let dt=0;class I{constructor(t){this.id=dt++,this.text=null,this.checked=!1,this.indeterminate=!1,this.data=null,this.expanded=!1,this.parent=null,this.visible=!0,this.isCurrent=!1,this.canFocus=!1;for(const o in t)ue(t,o)&&(this[o]=t[o]);this.level=0,this.loaded=!1,this.childNodes=[],this.loading=!1,this.parent&&(this.level=this.parent.level+1)}initialize(){const t=this.store;if(!t)throw new Error("[Node]store is required!");t.registerNode(this);const o=t.props;if(o&&typeof o.isLeaf<"u"){const s=J(this,"isLeaf");typeof s=="boolean"&&(this.isLeafByUser=s)}if(t.lazy!==!0&&this.data?(this.setData(this.data),t.defaultExpandAll&&(this.expanded=!0,this.canFocus=!0)):this.level>0&&t.lazy&&t.defaultExpandAll&&this.expand(),Array.isArray(this.data)||De(this,this.data),!this.data)return;const d=t.defaultExpandedKeys,n=t.key;n&&d&&d.includes(this.key)&&this.expand(null,t.autoExpandParent),n&&t.currentNodeKey!==void 0&&this.key===t.currentNodeKey&&(t.currentNode=this,t.currentNode.isCurrent=!0),t.lazy&&t._initDefaultCheckedNode(this),this.updateLeafState(),this.parent&&(this.level===1||this.parent.expanded===!0)&&(this.canFocus=!0)}setData(t){Array.isArray(t)||De(this,t),this.data=t,this.childNodes=[];let o;this.level===0&&Array.isArray(this.data)?o=this.data:o=J(this,"children")||[];for(let d=0,n=o.length;d<n;d++)this.insertChild({data:o[d]})}get label(){return J(this,"label")}get key(){const t=this.store.key;return this.data?this.data[t]:null}get disabled(){return J(this,"disabled")}get nextSibling(){const t=this.parent;if(t){const o=t.childNodes.indexOf(this);if(o>-1)return t.childNodes[o+1]}return null}get previousSibling(){const t=this.parent;if(t){const o=t.childNodes.indexOf(this);if(o>-1)return o>0?t.childNodes[o-1]:null}return null}contains(t,o=!0){return(this.childNodes||[]).some(d=>d===t||o&&d.contains(t))}remove(){const t=this.parent;t&&t.removeChild(this)}insertChild(t,o,d){if(!t)throw new Error("InsertChild error: child is required.");if(!(t instanceof I)){if(!d){const n=this.getChildren(!0);n.includes(t.data)||(typeof o>"u"||o<0?n.push(t.data):n.splice(o,0,t.data))}Object.assign(t,{parent:this,store:this.store}),t=_(new I(t)),t instanceof I&&t.initialize()}t.level=this.level+1,typeof o>"u"||o<0?this.childNodes.push(t):this.childNodes.splice(o,0,t),this.updateLeafState()}insertBefore(t,o){let d;o&&(d=this.childNodes.indexOf(o)),this.insertChild(t,d)}insertAfter(t,o){let d;o&&(d=this.childNodes.indexOf(o),d!==-1&&(d+=1)),this.insertChild(t,d)}removeChild(t){const o=this.getChildren()||[],d=o.indexOf(t.data);d>-1&&o.splice(d,1);const n=this.childNodes.indexOf(t);n>-1&&(this.store&&this.store.deregisterNode(t),t.parent=null,this.childNodes.splice(n,1)),this.updateLeafState()}removeChildByData(t){let o=null;for(let d=0;d<this.childNodes.length;d++)if(this.childNodes[d].data===t){o=this.childNodes[d];break}o&&this.removeChild(o)}expand(t,o){const d=()=>{if(o){let n=this.parent;for(;n.level>0;)n.expanded=!0,n=n.parent}this.expanded=!0,t&&t(),this.childNodes.forEach(n=>{n.canFocus=!0})};this.shouldLoadData()?this.loadData(n=>{Array.isArray(n)&&(this.checked?this.setChecked(!0,!0):this.store.checkStrictly||te(this),d())}):d()}doCreateChildren(t,o={}){t.forEach(d=>{this.insertChild(Object.assign({data:d},o),void 0,!0)})}collapse(){this.expanded=!1,this.childNodes.forEach(t=>{t.canFocus=!1})}shouldLoadData(){return this.store.lazy===!0&&this.store.load&&!this.loaded}updateLeafState(){if(this.store.lazy===!0&&this.loaded!==!0&&typeof this.isLeafByUser<"u"){this.isLeaf=this.isLeafByUser;return}const t=this.childNodes;if(!this.store.lazy||this.store.lazy===!0&&this.loaded===!0){this.isLeaf=!t||t.length===0;return}this.isLeaf=!1}setChecked(t,o,d,n){if(this.indeterminate=t==="half",this.checked=t===!0,this.store.checkStrictly)return;if(!(this.shouldLoadData()&&!this.store.checkDescendants)){const{all:r,allWithoutDisable:i}=Ne(this.childNodes);!this.isLeaf&&!r&&i&&(this.checked=!1,t=!1);const l=()=>{if(o){const N=this.childNodes;for(let a=0,c=N.length;a<c;a++){const y=N[a];n=n||t!==!1;const g=y.disabled?y.checked:n;y.setChecked(g,o,!0,n)}const{half:u,all:h}=Ne(N);h||(this.checked=h,this.indeterminate=u)}};if(this.shouldLoadData()){this.loadData(()=>{l(),te(this)},{checked:t!==!1});return}else l()}const s=this.parent;!s||s.level===0||d||te(s)}getChildren(t=!1){if(this.level===0)return this.data;const o=this.data;if(!o)return null;const d=this.store.props;let n="children";return d&&(n=d.children||"children"),o[n]===void 0&&(o[n]=null),t&&!o[n]&&(o[n]=[]),o[n]}updateChildren(){const t=this.getChildren()||[],o=this.childNodes.map(s=>s.data),d={},n=[];t.forEach((s,r)=>{const i=s[j];!!i&&o.findIndex(N=>N[j]===i)>=0?d[i]={index:r,data:s}:n.push({index:r,data:s})}),this.store.lazy||o.forEach(s=>{d[s[j]]||this.removeChildByData(s)}),n.forEach(({index:s,data:r})=>{this.insertChild({data:r},s)}),this.updateLeafState()}loadData(t,o={}){if(this.store.lazy===!0&&this.store.load&&!this.loaded&&(!this.loading||Object.keys(o).length)){this.loading=!0;const d=n=>{this.childNodes=[],this.doCreateChildren(n,o),this.loaded=!0,this.loading=!1,this.updateLeafState(),t&&t.call(this,n)};this.store.load(this,d)}else t&&t.call(this)}}class st{constructor(t){this.currentNode=null,this.currentNodeKey=null;for(const o in t)ue(t,o)&&(this[o]=t[o]);this.nodesMap={}}initialize(){if(this.root=new I({data:this.data,store:this}),this.root.initialize(),this.lazy&&this.load){const t=this.load;t(this.root,o=>{this.root.doCreateChildren(o),this._initDefaultCheckedNodes()})}else this._initDefaultCheckedNodes()}filter(t){const o=this.filterNodeMethod,d=this.lazy,n=function(s){const r=s.root?s.root.childNodes:s.childNodes;if(r.forEach(i=>{i.visible=o.call(i,t,i.data,i),n(i)}),!s.visible&&r.length){let i=!0;i=!r.some(l=>l.visible),s.root?s.root.visible=i===!1:s.visible=i===!1}t&&s.visible&&!s.isLeaf&&(!d||s.loaded)&&s.expand()};n(this)}setData(t){t!==this.root.data?(this.root.setData(t),this._initDefaultCheckedNodes()):this.root.updateChildren()}getNode(t){if(t instanceof I)return t;const o=Fe(t)?me(this.key,t):t;return this.nodesMap[o]||null}insertBefore(t,o){const d=this.getNode(o);d.parent.insertBefore({data:t},d)}insertAfter(t,o){const d=this.getNode(o);d.parent.insertAfter({data:t},d)}remove(t){const o=this.getNode(t);o&&o.parent&&(o===this.currentNode&&(this.currentNode=null),o.parent.removeChild(o))}append(t,o){const d=o?this.getNode(o):this.root;d&&d.insertChild({data:t})}_initDefaultCheckedNodes(){const t=this.defaultCheckedKeys||[],o=this.nodesMap;t.forEach(d=>{const n=o[d];n&&n.setChecked(!0,!this.checkStrictly)})}_initDefaultCheckedNode(t){(this.defaultCheckedKeys||[]).includes(t.key)&&t.setChecked(!0,!this.checkStrictly)}setDefaultCheckedKey(t){t!==this.defaultCheckedKeys&&(this.defaultCheckedKeys=t,this._initDefaultCheckedNodes())}registerNode(t){const o=this.key;!t||!t.data||(o?t.key!==void 0&&(this.nodesMap[t.key]=t):this.nodesMap[t.id]=t)}deregisterNode(t){!this.key||!t||!t.data||(t.childNodes.forEach(d=>{this.deregisterNode(d)}),delete this.nodesMap[t.key])}getCheckedNodes(t=!1,o=!1){const d=[],n=function(s){(s.root?s.root.childNodes:s.childNodes).forEach(i=>{(i.checked||o&&i.indeterminate)&&(!t||t&&i.isLeaf)&&d.push(i.data),n(i)})};return n(this),d}getCheckedKeys(t=!1){return this.getCheckedNodes(t).map(o=>(o||{})[this.key])}getHalfCheckedNodes(){const t=[],o=function(d){(d.root?d.root.childNodes:d.childNodes).forEach(s=>{s.indeterminate&&t.push(s.data),o(s)})};return o(this),t}getHalfCheckedKeys(){return this.getHalfCheckedNodes().map(t=>(t||{})[this.key])}_getAllNodes(){const t=[],o=this.nodesMap;for(const d in o)ue(o,d)&&t.push(o[d]);return t}updateChildren(t,o){const d=this.nodesMap[t];if(!d)return;const n=d.childNodes;for(let s=n.length-1;s>=0;s--){const r=n[s];this.remove(r.data)}for(let s=0,r=o.length;s<r;s++){const i=o[s];this.append(i,d.data)}}_setCheckedKeys(t,o=!1,d){const n=this._getAllNodes().sort((l,N)=>l.level-N.level),s=Object.create(null),r=Object.keys(d);n.forEach(l=>l.setChecked(!1,!1));const i=l=>{l.childNodes.forEach(N=>{var u;s[N.data[t]]=!0,(u=N.childNodes)!=null&&u.length&&i(N)})};for(let l=0,N=n.length;l<N;l++){const u=n[l],h=u.data[t].toString();if(!r.includes(h)){u.checked&&!s[h]&&u.setChecked(!1,!1);continue}if(u.childNodes.length&&i(u),u.isLeaf||this.checkStrictly){u.setChecked(!0,!1);continue}if(u.setChecked(!0,!0),o){u.setChecked(!1,!1);const c=function(y){y.childNodes.forEach(k=>{k.isLeaf||k.setChecked(!1,!1),c(k)})};c(u)}}}setCheckedNodes(t,o=!1){const d=this.key,n={};t.forEach(s=>{n[(s||{})[d]]=!0}),this._setCheckedKeys(d,o,n)}setCheckedKeys(t,o=!1){this.defaultCheckedKeys=t;const d=this.key,n={};t.forEach(s=>{n[s]=!0}),this._setCheckedKeys(d,o,n)}setDefaultExpandedKeys(t){t=t||[],this.defaultExpandedKeys=t,t.forEach(o=>{const d=this.getNode(o);d&&d.expand(null,this.autoExpandParent)})}setChecked(t,o,d){const n=this.getNode(t);n&&n.setChecked(!!o,d)}getCurrentNode(){return this.currentNode}setCurrentNode(t){const o=this.currentNode;o&&(o.isCurrent=!1),this.currentNode=t,this.currentNode.isCurrent=!0}setUserCurrentNode(t,o=!0){const d=t[this.key],n=this.nodesMap[d];this.setCurrentNode(n),o&&this.currentNode.level>1&&this.currentNode.parent.expand(null,!0)}setCurrentNodeKey(t,o=!0){if(t==null){this.currentNode&&(this.currentNode.isCurrent=!1),this.currentNode=null;return}const d=this.getNode(t);d&&(this.setCurrentNode(d),o&&this.currentNode.level>1&&this.currentNode.parent.expand(null,!0))}}const at=R({name:"ElTreeNodeContent",props:{node:{type:Object,required:!0},renderContent:Function},setup(e){const t=H("tree"),o=F("NodeInstance"),d=F("RootTree");return()=>{const n=e.node,{data:s,store:r}=n;return e.renderContent?e.renderContent(G,{_self:o,node:n,data:s,store:r}):we(d.ctx.slots,"default",{node:n,data:s},()=>[G("span",{class:t.be("node","label")},[n.label])])}}});var rt=ae(at,[["__file","tree-node-content.vue"]]);function Le(e){const t=F("TreeNodeMap",null),o={treeNodeExpand:d=>{e.node!==d&&e.node.collapse()},children:[]};return t&&t.children.push(o),Q("TreeNodeMap",o),{broadcastExpanded:d=>{if(e.accordion)for(const n of o.children)n.treeNodeExpand(d)}}}const Me=Symbol("dragEvents");function it({props:e,ctx:t,el$:o,dropIndicator$:d,store:n}){const s=H("tree"),r=w({showDropIndicator:!1,draggingNode:null,dropNode:null,allowDrop:!0,dropType:null});return Q(Me,{treeNodeDragStart:({event:u,treeNode:h})=>{if(typeof e.allowDrag=="function"&&!e.allowDrag(h.node))return u.preventDefault(),!1;u.dataTransfer.effectAllowed="move";try{u.dataTransfer.setData("text/plain","")}catch{}r.value.draggingNode=h,t.emit("node-drag-start",h.node,u)},treeNodeDragOver:({event:u,treeNode:h})=>{const a=h,c=r.value.dropNode;c&&c.node.id!==a.node.id&&ie(c.$el,s.is("drop-inner"));const y=r.value.draggingNode;if(!y||!a)return;let g=!0,k=!0,m=!0,b=!0;typeof e.allowDrop=="function"&&(g=e.allowDrop(y.node,a.node,"prev"),b=k=e.allowDrop(y.node,a.node,"inner"),m=e.allowDrop(y.node,a.node,"next")),u.dataTransfer.dropEffect=k||g||m?"move":"none",(g||k||m)&&(c==null?void 0:c.node.id)!==a.node.id&&(c&&t.emit("node-drag-leave",y.node,c.node,u),t.emit("node-drag-enter",y.node,a.node,u)),g||k||m?r.value.dropNode=a:r.value.dropNode=null,a.node.nextSibling===y.node&&(m=!1),a.node.previousSibling===y.node&&(g=!1),a.node.contains(y.node,!1)&&(k=!1),(y.node===a.node||y.node.contains(a.node))&&(g=!1,k=!1,m=!1);const D=a.$el.querySelector(`.${s.be("node","content")}`).getBoundingClientRect(),O=o.value.getBoundingClientRect();let v;const X=g?k?.25:m?.45:1:-1,Z=m?k?.75:g?.55:0:1;let $=-9999;const p=u.clientY-D.top;p<D.height*X?v="before":p>D.height*Z?v="after":k?v="inner":v="none";const K=a.$el.querySelector(`.${s.be("node","expand-icon")}`).getBoundingClientRect(),E=d.value;v==="before"?$=K.top-O.top:v==="after"&&($=K.bottom-O.top),E.style.top=`${$}px`,E.style.left=`${K.right-O.left}px`,v==="inner"?Ve(a.$el,s.is("drop-inner")):ie(a.$el,s.is("drop-inner")),r.value.showDropIndicator=v==="before"||v==="after",r.value.allowDrop=r.value.showDropIndicator||b,r.value.dropType=v,t.emit("node-drag-over",y.node,a.node,u)},treeNodeDragEnd:u=>{const{draggingNode:h,dropType:a,dropNode:c}=r.value;if(u.preventDefault(),u.dataTransfer.dropEffect="move",h&&c){const y={data:h.node.data};a!=="none"&&h.node.remove(),a==="before"?c.node.parent.insertBefore(y,c.node):a==="after"?c.node.parent.insertAfter(y,c.node):a==="inner"&&c.node.insertChild(y),a!=="none"&&n.value.registerNode(y),ie(c.$el,s.is("drop-inner")),t.emit("node-drag-end",h.node,c.node,a,u),a!=="none"&&t.emit("node-drop",h.node,c.node,a,u)}h&&!c&&t.emit("node-drag-end",h.node,null,a,u),r.value.showDropIndicator=!1,r.value.draggingNode=null,r.value.dropNode=null,r.value.allowDrop=!0}}),{dragState:r}}const lt=R({name:"ElTreeNode",components:{ElCollapseTransition:tt,ElCheckbox:nt,NodeContent:rt,ElIcon:Re,Loading:He},props:{node:{type:I,default:()=>({})},props:{type:Object,default:()=>({})},accordion:Boolean,renderContent:Function,renderAfterExpand:Boolean,showCheckbox:{type:Boolean,default:!1}},emits:["node-expand"],setup(e,t){const o=H("tree"),{broadcastExpanded:d}=Le(e),n=F("RootTree"),s=w(!1),r=w(!1),i=w(null),l=w(null),N=w(null),u=F(Me),h=ve();Q("NodeInstance",h),e.node.expanded&&(s.value=!0,r.value=!0);const a=n.props.props.children||"children";x(()=>{const p=e.node.data[a];return p&&[...p]},()=>{e.node.updateChildren()}),x(()=>e.node.indeterminate,p=>{g(e.node.checked,p)}),x(()=>e.node.checked,p=>{g(p,e.node.indeterminate)}),x(()=>e.node.expanded,p=>{V(()=>s.value=p),p&&(r.value=!0)});const c=p=>me(n.props.nodeKey,p.data),y=p=>{const K=e.props.class;if(!K)return{};let E;if(Ae(K)){const{data:re}=p;E=K(re,p)}else E=K;return Ge(E)?{[E]:!0}:E},g=(p,K)=>{(i.value!==p||l.value!==K)&&n.ctx.emit("check-change",e.node.data,p,K),i.value=p,l.value=K},k=p=>{ge(n.store,n.ctx.emit,()=>n.store.value.setCurrentNode(e.node)),n.currentNode.value=e.node,n.props.expandOnClickNode&&b(),n.props.checkOnClickNode&&!e.node.disabled&&D(null,{target:{checked:!e.node.checked}}),n.ctx.emit("node-click",e.node.data,e.node,h,p)},m=p=>{n.instance.vnode.props.onNodeContextmenu&&(p.stopPropagation(),p.preventDefault()),n.ctx.emit("node-contextmenu",p,e.node.data,e.node,h)},b=()=>{e.node.isLeaf||(s.value?(n.ctx.emit("node-collapse",e.node.data,e.node,h),e.node.collapse()):(e.node.expand(),t.emit("node-expand",e.node.data,e.node,h)))},D=(p,K)=>{e.node.setChecked(K.target.checked,!n.props.checkStrictly),V(()=>{const E=n.store.value;n.ctx.emit("check",e.node.data,{checkedNodes:E.getCheckedNodes(),checkedKeys:E.getCheckedKeys(),halfCheckedNodes:E.getHalfCheckedNodes(),halfCheckedKeys:E.getHalfCheckedKeys()})})};return{ns:o,node$:N,tree:n,expanded:s,childNodeRendered:r,oldChecked:i,oldIndeterminate:l,getNodeKey:c,getNodeClass:y,handleSelectChange:g,handleClick:k,handleContextMenu:m,handleExpandIconClick:b,handleCheckChange:D,handleChildNodeExpand:(p,K,E)=>{d(K),n.ctx.emit("node-expand",p,K,E)},handleDragStart:p=>{n.props.draggable&&u.treeNodeDragStart({event:p,treeNode:e})},handleDragOver:p=>{p.preventDefault(),n.props.draggable&&u.treeNodeDragOver({event:p,treeNode:{$el:N.value,node:e.node}})},handleDrop:p=>{p.preventDefault()},handleDragEnd:p=>{n.props.draggable&&u.treeNodeDragEnd(p)},CaretRight:Ue}}}),ct=["aria-expanded","aria-disabled","aria-checked","draggable","data-key"],ht=["aria-expanded"];function ut(e,t,o,d,n,s){const r=B("el-icon"),i=B("el-checkbox"),l=B("loading"),N=B("node-content"),u=B("el-tree-node"),h=B("el-collapse-transition");return fe((S(),P("div",{ref:"node$",class:A([e.ns.b("node"),e.ns.is("expanded",e.expanded),e.ns.is("current",e.node.isCurrent),e.ns.is("hidden",!e.node.visible),e.ns.is("focusable",!e.node.disabled),e.ns.is("checked",!e.node.disabled&&e.node.checked),e.getNodeClass(e.node)]),role:"treeitem",tabindex:"-1","aria-expanded":e.expanded,"aria-disabled":e.node.disabled,"aria-checked":e.node.checked,draggable:e.tree.props.draggable,"data-key":e.getNodeKey(e.node),onClick:t[1]||(t[1]=L((...a)=>e.handleClick&&e.handleClick(...a),["stop"])),onContextmenu:t[2]||(t[2]=(...a)=>e.handleContextMenu&&e.handleContextMenu(...a)),onDragstart:t[3]||(t[3]=L((...a)=>e.handleDragStart&&e.handleDragStart(...a),["stop"])),onDragover:t[4]||(t[4]=L((...a)=>e.handleDragOver&&e.handleDragOver(...a),["stop"])),onDragend:t[5]||(t[5]=L((...a)=>e.handleDragEnd&&e.handleDragEnd(...a),["stop"])),onDrop:t[6]||(t[6]=L((...a)=>e.handleDrop&&e.handleDrop(...a),["stop"]))},[pe("div",{class:A(e.ns.be("node","content")),style:Ye({paddingLeft:(e.node.level-1)*e.tree.props.indent+"px"})},[e.tree.props.icon||e.CaretRight?(S(),q(r,{key:0,class:A([e.ns.be("node","expand-icon"),e.ns.is("leaf",e.node.isLeaf),{expanded:!e.node.isLeaf&&e.expanded}]),onClick:L(e.handleExpandIconClick,["stop"])},{default:le(()=>[(S(),q(We(e.tree.props.icon||e.CaretRight)))]),_:1},8,["class","onClick"])):Y("v-if",!0),e.showCheckbox?(S(),q(i,{key:1,"model-value":e.node.checked,indeterminate:e.node.indeterminate,disabled:!!e.node.disabled,onClick:t[0]||(t[0]=L(()=>{},["stop"])),onChange:e.handleCheckChange},null,8,["model-value","indeterminate","disabled","onChange"])):Y("v-if",!0),e.node.loading?(S(),q(r,{key:2,class:A([e.ns.be("node","loading-icon"),e.ns.is("loading")])},{default:le(()=>[ce(l)]),_:1},8,["class"])):Y("v-if",!0),ce(N,{node:e.node,"render-content":e.renderContent},null,8,["node","render-content"])],6),ce(h,null,{default:le(()=>[!e.renderAfterExpand||e.childNodeRendered?fe((S(),P("div",{key:0,class:A(e.ns.be("node","children")),role:"group","aria-expanded":e.expanded},[(S(!0),P(Se,null,xe(e.node.childNodes,a=>(S(),q(u,{key:e.getNodeKey(a),"render-content":e.renderContent,"render-after-expand":e.renderAfterExpand,"show-checkbox":e.showCheckbox,node:a,accordion:e.accordion,props:e.props,onNodeExpand:e.handleChildNodeExpand},null,8,["render-content","render-after-expand","show-checkbox","node","accordion","props","onNodeExpand"]))),128))],10,ht)),[[ye,e.expanded]]):Y("v-if",!0)]),_:1})],42,ct)),[[ye,e.node.visible]])}var ft=ae(lt,[["render",ut],["__file","tree-node.vue"]]);function yt({el$:e},t){const o=H("tree"),d=Ee([]),n=Ee([]);Oe(()=>{r()}),Qe(()=>{d.value=Array.from(e.value.querySelectorAll("[role=treeitem]")),n.value=Array.from(e.value.querySelectorAll("input[type=checkbox]"))}),x(n,i=>{i.forEach(l=>{l.setAttribute("tabindex","-1")})}),Xe(e,"keydown",i=>{const l=i.target;if(!l.className.includes(o.b("node")))return;const N=i.code;d.value=Array.from(e.value.querySelectorAll(`.${o.is("focusable")}[role=treeitem]`));const u=d.value.indexOf(l);let h;if([M.up,M.down].includes(N)){if(i.preventDefault(),N===M.up){h=u===-1?0:u!==0?u-1:d.value.length-1;const c=h;for(;!t.value.getNode(d.value[h].dataset.key).canFocus;){if(h--,h===c){h=-1;break}h<0&&(h=d.value.length-1)}}else{h=u===-1?0:u<d.value.length-1?u+1:0;const c=h;for(;!t.value.getNode(d.value[h].dataset.key).canFocus;){if(h++,h===c){h=-1;break}h>=d.value.length&&(h=0)}}h!==-1&&d.value[h].focus()}[M.left,M.right].includes(N)&&(i.preventDefault(),l.click());const a=l.querySelector('[type="checkbox"]');[M.enter,M.space].includes(N)&&a&&(i.preventDefault(),a.click())});const r=()=>{var i;d.value=Array.from(e.value.querySelectorAll(`.${o.is("focusable")}[role=treeitem]`)),n.value=Array.from(e.value.querySelectorAll("input[type=checkbox]"));const l=e.value.querySelectorAll(`.${o.is("checked")}[role=treeitem]`);if(l.length){l[0].setAttribute("tabindex","0");return}(i=d.value[0])==null||i.setAttribute("tabindex","0")}}const pt=R({name:"ElTree",components:{ElTreeNode:ft},props:{data:{type:Array,default:()=>[]},emptyText:{type:String},renderAfterExpand:{type:Boolean,default:!0},nodeKey:String,checkStrictly:Boolean,defaultExpandAll:Boolean,expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:Boolean,checkDescendants:{type:Boolean,default:!1},autoExpandParent:{type:Boolean,default:!0},defaultCheckedKeys:Array,defaultExpandedKeys:Array,currentNodeKey:[String,Number],renderContent:Function,showCheckbox:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},allowDrag:Function,allowDrop:Function,props:{type:Object,default:()=>({children:"children",label:"label",disabled:"disabled"})},lazy:{type:Boolean,default:!1},highlightCurrent:Boolean,load:Function,filterNodeMethod:Function,accordion:Boolean,indent:{type:Number,default:18},icon:{type:Ze}},emits:["check-change","current-change","node-click","node-contextmenu","node-collapse","node-expand","check","node-drag-start","node-drag-end","node-drop","node-drag-leave","node-drag-enter","node-drag-over"],setup(e,t){const{t:o}=Je(),d=H("tree"),n=w(new st({key:e.nodeKey,data:e.data,lazy:e.lazy,props:e.props,load:e.load,currentNodeKey:e.currentNodeKey,checkStrictly:e.checkStrictly,checkDescendants:e.checkDescendants,defaultCheckedKeys:e.defaultCheckedKeys,defaultExpandedKeys:e.defaultExpandedKeys,autoExpandParent:e.autoExpandParent,defaultExpandAll:e.defaultExpandAll,filterNodeMethod:e.filterNodeMethod}));n.value.initialize();const s=w(n.value.root),r=w(null),i=w(null),l=w(null),{broadcastExpanded:N}=Le(e),{dragState:u}=it({props:e,ctx:t,el$:i,dropIndicator$:l,store:n});yt({el$:i},n);const h=T(()=>{const{childNodes:f}=s.value;return!f||f.length===0||f.every(({visible:C})=>!C)});x(()=>e.currentNodeKey,f=>{n.value.setCurrentNodeKey(f)}),x(()=>e.defaultCheckedKeys,f=>{n.value.setDefaultCheckedKey(f)}),x(()=>e.defaultExpandedKeys,f=>{n.value.setDefaultExpandedKeys(f)}),x(()=>e.data,f=>{n.value.setData(f)},{deep:!0}),x(()=>e.checkStrictly,f=>{n.value.checkStrictly=f});const a=f=>{if(!e.filterNodeMethod)throw new Error("[Tree] filterNodeMethod is required when filter");n.value.filter(f)},c=f=>me(e.nodeKey,f.data),y=f=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in getNodePath");const C=n.value.getNode(f);if(!C)return[];const z=[C.data];let U=C.parent;for(;U&&U!==s.value;)z.push(U.data),U=U.parent;return z.reverse()},g=(f,C)=>n.value.getCheckedNodes(f,C),k=f=>n.value.getCheckedKeys(f),m=()=>{const f=n.value.getCurrentNode();return f?f.data:null},b=()=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in getCurrentKey");const f=m();return f?f[e.nodeKey]:null},D=(f,C)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedNodes");n.value.setCheckedNodes(f,C)},O=(f,C)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedKeys");n.value.setCheckedKeys(f,C)},v=(f,C,z)=>{n.value.setChecked(f,C,z)},X=()=>n.value.getHalfCheckedNodes(),Z=()=>n.value.getHalfCheckedKeys(),$=(f,C=!0)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentNode");ge(n,t.emit,()=>n.value.setUserCurrentNode(f,C))},p=(f,C=!0)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentKey");ge(n,t.emit,()=>n.value.setCurrentNodeKey(f,C))},K=f=>n.value.getNode(f),E=f=>{n.value.remove(f)},re=(f,C)=>{n.value.append(f,C)},Ie=(f,C)=>{n.value.insertBefore(f,C)},$e=(f,C)=>{n.value.insertAfter(f,C)},ze=(f,C,z)=>{N(C),t.emit("node-expand",f,C,z)},qe=(f,C)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in updateKeyChild");n.value.updateChildren(f,C)};return Q("RootTree",{ctx:t,props:e,store:n,root:s,currentNode:r,instance:ve()}),Q(_e,void 0),{ns:d,store:n,root:s,currentNode:r,dragState:u,el$:i,dropIndicator$:l,isEmpty:h,filter:a,getNodeKey:c,getNodePath:y,getCheckedNodes:g,getCheckedKeys:k,getCurrentNode:m,getCurrentKey:b,setCheckedNodes:D,setCheckedKeys:O,setChecked:v,getHalfCheckedNodes:X,getHalfCheckedKeys:Z,setCurrentNode:$,setCurrentKey:p,t:o,getNode:K,remove:E,append:re,insertBefore:Ie,insertAfter:$e,handleNodeExpand:ze,updateKeyChildren:qe}}});function gt(e,t,o,d,n,s){const r=B("el-tree-node");return S(),P("div",{ref:"el$",class:A([e.ns.b(),e.ns.is("dragging",!!e.dragState.draggingNode),e.ns.is("drop-not-allow",!e.dragState.allowDrop),e.ns.is("drop-inner",e.dragState.dropType==="inner"),{[e.ns.m("highlight-current")]:e.highlightCurrent}]),role:"tree"},[(S(!0),P(Se,null,xe(e.root.childNodes,i=>(S(),q(r,{key:e.getNodeKey(i),node:i,props:e.props,accordion:e.accordion,"render-after-expand":e.renderAfterExpand,"show-checkbox":e.showCheckbox,"render-content":e.renderContent,onNodeExpand:e.handleNodeExpand},null,8,["node","props","accordion","render-after-expand","show-checkbox","render-content","onNodeExpand"]))),128)),e.isEmpty?(S(),P("div",{key:0,class:A(e.ns.e("empty-block"))},[we(e.$slots,"empty",{},()=>{var i;return[pe("span",{class:A(e.ns.e("empty-text"))},et((i=e.emptyText)!=null?i:e.t("el.tree.emptyText")),3)]})],2)):Y("v-if",!0),fe(pe("div",{ref:"dropIndicator$",class:A(e.ns.e("drop-indicator"))},null,2),[[ye,e.dragState.showDropIndicator]])],2)}var ne=ae(pt,[["render",gt],["__file","tree.vue"]]);ne.install=e=>{e.component(ne.name,ne)};const Ce=ne,Nt=(e,{attrs:t,emit:o},{tree:d,key:n})=>{const s=H("tree-select"),r={...se(Te(e),Object.keys(he.props)),...t,"onUpdate:modelValue":i=>o(ee,i),valueKey:n,popperClass:T(()=>{const i=[s.e("popper")];return e.popperClass&&i.push(e.popperClass),i.join(" ")}),filterMethod:(i="")=>{e.filterMethod&&e.filterMethod(i),V(()=>{var l;(l=d.value)==null||l.filter(i)})},onVisibleChange:i=>{var l;(l=t.onVisibleChange)==null||l.call(t,i),e.filterable&&i&&r.filterMethod()}};return r},Ct=R({extends:Ke,setup(e,t){const o=Ke.setup(e,t);delete o.selectOptionClick;const d=ve().proxy;return V(()=>{o.select.states.cachedOptions.get(d.value)||o.select.onOptionCreate(d)}),o},methods:{selectOptionClick(){this.$el.parentElement.click()}}});function ke(e){return e||e===0}function be(e){return Array.isArray(e)&&e.length}function W(e){return Array.isArray(e)?e:ke(e)?[e]:[]}function oe(e,t,o,d,n){for(let s=0;s<e.length;s++){const r=e[s];if(t(r,s,e,n))return d?d(r,s,e,n):r;{const i=o(r);if(be(i)){const l=oe(i,t,o,d,r);if(l)return l}}}}function Be(e,t,o,d){for(let n=0;n<e.length;n++){const s=e[n];t(s,n,e,d);const r=o(s);be(r)&&Be(r,t,o,s)}}const kt=(e,{attrs:t,slots:o,emit:d},{select:n,tree:s,key:r})=>{x(()=>e.modelValue,()=>{e.showCheckbox&&V(()=>{const a=s.value;a&&!ot(a.getCheckedKeys(),W(e.modelValue))&&a.setCheckedKeys(W(e.modelValue))})},{immediate:!0,deep:!0});const i=T(()=>({value:r.value,label:"label",children:"children",disabled:"disabled",isLeaf:"isLeaf",...e.props})),l=(a,c)=>{var y;const g=i.value[a];return Ae(g)?g(c,(y=s.value)==null?void 0:y.getNode(l("value",c))):c[g]},N=W(e.modelValue).map(a=>oe(e.data||[],c=>l("value",c)===a,c=>l("children",c),(c,y,g,k)=>k&&l("value",k))).filter(a=>ke(a)),u=T(()=>{if(!e.renderAfterExpand&&!e.lazy)return[];const a=[];return Be(e.data.concat(e.cacheData),c=>{const y=l("value",c);a.push({value:y,currentLabel:l("label",c),isDisabled:l("disabled",c)})},c=>l("children",c)),a}),h=T(()=>u.value.reduce((a,c)=>({...a,[c.value]:c}),{}));return{...se(Te(e),Object.keys(Ce.props)),...t,nodeKey:r,expandOnClickNode:T(()=>!e.checkStrictly&&e.expandOnClickNode),defaultExpandedKeys:T(()=>e.defaultExpandedKeys?e.defaultExpandedKeys.concat(N):N),renderContent:(a,{node:c,data:y,store:g})=>a(Ct,{value:l("value",y),label:l("label",y),disabled:l("disabled",y)},e.renderContent?()=>e.renderContent(a,{node:c,data:y,store:g}):o.default?()=>o.default({node:c,data:y,store:g}):void 0),filterNodeMethod:(a,c,y)=>e.filterNodeMethod?e.filterNodeMethod(a,c,y):a?new RegExp(Pe(a),"i").test(l("label",c)||""):!0,onNodeClick:(a,c,y)=>{var g,k,m;if((g=t.onNodeClick)==null||g.call(t,a,c,y),!(e.showCheckbox&&e.checkOnClickNode))if(!e.showCheckbox&&(e.checkStrictly||c.isLeaf)){if(!l("disabled",a)){const b=(k=n.value)==null?void 0:k.states.options.get(l("value",a));(m=n.value)==null||m.handleOptionSelect(b)}}else e.expandOnClickNode&&y.proxy.handleExpandIconClick()},onCheck:(a,c)=>{if(!e.showCheckbox)return;const y=l("value",a),g=c.checkedKeys,k=e.multiple?W(e.modelValue).filter(b=>b in h.value&&!s.value.getNode(b)&&!g.includes(b)):[],m=g.concat(k);if(e.checkStrictly)d(ee,e.multiple?m:m.includes(y)?y:void 0);else if(e.multiple)d(ee,s.value.getCheckedKeys(!0));else{const b=oe([a],v=>!be(l("children",v))&&!l("disabled",v),v=>l("children",v)),D=b?l("value",b):void 0,O=ke(e.modelValue)&&!!oe([a],v=>l("value",v)===e.modelValue,v=>l("children",v));d(ee,D===e.modelValue||O?void 0:D)}V(()=>{var b;const D=W(e.modelValue);s.value.setCheckedKeys(D),(b=t.onCheck)==null||b.call(t,a,{checkedKeys:s.value.getCheckedKeys(),checkedNodes:s.value.getCheckedNodes(),halfCheckedKeys:s.value.getHalfCheckedKeys(),halfCheckedNodes:s.value.getHalfCheckedNodes()})})},cacheOptions:u}};var vt=R({props:{data:{type:Array,default:()=>[]}},setup(e){const t=F(je);return x(()=>e.data,()=>{var o;e.data.forEach(n=>{t.states.cachedOptions.has(n.value)||t.states.cachedOptions.set(n.value,n)});const d=((o=t.selectRef)==null?void 0:o.querySelectorAll("input"))||[];Array.from(d).includes(document.activeElement)||t.setSelected()},{flush:"post",immediate:!0}),()=>{}}});const mt=R({name:"ElTreeSelect",inheritAttrs:!1,props:{...he.props,...Ce.props,cacheData:{type:Array,default:()=>[]}},setup(e,t){const{slots:o,expose:d}=t,n=w(),s=w(),r=T(()=>e.nodeKey||e.valueKey||"value"),i=Nt(e,t,{select:n,tree:s,key:r}),{cacheOptions:l,...N}=kt(e,t,{select:n,tree:s,key:r}),u=_({});return d(u),Oe(()=>{Object.assign(u,{...se(s.value,["filter","updateKeyChildren","getCheckedNodes","setCheckedNodes","getCheckedKeys","setCheckedKeys","setChecked","getHalfCheckedNodes","getHalfCheckedKeys","getCurrentKey","getCurrentNode","setCurrentKey","setCurrentNode","getNode","remove","append","insertBefore","insertAfter"]),...se(n.value,["focus","blur"])})}),()=>G(he,_({...i,ref:h=>n.value=h}),{...o,default:()=>[G(vt,{data:l.value}),G(Ce,_({...N,ref:h=>s.value=h}))]})}});var de=ae(mt,[["__file","tree-select.vue"]]);de.install=e=>{e.component(de.name,de)};const bt=de,xt=bt;export{xt as E};
|