Update export.ts
This commit is contained in:
parent
73a45e1988
commit
d87e080e88
@ -14,6 +14,18 @@ import {
|
|||||||
|
|
||||||
export const SVG_EXPORT_TAG = `<!-- svg-source:excalidraw -->`;
|
export const SVG_EXPORT_TAG = `<!-- svg-source:excalidraw -->`;
|
||||||
|
|
||||||
|
const createScene = (
|
||||||
|
elements: readonly NonDeletedExcalidrawElement[],
|
||||||
|
): Scene | null => {
|
||||||
|
if (!elements || Scene.getScene(elements[0])) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
const scene = new Scene();
|
||||||
|
scene.replaceAllElements(elements);
|
||||||
|
elements?.forEach((el) => Scene.mapElementToScene(el, scene));
|
||||||
|
return scene;
|
||||||
|
};
|
||||||
|
|
||||||
export const exportToCanvas = async (
|
export const exportToCanvas = async (
|
||||||
elements: readonly NonDeletedExcalidrawElement[],
|
elements: readonly NonDeletedExcalidrawElement[],
|
||||||
appState: AppState,
|
appState: AppState,
|
||||||
@ -37,6 +49,7 @@ export const exportToCanvas = async (
|
|||||||
return { canvas, scale: appState.exportScale };
|
return { canvas, scale: appState.exportScale };
|
||||||
},
|
},
|
||||||
) => {
|
) => {
|
||||||
|
const scene = createScene(elements);
|
||||||
const [minX, minY, width, height] = getCanvasSize(elements, exportPadding);
|
const [minX, minY, width, height] = getCanvasSize(elements, exportPadding);
|
||||||
|
|
||||||
const { canvas, scale = 1 } = createCanvas(width, height);
|
const { canvas, scale = 1 } = createCanvas(width, height);
|
||||||
@ -76,6 +89,7 @@ export const exportToCanvas = async (
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
scene?.destroy();
|
||||||
return canvas;
|
return canvas;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -97,6 +111,7 @@ export const exportToSvg = async (
|
|||||||
exportScale = 1,
|
exportScale = 1,
|
||||||
exportEmbedScene,
|
exportEmbedScene,
|
||||||
} = appState;
|
} = appState;
|
||||||
|
const scene = createScene(elements);
|
||||||
let metadata = "";
|
let metadata = "";
|
||||||
if (exportEmbedScene) {
|
if (exportEmbedScene) {
|
||||||
try {
|
try {
|
||||||
@ -169,6 +184,7 @@ export const exportToSvg = async (
|
|||||||
exportWithDarkMode: appState.exportWithDarkMode,
|
exportWithDarkMode: appState.exportWithDarkMode,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
scene?.destroy();
|
||||||
return svgRoot;
|
return svgRoot;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user