UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

1 lines • 2.35 kB
{"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"}