@tldraw/editor 3.16.0-next.f9f54ec051f3 → 4.0.0
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.d.ts +197 -114
- package/dist-cjs/index.js +5 -5
- package/dist-cjs/index.js.map +2 -2
- package/dist-cjs/lib/TldrawEditor.js +9 -9
- package/dist-cjs/lib/TldrawEditor.js.map +2 -2
- package/dist-cjs/lib/components/MenuClickCapture.js +0 -5
- package/dist-cjs/lib/components/MenuClickCapture.js.map +2 -2
- package/dist-cjs/lib/components/Shape.js +7 -10
- package/dist-cjs/lib/components/Shape.js.map +2 -2
- package/dist-cjs/lib/components/default-components/DefaultCanvas.js +14 -23
- package/dist-cjs/lib/components/default-components/DefaultCanvas.js.map +2 -2
- package/dist-cjs/lib/components/default-components/DefaultCollaboratorHint.js +1 -1
- package/dist-cjs/lib/components/default-components/DefaultCollaboratorHint.js.map +1 -1
- package/dist-cjs/lib/components/default-components/DefaultErrorFallback.js +1 -1
- package/dist-cjs/lib/components/default-components/DefaultErrorFallback.js.map +2 -2
- package/dist-cjs/lib/components/default-components/DefaultScribble.js +1 -1
- package/dist-cjs/lib/components/default-components/DefaultScribble.js.map +2 -2
- package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js +9 -1
- package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js.map +2 -2
- package/dist-cjs/lib/config/TLUserPreferences.js +21 -4
- package/dist-cjs/lib/config/TLUserPreferences.js.map +2 -2
- package/dist-cjs/lib/editor/Editor.js +121 -138
- package/dist-cjs/lib/editor/Editor.js.map +2 -2
- package/dist-cjs/lib/editor/derivations/notVisibleShapes.js +4 -0
- package/dist-cjs/lib/editor/derivations/notVisibleShapes.js.map +2 -2
- package/dist-cjs/lib/editor/managers/FocusManager/FocusManager.js +4 -2
- package/dist-cjs/lib/editor/managers/FocusManager/FocusManager.js.map +2 -2
- package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js +14 -4
- package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js.map +2 -2
- package/dist-cjs/lib/editor/shapes/ShapeUtil.js +23 -0
- package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +2 -2
- package/dist-cjs/lib/editor/types/misc-types.js.map +1 -1
- package/dist-cjs/lib/exports/getSvgJsx.js +35 -16
- package/dist-cjs/lib/exports/getSvgJsx.js.map +2 -2
- package/dist-cjs/lib/hooks/useCanvasEvents.js +47 -38
- package/dist-cjs/lib/hooks/useCanvasEvents.js.map +2 -2
- package/dist-cjs/lib/hooks/useDocumentEvents.js +5 -5
- package/dist-cjs/lib/hooks/useDocumentEvents.js.map +2 -2
- package/dist-cjs/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.js +1 -2
- package/dist-cjs/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.js.map +2 -2
- package/dist-cjs/lib/hooks/useGestureEvents.js +1 -1
- package/dist-cjs/lib/hooks/useGestureEvents.js.map +2 -2
- package/dist-cjs/lib/hooks/useHandleEvents.js +6 -6
- package/dist-cjs/lib/hooks/useHandleEvents.js.map +2 -2
- package/dist-cjs/lib/hooks/usePassThroughMouseOverEvents.js +4 -1
- package/dist-cjs/lib/hooks/usePassThroughMouseOverEvents.js.map +2 -2
- package/dist-cjs/lib/hooks/usePassThroughWheelEvents.js +4 -1
- package/dist-cjs/lib/hooks/usePassThroughWheelEvents.js.map +2 -2
- package/dist-cjs/lib/hooks/useSelectionEvents.js +8 -8
- package/dist-cjs/lib/hooks/useSelectionEvents.js.map +2 -2
- package/dist-cjs/lib/{utils/nearestMultiple.js → hooks/useStateAttribute.js} +15 -14
- package/dist-cjs/lib/hooks/useStateAttribute.js.map +7 -0
- package/dist-cjs/lib/license/LicenseManager.js +143 -53
- package/dist-cjs/lib/license/LicenseManager.js.map +2 -2
- package/dist-cjs/lib/license/LicenseProvider.js +39 -1
- package/dist-cjs/lib/license/LicenseProvider.js.map +2 -2
- package/dist-cjs/lib/license/Watermark.js +144 -75
- package/dist-cjs/lib/license/Watermark.js.map +3 -3
- package/dist-cjs/lib/license/useLicenseManagerState.js.map +2 -2
- package/dist-cjs/lib/options.js +7 -0
- package/dist-cjs/lib/options.js.map +2 -2
- package/dist-cjs/lib/primitives/Box.js +3 -0
- package/dist-cjs/lib/primitives/Box.js.map +2 -2
- package/dist-cjs/lib/primitives/Vec.js +0 -4
- package/dist-cjs/lib/primitives/Vec.js.map +2 -2
- package/dist-cjs/lib/primitives/geometry/Geometry2d.js +50 -20
- package/dist-cjs/lib/primitives/geometry/Geometry2d.js.map +2 -2
- package/dist-cjs/lib/primitives/geometry/Group2d.js +8 -1
- package/dist-cjs/lib/primitives/geometry/Group2d.js.map +2 -2
- package/dist-cjs/lib/utils/EditorAtom.js +45 -0
- package/dist-cjs/lib/utils/EditorAtom.js.map +7 -0
- package/dist-cjs/lib/utils/dom.js.map +2 -2
- package/dist-cjs/lib/utils/getPointerInfo.js +2 -3
- package/dist-cjs/lib/utils/getPointerInfo.js.map +2 -2
- package/dist-cjs/lib/utils/reparenting.js +7 -36
- package/dist-cjs/lib/utils/reparenting.js.map +3 -3
- package/dist-cjs/version.js +4 -4
- package/dist-cjs/version.js.map +1 -1
- package/dist-esm/index.d.mts +197 -114
- package/dist-esm/index.mjs +5 -5
- package/dist-esm/index.mjs.map +2 -2
- package/dist-esm/lib/TldrawEditor.mjs +9 -9
- package/dist-esm/lib/TldrawEditor.mjs.map +2 -2
- package/dist-esm/lib/components/MenuClickCapture.mjs +0 -5
- package/dist-esm/lib/components/MenuClickCapture.mjs.map +2 -2
- package/dist-esm/lib/components/Shape.mjs +7 -10
- package/dist-esm/lib/components/Shape.mjs.map +2 -2
- package/dist-esm/lib/components/default-components/DefaultCanvas.mjs +14 -23
- package/dist-esm/lib/components/default-components/DefaultCanvas.mjs.map +2 -2
- package/dist-esm/lib/components/default-components/DefaultCollaboratorHint.mjs +1 -1
- package/dist-esm/lib/components/default-components/DefaultCollaboratorHint.mjs.map +1 -1
- package/dist-esm/lib/components/default-components/DefaultErrorFallback.mjs +1 -1
- package/dist-esm/lib/components/default-components/DefaultErrorFallback.mjs.map +2 -2
- package/dist-esm/lib/components/default-components/DefaultScribble.mjs +1 -1
- package/dist-esm/lib/components/default-components/DefaultScribble.mjs.map +2 -2
- package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs +9 -1
- package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs.map +2 -2
- package/dist-esm/lib/config/TLUserPreferences.mjs +21 -4
- package/dist-esm/lib/config/TLUserPreferences.mjs.map +2 -2
- package/dist-esm/lib/editor/Editor.mjs +121 -138
- package/dist-esm/lib/editor/Editor.mjs.map +2 -2
- package/dist-esm/lib/editor/derivations/notVisibleShapes.mjs +4 -0
- package/dist-esm/lib/editor/derivations/notVisibleShapes.mjs.map +2 -2
- package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs +4 -2
- package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs.map +2 -2
- package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs +14 -4
- package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs.map +2 -2
- package/dist-esm/lib/editor/shapes/ShapeUtil.mjs +23 -0
- package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +2 -2
- package/dist-esm/lib/exports/getSvgJsx.mjs +36 -16
- package/dist-esm/lib/exports/getSvgJsx.mjs.map +2 -2
- package/dist-esm/lib/hooks/useCanvasEvents.mjs +49 -45
- package/dist-esm/lib/hooks/useCanvasEvents.mjs.map +2 -2
- package/dist-esm/lib/hooks/useDocumentEvents.mjs +6 -6
- package/dist-esm/lib/hooks/useDocumentEvents.mjs.map +2 -2
- package/dist-esm/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.mjs +1 -2
- package/dist-esm/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.mjs.map +2 -2
- package/dist-esm/lib/hooks/useGestureEvents.mjs +2 -2
- package/dist-esm/lib/hooks/useGestureEvents.mjs.map +2 -2
- package/dist-esm/lib/hooks/useHandleEvents.mjs +6 -6
- package/dist-esm/lib/hooks/useHandleEvents.mjs.map +2 -2
- package/dist-esm/lib/hooks/usePassThroughMouseOverEvents.mjs +4 -1
- package/dist-esm/lib/hooks/usePassThroughMouseOverEvents.mjs.map +2 -2
- package/dist-esm/lib/hooks/usePassThroughWheelEvents.mjs +4 -1
- package/dist-esm/lib/hooks/usePassThroughWheelEvents.mjs.map +2 -2
- package/dist-esm/lib/hooks/useSelectionEvents.mjs +9 -14
- package/dist-esm/lib/hooks/useSelectionEvents.mjs.map +2 -2
- package/dist-esm/lib/hooks/useStateAttribute.mjs +15 -0
- package/dist-esm/lib/hooks/useStateAttribute.mjs.map +7 -0
- package/dist-esm/lib/license/LicenseManager.mjs +144 -54
- package/dist-esm/lib/license/LicenseManager.mjs.map +2 -2
- package/dist-esm/lib/license/LicenseProvider.mjs +39 -2
- package/dist-esm/lib/license/LicenseProvider.mjs.map +2 -2
- package/dist-esm/lib/license/Watermark.mjs +145 -76
- package/dist-esm/lib/license/Watermark.mjs.map +3 -3
- package/dist-esm/lib/license/useLicenseManagerState.mjs.map +2 -2
- package/dist-esm/lib/options.mjs +7 -0
- package/dist-esm/lib/options.mjs.map +2 -2
- package/dist-esm/lib/primitives/Box.mjs +4 -1
- package/dist-esm/lib/primitives/Box.mjs.map +2 -2
- package/dist-esm/lib/primitives/Vec.mjs +0 -4
- package/dist-esm/lib/primitives/Vec.mjs.map +2 -2
- package/dist-esm/lib/primitives/geometry/Geometry2d.mjs +53 -21
- package/dist-esm/lib/primitives/geometry/Geometry2d.mjs.map +2 -2
- package/dist-esm/lib/primitives/geometry/Group2d.mjs +8 -1
- package/dist-esm/lib/primitives/geometry/Group2d.mjs.map +2 -2
- package/dist-esm/lib/utils/EditorAtom.mjs +25 -0
- package/dist-esm/lib/utils/EditorAtom.mjs.map +7 -0
- package/dist-esm/lib/utils/dom.mjs.map +2 -2
- package/dist-esm/lib/utils/getPointerInfo.mjs +2 -3
- package/dist-esm/lib/utils/getPointerInfo.mjs.map +2 -2
- package/dist-esm/lib/utils/reparenting.mjs +8 -41
- package/dist-esm/lib/utils/reparenting.mjs.map +2 -2
- package/dist-esm/version.mjs +4 -4
- package/dist-esm/version.mjs.map +1 -1
- package/editor.css +308 -290
- package/package.json +14 -37
- package/src/index.ts +4 -9
- package/src/lib/TldrawEditor.tsx +14 -21
- package/src/lib/components/MenuClickCapture.tsx +0 -8
- package/src/lib/components/Shape.tsx +6 -12
- package/src/lib/components/default-components/DefaultCanvas.tsx +11 -22
- package/src/lib/components/default-components/DefaultCollaboratorHint.tsx +1 -1
- package/src/lib/components/default-components/DefaultErrorFallback.tsx +1 -1
- package/src/lib/components/default-components/DefaultScribble.tsx +1 -1
- package/src/lib/components/default-components/DefaultShapeIndicator.tsx +5 -1
- package/src/lib/config/TLUserPreferences.ts +21 -1
- package/src/lib/editor/Editor.test.ts +102 -11
- package/src/lib/editor/Editor.ts +165 -198
- package/src/lib/editor/derivations/notVisibleShapes.ts +6 -0
- package/src/lib/editor/managers/ClickManager/ClickManager.test.ts +15 -14
- package/src/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.test.ts +16 -15
- package/src/lib/editor/managers/FocusManager/FocusManager.test.ts +49 -48
- package/src/lib/editor/managers/FocusManager/FocusManager.ts +6 -2
- package/src/lib/editor/managers/FontManager/FontManager.test.ts +24 -23
- package/src/lib/editor/managers/HistoryManager/HistoryManager.test.ts +7 -6
- package/src/lib/editor/managers/ScribbleManager/ScribbleManager.test.ts +12 -11
- package/src/lib/editor/managers/SnapManager/SnapManager.test.ts +57 -50
- package/src/lib/editor/managers/TextManager/TextManager.test.ts +51 -26
- package/src/lib/editor/managers/TickManager/TickManager.test.ts +14 -13
- package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.test.ts +56 -26
- package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.ts +13 -1
- package/src/lib/editor/shapes/ShapeUtil.ts +46 -0
- package/src/lib/editor/types/misc-types.ts +54 -7
- package/src/lib/exports/getSvgJsx.test.ts +868 -0
- package/src/lib/exports/getSvgJsx.tsx +78 -21
- package/src/lib/hooks/useCanvasEvents.ts +62 -55
- package/src/lib/hooks/useDocumentEvents.ts +6 -6
- package/src/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.ts +1 -1
- package/src/lib/hooks/useGestureEvents.ts +2 -2
- package/src/lib/hooks/useHandleEvents.ts +6 -6
- package/src/lib/hooks/usePassThroughMouseOverEvents.ts +4 -1
- package/src/lib/hooks/usePassThroughWheelEvents.ts +6 -1
- package/src/lib/hooks/useSelectionEvents.ts +9 -14
- package/src/lib/hooks/useStateAttribute.ts +15 -0
- package/src/lib/license/LicenseManager.test.ts +724 -383
- package/src/lib/license/LicenseManager.ts +204 -58
- package/src/lib/license/LicenseProvider.tsx +74 -2
- package/src/lib/license/Watermark.test.tsx +2 -1
- package/src/lib/license/Watermark.tsx +152 -77
- package/src/lib/license/useLicenseManagerState.ts +2 -2
- package/src/lib/options.ts +8 -0
- package/src/lib/primitives/Box.test.ts +126 -0
- package/src/lib/primitives/Box.ts +10 -1
- package/src/lib/primitives/Vec.ts +0 -5
- package/src/lib/primitives/geometry/Geometry2d.test.ts +420 -0
- package/src/lib/primitives/geometry/Geometry2d.ts +78 -21
- package/src/lib/primitives/geometry/Group2d.ts +10 -1
- package/src/lib/test/InFrontOfTheCanvas.test.tsx +187 -0
- package/src/lib/utils/EditorAtom.ts +37 -0
- package/src/lib/utils/dom.test.ts +103 -0
- package/src/lib/utils/dom.ts +8 -1
- package/src/lib/utils/getPointerInfo.ts +3 -2
- package/src/lib/utils/reparenting.ts +10 -70
- package/src/lib/utils/sync/LocalIndexedDb.test.ts +2 -1
- package/src/lib/utils/sync/TLLocalSyncClient.test.ts +15 -15
- package/src/version.ts +4 -4
- package/dist-cjs/lib/utils/nearestMultiple.js.map +0 -7
- package/dist-esm/lib/utils/nearestMultiple.mjs +0 -14
- package/dist-esm/lib/utils/nearestMultiple.mjs.map +0 -7
- package/src/lib/utils/nearestMultiple.ts +0 -13
|
@@ -88,7 +88,6 @@ var import_defaultShapes = require("../config/defaultShapes");
|
|
|
88
88
|
var import_constants = require("../constants");
|
|
89
89
|
var import_exportToSvg = require("../exports/exportToSvg");
|
|
90
90
|
var import_getSvgAsImage = require("../exports/getSvgAsImage");
|
|
91
|
-
var import_environment = require("../globals/environment");
|
|
92
91
|
var import_menus = require("../globals/menus");
|
|
93
92
|
var import_time = require("../globals/time");
|
|
94
93
|
var import_options = require("../options");
|
|
@@ -123,8 +122,8 @@ var import_TextManager = require("./managers/TextManager/TextManager");
|
|
|
123
122
|
var import_TickManager = require("./managers/TickManager/TickManager");
|
|
124
123
|
var import_UserPreferencesManager = require("./managers/UserPreferencesManager/UserPreferencesManager");
|
|
125
124
|
var import_RootState = require("./tools/RootState");
|
|
126
|
-
var __setMetaKeyTimeout_dec, __setCtrlKeyTimeout_dec, __setAltKeyTimeout_dec, __setShiftKeyTimeout_dec, _getIsReadonly_dec, _getIsFocused_dec, _getSharedOpacity_dec, _getSharedStyles_dec, __getSelectionSharedStyles_dec, __getBindingsIndexCache_dec, _getCurrentPageRenderingShapesSorted_dec, _getCurrentPageShapesSorted_dec, _getCurrentPageShapes_dec, _getCurrentPageBounds_dec, _getCulledShapes_dec, _getNotVisibleShapes_dec, __getShapeMaskedPageBoundsCache_dec, __getShapeMaskCache_dec, __getShapeClipPathCache_dec, __getShapePageBoundsCache_dec, __getShapePageTransformCache_dec, __getShapeHandlesCache_dec, __getAllAssetsQuery_dec, _getCurrentPageShapeIdsSorted_dec, _getCurrentPageId_dec, _getPages_dec, __getAllPagesQuery_dec, _getRenderingShapes_dec, _getCollaboratorsOnCurrentPage_dec, _getCollaborators_dec, __getCollaboratorsQuery_dec, _getViewportPageBounds_dec, _getViewportScreenCenter_dec, _getViewportScreenBounds_dec, _getZoomLevel_dec, _getCameraForFollowing_dec, _getViewportPageBoundsForFollowing_dec, _getCamera_dec, __unsafe_getCameraId_dec, _getErasingShapes_dec, _getErasingShapeIds_dec, _getHintingShape_dec, _getHintingShapeIds_dec, _getHoveredShape_dec, _getHoveredShapeId_dec, _getRichTextEditor_dec, _getEditingShape_dec, _getEditingShapeId_dec, _getFocusedGroup_dec, _getFocusedGroupId_dec, _getSelectionRotatedScreenBounds_dec, _getSelectionRotatedPageBounds_dec, _getSelectionRotation_dec, _getSelectionPageBounds_dec, _getOnlySelectedShape_dec, _getOnlySelectedShapeId_dec, _getCurrentPageShapesInReadingOrder_dec, _getSelectedShapes_dec, _getSelectedShapeIds_dec, __getCurrentPageStateId_dec, _getCurrentPageState_dec, __getPageStatesQuery_dec, _getPageStates_dec,
|
|
127
|
-
class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_dec = [import_state.computed], _getCanUndo_dec = [import_state.computed], _getCanRedo_dec = [import_state.computed], _getPath_dec = [import_state.computed], _getCurrentTool_dec = [import_state.computed], _getCurrentToolId_dec = [import_state.computed], _getDocumentSettings_dec = [import_state.computed], _getInstanceState_dec = [import_state.computed],
|
|
125
|
+
var __setMetaKeyTimeout_dec, __setCtrlKeyTimeout_dec, __setAltKeyTimeout_dec, __setShiftKeyTimeout_dec, _getIsReadonly_dec, _getIsFocused_dec, _getSharedOpacity_dec, _getSharedStyles_dec, __getSelectionSharedStyles_dec, __getBindingsIndexCache_dec, _getCurrentPageRenderingShapesSorted_dec, _getCurrentPageShapesSorted_dec, _getCurrentPageShapes_dec, _getCurrentPageBounds_dec, _getCulledShapes_dec, _getNotVisibleShapes_dec, __getShapeMaskedPageBoundsCache_dec, __getShapeMaskCache_dec, __getShapeClipPathCache_dec, __getShapePageBoundsCache_dec, __getShapePageTransformCache_dec, __getShapeHandlesCache_dec, __getAllAssetsQuery_dec, _getCurrentPageShapeIdsSorted_dec, _getCurrentPageId_dec, _getPages_dec, __getAllPagesQuery_dec, _getRenderingShapes_dec, _getCollaboratorsOnCurrentPage_dec, _getCollaborators_dec, __getCollaboratorsQuery_dec, _getViewportPageBounds_dec, _getViewportScreenCenter_dec, _getViewportScreenBounds_dec, _getZoomLevel_dec, _getCameraForFollowing_dec, _getViewportPageBoundsForFollowing_dec, _getCamera_dec, __unsafe_getCameraId_dec, _getErasingShapes_dec, _getErasingShapeIds_dec, _getHintingShape_dec, _getHintingShapeIds_dec, _getHoveredShape_dec, _getHoveredShapeId_dec, _getRichTextEditor_dec, _getEditingShape_dec, _getEditingShapeId_dec, _getFocusedGroup_dec, _getFocusedGroupId_dec, _getSelectionRotatedScreenBounds_dec, _getSelectionRotatedPageBounds_dec, _getSelectionRotation_dec, _getSelectionPageBounds_dec, _getOnlySelectedShape_dec, _getOnlySelectedShapeId_dec, _getCurrentPageShapesInReadingOrder_dec, _getSelectedShapes_dec, _getSelectedShapeIds_dec, __getCurrentPageStateId_dec, _getCurrentPageState_dec, __getPageStatesQuery_dec, _getPageStates_dec, _getInstanceState_dec, _getDocumentSettings_dec, _getCurrentToolId_dec, _getCurrentTool_dec, _getPath_dec, _getCanRedo_dec, _getCanUndo_dec, _getIsShapeHiddenCache_dec, _a, _init;
|
|
126
|
+
class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_dec = [import_state.computed], _getCanUndo_dec = [import_state.computed], _getCanRedo_dec = [import_state.computed], _getPath_dec = [import_state.computed], _getCurrentTool_dec = [import_state.computed], _getCurrentToolId_dec = [import_state.computed], _getDocumentSettings_dec = [import_state.computed], _getInstanceState_dec = [import_state.computed], _getPageStates_dec = [import_state.computed], __getPageStatesQuery_dec = [import_state.computed], _getCurrentPageState_dec = [import_state.computed], __getCurrentPageStateId_dec = [import_state.computed], _getSelectedShapeIds_dec = [import_state.computed], _getSelectedShapes_dec = [import_state.computed], _getCurrentPageShapesInReadingOrder_dec = [import_state.computed], _getOnlySelectedShapeId_dec = [import_state.computed], _getOnlySelectedShape_dec = [import_state.computed], _getSelectionPageBounds_dec = [import_state.computed], _getSelectionRotation_dec = [import_state.computed], _getSelectionRotatedPageBounds_dec = [import_state.computed], _getSelectionRotatedScreenBounds_dec = [import_state.computed], _getFocusedGroupId_dec = [import_state.computed], _getFocusedGroup_dec = [import_state.computed], _getEditingShapeId_dec = [import_state.computed], _getEditingShape_dec = [import_state.computed], _getRichTextEditor_dec = [import_state.computed], _getHoveredShapeId_dec = [import_state.computed], _getHoveredShape_dec = [import_state.computed], _getHintingShapeIds_dec = [import_state.computed], _getHintingShape_dec = [import_state.computed], _getErasingShapeIds_dec = [import_state.computed], _getErasingShapes_dec = [import_state.computed], __unsafe_getCameraId_dec = [import_state.computed], _getCamera_dec = [import_state.computed], _getViewportPageBoundsForFollowing_dec = [import_state.computed], _getCameraForFollowing_dec = [import_state.computed], _getZoomLevel_dec = [import_state.computed], _getViewportScreenBounds_dec = [import_state.computed], _getViewportScreenCenter_dec = [import_state.computed], _getViewportPageBounds_dec = [import_state.computed], __getCollaboratorsQuery_dec = [import_state.computed], _getCollaborators_dec = [import_state.computed], _getCollaboratorsOnCurrentPage_dec = [import_state.computed], _getRenderingShapes_dec = [import_state.computed], __getAllPagesQuery_dec = [import_state.computed], _getPages_dec = [import_state.computed], _getCurrentPageId_dec = [import_state.computed], _getCurrentPageShapeIdsSorted_dec = [import_state.computed], __getAllAssetsQuery_dec = [import_state.computed], __getShapeHandlesCache_dec = [import_state.computed], __getShapePageTransformCache_dec = [import_state.computed], __getShapePageBoundsCache_dec = [import_state.computed], __getShapeClipPathCache_dec = [import_state.computed], __getShapeMaskCache_dec = [import_state.computed], __getShapeMaskedPageBoundsCache_dec = [import_state.computed], _getNotVisibleShapes_dec = [import_state.computed], _getCulledShapes_dec = [import_state.computed], _getCurrentPageBounds_dec = [import_state.computed], _getCurrentPageShapes_dec = [import_state.computed], _getCurrentPageShapesSorted_dec = [import_state.computed], _getCurrentPageRenderingShapesSorted_dec = [import_state.computed], __getBindingsIndexCache_dec = [import_state.computed], __getSelectionSharedStyles_dec = [import_state.computed], _getSharedStyles_dec = [(0, import_state.computed)({ isEqual: (a, b) => a.equals(b) })], _getSharedOpacity_dec = [import_state.computed], _getIsFocused_dec = [import_state.computed], _getIsReadonly_dec = [import_state.computed], __setShiftKeyTimeout_dec = [import_utils.bind], __setAltKeyTimeout_dec = [import_utils.bind], __setCtrlKeyTimeout_dec = [import_utils.bind], __setMetaKeyTimeout_dec = [import_utils.bind], _a) {
|
|
128
127
|
constructor({
|
|
129
128
|
store,
|
|
130
129
|
user,
|
|
@@ -138,8 +137,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
138
137
|
autoFocus,
|
|
139
138
|
inferDarkMode,
|
|
140
139
|
options,
|
|
141
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
142
|
-
isShapeHidden,
|
|
143
140
|
getShapeVisibility,
|
|
144
141
|
fontAssetUrls
|
|
145
142
|
}) {
|
|
@@ -206,13 +203,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
206
203
|
* @public
|
|
207
204
|
*/
|
|
208
205
|
__publicField(this, "fonts");
|
|
209
|
-
/**
|
|
210
|
-
* A manager for the editor's environment.
|
|
211
|
-
*
|
|
212
|
-
* @deprecated This is deprecated and will be removed in a future version. Use the `tlenv` global export instead.
|
|
213
|
-
* @public
|
|
214
|
-
*/
|
|
215
|
-
__publicField(this, "environment", import_environment.tlenv);
|
|
216
206
|
/**
|
|
217
207
|
* A manager for the editor's scribbles.
|
|
218
208
|
*
|
|
@@ -414,15 +404,10 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
414
404
|
__publicField(this, "performanceTracker");
|
|
415
405
|
/** @internal */
|
|
416
406
|
__publicField(this, "performanceTrackerTimeout", -1);
|
|
407
|
+
/** @internal */
|
|
408
|
+
__publicField(this, "handledEvents", /* @__PURE__ */ new WeakSet());
|
|
417
409
|
__publicField(this, "_pendingEventsForNextTick", []);
|
|
418
|
-
|
|
419
|
-
!(isShapeHidden && getShapeVisibility),
|
|
420
|
-
"Cannot use both isShapeHidden and getShapeVisibility"
|
|
421
|
-
);
|
|
422
|
-
this._getShapeVisibility = isShapeHidden ? (
|
|
423
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
424
|
-
(shape, editor) => isShapeHidden(shape, editor) ? "hidden" : "inherit"
|
|
425
|
-
) : getShapeVisibility;
|
|
410
|
+
this._getShapeVisibility = getShapeVisibility;
|
|
426
411
|
this.options = { ...import_options.defaultTldrawOptions, ...options };
|
|
427
412
|
this.store = store;
|
|
428
413
|
this.history = new import_HistoryManager.HistoryManager({
|
|
@@ -448,6 +433,7 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
448
433
|
}
|
|
449
434
|
this.root = new NewRoot(this);
|
|
450
435
|
this.root.children = {};
|
|
436
|
+
this.markEventAsHandled = this.markEventAsHandled.bind(this);
|
|
451
437
|
const allShapeUtils = (0, import_defaultShapes.checkShapesAndAddCore)(shapeUtils);
|
|
452
438
|
const _shapeUtils = {};
|
|
453
439
|
const _styleProps = {};
|
|
@@ -902,34 +888,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
902
888
|
getCanRedo() {
|
|
903
889
|
return this.history.getNumRedos() > 0;
|
|
904
890
|
}
|
|
905
|
-
/**
|
|
906
|
-
* Create a new "mark", or stopping point, in the undo redo history. Creating a mark will clear
|
|
907
|
-
* any redos.
|
|
908
|
-
*
|
|
909
|
-
* @example
|
|
910
|
-
* ```ts
|
|
911
|
-
* editor.mark()
|
|
912
|
-
* editor.mark('flip shapes')
|
|
913
|
-
* ```
|
|
914
|
-
*
|
|
915
|
-
* @param markId - The mark's id, usually the reason for adding the mark.
|
|
916
|
-
*
|
|
917
|
-
* @public
|
|
918
|
-
* @deprecated use {@link Editor.markHistoryStoppingPoint} instead
|
|
919
|
-
*/
|
|
920
|
-
mark(markId) {
|
|
921
|
-
if (typeof markId === "string") {
|
|
922
|
-
console.warn(
|
|
923
|
-
`[tldraw] \`editor.history.mark("${markId}")\` is deprecated. Please use \`const myMarkId = editor.markHistoryStoppingPoint()\` instead.`
|
|
924
|
-
);
|
|
925
|
-
} else {
|
|
926
|
-
console.warn(
|
|
927
|
-
"[tldraw] `editor.mark()` is deprecated. Use `editor.markHistoryStoppingPoint()` instead."
|
|
928
|
-
);
|
|
929
|
-
}
|
|
930
|
-
this.history._mark(markId ?? (0, import_utils.uniqueId)());
|
|
931
|
-
return this;
|
|
932
|
-
}
|
|
933
891
|
/**
|
|
934
892
|
* Create a new "mark", or stopping point, in the undo redo history. Creating a mark will clear
|
|
935
893
|
* any redos. You typically want to do this just before a user interaction begins or is handled.
|
|
@@ -1045,12 +1003,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
1045
1003
|
}
|
|
1046
1004
|
return this;
|
|
1047
1005
|
}
|
|
1048
|
-
/**
|
|
1049
|
-
* @deprecated Use `Editor.run` instead.
|
|
1050
|
-
*/
|
|
1051
|
-
batch(fn, opts) {
|
|
1052
|
-
return this.run(fn, opts);
|
|
1053
|
-
}
|
|
1054
1006
|
/* --------------------- Errors --------------------- */
|
|
1055
1007
|
/** @internal */
|
|
1056
1008
|
annotateError(error, {
|
|
@@ -1272,39 +1224,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
1272
1224
|
]);
|
|
1273
1225
|
}, opts);
|
|
1274
1226
|
}
|
|
1275
|
-
getOpenMenus() {
|
|
1276
|
-
return this.menus.getOpenMenus();
|
|
1277
|
-
}
|
|
1278
|
-
/**
|
|
1279
|
-
* @deprecated Use `editor.menus.addOpenMenu` instead.
|
|
1280
|
-
*
|
|
1281
|
-
* @public
|
|
1282
|
-
*/
|
|
1283
|
-
addOpenMenu(id) {
|
|
1284
|
-
this.menus.addOpenMenu(id);
|
|
1285
|
-
return this;
|
|
1286
|
-
}
|
|
1287
|
-
/**
|
|
1288
|
-
* @deprecated Use `editor.menus.deleteOpenMenu` instead.
|
|
1289
|
-
*
|
|
1290
|
-
* @public
|
|
1291
|
-
*/
|
|
1292
|
-
deleteOpenMenu(id) {
|
|
1293
|
-
this.menus.deleteOpenMenu(id);
|
|
1294
|
-
return this;
|
|
1295
|
-
}
|
|
1296
|
-
/**
|
|
1297
|
-
* @deprecated Use `editor.menus.clearOpenMenus` instead.
|
|
1298
|
-
*
|
|
1299
|
-
* @public
|
|
1300
|
-
*/
|
|
1301
|
-
clearOpenMenus() {
|
|
1302
|
-
this.menus.clearOpenMenus();
|
|
1303
|
-
return this;
|
|
1304
|
-
}
|
|
1305
|
-
getIsMenuOpen() {
|
|
1306
|
-
return this.menus.hasAnyOpenMenus();
|
|
1307
|
-
}
|
|
1308
1227
|
/* --------------------- Cursor --------------------- */
|
|
1309
1228
|
/**
|
|
1310
1229
|
* Set the cursor.
|
|
@@ -3612,8 +3531,9 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
3612
3531
|
return this.store.createComputedCache("pageBoundsCache", (shape) => {
|
|
3613
3532
|
const pageTransform = this.getShapePageTransform(shape);
|
|
3614
3533
|
if (!pageTransform) return void 0;
|
|
3615
|
-
|
|
3616
|
-
|
|
3534
|
+
return import_Box.Box.FromPoints(
|
|
3535
|
+
pageTransform.applyToPoints(this.getShapeGeometry(shape).boundsVertices)
|
|
3536
|
+
);
|
|
3617
3537
|
});
|
|
3618
3538
|
}
|
|
3619
3539
|
/**
|
|
@@ -3666,16 +3586,17 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
3666
3586
|
_getShapeMaskCache() {
|
|
3667
3587
|
return this.store.createComputedCache("pageMaskCache", (shape) => {
|
|
3668
3588
|
if ((0, import_tlschema.isPageId)(shape.parentId)) return void 0;
|
|
3669
|
-
const
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3674
|
-
|
|
3675
|
-
const pageTransform = this.getShapePageTransform(
|
|
3676
|
-
|
|
3677
|
-
}
|
|
3678
|
-
|
|
3589
|
+
const clipPaths = [];
|
|
3590
|
+
for (const ancestor of this.getShapeAncestors(shape.id)) {
|
|
3591
|
+
const util = this.getShapeUtil(ancestor);
|
|
3592
|
+
const clipPath = util.getClipPath?.(ancestor);
|
|
3593
|
+
if (!clipPath) continue;
|
|
3594
|
+
if (util.shouldClipChild?.(shape) === false) continue;
|
|
3595
|
+
const pageTransform = this.getShapePageTransform(ancestor.id);
|
|
3596
|
+
clipPaths.push(pageTransform.applyToPoints(clipPath));
|
|
3597
|
+
}
|
|
3598
|
+
if (clipPaths.length === 0) return void 0;
|
|
3599
|
+
const pageMask = clipPaths.reduce((acc, b) => {
|
|
3679
3600
|
const intersection = (0, import_intersect.intersectPolygonPolygon)(acc, b);
|
|
3680
3601
|
if (intersection) {
|
|
3681
3602
|
return intersection.map(import_Vec.Vec.Cast);
|
|
@@ -3910,6 +3831,7 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
3910
3831
|
hitInside = false,
|
|
3911
3832
|
hitFrameInside = false
|
|
3912
3833
|
} = opts;
|
|
3834
|
+
const [innerMargin, outerMargin] = Array.isArray(margin) ? margin : [margin, margin];
|
|
3913
3835
|
let inHollowSmallestArea = Infinity;
|
|
3914
3836
|
let inHollowSmallestAreaHit = null;
|
|
3915
3837
|
let inMarginClosestToEdgeDistance = Infinity;
|
|
@@ -3919,7 +3841,7 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
3919
3841
|
return false;
|
|
3920
3842
|
const pageMask = this.getShapeMask(shape);
|
|
3921
3843
|
if (pageMask && !(0, import_utils2.pointInPolygon)(point, pageMask)) return false;
|
|
3922
|
-
if (filter
|
|
3844
|
+
if (filter && !filter(shape)) return false;
|
|
3923
3845
|
return true;
|
|
3924
3846
|
});
|
|
3925
3847
|
for (let i = shapesToCheck.length - 1; i >= 0; i--) {
|
|
@@ -3935,8 +3857,8 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
3935
3857
|
}
|
|
3936
3858
|
}
|
|
3937
3859
|
if (this.isShapeOfType(shape, "frame")) {
|
|
3938
|
-
const distance2 = geometry.distanceToPoint(pointInShapeSpace,
|
|
3939
|
-
if (
|
|
3860
|
+
const distance2 = geometry.distanceToPoint(pointInShapeSpace, hitFrameInside);
|
|
3861
|
+
if (hitFrameInside ? distance2 > 0 && distance2 <= outerMargin || distance2 <= 0 && distance2 > -innerMargin : distance2 > 0 && distance2 <= outerMargin) {
|
|
3940
3862
|
return inMarginClosestToEdgeHit || shape;
|
|
3941
3863
|
}
|
|
3942
3864
|
if (geometry.hitTestPoint(pointInShapeSpace, 0, true)) {
|
|
@@ -3956,10 +3878,10 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
3956
3878
|
}
|
|
3957
3879
|
distance = minDistance;
|
|
3958
3880
|
} else {
|
|
3959
|
-
if (
|
|
3881
|
+
if (outerMargin === 0 && (geometry.bounds.w < 1 || geometry.bounds.h < 1)) {
|
|
3960
3882
|
distance = geometry.distanceToPoint(pointInShapeSpace, hitInside);
|
|
3961
3883
|
} else {
|
|
3962
|
-
if (geometry.bounds.containsPoint(pointInShapeSpace,
|
|
3884
|
+
if (geometry.bounds.containsPoint(pointInShapeSpace, outerMargin)) {
|
|
3963
3885
|
distance = geometry.distanceToPoint(pointInShapeSpace, hitInside);
|
|
3964
3886
|
} else {
|
|
3965
3887
|
distance = Infinity;
|
|
@@ -3967,12 +3889,22 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
3967
3889
|
}
|
|
3968
3890
|
}
|
|
3969
3891
|
if (geometry.isClosed) {
|
|
3970
|
-
if (distance <=
|
|
3892
|
+
if (distance <= outerMargin || hitInside && distance <= 0 && distance > -innerMargin) {
|
|
3971
3893
|
if (geometry.isFilled || isGroup && geometry.children[0].isFilled) {
|
|
3972
3894
|
return inMarginClosestToEdgeHit || shape;
|
|
3973
3895
|
} else {
|
|
3974
3896
|
if (this.getShapePageBounds(shape).contains(viewportPageBounds)) continue;
|
|
3975
|
-
if (
|
|
3897
|
+
if (hitInside ? (
|
|
3898
|
+
// On hitInside, the distance will be negative for hits inside
|
|
3899
|
+
// If the distance is positive, check against the outer margin
|
|
3900
|
+
distance > 0 && distance <= outerMargin || // If the distance is negative, check against the inner margin
|
|
3901
|
+
distance <= 0 && distance > -innerMargin
|
|
3902
|
+
) : (
|
|
3903
|
+
// If hitInside is false, then sadly _we do not know_ whether the
|
|
3904
|
+
// point is inside or outside of the shape, so we check against
|
|
3905
|
+
// the max of the two margins
|
|
3906
|
+
Math.abs(distance) <= Math.max(innerMargin, outerMargin)
|
|
3907
|
+
)) {
|
|
3976
3908
|
if (Math.abs(distance) < inMarginClosestToEdgeDistance) {
|
|
3977
3909
|
inMarginClosestToEdgeDistance = Math.abs(distance);
|
|
3978
3910
|
inMarginClosestToEdgeHit = shape;
|
|
@@ -4362,10 +4294,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
4362
4294
|
}
|
|
4363
4295
|
return shapeIds;
|
|
4364
4296
|
}
|
|
4365
|
-
/** @deprecated Use {@link Editor.getDraggingOverShape} instead */
|
|
4366
|
-
getDroppingOverShape(point, droppingShapes) {
|
|
4367
|
-
return this.getDraggingOverShape(point, droppingShapes);
|
|
4368
|
-
}
|
|
4369
4297
|
/**
|
|
4370
4298
|
* Get the shape that some shapes should be dropped on at a given point.
|
|
4371
4299
|
*
|
|
@@ -4737,7 +4665,16 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
4737
4665
|
}
|
|
4738
4666
|
this.createShapes(shapesToCreate);
|
|
4739
4667
|
this.createBindings(bindingsToCreate);
|
|
4740
|
-
this.setSelectedShapes(
|
|
4668
|
+
this.setSelectedShapes(
|
|
4669
|
+
(0, import_utils.compact)(
|
|
4670
|
+
ids.map((oldId) => {
|
|
4671
|
+
const newId = shapeIds.get(oldId);
|
|
4672
|
+
if (!newId) return null;
|
|
4673
|
+
if (!this.getShape(newId)) return null;
|
|
4674
|
+
return newId;
|
|
4675
|
+
})
|
|
4676
|
+
)
|
|
4677
|
+
);
|
|
4741
4678
|
if (offset !== void 0) {
|
|
4742
4679
|
const selectionPageBounds = this.getSelectionPageBounds();
|
|
4743
4680
|
const viewportPageBounds = this.getViewportPageBounds();
|
|
@@ -5491,8 +5428,7 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
5491
5428
|
const shapesMovingTogether = [shape];
|
|
5492
5429
|
const boundsOfShapesMovingTogether = [shapePageBounds];
|
|
5493
5430
|
if (!this.getShapeUtil(shape).canBeLaidOut?.(shape, {
|
|
5494
|
-
type: "stretch"
|
|
5495
|
-
shapes: shapesToStretchFirstPass
|
|
5431
|
+
type: "stretch"
|
|
5496
5432
|
})) {
|
|
5497
5433
|
continue;
|
|
5498
5434
|
}
|
|
@@ -5817,21 +5753,24 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
5817
5753
|
}
|
|
5818
5754
|
if (!partial.parentId || !(this.store.has(partial.parentId) || shapes.some((p) => p.id === partial.parentId))) {
|
|
5819
5755
|
let parentId = this.getFocusedGroupId();
|
|
5820
|
-
|
|
5821
|
-
|
|
5822
|
-
|
|
5823
|
-
|
|
5824
|
-
parent
|
|
5825
|
-
|
|
5826
|
-
|
|
5827
|
-
|
|
5828
|
-
|
|
5829
|
-
|
|
5830
|
-
|
|
5756
|
+
const isPositioned = partial.x !== void 0 && partial.y !== void 0;
|
|
5757
|
+
if (isPositioned) {
|
|
5758
|
+
for (let i = currentPageShapesSorted.length - 1; i >= 0; i--) {
|
|
5759
|
+
const parent = currentPageShapesSorted[i];
|
|
5760
|
+
const util = this.getShapeUtil(parent);
|
|
5761
|
+
if (util.canReceiveNewChildrenOfType(parent, partial.type) && !this.isShapeHidden(parent) && this.isPointInShape(
|
|
5762
|
+
parent,
|
|
5763
|
+
// If no parent is provided, then we can treat the
|
|
5764
|
+
// shape's provided x/y as being in the page's space.
|
|
5765
|
+
{ x: partial.x ?? 0, y: partial.y ?? 0 },
|
|
5766
|
+
{
|
|
5767
|
+
margin: 0,
|
|
5768
|
+
hitInside: true
|
|
5769
|
+
}
|
|
5770
|
+
)) {
|
|
5771
|
+
parentId = parent.id;
|
|
5772
|
+
break;
|
|
5831
5773
|
}
|
|
5832
|
-
)) {
|
|
5833
|
-
parentId = parent.id;
|
|
5834
|
-
break;
|
|
5835
5774
|
}
|
|
5836
5775
|
}
|
|
5837
5776
|
const prevParentId = partial.parentId;
|
|
@@ -6502,16 +6441,20 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
6502
6441
|
* Handle external content, such as files, urls, embeds, or plain text which has been put into the app, for example by pasting external text or dropping external images onto canvas.
|
|
6503
6442
|
*
|
|
6504
6443
|
* @param info - Info about the external content.
|
|
6444
|
+
* @param opts - Options for handling external content, including force flag to bypass readonly checks.
|
|
6505
6445
|
*/
|
|
6506
|
-
async putExternalContent(info) {
|
|
6446
|
+
async putExternalContent(info, opts = {}) {
|
|
6447
|
+
if (!opts.force && this.getIsReadonly()) return;
|
|
6507
6448
|
return this.externalContentHandlers[info.type]?.(info);
|
|
6508
6449
|
}
|
|
6509
6450
|
/**
|
|
6510
6451
|
* Handle replacing external content.
|
|
6511
6452
|
*
|
|
6512
6453
|
* @param info - Info about the external content.
|
|
6454
|
+
* @param opts - Options for handling external content, including force flag to bypass readonly checks.
|
|
6513
6455
|
*/
|
|
6514
|
-
async replaceExternalContent(info) {
|
|
6456
|
+
async replaceExternalContent(info, opts = {}) {
|
|
6457
|
+
if (!opts.force && this.getIsReadonly()) return;
|
|
6515
6458
|
return this.externalContentHandlers[info.type]?.(info);
|
|
6516
6459
|
}
|
|
6517
6460
|
/**
|
|
@@ -6865,12 +6808,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
6865
6808
|
height: result.height
|
|
6866
6809
|
};
|
|
6867
6810
|
}
|
|
6868
|
-
/** @deprecated Use {@link Editor.getSvgString} or {@link Editor.getSvgElement} instead. */
|
|
6869
|
-
async getSvg(shapes, opts = {}) {
|
|
6870
|
-
const result = await this.getSvgElement(shapes, opts);
|
|
6871
|
-
if (!result) return void 0;
|
|
6872
|
-
return result.svg;
|
|
6873
|
-
}
|
|
6874
6811
|
/**
|
|
6875
6812
|
* Get an exported image of the given shapes.
|
|
6876
6813
|
*
|
|
@@ -6920,6 +6857,23 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
6920
6857
|
}
|
|
6921
6858
|
}
|
|
6922
6859
|
}
|
|
6860
|
+
/**
|
|
6861
|
+
* Get an exported image of the given shapes as a data URL.
|
|
6862
|
+
*
|
|
6863
|
+
* @param shapes - The shapes (or shape ids) to export.
|
|
6864
|
+
* @param opts - Options for the export.
|
|
6865
|
+
*
|
|
6866
|
+
* @returns A data URL of the image.
|
|
6867
|
+
* @public
|
|
6868
|
+
*/
|
|
6869
|
+
async toImageDataUrl(shapes, opts = {}) {
|
|
6870
|
+
const { blob, width, height } = await this.toImage(shapes, opts);
|
|
6871
|
+
return {
|
|
6872
|
+
url: await import_utils.FileHelpers.blobToDataUrl(blob),
|
|
6873
|
+
width,
|
|
6874
|
+
height
|
|
6875
|
+
};
|
|
6876
|
+
}
|
|
6923
6877
|
/**
|
|
6924
6878
|
* Update the input points from a pointer, pinch, or wheel event.
|
|
6925
6879
|
*
|
|
@@ -7420,6 +7374,32 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
7420
7374
|
code: "MetaLeft"
|
|
7421
7375
|
});
|
|
7422
7376
|
}
|
|
7377
|
+
/**
|
|
7378
|
+
* In tldraw, events are sometimes handled by multiple components. For example, the shapes might
|
|
7379
|
+
* have events, but the canvas handles events too. The way that the canvas handles events can
|
|
7380
|
+
* interfere with the with the shapes event handlers - for example, it calls `.preventDefault()`
|
|
7381
|
+
* on `pointerDown`, which also prevents `click` events from firing on the shapes.
|
|
7382
|
+
*
|
|
7383
|
+
* You can use `.stopPropagation()` to prevent the event from propagating to the rest of the
|
|
7384
|
+
* DOM, but that can impact non-tldraw event handlers set up elsewhere. By using
|
|
7385
|
+
* `markEventAsHandled`, you'll stop other parts of tldraw from handling the event without
|
|
7386
|
+
* impacting other, non-tldraw event handlers. See also {@link Editor.wasEventAlreadyHandled}.
|
|
7387
|
+
*
|
|
7388
|
+
* @public
|
|
7389
|
+
*/
|
|
7390
|
+
markEventAsHandled(e) {
|
|
7391
|
+
const nativeEvent = "nativeEvent" in e ? e.nativeEvent : e;
|
|
7392
|
+
this.handledEvents.add(nativeEvent);
|
|
7393
|
+
}
|
|
7394
|
+
/**
|
|
7395
|
+
* Checks if an event has already been handled. See {@link Editor.markEventAsHandled}.
|
|
7396
|
+
*
|
|
7397
|
+
* @public
|
|
7398
|
+
*/
|
|
7399
|
+
wasEventAlreadyHandled(e) {
|
|
7400
|
+
const nativeEvent = "nativeEvent" in e ? e.nativeEvent : e;
|
|
7401
|
+
return this.handledEvents.has(nativeEvent);
|
|
7402
|
+
}
|
|
7423
7403
|
/**
|
|
7424
7404
|
* Dispatch an event to the editor.
|
|
7425
7405
|
*
|
|
@@ -7575,7 +7555,12 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
7575
7555
|
case "wheel": {
|
|
7576
7556
|
if (cameraOptions.isLocked) return;
|
|
7577
7557
|
this._updateInputsFromEvent(info);
|
|
7578
|
-
const { panSpeed, zoomSpeed
|
|
7558
|
+
const { panSpeed, zoomSpeed } = cameraOptions;
|
|
7559
|
+
let wheelBehavior = cameraOptions.wheelBehavior;
|
|
7560
|
+
const inputMode = this.user.getUserPreferences().inputMode;
|
|
7561
|
+
if (inputMode !== null) {
|
|
7562
|
+
wheelBehavior = inputMode === "trackpad" ? "pan" : "zoom";
|
|
7563
|
+
}
|
|
7579
7564
|
if (wheelBehavior !== "none") {
|
|
7580
7565
|
this.stopCameraAnimation();
|
|
7581
7566
|
if (instanceState.followingUserId) {
|
|
@@ -7834,8 +7819,6 @@ __decorateElement(_init, 1, "getCurrentTool", _getCurrentTool_dec, Editor);
|
|
|
7834
7819
|
__decorateElement(_init, 1, "getCurrentToolId", _getCurrentToolId_dec, Editor);
|
|
7835
7820
|
__decorateElement(_init, 1, "getDocumentSettings", _getDocumentSettings_dec, Editor);
|
|
7836
7821
|
__decorateElement(_init, 1, "getInstanceState", _getInstanceState_dec, Editor);
|
|
7837
|
-
__decorateElement(_init, 1, "getOpenMenus", _getOpenMenus_dec, Editor);
|
|
7838
|
-
__decorateElement(_init, 1, "getIsMenuOpen", _getIsMenuOpen_dec, Editor);
|
|
7839
7822
|
__decorateElement(_init, 1, "getPageStates", _getPageStates_dec, Editor);
|
|
7840
7823
|
__decorateElement(_init, 1, "_getPageStatesQuery", __getPageStatesQuery_dec, Editor);
|
|
7841
7824
|
__decorateElement(_init, 1, "getCurrentPageState", _getCurrentPageState_dec, Editor);
|