@excalidraw/excalidraw 0.18.0-432a46e → 0.18.0-58f7d33
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/{chunk-ZG3EI5XS.js → chunk-KKJLIRJU.js} +2 -2
- package/dist/dev/{chunk-ZG3EI5XS.js.map → chunk-KKJLIRJU.js.map} +1 -1
- package/dist/dev/{chunk-S7W4OWSF.js → chunk-LEJJ2YZY.js} +461 -192
- package/dist/dev/chunk-LEJJ2YZY.js.map +7 -0
- package/dist/dev/{chunk-LMHBUWQS.js → chunk-X3RYHLJU.js} +2 -1
- package/dist/dev/chunk-X3RYHLJU.js.map +7 -0
- package/dist/dev/data/{image-5HAY2PCR.js → image-U2IPNUKJ.js} +3 -3
- package/dist/dev/index.css +43 -46
- package/dist/dev/index.css.map +2 -2
- package/dist/dev/index.js +678 -190
- package/dist/dev/index.js.map +4 -4
- package/dist/dev/locales/{en-OZCJJ2HN.js → en-CKWC2GMK.js} +2 -2
- package/dist/dev/subset-shared.chunk.js +1 -1
- package/dist/dev/subset-worker.chunk.js +1 -1
- package/dist/prod/{chunk-6U3AYISY.js → chunk-IUH5AXLB.js} +1 -1
- package/dist/prod/{chunk-U24AOZ3B.js → chunk-QUX7WTVH.js} +1 -1
- package/dist/prod/chunk-RQK6WG4F.js +33 -0
- package/dist/prod/data/image-UQDATCXC.js +1 -0
- package/dist/prod/index.css +1 -1
- package/dist/prod/index.js +14 -14
- package/dist/prod/locales/{en-B4ZKOASM.js → en-SBO6ZHT2.js} +1 -1
- package/dist/prod/subset-shared.chunk.js +1 -1
- package/dist/prod/subset-worker.chunk.js +1 -1
- package/dist/types/{packages/common → common}/src/colors.d.ts +1 -0
- package/dist/types/{packages/common → common}/src/constants.d.ts +3 -0
- package/dist/types/{packages/common → common}/src/utils.d.ts +5 -1
- package/dist/types/{packages/element → element}/src/binding.d.ts +2 -1
- package/dist/types/{packages/element → element}/src/bounds.d.ts +5 -0
- package/dist/types/{packages/element → element}/src/collision.d.ts +1 -1
- package/dist/types/{packages/element → element}/src/heading.d.ts +0 -1
- package/dist/types/{packages/element → element}/src/textElement.d.ts +2 -1
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionAddToLibrary.d.ts +3 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionBoundText.d.ts +2 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionCanvas.d.ts +192 -3
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionClipboard.d.ts +6 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionCropEditor.d.ts +1 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionDeleteSelected.d.ts +3 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionElementLink.d.ts +1 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionElementLock.d.ts +2 -1
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionEmbeddable.d.ts +1 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionExport.d.ts +9 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionFinalize.d.ts +2 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionFrame.d.ts +4 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionGroup.d.ts +2 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionLinearEditor.d.ts +1 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionLink.d.ts +1 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionMenu.d.ts +3 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionNavigate.d.ts +2 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionProperties.d.ts +15 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionSelectAll.d.ts +1 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionStyles.d.ts +1 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionToggleGridMode.d.ts +1 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionToggleObjectsSnapMode.d.ts +1 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionToggleSearchMenu.d.ts +2 -0
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionToggleStats.d.ts +1 -1
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionToggleViewMode.d.ts +1 -1
- package/dist/types/{packages/excalidraw → excalidraw}/actions/actionToggleZenMode.d.ts +1 -1
- package/dist/types/{packages/excalidraw → excalidraw}/actions/types.d.ts +1 -1
- package/dist/types/{packages/excalidraw → excalidraw}/animated-trail.d.ts +7 -1
- package/dist/types/{packages/excalidraw → excalidraw}/appState.d.ts +1 -0
- package/dist/types/{packages/excalidraw → excalidraw}/components/App.d.ts +9 -4
- package/dist/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +7 -0
- package/dist/types/{packages/excalidraw → excalidraw}/components/ColorPicker/colorPickerUtils.d.ts +1 -1
- package/dist/types/{packages/excalidraw → excalidraw}/components/icons.d.ts +1 -0
- package/dist/types/excalidraw/eraser/index.d.ts +14 -0
- package/dist/types/excalidraw/lasso/index.d.ts +15 -0
- package/dist/types/excalidraw/lasso/utils.d.ts +12 -0
- package/dist/types/{packages/excalidraw → excalidraw}/types.d.ts +2 -1
- package/dist/types/{packages/math → math}/src/polygon.d.ts +1 -0
- package/dist/types/{packages/math → math}/src/segment.d.ts +1 -1
- package/dist/types/{packages/math → math}/src/types.d.ts +1 -0
- package/package.json +19 -2
- package/dist/dev/chunk-LMHBUWQS.js.map +0 -7
- package/dist/dev/chunk-S7W4OWSF.js.map +0 -7
- package/dist/prod/chunk-LRITYP5X.js +0 -31
- package/dist/prod/data/image-W3GRS73V.js +0 -1
- package/dist/types/excalidraw-app/app_constants.d.ts +0 -44
- package/dist/types/packages/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +0 -8
- package/dist/types/packages/excalidraw/tests/fixtures/diagramFixture.d.ts +0 -504
- package/dist/types/packages/excalidraw/tests/fixtures/elementFixture.d.ts +0 -7
- package/dist/types/packages/excalidraw/tests/helpers/api.d.ts +0 -89
- package/dist/types/packages/excalidraw/tests/helpers/colorize.d.ts +0 -2
- package/dist/types/packages/excalidraw/tests/helpers/mocks.d.ts +0 -5
- package/dist/types/packages/excalidraw/tests/helpers/polyfills.d.ts +0 -36
- package/dist/types/packages/excalidraw/tests/helpers/ui.d.ts +0 -189
- package/dist/types/packages/excalidraw/tests/queries/dom.d.ts +0 -2
- package/dist/types/packages/excalidraw/tests/queries/toolQueries.d.ts +0 -2
- package/dist/types/packages/excalidraw/tests/test-utils.d.ts +0 -139
- /package/dist/dev/data/{image-5HAY2PCR.js.map → image-U2IPNUKJ.js.map} +0 -0
- /package/dist/dev/locales/{en-OZCJJ2HN.js.map → en-CKWC2GMK.js.map} +0 -0
- /package/dist/types/{packages/common → common}/src/binary-heap.d.ts +0 -0
- /package/dist/types/{packages/common → common}/src/font-metadata.d.ts +0 -0
- /package/dist/types/{packages/common → common}/src/index.d.ts +0 -0
- /package/dist/types/{packages/common → common}/src/keys.d.ts +0 -0
- /package/dist/types/{packages/common → common}/src/points.d.ts +0 -0
- /package/dist/types/{packages/common → common}/src/promise-pool.d.ts +0 -0
- /package/dist/types/{packages/common → common}/src/queue.d.ts +0 -0
- /package/dist/types/{packages/common → common}/src/random.d.ts +0 -0
- /package/dist/types/{packages/common → common}/src/url.d.ts +0 -0
- /package/dist/types/{packages/common → common}/src/utility-types.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/Shape.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/ShapeCache.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/align.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/comparisons.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/containerCache.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/cropElement.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/distance.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/distribute.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/dragElements.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/duplicate.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/elbowArrow.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/elementLink.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/embeddable.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/flowchart.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/fractionalIndex.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/frame.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/groups.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/image.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/index.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/linearElementEditor.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/mutateElement.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/newElement.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/renderElement.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/resizeElements.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/resizeTest.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/selection.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/shapes.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/showSelectedShapeActions.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/sizeHelpers.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/sortElements.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/textMeasurements.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/textWrapping.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/transformHandles.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/typeChecks.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/types.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/utils.d.ts +0 -0
- /package/dist/types/{packages/element → element}/src/zindex.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/actions/actionAlign.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/actions/actionDistribute.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/actions/actionDuplicateSelection.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/actions/actionFlip.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/actions/actionHistory.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/actions/actionTextAutoResize.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/actions/actionZindex.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/actions/index.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/actions/manager.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/actions/register.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/actions/shortcuts.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/analytics.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/animation-frame-handler.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/change.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/charts.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/clients.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/clipboard.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Actions.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ActiveConfirmDialog.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Avatar.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/BraveMeasureTextError.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Button.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ButtonIcon.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ButtonIconCycle.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ButtonIconSelect.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ButtonSelect.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ButtonSeparator.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Card.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/CheckboxItem.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ColorPicker/ColorInput.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ColorPicker/ColorPicker.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ColorPicker/CustomColorList.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ColorPicker/Picker.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ColorPicker/PickerColorList.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ColorPicker/PickerHeading.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ColorPicker/ShadeList.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ColorPicker/TopPicks.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ColorPicker/keyboardNavHandlers.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/CommandPalette/CommandPalette.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/CommandPalette/defaultCommandPaletteItems.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/CommandPalette/types.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ConfirmDialog.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ContextMenu.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/DarkModeToggle.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/DefaultSidebar.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Dialog.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/DialogActionButton.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ElementCanvasButtons.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ElementLinkDialog.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ErrorDialog.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ExcalidrawLogo.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/EyeDropper.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/FilledButton.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/FixedSideContainer.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/FollowMode/FollowMode.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/FontPicker/FontPicker.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/FontPicker/FontPickerList.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/FontPicker/FontPickerTrigger.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/FontPicker/keyboardNavHandlers.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/HandButton.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/HelpButton.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/HelpDialog.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/HintViewer.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/IconPicker.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ImageExportDialog.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/InitializeApp.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/InlineIcon.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Island.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/JSONExportDialog.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/LaserPointerButton.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/LayerUI.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/LibraryMenu.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/LibraryMenuBrowseButton.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/LibraryMenuControlButtons.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/LibraryMenuHeaderContent.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/LibraryMenuItems.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/LibraryMenuSection.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/LibraryUnit.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/LoadingMessage.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/LockButton.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/MagicButton.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/MobileMenu.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Modal.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/OverwriteConfirm/OverwriteConfirm.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/OverwriteConfirm/OverwriteConfirmState.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Paragraph.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/PasteChartDialog.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/PenModeButton.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Popover.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ProjectName.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/PropertiesPopover.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/PublishLibrary.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/QuickSearch.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/RadioGroup.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Range.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/SVGLayer.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ScrollableList.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/SearchMenu.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Section.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ShareableLinkDialog.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Sidebar/Sidebar.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Sidebar/SidebarHeader.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Sidebar/SidebarTab.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Sidebar/SidebarTabTrigger.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Sidebar/SidebarTabTriggers.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Sidebar/SidebarTabs.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Sidebar/SidebarTrigger.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Sidebar/common.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Spinner.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Stack.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Stats/Angle.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Stats/CanvasGrid.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Stats/Collapsible.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Stats/Dimension.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Stats/DragInput.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Stats/FontSize.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Stats/MultiAngle.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Stats/MultiDimension.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Stats/MultiFontSize.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Stats/MultiPosition.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Stats/Position.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Stats/index.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Stats/utils.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Switch.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/TTDDialog/MermaidToExcalidraw.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/TTDDialog/TTDDialog.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/TTDDialog/TTDDialogInput.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/TTDDialog/TTDDialogOutput.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/TTDDialog/TTDDialogPanel.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/TTDDialog/TTDDialogPanels.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/TTDDialog/TTDDialogSubmitShortcut.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/TTDDialog/TTDDialogTab.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/TTDDialog/TTDDialogTabTrigger.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/TTDDialog/TTDDialogTabTriggers.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/TTDDialog/TTDDialogTabs.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/TTDDialog/TTDDialogTrigger.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/TTDDialog/common.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/TextField.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Toast.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/ToolButton.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Tooltip.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/Trans.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/UserList.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/canvases/InteractiveCanvas.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/canvases/NewElementCanvas.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/canvases/StaticCanvas.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/canvases/index.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/dropdownMenu/DropdownMenu.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/dropdownMenu/DropdownMenuContent.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/dropdownMenu/DropdownMenuGroup.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/dropdownMenu/DropdownMenuItem.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/dropdownMenu/DropdownMenuItemContent.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/dropdownMenu/DropdownMenuItemCustom.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/dropdownMenu/DropdownMenuItemLink.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/dropdownMenu/DropdownMenuSeparator.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/dropdownMenu/DropdownMenuTrigger.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/dropdownMenu/common.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/dropdownMenu/dropdownMenuUtils.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/footer/Footer.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/footer/FooterCenter.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/hoc/withInternalFallback.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/hyperlink/Hyperlink.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/hyperlink/helpers.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/live-collaboration/LiveCollaborationTrigger.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/main-menu/DefaultItems.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/main-menu/MainMenu.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/shapes.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/welcome-screen/WelcomeScreen.Center.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/welcome-screen/WelcomeScreen.Hints.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/components/welcome-screen/WelcomeScreen.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/context/tunnels.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/context/ui-appState.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/cursor.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/data/EditorLocalStorage.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/data/ai/types.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/data/blob.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/data/encode.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/data/encryption.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/data/filesystem.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/data/image.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/data/index.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/data/json.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/data/library.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/data/reconcile.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/data/resave.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/data/restore.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/data/transform.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/data/types.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/deburr.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/editor-jotai.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/emitter.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/errors.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/fonts/Cascadia/index.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/fonts/ComicShanns/index.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/fonts/Emoji/index.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/fonts/ExcalidrawFontFace.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/fonts/Excalifont/index.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/fonts/Fonts.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/fonts/Helvetica/index.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/fonts/Liberation/index.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/fonts/Lilita/index.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/fonts/Nunito/index.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/fonts/Virgil/index.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/fonts/Xiaolai/index.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/fonts/index.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/gesture.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/history.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/hooks/useCallbackRefState.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/hooks/useCopiedIndicator.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/hooks/useCreatePortalContainer.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/hooks/useEmitter.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/hooks/useLibraryItemSvg.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/hooks/useOutsideClick.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/hooks/useScrollPosition.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/hooks/useStable.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/hooks/useStableCallback.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/hooks/useTransition.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/i18n.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/index-node.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/index.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/laser-trails.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/mermaid.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/polyfill.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/reactUtils.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/renderer/helpers.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/renderer/interactiveScene.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/renderer/renderNewElementScene.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/renderer/renderSnaps.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/renderer/roundRect.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/renderer/staticScene.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/renderer/staticSvgScene.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/scene/Renderer.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/scene/Scene.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/scene/export.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/scene/index.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/scene/normalize.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/scene/scroll.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/scene/scrollbars.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/scene/types.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/scene/zoom.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/snapping.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/store.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/subset/harfbuzz/harfbuzz-bindings.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/subset/harfbuzz/harfbuzz-loader.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/subset/harfbuzz/harfbuzz-wasm.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/subset/subset-main.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/subset/subset-shared.chunk.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/subset/subset-worker.chunk.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/subset/woff2/woff2-bindings.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/subset/woff2/woff2-loader.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/subset/woff2/woff2-wasm.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/visualdebug.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/workers.d.ts +0 -0
- /package/dist/types/{packages/excalidraw → excalidraw}/wysiwyg/textWysiwyg.d.ts +0 -0
- /package/dist/types/{packages/math → math}/src/angle.d.ts +0 -0
- /package/dist/types/{packages/math → math}/src/curve.d.ts +0 -0
- /package/dist/types/{packages/math → math}/src/ellipse.d.ts +0 -0
- /package/dist/types/{packages/math → math}/src/index.d.ts +0 -0
- /package/dist/types/{packages/math → math}/src/line.d.ts +0 -0
- /package/dist/types/{packages/math → math}/src/point.d.ts +0 -0
- /package/dist/types/{packages/math → math}/src/range.d.ts +0 -0
- /package/dist/types/{packages/math → math}/src/rectangle.d.ts +0 -0
- /package/dist/types/{packages/math → math}/src/triangle.d.ts +0 -0
- /package/dist/types/{packages/math → math}/src/utils.d.ts +0 -0
- /package/dist/types/{packages/math → math}/src/vector.d.ts +0 -0
- /package/dist/types/{packages/utils → utils}/src/bbox.d.ts +0 -0
- /package/dist/types/{packages/utils → utils}/src/collision.d.ts +0 -0
- /package/dist/types/{packages/utils → utils}/src/export.d.ts +0 -0
- /package/dist/types/{packages/utils → utils}/src/index.d.ts +0 -0
- /package/dist/types/{packages/utils → utils}/src/shape.d.ts +0 -0
- /package/dist/types/{packages/utils → utils}/src/withinBounds.d.ts +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
define_import_meta_env_default
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KKJLIRJU.js";
|
|
4
4
|
import {
|
|
5
5
|
__publicField
|
|
6
6
|
} from "./chunk-XDFCUUT6.js";
|
|
@@ -103,6 +103,7 @@ var BinaryHeap = class {
|
|
|
103
103
|
|
|
104
104
|
// ../common/src/colors.ts
|
|
105
105
|
import oc from "open-color";
|
|
106
|
+
var COLOR_OUTLINE_CONTRAST_THRESHOLD = 240;
|
|
106
107
|
var pick = (source, keys) => {
|
|
107
108
|
return keys.reduce((acc, key) => {
|
|
108
109
|
if (key in source) {
|
|
@@ -263,7 +264,8 @@ var YOUTUBE_STATES = {
|
|
|
263
264
|
};
|
|
264
265
|
var ENV = {
|
|
265
266
|
TEST: "test",
|
|
266
|
-
DEVELOPMENT: "development"
|
|
267
|
+
DEVELOPMENT: "development",
|
|
268
|
+
PRODUCTION: "production"
|
|
267
269
|
};
|
|
268
270
|
var CLASSES = {
|
|
269
271
|
SHAPE_ACTIONS_MENU: "App-menu__left",
|
|
@@ -410,6 +412,9 @@ var DEFAULT_EXPORT_PADDING = 10;
|
|
|
410
412
|
var DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT = 1440;
|
|
411
413
|
var MAX_ALLOWED_FILE_BYTES = 4 * 1024 * 1024;
|
|
412
414
|
var SVG_NS = "http://www.w3.org/2000/svg";
|
|
415
|
+
var SVG_DOCUMENT_PREAMBLE = `<?xml version="1.0" standalone="no"?>
|
|
416
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
417
|
+
`;
|
|
413
418
|
var VERSIONS = {
|
|
414
419
|
excalidraw: 2,
|
|
415
420
|
excalidrawLibrary: 2
|
|
@@ -479,6 +484,7 @@ var LIBRARY_DISABLED_TYPES = /* @__PURE__ */ new Set([
|
|
|
479
484
|
]);
|
|
480
485
|
var TOOL_TYPE = {
|
|
481
486
|
selection: "selection",
|
|
487
|
+
lasso: "lasso",
|
|
482
488
|
rectangle: "rectangle",
|
|
483
489
|
diamond: "diamond",
|
|
484
490
|
ellipse: "ellipse",
|
|
@@ -935,9 +941,9 @@ var distanceToLineSegment = (point, line2) => {
|
|
|
935
941
|
const dy = y - yy;
|
|
936
942
|
return Math.sqrt(dx * dx + dy * dy);
|
|
937
943
|
};
|
|
938
|
-
function lineSegmentIntersectionPoints(l, s) {
|
|
944
|
+
function lineSegmentIntersectionPoints(l, s, threshold) {
|
|
939
945
|
const candidate = linesIntersectAt(line(l[0], l[1]), line(s[0], s[1]));
|
|
940
|
-
if (!candidate || !pointOnLineSegment(candidate, s) || !pointOnLineSegment(candidate, l)) {
|
|
946
|
+
if (!candidate || !pointOnLineSegment(candidate, s, threshold) || !pointOnLineSegment(candidate, l, threshold)) {
|
|
941
947
|
return null;
|
|
942
948
|
}
|
|
943
949
|
return candidate;
|
|
@@ -1131,6 +1137,27 @@ var polygonIncludesPoint = (point, polygon2) => {
|
|
|
1131
1137
|
}
|
|
1132
1138
|
return inside;
|
|
1133
1139
|
};
|
|
1140
|
+
var polygonIncludesPointNonZero = (point, polygon2) => {
|
|
1141
|
+
const [x, y] = point;
|
|
1142
|
+
let windingNumber = 0;
|
|
1143
|
+
for (let i = 0; i < polygon2.length; i++) {
|
|
1144
|
+
const j = (i + 1) % polygon2.length;
|
|
1145
|
+
const [xi, yi] = polygon2[i];
|
|
1146
|
+
const [xj, yj] = polygon2[j];
|
|
1147
|
+
if (yi <= y) {
|
|
1148
|
+
if (yj > y) {
|
|
1149
|
+
if ((xj - xi) * (y - yi) - (x - xi) * (yj - yi) > 0) {
|
|
1150
|
+
windingNumber++;
|
|
1151
|
+
}
|
|
1152
|
+
}
|
|
1153
|
+
} else if (yj <= y) {
|
|
1154
|
+
if ((xj - xi) * (y - yi) - (x - xi) * (yj - yi) < 0) {
|
|
1155
|
+
windingNumber--;
|
|
1156
|
+
}
|
|
1157
|
+
}
|
|
1158
|
+
}
|
|
1159
|
+
return windingNumber !== 0;
|
|
1160
|
+
};
|
|
1134
1161
|
var pointOnPolygon = (p, poly, threshold = PRECISION) => {
|
|
1135
1162
|
let on = false;
|
|
1136
1163
|
for (let i = 0, l = poly.length - 1; i < l; i++) {
|
|
@@ -1469,7 +1496,8 @@ var updateActiveTool = (appState, data) => {
|
|
|
1469
1496
|
lastActiveTool: data.lastActiveToolBeforeEraser === void 0 ? appState.activeTool.lastActiveTool : data.lastActiveToolBeforeEraser,
|
|
1470
1497
|
type: data.type,
|
|
1471
1498
|
customType: null,
|
|
1472
|
-
locked: data.locked ?? appState.activeTool.locked
|
|
1499
|
+
locked: data.locked ?? appState.activeTool.locked,
|
|
1500
|
+
fromSelection: data.fromSelection ?? false
|
|
1473
1501
|
};
|
|
1474
1502
|
};
|
|
1475
1503
|
var getShortcutKey = (shortcut) => {
|
|
@@ -1627,6 +1655,7 @@ var arrayToList = (array) => array.reduce((acc, curr, index) => {
|
|
|
1627
1655
|
}, []);
|
|
1628
1656
|
var isTestEnv = () => define_import_meta_env_default.MODE === ENV.TEST;
|
|
1629
1657
|
var isDevEnv = () => define_import_meta_env_default.MODE === ENV.DEVELOPMENT;
|
|
1658
|
+
var isProdEnv = () => define_import_meta_env_default.MODE === ENV.PRODUCTION;
|
|
1630
1659
|
var isServerEnv = () => typeof process !== "undefined" && true;
|
|
1631
1660
|
var wrapEvent = (name, nativeEvent) => {
|
|
1632
1661
|
return new CustomEvent(name, {
|
|
@@ -1838,6 +1867,12 @@ var escapeDoubleQuotes = (str) => {
|
|
|
1838
1867
|
return str.replace(/"/g, """);
|
|
1839
1868
|
};
|
|
1840
1869
|
var castArray = (value) => Array.isArray(value) ? value : [value];
|
|
1870
|
+
var elementCenterPoint = (element, xOffset = 0, yOffset = 0) => {
|
|
1871
|
+
const { x, y, width, height } = element;
|
|
1872
|
+
const centerXPoint = x + width / 2 + xOffset;
|
|
1873
|
+
const centerYPoint = y + height / 2 + yOffset;
|
|
1874
|
+
return pointFrom(centerXPoint, centerYPoint);
|
|
1875
|
+
};
|
|
1841
1876
|
|
|
1842
1877
|
// ../common/src/random.ts
|
|
1843
1878
|
var random = new Random(Date.now());
|
|
@@ -2107,6 +2142,9 @@ var pointInEllipse = (p, ellipse2) => {
|
|
|
2107
2142
|
return rotatedPointX / halfWidth * (rotatedPointX / halfWidth) + rotatedPointY / halfHeight * (rotatedPointY / halfHeight) <= 1;
|
|
2108
2143
|
};
|
|
2109
2144
|
|
|
2145
|
+
// ../element/src/bounds.ts
|
|
2146
|
+
import { pointsOnBezierCurves as pointsOnBezierCurves2 } from "points-on-curve";
|
|
2147
|
+
|
|
2110
2148
|
// ../element/src/ShapeCache.ts
|
|
2111
2149
|
import { RoughGenerator } from "roughjs/bin/generator";
|
|
2112
2150
|
|
|
@@ -2407,10 +2445,7 @@ function deconstructRectanguloidElement(element, offset = 0) {
|
|
|
2407
2445
|
const sides2 = [top2, right2, bottom2, left2];
|
|
2408
2446
|
return [sides2, []];
|
|
2409
2447
|
}
|
|
2410
|
-
const center =
|
|
2411
|
-
element.x + element.width / 2,
|
|
2412
|
-
element.y + element.height / 2
|
|
2413
|
-
);
|
|
2448
|
+
const center = elementCenterPoint(element);
|
|
2414
2449
|
const r = rectangle(
|
|
2415
2450
|
pointFrom(element.x, element.y),
|
|
2416
2451
|
pointFrom(element.x + element.width, element.y + element.height)
|
|
@@ -2576,10 +2611,7 @@ function deconstructDiamondElement(element, offset = 0) {
|
|
|
2576
2611
|
);
|
|
2577
2612
|
return [[topRight, bottomRight, bottomLeft, topLeft], []];
|
|
2578
2613
|
}
|
|
2579
|
-
const center =
|
|
2580
|
-
element.x + element.width / 2,
|
|
2581
|
-
element.y + element.height / 2
|
|
2582
|
-
);
|
|
2614
|
+
const center = elementCenterPoint(element);
|
|
2583
2615
|
const [top, right, bottom, left] = [
|
|
2584
2616
|
pointFrom(element.x + topX, element.y + topY),
|
|
2585
2617
|
pointFrom(element.x + rightX, element.y + rightY),
|
|
@@ -2760,10 +2792,7 @@ var intersectElementWithLineSegment = (element, line2, offset = 0) => {
|
|
|
2760
2792
|
}
|
|
2761
2793
|
};
|
|
2762
2794
|
var intersectRectanguloidWithLineSegment = (element, l, offset = 0) => {
|
|
2763
|
-
const center =
|
|
2764
|
-
element.x + element.width / 2,
|
|
2765
|
-
element.y + element.height / 2
|
|
2766
|
-
);
|
|
2795
|
+
const center = elementCenterPoint(element);
|
|
2767
2796
|
const rotatedA = pointRotateRads(
|
|
2768
2797
|
l[0],
|
|
2769
2798
|
center,
|
|
@@ -2793,10 +2822,7 @@ var intersectRectanguloidWithLineSegment = (element, l, offset = 0) => {
|
|
|
2793
2822
|
);
|
|
2794
2823
|
};
|
|
2795
2824
|
var intersectDiamondWithLineSegment = (element, l, offset = 0) => {
|
|
2796
|
-
const center =
|
|
2797
|
-
element.x + element.width / 2,
|
|
2798
|
-
element.y + element.height / 2
|
|
2799
|
-
);
|
|
2825
|
+
const center = elementCenterPoint(element);
|
|
2800
2826
|
const rotatedA = pointRotateRads(l[0], center, -element.angle);
|
|
2801
2827
|
const rotatedB = pointRotateRads(l[1], center, -element.angle);
|
|
2802
2828
|
const [sides, curves] = deconstructDiamondElement(element, offset);
|
|
@@ -2814,10 +2840,7 @@ var intersectDiamondWithLineSegment = (element, l, offset = 0) => {
|
|
|
2814
2840
|
);
|
|
2815
2841
|
};
|
|
2816
2842
|
var intersectEllipseWithLineSegment = (element, l, offset = 0) => {
|
|
2817
|
-
const center =
|
|
2818
|
-
element.x + element.width / 2,
|
|
2819
|
-
element.y + element.height / 2
|
|
2820
|
-
);
|
|
2843
|
+
const center = elementCenterPoint(element);
|
|
2821
2844
|
const rotatedA = pointRotateRads(l[0], center, -element.angle);
|
|
2822
2845
|
const rotatedB = pointRotateRads(l[1], center, -element.angle);
|
|
2823
2846
|
return ellipseLineIntersectionPoints(
|
|
@@ -2863,10 +2886,7 @@ var distanceToBindableElement = (element, p) => {
|
|
|
2863
2886
|
}
|
|
2864
2887
|
};
|
|
2865
2888
|
var distanceToRectanguloidElement = (element, p) => {
|
|
2866
|
-
const center =
|
|
2867
|
-
element.x + element.width / 2,
|
|
2868
|
-
element.y + element.height / 2
|
|
2869
|
-
);
|
|
2889
|
+
const center = elementCenterPoint(element);
|
|
2870
2890
|
const rotatedPoint = pointRotateRads(p, center, -element.angle);
|
|
2871
2891
|
const [sides, corners] = deconstructRectanguloidElement(element);
|
|
2872
2892
|
return Math.min(
|
|
@@ -2875,10 +2895,7 @@ var distanceToRectanguloidElement = (element, p) => {
|
|
|
2875
2895
|
);
|
|
2876
2896
|
};
|
|
2877
2897
|
var distanceToDiamondElement = (element, p) => {
|
|
2878
|
-
const center =
|
|
2879
|
-
element.x + element.width / 2,
|
|
2880
|
-
element.y + element.height / 2
|
|
2881
|
-
);
|
|
2898
|
+
const center = elementCenterPoint(element);
|
|
2882
2899
|
const rotatedPoint = pointRotateRads(p, center, -element.angle);
|
|
2883
2900
|
const [sides, curves] = deconstructDiamondElement(element);
|
|
2884
2901
|
return Math.min(
|
|
@@ -2887,10 +2904,7 @@ var distanceToDiamondElement = (element, p) => {
|
|
|
2887
2904
|
);
|
|
2888
2905
|
};
|
|
2889
2906
|
var distanceToEllipseElement = (element, p) => {
|
|
2890
|
-
const center =
|
|
2891
|
-
element.x + element.width / 2,
|
|
2892
|
-
element.y + element.height / 2
|
|
2893
|
-
);
|
|
2907
|
+
const center = elementCenterPoint(element);
|
|
2894
2908
|
return ellipseDistanceFromPoint(
|
|
2895
2909
|
// Instead of rotating the ellipse, rotate the point to the inverse angle
|
|
2896
2910
|
pointRotateRads(p, center, -element.angle),
|
|
@@ -2903,19 +2917,6 @@ var HEADING_RIGHT = [1, 0];
|
|
|
2903
2917
|
var HEADING_DOWN = [0, 1];
|
|
2904
2918
|
var HEADING_LEFT = [-1, 0];
|
|
2905
2919
|
var HEADING_UP = [0, -1];
|
|
2906
|
-
var headingForDiamond = (a, b) => {
|
|
2907
|
-
const angle = radiansToDegrees(
|
|
2908
|
-
normalizeRadians(Math.atan2(b[1] - a[1], b[0] - a[0]))
|
|
2909
|
-
);
|
|
2910
|
-
if (angle >= 315 || angle < 45) {
|
|
2911
|
-
return HEADING_UP;
|
|
2912
|
-
} else if (angle >= 45 && angle < 135) {
|
|
2913
|
-
return HEADING_RIGHT;
|
|
2914
|
-
} else if (angle >= 135 && angle < 225) {
|
|
2915
|
-
return HEADING_DOWN;
|
|
2916
|
-
}
|
|
2917
|
-
return HEADING_LEFT;
|
|
2918
|
-
};
|
|
2919
2920
|
var vectorToHeading = (vec) => {
|
|
2920
2921
|
const [x, y] = vec;
|
|
2921
2922
|
const absX = Math.abs(x);
|
|
@@ -2933,69 +2934,135 @@ var headingForPoint = (p, o) => vectorToHeading(vectorFromPoint(p, o));
|
|
|
2933
2934
|
var headingForPointIsHorizontal = (p, o) => headingIsHorizontal(headingForPoint(p, o));
|
|
2934
2935
|
var compareHeading = (a, b) => a[0] === b[0] && a[1] === b[1];
|
|
2935
2936
|
var headingIsHorizontal = (a) => compareHeading(a, HEADING_RIGHT) || compareHeading(a, HEADING_LEFT);
|
|
2936
|
-
var
|
|
2937
|
-
const SEARCH_CONE_MULTIPLIER = 2;
|
|
2937
|
+
var headingForPointFromDiamondElement = (element, aabb, point) => {
|
|
2938
2938
|
const midPoint = getCenterForBounds(aabb);
|
|
2939
|
-
if (
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
return HEADING_UP;
|
|
2944
|
-
} else if (p[0] > element.x + element.width) {
|
|
2945
|
-
return HEADING_RIGHT;
|
|
2946
|
-
} else if (p[1] > element.y + element.height) {
|
|
2947
|
-
return HEADING_DOWN;
|
|
2948
|
-
}
|
|
2949
|
-
const top = pointRotateRads(
|
|
2950
|
-
pointScaleFromOrigin(
|
|
2951
|
-
pointFrom(element.x + element.width / 2, element.y),
|
|
2952
|
-
midPoint,
|
|
2953
|
-
SEARCH_CONE_MULTIPLIER
|
|
2954
|
-
),
|
|
2955
|
-
midPoint,
|
|
2956
|
-
element.angle
|
|
2939
|
+
if (isDevEnv() || isTestEnv()) {
|
|
2940
|
+
invariant(
|
|
2941
|
+
element.width > 0 && element.height > 0,
|
|
2942
|
+
"Diamond element has no width or height"
|
|
2957
2943
|
);
|
|
2958
|
-
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
midPoint,
|
|
2962
|
-
SEARCH_CONE_MULTIPLIER
|
|
2963
|
-
),
|
|
2964
|
-
midPoint,
|
|
2965
|
-
element.angle
|
|
2944
|
+
invariant(
|
|
2945
|
+
!pointsEqual(midPoint, point),
|
|
2946
|
+
"The point is too close to the element mid point to determine heading"
|
|
2966
2947
|
);
|
|
2967
|
-
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
|
|
2971
|
-
|
|
2948
|
+
}
|
|
2949
|
+
const SHRINK = 0.95;
|
|
2950
|
+
const top = pointFromVector(
|
|
2951
|
+
vectorScale(
|
|
2952
|
+
vectorFromPoint(
|
|
2953
|
+
pointRotateRads(
|
|
2954
|
+
pointFrom(element.x + element.width / 2, element.y),
|
|
2955
|
+
midPoint,
|
|
2956
|
+
element.angle
|
|
2957
|
+
),
|
|
2958
|
+
midPoint
|
|
2972
2959
|
),
|
|
2973
|
-
|
|
2974
|
-
|
|
2975
|
-
|
|
2976
|
-
|
|
2977
|
-
|
|
2978
|
-
|
|
2979
|
-
|
|
2980
|
-
|
|
2960
|
+
SHRINK
|
|
2961
|
+
),
|
|
2962
|
+
midPoint
|
|
2963
|
+
);
|
|
2964
|
+
const right = pointFromVector(
|
|
2965
|
+
vectorScale(
|
|
2966
|
+
vectorFromPoint(
|
|
2967
|
+
pointRotateRads(
|
|
2968
|
+
pointFrom(
|
|
2969
|
+
element.x + element.width,
|
|
2970
|
+
element.y + element.height / 2
|
|
2971
|
+
),
|
|
2972
|
+
midPoint,
|
|
2973
|
+
element.angle
|
|
2974
|
+
),
|
|
2975
|
+
midPoint
|
|
2981
2976
|
),
|
|
2982
|
-
|
|
2983
|
-
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
2988
|
-
|
|
2989
|
-
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
|
|
2993
|
-
|
|
2994
|
-
|
|
2995
|
-
|
|
2996
|
-
|
|
2997
|
-
|
|
2998
|
-
|
|
2977
|
+
SHRINK
|
|
2978
|
+
),
|
|
2979
|
+
midPoint
|
|
2980
|
+
);
|
|
2981
|
+
const bottom = pointFromVector(
|
|
2982
|
+
vectorScale(
|
|
2983
|
+
vectorFromPoint(
|
|
2984
|
+
pointRotateRads(
|
|
2985
|
+
pointFrom(
|
|
2986
|
+
element.x + element.width / 2,
|
|
2987
|
+
element.y + element.height
|
|
2988
|
+
),
|
|
2989
|
+
midPoint,
|
|
2990
|
+
element.angle
|
|
2991
|
+
),
|
|
2992
|
+
midPoint
|
|
2993
|
+
),
|
|
2994
|
+
SHRINK
|
|
2995
|
+
),
|
|
2996
|
+
midPoint
|
|
2997
|
+
);
|
|
2998
|
+
const left = pointFromVector(
|
|
2999
|
+
vectorScale(
|
|
3000
|
+
vectorFromPoint(
|
|
3001
|
+
pointRotateRads(
|
|
3002
|
+
pointFrom(element.x, element.y + element.height / 2),
|
|
3003
|
+
midPoint,
|
|
3004
|
+
element.angle
|
|
3005
|
+
),
|
|
3006
|
+
midPoint
|
|
3007
|
+
),
|
|
3008
|
+
SHRINK
|
|
3009
|
+
),
|
|
3010
|
+
midPoint
|
|
3011
|
+
);
|
|
3012
|
+
if (vectorCross(vectorFromPoint(point, top), vectorFromPoint(top, right)) <= 0 && vectorCross(vectorFromPoint(point, top), vectorFromPoint(top, left)) > 0) {
|
|
3013
|
+
return headingForPoint(top, midPoint);
|
|
3014
|
+
} else if (vectorCross(
|
|
3015
|
+
vectorFromPoint(point, right),
|
|
3016
|
+
vectorFromPoint(right, bottom)
|
|
3017
|
+
) <= 0 && vectorCross(vectorFromPoint(point, right), vectorFromPoint(right, top)) > 0) {
|
|
3018
|
+
return headingForPoint(right, midPoint);
|
|
3019
|
+
} else if (vectorCross(
|
|
3020
|
+
vectorFromPoint(point, bottom),
|
|
3021
|
+
vectorFromPoint(bottom, left)
|
|
3022
|
+
) <= 0 && vectorCross(
|
|
3023
|
+
vectorFromPoint(point, bottom),
|
|
3024
|
+
vectorFromPoint(bottom, right)
|
|
3025
|
+
) > 0) {
|
|
3026
|
+
return headingForPoint(bottom, midPoint);
|
|
3027
|
+
} else if (vectorCross(vectorFromPoint(point, left), vectorFromPoint(left, top)) <= 0 && vectorCross(vectorFromPoint(point, left), vectorFromPoint(left, bottom)) > 0) {
|
|
3028
|
+
return headingForPoint(left, midPoint);
|
|
3029
|
+
}
|
|
3030
|
+
if (vectorCross(
|
|
3031
|
+
vectorFromPoint(point, midPoint),
|
|
3032
|
+
vectorFromPoint(top, midPoint)
|
|
3033
|
+
) <= 0 && vectorCross(
|
|
3034
|
+
vectorFromPoint(point, midPoint),
|
|
3035
|
+
vectorFromPoint(right, midPoint)
|
|
3036
|
+
) > 0) {
|
|
3037
|
+
const p2 = element.width > element.height ? top : right;
|
|
3038
|
+
return headingForPoint(p2, midPoint);
|
|
3039
|
+
} else if (vectorCross(
|
|
3040
|
+
vectorFromPoint(point, midPoint),
|
|
3041
|
+
vectorFromPoint(right, midPoint)
|
|
3042
|
+
) <= 0 && vectorCross(
|
|
3043
|
+
vectorFromPoint(point, midPoint),
|
|
3044
|
+
vectorFromPoint(bottom, midPoint)
|
|
3045
|
+
) > 0) {
|
|
3046
|
+
const p2 = element.width > element.height ? bottom : right;
|
|
3047
|
+
return headingForPoint(p2, midPoint);
|
|
3048
|
+
} else if (vectorCross(
|
|
3049
|
+
vectorFromPoint(point, midPoint),
|
|
3050
|
+
vectorFromPoint(bottom, midPoint)
|
|
3051
|
+
) <= 0 && vectorCross(
|
|
3052
|
+
vectorFromPoint(point, midPoint),
|
|
3053
|
+
vectorFromPoint(left, midPoint)
|
|
3054
|
+
) > 0) {
|
|
3055
|
+
const p2 = element.width > element.height ? bottom : left;
|
|
3056
|
+
return headingForPoint(p2, midPoint);
|
|
3057
|
+
}
|
|
3058
|
+
const p = element.width > element.height ? top : left;
|
|
3059
|
+
return headingForPoint(p, midPoint);
|
|
3060
|
+
};
|
|
3061
|
+
var headingForPointFromElement = (element, aabb, p) => {
|
|
3062
|
+
const SEARCH_CONE_MULTIPLIER = 2;
|
|
3063
|
+
const midPoint = getCenterForBounds(aabb);
|
|
3064
|
+
if (element.type === "diamond") {
|
|
3065
|
+
return headingForPointFromDiamondElement(element, aabb, p);
|
|
2999
3066
|
}
|
|
3000
3067
|
const topLeft = pointScaleFromOrigin(
|
|
3001
3068
|
pointFrom(aabb[0], aabb[1]),
|
|
@@ -3539,13 +3606,7 @@ var getHeadingForElbowArrowSnap = (p, otherPoint, bindableElement, aabb, element
|
|
|
3539
3606
|
);
|
|
3540
3607
|
if (!distance2) {
|
|
3541
3608
|
return vectorToHeading(
|
|
3542
|
-
vectorFromPoint(
|
|
3543
|
-
p,
|
|
3544
|
-
pointFrom(
|
|
3545
|
-
bindableElement.x + bindableElement.width / 2,
|
|
3546
|
-
bindableElement.y + bindableElement.height / 2
|
|
3547
|
-
)
|
|
3548
|
-
)
|
|
3609
|
+
vectorFromPoint(p, elementCenterPoint(bindableElement))
|
|
3549
3610
|
);
|
|
3550
3611
|
}
|
|
3551
3612
|
return headingForPointFromElement(bindableElement, aabb, p);
|
|
@@ -3639,10 +3700,7 @@ var bindPointToSnapToElementOutline = (arrow, bindableElement, startOrEnd) => {
|
|
|
3639
3700
|
return edgePoint;
|
|
3640
3701
|
};
|
|
3641
3702
|
var avoidRectangularCorner = (element, p) => {
|
|
3642
|
-
const center =
|
|
3643
|
-
element.x + element.width / 2,
|
|
3644
|
-
element.y + element.height / 2
|
|
3645
|
-
);
|
|
3703
|
+
const center = elementCenterPoint(element);
|
|
3646
3704
|
const nonRotatedPoint = pointRotateRads(p, center, -element.angle);
|
|
3647
3705
|
if (nonRotatedPoint[0] < element.x && nonRotatedPoint[1] < element.y) {
|
|
3648
3706
|
if (nonRotatedPoint[1] - element.y > -FIXED_BINDING_DISTANCE) {
|
|
@@ -3713,10 +3771,7 @@ var avoidRectangularCorner = (element, p) => {
|
|
|
3713
3771
|
};
|
|
3714
3772
|
var snapToMid = (element, p, tolerance = 0.05) => {
|
|
3715
3773
|
const { x, y, width, height, angle } = element;
|
|
3716
|
-
const center =
|
|
3717
|
-
x + width / 2 - 0.1,
|
|
3718
|
-
y + height / 2 - 0.1
|
|
3719
|
-
);
|
|
3774
|
+
const center = elementCenterPoint(element, -0.1, -0.1);
|
|
3720
3775
|
const nonRotated = pointRotateRads(p, center, -angle);
|
|
3721
3776
|
const verticalThrehsold = clamp(tolerance * height, 5, 80);
|
|
3722
3777
|
const horizontalThrehsold = clamp(tolerance * width, 5, 80);
|
|
@@ -3761,10 +3816,7 @@ var updateBoundPoint = (linearElement, startOrEnd, binding, bindableElement, ele
|
|
|
3761
3816
|
startOrEnd === "startBinding" ? "start" : "end",
|
|
3762
3817
|
elementsMap
|
|
3763
3818
|
).fixedPoint;
|
|
3764
|
-
const globalMidPoint =
|
|
3765
|
-
bindableElement.x + bindableElement.width / 2,
|
|
3766
|
-
bindableElement.y + bindableElement.height / 2
|
|
3767
|
-
);
|
|
3819
|
+
const globalMidPoint = elementCenterPoint(bindableElement);
|
|
3768
3820
|
const global = pointFrom(
|
|
3769
3821
|
bindableElement.x + fixedPoint[0] * bindableElement.width,
|
|
3770
3822
|
bindableElement.y + fixedPoint[1] * bindableElement.height
|
|
@@ -3800,10 +3852,7 @@ var updateBoundPoint = (linearElement, startOrEnd, binding, bindableElement, ele
|
|
|
3800
3852
|
edgePointIndex,
|
|
3801
3853
|
elementsMap
|
|
3802
3854
|
);
|
|
3803
|
-
const center =
|
|
3804
|
-
bindableElement.x + bindableElement.width / 2,
|
|
3805
|
-
bindableElement.y + bindableElement.height / 2
|
|
3806
|
-
);
|
|
3855
|
+
const center = elementCenterPoint(bindableElement);
|
|
3807
3856
|
const interceptorLength = pointDistance(adjacentPoint, edgePointAbsolute) + pointDistance(adjacentPoint, center) + Math.max(bindableElement.width, bindableElement.height) * 2;
|
|
3808
3857
|
const intersections = [
|
|
3809
3858
|
...intersectElementWithLineSegment(
|
|
@@ -3910,7 +3959,7 @@ var getLinearElementEdgeCoors = (linearElement, startOrEnd, elementsMap) => {
|
|
|
3910
3959
|
)
|
|
3911
3960
|
);
|
|
3912
3961
|
};
|
|
3913
|
-
var
|
|
3962
|
+
var fixDuplicatedBindingsAfterDuplication = (newElements, oldIdToDuplicatedId, duplicatedElementsMap) => {
|
|
3914
3963
|
for (const element of newElements) {
|
|
3915
3964
|
if ("boundElements" in element && element.boundElements) {
|
|
3916
3965
|
Object.assign(element, {
|
|
@@ -3966,6 +4015,151 @@ var fixBindingsAfterDuplication = (newElements, oldIdToDuplicatedId, duplicatedE
|
|
|
3966
4015
|
}
|
|
3967
4016
|
}
|
|
3968
4017
|
};
|
|
4018
|
+
var fixReversedBindingsForBindables = (original, duplicate, originalElements, elementsWithClones, oldIdToDuplicatedId) => {
|
|
4019
|
+
original.boundElements?.forEach((binding, idx) => {
|
|
4020
|
+
if (binding.type !== "arrow") {
|
|
4021
|
+
return;
|
|
4022
|
+
}
|
|
4023
|
+
const oldArrow = elementsWithClones.find((el) => el.id === binding.id);
|
|
4024
|
+
if (!isBindingElement(oldArrow)) {
|
|
4025
|
+
return;
|
|
4026
|
+
}
|
|
4027
|
+
if (originalElements.has(binding.id)) {
|
|
4028
|
+
const newArrowId = oldIdToDuplicatedId.get(binding.id) ?? binding.id;
|
|
4029
|
+
const newArrow = elementsWithClones.find(
|
|
4030
|
+
(el) => el.id === newArrowId
|
|
4031
|
+
);
|
|
4032
|
+
mutateElement(newArrow, {
|
|
4033
|
+
startBinding: oldArrow.startBinding?.elementId === binding.id ? {
|
|
4034
|
+
...oldArrow.startBinding,
|
|
4035
|
+
elementId: duplicate.id
|
|
4036
|
+
} : newArrow.startBinding,
|
|
4037
|
+
endBinding: oldArrow.endBinding?.elementId === binding.id ? {
|
|
4038
|
+
...oldArrow.endBinding,
|
|
4039
|
+
elementId: duplicate.id
|
|
4040
|
+
} : newArrow.endBinding
|
|
4041
|
+
});
|
|
4042
|
+
mutateElement(duplicate, {
|
|
4043
|
+
boundElements: [
|
|
4044
|
+
...(duplicate.boundElements ?? []).filter(
|
|
4045
|
+
(el) => el.id !== binding.id && el.id !== newArrowId
|
|
4046
|
+
),
|
|
4047
|
+
{
|
|
4048
|
+
type: "arrow",
|
|
4049
|
+
id: newArrowId
|
|
4050
|
+
}
|
|
4051
|
+
]
|
|
4052
|
+
});
|
|
4053
|
+
} else {
|
|
4054
|
+
mutateElement(oldArrow, {
|
|
4055
|
+
startBinding: oldArrow.startBinding?.elementId === original.id ? {
|
|
4056
|
+
...oldArrow.startBinding,
|
|
4057
|
+
elementId: duplicate.id
|
|
4058
|
+
} : oldArrow.startBinding,
|
|
4059
|
+
endBinding: oldArrow.endBinding?.elementId === original.id ? {
|
|
4060
|
+
...oldArrow.endBinding,
|
|
4061
|
+
elementId: duplicate.id
|
|
4062
|
+
} : oldArrow.endBinding
|
|
4063
|
+
});
|
|
4064
|
+
mutateElement(duplicate, {
|
|
4065
|
+
boundElements: [
|
|
4066
|
+
...duplicate.boundElements ?? [],
|
|
4067
|
+
{
|
|
4068
|
+
type: "arrow",
|
|
4069
|
+
id: oldArrow.id
|
|
4070
|
+
}
|
|
4071
|
+
]
|
|
4072
|
+
});
|
|
4073
|
+
mutateElement(original, {
|
|
4074
|
+
boundElements: original.boundElements?.filter((_, i) => i !== idx) ?? null
|
|
4075
|
+
});
|
|
4076
|
+
}
|
|
4077
|
+
});
|
|
4078
|
+
};
|
|
4079
|
+
var fixReversedBindingsForArrows = (original, duplicate, originalElements, bindingProp, oldIdToDuplicatedId, elementsWithClones) => {
|
|
4080
|
+
const oldBindableId = original[bindingProp]?.elementId;
|
|
4081
|
+
if (oldBindableId) {
|
|
4082
|
+
if (originalElements.has(oldBindableId)) {
|
|
4083
|
+
const newBindableId = oldIdToDuplicatedId.get(oldBindableId) ?? oldBindableId;
|
|
4084
|
+
const newBindable = elementsWithClones.find(
|
|
4085
|
+
(el) => el.id === newBindableId
|
|
4086
|
+
);
|
|
4087
|
+
mutateElement(duplicate, {
|
|
4088
|
+
[bindingProp]: {
|
|
4089
|
+
...original[bindingProp],
|
|
4090
|
+
elementId: newBindableId
|
|
4091
|
+
}
|
|
4092
|
+
});
|
|
4093
|
+
mutateElement(newBindable, {
|
|
4094
|
+
boundElements: [
|
|
4095
|
+
...(newBindable.boundElements ?? []).filter(
|
|
4096
|
+
(el) => el.id !== original.id && el.id !== duplicate.id
|
|
4097
|
+
),
|
|
4098
|
+
{
|
|
4099
|
+
id: duplicate.id,
|
|
4100
|
+
type: "arrow"
|
|
4101
|
+
}
|
|
4102
|
+
]
|
|
4103
|
+
});
|
|
4104
|
+
} else {
|
|
4105
|
+
const originalBindable = elementsWithClones.find(
|
|
4106
|
+
(el) => el.id === oldBindableId
|
|
4107
|
+
);
|
|
4108
|
+
if (originalBindable) {
|
|
4109
|
+
mutateElement(duplicate, {
|
|
4110
|
+
[bindingProp]: original[bindingProp]
|
|
4111
|
+
});
|
|
4112
|
+
mutateElement(original, {
|
|
4113
|
+
[bindingProp]: null
|
|
4114
|
+
});
|
|
4115
|
+
mutateElement(originalBindable, {
|
|
4116
|
+
boundElements: [
|
|
4117
|
+
...originalBindable.boundElements?.filter(
|
|
4118
|
+
(el) => el.id !== original.id
|
|
4119
|
+
) ?? [],
|
|
4120
|
+
{
|
|
4121
|
+
id: duplicate.id,
|
|
4122
|
+
type: "arrow"
|
|
4123
|
+
}
|
|
4124
|
+
]
|
|
4125
|
+
});
|
|
4126
|
+
}
|
|
4127
|
+
}
|
|
4128
|
+
}
|
|
4129
|
+
};
|
|
4130
|
+
var fixReversedBindings = (originalElements, elementsWithClones, oldIdToDuplicatedId) => {
|
|
4131
|
+
for (const original of originalElements.values()) {
|
|
4132
|
+
const duplicate = elementsWithClones.find(
|
|
4133
|
+
(el) => el.id === oldIdToDuplicatedId.get(original.id)
|
|
4134
|
+
);
|
|
4135
|
+
if (isBindableElement(original) && isBindableElement(duplicate)) {
|
|
4136
|
+
fixReversedBindingsForBindables(
|
|
4137
|
+
original,
|
|
4138
|
+
duplicate,
|
|
4139
|
+
originalElements,
|
|
4140
|
+
elementsWithClones,
|
|
4141
|
+
oldIdToDuplicatedId
|
|
4142
|
+
);
|
|
4143
|
+
} else if (isArrowElement(original) && isArrowElement(duplicate)) {
|
|
4144
|
+
fixReversedBindingsForArrows(
|
|
4145
|
+
original,
|
|
4146
|
+
duplicate,
|
|
4147
|
+
originalElements,
|
|
4148
|
+
"startBinding",
|
|
4149
|
+
oldIdToDuplicatedId,
|
|
4150
|
+
elementsWithClones
|
|
4151
|
+
);
|
|
4152
|
+
fixReversedBindingsForArrows(
|
|
4153
|
+
original,
|
|
4154
|
+
duplicate,
|
|
4155
|
+
originalElements,
|
|
4156
|
+
"endBinding",
|
|
4157
|
+
oldIdToDuplicatedId,
|
|
4158
|
+
elementsWithClones
|
|
4159
|
+
);
|
|
4160
|
+
}
|
|
4161
|
+
}
|
|
4162
|
+
};
|
|
3969
4163
|
var fixBindingsAfterDeletion = (sceneElements, deletedElements) => {
|
|
3970
4164
|
const elements = arrayToMap(sceneElements);
|
|
3971
4165
|
for (const element of deletedElements) {
|
|
@@ -4005,10 +4199,7 @@ var maxBindingGap = (element, elementWidth, elementHeight, zoom) => {
|
|
|
4005
4199
|
);
|
|
4006
4200
|
};
|
|
4007
4201
|
var determineFocusDistance = (element, a, b) => {
|
|
4008
|
-
const center =
|
|
4009
|
-
element.x + element.width / 2,
|
|
4010
|
-
element.y + element.height / 2
|
|
4011
|
-
);
|
|
4202
|
+
const center = elementCenterPoint(element);
|
|
4012
4203
|
if (pointsEqual(a, b)) {
|
|
4013
4204
|
return 0;
|
|
4014
4205
|
}
|
|
@@ -4111,10 +4302,7 @@ var determineFocusDistance = (element, a, b) => {
|
|
|
4111
4302
|
return signedDistanceRatio;
|
|
4112
4303
|
};
|
|
4113
4304
|
var determineFocusPoint = (element, focus, adjacentPoint) => {
|
|
4114
|
-
const center =
|
|
4115
|
-
element.x + element.width / 2,
|
|
4116
|
-
element.y + element.height / 2
|
|
4117
|
-
);
|
|
4305
|
+
const center = elementCenterPoint(element);
|
|
4118
4306
|
if (focus === 0) {
|
|
4119
4307
|
return center;
|
|
4120
4308
|
}
|
|
@@ -4392,10 +4580,7 @@ var getGlobalFixedPointForBindableElement = (fixedPointRatio, element) => {
|
|
|
4392
4580
|
element.x + element.width * fixedX,
|
|
4393
4581
|
element.y + element.height * fixedY
|
|
4394
4582
|
),
|
|
4395
|
-
|
|
4396
|
-
element.x + element.width / 2,
|
|
4397
|
-
element.y + element.height / 2
|
|
4398
|
-
),
|
|
4583
|
+
elementCenterPoint(element),
|
|
4399
4584
|
element.angle
|
|
4400
4585
|
);
|
|
4401
4586
|
};
|
|
@@ -6443,13 +6628,19 @@ var satisfiesWordInvariant = (word) => {
|
|
|
6443
6628
|
// ../element/src/textElement.ts
|
|
6444
6629
|
var redrawTextBoundingBox = (textElement, container, elementsMap, informMutation = true) => {
|
|
6445
6630
|
let maxWidth = void 0;
|
|
6631
|
+
if (!isProdEnv()) {
|
|
6632
|
+
invariant(
|
|
6633
|
+
!container || !isArrowElement(container) || textElement.angle === 0,
|
|
6634
|
+
"text element angle must be 0 if bound to arrow container"
|
|
6635
|
+
);
|
|
6636
|
+
}
|
|
6446
6637
|
const boundTextUpdates = {
|
|
6447
6638
|
x: textElement.x,
|
|
6448
6639
|
y: textElement.y,
|
|
6449
6640
|
text: textElement.text,
|
|
6450
6641
|
width: textElement.width,
|
|
6451
6642
|
height: textElement.height,
|
|
6452
|
-
angle: container
|
|
6643
|
+
angle: container ? isArrowElement(container) ? 0 : container.angle : textElement.angle
|
|
6453
6644
|
};
|
|
6454
6645
|
boundTextUpdates.text = textElement.text;
|
|
6455
6646
|
if (container || !textElement.autoResize) {
|
|
@@ -6667,7 +6858,10 @@ var getContainerCoords = (container) => {
|
|
|
6667
6858
|
};
|
|
6668
6859
|
};
|
|
6669
6860
|
var getTextElementAngle = (textElement, container) => {
|
|
6670
|
-
if (
|
|
6861
|
+
if (isArrowElement(container)) {
|
|
6862
|
+
return 0;
|
|
6863
|
+
}
|
|
6864
|
+
if (!container) {
|
|
6671
6865
|
return textElement.angle;
|
|
6672
6866
|
}
|
|
6673
6867
|
return container.angle;
|
|
@@ -8308,6 +8502,7 @@ var _LinearElementEditor = class _LinearElementEditor {
|
|
|
8308
8502
|
this.elementId = element.id;
|
|
8309
8503
|
if (!pointsEqual(element.points[0], pointFrom(0, 0))) {
|
|
8310
8504
|
console.error("Linear element is not normalized", Error().stack);
|
|
8505
|
+
_LinearElementEditor.normalizePoints(element);
|
|
8311
8506
|
}
|
|
8312
8507
|
this.selectedPointsIndices = null;
|
|
8313
8508
|
this.lastUncommittedPoint = null;
|
|
@@ -9706,7 +9901,7 @@ var aabbForElement = (element, offset) => {
|
|
|
9706
9901
|
midX: element.x + element.width / 2,
|
|
9707
9902
|
midY: element.y + element.height / 2
|
|
9708
9903
|
};
|
|
9709
|
-
const center =
|
|
9904
|
+
const center = elementCenterPoint(element);
|
|
9710
9905
|
const [topLeftX, topLeftY] = pointRotateRads(
|
|
9711
9906
|
pointFrom(bbox.minX, bbox.minY),
|
|
9712
9907
|
center,
|
|
@@ -9791,7 +9986,7 @@ var cropElement = (element, transformHandle, naturalWidth, naturalHeight, pointe
|
|
|
9791
9986
|
const croppedTop = (element.crop?.y ?? 0) / naturalHeightToUncropped;
|
|
9792
9987
|
const rotatedPointer = pointRotateRads(
|
|
9793
9988
|
pointFrom(pointerX, pointerY),
|
|
9794
|
-
|
|
9989
|
+
elementCenterPoint(element),
|
|
9795
9990
|
-element.angle
|
|
9796
9991
|
);
|
|
9797
9992
|
pointerX = rotatedPointer[0];
|
|
@@ -11463,40 +11658,62 @@ var getElementAbsoluteCoords = (element, elementsMap, includeBoundText = false)
|
|
|
11463
11658
|
];
|
|
11464
11659
|
};
|
|
11465
11660
|
var getElementLineSegments = (element, elementsMap) => {
|
|
11661
|
+
const shape = getElementShape(element, elementsMap);
|
|
11466
11662
|
const [x1, y1, x2, y2, cx, cy] = getElementAbsoluteCoords(
|
|
11467
11663
|
element,
|
|
11468
11664
|
elementsMap
|
|
11469
11665
|
);
|
|
11470
11666
|
const center = pointFrom(cx, cy);
|
|
11471
|
-
if (
|
|
11472
|
-
const
|
|
11667
|
+
if (shape.type === "polycurve") {
|
|
11668
|
+
const curves = shape.data;
|
|
11669
|
+
const points = curves.map((curve2) => pointsOnBezierCurves2(curve2, 10)).flat();
|
|
11473
11670
|
let i = 0;
|
|
11474
|
-
|
|
11671
|
+
const segments = [];
|
|
11672
|
+
while (i < points.length - 1) {
|
|
11475
11673
|
segments.push(
|
|
11476
11674
|
lineSegment(
|
|
11477
|
-
|
|
11478
|
-
|
|
11479
|
-
element.points[i][0] + element.x,
|
|
11480
|
-
element.points[i][1] + element.y
|
|
11481
|
-
),
|
|
11482
|
-
center,
|
|
11483
|
-
element.angle
|
|
11484
|
-
),
|
|
11485
|
-
pointRotateRads(
|
|
11486
|
-
pointFrom(
|
|
11487
|
-
element.points[i + 1][0] + element.x,
|
|
11488
|
-
element.points[i + 1][1] + element.y
|
|
11489
|
-
),
|
|
11490
|
-
center,
|
|
11491
|
-
element.angle
|
|
11492
|
-
)
|
|
11675
|
+
pointFrom(points[i][0], points[i][1]),
|
|
11676
|
+
pointFrom(points[i + 1][0], points[i + 1][1])
|
|
11493
11677
|
)
|
|
11494
11678
|
);
|
|
11495
11679
|
i++;
|
|
11496
11680
|
}
|
|
11497
11681
|
return segments;
|
|
11682
|
+
} else if (shape.type === "polyline") {
|
|
11683
|
+
return shape.data;
|
|
11684
|
+
} else if (_isRectanguloidElement(element)) {
|
|
11685
|
+
const [sides, corners] = deconstructRectanguloidElement(element);
|
|
11686
|
+
const cornerSegments = corners.map((corner) => getSegmentsOnCurve(corner, center, element.angle)).flat();
|
|
11687
|
+
const rotatedSides = getRotatedSides(sides, center, element.angle);
|
|
11688
|
+
return [...rotatedSides, ...cornerSegments];
|
|
11689
|
+
} else if (element.type === "diamond") {
|
|
11690
|
+
const [sides, corners] = deconstructDiamondElement(element);
|
|
11691
|
+
const cornerSegments = corners.map((corner) => getSegmentsOnCurve(corner, center, element.angle)).flat();
|
|
11692
|
+
const rotatedSides = getRotatedSides(sides, center, element.angle);
|
|
11693
|
+
return [...rotatedSides, ...cornerSegments];
|
|
11694
|
+
} else if (shape.type === "polygon") {
|
|
11695
|
+
if (isTextElement(element)) {
|
|
11696
|
+
const container = getContainerElement(element, elementsMap);
|
|
11697
|
+
if (container && isLinearElement(container)) {
|
|
11698
|
+
const segments2 = [
|
|
11699
|
+
lineSegment(pointFrom(x1, y1), pointFrom(x2, y1)),
|
|
11700
|
+
lineSegment(pointFrom(x2, y1), pointFrom(x2, y2)),
|
|
11701
|
+
lineSegment(pointFrom(x2, y2), pointFrom(x1, y2)),
|
|
11702
|
+
lineSegment(pointFrom(x1, y2), pointFrom(x1, y1))
|
|
11703
|
+
];
|
|
11704
|
+
return segments2;
|
|
11705
|
+
}
|
|
11706
|
+
}
|
|
11707
|
+
const points = shape.data;
|
|
11708
|
+
const segments = [];
|
|
11709
|
+
for (let i = 0; i < points.length - 1; i++) {
|
|
11710
|
+
segments.push(lineSegment(points[i], points[i + 1]));
|
|
11711
|
+
}
|
|
11712
|
+
return segments;
|
|
11713
|
+
} else if (shape.type === "ellipse") {
|
|
11714
|
+
return getSegmentsOnEllipse(element);
|
|
11498
11715
|
}
|
|
11499
|
-
const [nw, ne, sw, se,
|
|
11716
|
+
const [nw, ne, sw, se, , , w, e] = [
|
|
11500
11717
|
[x1, y1],
|
|
11501
11718
|
[x2, y1],
|
|
11502
11719
|
[x1, y2],
|
|
@@ -11506,26 +11723,6 @@ var getElementLineSegments = (element, elementsMap) => {
|
|
|
11506
11723
|
[x1, cy],
|
|
11507
11724
|
[x2, cy]
|
|
11508
11725
|
].map((point) => pointRotateRads(point, center, element.angle));
|
|
11509
|
-
if (element.type === "diamond") {
|
|
11510
|
-
return [
|
|
11511
|
-
lineSegment(n, w),
|
|
11512
|
-
lineSegment(n, e),
|
|
11513
|
-
lineSegment(s, w),
|
|
11514
|
-
lineSegment(s, e)
|
|
11515
|
-
];
|
|
11516
|
-
}
|
|
11517
|
-
if (element.type === "ellipse") {
|
|
11518
|
-
return [
|
|
11519
|
-
lineSegment(n, w),
|
|
11520
|
-
lineSegment(n, e),
|
|
11521
|
-
lineSegment(s, w),
|
|
11522
|
-
lineSegment(s, e),
|
|
11523
|
-
lineSegment(n, w),
|
|
11524
|
-
lineSegment(n, e),
|
|
11525
|
-
lineSegment(s, w),
|
|
11526
|
-
lineSegment(s, e)
|
|
11527
|
-
];
|
|
11528
|
-
}
|
|
11529
11726
|
return [
|
|
11530
11727
|
lineSegment(nw, ne),
|
|
11531
11728
|
lineSegment(sw, se),
|
|
@@ -11537,6 +11734,63 @@ var getElementLineSegments = (element, elementsMap) => {
|
|
|
11537
11734
|
lineSegment(se, w)
|
|
11538
11735
|
];
|
|
11539
11736
|
};
|
|
11737
|
+
var _isRectanguloidElement = (element) => {
|
|
11738
|
+
return element != null && (element.type === "rectangle" || element.type === "image" || element.type === "iframe" || element.type === "embeddable" || element.type === "frame" || element.type === "magicframe" || element.type === "text" && !element.containerId);
|
|
11739
|
+
};
|
|
11740
|
+
var getRotatedSides = (sides, center, angle) => {
|
|
11741
|
+
return sides.map((side) => {
|
|
11742
|
+
return lineSegment(
|
|
11743
|
+
pointRotateRads(side[0], center, angle),
|
|
11744
|
+
pointRotateRads(side[1], center, angle)
|
|
11745
|
+
);
|
|
11746
|
+
});
|
|
11747
|
+
};
|
|
11748
|
+
var getSegmentsOnCurve = (curve2, center, angle) => {
|
|
11749
|
+
const points = pointsOnBezierCurves2(curve2, 10);
|
|
11750
|
+
let i = 0;
|
|
11751
|
+
const segments = [];
|
|
11752
|
+
while (i < points.length - 1) {
|
|
11753
|
+
segments.push(
|
|
11754
|
+
lineSegment(
|
|
11755
|
+
pointRotateRads(
|
|
11756
|
+
pointFrom(points[i][0], points[i][1]),
|
|
11757
|
+
center,
|
|
11758
|
+
angle
|
|
11759
|
+
),
|
|
11760
|
+
pointRotateRads(
|
|
11761
|
+
pointFrom(points[i + 1][0], points[i + 1][1]),
|
|
11762
|
+
center,
|
|
11763
|
+
angle
|
|
11764
|
+
)
|
|
11765
|
+
)
|
|
11766
|
+
);
|
|
11767
|
+
i++;
|
|
11768
|
+
}
|
|
11769
|
+
return segments;
|
|
11770
|
+
};
|
|
11771
|
+
var getSegmentsOnEllipse = (ellipse2) => {
|
|
11772
|
+
const center = pointFrom(
|
|
11773
|
+
ellipse2.x + ellipse2.width / 2,
|
|
11774
|
+
ellipse2.y + ellipse2.height / 2
|
|
11775
|
+
);
|
|
11776
|
+
const a = ellipse2.width / 2;
|
|
11777
|
+
const b = ellipse2.height / 2;
|
|
11778
|
+
const segments = [];
|
|
11779
|
+
const points = [];
|
|
11780
|
+
const n = 90;
|
|
11781
|
+
const deltaT = Math.PI * 2 / n;
|
|
11782
|
+
for (let i = 0; i < n; i++) {
|
|
11783
|
+
const t = i * deltaT;
|
|
11784
|
+
const x = center[0] + a * Math.cos(t);
|
|
11785
|
+
const y = center[1] + b * Math.sin(t);
|
|
11786
|
+
points.push(pointRotateRads(pointFrom(x, y), center, ellipse2.angle));
|
|
11787
|
+
}
|
|
11788
|
+
for (let i = 0; i < points.length - 1; i++) {
|
|
11789
|
+
segments.push(lineSegment(points[i], points[i + 1]));
|
|
11790
|
+
}
|
|
11791
|
+
segments.push(lineSegment(points[points.length - 1], points[0]));
|
|
11792
|
+
return segments;
|
|
11793
|
+
};
|
|
11540
11794
|
var getDiamondPoints = (element) => {
|
|
11541
11795
|
const topX = Math.floor(element.width / 2) + 1;
|
|
11542
11796
|
const topY = 0;
|
|
@@ -12145,6 +12399,7 @@ var getDefaultAppState = () => {
|
|
|
12145
12399
|
type: "selection",
|
|
12146
12400
|
customType: null,
|
|
12147
12401
|
locked: DEFAULT_ELEMENT_PROPS.locked,
|
|
12402
|
+
fromSelection: false,
|
|
12148
12403
|
lastActiveTool: null
|
|
12149
12404
|
},
|
|
12150
12405
|
penMode: false,
|
|
@@ -17109,6 +17364,7 @@ var getExportSize = (elements, exportPadding, scale) => {
|
|
|
17109
17364
|
// data/restore.ts
|
|
17110
17365
|
var AllowedExcalidrawActiveTools = {
|
|
17111
17366
|
selection: true,
|
|
17367
|
+
lasso: true,
|
|
17112
17368
|
text: true,
|
|
17113
17369
|
rectangle: true,
|
|
17114
17370
|
diamond: true,
|
|
@@ -17187,7 +17443,7 @@ var restoreElementWithProperties = (element, extra) => {
|
|
|
17187
17443
|
if ("customData" in element || "customData" in extra) {
|
|
17188
17444
|
base.customData = "customData" in extra ? extra.customData : element.customData;
|
|
17189
17445
|
}
|
|
17190
|
-
|
|
17446
|
+
const ret = {
|
|
17191
17447
|
// spread the original element properties to not lose unknown ones
|
|
17192
17448
|
// for forward-compatibility
|
|
17193
17449
|
...element,
|
|
@@ -17196,6 +17452,9 @@ var restoreElementWithProperties = (element, extra) => {
|
|
|
17196
17452
|
...getNormalizedDimensions(base),
|
|
17197
17453
|
...extra
|
|
17198
17454
|
};
|
|
17455
|
+
delete ret.strokeSharpness;
|
|
17456
|
+
delete ret.boundElementIds;
|
|
17457
|
+
return ret;
|
|
17199
17458
|
};
|
|
17200
17459
|
var restoreElement = (element) => {
|
|
17201
17460
|
element = { ...element };
|
|
@@ -17348,6 +17607,7 @@ var repairContainerElement = (container, elementsMap) => {
|
|
|
17348
17607
|
};
|
|
17349
17608
|
var repairBoundElement = (boundElement, elementsMap) => {
|
|
17350
17609
|
const container = boundElement.containerId ? elementsMap.get(boundElement.containerId) : null;
|
|
17610
|
+
boundElement.angle = isArrowElement(container) ? 0 : container?.angle ?? 0;
|
|
17351
17611
|
if (!container) {
|
|
17352
17612
|
boundElement.containerId = null;
|
|
17353
17613
|
return;
|
|
@@ -17593,7 +17853,7 @@ var parseFileContents = async (blob) => {
|
|
|
17593
17853
|
let contents;
|
|
17594
17854
|
if (blob.type === MIME_TYPES.png) {
|
|
17595
17855
|
try {
|
|
17596
|
-
return await (await import("./data/image-
|
|
17856
|
+
return await (await import("./data/image-U2IPNUKJ.js")).decodePngMetadata(blob);
|
|
17597
17857
|
} catch (error) {
|
|
17598
17858
|
if (error.message === "INVALID") {
|
|
17599
17859
|
throw new ImageSceneDataError(
|
|
@@ -17982,6 +18242,7 @@ var decodePngMetadata = async (blob) => {
|
|
|
17982
18242
|
};
|
|
17983
18243
|
|
|
17984
18244
|
export {
|
|
18245
|
+
COLOR_OUTLINE_CONTRAST_THRESHOLD,
|
|
17985
18246
|
MAX_CUSTOM_COLORS_USED_IN_CANVAS,
|
|
17986
18247
|
COLORS_PER_ROW,
|
|
17987
18248
|
DEFAULT_CHART_COLOR_INDEX,
|
|
@@ -18059,6 +18320,7 @@ export {
|
|
|
18059
18320
|
DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT,
|
|
18060
18321
|
MAX_ALLOWED_FILE_BYTES,
|
|
18061
18322
|
SVG_NS,
|
|
18323
|
+
SVG_DOCUMENT_PREAMBLE,
|
|
18062
18324
|
VERSIONS,
|
|
18063
18325
|
BOUND_TEXT_PADDING,
|
|
18064
18326
|
VERTICAL_ALIGN,
|
|
@@ -18105,7 +18367,11 @@ export {
|
|
|
18105
18367
|
pointRotateRads,
|
|
18106
18368
|
pointCenter,
|
|
18107
18369
|
pointDistance,
|
|
18370
|
+
lineSegment,
|
|
18108
18371
|
pointOnLineSegment,
|
|
18372
|
+
lineSegmentIntersectionPoints,
|
|
18373
|
+
polygonFromPoints,
|
|
18374
|
+
polygonIncludesPointNonZero,
|
|
18109
18375
|
rangeInclusive,
|
|
18110
18376
|
rangesOverlap,
|
|
18111
18377
|
rangeIntersection,
|
|
@@ -18196,6 +18462,7 @@ export {
|
|
|
18196
18462
|
isUsingAdaptiveRadius,
|
|
18197
18463
|
canApplyRoundnessTypeToElement,
|
|
18198
18464
|
getDefaultRoundnessTypeForElement,
|
|
18465
|
+
shouldTestInside,
|
|
18199
18466
|
hitElementItself,
|
|
18200
18467
|
hitElementBoundingBox,
|
|
18201
18468
|
hitElementBoundingBoxOnly,
|
|
@@ -18249,7 +18516,8 @@ export {
|
|
|
18249
18516
|
updateBoundElements,
|
|
18250
18517
|
bindPointToSnapToElementOutline,
|
|
18251
18518
|
calculateFixedPointForElbowArrowBinding,
|
|
18252
|
-
|
|
18519
|
+
fixDuplicatedBindingsAfterDuplication,
|
|
18520
|
+
fixReversedBindings,
|
|
18253
18521
|
fixBindingsAfterDeletion,
|
|
18254
18522
|
maxBindingGap,
|
|
18255
18523
|
bindingProperties,
|
|
@@ -18348,6 +18616,7 @@ export {
|
|
|
18348
18616
|
getFreeDrawSvgPath,
|
|
18349
18617
|
ShapeCache,
|
|
18350
18618
|
getElementAbsoluteCoords,
|
|
18619
|
+
getElementLineSegments,
|
|
18351
18620
|
getElementBounds,
|
|
18352
18621
|
getCommonBounds,
|
|
18353
18622
|
getDraggedElementsBounds,
|
|
@@ -18439,4 +18708,4 @@ export {
|
|
|
18439
18708
|
createFile,
|
|
18440
18709
|
normalizeFile
|
|
18441
18710
|
};
|
|
18442
|
-
//# sourceMappingURL=chunk-
|
|
18711
|
+
//# sourceMappingURL=chunk-LEJJ2YZY.js.map
|