@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
|
@@ -46,7 +46,7 @@ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use
|
|
|
46
46
|
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
47
47
|
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
48
48
|
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
49
|
-
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,
|
|
49
|
+
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;
|
|
50
50
|
import {
|
|
51
51
|
EMPTY_ARRAY,
|
|
52
52
|
atom,
|
|
@@ -120,7 +120,6 @@ import {
|
|
|
120
120
|
} from "../constants.mjs";
|
|
121
121
|
import { exportToSvg } from "../exports/exportToSvg.mjs";
|
|
122
122
|
import { getSvgAsImage } from "../exports/getSvgAsImage.mjs";
|
|
123
|
-
import { tlenv } from "../globals/environment.mjs";
|
|
124
123
|
import { tlmenus } from "../globals/menus.mjs";
|
|
125
124
|
import { tltime } from "../globals/time.mjs";
|
|
126
125
|
import { defaultTldrawOptions } from "../options.mjs";
|
|
@@ -158,7 +157,7 @@ import { TextManager } from "./managers/TextManager/TextManager.mjs";
|
|
|
158
157
|
import { TickManager } from "./managers/TickManager/TickManager.mjs";
|
|
159
158
|
import { UserPreferencesManager } from "./managers/UserPreferencesManager/UserPreferencesManager.mjs";
|
|
160
159
|
import { RootState } from "./tools/RootState.mjs";
|
|
161
|
-
class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed], _getCanUndo_dec = [computed], _getCanRedo_dec = [computed], _getPath_dec = [computed], _getCurrentTool_dec = [computed], _getCurrentToolId_dec = [computed], _getDocumentSettings_dec = [computed], _getInstanceState_dec = [computed],
|
|
160
|
+
class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed], _getCanUndo_dec = [computed], _getCanRedo_dec = [computed], _getPath_dec = [computed], _getCurrentTool_dec = [computed], _getCurrentToolId_dec = [computed], _getDocumentSettings_dec = [computed], _getInstanceState_dec = [computed], _getPageStates_dec = [computed], __getPageStatesQuery_dec = [computed], _getCurrentPageState_dec = [computed], __getCurrentPageStateId_dec = [computed], _getSelectedShapeIds_dec = [computed], _getSelectedShapes_dec = [computed], _getCurrentPageShapesInReadingOrder_dec = [computed], _getOnlySelectedShapeId_dec = [computed], _getOnlySelectedShape_dec = [computed], _getSelectionPageBounds_dec = [computed], _getSelectionRotation_dec = [computed], _getSelectionRotatedPageBounds_dec = [computed], _getSelectionRotatedScreenBounds_dec = [computed], _getFocusedGroupId_dec = [computed], _getFocusedGroup_dec = [computed], _getEditingShapeId_dec = [computed], _getEditingShape_dec = [computed], _getRichTextEditor_dec = [computed], _getHoveredShapeId_dec = [computed], _getHoveredShape_dec = [computed], _getHintingShapeIds_dec = [computed], _getHintingShape_dec = [computed], _getErasingShapeIds_dec = [computed], _getErasingShapes_dec = [computed], __unsafe_getCameraId_dec = [computed], _getCamera_dec = [computed], _getViewportPageBoundsForFollowing_dec = [computed], _getCameraForFollowing_dec = [computed], _getZoomLevel_dec = [computed], _getViewportScreenBounds_dec = [computed], _getViewportScreenCenter_dec = [computed], _getViewportPageBounds_dec = [computed], __getCollaboratorsQuery_dec = [computed], _getCollaborators_dec = [computed], _getCollaboratorsOnCurrentPage_dec = [computed], _getRenderingShapes_dec = [computed], __getAllPagesQuery_dec = [computed], _getPages_dec = [computed], _getCurrentPageId_dec = [computed], _getCurrentPageShapeIdsSorted_dec = [computed], __getAllAssetsQuery_dec = [computed], __getShapeHandlesCache_dec = [computed], __getShapePageTransformCache_dec = [computed], __getShapePageBoundsCache_dec = [computed], __getShapeClipPathCache_dec = [computed], __getShapeMaskCache_dec = [computed], __getShapeMaskedPageBoundsCache_dec = [computed], _getNotVisibleShapes_dec = [computed], _getCulledShapes_dec = [computed], _getCurrentPageBounds_dec = [computed], _getCurrentPageShapes_dec = [computed], _getCurrentPageShapesSorted_dec = [computed], _getCurrentPageRenderingShapesSorted_dec = [computed], __getBindingsIndexCache_dec = [computed], __getSelectionSharedStyles_dec = [computed], _getSharedStyles_dec = [computed({ isEqual: (a, b) => a.equals(b) })], _getSharedOpacity_dec = [computed], _getIsFocused_dec = [computed], _getIsReadonly_dec = [computed], __setShiftKeyTimeout_dec = [bind], __setAltKeyTimeout_dec = [bind], __setCtrlKeyTimeout_dec = [bind], __setMetaKeyTimeout_dec = [bind], _a) {
|
|
162
161
|
constructor({
|
|
163
162
|
store,
|
|
164
163
|
user,
|
|
@@ -172,8 +171,6 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
172
171
|
autoFocus,
|
|
173
172
|
inferDarkMode,
|
|
174
173
|
options,
|
|
175
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
176
|
-
isShapeHidden,
|
|
177
174
|
getShapeVisibility,
|
|
178
175
|
fontAssetUrls
|
|
179
176
|
}) {
|
|
@@ -240,13 +237,6 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
240
237
|
* @public
|
|
241
238
|
*/
|
|
242
239
|
__publicField(this, "fonts");
|
|
243
|
-
/**
|
|
244
|
-
* A manager for the editor's environment.
|
|
245
|
-
*
|
|
246
|
-
* @deprecated This is deprecated and will be removed in a future version. Use the `tlenv` global export instead.
|
|
247
|
-
* @public
|
|
248
|
-
*/
|
|
249
|
-
__publicField(this, "environment", tlenv);
|
|
250
240
|
/**
|
|
251
241
|
* A manager for the editor's scribbles.
|
|
252
242
|
*
|
|
@@ -448,15 +438,10 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
448
438
|
__publicField(this, "performanceTracker");
|
|
449
439
|
/** @internal */
|
|
450
440
|
__publicField(this, "performanceTrackerTimeout", -1);
|
|
441
|
+
/** @internal */
|
|
442
|
+
__publicField(this, "handledEvents", /* @__PURE__ */ new WeakSet());
|
|
451
443
|
__publicField(this, "_pendingEventsForNextTick", []);
|
|
452
|
-
|
|
453
|
-
!(isShapeHidden && getShapeVisibility),
|
|
454
|
-
"Cannot use both isShapeHidden and getShapeVisibility"
|
|
455
|
-
);
|
|
456
|
-
this._getShapeVisibility = isShapeHidden ? (
|
|
457
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
458
|
-
((shape, editor) => isShapeHidden(shape, editor) ? "hidden" : "inherit")
|
|
459
|
-
) : getShapeVisibility;
|
|
444
|
+
this._getShapeVisibility = getShapeVisibility;
|
|
460
445
|
this.options = { ...defaultTldrawOptions, ...options };
|
|
461
446
|
this.store = store;
|
|
462
447
|
this.history = new HistoryManager({
|
|
@@ -482,6 +467,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
482
467
|
}
|
|
483
468
|
this.root = new NewRoot(this);
|
|
484
469
|
this.root.children = {};
|
|
470
|
+
this.markEventAsHandled = this.markEventAsHandled.bind(this);
|
|
485
471
|
const allShapeUtils = checkShapesAndAddCore(shapeUtils);
|
|
486
472
|
const _shapeUtils = {};
|
|
487
473
|
const _styleProps = {};
|
|
@@ -936,34 +922,6 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
936
922
|
getCanRedo() {
|
|
937
923
|
return this.history.getNumRedos() > 0;
|
|
938
924
|
}
|
|
939
|
-
/**
|
|
940
|
-
* Create a new "mark", or stopping point, in the undo redo history. Creating a mark will clear
|
|
941
|
-
* any redos.
|
|
942
|
-
*
|
|
943
|
-
* @example
|
|
944
|
-
* ```ts
|
|
945
|
-
* editor.mark()
|
|
946
|
-
* editor.mark('flip shapes')
|
|
947
|
-
* ```
|
|
948
|
-
*
|
|
949
|
-
* @param markId - The mark's id, usually the reason for adding the mark.
|
|
950
|
-
*
|
|
951
|
-
* @public
|
|
952
|
-
* @deprecated use {@link Editor.markHistoryStoppingPoint} instead
|
|
953
|
-
*/
|
|
954
|
-
mark(markId) {
|
|
955
|
-
if (typeof markId === "string") {
|
|
956
|
-
console.warn(
|
|
957
|
-
`[tldraw] \`editor.history.mark("${markId}")\` is deprecated. Please use \`const myMarkId = editor.markHistoryStoppingPoint()\` instead.`
|
|
958
|
-
);
|
|
959
|
-
} else {
|
|
960
|
-
console.warn(
|
|
961
|
-
"[tldraw] `editor.mark()` is deprecated. Use `editor.markHistoryStoppingPoint()` instead."
|
|
962
|
-
);
|
|
963
|
-
}
|
|
964
|
-
this.history._mark(markId ?? uniqueId());
|
|
965
|
-
return this;
|
|
966
|
-
}
|
|
967
925
|
/**
|
|
968
926
|
* Create a new "mark", or stopping point, in the undo redo history. Creating a mark will clear
|
|
969
927
|
* any redos. You typically want to do this just before a user interaction begins or is handled.
|
|
@@ -1079,12 +1037,6 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
1079
1037
|
}
|
|
1080
1038
|
return this;
|
|
1081
1039
|
}
|
|
1082
|
-
/**
|
|
1083
|
-
* @deprecated Use `Editor.run` instead.
|
|
1084
|
-
*/
|
|
1085
|
-
batch(fn, opts) {
|
|
1086
|
-
return this.run(fn, opts);
|
|
1087
|
-
}
|
|
1088
1040
|
/* --------------------- Errors --------------------- */
|
|
1089
1041
|
/** @internal */
|
|
1090
1042
|
annotateError(error, {
|
|
@@ -1306,39 +1258,6 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
1306
1258
|
]);
|
|
1307
1259
|
}, opts);
|
|
1308
1260
|
}
|
|
1309
|
-
getOpenMenus() {
|
|
1310
|
-
return this.menus.getOpenMenus();
|
|
1311
|
-
}
|
|
1312
|
-
/**
|
|
1313
|
-
* @deprecated Use `editor.menus.addOpenMenu` instead.
|
|
1314
|
-
*
|
|
1315
|
-
* @public
|
|
1316
|
-
*/
|
|
1317
|
-
addOpenMenu(id) {
|
|
1318
|
-
this.menus.addOpenMenu(id);
|
|
1319
|
-
return this;
|
|
1320
|
-
}
|
|
1321
|
-
/**
|
|
1322
|
-
* @deprecated Use `editor.menus.deleteOpenMenu` instead.
|
|
1323
|
-
*
|
|
1324
|
-
* @public
|
|
1325
|
-
*/
|
|
1326
|
-
deleteOpenMenu(id) {
|
|
1327
|
-
this.menus.deleteOpenMenu(id);
|
|
1328
|
-
return this;
|
|
1329
|
-
}
|
|
1330
|
-
/**
|
|
1331
|
-
* @deprecated Use `editor.menus.clearOpenMenus` instead.
|
|
1332
|
-
*
|
|
1333
|
-
* @public
|
|
1334
|
-
*/
|
|
1335
|
-
clearOpenMenus() {
|
|
1336
|
-
this.menus.clearOpenMenus();
|
|
1337
|
-
return this;
|
|
1338
|
-
}
|
|
1339
|
-
getIsMenuOpen() {
|
|
1340
|
-
return this.menus.hasAnyOpenMenus();
|
|
1341
|
-
}
|
|
1342
1261
|
/* --------------------- Cursor --------------------- */
|
|
1343
1262
|
/**
|
|
1344
1263
|
* Set the cursor.
|
|
@@ -3646,8 +3565,9 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
3646
3565
|
return this.store.createComputedCache("pageBoundsCache", (shape) => {
|
|
3647
3566
|
const pageTransform = this.getShapePageTransform(shape);
|
|
3648
3567
|
if (!pageTransform) return void 0;
|
|
3649
|
-
|
|
3650
|
-
|
|
3568
|
+
return Box.FromPoints(
|
|
3569
|
+
pageTransform.applyToPoints(this.getShapeGeometry(shape).boundsVertices)
|
|
3570
|
+
);
|
|
3651
3571
|
});
|
|
3652
3572
|
}
|
|
3653
3573
|
/**
|
|
@@ -3700,16 +3620,17 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
3700
3620
|
_getShapeMaskCache() {
|
|
3701
3621
|
return this.store.createComputedCache("pageMaskCache", (shape) => {
|
|
3702
3622
|
if (isPageId(shape.parentId)) return void 0;
|
|
3703
|
-
const
|
|
3704
|
-
|
|
3705
|
-
|
|
3706
|
-
|
|
3707
|
-
|
|
3708
|
-
|
|
3709
|
-
const pageTransform = this.getShapePageTransform(
|
|
3710
|
-
|
|
3711
|
-
}
|
|
3712
|
-
|
|
3623
|
+
const clipPaths = [];
|
|
3624
|
+
for (const ancestor of this.getShapeAncestors(shape.id)) {
|
|
3625
|
+
const util = this.getShapeUtil(ancestor);
|
|
3626
|
+
const clipPath = util.getClipPath?.(ancestor);
|
|
3627
|
+
if (!clipPath) continue;
|
|
3628
|
+
if (util.shouldClipChild?.(shape) === false) continue;
|
|
3629
|
+
const pageTransform = this.getShapePageTransform(ancestor.id);
|
|
3630
|
+
clipPaths.push(pageTransform.applyToPoints(clipPath));
|
|
3631
|
+
}
|
|
3632
|
+
if (clipPaths.length === 0) return void 0;
|
|
3633
|
+
const pageMask = clipPaths.reduce((acc, b) => {
|
|
3713
3634
|
const intersection = intersectPolygonPolygon(acc, b);
|
|
3714
3635
|
if (intersection) {
|
|
3715
3636
|
return intersection.map(Vec.Cast);
|
|
@@ -3944,6 +3865,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
3944
3865
|
hitInside = false,
|
|
3945
3866
|
hitFrameInside = false
|
|
3946
3867
|
} = opts;
|
|
3868
|
+
const [innerMargin, outerMargin] = Array.isArray(margin) ? margin : [margin, margin];
|
|
3947
3869
|
let inHollowSmallestArea = Infinity;
|
|
3948
3870
|
let inHollowSmallestAreaHit = null;
|
|
3949
3871
|
let inMarginClosestToEdgeDistance = Infinity;
|
|
@@ -3953,7 +3875,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
3953
3875
|
return false;
|
|
3954
3876
|
const pageMask = this.getShapeMask(shape);
|
|
3955
3877
|
if (pageMask && !pointInPolygon(point, pageMask)) return false;
|
|
3956
|
-
if (filter
|
|
3878
|
+
if (filter && !filter(shape)) return false;
|
|
3957
3879
|
return true;
|
|
3958
3880
|
});
|
|
3959
3881
|
for (let i = shapesToCheck.length - 1; i >= 0; i--) {
|
|
@@ -3969,8 +3891,8 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
3969
3891
|
}
|
|
3970
3892
|
}
|
|
3971
3893
|
if (this.isShapeOfType(shape, "frame")) {
|
|
3972
|
-
const distance2 = geometry.distanceToPoint(pointInShapeSpace,
|
|
3973
|
-
if (
|
|
3894
|
+
const distance2 = geometry.distanceToPoint(pointInShapeSpace, hitFrameInside);
|
|
3895
|
+
if (hitFrameInside ? distance2 > 0 && distance2 <= outerMargin || distance2 <= 0 && distance2 > -innerMargin : distance2 > 0 && distance2 <= outerMargin) {
|
|
3974
3896
|
return inMarginClosestToEdgeHit || shape;
|
|
3975
3897
|
}
|
|
3976
3898
|
if (geometry.hitTestPoint(pointInShapeSpace, 0, true)) {
|
|
@@ -3990,10 +3912,10 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
3990
3912
|
}
|
|
3991
3913
|
distance = minDistance;
|
|
3992
3914
|
} else {
|
|
3993
|
-
if (
|
|
3915
|
+
if (outerMargin === 0 && (geometry.bounds.w < 1 || geometry.bounds.h < 1)) {
|
|
3994
3916
|
distance = geometry.distanceToPoint(pointInShapeSpace, hitInside);
|
|
3995
3917
|
} else {
|
|
3996
|
-
if (geometry.bounds.containsPoint(pointInShapeSpace,
|
|
3918
|
+
if (geometry.bounds.containsPoint(pointInShapeSpace, outerMargin)) {
|
|
3997
3919
|
distance = geometry.distanceToPoint(pointInShapeSpace, hitInside);
|
|
3998
3920
|
} else {
|
|
3999
3921
|
distance = Infinity;
|
|
@@ -4001,12 +3923,22 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
4001
3923
|
}
|
|
4002
3924
|
}
|
|
4003
3925
|
if (geometry.isClosed) {
|
|
4004
|
-
if (distance <=
|
|
3926
|
+
if (distance <= outerMargin || hitInside && distance <= 0 && distance > -innerMargin) {
|
|
4005
3927
|
if (geometry.isFilled || isGroup && geometry.children[0].isFilled) {
|
|
4006
3928
|
return inMarginClosestToEdgeHit || shape;
|
|
4007
3929
|
} else {
|
|
4008
3930
|
if (this.getShapePageBounds(shape).contains(viewportPageBounds)) continue;
|
|
4009
|
-
if (
|
|
3931
|
+
if (hitInside ? (
|
|
3932
|
+
// On hitInside, the distance will be negative for hits inside
|
|
3933
|
+
// If the distance is positive, check against the outer margin
|
|
3934
|
+
(// If the distance is negative, check against the inner margin
|
|
3935
|
+
distance > 0 && distance <= outerMargin || distance <= 0 && distance > -innerMargin)
|
|
3936
|
+
) : (
|
|
3937
|
+
// If hitInside is false, then sadly _we do not know_ whether the
|
|
3938
|
+
// point is inside or outside of the shape, so we check against
|
|
3939
|
+
// the max of the two margins
|
|
3940
|
+
(Math.abs(distance) <= Math.max(innerMargin, outerMargin))
|
|
3941
|
+
)) {
|
|
4010
3942
|
if (Math.abs(distance) < inMarginClosestToEdgeDistance) {
|
|
4011
3943
|
inMarginClosestToEdgeDistance = Math.abs(distance);
|
|
4012
3944
|
inMarginClosestToEdgeHit = shape;
|
|
@@ -4396,10 +4328,6 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
4396
4328
|
}
|
|
4397
4329
|
return shapeIds;
|
|
4398
4330
|
}
|
|
4399
|
-
/** @deprecated Use {@link Editor.getDraggingOverShape} instead */
|
|
4400
|
-
getDroppingOverShape(point, droppingShapes) {
|
|
4401
|
-
return this.getDraggingOverShape(point, droppingShapes);
|
|
4402
|
-
}
|
|
4403
4331
|
/**
|
|
4404
4332
|
* Get the shape that some shapes should be dropped on at a given point.
|
|
4405
4333
|
*
|
|
@@ -4771,7 +4699,16 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
4771
4699
|
}
|
|
4772
4700
|
this.createShapes(shapesToCreate);
|
|
4773
4701
|
this.createBindings(bindingsToCreate);
|
|
4774
|
-
this.setSelectedShapes(
|
|
4702
|
+
this.setSelectedShapes(
|
|
4703
|
+
compact(
|
|
4704
|
+
ids.map((oldId) => {
|
|
4705
|
+
const newId = shapeIds.get(oldId);
|
|
4706
|
+
if (!newId) return null;
|
|
4707
|
+
if (!this.getShape(newId)) return null;
|
|
4708
|
+
return newId;
|
|
4709
|
+
})
|
|
4710
|
+
)
|
|
4711
|
+
);
|
|
4775
4712
|
if (offset !== void 0) {
|
|
4776
4713
|
const selectionPageBounds = this.getSelectionPageBounds();
|
|
4777
4714
|
const viewportPageBounds = this.getViewportPageBounds();
|
|
@@ -5525,8 +5462,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
5525
5462
|
const shapesMovingTogether = [shape];
|
|
5526
5463
|
const boundsOfShapesMovingTogether = [shapePageBounds];
|
|
5527
5464
|
if (!this.getShapeUtil(shape).canBeLaidOut?.(shape, {
|
|
5528
|
-
type: "stretch"
|
|
5529
|
-
shapes: shapesToStretchFirstPass
|
|
5465
|
+
type: "stretch"
|
|
5530
5466
|
})) {
|
|
5531
5467
|
continue;
|
|
5532
5468
|
}
|
|
@@ -5851,21 +5787,24 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
5851
5787
|
}
|
|
5852
5788
|
if (!partial.parentId || !(this.store.has(partial.parentId) || shapes.some((p) => p.id === partial.parentId))) {
|
|
5853
5789
|
let parentId = this.getFocusedGroupId();
|
|
5854
|
-
|
|
5855
|
-
|
|
5856
|
-
|
|
5857
|
-
|
|
5858
|
-
parent
|
|
5859
|
-
|
|
5860
|
-
|
|
5861
|
-
|
|
5862
|
-
|
|
5863
|
-
|
|
5864
|
-
|
|
5790
|
+
const isPositioned = partial.x !== void 0 && partial.y !== void 0;
|
|
5791
|
+
if (isPositioned) {
|
|
5792
|
+
for (let i = currentPageShapesSorted.length - 1; i >= 0; i--) {
|
|
5793
|
+
const parent = currentPageShapesSorted[i];
|
|
5794
|
+
const util = this.getShapeUtil(parent);
|
|
5795
|
+
if (util.canReceiveNewChildrenOfType(parent, partial.type) && !this.isShapeHidden(parent) && this.isPointInShape(
|
|
5796
|
+
parent,
|
|
5797
|
+
// If no parent is provided, then we can treat the
|
|
5798
|
+
// shape's provided x/y as being in the page's space.
|
|
5799
|
+
{ x: partial.x ?? 0, y: partial.y ?? 0 },
|
|
5800
|
+
{
|
|
5801
|
+
margin: 0,
|
|
5802
|
+
hitInside: true
|
|
5803
|
+
}
|
|
5804
|
+
)) {
|
|
5805
|
+
parentId = parent.id;
|
|
5806
|
+
break;
|
|
5865
5807
|
}
|
|
5866
|
-
)) {
|
|
5867
|
-
parentId = parent.id;
|
|
5868
|
-
break;
|
|
5869
5808
|
}
|
|
5870
5809
|
}
|
|
5871
5810
|
const prevParentId = partial.parentId;
|
|
@@ -6536,16 +6475,20 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
6536
6475
|
* 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.
|
|
6537
6476
|
*
|
|
6538
6477
|
* @param info - Info about the external content.
|
|
6478
|
+
* @param opts - Options for handling external content, including force flag to bypass readonly checks.
|
|
6539
6479
|
*/
|
|
6540
|
-
async putExternalContent(info) {
|
|
6480
|
+
async putExternalContent(info, opts = {}) {
|
|
6481
|
+
if (!opts.force && this.getIsReadonly()) return;
|
|
6541
6482
|
return this.externalContentHandlers[info.type]?.(info);
|
|
6542
6483
|
}
|
|
6543
6484
|
/**
|
|
6544
6485
|
* Handle replacing external content.
|
|
6545
6486
|
*
|
|
6546
6487
|
* @param info - Info about the external content.
|
|
6488
|
+
* @param opts - Options for handling external content, including force flag to bypass readonly checks.
|
|
6547
6489
|
*/
|
|
6548
|
-
async replaceExternalContent(info) {
|
|
6490
|
+
async replaceExternalContent(info, opts = {}) {
|
|
6491
|
+
if (!opts.force && this.getIsReadonly()) return;
|
|
6549
6492
|
return this.externalContentHandlers[info.type]?.(info);
|
|
6550
6493
|
}
|
|
6551
6494
|
/**
|
|
@@ -6899,12 +6842,6 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
6899
6842
|
height: result.height
|
|
6900
6843
|
};
|
|
6901
6844
|
}
|
|
6902
|
-
/** @deprecated Use {@link Editor.getSvgString} or {@link Editor.getSvgElement} instead. */
|
|
6903
|
-
async getSvg(shapes, opts = {}) {
|
|
6904
|
-
const result = await this.getSvgElement(shapes, opts);
|
|
6905
|
-
if (!result) return void 0;
|
|
6906
|
-
return result.svg;
|
|
6907
|
-
}
|
|
6908
6845
|
/**
|
|
6909
6846
|
* Get an exported image of the given shapes.
|
|
6910
6847
|
*
|
|
@@ -6954,6 +6891,23 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
6954
6891
|
}
|
|
6955
6892
|
}
|
|
6956
6893
|
}
|
|
6894
|
+
/**
|
|
6895
|
+
* Get an exported image of the given shapes as a data URL.
|
|
6896
|
+
*
|
|
6897
|
+
* @param shapes - The shapes (or shape ids) to export.
|
|
6898
|
+
* @param opts - Options for the export.
|
|
6899
|
+
*
|
|
6900
|
+
* @returns A data URL of the image.
|
|
6901
|
+
* @public
|
|
6902
|
+
*/
|
|
6903
|
+
async toImageDataUrl(shapes, opts = {}) {
|
|
6904
|
+
const { blob, width, height } = await this.toImage(shapes, opts);
|
|
6905
|
+
return {
|
|
6906
|
+
url: await FileHelpers.blobToDataUrl(blob),
|
|
6907
|
+
width,
|
|
6908
|
+
height
|
|
6909
|
+
};
|
|
6910
|
+
}
|
|
6957
6911
|
/**
|
|
6958
6912
|
* Update the input points from a pointer, pinch, or wheel event.
|
|
6959
6913
|
*
|
|
@@ -7454,6 +7408,32 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
7454
7408
|
code: "MetaLeft"
|
|
7455
7409
|
});
|
|
7456
7410
|
}
|
|
7411
|
+
/**
|
|
7412
|
+
* In tldraw, events are sometimes handled by multiple components. For example, the shapes might
|
|
7413
|
+
* have events, but the canvas handles events too. The way that the canvas handles events can
|
|
7414
|
+
* interfere with the with the shapes event handlers - for example, it calls `.preventDefault()`
|
|
7415
|
+
* on `pointerDown`, which also prevents `click` events from firing on the shapes.
|
|
7416
|
+
*
|
|
7417
|
+
* You can use `.stopPropagation()` to prevent the event from propagating to the rest of the
|
|
7418
|
+
* DOM, but that can impact non-tldraw event handlers set up elsewhere. By using
|
|
7419
|
+
* `markEventAsHandled`, you'll stop other parts of tldraw from handling the event without
|
|
7420
|
+
* impacting other, non-tldraw event handlers. See also {@link Editor.wasEventAlreadyHandled}.
|
|
7421
|
+
*
|
|
7422
|
+
* @public
|
|
7423
|
+
*/
|
|
7424
|
+
markEventAsHandled(e) {
|
|
7425
|
+
const nativeEvent = "nativeEvent" in e ? e.nativeEvent : e;
|
|
7426
|
+
this.handledEvents.add(nativeEvent);
|
|
7427
|
+
}
|
|
7428
|
+
/**
|
|
7429
|
+
* Checks if an event has already been handled. See {@link Editor.markEventAsHandled}.
|
|
7430
|
+
*
|
|
7431
|
+
* @public
|
|
7432
|
+
*/
|
|
7433
|
+
wasEventAlreadyHandled(e) {
|
|
7434
|
+
const nativeEvent = "nativeEvent" in e ? e.nativeEvent : e;
|
|
7435
|
+
return this.handledEvents.has(nativeEvent);
|
|
7436
|
+
}
|
|
7457
7437
|
/**
|
|
7458
7438
|
* Dispatch an event to the editor.
|
|
7459
7439
|
*
|
|
@@ -7609,7 +7589,12 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
7609
7589
|
case "wheel": {
|
|
7610
7590
|
if (cameraOptions.isLocked) return;
|
|
7611
7591
|
this._updateInputsFromEvent(info);
|
|
7612
|
-
const { panSpeed, zoomSpeed
|
|
7592
|
+
const { panSpeed, zoomSpeed } = cameraOptions;
|
|
7593
|
+
let wheelBehavior = cameraOptions.wheelBehavior;
|
|
7594
|
+
const inputMode = this.user.getUserPreferences().inputMode;
|
|
7595
|
+
if (inputMode !== null) {
|
|
7596
|
+
wheelBehavior = inputMode === "trackpad" ? "pan" : "zoom";
|
|
7597
|
+
}
|
|
7613
7598
|
if (wheelBehavior !== "none") {
|
|
7614
7599
|
this.stopCameraAnimation();
|
|
7615
7600
|
if (instanceState.followingUserId) {
|
|
@@ -7868,8 +7853,6 @@ __decorateElement(_init, 1, "getCurrentTool", _getCurrentTool_dec, Editor);
|
|
|
7868
7853
|
__decorateElement(_init, 1, "getCurrentToolId", _getCurrentToolId_dec, Editor);
|
|
7869
7854
|
__decorateElement(_init, 1, "getDocumentSettings", _getDocumentSettings_dec, Editor);
|
|
7870
7855
|
__decorateElement(_init, 1, "getInstanceState", _getInstanceState_dec, Editor);
|
|
7871
|
-
__decorateElement(_init, 1, "getOpenMenus", _getOpenMenus_dec, Editor);
|
|
7872
|
-
__decorateElement(_init, 1, "getIsMenuOpen", _getIsMenuOpen_dec, Editor);
|
|
7873
7856
|
__decorateElement(_init, 1, "getPageStates", _getPageStates_dec, Editor);
|
|
7874
7857
|
__decorateElement(_init, 1, "_getPageStatesQuery", __getPageStatesQuery_dec, Editor);
|
|
7875
7858
|
__decorateElement(_init, 1, "getCurrentPageState", _getCurrentPageState_dec, Editor);
|