71 lines
1.9 KiB
JavaScript
71 lines
1.9 KiB
JavaScript
//#region node_modules/vuetify/lib/util/box.js
|
|
var Box = class {
|
|
constructor(args) {
|
|
const pageScale = document.body.currentCSSZoom ?? 1;
|
|
const isElement = args instanceof Element;
|
|
const factor = isElement ? 1 + (1 - pageScale) / pageScale : 1;
|
|
const { x, y, width, height } = isElement ? args.getBoundingClientRect() : args;
|
|
this.x = x * factor;
|
|
this.y = y * factor;
|
|
this.width = width * factor;
|
|
this.height = height * factor;
|
|
}
|
|
get top() {
|
|
return this.y;
|
|
}
|
|
get bottom() {
|
|
return this.y + this.height;
|
|
}
|
|
get left() {
|
|
return this.x;
|
|
}
|
|
get right() {
|
|
return this.x + this.width;
|
|
}
|
|
};
|
|
function getOverflow(a, b) {
|
|
return {
|
|
x: {
|
|
before: Math.max(0, b.left - a.left),
|
|
after: Math.max(0, a.right - b.right)
|
|
},
|
|
y: {
|
|
before: Math.max(0, b.top - a.top),
|
|
after: Math.max(0, a.bottom - b.bottom)
|
|
}
|
|
};
|
|
}
|
|
function getTargetBox(target) {
|
|
if (Array.isArray(target)) {
|
|
const pageScale = document.body.currentCSSZoom ?? 1;
|
|
const factor = 1 + (1 - pageScale) / pageScale;
|
|
return new Box({
|
|
x: target[0] * factor,
|
|
y: target[1] * factor,
|
|
width: 0 * factor,
|
|
height: 0 * factor
|
|
});
|
|
} else return new Box(target);
|
|
}
|
|
function getElementBox(el) {
|
|
if (el === document.documentElement) if (!visualViewport) return new Box({
|
|
x: 0,
|
|
y: 0,
|
|
width: document.documentElement.clientWidth,
|
|
height: document.documentElement.clientHeight
|
|
});
|
|
else {
|
|
const pageScale = document.body.currentCSSZoom ?? 1;
|
|
return new Box({
|
|
x: visualViewport.scale > 1 ? 0 : visualViewport.offsetLeft,
|
|
y: visualViewport.scale > 1 ? 0 : visualViewport.offsetTop,
|
|
width: visualViewport.width * visualViewport.scale / pageScale,
|
|
height: visualViewport.height * visualViewport.scale / pageScale
|
|
});
|
|
}
|
|
else return new Box(el);
|
|
}
|
|
//#endregion
|
|
export { getTargetBox as i, getElementBox as n, getOverflow as r, Box as t };
|
|
|
|
//# sourceMappingURL=box-BNWMOtF7.js.map
|