UNPKG

@aplus-frontend/ui

Version:

58 lines (57 loc) 1.62 kB
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 };