|
@@ -14,20 +14,16 @@ import { newElementWith } from "./mutateElement";
|
|
|
import { getNewGroupIdsForDuplication } from "../groups";
|
|
|
import { AppState } from "../types";
|
|
|
|
|
|
-type ElementConstructorOpts = {
|
|
|
- x: ExcalidrawGenericElement["x"];
|
|
|
- y: ExcalidrawGenericElement["y"];
|
|
|
- strokeColor: ExcalidrawGenericElement["strokeColor"];
|
|
|
- backgroundColor: ExcalidrawGenericElement["backgroundColor"];
|
|
|
- fillStyle: ExcalidrawGenericElement["fillStyle"];
|
|
|
- strokeWidth: ExcalidrawGenericElement["strokeWidth"];
|
|
|
- strokeStyle: ExcalidrawGenericElement["strokeStyle"];
|
|
|
- roughness: ExcalidrawGenericElement["roughness"];
|
|
|
- opacity: ExcalidrawGenericElement["opacity"];
|
|
|
- width?: ExcalidrawGenericElement["width"];
|
|
|
- height?: ExcalidrawGenericElement["height"];
|
|
|
- angle?: ExcalidrawGenericElement["angle"];
|
|
|
-};
|
|
|
+type ElementConstructorOpts = MarkOptional<
|
|
|
+ Omit<ExcalidrawGenericElement, "id" | "type" | "isDeleted">,
|
|
|
+ | "width"
|
|
|
+ | "height"
|
|
|
+ | "angle"
|
|
|
+ | "groupIds"
|
|
|
+ | "seed"
|
|
|
+ | "version"
|
|
|
+ | "versionNonce"
|
|
|
+>;
|
|
|
|
|
|
const _newElementBase = <T extends ExcalidrawElement>(
|
|
|
type: T["type"],
|
|
@@ -44,6 +40,7 @@ const _newElementBase = <T extends ExcalidrawElement>(
|
|
|
width = 0,
|
|
|
height = 0,
|
|
|
angle = 0,
|
|
|
+ groupIds = [],
|
|
|
...rest
|
|
|
}: ElementConstructorOpts & Omit<Partial<ExcalidrawGenericElement>, "type">,
|
|
|
) => ({
|
|
@@ -61,11 +58,11 @@ const _newElementBase = <T extends ExcalidrawElement>(
|
|
|
strokeStyle,
|
|
|
roughness,
|
|
|
opacity,
|
|
|
+ groupIds,
|
|
|
seed: rest.seed ?? randomInteger(),
|
|
|
version: rest.version || 1,
|
|
|
versionNonce: rest.versionNonce ?? 0,
|
|
|
isDeleted: false as false,
|
|
|
- groupIds: [],
|
|
|
});
|
|
|
|
|
|
export const newElement = (
|