42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import { getActiveProperties } from "./getActiveProperties";
|
|
|
|
export const convertAutoToNumeric = (
|
|
canvasRect: DOMRect,
|
|
position: {
|
|
top: number | "auto";
|
|
left: number | "auto";
|
|
right: number | "auto";
|
|
bottom: number | "auto";
|
|
}
|
|
): { top: number; left: number; right: number; bottom: number } => {
|
|
const { width, height } = canvasRect;
|
|
|
|
// Determine which properties are active
|
|
const [activeProp1, activeProp2] = getActiveProperties(position);
|
|
|
|
let top = typeof position.top !== "string" ? position.top : 0;
|
|
let left = typeof position.left !== "string" ? position.left : 0;
|
|
let right = typeof position.right !== "string" ? position.right : 0;
|
|
let bottom = typeof position.bottom !== "string" ? position.bottom : 0;
|
|
|
|
// Calculate missing properties based on active properties
|
|
if (activeProp1 === "top") {
|
|
bottom = height - top;
|
|
} else if (activeProp1 === "bottom") {
|
|
top = height - bottom;
|
|
}
|
|
|
|
if (activeProp2 === "left") {
|
|
right = width - left;
|
|
} else if (activeProp2 === "right") {
|
|
left = width - right;
|
|
}
|
|
|
|
return {
|
|
top,
|
|
left,
|
|
right,
|
|
bottom,
|
|
};
|
|
};
|