tdesign-vue
Version:
66 lines (62 loc) • 2.27 kB
JavaScript
/**
* tdesign v1.14.1
* (c) 2025 tdesign
* @license MIT
*/
import { computed } from '@vue/composition-api';
import useVirtualScroll from '../../hooks/useVirtualScrollNew.js';
import '@babel/runtime/helpers/toConsumableArray';
import '@babel/runtime/helpers/slicedToArray';
import '../../hooks/useResizeObserver.js';
var useListVirtualScroll = function useListVirtualScroll(scroll, listRef, listItems) {
var virtualScrollParams = computed(function () {
return {
data: listItems.value,
scroll: scroll
};
});
var virtualConfig = useVirtualScroll(listRef, virtualScrollParams);
var isVirtualScroll = computed(function () {
return virtualConfig.isVirtualScroll.value;
});
var lastScrollY = -1;
var onInnerVirtualScroll = function onInnerVirtualScroll(e) {
var target = e.target || e.srcElement;
var top = target.scrollTop;
if (lastScrollY !== top) {
virtualConfig.isVirtualScroll.value && virtualConfig.handleScroll();
} else {
lastScrollY = -1;
}
lastScrollY = top;
};
var cursorStyle = computed(function () {
return {
position: "absolute",
width: "1px",
height: "1px",
transition: "transform 0.2s",
transform: "translate(0, ".concat(virtualConfig.scrollHeight.value, "px)"),
"-ms-transform": "translate(0, ".concat(virtualConfig.scrollHeight.value, "px)"),
"-moz-transform": "translate(0, ".concat(virtualConfig.scrollHeight.value, "px)"),
"-webkit-transform": "translate(0, ".concat(virtualConfig.scrollHeight.value, "px)")
};
});
var listStyle = computed(function () {
return {
transform: "translate(0, ".concat(virtualConfig.translateY.value, "px)"),
"-ms-transform": "translate(0, ".concat(virtualConfig.translateY.value, "px)"),
"-moz-transform": "translate(0, ".concat(virtualConfig.translateY.value, "px)"),
"-webkit-transform": "translate(0, ".concat(virtualConfig.translateY.value, "px)")
};
});
return {
virtualConfig: virtualConfig,
cursorStyle: cursorStyle,
listStyle: listStyle,
isVirtualScroll: isVirtualScroll,
onInnerVirtualScroll: onInnerVirtualScroll
};
};
export { useListVirtualScroll as default };
//# sourceMappingURL=useListVirtualScroll.js.map