@excalidraw/common 0.18.0-2874f9e → 0.18.0-2a82821
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dev/index.js +173 -25
- package/dist/dev/index.js.map +3 -3
- package/dist/prod/index.js +3 -3
- package/dist/types/common/src/appEventBus.d.ts +27 -0
- package/dist/types/common/src/colors.d.ts +14 -14
- package/dist/types/common/src/constants.d.ts +9 -7
- package/dist/types/common/src/index.d.ts +2 -0
- package/dist/types/common/src/utils.d.ts +1 -3
- package/dist/types/common/src/versionedSnapshotStore.d.ts +17 -0
- package/dist/types/element/src/Scene.d.ts +7 -3
- package/dist/types/element/src/arrowheads.d.ts +3 -0
- package/dist/types/element/src/binding.d.ts +3 -4
- package/dist/types/element/src/bounds.d.ts +22 -3
- package/dist/types/element/src/comparisons.d.ts +1 -0
- package/dist/types/element/src/duplicate.d.ts +1 -0
- package/dist/types/element/src/elbowArrow.d.ts +2 -0
- package/dist/types/element/src/frame.d.ts +7 -6
- package/dist/types/element/src/index.d.ts +1 -0
- package/dist/types/element/src/linearElementEditor.d.ts +5 -2
- package/dist/types/element/src/mutateElement.d.ts +2 -0
- package/dist/types/element/src/newElement.d.ts +1 -0
- package/dist/types/element/src/selection.d.ts +8 -4
- package/dist/types/element/src/shape.d.ts +1 -1
- package/dist/types/element/src/textElement.d.ts +1 -1
- package/dist/types/element/src/textWrapping.d.ts +26 -0
- package/dist/types/element/src/typeChecks.d.ts +1 -0
- package/dist/types/element/src/types.d.ts +11 -2
- package/dist/types/element/src/utils.d.ts +2 -2
- package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +35 -38
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +25 -27
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +207 -219
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +24 -26
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +12 -13
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +37 -40
- package/dist/types/excalidraw/actions/actionDeselect.d.ts +160 -0
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +8 -13
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +24 -26
- package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +12 -13
- package/dist/types/excalidraw/actions/actionExport.d.ts +112 -394
- package/dist/types/excalidraw/actions/actionFrame.d.ts +49 -52
- package/dist/types/excalidraw/actions/actionGroup.d.ts +27 -29
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +13 -13
- package/dist/types/excalidraw/actions/actionLink.d.ts +12 -13
- package/dist/types/excalidraw/actions/actionMenu.d.ts +8 -13
- package/dist/types/excalidraw/actions/actionProperties.d.ts +37 -30
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +13 -14
- package/dist/types/excalidraw/actions/actionStyles.d.ts +12 -12
- package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
- package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +173 -0
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +12 -13
- package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +173 -0
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +12 -13
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +8 -13
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +12 -13
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +12 -13
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +12 -13
- package/dist/types/excalidraw/actions/index.d.ts +4 -1
- package/dist/types/excalidraw/actions/types.d.ts +1 -1
- package/dist/types/excalidraw/{animated-trail.d.ts → animatedTrail.d.ts} +4 -3
- package/dist/types/excalidraw/appState.d.ts +32 -28
- package/dist/types/excalidraw/charts/charts.bar.d.ts +2 -0
- package/dist/types/excalidraw/charts/charts.constants.d.ts +48 -0
- package/dist/types/excalidraw/charts/charts.helpers.d.ts +32 -0
- package/dist/types/excalidraw/charts/charts.line.d.ts +2 -0
- package/dist/types/excalidraw/charts/charts.parse.d.ts +10 -0
- package/dist/types/excalidraw/charts/charts.radar.d.ts +2 -0
- package/dist/types/excalidraw/charts/charts.types.d.ts +18 -0
- package/dist/types/excalidraw/charts/index.d.ts +7 -0
- package/dist/types/excalidraw/clipboard.d.ts +4 -7
- package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +1 -1
- package/dist/types/excalidraw/components/App.d.ts +54 -14
- package/dist/types/excalidraw/components/AppStateObserver.d.ts +37 -0
- package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +1 -1
- package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -2
- package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +1 -1
- package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
- package/dist/types/excalidraw/components/IconPicker.d.ts +14 -9
- package/dist/types/excalidraw/components/LibraryMenu.d.ts +1 -1
- package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
- package/dist/types/excalidraw/components/PasteChartDialog.d.ts +4 -5
- package/dist/types/excalidraw/components/Range.d.ts +10 -4
- package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
- package/dist/types/excalidraw/components/SearchMenu.d.ts +1 -1
- package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +1 -1
- package/dist/types/excalidraw/components/TTDDialog/CodeMirrorEditor.d.ts +11 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +4 -4
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +3 -3
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +4 -1
- package/dist/types/excalidraw/components/TTDDialog/mermaid-lang-lite.d.ts +2 -0
- package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +3 -3
- package/dist/types/excalidraw/components/TTDDialog/utils/mermaidAutoFix.d.ts +1 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/mermaidError.d.ts +10 -0
- package/dist/types/excalidraw/components/Toast.d.ts +8 -4
- package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +2 -1
- package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +1 -0
- package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +2 -1
- package/dist/types/excalidraw/components/icons.d.ts +19 -8
- package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +9 -3
- package/dist/types/excalidraw/components/shapes.d.ts +7 -0
- package/dist/types/excalidraw/data/blob.d.ts +163 -166
- package/dist/types/excalidraw/data/filesystem.d.ts +3 -5
- package/dist/types/excalidraw/data/index.d.ts +2 -3
- package/dist/types/excalidraw/data/json.d.ts +92 -85
- package/dist/types/excalidraw/data/library.d.ts +1 -1
- package/dist/types/excalidraw/data/resave.d.ts +7 -2
- package/dist/types/excalidraw/eraser/index.d.ts +2 -3
- package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
- package/dist/types/excalidraw/{laser-trails.d.ts → laserTrails.d.ts} +5 -7
- package/dist/types/excalidraw/lasso/index.d.ts +2 -3
- package/dist/types/excalidraw/renderer/animation.d.ts +4 -1
- package/dist/types/excalidraw/scene/Renderer.d.ts +426 -19
- package/dist/types/excalidraw/scene/index.d.ts +1 -1
- package/dist/types/excalidraw/textAutoResizeHandle.d.ts +15 -0
- package/dist/types/excalidraw/types.d.ts +110 -18
- package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +5 -1
- package/dist/types/fractional-indexing/src/index.d.ts +29 -0
- package/dist/types/laser-pointer/src/index.d.ts +2 -0
- package/dist/types/laser-pointer/src/math.d.ts +16 -0
- package/dist/types/laser-pointer/src/simplify.d.ts +2 -0
- package/dist/types/laser-pointer/src/state.d.ts +35 -0
- package/dist/types/math/src/constants.d.ts +0 -1
- package/dist/types/math/src/curve.d.ts +4 -1
- package/dist/types/math/src/point.d.ts +2 -1
- package/dist/types/utils/src/index.d.ts +1 -2
- package/package.json +1 -1
- package/dist/types/excalidraw/animation-frame-handler.d.ts +0 -16
- package/dist/types/excalidraw/charts.d.ts +0 -27
- package/dist/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +0 -4
- package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +0 -15
- package/dist/types/excalidraw/components/InitializeApp.d.ts +0 -10
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +0 -8
- package/dist/types/excalidraw/components/TTDDialog/utils/TTDStreamFetch.d.ts +0 -24
- package/dist/types/excalidraw/components/footer/FooterCenter.d.ts +0 -8
- package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +0 -11
- package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +0 -58
- package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +0 -19
- package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +0 -84
- package/dist/types/excalidraw/data/reconcile.d.ts +0 -7
- package/dist/types/excalidraw/index.d.ts +0 -47
- package/dist/types/excalidraw/polyfill.d.ts +0 -2
- package/dist/types/utils/src/bbox.d.ts +0 -9
- package/dist/types/utils/src/withinBounds.d.ts +0 -19
package/dist/dev/index.js
CHANGED
|
@@ -1394,7 +1394,10 @@ var cssInvert = (r, g, b, percent) => {
|
|
|
1394
1394
|
const invertedB = invertComponent(b);
|
|
1395
1395
|
return { r: invertedR, g: invertedG, b: invertedB };
|
|
1396
1396
|
};
|
|
1397
|
-
var applyDarkModeFilter = (color) => {
|
|
1397
|
+
var applyDarkModeFilter = (color, enable = true) => {
|
|
1398
|
+
if (!enable) {
|
|
1399
|
+
return color;
|
|
1400
|
+
}
|
|
1398
1401
|
const cached = DARK_MODE_COLORS_CACHE?.get(color);
|
|
1399
1402
|
if (cached) {
|
|
1400
1403
|
return cached;
|
|
@@ -1836,8 +1839,10 @@ var DEFAULT_UI_OPTIONS = {
|
|
|
1836
1839
|
var MAX_DECIMALS_FOR_SVG_EXPORT = 2;
|
|
1837
1840
|
var EXPORT_SCALES = [1, 2, 3];
|
|
1838
1841
|
var DEFAULT_EXPORT_PADDING = 10;
|
|
1839
|
-
var
|
|
1840
|
-
|
|
1842
|
+
var DEFAULT_IMAGE_OPTIONS = {
|
|
1843
|
+
maxWidthOrHeight: 1440,
|
|
1844
|
+
maxFileSizeBytes: 4 * 1024 * 1024
|
|
1845
|
+
};
|
|
1841
1846
|
var SVG_NS = "http://www.w3.org/2000/svg";
|
|
1842
1847
|
var SVG_DOCUMENT_PREAMBLE = `<?xml version="1.0" standalone="no"?>
|
|
1843
1848
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
@@ -1884,16 +1889,34 @@ var ROUGHNESS = {
|
|
|
1884
1889
|
artist: 1,
|
|
1885
1890
|
cartoonist: 2
|
|
1886
1891
|
};
|
|
1892
|
+
var STROKE_WIDTH_KEYS = [
|
|
1893
|
+
"thin",
|
|
1894
|
+
"medium",
|
|
1895
|
+
"bold"
|
|
1896
|
+
];
|
|
1887
1897
|
var STROKE_WIDTH = {
|
|
1888
1898
|
thin: 1,
|
|
1899
|
+
medium: 2,
|
|
1900
|
+
bold: 4,
|
|
1901
|
+
extraBold: 8
|
|
1902
|
+
// unused (may be introduced in the future)
|
|
1903
|
+
};
|
|
1904
|
+
var FREEDRAW_STROKE_WIDTH = {
|
|
1905
|
+
thin: 0.5,
|
|
1906
|
+
medium: 1,
|
|
1889
1907
|
bold: 2,
|
|
1890
1908
|
extraBold: 4
|
|
1909
|
+
// legacy (may be used again in the future)
|
|
1891
1910
|
};
|
|
1911
|
+
var getStrokeWidthByKey = (elementType, strokeWidthKey) => {
|
|
1912
|
+
return elementType === "freedraw" ? FREEDRAW_STROKE_WIDTH[strokeWidthKey] : STROKE_WIDTH[strokeWidthKey];
|
|
1913
|
+
};
|
|
1914
|
+
var DEFAULT_ELEMENT_STROKE_WIDTH_KEY = "medium";
|
|
1892
1915
|
var DEFAULT_ELEMENT_PROPS = {
|
|
1893
1916
|
strokeColor: COLOR_PALETTE.black,
|
|
1894
1917
|
backgroundColor: COLOR_PALETTE.transparent,
|
|
1895
1918
|
fillStyle: "solid",
|
|
1896
|
-
strokeWidth:
|
|
1919
|
+
strokeWidth: STROKE_WIDTH[DEFAULT_ELEMENT_STROKE_WIDTH_KEY],
|
|
1897
1920
|
strokeStyle: "solid",
|
|
1898
1921
|
roughness: ROUGHNESS.artist,
|
|
1899
1922
|
opacity: 100,
|
|
@@ -1957,6 +1980,8 @@ var BIND_MODE_TIMEOUT = 700;
|
|
|
1957
1980
|
var MOBILE_ACTION_BUTTON_BG = {
|
|
1958
1981
|
background: "var(--mobile-action-button-bg)"
|
|
1959
1982
|
};
|
|
1983
|
+
var DEFAULT_STROKE_STREAMLINE = 0.5;
|
|
1984
|
+
var DEFAULT_STROKE_STREAMLINE_PRECISE = 0.2;
|
|
1960
1985
|
|
|
1961
1986
|
// src/font-metadata.ts
|
|
1962
1987
|
init_define_import_meta_env();
|
|
@@ -2484,7 +2509,7 @@ var isInteractive = (target) => {
|
|
|
2484
2509
|
return isInputLike(target) || target instanceof Element && !!target.closest("label, button");
|
|
2485
2510
|
};
|
|
2486
2511
|
var isWritableElement = (target) => target instanceof HTMLElement && target.dataset.type === "wysiwyg" || target instanceof HTMLBRElement || // newline in wysiwyg
|
|
2487
|
-
target instanceof HTMLTextAreaElement || target instanceof HTMLInputElement && (target.type === "text" || target.type === "number" || target.type === "password" || target.type === "search");
|
|
2512
|
+
target instanceof HTMLTextAreaElement || target instanceof HTMLInputElement && (target.type === "text" || target.type === "number" || target.type === "password" || target.type === "search") || target instanceof HTMLElement && target.closest(".cm-editor") !== null;
|
|
2488
2513
|
var getFontFamilyString = ({
|
|
2489
2514
|
fontFamily
|
|
2490
2515
|
}) => {
|
|
@@ -2529,32 +2554,23 @@ var debounce = (fn, timeout) => {
|
|
|
2529
2554
|
};
|
|
2530
2555
|
return ret;
|
|
2531
2556
|
};
|
|
2532
|
-
var throttleRAF = (fn
|
|
2557
|
+
var throttleRAF = (fn) => {
|
|
2533
2558
|
let timerId = null;
|
|
2534
2559
|
let lastArgs = null;
|
|
2535
|
-
|
|
2536
|
-
const scheduleFunc = (args) => {
|
|
2560
|
+
const scheduleFunc = () => {
|
|
2537
2561
|
timerId = window.requestAnimationFrame(() => {
|
|
2538
2562
|
timerId = null;
|
|
2539
|
-
|
|
2563
|
+
const args = lastArgs;
|
|
2540
2564
|
lastArgs = null;
|
|
2541
|
-
if (
|
|
2542
|
-
|
|
2543
|
-
lastArgsTrailing = null;
|
|
2544
|
-
scheduleFunc(lastArgs);
|
|
2565
|
+
if (args) {
|
|
2566
|
+
fn(...args);
|
|
2545
2567
|
}
|
|
2546
2568
|
});
|
|
2547
2569
|
};
|
|
2548
2570
|
const ret = (...args) => {
|
|
2549
|
-
if (isTestEnv()) {
|
|
2550
|
-
fn(...args);
|
|
2551
|
-
return;
|
|
2552
|
-
}
|
|
2553
2571
|
lastArgs = args;
|
|
2554
2572
|
if (timerId === null) {
|
|
2555
|
-
scheduleFunc(
|
|
2556
|
-
} else if (opts?.trailing) {
|
|
2557
|
-
lastArgsTrailing = args;
|
|
2573
|
+
scheduleFunc();
|
|
2558
2574
|
}
|
|
2559
2575
|
};
|
|
2560
2576
|
ret.flush = () => {
|
|
@@ -2563,12 +2579,12 @@ var throttleRAF = (fn, opts) => {
|
|
|
2563
2579
|
timerId = null;
|
|
2564
2580
|
}
|
|
2565
2581
|
if (lastArgs) {
|
|
2566
|
-
fn(...
|
|
2567
|
-
lastArgs =
|
|
2582
|
+
fn(...lastArgs);
|
|
2583
|
+
lastArgs = null;
|
|
2568
2584
|
}
|
|
2569
2585
|
};
|
|
2570
2586
|
ret.cancel = () => {
|
|
2571
|
-
lastArgs =
|
|
2587
|
+
lastArgs = null;
|
|
2572
2588
|
if (timerId !== null) {
|
|
2573
2589
|
cancelAnimationFrame(timerId);
|
|
2574
2590
|
timerId = null;
|
|
@@ -3236,6 +3252,131 @@ var Emitter = class {
|
|
|
3236
3252
|
}
|
|
3237
3253
|
};
|
|
3238
3254
|
|
|
3255
|
+
// src/appEventBus.ts
|
|
3256
|
+
init_define_import_meta_env();
|
|
3257
|
+
var AppEventBus = class {
|
|
3258
|
+
constructor(behavior) {
|
|
3259
|
+
this.behavior = behavior;
|
|
3260
|
+
}
|
|
3261
|
+
emitters = /* @__PURE__ */ new Map();
|
|
3262
|
+
lastPayload = /* @__PURE__ */ new Map();
|
|
3263
|
+
emittedOnce = /* @__PURE__ */ new Set();
|
|
3264
|
+
getEmitter(name) {
|
|
3265
|
+
let emitter = this.emitters.get(name);
|
|
3266
|
+
if (!emitter) {
|
|
3267
|
+
emitter = new Emitter();
|
|
3268
|
+
this.emitters.set(name, emitter);
|
|
3269
|
+
}
|
|
3270
|
+
return emitter;
|
|
3271
|
+
}
|
|
3272
|
+
toPromiseValue(args) {
|
|
3273
|
+
return args.length === 1 ? args[0] : args;
|
|
3274
|
+
}
|
|
3275
|
+
on(name, callback) {
|
|
3276
|
+
const eventBehavior = this.behavior[name];
|
|
3277
|
+
const cachedPayload = this.lastPayload.get(name);
|
|
3278
|
+
if (callback) {
|
|
3279
|
+
if (eventBehavior.replay === "last" && cachedPayload) {
|
|
3280
|
+
queueMicrotask(() => callback(...cachedPayload));
|
|
3281
|
+
if (eventBehavior.cardinality === "once") {
|
|
3282
|
+
return () => {
|
|
3283
|
+
};
|
|
3284
|
+
}
|
|
3285
|
+
}
|
|
3286
|
+
return this.getEmitter(name).on(callback);
|
|
3287
|
+
}
|
|
3288
|
+
if (eventBehavior.cardinality !== "once" || eventBehavior.replay !== "last") {
|
|
3289
|
+
throw new Error(`Event "${String(name)}" requires a callback`);
|
|
3290
|
+
}
|
|
3291
|
+
if (cachedPayload) {
|
|
3292
|
+
return Promise.resolve(this.toPromiseValue(cachedPayload));
|
|
3293
|
+
}
|
|
3294
|
+
return new Promise((resolve) => {
|
|
3295
|
+
this.getEmitter(name).once((...args) => {
|
|
3296
|
+
resolve(this.toPromiseValue(args));
|
|
3297
|
+
});
|
|
3298
|
+
});
|
|
3299
|
+
}
|
|
3300
|
+
emit(name, ...args) {
|
|
3301
|
+
const eventBehavior = this.behavior[name];
|
|
3302
|
+
if (!isProdEnv()) {
|
|
3303
|
+
if (eventBehavior.cardinality === "once") {
|
|
3304
|
+
if (this.emittedOnce.has(name)) {
|
|
3305
|
+
throw new Error(`Event "${String(name)}" can only be emitted once`);
|
|
3306
|
+
}
|
|
3307
|
+
this.emittedOnce.add(name);
|
|
3308
|
+
}
|
|
3309
|
+
}
|
|
3310
|
+
if (eventBehavior.replay === "last") {
|
|
3311
|
+
this.lastPayload.set(name, args);
|
|
3312
|
+
}
|
|
3313
|
+
try {
|
|
3314
|
+
this.getEmitter(name).trigger(...args);
|
|
3315
|
+
} finally {
|
|
3316
|
+
if (eventBehavior.cardinality === "once") {
|
|
3317
|
+
this.getEmitter(name).clear();
|
|
3318
|
+
}
|
|
3319
|
+
}
|
|
3320
|
+
}
|
|
3321
|
+
clear() {
|
|
3322
|
+
this.lastPayload.clear();
|
|
3323
|
+
this.emittedOnce.clear();
|
|
3324
|
+
for (const emitter of this.emitters.values()) {
|
|
3325
|
+
emitter.clear();
|
|
3326
|
+
}
|
|
3327
|
+
this.emitters.clear();
|
|
3328
|
+
}
|
|
3329
|
+
};
|
|
3330
|
+
|
|
3331
|
+
// src/versionedSnapshotStore.ts
|
|
3332
|
+
init_define_import_meta_env();
|
|
3333
|
+
var VersionedSnapshotStore = class {
|
|
3334
|
+
constructor(initialValue, isEqual = Object.is) {
|
|
3335
|
+
this.isEqual = isEqual;
|
|
3336
|
+
this.value = initialValue;
|
|
3337
|
+
}
|
|
3338
|
+
version = 0;
|
|
3339
|
+
value;
|
|
3340
|
+
waiters = /* @__PURE__ */ new Set();
|
|
3341
|
+
subscribers = /* @__PURE__ */ new Set();
|
|
3342
|
+
getSnapshot() {
|
|
3343
|
+
return { version: this.version, value: this.value };
|
|
3344
|
+
}
|
|
3345
|
+
set(nextValue) {
|
|
3346
|
+
if (this.isEqual(this.value, nextValue)) {
|
|
3347
|
+
return false;
|
|
3348
|
+
}
|
|
3349
|
+
this.value = nextValue;
|
|
3350
|
+
this.version += 1;
|
|
3351
|
+
const snapshot = this.getSnapshot();
|
|
3352
|
+
for (const subscriber of this.subscribers) {
|
|
3353
|
+
subscriber(snapshot);
|
|
3354
|
+
}
|
|
3355
|
+
for (const waiter of this.waiters) {
|
|
3356
|
+
waiter(snapshot);
|
|
3357
|
+
}
|
|
3358
|
+
this.waiters.clear();
|
|
3359
|
+
return true;
|
|
3360
|
+
}
|
|
3361
|
+
update(updater) {
|
|
3362
|
+
return this.set(updater(this.value));
|
|
3363
|
+
}
|
|
3364
|
+
subscribe(subscriber) {
|
|
3365
|
+
this.subscribers.add(subscriber);
|
|
3366
|
+
return () => {
|
|
3367
|
+
this.subscribers.delete(subscriber);
|
|
3368
|
+
};
|
|
3369
|
+
}
|
|
3370
|
+
pull(sinceVersion = -1) {
|
|
3371
|
+
if (this.version !== sinceVersion) {
|
|
3372
|
+
return Promise.resolve(this.getSnapshot());
|
|
3373
|
+
}
|
|
3374
|
+
return new Promise((resolve) => {
|
|
3375
|
+
this.waiters.add(resolve);
|
|
3376
|
+
});
|
|
3377
|
+
}
|
|
3378
|
+
};
|
|
3379
|
+
|
|
3239
3380
|
// debug.ts
|
|
3240
3381
|
init_define_import_meta_env();
|
|
3241
3382
|
var lessPrecise = (num, precision = 5) => parseFloat(num.toPrecision(precision));
|
|
@@ -3409,6 +3550,7 @@ export {
|
|
|
3409
3550
|
ARROW_LABEL_FONT_SIZE_TO_MIN_WIDTH_RATIO,
|
|
3410
3551
|
ARROW_LABEL_WIDTH_FRACTION,
|
|
3411
3552
|
ARROW_TYPE,
|
|
3553
|
+
AppEventBus,
|
|
3412
3554
|
BIND_MODE_TIMEOUT,
|
|
3413
3555
|
BOUND_TEXT_PADDING,
|
|
3414
3556
|
BinaryHeap,
|
|
@@ -3436,17 +3578,20 @@ export {
|
|
|
3436
3578
|
DEFAULT_ELEMENT_STROKE_COLOR_INDEX,
|
|
3437
3579
|
DEFAULT_ELEMENT_STROKE_COLOR_PALETTE,
|
|
3438
3580
|
DEFAULT_ELEMENT_STROKE_PICKS,
|
|
3581
|
+
DEFAULT_ELEMENT_STROKE_WIDTH_KEY,
|
|
3439
3582
|
DEFAULT_EXPORT_PADDING,
|
|
3440
3583
|
DEFAULT_FILENAME,
|
|
3441
3584
|
DEFAULT_FONT_FAMILY,
|
|
3442
3585
|
DEFAULT_FONT_SIZE,
|
|
3443
3586
|
DEFAULT_GRID_SIZE,
|
|
3444
3587
|
DEFAULT_GRID_STEP,
|
|
3588
|
+
DEFAULT_IMAGE_OPTIONS,
|
|
3445
3589
|
DEFAULT_LASER_COLOR,
|
|
3446
|
-
DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT,
|
|
3447
3590
|
DEFAULT_PROPORTIONAL_RADIUS,
|
|
3448
3591
|
DEFAULT_REDUCED_GLOBAL_ALPHA,
|
|
3449
3592
|
DEFAULT_SIDEBAR,
|
|
3593
|
+
DEFAULT_STROKE_STREAMLINE,
|
|
3594
|
+
DEFAULT_STROKE_STREAMLINE_PRECISE,
|
|
3450
3595
|
DEFAULT_TEXT_ALIGN,
|
|
3451
3596
|
DEFAULT_TRANSFORM_HANDLE_SPACING,
|
|
3452
3597
|
DEFAULT_UI_OPTIONS,
|
|
@@ -3474,6 +3619,7 @@ export {
|
|
|
3474
3619
|
FONT_METADATA,
|
|
3475
3620
|
FONT_SIZES,
|
|
3476
3621
|
FRAME_STYLE,
|
|
3622
|
+
FREEDRAW_STROKE_WIDTH,
|
|
3477
3623
|
GOOGLE_FONTS_RANGES,
|
|
3478
3624
|
HYPERLINK_TOOLTIP_DELAY,
|
|
3479
3625
|
IDLE_THRESHOLD,
|
|
@@ -3486,7 +3632,6 @@ export {
|
|
|
3486
3632
|
LINE_CONFIRM_THRESHOLD,
|
|
3487
3633
|
LINE_POLYGON_POINT_MERGE_DISTANCE,
|
|
3488
3634
|
LOCAL_FONT_PROTOCOL,
|
|
3489
|
-
MAX_ALLOWED_FILE_BYTES,
|
|
3490
3635
|
MAX_CUSTOM_COLORS_USED_IN_CANVAS,
|
|
3491
3636
|
MAX_DECIMALS_FOR_SVG_EXPORT,
|
|
3492
3637
|
MAX_ZOOM,
|
|
@@ -3518,6 +3663,7 @@ export {
|
|
|
3518
3663
|
STATS_PANELS,
|
|
3519
3664
|
STRING_MIME_TYPES,
|
|
3520
3665
|
STROKE_WIDTH,
|
|
3666
|
+
STROKE_WIDTH_KEYS,
|
|
3521
3667
|
SVG_DOCUMENT_PREAMBLE,
|
|
3522
3668
|
SVG_NS,
|
|
3523
3669
|
TAP_TWICE_TIMEOUT,
|
|
@@ -3534,6 +3680,7 @@ export {
|
|
|
3534
3680
|
VERSIONS,
|
|
3535
3681
|
VERSION_TIMEOUT,
|
|
3536
3682
|
VERTICAL_ALIGN,
|
|
3683
|
+
VersionedSnapshotStore,
|
|
3537
3684
|
WINDOWS_EMOJI_FALLBACK_FONT,
|
|
3538
3685
|
YOUTUBE_STATES,
|
|
3539
3686
|
ZOOM_STEP,
|
|
@@ -3578,6 +3725,7 @@ export {
|
|
|
3578
3725
|
getLineHeight,
|
|
3579
3726
|
getNearestScrollableContainer,
|
|
3580
3727
|
getSizeFromPoints,
|
|
3728
|
+
getStrokeWidthByKey,
|
|
3581
3729
|
getSvgPathFromStroke,
|
|
3582
3730
|
getUpdatedTimestamp,
|
|
3583
3731
|
getVersion,
|