vxe-pc-ui 4.17.6 → 4.17.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/all.esm.js +212 -224
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/button-group/style.css +1 -1
  5. package/es/button-group/style.min.css +1 -1
  6. package/es/color-picker/src/color-picker.js +7 -2
  7. package/es/icon/style.css +1 -1
  8. package/es/style.css +1 -1
  9. package/es/style.min.css +1 -1
  10. package/es/tooltip/src/tooltip.js +80 -134
  11. package/es/tree/src/tree.js +2 -2
  12. package/es/ui/index.js +4 -4
  13. package/es/ui/src/dom.js +118 -81
  14. package/es/ui/src/log.js +1 -1
  15. package/es/vxe-button-group/style.css +1 -1
  16. package/es/vxe-button-group/style.min.css +1 -1
  17. package/lib/button-group/style/style.css +1 -1
  18. package/lib/button-group/style/style.min.css +1 -1
  19. package/lib/color-picker/src/color-picker.js +10 -2
  20. package/lib/color-picker/src/color-picker.min.js +1 -1
  21. package/lib/icon/style/style.css +1 -1
  22. package/lib/icon/style/style.min.css +1 -1
  23. package/lib/index.umd.js +220 -227
  24. package/lib/index.umd.min.js +1 -1
  25. package/lib/style.css +1 -1
  26. package/lib/style.min.css +1 -1
  27. package/lib/tooltip/src/tooltip.js +91 -140
  28. package/lib/tooltip/src/tooltip.min.js +1 -1
  29. package/lib/tree/src/tree.js +2 -1
  30. package/lib/tree/src/tree.min.js +1 -1
  31. package/lib/ui/index.js +4 -4
  32. package/lib/ui/index.min.js +1 -1
  33. package/lib/ui/src/dom.js +113 -79
  34. package/lib/ui/src/dom.min.js +1 -1
  35. package/lib/ui/src/log.js +1 -1
  36. package/lib/ui/src/log.min.js +1 -1
  37. package/lib/vxe-button-group/style/style.css +1 -1
  38. package/lib/vxe-button-group/style/style.min.css +1 -1
  39. package/package.json +3 -2
  40. package/packages/color-picker/src/color-picker.ts +7 -2
  41. package/packages/tooltip/src/tooltip.ts +83 -134
  42. package/packages/tree/src/tree.ts +2 -2
  43. package/packages/ui/index.ts +3 -3
  44. package/packages/ui/src/dom.ts +128 -83
  45. package/styles/components/button-group.scss +4 -2
  46. package/types/components/color-picker.d.ts +2 -0
  47. package/types/components/table.d.ts +6 -0
  48. package/types/components/tooltip.d.ts +4 -0
  49. /package/es/icon/{iconfont.1787137259915.ttf → iconfont.1787216141017.ttf} +0 -0
  50. /package/es/icon/{iconfont.1787137259915.woff → iconfont.1787216141017.woff} +0 -0
  51. /package/es/icon/{iconfont.1787137259915.woff2 → iconfont.1787216141017.woff2} +0 -0
  52. /package/es/{iconfont.1787137259915.ttf → iconfont.1787216141017.ttf} +0 -0
  53. /package/es/{iconfont.1787137259915.woff → iconfont.1787216141017.woff} +0 -0
  54. /package/es/{iconfont.1787137259915.woff2 → iconfont.1787216141017.woff2} +0 -0
  55. /package/lib/icon/style/{iconfont.1787137259915.ttf → iconfont.1787216141017.ttf} +0 -0
  56. /package/lib/icon/style/{iconfont.1787137259915.woff → iconfont.1787216141017.woff} +0 -0
  57. /package/lib/icon/style/{iconfont.1787137259915.woff2 → iconfont.1787216141017.woff2} +0 -0
  58. /package/lib/{iconfont.1787137259915.ttf → iconfont.1787216141017.ttf} +0 -0
  59. /package/lib/{iconfont.1787137259915.woff → iconfont.1787216141017.woff} +0 -0
  60. /package/lib/{iconfont.1787137259915.woff2 → iconfont.1787216141017.woff2} +0 -0
@@ -113,6 +113,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
113
113
  leaveDelay: {
114
114
  type: Number,
115
115
  default: () => (0, _ui.getConfig)().tooltip.leaveDelay
116
+ },
117
+ appendTo: {
118
+ type: [String, Function],
119
+ default: () => (0, _ui.getConfig)().tooltip.appendTo
116
120
  }
117
121
  },
118
122
  emits: ['update:modelValue'],
@@ -170,101 +174,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
170
174
  internalData,
171
175
  getRefMaps: () => refMaps
172
176
  };
