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.
- package/dist/all.esm.js +212 -224
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/button-group/style.css +1 -1
- package/es/button-group/style.min.css +1 -1
- package/es/color-picker/src/color-picker.js +7 -2
- package/es/icon/style.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tooltip/src/tooltip.js +80 -134
- package/es/tree/src/tree.js +2 -2
- package/es/ui/index.js +4 -4
- package/es/ui/src/dom.js +118 -81
- package/es/ui/src/log.js +1 -1
- package/es/vxe-button-group/style.css +1 -1
- package/es/vxe-button-group/style.min.css +1 -1
- package/lib/button-group/style/style.css +1 -1
- package/lib/button-group/style/style.min.css +1 -1
- package/lib/color-picker/src/color-picker.js +10 -2
- package/lib/color-picker/src/color-picker.min.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/index.umd.js +220 -227
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tooltip/src/tooltip.js +91 -140
- package/lib/tooltip/src/tooltip.min.js +1 -1
- package/lib/tree/src/tree.js +2 -1
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/ui/index.js +4 -4
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/dom.js +113 -79
- package/lib/ui/src/dom.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-button-group/style/style.css +1 -1
- package/lib/vxe-button-group/style/style.min.css +1 -1
- package/package.json +3 -2
- package/packages/color-picker/src/color-picker.ts +7 -2
- package/packages/tooltip/src/tooltip.ts +83 -134
- package/packages/tree/src/tree.ts +2 -2
- package/packages/ui/index.ts +3 -3
- package/packages/ui/src/dom.ts +128 -83
- package/styles/components/button-group.scss +4 -2
- package/types/components/color-picker.d.ts +2 -0
- package/types/components/table.d.ts +6 -0
- package/types/components/tooltip.d.ts +4 -0
- /package/es/icon/{iconfont.1787137259915.ttf → iconfont.1787216141017.ttf} +0 -0
- /package/es/icon/{iconfont.1787137259915.woff → iconfont.1787216141017.woff} +0 -0
- /package/es/icon/{iconfont.1787137259915.woff2 → iconfont.1787216141017.woff2} +0 -0
- /package/es/{iconfont.1787137259915.ttf → iconfont.1787216141017.ttf} +0 -0
- /package/es/{iconfont.1787137259915.woff → iconfont.1787216141017.woff} +0 -0
- /package/es/{iconfont.1787137259915.woff2 → iconfont.1787216141017.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1787137259915.ttf → iconfont.1787216141017.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1787137259915.woff → iconfont.1787216141017.woff} +0 -0
- /package/lib/icon/style/{iconfont.1787137259915.woff2 → iconfont.1787216141017.woff2} +0 -0
- /package/lib/{iconfont.1787137259915.ttf → iconfont.1787216141017.ttf} +0 -0
- /package/lib/{iconfont.1787137259915.woff → iconfont.1787216141017.woff} +0 -0
- /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
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
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
|
|
277
|
-
|
|
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
|
-
|
|
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
|
-
|
|
219
|
+
$xeTooltip.close();
|
|
302
220
|
}
|
|
303
221
|
}, leaveDelay);
|
|
304
222
|
} else {
|
|
305
|
-
|
|
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
|
-
|
|
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
|
|
331
|
-
if (
|
|
332
|
-
const parentNode =
|
|
251
|
+
const panelElem = refElem.value;
|
|
252
|
+
if (panelElem) {
|
|
253
|
+
const parentNode = panelElem.parentNode;
|
|
333
254
|
if (!parentNode) {
|
|
334
|
-
|
|
255
|
+
(0, _dom.getPopupAppendElement)(appendTo).appendChild(panelElem);
|
|
335
256
|
}
|
|
336
257
|
}
|
|
337
258
|
updateValue(true);
|
|
338
|
-
|
|
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
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
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
|
-
|
|
443
|
-
|
|
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
|
-
|
|
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
|
|
575
|
-
if (
|
|
576
|
-
const 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(
|
|
531
|
+
_xeUtils.default.arrayEach(panelElem.children, (elem, index) => {
|
|
581
532
|
if (index) {
|
|
582
|
-
parentNode.insertBefore(elem,
|
|
533
|
+
parentNode.insertBefore(elem, panelElem);
|
|
583
534
|
if (!reactData.target) {
|
|
584
535
|
reactData.target = elem;
|
|
585
536
|
}
|
|
586
537
|
}
|
|
587
538
|
});
|
|
588
|
-
parentNode.removeChild(
|
|
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
|
|
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 (
|
|
622
|
-
const parentNode =
|
|
572
|
+
if (panelElem) {
|
|
573
|
+
const parentNode = panelElem.parentNode;
|
|
623
574
|
if (parentNode) {
|
|
624
|
-
parentNode.removeChild(
|
|
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(
|
|
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()}});
|
package/lib/tree/src/tree.js
CHANGED
|
@@ -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', {
|
package/lib/tree/src/tree.min.js
CHANGED
|
@@ -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()}});
|