@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,7 @@
|
|
|
1
|
+
export declare const normalizeLink: (link: string) => string;
|
|
2
|
+
export declare const isLocalLink: (link: string | null) => boolean;
|
|
3
|
+
/**
|
|
4
|
+
* Returns URL sanitized and safe for usage in places such as
|
|
5
|
+
* iframe's src attribute or <a> href attributes.
|
|
6
|
+
*/
|
|
7
|
+
export declare const toValidURL: (link: string) => string;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export type Mutable<T> = {
|
|
2
|
+
-readonly [P in keyof T]: T[P];
|
|
3
|
+
};
|
|
4
|
+
export type ValueOf<T> = T[keyof T];
|
|
5
|
+
export type Merge<M, N> = Omit<M, keyof N> & N;
|
|
6
|
+
/** utility type to assert that the second type is a subtype of the first type.
|
|
7
|
+
* Returns the subtype. */
|
|
8
|
+
export type SubtypeOf<Supertype, Subtype extends Supertype> = Subtype;
|
|
9
|
+
export type ResolutionType<T extends (...args: any) => any> = T extends (...args: any) => Promise<infer R> ? R : any;
|
|
10
|
+
export type MarkOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
11
|
+
export type MarkRequired<T, RK extends keyof T> = Exclude<T, RK> & Required<Pick<T, RK>>;
|
|
12
|
+
export type MarkNonNullable<T, K extends keyof T> = {
|
|
13
|
+
[P in K]-?: P extends K ? NonNullable<T[P]> : T[P];
|
|
14
|
+
} & {
|
|
15
|
+
[P in keyof T]: T[P];
|
|
16
|
+
};
|
|
17
|
+
export type NonOptional<T> = Exclude<T, undefined>;
|
|
18
|
+
export type SignatureType<T> = T extends (...args: infer R) => any ? R : never;
|
|
19
|
+
export type CallableType<T extends (...args: any[]) => any> = (...args: SignatureType<T>) => ReturnType<T>;
|
|
20
|
+
export type ForwardRef<T, P = any> = Parameters<CallableType<React.ForwardRefRenderFunction<T, P>>>[1];
|
|
21
|
+
export type ExtractSetType<T extends Set<any>> = T extends Set<infer U> ? U : never;
|
|
22
|
+
export type SameType<T, U> = T extends U ? (U extends T ? true : false) : false;
|
|
23
|
+
export type Assert<T extends true> = T;
|
|
24
|
+
export type NestedKeyOf<T, K = keyof T> = K extends keyof T & (string | number) ? `${K}` | (T[K] extends object ? `${K}.${NestedKeyOf<T[K]>}` : never) : never;
|
|
25
|
+
export type SetLike<T> = Set<T> | T[];
|
|
26
|
+
export type ReadonlySetLike<T> = ReadonlySet<T> | readonly T[];
|
|
27
|
+
export type MakeBrand<T extends string> = {
|
|
28
|
+
[K in `~brand~${T}`]: T;
|
|
29
|
+
};
|
|
30
|
+
/** Maybe just promise or already fulfilled one! */
|
|
31
|
+
export type MaybePromise<T> = T | Promise<T>;
|
|
32
|
+
export type AllPossibleKeys<T> = T extends any ? keyof T : never;
|
|
33
|
+
/** Strip all the methods or functions from a type */
|
|
34
|
+
export type DTO<T> = {
|
|
35
|
+
[K in keyof T as T[K] extends Function ? never : K]: T[K];
|
|
36
|
+
};
|
|
37
|
+
export type MapEntry<M extends Map<any, any>> = M extends Map<infer K, infer V> ? [K, V] : never;
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import type { FontFamilyValues, FontString } from "@excalidraw/element/types";
|
|
2
|
+
import type { ActiveTool, AppState, ToolType, UnsubscribeCallback, Zoom } from "@excalidraw/excalidraw/types";
|
|
3
|
+
import type { MaybePromise, ResolutionType } from "./utility-types";
|
|
4
|
+
import type { EVENT } from "./constants";
|
|
5
|
+
export declare const setDateTimeForTests: (dateTime: string) => void;
|
|
6
|
+
export declare const getDateTime: () => string;
|
|
7
|
+
export declare const capitalizeString: (str: string) => string;
|
|
8
|
+
export declare const isToolIcon: (target: Element | EventTarget | null) => target is HTMLElement;
|
|
9
|
+
export declare const isInputLike: (target: Element | EventTarget | null) => target is HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | HTMLBRElement | HTMLDivElement;
|
|
10
|
+
export declare const isInteractive: (target: Element | EventTarget | null) => boolean;
|
|
11
|
+
export declare const isWritableElement: (target: Element | EventTarget | null) => target is HTMLInputElement | HTMLTextAreaElement | HTMLBRElement | HTMLDivElement;
|
|
12
|
+
export declare const getFontFamilyString: ({ fontFamily, }: {
|
|
13
|
+
fontFamily: FontFamilyValues;
|
|
14
|
+
}) => string;
|
|
15
|
+
/** returns fontSize+fontFamily string for assignment to DOM elements */
|
|
16
|
+
export declare const getFontString: ({ fontSize, fontFamily, }: {
|
|
17
|
+
fontSize: number;
|
|
18
|
+
fontFamily: FontFamilyValues;
|
|
19
|
+
}) => FontString;
|
|
20
|
+
/** executes callback in the frame that's after the current one */
|
|
21
|
+
export declare const nextAnimationFrame: (cb: () => any) => Promise<void>;
|
|
22
|
+
export declare const debounce: <T extends any[]>(fn: (...args: T) => void, timeout: number) => {
|
|
23
|
+
(...args: T): void;
|
|
24
|
+
flush(): void;
|
|
25
|
+
cancel(): void;
|
|
26
|
+
};
|
|
27
|
+
export declare const throttleRAF: <T extends any[]>(fn: (...args: T) => void, opts?: {
|
|
28
|
+
trailing?: boolean;
|
|
29
|
+
}) => {
|
|
30
|
+
(...args: T): void;
|
|
31
|
+
flush(): void;
|
|
32
|
+
cancel(): void;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Exponential ease-out method
|
|
36
|
+
*
|
|
37
|
+
* @param {number} k - The value to be tweened.
|
|
38
|
+
* @returns {number} The tweened value.
|
|
39
|
+
*/
|
|
40
|
+
export declare const easeOut: (k: number) => number;
|
|
41
|
+
/**
|
|
42
|
+
* Animates values from `fromValues` to `toValues` using the requestAnimationFrame API.
|
|
43
|
+
* Executes the `onStep` callback on each step with the interpolated values.
|
|
44
|
+
* Returns a function that can be called to cancel the animation.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* // Example usage:
|
|
48
|
+
* const fromValues = { x: 0, y: 0 };
|
|
49
|
+
* const toValues = { x: 100, y: 200 };
|
|
50
|
+
* const onStep = ({x, y}) => {
|
|
51
|
+
* setState(x, y)
|
|
52
|
+
* };
|
|
53
|
+
* const onCancel = () => {
|
|
54
|
+
* console.log("Animation canceled");
|
|
55
|
+
* };
|
|
56
|
+
*
|
|
57
|
+
* const cancelAnimation = easeToValuesRAF({
|
|
58
|
+
* fromValues,
|
|
59
|
+
* toValues,
|
|
60
|
+
* onStep,
|
|
61
|
+
* onCancel,
|
|
62
|
+
* });
|
|
63
|
+
*
|
|
64
|
+
* // To cancel the animation:
|
|
65
|
+
* cancelAnimation();
|
|
66
|
+
*/
|
|
67
|
+
export declare const easeToValuesRAF: <T extends Record<keyof T, number>, K extends keyof T>({ fromValues, toValues, onStep, duration, interpolateValue, onStart, onEnd, onCancel, }: {
|
|
68
|
+
fromValues: T;
|
|
69
|
+
toValues: T;
|
|
70
|
+
/**
|
|
71
|
+
* Interpolate a single value.
|
|
72
|
+
* Return undefined to be handled by the default interpolator.
|
|
73
|
+
*/
|
|
74
|
+
interpolateValue?: (fromValue: number, toValue: number,
|
|
75
|
+
/** no easing applied */
|
|
76
|
+
progress: number, key: K) => number | undefined;
|
|
77
|
+
onStep: (values: T) => void;
|
|
78
|
+
duration?: number;
|
|
79
|
+
onStart?: () => void;
|
|
80
|
+
onEnd?: () => void;
|
|
81
|
+
onCancel?: () => void;
|
|
82
|
+
}) => () => void;
|
|
83
|
+
export declare const chunk: <T extends any>(array: readonly T[], size: number) => T[][];
|
|
84
|
+
export declare const selectNode: (node: Element) => void;
|
|
85
|
+
export declare const removeSelection: () => void;
|
|
86
|
+
export declare const distance: (x: number, y: number) => number;
|
|
87
|
+
export declare const isSelectionLikeTool: (type: ToolType | "custom") => type is "selection" | "lasso";
|
|
88
|
+
export declare const updateActiveTool: (appState: Pick<AppState, "activeTool">, data: (({
|
|
89
|
+
type: ToolType;
|
|
90
|
+
} | {
|
|
91
|
+
type: "custom";
|
|
92
|
+
customType: string;
|
|
93
|
+
}) & {
|
|
94
|
+
locked?: boolean;
|
|
95
|
+
fromSelection?: boolean;
|
|
96
|
+
}) & {
|
|
97
|
+
lastActiveToolBeforeEraser?: ActiveTool | null;
|
|
98
|
+
}) => AppState["activeTool"];
|
|
99
|
+
export declare const isFullScreen: () => boolean;
|
|
100
|
+
export declare const allowFullScreen: () => Promise<void>;
|
|
101
|
+
export declare const exitFullScreen: () => Promise<void>;
|
|
102
|
+
export declare const viewportCoordsToSceneCoords: ({ clientX, clientY }: {
|
|
103
|
+
clientX: number;
|
|
104
|
+
clientY: number;
|
|
105
|
+
}, { zoom, offsetLeft, offsetTop, scrollX, scrollY, }: {
|
|
106
|
+
zoom: Zoom;
|
|
107
|
+
offsetLeft: number;
|
|
108
|
+
offsetTop: number;
|
|
109
|
+
scrollX: number;
|
|
110
|
+
scrollY: number;
|
|
111
|
+
}) => {
|
|
112
|
+
x: number;
|
|
113
|
+
y: number;
|
|
114
|
+
};
|
|
115
|
+
export declare const sceneCoordsToViewportCoords: ({ sceneX, sceneY }: {
|
|
116
|
+
sceneX: number;
|
|
117
|
+
sceneY: number;
|
|
118
|
+
}, { zoom, offsetLeft, offsetTop, scrollX, scrollY, }: {
|
|
119
|
+
zoom: Zoom;
|
|
120
|
+
offsetLeft: number;
|
|
121
|
+
offsetTop: number;
|
|
122
|
+
scrollX: number;
|
|
123
|
+
scrollY: number;
|
|
124
|
+
}) => {
|
|
125
|
+
x: number;
|
|
126
|
+
y: number;
|
|
127
|
+
};
|
|
128
|
+
export declare const getGlobalCSSVariable: (name: string) => string;
|
|
129
|
+
/**
|
|
130
|
+
* Checks whether first directional character is RTL. Meaning whether it starts
|
|
131
|
+
* with RTL characters, or indeterminate (numbers etc.) characters followed by
|
|
132
|
+
* RTL.
|
|
133
|
+
* See https://github.com/excalidraw/excalidraw/pull/1722#discussion_r436340171
|
|
134
|
+
*/
|
|
135
|
+
export declare const isRTL: (text: string) => boolean;
|
|
136
|
+
export declare const tupleToCoors: (xyTuple: readonly [number, number]) => {
|
|
137
|
+
x: number;
|
|
138
|
+
y: number;
|
|
139
|
+
};
|
|
140
|
+
/** use as a rejectionHandler to mute filesystem Abort errors */
|
|
141
|
+
export declare const muteFSAbortError: (error?: Error) => void;
|
|
142
|
+
export declare const findIndex: <T>(array: readonly T[], cb: (element: T, index: number, array: readonly T[]) => boolean, fromIndex?: number) => number;
|
|
143
|
+
export declare const findLastIndex: <T>(array: readonly T[], cb: (element: T, index: number, array: readonly T[]) => boolean, fromIndex?: number) => number;
|
|
144
|
+
/** returns the first non-null mapped value */
|
|
145
|
+
export declare const mapFind: <T, K>(collection: readonly T[], iteratee: (value: T, index: number) => K | undefined | null) => K | undefined;
|
|
146
|
+
export declare const isTransparent: (color: string) => boolean;
|
|
147
|
+
export type ResolvablePromise<T> = Promise<T> & {
|
|
148
|
+
resolve: [T] extends [undefined] ? (value?: MaybePromise<Awaited<T>>) => void : (value: MaybePromise<Awaited<T>>) => void;
|
|
149
|
+
reject: (error: Error) => void;
|
|
150
|
+
};
|
|
151
|
+
export declare const resolvablePromise: <T>() => ResolvablePromise<T>;
|
|
152
|
+
export declare const nFormatter: (num: number, digits: number) => string;
|
|
153
|
+
export declare const getVersion: () => string;
|
|
154
|
+
export declare const supportsEmoji: () => boolean;
|
|
155
|
+
export declare const getNearestScrollableContainer: (element: HTMLElement) => HTMLElement | Document;
|
|
156
|
+
export declare const focusNearestParent: (element: HTMLInputElement) => void;
|
|
157
|
+
export declare const preventUnload: (event: BeforeUnloadEvent) => void;
|
|
158
|
+
export declare const bytesToHexString: (bytes: Uint8Array) => string;
|
|
159
|
+
export declare const getUpdatedTimestamp: () => number;
|
|
160
|
+
/**
|
|
161
|
+
* Transforms array of objects containing `id` attribute,
|
|
162
|
+
* or array of ids (strings), into a Map, keyd by `id`.
|
|
163
|
+
*/
|
|
164
|
+
export declare const arrayToMap: <T extends {
|
|
165
|
+
id: string;
|
|
166
|
+
} | string>(items: readonly T[] | Map<string, T>) => Map<string, T>;
|
|
167
|
+
export declare const arrayToMapWithIndex: <T extends {
|
|
168
|
+
id: string;
|
|
169
|
+
}>(elements: readonly T[]) => Map<string, [element: T, index: number]>;
|
|
170
|
+
/**
|
|
171
|
+
* Transform array into an object, use only when array order is irrelevant.
|
|
172
|
+
*/
|
|
173
|
+
export declare const arrayToObject: <T>(array: readonly T[], groupBy?: (value: T) => string | number) => {
|
|
174
|
+
[key: string]: T;
|
|
175
|
+
};
|
|
176
|
+
/** Doubly linked node */
|
|
177
|
+
export type Node<T> = T & {
|
|
178
|
+
prev: Node<T> | null;
|
|
179
|
+
next: Node<T> | null;
|
|
180
|
+
};
|
|
181
|
+
/**
|
|
182
|
+
* Creates a circular doubly linked list by adding `prev` and `next` props to the existing array nodes.
|
|
183
|
+
*/
|
|
184
|
+
export declare const arrayToList: <T>(array: readonly T[]) => Node<T>[];
|
|
185
|
+
/**
|
|
186
|
+
* Converts a readonly array or map into an iterable.
|
|
187
|
+
* Useful for avoiding entry allocations when iterating object / map on each iteration.
|
|
188
|
+
*/
|
|
189
|
+
export declare const toIterable: <T>(values: readonly T[] | ReadonlyMap<string, T>) => Iterable<T>;
|
|
190
|
+
/**
|
|
191
|
+
* Converts a readonly array or map into an array.
|
|
192
|
+
*/
|
|
193
|
+
export declare const toArray: <T>(values: readonly T[] | ReadonlyMap<string, T>) => T[];
|
|
194
|
+
export declare const isTestEnv: () => boolean;
|
|
195
|
+
export declare const isDevEnv: () => boolean;
|
|
196
|
+
export declare const isProdEnv: () => boolean;
|
|
197
|
+
export declare const isServerEnv: () => boolean;
|
|
198
|
+
export declare const wrapEvent: <T extends Event>(name: EVENT, nativeEvent: T) => CustomEvent<{
|
|
199
|
+
nativeEvent: T;
|
|
200
|
+
}>;
|
|
201
|
+
export declare const updateObject: <T extends Record<string, any>>(obj: T, updates: Partial<T>) => T;
|
|
202
|
+
export declare const isPrimitive: (val: any) => boolean;
|
|
203
|
+
export declare const getFrame: () => "iframe" | "top";
|
|
204
|
+
export declare const isRunningInIframe: () => boolean;
|
|
205
|
+
export declare const isPromiseLike: (value: any) => value is Promise<ResolutionType<typeof value>>;
|
|
206
|
+
export declare const queryFocusableElements: (container: HTMLElement | null) => HTMLElement[];
|
|
207
|
+
/**
|
|
208
|
+
* Returns whether object/array is shallow equal.
|
|
209
|
+
* Considers empty object/arrays as equal (whether top-level or second-level).
|
|
210
|
+
*/
|
|
211
|
+
export declare const isShallowEqual: <T extends Record<string, any>, K extends readonly unknown[]>(objA: T, objB: T, comparators?: { [key in keyof T]?: (a: T[key], b: T[key]) => boolean; } | (keyof T extends K[number] ? K extends readonly (keyof T)[] ? K : {
|
|
212
|
+
_error: "keys are either missing or include keys not in compared obj";
|
|
213
|
+
} : {
|
|
214
|
+
_error: "keys are either missing or include keys not in compared obj";
|
|
215
|
+
}), debug?: boolean) => boolean;
|
|
216
|
+
export declare const composeEventHandlers: <E>(originalEventHandler?: (event: E) => void, ourEventHandler?: (event: E) => void, { checkForDefaultPrevented }?: {
|
|
217
|
+
checkForDefaultPrevented?: boolean | undefined;
|
|
218
|
+
}) => (event: E) => void;
|
|
219
|
+
/**
|
|
220
|
+
* supply `null` as message if non-never value is valid, you just need to
|
|
221
|
+
* typecheck against it
|
|
222
|
+
*/
|
|
223
|
+
export declare const assertNever: (value: never, message: string | null, softAssert?: boolean) => never;
|
|
224
|
+
export declare function invariant(condition: any, message: string): asserts condition;
|
|
225
|
+
/**
|
|
226
|
+
* Memoizes on values of `opts` object (strict equality).
|
|
227
|
+
*/
|
|
228
|
+
export declare const memoize: <T extends Record<string, any>, R extends any>(func: (opts: T) => R) => typeof func & {
|
|
229
|
+
clear: () => void;
|
|
230
|
+
};
|
|
231
|
+
/** Checks if value is inside given collection. Useful for type-safety. */
|
|
232
|
+
export declare const isMemberOf: <T extends string>(
|
|
233
|
+
/** Set/Map/Array/Object */
|
|
234
|
+
collection: Set<T> | readonly T[] | Record<T, any> | Map<T, any>,
|
|
235
|
+
/** value to look for */
|
|
236
|
+
value: string) => value is T;
|
|
237
|
+
export declare const cloneJSON: <T>(obj: T) => T;
|
|
238
|
+
export declare const updateStable: <T extends any[] | Record<string, any>>(prevValue: T, nextValue: T) => T;
|
|
239
|
+
export declare function addEventListener<K extends keyof WindowEventMap>(target: Window & typeof globalThis, type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): UnsubscribeCallback;
|
|
240
|
+
export declare function addEventListener(target: Window & typeof globalThis, type: string, listener: (this: Window, ev: Event) => any, options?: boolean | AddEventListenerOptions): UnsubscribeCallback;
|
|
241
|
+
export declare function addEventListener<K extends keyof DocumentEventMap>(target: Document, type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): UnsubscribeCallback;
|
|
242
|
+
export declare function addEventListener(target: Document, type: string, listener: (this: Document, ev: Event) => any, options?: boolean | AddEventListenerOptions): UnsubscribeCallback;
|
|
243
|
+
export declare function addEventListener<K extends keyof FontFaceSetEventMap>(target: FontFaceSet, type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): UnsubscribeCallback;
|
|
244
|
+
export declare function addEventListener<K extends keyof HTMLElementEventMap>(target: Document | (Window & typeof globalThis) | HTMLElement | undefined | null | false, type: K, listener: (this: HTMLDivElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): UnsubscribeCallback;
|
|
245
|
+
export declare function getSvgPathFromStroke(points: number[][], closed?: boolean): string;
|
|
246
|
+
export declare const normalizeEOL: (str: string) => string;
|
|
247
|
+
type HasBrand<T> = {
|
|
248
|
+
[K in keyof T]: K extends `~brand${infer _}` ? true : never;
|
|
249
|
+
}[keyof T];
|
|
250
|
+
type RemoveAllBrands<T> = HasBrand<T> extends true ? {
|
|
251
|
+
[K in keyof T as K extends `~brand~${infer _}` ? never : K]: T[K];
|
|
252
|
+
} : never;
|
|
253
|
+
type Unbrand<T> = T extends Map<infer E, infer F> ? Map<E, F> : T extends Set<infer E> ? Set<E> : T extends Array<infer E> ? Array<E> : RemoveAllBrands<T>;
|
|
254
|
+
/**
|
|
255
|
+
* Makes type into a branded type, ensuring that value is assignable to
|
|
256
|
+
* the base ubranded type. Optionally you can explicitly supply current value
|
|
257
|
+
* type to combine both (useful for composite branded types. Make sure you
|
|
258
|
+
* compose branded types which are not composite themselves.)
|
|
259
|
+
*/
|
|
260
|
+
export declare const toBrandedType: <BrandedType, CurrentType = BrandedType>(value: Unbrand<BrandedType>) => CurrentType & BrandedType;
|
|
261
|
+
export declare const promiseTry: <TValue, TArgs extends unknown[]>(fn: (...args: TArgs) => PromiseLike<TValue> | TValue, ...args: TArgs) => Promise<TValue>;
|
|
262
|
+
export declare const isAnyTrue: (...args: boolean[]) => boolean;
|
|
263
|
+
export declare const safelyParseJSON: (json: string) => Record<string, any> | null;
|
|
264
|
+
/**
|
|
265
|
+
* use when you need to render unsafe string as HTML attribute, but MAKE SURE
|
|
266
|
+
* the attribute is double-quoted when constructing the HTML string
|
|
267
|
+
*/
|
|
268
|
+
export declare const escapeDoubleQuotes: (str: string) => string;
|
|
269
|
+
export declare const castArray: <T>(value: T | T[]) => T[];
|
|
270
|
+
/** hack for Array.isArray type guard not working with readonly value[] */
|
|
271
|
+
export declare const isReadonlyArray: (value?: any) => value is readonly any[];
|
|
272
|
+
export declare const sizeOf: (value: readonly unknown[] | Readonly<Map<string, unknown>> | Readonly<Record<string, unknown>> | ReadonlySet<unknown>) => number;
|
|
273
|
+
export declare const reduceToCommonValue: <T, R = T>(collection: readonly T[] | ReadonlySet<T>, getValue?: (item: T) => R) => R | null;
|
|
274
|
+
type FEATURE_FLAGS = {
|
|
275
|
+
COMPLEX_BINDINGS: boolean;
|
|
276
|
+
};
|
|
277
|
+
export declare const getFeatureFlag: <F extends keyof FEATURE_FLAGS>(flag: F) => FEATURE_FLAGS[F];
|
|
278
|
+
export declare const setFeatureFlag: <F extends keyof FEATURE_FLAGS>(flag: F, value: FEATURE_FLAGS[F]) => void;
|
|
279
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
|
|
2
|
+
import type { Curve } from "@excalidraw/math";
|
|
3
|
+
import type { LineSegment } from "@excalidraw/utils";
|
|
4
|
+
import { type Bounds } from "./bounds";
|
|
5
|
+
declare global {
|
|
6
|
+
interface Window {
|
|
7
|
+
visualDebug?: {
|
|
8
|
+
data: DebugElement[][];
|
|
9
|
+
currentFrame?: number;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export type DebugElement = {
|
|
14
|
+
color: string;
|
|
15
|
+
data: LineSegment<GlobalPoint> | Curve<GlobalPoint>;
|
|
16
|
+
permanent: boolean;
|
|
17
|
+
};
|
|
18
|
+
export declare const debugDrawCubicBezier: (c: Curve<GlobalPoint>, opts?: {
|
|
19
|
+
color?: string;
|
|
20
|
+
permanent?: boolean;
|
|
21
|
+
}) => void;
|
|
22
|
+
export declare const debugDrawLine: (segment: LineSegment<GlobalPoint> | LineSegment<GlobalPoint>[], opts?: {
|
|
23
|
+
color?: string;
|
|
24
|
+
permanent?: boolean;
|
|
25
|
+
}) => void;
|
|
26
|
+
export declare const debugDrawPoint: (p: GlobalPoint, opts?: {
|
|
27
|
+
color?: string;
|
|
28
|
+
permanent?: boolean;
|
|
29
|
+
fuzzy?: boolean;
|
|
30
|
+
}) => void;
|
|
31
|
+
export declare const debugDrawBounds: (box: Bounds | Bounds[], opts?: {
|
|
32
|
+
color?: string;
|
|
33
|
+
permanent?: boolean;
|
|
34
|
+
}) => void;
|
|
35
|
+
export declare const debugDrawPoints: ({ x, y, points, }: {
|
|
36
|
+
x: number;
|
|
37
|
+
y: number;
|
|
38
|
+
points: readonly LocalPoint[];
|
|
39
|
+
}, options?: any) => void;
|
|
40
|
+
export declare const debugCloseFrame: () => void;
|
|
41
|
+
export declare const debugClear: () => void;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { type ElementUpdate } from "@excalidraw/element";
|
|
2
|
+
import type { ExcalidrawElement, NonDeletedExcalidrawElement, NonDeleted, ExcalidrawFrameLikeElement, ElementsMapOrArray, OrderedExcalidrawElement, Ordered } from "@excalidraw/element/types";
|
|
3
|
+
import type { Mutable } from "@excalidraw/common/utility-types";
|
|
4
|
+
import type { AppState } from "../../excalidraw/types";
|
|
5
|
+
type SceneStateCallback = () => void;
|
|
6
|
+
type SceneStateCallbackRemover = () => void;
|
|
7
|
+
export type ExcalidrawElementsIncludingDeleted = readonly ExcalidrawElement[];
|
|
8
|
+
export declare class Scene {
|
|
9
|
+
private callbacks;
|
|
10
|
+
private nonDeletedElements;
|
|
11
|
+
private nonDeletedElementsMap;
|
|
12
|
+
private elements;
|
|
13
|
+
private nonDeletedFramesLikes;
|
|
14
|
+
private frames;
|
|
15
|
+
private elementsMap;
|
|
16
|
+
private selectedElementsCache;
|
|
17
|
+
/**
|
|
18
|
+
* Random integer regenerated each scene update.
|
|
19
|
+
*
|
|
20
|
+
* Does not relate to elements versions, it's only a renderer
|
|
21
|
+
* cache-invalidation nonce at the moment.
|
|
22
|
+
*/
|
|
23
|
+
private sceneNonce;
|
|
24
|
+
getSceneNonce(): number | undefined;
|
|
25
|
+
getNonDeletedElementsMap(): Map<string, Ordered<NonDeletedExcalidrawElement>> & import("@excalidraw/common/utility-types").MakeBrand<"NonDeletedSceneElementsMap">;
|
|
26
|
+
getElementsIncludingDeleted(): readonly OrderedExcalidrawElement[];
|
|
27
|
+
getElementsMapIncludingDeleted(): Map<string, Ordered<ExcalidrawElement>> & import("@excalidraw/common/utility-types").MakeBrand<"SceneElementsMap">;
|
|
28
|
+
getNonDeletedElements(): readonly Ordered<NonDeletedExcalidrawElement>[];
|
|
29
|
+
getFramesIncludingDeleted(): readonly ExcalidrawFrameLikeElement[];
|
|
30
|
+
constructor(elements?: ElementsMapOrArray | null, options?: {
|
|
31
|
+
skipValidation?: true;
|
|
32
|
+
});
|
|
33
|
+
getSelectedElements(opts: {
|
|
34
|
+
selectedElementIds: AppState["selectedElementIds"];
|
|
35
|
+
/**
|
|
36
|
+
* for specific cases where you need to use elements not from current
|
|
37
|
+
* scene state. This in effect will likely result in cache-miss, and
|
|
38
|
+
* the cache won't be updated in this case.
|
|
39
|
+
*/
|
|
40
|
+
elements?: ElementsMapOrArray;
|
|
41
|
+
includeBoundTextElement?: boolean;
|
|
42
|
+
includeElementsInFrames?: boolean;
|
|
43
|
+
}): NonDeleted<ExcalidrawElement>[];
|
|
44
|
+
getNonDeletedFramesLikes(): readonly NonDeleted<ExcalidrawFrameLikeElement>[];
|
|
45
|
+
getElement<T extends ExcalidrawElement>(id: T["id"]): T | null;
|
|
46
|
+
getNonDeletedElement(id: ExcalidrawElement["id"]): NonDeleted<ExcalidrawElement> | null;
|
|
47
|
+
/**
|
|
48
|
+
* A utility method to help with updating all scene elements, with the added
|
|
49
|
+
* performance optimization of not renewing the array if no change is made.
|
|
50
|
+
*
|
|
51
|
+
* Maps all current excalidraw elements, invoking the callback for each
|
|
52
|
+
* element. The callback should either return a new mapped element, or the
|
|
53
|
+
* original element if no changes are made. If no changes are made to any
|
|
54
|
+
* element, this results in a no-op. Otherwise, the newly mapped elements
|
|
55
|
+
* are set as the next scene's elements.
|
|
56
|
+
*
|
|
57
|
+
* @returns whether a change was made
|
|
58
|
+
*/
|
|
59
|
+
mapElements(iteratee: (element: ExcalidrawElement) => ExcalidrawElement): boolean;
|
|
60
|
+
replaceAllElements(nextElements: ElementsMapOrArray, options?: {
|
|
61
|
+
skipValidation?: true;
|
|
62
|
+
}): void;
|
|
63
|
+
triggerUpdate(): void;
|
|
64
|
+
onUpdate(cb: SceneStateCallback): SceneStateCallbackRemover;
|
|
65
|
+
destroy(): void;
|
|
66
|
+
insertElementAtIndex(element: ExcalidrawElement, index: number): void;
|
|
67
|
+
insertElementsAtIndex(elements: ExcalidrawElement[], index: number): void;
|
|
68
|
+
insertElement: (element: ExcalidrawElement) => void;
|
|
69
|
+
insertElements: (elements: ExcalidrawElement[]) => void;
|
|
70
|
+
getElementIndex(elementId: string): number;
|
|
71
|
+
getContainerElement: (element: (ExcalidrawElement & {
|
|
72
|
+
containerId: ExcalidrawElement["id"] | null;
|
|
73
|
+
}) | null) => import("@excalidraw/element/types").ExcalidrawTextElement | import("@excalidraw/element/types").ExcalidrawRectangleElement | import("@excalidraw/element/types").ExcalidrawDiamondElement | import("@excalidraw/element/types").ExcalidrawFrameElement | import("@excalidraw/element/types").ExcalidrawMagicFrameElement | import("@excalidraw/element/types").ExcalidrawEmbeddableElement | import("@excalidraw/element/types").ExcalidrawImageElement | import("@excalidraw/element/types").ExcalidrawIframeElement | import("@excalidraw/element/types").ExcalidrawSelectionElement | import("@excalidraw/element/types").ExcalidrawEllipseElement | import("@excalidraw/element/types").ExcalidrawLinearElement | import("@excalidraw/element/types").ExcalidrawFreeDrawElement | null;
|
|
74
|
+
getElementsFromId: (id: string) => ExcalidrawElement[];
|
|
75
|
+
mutateElement<TElement extends Mutable<ExcalidrawElement>>(element: TElement, updates: ElementUpdate<TElement>, options?: {
|
|
76
|
+
informMutation: boolean;
|
|
77
|
+
isDragging: boolean;
|
|
78
|
+
}): TElement;
|
|
79
|
+
}
|
|
80
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AppState } from "@excalidraw/excalidraw/types";
|
|
2
|
+
import type { Scene } from "./Scene";
|
|
3
|
+
import type { ExcalidrawElement } from "./types";
|
|
4
|
+
export interface Alignment {
|
|
5
|
+
position: "start" | "center" | "end";
|
|
6
|
+
axis: "x" | "y";
|
|
7
|
+
}
|
|
8
|
+
export declare const alignElements: (selectedElements: ExcalidrawElement[], alignment: Alignment, scene: Scene, appState: Readonly<AppState>) => ExcalidrawElement[];
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { type GlobalPoint } from "@excalidraw/math";
|
|
2
|
+
import type { LineSegment, LocalPoint } from "@excalidraw/math";
|
|
3
|
+
import type { AppState } from "@excalidraw/excalidraw/types";
|
|
4
|
+
import type { Bounds } from "@excalidraw/common";
|
|
5
|
+
import { type Heading } from "./heading";
|
|
6
|
+
import type { Scene } from "./Scene";
|
|
7
|
+
import type { ElementUpdate } from "./mutateElement";
|
|
8
|
+
import type { BindMode, ElementsMap, ExcalidrawArrowElement, ExcalidrawBindableElement, ExcalidrawElbowArrowElement, ExcalidrawElement, FixedPoint, FixedPointBinding, NonDeleted, NonDeletedExcalidrawElement, NonDeletedSceneElementsMap, Ordered, PointsPositionUpdates } from "./types";
|
|
9
|
+
export type BindingStrategy = {
|
|
10
|
+
mode: BindMode;
|
|
11
|
+
element: NonDeleted<ExcalidrawBindableElement>;
|
|
12
|
+
focusPoint: GlobalPoint;
|
|
13
|
+
} | {
|
|
14
|
+
mode: null;
|
|
15
|
+
element?: undefined;
|
|
16
|
+
focusPoint?: undefined;
|
|
17
|
+
} | {
|
|
18
|
+
mode: undefined;
|
|
19
|
+
element?: undefined;
|
|
20
|
+
focusPoint?: undefined;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* gaps exclude element strokeWidth
|
|
24
|
+
*
|
|
25
|
+
* IMPORTANT: currently must be > 0 (this also applies to the computed gap)
|
|
26
|
+
*/
|
|
27
|
+
export declare const BASE_BINDING_GAP = 10;
|
|
28
|
+
export declare const BASE_BINDING_GAP_ELBOW = 5;
|
|
29
|
+
export declare const getBindingGap: (bindTarget: ExcalidrawBindableElement, opts: Pick<ExcalidrawArrowElement, "elbowed">) => number;
|
|
30
|
+
export declare const maxBindingDistance_simple: (zoom?: AppState["zoom"]) => number;
|
|
31
|
+
export declare const shouldEnableBindingForPointerEvent: (event: React.PointerEvent<HTMLElement>) => boolean;
|
|
32
|
+
export declare const isBindingEnabled: (appState: AppState) => boolean;
|
|
33
|
+
export declare const bindOrUnbindBindingElement: (arrow: NonDeleted<ExcalidrawArrowElement>, draggingPoints: PointsPositionUpdates, scenePointerX: number, scenePointerY: number, scene: Scene, appState: AppState, opts?: {
|
|
34
|
+
newArrow?: boolean;
|
|
35
|
+
altKey?: boolean;
|
|
36
|
+
angleLocked?: boolean;
|
|
37
|
+
initialBinding?: boolean;
|
|
38
|
+
}) => {
|
|
39
|
+
start: BindingStrategy;
|
|
40
|
+
end: BindingStrategy;
|
|
41
|
+
};
|
|
42
|
+
export declare const getBindingStrategyForDraggingBindingElementEndpoints: (arrow: NonDeleted<ExcalidrawArrowElement>, draggingPoints: PointsPositionUpdates, screenPointerX: number, screenPointerY: number, elementsMap: NonDeletedSceneElementsMap, elements: readonly Ordered<NonDeletedExcalidrawElement>[], appState: AppState, opts?: {
|
|
43
|
+
newArrow?: boolean;
|
|
44
|
+
angleLocked?: boolean;
|
|
45
|
+
altKey?: boolean;
|
|
46
|
+
finalize?: boolean;
|
|
47
|
+
initialBinding?: boolean;
|
|
48
|
+
zoom?: AppState["zoom"];
|
|
49
|
+
}) => {
|
|
50
|
+
start: BindingStrategy;
|
|
51
|
+
end: BindingStrategy;
|
|
52
|
+
};
|
|
53
|
+
export declare const bindOrUnbindBindingElements: (selectedArrows: NonDeleted<ExcalidrawArrowElement>[], scene: Scene, appState: AppState) => void;
|
|
54
|
+
export declare const bindBindingElement: (arrow: NonDeleted<ExcalidrawArrowElement>, hoveredElement: ExcalidrawBindableElement, mode: BindMode, startOrEnd: "start" | "end", scene: Scene, focusPoint?: GlobalPoint) => void;
|
|
55
|
+
export declare const unbindBindingElement: (arrow: NonDeleted<ExcalidrawArrowElement>, startOrEnd: "start" | "end", scene: Scene) => ExcalidrawBindableElement["id"] | null;
|
|
56
|
+
export declare const updateBoundElements: (changedElement: NonDeletedExcalidrawElement, scene: Scene, options?: {
|
|
57
|
+
simultaneouslyUpdated?: readonly ExcalidrawElement[];
|
|
58
|
+
changedElements?: Map<string, ExcalidrawElement>;
|
|
59
|
+
}) => void;
|
|
60
|
+
export declare const updateBindings: (latestElement: ExcalidrawElement, scene: Scene, appState: AppState, options?: {
|
|
61
|
+
simultaneouslyUpdated?: readonly ExcalidrawElement[];
|
|
62
|
+
newSize?: {
|
|
63
|
+
width: number;
|
|
64
|
+
height: number;
|
|
65
|
+
};
|
|
66
|
+
}) => void;
|
|
67
|
+
export declare const getHeadingForElbowArrowSnap: (p: Readonly<GlobalPoint>, otherPoint: Readonly<GlobalPoint>, bindableElement: ExcalidrawBindableElement | undefined | null, aabb: Bounds | undefined | null, origPoint: GlobalPoint, elementsMap: ElementsMap, zoom?: AppState["zoom"]) => Heading;
|
|
68
|
+
export declare const bindPointToSnapToElementOutline: (arrowElement: ExcalidrawArrowElement, bindableElement: ExcalidrawBindableElement, startOrEnd: "start" | "end", elementsMap: ElementsMap, customIntersector?: LineSegment<GlobalPoint>) => GlobalPoint;
|
|
69
|
+
export declare const avoidRectangularCorner: (arrowElement: ExcalidrawArrowElement, bindTarget: ExcalidrawBindableElement, elementsMap: ElementsMap, p: GlobalPoint) => GlobalPoint;
|
|
70
|
+
export declare const updateBoundPoint: (arrow: NonDeleted<ExcalidrawArrowElement>, startOrEnd: "startBinding" | "endBinding", binding: FixedPointBinding | null | undefined, bindableElement: ExcalidrawBindableElement, elementsMap: ElementsMap, customIntersector?: LineSegment<GlobalPoint>) => LocalPoint | null;
|
|
71
|
+
export declare const calculateFixedPointForElbowArrowBinding: (linearElement: NonDeleted<ExcalidrawElbowArrowElement>, hoveredElement: ExcalidrawBindableElement, startOrEnd: "start" | "end", elementsMap: ElementsMap) => {
|
|
72
|
+
fixedPoint: FixedPoint;
|
|
73
|
+
};
|
|
74
|
+
export declare const calculateFixedPointForNonElbowArrowBinding: (linearElement: NonDeleted<ExcalidrawArrowElement>, hoveredElement: ExcalidrawBindableElement, startOrEnd: "start" | "end", elementsMap: ElementsMap, focusPoint?: GlobalPoint) => {
|
|
75
|
+
fixedPoint: FixedPoint;
|
|
76
|
+
};
|
|
77
|
+
export declare const fixDuplicatedBindingsAfterDuplication: (duplicatedElements: ExcalidrawElement[], origIdToDuplicateId: Map<ExcalidrawElement["id"], ExcalidrawElement["id"]>, duplicateElementsMap: NonDeletedSceneElementsMap) => void;
|
|
78
|
+
export declare const fixBindingsAfterDeletion: (sceneElements: readonly ExcalidrawElement[], deletedElements: readonly ExcalidrawElement[]) => void;
|
|
79
|
+
export declare const bindingProperties: Set<BindableProp | BindingProp>;
|
|
80
|
+
export type BindableProp = "boundElements";
|
|
81
|
+
export type BindingProp = "frameId" | "containerId" | "startBinding" | "endBinding";
|
|
82
|
+
/**
|
|
83
|
+
* Bound element containing bindings to `frameId`, `containerId`, `startBinding` or `endBinding`.
|
|
84
|
+
*/
|
|
85
|
+
export declare class BoundElement {
|
|
86
|
+
/**
|
|
87
|
+
* Unbind the affected non deleted bindable elements (removing element from `boundElements`).
|
|
88
|
+
* - iterates non deleted bindable elements (`containerId` | `startBinding.elementId` | `endBinding.elementId`) of the current element
|
|
89
|
+
* - prepares updates to unbind each bindable element's `boundElements` from the current element
|
|
90
|
+
*/
|
|
91
|
+
static unbindAffected(elements: ElementsMap, boundElement: ExcalidrawElement | undefined, updateElementWith: (affected: ExcalidrawElement, updates: ElementUpdate<ExcalidrawElement>) => void): void;
|
|
92
|
+
/**
|
|
93
|
+
* Rebind the next affected non deleted bindable elements (adding element to `boundElements`).
|
|
94
|
+
* - iterates non deleted bindable elements (`containerId` | `startBinding.elementId` | `endBinding.elementId`) of the current element
|
|
95
|
+
* - prepares updates to rebind each bindable element's `boundElements` to the current element
|
|
96
|
+
*
|
|
97
|
+
* NOTE: rebind expects that affected elements were previously unbound with `BoundElement.unbindAffected`
|
|
98
|
+
*/
|
|
99
|
+
static rebindAffected: (elements: ElementsMap, boundElement: ExcalidrawElement | undefined, updateElementWith: (affected: ExcalidrawElement, updates: ElementUpdate<ExcalidrawElement>) => void) => void;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Bindable element containing bindings to `boundElements`.
|
|
103
|
+
*/
|
|
104
|
+
export declare class BindableElement {
|
|
105
|
+
/**
|
|
106
|
+
* Unbind the affected non deleted bound elements (resetting `containerId`, `startBinding`, `endBinding` to `null`).
|
|
107
|
+
* - iterates through non deleted `boundElements` of the current element
|
|
108
|
+
* - prepares updates to unbind each bound element from the current element
|
|
109
|
+
*/
|
|
110
|
+
static unbindAffected(elements: ElementsMap, bindableElement: ExcalidrawElement | undefined, updateElementWith: (affected: ExcalidrawElement, updates: ElementUpdate<ExcalidrawElement>) => void): void;
|
|
111
|
+
/**
|
|
112
|
+
* Rebind the affected non deleted bound elements (for now setting only `containerId`, as we cannot rebind arrows atm).
|
|
113
|
+
* - iterates through non deleted `boundElements` of the current element
|
|
114
|
+
* - prepares updates to rebind each bound element to the current element or unbind it from `boundElements` in case of conflicts
|
|
115
|
+
*
|
|
116
|
+
* NOTE: rebind expects that affected elements were previously unbound with `BindaleElement.unbindAffected`
|
|
117
|
+
*/
|
|
118
|
+
static rebindAffected: (elements: ElementsMap, bindableElement: ExcalidrawElement | undefined, updateElementWith: (affected: ExcalidrawElement, updates: ElementUpdate<ExcalidrawElement>) => void) => void;
|
|
119
|
+
}
|
|
120
|
+
export declare const getGlobalFixedPointForBindableElement: (fixedPointRatio: FixedPoint, element: ExcalidrawBindableElement, elementsMap: ElementsMap) => GlobalPoint;
|
|
121
|
+
export declare const getGlobalFixedPoints: (arrow: ExcalidrawArrowElement, elementsMap: ElementsMap) => [GlobalPoint, GlobalPoint];
|
|
122
|
+
export declare const getArrowLocalFixedPoints: (arrow: ExcalidrawElbowArrowElement, elementsMap: ElementsMap) => LocalPoint[];
|
|
123
|
+
export declare const normalizeFixedPoint: <T extends FixedPoint | null>(fixedPoint: T) => T extends null ? null : FixedPoint;
|
|
124
|
+
export declare const getBindingSideMidPoint: (binding: FixedPointBinding, elementsMap: ElementsMap) => GlobalPoint | LocalPoint | null;
|