add utility to compute container coords from bound text
This commit is contained in:
parent
83780b91d2
commit
752c7cf66e
@ -231,8 +231,9 @@ export const handleBindTextResize = (
|
|||||||
container,
|
container,
|
||||||
nextHeight,
|
nextHeight,
|
||||||
);
|
);
|
||||||
|
const { y } = computeContainerCoords(textElement, container.type);
|
||||||
mutateElement(container, {
|
mutateElement(container, {
|
||||||
y: textElement.y - BOUND_TEXT_PADDING,
|
y,
|
||||||
height: containerHeight,
|
height: containerHeight,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -636,6 +637,27 @@ export const computeBoundTextElementCoords = (
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const computeContainerCoords = (
|
||||||
|
boundTextElement: ExcalidrawTextElement,
|
||||||
|
containerType: string,
|
||||||
|
) => {
|
||||||
|
let offsetX = BOUND_TEXT_PADDING;
|
||||||
|
let offsetY = BOUND_TEXT_PADDING;
|
||||||
|
|
||||||
|
if (containerType === "ellipse") {
|
||||||
|
offsetX += (boundTextElement.width / 2) * (1 - Math.sqrt(2) / 2);
|
||||||
|
offsetY += (boundTextElement.height / 2) * (1 - Math.sqrt(2) / 2);
|
||||||
|
}
|
||||||
|
if (containerType === "diamond") {
|
||||||
|
offsetX += boundTextElement.width / 4;
|
||||||
|
offsetY += boundTextElement.height / 4;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
x: boundTextElement.x - offsetX,
|
||||||
|
y: boundTextElement.y - offsetY,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
export const getTextElementAngle = (textElement: ExcalidrawTextElement) => {
|
export const getTextElementAngle = (textElement: ExcalidrawTextElement) => {
|
||||||
const container = getContainerElement(textElement);
|
const container = getContainerElement(textElement);
|
||||||
if (!container || isArrowElement(container)) {
|
if (!container || isArrowElement(container)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user