@wildmio/excalidraw-common 0.18.0-custom.1
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/README.md +19 -0
- package/dist/dev/index.js +2695 -0
- package/dist/dev/index.js.map +7 -0
- package/dist/prod/index.js +4 -0
- package/dist/types/common/src/binary-heap.d.ts +12 -0
- package/dist/types/common/src/bounds.d.ts +10 -0
- package/dist/types/common/src/colors.d.ts +62 -0
- package/dist/types/common/src/constants.d.ts +352 -0
- package/dist/types/common/src/editorInterface.d.ts +34 -0
- package/dist/types/common/src/emitter.d.ts +16 -0
- package/dist/types/common/src/font-metadata.d.ts +46 -0
- package/dist/types/common/src/index.d.ts +15 -0
- package/dist/types/common/src/keys.d.ts +189 -0
- package/dist/types/common/src/points.d.ts +9 -0
- package/dist/types/common/src/promise-pool.d.ts +6 -0
- package/dist/types/common/src/queue.d.ts +9 -0
- package/dist/types/common/src/random.d.ts +3 -0
- package/dist/types/common/src/url.d.ts +7 -0
- package/dist/types/common/src/utility-types.d.ts +37 -0
- package/dist/types/common/src/utils.d.ts +279 -0
- package/dist/types/common/src/visualdebug.d.ts +41 -0
- package/dist/types/element/src/Scene.d.ts +80 -0
- package/dist/types/element/src/align.d.ts +8 -0
- package/dist/types/element/src/binding.d.ts +124 -0
- package/dist/types/element/src/bounds.d.ts +81 -0
- package/dist/types/element/src/collision.d.ts +36 -0
- package/dist/types/element/src/comparisons.d.ts +8 -0
- package/dist/types/element/src/containerCache.d.ts +11 -0
- package/dist/types/element/src/cropElement.d.ts +19 -0
- package/dist/types/element/src/delta.d.ts +228 -0
- package/dist/types/element/src/distance.d.ts +3 -0
- package/dist/types/element/src/distribute.d.ts +7 -0
- package/dist/types/element/src/dragElements.d.ts +33 -0
- package/dist/types/element/src/duplicate.d.ts +63 -0
- package/dist/types/element/src/elbowArrow.d.ts +17 -0
- package/dist/types/element/src/elementLink.d.ts +13 -0
- package/dist/types/element/src/embeddable.d.ts +10 -0
- package/dist/types/element/src/flowchart.d.ts +26 -0
- package/dist/types/element/src/fractionalIndex.d.ts +57 -0
- package/dist/types/element/src/frame.d.ts +74 -0
- package/dist/types/element/src/groups.d.ts +34 -0
- package/dist/types/element/src/heading.d.ts +16 -0
- package/dist/types/element/src/image.d.ts +22 -0
- package/dist/types/element/src/index.d.ts +56 -0
- package/dist/types/element/src/linearElementEditor.d.ts +113 -0
- package/dist/types/element/src/mutateElement.d.ts +23 -0
- package/dist/types/element/src/newElement.d.ts +62 -0
- package/dist/types/element/src/positionElementsOnGrid.d.ts +2 -0
- package/dist/types/element/src/renderElement.d.ts +31 -0
- package/dist/types/element/src/resizeElements.d.ts +32 -0
- package/dist/types/element/src/resizeTest.d.ts +16 -0
- package/dist/types/element/src/selection.d.ts +34 -0
- package/dist/types/element/src/shape.d.ts +42 -0
- package/dist/types/element/src/showSelectedShapeActions.d.ts +3 -0
- package/dist/types/element/src/sizeHelpers.d.ts +35 -0
- package/dist/types/element/src/sortElements.d.ts +2 -0
- package/dist/types/element/src/store.d.ts +237 -0
- package/dist/types/element/src/textElement.d.ts +40 -0
- package/dist/types/element/src/textMeasurements.d.ts +39 -0
- package/dist/types/element/src/textWrapping.d.ts +13 -0
- package/dist/types/element/src/transform.d.ts +81 -0
- package/dist/types/element/src/transformHandles.d.ts +36 -0
- package/dist/types/element/src/typeChecks.d.ts +54 -0
- package/dist/types/element/src/types.d.ts +291 -0
- package/dist/types/element/src/utils.d.ts +34 -0
- package/dist/types/element/src/zindex.d.ts +13 -0
- package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +485 -0
- package/dist/types/excalidraw/actions/actionAlign.d.ts +109 -0
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +360 -0
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +2059 -0
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +399 -0
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +174 -0
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +519 -0
- package/dist/types/excalidraw/actions/actionDistribute.d.ts +34 -0
- package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +17 -0
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +194 -0
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +346 -0
- package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +171 -0
- package/dist/types/excalidraw/actions/actionExport.d.ts +683 -0
- package/dist/types/excalidraw/actions/actionFinalize.d.ts +13 -0
- package/dist/types/excalidraw/actions/actionFlip.d.ts +34 -0
- package/dist/types/excalidraw/actions/actionFrame.d.ts +1150 -0
- package/dist/types/excalidraw/actions/actionGroup.d.ts +350 -0
- package/dist/types/excalidraw/actions/actionHistory.d.ts +6 -0
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +659 -0
- package/dist/types/excalidraw/actions/actionLink.d.ts +175 -0
- package/dist/types/excalidraw/actions/actionMenu.d.ts +163 -0
- package/dist/types/excalidraw/actions/actionNavigate.d.ts +20 -0
- package/dist/types/excalidraw/actions/actionProperties.d.ts +402 -0
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +170 -0
- package/dist/types/excalidraw/actions/actionStyles.d.ts +188 -0
- package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +17 -0
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +177 -0
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +175 -0
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +166 -0
- package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +19 -0
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +174 -0
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +175 -0
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +175 -0
- package/dist/types/excalidraw/actions/actionZindex.d.ts +74 -0
- package/dist/types/excalidraw/actions/index.d.ts +28 -0
- package/dist/types/excalidraw/actions/manager.d.ts +21 -0
- package/dist/types/excalidraw/actions/register.d.ts +5 -0
- package/dist/types/excalidraw/actions/shortcuts.d.ts +4 -0
- package/dist/types/excalidraw/actions/types.d.ts +47 -0
- package/dist/types/excalidraw/analytics.d.ts +1 -0
- package/dist/types/excalidraw/animated-trail.d.ts +39 -0
- package/dist/types/excalidraw/animation-frame-handler.d.ts +16 -0
- package/dist/types/excalidraw/appState.d.ts +102 -0
- package/dist/types/excalidraw/charts.d.ts +27 -0
- package/dist/types/excalidraw/clients.d.ts +14 -0
- package/dist/types/excalidraw/clipboard.d.ts +105 -0
- package/dist/types/excalidraw/components/Actions.d.ts +47 -0
- package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +4 -0
- package/dist/types/excalidraw/components/App.d.ts +563 -0
- package/dist/types/excalidraw/components/Avatar.d.ts +11 -0
- package/dist/types/excalidraw/components/BraveMeasureTextError.d.ts +2 -0
- package/dist/types/excalidraw/components/Button.d.ts +17 -0
- package/dist/types/excalidraw/components/ButtonIcon.d.ts +16 -0
- package/dist/types/excalidraw/components/ButtonSeparator.d.ts +1 -0
- package/dist/types/excalidraw/components/Card.d.ts +6 -0
- package/dist/types/excalidraw/components/CheckboxItem.d.ts +8 -0
- package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +10 -0
- package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +23 -0
- package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +8 -0
- package/dist/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +7 -0
- package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +19 -0
- package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +10 -0
- package/dist/types/excalidraw/components/ColorPicker/PickerHeading.d.ts +5 -0
- package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +9 -0
- package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +9 -0
- package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +21 -0
- package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +20 -0
- package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +19 -0
- package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +2 -0
- package/dist/types/excalidraw/components/CommandPalette/types.d.ts +24 -0
- package/dist/types/excalidraw/components/ConfirmDialog.d.ts +10 -0
- package/dist/types/excalidraw/components/ContextMenu.d.ts +16 -0
- package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +23 -0
- package/dist/types/excalidraw/components/DarkModeToggle.d.ts +7 -0
- package/dist/types/excalidraw/components/DefaultSidebar.d.ts +27 -0
- package/dist/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +4 -0
- package/dist/types/excalidraw/components/Dialog.d.ts +13 -0
- package/dist/types/excalidraw/components/DialogActionButton.d.ts +10 -0
- package/dist/types/excalidraw/components/ElementCanvasButtons.d.ts +7 -0
- package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +12 -0
- package/dist/types/excalidraw/components/Ellipsify.d.ts +3 -0
- package/dist/types/excalidraw/components/ErrorDialog.d.ts +5 -0
- package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +15 -0
- package/dist/types/excalidraw/components/EyeButton.d.ts +8 -0
- package/dist/types/excalidraw/components/EyeDropper.d.ts +27 -0
- package/dist/types/excalidraw/components/FilledButton.d.ts +18 -0
- package/dist/types/excalidraw/components/FixedSideContainer.d.ts +9 -0
- package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +10 -0
- package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +22 -0
- package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +26 -0
- package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +8 -0
- package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +13 -0
- package/dist/types/excalidraw/components/HandButton.d.ts +10 -0
- package/dist/types/excalidraw/components/HelpButton.d.ts +7 -0
- package/dist/types/excalidraw/components/HelpDialog.d.ts +4 -0
- package/dist/types/excalidraw/components/HintViewer.d.ts +11 -0
- package/dist/types/excalidraw/components/IconPicker.d.ts +15 -0
- package/dist/types/excalidraw/components/ImageExportDialog.d.ts +14 -0
- package/dist/types/excalidraw/components/InitializeApp.d.ts +10 -0
- package/dist/types/excalidraw/components/InlineIcon.d.ts +5 -0
- package/dist/types/excalidraw/components/Island.d.ts +10 -0
- package/dist/types/excalidraw/components/JSONExportDialog.d.ts +15 -0
- package/dist/types/excalidraw/components/LaserPointerButton.d.ts +10 -0
- package/dist/types/excalidraw/components/LayerUI.d.ts +32 -0
- package/dist/types/excalidraw/components/LibraryMenu.d.ts +10 -0
- package/dist/types/excalidraw/components/LibraryMenuBrowseButton.d.ts +7 -0
- package/dist/types/excalidraw/components/LibraryMenuControlButtons.d.ts +9 -0
- package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +17 -0
- package/dist/types/excalidraw/components/LibraryMenuItems.d.ts +14 -0
- package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +23 -0
- package/dist/types/excalidraw/components/LibraryUnit.d.ts +14 -0
- package/dist/types/excalidraw/components/LoadingMessage.d.ts +5 -0
- package/dist/types/excalidraw/components/LockButton.d.ts +10 -0
- package/dist/types/excalidraw/components/MagicButton.d.ts +10 -0
- package/dist/types/excalidraw/components/MobileMenu.d.ts +24 -0
- package/dist/types/excalidraw/components/MobileToolBar.d.ts +10 -0
- package/dist/types/excalidraw/components/Modal.d.ts +11 -0
- package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -0
- package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -0
- package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -0
- package/dist/types/excalidraw/components/PasteChartDialog.d.ts +8 -0
- package/dist/types/excalidraw/components/PenModeButton.d.ts +12 -0
- package/dist/types/excalidraw/components/Popover.d.ts +16 -0
- package/dist/types/excalidraw/components/ProjectName.d.ts +10 -0
- package/dist/types/excalidraw/components/PropertiesPopover.d.ts +16 -0
- package/dist/types/excalidraw/components/PublishLibrary.d.ts +16 -0
- package/dist/types/excalidraw/components/QuickSearch.d.ts +9 -0
- package/dist/types/excalidraw/components/RadioGroup.d.ts +13 -0
- package/dist/types/excalidraw/components/RadioSelection.d.ts +20 -0
- package/dist/types/excalidraw/components/Range.d.ts +8 -0
- package/dist/types/excalidraw/components/SVGLayer.d.ts +7 -0
- package/dist/types/excalidraw/components/ScrollableList.d.ts +8 -0
- package/dist/types/excalidraw/components/SearchMenu.d.ts +5 -0
- package/dist/types/excalidraw/components/Section.d.ts +6 -0
- package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +70 -0
- package/dist/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +7 -0
- package/dist/types/excalidraw/components/Sidebar/SidebarTab.d.ts +8 -0
- package/dist/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +9 -0
- package/dist/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +6 -0
- package/dist/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +6 -0
- package/dist/types/excalidraw/components/Sidebar/SidebarTrigger.d.ts +6 -0
- package/dist/types/excalidraw/components/Sidebar/common.d.ts +34 -0
- package/dist/types/excalidraw/components/Spinner.d.ts +8 -0
- package/dist/types/excalidraw/components/Stack.d.ts +15 -0
- package/dist/types/excalidraw/components/Stats/Angle.d.ts +11 -0
- package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +10 -0
- package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +10 -0
- package/dist/types/excalidraw/components/Stats/Dimension.d.ts +11 -0
- package/dist/types/excalidraw/components/Stats/DragInput.d.ts +44 -0
- package/dist/types/excalidraw/components/Stats/FontSize.d.ts +11 -0
- package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +11 -0
- package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +14 -0
- package/dist/types/excalidraw/components/Stats/MultiFontSize.d.ts +12 -0
- package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +14 -0
- package/dist/types/excalidraw/components/Stats/Position.d.ts +12 -0
- package/dist/types/excalidraw/components/Stats/index.d.ts +35 -0
- package/dist/types/excalidraw/components/Stats/utils.d.ts +19 -0
- package/dist/types/excalidraw/components/Switch.d.ts +9 -0
- package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +6 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +29 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +9 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +7 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +17 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanels.d.ts +4 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogSubmitShortcut.d.ts +1 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +7 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +8 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +6 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabs.d.ts +11 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +8 -0
- package/dist/types/excalidraw/components/TTDDialog/common.d.ts +32 -0
- package/dist/types/excalidraw/components/TextField.d.ts +22 -0
- package/dist/types/excalidraw/components/Toast.d.ts +9 -0
- package/dist/types/excalidraw/components/ToolButton.d.ts +49 -0
- package/dist/types/excalidraw/components/ToolPopover.d.ts +25 -0
- package/dist/types/excalidraw/components/Tooltip.d.ts +18 -0
- package/dist/types/excalidraw/components/Trans.d.ts +9 -0
- package/dist/types/excalidraw/components/UnlockPopup.d.ts +8 -0
- package/dist/types/excalidraw/components/UserList.d.ts +18 -0
- package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +33 -0
- package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +14 -0
- package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +19 -0
- package/dist/types/excalidraw/components/canvases/index.d.ts +3 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +84 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +16 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +38 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +8 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +17 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +7 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +16 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +10 -0
- package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +6 -0
- package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -0
- package/dist/types/excalidraw/components/footer/Footer.d.ts +17 -0
- package/dist/types/excalidraw/components/footer/FooterCenter.d.ts +8 -0
- package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +4 -0
- package/dist/types/excalidraw/components/hyperlink/Hyperlink.d.ts +19 -0
- package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +10 -0
- package/dist/types/excalidraw/components/icons.d.ts +237 -0
- package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +11 -0
- package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +64 -0
- package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +76 -0
- package/dist/types/excalidraw/components/shapes.d.ts +190 -0
- package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +58 -0
- package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -0
- package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +84 -0
- package/dist/types/excalidraw/context/tunnels.d.ts +21 -0
- package/dist/types/excalidraw/context/ui-appState.d.ts +4 -0
- package/dist/types/excalidraw/cursor.d.ts +5 -0
- package/dist/types/excalidraw/data/EditorLocalStorage.d.ts +8 -0
- package/dist/types/excalidraw/data/blob.d.ts +57 -0
- package/dist/types/excalidraw/data/encode.d.ts +55 -0
- package/dist/types/excalidraw/data/encryption.d.ts +9 -0
- package/dist/types/excalidraw/data/filesystem.d.ts +21 -0
- package/dist/types/excalidraw/data/image.d.ts +9 -0
- package/dist/types/excalidraw/data/index.d.ts +22 -0
- package/dist/types/excalidraw/data/json.d.ts +18 -0
- package/dist/types/excalidraw/data/library.d.ts +127 -0
- package/dist/types/excalidraw/data/reconcile.d.ts +7 -0
- package/dist/types/excalidraw/data/resave.d.ts +5 -0
- package/dist/types/excalidraw/data/restore.d.ts +35 -0
- package/dist/types/excalidraw/data/types.d.ts +48 -0
- package/dist/types/excalidraw/deburr.d.ts +1 -0
- package/dist/types/excalidraw/editor-jotai.d.ts +56 -0
- package/dist/types/excalidraw/eraser/index.d.ts +12 -0
- package/dist/types/excalidraw/errors.d.ts +29 -0
- package/dist/types/excalidraw/fonts/Cascadia/index.d.ts +2 -0
- package/dist/types/excalidraw/fonts/ComicShanns/index.d.ts +2 -0
- package/dist/types/excalidraw/fonts/Emoji/index.d.ts +2 -0
- package/dist/types/excalidraw/fonts/ExcalidrawFontFace.d.ts +25 -0
- package/dist/types/excalidraw/fonts/Excalifont/index.d.ts +2 -0
- package/dist/types/excalidraw/fonts/Fonts.d.ts +79 -0
- package/dist/types/excalidraw/fonts/Helvetica/index.d.ts +2 -0
- package/dist/types/excalidraw/fonts/Liberation/index.d.ts +2 -0
- package/dist/types/excalidraw/fonts/Lilita/index.d.ts +2 -0
- package/dist/types/excalidraw/fonts/Nunito/index.d.ts +2 -0
- package/dist/types/excalidraw/fonts/Virgil/index.d.ts +2 -0
- package/dist/types/excalidraw/fonts/Xiaolai/index.d.ts +8 -0
- package/dist/types/excalidraw/fonts/index.d.ts +1 -0
- package/dist/types/excalidraw/gesture.d.ts +6 -0
- package/dist/types/excalidraw/history.d.ts +48 -0
- package/dist/types/excalidraw/hooks/useCallbackRefState.d.ts +1 -0
- package/dist/types/excalidraw/hooks/useCopiedIndicator.d.ts +5 -0
- package/dist/types/excalidraw/hooks/useCreatePortalContainer.d.ts +4 -0
- package/dist/types/excalidraw/hooks/useEmitter.d.ts +2 -0
- package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +11 -0
- package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +21 -0
- package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +1 -0
- package/dist/types/excalidraw/hooks/useStable.d.ts +1 -0
- package/dist/types/excalidraw/hooks/useStableCallback.d.ts +4 -0
- package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
- package/dist/types/excalidraw/hooks/useTransition.d.ts +2 -0
- package/dist/types/excalidraw/i18n.d.ts +24 -0
- package/dist/types/excalidraw/index.d.ts +45 -0
- package/dist/types/excalidraw/laser-trails.d.ts +20 -0
- package/dist/types/excalidraw/lasso/index.d.ts +16 -0
- package/dist/types/excalidraw/lasso/utils.d.ts +13 -0
- package/dist/types/excalidraw/mermaid.d.ts +2 -0
- package/dist/types/excalidraw/polyfill.d.ts +2 -0
- package/dist/types/excalidraw/reactUtils.d.ts +14 -0
- package/dist/types/excalidraw/renderer/animation.d.ts +12 -0
- package/dist/types/excalidraw/renderer/helpers.d.ts +16 -0
- package/dist/types/excalidraw/renderer/interactiveScene.d.ts +14 -0
- package/dist/types/excalidraw/renderer/renderNewElementScene.d.ts +7 -0
- package/dist/types/excalidraw/renderer/renderSnaps.d.ts +2 -0
- package/dist/types/excalidraw/renderer/roundRect.d.ts +11 -0
- package/dist/types/excalidraw/renderer/staticScene.d.ts +14 -0
- package/dist/types/excalidraw/renderer/staticSvgScene.d.ts +5 -0
- package/dist/types/excalidraw/scene/Renderer.d.ts +30 -0
- package/dist/types/excalidraw/scene/export.d.ts +36 -0
- package/dist/types/excalidraw/scene/index.d.ts +4 -0
- package/dist/types/excalidraw/scene/normalize.d.ts +4 -0
- package/dist/types/excalidraw/scene/scroll.d.ts +18 -0
- package/dist/types/excalidraw/scene/scrollbars.d.ts +11 -0
- package/dist/types/excalidraw/scene/types.d.ts +132 -0
- package/dist/types/excalidraw/scene/zoom.d.ts +12 -0
- package/dist/types/excalidraw/shortcut.d.ts +1 -0
- package/dist/types/excalidraw/snapping.d.ts +111 -0
- package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +45 -0
- package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +13 -0
- package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +2 -0
- package/dist/types/excalidraw/subset/subset-main.d.ts +12 -0
- package/dist/types/excalidraw/subset/subset-shared.chunk.d.ts +32 -0
- package/dist/types/excalidraw/subset/subset-worker.chunk.d.ts +15 -0
- package/dist/types/excalidraw/subset/woff2/woff2-bindings.d.ts +31 -0
- package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +14 -0
- package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +2 -0
- package/dist/types/excalidraw/types.d.ts +744 -0
- package/dist/types/excalidraw/workers.d.ts +36 -0
- package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +24 -0
- package/dist/types/math/src/angle.d.ts +19 -0
- package/dist/types/math/src/constants.d.ts +3 -0
- package/dist/types/math/src/curve.d.ts +74 -0
- package/dist/types/math/src/ellipse.d.ts +44 -0
- package/dist/types/math/src/index.d.ts +13 -0
- package/dist/types/math/src/line.d.ts +17 -0
- package/dist/types/math/src/point.d.ts +122 -0
- package/dist/types/math/src/polygon.d.ts +6 -0
- package/dist/types/math/src/range.d.ts +44 -0
- package/dist/types/math/src/rectangle.d.ts +5 -0
- package/dist/types/math/src/segment.d.ts +40 -0
- package/dist/types/math/src/triangle.d.ts +11 -0
- package/dist/types/math/src/types.d.ts +106 -0
- package/dist/types/math/src/utils.d.ts +7 -0
- package/dist/types/math/src/vector.d.ts +94 -0
- package/dist/types/utils/src/bbox.d.ts +9 -0
- package/dist/types/utils/src/export.d.ts +35 -0
- package/dist/types/utils/src/index.d.ts +4 -0
- package/dist/types/utils/src/shape.d.ts +58 -0
- package/dist/types/utils/src/withinBounds.d.ts +19 -0
- package/package.json +59 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { type Bounds } from "@excalidraw/common";
|
|
2
|
+
import type { Degrees, GlobalPoint, LineSegment, LocalPoint } from "@excalidraw/math";
|
|
3
|
+
import type { AppState } from "@excalidraw/excalidraw/types";
|
|
4
|
+
import type { Drawable, Op } from "roughjs/bin/core";
|
|
5
|
+
import type { Arrowhead, ElementsMap, ElementsMapOrArray, ExcalidrawElement, ExcalidrawFreeDrawElement, ExcalidrawLinearElement, NonDeleted } from "./types";
|
|
6
|
+
export type RectangleBox = {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
angle: number;
|
|
12
|
+
};
|
|
13
|
+
export type SceneBounds = readonly [
|
|
14
|
+
sceneX: number,
|
|
15
|
+
sceneY: number,
|
|
16
|
+
sceneX2: number,
|
|
17
|
+
sceneY2: number
|
|
18
|
+
];
|
|
19
|
+
export declare class ElementBounds {
|
|
20
|
+
private static boundsCache;
|
|
21
|
+
private static nonRotatedBoundsCache;
|
|
22
|
+
static getBounds(element: ExcalidrawElement, elementsMap: ElementsMap, nonRotated?: boolean): Bounds;
|
|
23
|
+
private static calculateBounds;
|
|
24
|
+
}
|
|
25
|
+
export declare const getElementAbsoluteCoords: (element: ExcalidrawElement, elementsMap: ElementsMap, includeBoundText?: boolean) => [number, number, number, number, number, number];
|
|
26
|
+
/**
|
|
27
|
+
* Given an element, return the line segments that make up the element.
|
|
28
|
+
*
|
|
29
|
+
* Uses helpers from /math
|
|
30
|
+
*/
|
|
31
|
+
export declare const getElementLineSegments: (element: ExcalidrawElement, elementsMap: ElementsMap) => LineSegment<GlobalPoint>[];
|
|
32
|
+
/**
|
|
33
|
+
* Scene -> Scene coords, but in x1,x2,y1,y2 format.
|
|
34
|
+
*
|
|
35
|
+
* Rectangle here means any rectangular frame, not an excalidraw element.
|
|
36
|
+
*/
|
|
37
|
+
export declare const getRectangleBoxAbsoluteCoords: (boxSceneCoords: RectangleBox) => number[];
|
|
38
|
+
export declare const getDiamondPoints: (element: ExcalidrawElement) => number[];
|
|
39
|
+
export declare const getCubicBezierCurveBound: (p0: GlobalPoint, p1: GlobalPoint, p2: GlobalPoint, p3: GlobalPoint) => Bounds;
|
|
40
|
+
export declare const getMinMaxXYFromCurvePathOps: (ops: Op[], transformXY?: (p: GlobalPoint) => GlobalPoint) => Bounds;
|
|
41
|
+
export declare const getBoundsFromPoints: (points: ExcalidrawFreeDrawElement["points"]) => Bounds;
|
|
42
|
+
/** @returns number in pixels */
|
|
43
|
+
export declare const getArrowheadSize: (arrowhead: Arrowhead) => number;
|
|
44
|
+
/** @returns number in degrees */
|
|
45
|
+
export declare const getArrowheadAngle: (arrowhead: Arrowhead) => Degrees;
|
|
46
|
+
export declare const getArrowheadPoints: (element: ExcalidrawLinearElement, shape: Drawable[], position: "start" | "end", arrowhead: Arrowhead) => number[] | null;
|
|
47
|
+
export declare const getElementBounds: (element: ExcalidrawElement, elementsMap: ElementsMap, nonRotated?: boolean) => Bounds;
|
|
48
|
+
export declare const getCommonBounds: (elements: ElementsMapOrArray, elementsMap?: ElementsMap) => Bounds;
|
|
49
|
+
export declare const getDraggedElementsBounds: (elements: ExcalidrawElement[], dragOffset: {
|
|
50
|
+
x: number;
|
|
51
|
+
y: number;
|
|
52
|
+
}) => number[];
|
|
53
|
+
export declare const getResizedElementAbsoluteCoords: (element: ExcalidrawElement, nextWidth: number, nextHeight: number, normalizePoints: boolean) => Bounds;
|
|
54
|
+
export declare const getElementPointsCoords: (element: ExcalidrawLinearElement, points: readonly (readonly [number, number])[]) => Bounds;
|
|
55
|
+
export declare const getClosestElementBounds: (elements: readonly ExcalidrawElement[], from: {
|
|
56
|
+
x: number;
|
|
57
|
+
y: number;
|
|
58
|
+
}) => Bounds;
|
|
59
|
+
export interface BoundingBox {
|
|
60
|
+
minX: number;
|
|
61
|
+
minY: number;
|
|
62
|
+
maxX: number;
|
|
63
|
+
maxY: number;
|
|
64
|
+
midX: number;
|
|
65
|
+
midY: number;
|
|
66
|
+
width: number;
|
|
67
|
+
height: number;
|
|
68
|
+
}
|
|
69
|
+
export declare const getCommonBoundingBox: (elements: readonly ExcalidrawElement[] | readonly NonDeleted<ExcalidrawElement>[]) => BoundingBox;
|
|
70
|
+
/**
|
|
71
|
+
* returns scene coords of user's editor viewport (visible canvas area) bounds
|
|
72
|
+
*/
|
|
73
|
+
export declare const getVisibleSceneBounds: ({ scrollX, scrollY, width, height, zoom, }: AppState) => SceneBounds;
|
|
74
|
+
export declare const getCenterForBounds: (bounds: Bounds) => GlobalPoint;
|
|
75
|
+
/**
|
|
76
|
+
* Get the axis-aligned bounding box for a given element
|
|
77
|
+
*/
|
|
78
|
+
export declare const aabbForElement: (element: Readonly<ExcalidrawElement>, elementsMap: ElementsMap, offset?: [number, number, number, number]) => Bounds;
|
|
79
|
+
export declare const pointInsideBounds: <P extends GlobalPoint | LocalPoint>(p: P, bounds: Bounds) => boolean;
|
|
80
|
+
export declare const doBoundsIntersect: (bounds1: Bounds | null, bounds2: Bounds | null) => boolean;
|
|
81
|
+
export declare const elementCenterPoint: (element: ExcalidrawElement, elementsMap: ElementsMap, xOffset?: number, yOffset?: number) => GlobalPoint;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { GlobalPoint, LineSegment } from "@excalidraw/math";
|
|
2
|
+
import type { FrameNameBounds } from "@excalidraw/excalidraw/types";
|
|
3
|
+
import type { ElementsMap, ExcalidrawBindableElement, ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, NonDeletedSceneElementsMap, Ordered } from "./types";
|
|
4
|
+
export declare const shouldTestInside: (element: ExcalidrawElement) => boolean;
|
|
5
|
+
export type HitTestArgs = {
|
|
6
|
+
point: GlobalPoint;
|
|
7
|
+
element: ExcalidrawElement;
|
|
8
|
+
threshold: number;
|
|
9
|
+
elementsMap: ElementsMap;
|
|
10
|
+
frameNameBound?: FrameNameBounds | null;
|
|
11
|
+
overrideShouldTestInside?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export declare const hitElementItself: ({ point, element, threshold, elementsMap, frameNameBound, overrideShouldTestInside, }: HitTestArgs) => boolean;
|
|
14
|
+
export declare const hitElementBoundingBox: (point: GlobalPoint, element: ExcalidrawElement, elementsMap: ElementsMap, tolerance?: number) => boolean;
|
|
15
|
+
export declare const hitElementBoundingBoxOnly: (hitArgs: HitTestArgs, elementsMap: ElementsMap) => boolean;
|
|
16
|
+
export declare const hitElementBoundText: (point: GlobalPoint, element: ExcalidrawElement, elementsMap: ElementsMap) => boolean;
|
|
17
|
+
export declare const getAllHoveredElementAtPoint: (point: Readonly<GlobalPoint>, elements: readonly Ordered<NonDeletedExcalidrawElement>[], elementsMap: NonDeletedSceneElementsMap, toleranceFn?: (element: ExcalidrawBindableElement) => number) => NonDeleted<ExcalidrawBindableElement>[];
|
|
18
|
+
export declare const getHoveredElementForBinding: (point: Readonly<GlobalPoint>, elements: readonly Ordered<NonDeletedExcalidrawElement>[], elementsMap: NonDeletedSceneElementsMap, toleranceFn?: (element: ExcalidrawBindableElement) => number) => NonDeleted<ExcalidrawBindableElement> | null;
|
|
19
|
+
/**
|
|
20
|
+
* Intersect a line with an element for binding test
|
|
21
|
+
*
|
|
22
|
+
* @param element
|
|
23
|
+
* @param line
|
|
24
|
+
* @param offset
|
|
25
|
+
* @returns
|
|
26
|
+
*/
|
|
27
|
+
export declare const intersectElementWithLineSegment: (element: ExcalidrawElement, elementsMap: ElementsMap, line: LineSegment<GlobalPoint>, offset?: number, onlyFirst?: boolean) => GlobalPoint[];
|
|
28
|
+
/**
|
|
29
|
+
* Check if the given point is considered inside the element's border
|
|
30
|
+
*
|
|
31
|
+
* @param point
|
|
32
|
+
* @param element
|
|
33
|
+
* @returns
|
|
34
|
+
*/
|
|
35
|
+
export declare const isPointInElement: (point: GlobalPoint, element: ExcalidrawElement, elementsMap: ElementsMap) => boolean;
|
|
36
|
+
export declare const isBindableElementInsideOtherBindable: (innerElement: ExcalidrawBindableElement, outerElement: ExcalidrawBindableElement, elementsMap: ElementsMap) => boolean;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ElementOrToolType } from "@excalidraw/excalidraw/types";
|
|
2
|
+
export declare const hasBackground: (type: ElementOrToolType) => type is "line" | "ellipse" | "rectangle" | "diamond" | "embeddable" | "iframe" | "freedraw";
|
|
3
|
+
export declare const hasStrokeColor: (type: ElementOrToolType) => type is "text" | "line" | "ellipse" | "rectangle" | "diamond" | "embeddable" | "arrow" | "freedraw";
|
|
4
|
+
export declare const hasStrokeWidth: (type: ElementOrToolType) => type is "line" | "ellipse" | "rectangle" | "diamond" | "embeddable" | "iframe" | "arrow" | "freedraw";
|
|
5
|
+
export declare const hasStrokeStyle: (type: ElementOrToolType) => type is "line" | "ellipse" | "rectangle" | "diamond" | "embeddable" | "iframe" | "arrow";
|
|
6
|
+
export declare const canChangeRoundness: (type: ElementOrToolType) => type is "line" | "rectangle" | "diamond" | "embeddable" | "image" | "iframe";
|
|
7
|
+
export declare const toolIsArrow: (type: ElementOrToolType) => type is "arrow";
|
|
8
|
+
export declare const canHaveArrowheads: (type: ElementOrToolType) => type is "arrow";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ExcalidrawTextContainer } from "./types";
|
|
2
|
+
export declare const originalContainerCache: {
|
|
3
|
+
[id: ExcalidrawTextContainer["id"]]: {
|
|
4
|
+
height: ExcalidrawTextContainer["height"];
|
|
5
|
+
} | undefined;
|
|
6
|
+
};
|
|
7
|
+
export declare const updateOriginalContainerCache: (id: ExcalidrawTextContainer["id"], height: ExcalidrawTextContainer["height"]) => {
|
|
8
|
+
height: ExcalidrawTextContainer["height"];
|
|
9
|
+
};
|
|
10
|
+
export declare const resetOriginalContainerCache: (id: ExcalidrawTextContainer["id"]) => void;
|
|
11
|
+
export declare const getOriginalContainerHeightFromCache: (id: ExcalidrawTextContainer["id"]) => number | null;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { TransformHandleType } from "./transformHandles";
|
|
2
|
+
import type { ElementsMap, ExcalidrawImageElement, ImageCrop } from "./types";
|
|
3
|
+
export declare const MINIMAL_CROP_SIZE = 10;
|
|
4
|
+
export declare const cropElement: (element: ExcalidrawImageElement, elementsMap: ElementsMap, transformHandle: TransformHandleType, naturalWidth: number, naturalHeight: number, pointerX: number, pointerY: number, widthAspectRatio?: number) => {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
crop: ImageCrop | null;
|
|
10
|
+
};
|
|
11
|
+
export declare const getUncroppedImageElement: (element: ExcalidrawImageElement, elementsMap: ElementsMap) => ExcalidrawImageElement;
|
|
12
|
+
export declare const getUncroppedWidthAndHeight: (element: ExcalidrawImageElement) => {
|
|
13
|
+
width: number;
|
|
14
|
+
height: number;
|
|
15
|
+
};
|
|
16
|
+
export declare const getFlipAdjustedCropPosition: (element: ExcalidrawImageElement, natural?: boolean) => {
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
19
|
+
} | null;
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import type { ExcalidrawElement, Ordered, OrderedExcalidrawElement, SceneElementsMap } from "@excalidraw/element/types";
|
|
2
|
+
import type { DTO, ValueOf } from "@excalidraw/common/utility-types";
|
|
3
|
+
import type { AppState, ObservedAppState } from "@excalidraw/excalidraw/types";
|
|
4
|
+
import { StoreSnapshot } from "./store";
|
|
5
|
+
/**
|
|
6
|
+
* Represents the difference between two objects of the same type.
|
|
7
|
+
*
|
|
8
|
+
* Both `deleted` and `inserted` partials represent the same set of added, removed or updated properties, where:
|
|
9
|
+
* - `deleted` is a set of all the deleted values
|
|
10
|
+
* - `inserted` is a set of all the inserted (added, updated) values
|
|
11
|
+
*
|
|
12
|
+
* Keeping it as pure object (without transient state, side-effects, etc.), so we won't have to instantiate it on load.
|
|
13
|
+
*/
|
|
14
|
+
export declare class Delta<T> {
|
|
15
|
+
readonly deleted: Partial<T>;
|
|
16
|
+
readonly inserted: Partial<T>;
|
|
17
|
+
private constructor();
|
|
18
|
+
static create<T>(deleted: Partial<T>, inserted: Partial<T>, modifier?: (delta: Partial<T>, partialType: "deleted" | "inserted") => Partial<T>, modifierOptions?: "deleted" | "inserted" | "both"): Delta<T>;
|
|
19
|
+
/**
|
|
20
|
+
* Calculates the delta between two objects.
|
|
21
|
+
*
|
|
22
|
+
* @param prevObject - The previous state of the object.
|
|
23
|
+
* @param nextObject - The next state of the object.
|
|
24
|
+
*
|
|
25
|
+
* @returns new delta instance.
|
|
26
|
+
*/
|
|
27
|
+
static calculate<T extends {
|
|
28
|
+
[key: string]: any;
|
|
29
|
+
}>(prevObject: T, nextObject: T, modifier?: (partial: Partial<T>) => Partial<T>, postProcess?: (deleted: Partial<T>, inserted: Partial<T>) => [Partial<T>, Partial<T>]): Delta<T>;
|
|
30
|
+
static empty(): Delta<unknown>;
|
|
31
|
+
static isEmpty<T>(delta: Delta<T>): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Merges two deltas into a new one.
|
|
34
|
+
*/
|
|
35
|
+
static merge<T>(delta1: Delta<T>, delta2: Delta<T>, delta3?: Delta<T>): Delta<T>;
|
|
36
|
+
/**
|
|
37
|
+
* Merges deleted and inserted object partials.
|
|
38
|
+
*/
|
|
39
|
+
static mergeObjects<T extends {
|
|
40
|
+
[key: string]: unknown;
|
|
41
|
+
}>(prev: T, added: T, removed?: T): T;
|
|
42
|
+
/**
|
|
43
|
+
* Merges deleted and inserted array partials.
|
|
44
|
+
*/
|
|
45
|
+
static mergeArrays<T>(prev: readonly T[] | null, added: readonly T[] | null | undefined, removed: readonly T[] | null | undefined, predicate?: (value: T) => string): T[];
|
|
46
|
+
/**
|
|
47
|
+
* Diff object partials as part of the `postProcess`.
|
|
48
|
+
*/
|
|
49
|
+
static diffObjects<T, K extends keyof T, V extends ValueOf<T[K]>>(deleted: Partial<T>, inserted: Partial<T>, property: K, setValue: (prevValue: V | undefined) => V): void;
|
|
50
|
+
/**
|
|
51
|
+
* Diff array partials as part of the `postProcess`.
|
|
52
|
+
*/
|
|
53
|
+
static diffArrays<T, K extends keyof T, V extends T[K]>(deleted: Partial<T>, inserted: Partial<T>, property: K, groupBy: (value: V extends ArrayLike<infer T> ? T : never) => string): void;
|
|
54
|
+
/**
|
|
55
|
+
* Compares if object1 contains any different value compared to the object2.
|
|
56
|
+
*/
|
|
57
|
+
static isLeftDifferent<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Compares if object2 contains any different value compared to the object1.
|
|
60
|
+
*/
|
|
61
|
+
static isRightDifferent<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Compares if shared properties of object1 and object2 contain any different value (aka inner join).
|
|
64
|
+
*/
|
|
65
|
+
static isInnerDifferent<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Compares if any properties of object1 and object2 contain any different value (aka full join).
|
|
68
|
+
*/
|
|
69
|
+
static isDifferent<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Returns sorted object1 keys that have distinct values.
|
|
72
|
+
*/
|
|
73
|
+
static getLeftDifferences<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): string[];
|
|
74
|
+
/**
|
|
75
|
+
* Returns sorted object2 keys that have distinct values.
|
|
76
|
+
*/
|
|
77
|
+
static getRightDifferences<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): string[];
|
|
78
|
+
/**
|
|
79
|
+
* Returns sorted keys of shared object1 and object2 properties that have distinct values (aka inner join).
|
|
80
|
+
*/
|
|
81
|
+
static getInnerDifferences<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): string[];
|
|
82
|
+
/**
|
|
83
|
+
* Returns sorted keys that have distinct values between object1 and object2 (aka full join).
|
|
84
|
+
*/
|
|
85
|
+
static getDifferences<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): string[];
|
|
86
|
+
/**
|
|
87
|
+
* Iterator comparing values of object properties based on the passed joining strategy.
|
|
88
|
+
*
|
|
89
|
+
* @yields keys of properties with different values
|
|
90
|
+
*
|
|
91
|
+
* WARN: it's based on shallow compare performed only on the first level and doesn't go deeper than that.
|
|
92
|
+
*/
|
|
93
|
+
private static distinctKeysIterator;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Encapsulates a set of application-level `Delta`s.
|
|
97
|
+
*/
|
|
98
|
+
export interface DeltaContainer<T> {
|
|
99
|
+
/**
|
|
100
|
+
* Inverses the `Delta`s while creating a new `DeltaContainer` instance.
|
|
101
|
+
*/
|
|
102
|
+
inverse(): DeltaContainer<T>;
|
|
103
|
+
/**
|
|
104
|
+
* Applies the `Delta`s to the previous object.
|
|
105
|
+
*
|
|
106
|
+
* @returns a tuple of the next object `T` with applied `Delta`s, and `boolean`, indicating whether the applied deltas resulted in a visible change.
|
|
107
|
+
*/
|
|
108
|
+
applyTo(previous: T, ...options: unknown[]): [T, boolean];
|
|
109
|
+
/**
|
|
110
|
+
* Squashes the current delta with the given one.
|
|
111
|
+
*/
|
|
112
|
+
squash(delta: DeltaContainer<T>): this;
|
|
113
|
+
/**
|
|
114
|
+
* Checks whether all `Delta`s are empty.
|
|
115
|
+
*/
|
|
116
|
+
isEmpty(): boolean;
|
|
117
|
+
}
|
|
118
|
+
export declare class AppStateDelta implements DeltaContainer<AppState> {
|
|
119
|
+
delta: Delta<ObservedAppState>;
|
|
120
|
+
private constructor();
|
|
121
|
+
static create(delta: Delta<ObservedAppState>): AppStateDelta;
|
|
122
|
+
static calculate<T extends ObservedAppState>(prevAppState: T, nextAppState: T): AppStateDelta;
|
|
123
|
+
static restore(appStateDeltaDTO: DTO<AppStateDelta>): AppStateDelta;
|
|
124
|
+
static empty(): AppStateDelta;
|
|
125
|
+
inverse(): AppStateDelta;
|
|
126
|
+
squash(delta: AppStateDelta): this;
|
|
127
|
+
applyTo(appState: AppState, nextElements: SceneElementsMap): [AppState, boolean];
|
|
128
|
+
isEmpty(): boolean;
|
|
129
|
+
/**
|
|
130
|
+
* Mutates `nextAppState` be filtering out state related to deleted elements.
|
|
131
|
+
*
|
|
132
|
+
* @returns `true` if a visible change is found, `false` otherwise.
|
|
133
|
+
*/
|
|
134
|
+
private filterInvisibleChanges;
|
|
135
|
+
private static filterSelectedElements;
|
|
136
|
+
private static filterSelectedGroups;
|
|
137
|
+
private static stripElementsProps;
|
|
138
|
+
private static stripStandaloneProps;
|
|
139
|
+
/**
|
|
140
|
+
* It is necessary to post process the partials in case of reference values,
|
|
141
|
+
* for which we need to calculate the real diff between `deleted` and `inserted`.
|
|
142
|
+
*/
|
|
143
|
+
private static postProcess;
|
|
144
|
+
private static orderAppStateKeys;
|
|
145
|
+
}
|
|
146
|
+
type ElementPartial<TElement extends ExcalidrawElement = ExcalidrawElement> = Omit<Partial<Ordered<TElement>>, "id" | "updated" | "seed">;
|
|
147
|
+
export type ApplyToOptions = {
|
|
148
|
+
excludedProperties?: Set<keyof ElementPartial>;
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Elements change is a low level primitive to capture a change between two sets of elements.
|
|
152
|
+
* It does so by encapsulating forward and backward `Delta`s, allowing to time-travel in both directions.
|
|
153
|
+
*/
|
|
154
|
+
export declare class ElementsDelta implements DeltaContainer<SceneElementsMap> {
|
|
155
|
+
readonly added: Record<string, Delta<ElementPartial>>;
|
|
156
|
+
readonly removed: Record<string, Delta<ElementPartial>>;
|
|
157
|
+
readonly updated: Record<string, Delta<ElementPartial>>;
|
|
158
|
+
private constructor();
|
|
159
|
+
static create(added: Record<string, Delta<ElementPartial>>, removed: Record<string, Delta<ElementPartial>>, updated: Record<string, Delta<ElementPartial>>, options?: {
|
|
160
|
+
shouldRedistribute: boolean;
|
|
161
|
+
}): ElementsDelta;
|
|
162
|
+
static restore(elementsDeltaDTO: DTO<ElementsDelta>): ElementsDelta;
|
|
163
|
+
private static satisfiesAddition;
|
|
164
|
+
private static satisfiesRemoval;
|
|
165
|
+
private static satisfiesUpdate;
|
|
166
|
+
private static satisfiesCommmonInvariants;
|
|
167
|
+
private static satisfiesUniqueInvariants;
|
|
168
|
+
private static validate;
|
|
169
|
+
/**
|
|
170
|
+
* Calculates the `Delta`s between the previous and next set of elements.
|
|
171
|
+
*
|
|
172
|
+
* @param prevElements - Map representing the previous state of elements.
|
|
173
|
+
* @param nextElements - Map representing the next state of elements.
|
|
174
|
+
*
|
|
175
|
+
* @returns `ElementsDelta` instance representing the `Delta` changes between the two sets of elements.
|
|
176
|
+
*/
|
|
177
|
+
static calculate<T extends OrderedExcalidrawElement>(prevElements: Map<string, T>, nextElements: Map<string, T>): ElementsDelta;
|
|
178
|
+
static empty(): ElementsDelta;
|
|
179
|
+
inverse(): ElementsDelta;
|
|
180
|
+
isEmpty(): boolean;
|
|
181
|
+
/**
|
|
182
|
+
* Update delta/s based on the existing elements.
|
|
183
|
+
*
|
|
184
|
+
* @param nextElements current elements
|
|
185
|
+
* @param modifierOptions defines which of the delta (`deleted` or `inserted`) will be updated
|
|
186
|
+
* @returns new instance with modified delta/s
|
|
187
|
+
*/
|
|
188
|
+
applyLatestChanges(prevElements: SceneElementsMap, nextElements: SceneElementsMap, modifierOptions?: "deleted" | "inserted"): ElementsDelta;
|
|
189
|
+
applyTo(elements: SceneElementsMap, snapshot?: StoreSnapshot["elements"], options?: ApplyToOptions): [SceneElementsMap, boolean];
|
|
190
|
+
squash(delta: ElementsDelta): this;
|
|
191
|
+
private static createApplier;
|
|
192
|
+
private static createGetter;
|
|
193
|
+
private static applyDelta;
|
|
194
|
+
/**
|
|
195
|
+
* Check for visible changes regardless of whether they were removed, added or updated.
|
|
196
|
+
*/
|
|
197
|
+
private static checkForVisibleDifference;
|
|
198
|
+
/**
|
|
199
|
+
* Resolves conflicts for all previously added, removed and updated elements.
|
|
200
|
+
* Updates the previous deltas with all the changes after conflict resolution.
|
|
201
|
+
*
|
|
202
|
+
* // TODO: revisit since some bound arrows seem to be often redrawn incorrectly
|
|
203
|
+
*
|
|
204
|
+
* @returns all elements affected by the conflict resolution
|
|
205
|
+
*/
|
|
206
|
+
private resolveConflicts;
|
|
207
|
+
/**
|
|
208
|
+
* Non deleted affected elements of removed elements (before and after applying delta),
|
|
209
|
+
* should be unbound ~ bindings should not point from non deleted into the deleted element/s.
|
|
210
|
+
*/
|
|
211
|
+
private static unbindAffected;
|
|
212
|
+
/**
|
|
213
|
+
* Non deleted affected elements of added or updated element/s (before and after applying delta),
|
|
214
|
+
* should be rebound (if possible) with the current element ~ bindings should be bidirectional.
|
|
215
|
+
*/
|
|
216
|
+
private static rebindAffected;
|
|
217
|
+
static redrawElements(nextElements: SceneElementsMap, changedElements: Map<string, OrderedExcalidrawElement>): SceneElementsMap;
|
|
218
|
+
private static redrawTextBoundingBoxes;
|
|
219
|
+
private static redrawBoundArrows;
|
|
220
|
+
private static reorderElements;
|
|
221
|
+
/**
|
|
222
|
+
* It is necessary to post process the partials in case of reference values,
|
|
223
|
+
* for which we need to calculate the real diff between `deleted` and `inserted`.
|
|
224
|
+
*/
|
|
225
|
+
private static postProcess;
|
|
226
|
+
private static stripIrrelevantProps;
|
|
227
|
+
}
|
|
228
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AppState } from "@excalidraw/excalidraw/types";
|
|
2
|
+
import type { ElementsMap, ExcalidrawElement } from "./types";
|
|
3
|
+
export interface Distribution {
|
|
4
|
+
space: "between";
|
|
5
|
+
axis: "x" | "y";
|
|
6
|
+
}
|
|
7
|
+
export declare const distributeElements: (selectedElements: ExcalidrawElement[], elementsMap: ElementsMap, distribution: Distribution, appState: Readonly<AppState>) => ExcalidrawElement[];
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { AppState, NormalizedZoomValue, NullableGridSize, PointerDownState } from "@excalidraw/excalidraw/types";
|
|
2
|
+
import type { NonDeletedExcalidrawElement } from "@excalidraw/element/types";
|
|
3
|
+
import type { Scene } from "./Scene";
|
|
4
|
+
export declare const dragSelectedElements: (pointerDownState: PointerDownState, _selectedElements: NonDeletedExcalidrawElement[], offset: {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
}, scene: Scene, snapOffset: {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
}, gridSize: NullableGridSize) => void;
|
|
11
|
+
export declare const getDragOffsetXY: (selectedElements: NonDeletedExcalidrawElement[], x: number, y: number) => [number, number];
|
|
12
|
+
export declare const dragNewElement: ({ newElement, elementType, originX, originY, x, y, width, height, shouldMaintainAspectRatio, shouldResizeFromCenter, zoom, scene, widthAspectRatio, originOffset, informMutation, }: {
|
|
13
|
+
newElement: NonDeletedExcalidrawElement;
|
|
14
|
+
elementType: AppState["activeTool"]["type"];
|
|
15
|
+
originX: number;
|
|
16
|
+
originY: number;
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
19
|
+
width: number;
|
|
20
|
+
height: number;
|
|
21
|
+
shouldMaintainAspectRatio: boolean;
|
|
22
|
+
shouldResizeFromCenter: boolean;
|
|
23
|
+
zoom: NormalizedZoomValue;
|
|
24
|
+
scene: Scene;
|
|
25
|
+
/** whether to keep given aspect ratio when `isResizeWithSidesSameLength` is
|
|
26
|
+
true */
|
|
27
|
+
widthAspectRatio?: number | null;
|
|
28
|
+
originOffset?: {
|
|
29
|
+
x: number;
|
|
30
|
+
y: number;
|
|
31
|
+
} | null;
|
|
32
|
+
informMutation?: boolean;
|
|
33
|
+
}) => void;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { Mutable } from "@excalidraw/common/utility-types";
|
|
2
|
+
import type { AppState } from "@excalidraw/excalidraw/types";
|
|
3
|
+
import type { ExcalidrawElement, GroupId } from "./types";
|
|
4
|
+
/**
|
|
5
|
+
* Duplicate an element, often used in the alt-drag operation.
|
|
6
|
+
* Note that this method has gotten a bit complicated since the
|
|
7
|
+
* introduction of gruoping/ungrouping elements.
|
|
8
|
+
* @param editingGroupId The current group being edited. The new
|
|
9
|
+
* element will inherit this group and its
|
|
10
|
+
* parents.
|
|
11
|
+
* @param groupIdMapForOperation A Map that maps old group IDs to
|
|
12
|
+
* duplicated ones. If you are duplicating
|
|
13
|
+
* multiple elements at once, share this map
|
|
14
|
+
* amongst all of them
|
|
15
|
+
* @param element Element to duplicate
|
|
16
|
+
*/
|
|
17
|
+
export declare const duplicateElement: <TElement extends ExcalidrawElement>(editingGroupId: AppState["editingGroupId"], groupIdMapForOperation: Map<GroupId, GroupId>, element: TElement, randomizeSeed?: boolean) => Readonly<TElement>;
|
|
18
|
+
export declare const duplicateElements: (opts: {
|
|
19
|
+
elements: readonly ExcalidrawElement[];
|
|
20
|
+
randomizeSeed?: boolean;
|
|
21
|
+
overrides?: (data: {
|
|
22
|
+
duplicateElement: ExcalidrawElement;
|
|
23
|
+
origElement: ExcalidrawElement;
|
|
24
|
+
origIdToDuplicateId: Map<ExcalidrawElement["id"], ExcalidrawElement["id"]>;
|
|
25
|
+
}) => Partial<ExcalidrawElement>;
|
|
26
|
+
} & ({
|
|
27
|
+
/**
|
|
28
|
+
* Duplicates all elements in array.
|
|
29
|
+
*
|
|
30
|
+
* Use this when programmaticaly duplicating elements, without direct
|
|
31
|
+
* user interaction.
|
|
32
|
+
*/
|
|
33
|
+
type: "everything";
|
|
34
|
+
} | {
|
|
35
|
+
/**
|
|
36
|
+
* Duplicates specified elements and inserts them back into the array
|
|
37
|
+
* in specified order.
|
|
38
|
+
*
|
|
39
|
+
* Use this when duplicating Scene elements, during user interaction
|
|
40
|
+
* such as alt-drag or on duplicate action.
|
|
41
|
+
*/
|
|
42
|
+
type: "in-place";
|
|
43
|
+
idsOfElementsToDuplicate: Map<ExcalidrawElement["id"], ExcalidrawElement>;
|
|
44
|
+
appState: {
|
|
45
|
+
editingGroupId: AppState["editingGroupId"];
|
|
46
|
+
selectedGroupIds: AppState["selectedGroupIds"];
|
|
47
|
+
};
|
|
48
|
+
})) => {
|
|
49
|
+
duplicatedElements: ExcalidrawElement[];
|
|
50
|
+
duplicateElementsMap: Map<string, ExcalidrawElement>;
|
|
51
|
+
elementsWithDuplicates: ExcalidrawElement[];
|
|
52
|
+
origIdToDuplicateId: Map<string, string>;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Clones ExcalidrawElement data structure. Does not regenerate id, nonce, or
|
|
56
|
+
* any value. The purpose is to to break object references for immutability
|
|
57
|
+
* reasons, whenever we want to keep the original element, but ensure it's not
|
|
58
|
+
* mutated.
|
|
59
|
+
*
|
|
60
|
+
* Only clones plain objects and arrays. Doesn't clone Date, RegExp, Map, Set,
|
|
61
|
+
* Typed arrays and other non-null objects.
|
|
62
|
+
*/
|
|
63
|
+
export declare const deepCopyElement: <T extends ExcalidrawElement>(val: T) => Mutable<T>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
|
|
2
|
+
import { type ElementUpdate } from "./mutateElement";
|
|
3
|
+
import { type ExcalidrawElbowArrowElement, type NonDeletedSceneElementsMap } from "./types";
|
|
4
|
+
import type { FixedPointBinding, FixedSegment } from "./types";
|
|
5
|
+
export declare const BASE_PADDING = 40;
|
|
6
|
+
/**
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
export declare const updateElbowArrowPoints: (arrow: Readonly<ExcalidrawElbowArrowElement>, elementsMap: NonDeletedSceneElementsMap, updates: {
|
|
10
|
+
points?: readonly LocalPoint[];
|
|
11
|
+
fixedSegments?: readonly FixedSegment[] | null;
|
|
12
|
+
startBinding?: FixedPointBinding | null;
|
|
13
|
+
endBinding?: FixedPointBinding | null;
|
|
14
|
+
}, options?: {
|
|
15
|
+
isDragging?: boolean;
|
|
16
|
+
}) => ElementUpdate<ExcalidrawElbowArrowElement>;
|
|
17
|
+
export declare const validateElbowPoints: <P extends GlobalPoint | LocalPoint>(points: readonly P[], tolerance?: number) => boolean;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create and link between shapes.
|
|
3
|
+
*/
|
|
4
|
+
import type { AppProps, AppState } from "@excalidraw/excalidraw/types";
|
|
5
|
+
import type { ExcalidrawElement } from "./types";
|
|
6
|
+
export declare const defaultGetElementLinkFromSelection: Exclude<AppProps["generateLinkForSelection"], undefined>;
|
|
7
|
+
export declare const getLinkIdAndTypeFromSelection: (selectedElements: ExcalidrawElement[], appState: AppState) => {
|
|
8
|
+
id: string;
|
|
9
|
+
type: "element" | "group";
|
|
10
|
+
} | null;
|
|
11
|
+
export declare const canCreateLinkFromElements: (selectedElements: ExcalidrawElement[]) => boolean;
|
|
12
|
+
export declare const isElementLink: (url: string) => boolean;
|
|
13
|
+
export declare const parseElementLinkFromURL: (url: string) => string | null;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ExcalidrawProps } from "@excalidraw/excalidraw/types";
|
|
2
|
+
import type { MarkRequired } from "@excalidraw/common/utility-types";
|
|
3
|
+
import type { ExcalidrawElement, ExcalidrawIframeLikeElement, IframeData } from "./types";
|
|
4
|
+
type IframeDataWithSandbox = MarkRequired<IframeData, "sandbox">;
|
|
5
|
+
export declare const createSrcDoc: (body: string) => string;
|
|
6
|
+
export declare const getEmbedLink: (link: string | null | undefined) => IframeDataWithSandbox | null;
|
|
7
|
+
export declare const createPlaceholderEmbeddableLabel: (element: ExcalidrawIframeLikeElement) => ExcalidrawElement;
|
|
8
|
+
export declare const maybeParseEmbedSrc: (str: string) => string;
|
|
9
|
+
export declare const embeddableURLValidator: (url: string | null | undefined, validateEmbeddable: ExcalidrawProps["validateEmbeddable"]) => boolean;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { AppState, PendingExcalidrawElements } from "@excalidraw/excalidraw/types";
|
|
2
|
+
import { type ElementsMap, type ExcalidrawBindableElement, type ExcalidrawElement, type ExcalidrawFlowchartNodeElement } from "./types";
|
|
3
|
+
import type { Scene } from "./Scene";
|
|
4
|
+
type LinkDirection = "up" | "right" | "down" | "left";
|
|
5
|
+
export declare const getLinkDirectionFromKey: (key: string) => LinkDirection;
|
|
6
|
+
export declare const getPredecessors: (node: ExcalidrawBindableElement, elementsMap: ElementsMap, direction: LinkDirection) => ExcalidrawBindableElement[];
|
|
7
|
+
export declare const addNewNodes: (startNode: ExcalidrawFlowchartNodeElement, appState: AppState, direction: LinkDirection, scene: Scene, numberOfNodes: number) => ExcalidrawElement[];
|
|
8
|
+
export declare class FlowChartNavigator {
|
|
9
|
+
isExploring: boolean;
|
|
10
|
+
private sameLevelNodes;
|
|
11
|
+
private sameLevelIndex;
|
|
12
|
+
private direction;
|
|
13
|
+
private visitedNodes;
|
|
14
|
+
clear(): void;
|
|
15
|
+
exploreByDirection(element: ExcalidrawElement, elementsMap: ElementsMap, direction: LinkDirection): ExcalidrawElement["id"] | null;
|
|
16
|
+
}
|
|
17
|
+
export declare class FlowChartCreator {
|
|
18
|
+
isCreatingChart: boolean;
|
|
19
|
+
private numberOfNodes;
|
|
20
|
+
private direction;
|
|
21
|
+
pendingNodes: PendingExcalidrawElements | null;
|
|
22
|
+
createNodes(startNode: ExcalidrawFlowchartNodeElement, appState: AppState, direction: LinkDirection, scene: Scene): void;
|
|
23
|
+
clear(): void;
|
|
24
|
+
}
|
|
25
|
+
export declare const isNodeInFlowchart: (element: ExcalidrawFlowchartNodeElement, elementsMap: ElementsMap) => boolean;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { ElementsMap, ExcalidrawElement, OrderedExcalidrawElement, SceneElementsMap } from "./types";
|
|
2
|
+
export declare class InvalidFractionalIndexError extends Error {
|
|
3
|
+
code: "ELEMENT_HAS_INVALID_INDEX";
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Envisioned relation between array order and fractional indices:
|
|
7
|
+
*
|
|
8
|
+
* 1) Array (or array-like ordered data structure) should be used as a cache of elements order, hiding the internal fractional indices implementation.
|
|
9
|
+
* - it's undesirable to perform reorder for each related operation, therefore it's necessary to cache the order defined by fractional indices into an ordered data structure
|
|
10
|
+
* - it's easy enough to define the order of the elements from the outside (boundaries), without worrying about the underlying structure of fractional indices (especially for the host apps)
|
|
11
|
+
* - it's necessary to always keep the array support for backwards compatibility (restore) - old scenes, old libraries, supporting multiple excalidraw versions etc.
|
|
12
|
+
* - it's necessary to always keep the fractional indices in sync with the array order
|
|
13
|
+
* - elements with invalid indices should be detected and synced, without altering the already valid indices
|
|
14
|
+
*
|
|
15
|
+
* 2) Fractional indices should be used to reorder the elements, whenever the cached order is expected to be invalidated.
|
|
16
|
+
* - as the fractional indices are encoded as part of the elements, it opens up possibilities for incremental-like APIs
|
|
17
|
+
* - re-order based on fractional indices should be part of (multiplayer) operations such as reconciliation & undo/redo
|
|
18
|
+
* - technically all the z-index actions could perform also re-order based on fractional indices,but in current state it would not bring much benefits,
|
|
19
|
+
* as it's faster & more efficient to perform re-order based on array manipulation and later synchronisation of moved indices with the array order
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Ensure that all elements have valid fractional indices.
|
|
23
|
+
*
|
|
24
|
+
* @throws `InvalidFractionalIndexError` if invalid index is detected.
|
|
25
|
+
*/
|
|
26
|
+
export declare const validateFractionalIndices: (elements: readonly ExcalidrawElement[], { shouldThrow, includeBoundTextValidation, ignoreLogs, reconciliationContext, }: {
|
|
27
|
+
shouldThrow: boolean;
|
|
28
|
+
includeBoundTextValidation: boolean;
|
|
29
|
+
ignoreLogs?: true;
|
|
30
|
+
reconciliationContext?: {
|
|
31
|
+
localElements: ReadonlyArray<ExcalidrawElement>;
|
|
32
|
+
remoteElements: ReadonlyArray<ExcalidrawElement>;
|
|
33
|
+
};
|
|
34
|
+
}) => void;
|
|
35
|
+
/**
|
|
36
|
+
* Order the elements based on the fractional indices.
|
|
37
|
+
* - when fractional indices are identical, break the tie based on the element id
|
|
38
|
+
* - when there is no fractional index in one of the elements, respect the order of the array
|
|
39
|
+
*/
|
|
40
|
+
export declare const orderByFractionalIndex: (elements: OrderedExcalidrawElement[]) => OrderedExcalidrawElement[];
|
|
41
|
+
/**
|
|
42
|
+
* Synchronizes invalid fractional indices of moved elements with the array order by mutating passed elements.
|
|
43
|
+
* If the synchronization fails or the result is invalid, it fallbacks to `syncInvalidIndices`.
|
|
44
|
+
*/
|
|
45
|
+
export declare const syncMovedIndices: (elements: readonly ExcalidrawElement[], movedElements: ElementsMap) => OrderedExcalidrawElement[];
|
|
46
|
+
/**
|
|
47
|
+
* Synchronizes all invalid fractional indices within the array order by mutating elements in the passed array.
|
|
48
|
+
*
|
|
49
|
+
* WARN: in edge cases it could modify the elements which were not moved, as it's impossible to guess the actually moved elements from the elements array itself.
|
|
50
|
+
*/
|
|
51
|
+
export declare const syncInvalidIndices: (elements: readonly ExcalidrawElement[]) => OrderedExcalidrawElement[];
|
|
52
|
+
/**
|
|
53
|
+
* Synchronizes all invalid fractional indices within the array order by creating new instances of elements with corrected indices.
|
|
54
|
+
*
|
|
55
|
+
* WARN: in edge cases it could modify the elements which were not moved, as it's impossible to guess the actually moved elements from the elements array itself.
|
|
56
|
+
*/
|
|
57
|
+
export declare const syncInvalidIndicesImmutable: (elements: readonly ExcalidrawElement[]) => SceneElementsMap | undefined;
|