UNPKG

@westacks/vortex

Version:

Server-based routing for SPAs

56 lines (55 loc) 1.85 kB
import { a as i } from "./form-6EHLr-hJ.js"; const d = (r, f = !0) => { f === !0 && (f = {}); function u(e) { e.method = e.method || "get", e.url = e.url || r.href || "", e.data = e.data || {}, r instanceof HTMLAnchorElement && (r.href = e.url); let l, n; return e.prefetch && (Array.isArray(e.prefetch) ? l = e.prefetch : e.prefetch === !0 ? l = ["hover"] : l = [e.prefetch], n = e.cacheFor || "30s"), delete e.cacheFor, delete e.prefetch, { options: e, prefetch: l, cacheFor: n }; } function a(e) { e.preventDefault(), i.request(f); } const c = () => i.request({ ...f, prefetch: s.cacheFor }); function t() { let e = !1; setTimeout(() => { !e && r.matches(":hover") && (e = !0, c().finally(() => e = !1)); }, 75); } function h() { r.removeEventListener("mouseover", t), r.removeEventListener("mousedown", c); const e = s.prefetch || []; e.includes("hover") && r.addEventListener("mouseover", t), e.includes("click") && r.addEventListener("mousedown", c), e.includes("mount") && c(); } let s = u(f); return h(), r.addEventListener("click", a), { update(e) { e === !0 && (e = {}), s = u(e), h(); }, destroy() { r.removeEventListener("click", a); } }; }, m = (r, f = !0) => { function u(t) { return t === !0 || !t.vortex ? { buffer: 0, always: !0, vortex: t } : { buffer: 0, always: !0, ...t }; } let a = u(f); const c = new IntersectionObserver((t) => { t[0].isIntersecting && (a.always || c.disconnect(), !r.dataset.fetching && (r.dataset.fetching = "", i.reload(a).then(() => r.dataset.loaded = "").finally(() => delete r.dataset.fetching))); }, { rootMargin: `${a.buffer}px` }); return c.observe(r), { update(t) { a = u(t); }, destroy() { c.disconnect(); } }; }; export { d as l, m as v };