@sdata/web-vue 3.3.1 → 3.4.0
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/sd.css +14 -4
- package/dist/sd.min.css +1 -1
- package/es/_components/select-view/select-view.d.ts +1 -1
- package/es/_components/select-view/style/index.css +1 -1
- package/es/_components/virtual-list/interface.d.ts +13 -6
- package/es/_components/virtual-list/style/index.scss +3 -1
- package/es/_components/virtual-list/virtual-list.vue.d.ts +31 -77
- package/es/_components/virtual-list/virtual-list.vue_vue_type_script_setup_true_lang.js +180 -503
- package/es/auto-complete/auto-complete.d.ts +1 -1
- package/es/auto-complete/auto-complete.js +3 -1
- package/es/auto-complete/index.d.ts +3 -3
- package/es/card/card.d.ts +3 -3
- package/es/card/index.d.ts +6 -6
- package/es/cascader/base-cascader-panel.d.ts +1 -1
- package/es/cascader/cascader-option.d.ts +1 -1
- package/es/cascader/cascader-option.js +8 -3
- package/es/cascader/cascader-panel.vue.d.ts +1 -1
- package/es/cascader/cascader-search-panel.d.ts +1 -1
- package/es/cascader/cascader.vue.d.ts +2 -2
- package/es/cascader/style/index.css +4 -1
- package/es/cascader/style/index.d.ts +1 -0
- package/es/cascader/style/index.scss +4 -1
- package/es/config-provider/config-provider.vue.d.ts +1 -1
- package/es/config-provider/index.d.ts +3 -3
- package/es/descriptions/descriptions.d.ts +2 -2
- package/es/descriptions/index.d.ts +6 -6
- package/es/drawer/drawer.vue.d.ts +2 -2
- package/es/drawer/index.d.ts +5 -5
- package/es/dropdown/dropdown-panel.vue.d.ts +1 -1
- package/es/ellipsis/ellipsis.vue.d.ts +1 -1
- package/es/ellipsis/ellipsis.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/ellipsis/index.d.ts +6 -6
- package/es/ellipsis/performant-ellipsis.vue.d.ts +1 -1
- package/es/image/preview-group.vue.d.ts +1 -1
- package/es/index.css +14 -4
- package/es/input-tag/style/index.css +1 -1
- package/es/link/index.d.ts +6 -6
- package/es/link/link.vue.d.ts +2 -2
- package/es/list/list-item-meta.vue.d.ts +2 -2
- package/es/list/list-item-meta.vue_vue_type_script_setup_true_lang.js +10 -3
- package/es/list/style/index.css +5 -0
- package/es/list/style/index.d.ts +1 -0
- package/es/list/style/index.scss +6 -0
- package/es/menu/item.d.ts +1 -1
- package/es/modal/index.d.ts +5 -5
- package/es/modal/modal.vue.d.ts +2 -2
- package/es/progress/line.vue.d.ts +1 -1
- package/es/qr-code/index.d.ts +12 -12
- package/es/qr-code/qr-code.vue.d.ts +4 -4
- package/es/select/index.d.ts +5 -5
- package/es/select/select-dropdown.vue.d.ts +1 -1
- package/es/select/select.d.ts +2 -2
- package/es/select/select.js +4 -2
- package/es/select/style/index.d.ts +1 -0
- package/es/slider/index.d.ts +3 -3
- package/es/slider/slider.vue.d.ts +1 -1
- package/es/spin/index.d.ts +3 -3
- package/es/spin/spin.d.ts +1 -1
- package/es/statistic/index.d.ts +3 -3
- package/es/statistic/statistic.vue.d.ts +1 -1
- package/es/table/index.d.ts +13 -7
- package/es/table/style/index.css +4 -1
- package/es/table/style/index.scss +6 -1
- package/es/table/table-column.d.ts +1 -1
- package/es/table/table-td.d.ts +1 -1
- package/es/table/table.d.ts +3 -1
- package/es/table/table.js +66 -34
- package/es/tabs/index.d.ts +3 -3
- package/es/tabs/tabs.d.ts +1 -1
- package/es/tag/index.d.ts +6 -6
- package/es/tag/style/index.css +1 -1
- package/es/tag/style/index.scss +1 -1
- package/es/tag/tag.vue.d.ts +2 -2
- package/es/timeline/index.d.ts +6 -6
- package/es/timeline/timeline.d.ts +3 -3
- package/es/tree/base-node.vue.d.ts +4 -8
- package/es/tree/base-node.vue_vue_type_script_setup_true_lang.js +14 -16
- package/es/tree/tree.vue.d.ts +2 -2
- package/es/tree-select/tree-select.vue.d.ts +4 -4
- package/es/typography/base.d.ts +1 -1
- package/es/watermark/index.d.ts +3 -3
- package/es/watermark/watermark.d.ts +1 -1
- package/json/web-types.json +1 -1
- package/package.json +3 -3
- package/es/_components/virtual-list/use-virtual-size.js +0 -94
- package/es/_components/virtual-list-v2/hooks/use-size.d.ts +0 -17
- package/es/_components/virtual-list-v2/hooks/use-size.js +0 -95
- package/es/_components/virtual-list-v2/index.d.ts +0 -2
- package/es/_components/virtual-list-v2/index.js +0 -5
- package/es/_components/virtual-list-v2/interface.d.ts +0 -44
- package/es/_components/virtual-list-v2/virtual-list-item.d.ts +0 -22
- package/es/_components/virtual-list-v2/virtual-list-item.js +0 -37
- package/es/_components/virtual-list-v2/virtual-list.js +0 -47
- package/es/_components/virtual-list-v2/virtual-list.vue.d.ts +0 -749
- package/es/_components/virtual-list-v2/virtual-list.vue_vue_type_script_lang.js +0 -179
- package/es/_virtual/_plugin-vue_export-helper.js +0 -8
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { _objectSpread2 } from "../../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/objectSpread2.js";
|
|
2
2
|
import { getPrefixCls } from "../../_utils/global-config.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { isString } from "../../_utils/is.js";
|
|
4
|
+
import { _objectWithoutProperties } from "../../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/objectWithoutProperties.js";
|
|
5
5
|
import { _asyncToGenerator } from "../../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/asyncToGenerator.js";
|
|
6
|
-
import {
|
|
6
|
+
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, mergeProps, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, openBlock, ref, renderSlot, unref, watch, withCtx } from "vue";
|
|
7
7
|
import { OverlayScrollbars } from "overlayscrollbars";
|
|
8
|
-
import {
|
|
8
|
+
import { Virtualizer } from "virtua/vue";
|
|
9
9
|
//#region components/_components/virtual-list/virtual-list.vue?vue&type=script&setup=true&lang.ts
|
|
10
|
+
var _excluded = ["class", "style"];
|
|
10
11
|
var virtual_list_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent(_objectSpread2(_objectSpread2({}, { name: "VirtualList" }), {}, {
|
|
11
12
|
__name: "virtual-list",
|
|
12
13
|
props: {
|
|
@@ -130,21 +131,16 @@ var virtual_list_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
130
131
|
const props = __props;
|
|
131
132
|
const prefixCls = getPrefixCls("virtual-list");
|
|
132
133
|
const scrollbarHostRef = ref();
|
|
133
|
-
const scrollerRef = ref();
|
|
134
134
|
const viewportRef = ref();
|
|
135
|
-
const
|
|
135
|
+
const virtuaRef = ref();
|
|
136
136
|
const osInstanceRef = ref(null);
|
|
137
137
|
const overlayViewportReadyRef = ref(false);
|
|
138
138
|
const resolvedItems = computed(() => {
|
|
139
139
|
var _props$items;
|
|
140
140
|
return (_props$items = props.items) !== null && _props$items !== void 0 ? _props$items : [];
|
|
141
141
|
});
|
|
142
|
-
const
|
|
143
|
-
|
|
144
|
-
});
|
|
145
|
-
const hasCompatContentWrapper = computed(() => {
|
|
146
|
-
return Boolean(props.contentWrapperAttrs || isObject(props.component) && props.component.item);
|
|
147
|
-
});
|
|
142
|
+
const isEmpty = computed(() => resolvedItems.value.length === 0);
|
|
143
|
+
const isHorizontal = computed(() => props.direction === "horizontal");
|
|
148
144
|
const resolvedScrollbarProps = computed(() => {
|
|
149
145
|
if (typeof props.scrollbar === "boolean") return { type: "embed" };
|
|
150
146
|
return _objectSpread2({ type: "embed" }, props.scrollbar);
|
|
@@ -166,158 +162,74 @@ var virtual_list_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
166
162
|
if (props.height === void 0) return;
|
|
167
163
|
return typeof props.height === "number" ? `${props.height}px` : props.height;
|
|
168
164
|
});
|
|
169
|
-
const
|
|
170
|
-
|
|
171
|
-
if (
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
content: "div",
|
|
175
|
-
item: "div"
|
|
176
|
-
}, props.component);
|
|
177
|
-
return {
|
|
178
|
-
container: (_props$component = props.component) !== null && _props$component !== void 0 ? _props$component : "div",
|
|
179
|
-
list: "div",
|
|
180
|
-
content: "div",
|
|
181
|
-
item: "div"
|
|
182
|
-
};
|
|
183
|
-
});
|
|
184
|
-
const compatFixedSize = computed(() => {
|
|
185
|
-
return props.fixedSize || typeof props.itemSize === "number";
|
|
186
|
-
});
|
|
187
|
-
const compatEstimatedSize = computed(() => {
|
|
188
|
-
if (props.estimatedSize !== void 0) return props.estimatedSize;
|
|
189
|
-
if (typeof props.itemSize === "number") return props.itemSize;
|
|
190
|
-
if (typeof props.minItemSize === "number") return props.minItemSize;
|
|
191
|
-
});
|
|
192
|
-
const compatViewportSize = ref(0);
|
|
193
|
-
const compatResolvedItemSize = computed(() => {
|
|
194
|
-
var _compatEstimatedSize$;
|
|
195
|
-
return (_compatEstimatedSize$ = compatEstimatedSize.value) !== null && _compatEstimatedSize$ !== void 0 ? _compatEstimatedSize$ : 30;
|
|
196
|
-
});
|
|
197
|
-
const compatBuffer = computed(() => {
|
|
198
|
-
var _props$buffer;
|
|
199
|
-
return (_props$buffer = props.buffer) !== null && _props$buffer !== void 0 ? _props$buffer : 200;
|
|
200
|
-
});
|
|
201
|
-
const compatOverscan = computed(() => {
|
|
202
|
-
const baseItemSize = Math.max(compatResolvedItemSize.value, 1);
|
|
203
|
-
return Math.max(Math.ceil(compatBuffer.value / baseItemSize), 0);
|
|
204
|
-
});
|
|
205
|
-
const compatVisibleCount = computed(() => {
|
|
206
|
-
const baseItemSize = Math.max(compatResolvedItemSize.value, 1);
|
|
207
|
-
if (compatViewportSize.value <= 0) return 1;
|
|
208
|
-
return Math.max(Math.ceil(compatViewportSize.value / baseItemSize), 1);
|
|
209
|
-
});
|
|
210
|
-
const getCompatItemKey = (item, index) => {
|
|
211
|
-
const keyField = props.keyField;
|
|
212
|
-
if (typeof keyField === "function") return keyField(item, index);
|
|
213
|
-
if (item && typeof item === "object" && isString(keyField)) {
|
|
214
|
-
var _item$keyField;
|
|
215
|
-
return (_item$keyField = item[keyField]) !== null && _item$keyField !== void 0 ? _item$keyField : index;
|
|
216
|
-
}
|
|
217
|
-
return index;
|
|
218
|
-
};
|
|
219
|
-
const { frontPadding: compatFrontPadding, behindPadding: compatBehindPadding, start: compatStartRef, end: compatEnd, getStartByScroll: getCompatStartByScroll, setItemSize: compatSetItemSize, setStart: setCompatStart, getScrollOffset: getCompatScrollOffset, getItemSize: getCompatItemSize } = useVirtualSize({
|
|
220
|
-
dataKeys: computed(() => {
|
|
221
|
-
return resolvedItems.value.map((item, index) => getCompatItemKey(item, index));
|
|
222
|
-
}),
|
|
223
|
-
fixedSize: compatFixedSize,
|
|
224
|
-
estimatedSize: compatEstimatedSize,
|
|
225
|
-
overscan: compatOverscan,
|
|
226
|
-
visibleCount: compatVisibleCount
|
|
227
|
-
});
|
|
228
|
-
const compatCurrentList = computed(() => {
|
|
229
|
-
if (!isCompatMode.value) return [];
|
|
230
|
-
if (props.threshold && resolvedItems.value.length <= props.threshold) return resolvedItems.value;
|
|
231
|
-
return resolvedItems.value.slice(compatStartRef.value, compatEnd.value);
|
|
232
|
-
});
|
|
233
|
-
const compatStart = computed(() => {
|
|
234
|
-
if (props.threshold && resolvedItems.value.length <= props.threshold) return 0;
|
|
235
|
-
return compatStartRef.value;
|
|
236
|
-
});
|
|
237
|
-
const compatViewportStyle = computed(() => {
|
|
238
|
-
const style = { minHeight: 0 };
|
|
239
|
-
if (resolvedHeightValue.value !== void 0) style.height = resolvedHeightValue.value !== "auto" ? "100%" : resolvedHeightValue.value;
|
|
240
|
-
if (!overlayViewportReadyRef.value) if (props.direction === "horizontal") {
|
|
241
|
-
style.overflowX = "auto";
|
|
242
|
-
style.overflowY = "hidden";
|
|
243
|
-
} else {
|
|
244
|
-
style.overflowY = "auto";
|
|
245
|
-
style.overflowX = "hidden";
|
|
246
|
-
}
|
|
247
|
-
return style;
|
|
248
|
-
});
|
|
249
|
-
const compatListPaddingStyle = computed(() => {
|
|
250
|
-
if (props.paddingPosition !== "list") return;
|
|
251
|
-
return {
|
|
252
|
-
paddingTop: `${compatFrontPadding.value}px`,
|
|
253
|
-
paddingBottom: `${compatBehindPadding.value}px`
|
|
254
|
-
};
|
|
255
|
-
});
|
|
256
|
-
const compatContentPaddingStyle = computed(() => {
|
|
257
|
-
if (props.paddingPosition !== "content") return;
|
|
258
|
-
return {
|
|
259
|
-
paddingTop: `${compatFrontPadding.value}px`,
|
|
260
|
-
paddingBottom: `${compatBehindPadding.value}px`
|
|
261
|
-
};
|
|
262
|
-
});
|
|
263
|
-
const compatListStyle = computed(() => {
|
|
264
|
-
if (!props.listStyle && !compatListPaddingStyle.value) return;
|
|
265
|
-
return _objectSpread2(_objectSpread2({}, props.listStyle), compatListPaddingStyle.value);
|
|
266
|
-
});
|
|
267
|
-
const compatContentStyle = computed(() => {
|
|
268
|
-
return compatContentPaddingStyle.value;
|
|
269
|
-
});
|
|
270
|
-
const compatContentWrapperStyle = computed(() => {
|
|
271
|
-
if (!hasCompatContentWrapper.value || props.paddingPosition !== "content") return;
|
|
272
|
-
return compatContentStyle.value;
|
|
273
|
-
});
|
|
274
|
-
const updateCompatItemSize = (key, element) => {
|
|
275
|
-
const height = element.getBoundingClientRect().height || element.offsetHeight;
|
|
276
|
-
if (height) compatSetItemSize(key, height);
|
|
277
|
-
};
|
|
278
|
-
const updateCompatItemSizes = () => {
|
|
279
|
-
compatItemRefs.forEach((element, key) => {
|
|
280
|
-
updateCompatItemSize(key, element);
|
|
281
|
-
});
|
|
282
|
-
};
|
|
283
|
-
const updateCompatViewportSize = () => {
|
|
284
|
-
var _scrollerElement$clie, _scrollerElement$clie2;
|
|
285
|
-
if (!isCompatMode.value) {
|
|
286
|
-
compatViewportSize.value = 0;
|
|
287
|
-
return;
|
|
165
|
+
const resolveSizeValue = (value) => {
|
|
166
|
+
if (typeof value === "number") return value > 0 ? value : void 0;
|
|
167
|
+
if (typeof value === "string") {
|
|
168
|
+
const parsed = Number.parseFloat(value);
|
|
169
|
+
return parsed > 0 ? parsed : void 0;
|
|
288
170
|
}
|
|
289
|
-
const scrollerElement = getScrollerElement();
|
|
290
|
-
const nextViewportSize = props.direction === "horizontal" ? (_scrollerElement$clie = scrollerElement === null || scrollerElement === void 0 ? void 0 : scrollerElement.clientWidth) !== null && _scrollerElement$clie !== void 0 ? _scrollerElement$clie : 0 : (_scrollerElement$clie2 = scrollerElement === null || scrollerElement === void 0 ? void 0 : scrollerElement.clientHeight) !== null && _scrollerElement$clie2 !== void 0 ? _scrollerElement$clie2 : 0;
|
|
291
|
-
if (nextViewportSize > 0) compatViewportSize.value = nextViewportSize;
|
|
292
171
|
};
|
|
293
|
-
const
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
if (!(element instanceof HTMLElement)) {
|
|
297
|
-
compatItemRefs.delete(key);
|
|
298
|
-
return;
|
|
299
|
-
}
|
|
300
|
-
compatItemRefs.set(key, element);
|
|
301
|
-
updateCompatItemSize(key, element);
|
|
172
|
+
const formatSizeValue = (value) => {
|
|
173
|
+
if (typeof value === "number") return value > 0 ? `${value}px` : void 0;
|
|
174
|
+
if (typeof value === "string") return resolveSizeValue(value) === void 0 ? void 0 : value;
|
|
302
175
|
};
|
|
303
|
-
const
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
176
|
+
const itemSizeHint = computed(() => {
|
|
177
|
+
var _props$estimatedSize;
|
|
178
|
+
const itemSize = resolveSizeValue(typeof props.itemSize === "number" || typeof props.itemSize === "string" ? props.itemSize : void 0);
|
|
179
|
+
if (itemSize !== void 0) return itemSize;
|
|
180
|
+
return (_props$estimatedSize = props.estimatedSize) !== null && _props$estimatedSize !== void 0 ? _props$estimatedSize : resolveSizeValue(props.minItemSize);
|
|
181
|
+
});
|
|
182
|
+
const fixedItemSizeValue = computed(() => {
|
|
183
|
+
if (!props.fixedSize) return;
|
|
184
|
+
return formatSizeValue(typeof props.itemSize === "number" || typeof props.itemSize === "string" ? props.itemSize : void 0);
|
|
185
|
+
});
|
|
186
|
+
const minItemSizeValue = computed(() => formatSizeValue(props.minItemSize));
|
|
187
|
+
const virtualizerKey = computed(() => {
|
|
188
|
+
var _itemSizeHint$value, _minItemSizeValue$val;
|
|
189
|
+
return [
|
|
190
|
+
isHorizontal.value ? "horizontal" : "vertical",
|
|
191
|
+
props.fixedSize ? "fixed" : "dynamic",
|
|
192
|
+
(_itemSizeHint$value = itemSizeHint.value) !== null && _itemSizeHint$value !== void 0 ? _itemSizeHint$value : "auto",
|
|
193
|
+
(_minItemSizeValue$val = minItemSizeValue.value) !== null && _minItemSizeValue$val !== void 0 ? _minItemSizeValue$val : "none"
|
|
194
|
+
].join(":");
|
|
195
|
+
});
|
|
196
|
+
const resolvedBuffer = computed(() => props.buffer);
|
|
197
|
+
const resolvedAs = computed(() => props.listTag || "div");
|
|
198
|
+
const resolvedItem = computed(() => props.itemTag || "div");
|
|
199
|
+
const resolvedListAttrs = computed(() => {
|
|
200
|
+
if (!props.listAttrs) return;
|
|
201
|
+
const _props$listAttrs = props.listAttrs, { class: _class, style: _style } = _props$listAttrs;
|
|
202
|
+
return _objectWithoutProperties(_props$listAttrs, _excluded);
|
|
203
|
+
});
|
|
204
|
+
const listClassNames = computed(() => {
|
|
205
|
+
var _props$listAttrs2;
|
|
206
|
+
return [
|
|
207
|
+
(_props$listAttrs2 = props.listAttrs) === null || _props$listAttrs2 === void 0 ? void 0 : _props$listAttrs2.class,
|
|
208
|
+
`${prefixCls}-content`,
|
|
209
|
+
props.listClass
|
|
210
|
+
];
|
|
313
211
|
});
|
|
314
|
-
const
|
|
315
|
-
|
|
212
|
+
const listStyle = computed(() => {
|
|
213
|
+
var _props$listAttrs3;
|
|
214
|
+
return [(_props$listAttrs3 = props.listAttrs) === null || _props$listAttrs3 === void 0 ? void 0 : _props$listAttrs3.style, props.listStyle];
|
|
215
|
+
});
|
|
216
|
+
const resolvedItemProps = computed(() => {
|
|
217
|
+
const itemStyle = {};
|
|
218
|
+
if (fixedItemSizeValue.value !== void 0) if (isHorizontal.value) itemStyle.width = fixedItemSizeValue.value;
|
|
219
|
+
else itemStyle.height = fixedItemSizeValue.value;
|
|
220
|
+
if (minItemSizeValue.value !== void 0) if (isHorizontal.value) itemStyle.minWidth = minItemSizeValue.value;
|
|
221
|
+
else itemStyle.minHeight = minItemSizeValue.value;
|
|
222
|
+
if (props.itemClass === void 0 && Object.keys(itemStyle).length === 0) return;
|
|
223
|
+
const itemClass = props.itemClass;
|
|
224
|
+
return () => ({
|
|
225
|
+
class: itemClass,
|
|
226
|
+
style: itemStyle
|
|
227
|
+
});
|
|
316
228
|
});
|
|
317
|
-
const
|
|
229
|
+
const viewportStyle = computed(() => {
|
|
318
230
|
const style = { minHeight: 0 };
|
|
319
231
|
if (resolvedHeightValue.value !== void 0) style.height = "100%";
|
|
320
|
-
if (!overlayViewportReadyRef.value) if (
|
|
232
|
+
if (!overlayViewportReadyRef.value) if (isHorizontal.value) {
|
|
321
233
|
style.overflowX = "auto";
|
|
322
234
|
style.overflowY = "hidden";
|
|
323
235
|
} else {
|
|
@@ -353,55 +265,6 @@ var virtual_list_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
353
265
|
if (!instance || instance.state().destroyed) return null;
|
|
354
266
|
return instance;
|
|
355
267
|
};
|
|
356
|
-
const getScrollerElement = () => {
|
|
357
|
-
if (isCompatMode.value) {
|
|
358
|
-
var _viewportRef$value;
|
|
359
|
-
return (_viewportRef$value = viewportRef.value) !== null && _viewportRef$value !== void 0 ? _viewportRef$value : null;
|
|
360
|
-
}
|
|
361
|
-
const scroller = scrollerRef.value;
|
|
362
|
-
return (scroller === null || scroller === void 0 ? void 0 : scroller.$el) instanceof HTMLElement ? scroller.$el : null;
|
|
363
|
-
};
|
|
364
|
-
const getEstimatedItemSize = () => {
|
|
365
|
-
if (typeof props.itemSize === "number" && props.itemSize > 0) return props.itemSize;
|
|
366
|
-
if (typeof props.minItemSize === "number" && props.minItemSize > 0) return props.minItemSize;
|
|
367
|
-
return 32;
|
|
368
|
-
};
|
|
369
|
-
const shouldResetScrollForSmallList = (nextItems, previousItems) => {
|
|
370
|
-
const viewport = getScrollerElement();
|
|
371
|
-
if (!viewport || viewport.scrollTop <= 0 || !(previousItems === null || previousItems === void 0 ? void 0 : previousItems.length)) return false;
|
|
372
|
-
if (!nextItems.length) return true;
|
|
373
|
-
if (nextItems.length >= previousItems.length || props.shift) return false;
|
|
374
|
-
const estimatedItemSize = getEstimatedItemSize();
|
|
375
|
-
const visibleCount = Math.max(1, Math.ceil(viewport.clientHeight / estimatedItemSize));
|
|
376
|
-
return nextItems.length <= visibleCount * 2;
|
|
377
|
-
};
|
|
378
|
-
const clampScrollPosition = () => {
|
|
379
|
-
const viewport = getScrollerElement();
|
|
380
|
-
if (!viewport) return;
|
|
381
|
-
const maxScrollTop = Math.max(viewport.scrollHeight - viewport.clientHeight, 0);
|
|
382
|
-
if (viewport.scrollTop > maxScrollTop) scrollToPosition(maxScrollTop);
|
|
383
|
-
};
|
|
384
|
-
const refreshVisibleWindow = (itemsChanged = true) => {
|
|
385
|
-
if (isDynamicScroller.value) {
|
|
386
|
-
forceUpdate(true);
|
|
387
|
-
return;
|
|
388
|
-
}
|
|
389
|
-
updateVisibleItems(itemsChanged, true);
|
|
390
|
-
};
|
|
391
|
-
const waitForLayoutFrame = function() {
|
|
392
|
-
var _ref = _asyncToGenerator(function* () {
|
|
393
|
-
yield new Promise((resolve) => {
|
|
394
|
-
if (typeof requestAnimationFrame === "function") {
|
|
395
|
-
requestAnimationFrame(() => resolve());
|
|
396
|
-
return;
|
|
397
|
-
}
|
|
398
|
-
resolve();
|
|
399
|
-
});
|
|
400
|
-
});
|
|
401
|
-
return function waitForLayoutFrame() {
|
|
402
|
-
return _ref.apply(this, arguments);
|
|
403
|
-
};
|
|
404
|
-
}();
|
|
405
268
|
const destroyOverlayScrollbar = () => {
|
|
406
269
|
var _osInstanceRef$value;
|
|
407
270
|
overlayViewportReadyRef.value = false;
|
|
@@ -409,11 +272,11 @@ var virtual_list_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
409
272
|
osInstanceRef.value = null;
|
|
410
273
|
};
|
|
411
274
|
const initOverlayScrollbar = function() {
|
|
412
|
-
var
|
|
275
|
+
var _ref = _asyncToGenerator(function* (waitForDom = true) {
|
|
413
276
|
destroyOverlayScrollbar();
|
|
414
277
|
if (waitForDom) yield nextTick();
|
|
415
278
|
const host = scrollbarHostRef.value;
|
|
416
|
-
const viewport =
|
|
279
|
+
const viewport = viewportRef.value;
|
|
417
280
|
if (!host || !viewport) return;
|
|
418
281
|
osInstanceRef.value = OverlayScrollbars({
|
|
419
282
|
target: host,
|
|
@@ -422,232 +285,114 @@ var virtual_list_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
422
285
|
padding: false,
|
|
423
286
|
content: false
|
|
424
287
|
}
|
|
425
|
-
}, resolvedOverlayOptions.value
|
|
426
|
-
if (!isCompatMode.value) onScroll(event);
|
|
427
|
-
} });
|
|
288
|
+
}, resolvedOverlayOptions.value);
|
|
428
289
|
overlayViewportReadyRef.value = true;
|
|
429
290
|
});
|
|
430
291
|
return function initOverlayScrollbar() {
|
|
431
|
-
return
|
|
292
|
+
return _ref.apply(this, arguments);
|
|
432
293
|
};
|
|
433
294
|
}();
|
|
434
|
-
onMounted(
|
|
435
|
-
yield nextTick();
|
|
436
|
-
updateCompatViewportSize();
|
|
295
|
+
onMounted(() => {
|
|
437
296
|
initOverlayScrollbar(false);
|
|
438
|
-
}));
|
|
439
|
-
onUpdated(() => {
|
|
440
|
-
if (isCompatMode.value) {
|
|
441
|
-
updateCompatItemSizes();
|
|
442
|
-
updateCompatViewportSize();
|
|
443
|
-
}
|
|
444
297
|
});
|
|
445
|
-
|
|
298
|
+
onBeforeUnmount(() => {
|
|
299
|
+
destroyOverlayScrollbar();
|
|
300
|
+
});
|
|
301
|
+
watch([resolvedOverlayOptions], _asyncToGenerator(function* () {
|
|
446
302
|
yield nextTick();
|
|
447
|
-
const viewport = getScrollerElement();
|
|
448
303
|
const osInstance = resolveOSInstance();
|
|
449
|
-
if (!
|
|
450
|
-
if (!osInstance || osInstance.elements().viewport !== viewport) {
|
|
304
|
+
if (!osInstance) {
|
|
451
305
|
yield initOverlayScrollbar(true);
|
|
452
306
|
return;
|
|
453
307
|
}
|
|
454
308
|
osInstance.options(resolvedOverlayOptions.value);
|
|
455
309
|
osInstance.update(true);
|
|
456
310
|
}), { deep: true });
|
|
457
|
-
watch(() => resolvedItems.value, function() {
|
|
458
|
-
var
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
updateCompatItemSizes();
|
|
463
|
-
updateCompatViewportSize();
|
|
464
|
-
}
|
|
465
|
-
(_resolveOSInstance = resolveOSInstance()) === null || _resolveOSInstance === void 0 || _resolveOSInstance.update(true);
|
|
466
|
-
yield waitForLayoutFrame();
|
|
467
|
-
if (shouldResetScrollForSmallList(nextItems, previousItems)) {
|
|
468
|
-
scrollToPosition(0);
|
|
469
|
-
yield waitForLayoutFrame();
|
|
470
|
-
}
|
|
471
|
-
refreshVisibleWindow(true);
|
|
472
|
-
yield nextTick();
|
|
473
|
-
yield waitForLayoutFrame();
|
|
474
|
-
clampScrollPosition();
|
|
475
|
-
(_resolveOSInstance2 = resolveOSInstance()) === null || _resolveOSInstance2 === void 0 || _resolveOSInstance2.update(true);
|
|
476
|
-
yield nextTick();
|
|
477
|
-
yield waitForLayoutFrame();
|
|
478
|
-
refreshVisibleWindow(true);
|
|
479
|
-
});
|
|
480
|
-
return function(_x, _x2) {
|
|
481
|
-
return _ref3.apply(this, arguments);
|
|
482
|
-
};
|
|
483
|
-
}(), { deep: true });
|
|
484
|
-
onBeforeUnmount(() => {
|
|
485
|
-
destroyOverlayScrollbar();
|
|
486
|
-
});
|
|
487
|
-
const scrollerProps = computed(() => {
|
|
488
|
-
const commonProps = {
|
|
489
|
-
items: resolvedItems.value,
|
|
490
|
-
height: props.height,
|
|
491
|
-
keyField: props.keyField,
|
|
492
|
-
direction: props.direction,
|
|
493
|
-
listTag: props.listTag,
|
|
494
|
-
itemTag: props.itemTag,
|
|
495
|
-
shift: props.shift,
|
|
496
|
-
cache: props.cache,
|
|
497
|
-
disableTransform: props.disableTransform,
|
|
498
|
-
flowMode: props.flowMode,
|
|
499
|
-
hiddenPosition: props.hiddenPosition,
|
|
500
|
-
enabled: props.enabled
|
|
501
|
-
};
|
|
502
|
-
if (isDynamicScroller.value) {
|
|
503
|
-
var _props$minItemSize;
|
|
504
|
-
return _objectSpread2(_objectSpread2({}, commonProps), {}, { minItemSize: (_props$minItemSize = props.minItemSize) !== null && _props$minItemSize !== void 0 ? _props$minItemSize : 32 });
|
|
505
|
-
}
|
|
506
|
-
return _objectSpread2(_objectSpread2({}, commonProps), {}, {
|
|
507
|
-
itemSize: props.itemSize,
|
|
508
|
-
gridItems: props.gridItems,
|
|
509
|
-
itemSecondarySize: props.itemSecondarySize,
|
|
510
|
-
minItemSize: props.minItemSize,
|
|
511
|
-
sizeField: props.sizeField,
|
|
512
|
-
typeField: props.typeField,
|
|
513
|
-
buffer: props.buffer,
|
|
514
|
-
prerender: props.prerender,
|
|
515
|
-
emitUpdate: props.emitUpdate,
|
|
516
|
-
updateInterval: props.updateInterval,
|
|
517
|
-
skipHover: props.skipHover,
|
|
518
|
-
listClass: props.listClass,
|
|
519
|
-
itemClass: props.itemClass
|
|
520
|
-
});
|
|
521
|
-
});
|
|
311
|
+
watch(() => resolvedItems.value, _asyncToGenerator(function* () {
|
|
312
|
+
var _resolveOSInstance;
|
|
313
|
+
yield nextTick();
|
|
314
|
+
(_resolveOSInstance = resolveOSInstance()) === null || _resolveOSInstance === void 0 || _resolveOSInstance.update(true);
|
|
315
|
+
}), { deep: true });
|
|
522
316
|
const onScroll = (ev) => {
|
|
523
317
|
emit("scroll", ev);
|
|
524
318
|
const target = ev.target;
|
|
525
319
|
if (!target) return;
|
|
526
320
|
if (Math.floor(target.scrollHeight - (target.scrollTop + target.clientHeight)) <= 0) emit("reachBottom", ev);
|
|
527
321
|
};
|
|
528
|
-
const
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
const nextStart = getCompatStartByScroll(target.scrollTop);
|
|
532
|
-
if (nextStart !== compatStartRef.value) setCompatStart(nextStart);
|
|
533
|
-
}
|
|
534
|
-
onScroll(ev);
|
|
535
|
-
};
|
|
536
|
-
const onScrollEnd = () => {
|
|
537
|
-
var _osInstance$elements$;
|
|
322
|
+
const onVirtuaScroll = () => {};
|
|
323
|
+
const onVirtuaScrollEnd = () => {
|
|
324
|
+
var _ref2, _osInstance$elements$;
|
|
538
325
|
emit("scrollEnd");
|
|
539
326
|
const osInstance = resolveOSInstance();
|
|
540
|
-
if (!(
|
|
327
|
+
if (!((_ref2 = (_osInstance$elements$ = osInstance === null || osInstance === void 0 ? void 0 : osInstance.elements().scrollOffsetElement) !== null && _osInstance$elements$ !== void 0 ? _osInstance$elements$ : osInstance === null || osInstance === void 0 ? void 0 : osInstance.elements().viewport) !== null && _ref2 !== void 0 ? _ref2 : viewportRef.value)) return;
|
|
541
328
|
emit("reachBottom", new Event("scroll"));
|
|
542
329
|
};
|
|
543
|
-
const scrollerListeners = computed(() => {
|
|
544
|
-
if (isDynamicScroller.value) return {
|
|
545
|
-
resize: () => emit("resize"),
|
|
546
|
-
visible: () => emit("visible")
|
|
547
|
-
};
|
|
548
|
-
return {
|
|
549
|
-
resize: () => emit("resize"),
|
|
550
|
-
visible: () => emit("visible"),
|
|
551
|
-
hidden: () => emit("hidden"),
|
|
552
|
-
update: (startIndex, endIndex, visibleStartIndex, visibleEndIndex) => emit("update", startIndex, endIndex, visibleStartIndex, visibleEndIndex),
|
|
553
|
-
scrollStart: () => emit("scrollStart"),
|
|
554
|
-
scrollEnd: onScrollEnd
|
|
555
|
-
};
|
|
556
|
-
});
|
|
557
330
|
const normalizeAlign = (align) => {
|
|
558
331
|
if (!align || align === "auto") return "nearest";
|
|
559
332
|
if (align === "top") return "start";
|
|
560
333
|
if (align === "bottom") return "end";
|
|
561
334
|
return align;
|
|
562
335
|
};
|
|
563
|
-
const
|
|
564
|
-
|
|
336
|
+
const getItemKey = (item, index) => {
|
|
337
|
+
const keyField = props.keyField;
|
|
338
|
+
if (typeof keyField === "function") return keyField(item, index);
|
|
339
|
+
if (item && typeof item === "object" && isString(keyField)) {
|
|
340
|
+
var _item$keyField;
|
|
341
|
+
return (_item$keyField = item[keyField]) !== null && _item$keyField !== void 0 ? _item$keyField : index;
|
|
342
|
+
}
|
|
343
|
+
return index;
|
|
344
|
+
};
|
|
345
|
+
const findIndexByKey = (key) => {
|
|
346
|
+
return resolvedItems.value.findIndex((item, index) => getItemKey(item, index) === key);
|
|
565
347
|
};
|
|
566
|
-
const
|
|
348
|
+
const getVirtua = () => virtuaRef.value;
|
|
567
349
|
const scrollToItem = (index, options) => {
|
|
568
|
-
var
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
offset: options === null || options === void 0 ? void 0 : options.offset
|
|
575
|
-
});
|
|
576
|
-
return;
|
|
577
|
-
}
|
|
578
|
-
(_getScroller = getScroller()) === null || _getScroller === void 0 || _getScroller.scrollToItem(index, options);
|
|
350
|
+
var _getVirtua;
|
|
351
|
+
(_getVirtua = getVirtua()) === null || _getVirtua === void 0 || _getVirtua.scrollToIndex(index, {
|
|
352
|
+
align: normalizeAlign(options === null || options === void 0 ? void 0 : options.align),
|
|
353
|
+
smooth: options === null || options === void 0 ? void 0 : options.smooth,
|
|
354
|
+
offset: options === null || options === void 0 ? void 0 : options.offset
|
|
355
|
+
});
|
|
579
356
|
};
|
|
580
357
|
const scrollToPosition = (position, options) => {
|
|
581
|
-
|
|
582
|
-
if (
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
if (options === null || options === void 0 ? void 0 : options.smooth) viewport.scrollTo({
|
|
358
|
+
const viewport = viewportRef.value;
|
|
359
|
+
if (!viewport) return;
|
|
360
|
+
if (options === null || options === void 0 ? void 0 : options.smooth) {
|
|
361
|
+
viewport.scrollTo({
|
|
586
362
|
top: position,
|
|
587
363
|
behavior: "smooth"
|
|
588
364
|
});
|
|
589
|
-
else viewport.scrollTop = position;
|
|
590
365
|
return;
|
|
591
366
|
}
|
|
592
|
-
|
|
367
|
+
viewport.scrollTop = position;
|
|
593
368
|
};
|
|
594
369
|
const findItemIndex = (offset) => {
|
|
595
|
-
var
|
|
596
|
-
|
|
597
|
-
return (_getScroller$findItem = (_getScroller3 = getScroller()) === null || _getScroller3 === void 0 ? void 0 : _getScroller3.findItemIndex(offset)) !== null && _getScroller$findItem !== void 0 ? _getScroller$findItem : -1;
|
|
370
|
+
var _getVirtua$findItemIn, _getVirtua2;
|
|
371
|
+
return (_getVirtua$findItemIn = (_getVirtua2 = getVirtua()) === null || _getVirtua2 === void 0 ? void 0 : _getVirtua2.findItemIndex(offset)) !== null && _getVirtua$findItemIn !== void 0 ? _getVirtua$findItemIn : -1;
|
|
598
372
|
};
|
|
599
373
|
const getItemOffset = (index) => {
|
|
600
|
-
var
|
|
601
|
-
|
|
602
|
-
return (_getScroller$getItemO = (_getScroller4 = getScroller()) === null || _getScroller4 === void 0 ? void 0 : _getScroller4.getItemOffset(index)) !== null && _getScroller$getItemO !== void 0 ? _getScroller$getItemO : 0;
|
|
374
|
+
var _getVirtua$getItemOff, _getVirtua3;
|
|
375
|
+
return (_getVirtua$getItemOff = (_getVirtua3 = getVirtua()) === null || _getVirtua3 === void 0 ? void 0 : _getVirtua3.getItemOffset(index)) !== null && _getVirtua$getItemOff !== void 0 ? _getVirtua$getItemOff : 0;
|
|
603
376
|
};
|
|
604
377
|
const getItemSize = (index) => {
|
|
605
|
-
var
|
|
606
|
-
|
|
607
|
-
if (isDynamicScroller.value) {
|
|
608
|
-
const dynamicScroller = getScroller();
|
|
609
|
-
if (!dynamicScroller) return 0;
|
|
610
|
-
return dynamicScroller.getItemSize(resolvedItems.value[index], index);
|
|
611
|
-
}
|
|
612
|
-
return (_getScroller$getItemS = (_getScroller5 = getScroller()) === null || _getScroller5 === void 0 ? void 0 : _getScroller5.getItemSize(index)) !== null && _getScroller$getItemS !== void 0 ? _getScroller$getItemS : 0;
|
|
378
|
+
var _getVirtua$getItemSiz, _getVirtua4;
|
|
379
|
+
return (_getVirtua$getItemSiz = (_getVirtua4 = getVirtua()) === null || _getVirtua4 === void 0 ? void 0 : _getVirtua4.getItemSize(index)) !== null && _getVirtua$getItemSiz !== void 0 ? _getVirtua$getItemSiz : 0;
|
|
613
380
|
};
|
|
614
381
|
const cacheSnapshot = () => {
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
if ("value" in scroller.cacheSnapshot) return scroller.cacheSnapshot.value;
|
|
618
|
-
return scroller.cacheSnapshot;
|
|
619
|
-
};
|
|
620
|
-
const restoreCache = (snapshot) => {
|
|
621
|
-
var _getScroller$restoreC, _getScroller6;
|
|
622
|
-
return (_getScroller$restoreC = (_getScroller6 = getScroller()) === null || _getScroller6 === void 0 ? void 0 : _getScroller6.restoreCache(snapshot)) !== null && _getScroller$restoreC !== void 0 ? _getScroller$restoreC : false;
|
|
623
|
-
};
|
|
624
|
-
const updateVisibleItems = (itemsChanged, checkPositionDiff) => {
|
|
625
|
-
const scroller = getScroller();
|
|
626
|
-
scroller === null || scroller === void 0 || scroller.updateVisibleItems(itemsChanged, checkPositionDiff);
|
|
382
|
+
var _getVirtua5;
|
|
383
|
+
return (_getVirtua5 = getVirtua()) === null || _getVirtua5 === void 0 ? void 0 : _getVirtua5.cache;
|
|
627
384
|
};
|
|
385
|
+
const restoreCache = () => false;
|
|
386
|
+
const updateVisibleItems = () => {};
|
|
628
387
|
const scrollToBottom = () => {
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
scrollToPosition(viewport.scrollHeight);
|
|
633
|
-
return;
|
|
634
|
-
}
|
|
635
|
-
const scroller = getScroller();
|
|
636
|
-
scroller === null || scroller === void 0 || scroller.scrollToBottom();
|
|
388
|
+
const handle = getVirtua();
|
|
389
|
+
if (!handle) return;
|
|
390
|
+
handle.scrollTo(handle.scrollSize);
|
|
637
391
|
};
|
|
638
|
-
const forceUpdate = (
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
}
|
|
643
|
-
const scroller = getScroller();
|
|
644
|
-
scroller === null || scroller === void 0 || scroller.forceUpdate(clear);
|
|
645
|
-
};
|
|
646
|
-
const getDynamicItemSize = (item, index) => {
|
|
647
|
-
var _scroller$getItemSize;
|
|
648
|
-
if (isCompatMode.value) return typeof index === "number" ? getCompatItemSize(index) : 0;
|
|
649
|
-
const scroller = getScroller();
|
|
650
|
-
return (_scroller$getItemSize = scroller === null || scroller === void 0 ? void 0 : scroller.getItemSize(item, index)) !== null && _scroller$getItemSize !== void 0 ? _scroller$getItemSize : 0;
|
|
392
|
+
const forceUpdate = () => {};
|
|
393
|
+
const getDynamicItemSize = (_item, index) => {
|
|
394
|
+
if (typeof index !== "number") return 0;
|
|
395
|
+
return getItemSize(index);
|
|
651
396
|
};
|
|
652
397
|
const scrollTo = (options) => {
|
|
653
398
|
if (typeof options === "number") {
|
|
@@ -655,28 +400,8 @@ var virtual_list_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
655
400
|
return;
|
|
656
401
|
}
|
|
657
402
|
let index = options.index;
|
|
658
|
-
if (typeof index !== "number" && options.key !== void 0)
|
|
659
|
-
const keyField = props.keyField;
|
|
660
|
-
index = resolvedItems.value.findIndex((item, currentIndex) => {
|
|
661
|
-
if (typeof keyField === "function") return keyField(item, currentIndex) === options.key;
|
|
662
|
-
if (item && typeof item === "object" && isString(keyField)) return item[keyField] === options.key;
|
|
663
|
-
return currentIndex === options.key;
|
|
664
|
-
});
|
|
665
|
-
}
|
|
403
|
+
if (typeof index !== "number" && options.key !== void 0) index = findIndexByKey(options.key);
|
|
666
404
|
if (typeof index !== "number" || index < 0) return;
|
|
667
|
-
if (isCompatMode.value) {
|
|
668
|
-
setCompatStart(index - compatOverscan.value);
|
|
669
|
-
scrollToPosition(getCompatScrollOffset(index), {
|
|
670
|
-
smooth: options.smooth,
|
|
671
|
-
offset: options.offset
|
|
672
|
-
});
|
|
673
|
-
nextTick(() => {
|
|
674
|
-
const scrollTop = getCompatScrollOffset(index);
|
|
675
|
-
const viewport = getScrollerElement();
|
|
676
|
-
if (viewport && scrollTop !== viewport.scrollTop) viewport.scrollTop = scrollTop;
|
|
677
|
-
});
|
|
678
|
-
return;
|
|
679
|
-
}
|
|
680
405
|
scrollToItem(index, {
|
|
681
406
|
align: normalizeAlign(options.align),
|
|
682
407
|
smooth: options.smooth,
|
|
@@ -703,111 +428,63 @@ var virtual_list_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
703
428
|
ref: scrollbarHostRef,
|
|
704
429
|
class: normalizeClass(hostClassNames.value),
|
|
705
430
|
style: normalizeStyle(containerOuterStyle.value)
|
|
706
|
-
}, [
|
|
707
|
-
key: 0,
|
|
431
|
+
}, [createElementVNode("div", {
|
|
708
432
|
ref_key: "viewportRef",
|
|
709
433
|
ref: viewportRef,
|
|
710
434
|
class: normalizeClass(`${unref(prefixCls)}-scroller`),
|
|
711
|
-
style: normalizeStyle(
|
|
712
|
-
onScroll
|
|
713
|
-
},
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
return openBlock(), createBlock(resolveDynamicComponent(mergedCompatComponent.value.content), mergeProps({ key: getCompatItemKey(item, compatStart.value + index) }, { ref_for: true }, props.contentAttrs, {
|
|
741
|
-
ref_for: true,
|
|
742
|
-
ref: (element) => setCompatItemRef(getCompatItemKey(item, compatStart.value + index), element),
|
|
743
|
-
style: getCompatContentStyle(index)
|
|
744
|
-
}), {
|
|
745
|
-
default: withCtx(() => [renderSlot(_ctx.$slots, "item", {
|
|
746
|
-
item,
|
|
747
|
-
index: compatStart.value + index,
|
|
748
|
-
active: true,
|
|
749
|
-
itemWithSize: void 0
|
|
750
|
-
}, () => [renderSlot(_ctx.$slots, "default", {
|
|
751
|
-
item,
|
|
752
|
-
index: compatStart.value + index,
|
|
753
|
-
active: true,
|
|
754
|
-
itemWithSize: void 0
|
|
755
|
-
})])]),
|
|
756
|
-
_: 2
|
|
757
|
-
}, 1040, ["style"]);
|
|
758
|
-
}), 128)),
|
|
759
|
-
renderSlot(_ctx.$slots, "after")
|
|
760
|
-
]),
|
|
761
|
-
_: 3
|
|
762
|
-
}, 16, ["style"]))]),
|
|
763
|
-
_: 3
|
|
764
|
-
}, 40, ["class", "style"])) : (openBlock(), createBlock(resolveDynamicComponent(currentScroller.value), mergeProps({
|
|
765
|
-
key: 1,
|
|
766
|
-
ref_key: "scrollerRef",
|
|
767
|
-
ref: scrollerRef,
|
|
768
|
-
class: `${unref(prefixCls)}-scroller`,
|
|
769
|
-
style: scrollerStyle.value
|
|
770
|
-
}, scrollerProps.value, toHandlers(scrollerListeners.value)), {
|
|
771
|
-
before: withCtx(() => [renderSlot(_ctx.$slots, "before")]),
|
|
772
|
-
default: withCtx((slotProps) => [isDynamicScroller.value ? (openBlock(), createBlock(unref(DynamicScrollerItem), {
|
|
773
|
-
key: 0,
|
|
774
|
-
item: slotProps.item,
|
|
775
|
-
active: slotProps.active,
|
|
776
|
-
index: slotProps.index,
|
|
777
|
-
"size-dependencies": null
|
|
778
|
-
}, {
|
|
779
|
-
default: withCtx(() => [renderSlot(_ctx.$slots, "item", {
|
|
780
|
-
item: slotProps.item,
|
|
781
|
-
index: slotProps.index,
|
|
782
|
-
active: slotProps.active,
|
|
783
|
-
itemWithSize: getSlotItemWithSize(slotProps)
|
|
435
|
+
style: normalizeStyle(viewportStyle.value),
|
|
436
|
+
onScroll
|
|
437
|
+
}, [
|
|
438
|
+
renderSlot(_ctx.$slots, "before"),
|
|
439
|
+
!isEmpty.value ? (openBlock(), createBlock(unref(Virtualizer), mergeProps({
|
|
440
|
+
key: virtualizerKey.value,
|
|
441
|
+
ref_key: "virtuaRef",
|
|
442
|
+
ref: virtuaRef
|
|
443
|
+
}, resolvedListAttrs.value, {
|
|
444
|
+
data: resolvedItems.value,
|
|
445
|
+
horizontal: isHorizontal.value,
|
|
446
|
+
"item-size": itemSizeHint.value,
|
|
447
|
+
"buffer-size": resolvedBuffer.value,
|
|
448
|
+
"ssr-count": props.prerender,
|
|
449
|
+
shift: props.shift,
|
|
450
|
+
cache: props.cache,
|
|
451
|
+
as: resolvedAs.value,
|
|
452
|
+
item: resolvedItem.value,
|
|
453
|
+
"item-props": resolvedItemProps.value,
|
|
454
|
+
class: listClassNames.value,
|
|
455
|
+
style: listStyle.value,
|
|
456
|
+
onScroll: onVirtuaScroll,
|
|
457
|
+
onScrollEnd: onVirtuaScrollEnd
|
|
458
|
+
}), {
|
|
459
|
+
default: withCtx(({ item, index }) => [renderSlot(_ctx.$slots, "item", {
|
|
460
|
+
item,
|
|
461
|
+
index,
|
|
462
|
+
active: true,
|
|
463
|
+
itemWithSize: void 0
|
|
784
464
|
}, () => [renderSlot(_ctx.$slots, "default", {
|
|
785
|
-
item
|
|
786
|
-
index
|
|
787
|
-
active:
|
|
788
|
-
itemWithSize:
|
|
465
|
+
item,
|
|
466
|
+
index,
|
|
467
|
+
active: true,
|
|
468
|
+
itemWithSize: void 0
|
|
789
469
|
})])]),
|
|
790
|
-
_:
|
|
791
|
-
},
|
|
470
|
+
_: 3
|
|
471
|
+
}, 16, [
|
|
472
|
+
"data",
|
|
473
|
+
"horizontal",
|
|
474
|
+
"item-size",
|
|
475
|
+
"buffer-size",
|
|
476
|
+
"ssr-count",
|
|
477
|
+
"shift",
|
|
478
|
+
"cache",
|
|
479
|
+
"as",
|
|
792
480
|
"item",
|
|
793
|
-
"
|
|
794
|
-
"
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
itemWithSize: getSlotItemWithSize(slotProps)
|
|
801
|
-
}, () => [renderSlot(_ctx.$slots, "default", {
|
|
802
|
-
item: slotProps.item,
|
|
803
|
-
index: slotProps.index,
|
|
804
|
-
active: slotProps.active,
|
|
805
|
-
itemWithSize: getSlotItemWithSize(slotProps)
|
|
806
|
-
})])]),
|
|
807
|
-
empty: withCtx(() => [renderSlot(_ctx.$slots, "empty")]),
|
|
808
|
-
after: withCtx(() => [renderSlot(_ctx.$slots, "after")]),
|
|
809
|
-
_: 3
|
|
810
|
-
}, 16, ["class", "style"]))], 6);
|
|
481
|
+
"item-props",
|
|
482
|
+
"class",
|
|
483
|
+
"style"
|
|
484
|
+
])) : createCommentVNode("", true),
|
|
485
|
+
renderSlot(_ctx.$slots, "after"),
|
|
486
|
+
isEmpty.value ? renderSlot(_ctx.$slots, "empty", { key: 1 }) : createCommentVNode("", true)
|
|
487
|
+
], 38)], 6);
|
|
811
488
|
};
|
|
812
489
|
}
|
|
813
490
|
}));
|