Files
pole-book/server/node_modules/media-chrome/dist/utils/resize-observer.js

33 lines
848 B
JavaScript

import { globalThis } from "./server-safe-globals.js";
const callbacksMap = /* @__PURE__ */ new WeakMap();
const getCallbacks = (element) => {
let callbacks = callbacksMap.get(element);
if (!callbacks)
callbacksMap.set(element, callbacks = /* @__PURE__ */ new Set());
return callbacks;
};
const observer = new globalThis.ResizeObserver(
(entries) => {
for (const entry of entries) {
for (const callback of getCallbacks(entry.target)) {
callback(entry);
}
}
}
);
function observeResize(element, callback) {
getCallbacks(element).add(callback);
observer.observe(element);
}
function unobserveResize(element, callback) {
const callbacks = getCallbacks(element);
callbacks.delete(callback);
if (!callbacks.size) {
observer.unobserve(element);
}
}
export {
observeResize,
unobserveResize
};