@aplus-frontend/ui
Version:
58 lines (57 loc) • 1.62 kB
JavaScript
import { ref as f, onMounted as T, nextTick as b, onActivated as p, onDeactivated as S } from "vue";
import "../../index.mjs";
import { useGlobalConfig as m } from "../../config-provider/hooks/use-global-config.mjs";
function h(e) {
return e === "admin" ? window : (window.top !== window ? window.top : window) ?? window;
}
function s(e, t) {
return t.document.querySelector(e);
}
function g(e, t = ".demo", n) {
const o = s(t, n);
o && (o.scrollTop = e);
}
function y(e) {
const t = m("scrollYDomName"), n = m("uiMode"), o = h(n.value ?? "aplus");
let u = !0;
const c = f(0), a = f(0), v = (["reset", "submit", void 0].includes(e?.refreshType) ? e?.refreshType : "submit") ?? "submit", w = e?.refreshBefore ?? (() => !0);
let d = !0;
const i = (l) => {
if (u === !1) return;
const r = l.target;
a.value = r.scrollTop;
};
return T(() => {
b(() => {
d = !1;
});
}), p(() => {
const l = w?.();
if (d) {
setTimeout(() => {
const r = s(t.value, o);
r && r.addEventListener("scroll", i);
});
return;
}
l && setTimeout(() => {
u = !0, e?.apTableRef?.value?.[v](), e?.apTableRef?.value?.scrollBar?.x?.scroll?.(c.value), g(
a.value,
t.value,
o
);
const r = s(t.value, o);
r && r.addEventListener("scroll", i);
});
}), S(() => {
u = !1, c.value = e?.apTableRef?.value?.scrollBar?.x?.getCurrentScroll?.() ?? 0;
const l = s(t.value, o);
l && l.removeEventListener("scroll", i);
}), {
tableScrollX: c,
tableScrollY: a
};
}
export {
y as useTableRefresh
};