@tldraw/editor 3.16.0-canary.fa3749606e52 → 3.16.0-canary.faec5de49906
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 +151 -110
- package/dist-cjs/index.js +5 -5
- package/dist-cjs/index.js.map +2 -2
- package/dist-cjs/lib/TldrawEditor.js +6 -6
- package/dist-cjs/lib/TldrawEditor.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 +4 -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 +9 -3
- package/dist-cjs/lib/config/TLUserPreferences.js.map +2 -2
- package/dist-cjs/lib/editor/Editor.js +80 -135
- 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/UserPreferencesManager/UserPreferencesManager.js +9 -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 +7 -5
- package/dist-cjs/lib/hooks/useCanvasEvents.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/license/LicenseManager.js +120 -50
- 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 +72 -10
- 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/{nearestMultiple.js → EditorAtom.js} +25 -14
- package/dist-cjs/lib/utils/EditorAtom.js.map +7 -0
- package/dist-cjs/lib/utils/reparenting.js +2 -35
- package/dist-cjs/lib/utils/reparenting.js.map +3 -3
- package/dist-cjs/version.js +3 -3
- package/dist-cjs/version.js.map +1 -1
- package/dist-esm/index.d.mts +151 -110
- package/dist-esm/index.mjs +5 -5
- package/dist-esm/index.mjs.map +2 -2
- package/dist-esm/lib/TldrawEditor.mjs +6 -6
- package/dist-esm/lib/TldrawEditor.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 +4 -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 +9 -3
- package/dist-esm/lib/config/TLUserPreferences.mjs.map +2 -2
- package/dist-esm/lib/editor/Editor.mjs +80 -135
- 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/UserPreferencesManager/UserPreferencesManager.mjs +9 -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 +7 -5
- package/dist-esm/lib/hooks/useCanvasEvents.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/license/LicenseManager.mjs +121 -51
- 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 +72 -10
- 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/reparenting.mjs +3 -40
- package/dist-esm/lib/utils/reparenting.mjs.map +2 -2
- package/dist-esm/version.mjs +3 -3
- 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 +7 -14
- package/src/lib/components/Shape.tsx +6 -12
- package/src/lib/components/default-components/DefaultCanvas.tsx +5 -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 +8 -1
- package/src/lib/editor/Editor.test.ts +12 -11
- package/src/lib/editor/Editor.ts +112 -195
- 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/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 +34 -26
- package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.ts +6 -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 +6 -6
- package/src/lib/hooks/usePassThroughMouseOverEvents.ts +4 -1
- package/src/lib/hooks/usePassThroughWheelEvents.ts +6 -1
- package/src/lib/license/LicenseManager.test.ts +648 -383
- package/src/lib/license/LicenseManager.ts +173 -53
- package/src/lib/license/LicenseProvider.tsx +74 -2
- package/src/lib/license/Watermark.test.tsx +2 -1
- package/src/lib/license/Watermark.tsx +77 -10
- 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/utils/EditorAtom.ts +37 -0
- package/src/lib/utils/reparenting.ts +3 -69
- package/src/lib/utils/sync/LocalIndexedDb.test.ts +2 -1
- package/src/lib/utils/sync/TLLocalSyncClient.test.ts +15 -15
- package/src/version.ts +3 -3
- 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
|
*
|
|
@@ -415,14 +405,7 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
415
405
|
/** @internal */
|
|
416
406
|
__publicField(this, "performanceTrackerTimeout", -1);
|
|
417
407
|
__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;
|
|
408
|
+
this._getShapeVisibility = getShapeVisibility;
|
|
426
409
|
this.options = { ...import_options.defaultTldrawOptions, ...options };
|
|
427
410
|
this.store = store;
|
|
428
411
|
this.history = new import_HistoryManager.HistoryManager({
|
|
@@ -902,34 +885,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
902
885
|
getCanRedo() {
|
|
903
886
|
return this.history.getNumRedos() > 0;
|
|
904
887
|
}
|
|
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
888
|
/**
|
|
934
889
|
* Create a new "mark", or stopping point, in the undo redo history. Creating a mark will clear
|
|
935
890
|
* any redos. You typically want to do this just before a user interaction begins or is handled.
|
|
@@ -1045,12 +1000,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
1045
1000
|
}
|
|
1046
1001
|
return this;
|
|
1047
1002
|
}
|
|
1048
|
-
/**
|
|
1049
|
-
* @deprecated Use `Editor.run` instead.
|
|
1050
|
-
*/
|
|
1051
|
-
batch(fn, opts) {
|
|
1052
|
-
return this.run(fn, opts);
|
|
1053
|
-
}
|
|
1054
1003
|
/* --------------------- Errors --------------------- */
|
|
1055
1004
|
/** @internal */
|
|
1056
1005
|
annotateError(error, {
|
|
@@ -1272,39 +1221,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
1272
1221
|
]);
|
|
1273
1222
|
}, opts);
|
|
1274
1223
|
}
|
|
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
1224
|
/* --------------------- Cursor --------------------- */
|
|
1309
1225
|
/**
|
|
1310
1226
|
* Set the cursor.
|
|
@@ -3612,8 +3528,9 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
3612
3528
|
return this.store.createComputedCache("pageBoundsCache", (shape) => {
|
|
3613
3529
|
const pageTransform = this.getShapePageTransform(shape);
|
|
3614
3530
|
if (!pageTransform) return void 0;
|
|
3615
|
-
|
|
3616
|
-
|
|
3531
|
+
return import_Box.Box.FromPoints(
|
|
3532
|
+
pageTransform.applyToPoints(this.getShapeGeometry(shape).boundsVertices)
|
|
3533
|
+
);
|
|
3617
3534
|
});
|
|
3618
3535
|
}
|
|
3619
3536
|
/**
|
|
@@ -3666,16 +3583,17 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
3666
3583
|
_getShapeMaskCache() {
|
|
3667
3584
|
return this.store.createComputedCache("pageMaskCache", (shape) => {
|
|
3668
3585
|
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
|
-
|
|
3586
|
+
const clipPaths = [];
|
|
3587
|
+
for (const ancestor of this.getShapeAncestors(shape.id)) {
|
|
3588
|
+
const util = this.getShapeUtil(ancestor);
|
|
3589
|
+
const clipPath = util.getClipPath?.(ancestor);
|
|
3590
|
+
if (!clipPath) continue;
|
|
3591
|
+
if (util.shouldClipChild?.(shape) === false) continue;
|
|
3592
|
+
const pageTransform = this.getShapePageTransform(ancestor.id);
|
|
3593
|
+
clipPaths.push(pageTransform.applyToPoints(clipPath));
|
|
3594
|
+
}
|
|
3595
|
+
if (clipPaths.length === 0) return void 0;
|
|
3596
|
+
const pageMask = clipPaths.reduce((acc, b) => {
|
|
3679
3597
|
const intersection = (0, import_intersect.intersectPolygonPolygon)(acc, b);
|
|
3680
3598
|
if (intersection) {
|
|
3681
3599
|
return intersection.map(import_Vec.Vec.Cast);
|
|
@@ -3910,6 +3828,7 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
3910
3828
|
hitInside = false,
|
|
3911
3829
|
hitFrameInside = false
|
|
3912
3830
|
} = opts;
|
|
3831
|
+
const [innerMargin, outerMargin] = Array.isArray(margin) ? margin : [margin, margin];
|
|
3913
3832
|
let inHollowSmallestArea = Infinity;
|
|
3914
3833
|
let inHollowSmallestAreaHit = null;
|
|
3915
3834
|
let inMarginClosestToEdgeDistance = Infinity;
|
|
@@ -3919,7 +3838,7 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
3919
3838
|
return false;
|
|
3920
3839
|
const pageMask = this.getShapeMask(shape);
|
|
3921
3840
|
if (pageMask && !(0, import_utils2.pointInPolygon)(point, pageMask)) return false;
|
|
3922
|
-
if (filter
|
|
3841
|
+
if (filter && !filter(shape)) return false;
|
|
3923
3842
|
return true;
|
|
3924
3843
|
});
|
|
3925
3844
|
for (let i = shapesToCheck.length - 1; i >= 0; i--) {
|
|
@@ -3935,8 +3854,8 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
3935
3854
|
}
|
|
3936
3855
|
}
|
|
3937
3856
|
if (this.isShapeOfType(shape, "frame")) {
|
|
3938
|
-
const distance2 = geometry.distanceToPoint(pointInShapeSpace,
|
|
3939
|
-
if (
|
|
3857
|
+
const distance2 = geometry.distanceToPoint(pointInShapeSpace, hitFrameInside);
|
|
3858
|
+
if (hitFrameInside ? distance2 > 0 && distance2 <= outerMargin || distance2 <= 0 && distance2 > -innerMargin : distance2 > 0 && distance2 <= outerMargin) {
|
|
3940
3859
|
return inMarginClosestToEdgeHit || shape;
|
|
3941
3860
|
}
|
|
3942
3861
|
if (geometry.hitTestPoint(pointInShapeSpace, 0, true)) {
|
|
@@ -3956,10 +3875,10 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
3956
3875
|
}
|
|
3957
3876
|
distance = minDistance;
|
|
3958
3877
|
} else {
|
|
3959
|
-
if (
|
|
3878
|
+
if (outerMargin === 0 && (geometry.bounds.w < 1 || geometry.bounds.h < 1)) {
|
|
3960
3879
|
distance = geometry.distanceToPoint(pointInShapeSpace, hitInside);
|
|
3961
3880
|
} else {
|
|
3962
|
-
if (geometry.bounds.containsPoint(pointInShapeSpace,
|
|
3881
|
+
if (geometry.bounds.containsPoint(pointInShapeSpace, outerMargin)) {
|
|
3963
3882
|
distance = geometry.distanceToPoint(pointInShapeSpace, hitInside);
|
|
3964
3883
|
} else {
|
|
3965
3884
|
distance = Infinity;
|
|
@@ -3967,12 +3886,22 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
3967
3886
|
}
|
|
3968
3887
|
}
|
|
3969
3888
|
if (geometry.isClosed) {
|
|
3970
|
-
if (distance <=
|
|
3889
|
+
if (distance <= outerMargin || hitInside && distance <= 0 && distance > -innerMargin) {
|
|
3971
3890
|
if (geometry.isFilled || isGroup && geometry.children[0].isFilled) {
|
|
3972
3891
|
return inMarginClosestToEdgeHit || shape;
|
|
3973
3892
|
} else {
|
|
3974
3893
|
if (this.getShapePageBounds(shape).contains(viewportPageBounds)) continue;
|
|
3975
|
-
if (
|
|
3894
|
+
if (hitInside ? (
|
|
3895
|
+
// On hitInside, the distance will be negative for hits inside
|
|
3896
|
+
// If the distance is positive, check against the outer margin
|
|
3897
|
+
distance > 0 && distance <= outerMargin || // If the distance is negative, check against the inner margin
|
|
3898
|
+
distance <= 0 && distance > -innerMargin
|
|
3899
|
+
) : (
|
|
3900
|
+
// If hitInside is false, then sadly _we do not know_ whether the
|
|
3901
|
+
// point is inside or outside of the shape, so we check against
|
|
3902
|
+
// the max of the two margins
|
|
3903
|
+
Math.abs(distance) <= Math.max(innerMargin, outerMargin)
|
|
3904
|
+
)) {
|
|
3976
3905
|
if (Math.abs(distance) < inMarginClosestToEdgeDistance) {
|
|
3977
3906
|
inMarginClosestToEdgeDistance = Math.abs(distance);
|
|
3978
3907
|
inMarginClosestToEdgeHit = shape;
|
|
@@ -4362,10 +4291,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
4362
4291
|
}
|
|
4363
4292
|
return shapeIds;
|
|
4364
4293
|
}
|
|
4365
|
-
/** @deprecated Use {@link Editor.getDraggingOverShape} instead */
|
|
4366
|
-
getDroppingOverShape(point, droppingShapes) {
|
|
4367
|
-
return this.getDraggingOverShape(point, droppingShapes);
|
|
4368
|
-
}
|
|
4369
4294
|
/**
|
|
4370
4295
|
* Get the shape that some shapes should be dropped on at a given point.
|
|
4371
4296
|
*
|
|
@@ -4737,7 +4662,16 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
4737
4662
|
}
|
|
4738
4663
|
this.createShapes(shapesToCreate);
|
|
4739
4664
|
this.createBindings(bindingsToCreate);
|
|
4740
|
-
this.setSelectedShapes(
|
|
4665
|
+
this.setSelectedShapes(
|
|
4666
|
+
(0, import_utils.compact)(
|
|
4667
|
+
ids.map((oldId) => {
|
|
4668
|
+
const newId = shapeIds.get(oldId);
|
|
4669
|
+
if (!newId) return null;
|
|
4670
|
+
if (!this.getShape(newId)) return null;
|
|
4671
|
+
return newId;
|
|
4672
|
+
})
|
|
4673
|
+
)
|
|
4674
|
+
);
|
|
4741
4675
|
if (offset !== void 0) {
|
|
4742
4676
|
const selectionPageBounds = this.getSelectionPageBounds();
|
|
4743
4677
|
const viewportPageBounds = this.getViewportPageBounds();
|
|
@@ -5491,8 +5425,7 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
5491
5425
|
const shapesMovingTogether = [shape];
|
|
5492
5426
|
const boundsOfShapesMovingTogether = [shapePageBounds];
|
|
5493
5427
|
if (!this.getShapeUtil(shape).canBeLaidOut?.(shape, {
|
|
5494
|
-
type: "stretch"
|
|
5495
|
-
shapes: shapesToStretchFirstPass
|
|
5428
|
+
type: "stretch"
|
|
5496
5429
|
})) {
|
|
5497
5430
|
continue;
|
|
5498
5431
|
}
|
|
@@ -5817,21 +5750,24 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
5817
5750
|
}
|
|
5818
5751
|
if (!partial.parentId || !(this.store.has(partial.parentId) || shapes.some((p) => p.id === partial.parentId))) {
|
|
5819
5752
|
let parentId = this.getFocusedGroupId();
|
|
5820
|
-
|
|
5821
|
-
|
|
5822
|
-
|
|
5823
|
-
|
|
5824
|
-
parent
|
|
5825
|
-
|
|
5826
|
-
|
|
5827
|
-
|
|
5828
|
-
|
|
5829
|
-
|
|
5830
|
-
|
|
5753
|
+
const isPositioned = partial.x !== void 0 && partial.y !== void 0;
|
|
5754
|
+
if (isPositioned) {
|
|
5755
|
+
for (let i = currentPageShapesSorted.length - 1; i >= 0; i--) {
|
|
5756
|
+
const parent = currentPageShapesSorted[i];
|
|
5757
|
+
const util = this.getShapeUtil(parent);
|
|
5758
|
+
if (util.canReceiveNewChildrenOfType(parent, partial.type) && !this.isShapeHidden(parent) && this.isPointInShape(
|
|
5759
|
+
parent,
|
|
5760
|
+
// If no parent is provided, then we can treat the
|
|
5761
|
+
// shape's provided x/y as being in the page's space.
|
|
5762
|
+
{ x: partial.x ?? 0, y: partial.y ?? 0 },
|
|
5763
|
+
{
|
|
5764
|
+
margin: 0,
|
|
5765
|
+
hitInside: true
|
|
5766
|
+
}
|
|
5767
|
+
)) {
|
|
5768
|
+
parentId = parent.id;
|
|
5769
|
+
break;
|
|
5831
5770
|
}
|
|
5832
|
-
)) {
|
|
5833
|
-
parentId = parent.id;
|
|
5834
|
-
break;
|
|
5835
5771
|
}
|
|
5836
5772
|
}
|
|
5837
5773
|
const prevParentId = partial.parentId;
|
|
@@ -6865,12 +6801,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
6865
6801
|
height: result.height
|
|
6866
6802
|
};
|
|
6867
6803
|
}
|
|
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
6804
|
/**
|
|
6875
6805
|
* Get an exported image of the given shapes.
|
|
6876
6806
|
*
|
|
@@ -6920,6 +6850,23 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
|
|
|
6920
6850
|
}
|
|
6921
6851
|
}
|
|
6922
6852
|
}
|
|
6853
|
+
/**
|
|
6854
|
+
* Get an exported image of the given shapes as a data URL.
|
|
6855
|
+
*
|
|
6856
|
+
* @param shapes - The shapes (or shape ids) to export.
|
|
6857
|
+
* @param opts - Options for the export.
|
|
6858
|
+
*
|
|
6859
|
+
* @returns A data URL of the image.
|
|
6860
|
+
* @public
|
|
6861
|
+
*/
|
|
6862
|
+
async toImageDataUrl(shapes, opts = {}) {
|
|
6863
|
+
const { blob, width, height } = await this.toImage(shapes, opts);
|
|
6864
|
+
return {
|
|
6865
|
+
url: await import_utils.FileHelpers.blobToDataUrl(blob),
|
|
6866
|
+
width,
|
|
6867
|
+
height
|
|
6868
|
+
};
|
|
6869
|
+
}
|
|
6923
6870
|
/**
|
|
6924
6871
|
* Update the input points from a pointer, pinch, or wheel event.
|
|
6925
6872
|
*
|
|
@@ -7834,8 +7781,6 @@ __decorateElement(_init, 1, "getCurrentTool", _getCurrentTool_dec, Editor);
|
|
|
7834
7781
|
__decorateElement(_init, 1, "getCurrentToolId", _getCurrentToolId_dec, Editor);
|
|
7835
7782
|
__decorateElement(_init, 1, "getDocumentSettings", _getDocumentSettings_dec, Editor);
|
|
7836
7783
|
__decorateElement(_init, 1, "getInstanceState", _getInstanceState_dec, Editor);
|
|
7837
|
-
__decorateElement(_init, 1, "getOpenMenus", _getOpenMenus_dec, Editor);
|
|
7838
|
-
__decorateElement(_init, 1, "getIsMenuOpen", _getIsMenuOpen_dec, Editor);
|
|
7839
7784
|
__decorateElement(_init, 1, "getPageStates", _getPageStates_dec, Editor);
|
|
7840
7785
|
__decorateElement(_init, 1, "_getPageStatesQuery", __getPageStatesQuery_dec, Editor);
|
|
7841
7786
|
__decorateElement(_init, 1, "getCurrentPageState", _getCurrentPageState_dec, Editor);
|