@adyen/adyen-platform-experience-web
Version:

35 lines (34 loc) • 882 B
JavaScript
import { struct as c, structFrom as d } from "../../../../utils/struct/main.js";
import { enumerable as s } from "../../../../utils/struct/property.js";
import { isUndefined as u } from "../../../../utils/value/is.js";
const g = (() => {
const t = /* @__PURE__ */ new WeakMap(), n = c({
remove: s(function() {
v(this.observerCallback);
})
}), i = (e, r) => {
let o = t.get(e);
if (u(o)) {
const f = new IntersectionObserver(
(m) => {
m.forEach((b) => {
e && e(b);
});
},
{ root: r ?? null, rootMargin: "", threshold: [1] }
);
o = d(n, {
observerCallback: s(e),
observer: s(f)
}), t.set(e, o);
}
return o;
}, v = (e) => {
const r = t.get(e);
r == null || r.observer.disconnect(), t.delete(e);
};
return i;
})();
export {
g as default
};