Files
wdi-dashboard/node_modules/@zag-js/element-size/dist/track-size.js
2024-08-16 15:06:52 +05:30

34 lines
1.0 KiB
JavaScript

'use strict';
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
function trackElementSize(element, callback) {
if (!element) {
callback(void 0);
return;
}
callback({ width: element.offsetWidth, height: element.offsetHeight });
const win = element.ownerDocument.defaultView ?? window;
const observer = new win.ResizeObserver((entries) => {
if (!Array.isArray(entries) || !entries.length)
return;
const [entry] = entries;
let width;
let height;
if ("borderBoxSize" in entry) {
const borderSizeEntry = entry["borderBoxSize"];
const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;
width = borderSize["inlineSize"];
height = borderSize["blockSize"];
} else {
width = element.offsetWidth;
height = element.offsetHeight;
}
callback({ width, height });
});
observer.observe(element, { box: "border-box" });
return () => observer.unobserve(element);
}
exports.trackElementSize = trackElementSize;