vxe-pc-ui
Version:
A vue based PC component library
1 lines • 25.3 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_util=require("./util"),_log=require("../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils")),_vn=require("../../ui/src/vn"),_dom=require("../../ui/src/dom"),_loading=_interopRequireDefault(require("../../loading/src/loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getNodeUniqueId(){return _xeUtils.default.uniqueId("node_")}function createInternalData(){return{treeFullData:[],afterTreeList:[],afterVisibleList:[],nodeMaps:{},selectCheckboxMaps:{},indeterminateRowMaps:{},treeExpandedMaps:{},treeExpandLazyLoadedMaps:{},lastScrollLeft:0,lastScrollTop:0,scrollYStore:{startIndex:0,endIndex:0,visibleSize:0,offsetSize:0,rowHeight:0},lastScrollTime:0}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTree",props:{data:Array,autoResize:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.autoResize},height:[String,Number],maxHeight:{type:[String,Number],default:()=>(0,_ui.getConfig)().tree.maxHeight},minHeight:{type:[String,Number],default:()=>(0,_ui.getConfig)().tree.minHeight},loading:Boolean,loadingConfig:Object,accordion:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.accordion},childrenField:{type:String,default:()=>(0,_ui.getConfig)().tree.childrenField},valueField:{type:String,default:()=>(0,_ui.getConfig)().tree.valueField},keyField:{type:String,default:()=>(0,_ui.getConfig)().tree.keyField},parentField:{type:String,default:()=>(0,_ui.getConfig)().tree.parentField},titleField:{type:String,default:()=>(0,_ui.getConfig)().tree.titleField},hasChildField:{type:String,default:()=>(0,_ui.getConfig)().tree.hasChildField},mapChildrenField:{type:String,default:()=>(0,_ui.getConfig)().tree.mapChildrenField},transform:Boolean,isCurrent:Boolean,isHover:Boolean,expandAll:Boolean,showLine:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.showLine},trigger:String,indent:{type:Number,default:()=>(0,_ui.getConfig)().tree.indent},showRadio:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.showRadio},checkNodeKey:{type:[String,Number],default:()=>(0,_ui.getConfig)().tree.checkNodeKey},radioConfig:Object,showCheckbox:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.showCheckbox},checkNodeKeys:{type:Array,default:()=>(0,_ui.getConfig)().tree.checkNodeKeys},checkboxConfig:Object,nodeConfig:Object,lazy:Boolean,toggleMethod:Function,loadMethod:Function,showIcon:{type:Boolean,default:!0},iconOpen:{type:String,default:()=>(0,_ui.getConfig)().tree.iconOpen},iconClose:{type:String,default:()=>(0,_ui.getConfig)().tree.iconClose},iconLoaded:{type:String,default:()=>(0,_ui.getConfig)().tree.iconLoaded},filterValue:[String,Number],filterConfig:Object,size:{type:String,default:()=>(0,_ui.getConfig)().tree.size||(0,_ui.getConfig)().size},virtualYConfig:Object},emits:["update:modelValue","update:checkNodeKey","update:checkNodeKeys","node-click","node-dblclick","current-change","radio-change","checkbox-change","load-success","load-error","scroll"],setup(S,e){const{emit:r,slots:T}=e;var b=_xeUtils.default.uniqueId();const M=(0,_ui.useSize)(S)["computeSize"],g=(0,_vue.ref)(),L=(0,_vue.ref)(),I=(0,_vue.ref)(),f=(0,_vue.ref)(),D=(0,_vue.ref)(),w=(0,_vue.reactive)({parentHeight:0,customHeight:0,customMinHeight:0,customMaxHeight:0,currentNode:null,scrollYLoad:!1,bodyHeight:0,topSpaceHeight:0,selectRadioKey:(0,_util.enNodeValue)(S.checkNodeKey),treeList:[],updateExpandedFlag:1,updateCheckboxFlag:1}),U=createInternalData(),B={refElem:g},A=(0,_vue.computed)(()=>S.titleField||"title"),Y=(0,_vue.computed)(()=>S.keyField||"id"),c=(0,_vue.computed)(()=>{var e=Y.value;return S.valueField||e}),q=(0,_vue.computed)(()=>S.parentField||"parentId"),H=(0,_vue.computed)(()=>S.childrenField||"children"),x=(0,_vue.computed)(()=>S.mapChildrenField||"mapChildren"),$=(0,_vue.computed)(()=>S.hasChildField||"hasChild"),j=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tree.virtualYConfig,S.virtualYConfig)),P=(0,_vue.computed)(()=>{var e=h.value["isCurrent"];return _xeUtils.default.isBoolean(e)?e:S.isCurrent}),X=(0,_vue.computed)(()=>{var e=h.value["isHover"];return _xeUtils.default.isBoolean(e)?e:S.isHover}),F=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().tree.radioConfig,S.radioConfig)),R=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().tree.checkboxConfig,S.checkboxConfig)),h=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tree.nodeConfig,S.nodeConfig)),W=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tree.loadingConfig,S.loadingConfig)),G=(0,_vue.computed)(()=>{var{customHeight:e,customMinHeight:t,customMaxHeight:a}=w,r={};return e&&(r.height=(0,_dom.toCssUnit)(e)),t&&(r.minHeight=(0,_dom.toCssUnit)(t)),a&&(r.maxHeight=(0,_dom.toCssUnit)(a)),r}),J=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tree.filterConfig,S.filterConfig)),Q={computeChildrenField:H,computeMapChildrenField:x,computeRadioOpts:F,computeCheckboxOpts:R,computeNodeOpts:h},z={xID:b,props:S,context:e,internalData:U,reactData:w,getRefMaps:()=>B,getComputeMaps:()=>Q},V=e=>{var t=c.value,e=_xeUtils.default.get(e,t);return(0,_util.enNodeValue)(e)};const Z=e=>{var t=w["selectRadioKey"];return t===e};const O=e=>{var t=w["updateCheckboxFlag"],a=U["selectCheckboxMaps"];return!(!t||!a[e])};const ee=e=>{var t=w["updateCheckboxFlag"],a=U["indeterminateRowMaps"];return!(!t||!a[e])};const s=e=>{r("update:checkNodeKeys",e)},o=e=>{r("update:checkNodeKey",e)},u=(e,t)=>{const a=U["nodeMaps"];if(e){_xeUtils.default.isArray(e)||(e=[e]);const r=[];e.forEach(e=>{e=(0,_util.enNodeValue)(e),e=a[e];e&&r.push(e.item)}),n(r,t)}return(0,_vue.nextTick)()},n=(e,a)=>{var t=S["transform"];const r=U["selectCheckboxMaps"];var l=x.value,o=H.value,i=R.value["checkStrictly"],n=e=>{var t=V(e);a?r[t]||(r[t]=e):r[t]&&delete r[t]};i?e.forEach(n):_xeUtils.default.eachTree(e,n,{children:t?l:o}),w.updateCheckboxFlag++,C()},l=(e,t,a)=>{t?a[e]||(a[e]=!0):a[e]&&delete a[e]},K=(e,t,a)=>{r(e,(0,_ui.createEvent)(a,{$tree:z},t))},te=()=>{var e=g.value;return e?e.parentElement:null},t=e=>{var t=w["parentHeight"],e=S[e];let a=0;return a=e?"100%"===e||"auto"===e?t:(a=(0,_dom.isScale)(e)?Math.floor((_xeUtils.default.toInteger(e)||1)/100*t):_xeUtils.default.toNumber(e),Math.max(40,a)):a},v=()=>{w.customHeight=t("height"),w.customMinHeight=t("minHeight"),w.customMaxHeight=t("maxHeight"),!w.scrollYLoad||w.customHeight||w.customMinHeight||(w.customHeight=300)},ae=()=>{var e=S["transform"];const{afterTreeList:t,nodeMaps:o}=U;var a=H.value,r=x.value;_xeUtils.default.eachTree(t,(e,t,a)=>{var r=V(e),l=o[r];l?(l.items=a,l.treeIndex=t):(l={item:e,index:t,items:a,parent:parent,nodes:[],level:0,treeIndex:t,lineCount:0,treeLoaded:!1},o[r]=l)},{children:e?r:a})},_=()=>{var e=S["transform"];const{afterTreeList:t,treeExpandedMaps:n}=U;var a=x.value;const d={};if(e){const s=[];return _xeUtils.default.eachTree(t,(e,t,a,r,l)=>{var o=V(e),i=V(l);(!l||d[i]&&n[i])&&(d[o]=1,s.push(e))},{children:a}),le(s),U.afterVisibleList=s}return U.afterVisibleList},p=r=>{var e=w["scrollYLoad"],t=U["scrollYStore"];let a=U.afterVisibleList;if(r){{var{transform:r,filterValue:l}=S,{treeFullData:o,lastFilterValue:i}=U;const s=A.value;var n=H.value,d=x.value;const{autoExpandAll:u,beforeFilterMethod:c,filterMethod:h,afterFilterMethod:v}=J.value;let e=o,t=e,a="";if(l||0===l){a=""+l;l=h?e=>h({$tree:z,node:e,filterValue:a}):e=>-1<String(e[s]).toLowerCase().indexOf(a);const p={$tree:z,filterValue:a};c&&c(p),e=r?t=_xeUtils.default.searchTree(o,l,{original:!0,isEvery:!0,children:n,mapChildren:d}):o.filter(l),U.lastFilterValue=a,(0,_vue.nextTick)(()=>{u?z.setAllExpandNode(!0).then(()=>{v&&v(p)}):v&&v(p)})}else{if(r&&(t=_xeUtils.default.searchTree(o,()=>!0,{original:!0,isEvery:!0,children:n,mapChildren:d}),e=t,i)){const g={$tree:z,filterValue:a};c&&c(g),(0,_vue.nextTick)(()=>{u?z.clearAllExpandNode().then(()=>{v&&v(g)}):v&&v(g)})}U.lastFilterValue=""}U.afterVisibleList=e,U.afterTreeList=t,ae()}a=_()}l=e?a.slice(t.startIndex,t.endIndex):a.slice(0);w.treeList=l},re=_xeUtils.default.debounce(()=>p(!0),350,{trailing:!0}),a=a=>{const{expandAll:r,transform:e}=S,{initialized:l,scrollYStore:t}=U;var o=Y.value,i=q.value,n=H.value,o=e?_xeUtils.default.toArrayTree(a,{key:o,parentKey:i,mapChildren:n}):a?a.slice(0):[],i=(U.treeFullData=o,Object.assign(t,{startIndex:0,endIndex:1,visibleSize:0}),le(o));{n=U.treeFullData;const d=c.value,s=(o=H.value,{});_xeUtils.default.eachTree(n,(e,t,a,r,l,o)=>{let i=V(e);i||(i=getNodeUniqueId(),_xeUtils.default.set(e,d,i)),s[i]={item:e,index:t,items:a,parent:l,nodes:o,level:o.length,treeIndex:t,lineCount:0,treeLoaded:!1}},{children:o}),U.nodeMaps=s}return p(!0),!i||S.height||S.maxHeight||(0,_log.errLog)("vxe.error.reqProp",["height | max-height | virtual-y-config.enabled=false"]),ie().then(()=>{l||a&&a.length&&(U.initialized=!0,r&&z.setAllExpandNode(!0),u(S.checkNodeKeys||[],!0)),v();{const{lastScrollLeft:e,lastScrollTop:t}=U;se().then(()=>{if(e||t)return U.lastScrollLeft=0,U.lastScrollTop=0,scrollTo(e,t)})}})},le=e=>{var t=S["transform"],a=j.value,e=e||U.treeFullData,t=!!t&&!!a.enabled&&-1<a.gt&&(0===a.gt||a.gt<e.length);return w.scrollYLoad=t},i=()=>{var e=w["scrollYLoad"],{scrollYStore:t,afterVisibleList:a}=U;w.bodyHeight=e?a.length*t.rowHeight:0,w.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},oe=()=>{p(),i()},ie=()=>(0,_vue.nextTick)().then(()=>{var e=w["scrollYLoad"],t=U["scrollYStore"],a=D.value,r=j.value;let l=0,o;(o=a?o||a.children[0]:o)&&(l=o.offsetHeight),l=Math.max(20,l),t.rowHeight=l,(e?(a=f.value,e=Math.max(8,a?Math.ceil(a.clientHeight/l):0),a=Math.max(0,Math.min(2,_xeUtils.default.toNumber(r.oSize))),t.offsetSize=a,t.visibleSize=e,t.endIndex=Math.max(t.startIndex,e+a,t.endIndex),oe):i)()}),d=(e,t)=>{var a=f.value;return e&&!_xeUtils.default.isNumber(e)&&(t=e.top,e=e.left),a&&(_xeUtils.default.isNumber(e)&&(a.scrollLeft=e),_xeUtils.default.isNumber(t))&&(a.scrollTop=t),w.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},m=()=>{var e,t,a,r=U["scrollYStore"],r=r["rowHeight"],l=g.value;return l&&l.clientWidth&&l.clientHeight?(l=te(),e=L.value,t=I.value,e=e?e.clientHeight:0,t=t?t.clientHeight:0,l&&(a=(0,_dom.getPaddingTopBottomSize)(l),w.parentHeight=Math.max(e+t+r,l.clientHeight-a-e-t)),v(),ie().then(()=>{v(),i()})):(0,_vue.nextTick)()},ne=()=>{var e=U["scrollYStore"],{startIndex:t,endIndex:a,visibleSize:r,offsetSize:l,rowHeight:o}=e,i=f.value;i&&(i=i.scrollTop,i=Math.floor(i/o),o=Math.max(0,i-1-l),l=i+r+l,!(i<=t||a-r-1<=i)||t===o&&a===l||(e.startIndex=o,e.endIndex=l,oe()))},de=e=>{var t=e.target,a=t.scrollTop,t=t.scrollLeft,r=t!==U.lastScrollLeft,l=a!==U.lastScrollTop;U.lastScrollTop=a,U.lastScrollLeft=t,w.scrollYLoad&&ne(),U.lastScrollTime=Date.now(),K("scroll",{scrollLeft:t,scrollTop:a,isX:r,isY:l},e)},se=()=>{var e=f.value;return e&&(e.scrollTop=0,e.scrollLeft=0),U.lastScrollTop=0,(U.lastScrollLeft=0,_vue.nextTick)()},ue=(e,t)=>{var{showRadio:a,showCheckbox:r,trigger:l}=S,o=F.value,i=R.value;let n=!1,d=!1,s=!1,u=!1;P.value?(n=!0,((e,t)=>{e.preventDefault();const a=h.value,{currentMethod:r,trigger:l}=a,o=H.value,i=_xeUtils.default.get(t,o),n=i&&i.length;let d=!!r;if(l==="child"){if(n)return}else if(l==="parent")if(!n)return;if(r)d=!r({node:t});var s;d||(s=!0,w.currentNode=t,K("current-change",{node:t,checked:!0},e))})(e,t)):w.currentNode&&(w.currentNode=null),"node"===l&&(u=!0,ve(e,t)),a&&"node"===o.trigger&&(d=!0,ge(e,t)),r&&"node"===i.trigger&&(s=!0,pe(e,t)),K("node-click",{node:t,triggerCurrent:n,triggerRadio:d,triggerCheckbox:s,triggerExpand:u},e)},ce=o=>{var e=R.value;const a=S["loadMethod"],i=e["checkStrictly"];return new Promise(e=>{if(a){var t=U["nodeMaps"];const r=V(o),l=t[r];U.treeExpandLazyLoadedMaps[r]=!0,Promise.resolve(a({$tree:z,node:o})).then(a=>{var e=U["treeExpandLazyLoadedMaps"];if(l.treeLoaded=!0,e[r]&&(e[r]=!1),a=_xeUtils.default.isArray(a)?a:[])return z.loadChildrenNode(o,a).then(e=>{var t=U["treeExpandedMaps"];return e.length&&!t[r]&&(t[r]=!0),w.updateExpandedFlag++,!i&&z.isCheckedByCheckboxNodeId(r)&&n(e,!0),K("load-success",{node:o,data:a},new Event("load-success")),(0,_vue.nextTick)()});K("load-success",{node:o,data:a},new Event("load-success"))}).catch(e=>{var t=U["treeExpandLazyLoadedMaps"];l.treeLoaded=!1,t[r]&&(t[r]=!1),K("load-error",{node:o,data:e},new Event("load-error"))}).finally(()=>(_(),p(),m()))}else e()})},he=(e,t)=>{const{lazy:r,accordion:a,toggleMethod:l}=S,{treeExpandLazyLoadedMaps:o,treeExpandedMaps:i}=U,n=U["nodeMaps"],d=H.value,s=$.value,u=[];let c=l?e.filter(e=>l({$tree:z,expanded:t,node:e})):e;a&&(c=c.length?[c[c.length-1]]:[],e=V(c[0]),e=n[e])&&e.items.forEach(e=>{e=V(e);i[e]&&delete i[e]});const h=[];return t?c.forEach(e=>{var t,a=V(e);i[a]||(t=n[a],r&&e[s]&&!t.treeLoaded&&!o[a]?u.push(ce(e)):e[d]&&e[d].length&&(i[a]=!0,h.push(e)))}):c.forEach(e=>{var t=V(e);i[t]&&(delete i[t],h.push(e))}),w.updateExpandedFlag++,_(),p(),Promise.all(u).then(()=>m())},ve=(e,t)=>{var a=S["lazy"],{treeExpandedMaps:r,treeExpandLazyLoadedMaps:l}=U,o=V(t),r=!r[o];e.stopPropagation(),a&&l[o]||he([t],r)},C=()=>{var e=S["transform"];const{selectCheckboxMaps:d,indeterminateRowMaps:s,afterTreeList:t}=U,r=H.value;var a=x.value;const{checkStrictly:l,checkMethod:u}=R.value;if(!l){const o={},i=[];_xeUtils.default.eachTree(t,e=>{var t=V(e),a=e[r];a&&a.length&&!o[t]&&(o[t]=1,i.unshift([e,t,a]))},{children:e?a:r}),i.forEach(e=>{var t=e[0],a=e[1],e=e[2];let r=0,l=0,o=0;var i=e.length;e.forEach(u?e=>{var t=V(e),a=d[t];u({$tree:z,node:e})?(a?r++:s[t]&&l++,o++):a?r++:s[t]&&l++}:e=>{e=V(e);d[e]?r++:s[e]&&l++,o++});let n=!1;e=!(n=0<i?0<o?(0<r||0<l)&&r>=o:0<r&&r>=o||!!d[a]:d[a])&&(0<r||0<l);n?(d[a]=t,s[a]&&delete s[a]):(d[a]&&delete d[a],e?s[a]=t:s[a]&&delete s[a])}),w.updateCheckboxFlag++}},pe=(e,a)=>{e.preventDefault(),e.stopPropagation();var r=S["transform"];const l=U["selectCheckboxMaps"];var o=H.value,i=x.value,{checkStrictly:n,checkMethod:d}=R.value;let t=!!d;if(!(t=d?!d({$tree:z,node:a}):t)){d=V(a);let t=!1;l[d]?delete l[d]:(t=!0,l[d]=a),n||_xeUtils.default.eachTree(_xeUtils.default.get(a,r?i:o),e=>{e=V(e);t?l[e]||(l[e]=!0):l[e]&&delete l[e]},{children:r?i:o}),w.updateCheckboxFlag++,C();d=_xeUtils.default.keys(l).map(_util.deNodeValue);s(d),K("checkbox-change",{node:a,value:d,checked:t},e)}},ge=(e,t)=>{e.preventDefault(),e.stopPropagation();var a,r=F.value["checkMethod"];let l=!!r;(l=r?!r({$tree:z,node:t}):l)||(r=V(t),a=(0,_util.deNodeValue)(r),w.selectRadioKey=r,o(a),K("radio-change",{node:t,value:a,checked:!0},e))},fe=()=>{var e=g.value;e&&e.clientWidth&&m()},k={dispatchEvent:K,getNodeId:V,getNodeById(e){var t=U["nodeMaps"];if(e){t=t[e];if(t)return t.item}return null},loadData(e){return a(e||[])},reloadData(e){return a(e||[])},clearCurrentNode(){return(w.currentNode=null,_vue.nextTick)()},getCurrentNodeId(){var e=w["currentNode"];return e?(0,_util.deNodeValue)(V(e)):null},getCurrentNode(){var e=w["currentNode"],t=U["nodeMaps"];if(e){t=t[V(e)];if(t)return t.item}return null},setCurrentNodeId(e){var t=U["nodeMaps"],t=t[(0,_util.enNodeValue)(e)];return w.currentNode=t?t.item:null,(0,_vue.nextTick)()},setCurrentNode(e){return w.currentNode=e,(0,_vue.nextTick)()},clearRadioNode(){return w.selectRadioKey=null,o(null),(0,_vue.nextTick)()},getRadioNodeId(){return w.selectRadioKey||null},getRadioNode(){var e=w["selectRadioKey"],t=U["nodeMaps"];if(e){t=t[e];if(t)return t.item}return null},setRadioNodeId(e){return w.selectRadioKey=(0,_util.enNodeValue)(e),o(e),(0,_vue.nextTick)()},setRadioNode(e){return e?(e=V(e),w.selectRadioKey=e,o((0,_util.deNodeValue)(e))):o(null),(0,_vue.nextTick)()},setCheckboxNode(e,t){return e&&(_xeUtils.default.isArray(e)||(e=[e]),n(e,t)),s(z.getCheckboxNodeIds()),(0,_vue.nextTick)()},setCheckboxByNodeId(e,t){return u(e,t),s(z.getCheckboxNodeIds()),(0,_vue.nextTick)()},getCheckboxNodeIds(){var e=U["selectCheckboxMaps"];const a=[];return _xeUtils.default.each(e,(e,t)=>{a.push((0,_util.deNodeValue)(t))}),a},getCheckboxNodes(){const{nodeMaps:a,selectCheckboxMaps:e}=U,r=[];return _xeUtils.default.each(e,(e,t)=>{t=a[t];t&&r.push(t.item)}),r},clearCheckboxNode(){return U.indeterminateRowMaps={},U.selectCheckboxMaps={},w.updateCheckboxFlag++,s([]),C(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:[],checkNodes:[]}))},setAllCheckboxNode(e){var t=S["transform"];const a={};var r=H.value,l=x.value;const o=[],i=[];return e&&_xeUtils.default.eachTree(U.afterTreeList,e=>{var t=V(e);o.push(t),i.push(e),a[t]=!0},{children:t?l:r}),U.indeterminateRowMaps={},U.selectCheckboxMaps=a,w.updateCheckboxFlag++,C(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:o,checkNodes:i}))},clearExpandNode(){return k.clearAllExpandNode()},clearAllExpandNode(){var{nodeMaps:e,scrollYStore:t}=U;return _xeUtils.default.each(e,e=>{e.treeLoaded=!1}),U.treeExpandedMaps={},w.updateExpandedFlag++,w.topSpaceHeight=0,t.startIndex=0,t.endIndex=1,_(),p(),m()},setExpandByNodeId(e,t){const a=U["treeExpandedMaps"];return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=(0,_util.enNodeValue)(e);l(e,t,a)}),w.updateExpandedFlag++),_(),p(),m()},getExpandNodeIds(){var e=U["treeExpandedMaps"];const a=[];return _xeUtils.default.each(e,(e,t)=>{a.push((0,_util.deNodeValue)(t))}),a},getExpandNodes(){const{nodeMaps:a,treeExpandedMaps:e}=U,r=[];return _xeUtils.default.each(e,(e,t)=>{t=a[t];t&&r.push(t.item)}),r},setExpandNode(e,t){const a=U["treeExpandedMaps"];return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=V(e);l(e,t,a)}),w.updateExpandedFlag++),_(),p(),m()},toggleExpandByNodeId(e){const t=U["treeExpandedMaps"];return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=(0,_util.enNodeValue)(e);l(e,!t[""+e],t)}),w.updateExpandedFlag++),_(),p(),m()},toggleExpandNode(e){const t=U["treeExpandedMaps"];return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=V(e);l(e,!t[e],t)}),w.updateExpandedFlag++),_(),p(),m()},setAllExpandNode(e){var t=S["transform"];const a=w["scrollYLoad"],{scrollYStore:r,treeExpandedMaps:l}=U,o=H.value;var i=x.value;return e?_xeUtils.default.eachTree(U.afterTreeList,e=>{var t=_xeUtils.default.get(e,o);t&&t.length&&(t=V(e),l[t]=!0)},{children:t?i:o}):U.treeExpandedMaps={},w.updateExpandedFlag++,w.topSpaceHeight=0,r.startIndex=0,r.endIndex=1,_(),p(),m().then(()=>(a&&ne(),m()))},reloadExpandNode(e){var t=S["lazy"];return t?(k.clearExpandLoaded(e),ce(e)):m()},clearExpandLoaded(e){var t=S["lazy"],a=U["nodeMaps"];return t&&(t=a[V(e)])&&(t.treeLoaded=!1),m()},loadChildrenNode(i,e){const{lazy:t,transform:a}=S,n=U["nodeMaps"];if(!t)return Promise.resolve([]);const r=H.value,l=x.value,d=n[V(i)],s=d?d.level:0,u=d?d.nodes:[];return(e=>{const a=c.value;return Promise.resolve(e.map(e=>{var t,e=Object.assign({},e);return V(e)||(t=getNodeUniqueId(),_xeUtils.default.set(e,a,t)),e}))})(e).then(e=>(_xeUtils.default.eachTree(e,(e,t,a,r,l,o)=>{e=V(e);n[e]={item:i,index:-1,items:a,parent:l||d.item,nodes:u.concat(o),level:s+o.length,treeIndex:-1,lineCount:0,treeLoaded:!1}},{children:r}),i[r]=e,a&&(i[l]=e),ae(),e))},isExpandByNode:e=>{var t=w["updateExpandedFlag"],a=U["treeExpandedMaps"],e=V(e);return!(!t||!a[e])},isCheckedByRadioNodeId:Z,isCheckedByRadioNode:e=>Z(V(e)),isCheckedByCheckboxNodeId:O,isIndeterminateByCheckboxNode:e=>ee(V(e)),isCheckedByCheckboxNode:e=>O(V(e)),getCheckboxIndeterminateNodes(){const{nodeMaps:a,indeterminateRowMaps:e}=U,r=[];return _xeUtils.default.each(e,(e,t)=>{t=a[t];t&&r.push(t.item)}),r},recalculate:m,scrollTo:d,scrollToNode(e){return z.scrollToNodeId(V(e))},scrollToNodeId(t){var e=S["transform"];const{scrollYStore:a,afterTreeList:r}=U;var l=H.value,o=x.value;const i=f.value;if(t&&i)if(e){e=_xeUtils.default.findTree(r,e=>V(e)===t,{children:e?o:l});if(e)return z.setExpandNode(e.nodes,!0).then(()=>{var e=_xeUtils.default.findIndexOf(U.afterVisibleList,e=>V(e)===t);if(-1<e)return e=Math.max(0,(e-1)*a.rowHeight),d(i.scrollLeft,e)})}else{o=i.querySelector(`.vxe-tree--node-wrapper[nodeid="${t}"]`);if(o)return d(i.scrollLeft,o.offsetTop)}return m()},clearScroll:se};Object.assign(z,k,{});const xe=(a,e)=>{var{lazy:t,showRadio:r,showCheckbox:l,showLine:o,indent:i,iconOpen:n,iconClose:d,iconLoaded:s,showIcon:u}=S,{currentNode:c,selectRadioKey:h,updateExpandedFlag:v}=w,{afterTreeList:p,nodeMaps:g,treeExpandedMaps:f,treeExpandLazyLoadedMaps:x}=U,_=H.value,m=A.value,C=$.value,_=_xeUtils.default.get(a,_),_=_&&_.length,k=T.icon,y=T.title,E=T.extra,v=v&&f[e],f=g[e],g=_xeUtils.default.get(a,m),m=f.level;let N=!1,b=(r&&(N=e===String(h)),!1),M=(l&&(b=O(e)),!1),L=!1,I=!1;t&&(L=!!x[e],M=a[C],I=!!f.treeLoaded);r=f.items[f.treeIndex-1],h={node:a,isExpand:v};return(0,_vue.h)("div",{key:e,class:["vxe-tree--node-wrapper","node--level-"+m],nodeid:e},[(0,_vue.h)("div",{class:["vxe-tree--node-item",{"is--current":c&&e===V(c),"is-radio--checked":N,"is-checkbox--checked":b}],style:{paddingLeft:(m-1)*(i||1)+"px"},onClick(e){ue(e,a)},onDblclick(e){var t;e=e,t=a,K("node-dblclick",{node:t},e)}},[o?(0,_vue.h)("div",{class:"vxe-tree--node-line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--node-line",style:{height:`${V(p[0])===e?1:(0,_util.calcTreeLine)(z,a,r)}px`}})]):(0,_ui.renderEmptyElement)(z),(0,_vue.h)("div",{class:"vxe-tree--node-item-switcher"},u&&(!t||I?_:M)?[(0,_vue.h)("div",{class:"vxe-tree--node-item-icon",onClick(e){ve(e,a)}},k?(0,_vn.getSlotVNs)(k(h)):[(0,_vue.h)("i",{class:L?s||(0,_ui.getIcon)().TREE_NODE_LOADED:v?n||(0,_ui.getIcon)().TREE_NODE_OPEN:d||(0,_ui.getIcon)().TREE_NODE_CLOSE})])]:[]),((t,e)=>{var a=S["showRadio"],{showIcon:r,checkMethod:l,visibleMethod:o}=F.value,o=!o||o({$tree:z,node:t});let i=!!l;return a&&r&&o?(l&&(i=!l({$tree:z,node:t})),(0,_vue.h)("div",{class:["vxe-tree--radio-option",{"is--checked":e,"is--disabled":i}],onClick:e=>{i||ge(e,t)}},[(0,_vue.h)("span",{class:["vxe-radio--icon",e?(0,_ui.getIcon)().RADIO_CHECKED:(0,_ui.getIcon)().RADIO_UNCHECKED]})])):(0,_ui.renderEmptyElement)(z)})(a,N),((t,e,a)=>{var r=S["showCheckbox"],{showIcon:l,checkMethod:o,visibleMethod:i}=R.value,e=ee(e),i=!i||i({$tree:z,node:t});let n=!!o;return r&&l&&i?(o&&(n=!o({$tree:z,node:t})),(0,_vue.h)("div",{class:["vxe-tree--checkbox-option",{"is--checked":a,"is--indeterminate":e,"is--disabled":n}],onClick:e=>{n||pe(e,t)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",e?(0,_ui.getIcon)().CHECKBOX_INDETERMINATE:a?(0,_ui.getIcon)().CHECKBOX_CHECKED:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]})])):(0,_ui.renderEmptyElement)(z)})(a,e,b),(0,_vue.h)("div",{class:"vxe-tree--node-item-inner"},[(0,_vue.h)("div",{class:"vxe-tree--node-item-title"},y?(0,_vn.getSlotVNs)(y(h)):""+g),E?(0,_vue.h)("div",{class:"vxe-tree--node-item-extra"},(0,_vn.getSlotVNs)(E(h))):(0,_ui.renderEmptyElement)(z)])])])},_e=e=>{var t=S["transform"];const a=U["treeExpandedMaps"],r=H.value;if(!e.length)return[(0,_vue.h)("div",{class:"vxe-tree--empty-placeholder"},(0,_ui.getI18n)("vxe.tree.searchEmpty"))];const l=[];return e.forEach(t?e=>{var t=V(e);l.push(xe(e,t))}:e=>{var t=V(e),e=(l.push(xe(e,t)),_xeUtils.default.get(e,r));e&&e.length&&a[t]&&l.push(..._e(e))}),l};const y=(0,_vue.ref)(0),E=((0,_vue.watch)(()=>S.data?S.data.length:0,()=>{y.value++}),(0,_vue.watch)(()=>S.data,()=>{y.value++}),(0,_vue.watch)(y,()=>{a(S.data||[])}),(0,_vue.watch)(()=>S.checkNodeKey,e=>{w.selectRadioKey=(0,_util.enNodeValue)(e)}),(0,_vue.ref)(0)),N=((0,_vue.watch)(()=>S.checkNodeKeys?S.checkNodeKeys.length:0,()=>{E.value++}),(0,_vue.watch)(()=>S.checkNodeKeys,()=>{E.value++}),(0,_vue.watch)(E,()=>{var e;e=S.checkNodeKeys||[],U.selectCheckboxMaps={},u(e,!0)}),(0,_vue.watch)(()=>S.filterValue,()=>{re(new Event("filter"))}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>S.height,()=>{N.value++}),(0,_vue.watch)(()=>S.minHeight,()=>{N.value++}),(0,_vue.watch)(()=>S.maxHeight,()=>{N.value++}),(0,_vue.watch)(N,()=>{m()}),(0,_vue.onMounted)(()=>{var e,t,a;S.autoResize&&(e=g.value,t=te(),a=_ui.globalResize.create(()=>{S.autoResize&&m()}),e&&a.observe(e),t&&a.observe(t),U.resizeObserver=a),_ui.globalEvents.on(z,"resize",fe)}),(0,_vue.onUnmounted)(()=>{var e=U["resizeObserver"];e&&e.disconnect(),_ui.globalEvents.off(z,"resize"),_xeUtils.default.assign(U,createInternalData())}),a(S.data||[]),z.renderVN=()=>{var{loading:e,trigger:t,showLine:a}=S,{bodyHeight:r,topSpaceHeight:l,treeList:o}=w,i=M.value,n=F.value,d=R.value,s=W.value,u=X.value,c=G.value;const h=T.loading;var v=T.header,p=T.footer;return(0,_vue.h)("div",{ref:g,class:["vxe-tree",{["size--"+i]:i,"show--line":a,"checkbox--highlight":d.highlight,"radio--highlight":n.highlight,"node--hover":u,"node--trigger":"node"===t,"is--loading":e}]},[v?(0,_vue.h)("div",{ref:L,class:"vxe-tree--header-wrapper"},v({$tree:z})):(0,_ui.renderEmptyElement)(z),(0,_vue.h)("div",{ref:f,class:"vxe-tree--node-list-wrapper",style:c,onScroll:de},[(0,_vue.h)("div",{class:"vxe-tree--y-space",style:{height:r?r+"px":""}}),(0,_vue.h)("div",{ref:D,class:"vxe-tree--node-list-body",style:{transform:`translateY(${l}px)`}},_e(o))]),p?(0,_vue.h)("div",{ref:I,class:"vxe-tree--footer-wrapper"},p({$tree:z})):(0,_ui.renderEmptyElement)(z),(0,_vue.h)(_loading.default,{class:"vxe-tree--loading",modelValue:e,icon:s.icon,text:s.text},h?{default:()=>h({$tree:z})}:{})])},z},render(){return this.renderVN()}});