@westacks/vortex
Version:
Server-based routing for SPAs
2 lines (1 loc) • 1.46 kB
JavaScript
;const s=require("./form-BGYwcZf7.cjs"),v=(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 i,h;return e.prefetch&&(Array.isArray(e.prefetch)?i=e.prefetch:e.prefetch===!0?i=["hover"]:i=[e.prefetch],h=e.cacheFor||"30s"),delete e.cacheFor,delete e.prefetch,{options:e,prefetch:i,cacheFor:h}}function a(e){e.preventDefault(),s.axios.request(f)}const c=()=>s.axios.request({...f,prefetch:l.cacheFor});function t(){let e=!1;setTimeout(()=>{!e&&r.matches(":hover")&&(e=!0,c().finally(()=>e=!1))},75)}function n(){r.removeEventListener("mouseover",t),r.removeEventListener("mousedown",c);const e=l.prefetch||[];e.includes("hover")&&r.addEventListener("mouseover",t),e.includes("click")&&r.addEventListener("mousedown",c),e.includes("mount")&&c()}let l=u(f);return n(),r.addEventListener("click",a),{update(e){e===!0&&(e={}),l=u(e),n()},destroy(){r.removeEventListener("click",a)}}},d=(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="",s.axios.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()}}};exports.link=v;exports.visible=d;