173
- let tooltipMethods = {};
174
- const updateTipStyle = () => {
175
- const {
176
- isArrow,
177
- placement,
178
- defaultPlacement
179
- } = props;
180
- const {
181
- tipTarget: targetElem,
182
- tipStore,
183
- tipPos
184
- } = reactData;
185
- let top = '';
186
- let left = '';
187
- let panelPlacement = 'bottom';
188
- let arrowLeft = '';
189
- const panelElem = refElem.value;
190
- if (panelElem && targetElem) {
191
- const documentElement = document.documentElement;
192
- const bodyElem = document.body;
193
- const targetWidth = targetElem.offsetWidth;
194
- const targetHeight = targetElem.offsetHeight;
195
- const panelHeight = panelElem.offsetHeight;
196
- const panelWidth = panelElem.offsetWidth;
197
- const targetRect = targetElem.getBoundingClientRect();
198
- const visibleHeight = documentElement.clientHeight || bodyElem.clientHeight;
199
- const visibleWidth = documentElement.clientWidth || bodyElem.clientWidth;
200
- const marginSize = 6;
201
- left = targetRect.left;
202
- top = targetRect.top + targetHeight;
203
- if (tipPos && (tipPos.oLeft || tipPos.oTop)) {
204
- if (isArrow) {
205
- left = left + Math.max(8, Math.min(targetWidth - 8, tipPos.oLeft)) - panelWidth / 2;
206
- } else {
207
- left = tipPos.x + 1;
208
- top = tipPos.y + 1;
209
- }
210
- } else {
211
- left = targetRect.left + (targetWidth - panelWidth) / 2;
212
- }
213
- if (placement === 'top') {
214
- panelPlacement = 'top';
215
- top = targetRect.top - panelHeight;
216
- } else if (!placement) {
217
- if (defaultPlacement === 'top') {
218
- panelPlacement = 'top';
219
- top = targetRect.top - panelHeight;
220
- // 如果上面不够放,则向下
221
- if (top < marginSize) {
222
- panelPlacement = 'bottom';
223
- top = targetRect.top + targetHeight;
224
- }
225
- // 如果下面不够放,则向上(优先)
226
- if (top + panelHeight + marginSize > visibleHeight) {
227
- panelPlacement = 'top';
228
- top = targetRect.top - panelHeight;
229
- }
230
- } else {
231
- // 如果下面不够放,则向上
232
- if (top + panelHeight + marginSize > visibleHeight) {
233
- panelPlacement = 'top';
234
- top = targetRect.top - panelHeight;
235
- }
236
- // 如果上面不够放,则向下(优先)
237
- if (top < marginSize) {
238
- panelPlacement = 'bottom';
239
- top = targetRect.top + targetHeight;
240
- }
241
- }
242
- }
243
- // 如果溢出右边
244
- if (left + panelWidth + marginSize > visibleWidth) {
245
- left -= left + panelWidth + marginSize - visibleWidth;
246
- }
247
- // 如果溢出左边
248
- if (left < marginSize) {
249
- left = marginSize;
250
- }
251
- // 箭头
252
- if (left === targetRect.left) {
253
- if (targetWidth <= panelWidth) {
254
- arrowLeft = targetWidth / 2;
255
- }
256
- } else if (left < targetRect.left) {
257
- if (left + panelWidth > targetRect.left + targetWidth) {
258
- arrowLeft = targetRect.left - left + targetWidth / 2;
259
- } else {
260
- arrowLeft = targetRect.left - left + (panelWidth - (targetRect.left - left)) / 2;
261
- }
262
- }
263
- tipStore.placement = panelPlacement;
264
- tipStore.style.top = `${top}px`;
265
- tipStore.style.left = `${left}px`;
266
- tipStore.arrowStyle.left = `${arrowLeft}px`;
267
- }
177
+ const dispatchEvent = (type, params, evnt) => {
178
+ emit(type, (0, _ui.createEvent)(evnt, {
179
+ $tooltip: $xeTooltip
180
+ }, params));
268
181
  };
269
182
  const updateValue = value => {
270
183
  if (value !== reactData.visible) {
@@ -273,14 +186,19 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
273
186
  emit('update:modelValue', value);
274
187
  }
275
188
  };
276
- const updateZindex = () => {
277
- if (reactData.tipZindex < (0, _utils.getLastZIndex)()) {
189
+ const updateZIndex = () => {
190
+ const {
191
+ zIndex
192
+ } = props;
193
+ if (zIndex) {
194
+ reactData.tipZindex = _xeUtils.default.toNumber(zIndex);
195
+ } else if (reactData.tipZindex < (0, _utils.getLastZIndex)()) {
278
196
  reactData.tipZindex = (0, _utils.nextZIndex)();
279
197
  }
280
198
  };
281
199
  const clickEvent = () => {
282
200
  if (reactData.visible) {
283
- tooltipMethods.close();
201
+ $xeTooltip.close();
284
202
  } else {
285
203
  handleVisible(reactData.target || getSelectorEl(), props.content);
286
204
  }
@@ -298,11 +216,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
298
216
  if (enterable && trigger === 'hover') {
299
217
  setTimeout(() => {
300
218
  if (!reactData.tipActive) {
301
- tooltipMethods.close();
219
+ $xeTooltip.close();
302
220
  }
303
221
  }, leaveDelay);
304
222
  } else {
305
- tooltipMethods.close();
223
+ $xeTooltip.close();
306
224
  }
307
225
  };
308
226
  const wrapperMouseenterEvent = () => {
@@ -318,24 +236,27 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
318
236
  if (enterable && trigger === 'hover') {
319
237
  setTimeout(() => {
320
238
  if (!reactData.tipActive) {
321
- tooltipMethods.close();
239
+ $xeTooltip.close();
322
240
  }
323
241
  }, leaveDelay);
324
242
  }
325
243
  };
326
244
  const showTip = () => {
245
+ const {
246
+ appendTo
247
+ } = props;
327
248
  const {
328
249
  tipStore
329
250
  } = reactData;
330
- const el = refElem.value;
331
- if (el) {
332
- const parentNode = el.parentNode;
251
+ const panelElem = refElem.value;
252
+ if (panelElem) {
253
+ const parentNode = panelElem.parentNode;
333
254
  if (!parentNode) {
334
- document.body.appendChild(el);
255
+ (0, _dom.getPopupAppendElement)(appendTo).appendChild(panelElem);
335
256
  }
336
257
  }
337
258
  updateValue(true);
338
- updateZindex();
259
+ updateZIndex();
339
260
  tipStore.placement = 'top';
340
261
  tipStore.style = {
341
262
  width: 'auto',
@@ -411,12 +332,57 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
411
332
  }
412
333
  return null;
413
334
  };
414
- tooltipMethods = {
415
- dispatchEvent(type, params, evnt) {
416
- emit(type, (0, _ui.createEvent)(evnt, {
417
- $tooltip: $xeTooltip
418
- }, params));
419
- },
335
+ const updateTipStyle = () => {
336
+ const {
337
+ placement,
338
+ defaultPlacement,
339
+ isArrow
340
+ } = props;
341
+ const {
342
+ tipTarget: targetElem,
343
+ tipStore,
344
+ tipPos,
345
+ tipZindex
346
+ } = reactData;
347
+ const panelElem = refElem.value;
348
+ if (!targetElem || !panelElem) {
349
+ return;
350
+ }
351
+ const targetRect = targetElem.getBoundingClientRect();
352
+ const targetWidth = targetElem.offsetWidth;
353
+ const targetHeight = targetElem.offsetHeight;
354
+ const panelWidth = panelElem.offsetWidth;
355
+ const targetLeft = targetRect.left;
356
+ const targetTop = targetRect.top;
357
+ // 支持特殊定位逻辑
358
+ let left = targetLeft;
359
+ let top = targetTop + targetHeight;
360
+ if (tipPos && (tipPos.oLeft || tipPos.oTop)) {
361
+ if (isArrow) {
362
+ left = left + Math.max(8, Math.min(targetWidth - 8, tipPos.oLeft)) - panelWidth / 2;
363
+ } else {
364
+ left = tipPos.x + 1;
365
+ top = tipPos.y + 1;
366
+ }
367
+ } else {
368
+ left = targetLeft + (targetWidth - panelWidth) / 2;
369
+ }
370
+ const ppObj = (0, _dom.updatePanelPlacement)(targetElem, panelElem, {
371
+ defaultTop: top,
372
+ defaultLeft: left,
373
+ placement: placement,
374
+ defaultPlacement: defaultPlacement,
375
+ teleportTo: true
376
+ });
377
+ const panelStyle = Object.assign(ppObj.style, {
378
+ zIndex: tipZindex
379
+ });
380
+ tipStore.placement = ppObj.placement;
381
+ tipStore.style = panelStyle;
382
+ tipStore.arrowStyle.left = `${ppObj.arrowLeft}px`;
383
+ };
384
+ const tooltipMethods = {
385
+ dispatchEvent,
420
386
  openByEvent(evnt, target, content) {
421
387
  return handleVisible(target || reactData.target || getSelectorEl(), content, evnt);
422
388
  },
@@ -439,23 +405,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
439
405
  return handleVisible(target, content);
440
406
  },
441
407
  updatePlacement() {
442
- const {
443
- visible,
444
- tipTarget
445
- } = reactData;
446
- let el = refElem.value;
447
- if (visible && tipTarget && el) {
448
- updateTipStyle();
449
- }
450
- return (0, _vue.nextTick)().then(() => {
451
- el = refElem.value;
452
- if (tipTarget && el) {
453
- updateTipStyle();
454
- return (0, _vue.nextTick)().then(() => {
455
- updateTipStyle();
456
- });
457
- }
458
- });
408
+ updateTipStyle();
409
+ return (0, _vue.nextTick)().then(updateTipStyle);
459
410
  },
460
411
  isActived() {
461
412
  return reactData.tipActive;
@@ -553,7 +504,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
553
504
  if (val) {
554
505
  handleVisible(reactData.target || getSelectorEl(), props.content);
555
506
  } else {
556
- tooltipMethods.close();
507
+ $xeTooltip.close();
557
508
  }
558
509
  }
559
510
  reactData.isUpdate = false;
@@ -571,21 +522,21 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
571
522
  trigger,
572
523
  content
573
524
  } = props;
574
- const wrapperElem = refElem.value;
575
- if (wrapperElem) {
576
- const parentNode = wrapperElem.parentNode;
525
+ const panelElem = refElem.value;
526
+ if (panelElem) {
527
+ const parentNode = panelElem.parentNode;
577
528
  if (parentNode) {
578
529
  reactData.tipContent = content;
579
530
  reactData.tipZindex = (0, _utils.nextZIndex)();
580
- _xeUtils.default.arrayEach(wrapperElem.children, (elem, index) => {
531
+ _xeUtils.default.arrayEach(panelElem.children, (elem, index) => {
581
532
  if (index) {
582
- parentNode.insertBefore(elem, wrapperElem);
533
+ parentNode.insertBefore(elem, panelElem);
583
534
  if (!reactData.target) {
584
535
  reactData.target = elem;
585
536
  }
586
537
  }
587
538
  });
588
- parentNode.removeChild(wrapperElem);
539
+ parentNode.removeChild(panelElem);
589
540
  const {
590
541
  target
591
542
  } = reactData;
@@ -608,7 +559,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
608
559
  const {
609
560
  target
610
561
  } = reactData;
611
- const wrapperElem = refElem.value;
562
+ const panelElem = refElem.value;
612
563
  if (target) {
613
564
  target.onmouseenter = null;
614
565
  target.onmouseleave = null;
@@ -618,10 +569,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
618
569
  if (contentWrapperfEl) {
619
570
  contentWrapperfEl.removeEventListener('wheel', wheelEvent);
620
571
  }
621
- if (wrapperElem) {
622
- const parentNode = wrapperElem.parentNode;
572
+ if (panelElem) {
573
+ const parentNode = panelElem.parentNode;
623
574
  if (parentNode) {
624
- parentNode.removeChild(wrapperElem);
575
+ parentNode.removeChild(panelElem);
625
576
  }
626
577
  }
627
578
  });
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function createReactData(){return{target:null,isUpdate:!1,visible:!1,tipPos:null,tipContent:"",tipActive:!1,tipTarget:null,tipZindex:0,tipStore:{style:{},placement:"",arrowStyle:{}}}}function createInternalData(){return{}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTooltip",props:{modelValue:Boolean,size:{type:String,default:()=>(0,_ui.getConfig)().tooltip.size||(0,_ui.getConfig)().size},selector:String,trigger:{type:String,default:()=>(0,_ui.getConfig)().tooltip.trigger||"hover"},theme:{type:String,default:()=>(0,_ui.getConfig)().tooltip.theme||"dark"},content:{type:[String,Number],default:null},useHtml:{type:Boolean,default:()=>_xeUtils.default.isBoolean((0,_ui.getConfig)().tooltip.useHtml)?(0,_ui.getConfig)().tooltip.useHtml:null},useHTML:{type:Boolean,default:()=>(0,_ui.getConfig)().tooltip.useHTML},zIndex:[String,Number],popupClassName:[String,Function],width:{type:[String,Number],default:()=>(0,_ui.getConfig)().tooltip.Width},height:{type:[String,Number],default:()=>(0,_ui.getConfig)().tooltip.height},minWidth:{type:[String,Number],default:()=>(0,_ui.getConfig)().tooltip.minWidth},minHeight:{type:[String,Number],default:()=>(0,_ui.getConfig)().tooltip.minHeight},maxWidth:{type:[String,Number],default:()=>(0,_ui.getConfig)().tooltip.maxWidth},maxHeight:{type:[String,Number],default:()=>(0,_ui.getConfig)().tooltip.maxHeight},placement:{type:String,default:()=>(0,_ui.getConfig)().tooltip.placement},defaultPlacement:{type:String,default:()=>(0,_ui.getConfig)().tooltip.defaultPlacement},isArrow:{type:Boolean,default:()=>(0,_ui.getConfig)().tooltip.isArrow},enterable:{type:Boolean,default:()=>(0,_ui.getConfig)().tooltip.enterable},enterDelay:{type:Number,default:()=>(0,_ui.getConfig)().tooltip.enterDelay},leaveDelay:{type:Number,default:()=>(0,_ui.getConfig)().tooltip.leaveDelay}},emits:["update:modelValue"],setup(_,e){let{slots:s,emit:l}=e;var t=_xeUtils.default.uniqueId();let d=(0,_ui.useSize)(_).computeSize,h=(0,_vue.reactive)(createReactData()),r=createInternalData(),y=(0,_vue.ref)(),c=(0,_vue.ref)(),v=(0,_vue.computed)(()=>{var{width:e,height:t,minHeight:i,minWidth:l,maxHeight:n,maxWidth:o}=_,r={};return e&&(r.width=(0,_dom.toCssUnit)(e)),t&&(r.height=(0,_dom.toCssUnit)(t)),l&&(r.minWidth=(0,_dom.toCssUnit)(l)),i&&(r.minHeight=(0,_dom.toCssUnit)(i)),o&&(r.maxWidth=(0,_dom.toCssUnit)(o)),n&&(r.maxHeight=(0,_dom.toCssUnit)(n)),r}),i={refElem:y},g={xID:t,props:_,context:e,reactData:h,internalData:r,getRefMaps:()=>i},n={},o=()=>{var{isArrow:e,placement:t,defaultPlacement:i}=_,{tipTarget:l,tipStore:n,tipPos:o}=h;let r="",a="",u="bottom",p="";var s,d,c,v,g,f,m=y.value;m&&l&&(f=document.documentElement,s=document.body,d=l.offsetWidth,c=l.offsetHeight,v=m.offsetHeight,m=m.offsetWidth,l=l.getBoundingClientRect(),g=f.clientHeight||s.clientHeight,f=f.clientWidth||s.clientWidth,a=l.left,r=l.top+c,o&&(o.oLeft||o.oTop)?e?a=a+Math.max(8,Math.min(d-8,o.oLeft))-m/2:(a=o.x+1,r=o.y+1):a=l.left+(d-m)/2,"top"===t?(u="top",r=l.top-v):t||("top"===i?(u="top",(r=l.top-v)<6&&(u="bottom",r=l.top+c),r+v+6>g&&(u="top",r=l.top-v)):(r+v+6>g&&(u="top",r=l.top-v),r<6&&(u="bottom",r=l.top+c))),a+m+6>f&&(a-=a+m+6-f),(a=a<6?6:a)===l.left?d<=m&&(p=d/2):a<l.left&&(p=a+m>l.left+d?l.left-a+d/2:l.left-a+(m-(l.left-a))/2),n.placement=u,n.style.top=r+"px",n.style.left=a+"px",n.arrowStyle.left=p+"px")},a=e=>{e!==h.visible&&(h.visible=e,h.isUpdate=!0,l("update:modelValue",e))},u=()=>{h.tipZindex<(0,_utils.getLastZIndex)()&&(h.tipZindex=(0,_utils.nextZIndex)())},p=()=>{h.visible?n.close():U(h.target||w(),_.content)},f=()=>{U(h.target||w(),_.content)},m=()=>{var{trigger:e,enterable:t,leaveDelay:i}=_;h.tipActive=!1,t&&"hover"===e?setTimeout(()=>{h.tipActive||n.close()},i):n.close()},x=()=>{h.tipActive=!0},b=()=>{var{trigger:e,enterable:t,leaveDelay:i}=_;h.tipActive=!1,t&&"hover"===e&&setTimeout(()=>{h.tipActive||n.close()},i)},C=()=>{var e=h.tipStore,t=y.value;return t&&!t.parentNode&&document.body.appendChild(t),a(!0),u(),e.placement="top",e.style={width:"auto",left:0,top:0,zIndex:_.zIndex||h.tipZindex},e.arrowStyle={left:"50%"},n.updatePlacement()},S=()=>{r.showDelayTip=_xeUtils.default.debounce(()=>{h.tipActive&&C()},_.enterDelay,{leading:!1,trailing:!0})},U=(e,t,i)=>{var l=s.content;if((l||""!==t&&!_xeUtils.default.eqNull(t))&&e){var l=r.showDelayTip,{trigger:n,enterDelay:o}=_;if(h.tipPos=i?{x:i.clientX,y:i.clientY,oLeft:i.offsetX,oTop:i.offsetY}:null,h.tipActive=!0,h.tipTarget=e,h.tipContent=t,h.visible)return g.updatePlacement();if(!o||"hover"!==n)return C();l&&l()}return(0,_vue.nextTick)()},w=()=>{var e=_.selector;if(e){if(_xeUtils.default.isElement(e))return e;if(_xeUtils.default.isString(e))return document.querySelector(e)}return null},D=(n={dispatchEvent(e,t,i){l(e,(0,_ui.createEvent)(i,{$tooltip:g},t))},openByEvent(e,t,i){return U(t||h.target||w(),i,e)},open(e,t){return U(e||h.target||w(),t)},close(){return h.tipPos=null,h.tipTarget=null,h.tipActive=!1,Object.assign(h.tipStore,{style:{},placement:"",arrowStyle:null}),a(!1),(0,_vue.nextTick)()},toVisible(e,t){return U(e,t)},updatePlacement(){let{visible:e,tipTarget:t}=h,i=y.value;return e&&t&&i&&o(),(0,_vue.nextTick)().then(()=>{if(i=y.value,t&&i)return o(),(0,_vue.nextTick)().then(()=>{o()})})},isActived(){return h.tipActive},setActived(e){h.tipActive=!!e}},e=>{e.stopPropagation()});Object.assign(g,n);return(0,_vue.watch)(()=>_.enterDelay,()=>{S()}),(0,_vue.watch)(()=>_.content,e=>{h.tipContent=e}),(0,_vue.watch)(()=>_.modelValue,e=>{h.isUpdate||(e?U(h.target||w(),_.content):n.close()),h.isUpdate=!1}),S(),(0,_vue.onMounted)(()=>{var e=c.value;e&&e.addEventListener("wheel",D,{passive:!1}),(0,_vue.nextTick)(()=>{var e,{trigger:t,content:l}=_;let n=y.value;if(n){let i=n.parentNode;i&&(h.tipContent=l,h.tipZindex=(0,_utils.nextZIndex)(),_xeUtils.default.arrayEach(n.children,(e,t)=>{t&&(i.insertBefore(e,n),h.target||(h.target=e))}),i.removeChild(n),e=h.target,e&&("hover"===t?(e.onmouseenter=f,e.onmouseleave=m):"click"===t&&(e.onclick=p)),_.modelValue)&&U(e||w(),l)}})}),(0,_vue.onBeforeUnmount)(()=>{var e=h.target,t=y.value,e=(e&&(e.onmouseenter=null,e.onmouseleave=null,e.onclick=null),c.value);e&&e.removeEventListener("wheel",D),t&&(e=t.parentNode)&&e.removeChild(t)}),(0,_vue.onUnmounted)(()=>{_xeUtils.default.assign(h,createReactData()),_xeUtils.default.assign(r,createInternalData())}),g.renderVN=()=>{var{popupClassName:e,theme:t,isArrow:i,enterable:l}=_,{tipActive:n,visible:o,tipStore:r}=h,a=s.default,u=d.value;let p;return l&&(p={onMouseenter:x,onMouseleave:b}),(0,_vue.h)("div",Object.assign({ref:y,class:["vxe-tooltip--wrapper","theme--"+t,e?_xeUtils.default.isFunction(e)?e({$tooltip:g}):e:"",{["size--"+u]:u,["placement--"+r.placement]:r.placement,"is--enterable":l,"is--visible":o,"is--arrow":i,"is--active":n}],style:r.style},p),[(0,_vue.h)("div",{key:"tby",class:"vxe-tooltip--body"},[(()=>{var{useHtml:e,useHTML:t}=_,i=h.tipContent,l=v.value,n=s.content,o=[];return n?o.push((0,_vue.h)("div",{key:"ct"},(0,_vn.getSlotVNs)(n({})))):(_xeUtils.default.isBoolean(e)?e:t)?o.push((0,_vue.h)("div",{key:"ch",innerHTML:i})):o.push((0,_vue.h)("span",{key:"cd"},""+i)),(0,_vue.h)("div",{key:3,ref:c,class:"vxe-tooltip--content",style:l},o)})(),(0,_vue.h)("div",{class:"vxe-tooltip--arrow",style:r.arrowStyle})]),...a?(0,_vn.getSlotVNs)(a({})):[]])},g},render(){return this.renderVN()}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function createReactData(){return{target:null,isUpdate:!1,visible:!1,tipPos:null,tipContent:"",tipActive:!1,tipTarget:null,tipZindex:0,tipStore:{style:{},placement:"",arrowStyle:{}}}}function createInternalData(){return{}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTooltip",props:{modelValue:Boolean,size:{type:String,default:()=>(0,_ui.getConfig)().tooltip.size||(0,_ui.getConfig)().size},selector:String,trigger:{type:String,default:()=>(0,_ui.getConfig)().tooltip.trigger||"hover"},theme:{type:String,default:()=>(0,_ui.getConfig)().tooltip.theme||"dark"},content:{type:[String,Number],default:null},useHtml:{type:Boolean,default:()=>_xeUtils.default.isBoolean((0,_ui.getConfig)().tooltip.useHtml)?(0,_ui.getConfig)().tooltip.useHtml:null},useHTML:{type:Boolean,default:()=>(0,_ui.getConfig)().tooltip.useHTML},zIndex:[String,Number],popupClassName:[String,Function],width:{type:[String,Number],default:()=>(0,_ui.getConfig)().tooltip.Width},height:{type:[String,Number],default:()=>(0,_ui.getConfig)().tooltip.height},minWidth:{type:[String,Number],default:()=>(0,_ui.getConfig)().tooltip.minWidth},minHeight:{type:[String,Number],default:()=>(0,_ui.getConfig)().tooltip.minHeight},maxWidth:{type:[String,Number],default:()=>(0,_ui.getConfig)().tooltip.maxWidth},maxHeight:{type:[String,Number],default:()=>(0,_ui.getConfig)().tooltip.maxHeight},placement:{type:String,default:()=>(0,_ui.getConfig)().tooltip.placement},defaultPlacement:{type:String,default:()=>(0,_ui.getConfig)().tooltip.defaultPlacement},isArrow:{type:Boolean,default:()=>(0,_ui.getConfig)().tooltip.isArrow},enterable:{type:Boolean,default:()=>(0,_ui.getConfig)().tooltip.enterable},enterDelay:{type:Number,default:()=>(0,_ui.getConfig)().tooltip.enterDelay},leaveDelay:{type:Number,default:()=>(0,_ui.getConfig)().tooltip.leaveDelay},appendTo:{type:[String,Function],default:()=>(0,_ui.getConfig)().tooltip.appendTo}},emits:["update:modelValue"],setup(f,e){let{slots:s,emit:n}=e;var t=_xeUtils.default.uniqueId();let d=(0,_ui.useSize)(f).computeSize,m=(0,_vue.reactive)(createReactData()),a=createInternalData(),_=(0,_vue.ref)(),c=(0,_vue.ref)(),g=(0,_vue.computed)(()=>{var{width:e,height:t,minHeight:i,minWidth:n,maxHeight:l,maxWidth:o}=f,a={};return e&&(a.width=(0,_dom.toCssUnit)(e)),t&&(a.height=(0,_dom.toCssUnit)(t)),n&&(a.minWidth=(0,_dom.toCssUnit)(n)),i&&(a.minHeight=(0,_dom.toCssUnit)(i)),o&&(a.maxWidth=(0,_dom.toCssUnit)(o)),l&&(a.maxHeight=(0,_dom.toCssUnit)(l)),a}),i={refElem:_},v={xID:t,props:f,context:e,reactData:m,internalData:a,getRefMaps:()=>i};let l=e=>{e!==m.visible&&(m.visible=e,m.isUpdate=!0,n("update:modelValue",e))},o=()=>{var e=f.zIndex;e?m.tipZindex=_xeUtils.default.toNumber(e):m.tipZindex<(0,_utils.getLastZIndex)()&&(m.tipZindex=(0,_utils.nextZIndex)())},r=()=>{m.visible?v.close():b(m.target||S(),f.content)},u=()=>{b(m.target||S(),f.content)},p=()=>{var{trigger:e,enterable:t,leaveDelay:i}=f;m.tipActive=!1,t&&"hover"===e?setTimeout(()=>{m.tipActive||v.close()},i):v.close()},h=()=>{m.tipActive=!0},x=()=>{var{trigger:e,enterable:t,leaveDelay:i}=f;m.tipActive=!1,t&&"hover"===e&&setTimeout(()=>{m.tipActive||v.close()},i)},y=()=>{var e=f.appendTo,t=m.tipStore,i=_.value;return i&&!i.parentNode&&(0,_dom.getPopupAppendElement)(e).appendChild(i),l(!0),o(),t.placement="top",t.style={width:"auto",left:0,top:0,zIndex:f.zIndex||m.tipZindex},t.arrowStyle={left:"50%"},w.updatePlacement()},C=()=>{a.showDelayTip=_xeUtils.default.debounce(()=>{m.tipActive&&y()},f.enterDelay,{leading:!1,trailing:!0})},b=(e,t,i)=>{var n=s.content;if((n||""!==t&&!_xeUtils.default.eqNull(t))&&e){var n=a.showDelayTip,{trigger:l,enterDelay:o}=f;if(m.tipPos=i?{x:i.clientX,y:i.clientY,oLeft:i.offsetX,oTop:i.offsetY}:null,m.tipActive=!0,m.tipTarget=e,m.tipContent=t,m.visible)return v.updatePlacement();if(!o||"hover"!==l)return y();n&&n()}return(0,_vue.nextTick)()},S=()=>{var e=f.selector;if(e){if(_xeUtils.default.isElement(e))return e;if(_xeUtils.default.isString(e))return document.querySelector(e)}return null},U=()=>{var{placement:i,defaultPlacement:n,isArrow:l}=f,{tipTarget:o,tipStore:a,tipPos:r,tipZindex:u}=m,p=_.value;if(o&&p){var s=o.getBoundingClientRect(),d=o.offsetWidth,c=o.offsetHeight,g=p.offsetWidth,v=s.left;let e=v,t=s.top+c;r&&(r.oLeft||r.oTop)?l?e=e+Math.max(8,Math.min(d-8,r.oLeft))-g/2:(e=r.x+1,t=r.y+1):e=v+(d-g)/2;s=(0,_dom.updatePanelPlacement)(o,p,{defaultTop:t,defaultLeft:e,placement:i,defaultPlacement:n,teleportTo:!0}),c=Object.assign(s.style,{zIndex:u});a.placement=s.placement,a.style=c,a.arrowStyle.left=s.arrowLeft+"px"}},w={dispatchEvent:(e,t,i)=>{n(e,(0,_ui.createEvent)(i,{$tooltip:v},t))},openByEvent(e,t,i){return b(t||m.target||S(),i,e)},open(e,t){return b(e||m.target||S(),t)},close(){return m.tipPos=null,m.tipTarget=null,m.tipActive=!1,Object.assign(m.tipStore,{style:{},placement:"",arrowStyle:null}),l(!1),(0,_vue.nextTick)()},toVisible(e,t){return b(e,t)},updatePlacement(){return U(),(0,_vue.nextTick)().then(U)},isActived(){return m.tipActive},setActived(e){m.tipActive=!!e}},T=e=>{e.stopPropagation()};Object.assign(v,w);return(0,_vue.watch)(()=>f.enterDelay,()=>{C()}),(0,_vue.watch)(()=>f.content,e=>{m.tipContent=e}),(0,_vue.watch)(()=>f.modelValue,e=>{m.isUpdate||(e?b(m.target||S(),f.content):v.close()),m.isUpdate=!1}),C(),(0,_vue.onMounted)(()=>{var e=c.value;e&&e.addEventListener("wheel",T,{passive:!1}),(0,_vue.nextTick)(()=>{var e,{trigger:t,content:n}=f;let l=_.value;if(l){let i=l.parentNode;i&&(m.tipContent=n,m.tipZindex=(0,_utils.nextZIndex)(),_xeUtils.default.arrayEach(l.children,(e,t)=>{t&&(i.insertBefore(e,l),m.target||(m.target=e))}),i.removeChild(l),e=m.target,e&&("hover"===t?(e.onmouseenter=u,e.onmouseleave=p):"click"===t&&(e.onclick=r)),f.modelValue)&&b(e||S(),n)}})}),(0,_vue.onBeforeUnmount)(()=>{var e=m.target,t=_.value,e=(e&&(e.onmouseenter=null,e.onmouseleave=null,e.onclick=null),c.value);e&&e.removeEventListener("wheel",T),t&&(e=t.parentNode)&&e.removeChild(t)}),(0,_vue.onUnmounted)(()=>{_xeUtils.default.assign(m,createReactData()),_xeUtils.default.assign(a,createInternalData())}),v.renderVN=()=>{var{popupClassName:e,theme:t,isArrow:i,enterable:n}=f,{tipActive:l,visible:o,tipStore:a}=m,r=s.default,u=d.value;let p;return n&&(p={onMouseenter:h,onMouseleave:x}),(0,_vue.h)("div",Object.assign({ref:_,class:["vxe-tooltip--wrapper","theme--"+t,e?_xeUtils.default.isFunction(e)?e({$tooltip:v}):e:"",{["size--"+u]:u,["placement--"+a.placement]:a.placement,"is--enterable":n,"is--visible":o,"is--arrow":i,"is--active":l}],style:a.style},p),[(0,_vue.h)("div",{key:"tby",class:"vxe-tooltip--body"},[(()=>{var{useHtml:e,useHTML:t}=f,i=m.tipContent,n=g.value,l=s.content,o=[];return l?o.push((0,_vue.h)("div",{key:"ct"},(0,_vn.getSlotVNs)(l({})))):(_xeUtils.default.isBoolean(e)?e:t)?o.push((0,_vue.h)("div",{key:"ch",innerHTML:i})):o.push((0,_vue.h)("span",{key:"cd"},""+i)),(0,_vue.h)("div",{key:3,ref:c,class:"vxe-tooltip--content",style:n},o)})(),(0,_vue.h)("div",{class:"vxe-tooltip--arrow",style:a.arrowStyle})]),...r?(0,_vn.getSlotVNs)(r({})):[]])},v},render(){return this.renderVN()}});
@@ -3628,6 +3628,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
3628
3628
  };
3629
3629
  const renderList = treeList => {
3630
3630
  const {
3631
+ loading,
3631
3632
  transform,
3632
3633
  emptyText
3633
3634
  } = props;
@@ -3636,7 +3637,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
3636
3637
  } = internalData;
3637
3638
  const childrenField = computeChildrenField.value;
3638
3639
  const emptySlot = slots.empty;
3639
- if (!treeList.length) {
3640
+ if (!loading && !treeList.length) {
3640
3641
  return [(0, _vue.h)('div', {
3641
3642
  class: 'vxe-tree--empty-placeholder'
3642
3643
  }, emptySlot ? emptySlot({}) : [(0, _vue.h)('div', {
@@ -1 +1 @@
1
- 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"),_store=require("./store"),_xeUtils=_interopRequireDefault(require("xe-utils")),_vn=require("../../ui/src/vn"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_anime=require("../../ui/src/anime"),_loading=_interopRequireDefault(require("../../loading")),_tooltip=_interopRequireDefault(require("../../tooltip"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{warnLog,errLog}=(0,_log.createComponentLog)("tree"),{menus,getConfig,getI18n,getIcon}=_ui.VxeUI;function getNodeUniqueId(){return _xeUtils.default.uniqueId("node_")}function createInternalData(){return{treeFullData:[],afterTreeList:[],afterVisibleList:[],nodeMaps:{},selectCheckboxMaps:{},indeterminateNodeMaps:{},treeExpandedMaps:{},treeExpandLazyLoadedMaps:{},lastScrollLeft:0,lastScrollTop:0,scrollYStore:{startIndex:0,endIndex:0,visibleSize:0,offsetSize:0,rowHeight:0},removeNodeMaps:{},insertNodeMaps:{},lastScrollTime:0}}function createReactData(){return{parentHeight:0,customHeight:0,customMinHeight:0,customMaxHeight:0,currentNode:null,scrollYLoad:!1,bodyHeight:0,topSpaceHeight:0,selectRadioKey:null,treeList:[],updateExpandedFlag:1,updateCheckboxFlag:1,insertNodeFlag:1,removeNodeFlag:1,dragNode:null,dragTipText:"",isCrossDragNode:!1,tooltipStore:{visible:!1,node:null}}}let crossTreeDragNodeObj=null;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTree",props:{data:Array,autoResize:{type:Boolean,default:()=>getConfig().tree.autoResize},height:[String,Number],maxHeight:{type:[String,Number],default:()=>getConfig().tree.maxHeight},minHeight:{type:[String,Number],default:()=>getConfig().tree.minHeight},emptyText:{type:[String,Number],default:()=>getConfig().tree.emptyText},loading:Boolean,loadingConfig:Object,accordion:{type:Boolean,default:()=>getConfig().tree.accordion},childrenField:{type:String,default:()=>getConfig().tree.childrenField},valueField:{type:String,default:()=>getConfig().tree.valueField},keyField:{type:String,default:()=>getConfig().tree.keyField},parentField:{type:String,default:()=>getConfig().tree.parentField},titleField:{type:String,default:()=>getConfig().tree.titleField},hasChildField:{type:String,default:()=>getConfig().tree.hasChildField},mapChildrenField:{type:String,default:()=>getConfig().tree.mapChildrenField},transform:Boolean,isCurrent:Boolean,isHover:Boolean,expandAll:Boolean,expandNodeKeys:Array,showLine:{type:Boolean,default:()=>getConfig().tree.showLine},trigger:String,indent:{type:Number,default:()=>getConfig().tree.indent},showRadio:{type:Boolean,default:()=>getConfig().tree.showRadio},checkNodeKey:[String,Number],radioConfig:Object,showCheckbox:{type:Boolean,default:()=>getConfig().tree.showCheckbox},checkNodeKeys:Array,checkboxConfig:Object,nodeConfig:Object,lazy:Boolean,visibleMethod:Function,toggleMethod:Function,loadMethod:Function,showOverflow:{type:Boolean,default:()=>getConfig().tree.showOverflow},tooltipConfig:Object,drag:{type:Boolean,default:()=>getConfig().tree.drag},dragConfig:Object,menuConfig:Object,showIcon:{type:Boolean,default:!0},iconOpen:{type:String,default:()=>getConfig().tree.iconOpen},iconClose:{type:String,default:()=>getConfig().tree.iconClose},iconLoaded:{type:String,default:()=>getConfig().tree.iconLoaded},rootParentValue:{type:[String,Number],default:()=>getConfig().tree.rootParentValue},rootValues:{type:Array,default:()=>getConfig().tree.rootValues},filterValue:[String,Number],filterConfig:Object,size:{type:String,default:()=>getConfig().tree.size||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","node-dragstart","node-dragover","node-dragend","node-remove-dragend","node-insert-dragend","node-expand","node-menu","menu-click"],setup(R,r){let{emit:l,slots:H}=r;var o=_xeUtils.default.uniqueId();let T=(0,_ui.useSize)(R).computeSize,V=(0,_vue.ref)(),y=(0,_vue.ref)(),b=(0,_vue.ref)(),C=(0,_vue.ref)(),E=(0,_vue.ref)(),M=(0,_vue.ref)(),D=(0,_vue.ref)(),N=(0,_vue.ref)(),_=(0,_store.getCrossTreeDragNodeInfo)(),$=createInternalData(),P=(0,_vue.reactive)(createReactData()),i={refElem:V},ie=(0,_vue.computed)(()=>R.titleField||"title"),q=(0,_vue.computed)(()=>R.keyField||"id"),c=(0,_vue.computed)(()=>{var e=q.value;return R.valueField||e}),j=(0,_vue.computed)(()=>R.parentField||"parentId"),B=(0,_vue.computed)(()=>R.childrenField||"children"),z=(0,_vue.computed)(()=>R.mapChildrenField||"mapChildren"),K=(0,_vue.computed)(()=>R.hasChildField||"hasChild"),u=(0,_vue.computed)(()=>Object.assign({},getConfig().tree.virtualYConfig,R.virtualYConfig)),v=(0,_vue.computed)(()=>{var e=d.value.isCurrent;return _xeUtils.default.isBoolean(e)?e:R.isCurrent}),k=(0,_vue.computed)(()=>{var e=d.value.isHover;return _xeUtils.default.isBoolean(e)?e:R.isHover}),Y=(0,_vue.computed)(()=>Object.assign({showIcon:!0},getConfig().tree.radioConfig,R.radioConfig)),W=(0,_vue.computed)(()=>Object.assign({showIcon:!0},getConfig().tree.checkboxConfig,R.checkboxConfig)),d=(0,_vue.computed)(()=>Object.assign({},getConfig().tree.nodeConfig,R.nodeConfig)),I=(0,_vue.computed)(()=>Object.assign({},getConfig().tree.loadingConfig,R.loadingConfig)),X=(0,_vue.computed)(()=>Object.assign({},getConfig().tree.dragConfig,R.dragConfig)),G=(0,_vue.computed)(()=>Object.assign({},getConfig().tree.tooltipConfig,R.tooltipConfig)),p=(0,_vue.computed)(()=>Object.assign({},getConfig().tree.menuConfig,R.menuConfig)),S=(0,_vue.computed)(()=>{var e=R.indent,{customHeight:t,customMinHeight:r,customMaxHeight:a}=P,l=W.value.nodeStyle,o={};return t&&(o.height=(0,_dom.toCssUnit)(t)),r&&(o.minHeight=(0,_dom.toCssUnit)(r)),a&&(o.maxHeight=(0,_dom.toCssUnit)(a)),e&&(o["--vxe-ui-tree-node-indent"]=(0,_dom.toCssUnit)(e)),l&&({indeterminateColor:t,checkedColor:r}=l,t&&(o["--vxe-ui-tree-node-checkbox-indeterminate-color"]=t),r)&&(o["--vxe-ui-tree-node-checkbox-checked-color"]=r),o}),f=(0,_vue.computed)(()=>Object.assign({},getConfig().tree.filterConfig,R.filterConfig)),x={computeKeyField:q,computeParentField:j,computeChildrenField:B,computeMapChildrenField:z,computeRadioOpts:Y,computeCheckboxOpts:W,computeNodeOpts:d,computeDragOpts:X},J={xID:o,props:R,context:r,internalData:$,reactData:P,getRefMaps:()=>i,getComputeMaps:()=>x},Q=e=>{var t;return e?(t=c.value,e=_xeUtils.default.get(e,t),(0,_utils.enModelValue)(e)):""};let m=e=>{var t=P.selectRadioKey;return t===e};let se=e=>{var t=P.updateCheckboxFlag,r=$.selectCheckboxMaps;return!(!t||!r[e])};let ue=e=>{var t=P.updateCheckboxFlag,r=$.indeterminateNodeMaps;return!(!t||!r[e])};let g=e=>{l("update:checkNodeKeys",e)},n=e=>{l("update:checkNodeKey",e)},w=(e,r)=>{let a=$.nodeMaps;if(e){_xeUtils.default.isArray(e)||(e=[e]);let t=[];e.forEach(e=>{e=(0,_utils.enModelValue)(e),e=a[e];e&&t.push(e.item)}),L(t,r)}return(0,_vue.nextTick)()},L=(e,r)=>{var t=R.transform;let a=$.selectCheckboxMaps;var l=z.value,o=B.value,d=W.value.checkStrictly,n=e=>{var t=Q(e);r?a[t]||(a[t]=e):a[t]&&delete a[t]};d?e.forEach(n):_xeUtils.default.eachTree(e,n,{children:t?l:o}),P.updateCheckboxFlag++,oe()},a=(e,t,r)=>{t?r[e]||(r[e]=!0):r[e]&&delete r[e]},Z=(e,t,r)=>{l(e,(0,_ui.createEvent)(r,{$tree:J},t))},U=()=>{var e=V.value;return e?e.parentElement:null},O=e=>{var t=P.parentHeight,e=R[e];let r=0;return r=e?"100%"===e||"auto"===e?t:(r=(0,_dom.isScale)(e)?Math.floor((_xeUtils.default.toInteger(e)||1)/100*t):_xeUtils.default.toNumber(e),Math.max(40,r)):r},A=()=>{P.customHeight=O("height"),P.customMinHeight=O("minHeight"),P.customMaxHeight=O("maxHeight"),!P.scrollYLoad||P.customHeight||P.customMinHeight||(P.customHeight=300)},ee=()=>{var e=$.treeFullData;let n=c.value;var t=B.value;let i={};_xeUtils.default.eachTree(e,(e,t,r,a,l,o)=>{let d=Q(e);d||(d=getNodeUniqueId(),_xeUtils.default.set(e,n,d)),i[d]={item:e,index:t,$index:-1,_index:-1,items:r,parent:l,nodes:o,level:o.length-1,treeIndex:t,lineCount:0,treeLoaded:!1}},{children:t}),$.nodeMaps=i},te=()=>{var e=R.transform;let{afterTreeList:t,nodeMaps:i}=$;var r=B.value,a=z.value;let s=0;_xeUtils.default.eachTree(t,(e,t,r,a,l,o)=>{var d=Q(e),n=i[d];n?(n.items=r,n.treeIndex=t,n._index=s):(n={item:e,index:t,$index:-1,_index:s,items:r,parent:l,nodes:o,level:o.length-1,treeIndex:t,lineCount:0,treeLoaded:!1},i[d]=n),s++},{children:e?a:r})},F=()=>{var{transform:t,filterValue:r}=R,{treeFullData:a,lastFilterValue:e}=$;let l=ie.value;var o=B.value,d=z.value;let{autoExpandAll:n,beforeFilterMethod:i,filterMethod:s,afterFilterMethod:u}=f.value,c=a,v=c,g="";if(r||0===r){g=""+r;r=s?e=>s({$tree:J,node:e,filterValue:g}):e=>-1<String(e[l]).toLowerCase().indexOf(g.toLowerCase());let e={$tree:J,filterValue:g};i&&i(e),c=t?v=_xeUtils.default.searchTree(a,r,{original:!0,isEvery:!0,children:o,mapChildren:d}):a.filter(r),$.lastFilterValue=g,(0,_vue.nextTick)(()=>{n?J.setAllExpandNode(!0).then(()=>{u&&u(e)}):u&&u(e)})}else{if(t&&(v=_xeUtils.default.searchTree(a,()=>!0,{original:!0,isEvery:!0,children:o,mapChildren:d}),c=v,e)){let e={$tree:J,filterValue:g};i&&i(e),(0,_vue.nextTick)(()=>{n?J.clearAllExpandNode().then(()=>{u&&u(e)}):u&&u(e)})}$.lastFilterValue=""}$.afterVisibleList=c,$.afterTreeList=v,te()},h=()=>{var e=R.transform;let{afterTreeList:t,treeExpandedMaps:i}=$;var r=z.value;let s={};if(e){let n=[];return _xeUtils.default.eachTree(t,(e,t,r,a,l)=>{var o=Q(e),d=Q(l);(!l||s[d]&&i[d])&&(s[o]=1,n.push(e))},{children:r}),ve(n),$.afterVisibleList=n}return $.afterVisibleList},re=e=>{var t=P.scrollYLoad;let{scrollYStore:r,nodeMaps:a}=$,l=$.afterVisibleList;e&&(F(),l=h());e=t?l.slice(r.startIndex,r.endIndex):l.slice(0);e.forEach((e,t)=>{e=Q(e),e=a[e];e&&(e.$index=t)}),P.treeList=e},ce=_xeUtils.default.debounce(()=>re(!0),350,{trailing:!0}),t=e=>{let{expandAll:t,expandNodeKeys:r,transform:a,rootParentValue:l,rootValues:o}=R,{initialized:d,scrollYStore:n}=$;var i=q.value,s=j.value,u=B.value,i=a?_xeUtils.default.toArrayTree(e,{key:i,parentKey:s,mapChildren:u,rootParentValue:l,rootValues:o}):e?e.slice(0):[],s=($.treeFullData=i,$.insertNodeMaps={},P.insertNodeFlag++,$.removeNodeMaps={},P.removeNodeFlag++,Object.assign(n,{startIndex:0,endIndex:1,visibleSize:0}),ve(i));return ee(),re(!0),!s||R.height||R.maxHeight||errLog("vxe.error.reqProp",["height | max-height | virtual-y-config.enabled=false"]),he().then(()=>{d||e&&e.length&&($.initialized=!0,t?J.setAllExpandNode(!0):r&&r.length&&J.setExpandByNodeId(r,!0),w(R.checkNodeKeys||[],!0)),A();{let{lastScrollLeft:e,lastScrollTop:t}=$;me().then(()=>{if(e||t)return $.lastScrollLeft=0,$.lastScrollTop=0,scrollTo(e,t)})}})},ve=e=>{var t=R.transform,r=u.value,e=e||$.treeFullData,t=!!t&&!!r.enabled&&-1<r.gt&&(0===r.gt||r.gt<e.length);return P.scrollYLoad=t},ae=()=>{var e=P.scrollYLoad,{scrollYStore:t,afterVisibleList:r}=$;P.bodyHeight=e?r.length*t.rowHeight:0,P.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},ge=()=>{re(),ae()},he=()=>(0,_vue.nextTick)().then(()=>{var e=P.scrollYLoad,t=$.scrollYStore,r=E.value,a=u.value;let l=0,o;(o=r?o||r.children[0]:o)&&(l=o.offsetHeight),l=Math.max(20,l),t.rowHeight=l,(e?(r=C.value,e=Math.max(8,r?Math.ceil(r.clientHeight/l):0),r=Math.max(0,Math.min(2,_xeUtils.default.toNumber(a.oSize))),t.offsetSize=r,t.visibleSize=e,t.endIndex=Math.max(t.startIndex,e+r,t.endIndex),ge):ae)()}),pe=(e,t)=>{var r=C.value;return e&&!_xeUtils.default.isNumber(e)&&(t=e.top,e=e.left),r&&(_xeUtils.default.isNumber(e)&&(r.scrollLeft=e),_xeUtils.default.isNumber(t))&&(r.scrollTop=t),P.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},le=()=>{var e,t,r,a=$.scrollYStore,a=a.rowHeight,l=V.value;return l&&l.clientWidth&&l.clientHeight?(l=U(),e=y.value,t=b.value,e=e?e.clientHeight:0,t=t?t.clientHeight:0,l&&(r=(0,_dom.getPaddingTopBottomSize)(l),P.parentHeight=Math.max(e+t+a,l.clientHeight-r-e-t)),A(),he().then(()=>{A(),ae()})):(0,_vue.nextTick)()},fe=()=>{var e=$.scrollYStore,{startIndex:t,endIndex:r,visibleSize:a,offsetSize:l,rowHeight:o}=e,d=C.value;d&&(d=d.scrollTop,d=Math.floor(d/o),o=Math.max(0,d-1-l),l=d+a+l,!(d<=t||r-a-1<=d)||t===o&&r===l||(e.startIndex=o,e.endIndex=l,ge()))},xe=e=>{var t=e.target,r=t.scrollTop,t=t.scrollLeft,a=t!==$.lastScrollLeft,l=r!==$.lastScrollTop;$.lastScrollTop=r,$.lastScrollLeft=t,P.scrollYLoad&&fe(),$.lastScrollTime=Date.now(),Z("scroll",{scrollLeft:t,scrollTop:r,isX:a,isY:l},e)},me=()=>{var e=C.value;return e&&(e.scrollTop=0,e.scrollLeft=0),$.lastScrollTop=0,($.lastScrollLeft=0,_vue.nextTick)()},_e=(e,t)=>{var r=R.drag,a=$.nodeMaps,l=e.currentTarget,{trigger:o,isCrossDrag:d,isPeerDrag:n,disabledMethod:i}=X.value,s=Q(t);let u=r?"node"===o:!1;(0,_dom.getEventTargetNode)(e,l,"vxe-tree--node-item-switcher").flag||(r={node:t,$tree:J},o=a[s],!u)||!(d||n||o&&!o.level)||i&&i(r)||qe(e,{node:t})},Ce=(e,t)=>{var{showRadio:r,showCheckbox:a,trigger:l}=R,o=Y.value,d=W.value;let n=!1,i=!1,s=!1,u=!1;v.value?(n=!0,Se(e,t)):P.currentNode&&(P.currentNode=null),"node"===l&&(u=!0,ke(e,t)),r&&"node"===o.trigger&&(i=!0,we(e,t)),a&&"node"===d.trigger&&(s=!0,Ie(e,t)),Z("node-click",{node:t,triggerCurrent:n,triggerRadio:i,triggerCheckbox:s,triggerExpand:u},e)},Ne=(e,t)=>{Z("node-dblclick",{node:t},e)},Te=(a,l)=>{var o=N.value;if(o){var d=P.tooltipStore,n=$.tipTimeout,i=a.currentTarget,{showAll:s,contentMethod:u}=G.value,n=(n&&(clearTimeout(n),$.tipTimeout=void 0),i.querySelector(".vxe-tree--node-item-title")),i=i.querySelector(".vxe-tree--node-item-wrapper");if(i){var c=_xeUtils.default.toString(i.textContent).trim(),v=i.scrollWidth>i.clientWidth;let e=!1,t=null,r="";u&&(t=u({node:l,$event:a,$tree:J})),s?_xeUtils.default.eqNull(t)?(e=!0,r=c):""!==t&&!1!==t&&(e=!0,r=""+t):r=_xeUtils.default.eqNull(t)?(e=v,c):""!==t&&!1!==t?(e=!0,""+t):c,e&&r&&(u=(0,_utils.getText)(r),d.visible=!0,d.node=l,o.open)&&o.open((v?i:n)||i,u)}}},ye=()=>{let e=N.value;var t=G.value;e&&e.setActived&&e.setActived(!1),t.enterable?$.tipTimeout=setTimeout(()=>{(e=N.value)&&e.isActived&&!e.isActived()&&be(),$.tipTimeout=void 0},t.leaveDelay):be()},be=()=>{var e=P.tooltipStore;return e.visible&&(e.visible=!1,e.node=null,e=N.value)&&e.close(),(0,_vue.nextTick)()},Ee=(a,l)=>{var e=R.menuConfig,t=v.value,r=p.value;(e?(0,_utils.isEnableConf)(r):r.enabled)&&({options:e,visibleMethod:r}=r,r&&!r({$tree:J,options:e,node:l})||(t?Se(a,l):P.currentNode&&(P.currentNode=null),_ui.VxeUI.contextMenu&&_ui.VxeUI.contextMenu.openByEvent(a,{options:e,events:{optionClick(e){var t=e.option,r=menus.get(t.code),r=r?r.treeMenuMethod:null,t={menu:t,node:l,$event:a,$tree:J,option:t};r&&r(t,a),Z("menu-click",t,e.$event)}}}))),Z("node-menu",{node:l},a)},Me=o=>{var e=W.value;let r=R.loadMethod,d=e.checkStrictly;return new Promise(e=>{var t=$.nodeMaps;let a=Q(o),l=t[a];r?($.treeExpandLazyLoadedMaps[a]=!0,Promise.resolve(r({$tree:J,node:o})).then(r=>{var e=$.treeExpandLazyLoadedMaps;if(l&&(l.treeLoaded=!0),e[a]&&(e[a]=!1),r=_xeUtils.default.isArray(r)?r:[])return J.loadChildrenNode(o,r).then(e=>{var t=$.treeExpandedMaps;return e.length&&!t[a]&&(t[a]=!0),P.updateExpandedFlag++,!d&&J.isCheckedByCheckboxNodeId(a)&&L(e,!0),Z("load-success",{node:o,data:r},new Event("load-success")),(0,_vue.nextTick)()});Z("load-success",{node:o,data:r},new Event("load-success"))}).catch(e=>{var t=$.treeExpandLazyLoadedMaps;l&&(l.treeLoaded=!1),t[a]&&(t[a]=!1),Z("load-error",{node:o,data:e},new Event("load-error"))}).finally(()=>(h(),re(),le()))):(l&&(l.treeLoaded=!0),e())})},De=(e,t)=>{let{lazy:a,accordion:r,toggleMethod:l}=R,{treeExpandLazyLoadedMaps:o,treeExpandedMaps:d}=$,n=$.nodeMaps,i=B.value,s=K.value,u=[],c=l?e.filter(e=>l({$tree:J,expanded:t,node:e})):e;r&&(c=c.length?[c[c.length-1]]:[],e=Q(c[0]),e=n[e])&&e.items.forEach(e=>{e=Q(e);d[e]&&delete d[e]});let v=[];return t?c.forEach(e=>{var t,r=Q(e);d[r]||(t=n[r],a&&e[s]&&!t.treeLoaded&&!o[r]?u.push(Me(e)):e[i]&&e[i].length&&(d[r]=!0,v.push(e)))}):c.forEach(e=>{var t=Q(e);d[t]&&(delete d[t],v.push(e))}),P.updateExpandedFlag++,h(),re(),Promise.all(u).then(()=>le())},ke=(e,t)=>{var r=R.lazy,{treeExpandedMaps:a,treeExpandLazyLoadedMaps:l}=$,o=Q(t),a=!a[o];e.stopPropagation(),r&&l[o]||De([t],a),Z("node-expand",{node:t,expanded:a},e)},oe=()=>{var e=R.transform;let{selectCheckboxMaps:i,indeterminateNodeMaps:s,afterTreeList:t}=$,o=B.value;var r=z.value;let{checkStrictly:a,checkMethod:u}=W.value;if(!a){let a={},l=[];_xeUtils.default.eachTree(t,e=>{var t=Q(e),r=e[o];r&&r.length&&!a[t]&&(a[t]=1,l.unshift([e,t,r]))},{children:e?r:o}),l.forEach(e=>{var t=e[0],r=e[1],e=e[2];let a=0,l=0,o=0;var d=e.length;e.forEach(u?e=>{var t=Q(e),r=i[t];u({$tree:J,node:e})?(r?a++:s[t]&&l++,o++):r?a++:s[t]&&l++}:e=>{e=Q(e);i[e]?a++:s[e]&&l++,o++});let n=!1;e=!(n=0<d?0<o?(0<a||0<l)&&a>=o:0<a&&a>=o||!!i[r]:i[r])&&(0<a||0<l);n?(i[r]=t,s[r]&&delete s[r]):(i[r]&&delete i[r],e?s[r]=t:s[r]&&delete s[r])}),P.updateCheckboxFlag++}},Ie=(e,r)=>{e.preventDefault(),e.stopPropagation();var a=R.transform;let{selectCheckboxMaps:l,nodeMaps:t}=$;var o=B.value,d=z.value,{checkStrictly:n,checkMode:i,checkMethod:s}=W.value,u=Q(r),c=_xeUtils.default.get(r,o),c=c&&0<c.length,v=(t[u]||{}).level,s=s?!s({$tree:J,node:r}):!ne(i,c,v);if(!s){let t=!1;l[u]?delete l[u]:(t=!0,l[u]=r),n||_xeUtils.default.eachTree(_xeUtils.default.get(r,a?d:o),e=>{e=Q(e);t?l[e]||(l[e]=!0):l[e]&&delete l[e]},{children:a?d:o}),P.updateCheckboxFlag++,oe();i=_xeUtils.default.keys(l).map(_utils.deModelValue);g(i),Z("checkbox-change",{node:r,value:i,checked:t},e)}},Se=(e,t)=>{e.preventDefault();var{currentMethod:r,trigger:a}=d.value,l=B.value,l=_xeUtils.default.get(t,l),l=l&&l.length;let o=!!r;if("child"===a){if(l)return}else if("parent"===a&&!l)return;(o=r?!r({node:t}):o)||(P.currentNode=t,Z("current-change",{node:t,checked:!0},e))},we=(e,t)=>{e.preventDefault(),e.stopPropagation();var r=$.nodeMaps,a=Y.value,l=B.value,{checkMode:a,checkMethod:o}=a,d=Q(t),l=_xeUtils.default.get(t,l),l=l&&0<l.length,r=(r[d]||{}).level;(o?o({$tree:J,node:t}):ne(a,l,r))&&(o=(0,_utils.deModelValue)(d),P.selectRadioKey=d,n(o),Z("radio-change",{node:t,value:o,checked:!0},e))},Le=()=>{var e=V.value;e&&e.clientWidth&&le()},Ue=(e,t)=>{let{treeFullData:d,nodeMaps:n}=$,i=q.value,s=j.value,u=B.value,c=z.value,v=t?"push":"unshift";e.forEach(r=>{let t=r[s];var e=Q(r),a=t?_xeUtils.default.findTree(d,e=>t===e[i],{children:c}):null,l=(0,_util.getItemCacheObj)(r);if(a){var a=a.item,o=n[Q(a)],o=o?o.level:0;let e=a[u],t=a[c];_xeUtils.default.isArray(e)||(e=a[u]=[]),_xeUtils.default.isArray(t)||(t=a[c]=[]),l.parent=a,l.items=e,l.level=o,e[v](r),t[v](r)}else t&&warnLog("vxe.error.unableInsert"),d[v](r);n[e]=l})},s=(t,r,n)=>{var i=R.transform;let{treeFullData:e,nodeMaps:s,removeNodeMaps:a,insertNodeMaps:l}=$,u=q.value,c=j.value,v=B.value,g=z.value;if(!i)return errLog("vxe.error.reqSupportProp",["insert() | insertAt() | insertNextAt()","transform"]),Promise.resolve({node:null,nodes:[]});_xeUtils.default.isArray(t)||(t=[t]);let h=r;if((_xeUtils.default.isString(r)||_xeUtils.default.isNumber(r))&&(i=s[r])&&(h=i.item),!t.length)return Promise.resolve({node:null,nodes:[]});let o=t.map(e=>_xeUtils.default.assign({[g]:[],[v]:[]},e));r=_xeUtils.default.toArrayTree(o,{key:u,parentKey:c,children:v});if(_xeUtils.default.eqNull(h))Ue(o,!1);else if(-1===h)Ue(o,!0);else{let d=_xeUtils.default.findTree(e,e=>h[u]===e[u],{children:g});if(d){let a=d.parent,l=a?a[g]:e;i=s[Q(a)];let o=i?i.level:0;if(r.forEach((e,t)=>{a?e[c]!==a[u]&&(errLog("vxe.error.errProp",[c+"="+e[c],c+"="+a[u]]),e[c]=a[u]):null!==e[c]&&(_xeUtils.default.eqNull(e[c])||errLog("vxe.error.errProp",[c+"="+e[c],"null"]),e[c]=null);let r=d.index+t;n&&(r+=1),l.splice(r,0,e)}),_xeUtils.default.eachTree(r,e=>{var t=Q(e),r=(0,_util.getItemCacheObj)(e);r.level=o,e[v]&&(e[g]=e[v]),s[t]=r},{children:v}),a){t=_xeUtils.default.findTree(e,e=>h[u]===e[u],{children:v});if(t){i=t.items;let e=t.index;n&&(e+=1),i.splice(e,0,...r)}}}else warnLog("vxe.error.unableInsert"),Ue(o,!0)}return _xeUtils.default.eachTree(r,e=>{var t=Q(e);a[t]?(delete a[t],l[t]&&delete l[t]):l[t]=e},{children:g}),P.removeNodeFlag++,P.insertNodeFlag++,ee(),re(!0),te(),oe(),P.scrollYLoad&&ae(),(0,_vue.nextTick)().then(()=>({node:o.length?o[o.length-1]:null,nodes:o}))},Oe=(e,t,r,a)=>{var l=R.transform,o=$.nodeMaps;let d=q.value,n=j.value;if(!l)return errLog("vxe.error.reqSupportProp",["insertChild() | insertChildAt() | insertChildNextAt()","transform"]),Promise.resolve({node:null,nodes:[]});_xeUtils.default.isArray(e)||(e=[e]);let i=t;return(_xeUtils.default.isString(t)||_xeUtils.default.isNumber(t))&&(l=o[t])&&(i=l.item),s(e.map(e=>Object.assign({},e,{[n]:i[d]})),r,a)},Ae={dispatchEvent:Z,getNodeId:Q,getNodeById(e){var t=$.nodeMaps;if(e){t=t[e];if(t)return t.item}return null},loadData(e){return t(e||[])},reloadData(e){return t(e||[])},clearCurrentNode(){return(P.currentNode=null,_vue.nextTick)()},getCurrentNodeId(){var e=P.currentNode;return e?(0,_utils.deModelValue)(Q(e)):null},getCurrentNode(){var e=P.currentNode,t=$.nodeMaps;if(e){t=t[Q(e)];if(t)return t.item}return null},setCurrentNodeId(e){var t=$.nodeMaps,t=t[(0,_utils.enModelValue)(e)];return P.currentNode=t?t.item:null,(0,_vue.nextTick)()},setCurrentNode(e){return P.currentNode=e,(0,_vue.nextTick)()},clearRadioNode(){return P.selectRadioKey=null,n(null),(0,_vue.nextTick)()},getRadioNodeId(){return P.selectRadioKey||null},getRadioNode(){var e=P.selectRadioKey,t=$.nodeMaps;if(e){t=t[e];if(t)return t.item}return null},setRadioNodeId(e){return P.selectRadioKey=(0,_utils.enModelValue)(e),n(e),(0,_vue.nextTick)()},setRadioNode(e){return e?(e=Q(e),P.selectRadioKey=e,n((0,_utils.deModelValue)(e))):n(null),(0,_vue.nextTick)()},setCheckboxNode(e,t){return e&&(_xeUtils.default.isArray(e)||(e=[e]),L(e,t)),g(J.getCheckboxNodeIds()),(0,_vue.nextTick)()},setCheckboxByNodeId(e,t){return w(e,t),g(J.getCheckboxNodeIds()),(0,_vue.nextTick)()},getCheckboxNodeIds(){var e=$.selectCheckboxMaps;let r=[];return _xeUtils.default.each(e,(e,t)=>{r.push((0,_utils.deModelValue)(t))}),r},getCheckboxNodes(){return J.getCheckboxRecords()},getCheckboxRecords(){let{nodeMaps:r,selectCheckboxMaps:e}=$,a=[];return _xeUtils.default.each(e,(e,t)=>{t=r[t];t&&a.push(t.item)}),a},clearCheckboxNode(){return $.indeterminateNodeMaps={},$.selectCheckboxMaps={},P.updateCheckboxFlag++,g([]),oe(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:[],checkNodes:[]}))},setAllCheckboxNode(e){var t=R.transform,{afterTreeList:r,afterVisibleList:a}=$;let l={};var o=B.value,d=z.value;let n=[],i=[];return e&&_xeUtils.default.eachTree(t?r:a,e=>{var t=Q(e);n.push(t),i.push(e),l[t]=!0},{children:t?d:o}),$.indeterminateNodeMaps={},$.selectCheckboxMaps=l,P.updateCheckboxFlag++,oe(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:n,checkNodes:i}))},clearExpandNode(){return Ae.clearAllExpandNode()},clearAllExpandNode(){let e=P.scrollYLoad;var{nodeMaps:t,scrollYStore:r}=$;return _xeUtils.default.each(t,e=>{e.treeLoaded=!1}),$.treeExpandedMaps={},P.updateExpandedFlag++,P.topSpaceHeight=0,r.startIndex=0,r.endIndex=1,h(),re(),le().then(()=>(e&&fe(),le()))},setExpandByNodeId(e,t){let r=$.treeExpandedMaps;return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=(0,_utils.enModelValue)(e);a(e,t,r)}),P.updateExpandedFlag++),h(),re(),le()},getExpandNodeIds(){var e=$.treeExpandedMaps;let r=[];return _xeUtils.default.each(e,(e,t)=>{r.push((0,_utils.deModelValue)(t))}),r},getExpandNodes(){let{nodeMaps:r,treeExpandedMaps:e}=$,a=[];return _xeUtils.default.each(e,(e,t)=>{t=r[t];t&&a.push(t.item)}),a},setExpandNode(e,t){let r=$.treeExpandedMaps;return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=Q(e);a(e,t,r)}),P.updateExpandedFlag++),h(),re(),le()},toggleExpandByNodeId(e){let t=$.treeExpandedMaps;return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=(0,_utils.enModelValue)(e);a(e,!t[""+e],t)}),P.updateExpandedFlag++),h(),re(),le()},toggleExpandNode(e){let t=$.treeExpandedMaps;return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=Q(e);a(e,!t[e],t)}),P.updateExpandedFlag++),h(),re(),le()},setAllExpandNode(e){var t=R.transform;let r=P.scrollYLoad,{scrollYStore:a,treeExpandedMaps:l}=$,o=B.value;var d=z.value;return e?_xeUtils.default.eachTree($.afterTreeList,e=>{var t=_xeUtils.default.get(e,o);t&&t.length&&(t=Q(e),l[t]=!0)},{children:t?d:o}):$.treeExpandedMaps={},P.updateExpandedFlag++,P.topSpaceHeight=0,a.startIndex=0,a.endIndex=1,h(),re(),le().then(()=>(r&&fe(),le()))},reloadExpandNode(e){var t=R.lazy;return t?(Ae.clearExpandLoaded(e),Me(e)):le()},clearExpandLoaded(e){var t=R.lazy,r=$.nodeMaps;return t&&(t=r[Q(e)])&&(t.treeLoaded=!1),le()},loadChildrenNode(t,e){let{lazy:r,transform:a}=R,n=$.nodeMaps;if(!r)return Promise.resolve([]);let l=B.value,o=z.value,i=n[Q(t)],s=i?i.level:0,u=i?i.nodes:[];return(e=>{let r=c.value;return Promise.resolve(e.map(e=>{var t,e=Object.assign({},e);return Q(e)||(t=getNodeUniqueId(),_xeUtils.default.set(e,r,t)),e}))})(e).then(e=>(_xeUtils.default.eachTree(e,(e,t,r,a,l,o)=>{var d=Q(e);n[d]={item:e,index:-1,$index:-1,_index:-1,items:r,parent:l||i.item,nodes:u.concat(o),level:s+o.length,treeIndex:-1,lineCount:0,treeLoaded:!1}},{children:l}),t[l]=e,a&&(t[o]=e),te(),e))},isExpandByNode:e=>{var t=P.updateExpandedFlag,r=$.treeExpandedMaps,e=Q(e);return!(!t||!r[e])},isCheckedByRadioNodeId:m,isCheckedByRadioNode:e=>m(Q(e)),isCheckedByCheckboxNodeId:se,isIndeterminateByCheckboxNode:e=>ue(Q(e)),isCheckedByCheckboxNode:e=>se(Q(e)),getCheckboxIndeterminateNodes(){let{nodeMaps:r,indeterminateNodeMaps:e}=$,a=[];return _xeUtils.default.each(e,(e,t)=>{t=r[t];t&&a.push(t.item)}),a},recalculate:le,getFullData(){var e=$.treeFullData;return e.slice(0)},scrollTo:pe,scrollToNode(e){return J.scrollToNodeId(Q(e))},scrollToNodeId(t){var e=R.transform;let{scrollYStore:r,afterTreeList:a}=$;var l=B.value,o=z.value;let d=C.value;if(t&&d)if(e){e=_xeUtils.default.findTree(a,e=>Q(e)===t,{children:e?o:l});if(e)return J.setExpandNode(e.nodes,!0).then(()=>{var e=_xeUtils.default.findIndexOf($.afterVisibleList,e=>Q(e)===t);if(-1<e)return e=Math.max(0,(e-1)*r.rowHeight),pe(d.scrollLeft,e)})}else{o=d.querySelector(`.vxe-tree--node-wrapper[nodeid="${t}"]`);if(o)return pe(d.scrollLeft,o.offsetTop)}return le()},clearScroll:me,insert(e){return s(e,null)},insertAt(e,t){return s(e,t)},insertNextAt(e,t){return s(e,t,!0)},insertChild(e,t){return Oe(e,t,null)},insertChildAt(e,t,r){return Oe(e,t,r)},insertChildNextAt(e,t,r){return Oe(e,t,r,!0)},getInsertRecords(){var e=$.insertNodeMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},isInsertByNode(e){e=Q(e);return!!P.insertNodeFlag&&!!$.insertNodeMaps[e]},remove(e){var t=R.transform;let{treeFullData:r,insertNodeMaps:a,removeNodeMaps:l}=$,o=B.value,d=z.value;if(!t)return errLog("vxe.error.reqSupportProp",["remove()","transform"]),Promise.resolve({node:null,nodes:[]});let n=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=r,e.length?(e.forEach(e=>{var t;J.isInsertByNode(e)||(t=Q(e),l[t]=e)}),r===e?(e=n=r.slice(0),$.treeFullData=[]):e.forEach(e=>{let t=Q(e);var e=_xeUtils.default.findTree(r,e=>t===Q(e),{children:d}),e=(e&&(e=e.items.splice(e.index,1),n.push(e[0])),_xeUtils.default.findTree(r,e=>t===Q(e),{children:o}));e&&(e=e.items.splice(e.index,1),n.push(e[0]))}),e.forEach(e=>{e=Q(e);a[e]&&delete a[e]}),P.removeNodeFlag++,P.insertNodeFlag++,ee(),re(!0),te(),oe(),P.scrollYLoad&&ae(),(0,_vue.nextTick)().then(()=>le()).then(()=>({node:n.length?n[n.length-1]:null,nodes:n}))):Promise.resolve({node:null,nodes:[]})},getRemoveRecords(){var e=$.removeNodeMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},isRemoveByNode(e){e=Q(e);return!!P.removeNodeFlag&&!!$.removeNodeMaps[e]},closeTooltip:be,getRecordset(){return{insertRecords:J.getInsertRecords(),removeRecords:J.getRemoveRecords()}}},de=()=>{ze(),$e(),le()},Fe=()=>{var e=V.value;if(e){let t="node--drag-origin";_xeUtils.default.arrayEach(e.querySelectorAll("."+t),e=>{(e.draggable=!1,_dom.removeClass)(e,t)})}},He=e=>{var t=V.value;if(t){e=Q(e);_xeUtils.default.arrayEach(t.querySelectorAll(`.vxe-tree--node-wrapper[nodeid="${e}"]`),e=>{(0,_dom.addClass)(e,"node--drag-origin")})}},Re=e=>{var t=P.dragNode,r=X.value.tooltipMethod;let a="";a=r?""+(r({$tree:J,node:t})||""):getI18n("vxe.tree.dragTip",[e.textContent||""]),P.dragTipText=a},Ve=()=>{var e=D.value,t=M.value;e&&(e.style.display=""),t&&(t.style.display="")},$e=()=>{crossTreeDragNodeObj=null,_.node=null},Pe=()=>{var e=P.dragNode;e&&(Ve(),Fe(),$e(),P.dragNode=null)},qe=(e,t)=>{e.stopPropagation();var r=t.node,{isCrossTreeDrag:a,trigger:l,dragStartMethod:o}=X.value,d=e.currentTarget,l="node"===l?d:d.parentElement.parentElement;Fe(),o&&!o(t)?(l.draggable=!1,P.dragNode=null,$e(),Ve()):(a&&(_.node=r,crossTreeDragNodeObj={$oldTree:J,$newTree:null}),P.dragNode=r,P.isCrossDragNode=!1,l.draggable=!0,He(r),Re(l),Z("node-dragstart",t,e))},je=()=>{Pe()},Be=(e,t,r,a)=>{var l=V.value;if(l){var o=$.prevDragToChild,d=l.getBoundingClientRect(),n=l.clientHeight;if(t){var i=M.value;if(i)if(r){var s=t.getBoundingClientRect();let e=t.clientHeight;t=Math.max(1,s.y-d.y);t+e>n&&(e=n-t),i.style.display="block",i.style.top=t+"px",i.style.height=e+"px",i.setAttribute("drag-pos",a),i.setAttribute("drag-to-child",o?"y":"n")}else i.style.display=""}s=D.value;s&&(s.style.display="block",s.style.top=Math.min(l.clientHeight-l.scrollTop-s.clientHeight,e.clientY-d.y)+"px",s.style.left=Math.min(l.clientWidth-l.scrollLeft-s.clientWidth-1,e.clientX-d.x)+"px",s.setAttribute("drag-status",r?o?"sub":"normal":"disabled"))}},ze=()=>{var e=V.value;Ve(),Fe(),(0,_anime.clearRowAnimate)(e,[".vxe-tree--node-wrapper"]),$.prevDragToChild=!1,P.dragNode=null},Ke=(v,g,h,p,e)=>{let f=R.transform,{nodeMaps:x,treeFullData:m,afterVisibleList:_}=$;var C=X.value;let{animation:N,isCrossDrag:T,isPeerDrag:y,isSelfToChildDrag:b,dragEndMethod:t,dragToChildMethod:E}=C;C=t||(C?C.dragEndMethod:null);let M=q.value,D=j.value,k=B.value,I=z.value,S="bottom"===p?1:0,w=V.value,L={status:!1};if(w&&h&&g&&h!==g){var U={oldNode:g,newNode:h,dragNode:g,dragPos:p,dragToChild:!!e,offsetIndex:S};let r=Q(g);var O=x[r]||{};let s=O._index;var A=Q(h);let u=0,c=-1,a=(N&&(F=w.querySelector(`.vxe-tree--node-wrapper[nodeid="${A}"]`),H=w.querySelector(`.vxe-tree--node-wrapper[nodeid="${r}"]`),(F=F||H)&&(u=F.offsetHeight),H)&&(c=H.offsetTop),-1),l=-1,t={},o=!1,d=O,n=x[A];if(f&&d&&n){var F=d.level,H=n.level;if(_xeUtils.default.eachTree([g],e=>{t[Q(e)]=e},{children:I}),F&&H)if(y&&!T){if(d.item[D]!==n.item[D])return de(),L}else{if(!T)return de(),L;if(t[A]&&(o=!0,!T||!b))return _ui.VxeUI.modal&&_ui.VxeUI.modal.message({status:"error",content:getI18n("vxe.error.treeDragChild")}),de(),L}else if(F){if(!T)return de(),L}else if(H){if(!T)return de(),L;if(t[A]&&(o=!0,!T||!b))return _ui.VxeUI.modal&&_ui.VxeUI.modal.message({status:"error",content:getI18n("vxe.error.treeDragChild")}),de(),L}}let i=b&&E?E(U):e;return Promise.resolve(!C||C(U)).then(e=>{var t;return e?(f?d&&n&&(e=_xeUtils.default.toTreeArray($.afterTreeList,{updated:!1,key:M,parentKey:D,children:I}),t=J.findNodeIndexOf(e,g),e.splice(t,1),t=J.findNodeIndexOf(e,h)+S,e.splice(t,0,g),o&&T&&b&&_xeUtils.default.each(g[k],e=>{e[D]=g[D]}),g[D]=i?h[M]:h[D],$.treeFullData=_xeUtils.default.toArrayTree(e,{key:M,parentKey:D,children:k,mapChildren:I})):(a=J.findNodeIndexOf(_,g),t=J.findNodeIndexOf(m,g),_.splice(a,1),m.splice(t,1),e=J.findNodeIndexOf(_,h),t=J.findNodeIndexOf(m,h),l=e+S,e=t+S,_.splice(l,0,g),m.splice(e,0,g)),ee(),re(f),f||te(),oe(),P.scrollYLoad&&ae(),v&&Z("node-dragend",{oldNode:g,newNode:h,dragNode:g,dragPos:p,dragToChild:i,offsetIndex:S,_index:{newIndex:l,oldIndex:a}},v),(0,_vue.nextTick)().then(()=>{if(N){var a=P.treeList,l=$.nodeMaps,o=l[r],d=o._index,n=a[0],l=l[Q(n)],n=w;if(l){var l=l._index,i=l+a.length;let e=-1,t=-1,r=1;s<l?(e=0,t=d-l):s>i?(i=o.$index,e=i+1,t=a.length,r=-1):d>s?(e=s-l,t=e+d-s):(e=d-l,t=e+s-d+1,r=-1);o=a.slice(e,t);if(o.length){let t=[];o.forEach(e=>{e=Q(e);t.push(`.vxe-tree--node-wrapper[nodeid="${e}"]`)});i=n.querySelectorAll(t.join(","));(0,_anime.moveRowAnimateToTb)(i,r*u)}}l=[`.vxe-tree--node-wrapper[nodeid="${r}"]`],d=n.querySelectorAll(l.join(",")),a=d[0];-1<c&&a&&(0,_anime.moveRowAnimateToTb)(d,c-a.offsetTop)}le()}).then(()=>({status:!0}))):L}).catch(()=>L).then(e=>(de(),e))}return de(),Promise.resolve(L)},Ye=e=>{e.dataTransfer&&e.dataTransfer.setDragImage((0,_dom.getTpImg)(),0,0)},We=e=>{var t=R.lazy,r=P.dragNode,{nodeMaps:a,prevDragNode:l,prevDragPos:o,prevDragToChild:d}=$,n=K.value,{isCrossDrag:i,isCrossTreeDrag:s}=X.value;if(s&&crossTreeDragNodeObj){s=crossTreeDragNodeObj.$newTree;if(s&&s.xID!==J.xID)return void(i&&s.handleCrossTreeNodeDragInsertEvent(e))}t&&d&&(i=a[Q(l)],l[n])&&(!i||!i.treeLoaded)||Ke(e,r,l,o,d)},Xe=e=>{var{lazy:t,transform:r}=R,a=P.dragNode,l=$.nodeMaps,o=X.value,d=j.value,n=K.value,{isCrossTreeDrag:o,isCrossDrag:i,isPeerDrag:s,isToChildDrag:u}=o,c=(a||i||e.preventDefault(),(0,_dom.hasControlKey)(e)),v=e.currentTarget,g=v.getAttribute("nodeid")||"",l=l[g];if(l){e.preventDefault();var h=l.item,p=e.clientY-v.getBoundingClientRect().y<v.clientHeight/2?"top":"bottom";if($.prevDragToChild=!!(r&&i&&u&&c),$.prevDragNode=h,$.prevDragPos=p,o&&i&&crossTreeDragNodeObj){var{$oldTree:u,$newTree:o}=crossTreeDragNodeObj;if(u){var f=u.reactData;if(u.xID===J.xID)o&&o.hideCrossTreeNodeDropClearStatus(),P.isCrossDragNode=!1,f.isCrossDragNode=!1,crossTreeDragNodeObj.$newTree=null;else if(i)return o&&o.xID!==J.xID&&o.hideCrossTreeNodeDropClearStatus(),u.hideCrossTreeNodeDropClearStatus(),f.isCrossDragNode=!0,P.dragTipText=f.dragTipText,crossTreeDragNodeObj.$newTree=J,void Be(e,v,!0,p)}}a&&Q(a)===g||c&&t&&h[n]&&l&&!l.treeLoaded||!i&&r&&(s?a[d]!==h[d]:l.level)?Be(e,v,!1,p):(Be(e,v,!0,p),Z("node-dragover",{oldRNode:a,targetNode:h,dragPos:p},e))}};o={handleData:re,cacheNodeMap:ee,updateAfterDataIndex:te,updateCheckboxStatus:oe,updateYSpace:ae,findNodeIndexOf(e,t){return t?_xeUtils.default.findIndexOf(e,e=>J.eqNode(e,t)):-1},eqNode(e,t){return!(!e||!t||e!==t&&Q(e)!==Q(t))},handleCrossTreeNodeDragCancelEvent(){ze(),$e()},handleCrossTreeNodeDragFinishEvent(t){var l=P.treeList,o=$.nodeMaps;let{animation:d,isCrossTreeDrag:e}=X.value;var n=z.value;let i=V.value;if(i&&e&&crossTreeDragNodeObj&&_){var s=_.node;if(s){var u=Q(s),o=o[u];let r=0,e=-1,a=(o&&(d&&(u=i.querySelector(`.vxe-tree--node-wrapper[nodeid="${u}"]`))&&(r=u.offsetHeight),e=o.$index),-1<e&&e<l.length-1?l.slice(e+1):[]);u=_xeUtils.default.toTreeArray([s],{updated:!0,children:n});J.remove(u).then(()=>{if(d&&r&&a.length){var e=i;let t=[];a.forEach(e=>{e=Q(e);t.push(`.vxe-tree--node-wrapper[nodeid="${e}"]`)});e=e.querySelectorAll(t.join(","));(0,_anime.moveRowAnimateToTb)(e,r)}}),Z("node-remove-dragend",{node:s},t),de()}}},handleCrossTreeNodeDragoverEmptyEvent(e){var t,r=P.treeList,a=X.value.isCrossTreeDrag;a&&crossTreeDragNodeObj&&!r.length&&({$oldTree:a,$newTree:r}=crossTreeDragNodeObj,a)&&(t=a).xID!==J.xID&&(r&&r.xID!==J.xID&&r.hideCrossTreeNodeDropClearStatus(),e.preventDefault(),a.hideCrossTreeNodeDropClearStatus(),crossTreeDragNodeObj.$newTree=J,$.prevDragNode=null,P.dragTipText=t.dragTipText,Be(e,e.currentTarget,!0,""))},handleCrossTreeNodeDragInsertEvent(s){let{prevDragNode:u,prevDragPos:c,prevDragToChild:e}=$;let{animation:v,isSelfToChildDrag:t,isCrossTreeDrag:r,dragEndMethod:g,dragToChildMethod:h}=X.value,p=j.value,f=z.value,x=B.value;if(r&&crossTreeDragNodeObj&&_){let d=_.node,n=crossTreeDragNodeObj.$oldTree,i=V.value;if(i&&(n&&d)){let o=d,r=-1;u&&(r="bottom"===c?1:0);var m={oldNode:o,newNode:u,dragNode:o,dragPos:c,dragToChild:!!e,offsetIndex:r};let a=t&&h?h(m):e,l={status:!1};Promise.resolve(!g||g(m)).then(e=>{if(!e)return n&&n.xID!==J.xID&&n.handleCrossTreeNodeDragCancelEvent(s),de(),l;let t=Promise.resolve();e=_xeUtils.default.toTreeArray([o],{updated:!0,children:f});n.handleCrossTreeNodeDragFinishEvent(s),u?o[p]=u[p]:o[p]=null,e.forEach(e=>{e[x]=void 0,e[f]=void 0}),t=u?"bottom"===c?J.insertNextAt(e,u):J.insertAt(e,u):J.insert(e),J.dispatchEvent("node-insert-dragend",{oldNode:d,newNode:u,dragNode:o,dragPos:c,dragToChild:a,offsetIndex:r},s),ze(),t.then(()=>{var e=P.treeList,r=$.nodeMaps,a=Q(o),r=r[a];let l=0,t=-1;r&&(v&&(a=i.querySelector(`.vxe-tree--node-wrapper[nodeid="${a}"]`))&&(l=a.offsetHeight),t=r.$index);a=-1<t?e.slice(t):[];if(v&&l&&a.length){r=i;let t=[];a.forEach(e=>{e=Q(e);t.push(`.vxe-tree--node-wrapper[nodeid="${e}"]`)});e=r.querySelectorAll(t.join(","));(0,_anime.moveRowAnimateToTb)(e,-l)}})})}}},hideCrossTreeNodeDropClearStatus(){Ve()}};Object.assign(J,Ae,o);let Ge=(e,t)=>{var{drag:r,transform:a}=R,l=$.nodeMaps,{showIcon:o,isPeerDrag:d,isCrossDrag:n,visibleMethod:i}=X.value;let s={node:e,$tree:J};if(r&&o&&a&&(!i||i(s))){e=l[t];if(e&&(d||n||!e.level)){var{icon:r,trigger:o,disabledMethod:a}=X.value;let t=a&&a(s);i={};return"node"!==o&&(i.onMousedown=e=>{t||qe(e,s)},i.onMouseup=je),(0,_vue.h)("div",Object.assign({class:["vxe-tree--drag-handle",{"is--disabled":t}]},i),[(0,_vue.h)("i",{class:r||getIcon().TREE_DRAG})])}}return(0,_ui.renderEmptyElement)(J)},ne=(e,t,r)=>{if(e){if("first"===e)return!r;if("last"===e)return!t}return!0},Je=(t,e,r,a,l,o)=>{var d=R.showRadio,{showIcon:n,visibleMode:i,visibleMethod:s}=Y.value,s=s?s({$tree:J,node:t}):ne(i,r,a);return d&&n&&s?(0,_vue.h)("div",{class:["vxe-tree--radio-option",{"is--checked":o,"is--disabled":l}],onClick:e=>{l||we(e,t)}},[(0,_vue.h)("span",{class:["vxe-radio--icon",o?getIcon().RADIO_CHECKED:l?getIcon().RADIO_DISABLED_UNCHECKED:getIcon().RADIO_UNCHECKED]})]):(0,_ui.renderEmptyElement)(J)},Qe=(t,e,r,a,l,o,d)=>{var n=R.showCheckbox,{showIcon:i,visibleMode:s,visibleMethod:u}=W.value,u=u?u({$tree:J,node:t}):ne(s,r,a);return n&&i&&u?(0,_vue.h)("div",{class:["vxe-tree--checkbox-option",{"is--checked":o,"is--indeterminate":d,"is--disabled":l}],onClick:e=>{l||Ie(e,t)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",d?getIcon().CHECKBOX_INDETERMINATE:o?getIcon().CHECKBOX_CHECKED:l?getIcon().CHECKBOX_DISABLED_UNCHECKED:getIcon().CHECKBOX_UNCHECKED]})]):(0,_ui.renderEmptyElement)(J)},Ze=(t,e)=>{var{lazy:r,drag:a,transform:l,showRadio:o,showCheckbox:d,showLine:n,visibleMethod:i,iconOpen:s,iconClose:u,iconLoaded:c,showIcon:v}=R,{currentNode:g,selectRadioKey:h,updateExpandedFlag:p}=P,{afterTreeList:f,nodeMaps:x,treeExpandedMaps:m,treeExpandLazyLoadedMaps:_}=$,C=G.value.mode,N=Y.value,T=W.value,y=B.value,b=ie.value,F=K.value,y=_xeUtils.default.get(t,y),y=y&&0<y.length,E=H.icon,M=H.title,D=H.extra,p=p&&m[e],m=x[e]||{},x=(0,_utils.getText)(_xeUtils.default.get(t,b)),b=m.level;let k=!1,I=!1,S=(o&&(k=e===String(h),I=N.checkMethod?!N.checkMethod({$tree:J,node:t}):!ne(N.checkMode,y,b)),!1),w=!1,L=!1,U=(d&&(S=se(e),w=ue(e),L=T.checkMethod?!T.checkMethod({$tree:J,node:t}):!ne(T.checkMode,y,b)),!1),O=!1,A=!1;r&&(O=!!_[e],U=t[F],A=!!m.treeLoaded);o=m.items[m.treeIndex-1],h={node:t,isExpand:p,$tree:J},N={onMousedown(e){_e(e,t)},onMouseup:je,onClick(e){Ce(e,t)},onDblclick(e){Ne(e,t)},onContextmenu(e){Ee(e,t)}};return"tooltip"===C&&(N.onMouseenter=e=>{Te(e,t)},N.onMouseleave=ye),a&&l&&(N.onDragstart=Ye,N.onDragend=We,N.onDragover=Xe),(0,_vue.h)("div",Object.assign({key:e,class:["vxe-tree--node-wrapper","node--level-"+b],nodeid:e,title:"title"===C?x:""},N),[(0,_vue.h)("div",{class:["vxe-tree--node-item",{"is--current":g&&e===Q(g),"is-radio--disabled":I,"is-radio--checked":k,"is-checkbox--disabled":L,"is-checkbox--checked":S,"is-checkbox--indeterminate":w}]},[n?(0,_vue.h)("div",{class:"vxe-tree--node-line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--node-line",style:{height:`${Q(f[0])===e?1:(0,_util.calcTreeLine)(J,t,o)}px`}})]):(0,_ui.renderEmptyElement)(J),(0,_vue.h)("div",{class:"vxe-tree--node-item-switcher"},v&&(!r||A?y:U)&&(!i||i(h))?[(0,_vue.h)("div",{class:"vxe-tree--node-item-icon",onClick(e){ke(e,t)}},E?(0,_vn.getSlotVNs)(E(h)):[(0,_vue.h)("i",{class:O?c||getIcon().TREE_NODE_LOADED:p?s||getIcon().TREE_NODE_OPEN:u||getIcon().TREE_NODE_CLOSE})])]:[]),Je(t,e,y,b,I,k),Qe(t,e,y,b,L,S,w),Ge(t,e),(0,_vue.h)("div",{class:"vxe-tree--node-item-inner"},[(0,_vue.h)("div",{class:"vxe-tree--node-item-wrapper"},[(0,_vue.h)("span",{class:"vxe-tree--node-item-title"},M?(0,_vn.getSlotVNs)(M(h)):x)]),D?(0,_vue.h)("div",{class:"vxe-tree--node-item-extra"},(0,_vn.getSlotVNs)(D(h))):(0,_ui.renderEmptyElement)(J)])])])},et=e=>{var{transform:t,emptyText:r}=R;let a=$.treeExpandedMaps,l=B.value;var o=H.empty;if(!e.length)return[(0,_vue.h)("div",{class:"vxe-tree--empty-placeholder"},o?o({}):[(0,_vue.h)("div",{class:"vxe-tree--empty-placeholder-content"},(0,_utils.getText)(r||getI18n("vxe.tree.searchEmpty")))])];let d=[];return e.forEach(t?e=>{var t=Q(e);d.push(Ze(e,t))}:e=>{var t=Q(e),e=(d.push(Ze(e,t)),_xeUtils.default.get(e,l));e&&e.length&&a[t]&&d.push(...et(e))}),d};let e=(0,_vue.ref)(0),tt=((0,_vue.watch)(()=>R.data?R.data.length:0,()=>{e.value++}),(0,_vue.watch)(()=>R.data,()=>{e.value++}),(0,_vue.watch)(()=>R.rootParentValue,()=>{e.value++}),(0,_vue.watch)(()=>R.rootValues?R.rootValues.length:0,()=>{e.value++}),(0,_vue.watch)(()=>R.rootValues,()=>{e.value++}),(0,_vue.watch)(e,()=>{t(R.data||[])}),(0,_vue.watch)(()=>R.checkNodeKey,e=>{P.selectRadioKey=(0,_utils.enModelValue)(e)}),(0,_vue.ref)(0)),rt=((0,_vue.watch)(()=>R.checkNodeKeys?R.checkNodeKeys.length:0,()=>{tt.value++}),(0,_vue.watch)(()=>R.checkNodeKeys,()=>{tt.value++}),(0,_vue.watch)(tt,()=>{var e;e=R.checkNodeKeys||[],$.selectCheckboxMaps={},w(e,!0)}),(0,_vue.watch)(()=>R.filterValue,()=>{ce(new Event("filter"))}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>R.height,()=>{rt.value++}),(0,_vue.watch)(()=>R.minHeight,()=>{rt.value++}),(0,_vue.watch)(()=>R.maxHeight,()=>{rt.value++}),(0,_vue.watch)(rt,()=>{le()}),(0,_vue.onMounted)(()=>{var{transform:e,drag:t,menuConfig:r,showOverflow:a,lazy:l,loadMethod:o}=R,d=X.value,a=(a||errLog("vxe.error.errProp",["show-overflow=false","show-overflow=true"]),t&&!e&&errLog("vxe.error.notSupportProp",["drag","transform=false","transform=true"]),d.isCrossTreeDrag&&!d.isCrossDrag&&errLog("vxe.error.reqSupportProp",["drag-config.isCrossTreeDrag","drag-config.isCrossDrag"]),l&&!o&&warnLog("vxe.error.reqSupportProp",["lazy","load-method"]),_ui.VxeUI.getComponent("VxeContextMenu"));r&&!a&&errLog("vxe.error.reqComp",["vxe-context-menu"]),R.autoResize&&(t=V.value,e=U(),d=_ui.globalResize.create(()=>{R.autoResize&&le()}),t&&d.observe(t),e&&d.observe(e),$.resizeObserver=d),le(),_ui.globalEvents.on(J,"resize",Le)}),(0,_vue.onBeforeUnmount)(()=>{var e=$.resizeObserver;e&&e.disconnect(),_ui.globalEvents.off(J,"resize"),_xeUtils.default.assign(P,createReactData()),_xeUtils.default.assign($,createInternalData())}),P.selectRadioKey=(0,_utils.enModelValue)(R.checkNodeKey),t(R.data||[]),J.renderVN=()=>{var{loading:e,trigger:t,showLine:r}=R;let{bodyHeight:a,topSpaceHeight:l,treeList:o,tooltipStore:d}=P;var n=T.value,i=Y.value,s=W.value,u=I.value,c=k.value,v=S.value,g=X.value,h=G.value;let p=H.loading;var f=H.header,x=H.footer;let m=H.tooltip;var _={};return g.isCrossTreeDrag&&!o.length&&(_.onDragover=J.handleCrossTreeNodeDragoverEmptyEvent),(0,_vue.h)("div",Object.assign({ref:V,class:["vxe-tree",{["size--"+n]:n,"show--line":r,"checkbox--highlight":s.highlight,"radio--highlight":i.highlight,"node--hover":c,"node--trigger":"node"===t,"is--loading":e}]},_),[f?(0,_vue.h)("div",{ref:y,class:"vxe-tree--header-wrapper"},f({$tree:J})):(0,_ui.renderEmptyElement)(J),(0,_vue.h)("div",{ref:C,class:"vxe-tree--node-list-wrapper",style:v,onScroll:xe},[(0,_vue.h)("div",{class:"vxe-tree--y-space",style:{height:a?a+"px":""}}),(0,_vue.h)("div",{ref:E,class:"vxe-tree--node-list-body",style:{transform:`translateY(${l}px)`}},et(o))]),x?(0,_vue.h)("div",{ref:b,class:"vxe-tree--footer-wrapper"},x({$tree:J})):(0,_ui.renderEmptyElement)(J),(()=>{var e=R.drag,{dragNode:t,dragTipText:r}=P,a=X.value;return e?(0,_vue.h)("div",{class:"vxe-tree--drag-wrapper"},[(0,_vue.h)("div",{ref:M,class:["vxe-tree--drag-node-line",{"is--guides":a.showGuidesStatus}]}),t&&a.showDragTip?(0,_vue.h)("div",{ref:D,class:"vxe-tree--drag-sort-tip"},[(0,_vue.h)("div",{class:"vxe-tree--drag-sort-tip-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--drag-sort-tip-status"},[(0,_vue.h)("span",{class:["vxe-tree--drag-sort-tip-normal-status",getIcon().TREE_DRAG_STATUS_NODE]}),(0,_vue.h)("span",{class:["vxe-tree--drag-sort-tip-sub-status",getIcon().TREE_DRAG_STATUS_SUB_NODE]}),(0,_vue.h)("span",{class:["vxe-tree--drag-sort-tip-disabled-status",getIcon().TREE_DRAG_DISABLED]})]),(0,_vue.h)("div",{class:"vxe-tree--drag-sort-tip-content"},r)])]):(0,_ui.renderEmptyElement)(J)]):(0,_ui.renderEmptyElement)(J)})(),"tooltip"===h.mode?(0,_vue.h)(_tooltip.default,{ref:N,theme:h.theme,enterable:h.enterable,enterDelay:h.enterDelay,leaveDelay:h.leaveDelay,useHtml:h.useHtml,width:h.width,height:h.height,minWidth:h.minWidth,minHeight:h.minHeight,maxWidth:h.maxWidth,maxHeight:h.maxHeight,placement:h.placement,defaultPlacement:h.defaultPlacement,popupClassName:h.popupClassName},m?{content:()=>{var e=d.node;return m({node:e,$tree:J})}}:void 0):(0,_ui.renderEmptyElement)(J),(0,_vue.h)(_loading.default,{class:"vxe-tree--loading",modelValue:e,icon:u.icon,text:u.text},p?{default:()=>p({$tree:J})}:void 0)])},(0,_vue.provide)("$xeTree",J),J},render(){return this.renderVN()}});
1
+ 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"),_store=require("./store"),_xeUtils=_interopRequireDefault(require("xe-utils")),_vn=require("../../ui/src/vn"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_anime=require("../../ui/src/anime"),_loading=_interopRequireDefault(require("../../loading")),_tooltip=_interopRequireDefault(require("../../tooltip"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{warnLog,errLog}=(0,_log.createComponentLog)("tree"),{menus,getConfig,getI18n,getIcon}=_ui.VxeUI;function getNodeUniqueId(){return _xeUtils.default.uniqueId("node_")}function createInternalData(){return{treeFullData:[],afterTreeList:[],afterVisibleList:[],nodeMaps:{},selectCheckboxMaps:{},indeterminateNodeMaps:{},treeExpandedMaps:{},treeExpandLazyLoadedMaps:{},lastScrollLeft:0,lastScrollTop:0,scrollYStore:{startIndex:0,endIndex:0,visibleSize:0,offsetSize:0,rowHeight:0},removeNodeMaps:{},insertNodeMaps:{},lastScrollTime:0}}function createReactData(){return{parentHeight:0,customHeight:0,customMinHeight:0,customMaxHeight:0,currentNode:null,scrollYLoad:!1,bodyHeight:0,topSpaceHeight:0,selectRadioKey:null,treeList:[],updateExpandedFlag:1,updateCheckboxFlag:1,insertNodeFlag:1,removeNodeFlag:1,dragNode:null,dragTipText:"",isCrossDragNode:!1,tooltipStore:{visible:!1,node:null}}}let crossTreeDragNodeObj=null;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTree",props:{data:Array,autoResize:{type:Boolean,default:()=>getConfig().tree.autoResize},height:[String,Number],maxHeight:{type:[String,Number],default:()=>getConfig().tree.maxHeight},minHeight:{type:[String,Number],default:()=>getConfig().tree.minHeight},emptyText:{type:[String,Number],default:()=>getConfig().tree.emptyText},loading:Boolean,loadingConfig:Object,accordion:{type:Boolean,default:()=>getConfig().tree.accordion},childrenField:{type:String,default:()=>getConfig().tree.childrenField},valueField:{type:String,default:()=>getConfig().tree.valueField},keyField:{type:String,default:()=>getConfig().tree.keyField},parentField:{type:String,default:()=>getConfig().tree.parentField},titleField:{type:String,default:()=>getConfig().tree.titleField},hasChildField:{type:String,default:()=>getConfig().tree.hasChildField},mapChildrenField:{type:String,default:()=>getConfig().tree.mapChildrenField},transform:Boolean,isCurrent:Boolean,isHover:Boolean,expandAll:Boolean,expandNodeKeys:Array,showLine:{type:Boolean,default:()=>getConfig().tree.showLine},trigger:String,indent:{type:Number,default:()=>getConfig().tree.indent},showRadio:{type:Boolean,default:()=>getConfig().tree.showRadio},checkNodeKey:[String,Number],radioConfig:Object,showCheckbox:{type:Boolean,default:()=>getConfig().tree.showCheckbox},checkNodeKeys:Array,checkboxConfig:Object,nodeConfig:Object,lazy:Boolean,visibleMethod:Function,toggleMethod:Function,loadMethod:Function,showOverflow:{type:Boolean,default:()=>getConfig().tree.showOverflow},tooltipConfig:Object,drag:{type:Boolean,default:()=>getConfig().tree.drag},dragConfig:Object,menuConfig:Object,showIcon:{type:Boolean,default:!0},iconOpen:{type:String,default:()=>getConfig().tree.iconOpen},iconClose:{type:String,default:()=>getConfig().tree.iconClose},iconLoaded:{type:String,default:()=>getConfig().tree.iconLoaded},rootParentValue:{type:[String,Number],default:()=>getConfig().tree.rootParentValue},rootValues:{type:Array,default:()=>getConfig().tree.rootValues},filterValue:[String,Number],filterConfig:Object,size:{type:String,default:()=>getConfig().tree.size||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","node-dragstart","node-dragover","node-dragend","node-remove-dragend","node-insert-dragend","node-expand","node-menu","menu-click"],setup(R,r){let{emit:l,slots:H}=r;var o=_xeUtils.default.uniqueId();let T=(0,_ui.useSize)(R).computeSize,V=(0,_vue.ref)(),y=(0,_vue.ref)(),b=(0,_vue.ref)(),C=(0,_vue.ref)(),E=(0,_vue.ref)(),M=(0,_vue.ref)(),D=(0,_vue.ref)(),N=(0,_vue.ref)(),_=(0,_store.getCrossTreeDragNodeInfo)(),$=createInternalData(),P=(0,_vue.reactive)(createReactData()),i={refElem:V},ie=(0,_vue.computed)(()=>R.titleField||"title"),q=(0,_vue.computed)(()=>R.keyField||"id"),c=(0,_vue.computed)(()=>{var e=q.value;return R.valueField||e}),j=(0,_vue.computed)(()=>R.parentField||"parentId"),B=(0,_vue.computed)(()=>R.childrenField||"children"),z=(0,_vue.computed)(()=>R.mapChildrenField||"mapChildren"),K=(0,_vue.computed)(()=>R.hasChildField||"hasChild"),u=(0,_vue.computed)(()=>Object.assign({},getConfig().tree.virtualYConfig,R.virtualYConfig)),v=(0,_vue.computed)(()=>{var e=d.value.isCurrent;return _xeUtils.default.isBoolean(e)?e:R.isCurrent}),k=(0,_vue.computed)(()=>{var e=d.value.isHover;return _xeUtils.default.isBoolean(e)?e:R.isHover}),Y=(0,_vue.computed)(()=>Object.assign({showIcon:!0},getConfig().tree.radioConfig,R.radioConfig)),W=(0,_vue.computed)(()=>Object.assign({showIcon:!0},getConfig().tree.checkboxConfig,R.checkboxConfig)),d=(0,_vue.computed)(()=>Object.assign({},getConfig().tree.nodeConfig,R.nodeConfig)),I=(0,_vue.computed)(()=>Object.assign({},getConfig().tree.loadingConfig,R.loadingConfig)),X=(0,_vue.computed)(()=>Object.assign({},getConfig().tree.dragConfig,R.dragConfig)),G=(0,_vue.computed)(()=>Object.assign({},getConfig().tree.tooltipConfig,R.tooltipConfig)),p=(0,_vue.computed)(()=>Object.assign({},getConfig().tree.menuConfig,R.menuConfig)),S=(0,_vue.computed)(()=>{var e=R.indent,{customHeight:t,customMinHeight:r,customMaxHeight:a}=P,l=W.value.nodeStyle,o={};return t&&(o.height=(0,_dom.toCssUnit)(t)),r&&(o.minHeight=(0,_dom.toCssUnit)(r)),a&&(o.maxHeight=(0,_dom.toCssUnit)(a)),e&&(o["--vxe-ui-tree-node-indent"]=(0,_dom.toCssUnit)(e)),l&&({indeterminateColor:t,checkedColor:r}=l,t&&(o["--vxe-ui-tree-node-checkbox-indeterminate-color"]=t),r)&&(o["--vxe-ui-tree-node-checkbox-checked-color"]=r),o}),f=(0,_vue.computed)(()=>Object.assign({},getConfig().tree.filterConfig,R.filterConfig)),x={computeKeyField:q,computeParentField:j,computeChildrenField:B,computeMapChildrenField:z,computeRadioOpts:Y,computeCheckboxOpts:W,computeNodeOpts:d,computeDragOpts:X},J={xID:o,props:R,context:r,internalData:$,reactData:P,getRefMaps:()=>i,getComputeMaps:()=>x},Q=e=>{var t;return e?(t=c.value,e=_xeUtils.default.get(e,t),(0,_utils.enModelValue)(e)):""};let m=e=>{var t=P.selectRadioKey;return t===e};let se=e=>{var t=P.updateCheckboxFlag,r=$.selectCheckboxMaps;return!(!t||!r[e])};let ue=e=>{var t=P.updateCheckboxFlag,r=$.indeterminateNodeMaps;return!(!t||!r[e])};let g=e=>{l("update:checkNodeKeys",e)},n=e=>{l("update:checkNodeKey",e)},w=(e,r)=>{let a=$.nodeMaps;if(e){_xeUtils.default.isArray(e)||(e=[e]);let t=[];e.forEach(e=>{e=(0,_utils.enModelValue)(e),e=a[e];e&&t.push(e.item)}),L(t,r)}return(0,_vue.nextTick)()},L=(e,r)=>{var t=R.transform;let a=$.selectCheckboxMaps;var l=z.value,o=B.value,d=W.value.checkStrictly,n=e=>{var t=Q(e);r?a[t]||(a[t]=e):a[t]&&delete a[t]};d?e.forEach(n):_xeUtils.default.eachTree(e,n,{children:t?l:o}),P.updateCheckboxFlag++,oe()},a=(e,t,r)=>{t?r[e]||(r[e]=!0):r[e]&&delete r[e]},Z=(e,t,r)=>{l(e,(0,_ui.createEvent)(r,{$tree:J},t))},U=()=>{var e=V.value;return e?e.parentElement:null},O=e=>{var t=P.parentHeight,e=R[e];let r=0;return r=e?"100%"===e||"auto"===e?t:(r=(0,_dom.isScale)(e)?Math.floor((_xeUtils.default.toInteger(e)||1)/100*t):_xeUtils.default.toNumber(e),Math.max(40,r)):r},A=()=>{P.customHeight=O("height"),P.customMinHeight=O("minHeight"),P.customMaxHeight=O("maxHeight"),!P.scrollYLoad||P.customHeight||P.customMinHeight||(P.customHeight=300)},ee=()=>{var e=$.treeFullData;let n=c.value;var t=B.value;let i={};_xeUtils.default.eachTree(e,(e,t,r,a,l,o)=>{let d=Q(e);d||(d=getNodeUniqueId(),_xeUtils.default.set(e,n,d)),i[d]={item:e,index:t,$index:-1,_index:-1,items:r,parent:l,nodes:o,level:o.length-1,treeIndex:t,lineCount:0,treeLoaded:!1}},{children:t}),$.nodeMaps=i},te=()=>{var e=R.transform;let{afterTreeList:t,nodeMaps:i}=$;var r=B.value,a=z.value;let s=0;_xeUtils.default.eachTree(t,(e,t,r,a,l,o)=>{var d=Q(e),n=i[d];n?(n.items=r,n.treeIndex=t,n._index=s):(n={item:e,index:t,$index:-1,_index:s,items:r,parent:l,nodes:o,level:o.length-1,treeIndex:t,lineCount:0,treeLoaded:!1},i[d]=n),s++},{children:e?a:r})},F=()=>{var{transform:t,filterValue:r}=R,{treeFullData:a,lastFilterValue:e}=$;let l=ie.value;var o=B.value,d=z.value;let{autoExpandAll:n,beforeFilterMethod:i,filterMethod:s,afterFilterMethod:u}=f.value,c=a,v=c,g="";if(r||0===r){g=""+r;r=s?e=>s({$tree:J,node:e,filterValue:g}):e=>-1<String(e[l]).toLowerCase().indexOf(g.toLowerCase());let e={$tree:J,filterValue:g};i&&i(e),c=t?v=_xeUtils.default.searchTree(a,r,{original:!0,isEvery:!0,children:o,mapChildren:d}):a.filter(r),$.lastFilterValue=g,(0,_vue.nextTick)(()=>{n?J.setAllExpandNode(!0).then(()=>{u&&u(e)}):u&&u(e)})}else{if(t&&(v=_xeUtils.default.searchTree(a,()=>!0,{original:!0,isEvery:!0,children:o,mapChildren:d}),c=v,e)){let e={$tree:J,filterValue:g};i&&i(e),(0,_vue.nextTick)(()=>{n?J.clearAllExpandNode().then(()=>{u&&u(e)}):u&&u(e)})}$.lastFilterValue=""}$.afterVisibleList=c,$.afterTreeList=v,te()},h=()=>{var e=R.transform;let{afterTreeList:t,treeExpandedMaps:i}=$;var r=z.value;let s={};if(e){let n=[];return _xeUtils.default.eachTree(t,(e,t,r,a,l)=>{var o=Q(e),d=Q(l);(!l||s[d]&&i[d])&&(s[o]=1,n.push(e))},{children:r}),ve(n),$.afterVisibleList=n}return $.afterVisibleList},re=e=>{var t=P.scrollYLoad;let{scrollYStore:r,nodeMaps:a}=$,l=$.afterVisibleList;e&&(F(),l=h());e=t?l.slice(r.startIndex,r.endIndex):l.slice(0);e.forEach((e,t)=>{e=Q(e),e=a[e];e&&(e.$index=t)}),P.treeList=e},ce=_xeUtils.default.debounce(()=>re(!0),350,{trailing:!0}),t=e=>{let{expandAll:t,expandNodeKeys:r,transform:a,rootParentValue:l,rootValues:o}=R,{initialized:d,scrollYStore:n}=$;var i=q.value,s=j.value,u=B.value,i=a?_xeUtils.default.toArrayTree(e,{key:i,parentKey:s,mapChildren:u,rootParentValue:l,rootValues:o}):e?e.slice(0):[],s=($.treeFullData=i,$.insertNodeMaps={},P.insertNodeFlag++,$.removeNodeMaps={},P.removeNodeFlag++,Object.assign(n,{startIndex:0,endIndex:1,visibleSize:0}),ve(i));return ee(),re(!0),!s||R.height||R.maxHeight||errLog("vxe.error.reqProp",["height | max-height | virtual-y-config.enabled=false"]),he().then(()=>{d||e&&e.length&&($.initialized=!0,t?J.setAllExpandNode(!0):r&&r.length&&J.setExpandByNodeId(r,!0),w(R.checkNodeKeys||[],!0)),A();{let{lastScrollLeft:e,lastScrollTop:t}=$;me().then(()=>{if(e||t)return $.lastScrollLeft=0,$.lastScrollTop=0,scrollTo(e,t)})}})},ve=e=>{var t=R.transform,r=u.value,e=e||$.treeFullData,t=!!t&&!!r.enabled&&-1<r.gt&&(0===r.gt||r.gt<e.length);return P.scrollYLoad=t},ae=()=>{var e=P.scrollYLoad,{scrollYStore:t,afterVisibleList:r}=$;P.bodyHeight=e?r.length*t.rowHeight:0,P.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},ge=()=>{re(),ae()},he=()=>(0,_vue.nextTick)().then(()=>{var e=P.scrollYLoad,t=$.scrollYStore,r=E.value,a=u.value;let l=0,o;(o=r?o||r.children[0]:o)&&(l=o.offsetHeight),l=Math.max(20,l),t.rowHeight=l,(e?(r=C.value,e=Math.max(8,r?Math.ceil(r.clientHeight/l):0),r=Math.max(0,Math.min(2,_xeUtils.default.toNumber(a.oSize))),t.offsetSize=r,t.visibleSize=e,t.endIndex=Math.max(t.startIndex,e+r,t.endIndex),ge):ae)()}),pe=(e,t)=>{var r=C.value;return e&&!_xeUtils.default.isNumber(e)&&(t=e.top,e=e.left),r&&(_xeUtils.default.isNumber(e)&&(r.scrollLeft=e),_xeUtils.default.isNumber(t))&&(r.scrollTop=t),P.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},le=()=>{var e,t,r,a=$.scrollYStore,a=a.rowHeight,l=V.value;return l&&l.clientWidth&&l.clientHeight?(l=U(),e=y.value,t=b.value,e=e?e.clientHeight:0,t=t?t.clientHeight:0,l&&(r=(0,_dom.getPaddingTopBottomSize)(l),P.parentHeight=Math.max(e+t+a,l.clientHeight-r-e-t)),A(),he().then(()=>{A(),ae()})):(0,_vue.nextTick)()},fe=()=>{var e=$.scrollYStore,{startIndex:t,endIndex:r,visibleSize:a,offsetSize:l,rowHeight:o}=e,d=C.value;d&&(d=d.scrollTop,d=Math.floor(d/o),o=Math.max(0,d-1-l),l=d+a+l,!(d<=t||r-a-1<=d)||t===o&&r===l||(e.startIndex=o,e.endIndex=l,ge()))},xe=e=>{var t=e.target,r=t.scrollTop,t=t.scrollLeft,a=t!==$.lastScrollLeft,l=r!==$.lastScrollTop;$.lastScrollTop=r,$.lastScrollLeft=t,P.scrollYLoad&&fe(),$.lastScrollTime=Date.now(),Z("scroll",{scrollLeft:t,scrollTop:r,isX:a,isY:l},e)},me=()=>{var e=C.value;return e&&(e.scrollTop=0,e.scrollLeft=0),$.lastScrollTop=0,($.lastScrollLeft=0,_vue.nextTick)()},_e=(e,t)=>{var r=R.drag,a=$.nodeMaps,l=e.currentTarget,{trigger:o,isCrossDrag:d,isPeerDrag:n,disabledMethod:i}=X.value,s=Q(t);let u=r?"node"===o:!1;(0,_dom.getEventTargetNode)(e,l,"vxe-tree--node-item-switcher").flag||(r={node:t,$tree:J},o=a[s],!u)||!(d||n||o&&!o.level)||i&&i(r)||qe(e,{node:t})},Ce=(e,t)=>{var{showRadio:r,showCheckbox:a,trigger:l}=R,o=Y.value,d=W.value;let n=!1,i=!1,s=!1,u=!1;v.value?(n=!0,Se(e,t)):P.currentNode&&(P.currentNode=null),"node"===l&&(u=!0,ke(e,t)),r&&"node"===o.trigger&&(i=!0,we(e,t)),a&&"node"===d.trigger&&(s=!0,Ie(e,t)),Z("node-click",{node:t,triggerCurrent:n,triggerRadio:i,triggerCheckbox:s,triggerExpand:u},e)},Ne=(e,t)=>{Z("node-dblclick",{node:t},e)},Te=(a,l)=>{var o=N.value;if(o){var d=P.tooltipStore,n=$.tipTimeout,i=a.currentTarget,{showAll:s,contentMethod:u}=G.value,n=(n&&(clearTimeout(n),$.tipTimeout=void 0),i.querySelector(".vxe-tree--node-item-title")),i=i.querySelector(".vxe-tree--node-item-wrapper");if(i){var c=_xeUtils.default.toString(i.textContent).trim(),v=i.scrollWidth>i.clientWidth;let e=!1,t=null,r="";u&&(t=u({node:l,$event:a,$tree:J})),s?_xeUtils.default.eqNull(t)?(e=!0,r=c):""!==t&&!1!==t&&(e=!0,r=""+t):r=_xeUtils.default.eqNull(t)?(e=v,c):""!==t&&!1!==t?(e=!0,""+t):c,e&&r&&(u=(0,_utils.getText)(r),d.visible=!0,d.node=l,o.open)&&o.open((v?i:n)||i,u)}}},ye=()=>{let e=N.value;var t=G.value;e&&e.setActived&&e.setActived(!1),t.enterable?$.tipTimeout=setTimeout(()=>{(e=N.value)&&e.isActived&&!e.isActived()&&be(),$.tipTimeout=void 0},t.leaveDelay):be()},be=()=>{var e=P.tooltipStore;return e.visible&&(e.visible=!1,e.node=null,e=N.value)&&e.close(),(0,_vue.nextTick)()},Ee=(a,l)=>{var e=R.menuConfig,t=v.value,r=p.value;(e?(0,_utils.isEnableConf)(r):r.enabled)&&({options:e,visibleMethod:r}=r,r&&!r({$tree:J,options:e,node:l})||(t?Se(a,l):P.currentNode&&(P.currentNode=null),_ui.VxeUI.contextMenu&&_ui.VxeUI.contextMenu.openByEvent(a,{options:e,events:{optionClick(e){var t=e.option,r=menus.get(t.code),r=r?r.treeMenuMethod:null,t={menu:t,node:l,$event:a,$tree:J,option:t};r&&r(t,a),Z("menu-click",t,e.$event)}}}))),Z("node-menu",{node:l},a)},Me=o=>{var e=W.value;let r=R.loadMethod,d=e.checkStrictly;return new Promise(e=>{var t=$.nodeMaps;let a=Q(o),l=t[a];r?($.treeExpandLazyLoadedMaps[a]=!0,Promise.resolve(r({$tree:J,node:o})).then(r=>{var e=$.treeExpandLazyLoadedMaps;if(l&&(l.treeLoaded=!0),e[a]&&(e[a]=!1),r=_xeUtils.default.isArray(r)?r:[])return J.loadChildrenNode(o,r).then(e=>{var t=$.treeExpandedMaps;return e.length&&!t[a]&&(t[a]=!0),P.updateExpandedFlag++,!d&&J.isCheckedByCheckboxNodeId(a)&&L(e,!0),Z("load-success",{node:o,data:r},new Event("load-success")),(0,_vue.nextTick)()});Z("load-success",{node:o,data:r},new Event("load-success"))}).catch(e=>{var t=$.treeExpandLazyLoadedMaps;l&&(l.treeLoaded=!1),t[a]&&(t[a]=!1),Z("load-error",{node:o,data:e},new Event("load-error"))}).finally(()=>(h(),re(),le()))):(l&&(l.treeLoaded=!0),e())})},De=(e,t)=>{let{lazy:a,accordion:r,toggleMethod:l}=R,{treeExpandLazyLoadedMaps:o,treeExpandedMaps:d}=$,n=$.nodeMaps,i=B.value,s=K.value,u=[],c=l?e.filter(e=>l({$tree:J,expanded:t,node:e})):e;r&&(c=c.length?[c[c.length-1]]:[],e=Q(c[0]),e=n[e])&&e.items.forEach(e=>{e=Q(e);d[e]&&delete d[e]});let v=[];return t?c.forEach(e=>{var t,r=Q(e);d[r]||(t=n[r],a&&e[s]&&!t.treeLoaded&&!o[r]?u.push(Me(e)):e[i]&&e[i].length&&(d[r]=!0,v.push(e)))}):c.forEach(e=>{var t=Q(e);d[t]&&(delete d[t],v.push(e))}),P.updateExpandedFlag++,h(),re(),Promise.all(u).then(()=>le())},ke=(e,t)=>{var r=R.lazy,{treeExpandedMaps:a,treeExpandLazyLoadedMaps:l}=$,o=Q(t),a=!a[o];e.stopPropagation(),r&&l[o]||De([t],a),Z("node-expand",{node:t,expanded:a},e)},oe=()=>{var e=R.transform;let{selectCheckboxMaps:i,indeterminateNodeMaps:s,afterTreeList:t}=$,o=B.value;var r=z.value;let{checkStrictly:a,checkMethod:u}=W.value;if(!a){let a={},l=[];_xeUtils.default.eachTree(t,e=>{var t=Q(e),r=e[o];r&&r.length&&!a[t]&&(a[t]=1,l.unshift([e,t,r]))},{children:e?r:o}),l.forEach(e=>{var t=e[0],r=e[1],e=e[2];let a=0,l=0,o=0;var d=e.length;e.forEach(u?e=>{var t=Q(e),r=i[t];u({$tree:J,node:e})?(r?a++:s[t]&&l++,o++):r?a++:s[t]&&l++}:e=>{e=Q(e);i[e]?a++:s[e]&&l++,o++});let n=!1;e=!(n=0<d?0<o?(0<a||0<l)&&a>=o:0<a&&a>=o||!!i[r]:i[r])&&(0<a||0<l);n?(i[r]=t,s[r]&&delete s[r]):(i[r]&&delete i[r],e?s[r]=t:s[r]&&delete s[r])}),P.updateCheckboxFlag++}},Ie=(e,r)=>{e.preventDefault(),e.stopPropagation();var a=R.transform;let{selectCheckboxMaps:l,nodeMaps:t}=$;var o=B.value,d=z.value,{checkStrictly:n,checkMode:i,checkMethod:s}=W.value,u=Q(r),c=_xeUtils.default.get(r,o),c=c&&0<c.length,v=(t[u]||{}).level,s=s?!s({$tree:J,node:r}):!ne(i,c,v);if(!s){let t=!1;l[u]?delete l[u]:(t=!0,l[u]=r),n||_xeUtils.default.eachTree(_xeUtils.default.get(r,a?d:o),e=>{e=Q(e);t?l[e]||(l[e]=!0):l[e]&&delete l[e]},{children:a?d:o}),P.updateCheckboxFlag++,oe();i=_xeUtils.default.keys(l).map(_utils.deModelValue);g(i),Z("checkbox-change",{node:r,value:i,checked:t},e)}},Se=(e,t)=>{e.preventDefault();var{currentMethod:r,trigger:a}=d.value,l=B.value,l=_xeUtils.default.get(t,l),l=l&&l.length;let o=!!r;if("child"===a){if(l)return}else if("parent"===a&&!l)return;(o=r?!r({node:t}):o)||(P.currentNode=t,Z("current-change",{node:t,checked:!0},e))},we=(e,t)=>{e.preventDefault(),e.stopPropagation();var r=$.nodeMaps,a=Y.value,l=B.value,{checkMode:a,checkMethod:o}=a,d=Q(t),l=_xeUtils.default.get(t,l),l=l&&0<l.length,r=(r[d]||{}).level;(o?o({$tree:J,node:t}):ne(a,l,r))&&(o=(0,_utils.deModelValue)(d),P.selectRadioKey=d,n(o),Z("radio-change",{node:t,value:o,checked:!0},e))},Le=()=>{var e=V.value;e&&e.clientWidth&&le()},Ue=(e,t)=>{let{treeFullData:d,nodeMaps:n}=$,i=q.value,s=j.value,u=B.value,c=z.value,v=t?"push":"unshift";e.forEach(r=>{let t=r[s];var e=Q(r),a=t?_xeUtils.default.findTree(d,e=>t===e[i],{children:c}):null,l=(0,_util.getItemCacheObj)(r);if(a){var a=a.item,o=n[Q(a)],o=o?o.level:0;let e=a[u],t=a[c];_xeUtils.default.isArray(e)||(e=a[u]=[]),_xeUtils.default.isArray(t)||(t=a[c]=[]),l.parent=a,l.items=e,l.level=o,e[v](r),t[v](r)}else t&&warnLog("vxe.error.unableInsert"),d[v](r);n[e]=l})},s=(t,r,n)=>{var i=R.transform;let{treeFullData:e,nodeMaps:s,removeNodeMaps:a,insertNodeMaps:l}=$,u=q.value,c=j.value,v=B.value,g=z.value;if(!i)return errLog("vxe.error.reqSupportProp",["insert() | insertAt() | insertNextAt()","transform"]),Promise.resolve({node:null,nodes:[]});_xeUtils.default.isArray(t)||(t=[t]);let h=r;if((_xeUtils.default.isString(r)||_xeUtils.default.isNumber(r))&&(i=s[r])&&(h=i.item),!t.length)return Promise.resolve({node:null,nodes:[]});let o=t.map(e=>_xeUtils.default.assign({[g]:[],[v]:[]},e));r=_xeUtils.default.toArrayTree(o,{key:u,parentKey:c,children:v});if(_xeUtils.default.eqNull(h))Ue(o,!1);else if(-1===h)Ue(o,!0);else{let d=_xeUtils.default.findTree(e,e=>h[u]===e[u],{children:g});if(d){let a=d.parent,l=a?a[g]:e;i=s[Q(a)];let o=i?i.level:0;if(r.forEach((e,t)=>{a?e[c]!==a[u]&&(errLog("vxe.error.errProp",[c+"="+e[c],c+"="+a[u]]),e[c]=a[u]):null!==e[c]&&(_xeUtils.default.eqNull(e[c])||errLog("vxe.error.errProp",[c+"="+e[c],"null"]),e[c]=null);let r=d.index+t;n&&(r+=1),l.splice(r,0,e)}),_xeUtils.default.eachTree(r,e=>{var t=Q(e),r=(0,_util.getItemCacheObj)(e);r.level=o,e[v]&&(e[g]=e[v]),s[t]=r},{children:v}),a){t=_xeUtils.default.findTree(e,e=>h[u]===e[u],{children:v});if(t){i=t.items;let e=t.index;n&&(e+=1),i.splice(e,0,...r)}}}else warnLog("vxe.error.unableInsert"),Ue(o,!0)}return _xeUtils.default.eachTree(r,e=>{var t=Q(e);a[t]?(delete a[t],l[t]&&delete l[t]):l[t]=e},{children:g}),P.removeNodeFlag++,P.insertNodeFlag++,ee(),re(!0),te(),oe(),P.scrollYLoad&&ae(),(0,_vue.nextTick)().then(()=>({node:o.length?o[o.length-1]:null,nodes:o}))},Oe=(e,t,r,a)=>{var l=R.transform,o=$.nodeMaps;let d=q.value,n=j.value;if(!l)return errLog("vxe.error.reqSupportProp",["insertChild() | insertChildAt() | insertChildNextAt()","transform"]),Promise.resolve({node:null,nodes:[]});_xeUtils.default.isArray(e)||(e=[e]);let i=t;return(_xeUtils.default.isString(t)||_xeUtils.default.isNumber(t))&&(l=o[t])&&(i=l.item),s(e.map(e=>Object.assign({},e,{[n]:i[d]})),r,a)},Ae={dispatchEvent:Z,getNodeId:Q,getNodeById(e){var t=$.nodeMaps;if(e){t=t[e];if(t)return t.item}return null},loadData(e){return t(e||[])},reloadData(e){return t(e||[])},clearCurrentNode(){return(P.currentNode=null,_vue.nextTick)()},getCurrentNodeId(){var e=P.currentNode;return e?(0,_utils.deModelValue)(Q(e)):null},getCurrentNode(){var e=P.currentNode,t=$.nodeMaps;if(e){t=t[Q(e)];if(t)return t.item}return null},setCurrentNodeId(e){var t=$.nodeMaps,t=t[(0,_utils.enModelValue)(e)];return P.currentNode=t?t.item:null,(0,_vue.nextTick)()},setCurrentNode(e){return P.currentNode=e,(0,_vue.nextTick)()},clearRadioNode(){return P.selectRadioKey=null,n(null),(0,_vue.nextTick)()},getRadioNodeId(){return P.selectRadioKey||null},getRadioNode(){var e=P.selectRadioKey,t=$.nodeMaps;if(e){t=t[e];if(t)return t.item}return null},setRadioNodeId(e){return P.selectRadioKey=(0,_utils.enModelValue)(e),n(e),(0,_vue.nextTick)()},setRadioNode(e){return e?(e=Q(e),P.selectRadioKey=e,n((0,_utils.deModelValue)(e))):n(null),(0,_vue.nextTick)()},setCheckboxNode(e,t){return e&&(_xeUtils.default.isArray(e)||(e=[e]),L(e,t)),g(J.getCheckboxNodeIds()),(0,_vue.nextTick)()},setCheckboxByNodeId(e,t){return w(e,t),g(J.getCheckboxNodeIds()),(0,_vue.nextTick)()},getCheckboxNodeIds(){var e=$.selectCheckboxMaps;let r=[];return _xeUtils.default.each(e,(e,t)=>{r.push((0,_utils.deModelValue)(t))}),r},getCheckboxNodes(){return J.getCheckboxRecords()},getCheckboxRecords(){let{nodeMaps:r,selectCheckboxMaps:e}=$,a=[];return _xeUtils.default.each(e,(e,t)=>{t=r[t];t&&a.push(t.item)}),a},clearCheckboxNode(){return $.indeterminateNodeMaps={},$.selectCheckboxMaps={},P.updateCheckboxFlag++,g([]),oe(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:[],checkNodes:[]}))},setAllCheckboxNode(e){var t=R.transform,{afterTreeList:r,afterVisibleList:a}=$;let l={};var o=B.value,d=z.value;let n=[],i=[];return e&&_xeUtils.default.eachTree(t?r:a,e=>{var t=Q(e);n.push(t),i.push(e),l[t]=!0},{children:t?d:o}),$.indeterminateNodeMaps={},$.selectCheckboxMaps=l,P.updateCheckboxFlag++,oe(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:n,checkNodes:i}))},clearExpandNode(){return Ae.clearAllExpandNode()},clearAllExpandNode(){let e=P.scrollYLoad;var{nodeMaps:t,scrollYStore:r}=$;return _xeUtils.default.each(t,e=>{e.treeLoaded=!1}),$.treeExpandedMaps={},P.updateExpandedFlag++,P.topSpaceHeight=0,r.startIndex=0,r.endIndex=1,h(),re(),le().then(()=>(e&&fe(),le()))},setExpandByNodeId(e,t){let r=$.treeExpandedMaps;return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=(0,_utils.enModelValue)(e);a(e,t,r)}),P.updateExpandedFlag++),h(),re(),le()},getExpandNodeIds(){var e=$.treeExpandedMaps;let r=[];return _xeUtils.default.each(e,(e,t)=>{r.push((0,_utils.deModelValue)(t))}),r},getExpandNodes(){let{nodeMaps:r,treeExpandedMaps:e}=$,a=[];return _xeUtils.default.each(e,(e,t)=>{t=r[t];t&&a.push(t.item)}),a},setExpandNode(e,t){let r=$.treeExpandedMaps;return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=Q(e);a(e,t,r)}),P.updateExpandedFlag++),h(),re(),le()},toggleExpandByNodeId(e){let t=$.treeExpandedMaps;return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=(0,_utils.enModelValue)(e);a(e,!t[""+e],t)}),P.updateExpandedFlag++),h(),re(),le()},toggleExpandNode(e){let t=$.treeExpandedMaps;return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=Q(e);a(e,!t[e],t)}),P.updateExpandedFlag++),h(),re(),le()},setAllExpandNode(e){var t=R.transform;let r=P.scrollYLoad,{scrollYStore:a,treeExpandedMaps:l}=$,o=B.value;var d=z.value;return e?_xeUtils.default.eachTree($.afterTreeList,e=>{var t=_xeUtils.default.get(e,o);t&&t.length&&(t=Q(e),l[t]=!0)},{children:t?d:o}):$.treeExpandedMaps={},P.updateExpandedFlag++,P.topSpaceHeight=0,a.startIndex=0,a.endIndex=1,h(),re(),le().then(()=>(r&&fe(),le()))},reloadExpandNode(e){var t=R.lazy;return t?(Ae.clearExpandLoaded(e),Me(e)):le()},clearExpandLoaded(e){var t=R.lazy,r=$.nodeMaps;return t&&(t=r[Q(e)])&&(t.treeLoaded=!1),le()},loadChildrenNode(t,e){let{lazy:r,transform:a}=R,n=$.nodeMaps;if(!r)return Promise.resolve([]);let l=B.value,o=z.value,i=n[Q(t)],s=i?i.level:0,u=i?i.nodes:[];return(e=>{let r=c.value;return Promise.resolve(e.map(e=>{var t,e=Object.assign({},e);return Q(e)||(t=getNodeUniqueId(),_xeUtils.default.set(e,r,t)),e}))})(e).then(e=>(_xeUtils.default.eachTree(e,(e,t,r,a,l,o)=>{var d=Q(e);n[d]={item:e,index:-1,$index:-1,_index:-1,items:r,parent:l||i.item,nodes:u.concat(o),level:s+o.length,treeIndex:-1,lineCount:0,treeLoaded:!1}},{children:l}),t[l]=e,a&&(t[o]=e),te(),e))},isExpandByNode:e=>{var t=P.updateExpandedFlag,r=$.treeExpandedMaps,e=Q(e);return!(!t||!r[e])},isCheckedByRadioNodeId:m,isCheckedByRadioNode:e=>m(Q(e)),isCheckedByCheckboxNodeId:se,isIndeterminateByCheckboxNode:e=>ue(Q(e)),isCheckedByCheckboxNode:e=>se(Q(e)),getCheckboxIndeterminateNodes(){let{nodeMaps:r,indeterminateNodeMaps:e}=$,a=[];return _xeUtils.default.each(e,(e,t)=>{t=r[t];t&&a.push(t.item)}),a},recalculate:le,getFullData(){var e=$.treeFullData;return e.slice(0)},scrollTo:pe,scrollToNode(e){return J.scrollToNodeId(Q(e))},scrollToNodeId(t){var e=R.transform;let{scrollYStore:r,afterTreeList:a}=$;var l=B.value,o=z.value;let d=C.value;if(t&&d)if(e){e=_xeUtils.default.findTree(a,e=>Q(e)===t,{children:e?o:l});if(e)return J.setExpandNode(e.nodes,!0).then(()=>{var e=_xeUtils.default.findIndexOf($.afterVisibleList,e=>Q(e)===t);if(-1<e)return e=Math.max(0,(e-1)*r.rowHeight),pe(d.scrollLeft,e)})}else{o=d.querySelector(`.vxe-tree--node-wrapper[nodeid="${t}"]`);if(o)return pe(d.scrollLeft,o.offsetTop)}return le()},clearScroll:me,insert(e){return s(e,null)},insertAt(e,t){return s(e,t)},insertNextAt(e,t){return s(e,t,!0)},insertChild(e,t){return Oe(e,t,null)},insertChildAt(e,t,r){return Oe(e,t,r)},insertChildNextAt(e,t,r){return Oe(e,t,r,!0)},getInsertRecords(){var e=$.insertNodeMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},isInsertByNode(e){e=Q(e);return!!P.insertNodeFlag&&!!$.insertNodeMaps[e]},remove(e){var t=R.transform;let{treeFullData:r,insertNodeMaps:a,removeNodeMaps:l}=$,o=B.value,d=z.value;if(!t)return errLog("vxe.error.reqSupportProp",["remove()","transform"]),Promise.resolve({node:null,nodes:[]});let n=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=r,e.length?(e.forEach(e=>{var t;J.isInsertByNode(e)||(t=Q(e),l[t]=e)}),r===e?(e=n=r.slice(0),$.treeFullData=[]):e.forEach(e=>{let t=Q(e);var e=_xeUtils.default.findTree(r,e=>t===Q(e),{children:d}),e=(e&&(e=e.items.splice(e.index,1),n.push(e[0])),_xeUtils.default.findTree(r,e=>t===Q(e),{children:o}));e&&(e=e.items.splice(e.index,1),n.push(e[0]))}),e.forEach(e=>{e=Q(e);a[e]&&delete a[e]}),P.removeNodeFlag++,P.insertNodeFlag++,ee(),re(!0),te(),oe(),P.scrollYLoad&&ae(),(0,_vue.nextTick)().then(()=>le()).then(()=>({node:n.length?n[n.length-1]:null,nodes:n}))):Promise.resolve({node:null,nodes:[]})},getRemoveRecords(){var e=$.removeNodeMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},isRemoveByNode(e){e=Q(e);return!!P.removeNodeFlag&&!!$.removeNodeMaps[e]},closeTooltip:be,getRecordset(){return{insertRecords:J.getInsertRecords(),removeRecords:J.getRemoveRecords()}}},de=()=>{ze(),$e(),le()},Fe=()=>{var e=V.value;if(e){let t="node--drag-origin";_xeUtils.default.arrayEach(e.querySelectorAll("."+t),e=>{(e.draggable=!1,_dom.removeClass)(e,t)})}},He=e=>{var t=V.value;if(t){e=Q(e);_xeUtils.default.arrayEach(t.querySelectorAll(`.vxe-tree--node-wrapper[nodeid="${e}"]`),e=>{(0,_dom.addClass)(e,"node--drag-origin")})}},Re=e=>{var t=P.dragNode,r=X.value.tooltipMethod;let a="";a=r?""+(r({$tree:J,node:t})||""):getI18n("vxe.tree.dragTip",[e.textContent||""]),P.dragTipText=a},Ve=()=>{var e=D.value,t=M.value;e&&(e.style.display=""),t&&(t.style.display="")},$e=()=>{crossTreeDragNodeObj=null,_.node=null},Pe=()=>{var e=P.dragNode;e&&(Ve(),Fe(),$e(),P.dragNode=null)},qe=(e,t)=>{e.stopPropagation();var r=t.node,{isCrossTreeDrag:a,trigger:l,dragStartMethod:o}=X.value,d=e.currentTarget,l="node"===l?d:d.parentElement.parentElement;Fe(),o&&!o(t)?(l.draggable=!1,P.dragNode=null,$e(),Ve()):(a&&(_.node=r,crossTreeDragNodeObj={$oldTree:J,$newTree:null}),P.dragNode=r,P.isCrossDragNode=!1,l.draggable=!0,He(r),Re(l),Z("node-dragstart",t,e))},je=()=>{Pe()},Be=(e,t,r,a)=>{var l=V.value;if(l){var o=$.prevDragToChild,d=l.getBoundingClientRect(),n=l.clientHeight;if(t){var i=M.value;if(i)if(r){var s=t.getBoundingClientRect();let e=t.clientHeight;t=Math.max(1,s.y-d.y);t+e>n&&(e=n-t),i.style.display="block",i.style.top=t+"px",i.style.height=e+"px",i.setAttribute("drag-pos",a),i.setAttribute("drag-to-child",o?"y":"n")}else i.style.display=""}s=D.value;s&&(s.style.display="block",s.style.top=Math.min(l.clientHeight-l.scrollTop-s.clientHeight,e.clientY-d.y)+"px",s.style.left=Math.min(l.clientWidth-l.scrollLeft-s.clientWidth-1,e.clientX-d.x)+"px",s.setAttribute("drag-status",r?o?"sub":"normal":"disabled"))}},ze=()=>{var e=V.value;Ve(),Fe(),(0,_anime.clearRowAnimate)(e,[".vxe-tree--node-wrapper"]),$.prevDragToChild=!1,P.dragNode=null},Ke=(v,g,h,p,e)=>{let f=R.transform,{nodeMaps:x,treeFullData:m,afterVisibleList:_}=$;var C=X.value;let{animation:N,isCrossDrag:T,isPeerDrag:y,isSelfToChildDrag:b,dragEndMethod:t,dragToChildMethod:E}=C;C=t||(C?C.dragEndMethod:null);let M=q.value,D=j.value,k=B.value,I=z.value,S="bottom"===p?1:0,w=V.value,L={status:!1};if(w&&h&&g&&h!==g){var U={oldNode:g,newNode:h,dragNode:g,dragPos:p,dragToChild:!!e,offsetIndex:S};let r=Q(g);var O=x[r]||{};let s=O._index;var A=Q(h);let u=0,c=-1,a=(N&&(F=w.querySelector(`.vxe-tree--node-wrapper[nodeid="${A}"]`),H=w.querySelector(`.vxe-tree--node-wrapper[nodeid="${r}"]`),(F=F||H)&&(u=F.offsetHeight),H)&&(c=H.offsetTop),-1),l=-1,t={},o=!1,d=O,n=x[A];if(f&&d&&n){var F=d.level,H=n.level;if(_xeUtils.default.eachTree([g],e=>{t[Q(e)]=e},{children:I}),F&&H)if(y&&!T){if(d.item[D]!==n.item[D])return de(),L}else{if(!T)return de(),L;if(t[A]&&(o=!0,!T||!b))return _ui.VxeUI.modal&&_ui.VxeUI.modal.message({status:"error",content:getI18n("vxe.error.treeDragChild")}),de(),L}else if(F){if(!T)return de(),L}else if(H){if(!T)return de(),L;if(t[A]&&(o=!0,!T||!b))return _ui.VxeUI.modal&&_ui.VxeUI.modal.message({status:"error",content:getI18n("vxe.error.treeDragChild")}),de(),L}}let i=b&&E?E(U):e;return Promise.resolve(!C||C(U)).then(e=>{var t;return e?(f?d&&n&&(e=_xeUtils.default.toTreeArray($.afterTreeList,{updated:!1,key:M,parentKey:D,children:I}),t=J.findNodeIndexOf(e,g),e.splice(t,1),t=J.findNodeIndexOf(e,h)+S,e.splice(t,0,g),o&&T&&b&&_xeUtils.default.each(g[k],e=>{e[D]=g[D]}),g[D]=i?h[M]:h[D],$.treeFullData=_xeUtils.default.toArrayTree(e,{key:M,parentKey:D,children:k,mapChildren:I})):(a=J.findNodeIndexOf(_,g),t=J.findNodeIndexOf(m,g),_.splice(a,1),m.splice(t,1),e=J.findNodeIndexOf(_,h),t=J.findNodeIndexOf(m,h),l=e+S,e=t+S,_.splice(l,0,g),m.splice(e,0,g)),ee(),re(f),f||te(),oe(),P.scrollYLoad&&ae(),v&&Z("node-dragend",{oldNode:g,newNode:h,dragNode:g,dragPos:p,dragToChild:i,offsetIndex:S,_index:{newIndex:l,oldIndex:a}},v),(0,_vue.nextTick)().then(()=>{if(N){var a=P.treeList,l=$.nodeMaps,o=l[r],d=o._index,n=a[0],l=l[Q(n)],n=w;if(l){var l=l._index,i=l+a.length;let e=-1,t=-1,r=1;s<l?(e=0,t=d-l):s>i?(i=o.$index,e=i+1,t=a.length,r=-1):d>s?(e=s-l,t=e+d-s):(e=d-l,t=e+s-d+1,r=-1);o=a.slice(e,t);if(o.length){let t=[];o.forEach(e=>{e=Q(e);t.push(`.vxe-tree--node-wrapper[nodeid="${e}"]`)});i=n.querySelectorAll(t.join(","));(0,_anime.moveRowAnimateToTb)(i,r*u)}}l=[`.vxe-tree--node-wrapper[nodeid="${r}"]`],d=n.querySelectorAll(l.join(",")),a=d[0];-1<c&&a&&(0,_anime.moveRowAnimateToTb)(d,c-a.offsetTop)}le()}).then(()=>({status:!0}))):L}).catch(()=>L).then(e=>(de(),e))}return de(),Promise.resolve(L)},Ye=e=>{e.dataTransfer&&e.dataTransfer.setDragImage((0,_dom.getTpImg)(),0,0)},We=e=>{var t=R.lazy,r=P.dragNode,{nodeMaps:a,prevDragNode:l,prevDragPos:o,prevDragToChild:d}=$,n=K.value,{isCrossDrag:i,isCrossTreeDrag:s}=X.value;if(s&&crossTreeDragNodeObj){s=crossTreeDragNodeObj.$newTree;if(s&&s.xID!==J.xID)return void(i&&s.handleCrossTreeNodeDragInsertEvent(e))}t&&d&&(i=a[Q(l)],l[n])&&(!i||!i.treeLoaded)||Ke(e,r,l,o,d)},Xe=e=>{var{lazy:t,transform:r}=R,a=P.dragNode,l=$.nodeMaps,o=X.value,d=j.value,n=K.value,{isCrossTreeDrag:o,isCrossDrag:i,isPeerDrag:s,isToChildDrag:u}=o,c=(a||i||e.preventDefault(),(0,_dom.hasControlKey)(e)),v=e.currentTarget,g=v.getAttribute("nodeid")||"",l=l[g];if(l){e.preventDefault();var h=l.item,p=e.clientY-v.getBoundingClientRect().y<v.clientHeight/2?"top":"bottom";if($.prevDragToChild=!!(r&&i&&u&&c),$.prevDragNode=h,$.prevDragPos=p,o&&i&&crossTreeDragNodeObj){var{$oldTree:u,$newTree:o}=crossTreeDragNodeObj;if(u){var f=u.reactData;if(u.xID===J.xID)o&&o.hideCrossTreeNodeDropClearStatus(),P.isCrossDragNode=!1,f.isCrossDragNode=!1,crossTreeDragNodeObj.$newTree=null;else if(i)return o&&o.xID!==J.xID&&o.hideCrossTreeNodeDropClearStatus(),u.hideCrossTreeNodeDropClearStatus(),f.isCrossDragNode=!0,P.dragTipText=f.dragTipText,crossTreeDragNodeObj.$newTree=J,void Be(e,v,!0,p)}}a&&Q(a)===g||c&&t&&h[n]&&l&&!l.treeLoaded||!i&&r&&(s?a[d]!==h[d]:l.level)?Be(e,v,!1,p):(Be(e,v,!0,p),Z("node-dragover",{oldRNode:a,targetNode:h,dragPos:p},e))}};o={handleData:re,cacheNodeMap:ee,updateAfterDataIndex:te,updateCheckboxStatus:oe,updateYSpace:ae,findNodeIndexOf(e,t){return t?_xeUtils.default.findIndexOf(e,e=>J.eqNode(e,t)):-1},eqNode(e,t){return!(!e||!t||e!==t&&Q(e)!==Q(t))},handleCrossTreeNodeDragCancelEvent(){ze(),$e()},handleCrossTreeNodeDragFinishEvent(t){var l=P.treeList,o=$.nodeMaps;let{animation:d,isCrossTreeDrag:e}=X.value;var n=z.value;let i=V.value;if(i&&e&&crossTreeDragNodeObj&&_){var s=_.node;if(s){var u=Q(s),o=o[u];let r=0,e=-1,a=(o&&(d&&(u=i.querySelector(`.vxe-tree--node-wrapper[nodeid="${u}"]`))&&(r=u.offsetHeight),e=o.$index),-1<e&&e<l.length-1?l.slice(e+1):[]);u=_xeUtils.default.toTreeArray([s],{updated:!0,children:n});J.remove(u).then(()=>{if(d&&r&&a.length){var e=i;let t=[];a.forEach(e=>{e=Q(e);t.push(`.vxe-tree--node-wrapper[nodeid="${e}"]`)});e=e.querySelectorAll(t.join(","));(0,_anime.moveRowAnimateToTb)(e,r)}}),Z("node-remove-dragend",{node:s},t),de()}}},handleCrossTreeNodeDragoverEmptyEvent(e){var t,r=P.treeList,a=X.value.isCrossTreeDrag;a&&crossTreeDragNodeObj&&!r.length&&({$oldTree:a,$newTree:r}=crossTreeDragNodeObj,a)&&(t=a).xID!==J.xID&&(r&&r.xID!==J.xID&&r.hideCrossTreeNodeDropClearStatus(),e.preventDefault(),a.hideCrossTreeNodeDropClearStatus(),crossTreeDragNodeObj.$newTree=J,$.prevDragNode=null,P.dragTipText=t.dragTipText,Be(e,e.currentTarget,!0,""))},handleCrossTreeNodeDragInsertEvent(s){let{prevDragNode:u,prevDragPos:c,prevDragToChild:e}=$;let{animation:v,isSelfToChildDrag:t,isCrossTreeDrag:r,dragEndMethod:g,dragToChildMethod:h}=X.value,p=j.value,f=z.value,x=B.value;if(r&&crossTreeDragNodeObj&&_){let d=_.node,n=crossTreeDragNodeObj.$oldTree,i=V.value;if(i&&(n&&d)){let o=d,r=-1;u&&(r="bottom"===c?1:0);var m={oldNode:o,newNode:u,dragNode:o,dragPos:c,dragToChild:!!e,offsetIndex:r};let a=t&&h?h(m):e,l={status:!1};Promise.resolve(!g||g(m)).then(e=>{if(!e)return n&&n.xID!==J.xID&&n.handleCrossTreeNodeDragCancelEvent(s),de(),l;let t=Promise.resolve();e=_xeUtils.default.toTreeArray([o],{updated:!0,children:f});n.handleCrossTreeNodeDragFinishEvent(s),u?o[p]=u[p]:o[p]=null,e.forEach(e=>{e[x]=void 0,e[f]=void 0}),t=u?"bottom"===c?J.insertNextAt(e,u):J.insertAt(e,u):J.insert(e),J.dispatchEvent("node-insert-dragend",{oldNode:d,newNode:u,dragNode:o,dragPos:c,dragToChild:a,offsetIndex:r},s),ze(),t.then(()=>{var e=P.treeList,r=$.nodeMaps,a=Q(o),r=r[a];let l=0,t=-1;r&&(v&&(a=i.querySelector(`.vxe-tree--node-wrapper[nodeid="${a}"]`))&&(l=a.offsetHeight),t=r.$index);a=-1<t?e.slice(t):[];if(v&&l&&a.length){r=i;let t=[];a.forEach(e=>{e=Q(e);t.push(`.vxe-tree--node-wrapper[nodeid="${e}"]`)});e=r.querySelectorAll(t.join(","));(0,_anime.moveRowAnimateToTb)(e,-l)}})})}}},hideCrossTreeNodeDropClearStatus(){Ve()}};Object.assign(J,Ae,o);let Ge=(e,t)=>{var{drag:r,transform:a}=R,l=$.nodeMaps,{showIcon:o,isPeerDrag:d,isCrossDrag:n,visibleMethod:i}=X.value;let s={node:e,$tree:J};if(r&&o&&a&&(!i||i(s))){e=l[t];if(e&&(d||n||!e.level)){var{icon:r,trigger:o,disabledMethod:a}=X.value;let t=a&&a(s);i={};return"node"!==o&&(i.onMousedown=e=>{t||qe(e,s)},i.onMouseup=je),(0,_vue.h)("div",Object.assign({class:["vxe-tree--drag-handle",{"is--disabled":t}]},i),[(0,_vue.h)("i",{class:r||getIcon().TREE_DRAG})])}}return(0,_ui.renderEmptyElement)(J)},ne=(e,t,r)=>{if(e){if("first"===e)return!r;if("last"===e)return!t}return!0},Je=(t,e,r,a,l,o)=>{var d=R.showRadio,{showIcon:n,visibleMode:i,visibleMethod:s}=Y.value,s=s?s({$tree:J,node:t}):ne(i,r,a);return d&&n&&s?(0,_vue.h)("div",{class:["vxe-tree--radio-option",{"is--checked":o,"is--disabled":l}],onClick:e=>{l||we(e,t)}},[(0,_vue.h)("span",{class:["vxe-radio--icon",o?getIcon().RADIO_CHECKED:l?getIcon().RADIO_DISABLED_UNCHECKED:getIcon().RADIO_UNCHECKED]})]):(0,_ui.renderEmptyElement)(J)},Qe=(t,e,r,a,l,o,d)=>{var n=R.showCheckbox,{showIcon:i,visibleMode:s,visibleMethod:u}=W.value,u=u?u({$tree:J,node:t}):ne(s,r,a);return n&&i&&u?(0,_vue.h)("div",{class:["vxe-tree--checkbox-option",{"is--checked":o,"is--indeterminate":d,"is--disabled":l}],onClick:e=>{l||Ie(e,t)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",d?getIcon().CHECKBOX_INDETERMINATE:o?getIcon().CHECKBOX_CHECKED:l?getIcon().CHECKBOX_DISABLED_UNCHECKED:getIcon().CHECKBOX_UNCHECKED]})]):(0,_ui.renderEmptyElement)(J)},Ze=(t,e)=>{var{lazy:r,drag:a,transform:l,showRadio:o,showCheckbox:d,showLine:n,visibleMethod:i,iconOpen:s,iconClose:u,iconLoaded:c,showIcon:v}=R,{currentNode:g,selectRadioKey:h,updateExpandedFlag:p}=P,{afterTreeList:f,nodeMaps:x,treeExpandedMaps:m,treeExpandLazyLoadedMaps:_}=$,C=G.value.mode,N=Y.value,T=W.value,y=B.value,b=ie.value,F=K.value,y=_xeUtils.default.get(t,y),y=y&&0<y.length,E=H.icon,M=H.title,D=H.extra,p=p&&m[e],m=x[e]||{},x=(0,_utils.getText)(_xeUtils.default.get(t,b)),b=m.level;let k=!1,I=!1,S=(o&&(k=e===String(h),I=N.checkMethod?!N.checkMethod({$tree:J,node:t}):!ne(N.checkMode,y,b)),!1),w=!1,L=!1,U=(d&&(S=se(e),w=ue(e),L=T.checkMethod?!T.checkMethod({$tree:J,node:t}):!ne(T.checkMode,y,b)),!1),O=!1,A=!1;r&&(O=!!_[e],U=t[F],A=!!m.treeLoaded);o=m.items[m.treeIndex-1],h={node:t,isExpand:p,$tree:J},N={onMousedown(e){_e(e,t)},onMouseup:je,onClick(e){Ce(e,t)},onDblclick(e){Ne(e,t)},onContextmenu(e){Ee(e,t)}};return"tooltip"===C&&(N.onMouseenter=e=>{Te(e,t)},N.onMouseleave=ye),a&&l&&(N.onDragstart=Ye,N.onDragend=We,N.onDragover=Xe),(0,_vue.h)("div",Object.assign({key:e,class:["vxe-tree--node-wrapper","node--level-"+b],nodeid:e,title:"title"===C?x:""},N),[(0,_vue.h)("div",{class:["vxe-tree--node-item",{"is--current":g&&e===Q(g),"is-radio--disabled":I,"is-radio--checked":k,"is-checkbox--disabled":L,"is-checkbox--checked":S,"is-checkbox--indeterminate":w}]},[n?(0,_vue.h)("div",{class:"vxe-tree--node-line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--node-line",style:{height:`${Q(f[0])===e?1:(0,_util.calcTreeLine)(J,t,o)}px`}})]):(0,_ui.renderEmptyElement)(J),(0,_vue.h)("div",{class:"vxe-tree--node-item-switcher"},v&&(!r||A?y:U)&&(!i||i(h))?[(0,_vue.h)("div",{class:"vxe-tree--node-item-icon",onClick(e){ke(e,t)}},E?(0,_vn.getSlotVNs)(E(h)):[(0,_vue.h)("i",{class:O?c||getIcon().TREE_NODE_LOADED:p?s||getIcon().TREE_NODE_OPEN:u||getIcon().TREE_NODE_CLOSE})])]:[]),Je(t,e,y,b,I,k),Qe(t,e,y,b,L,S,w),Ge(t,e),(0,_vue.h)("div",{class:"vxe-tree--node-item-inner"},[(0,_vue.h)("div",{class:"vxe-tree--node-item-wrapper"},[(0,_vue.h)("span",{class:"vxe-tree--node-item-title"},M?(0,_vn.getSlotVNs)(M(h)):x)]),D?(0,_vue.h)("div",{class:"vxe-tree--node-item-extra"},(0,_vn.getSlotVNs)(D(h))):(0,_ui.renderEmptyElement)(J)])])])},et=e=>{var{loading:t,transform:r,emptyText:a}=R;let l=$.treeExpandedMaps,o=B.value;var d=H.empty;if(!t&&!e.length)return[(0,_vue.h)("div",{class:"vxe-tree--empty-placeholder"},d?d({}):[(0,_vue.h)("div",{class:"vxe-tree--empty-placeholder-content"},(0,_utils.getText)(a||getI18n("vxe.tree.searchEmpty")))])];let n=[];return e.forEach(r?e=>{var t=Q(e);n.push(Ze(e,t))}:e=>{var t=Q(e),e=(n.push(Ze(e,t)),_xeUtils.default.get(e,o));e&&e.length&&l[t]&&n.push(...et(e))}),n};let e=(0,_vue.ref)(0),tt=((0,_vue.watch)(()=>R.data?R.data.length:0,()=>{e.value++}),(0,_vue.watch)(()=>R.data,()=>{e.value++}),(0,_vue.watch)(()=>R.rootParentValue,()=>{e.value++}),(0,_vue.watch)(()=>R.rootValues?R.rootValues.length:0,()=>{e.value++}),(0,_vue.watch)(()=>R.rootValues,()=>{e.value++}),(0,_vue.watch)(e,()=>{t(R.data||[])}),(0,_vue.watch)(()=>R.checkNodeKey,e=>{P.selectRadioKey=(0,_utils.enModelValue)(e)}),(0,_vue.ref)(0)),rt=((0,_vue.watch)(()=>R.checkNodeKeys?R.checkNodeKeys.length:0,()=>{tt.value++}),(0,_vue.watch)(()=>R.checkNodeKeys,()=>{tt.value++}),(0,_vue.watch)(tt,()=>{var e;e=R.checkNodeKeys||[],$.selectCheckboxMaps={},w(e,!0)}),(0,_vue.watch)(()=>R.filterValue,()=>{ce(new Event("filter"))}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>R.height,()=>{rt.value++}),(0,_vue.watch)(()=>R.minHeight,()=>{rt.value++}),(0,_vue.watch)(()=>R.maxHeight,()=>{rt.value++}),(0,_vue.watch)(rt,()=>{le()}),(0,_vue.onMounted)(()=>{var{transform:e,drag:t,menuConfig:r,showOverflow:a,lazy:l,loadMethod:o}=R,d=X.value,a=(a||errLog("vxe.error.errProp",["show-overflow=false","show-overflow=true"]),t&&!e&&errLog("vxe.error.notSupportProp",["drag","transform=false","transform=true"]),d.isCrossTreeDrag&&!d.isCrossDrag&&errLog("vxe.error.reqSupportProp",["drag-config.isCrossTreeDrag","drag-config.isCrossDrag"]),l&&!o&&warnLog("vxe.error.reqSupportProp",["lazy","load-method"]),_ui.VxeUI.getComponent("VxeContextMenu"));r&&!a&&errLog("vxe.error.reqComp",["vxe-context-menu"]),R.autoResize&&(t=V.value,e=U(),d=_ui.globalResize.create(()=>{R.autoResize&&le()}),t&&d.observe(t),e&&d.observe(e),$.resizeObserver=d),le(),_ui.globalEvents.on(J,"resize",Le)}),(0,_vue.onBeforeUnmount)(()=>{var e=$.resizeObserver;e&&e.disconnect(),_ui.globalEvents.off(J,"resize"),_xeUtils.default.assign(P,createReactData()),_xeUtils.default.assign($,createInternalData())}),P.selectRadioKey=(0,_utils.enModelValue)(R.checkNodeKey),t(R.data||[]),J.renderVN=()=>{var{loading:e,trigger:t,showLine:r}=R;let{bodyHeight:a,topSpaceHeight:l,treeList:o,tooltipStore:d}=P;var n=T.value,i=Y.value,s=W.value,u=I.value,c=k.value,v=S.value,g=X.value,h=G.value;let p=H.loading;var f=H.header,x=H.footer;let m=H.tooltip;var _={};return g.isCrossTreeDrag&&!o.length&&(_.onDragover=J.handleCrossTreeNodeDragoverEmptyEvent),(0,_vue.h)("div",Object.assign({ref:V,class:["vxe-tree",{["size--"+n]:n,"show--line":r,"checkbox--highlight":s.highlight,"radio--highlight":i.highlight,"node--hover":c,"node--trigger":"node"===t,"is--loading":e}]},_),[f?(0,_vue.h)("div",{ref:y,class:"vxe-tree--header-wrapper"},f({$tree:J})):(0,_ui.renderEmptyElement)(J),(0,_vue.h)("div",{ref:C,class:"vxe-tree--node-list-wrapper",style:v,onScroll:xe},[(0,_vue.h)("div",{class:"vxe-tree--y-space",style:{height:a?a+"px":""}}),(0,_vue.h)("div",{ref:E,class:"vxe-tree--node-list-body",style:{transform:`translateY(${l}px)`}},et(o))]),x?(0,_vue.h)("div",{ref:b,class:"vxe-tree--footer-wrapper"},x({$tree:J})):(0,_ui.renderEmptyElement)(J),(()=>{var e=R.drag,{dragNode:t,dragTipText:r}=P,a=X.value;return e?(0,_vue.h)("div",{class:"vxe-tree--drag-wrapper"},[(0,_vue.h)("div",{ref:M,class:["vxe-tree--drag-node-line",{"is--guides":a.showGuidesStatus}]}),t&&a.showDragTip?(0,_vue.h)("div",{ref:D,class:"vxe-tree--drag-sort-tip"},[(0,_vue.h)("div",{class:"vxe-tree--drag-sort-tip-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--drag-sort-tip-status"},[(0,_vue.h)("span",{class:["vxe-tree--drag-sort-tip-normal-status",getIcon().TREE_DRAG_STATUS_NODE]}),(0,_vue.h)("span",{class:["vxe-tree--drag-sort-tip-sub-status",getIcon().TREE_DRAG_STATUS_SUB_NODE]}),(0,_vue.h)("span",{class:["vxe-tree--drag-sort-tip-disabled-status",getIcon().TREE_DRAG_DISABLED]})]),(0,_vue.h)("div",{class:"vxe-tree--drag-sort-tip-content"},r)])]):(0,_ui.renderEmptyElement)(J)]):(0,_ui.renderEmptyElement)(J)})(),"tooltip"===h.mode?(0,_vue.h)(_tooltip.default,{ref:N,theme:h.theme,enterable:h.enterable,enterDelay:h.enterDelay,leaveDelay:h.leaveDelay,useHtml:h.useHtml,width:h.width,height:h.height,minWidth:h.minWidth,minHeight:h.minHeight,maxWidth:h.maxWidth,maxHeight:h.maxHeight,placement:h.placement,defaultPlacement:h.defaultPlacement,popupClassName:h.popupClassName},m?{content:()=>{var e=d.node;return m({node:e,$tree:J})}}:void 0):(0,_ui.renderEmptyElement)(J),(0,_vue.h)(_loading.default,{class:"vxe-tree--loading",modelValue:e,icon:u.icon,text:u.text},p?{default:()=>p({$tree:J})}:void 0)])},(0,_vue.provide)("$xeTree",J),J},render(){return this.renderVN()}});