UNPKG

@studiometa/js-toolkit

Version:

A set of useful little bits of JavaScript to boost your project! 🚀

22 lines (21 loc) • 814 B
import { getTargetElements } from "./utils.js"; import { getComponentResolver } from "../utils/index.js"; function importWhenVisible(fn, nameOrSelectorOrElement, parent, observerOptions = {}) { const resolver = getComponentResolver(fn); return new Promise((resolve) => { const observer = new IntersectionObserver((entries) => { const someEntriesAreVisible = entries.some((entry) => entry.isIntersecting); if (someEntriesAreVisible) { setTimeout(() => { resolver(resolve, () => observer.disconnect()); }, 0); } }, observerOptions); const elements = getTargetElements(nameOrSelectorOrElement, parent?.$el); for (const element of elements) observer.observe(element); }); } export { importWhenVisible }; //# sourceMappingURL=importWhenVisible.js.map