feat: Support LaTeX and AsciiMath via MathJax on stem.excalidraw.com

This commit is contained in:
Daniel J. Geiger
2022-12-27 15:11:52 -06:00
parent c8370b394c
commit 86f5c2ebcf
84 changed files with 8331 additions and 289 deletions
+16
View File
@@ -15,6 +15,7 @@ import {
Theme,
StrokeRoundness,
} from "./element/types";
import { Action } from "./actions/types";
import { SHAPES } from "./shapes";
import { Point as RoughPoint } from "roughjs/bin/geometry";
import { LinearElementEditor } from "./element/linearElementEditor";
@@ -28,6 +29,12 @@ import { ClipboardData } from "./clipboard";
import { isOverScrollBars } from "./scene";
import { MaybeTransformHandleType } from "./element/transformHandles";
import Library from "./data/library";
import {
SubtypeMethods,
Subtype,
SubtypePrepFn,
SubtypeRecord,
} from "./subtypes";
import type { FileSystemHandle } from "./data/filesystem";
import type { ALLOWED_IMAGE_MIME_TYPES, MIME_TYPES } from "./constants";
import { ContextMenuItems } from "./components/ContextMenu";
@@ -112,6 +119,10 @@ export type AppState = {
// (e.g. text element when typing into the input)
editingElement: NonDeletedExcalidrawElement | null;
editingLinearElement: LinearElementEditor | null;
activeSubtypes?: Subtype[];
customData?: {
[subtype: Subtype]: ExcalidrawElement["customData"];
};
activeTool:
| {
type: typeof SHAPES[number]["value"] | "eraser";
@@ -497,6 +508,11 @@ export type ExcalidrawImperativeAPI = {
getSceneElements: InstanceType<typeof App>["getSceneElements"];
getAppState: () => InstanceType<typeof App>["state"];
getFiles: () => InstanceType<typeof App>["files"];
actionManager: InstanceType<typeof App>["actionManager"];
addSubtype: (
record: SubtypeRecord,
subtypePrepFn: SubtypePrepFn,
) => { actions: Action[] | null; methods: Partial<SubtypeMethods> };
refresh: InstanceType<typeof App>["refresh"];
setToast: InstanceType<typeof App>["setToast"];
addFiles: (data: BinaryFileData[]) => void;