@bigbluebutton/tldraw 2.0.0-alpha.33 → 2.0.0-alpha.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-cjs/index.js +4 -4
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/lib/Tldraw.js +1 -2
- package/dist-cjs/lib/Tldraw.js.map +1 -1
- package/dist-cjs/lib/canvas/TldrawHandles.js +1 -2
- package/dist-cjs/lib/canvas/TldrawHandles.js.map +1 -1
- package/dist-cjs/lib/canvas/TldrawHoveredShapeIndicator.js +1 -2
- package/dist-cjs/lib/canvas/TldrawHoveredShapeIndicator.js.map +1 -1
- package/dist-cjs/lib/canvas/TldrawScribble.js +1 -2
- package/dist-cjs/lib/canvas/TldrawScribble.js.map +1 -1
- package/dist-cjs/lib/canvas/TldrawSelectionBackground.js +1 -2
- package/dist-cjs/lib/canvas/TldrawSelectionBackground.js.map +1 -1
- package/dist-cjs/lib/canvas/TldrawSelectionForeground.js +1 -2
- package/dist-cjs/lib/canvas/TldrawSelectionForeground.js.map +1 -1
- package/dist-cjs/lib/defaultExternalContentHandlers.js +3 -6
- package/dist-cjs/lib/defaultExternalContentHandlers.js.map +1 -1
- package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js +7 -14
- package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js.map +1 -1
- package/dist-cjs/lib/shapes/arrow/toolStates/Idle.js +1 -2
- package/dist-cjs/lib/shapes/arrow/toolStates/Idle.js.map +1 -1
- package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js +6 -12
- package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js.map +1 -1
- package/dist-cjs/lib/shapes/draw/toolStates/Drawing.js +12 -24
- package/dist-cjs/lib/shapes/draw/toolStates/Drawing.js.map +1 -1
- package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js +1 -2
- package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js.map +1 -1
- package/dist-cjs/lib/shapes/frame/FrameShapeTool.js +4 -8
- package/dist-cjs/lib/shapes/frame/FrameShapeTool.js.map +1 -1
- package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js +3 -6
- package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js.map +1 -1
- package/dist-cjs/lib/shapes/frame/components/FrameHeading.js +1 -2
- package/dist-cjs/lib/shapes/frame/components/FrameHeading.js.map +1 -1
- package/dist-cjs/lib/shapes/frame/components/FrameLabelInput.js +4 -8
- package/dist-cjs/lib/shapes/frame/components/FrameLabelInput.js.map +1 -1
- package/dist-cjs/lib/shapes/geo/toolStates/Idle.js +1 -2
- package/dist-cjs/lib/shapes/geo/toolStates/Idle.js.map +1 -1
- package/dist-cjs/lib/shapes/geo/toolStates/Pointing.js +2 -4
- package/dist-cjs/lib/shapes/geo/toolStates/Pointing.js.map +1 -1
- package/dist-cjs/lib/shapes/image/ImageShapeUtil.js +5 -10
- package/dist-cjs/lib/shapes/image/ImageShapeUtil.js.map +1 -1
- package/dist-cjs/lib/shapes/line/components/svg.js +1 -2
- package/dist-cjs/lib/shapes/line/components/svg.js.map +1 -1
- package/dist-cjs/lib/shapes/line/toolStates/Pointing.js +5 -10
- package/dist-cjs/lib/shapes/line/toolStates/Pointing.js.map +1 -1
- package/dist-cjs/lib/shapes/poll/components/CustomizedAxisTick.js +1 -2
- package/dist-cjs/lib/shapes/poll/components/CustomizedAxisTick.js.map +1 -1
- package/dist-cjs/lib/shapes/poll/components/poll-content.js +1 -2
- package/dist-cjs/lib/shapes/poll/components/poll-content.js.map +1 -1
- package/dist-cjs/lib/shapes/shared/TextHelpers.js +2 -4
- package/dist-cjs/lib/shapes/shared/TextHelpers.js.map +1 -1
- package/dist-cjs/lib/shapes/shared/createTextSvgElementFromSpans.js +1 -2
- package/dist-cjs/lib/shapes/shared/createTextSvgElementFromSpans.js.map +1 -1
- package/dist-cjs/lib/shapes/shared/defaultStyleDefs.js +8 -16
- package/dist-cjs/lib/shapes/shared/defaultStyleDefs.js.map +1 -1
- package/dist-cjs/lib/shapes/shared/freehand/getStrokePoints.js +6 -12
- package/dist-cjs/lib/shapes/shared/freehand/getStrokePoints.js.map +1 -1
- package/dist-cjs/lib/shapes/shared/freehand/setStrokePointRadii.js +1 -2
- package/dist-cjs/lib/shapes/shared/freehand/setStrokePointRadii.js.map +1 -1
- package/dist-cjs/lib/shapes/shared/freehand/svgInk.js +2 -4
- package/dist-cjs/lib/shapes/shared/freehand/svgInk.js.map +1 -1
- package/dist-cjs/lib/shapes/shared/useEditableText.js +5 -10
- package/dist-cjs/lib/shapes/shared/useEditableText.js.map +1 -1
- package/dist-cjs/lib/shapes/text/TextShapeUtil.js +6 -12
- package/dist-cjs/lib/shapes/text/TextShapeUtil.js.map +1 -1
- package/dist-cjs/lib/shapes/text/toolStates/Idle.js +1 -2
- package/dist-cjs/lib/shapes/text/toolStates/Idle.js.map +1 -1
- package/dist-cjs/lib/shapes/text/toolStates/Pointing.js +1 -2
- package/dist-cjs/lib/shapes/text/toolStates/Pointing.js.map +1 -1
- package/dist-cjs/lib/shapes/video/VideoShapeUtil.js +2 -4
- package/dist-cjs/lib/shapes/video/VideoShapeUtil.js.map +1 -1
- package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js +2 -4
- package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/DragAndDropManager.js +1 -2
- package/dist-cjs/lib/tools/SelectTool/DragAndDropManager.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/Brushing.js +25 -30
- package/dist-cjs/lib/tools/SelectTool/childStates/Brushing.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/Idle.js +12 -24
- package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/Idle.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/TranslatingCrop.js +1 -2
- package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/TranslatingCrop.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/Cropping.js +8 -16
- package/dist-cjs/lib/tools/SelectTool/childStates/Cropping.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js +3 -6
- package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/EditingShape.js +2 -4
- package/dist-cjs/lib/tools/SelectTool/childStates/EditingShape.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/Idle.js +21 -42
- package/dist-cjs/lib/tools/SelectTool/childStates/Idle.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/PointingCropHandle.js +1 -2
- package/dist-cjs/lib/tools/SelectTool/childStates/PointingCropHandle.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/PointingSelection.js +1 -2
- package/dist-cjs/lib/tools/SelectTool/childStates/PointingSelection.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/PointingShape.js +1 -2
- package/dist-cjs/lib/tools/SelectTool/childStates/PointingShape.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/Resizing.js +5 -10
- package/dist-cjs/lib/tools/SelectTool/childStates/Resizing.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/Rotating.js +2 -4
- package/dist-cjs/lib/tools/SelectTool/childStates/Rotating.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/ScribbleBrushing.js +1 -2
- package/dist-cjs/lib/tools/SelectTool/childStates/ScribbleBrushing.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js +4 -8
- package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js.map +1 -1
- package/dist-cjs/lib/tools/SelectTool/children/DraggingHandle.js +3 -6
- package/dist-cjs/lib/tools/SelectTool/children/DraggingHandle.js.map +1 -1
- package/dist-cjs/lib/tools/selection-logic/updateHoveredId.js +1 -2
- package/dist-cjs/lib/tools/selection-logic/updateHoveredId.js.map +1 -1
- package/dist-cjs/lib/ui/assetUrls.js +1 -2
- package/dist-cjs/lib/ui/assetUrls.js.map +1 -1
- package/dist-cjs/lib/ui/components/ActionsMenu.js +2 -4
- package/dist-cjs/lib/ui/components/ActionsMenu.js.map +1 -1
- package/dist-cjs/lib/ui/components/BackToContent.js +1 -2
- package/dist-cjs/lib/ui/components/BackToContent.js.map +1 -1
- package/dist-cjs/lib/ui/components/ContextMenu.js +3 -6
- package/dist-cjs/lib/ui/components/ContextMenu.js.map +1 -1
- package/dist-cjs/lib/ui/components/DebugPanel.js +2 -4
- package/dist-cjs/lib/ui/components/DebugPanel.js.map +1 -1
- package/dist-cjs/lib/ui/components/EditLinkDialog.js +2 -4
- package/dist-cjs/lib/ui/components/EditLinkDialog.js.map +1 -1
- package/dist-cjs/lib/ui/components/EmbedDialog.js +1 -2
- package/dist-cjs/lib/ui/components/EmbedDialog.js.map +1 -1
- package/dist-cjs/lib/ui/components/FollowingIndicator.js +2 -4
- package/dist-cjs/lib/ui/components/FollowingIndicator.js.map +1 -1
- package/dist-cjs/lib/ui/components/HelpMenu.js +2 -4
- package/dist-cjs/lib/ui/components/HelpMenu.js.map +1 -1
- package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog.js +2 -4
- package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog.js.map +1 -1
- package/dist-cjs/lib/ui/components/Menu.js +5 -10
- package/dist-cjs/lib/ui/components/Menu.js.map +1 -1
- package/dist-cjs/lib/ui/components/NavigationZone/Minimap.js +3 -6
- package/dist-cjs/lib/ui/components/NavigationZone/Minimap.js.map +1 -1
- package/dist-cjs/lib/ui/components/PageMenu/PageMenu.js +5 -10
- package/dist-cjs/lib/ui/components/PageMenu/PageMenu.js.map +1 -1
- package/dist-cjs/lib/ui/components/PenModeToggle.js +1 -2
- package/dist-cjs/lib/ui/components/PenModeToggle.js.map +1 -1
- package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js +1 -2
- package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js.map +1 -1
- package/dist-cjs/lib/ui/components/StylePanel/StylePanel.js +1 -2
- package/dist-cjs/lib/ui/components/StylePanel/StylePanel.js.map +1 -1
- package/dist-cjs/lib/ui/components/Toasts.js +1 -2
- package/dist-cjs/lib/ui/components/Toasts.js.map +1 -1
- package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js +1 -2
- package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js.map +1 -1
- package/dist-cjs/lib/ui/components/TrashButton.js +1 -2
- package/dist-cjs/lib/ui/components/TrashButton.js.map +1 -1
- package/dist-cjs/lib/ui/components/primitives/ButtonPicker.js +2 -4
- package/dist-cjs/lib/ui/components/primitives/ButtonPicker.js.map +1 -1
- package/dist-cjs/lib/ui/components/primitives/Input.js +1 -2
- package/dist-cjs/lib/ui/components/primitives/Input.js.map +1 -1
- package/dist-cjs/lib/ui/components/primitives/Slider.js +1 -2
- package/dist-cjs/lib/ui/components/primitives/Slider.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/clipboard/pasteExcalidrawContent.js +2 -4
- package/dist-cjs/lib/ui/hooks/clipboard/pasteExcalidrawContent.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/menuHelpers.js +5 -10
- package/dist-cjs/lib/ui/hooks/menuHelpers.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/useActions.js +73 -146
- package/dist-cjs/lib/ui/hooks/useActions.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/useClipboardEvents.js +6 -12
- package/dist-cjs/lib/ui/hooks/useClipboardEvents.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/useHighDpiCanvas.js +1 -2
- package/dist-cjs/lib/ui/hooks/useHighDpiCanvas.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/useInsertMedia.js +1 -2
- package/dist-cjs/lib/ui/hooks/useInsertMedia.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/useKeyboardShortcuts.js +8 -16
- package/dist-cjs/lib/ui/hooks/useKeyboardShortcuts.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/useMenuIsOpen.js +1 -2
- package/dist-cjs/lib/ui/hooks/useMenuIsOpen.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/useMenuSchema.js +2 -4
- package/dist-cjs/lib/ui/hooks/useMenuSchema.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/usePreloadAssets.js +2 -4
- package/dist-cjs/lib/ui/hooks/usePreloadAssets.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/usePreloadIcons.js +1 -2
- package/dist-cjs/lib/ui/hooks/usePreloadIcons.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/usePrint.js +2 -4
- package/dist-cjs/lib/ui/hooks/usePrint.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/useRevelantStyles.js +1 -2
- package/dist-cjs/lib/ui/hooks/useRevelantStyles.js.map +1 -1
- package/dist-cjs/lib/utils/assets/is-gif-animated.js +9 -0
- package/dist-cjs/lib/utils/assets/is-gif-animated.js.map +1 -1
- package/dist-cjs/lib/utils/export/export.js +2 -4
- package/dist-cjs/lib/utils/export/export.js.map +1 -1
- package/dist-cjs/lib/utils/export/exportAs.js +1 -2
- package/dist-cjs/lib/utils/export/exportAs.js.map +1 -1
- package/dist-cjs/lib/utils/frames/frames.js +4 -8
- package/dist-cjs/lib/utils/frames/frames.js.map +1 -1
- package/dist-cjs/lib/utils/static-assets/assetUrls.js +1 -2
- package/dist-cjs/lib/utils/static-assets/assetUrls.js.map +1 -1
- package/dist-cjs/lib/utils/tldr/buildFromV1Document.js +10 -20
- package/dist-cjs/lib/utils/tldr/buildFromV1Document.js.map +1 -1
- package/dist-cjs/lib/utils/tldr/file.js +1 -2
- package/dist-cjs/lib/utils/tldr/file.js.map +1 -1
- package/dist-esm/lib/Tldraw.mjs +1 -2
- package/dist-esm/lib/Tldraw.mjs.map +1 -1
- package/dist-esm/lib/canvas/TldrawHandles.mjs +1 -2
- package/dist-esm/lib/canvas/TldrawHandles.mjs.map +1 -1
- package/dist-esm/lib/canvas/TldrawHoveredShapeIndicator.mjs +1 -2
- package/dist-esm/lib/canvas/TldrawHoveredShapeIndicator.mjs.map +1 -1
- package/dist-esm/lib/canvas/TldrawScribble.mjs +1 -2
- package/dist-esm/lib/canvas/TldrawScribble.mjs.map +1 -1
- package/dist-esm/lib/canvas/TldrawSelectionBackground.mjs +1 -2
- package/dist-esm/lib/canvas/TldrawSelectionBackground.mjs.map +1 -1
- package/dist-esm/lib/canvas/TldrawSelectionForeground.mjs +1 -2
- package/dist-esm/lib/canvas/TldrawSelectionForeground.mjs.map +1 -1
- package/dist-esm/lib/defaultExternalContentHandlers.mjs +3 -6
- package/dist-esm/lib/defaultExternalContentHandlers.mjs.map +1 -1
- package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs +7 -14
- package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs.map +1 -1
- package/dist-esm/lib/shapes/arrow/toolStates/Idle.mjs +1 -2
- package/dist-esm/lib/shapes/arrow/toolStates/Idle.mjs.map +1 -1
- package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs +6 -12
- package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs.map +1 -1
- package/dist-esm/lib/shapes/draw/toolStates/Drawing.mjs +12 -24
- package/dist-esm/lib/shapes/draw/toolStates/Drawing.mjs.map +1 -1
- package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs +1 -2
- package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs.map +1 -1
- package/dist-esm/lib/shapes/frame/FrameShapeTool.mjs +4 -8
- package/dist-esm/lib/shapes/frame/FrameShapeTool.mjs.map +1 -1
- package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs +3 -6
- package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs.map +1 -1
- package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs +1 -2
- package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs.map +1 -1
- package/dist-esm/lib/shapes/frame/components/FrameLabelInput.mjs +4 -8
- package/dist-esm/lib/shapes/frame/components/FrameLabelInput.mjs.map +1 -1
- package/dist-esm/lib/shapes/geo/toolStates/Idle.mjs +1 -2
- package/dist-esm/lib/shapes/geo/toolStates/Idle.mjs.map +1 -1
- package/dist-esm/lib/shapes/geo/toolStates/Pointing.mjs +2 -4
- package/dist-esm/lib/shapes/geo/toolStates/Pointing.mjs.map +1 -1
- package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs +5 -10
- package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs.map +1 -1
- package/dist-esm/lib/shapes/line/components/svg.mjs +1 -2
- package/dist-esm/lib/shapes/line/components/svg.mjs.map +1 -1
- package/dist-esm/lib/shapes/line/toolStates/Pointing.mjs +5 -10
- package/dist-esm/lib/shapes/line/toolStates/Pointing.mjs.map +1 -1
- package/dist-esm/lib/shapes/poll/components/CustomizedAxisTick.mjs +1 -2
- package/dist-esm/lib/shapes/poll/components/CustomizedAxisTick.mjs.map +1 -1
- package/dist-esm/lib/shapes/poll/components/poll-content.mjs +1 -2
- package/dist-esm/lib/shapes/poll/components/poll-content.mjs.map +1 -1
- package/dist-esm/lib/shapes/shared/TextHelpers.mjs +2 -4
- package/dist-esm/lib/shapes/shared/TextHelpers.mjs.map +1 -1
- package/dist-esm/lib/shapes/shared/createTextSvgElementFromSpans.mjs +1 -2
- package/dist-esm/lib/shapes/shared/createTextSvgElementFromSpans.mjs.map +1 -1
- package/dist-esm/lib/shapes/shared/defaultStyleDefs.mjs +8 -16
- package/dist-esm/lib/shapes/shared/defaultStyleDefs.mjs.map +1 -1
- package/dist-esm/lib/shapes/shared/freehand/getStrokePoints.mjs +6 -12
- package/dist-esm/lib/shapes/shared/freehand/getStrokePoints.mjs.map +1 -1
- package/dist-esm/lib/shapes/shared/freehand/setStrokePointRadii.mjs +1 -2
- package/dist-esm/lib/shapes/shared/freehand/setStrokePointRadii.mjs.map +1 -1
- package/dist-esm/lib/shapes/shared/freehand/svgInk.mjs +2 -4
- package/dist-esm/lib/shapes/shared/freehand/svgInk.mjs.map +1 -1
- package/dist-esm/lib/shapes/shared/useEditableText.mjs +5 -10
- package/dist-esm/lib/shapes/shared/useEditableText.mjs.map +1 -1
- package/dist-esm/lib/shapes/text/TextShapeUtil.mjs +6 -12
- package/dist-esm/lib/shapes/text/TextShapeUtil.mjs.map +1 -1
- package/dist-esm/lib/shapes/text/toolStates/Idle.mjs +1 -2
- package/dist-esm/lib/shapes/text/toolStates/Idle.mjs.map +1 -1
- package/dist-esm/lib/shapes/text/toolStates/Pointing.mjs +1 -2
- package/dist-esm/lib/shapes/text/toolStates/Pointing.mjs.map +1 -1
- package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs +2 -4
- package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs.map +1 -1
- package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs +2 -4
- package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/DragAndDropManager.mjs +1 -2
- package/dist-esm/lib/tools/SelectTool/DragAndDropManager.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/Brushing.mjs +25 -30
- package/dist-esm/lib/tools/SelectTool/childStates/Brushing.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/Idle.mjs +12 -24
- package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/Idle.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/TranslatingCrop.mjs +1 -2
- package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/TranslatingCrop.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/Cropping.mjs +8 -16
- package/dist-esm/lib/tools/SelectTool/childStates/Cropping.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs +3 -6
- package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/EditingShape.mjs +2 -4
- package/dist-esm/lib/tools/SelectTool/childStates/EditingShape.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/Idle.mjs +21 -42
- package/dist-esm/lib/tools/SelectTool/childStates/Idle.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/PointingCropHandle.mjs +1 -2
- package/dist-esm/lib/tools/SelectTool/childStates/PointingCropHandle.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/PointingSelection.mjs +1 -2
- package/dist-esm/lib/tools/SelectTool/childStates/PointingSelection.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/PointingShape.mjs +1 -2
- package/dist-esm/lib/tools/SelectTool/childStates/PointingShape.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/Resizing.mjs +5 -10
- package/dist-esm/lib/tools/SelectTool/childStates/Resizing.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/Rotating.mjs +2 -4
- package/dist-esm/lib/tools/SelectTool/childStates/Rotating.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/ScribbleBrushing.mjs +1 -2
- package/dist-esm/lib/tools/SelectTool/childStates/ScribbleBrushing.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs +4 -8
- package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs.map +1 -1
- package/dist-esm/lib/tools/SelectTool/children/DraggingHandle.mjs +3 -6
- package/dist-esm/lib/tools/SelectTool/children/DraggingHandle.mjs.map +1 -1
- package/dist-esm/lib/tools/selection-logic/updateHoveredId.mjs +1 -2
- package/dist-esm/lib/tools/selection-logic/updateHoveredId.mjs.map +1 -1
- package/dist-esm/lib/ui/assetUrls.mjs +1 -2
- package/dist-esm/lib/ui/assetUrls.mjs.map +1 -1
- package/dist-esm/lib/ui/components/ActionsMenu.mjs +2 -4
- package/dist-esm/lib/ui/components/ActionsMenu.mjs.map +1 -1
- package/dist-esm/lib/ui/components/BackToContent.mjs +1 -2
- package/dist-esm/lib/ui/components/BackToContent.mjs.map +1 -1
- package/dist-esm/lib/ui/components/ContextMenu.mjs +3 -6
- package/dist-esm/lib/ui/components/ContextMenu.mjs.map +1 -1
- package/dist-esm/lib/ui/components/DebugPanel.mjs +2 -4
- package/dist-esm/lib/ui/components/DebugPanel.mjs.map +1 -1
- package/dist-esm/lib/ui/components/EditLinkDialog.mjs +2 -4
- package/dist-esm/lib/ui/components/EditLinkDialog.mjs.map +1 -1
- package/dist-esm/lib/ui/components/EmbedDialog.mjs +1 -2
- package/dist-esm/lib/ui/components/EmbedDialog.mjs.map +1 -1
- package/dist-esm/lib/ui/components/FollowingIndicator.mjs +2 -4
- package/dist-esm/lib/ui/components/FollowingIndicator.mjs.map +1 -1
- package/dist-esm/lib/ui/components/HelpMenu.mjs +2 -4
- package/dist-esm/lib/ui/components/HelpMenu.mjs.map +1 -1
- package/dist-esm/lib/ui/components/KeyboardShortcutsDialog.mjs +2 -4
- package/dist-esm/lib/ui/components/KeyboardShortcutsDialog.mjs.map +1 -1
- package/dist-esm/lib/ui/components/Menu.mjs +5 -10
- package/dist-esm/lib/ui/components/Menu.mjs.map +1 -1
- package/dist-esm/lib/ui/components/NavigationZone/Minimap.mjs +3 -6
- package/dist-esm/lib/ui/components/NavigationZone/Minimap.mjs.map +1 -1
- package/dist-esm/lib/ui/components/PageMenu/PageMenu.mjs +5 -10
- package/dist-esm/lib/ui/components/PageMenu/PageMenu.mjs.map +1 -1
- package/dist-esm/lib/ui/components/PenModeToggle.mjs +1 -2
- package/dist-esm/lib/ui/components/PenModeToggle.mjs.map +1 -1
- package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs +1 -2
- package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs.map +1 -1
- package/dist-esm/lib/ui/components/StylePanel/StylePanel.mjs +1 -2
- package/dist-esm/lib/ui/components/StylePanel/StylePanel.mjs.map +1 -1
- package/dist-esm/lib/ui/components/Toasts.mjs +1 -2
- package/dist-esm/lib/ui/components/Toasts.mjs.map +1 -1
- package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs +1 -2
- package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs.map +1 -1
- package/dist-esm/lib/ui/components/TrashButton.mjs +1 -2
- package/dist-esm/lib/ui/components/TrashButton.mjs.map +1 -1
- package/dist-esm/lib/ui/components/primitives/ButtonPicker.mjs +2 -4
- package/dist-esm/lib/ui/components/primitives/ButtonPicker.mjs.map +1 -1
- package/dist-esm/lib/ui/components/primitives/Input.mjs +1 -2
- package/dist-esm/lib/ui/components/primitives/Input.mjs.map +1 -1
- package/dist-esm/lib/ui/components/primitives/Slider.mjs +1 -2
- package/dist-esm/lib/ui/components/primitives/Slider.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/clipboard/pasteExcalidrawContent.mjs +2 -4
- package/dist-esm/lib/ui/hooks/clipboard/pasteExcalidrawContent.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/menuHelpers.mjs +5 -10
- package/dist-esm/lib/ui/hooks/menuHelpers.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/useActions.mjs +73 -146
- package/dist-esm/lib/ui/hooks/useActions.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs +6 -12
- package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/useHighDpiCanvas.mjs +1 -2
- package/dist-esm/lib/ui/hooks/useHighDpiCanvas.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/useInsertMedia.mjs +1 -2
- package/dist-esm/lib/ui/hooks/useInsertMedia.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/useKeyboardShortcuts.mjs +8 -16
- package/dist-esm/lib/ui/hooks/useKeyboardShortcuts.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/useMenuIsOpen.mjs +1 -2
- package/dist-esm/lib/ui/hooks/useMenuIsOpen.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/useMenuSchema.mjs +2 -4
- package/dist-esm/lib/ui/hooks/useMenuSchema.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/usePreloadAssets.mjs +2 -4
- package/dist-esm/lib/ui/hooks/usePreloadAssets.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/usePreloadIcons.mjs +1 -2
- package/dist-esm/lib/ui/hooks/usePreloadIcons.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/usePrint.mjs +2 -4
- package/dist-esm/lib/ui/hooks/usePrint.mjs.map +1 -1
- package/dist-esm/lib/ui/hooks/useRevelantStyles.mjs +1 -2
- package/dist-esm/lib/ui/hooks/useRevelantStyles.mjs.map +1 -1
- package/dist-esm/lib/utils/assets/is-gif-animated.mjs +9 -0
- package/dist-esm/lib/utils/assets/is-gif-animated.mjs.map +1 -1
- package/dist-esm/lib/utils/export/export.mjs +2 -4
- package/dist-esm/lib/utils/export/export.mjs.map +1 -1
- package/dist-esm/lib/utils/export/exportAs.mjs +1 -2
- package/dist-esm/lib/utils/export/exportAs.mjs.map +1 -1
- package/dist-esm/lib/utils/frames/frames.mjs +4 -8
- package/dist-esm/lib/utils/frames/frames.mjs.map +1 -1
- package/dist-esm/lib/utils/static-assets/assetUrls.mjs +1 -2
- package/dist-esm/lib/utils/static-assets/assetUrls.mjs.map +1 -1
- package/dist-esm/lib/utils/tldr/buildFromV1Document.mjs +10 -20
- package/dist-esm/lib/utils/tldr/buildFromV1Document.mjs.map +1 -1
- package/dist-esm/lib/utils/tldr/file.mjs +1 -2
- package/dist-esm/lib/utils/tldr/file.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -78,8 +78,7 @@ const Input = React.forwardRef(function Input2({
|
|
|
78
78
|
[onBlur]
|
|
79
79
|
);
|
|
80
80
|
React.useEffect(() => {
|
|
81
|
-
if (!editor.environment.isIos)
|
|
82
|
-
return;
|
|
81
|
+
if (!editor.environment.isIos) return;
|
|
83
82
|
const visualViewport = window.visualViewport;
|
|
84
83
|
if (isFocused && shouldManuallyMaintainScrollPositionWhenFocused && visualViewport) {
|
|
85
84
|
const onViewportChange = () => {
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/lib/ui/components/primitives/Input.tsx"],
|
|
4
4
|
"sourcesContent": ["import { stopEventPropagation, useEditor } from '@bigbluebutton/editor'\nimport classNames from 'classnames'\nimport * as React from 'react'\nimport { TLUiTranslationKey } from '../../hooks/useTranslation/TLUiTranslationKey'\nimport { useTranslation } from '../../hooks/useTranslation/useTranslation'\nimport { TLUiIconType } from '../../icon-types'\nimport { Icon } from './Icon'\n\n/** @public */\nexport interface TLUiInputProps {\n\tdisabled?: boolean\n\tlabel?: TLUiTranslationKey | Exclude<string, TLUiTranslationKey>\n\ticon?: TLUiIconType | Exclude<string, TLUiIconType>\n\ticonLeft?: TLUiIconType | Exclude<string, TLUiIconType>\n\tautofocus?: boolean\n\tautoselect?: boolean\n\tchildren?: any\n\tdefaultValue?: string\n\tplaceholder?: string\n\tonComplete?: (value: string) => void\n\tonValueChange?: (value: string) => void\n\tonCancel?: (value: string) => void\n\tonBlur?: (value: string) => void\n\tclassName?: string\n\t/**\n\t * Usually on iOS when you focus an input, the browser will adjust the viewport to bring the input\n\t * into view. Sometimes this doesn't work properly though - for example, if the input is newly\n\t * created, iOS seems to have a hard time adjusting the viewport for it. This prop allows you to\n\t * opt-in to some extra code to manually bring the input into view when the visual viewport of the\n\t * browser changes, but we don't want to use it everywhere because generally the native behavior\n\t * looks nicer in scenarios where it's sufficient.\n\t */\n\tshouldManuallyMaintainScrollPositionWhenFocused?: boolean\n\tvalue?: string\n}\n\n/** @public */\nexport const Input = React.forwardRef<HTMLInputElement, TLUiInputProps>(function Input(\n\t{\n\t\tclassName,\n\t\tlabel,\n\t\ticon,\n\t\ticonLeft,\n\t\tautoselect = false,\n\t\tautofocus = false,\n\t\tdefaultValue,\n\t\tplaceholder,\n\t\tonComplete,\n\t\tonValueChange,\n\t\tonCancel,\n\t\tonBlur,\n\t\tshouldManuallyMaintainScrollPositionWhenFocused = false,\n\t\tchildren,\n\t\tvalue,\n\t},\n\tref\n) {\n\tconst editor = useEditor()\n\tconst rInputRef = React.useRef<HTMLInputElement>(null)\n\n\t// combine rInputRef and ref\n\tReact.useImperativeHandle(ref, () => rInputRef.current as HTMLInputElement)\n\n\tconst msg = useTranslation()\n\tconst rInitialValue = React.useRef<string>(defaultValue ?? '')\n\tconst rCurrentValue = React.useRef<string>(defaultValue ?? '')\n\n\tconst [isFocused, setIsFocused] = React.useState(false)\n\tconst handleFocus = React.useCallback(\n\t\t(e: React.FocusEvent<HTMLInputElement>) => {\n\t\t\tsetIsFocused(true)\n\t\t\tconst elm = e.currentTarget as HTMLInputElement\n\t\t\trCurrentValue.current = elm.value\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tif (autoselect) {\n\t\t\t\t\telm.select()\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\t\t[autoselect]\n\t)\n\n\tconst handleChange = React.useCallback(\n\t\t(e: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\tconst value = e.currentTarget.value\n\t\t\trCurrentValue.current = value\n\t\t\tonValueChange?.(value)\n\t\t},\n\t\t[onValueChange]\n\t)\n\n\tconst handleKeyUp = React.useCallback(\n\t\t(e: React.KeyboardEvent<HTMLInputElement>) => {\n\t\t\tswitch (e.key) {\n\t\t\t\tcase 'Enter': {\n\t\t\t\t\te.currentTarget.blur()\n\t\t\t\t\tstopEventPropagation(e)\n\t\t\t\t\tonComplete?.(e.currentTarget.value)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tcase 'Escape': {\n\t\t\t\t\te.currentTarget.value = rInitialValue.current\n\t\t\t\t\te.currentTarget.blur()\n\t\t\t\t\tstopEventPropagation(e)\n\t\t\t\t\tonCancel?.(e.currentTarget.value)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[onComplete, onCancel]\n\t)\n\n\tconst handleBlur = React.useCallback(\n\t\t(e: React.FocusEvent<HTMLInputElement>) => {\n\t\t\tsetIsFocused(false)\n\t\t\tconst value = e.currentTarget.value\n\t\t\tonBlur?.(value)\n\t\t},\n\t\t[onBlur]\n\t)\n\n\tReact.useEffect(() => {\n\t\tif (!editor.environment.isIos) return\n\n\t\tconst visualViewport = window.visualViewport\n\t\tif (isFocused && shouldManuallyMaintainScrollPositionWhenFocused && visualViewport) {\n\t\t\tconst onViewportChange = () => {\n\t\t\t\trInputRef.current?.scrollIntoView({ block: 'center' })\n\t\t\t}\n\t\t\tvisualViewport.addEventListener('resize', onViewportChange)\n\t\t\tvisualViewport.addEventListener('scroll', onViewportChange)\n\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\trInputRef.current?.scrollIntoView({ block: 'center' })\n\t\t\t})\n\n\t\t\treturn () => {\n\t\t\t\tvisualViewport.removeEventListener('resize', onViewportChange)\n\t\t\t\tvisualViewport.removeEventListener('scroll', onViewportChange)\n\t\t\t}\n\t\t}\n\t}, [editor, isFocused, shouldManuallyMaintainScrollPositionWhenFocused])\n\n\treturn (\n\t\t<div draggable={false} className=\"tlui-input__wrapper\">\n\t\t\t{children}\n\t\t\t{label && <label>{msg(label)}</label>}\n\t\t\t{iconLeft && <Icon icon={iconLeft} className=\"tlui-icon-left\" small />}\n\t\t\t<input\n\t\t\t\tref={rInputRef}\n\t\t\t\tclassName={classNames('tlui-input', className)}\n\t\t\t\ttype=\"text\"\n\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\tonKeyUp={handleKeyUp}\n\t\t\t\tonChange={handleChange}\n\t\t\t\tonFocus={handleFocus}\n\t\t\t\tonBlur={handleBlur}\n\t\t\t\tautoFocus={autofocus}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tvalue={value}\n\t\t\t/>\n\t\t\t{icon && <Icon icon={icon} small={!!label} />}\n\t\t</div>\n\t)\n})\n"],
|
|
5
|
-
"mappings": "AAgJE,SAEW,KAFX;AAhJF,SAAS,sBAAsB,iBAAiB;AAChD,OAAO,gBAAgB;AACvB,YAAY,WAAW;AAEvB,SAAS,sBAAsB;AAE/B,SAAS,YAAY;AA+Bd,MAAM,QAAQ,MAAM,WAA6C,SAASA,OAChF;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,kDAAkD;AAAA,EAClD;AAAA,EACA;AACD,GACA,KACC;AACD,QAAM,SAAS,UAAU;AACzB,QAAM,YAAY,MAAM,OAAyB,IAAI;AAGrD,QAAM,oBAAoB,KAAK,MAAM,UAAU,OAA2B;AAE1E,QAAM,MAAM,eAAe;AAC3B,QAAM,gBAAgB,MAAM,OAAe,gBAAgB,EAAE;AAC7D,QAAM,gBAAgB,MAAM,OAAe,gBAAgB,EAAE;AAE7D,QAAM,CAAC,WAAW,YAAY,IAAI,MAAM,SAAS,KAAK;AACtD,QAAM,cAAc,MAAM;AAAA,IACzB,CAAC,MAA0C;AAC1C,mBAAa,IAAI;AACjB,YAAM,MAAM,EAAE;AACd,oBAAc,UAAU,IAAI;AAC5B,4BAAsB,MAAM;AAC3B,YAAI,YAAY;AACf,cAAI,OAAO;AAAA,QACZ;AAAA,MACD,CAAC;AAAA,IACF;AAAA,IACA,CAAC,UAAU;AAAA,EACZ;AAEA,QAAM,eAAe,MAAM;AAAA,IAC1B,CAAC,MAA2C;AAC3C,YAAMC,SAAQ,EAAE,cAAc;AAC9B,oBAAc,UAAUA;AACxB,sBAAgBA,MAAK;AAAA,IACtB;AAAA,IACA,CAAC,aAAa;AAAA,EACf;AAEA,QAAM,cAAc,MAAM;AAAA,IACzB,CAAC,MAA6C;AAC7C,cAAQ,EAAE,KAAK;AAAA,QACd,KAAK,SAAS;AACb,YAAE,cAAc,KAAK;AACrB,+BAAqB,CAAC;AACtB,uBAAa,EAAE,cAAc,KAAK;AAClC;AAAA,QACD;AAAA,QACA,KAAK,UAAU;AACd,YAAE,cAAc,QAAQ,cAAc;AACtC,YAAE,cAAc,KAAK;AACrB,+BAAqB,CAAC;AACtB,qBAAW,EAAE,cAAc,KAAK;AAChC;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IACA,CAAC,YAAY,QAAQ;AAAA,EACtB;AAEA,QAAM,aAAa,MAAM;AAAA,IACxB,CAAC,MAA0C;AAC1C,mBAAa,KAAK;AAClB,YAAMA,SAAQ,EAAE,cAAc;AAC9B,eAASA,MAAK;AAAA,IACf;AAAA,IACA,CAAC,MAAM;AAAA,EACR;AAEA,QAAM,UAAU,MAAM;AACrB,QAAI,CAAC,OAAO,YAAY;
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["Input", "value"]
|
|
7
7
|
}
|
|
@@ -17,8 +17,7 @@ const Slider = memo(function Slider2(props) {
|
|
|
17
17
|
editor.mark("click slider");
|
|
18
18
|
}, [editor]);
|
|
19
19
|
const handlePointerUp = useCallback(() => {
|
|
20
|
-
if (!value)
|
|
21
|
-
return;
|
|
20
|
+
if (!value) return;
|
|
22
21
|
onValueChange(value, false);
|
|
23
22
|
}, [value, onValueChange]);
|
|
24
23
|
return /* @__PURE__ */ jsx("div", { className: "tlui-slider__container", children: /* @__PURE__ */ jsxs(
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/lib/ui/components/primitives/Slider.tsx"],
|
|
4
4
|
"sourcesContent": ["import { useEditor } from '@bigbluebutton/editor'\nimport { Range, Root, Thumb, Track } from '@radix-ui/react-slider'\nimport { memo, useCallback } from 'react'\nimport { TLUiTranslationKey } from '../../hooks/useTranslation/TLUiTranslationKey'\nimport { useTranslation } from '../../hooks/useTranslation/useTranslation'\n\n/** @internal */\nexport interface SliderProps {\n\tsteps: number\n\tvalue: number | null\n\tlabel: string\n\ttitle: string\n\tonValueChange: (value: number, emphemeral: boolean) => void\n\t'data-testid'?: string\n}\n\n/** @internal */\nexport const Slider = memo(function Slider(props: SliderProps) {\n\tconst { title, steps, value, label, onValueChange } = props\n\tconst editor = useEditor()\n\tconst msg = useTranslation()\n\n\tconst handleValueChange = useCallback(\n\t\t(value: number[]) => {\n\t\t\tonValueChange(value[0], true)\n\t\t},\n\t\t[onValueChange]\n\t)\n\n\tconst handlePointerDown = useCallback(() => {\n\t\teditor.mark('click slider')\n\t}, [editor])\n\n\tconst handlePointerUp = useCallback(() => {\n\t\tif (!value) return\n\t\tonValueChange(value, false)\n\t}, [value, onValueChange])\n\n\treturn (\n\t\t<div className=\"tlui-slider__container\">\n\t\t\t<Root\n\t\t\t\tdata-testid={props['data-testid']}\n\t\t\t\tclassName=\"tlui-slider\"\n\t\t\t\tarea-label=\"Opacity\"\n\t\t\t\tdir=\"ltr\"\n\t\t\t\tmin={0}\n\t\t\t\tmax={steps}\n\t\t\t\tstep={1}\n\t\t\t\tvalue={value ? [value] : undefined}\n\t\t\t\tonPointerDown={handlePointerDown}\n\t\t\t\tonValueChange={handleValueChange}\n\t\t\t\tonPointerUp={handlePointerUp}\n\t\t\t\ttitle={title + ' \u2014 ' + msg(label as TLUiTranslationKey)}\n\t\t\t>\n\t\t\t\t<Track className=\"tlui-slider__track\" dir=\"ltr\">\n\t\t\t\t\t{value !== null && <Range className=\"tlui-slider__range\" dir=\"ltr\" />}\n\t\t\t\t</Track>\n\t\t\t\t{value !== null && <Thumb className=\"tlui-slider__thumb\" dir=\"ltr\" />}\n\t\t\t</Root>\n\t\t</div>\n\t)\n})\n"],
|
|
5
|
-
"mappings": "AAwCG,SAeqB,KAfrB;AAxCH,SAAS,iBAAiB;AAC1B,SAAS,OAAO,MAAM,OAAO,aAAa;AAC1C,SAAS,MAAM,mBAAmB;AAElC,SAAS,sBAAsB;AAaxB,MAAM,SAAS,KAAK,SAASA,QAAO,OAAoB;AAC9D,QAAM,EAAE,OAAO,OAAO,OAAO,OAAO,cAAc,IAAI;AACtD,QAAM,SAAS,UAAU;AACzB,QAAM,MAAM,eAAe;AAE3B,QAAM,oBAAoB;AAAA,IACzB,CAACC,WAAoB;AACpB,oBAAcA,OAAM,CAAC,GAAG,IAAI;AAAA,IAC7B;AAAA,IACA,CAAC,aAAa;AAAA,EACf;AAEA,QAAM,oBAAoB,YAAY,MAAM;AAC3C,WAAO,KAAK,cAAc;AAAA,EAC3B,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,kBAAkB,YAAY,MAAM;AACzC,QAAI,CAAC;
|
|
5
|
+
"mappings": "AAwCG,SAeqB,KAfrB;AAxCH,SAAS,iBAAiB;AAC1B,SAAS,OAAO,MAAM,OAAO,aAAa;AAC1C,SAAS,MAAM,mBAAmB;AAElC,SAAS,sBAAsB;AAaxB,MAAM,SAAS,KAAK,SAASA,QAAO,OAAoB;AAC9D,QAAM,EAAE,OAAO,OAAO,OAAO,OAAO,cAAc,IAAI;AACtD,QAAM,SAAS,UAAU;AACzB,QAAM,MAAM,eAAe;AAE3B,QAAM,oBAAoB;AAAA,IACzB,CAACC,WAAoB;AACpB,oBAAcA,OAAM,CAAC,GAAG,IAAI;AAAA,IAC7B;AAAA,IACA,CAAC,aAAa;AAAA,EACf;AAEA,QAAM,oBAAoB,YAAY,MAAM;AAC3C,WAAO,KAAK,cAAc;AAAA,EAC3B,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,kBAAkB,YAAY,MAAM;AACzC,QAAI,CAAC,MAAO;AACZ,kBAAc,OAAO,KAAK;AAAA,EAC3B,GAAG,CAAC,OAAO,aAAa,CAAC;AAEzB,SACC,oBAAC,SAAI,WAAU,0BACd;AAAA,IAAC;AAAA;AAAA,MACA,eAAa,MAAM,aAAa;AAAA,MAChC,WAAU;AAAA,MACV,cAAW;AAAA,MACX,KAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO,QAAQ,CAAC,KAAK,IAAI;AAAA,MACzB,eAAe;AAAA,MACf,eAAe;AAAA,MACf,aAAa;AAAA,MACb,OAAO,QAAQ,aAAQ,IAAI,KAA2B;AAAA,MAEtD;AAAA,4BAAC,SAAM,WAAU,sBAAqB,KAAI,OACxC,oBAAU,QAAQ,oBAAC,SAAM,WAAU,sBAAqB,KAAI,OAAM,GACpE;AAAA,QACC,UAAU,QAAQ,oBAAC,SAAM,WAAU,sBAAqB,KAAI,OAAM;AAAA;AAAA;AAAA,EACpE,GACD;AAEF,CAAC;",
|
|
6
6
|
"names": ["Slider", "value"]
|
|
7
7
|
}
|
|
@@ -239,8 +239,7 @@ async function pasteExcalidrawContent(editor, clipboard, point) {
|
|
|
239
239
|
}
|
|
240
240
|
case "image": {
|
|
241
241
|
const file = files[element.fileId];
|
|
242
|
-
if (!file)
|
|
243
|
-
break;
|
|
242
|
+
if (!file) break;
|
|
244
243
|
const assetId = AssetRecordType.createId();
|
|
245
244
|
tldrawContent.assets.push({
|
|
246
245
|
id: assetId,
|
|
@@ -420,8 +419,7 @@ function getBend(element, startPoint, endPoint) {
|
|
|
420
419
|
const B = Vec2d.Add(med, v);
|
|
421
420
|
const point = Vec2d.NearestPointOnLineSegment(A, B, handle, false);
|
|
422
421
|
bend = Vec2d.Dist(point, med);
|
|
423
|
-
if (Vec2d.Clockwise(point, end, med))
|
|
424
|
-
bend *= -1;
|
|
422
|
+
if (Vec2d.Clockwise(point, end, med)) bend *= -1;
|
|
425
423
|
}
|
|
426
424
|
return bend;
|
|
427
425
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/lib/ui/hooks/clipboard/pasteExcalidrawContent.ts"],
|
|
4
4
|
"sourcesContent": ["import {\n\tAssetRecordType,\n\tBox2d,\n\tEditor,\n\tTLArrowShapeArrowheadStyle,\n\tTLAssetId,\n\tTLContent,\n\tTLDefaultColorStyle,\n\tTLDefaultDashStyle,\n\tTLDefaultFillStyle,\n\tTLDefaultFontStyle,\n\tTLDefaultHorizontalAlignStyle,\n\tTLDefaultSizeStyle,\n\tTLOpacityType,\n\tTLShapeId,\n\tVec2d,\n\tVecLike,\n\tcompact,\n\tcreateShapeId,\n\tgetIndexAbove,\n\tgetIndices,\n\tisShapeId,\n\tuniqueId,\n} from '@bigbluebutton/editor'\n\n/**\n * When the clipboard has excalidraw content, paste it into the scene.\n *\n * @param editor - The editor instance.\n * @param clipboard - The clipboard model.\n * @param point - The point at which to paste the text.\n * @internal\n */\nexport async function pasteExcalidrawContent(editor: Editor, clipboard: any, point?: VecLike) {\n\tconst { elements, files } = clipboard\n\n\tconst tldrawContent: TLContent = {\n\t\tshapes: [],\n\t\trootShapeIds: [],\n\t\tassets: [],\n\t\tschema: editor.store.schema.serialize(),\n\t}\n\n\tconst groupShapeIdToChildren = new Map<string, TLShapeId[]>()\n\tconst rotatedElements = new Map<TLShapeId, number>()\n\n\tconst currentPageId = editor.getCurrentPageId()\n\n\tconst excElementIdsToTldrawShapeIds = new Map<string, TLShapeId>()\n\tconst rootShapeIds: TLShapeId[] = []\n\n\tconst skipIds = new Set<string>()\n\n\telements.forEach((element: any) => {\n\t\texcElementIdsToTldrawShapeIds.set(element.id, createShapeId())\n\n\t\tif (element.boundElements !== null) {\n\t\t\tfor (const boundElement of element.boundElements) {\n\t\t\t\tif (boundElement.type === 'text') {\n\t\t\t\t\tskipIds.add(boundElement.id)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\n\tlet index = 'a1'\n\n\tfor (const element of elements) {\n\t\tif (skipIds.has(element.id)) {\n\t\t\tcontinue\n\t\t}\n\n\t\tconst id = excElementIdsToTldrawShapeIds.get(element.id)!\n\n\t\tconst base = {\n\t\t\tid,\n\t\t\ttypeName: 'shape',\n\t\t\tparentId: currentPageId,\n\t\t\tindex,\n\t\t\tx: element.x,\n\t\t\ty: element.y,\n\t\t\trotation: 0,\n\t\t\tisLocked: element.locked,\n\t\t\topacity: getOpacity(element.opacity),\n\t\t\tmeta: {},\n\t\t} as const\n\n\t\tif (element.angle !== 0) {\n\t\t\trotatedElements.set(id, element.angle)\n\t\t}\n\n\t\tif (element.groupIds && element.groupIds.length > 0) {\n\t\t\tif (groupShapeIdToChildren.has(element.groupIds[0])) {\n\t\t\t\tgroupShapeIdToChildren.get(element.groupIds[0])?.push(id)\n\t\t\t} else {\n\t\t\t\tgroupShapeIdToChildren.set(element.groupIds[0], [id])\n\t\t\t}\n\t\t} else {\n\t\t\trootShapeIds.push(id)\n\t\t}\n\n\t\tswitch (element.type) {\n\t\t\tcase 'rectangle':\n\t\t\tcase 'ellipse':\n\t\t\tcase 'diamond': {\n\t\t\t\tlet text = ''\n\t\t\t\tlet align: TLDefaultHorizontalAlignStyle = 'middle'\n\n\t\t\t\tif (element.boundElements !== null) {\n\t\t\t\t\tfor (const boundElement of element.boundElements) {\n\t\t\t\t\t\tif (boundElement.type === 'text') {\n\t\t\t\t\t\t\tconst labelElement = elements.find((elm: any) => elm.id === boundElement.id)\n\t\t\t\t\t\t\tif (labelElement) {\n\t\t\t\t\t\t\t\ttext = labelElement.text\n\t\t\t\t\t\t\t\talign = textAlignToAlignTypes[labelElement.textAlign]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst colorToUse =\n\t\t\t\t\telement.backgroundColor === 'transparent' ? element.strokeColor : element.backgroundColor\n\n\t\t\t\ttldrawContent.shapes.push({\n\t\t\t\t\t...base,\n\t\t\t\t\ttype: 'geo',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tgeo: element.type,\n\t\t\t\t\t\turl: element.link ?? '',\n\t\t\t\t\t\tw: element.width,\n\t\t\t\t\t\th: element.height,\n\t\t\t\t\t\tsize: strokeWidthsToSizes[element.strokeWidth] ?? 'draw',\n\t\t\t\t\t\tcolor: colorsToColors[colorToUse] ?? 'black',\n\t\t\t\t\t\ttext,\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tdash: getDash(element),\n\t\t\t\t\t\tfill: getFill(element),\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'freedraw': {\n\t\t\t\ttldrawContent.shapes.push({\n\t\t\t\t\t...base,\n\t\t\t\t\ttype: 'draw',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tdash: getDash(element),\n\t\t\t\t\t\tsize: strokeWidthsToSizes[element.strokeWidth],\n\t\t\t\t\t\tcolor: colorsToColors[element.strokeColor] ?? 'black',\n\t\t\t\t\t\tsegments: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'free',\n\t\t\t\t\t\t\t\tpoints: element.points.map(([x, y, z = 0.5]: number[]) => ({\n\t\t\t\t\t\t\t\t\tx,\n\t\t\t\t\t\t\t\t\ty,\n\t\t\t\t\t\t\t\t\tz,\n\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'line': {\n\t\t\t\tconst start = element.points[0]\n\t\t\t\tconst end = element.points[element.points.length - 1]\n\t\t\t\tconst indices = getIndices(element.points.length)\n\n\t\t\t\ttldrawContent.shapes.push({\n\t\t\t\t\t...base,\n\t\t\t\t\ttype: 'line',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tdash: getDash(element),\n\t\t\t\t\t\tsize: strokeWidthsToSizes[element.strokeWidth],\n\t\t\t\t\t\tcolor: colorsToColors[element.strokeColor] ?? 'black',\n\t\t\t\t\t\tspline: element.roundness ? 'cubic' : 'line',\n\t\t\t\t\t\thandles: {\n\t\t\t\t\t\t\tstart: {\n\t\t\t\t\t\t\t\tid: 'start',\n\t\t\t\t\t\t\t\ttype: 'vertex',\n\t\t\t\t\t\t\t\tindex: indices[0],\n\t\t\t\t\t\t\t\tx: start[0],\n\t\t\t\t\t\t\t\ty: start[1],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tend: {\n\t\t\t\t\t\t\t\tid: 'end',\n\t\t\t\t\t\t\t\ttype: 'vertex',\n\t\t\t\t\t\t\t\tindex: indices[indices.length - 1],\n\t\t\t\t\t\t\t\tx: end[0],\n\t\t\t\t\t\t\t\ty: end[1],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t...Object.fromEntries(\n\t\t\t\t\t\t\t\telement.points.slice(1, -1).map(([x, y]: number[], i: number) => {\n\t\t\t\t\t\t\t\t\tconst id = uniqueId()\n\t\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\t\t\ttype: 'vertex',\n\t\t\t\t\t\t\t\t\t\t\tindex: indices[i + 1],\n\t\t\t\t\t\t\t\t\t\t\tx,\n\t\t\t\t\t\t\t\t\t\t\ty,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'arrow': {\n\t\t\t\tlet text = ''\n\n\t\t\t\tif (element.boundElements !== null) {\n\t\t\t\t\tfor (const boundElement of element.boundElements) {\n\t\t\t\t\t\tif (boundElement.type === 'text') {\n\t\t\t\t\t\t\tconst labelElement = elements.find((elm: any) => elm.id === boundElement.id)\n\t\t\t\t\t\t\tif (labelElement) {\n\t\t\t\t\t\t\t\ttext = labelElement.text\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst start = element.points[0]\n\t\t\t\tconst end = element.points[element.points.length - 1]\n\n\t\t\t\tconst startTargetId = excElementIdsToTldrawShapeIds.get(element.startBinding?.elementId)\n\t\t\t\tconst endTargetId = excElementIdsToTldrawShapeIds.get(element.endBinding?.elementId)\n\n\t\t\t\ttldrawContent.shapes.push({\n\t\t\t\t\t...base,\n\t\t\t\t\ttype: 'arrow',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\ttext,\n\t\t\t\t\t\tbend: getBend(element, start, end),\n\t\t\t\t\t\tdash: getDash(element),\n\t\t\t\t\t\tsize: strokeWidthsToSizes[element.strokeWidth] ?? 'm',\n\t\t\t\t\t\tcolor: colorsToColors[element.strokeColor] ?? 'black',\n\t\t\t\t\t\tstart: startTargetId\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\ttype: 'binding',\n\t\t\t\t\t\t\t\t\tboundShapeId: startTargetId,\n\t\t\t\t\t\t\t\t\tnormalizedAnchor: { x: 0.5, y: 0.5 },\n\t\t\t\t\t\t\t\t\tisPrecise: false,\n\t\t\t\t\t\t\t\t\tisExact: false,\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\ttype: 'point',\n\t\t\t\t\t\t\t\t\tx: start[0],\n\t\t\t\t\t\t\t\t\ty: start[1],\n\t\t\t\t\t\t\t },\n\t\t\t\t\t\tend: endTargetId\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\ttype: 'binding',\n\t\t\t\t\t\t\t\t\tboundShapeId: endTargetId,\n\t\t\t\t\t\t\t\t\tnormalizedAnchor: { x: 0.5, y: 0.5 },\n\t\t\t\t\t\t\t\t\tisPrecise: false,\n\t\t\t\t\t\t\t\t\tisExact: false,\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\ttype: 'point',\n\t\t\t\t\t\t\t\t\tx: end[0],\n\t\t\t\t\t\t\t\t\ty: end[1],\n\t\t\t\t\t\t\t },\n\t\t\t\t\t\tarrowheadEnd: arrowheadsToArrowheadTypes[element.endArrowhead] ?? 'none',\n\t\t\t\t\t\tarrowheadStart: arrowheadsToArrowheadTypes[element.startArrowhead] ?? 'none',\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'text': {\n\t\t\t\tconst { size, scale } = getFontSizeAndScale(element.fontSize)\n\n\t\t\t\ttldrawContent.shapes.push({\n\t\t\t\t\t...base,\n\t\t\t\t\ttype: 'text',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tsize,\n\t\t\t\t\t\tscale,\n\t\t\t\t\t\tfont: fontFamilyToFontType[element.fontFamily] ?? 'draw',\n\t\t\t\t\t\tcolor: colorsToColors[element.strokeColor] ?? 'black',\n\t\t\t\t\t\ttext: element.text,\n\t\t\t\t\t\talign: textAlignToAlignTypes[element.textAlign],\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'image': {\n\t\t\t\tconst file = files[element.fileId]\n\t\t\t\tif (!file) break\n\n\t\t\t\tconst assetId: TLAssetId = AssetRecordType.createId()\n\t\t\t\ttldrawContent.assets.push({\n\t\t\t\t\tid: assetId,\n\t\t\t\t\ttypeName: 'asset',\n\t\t\t\t\ttype: 'image',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tw: element.width,\n\t\t\t\t\t\th: element.height,\n\t\t\t\t\t\tname: element.id ?? 'Untitled',\n\t\t\t\t\t\tisAnimated: false,\n\t\t\t\t\t\tmimeType: file.mimeType,\n\t\t\t\t\t\tsrc: file.dataURL,\n\t\t\t\t\t},\n\t\t\t\t\tmeta: {},\n\t\t\t\t})\n\n\t\t\t\ttldrawContent.shapes.push({\n\t\t\t\t\t...base,\n\t\t\t\t\ttype: 'image',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tw: element.width,\n\t\t\t\t\t\th: element.height,\n\t\t\t\t\t\tassetId,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tindex = getIndexAbove(index)\n\t}\n\n\tconst p = point ?? (editor.inputs.shiftKey ? editor.inputs.currentPagePoint : undefined)\n\n\teditor.mark('paste')\n\n\teditor.putContentOntoCurrentPage(tldrawContent, {\n\t\tpoint: p,\n\t\tselect: false,\n\t\tpreserveIds: true,\n\t})\n\tfor (const groupedShapeIds of groupShapeIdToChildren.values()) {\n\t\tif (groupedShapeIds.length > 1) {\n\t\t\teditor.groupShapes(groupedShapeIds)\n\t\t\tconst groupShape = editor.getShape(groupedShapeIds[0])\n\t\t\tif (groupShape?.parentId && isShapeId(groupShape.parentId)) {\n\t\t\t\trootShapeIds.push(groupShape.parentId)\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (const [id, angle] of rotatedElements) {\n\t\teditor.select(id)\n\t\teditor.rotateShapesBy([id], angle)\n\t}\n\n\tconst rootShapes = compact(rootShapeIds.map((id) => editor.getShape(id)))\n\tconst bounds = Box2d.Common(rootShapes.map((s) => editor.getShapePageBounds(s)!))\n\tconst viewPortCenter = editor.getViewportPageBounds().center\n\teditor.updateShapes(\n\t\trootShapes.map((s) => {\n\t\t\tconst delta = {\n\t\t\t\tx: (s.x ?? 0) - (bounds.x + bounds.w / 2),\n\t\t\t\ty: (s.y ?? 0) - (bounds.y + bounds.h / 2),\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tid: s.id,\n\t\t\t\ttype: s.type,\n\t\t\t\tx: viewPortCenter.x + delta.x,\n\t\t\t\ty: viewPortCenter.y + delta.y,\n\t\t\t}\n\t\t})\n\t)\n\teditor.setSelectedShapes(rootShapeIds)\n}\n\n/* --------------- Translating Helpers --------_------ */\n\nconst getOpacity = (opacity: number): TLOpacityType => {\n\tconst t = opacity / 100\n\tif (t < 0.2) {\n\t\treturn 0.1\n\t} else if (t < 0.4) {\n\t\treturn 0.25\n\t} else if (t < 0.6) {\n\t\treturn 0.5\n\t} else if (t < 0.8) {\n\t\treturn 0.75\n\t}\n\n\treturn 1\n}\n\nconst strokeWidthsToSizes: Record<number, TLDefaultSizeStyle> = {\n\t1: 's',\n\t2: 'm',\n\t3: 'l',\n\t4: 'xl',\n}\n\nconst fontSizesToSizes: Record<number, TLDefaultSizeStyle> = {\n\t16: 's',\n\t20: 'm',\n\t28: 'l',\n\t36: 'xl',\n}\n\nfunction getFontSizeAndScale(fontSize: number): { size: TLDefaultSizeStyle; scale: number } {\n\tconst size = fontSizesToSizes[fontSize]\n\tif (size) {\n\t\treturn { size, scale: 1 }\n\t}\n\tif (fontSize < 16) {\n\t\treturn { size: 's', scale: fontSize / 16 }\n\t}\n\tif (fontSize > 36) {\n\t\treturn { size: 'xl', scale: fontSize / 36 }\n\t}\n\treturn { size: 'm', scale: 1 }\n}\n\nconst fontFamilyToFontType: Record<number, TLDefaultFontStyle> = {\n\t1: 'draw',\n\t2: 'sans',\n\t3: 'mono',\n}\n\nconst colorsToColors: Record<string, TLDefaultColorStyle> = {\n\t'#ffffff': 'grey',\n\t// Strokes\n\t'#000000': 'black',\n\t'#343a40': 'black',\n\t'#495057': 'grey',\n\t'#c92a2a': 'red',\n\t'#a61e4d': 'light-red',\n\t'#862e9c': 'violet',\n\t'#5f3dc4': 'light-violet',\n\t'#364fc7': 'blue',\n\t'#1864ab': 'light-blue',\n\t'#0b7285': 'light-green',\n\t'#087f5b': 'light-green',\n\t'#2b8a3e': 'green',\n\t'#5c940d': 'light-green',\n\t'#e67700': 'yellow',\n\t'#d9480f': 'orange',\n\t// Backgrounds\n\t'#ced4da': 'grey',\n\t'#868e96': 'grey',\n\t'#fa5252': 'light-red',\n\t'#e64980': 'red',\n\t'#be4bdb': 'light-violet',\n\t'#7950f2': 'violet',\n\t'#4c6ef5': 'blue',\n\t'#228be6': 'light-blue',\n\t'#15aabf': 'light-green',\n\t'#12b886': 'green',\n\t'#40c057': 'green',\n\t'#82c91e': 'light-green',\n\t'#fab005': 'yellow',\n\t'#fd7e14': 'orange',\n\t'#212529': 'grey',\n}\n\nconst strokeStylesToStrokeTypes: Record<string, TLDefaultDashStyle> = {\n\tsolid: 'draw',\n\tdashed: 'dashed',\n\tdotted: 'dotted',\n}\n\nconst fillStylesToFillType: Record<string, TLDefaultFillStyle> = {\n\t'cross-hatch': 'pattern',\n\thachure: 'pattern',\n\tsolid: 'solid',\n}\n\nconst textAlignToAlignTypes: Record<string, TLDefaultHorizontalAlignStyle> = {\n\tleft: 'start',\n\tcenter: 'middle',\n\tright: 'end',\n}\n\nconst arrowheadsToArrowheadTypes: Record<string, TLArrowShapeArrowheadStyle> = {\n\tarrow: 'arrow',\n\tdot: 'dot',\n\ttriangle: 'triangle',\n\tbar: 'pipe',\n}\n\nfunction getBend(element: any, startPoint: any, endPoint: any) {\n\tlet bend = 0\n\tif (element.points.length > 2) {\n\t\tconst start = new Vec2d(startPoint[0], startPoint[1])\n\t\tconst end = new Vec2d(endPoint[0], endPoint[1])\n\t\tconst handle = new Vec2d(element.points[1][0], element.points[1][1])\n\t\tconst delta = Vec2d.Sub(end, start)\n\t\tconst v = Vec2d.Per(delta)\n\n\t\tconst med = Vec2d.Med(end, start)\n\t\tconst A = Vec2d.Sub(med, v)\n\t\tconst B = Vec2d.Add(med, v)\n\n\t\tconst point = Vec2d.NearestPointOnLineSegment(A, B, handle, false)\n\t\tbend = Vec2d.Dist(point, med)\n\t\tif (Vec2d.Clockwise(point, end, med)) bend *= -1\n\t}\n\treturn bend\n}\n\nconst getDash = (element: any): TLDefaultDashStyle => {\n\tlet dash: TLDefaultDashStyle = strokeStylesToStrokeTypes[element.strokeStyle] ?? 'draw'\n\tif (dash === 'draw' && element.roughness === 0) {\n\t\tdash = 'solid'\n\t}\n\treturn dash\n}\n\nconst getFill = (element: any): TLDefaultFillStyle => {\n\tif (element.backgroundColor === 'transparent') {\n\t\treturn 'none'\n\t}\n\treturn fillStylesToFillType[element.fillStyle] ?? 'solid'\n}\n"],
|
|
5
|
-
"mappings": "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
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["id"]
|
|
7
7
|
}
|
|
@@ -9,8 +9,7 @@ function compactMenuItems(arr) {
|
|
|
9
9
|
}
|
|
10
10
|
function menuGroup(id, ...children) {
|
|
11
11
|
const childItems = compactMenuItems(children);
|
|
12
|
-
if (childItems.length === 0)
|
|
13
|
-
return null;
|
|
12
|
+
if (childItems.length === 0) return null;
|
|
14
13
|
return {
|
|
15
14
|
id,
|
|
16
15
|
type: "group",
|
|
@@ -22,8 +21,7 @@ function menuGroup(id, ...children) {
|
|
|
22
21
|
}
|
|
23
22
|
function menuSubmenu(id, label, ...children) {
|
|
24
23
|
const childItems = compactMenuItems(children);
|
|
25
|
-
if (childItems.length === 0)
|
|
26
|
-
return null;
|
|
24
|
+
if (childItems.length === 0) return null;
|
|
27
25
|
return {
|
|
28
26
|
id,
|
|
29
27
|
type: "submenu",
|
|
@@ -65,8 +63,7 @@ function shapesWithUnboundArrows(editor) {
|
|
|
65
63
|
return editor.getShape(id);
|
|
66
64
|
});
|
|
67
65
|
return selectedShapes.filter((shape) => {
|
|
68
|
-
if (!shape)
|
|
69
|
-
return false;
|
|
66
|
+
if (!shape) return false;
|
|
70
67
|
if (editor.isShapeOfType(shape, "arrow") && shape.props.start.type === "binding") {
|
|
71
68
|
return false;
|
|
72
69
|
}
|
|
@@ -125,11 +122,9 @@ function findMenuItem(menu, path) {
|
|
|
125
122
|
}
|
|
126
123
|
function _findMenuItem(menu, path) {
|
|
127
124
|
const [next, ...rest] = path;
|
|
128
|
-
if (!next)
|
|
129
|
-
return null;
|
|
125
|
+
if (!next) return null;
|
|
130
126
|
const item = menu.find((item2) => item2?.id === next);
|
|
131
|
-
if (!item)
|
|
132
|
-
return null;
|
|
127
|
+
if (!item) return null;
|
|
133
128
|
switch (item.type) {
|
|
134
129
|
case "group":
|
|
135
130
|
case "submenu":
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/lib/ui/hooks/menuHelpers.ts"],
|
|
4
4
|
"sourcesContent": ["import {\n\tEditor,\n\tTLArrowShape,\n\tTLShape,\n\tTLShapeId,\n\tassert,\n\texhaustiveSwitchError,\n\tuseEditor,\n\tuseValue,\n} from '@bigbluebutton/editor'\nimport { TLUiActionItem } from './useActions'\nimport { TLUiToolItem } from './useTools'\nimport { TLUiTranslationKey } from './useTranslation/TLUiTranslationKey'\n\n/** @public */\nexport type TLUiMenuChild<TranslationKey extends string = string> =\n\t| TLUiMenuItem\n\t| TLUiSubMenu<TranslationKey>\n\t| TLUiMenuGroup\n\t| TLUiCustomMenuItem\n\t| null\n\n/** @public */\nexport type TLUiCustomMenuItem = {\n\tid: string\n\ttype: 'custom'\n\tdisabled: boolean\n\treadonlyOk: boolean\n}\n\n/** @public */\nexport type TLUiMenuItem = {\n\tid: string\n\ttype: 'item'\n\treadonlyOk: boolean\n\tactionItem: TLUiActionItem\n\tdisabled: boolean\n\tchecked: boolean\n}\n\n/** @public */\nexport type TLUiMenuGroup = {\n\tid: string\n\ttype: 'group'\n\tcheckbox: boolean\n\tdisabled: boolean\n\treadonlyOk: boolean\n\tchildren: TLUiMenuChild[]\n}\n\n/** @public */\nexport type TLUiSubMenu<TranslationKey extends string = string> = {\n\tid: string\n\ttype: 'submenu'\n\tlabel: TranslationKey\n\tdisabled: boolean\n\treadonlyOk: boolean\n\tchildren: TLUiMenuChild[]\n}\n\n/** @public */\nexport type TLUiMenuSchema = (TLUiMenuGroup | TLUiMenuItem | TLUiCustomMenuItem)[]\n\n/** @public */\nexport function compactMenuItems<T>(arr: T[]): Exclude<T, null | false | undefined>[] {\n\treturn arr.filter((i) => i !== undefined && i !== null && i !== false) as any\n}\n\n/** @public */\nexport function menuGroup(\n\tid: string,\n\t...children: (TLUiMenuChild | false)[]\n): TLUiMenuGroup | null {\n\tconst childItems = compactMenuItems(children)\n\n\tif (childItems.length === 0) return null\n\n\treturn {\n\t\tid,\n\t\ttype: 'group',\n\t\tcheckbox: childItems.every((child) => child.type === 'item' && child.actionItem.checkbox),\n\t\tdisabled: childItems.every((child) => child.disabled),\n\t\treadonlyOk: childItems.some((child) => child.readonlyOk),\n\t\tchildren: childItems,\n\t}\n}\n\n/** @public */\nexport function menuSubmenu(\n\tid: string,\n\tlabel: TLUiTranslationKey | Exclude<string, TLUiTranslationKey>,\n\t...children: (TLUiMenuChild | false)[]\n): TLUiSubMenu | null {\n\tconst childItems = compactMenuItems(children)\n\tif (childItems.length === 0) return null\n\n\treturn {\n\t\tid,\n\t\ttype: 'submenu',\n\t\tlabel,\n\t\tchildren: childItems,\n\t\tdisabled: childItems.every((child) => child.disabled),\n\t\treadonlyOk: childItems.some((child) => child.readonlyOk),\n\t}\n}\n\n/** @public */\nexport function menuCustom(\n\tid: string,\n\topts = {} as Partial<{ readonlyOk: boolean; disabled: boolean }>\n) {\n\tconst { readonlyOk = true, disabled = false } = opts\n\treturn {\n\t\tid,\n\t\ttype: 'custom' as const,\n\t\tdisabled,\n\t\treadonlyOk,\n\t}\n}\n\n/** @public */\nexport function menuItem(\n\tactionItem: TLUiActionItem | TLUiToolItem,\n\topts = {} as Partial<{ checked: boolean; disabled: boolean }>\n): TLUiMenuItem {\n\tif (!actionItem) {\n\t\tthrow Error('No action item provided to menuItem')\n\t}\n\n\tif (!actionItem.label) {\n\t\tthrow Error(\"Trying to create menu item for action item that doesn't have a label\")\n\t}\n\n\tconst { checked = false, disabled = false } = opts\n\n\treturn {\n\t\tid: actionItem.id,\n\t\ttype: 'item' as const,\n\t\tactionItem,\n\t\tdisabled,\n\t\tchecked,\n\t\treadonlyOk: actionItem.readonlyOk,\n\t}\n}\n\nfunction shapesWithUnboundArrows(editor: Editor) {\n\tconst selectedShapeIds = editor.getSelectedShapeIds()\n\tconst selectedShapes = selectedShapeIds.map((id) => {\n\t\treturn editor.getShape(id)\n\t})\n\n\treturn selectedShapes.filter((shape) => {\n\t\tif (!shape) return false\n\t\tif (\n\t\t\teditor.isShapeOfType<TLArrowShape>(shape, 'arrow') &&\n\t\t\tshape.props.start.type === 'binding'\n\t\t) {\n\t\t\treturn false\n\t\t}\n\t\tif (editor.isShapeOfType<TLArrowShape>(shape, 'arrow') && shape.props.end.type === 'binding') {\n\t\t\treturn false\n\t\t}\n\t\treturn true\n\t})\n}\n\n/** @internal */\nexport const useThreeStackableItems = () => {\n\tconst editor = useEditor()\n\treturn useValue('threeStackableItems', () => shapesWithUnboundArrows(editor).length > 2, [editor])\n}\n\nfunction shapesWithArrowsBoundToThem(editor: Editor) {\n\tconst selectedShapes = editor.getSelectedShapes()\n\tconst arrows: TLArrowShape[] = []\n\tconst otherShapesMap = new Map<TLShapeId, TLShape>()\n\tselectedShapes.forEach((shape) => {\n\t\tif (shape.type === 'arrow') {\n\t\t\tarrows.push(shape as TLArrowShape)\n\t\t} else {\n\t\t\totherShapesMap.set(shape.id, shape)\n\t\t}\n\t})\n\t// We want to get all the arrows that are either unbound or bound to one of the selected shapes\n\tconst groupableArrows = arrows.filter((arrow) => {\n\t\tif (arrow.props.start.type === 'binding') {\n\t\t\tif (!otherShapesMap.has(arrow.props.start.boundShapeId)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif (arrow.props.end.type === 'binding') {\n\t\t\tif (!otherShapesMap.has(arrow.props.end.boundShapeId)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t})\n\treturn Array.from(otherShapesMap.values()).concat(groupableArrows)\n}\n\n/** @internal */\nexport const useAllowGroup = () => {\n\tconst editor = useEditor()\n\treturn useValue('allowGroup', () => shapesWithArrowsBoundToThem(editor).length > 1, [editor])\n}\n\n/** @internal */\nexport const useAllowUngroup = () => {\n\tconst editor = useEditor()\n\treturn useValue(\n\t\t'allowUngroup',\n\t\t() => editor.getSelectedShapeIds().some((id) => editor.getShape(id)?.type === 'group'),\n\t\t[editor]\n\t)\n}\n\n/** @public */\nexport function findMenuItem(menu: TLUiMenuSchema, path: string[]) {\n\tconst item = _findMenuItem(menu, path)\n\tassert(item, `Menu item ${path.join(' > ')} not found`)\n\treturn item\n}\n\nfunction _findMenuItem(menu: TLUiMenuSchema | TLUiMenuChild[], path: string[]): TLUiMenuChild {\n\tconst [next, ...rest] = path\n\tif (!next) return null\n\n\tconst item = menu.find((item) => item?.id === next)\n\tif (!item) return null\n\n\tswitch (item.type) {\n\t\tcase 'group':\n\t\tcase 'submenu':\n\t\t\treturn rest.length === 0 ? item : _findMenuItem(item.children, rest)\n\t\tcase 'item':\n\t\tcase 'custom':\n\t\t\treturn rest.length === 0 ? item : null\n\t\tdefault:\n\t\t\texhaustiveSwitchError(item, 'type')\n\t}\n}\n\nexport const showMenuPaste =\n\ttypeof window !== 'undefined' &&\n\t'navigator' in window &&\n\tBoolean(navigator.clipboard) &&\n\tBoolean(navigator.clipboard.read)\n"],
|
|
5
|
-
"mappings": "AAAA;AAAA,EAKC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAuDA,SAAS,iBAAoB,KAAkD;AACrF,SAAO,IAAI,OAAO,CAAC,MAAM,MAAM,UAAa,MAAM,QAAQ,MAAM,KAAK;AACtE;AAGO,SAAS,UACf,OACG,UACoB;AACvB,QAAM,aAAa,iBAAiB,QAAQ;AAE5C,MAAI,WAAW,WAAW
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["item"]
|
|
7
7
|
}
|