@tldraw/editor 3.14.0-canary.fd2ad122b803 → 3.14.0-canary.fdbfe5bf2604
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 +220 -117
- package/dist-cjs/index.js +11 -8
- package/dist-cjs/index.js.map +2 -2
- package/dist-cjs/lib/config/TLSessionStateSnapshot.js +1 -12
- package/dist-cjs/lib/config/TLSessionStateSnapshot.js.map +3 -3
- package/dist-cjs/lib/editor/Editor.js +133 -102
- package/dist-cjs/lib/editor/Editor.js.map +2 -2
- package/dist-cjs/lib/editor/bindings/BindingUtil.js.map +2 -2
- package/dist-cjs/lib/editor/derivations/bindingsIndex.js +22 -22
- package/dist-cjs/lib/editor/derivations/bindingsIndex.js.map +2 -2
- package/dist-cjs/lib/editor/derivations/notVisibleShapes.js +16 -20
- package/dist-cjs/lib/editor/derivations/notVisibleShapes.js.map +3 -3
- package/dist-cjs/lib/editor/derivations/parentsToChildren.js +16 -16
- package/dist-cjs/lib/editor/derivations/parentsToChildren.js.map +2 -2
- package/dist-cjs/lib/editor/managers/{ClickManager.js → ClickManager/ClickManager.js} +1 -1
- package/dist-cjs/lib/editor/managers/ClickManager/ClickManager.js.map +7 -0
- package/dist-cjs/lib/editor/managers/{EdgeScrollManager.js → EdgeScrollManager/EdgeScrollManager.js} +2 -2
- package/dist-cjs/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.js.map +7 -0
- package/dist-cjs/lib/editor/managers/FocusManager/FocusManager.js.map +7 -0
- package/dist-cjs/lib/editor/managers/{FontManager.js → FontManager/FontManager.js} +4 -1
- package/dist-cjs/lib/editor/managers/FontManager/FontManager.js.map +7 -0
- package/dist-cjs/lib/editor/managers/{HistoryManager.js → HistoryManager/HistoryManager.js} +67 -7
- package/dist-cjs/lib/editor/managers/HistoryManager/HistoryManager.js.map +7 -0
- package/dist-cjs/lib/editor/managers/{ScribbleManager.js → ScribbleManager/ScribbleManager.js} +1 -1
- package/dist-cjs/lib/editor/managers/ScribbleManager/ScribbleManager.js.map +7 -0
- package/dist-cjs/lib/editor/managers/{TextManager.js → TextManager/TextManager.js} +73 -42
- package/dist-cjs/lib/editor/managers/TextManager/TextManager.js.map +7 -0
- package/dist-cjs/lib/editor/managers/{TickManager.js → TickManager/TickManager.js} +1 -1
- package/dist-cjs/lib/editor/managers/TickManager/TickManager.js.map +7 -0
- package/dist-cjs/lib/editor/managers/{UserPreferencesManager.js → UserPreferencesManager/UserPreferencesManager.js} +1 -1
- package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js.map +7 -0
- package/dist-cjs/lib/editor/shapes/ShapeUtil.js +8 -10
- package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +2 -2
- package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js +6 -0
- package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js.map +2 -2
- package/dist-cjs/lib/editor/tools/BaseBoxShapeTool/children/Pointing.js +10 -6
- package/dist-cjs/lib/editor/tools/BaseBoxShapeTool/children/Pointing.js.map +3 -3
- package/dist-cjs/lib/editor/tools/StateNode.js +3 -3
- package/dist-cjs/lib/editor/tools/StateNode.js.map +2 -2
- package/dist-cjs/lib/editor/types/emit-types.js.map +1 -1
- package/dist-cjs/lib/editor/types/external-content.js.map +1 -1
- package/dist-cjs/lib/exports/getSvgJsx.js.map +1 -1
- package/dist-cjs/lib/hooks/useCanvasEvents.js +1 -2
- package/dist-cjs/lib/hooks/useCanvasEvents.js.map +2 -2
- package/dist-cjs/lib/primitives/Box.js +33 -33
- package/dist-cjs/lib/primitives/Box.js.map +2 -2
- package/dist-cjs/lib/primitives/Vec.js +13 -8
- package/dist-cjs/lib/primitives/Vec.js.map +2 -2
- package/dist-cjs/lib/primitives/geometry/Arc2d.js +41 -21
- package/dist-cjs/lib/primitives/geometry/Arc2d.js.map +2 -2
- package/dist-cjs/lib/primitives/geometry/Circle2d.js +11 -11
- package/dist-cjs/lib/primitives/geometry/Circle2d.js.map +2 -2
- package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js +13 -16
- package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js.map +2 -2
- package/dist-cjs/lib/primitives/geometry/CubicSpline2d.js +4 -4
- package/dist-cjs/lib/primitives/geometry/CubicSpline2d.js.map +2 -2
- package/dist-cjs/lib/primitives/geometry/Edge2d.js +14 -17
- package/dist-cjs/lib/primitives/geometry/Edge2d.js.map +2 -2
- package/dist-cjs/lib/primitives/geometry/Ellipse2d.js +10 -10
- package/dist-cjs/lib/primitives/geometry/Ellipse2d.js.map +2 -2
- package/dist-cjs/lib/primitives/geometry/Geometry2d.js +6 -2
- package/dist-cjs/lib/primitives/geometry/Geometry2d.js.map +2 -2
- package/dist-cjs/lib/primitives/geometry/Group2d.js +11 -6
- package/dist-cjs/lib/primitives/geometry/Group2d.js.map +2 -2
- package/dist-cjs/lib/primitives/geometry/Point2d.js +6 -6
- package/dist-cjs/lib/primitives/geometry/Point2d.js.map +2 -2
- package/dist-cjs/lib/primitives/geometry/Polygon2d.js +3 -0
- package/dist-cjs/lib/primitives/geometry/Polygon2d.js.map +2 -2
- package/dist-cjs/lib/primitives/geometry/Polyline2d.js +8 -5
- package/dist-cjs/lib/primitives/geometry/Polyline2d.js.map +2 -2
- package/dist-cjs/lib/primitives/geometry/Rectangle2d.js +22 -11
- package/dist-cjs/lib/primitives/geometry/Rectangle2d.js.map +2 -2
- package/dist-cjs/lib/primitives/geometry/Stadium2d.js +22 -22
- package/dist-cjs/lib/primitives/geometry/Stadium2d.js.map +2 -2
- package/dist-cjs/lib/utils/dom.js +1 -1
- package/dist-cjs/lib/utils/dom.js.map +2 -2
- package/dist-cjs/lib/utils/reorderShapes.js +11 -10
- package/dist-cjs/lib/utils/reorderShapes.js.map +2 -2
- package/dist-cjs/lib/utils/reparenting.js +232 -0
- package/dist-cjs/lib/utils/reparenting.js.map +7 -0
- package/dist-cjs/lib/utils/richText.js +7 -2
- package/dist-cjs/lib/utils/richText.js.map +2 -2
- package/dist-cjs/version.js +3 -3
- package/dist-cjs/version.js.map +1 -1
- package/dist-esm/index.d.mts +220 -117
- package/dist-esm/index.mjs +15 -8
- package/dist-esm/index.mjs.map +2 -2
- package/dist-esm/lib/config/TLSessionStateSnapshot.mjs +1 -1
- package/dist-esm/lib/config/TLSessionStateSnapshot.mjs.map +2 -2
- package/dist-esm/lib/editor/Editor.mjs +133 -102
- package/dist-esm/lib/editor/Editor.mjs.map +2 -2
- package/dist-esm/lib/editor/bindings/BindingUtil.mjs.map +2 -2
- package/dist-esm/lib/editor/derivations/bindingsIndex.mjs +22 -22
- package/dist-esm/lib/editor/derivations/bindingsIndex.mjs.map +2 -2
- package/dist-esm/lib/editor/derivations/notVisibleShapes.mjs +16 -20
- package/dist-esm/lib/editor/derivations/notVisibleShapes.mjs.map +3 -3
- package/dist-esm/lib/editor/derivations/parentsToChildren.mjs +16 -16
- package/dist-esm/lib/editor/derivations/parentsToChildren.mjs.map +2 -2
- package/dist-esm/lib/editor/managers/{ClickManager.mjs → ClickManager/ClickManager.mjs} +1 -1
- package/dist-esm/lib/editor/managers/ClickManager/ClickManager.mjs.map +7 -0
- package/dist-esm/lib/editor/managers/{EdgeScrollManager.mjs → EdgeScrollManager/EdgeScrollManager.mjs} +2 -2
- package/dist-esm/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.mjs.map +7 -0
- package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs.map +7 -0
- package/dist-esm/lib/editor/managers/{FontManager.mjs → FontManager/FontManager.mjs} +4 -1
- package/dist-esm/lib/editor/managers/FontManager/FontManager.mjs.map +7 -0
- package/dist-esm/lib/editor/managers/{HistoryManager.mjs → HistoryManager/HistoryManager.mjs} +63 -3
- package/dist-esm/lib/editor/managers/HistoryManager/HistoryManager.mjs.map +7 -0
- package/dist-esm/lib/editor/managers/{ScribbleManager.mjs → ScribbleManager/ScribbleManager.mjs} +1 -1
- package/dist-esm/lib/editor/managers/ScribbleManager/ScribbleManager.mjs.map +7 -0
- package/dist-esm/lib/editor/managers/{TextManager.mjs → TextManager/TextManager.mjs} +73 -42
- package/dist-esm/lib/editor/managers/TextManager/TextManager.mjs.map +7 -0
- package/dist-esm/lib/editor/managers/{TickManager.mjs → TickManager/TickManager.mjs} +1 -1
- package/dist-esm/lib/editor/managers/TickManager/TickManager.mjs.map +7 -0
- package/dist-esm/lib/editor/managers/{UserPreferencesManager.mjs → UserPreferencesManager/UserPreferencesManager.mjs} +1 -1
- package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs.map +7 -0
- package/dist-esm/lib/editor/shapes/ShapeUtil.mjs +8 -10
- package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +2 -2
- package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs +6 -0
- package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs.map +2 -2
- package/dist-esm/lib/editor/tools/BaseBoxShapeTool/children/Pointing.mjs +10 -6
- package/dist-esm/lib/editor/tools/BaseBoxShapeTool/children/Pointing.mjs.map +3 -3
- package/dist-esm/lib/editor/tools/StateNode.mjs +3 -3
- package/dist-esm/lib/editor/tools/StateNode.mjs.map +2 -2
- package/dist-esm/lib/exports/getSvgJsx.mjs.map +1 -1
- package/dist-esm/lib/hooks/useCanvasEvents.mjs +1 -2
- package/dist-esm/lib/hooks/useCanvasEvents.mjs.map +2 -2
- package/dist-esm/lib/primitives/Box.mjs +33 -33
- package/dist-esm/lib/primitives/Box.mjs.map +2 -2
- package/dist-esm/lib/primitives/Vec.mjs +13 -8
- package/dist-esm/lib/primitives/Vec.mjs.map +2 -2
- package/dist-esm/lib/primitives/geometry/Arc2d.mjs +41 -21
- package/dist-esm/lib/primitives/geometry/Arc2d.mjs.map +2 -2
- package/dist-esm/lib/primitives/geometry/Circle2d.mjs +11 -11
- package/dist-esm/lib/primitives/geometry/Circle2d.mjs.map +2 -2
- package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs +13 -16
- package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs.map +2 -2
- package/dist-esm/lib/primitives/geometry/CubicSpline2d.mjs +4 -4
- package/dist-esm/lib/primitives/geometry/CubicSpline2d.mjs.map +2 -2
- package/dist-esm/lib/primitives/geometry/Edge2d.mjs +14 -17
- package/dist-esm/lib/primitives/geometry/Edge2d.mjs.map +2 -2
- package/dist-esm/lib/primitives/geometry/Ellipse2d.mjs +11 -11
- package/dist-esm/lib/primitives/geometry/Ellipse2d.mjs.map +2 -2
- package/dist-esm/lib/primitives/geometry/Geometry2d.mjs +6 -2
- package/dist-esm/lib/primitives/geometry/Geometry2d.mjs.map +2 -2
- package/dist-esm/lib/primitives/geometry/Group2d.mjs +11 -6
- package/dist-esm/lib/primitives/geometry/Group2d.mjs.map +2 -2
- package/dist-esm/lib/primitives/geometry/Point2d.mjs +6 -6
- package/dist-esm/lib/primitives/geometry/Point2d.mjs.map +2 -2
- package/dist-esm/lib/primitives/geometry/Polygon2d.mjs +3 -0
- package/dist-esm/lib/primitives/geometry/Polygon2d.mjs.map +2 -2
- package/dist-esm/lib/primitives/geometry/Polyline2d.mjs +8 -5
- package/dist-esm/lib/primitives/geometry/Polyline2d.mjs.map +2 -2
- package/dist-esm/lib/primitives/geometry/Rectangle2d.mjs +22 -11
- package/dist-esm/lib/primitives/geometry/Rectangle2d.mjs.map +2 -2
- package/dist-esm/lib/primitives/geometry/Stadium2d.mjs +22 -22
- package/dist-esm/lib/primitives/geometry/Stadium2d.mjs.map +2 -2
- package/dist-esm/lib/utils/dom.mjs +1 -1
- package/dist-esm/lib/utils/dom.mjs.map +2 -2
- package/dist-esm/lib/utils/reorderShapes.mjs +11 -10
- package/dist-esm/lib/utils/reorderShapes.mjs.map +2 -2
- package/dist-esm/lib/utils/reparenting.mjs +216 -0
- package/dist-esm/lib/utils/reparenting.mjs.map +7 -0
- package/dist-esm/lib/utils/richText.mjs +8 -3
- package/dist-esm/lib/utils/richText.mjs.map +2 -2
- package/dist-esm/version.mjs +3 -3
- package/dist-esm/version.mjs.map +1 -1
- package/editor.css +446 -489
- package/package.json +8 -9
- package/src/index.ts +20 -7
- package/src/lib/config/TLSessionStateSnapshot.ts +1 -1
- package/src/lib/editor/Editor.test.ts +252 -3
- package/src/lib/editor/Editor.ts +152 -111
- package/src/lib/editor/bindings/BindingUtil.ts +6 -0
- package/src/lib/editor/derivations/bindingsIndex.ts +27 -26
- package/src/lib/editor/derivations/notVisibleShapes.ts +24 -25
- package/src/lib/editor/derivations/parentsToChildren.ts +28 -25
- package/src/lib/editor/managers/ClickManager/ClickManager.test.ts +442 -0
- package/src/lib/editor/managers/{ClickManager.ts → ClickManager/ClickManager.ts} +3 -3
- package/src/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.test.ts +374 -0
- package/src/lib/editor/managers/{EdgeScrollManager.ts → EdgeScrollManager/EdgeScrollManager.ts} +3 -3
- package/src/lib/editor/managers/FocusManager/FocusManager.test.ts +455 -0
- package/src/lib/editor/managers/{FocusManager.ts → FocusManager/FocusManager.ts} +1 -1
- package/src/lib/editor/managers/FontManager/FontManager.test.ts +263 -0
- package/src/lib/editor/managers/{FontManager.ts → FontManager/FontManager.ts} +5 -2
- package/src/lib/editor/managers/{HistoryManager.test.ts → HistoryManager/HistoryManager.test.ts} +388 -1
- package/src/lib/editor/managers/{HistoryManager.ts → HistoryManager/HistoryManager.ts} +76 -3
- package/src/lib/editor/managers/ScribbleManager/ScribbleManager.test.ts +624 -0
- package/src/lib/editor/managers/{ScribbleManager.ts → ScribbleManager/ScribbleManager.ts} +2 -2
- package/src/lib/editor/managers/SnapManager/SnapManager.test.ts +485 -0
- package/src/lib/editor/managers/TextManager/TextManager.test.ts +407 -0
- package/src/lib/editor/managers/{TextManager.ts → TextManager/TextManager.ts} +119 -87
- package/src/lib/editor/managers/TickManager/TickManager.test.ts +314 -0
- package/src/lib/editor/managers/{TickManager.ts → TickManager/TickManager.ts} +2 -2
- package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.test.ts +591 -0
- package/src/lib/editor/managers/{UserPreferencesManager.ts → UserPreferencesManager/UserPreferencesManager.ts} +2 -2
- package/src/lib/editor/shapes/ShapeUtil.ts +57 -16
- package/src/lib/editor/shapes/group/GroupShapeUtil.tsx +8 -0
- package/src/lib/editor/tools/BaseBoxShapeTool/children/Pointing.ts +22 -17
- package/src/lib/editor/tools/StateNode.ts +3 -3
- package/src/lib/editor/types/emit-types.ts +4 -0
- package/src/lib/editor/types/external-content.ts +11 -2
- package/src/lib/exports/getSvgJsx.tsx +1 -1
- package/src/lib/hooks/useCanvasEvents.ts +0 -1
- package/src/lib/primitives/Box.test.ts +588 -7
- package/src/lib/primitives/Box.ts +33 -33
- package/src/lib/primitives/Vec.test.ts +2 -2
- package/src/lib/primitives/Vec.ts +13 -8
- package/src/lib/primitives/geometry/Arc2d.ts +42 -23
- package/src/lib/primitives/geometry/Circle2d.ts +12 -12
- package/src/lib/primitives/geometry/CubicBezier2d.test.ts +5 -0
- package/src/lib/primitives/geometry/CubicBezier2d.ts +13 -17
- package/src/lib/primitives/geometry/CubicSpline2d.ts +5 -5
- package/src/lib/primitives/geometry/Edge2d.ts +14 -18
- package/src/lib/primitives/geometry/Ellipse2d.ts +12 -13
- package/src/lib/primitives/geometry/Geometry2d.ts +7 -2
- package/src/lib/primitives/geometry/Group2d.ts +11 -5
- package/src/lib/primitives/geometry/Point2d.ts +6 -6
- package/src/lib/primitives/geometry/Polygon2d.ts +4 -0
- package/src/lib/primitives/geometry/Polyline2d.ts +10 -7
- package/src/lib/primitives/geometry/Rectangle2d.ts +24 -11
- package/src/lib/primitives/geometry/Stadium2d.ts +22 -23
- package/src/lib/utils/dom.ts +1 -1
- package/src/lib/utils/reorderShapes.ts +10 -13
- package/src/lib/utils/reparenting.ts +383 -0
- package/src/lib/utils/richText.ts +10 -4
- package/src/version.ts +3 -3
- package/dist-cjs/lib/editor/managers/ClickManager.js.map +0 -7
- package/dist-cjs/lib/editor/managers/EdgeScrollManager.js.map +0 -7
- package/dist-cjs/lib/editor/managers/FocusManager.js.map +0 -7
- package/dist-cjs/lib/editor/managers/FontManager.js.map +0 -7
- package/dist-cjs/lib/editor/managers/HistoryManager.js.map +0 -7
- package/dist-cjs/lib/editor/managers/ScribbleManager.js.map +0 -7
- package/dist-cjs/lib/editor/managers/Stack.js +0 -82
- package/dist-cjs/lib/editor/managers/Stack.js.map +0 -7
- package/dist-cjs/lib/editor/managers/TextManager.js.map +0 -7
- package/dist-cjs/lib/editor/managers/TickManager.js.map +0 -7
- package/dist-cjs/lib/editor/managers/UserPreferencesManager.js.map +0 -7
- package/dist-esm/lib/editor/managers/ClickManager.mjs.map +0 -7
- package/dist-esm/lib/editor/managers/EdgeScrollManager.mjs.map +0 -7
- package/dist-esm/lib/editor/managers/FocusManager.mjs.map +0 -7
- package/dist-esm/lib/editor/managers/FontManager.mjs.map +0 -7
- package/dist-esm/lib/editor/managers/HistoryManager.mjs.map +0 -7
- package/dist-esm/lib/editor/managers/ScribbleManager.mjs.map +0 -7
- package/dist-esm/lib/editor/managers/Stack.mjs +0 -62
- package/dist-esm/lib/editor/managers/Stack.mjs.map +0 -7
- package/dist-esm/lib/editor/managers/TextManager.mjs.map +0 -7
- package/dist-esm/lib/editor/managers/TickManager.mjs.map +0 -7
- package/dist-esm/lib/editor/managers/UserPreferencesManager.mjs.map +0 -7
- package/src/lib/editor/managers/ScribbleManager.test.ts +0 -32
- package/src/lib/editor/managers/Stack.ts +0 -71
- /package/dist-cjs/lib/editor/managers/{FocusManager.js → FocusManager/FocusManager.js} +0 -0
- /package/dist-esm/lib/editor/managers/{FocusManager.mjs → FocusManager/FocusManager.mjs} +0 -0
|
@@ -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,
|
|
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, _getIsMenuOpen_dec, _getOpenMenus_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,
|
|
@@ -147,18 +147,18 @@ import { bindingsIndex } from "./derivations/bindingsIndex.mjs";
|
|
|
147
147
|
import { notVisibleShapes } from "./derivations/notVisibleShapes.mjs";
|
|
148
148
|
import { parentsToChildren } from "./derivations/parentsToChildren.mjs";
|
|
149
149
|
import { deriveShapeIdsInCurrentPage } from "./derivations/shapeIdsInCurrentPage.mjs";
|
|
150
|
-
import { ClickManager } from "./managers/ClickManager.mjs";
|
|
151
|
-
import { EdgeScrollManager } from "./managers/EdgeScrollManager.mjs";
|
|
152
|
-
import { FocusManager } from "./managers/FocusManager.mjs";
|
|
153
|
-
import { FontManager } from "./managers/FontManager.mjs";
|
|
154
|
-
import { HistoryManager } from "./managers/HistoryManager.mjs";
|
|
155
|
-
import { ScribbleManager } from "./managers/ScribbleManager.mjs";
|
|
150
|
+
import { ClickManager } from "./managers/ClickManager/ClickManager.mjs";
|
|
151
|
+
import { EdgeScrollManager } from "./managers/EdgeScrollManager/EdgeScrollManager.mjs";
|
|
152
|
+
import { FocusManager } from "./managers/FocusManager/FocusManager.mjs";
|
|
153
|
+
import { FontManager } from "./managers/FontManager/FontManager.mjs";
|
|
154
|
+
import { HistoryManager } from "./managers/HistoryManager/HistoryManager.mjs";
|
|
155
|
+
import { ScribbleManager } from "./managers/ScribbleManager/ScribbleManager.mjs";
|
|
156
156
|
import { SnapManager } from "./managers/SnapManager/SnapManager.mjs";
|
|
157
|
-
import { TextManager } from "./managers/TextManager.mjs";
|
|
158
|
-
import { TickManager } from "./managers/TickManager.mjs";
|
|
159
|
-
import { UserPreferencesManager } from "./managers/UserPreferencesManager.mjs";
|
|
157
|
+
import { TextManager } from "./managers/TextManager/TextManager.mjs";
|
|
158
|
+
import { TickManager } from "./managers/TickManager/TickManager.mjs";
|
|
159
|
+
import { UserPreferencesManager } from "./managers/UserPreferencesManager/UserPreferencesManager.mjs";
|
|
160
160
|
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], _getOpenMenus_dec = [computed], _getIsMenuOpen_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],
|
|
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], _getOpenMenus_dec = [computed], _getIsMenuOpen_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
162
|
constructor({
|
|
163
163
|
store,
|
|
164
164
|
user,
|
|
@@ -336,7 +336,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
336
336
|
__publicField(this, "_currentPageShapeIds");
|
|
337
337
|
/* --------------------- Shapes --------------------- */
|
|
338
338
|
__publicField(this, "_shapeGeometryCaches", {});
|
|
339
|
-
__publicField(this, "
|
|
339
|
+
__publicField(this, "_notVisibleShapes", notVisibleShapes(this));
|
|
340
340
|
// Parents and children
|
|
341
341
|
/**
|
|
342
342
|
* A cache of parents to children.
|
|
@@ -357,6 +357,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
357
357
|
__publicField(this, "externalContentHandlers", {
|
|
358
358
|
text: null,
|
|
359
359
|
files: null,
|
|
360
|
+
"file-replace": null,
|
|
360
361
|
embed: null,
|
|
361
362
|
"svg-text": null,
|
|
362
363
|
url: null,
|
|
@@ -473,6 +474,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
473
474
|
this.disposables.add(() => this.user.dispose());
|
|
474
475
|
this.getContainer = getContainer;
|
|
475
476
|
this.textMeasure = new TextManager(this);
|
|
477
|
+
this.disposables.add(() => this.textMeasure.dispose());
|
|
476
478
|
this.fonts = new FontManager(this, fontAssetUrls);
|
|
477
479
|
this._tickManager = new TickManager(this);
|
|
478
480
|
class NewRoot extends RootState {
|
|
@@ -598,14 +600,16 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
598
600
|
this.getBindingUtil(binding).onAfterChangeFromShape?.({
|
|
599
601
|
binding,
|
|
600
602
|
shapeBefore,
|
|
601
|
-
shapeAfter
|
|
603
|
+
shapeAfter,
|
|
604
|
+
reason: "self"
|
|
602
605
|
});
|
|
603
606
|
}
|
|
604
607
|
if (binding.toId === shapeAfter.id) {
|
|
605
608
|
this.getBindingUtil(binding).onAfterChangeToShape?.({
|
|
606
609
|
binding,
|
|
607
610
|
shapeBefore,
|
|
608
|
-
shapeAfter
|
|
611
|
+
shapeAfter,
|
|
612
|
+
reason: "self"
|
|
609
613
|
});
|
|
610
614
|
}
|
|
611
615
|
}
|
|
@@ -619,14 +623,16 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
619
623
|
this.getBindingUtil(binding).onAfterChangeFromShape?.({
|
|
620
624
|
binding,
|
|
621
625
|
shapeBefore: descendantShape,
|
|
622
|
-
shapeAfter: descendantShape
|
|
626
|
+
shapeAfter: descendantShape,
|
|
627
|
+
reason: "ancestry"
|
|
623
628
|
});
|
|
624
629
|
}
|
|
625
630
|
if (binding.toId === descendantShape.id) {
|
|
626
631
|
this.getBindingUtil(binding).onAfterChangeToShape?.({
|
|
627
632
|
binding,
|
|
628
633
|
shapeBefore: descendantShape,
|
|
629
|
-
shapeAfter: descendantShape
|
|
634
|
+
shapeAfter: descendantShape,
|
|
635
|
+
reason: "ancestry"
|
|
630
636
|
});
|
|
631
637
|
}
|
|
632
638
|
}
|
|
@@ -1670,6 +1676,19 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
1670
1676
|
getSelectionPageBounds() {
|
|
1671
1677
|
return this.getShapesPageBounds(this.getSelectedShapeIds());
|
|
1672
1678
|
}
|
|
1679
|
+
/**
|
|
1680
|
+
* The bounds of the selection bounding box in the current page space.
|
|
1681
|
+
*
|
|
1682
|
+
* @readonly
|
|
1683
|
+
* @public
|
|
1684
|
+
*/
|
|
1685
|
+
getSelectionScreenBounds() {
|
|
1686
|
+
const bounds = this.getSelectionPageBounds();
|
|
1687
|
+
if (!bounds) return void 0;
|
|
1688
|
+
const { x, y } = this.pageToScreen(bounds.point);
|
|
1689
|
+
const zoom = this.getZoomLevel();
|
|
1690
|
+
return new Box(x, y, bounds.width * zoom, bounds.height * zoom);
|
|
1691
|
+
}
|
|
1673
1692
|
/**
|
|
1674
1693
|
* @internal
|
|
1675
1694
|
*/
|
|
@@ -2803,7 +2822,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
2803
2822
|
* @public
|
|
2804
2823
|
*/
|
|
2805
2824
|
updateViewportScreenBounds(screenBounds, center = false) {
|
|
2806
|
-
if (screenBounds instanceof
|
|
2825
|
+
if (!(screenBounds instanceof Box)) {
|
|
2807
2826
|
const rect = screenBounds.getBoundingClientRect();
|
|
2808
2827
|
screenBounds = new Box(
|
|
2809
2828
|
rect.left || rect.x,
|
|
@@ -2853,10 +2872,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
2853
2872
|
}
|
|
2854
2873
|
getViewportScreenCenter() {
|
|
2855
2874
|
const viewportScreenBounds = this.getViewportScreenBounds();
|
|
2856
|
-
return new Vec(
|
|
2857
|
-
viewportScreenBounds.midX - viewportScreenBounds.minX,
|
|
2858
|
-
viewportScreenBounds.midY - viewportScreenBounds.minY
|
|
2859
|
-
);
|
|
2875
|
+
return new Vec(viewportScreenBounds.w / 2, viewportScreenBounds.h / 2);
|
|
2860
2876
|
}
|
|
2861
2877
|
getViewportPageBounds() {
|
|
2862
2878
|
const { w, h } = this.getViewportScreenBounds();
|
|
@@ -3531,41 +3547,6 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
3531
3547
|
typeof shape === "string" ? shape : shape.id
|
|
3532
3548
|
);
|
|
3533
3549
|
}
|
|
3534
|
-
/**
|
|
3535
|
-
* Get the geometry of a shape in page-space.
|
|
3536
|
-
*
|
|
3537
|
-
* @example
|
|
3538
|
-
* ```ts
|
|
3539
|
-
* editor.getShapePageGeometry(myShape)
|
|
3540
|
-
* editor.getShapePageGeometry(myShapeId)
|
|
3541
|
-
* editor.getShapePageGeometry(myShapeId, { context: "arrow" })
|
|
3542
|
-
* ```
|
|
3543
|
-
*
|
|
3544
|
-
* @param shape - The shape (or shape id) to get the geometry for.
|
|
3545
|
-
* @param opts - Additional options about the request for geometry. Passed to {@link ShapeUtil.getGeometry}.
|
|
3546
|
-
*
|
|
3547
|
-
* @public
|
|
3548
|
-
*/
|
|
3549
|
-
getShapePageGeometry(shape, opts) {
|
|
3550
|
-
const context = opts?.context ?? "none";
|
|
3551
|
-
if (!this._shapePageGeometryCaches[context]) {
|
|
3552
|
-
this._shapePageGeometryCaches[context] = this.store.createComputedCache(
|
|
3553
|
-
"bounds",
|
|
3554
|
-
(shape2) => {
|
|
3555
|
-
const geometry = this.getShapeGeometry(shape2.id, opts);
|
|
3556
|
-
const pageTransform = this.getShapePageTransform(shape2.id);
|
|
3557
|
-
return geometry.transform(pageTransform);
|
|
3558
|
-
},
|
|
3559
|
-
{
|
|
3560
|
-
// we only depend directly on the shape id, and changing geometry/transform will update us anyway
|
|
3561
|
-
areRecordsEqual: () => true
|
|
3562
|
-
}
|
|
3563
|
-
);
|
|
3564
|
-
}
|
|
3565
|
-
return this._shapePageGeometryCaches[context].get(
|
|
3566
|
-
typeof shape === "string" ? shape : shape.id
|
|
3567
|
-
);
|
|
3568
|
-
}
|
|
3569
3550
|
_getShapeHandlesCache() {
|
|
3570
3551
|
return this.store.createComputedCache(
|
|
3571
3552
|
"handles",
|
|
@@ -3659,7 +3640,10 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
3659
3640
|
}
|
|
3660
3641
|
_getShapePageBoundsCache() {
|
|
3661
3642
|
return this.store.createComputedCache("pageBoundsCache", (shape) => {
|
|
3662
|
-
|
|
3643
|
+
const pageTransform = this.getShapePageTransform(shape);
|
|
3644
|
+
if (!pageTransform) return void 0;
|
|
3645
|
+
const geometry = this.getShapeGeometry(shape);
|
|
3646
|
+
return Box.FromPoints(pageTransform.applyToPoints(geometry.vertices));
|
|
3663
3647
|
});
|
|
3664
3648
|
}
|
|
3665
3649
|
/**
|
|
@@ -3716,12 +3700,11 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
3716
3700
|
(shape2) => this.isShapeOfType(shape2, "frame")
|
|
3717
3701
|
);
|
|
3718
3702
|
if (frameAncestors.length === 0) return void 0;
|
|
3719
|
-
const pageMask = frameAncestors.map(
|
|
3720
|
-
(s)
|
|
3721
|
-
|
|
3722
|
-
|
|
3723
|
-
|
|
3724
|
-
).reduce((acc, b) => {
|
|
3703
|
+
const pageMask = frameAncestors.map((s) => {
|
|
3704
|
+
const geometry = this.getShapeGeometry(s.id);
|
|
3705
|
+
const pageTransform = this.getShapePageTransform(s.id);
|
|
3706
|
+
return pageTransform.applyToPoints(geometry.vertices);
|
|
3707
|
+
}).reduce((acc, b) => {
|
|
3725
3708
|
if (!(b && acc)) return void 0;
|
|
3726
3709
|
const intersection = intersectPolygonPolygon(acc, b);
|
|
3727
3710
|
if (intersection) {
|
|
@@ -3885,17 +3868,24 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
3885
3868
|
}
|
|
3886
3869
|
return void 0;
|
|
3887
3870
|
}
|
|
3888
|
-
|
|
3889
|
-
|
|
3890
|
-
|
|
3891
|
-
|
|
3892
|
-
|
|
3871
|
+
/**
|
|
3872
|
+
* Check whether a shape or its parent is locked.
|
|
3873
|
+
*
|
|
3874
|
+
* @param shape - The shape (or shape id) to check.
|
|
3875
|
+
*
|
|
3876
|
+
* @public
|
|
3877
|
+
*/
|
|
3878
|
+
isShapeOrAncestorLocked(shape) {
|
|
3879
|
+
const _shape = shape && this.getShape(shape);
|
|
3880
|
+
if (_shape === void 0) return false;
|
|
3881
|
+
if (_shape.isLocked) return true;
|
|
3882
|
+
return this.isShapeOrAncestorLocked(this.getShapeParent(_shape));
|
|
3893
3883
|
}
|
|
3894
|
-
|
|
3895
|
-
return
|
|
3884
|
+
getNotVisibleShapes() {
|
|
3885
|
+
return this._notVisibleShapes.get();
|
|
3896
3886
|
}
|
|
3897
3887
|
getCulledShapes() {
|
|
3898
|
-
const notVisibleShapes2 = this.
|
|
3888
|
+
const notVisibleShapes2 = this.getNotVisibleShapes();
|
|
3899
3889
|
const selectedShapeIds = this.getSelectedShapeIds();
|
|
3900
3890
|
const editingId = this.getEditingShapeId();
|
|
3901
3891
|
const culledShapes = new Set(notVisibleShapes2);
|
|
@@ -4040,18 +4030,18 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
4040
4030
|
* @example
|
|
4041
4031
|
* ```ts
|
|
4042
4032
|
* editor.getShapesAtPoint({ x: 100, y: 100 })
|
|
4043
|
-
* editor.getShapesAtPoint({ x: 100, y: 100 }, { hitInside: true,
|
|
4033
|
+
* editor.getShapesAtPoint({ x: 100, y: 100 }, { hitInside: true, margin: 8 })
|
|
4044
4034
|
* ```
|
|
4045
4035
|
*
|
|
4046
4036
|
* @param point - The page point to test.
|
|
4047
4037
|
* @param opts - The options for the hit point testing.
|
|
4048
4038
|
*
|
|
4039
|
+
* @returns An array of shapes at the given point, sorted in reverse order of their absolute z-index (top-most shape first).
|
|
4040
|
+
*
|
|
4049
4041
|
* @public
|
|
4050
4042
|
*/
|
|
4051
4043
|
getShapesAtPoint(point, opts = {}) {
|
|
4052
|
-
return this.
|
|
4053
|
-
(shape) => !this.isShapeHidden(shape) && this.isPointInShape(shape, point, opts)
|
|
4054
|
-
);
|
|
4044
|
+
return this.getCurrentPageShapesSorted().filter((shape) => !this.isShapeHidden(shape) && this.isPointInShape(shape, point, opts)).reverse();
|
|
4055
4045
|
}
|
|
4056
4046
|
/**
|
|
4057
4047
|
* Test whether a point (in the current page space) will will a shape. This method takes into account masks,
|
|
@@ -4175,7 +4165,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
4175
4165
|
if (!id) return void 0;
|
|
4176
4166
|
const freshShape = this.getShape(id);
|
|
4177
4167
|
if (freshShape === void 0 || !isShapeId(freshShape.parentId)) return void 0;
|
|
4178
|
-
return this.
|
|
4168
|
+
return this.getShape(freshShape.parentId);
|
|
4179
4169
|
}
|
|
4180
4170
|
/**
|
|
4181
4171
|
* If siblingShape and targetShape are siblings, this returns targetShape. If targetShape has an
|
|
@@ -4307,6 +4297,9 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
4307
4297
|
if (!pagePoint) continue;
|
|
4308
4298
|
const newPoint = invertedParentTransform.applyToPoint(pagePoint);
|
|
4309
4299
|
const newRotation = pageTransform.rotation() - parentPageRotation;
|
|
4300
|
+
if (shape.id === parentId) {
|
|
4301
|
+
throw Error("Attempted to reparent a shape to itself!");
|
|
4302
|
+
}
|
|
4310
4303
|
changes.push({
|
|
4311
4304
|
id: shape.id,
|
|
4312
4305
|
type: shape.type,
|
|
@@ -4373,8 +4366,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
4373
4366
|
* @public
|
|
4374
4367
|
*/
|
|
4375
4368
|
visitDescendants(parent, visitor) {
|
|
4376
|
-
const
|
|
4377
|
-
const children = this.getSortedChildIdsForParent(parentId);
|
|
4369
|
+
const children = this.getSortedChildIdsForParent(parent);
|
|
4378
4370
|
for (const id of children) {
|
|
4379
4371
|
if (visitor(id) === false) continue;
|
|
4380
4372
|
this.visitDescendants(id, visitor);
|
|
@@ -4400,6 +4392,10 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
4400
4392
|
}
|
|
4401
4393
|
return shapeIds;
|
|
4402
4394
|
}
|
|
4395
|
+
/** @deprecated Use {@link Editor.getDraggingOverShape} instead */
|
|
4396
|
+
getDroppingOverShape(point, droppingShapes) {
|
|
4397
|
+
return this.getDraggingOverShape(point, droppingShapes);
|
|
4398
|
+
}
|
|
4403
4399
|
/**
|
|
4404
4400
|
* Get the shape that some shapes should be dropped on at a given point.
|
|
4405
4401
|
*
|
|
@@ -4410,22 +4406,20 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
4410
4406
|
*
|
|
4411
4407
|
* @public
|
|
4412
4408
|
*/
|
|
4413
|
-
|
|
4414
|
-
const
|
|
4415
|
-
|
|
4416
|
-
|
|
4417
|
-
|
|
4418
|
-
|
|
4419
|
-
|
|
4420
|
-
|
|
4421
|
-
|
|
4422
|
-
|
|
4423
|
-
|
|
4424
|
-
|
|
4425
|
-
|
|
4426
|
-
|
|
4427
|
-
if (maskedPageBounds && maskedPageBounds.containsPoint(point) && this.getShapeGeometry(shape).hitTestPoint(this.getPointInShapeSpace(shape, point), 0, true)) {
|
|
4428
|
-
return shape;
|
|
4409
|
+
getDraggingOverShape(point, droppingShapes) {
|
|
4410
|
+
const draggingShapes = compact(droppingShapes.map((s) => this.getShape(s))).filter(
|
|
4411
|
+
(s) => !s.isLocked && !this.isShapeHidden(s)
|
|
4412
|
+
);
|
|
4413
|
+
const maybeDraggingOverShapes = this.getShapesAtPoint(point, {
|
|
4414
|
+
hitInside: true,
|
|
4415
|
+
margin: 0
|
|
4416
|
+
}).filter(
|
|
4417
|
+
(s) => !droppingShapes.includes(s) && !s.isLocked && !this.isShapeHidden(s) && !draggingShapes.includes(s)
|
|
4418
|
+
);
|
|
4419
|
+
for (const maybeDraggingOverShape of maybeDraggingOverShapes) {
|
|
4420
|
+
const shapeUtil = this.getShapeUtil(maybeDraggingOverShape);
|
|
4421
|
+
if (shapeUtil.onDragShapesOver || shapeUtil.onDragShapesIn || shapeUtil.onDragShapesOut || shapeUtil.onDropShapesOver) {
|
|
4422
|
+
return maybeDraggingOverShape;
|
|
4429
4423
|
}
|
|
4430
4424
|
}
|
|
4431
4425
|
}
|
|
@@ -4702,7 +4696,8 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
4702
4696
|
*/
|
|
4703
4697
|
duplicateShapes(shapes, offset) {
|
|
4704
4698
|
this.run(() => {
|
|
4705
|
-
const
|
|
4699
|
+
const _ids = typeof shapes[0] === "string" ? shapes : shapes.map((s) => s.id);
|
|
4700
|
+
const ids = this._shouldIgnoreShapeLock ? _ids : this._getUnlockedShapeIds(_ids);
|
|
4706
4701
|
if (ids.length <= 0) return this;
|
|
4707
4702
|
const initialIds = new Set(ids);
|
|
4708
4703
|
const shapeIdSet = this.getShapeAndDescendantIds(ids);
|
|
@@ -4766,8 +4761,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
4766
4761
|
shape.index = index;
|
|
4767
4762
|
});
|
|
4768
4763
|
const shapesToCreate = shapesToCreateWithOriginals.map(({ shape }) => shape);
|
|
4769
|
-
|
|
4770
|
-
if (maxShapesReached) {
|
|
4764
|
+
if (!this.canCreateShapes(shapesToCreate)) {
|
|
4771
4765
|
alertMaxShapes(this);
|
|
4772
4766
|
return;
|
|
4773
4767
|
}
|
|
@@ -5782,6 +5776,26 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
5782
5776
|
getInitialMetaForShape(_shape) {
|
|
5783
5777
|
return {};
|
|
5784
5778
|
}
|
|
5779
|
+
/**
|
|
5780
|
+
* Get whether the provided shape can be created.
|
|
5781
|
+
*
|
|
5782
|
+
* @param shape - The shape or shape IDs to check.
|
|
5783
|
+
*
|
|
5784
|
+
* @public
|
|
5785
|
+
*/
|
|
5786
|
+
canCreateShape(shape) {
|
|
5787
|
+
return this.canCreateShapes([shape]);
|
|
5788
|
+
}
|
|
5789
|
+
/**
|
|
5790
|
+
* Get whether the provided shapes can be created.
|
|
5791
|
+
*
|
|
5792
|
+
* @param shapes - The shapes or shape IDs to create.
|
|
5793
|
+
*
|
|
5794
|
+
* @public
|
|
5795
|
+
*/
|
|
5796
|
+
canCreateShapes(shapes) {
|
|
5797
|
+
return shapes.length + this.getCurrentPageShapeIds().size <= this.options.maxShapesPerPage;
|
|
5798
|
+
}
|
|
5785
5799
|
/**
|
|
5786
5800
|
* Create a single shape.
|
|
5787
5801
|
*
|
|
@@ -5835,7 +5849,8 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
5835
5849
|
let parentId = this.getFocusedGroupId();
|
|
5836
5850
|
for (let i = currentPageShapesSorted.length - 1; i >= 0; i--) {
|
|
5837
5851
|
const parent = currentPageShapesSorted[i];
|
|
5838
|
-
|
|
5852
|
+
const util = this.getShapeUtil(parent);
|
|
5853
|
+
if (util.canReceiveNewChildrenOfType(parent, partial.type) && !this.isShapeHidden(parent) && this.isPointInShape(
|
|
5839
5854
|
parent,
|
|
5840
5855
|
// If no parent is provided, then we can treat the
|
|
5841
5856
|
// shape's provided x/y as being in the page's space.
|
|
@@ -5910,6 +5925,8 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
5910
5925
|
...shape.meta
|
|
5911
5926
|
};
|
|
5912
5927
|
});
|
|
5928
|
+
this.emit("created-shapes", shapeRecordsToCreate);
|
|
5929
|
+
this.emit("edit");
|
|
5913
5930
|
this.store.put(shapeRecordsToCreate);
|
|
5914
5931
|
});
|
|
5915
5932
|
return this;
|
|
@@ -6151,6 +6168,8 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
6151
6168
|
updated = this.getShapeUtil(shape).onBeforeUpdate?.(shape, updated) ?? updated;
|
|
6152
6169
|
updates.push(updated);
|
|
6153
6170
|
}
|
|
6171
|
+
this.emit("edited-shapes", updates);
|
|
6172
|
+
this.emit("edit");
|
|
6154
6173
|
this.store.put(updates);
|
|
6155
6174
|
});
|
|
6156
6175
|
}
|
|
@@ -6172,6 +6191,8 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
6172
6191
|
allShapeIdsToDelete.add(childId);
|
|
6173
6192
|
});
|
|
6174
6193
|
}
|
|
6194
|
+
this.emit("deleted-shapes", [...allShapeIdsToDelete]);
|
|
6195
|
+
this.emit("edit");
|
|
6175
6196
|
return this.run(() => this.store.remove([...allShapeIdsToDelete]));
|
|
6176
6197
|
}
|
|
6177
6198
|
deleteShape(_id) {
|
|
@@ -6515,6 +6536,14 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
6515
6536
|
async putExternalContent(info) {
|
|
6516
6537
|
return this.externalContentHandlers[info.type]?.(info);
|
|
6517
6538
|
}
|
|
6539
|
+
/**
|
|
6540
|
+
* Handle replacing external content.
|
|
6541
|
+
*
|
|
6542
|
+
* @param info - Info about the external content.
|
|
6543
|
+
*/
|
|
6544
|
+
async replaceExternalContent(info) {
|
|
6545
|
+
return this.externalContentHandlers[info.type]?.(info);
|
|
6546
|
+
}
|
|
6518
6547
|
/**
|
|
6519
6548
|
* Get content that can be exported for the given shape ids.
|
|
6520
6549
|
*
|
|
@@ -6932,7 +6961,9 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
6932
6961
|
previousScreenPoint,
|
|
6933
6962
|
previousPagePoint,
|
|
6934
6963
|
currentScreenPoint,
|
|
6935
|
-
currentPagePoint
|
|
6964
|
+
currentPagePoint,
|
|
6965
|
+
originScreenPoint,
|
|
6966
|
+
originPagePoint
|
|
6936
6967
|
} = this.inputs;
|
|
6937
6968
|
const { screenBounds } = this.store.unsafeGetWithoutCapture(TLINSTANCE_ID);
|
|
6938
6969
|
const { x: cx, y: cy, z: cz } = unsafe__withoutCapture(() => this.getCamera());
|
|
@@ -6950,8 +6981,8 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
6950
6981
|
this.inputs.isPen = info.type === "pointer" && info.isPen;
|
|
6951
6982
|
if (info.name === "pointer_down" || this.inputs.isPinching) {
|
|
6952
6983
|
pointerVelocity.set(0, 0);
|
|
6953
|
-
|
|
6954
|
-
|
|
6984
|
+
originScreenPoint.setTo(currentScreenPoint);
|
|
6985
|
+
originPagePoint.setTo(currentPagePoint);
|
|
6955
6986
|
}
|
|
6956
6987
|
this.run(
|
|
6957
6988
|
() => {
|
|
@@ -7841,7 +7872,7 @@ __decorateElement(_init, 1, "_getShapePageBoundsCache", __getShapePageBoundsCach
|
|
|
7841
7872
|
__decorateElement(_init, 1, "_getShapeClipPathCache", __getShapeClipPathCache_dec, Editor);
|
|
7842
7873
|
__decorateElement(_init, 1, "_getShapeMaskCache", __getShapeMaskCache_dec, Editor);
|
|
7843
7874
|
__decorateElement(_init, 1, "_getShapeMaskedPageBoundsCache", __getShapeMaskedPageBoundsCache_dec, Editor);
|
|
7844
|
-
__decorateElement(_init, 1, "
|
|
7875
|
+
__decorateElement(_init, 1, "getNotVisibleShapes", _getNotVisibleShapes_dec, Editor);
|
|
7845
7876
|
__decorateElement(_init, 1, "getCulledShapes", _getCulledShapes_dec, Editor);
|
|
7846
7877
|
__decorateElement(_init, 1, "getCurrentPageBounds", _getCurrentPageBounds_dec, Editor);
|
|
7847
7878
|
__decorateElement(_init, 1, "getCurrentPageShapes", _getCurrentPageShapes_dec, Editor);
|