@studiometa/js-toolkit
Version:
A set of useful little bits of JavaScript to boost your project! 🚀
22 lines (21 loc) • 814 B
JavaScript
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