{"version":3,"file":"prefetchViewport.js","names":[],"sources":["esm/link/prefetchViewport.js"],"sourcesContent":["function createPrefetchViewport() {\n  const done = /* @__PURE__ */ new Set();\n  const nodes = /* @__PURE__ */ new Map();\n  let io = null;\n  let onPrefetch = null;\n  function getObserver() {\n    if (io) return io;\n    io = new IntersectionObserver(\n      (entries) => {\n        for (const entry of entries) {\n          if (!entry.isIntersecting) continue;\n          const href = nodes.get(entry.target);\n          if (href && !done.has(href)) {\n            done.add(href);\n            onPrefetch?.(href);\n          }\n        }\n      },\n      { threshold: 0.5 }\n      // fires when mostly visible\n    );\n    return io;\n  }\n  function start(prefetch) {\n    onPrefetch = prefetch;\n  }\n  function observe(el, href) {\n    nodes.set(el, href);\n    getObserver().observe(el);\n    return () => {\n      nodes.delete(el);\n      io?.unobserve(el);\n      done.delete(href);\n    };\n  }\n  return { start, observe, done, nodes };\n}\nlet instance = null;\nfunction startPrefetchViewport(prefetch) {\n  if (!instance) instance = createPrefetchViewport();\n  instance.start(prefetch);\n}\nfunction observePrefetchViewport(el, href) {\n  if (!instance) instance = createPrefetchViewport();\n  return instance.observe(el, href);\n}\nexport {\n  createPrefetchViewport,\n  observePrefetchViewport,\n  startPrefetchViewport\n};\n//# sourceMappingURL=prefetchViewport.js.map\n"],"mappings":";AAAA,SAAS,yBAAyB;CAChC,MAAM,uBAAuB,IAAI,IAAI;CACrC,MAAM,wBAAwB,IAAI,IAAI;CACtC,IAAI,KAAK;CACT,IAAI,aAAa;CACjB,SAAS,cAAc;EACrB,IAAI,IAAI,OAAO;EACf,KAAK,IAAI,sBACN,YAAY;GACX,KAAK,MAAM,SAAS,SAAS;IAC3B,IAAI,CAAC,MAAM,gBAAgB;IAC3B,MAAM,OAAO,MAAM,IAAI,MAAM,MAAM;IACnC,IAAI,QAAQ,CAAC,KAAK,IAAI,IAAI,GAAG;KAC3B,KAAK,IAAI,IAAI;KACb,aAAa,IAAI;IACnB;GACF;EACF,GACA,EAAE,WAAW,GAAI,CAEnB;EACA,OAAO;CACT;CACA,SAAS,MAAM,UAAU;EACvB,aAAa;CACf;CACA,SAAS,QAAQ,IAAI,MAAM;EACzB,MAAM,IAAI,IAAI,IAAI;EAClB,YAAY,CAAC,CAAC,QAAQ,EAAE;EACxB,aAAa;GACX,MAAM,OAAO,EAAE;GACf,IAAI,UAAU,EAAE;GAChB,KAAK,OAAO,IAAI;EAClB;CACF;CACA,OAAO;EAAE;EAAO;EAAS;EAAM;CAAM;AACvC;AACA,IAAI,WAAW;AACf,SAAS,sBAAsB,UAAU;CACvC,IAAI,CAAC,UAAU,WAAW,uBAAuB;CACjD,SAAS,MAAM,QAAQ;AACzB;AACA,SAAS,wBAAwB,IAAI,MAAM;CACzC,IAAI,CAAC,UAAU,WAAW,uBAAuB;CACjD,OAAO,SAAS,QAAQ,IAAI,IAAI;AAClC"}