72 lines
2.1 KiB
JavaScript
72 lines
2.1 KiB
JavaScript
|
|
"use strict";
|
||
|
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
||
|
|
const virtualCore = require("@tanstack/virtual-core");
|
||
|
|
const vue = require("vue");
|
||
|
|
function useVirtualizerBase(options) {
|
||
|
|
const virtualizer = new virtualCore.Virtualizer(vue.unref(options));
|
||
|
|
const state = vue.shallowRef(virtualizer);
|
||
|
|
const cleanup = virtualizer._didMount();
|
||
|
|
vue.watch(
|
||
|
|
() => vue.unref(options).getScrollElement(),
|
||
|
|
(el) => {
|
||
|
|
if (el) {
|
||
|
|
virtualizer._willUpdate();
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
immediate: true
|
||
|
|
}
|
||
|
|
);
|
||
|
|
vue.watch(
|
||
|
|
() => vue.unref(options),
|
||
|
|
(options2) => {
|
||
|
|
virtualizer.setOptions({
|
||
|
|
...options2,
|
||
|
|
onChange: (instance, sync) => {
|
||
|
|
var _a;
|
||
|
|
vue.triggerRef(state);
|
||
|
|
(_a = options2.onChange) == null ? void 0 : _a.call(options2, instance, sync);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
virtualizer._willUpdate();
|
||
|
|
vue.triggerRef(state);
|
||
|
|
},
|
||
|
|
{
|
||
|
|
immediate: true
|
||
|
|
}
|
||
|
|
);
|
||
|
|
vue.onScopeDispose(cleanup);
|
||
|
|
return state;
|
||
|
|
}
|
||
|
|
function useVirtualizer(options) {
|
||
|
|
return useVirtualizerBase(
|
||
|
|
vue.computed(() => ({
|
||
|
|
observeElementRect: virtualCore.observeElementRect,
|
||
|
|
observeElementOffset: virtualCore.observeElementOffset,
|
||
|
|
scrollToFn: virtualCore.elementScroll,
|
||
|
|
...vue.unref(options)
|
||
|
|
}))
|
||
|
|
);
|
||
|
|
}
|
||
|
|
function useWindowVirtualizer(options) {
|
||
|
|
return useVirtualizerBase(
|
||
|
|
vue.computed(() => ({
|
||
|
|
getScrollElement: () => typeof document !== "undefined" ? window : null,
|
||
|
|
observeElementRect: virtualCore.observeWindowRect,
|
||
|
|
observeElementOffset: virtualCore.observeWindowOffset,
|
||
|
|
scrollToFn: virtualCore.windowScroll,
|
||
|
|
initialOffset: () => typeof document !== "undefined" ? window.scrollY : 0,
|
||
|
|
...vue.unref(options)
|
||
|
|
}))
|
||
|
|
);
|
||
|
|
}
|
||
|
|
exports.useVirtualizer = useVirtualizer;
|
||
|
|
exports.useWindowVirtualizer = useWindowVirtualizer;
|
||
|
|
Object.keys(virtualCore).forEach((k) => {
|
||
|
|
if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
||
|
|
enumerable: true,
|
||
|
|
get: () => virtualCore[k]
|
||
|
|
});
|
||
|
|
});
|
||
|
|
//# sourceMappingURL=index.cjs.map
|