|
@@ -79,7 +79,10 @@ import {
|
|
} from "./components/ExportToExcalidrawPlus";
|
|
} from "./components/ExportToExcalidrawPlus";
|
|
import { updateStaleImageStatuses } from "./data/FileManager";
|
|
import { updateStaleImageStatuses } from "./data/FileManager";
|
|
import { newElementWith } from "../packages/excalidraw/element/mutateElement";
|
|
import { newElementWith } from "../packages/excalidraw/element/mutateElement";
|
|
-import { isInitializedImageElement } from "../packages/excalidraw/element/typeChecks";
|
|
|
|
|
|
+import {
|
|
|
|
+ isInitializedImageElement,
|
|
|
|
+ isRectangularElement,
|
|
|
|
+} from "../packages/excalidraw/element/typeChecks";
|
|
import { loadFilesFromFirebase } from "./data/firebase";
|
|
import { loadFilesFromFirebase } from "./data/firebase";
|
|
import {
|
|
import {
|
|
LibraryIndexedDBAdapter,
|
|
LibraryIndexedDBAdapter,
|
|
@@ -641,89 +644,87 @@ const ExcalidrawWrapper = () => {
|
|
collabAPI.syncElements(elements);
|
|
collabAPI.syncElements(elements);
|
|
}
|
|
}
|
|
|
|
|
|
- {
|
|
|
|
- const frame = elements.find(
|
|
|
|
- (el) => el.strokeStyle === "dashed" && !el.isDeleted,
|
|
|
|
- );
|
|
|
|
|
|
+ const nonDeletedElements = getNonDeletedElements(elements);
|
|
|
|
|
|
- exportToCanvas({
|
|
|
|
- data: {
|
|
|
|
- elements: getNonDeletedElements(elements).filter(
|
|
|
|
- (x) => x.id !== frame?.id,
|
|
|
|
- ),
|
|
|
|
- // .concat(
|
|
|
|
- // restoreElements(
|
|
|
|
- // [
|
|
|
|
- // // @ts-ignore
|
|
|
|
- // {
|
|
|
|
- // type: "rectangle",
|
|
|
|
- // width: appState.width / zoom,
|
|
|
|
- // height: appState.height / zoom,
|
|
|
|
- // x: -appState.scrollX,
|
|
|
|
- // y: -appState.scrollY,
|
|
|
|
- // fillStyle: "solid",
|
|
|
|
- // strokeColor: "transparent",
|
|
|
|
- // backgroundColor: "rgba(0,0,0,0.05)",
|
|
|
|
- // roundness: { type: ROUNDNESS.ADAPTIVE_RADIUS, value: 40 },
|
|
|
|
- // },
|
|
|
|
- // ],
|
|
|
|
- // null,
|
|
|
|
- // ),
|
|
|
|
- // ),
|
|
|
|
- appState,
|
|
|
|
- files,
|
|
|
|
- },
|
|
|
|
- config: {
|
|
|
|
- // // light yellow
|
|
|
|
- // // canvasBackgroundColor: "#fff9c4",
|
|
|
|
- // // width,
|
|
|
|
- // // maxWidthOrHeight: 120,
|
|
|
|
- // // scale: 0.01,
|
|
|
|
- // // scale: 2,
|
|
|
|
- // // origin: "content",
|
|
|
|
- // // scale: 2,
|
|
|
|
- // // x: 0,
|
|
|
|
- // // y: 0,
|
|
|
|
- // padding: 20,
|
|
|
|
-
|
|
|
|
- // ...config,
|
|
|
|
-
|
|
|
|
- // width: config.width,
|
|
|
|
- // height: config.height,
|
|
|
|
- // maxWidthOrHeight: config.maxWidthOrHeight,
|
|
|
|
- // widthOrHeight: config.widthOrHeight,
|
|
|
|
- // padding: config.padding,
|
|
|
|
- ...(frame
|
|
|
|
- ? {
|
|
|
|
- ...config,
|
|
|
|
- width: frame.width,
|
|
|
|
- height: frame.height,
|
|
|
|
- x: frame.x,
|
|
|
|
- y: frame.y,
|
|
|
|
- }
|
|
|
|
- : config),
|
|
|
|
- // // height: 140,
|
|
|
|
- // // x: -appState.scrollX,
|
|
|
|
- // // y: -appState.scrollY,
|
|
|
|
- // // height: 150,
|
|
|
|
- // // height: appState.height,
|
|
|
|
- // // scale,
|
|
|
|
- // // zoom: { value: appState.zoom.value },
|
|
|
|
- // // getDimensions(width,height) {
|
|
|
|
- // // setCanvasSize({ width, height })
|
|
|
|
- // // return {width: 300, height: 150}
|
|
|
|
- // // }
|
|
|
|
- },
|
|
|
|
- }).then((canvas) => {
|
|
|
|
- if (canvasPreviewContainerRef.current) {
|
|
|
|
- canvasPreviewContainerRef.current.replaceChildren(canvas);
|
|
|
|
- document.querySelector(
|
|
|
|
- ".dims",
|
|
|
|
- )!.innerHTML = `${canvas.width}x${canvas.height}`;
|
|
|
|
- // canvas.style.width = "100%";
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
|
|
+ const frame = nonDeletedElements.find(
|
|
|
|
+ (el) => el.strokeStyle === "dashed" && el.type === "rectangle",
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ exportToCanvas({
|
|
|
|
+ data: {
|
|
|
|
+ elements: nonDeletedElements.filter((x) => x.id !== frame?.id),
|
|
|
|
+ // .concat(
|
|
|
|
+ // restoreElements(
|
|
|
|
+ // [
|
|
|
|
+ // // @ts-ignore
|
|
|
|
+ // {
|
|
|
|
+ // type: "rectangle",
|
|
|
|
+ // width: appState.width / zoom,
|
|
|
|
+ // height: appState.height / zoom,
|
|
|
|
+ // x: -appState.scrollX,
|
|
|
|
+ // y: -appState.scrollY,
|
|
|
|
+ // fillStyle: "solid",
|
|
|
|
+ // strokeColor: "transparent",
|
|
|
|
+ // backgroundColor: "rgba(0,0,0,0.05)",
|
|
|
|
+ // roundness: { type: ROUNDNESS.ADAPTIVE_RADIUS, value: 40 },
|
|
|
|
+ // },
|
|
|
|
+ // ],
|
|
|
|
+ // null,
|
|
|
|
+ // ),
|
|
|
|
+ // ),
|
|
|
|
+ appState,
|
|
|
|
+ files,
|
|
|
|
+ },
|
|
|
|
+ config: {
|
|
|
|
+ // // light yellow
|
|
|
|
+ // // canvasBackgroundColor: "#fff9c4",
|
|
|
|
+ // // width,
|
|
|
|
+ // // maxWidthOrHeight: 120,
|
|
|
|
+ // // scale: 0.01,
|
|
|
|
+ // // scale: 2,
|
|
|
|
+ // // origin: "content",
|
|
|
|
+ // // scale: 2,
|
|
|
|
+ // // x: 0,
|
|
|
|
+ // // y: 0,
|
|
|
|
+ // padding: 20,
|
|
|
|
+
|
|
|
|
+ // ...config,
|
|
|
|
+
|
|
|
|
+ // width: config.width,
|
|
|
|
+ // height: config.height,
|
|
|
|
+ // maxWidthOrHeight: config.maxWidthOrHeight,
|
|
|
|
+ // widthOrHeight: config.widthOrHeight,
|
|
|
|
+ // padding: config.padding,
|
|
|
|
+ ...(frame
|
|
|
|
+ ? {
|
|
|
|
+ ...config,
|
|
|
|
+ width: frame.width,
|
|
|
|
+ height: frame.height,
|
|
|
|
+ x: frame.x,
|
|
|
|
+ y: frame.y,
|
|
|
|
+ }
|
|
|
|
+ : config),
|
|
|
|
+ // // height: 140,
|
|
|
|
+ // // x: -appState.scrollX,
|
|
|
|
+ // // y: -appState.scrollY,
|
|
|
|
+ // // height: 150,
|
|
|
|
+ // // height: appState.height,
|
|
|
|
+ // // scale,
|
|
|
|
+ // // zoom: { value: appState.zoom.value },
|
|
|
|
+ // // getDimensions(width,height) {
|
|
|
|
+ // // setCanvasSize({ width, height })
|
|
|
|
+ // // return {width: 300, height: 150}
|
|
|
|
+ // // }
|
|
|
|
+ },
|
|
|
|
+ }).then((canvas) => {
|
|
|
|
+ if (canvasPreviewContainerRef.current) {
|
|
|
|
+ canvasPreviewContainerRef.current.replaceChildren(canvas);
|
|
|
|
+ document.querySelector(
|
|
|
|
+ ".dims",
|
|
|
|
+ )!.innerHTML = `${canvas.width}x${canvas.height}`;
|
|
|
|
+ // canvas.style.width = "100%";
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
|
|
// this check is redundant, but since this is a hot path, it's best
|
|
// this check is redundant, but since this is a hot path, it's best
|
|
// not to evaludate the nested expression every time
|
|
// not to evaludate the nested expression every time
|