vue-devui 1.0.0-rc.10 → 1.0.0-rc.11
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/README.md +149 -149
- package/auto-complete/index.es.js +22 -14
- package/auto-complete/index.umd.js +8 -8
- package/auto-complete/style.css +1 -1
- package/badge/index.es.js +5 -1
- package/badge/index.umd.js +1 -1
- package/badge/style.css +1 -1
- package/button/index.es.js +1 -1
- package/button/index.umd.js +1 -1
- package/button/style.css +1 -1
- package/card/index.es.js +5 -1
- package/card/index.umd.js +1 -1
- package/card/style.css +1 -1
- package/checkbox/index.es.js +21 -13
- package/checkbox/index.umd.js +7 -7
- package/checkbox/style.css +1 -1
- package/collapse/index.es.js +1 -1
- package/collapse/index.umd.js +1 -1
- package/collapse/style.css +1 -1
- package/date-picker/index.es.js +22 -14
- package/date-picker/index.umd.js +9 -9
- package/date-picker/style.css +1 -1
- package/editable-select/style.css +1 -1
- package/form/index.es.js +21 -13
- package/form/index.umd.js +11 -11
- package/icon/index.es.js +1 -1
- package/icon/index.umd.js +1 -1
- package/icon/style.css +1 -1
- package/image-preview/style.css +1 -1
- package/input/index.es.js +22 -14
- package/input/index.umd.js +7 -7
- package/input/style.css +1 -1
- package/input-number/style.css +1 -1
- package/modal/index.es.js +1 -1
- package/modal/index.umd.js +1 -1
- package/modal/style.css +1 -1
- package/notification/index.es.js +1 -1
- package/notification/index.umd.js +1 -1
- package/notification/style.css +1 -1
- package/nuxt/components/TABLE_TOKEN.js +3 -0
- package/nuxt/components/TimeSelect.js +3 -0
- package/nuxt/components/tableProps.js +3 -0
- package/package.json +2 -1
- package/pagination/style.css +1 -1
- package/panel/style.css +1 -1
- package/radio/index.es.js +21 -13
- package/radio/index.umd.js +7 -7
- package/radio/style.css +1 -1
- package/rate/style.css +1 -1
- package/result/index.es.js +1 -1
- package/result/index.umd.js +1 -1
- package/result/style.css +1 -1
- package/search/index.es.js +23 -14
- package/search/index.umd.js +7 -7
- package/search/style.css +1 -1
- package/select/index.es.js +45 -18
- package/select/index.umd.js +11 -11
- package/select/style.css +1 -1
- package/slider/index.es.js +116 -143
- package/slider/index.umd.js +1 -1
- package/slider/style.css +1 -1
- package/statistic/index.es.js +34 -16
- package/statistic/index.umd.js +1 -1
- package/statistic/style.css +1 -1
- package/status/style.css +1 -1
- package/style.css +1 -1
- package/switch/index.es.js +21 -13
- package/switch/index.umd.js +9 -9
- package/switch/style.css +1 -1
- package/table/index.es.js +212 -177
- package/table/index.umd.js +15 -15
- package/table/style.css +1 -1
- package/tabs/index.es.js +3 -1
- package/tabs/index.umd.js +1 -1
- package/tabs/style.css +1 -1
- package/textarea/index.es.js +21 -13
- package/textarea/index.umd.js +9 -9
- package/textarea/style.css +1 -1
- package/time-select/index.d.ts +7 -0
- package/time-select/index.es.js +9460 -0
- package/time-select/index.umd.js +27 -0
- package/time-select/package.json +7 -0
- package/time-select/style.css +1 -0
- package/timeline/index.es.js +1 -1
- package/timeline/index.umd.js +1 -1
- package/timeline/style.css +1 -1
- package/tree/index.es.js +1073 -63
- package/tree/index.umd.js +17 -17
- package/tree/style.css +1 -1
- package/upload/index.es.js +49 -11
- package/upload/index.umd.js +1 -1
- package/upload/style.css +1 -1
- package/vue-devui.es.js +1756 -493
- package/vue-devui.umd.js +21 -21
package/tree/index.es.js
CHANGED
|
@@ -29,7 +29,7 @@ var __objRest = (source, exclude) => {
|
|
|
29
29
|
}
|
|
30
30
|
return target;
|
|
31
31
|
};
|
|
32
|
-
import { createVNode, defineComponent, toRefs, inject, watch, provide, reactive, onUnmounted, Transition, mergeProps, ref, unref, nextTick, Comment, Text, h, Fragment, withDirectives, cloneVNode, computed, onMounted, Teleport, createTextVNode, onBeforeUnmount, toRef, renderSlot, useSlots } from "vue";
|
|
32
|
+
import { createVNode, defineComponent, toRefs, inject, watch, provide, reactive, onUnmounted, Transition, mergeProps, ref, unref, nextTick, Comment, Text, h, Fragment, withDirectives, cloneVNode, computed, onMounted, Teleport, createTextVNode, onBeforeUnmount, toRef, renderSlot, useSlots, isVNode, getCurrentInstance, onUpdated, shallowRef, toRaw, watchEffect } from "vue";
|
|
33
33
|
import { offset, autoPlacement, arrow, shift, computePosition } from "@floating-ui/dom";
|
|
34
34
|
const USE_TREE_TOKEN = "use-tree-token";
|
|
35
35
|
const NODE_HEIGHT = 30;
|
|
@@ -1483,7 +1483,7 @@ var lodash = { exports: {} };
|
|
|
1483
1483
|
if (typeof func != "function") {
|
|
1484
1484
|
throw new TypeError2(FUNC_ERROR_TEXT);
|
|
1485
1485
|
}
|
|
1486
|
-
return
|
|
1486
|
+
return setTimeout2(function() {
|
|
1487
1487
|
func.apply(undefined$1, args);
|
|
1488
1488
|
}, wait);
|
|
1489
1489
|
}
|
|
@@ -2263,7 +2263,7 @@ var lodash = { exports: {} };
|
|
|
2263
2263
|
end = end === undefined$1 ? length : end;
|
|
2264
2264
|
return !start && end >= length ? array4 : baseSlice(array4, start, end);
|
|
2265
2265
|
}
|
|
2266
|
-
var
|
|
2266
|
+
var clearTimeout2 = ctxClearTimeout || function(id) {
|
|
2267
2267
|
return root.clearTimeout(id);
|
|
2268
2268
|
};
|
|
2269
2269
|
function cloneBuffer(buffer, isDeep) {
|
|
@@ -3292,7 +3292,7 @@ var lodash = { exports: {} };
|
|
|
3292
3292
|
return object4[key];
|
|
3293
3293
|
}
|
|
3294
3294
|
var setData = shortOut(baseSetData);
|
|
3295
|
-
var
|
|
3295
|
+
var setTimeout2 = ctxSetTimeout || function(func, wait) {
|
|
3296
3296
|
return root.setTimeout(func, wait);
|
|
3297
3297
|
};
|
|
3298
3298
|
var setToString = shortOut(baseSetToString);
|
|
@@ -4084,7 +4084,7 @@ var lodash = { exports: {} };
|
|
|
4084
4084
|
}
|
|
4085
4085
|
function leadingEdge(time) {
|
|
4086
4086
|
lastInvokeTime = time;
|
|
4087
|
-
timerId =
|
|
4087
|
+
timerId = setTimeout2(timerExpired, wait);
|
|
4088
4088
|
return leading ? invokeFunc(time) : result2;
|
|
4089
4089
|
}
|
|
4090
4090
|
function remainingWait(time) {
|
|
@@ -4100,7 +4100,7 @@ var lodash = { exports: {} };
|
|
|
4100
4100
|
if (shouldInvoke(time)) {
|
|
4101
4101
|
return trailingEdge(time);
|
|
4102
4102
|
}
|
|
4103
|
-
timerId =
|
|
4103
|
+
timerId = setTimeout2(timerExpired, remainingWait(time));
|
|
4104
4104
|
}
|
|
4105
4105
|
function trailingEdge(time) {
|
|
4106
4106
|
timerId = undefined$1;
|
|
@@ -4112,7 +4112,7 @@ var lodash = { exports: {} };
|
|
|
4112
4112
|
}
|
|
4113
4113
|
function cancel() {
|
|
4114
4114
|
if (timerId !== undefined$1) {
|
|
4115
|
-
|
|
4115
|
+
clearTimeout2(timerId);
|
|
4116
4116
|
}
|
|
4117
4117
|
lastInvokeTime = 0;
|
|
4118
4118
|
lastArgs = lastCallTime = lastThis = timerId = undefined$1;
|
|
@@ -4130,13 +4130,13 @@ var lodash = { exports: {} };
|
|
|
4130
4130
|
return leadingEdge(lastCallTime);
|
|
4131
4131
|
}
|
|
4132
4132
|
if (maxing) {
|
|
4133
|
-
|
|
4134
|
-
timerId =
|
|
4133
|
+
clearTimeout2(timerId);
|
|
4134
|
+
timerId = setTimeout2(timerExpired, wait);
|
|
4135
4135
|
return invokeFunc(lastCallTime);
|
|
4136
4136
|
}
|
|
4137
4137
|
}
|
|
4138
4138
|
if (timerId === undefined$1) {
|
|
4139
|
-
timerId =
|
|
4139
|
+
timerId = setTimeout2(timerExpired, wait);
|
|
4140
4140
|
}
|
|
4141
4141
|
return result2;
|
|
4142
4142
|
}
|
|
@@ -7676,6 +7676,16 @@ Schema.register = function register(type4, validator) {
|
|
|
7676
7676
|
Schema.warning = warning;
|
|
7677
7677
|
Schema.messages = messages;
|
|
7678
7678
|
Schema.validators = validators;
|
|
7679
|
+
function getFieldValue(obj, path) {
|
|
7680
|
+
return {
|
|
7681
|
+
get value() {
|
|
7682
|
+
return lodash.exports.get(obj, path);
|
|
7683
|
+
},
|
|
7684
|
+
set value(val) {
|
|
7685
|
+
lodash.exports.set(obj, path, val);
|
|
7686
|
+
}
|
|
7687
|
+
};
|
|
7688
|
+
}
|
|
7679
7689
|
function useFormItem(messageType, _rules, validateState) {
|
|
7680
7690
|
const formContext = inject(FORM_TOKEN);
|
|
7681
7691
|
const ns2 = useNamespace("form");
|
|
@@ -7714,17 +7724,12 @@ function useFormItemValidate(props, _rules) {
|
|
|
7714
7724
|
const computedField = computed(() => {
|
|
7715
7725
|
return typeof props.field === "string" ? props.field : "";
|
|
7716
7726
|
});
|
|
7717
|
-
const fieldValue = computed({
|
|
7718
|
-
|
|
7719
|
-
|
|
7720
|
-
|
|
7721
|
-
return;
|
|
7722
|
-
}
|
|
7723
|
-
return formData[props.field];
|
|
7724
|
-
},
|
|
7725
|
-
set: (val) => {
|
|
7726
|
-
formContext.data[props.field] = val;
|
|
7727
|
+
const fieldValue = computed(() => {
|
|
7728
|
+
const formData = formContext.data;
|
|
7729
|
+
if (!formData || !props.field) {
|
|
7730
|
+
return;
|
|
7727
7731
|
}
|
|
7732
|
+
return getFieldValue(formData, props.field).value;
|
|
7728
7733
|
});
|
|
7729
7734
|
const getRuleByTrigger = (triggerVal) => {
|
|
7730
7735
|
return _rules.value.filter((rule) => {
|
|
@@ -7793,13 +7798,16 @@ function useFormItemValidate(props, _rules) {
|
|
|
7793
7798
|
if (!formContext.data || !props.field) {
|
|
7794
7799
|
return;
|
|
7795
7800
|
}
|
|
7796
|
-
|
|
7797
|
-
|
|
7801
|
+
const currentValue = getFieldValue(formContext.data, props.field);
|
|
7802
|
+
if (!lodash.exports.isEqual(currentValue.value, initFieldValue)) {
|
|
7803
|
+
isResetting = true;
|
|
7804
|
+
}
|
|
7805
|
+
currentValue.value = initFieldValue;
|
|
7798
7806
|
await nextTick();
|
|
7799
7807
|
clearValidate();
|
|
7800
7808
|
};
|
|
7801
7809
|
onMounted(() => {
|
|
7802
|
-
initFieldValue = lodash.exports.
|
|
7810
|
+
initFieldValue = lodash.exports.clone(fieldValue.value);
|
|
7803
7811
|
});
|
|
7804
7812
|
return { validateState, validateMessage, validate, resetField, clearValidate };
|
|
7805
7813
|
}
|
|
@@ -8258,7 +8266,6 @@ defineComponent({
|
|
|
8258
8266
|
});
|
|
8259
8267
|
const ns = useNamespace("tree");
|
|
8260
8268
|
function useTreeNode(data) {
|
|
8261
|
-
const { getChildren } = inject(USE_TREE_TOKEN);
|
|
8262
8269
|
const nodeClass = computed(() => {
|
|
8263
8270
|
var _a;
|
|
8264
8271
|
return [ns.e("node"), ((_a = data.value) == null ? void 0 : _a.expanded) && ns.em("node", "open")];
|
|
@@ -8268,16 +8275,19 @@ function useTreeNode(data) {
|
|
|
8268
8275
|
return { paddingLeft: `${NODE_INDENT * (((_a = data.value) == null ? void 0 : _a.level) - 1)}px` };
|
|
8269
8276
|
});
|
|
8270
8277
|
const nodeVLineClass = computed(() => {
|
|
8271
|
-
var _a, _b;
|
|
8272
|
-
return [!((_a = data.value) == null ? void 0 : _a.isLeaf) && ((_b = data.value) == null ? void 0 : _b.expanded) && ns.e("node-vline")];
|
|
8273
|
-
});
|
|
8274
|
-
const nodeVLineStyle = computed(() => {
|
|
8275
8278
|
var _a;
|
|
8276
|
-
return
|
|
8277
|
-
|
|
8278
|
-
|
|
8279
|
-
|
|
8280
|
-
|
|
8279
|
+
return [((_a = data.value) == null ? void 0 : _a.level) !== 1 && ns.e("node-vline")];
|
|
8280
|
+
});
|
|
8281
|
+
const nodeVLineStyles = computed(() => {
|
|
8282
|
+
if (!data.value || data.value.level === 1) {
|
|
8283
|
+
return [];
|
|
8284
|
+
}
|
|
8285
|
+
const { currentIndex = 0, parentChildNode = 0, level, expanded, isLeaf } = data.value;
|
|
8286
|
+
return Array.from({ length: data.value.level - 1 }).map((_, index2) => ({
|
|
8287
|
+
height: `${currentIndex + 1 === parentChildNode && index2 === 0 ? isLeaf || !expanded ? NODE_HEIGHT / 2 : NODE_HEIGHT : NODE_HEIGHT}px`,
|
|
8288
|
+
left: `${NODE_INDENT * (level - index2 - 2) + 9}px`,
|
|
8289
|
+
top: `0px`
|
|
8290
|
+
}));
|
|
8281
8291
|
});
|
|
8282
8292
|
const nodeHLineClass = computed(() => {
|
|
8283
8293
|
var _a;
|
|
@@ -8297,7 +8307,7 @@ function useTreeNode(data) {
|
|
|
8297
8307
|
nodeContentClass,
|
|
8298
8308
|
nodeTitleClass,
|
|
8299
8309
|
nodeVLineClass,
|
|
8300
|
-
|
|
8310
|
+
nodeVLineStyles,
|
|
8301
8311
|
nodeHLineClass
|
|
8302
8312
|
};
|
|
8303
8313
|
}
|
|
@@ -8355,7 +8365,7 @@ var DTreeNode = defineComponent({
|
|
|
8355
8365
|
nodeStyle,
|
|
8356
8366
|
nodeContentClass,
|
|
8357
8367
|
nodeVLineClass,
|
|
8358
|
-
|
|
8368
|
+
nodeVLineStyles,
|
|
8359
8369
|
nodeHLineClass
|
|
8360
8370
|
} = useTreeNode(data);
|
|
8361
8371
|
const halfChecked = computed(() => {
|
|
@@ -8375,7 +8385,7 @@ var DTreeNode = defineComponent({
|
|
|
8375
8385
|
halfchecked: halfChecked.value,
|
|
8376
8386
|
modelValue: (_c = data.value) == null ? void 0 : _c.checked,
|
|
8377
8387
|
"onUpdate:modelValue": () => {
|
|
8378
|
-
toggleCheckNode(data.value);
|
|
8388
|
+
toggleCheckNode == null ? void 0 : toggleCheckNode(data.value);
|
|
8379
8389
|
},
|
|
8380
8390
|
onClick: (event) => {
|
|
8381
8391
|
event.stopPropagation();
|
|
@@ -8384,13 +8394,13 @@ var DTreeNode = defineComponent({
|
|
|
8384
8394
|
return createVNode("div", {
|
|
8385
8395
|
"class": nodeClass.value,
|
|
8386
8396
|
"style": nodeStyle.value
|
|
8387
|
-
}, [createVNode("span", {
|
|
8397
|
+
}, [nodeVLineStyles.value.map((item) => createVNode("span", {
|
|
8388
8398
|
"class": nodeVLineClass.value,
|
|
8389
|
-
"style":
|
|
8390
|
-
}, null), createVNode("div", {
|
|
8399
|
+
"style": item
|
|
8400
|
+
}, null)), createVNode("div", {
|
|
8391
8401
|
"class": nodeContentClass.value,
|
|
8392
8402
|
"onClick": () => {
|
|
8393
|
-
toggleSelectNode(data.value);
|
|
8403
|
+
toggleSelectNode == null ? void 0 : toggleSelectNode(data.value);
|
|
8394
8404
|
}
|
|
8395
8405
|
}, [createVNode("span", {
|
|
8396
8406
|
"class": nodeHLineClass.value
|
|
@@ -8407,11 +8417,973 @@ var DTreeNode = defineComponent({
|
|
|
8407
8417
|
}, [check.value && createVNode(Checkbox, checkboxProps2, null), slots.default ? renderSlot(useSlots(), "default", {
|
|
8408
8418
|
nodeData: data
|
|
8409
8419
|
}) : createVNode(DTreeNodeContent, {
|
|
8410
|
-
"data": data
|
|
8420
|
+
"data": data.value
|
|
8411
8421
|
}, null)])])]);
|
|
8412
8422
|
};
|
|
8413
8423
|
}
|
|
8414
8424
|
});
|
|
8425
|
+
const virtualListProps = {
|
|
8426
|
+
data: {
|
|
8427
|
+
type: Array,
|
|
8428
|
+
default: () => []
|
|
8429
|
+
},
|
|
8430
|
+
component: {
|
|
8431
|
+
type: String,
|
|
8432
|
+
default: "div"
|
|
8433
|
+
},
|
|
8434
|
+
height: {
|
|
8435
|
+
type: Number,
|
|
8436
|
+
default: 100
|
|
8437
|
+
},
|
|
8438
|
+
itemHeight: {
|
|
8439
|
+
type: Number,
|
|
8440
|
+
default: 0
|
|
8441
|
+
},
|
|
8442
|
+
virtual: {
|
|
8443
|
+
type: Boolean,
|
|
8444
|
+
default: true
|
|
8445
|
+
},
|
|
8446
|
+
fullHeight: {
|
|
8447
|
+
type: Boolean
|
|
8448
|
+
},
|
|
8449
|
+
itemKey: {
|
|
8450
|
+
type: [String, Number, Function]
|
|
8451
|
+
}
|
|
8452
|
+
};
|
|
8453
|
+
const resizeObserverContainerProps = {
|
|
8454
|
+
height: {
|
|
8455
|
+
type: Number
|
|
8456
|
+
},
|
|
8457
|
+
offset: {
|
|
8458
|
+
type: Number || void 0
|
|
8459
|
+
},
|
|
8460
|
+
disabled: {
|
|
8461
|
+
type: Function
|
|
8462
|
+
},
|
|
8463
|
+
onInnerResize: {
|
|
8464
|
+
type: Function
|
|
8465
|
+
}
|
|
8466
|
+
};
|
|
8467
|
+
const scrollBarProps = {
|
|
8468
|
+
scrollTop: {
|
|
8469
|
+
type: Number
|
|
8470
|
+
},
|
|
8471
|
+
scrollHeight: {
|
|
8472
|
+
type: Number
|
|
8473
|
+
},
|
|
8474
|
+
height: {
|
|
8475
|
+
type: Number
|
|
8476
|
+
},
|
|
8477
|
+
count: {
|
|
8478
|
+
type: Number
|
|
8479
|
+
},
|
|
8480
|
+
onScroll: {
|
|
8481
|
+
type: Function
|
|
8482
|
+
},
|
|
8483
|
+
onStartMove: {
|
|
8484
|
+
type: Function
|
|
8485
|
+
},
|
|
8486
|
+
onStopMove: {
|
|
8487
|
+
type: Function
|
|
8488
|
+
}
|
|
8489
|
+
};
|
|
8490
|
+
const resizeObserverProps = {
|
|
8491
|
+
disabled: {
|
|
8492
|
+
type: Boolean
|
|
8493
|
+
},
|
|
8494
|
+
onResize: {
|
|
8495
|
+
type: Function
|
|
8496
|
+
}
|
|
8497
|
+
};
|
|
8498
|
+
function useVirtual(props) {
|
|
8499
|
+
const isVirtual = computed(() => {
|
|
8500
|
+
const {
|
|
8501
|
+
height,
|
|
8502
|
+
virtual
|
|
8503
|
+
} = props;
|
|
8504
|
+
return !!(virtual !== false && height);
|
|
8505
|
+
});
|
|
8506
|
+
const inVirtual = computed(() => {
|
|
8507
|
+
const {
|
|
8508
|
+
height,
|
|
8509
|
+
data
|
|
8510
|
+
} = props;
|
|
8511
|
+
return isVirtual.value && data && 20 * data.length > height;
|
|
8512
|
+
});
|
|
8513
|
+
return {
|
|
8514
|
+
isVirtual,
|
|
8515
|
+
inVirtual
|
|
8516
|
+
};
|
|
8517
|
+
}
|
|
8518
|
+
function useHeights(mergedData, getKey) {
|
|
8519
|
+
const instance = /* @__PURE__ */ new Map();
|
|
8520
|
+
let heights = /* @__PURE__ */ new Map();
|
|
8521
|
+
const updatedMark = ref(Symbol("update"));
|
|
8522
|
+
watch(mergedData, () => {
|
|
8523
|
+
heights = /* @__PURE__ */ new Map();
|
|
8524
|
+
updatedMark.value = Symbol("update");
|
|
8525
|
+
});
|
|
8526
|
+
let heightUpdateId = 0;
|
|
8527
|
+
function collectHeight() {
|
|
8528
|
+
heightUpdateId += 1;
|
|
8529
|
+
const currentId = heightUpdateId;
|
|
8530
|
+
Promise.resolve().then(() => {
|
|
8531
|
+
if (currentId !== heightUpdateId) {
|
|
8532
|
+
return;
|
|
8533
|
+
}
|
|
8534
|
+
instance.forEach((element, key) => {
|
|
8535
|
+
if (element && element.offsetParent) {
|
|
8536
|
+
const {
|
|
8537
|
+
offsetHeight
|
|
8538
|
+
} = element;
|
|
8539
|
+
if (heights.get(key) !== offsetHeight) {
|
|
8540
|
+
updatedMark.value = Symbol("update");
|
|
8541
|
+
heights.set(key, element.offsetHeight);
|
|
8542
|
+
}
|
|
8543
|
+
}
|
|
8544
|
+
});
|
|
8545
|
+
});
|
|
8546
|
+
}
|
|
8547
|
+
function setInstance(item, ins) {
|
|
8548
|
+
const key = getKey(item);
|
|
8549
|
+
if (ins) {
|
|
8550
|
+
instance.set(key, ins.$el || ins);
|
|
8551
|
+
collectHeight();
|
|
8552
|
+
} else {
|
|
8553
|
+
instance.delete(key);
|
|
8554
|
+
}
|
|
8555
|
+
}
|
|
8556
|
+
return [setInstance, collectHeight, heights, updatedMark];
|
|
8557
|
+
}
|
|
8558
|
+
var useOriginScroll = (isScrollAtTop, isScrollAtBottom) => {
|
|
8559
|
+
let lock = false;
|
|
8560
|
+
let lockTimeout = null;
|
|
8561
|
+
function lockScroll2() {
|
|
8562
|
+
if (lockTimeout) {
|
|
8563
|
+
clearTimeout(lockTimeout);
|
|
8564
|
+
}
|
|
8565
|
+
lock = true;
|
|
8566
|
+
lockTimeout = setTimeout(() => {
|
|
8567
|
+
lock = false;
|
|
8568
|
+
}, 50);
|
|
8569
|
+
}
|
|
8570
|
+
return (deltaY, smoothOffset = false) => {
|
|
8571
|
+
const originScroll = deltaY < 0 && isScrollAtTop.value || deltaY > 0 && isScrollAtBottom.value;
|
|
8572
|
+
if (smoothOffset && originScroll) {
|
|
8573
|
+
if (lockTimeout) {
|
|
8574
|
+
clearTimeout(lockTimeout);
|
|
8575
|
+
}
|
|
8576
|
+
lock = false;
|
|
8577
|
+
} else if (!originScroll || lock) {
|
|
8578
|
+
lockScroll2();
|
|
8579
|
+
}
|
|
8580
|
+
return !lock && originScroll;
|
|
8581
|
+
};
|
|
8582
|
+
};
|
|
8583
|
+
const isValid = (value) => {
|
|
8584
|
+
return value !== void 0 && value !== null && value !== "";
|
|
8585
|
+
};
|
|
8586
|
+
const isEmptyElement = (c) => {
|
|
8587
|
+
var _a, _b;
|
|
8588
|
+
return !!c && (c.type === Comment || c.type === Fragment && ((_a = c == null ? void 0 : c.children) == null ? void 0 : _a.length) === 0 || c.type === Text && ((_b = c == null ? void 0 : c.children) == null ? void 0 : _b.trim()) === "");
|
|
8589
|
+
};
|
|
8590
|
+
const flattenChildren = (children, filterEmpty = true) => {
|
|
8591
|
+
const temp = Array.isArray(children) ? children : [children];
|
|
8592
|
+
const res = [];
|
|
8593
|
+
temp.forEach((child) => {
|
|
8594
|
+
if (Array.isArray(child)) {
|
|
8595
|
+
res.push(...flattenChildren(child, filterEmpty));
|
|
8596
|
+
} else if (child && child.type === Fragment) {
|
|
8597
|
+
res.push(...flattenChildren(child.children, filterEmpty));
|
|
8598
|
+
} else if (child && isVNode(child)) {
|
|
8599
|
+
if (filterEmpty && !isEmptyElement(child)) {
|
|
8600
|
+
res.push(child);
|
|
8601
|
+
} else if (!filterEmpty) {
|
|
8602
|
+
res.push(child);
|
|
8603
|
+
}
|
|
8604
|
+
} else if (isValid(child)) {
|
|
8605
|
+
res.push(child);
|
|
8606
|
+
}
|
|
8607
|
+
});
|
|
8608
|
+
return res;
|
|
8609
|
+
};
|
|
8610
|
+
const findDOMNode = (instance) => {
|
|
8611
|
+
var _a;
|
|
8612
|
+
let node = ((_a = instance == null ? void 0 : instance.vnode) == null ? void 0 : _a.el) || instance && ((instance == null ? void 0 : instance.$el) || instance);
|
|
8613
|
+
while (node && !node.tagName) {
|
|
8614
|
+
node = node.nextSibling;
|
|
8615
|
+
}
|
|
8616
|
+
return node;
|
|
8617
|
+
};
|
|
8618
|
+
const isFF = typeof navigator === "object" && /Firefox/i.test(navigator.userAgent);
|
|
8619
|
+
function useFrameWheel(inVirtual, isScrollAtTop, isScrollAtBottom, onWheelDelta) {
|
|
8620
|
+
let offsetRef = 0;
|
|
8621
|
+
let nextFrame = null;
|
|
8622
|
+
let wheelValue = null;
|
|
8623
|
+
let isMouseScroll = false;
|
|
8624
|
+
const originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom);
|
|
8625
|
+
const onRawWheel = (event) => {
|
|
8626
|
+
var _a;
|
|
8627
|
+
if (!inVirtual.value) {
|
|
8628
|
+
return;
|
|
8629
|
+
}
|
|
8630
|
+
if (nextFrame) {
|
|
8631
|
+
window.cancelAnimationFrame(nextFrame);
|
|
8632
|
+
}
|
|
8633
|
+
const {
|
|
8634
|
+
deltaY
|
|
8635
|
+
} = event;
|
|
8636
|
+
offsetRef += deltaY;
|
|
8637
|
+
wheelValue = deltaY;
|
|
8638
|
+
if (originScroll(deltaY, false)) {
|
|
8639
|
+
return;
|
|
8640
|
+
}
|
|
8641
|
+
if (!isFF) {
|
|
8642
|
+
(_a = event == null ? void 0 : event.preventDefault) == null ? void 0 : _a.call(event);
|
|
8643
|
+
}
|
|
8644
|
+
nextFrame = window.requestAnimationFrame(() => {
|
|
8645
|
+
const patchMultiple = isMouseScroll ? 10 : 1;
|
|
8646
|
+
onWheelDelta(offsetRef * patchMultiple);
|
|
8647
|
+
offsetRef = 0;
|
|
8648
|
+
});
|
|
8649
|
+
};
|
|
8650
|
+
const onFireFoxScroll = (event) => {
|
|
8651
|
+
if (!inVirtual.value) {
|
|
8652
|
+
return;
|
|
8653
|
+
}
|
|
8654
|
+
isMouseScroll = event.detail === wheelValue;
|
|
8655
|
+
};
|
|
8656
|
+
return [onRawWheel, onFireFoxScroll];
|
|
8657
|
+
}
|
|
8658
|
+
const SMOOTH_PTG = 14 / 15;
|
|
8659
|
+
function useMobileTouchMove(inVirtual, listRef, callback) {
|
|
8660
|
+
let touched = false;
|
|
8661
|
+
let touchY = 0;
|
|
8662
|
+
let element = null;
|
|
8663
|
+
let interval = null;
|
|
8664
|
+
const onTouchMove = (e) => {
|
|
8665
|
+
if (touched) {
|
|
8666
|
+
const currentY = Math.ceil(e.touches[0].pageY);
|
|
8667
|
+
let offsetY = touchY - currentY;
|
|
8668
|
+
touchY = currentY;
|
|
8669
|
+
if (callback(offsetY)) {
|
|
8670
|
+
e.preventDefault();
|
|
8671
|
+
}
|
|
8672
|
+
if (interval) {
|
|
8673
|
+
clearInterval(interval);
|
|
8674
|
+
}
|
|
8675
|
+
interval = setInterval(() => {
|
|
8676
|
+
offsetY *= SMOOTH_PTG;
|
|
8677
|
+
if (!callback(offsetY, true) || Math.abs(offsetY) <= 0.1) {
|
|
8678
|
+
if (interval) {
|
|
8679
|
+
clearInterval(interval);
|
|
8680
|
+
}
|
|
8681
|
+
}
|
|
8682
|
+
}, 16);
|
|
8683
|
+
}
|
|
8684
|
+
};
|
|
8685
|
+
const cleanUpEvents = () => {
|
|
8686
|
+
if (element) {
|
|
8687
|
+
element.removeEventListener("touchmove", onTouchMove);
|
|
8688
|
+
element.removeEventListener("touchend", () => {
|
|
8689
|
+
touched = false;
|
|
8690
|
+
cleanUpEvents();
|
|
8691
|
+
});
|
|
8692
|
+
}
|
|
8693
|
+
};
|
|
8694
|
+
const onTouchEnd = () => {
|
|
8695
|
+
touched = false;
|
|
8696
|
+
cleanUpEvents();
|
|
8697
|
+
};
|
|
8698
|
+
const onTouchStart = (e) => {
|
|
8699
|
+
cleanUpEvents();
|
|
8700
|
+
if (e.touches.length === 1 && !touched) {
|
|
8701
|
+
touched = true;
|
|
8702
|
+
touchY = Math.ceil(e.touches[0].pageY);
|
|
8703
|
+
element = e.target;
|
|
8704
|
+
element.addEventListener("touchmove", onTouchMove, {
|
|
8705
|
+
passive: false
|
|
8706
|
+
});
|
|
8707
|
+
element.addEventListener("touchend", onTouchEnd);
|
|
8708
|
+
}
|
|
8709
|
+
};
|
|
8710
|
+
onMounted(() => {
|
|
8711
|
+
watch(inVirtual, (val) => {
|
|
8712
|
+
var _a, _b;
|
|
8713
|
+
(_a = listRef.value) == null ? void 0 : _a.removeEventListener("touchstart", onTouchStart);
|
|
8714
|
+
cleanUpEvents();
|
|
8715
|
+
if (interval) {
|
|
8716
|
+
clearInterval(interval);
|
|
8717
|
+
}
|
|
8718
|
+
if (val) {
|
|
8719
|
+
(_b = listRef.value) == null ? void 0 : _b.addEventListener("touchstart", onTouchStart, {
|
|
8720
|
+
passive: false
|
|
8721
|
+
});
|
|
8722
|
+
}
|
|
8723
|
+
}, {
|
|
8724
|
+
immediate: true
|
|
8725
|
+
});
|
|
8726
|
+
});
|
|
8727
|
+
}
|
|
8728
|
+
var ResizeObserver$1 = defineComponent({
|
|
8729
|
+
name: "ResizeObserver",
|
|
8730
|
+
props: resizeObserverProps,
|
|
8731
|
+
emits: ["resize"],
|
|
8732
|
+
setup(props, {
|
|
8733
|
+
slots
|
|
8734
|
+
}) {
|
|
8735
|
+
const state = reactive({
|
|
8736
|
+
width: 0,
|
|
8737
|
+
height: 0,
|
|
8738
|
+
offsetHeight: 0,
|
|
8739
|
+
offsetWidth: 0
|
|
8740
|
+
});
|
|
8741
|
+
const currentElement = ref(null);
|
|
8742
|
+
const resizeObserver = ref(null);
|
|
8743
|
+
const destroyObserver = () => {
|
|
8744
|
+
if (resizeObserver.value) {
|
|
8745
|
+
resizeObserver.value.disconnect();
|
|
8746
|
+
resizeObserver.value = null;
|
|
8747
|
+
}
|
|
8748
|
+
};
|
|
8749
|
+
const onTriggerResize = (entries) => {
|
|
8750
|
+
const {
|
|
8751
|
+
onResize
|
|
8752
|
+
} = props;
|
|
8753
|
+
const target = entries[0].target;
|
|
8754
|
+
const {
|
|
8755
|
+
width,
|
|
8756
|
+
height
|
|
8757
|
+
} = target.getBoundingClientRect();
|
|
8758
|
+
const {
|
|
8759
|
+
offsetWidth,
|
|
8760
|
+
offsetHeight
|
|
8761
|
+
} = target;
|
|
8762
|
+
const fixedWidth = Math.floor(width);
|
|
8763
|
+
const fixedHeight = Math.floor(height);
|
|
8764
|
+
if (state.width !== fixedWidth || state.height !== fixedHeight || state.offsetWidth !== offsetWidth || state.offsetHeight !== offsetHeight) {
|
|
8765
|
+
const size = {
|
|
8766
|
+
width: fixedWidth,
|
|
8767
|
+
height: fixedHeight,
|
|
8768
|
+
offsetWidth,
|
|
8769
|
+
offsetHeight
|
|
8770
|
+
};
|
|
8771
|
+
Object.assign(state, size);
|
|
8772
|
+
if (onResize) {
|
|
8773
|
+
Promise.resolve().then(() => {
|
|
8774
|
+
onResize(__spreadProps(__spreadValues({}, size), {
|
|
8775
|
+
offsetWidth,
|
|
8776
|
+
offsetHeight
|
|
8777
|
+
}), target);
|
|
8778
|
+
});
|
|
8779
|
+
}
|
|
8780
|
+
}
|
|
8781
|
+
};
|
|
8782
|
+
const instance = getCurrentInstance();
|
|
8783
|
+
const registerObserver = () => {
|
|
8784
|
+
const {
|
|
8785
|
+
disabled
|
|
8786
|
+
} = props;
|
|
8787
|
+
if (disabled) {
|
|
8788
|
+
destroyObserver();
|
|
8789
|
+
return;
|
|
8790
|
+
}
|
|
8791
|
+
if (instance) {
|
|
8792
|
+
const element = findDOMNode(instance);
|
|
8793
|
+
const elementChanged = element !== currentElement.value;
|
|
8794
|
+
if (elementChanged) {
|
|
8795
|
+
destroyObserver();
|
|
8796
|
+
currentElement.value = element;
|
|
8797
|
+
}
|
|
8798
|
+
if (!resizeObserver.value && element) {
|
|
8799
|
+
resizeObserver.value = new ResizeObserver(onTriggerResize);
|
|
8800
|
+
resizeObserver.value.observe(element);
|
|
8801
|
+
}
|
|
8802
|
+
}
|
|
8803
|
+
};
|
|
8804
|
+
onMounted(() => {
|
|
8805
|
+
registerObserver();
|
|
8806
|
+
});
|
|
8807
|
+
onUpdated(() => {
|
|
8808
|
+
registerObserver();
|
|
8809
|
+
});
|
|
8810
|
+
onUnmounted(() => {
|
|
8811
|
+
destroyObserver();
|
|
8812
|
+
});
|
|
8813
|
+
return () => {
|
|
8814
|
+
var _a;
|
|
8815
|
+
return (_a = slots.default) == null ? void 0 : _a.call(slots)[0];
|
|
8816
|
+
};
|
|
8817
|
+
}
|
|
8818
|
+
});
|
|
8819
|
+
const INIT_INNER_STYLE = {
|
|
8820
|
+
display: "flex",
|
|
8821
|
+
flexDirection: "column"
|
|
8822
|
+
};
|
|
8823
|
+
var ResizeObserverContainer = defineComponent({
|
|
8824
|
+
name: "ResizeObserverContainer",
|
|
8825
|
+
props: resizeObserverContainerProps,
|
|
8826
|
+
setup(props, ctx) {
|
|
8827
|
+
const {
|
|
8828
|
+
height,
|
|
8829
|
+
offset: offset2
|
|
8830
|
+
} = toRefs(props);
|
|
8831
|
+
const outerStyle = ref({});
|
|
8832
|
+
const innerStyle = ref(INIT_INNER_STYLE);
|
|
8833
|
+
watch([() => height.value, () => offset2.value], () => {
|
|
8834
|
+
if (props.offset !== void 0) {
|
|
8835
|
+
outerStyle.value = {
|
|
8836
|
+
height: `${height.value}px`,
|
|
8837
|
+
position: "relative",
|
|
8838
|
+
overflow: "hidden"
|
|
8839
|
+
};
|
|
8840
|
+
innerStyle.value = __spreadProps(__spreadValues({}, innerStyle.value), {
|
|
8841
|
+
transform: `translateY(${offset2.value}px)`,
|
|
8842
|
+
position: "absolute",
|
|
8843
|
+
left: 0,
|
|
8844
|
+
right: 0,
|
|
8845
|
+
top: 0
|
|
8846
|
+
});
|
|
8847
|
+
}
|
|
8848
|
+
});
|
|
8849
|
+
return () => createVNode("div", {
|
|
8850
|
+
"style": outerStyle.value
|
|
8851
|
+
}, [createVNode(ResizeObserver$1, {
|
|
8852
|
+
"onResize": ({
|
|
8853
|
+
offsetHeight
|
|
8854
|
+
}) => {
|
|
8855
|
+
if (offsetHeight && props.onInnerResize) {
|
|
8856
|
+
props.onInnerResize();
|
|
8857
|
+
}
|
|
8858
|
+
}
|
|
8859
|
+
}, {
|
|
8860
|
+
default: () => {
|
|
8861
|
+
var _a, _b;
|
|
8862
|
+
return [createVNode("div", {
|
|
8863
|
+
"style": innerStyle.value
|
|
8864
|
+
}, [(_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a)])];
|
|
8865
|
+
}
|
|
8866
|
+
})]);
|
|
8867
|
+
}
|
|
8868
|
+
});
|
|
8869
|
+
function getPageY(e) {
|
|
8870
|
+
return "touches" in e ? e.touches[0].pageY : e.pageY;
|
|
8871
|
+
}
|
|
8872
|
+
var ScrollBar = defineComponent({
|
|
8873
|
+
name: "ScrollBar",
|
|
8874
|
+
props: scrollBarProps,
|
|
8875
|
+
setup(props, ctx) {
|
|
8876
|
+
const scrollbarRef = ref(null);
|
|
8877
|
+
const thumbRef = ref(null);
|
|
8878
|
+
const moveRaf = ref(0);
|
|
8879
|
+
const state = reactive({
|
|
8880
|
+
dragging: false,
|
|
8881
|
+
pageY: null,
|
|
8882
|
+
startTop: null,
|
|
8883
|
+
visible: false
|
|
8884
|
+
});
|
|
8885
|
+
const visibleTimeout = ref(null);
|
|
8886
|
+
const canScroll = computed(() => {
|
|
8887
|
+
return (props.scrollHeight || 0) > (props.height || 0);
|
|
8888
|
+
});
|
|
8889
|
+
const getSpinHeight = () => {
|
|
8890
|
+
const {
|
|
8891
|
+
height = 0,
|
|
8892
|
+
count = 0
|
|
8893
|
+
} = props;
|
|
8894
|
+
let baseHeight = height / count * 10;
|
|
8895
|
+
baseHeight = Math.max(baseHeight, 20);
|
|
8896
|
+
baseHeight = Math.min(baseHeight, height / 2);
|
|
8897
|
+
return Math.floor(baseHeight);
|
|
8898
|
+
};
|
|
8899
|
+
const getEnableScrollRange = () => {
|
|
8900
|
+
const {
|
|
8901
|
+
scrollHeight = 0,
|
|
8902
|
+
height = 0
|
|
8903
|
+
} = props;
|
|
8904
|
+
return scrollHeight - height || 0;
|
|
8905
|
+
};
|
|
8906
|
+
const getEnableHeightRange = () => {
|
|
8907
|
+
const {
|
|
8908
|
+
height = 0
|
|
8909
|
+
} = props;
|
|
8910
|
+
const spinHeight = getSpinHeight();
|
|
8911
|
+
return height - spinHeight || 0;
|
|
8912
|
+
};
|
|
8913
|
+
const getTop = () => {
|
|
8914
|
+
const {
|
|
8915
|
+
scrollTop = 0
|
|
8916
|
+
} = props;
|
|
8917
|
+
const enableScrollRange = getEnableScrollRange();
|
|
8918
|
+
const enableHeightRange = getEnableHeightRange();
|
|
8919
|
+
if (scrollTop === 0 || enableScrollRange === 0) {
|
|
8920
|
+
return 0;
|
|
8921
|
+
}
|
|
8922
|
+
const ptg = scrollTop / enableScrollRange;
|
|
8923
|
+
return ptg * enableHeightRange;
|
|
8924
|
+
};
|
|
8925
|
+
const onMouseMove = (e) => {
|
|
8926
|
+
const {
|
|
8927
|
+
dragging,
|
|
8928
|
+
pageY,
|
|
8929
|
+
startTop
|
|
8930
|
+
} = state;
|
|
8931
|
+
const {
|
|
8932
|
+
onScroll
|
|
8933
|
+
} = props;
|
|
8934
|
+
window.cancelAnimationFrame(moveRaf.value);
|
|
8935
|
+
if (dragging) {
|
|
8936
|
+
const offsetY = getPageY(e) - (pageY || 0);
|
|
8937
|
+
const newTop = (startTop || 0) + offsetY;
|
|
8938
|
+
const enableScrollRange = getEnableScrollRange();
|
|
8939
|
+
const enableHeightRange = getEnableHeightRange();
|
|
8940
|
+
const ptg = enableHeightRange ? newTop / enableHeightRange : 0;
|
|
8941
|
+
const newScrollTop = Math.ceil(ptg * enableScrollRange);
|
|
8942
|
+
moveRaf.value = window.requestAnimationFrame(() => {
|
|
8943
|
+
if (onScroll) {
|
|
8944
|
+
onScroll(newScrollTop);
|
|
8945
|
+
}
|
|
8946
|
+
});
|
|
8947
|
+
}
|
|
8948
|
+
};
|
|
8949
|
+
const onMouseUp = (callback) => {
|
|
8950
|
+
const {
|
|
8951
|
+
onStopMove
|
|
8952
|
+
} = props;
|
|
8953
|
+
state.dragging = false;
|
|
8954
|
+
if (onStopMove) {
|
|
8955
|
+
onStopMove();
|
|
8956
|
+
}
|
|
8957
|
+
if (callback) {
|
|
8958
|
+
callback();
|
|
8959
|
+
}
|
|
8960
|
+
};
|
|
8961
|
+
const onMouseDown = (e, callback) => {
|
|
8962
|
+
var _a, _b;
|
|
8963
|
+
const {
|
|
8964
|
+
onStartMove
|
|
8965
|
+
} = props;
|
|
8966
|
+
Object.assign(state, {
|
|
8967
|
+
dragging: true,
|
|
8968
|
+
pageY: getPageY(e),
|
|
8969
|
+
startTop: getTop()
|
|
8970
|
+
});
|
|
8971
|
+
if (onStartMove) {
|
|
8972
|
+
onStartMove();
|
|
8973
|
+
}
|
|
8974
|
+
window.addEventListener("mousemove", onMouseMove);
|
|
8975
|
+
window.addEventListener("mouseup", () => onMouseUp(callback));
|
|
8976
|
+
(_a = thumbRef == null ? void 0 : thumbRef.value) == null ? void 0 : _a.addEventListener("touchmove", onMouseMove, {
|
|
8977
|
+
passive: false
|
|
8978
|
+
});
|
|
8979
|
+
(_b = thumbRef == null ? void 0 : thumbRef.value) == null ? void 0 : _b.addEventListener("touchend", () => onMouseUp(callback));
|
|
8980
|
+
e.stopPropagation();
|
|
8981
|
+
e.preventDefault();
|
|
8982
|
+
};
|
|
8983
|
+
const removeEvents = () => {
|
|
8984
|
+
var _a, _b, _c, _d;
|
|
8985
|
+
window.removeEventListener("mousemove", onMouseMove);
|
|
8986
|
+
window.removeEventListener("mouseup", () => onMouseUp(removeEvents));
|
|
8987
|
+
(_a = scrollbarRef == null ? void 0 : scrollbarRef.value) == null ? void 0 : _a.removeEventListener("touchstart", (e) => {
|
|
8988
|
+
e.preventDefault();
|
|
8989
|
+
}, {
|
|
8990
|
+
passive: false
|
|
8991
|
+
});
|
|
8992
|
+
(_b = thumbRef == null ? void 0 : thumbRef.value) == null ? void 0 : _b.removeEventListener("touchstart", (e) => onMouseDown(e, removeEvents), {
|
|
8993
|
+
passive: false
|
|
8994
|
+
});
|
|
8995
|
+
(_c = thumbRef == null ? void 0 : thumbRef.value) == null ? void 0 : _c.removeEventListener("touchmove", onMouseMove, {
|
|
8996
|
+
passive: false
|
|
8997
|
+
});
|
|
8998
|
+
(_d = thumbRef == null ? void 0 : thumbRef.value) == null ? void 0 : _d.removeEventListener("touchend", () => onMouseUp(removeEvents));
|
|
8999
|
+
window.cancelAnimationFrame(moveRaf.value);
|
|
9000
|
+
};
|
|
9001
|
+
const onContainerMouseDown = (e) => {
|
|
9002
|
+
e.stopPropagation();
|
|
9003
|
+
e.preventDefault();
|
|
9004
|
+
};
|
|
9005
|
+
onBeforeUnmount(() => {
|
|
9006
|
+
removeEvents();
|
|
9007
|
+
if (visibleTimeout.value) {
|
|
9008
|
+
clearTimeout(visibleTimeout.value);
|
|
9009
|
+
}
|
|
9010
|
+
});
|
|
9011
|
+
onMounted(() => {
|
|
9012
|
+
var _a, _b;
|
|
9013
|
+
(_a = scrollbarRef == null ? void 0 : scrollbarRef.value) == null ? void 0 : _a.addEventListener("touchstart", (e) => {
|
|
9014
|
+
e.preventDefault();
|
|
9015
|
+
}, {
|
|
9016
|
+
passive: false
|
|
9017
|
+
});
|
|
9018
|
+
(_b = thumbRef.value) == null ? void 0 : _b.addEventListener("touchstart", (e) => onMouseDown(e, removeEvents), {
|
|
9019
|
+
passive: false
|
|
9020
|
+
});
|
|
9021
|
+
});
|
|
9022
|
+
const onShowBar = () => {
|
|
9023
|
+
if (visibleTimeout.value) {
|
|
9024
|
+
clearTimeout(visibleTimeout.value);
|
|
9025
|
+
}
|
|
9026
|
+
state.visible = true;
|
|
9027
|
+
visibleTimeout.value = setTimeout(() => {
|
|
9028
|
+
state.visible = false;
|
|
9029
|
+
}, 1e3);
|
|
9030
|
+
};
|
|
9031
|
+
ctx.expose({
|
|
9032
|
+
onShowBar
|
|
9033
|
+
});
|
|
9034
|
+
return () => {
|
|
9035
|
+
const display = canScroll.value && state.visible ? void 0 : "none";
|
|
9036
|
+
return createVNode("div", {
|
|
9037
|
+
"ref": scrollbarRef,
|
|
9038
|
+
"style": {
|
|
9039
|
+
width: "8px",
|
|
9040
|
+
top: 0,
|
|
9041
|
+
bottom: 0,
|
|
9042
|
+
right: 0,
|
|
9043
|
+
position: "absolute",
|
|
9044
|
+
display
|
|
9045
|
+
},
|
|
9046
|
+
"onMousedown": onContainerMouseDown,
|
|
9047
|
+
"onMousemove": onShowBar
|
|
9048
|
+
}, [createVNode("div", {
|
|
9049
|
+
"ref": thumbRef,
|
|
9050
|
+
"style": {
|
|
9051
|
+
width: "100%",
|
|
9052
|
+
height: getSpinHeight() + "px",
|
|
9053
|
+
top: getTop() + "px",
|
|
9054
|
+
left: 0,
|
|
9055
|
+
position: "absolute",
|
|
9056
|
+
background: "rgba(0, 0, 0, 0.5)",
|
|
9057
|
+
borderRadius: "99px",
|
|
9058
|
+
cursor: "pointer",
|
|
9059
|
+
userSelect: "none"
|
|
9060
|
+
},
|
|
9061
|
+
"onMousedown": (e) => onMouseDown(e, removeEvents)
|
|
9062
|
+
}, null)]);
|
|
9063
|
+
};
|
|
9064
|
+
}
|
|
9065
|
+
});
|
|
9066
|
+
function _isSlot(s) {
|
|
9067
|
+
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
|
|
9068
|
+
}
|
|
9069
|
+
const Item = ({
|
|
9070
|
+
setRef
|
|
9071
|
+
}, {
|
|
9072
|
+
slots
|
|
9073
|
+
}) => {
|
|
9074
|
+
var _a;
|
|
9075
|
+
const children = flattenChildren((_a = slots.default) == null ? void 0 : _a.call(slots));
|
|
9076
|
+
return children && children.length ? cloneVNode(children[0], {
|
|
9077
|
+
ref: setRef
|
|
9078
|
+
}) : children;
|
|
9079
|
+
};
|
|
9080
|
+
Item.props = {
|
|
9081
|
+
setRef: {
|
|
9082
|
+
type: Function
|
|
9083
|
+
}
|
|
9084
|
+
};
|
|
9085
|
+
function renderChildren(list, startIndex, endIndex, setNodeRef, {
|
|
9086
|
+
getKey
|
|
9087
|
+
}, renderFunc) {
|
|
9088
|
+
if (renderFunc === void 0) {
|
|
9089
|
+
return "";
|
|
9090
|
+
}
|
|
9091
|
+
return list.slice(startIndex, endIndex + 1).map((item, index2) => {
|
|
9092
|
+
const eleIndex = startIndex + index2;
|
|
9093
|
+
const node = renderFunc(item, eleIndex, {});
|
|
9094
|
+
const key = getKey(item);
|
|
9095
|
+
return createVNode(Item, {
|
|
9096
|
+
"key": key,
|
|
9097
|
+
"setRef": (ele) => setNodeRef(item, ele)
|
|
9098
|
+
}, _isSlot(node) ? node : {
|
|
9099
|
+
default: () => [node]
|
|
9100
|
+
});
|
|
9101
|
+
});
|
|
9102
|
+
}
|
|
9103
|
+
const ScrollStyle = {
|
|
9104
|
+
overflowY: "auto",
|
|
9105
|
+
overflowAnchor: "none"
|
|
9106
|
+
};
|
|
9107
|
+
var VirtualList = defineComponent({
|
|
9108
|
+
name: "DVirtualList",
|
|
9109
|
+
props: virtualListProps,
|
|
9110
|
+
setup(props, ctx) {
|
|
9111
|
+
const {
|
|
9112
|
+
isVirtual,
|
|
9113
|
+
inVirtual
|
|
9114
|
+
} = useVirtual(props);
|
|
9115
|
+
const state = reactive({
|
|
9116
|
+
scrollTop: 0,
|
|
9117
|
+
scrollMoving: false
|
|
9118
|
+
});
|
|
9119
|
+
const data = computed(() => {
|
|
9120
|
+
return props.data || [];
|
|
9121
|
+
});
|
|
9122
|
+
const mergedData = shallowRef([]);
|
|
9123
|
+
watch(data, () => {
|
|
9124
|
+
mergedData.value = toRaw(data.value).slice();
|
|
9125
|
+
}, {
|
|
9126
|
+
immediate: true
|
|
9127
|
+
});
|
|
9128
|
+
const itemKey = shallowRef(null);
|
|
9129
|
+
watch(() => props.itemKey, (val) => {
|
|
9130
|
+
if (typeof val === "function") {
|
|
9131
|
+
itemKey.value = val;
|
|
9132
|
+
} else {
|
|
9133
|
+
if (val) {
|
|
9134
|
+
itemKey.value = (item) => item == null ? void 0 : item[val];
|
|
9135
|
+
}
|
|
9136
|
+
}
|
|
9137
|
+
}, {
|
|
9138
|
+
immediate: true
|
|
9139
|
+
});
|
|
9140
|
+
const componentRef = ref();
|
|
9141
|
+
const fillerInnerRef = ref();
|
|
9142
|
+
const barRef = ref();
|
|
9143
|
+
const getKey = (item) => {
|
|
9144
|
+
if (!itemKey.value || !props.itemKey) {
|
|
9145
|
+
return;
|
|
9146
|
+
}
|
|
9147
|
+
return itemKey.value(item);
|
|
9148
|
+
};
|
|
9149
|
+
const [setInstance, collectHeight, heights, updatedMark] = useHeights(mergedData, getKey);
|
|
9150
|
+
const calRes = reactive({
|
|
9151
|
+
scrollHeight: void 0,
|
|
9152
|
+
start: 0,
|
|
9153
|
+
end: 0,
|
|
9154
|
+
offset: void 0
|
|
9155
|
+
});
|
|
9156
|
+
const offsetHeight = ref(0);
|
|
9157
|
+
onMounted(() => {
|
|
9158
|
+
nextTick(() => {
|
|
9159
|
+
var _a;
|
|
9160
|
+
offsetHeight.value = ((_a = fillerInnerRef.value) == null ? void 0 : _a.offsetHeight) || 0;
|
|
9161
|
+
});
|
|
9162
|
+
});
|
|
9163
|
+
onUpdated(() => {
|
|
9164
|
+
nextTick(() => {
|
|
9165
|
+
var _a;
|
|
9166
|
+
offsetHeight.value = ((_a = fillerInnerRef.value) == null ? void 0 : _a.offsetHeight) || 0;
|
|
9167
|
+
});
|
|
9168
|
+
});
|
|
9169
|
+
watch([isVirtual, mergedData], () => {
|
|
9170
|
+
if (!isVirtual.value) {
|
|
9171
|
+
Object.assign(calRes, {
|
|
9172
|
+
scrollHeight: void 0,
|
|
9173
|
+
start: 0,
|
|
9174
|
+
end: mergedData.value.length - 1,
|
|
9175
|
+
offset: void 0
|
|
9176
|
+
});
|
|
9177
|
+
}
|
|
9178
|
+
}, {
|
|
9179
|
+
immediate: true
|
|
9180
|
+
});
|
|
9181
|
+
watch([isVirtual, mergedData, offsetHeight, inVirtual], () => {
|
|
9182
|
+
if (isVirtual.value && !inVirtual.value) {
|
|
9183
|
+
Object.assign(calRes, {
|
|
9184
|
+
scrollHeight: offsetHeight.value,
|
|
9185
|
+
start: 0,
|
|
9186
|
+
end: mergedData.value.length - 1,
|
|
9187
|
+
offset: void 0
|
|
9188
|
+
});
|
|
9189
|
+
}
|
|
9190
|
+
}, {
|
|
9191
|
+
immediate: true
|
|
9192
|
+
});
|
|
9193
|
+
watch([inVirtual, isVirtual, () => state.scrollTop, mergedData, updatedMark, () => props.height, offsetHeight], () => {
|
|
9194
|
+
if (!isVirtual.value || !inVirtual.value) {
|
|
9195
|
+
return;
|
|
9196
|
+
}
|
|
9197
|
+
let itemTop = 0;
|
|
9198
|
+
let startIndex;
|
|
9199
|
+
let startOffset;
|
|
9200
|
+
let endIndex;
|
|
9201
|
+
const mergedDataValue = unref(mergedData);
|
|
9202
|
+
const scrollTop = state.scrollTop;
|
|
9203
|
+
const {
|
|
9204
|
+
height
|
|
9205
|
+
} = props;
|
|
9206
|
+
const scrollTopHeight = scrollTop + height;
|
|
9207
|
+
for (let i = 0; i < mergedDataValue.length; i += 1) {
|
|
9208
|
+
const mergedDataItem = mergedDataValue[i];
|
|
9209
|
+
let cacheHeight;
|
|
9210
|
+
if (props.itemKey) {
|
|
9211
|
+
const key = getKey(mergedDataItem);
|
|
9212
|
+
cacheHeight = heights.get(key);
|
|
9213
|
+
}
|
|
9214
|
+
if (cacheHeight === void 0) {
|
|
9215
|
+
cacheHeight = props.itemHeight || 20;
|
|
9216
|
+
}
|
|
9217
|
+
const currentItemBottom = itemTop + cacheHeight;
|
|
9218
|
+
if (startIndex === void 0 && currentItemBottom >= scrollTop) {
|
|
9219
|
+
startIndex = i;
|
|
9220
|
+
startOffset = itemTop;
|
|
9221
|
+
}
|
|
9222
|
+
if (endIndex === void 0 && currentItemBottom > scrollTopHeight) {
|
|
9223
|
+
endIndex = i;
|
|
9224
|
+
}
|
|
9225
|
+
itemTop = currentItemBottom;
|
|
9226
|
+
}
|
|
9227
|
+
if (startIndex === void 0) {
|
|
9228
|
+
startIndex = 0;
|
|
9229
|
+
startOffset = 0;
|
|
9230
|
+
}
|
|
9231
|
+
if (endIndex === void 0) {
|
|
9232
|
+
endIndex = mergedDataValue.length - 1;
|
|
9233
|
+
}
|
|
9234
|
+
endIndex = Math.min(endIndex + 1, mergedDataValue.length);
|
|
9235
|
+
Object.assign(calRes, {
|
|
9236
|
+
scrollHeight: itemTop,
|
|
9237
|
+
start: startIndex,
|
|
9238
|
+
end: endIndex,
|
|
9239
|
+
offset: startOffset
|
|
9240
|
+
});
|
|
9241
|
+
}, {
|
|
9242
|
+
immediate: true
|
|
9243
|
+
});
|
|
9244
|
+
const maxScrollHeight = computed(() => (calRes.scrollHeight || 0) - props.height);
|
|
9245
|
+
const keepInRange = (newScrollTop) => {
|
|
9246
|
+
let newTop = newScrollTop;
|
|
9247
|
+
if (!Number.isNaN(maxScrollHeight.value)) {
|
|
9248
|
+
newTop = Math.min(newTop, maxScrollHeight.value);
|
|
9249
|
+
}
|
|
9250
|
+
newTop = Math.max(newTop, 0);
|
|
9251
|
+
return newTop;
|
|
9252
|
+
};
|
|
9253
|
+
const isScrollAtTop = computed(() => state.scrollTop <= 0);
|
|
9254
|
+
const isScrollAtBottom = computed(() => state.scrollTop >= maxScrollHeight.value);
|
|
9255
|
+
const originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom);
|
|
9256
|
+
const syncScrollTop = (newTop) => {
|
|
9257
|
+
let value;
|
|
9258
|
+
if (typeof newTop === "function") {
|
|
9259
|
+
value = newTop(state.scrollTop);
|
|
9260
|
+
} else {
|
|
9261
|
+
value = newTop;
|
|
9262
|
+
}
|
|
9263
|
+
const alignedTop = keepInRange(value);
|
|
9264
|
+
if (componentRef.value) {
|
|
9265
|
+
componentRef.value.scrollTop = alignedTop;
|
|
9266
|
+
}
|
|
9267
|
+
state.scrollTop = alignedTop;
|
|
9268
|
+
};
|
|
9269
|
+
const onScrollBar = (newScrollTop) => {
|
|
9270
|
+
const newTop = newScrollTop;
|
|
9271
|
+
syncScrollTop(newTop);
|
|
9272
|
+
};
|
|
9273
|
+
const onComponentScroll = (e) => {
|
|
9274
|
+
var _a, _b;
|
|
9275
|
+
const {
|
|
9276
|
+
scrollTop: newScrollTop
|
|
9277
|
+
} = e.currentTarget;
|
|
9278
|
+
if (Math.abs(newScrollTop - state.scrollTop) >= 1) {
|
|
9279
|
+
syncScrollTop(newScrollTop);
|
|
9280
|
+
}
|
|
9281
|
+
(_b = (_a = barRef == null ? void 0 : barRef.value) == null ? void 0 : _a.onShowBar) == null ? void 0 : _b.call(_a);
|
|
9282
|
+
ctx.emit("scroll", e);
|
|
9283
|
+
};
|
|
9284
|
+
const [onRawWheel, onFireFoxScroll] = useFrameWheel(isVirtual, isScrollAtTop, isScrollAtBottom, (offsetY) => {
|
|
9285
|
+
syncScrollTop((top) => {
|
|
9286
|
+
const newTop = top + offsetY;
|
|
9287
|
+
return newTop;
|
|
9288
|
+
});
|
|
9289
|
+
});
|
|
9290
|
+
useMobileTouchMove(isVirtual, componentRef, (deltaY, smoothOffset) => {
|
|
9291
|
+
if (originScroll(deltaY, !!smoothOffset)) {
|
|
9292
|
+
return false;
|
|
9293
|
+
}
|
|
9294
|
+
onRawWheel({
|
|
9295
|
+
deltaY
|
|
9296
|
+
});
|
|
9297
|
+
return true;
|
|
9298
|
+
});
|
|
9299
|
+
const onMozMousePixelScroll = (e) => {
|
|
9300
|
+
if (isVirtual.value) {
|
|
9301
|
+
e.preventDefault();
|
|
9302
|
+
}
|
|
9303
|
+
};
|
|
9304
|
+
const removeEventListener = () => {
|
|
9305
|
+
if (componentRef.value) {
|
|
9306
|
+
componentRef.value.removeEventListener("wheel", onRawWheel, {
|
|
9307
|
+
passive: false
|
|
9308
|
+
});
|
|
9309
|
+
componentRef.value.removeEventListener("DOMMouseScroll", onFireFoxScroll);
|
|
9310
|
+
componentRef.value.removeEventListener("MozMousePixelScroll", onMozMousePixelScroll);
|
|
9311
|
+
}
|
|
9312
|
+
};
|
|
9313
|
+
watchEffect(() => {
|
|
9314
|
+
nextTick(() => {
|
|
9315
|
+
if (componentRef.value) {
|
|
9316
|
+
removeEventListener();
|
|
9317
|
+
componentRef.value.addEventListener("wheel", onRawWheel, {
|
|
9318
|
+
passive: false
|
|
9319
|
+
});
|
|
9320
|
+
componentRef.value.addEventListener("DOMMouseScroll", onFireFoxScroll);
|
|
9321
|
+
componentRef.value.addEventListener("MozMousePixelScroll", onMozMousePixelScroll);
|
|
9322
|
+
}
|
|
9323
|
+
});
|
|
9324
|
+
});
|
|
9325
|
+
onBeforeUnmount(() => {
|
|
9326
|
+
removeEventListener();
|
|
9327
|
+
});
|
|
9328
|
+
const componentStyle = computed(() => {
|
|
9329
|
+
let cs = null;
|
|
9330
|
+
if (props.height) {
|
|
9331
|
+
cs = __spreadValues({
|
|
9332
|
+
maxHeight: isVirtual.value ? props.height + "px" : void 0
|
|
9333
|
+
}, ScrollStyle);
|
|
9334
|
+
if (isVirtual.value) {
|
|
9335
|
+
cs.overflowY = "hidden";
|
|
9336
|
+
if (state.scrollMoving) {
|
|
9337
|
+
cs.pointerEvents = "none";
|
|
9338
|
+
}
|
|
9339
|
+
}
|
|
9340
|
+
}
|
|
9341
|
+
return cs;
|
|
9342
|
+
});
|
|
9343
|
+
watch([() => calRes.start, () => calRes.end, mergedData], () => {
|
|
9344
|
+
const renderList = mergedData.value.slice(calRes.start, calRes.end + 1);
|
|
9345
|
+
ctx.emit("show-change", renderList, mergedData.value);
|
|
9346
|
+
}, {
|
|
9347
|
+
flush: "post"
|
|
9348
|
+
});
|
|
9349
|
+
return () => {
|
|
9350
|
+
const Component = props.component;
|
|
9351
|
+
return createVNode("div", {
|
|
9352
|
+
"style": {
|
|
9353
|
+
position: "relative"
|
|
9354
|
+
}
|
|
9355
|
+
}, [createVNode(Component, {
|
|
9356
|
+
"style": componentStyle.value,
|
|
9357
|
+
"ref": componentRef,
|
|
9358
|
+
"onScroll": onComponentScroll
|
|
9359
|
+
}, {
|
|
9360
|
+
default: () => [createVNode(ResizeObserverContainer, {
|
|
9361
|
+
"height": calRes.scrollHeight,
|
|
9362
|
+
"offset": calRes.offset,
|
|
9363
|
+
"onInnerResize": collectHeight,
|
|
9364
|
+
"ref": fillerInnerRef
|
|
9365
|
+
}, {
|
|
9366
|
+
default: () => renderChildren(mergedData.value, calRes.start, calRes.end, setInstance, {
|
|
9367
|
+
getKey
|
|
9368
|
+
}, ctx.slots.item)
|
|
9369
|
+
})]
|
|
9370
|
+
}), isVirtual.value && createVNode(ScrollBar, {
|
|
9371
|
+
"ref": barRef,
|
|
9372
|
+
"scrollTop": state.scrollTop,
|
|
9373
|
+
"height": props.height,
|
|
9374
|
+
"scrollHeight": calRes.scrollHeight,
|
|
9375
|
+
"count": mergedData.value.length,
|
|
9376
|
+
"onScroll": onScrollBar,
|
|
9377
|
+
"onStartMove": () => {
|
|
9378
|
+
state.scrollMoving = true;
|
|
9379
|
+
},
|
|
9380
|
+
"onStopMove": () => {
|
|
9381
|
+
state.scrollMoving = false;
|
|
9382
|
+
}
|
|
9383
|
+
}, null)]);
|
|
9384
|
+
};
|
|
9385
|
+
}
|
|
9386
|
+
});
|
|
8415
9387
|
function useToggle() {
|
|
8416
9388
|
return function useToggle2(data, core) {
|
|
8417
9389
|
const { getNode, setNodeValue } = core;
|
|
@@ -8463,7 +9435,7 @@ function omit(obj, ...keys) {
|
|
|
8463
9435
|
}
|
|
8464
9436
|
function generateInnerTree(tree2, key = "children", level = 0, path = []) {
|
|
8465
9437
|
level++;
|
|
8466
|
-
return tree2.reduce((acc, item) => {
|
|
9438
|
+
return tree2.reduce((acc, item, currentIndex) => {
|
|
8467
9439
|
var _a, _b;
|
|
8468
9440
|
const newItem = Object.assign({}, item);
|
|
8469
9441
|
if (newItem.id === void 0) {
|
|
@@ -8471,6 +9443,8 @@ function generateInnerTree(tree2, key = "children", level = 0, path = []) {
|
|
|
8471
9443
|
newItem.idType = "random";
|
|
8472
9444
|
}
|
|
8473
9445
|
newItem.level = level;
|
|
9446
|
+
newItem.parentChildNode = tree2.length;
|
|
9447
|
+
newItem.currentIndex = currentIndex;
|
|
8474
9448
|
if (path.length > 0 && ((_a = path[path.length - 1]) == null ? void 0 : _a.level) >= level) {
|
|
8475
9449
|
while (((_b = path[path.length - 1]) == null ? void 0 : _b.level) >= level) {
|
|
8476
9450
|
path.pop();
|
|
@@ -8493,11 +9467,21 @@ const DEFAULT_CONFIG = {
|
|
|
8493
9467
|
recursive: true
|
|
8494
9468
|
};
|
|
8495
9469
|
function useCore() {
|
|
9470
|
+
const nodeMap = /* @__PURE__ */ new Map();
|
|
8496
9471
|
return function useCore2(data) {
|
|
8497
9472
|
const getLevel = (node) => {
|
|
8498
9473
|
return data.value.find((item) => item.id === node.id).level;
|
|
8499
9474
|
};
|
|
8500
9475
|
const getChildren = (node, userConfig = DEFAULT_CONFIG) => {
|
|
9476
|
+
if (node.isLeaf) {
|
|
9477
|
+
return [];
|
|
9478
|
+
}
|
|
9479
|
+
if (node.id && nodeMap.has(node.id)) {
|
|
9480
|
+
const cacheNode = nodeMap.get(node.id);
|
|
9481
|
+
if (cacheNode) {
|
|
9482
|
+
return cacheNode;
|
|
9483
|
+
}
|
|
9484
|
+
}
|
|
8501
9485
|
const getInnerExpendedTree = () => {
|
|
8502
9486
|
return computed(() => {
|
|
8503
9487
|
let excludeNodes = [];
|
|
@@ -8507,7 +9491,7 @@ function useCore() {
|
|
|
8507
9491
|
if (excludeNodes.map((innerNode) => innerNode.id).includes(item.id)) {
|
|
8508
9492
|
continue;
|
|
8509
9493
|
}
|
|
8510
|
-
if (item.expanded !== true) {
|
|
9494
|
+
if (item.expanded !== true && !item.isLeaf) {
|
|
8511
9495
|
excludeNodes = getChildren(item);
|
|
8512
9496
|
}
|
|
8513
9497
|
result2.push(item);
|
|
@@ -8526,6 +9510,9 @@ function useCore() {
|
|
|
8526
9510
|
result.push(treeData.value[i]);
|
|
8527
9511
|
}
|
|
8528
9512
|
}
|
|
9513
|
+
if (node.id) {
|
|
9514
|
+
nodeMap.set(node.id, result);
|
|
9515
|
+
}
|
|
8529
9516
|
return result;
|
|
8530
9517
|
};
|
|
8531
9518
|
const getParent = (node) => {
|
|
@@ -8555,11 +9542,16 @@ function useCore() {
|
|
|
8555
9542
|
return data.value.find((item) => item.id === node.id);
|
|
8556
9543
|
};
|
|
8557
9544
|
const setNodeValue = (node, key, value) => {
|
|
9545
|
+
nodeMap.clear();
|
|
8558
9546
|
data.value[getIndex(node)][key] = value;
|
|
8559
9547
|
};
|
|
8560
9548
|
const setTree = (newTree) => {
|
|
9549
|
+
nodeMap.clear();
|
|
8561
9550
|
data.value = generateInnerTree(newTree);
|
|
8562
9551
|
};
|
|
9552
|
+
onUnmounted(() => {
|
|
9553
|
+
nodeMap.clear();
|
|
9554
|
+
});
|
|
8563
9555
|
return {
|
|
8564
9556
|
getLevel,
|
|
8565
9557
|
getChildren,
|
|
@@ -8756,6 +9748,9 @@ const treeProps = {
|
|
|
8756
9748
|
check: {
|
|
8757
9749
|
type: [Boolean, String],
|
|
8758
9750
|
default: false
|
|
9751
|
+
},
|
|
9752
|
+
height: {
|
|
9753
|
+
type: [Number, String]
|
|
8759
9754
|
}
|
|
8760
9755
|
};
|
|
8761
9756
|
var tree = "";
|
|
@@ -8792,28 +9787,43 @@ var Tree = defineComponent({
|
|
|
8792
9787
|
expose({
|
|
8793
9788
|
treeFactory
|
|
8794
9789
|
});
|
|
9790
|
+
const renderDTreeNode = (treeNode) => slots.default ? renderSlot(useSlots(), "default", {
|
|
9791
|
+
treeFactory,
|
|
9792
|
+
nodeData: treeNode
|
|
9793
|
+
}) : createVNode(DTreeNode, {
|
|
9794
|
+
"data": treeNode,
|
|
9795
|
+
"check": check.value
|
|
9796
|
+
}, {
|
|
9797
|
+
default: () => slots.content ? renderSlot(useSlots(), "content", {
|
|
9798
|
+
nodeData: treeNode
|
|
9799
|
+
}) : createVNode(DTreeNodeContent, {
|
|
9800
|
+
"data": treeNode
|
|
9801
|
+
}, null),
|
|
9802
|
+
icon: () => slots.icon ? renderSlot(useSlots(), "icon", {
|
|
9803
|
+
nodeData: treeNode,
|
|
9804
|
+
toggleNode
|
|
9805
|
+
}) : createVNode(DTreeNodeToggle, {
|
|
9806
|
+
"data": treeNode
|
|
9807
|
+
}, null)
|
|
9808
|
+
});
|
|
8795
9809
|
return () => {
|
|
8796
|
-
|
|
9810
|
+
const Component = props.height ? VirtualList : "div";
|
|
9811
|
+
const treeData = getExpendedTree == null ? void 0 : getExpendedTree().value;
|
|
9812
|
+
const vSlotsProps = {
|
|
9813
|
+
default: props.height || (() => treeData == null ? void 0 : treeData.map(renderDTreeNode)),
|
|
9814
|
+
item: props.height && ((treeNode) => renderDTreeNode(treeNode))
|
|
9815
|
+
};
|
|
9816
|
+
let virtualListProps2 = {};
|
|
9817
|
+
if (props.height) {
|
|
9818
|
+
virtualListProps2 = {
|
|
9819
|
+
height: props.height,
|
|
9820
|
+
data: treeData,
|
|
9821
|
+
itemHeight: NODE_HEIGHT
|
|
9822
|
+
};
|
|
9823
|
+
}
|
|
9824
|
+
return createVNode(Component, mergeProps({
|
|
8797
9825
|
"class": ns2.b()
|
|
8798
|
-
},
|
|
8799
|
-
treeFactory,
|
|
8800
|
-
nodeData: treeNode
|
|
8801
|
-
}) : createVNode(DTreeNode, {
|
|
8802
|
-
"data": treeNode,
|
|
8803
|
-
"check": check.value
|
|
8804
|
-
}, {
|
|
8805
|
-
default: () => slots.content ? renderSlot(useSlots(), "content", {
|
|
8806
|
-
nodeData: treeNode
|
|
8807
|
-
}) : createVNode(DTreeNodeContent, {
|
|
8808
|
-
"data": treeNode
|
|
8809
|
-
}, null),
|
|
8810
|
-
icon: () => slots.icon ? renderSlot(useSlots(), "icon", {
|
|
8811
|
-
nodeData: treeNode,
|
|
8812
|
-
toggleNode
|
|
8813
|
-
}) : createVNode(DTreeNodeToggle, {
|
|
8814
|
-
"data": treeNode
|
|
8815
|
-
}, null)
|
|
8816
|
-
}))]);
|
|
9826
|
+
}, virtualListProps2), vSlotsProps);
|
|
8817
9827
|
};
|
|
8818
9828
|
}
|
|
8819
9829
|
});
|