refactor: separate elements logic into a standalone package (#9285)

This commit is contained in:
Marcel Mraz
2025-03-26 15:24:59 +01:00
committed by GitHub
parent a18f059188
commit 432a46ef9e
372 changed files with 3463 additions and 2463 deletions
+16 -27
View File
@@ -7,34 +7,38 @@ import {
type GlobalPoint,
} from "@excalidraw/math";
import type { InclusiveRange } from "@excalidraw/math";
import { TOOL_TYPE } from "./constants";
import { TOOL_TYPE, KEYS } from "@excalidraw/common";
import {
getCommonBounds,
getDraggedElementsBounds,
getElementAbsoluteCoords,
} from "./element/bounds";
import { isBoundToContainer, isFrameLikeElement } from "./element/typeChecks";
import { getMaximumGroups } from "./groups";
import { KEYS } from "./keys";
} from "@excalidraw/element/bounds";
import {
isBoundToContainer,
isFrameLikeElement,
} from "@excalidraw/element/typeChecks";
import { getMaximumGroups } from "@excalidraw/element/groups";
import {
getSelectedElements,
getVisibleAndNonSelectedElements,
} from "./scene/selection";
} from "@excalidraw/element/selection";
import type { Bounds } from "./element/bounds";
import type { MaybeTransformHandleType } from "./element/transformHandles";
import type { InclusiveRange } from "@excalidraw/math";
import type { Bounds } from "@excalidraw/element/bounds";
import type { MaybeTransformHandleType } from "@excalidraw/element/transformHandles";
import type {
ElementsMap,
ExcalidrawElement,
NonDeletedExcalidrawElement,
} from "./element/types";
} from "@excalidraw/element/types";
import type {
AppClassProperties,
AppState,
KeyboardModifiersObject,
NullableGridSize,
} from "./types";
const SNAP_DISTANCE = 8;
@@ -1411,18 +1415,3 @@ export const isActiveToolNonLinearSnappable = (
activeToolType === TOOL_TYPE.text
);
};
// TODO: Rounding this point causes some shake when free drawing
export const getGridPoint = (
x: number,
y: number,
gridSize: NullableGridSize,
): [number, number] => {
if (gridSize) {
return [
Math.round(x / gridSize) * gridSize,
Math.round(y / gridSize) * gridSize,
];
}
return [x, y];
};