tdesign-vue
Version:
70 lines (64 loc) • 2.46 kB
JavaScript
/**
* tdesign v1.15.0
* (c) 2026 tdesign
* @license MIT
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var VueCompositionAPI = require('@vue/composition-api');
var hooks_useVirtualScrollNew = require('../../hooks/useVirtualScrollNew.js');
require('@babel/runtime/helpers/toConsumableArray');
require('@babel/runtime/helpers/slicedToArray');
require('../../hooks/useResizeObserver.js');
var useListVirtualScroll = function useListVirtualScroll(scroll, listRef, listItems) {
var virtualScrollParams = VueCompositionAPI.computed(function () {
return {
data: listItems.value,
scroll: scroll
};
});
var virtualConfig = hooks_useVirtualScrollNew["default"](listRef, virtualScrollParams);
var isVirtualScroll = VueCompositionAPI.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 = VueCompositionAPI.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 = VueCompositionAPI.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
};
};
exports["default"] = useListVirtualScroll;
//# sourceMappingURL=useListVirtualScroll.js.map