@tldraw/editor 4.6.0-next.fe1474dc57d8 → 5.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 +412 -179
- package/dist-cjs/index.js +12 -23
- package/dist-cjs/index.js.map +2 -2
- package/dist-cjs/lib/TldrawEditor.js +3 -0
- package/dist-cjs/lib/TldrawEditor.js.map +2 -2
- package/dist-cjs/lib/components/default-components/CanvasOverlays.js +180 -0
- package/dist-cjs/lib/components/default-components/CanvasOverlays.js.map +7 -0
- package/dist-cjs/lib/components/default-components/DefaultCanvas.js +44 -249
- package/dist-cjs/lib/components/default-components/DefaultCanvas.js.map +3 -3
- package/dist-cjs/lib/editor/Editor.js +78 -28
- package/dist-cjs/lib/editor/Editor.js.map +2 -2
- package/dist-cjs/lib/editor/managers/CollaboratorsManager/CollaboratorsManager.js +98 -0
- package/dist-cjs/lib/editor/managers/CollaboratorsManager/CollaboratorsManager.js.map +7 -0
- package/dist-cjs/lib/editor/managers/ThemeManager/defaultThemes.js +14 -0
- package/dist-cjs/lib/editor/managers/ThemeManager/defaultThemes.js.map +2 -2
- package/dist-cjs/lib/editor/overlays/OverlayManager.js +154 -0
- package/dist-cjs/lib/editor/overlays/OverlayManager.js.map +7 -0
- package/dist-cjs/lib/editor/overlays/OverlayUtil.js +92 -0
- package/dist-cjs/lib/editor/overlays/OverlayUtil.js.map +7 -0
- package/dist-cjs/lib/editor/overlays/ShapeIndicatorOverlayUtil.js +161 -0
- package/dist-cjs/lib/editor/overlays/ShapeIndicatorOverlayUtil.js.map +7 -0
- package/dist-cjs/lib/editor/overlays/getOverlayDisplayValues.js +39 -0
- package/dist-cjs/lib/editor/overlays/getOverlayDisplayValues.js.map +7 -0
- package/dist-cjs/lib/editor/shapes/BaseFrameLikeShapeUtil.js +3 -0
- package/dist-cjs/lib/editor/shapes/BaseFrameLikeShapeUtil.js.map +2 -2
- package/dist-cjs/lib/editor/shapes/ShapeUtil.js +25 -23
- package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +2 -2
- package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js +32 -2
- package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js.map +2 -2
- package/dist-cjs/lib/editor/types/event-types.js.map +2 -2
- package/dist-cjs/lib/exports/fetchCache.js +1 -1
- package/dist-cjs/lib/exports/fetchCache.js.map +2 -2
- package/dist-cjs/lib/hooks/EditorComponentsContext.js.map +2 -2
- package/dist-cjs/lib/hooks/useCanvasEvents.js +3 -3
- package/dist-cjs/lib/hooks/useCanvasEvents.js.map +2 -2
- package/dist-cjs/lib/hooks/useEditorComponents.js +0 -28
- package/dist-cjs/lib/hooks/useEditorComponents.js.map +2 -2
- package/dist-cjs/lib/hooks/usePeerIds.js +1 -36
- package/dist-cjs/lib/hooks/usePeerIds.js.map +2 -2
- package/dist-cjs/lib/hooks/useShapeCulling.js +2 -1
- package/dist-cjs/lib/hooks/useShapeCulling.js.map +2 -2
- package/dist-cjs/lib/options.js +0 -1
- package/dist-cjs/lib/options.js.map +2 -2
- package/dist-cjs/lib/utils/reparenting.js +20 -7
- package/dist-cjs/lib/utils/reparenting.js.map +2 -2
- package/dist-cjs/lib/utils/sync/TLLocalSyncClient.js +3 -0
- package/dist-cjs/lib/utils/sync/TLLocalSyncClient.js.map +2 -2
- package/dist-cjs/version.js +4 -4
- package/dist-cjs/version.js.map +1 -1
- package/dist-esm/index.d.mts +412 -179
- package/dist-esm/index.mjs +19 -41
- package/dist-esm/index.mjs.map +2 -2
- package/dist-esm/lib/TldrawEditor.mjs +3 -0
- package/dist-esm/lib/TldrawEditor.mjs.map +2 -2
- package/dist-esm/lib/components/default-components/CanvasOverlays.mjs +160 -0
- package/dist-esm/lib/components/default-components/CanvasOverlays.mjs.map +7 -0
- package/dist-esm/lib/components/default-components/DefaultCanvas.mjs +45 -250
- package/dist-esm/lib/components/default-components/DefaultCanvas.mjs.map +3 -3
- package/dist-esm/lib/editor/Editor.mjs +78 -29
- package/dist-esm/lib/editor/Editor.mjs.map +2 -2
- package/dist-esm/lib/editor/managers/CollaboratorsManager/CollaboratorsManager.mjs +83 -0
- package/dist-esm/lib/editor/managers/CollaboratorsManager/CollaboratorsManager.mjs.map +7 -0
- package/dist-esm/lib/editor/managers/ThemeManager/defaultThemes.mjs +14 -0
- package/dist-esm/lib/editor/managers/ThemeManager/defaultThemes.mjs.map +2 -2
- package/dist-esm/lib/editor/overlays/OverlayManager.mjs +136 -0
- package/dist-esm/lib/editor/overlays/OverlayManager.mjs.map +7 -0
- package/dist-esm/lib/editor/overlays/OverlayUtil.mjs +72 -0
- package/dist-esm/lib/editor/overlays/OverlayUtil.mjs.map +7 -0
- package/dist-esm/lib/editor/overlays/ShapeIndicatorOverlayUtil.mjs +141 -0
- package/dist-esm/lib/editor/overlays/ShapeIndicatorOverlayUtil.mjs.map +7 -0
- package/dist-esm/lib/editor/overlays/getOverlayDisplayValues.mjs +19 -0
- package/dist-esm/lib/editor/overlays/getOverlayDisplayValues.mjs.map +7 -0
- package/dist-esm/lib/editor/shapes/BaseFrameLikeShapeUtil.mjs +3 -0
- package/dist-esm/lib/editor/shapes/BaseFrameLikeShapeUtil.mjs.map +2 -2
- package/dist-esm/lib/editor/shapes/ShapeUtil.mjs +25 -23
- package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +2 -2
- package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs +32 -2
- package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs.map +2 -2
- package/dist-esm/lib/editor/types/event-types.mjs.map +2 -2
- package/dist-esm/lib/exports/fetchCache.mjs +2 -2
- package/dist-esm/lib/exports/fetchCache.mjs.map +2 -2
- package/dist-esm/lib/hooks/EditorComponentsContext.mjs.map +2 -2
- package/dist-esm/lib/hooks/useCanvasEvents.mjs +3 -3
- package/dist-esm/lib/hooks/useCanvasEvents.mjs.map +2 -2
- package/dist-esm/lib/hooks/useEditorComponents.mjs +0 -28
- package/dist-esm/lib/hooks/useEditorComponents.mjs.map +2 -2
- package/dist-esm/lib/hooks/usePeerIds.mjs +2 -40
- package/dist-esm/lib/hooks/usePeerIds.mjs.map +2 -2
- package/dist-esm/lib/hooks/useShapeCulling.mjs +2 -1
- package/dist-esm/lib/hooks/useShapeCulling.mjs.map +2 -2
- package/dist-esm/lib/options.mjs +0 -1
- package/dist-esm/lib/options.mjs.map +2 -2
- package/dist-esm/lib/utils/reparenting.mjs +20 -7
- package/dist-esm/lib/utils/reparenting.mjs.map +2 -2
- package/dist-esm/lib/utils/sync/TLLocalSyncClient.mjs +3 -0
- package/dist-esm/lib/utils/sync/TLLocalSyncClient.mjs.map +2 -2
- package/dist-esm/version.mjs +4 -4
- package/dist-esm/version.mjs.map +1 -1
- package/editor.css +4 -239
- package/package.json +7 -7
- package/src/index.ts +17 -39
- package/src/lib/TldrawEditor.tsx +9 -0
- package/src/lib/components/default-components/CanvasOverlays.tsx +208 -0
- package/src/lib/components/default-components/DefaultCanvas.tsx +49 -324
- package/src/lib/editor/Editor.test.ts +3 -1
- package/src/lib/editor/Editor.ts +80 -24
- package/src/lib/editor/managers/CollaboratorsManager/CollaboratorsManager.ts +98 -0
- package/src/lib/editor/managers/ThemeManager/defaultThemes.ts +14 -0
- package/src/lib/editor/overlays/OverlayManager.ts +183 -0
- package/src/lib/editor/overlays/OverlayUtil.ts +143 -0
- package/src/lib/editor/overlays/ShapeIndicatorOverlayUtil.ts +216 -0
- package/src/lib/editor/overlays/getOverlayDisplayValues.ts +51 -0
- package/src/lib/editor/shapes/BaseFrameLikeShapeUtil.tsx +9 -2
- package/src/lib/editor/shapes/ShapeUtil.ts +34 -26
- package/src/lib/editor/shapes/group/GroupShapeUtil.tsx +40 -3
- package/src/lib/editor/types/event-types.ts +2 -0
- package/src/lib/exports/fetchCache.ts +2 -4
- package/src/lib/exports/getSvgJsx.test.ts +3 -1
- package/src/lib/hooks/EditorComponentsContext.tsx +0 -27
- package/src/lib/hooks/useCanvasEvents.ts +13 -8
- package/src/lib/hooks/useEditorComponents.tsx +0 -28
- package/src/lib/hooks/usePeerIds.ts +6 -55
- package/src/lib/hooks/useShapeCulling.tsx +3 -1
- package/src/lib/options.ts +0 -7
- package/src/lib/utils/reparenting.ts +22 -9
- package/src/lib/utils/sync/TLLocalSyncClient.ts +3 -0
- package/src/version.ts +4 -4
- package/dist-cjs/lib/components/GeometryDebuggingView.js +0 -115
- package/dist-cjs/lib/components/GeometryDebuggingView.js.map +0 -7
- package/dist-cjs/lib/components/LiveCollaborators.js +0 -152
- package/dist-cjs/lib/components/LiveCollaborators.js.map +0 -7
- package/dist-cjs/lib/components/default-components/CanvasShapeIndicators.js +0 -234
- package/dist-cjs/lib/components/default-components/CanvasShapeIndicators.js.map +0 -7
- package/dist-cjs/lib/components/default-components/DefaultBrush.js +0 -38
- package/dist-cjs/lib/components/default-components/DefaultBrush.js.map +0 -7
- package/dist-cjs/lib/components/default-components/DefaultCollaboratorHint.js +0 -71
- package/dist-cjs/lib/components/default-components/DefaultCollaboratorHint.js.map +0 -7
- package/dist-cjs/lib/components/default-components/DefaultCursor.js +0 -59
- package/dist-cjs/lib/components/default-components/DefaultCursor.js.map +0 -7
- package/dist-cjs/lib/components/default-components/DefaultHandle.js +0 -56
- package/dist-cjs/lib/components/default-components/DefaultHandle.js.map +0 -7
- package/dist-cjs/lib/components/default-components/DefaultHandles.js +0 -28
- package/dist-cjs/lib/components/default-components/DefaultHandles.js.map +0 -7
- package/dist-cjs/lib/components/default-components/DefaultScribble.js +0 -51
- package/dist-cjs/lib/components/default-components/DefaultScribble.js.map +0 -7
- package/dist-cjs/lib/components/default-components/DefaultSelectionForeground.js +0 -69
- package/dist-cjs/lib/components/default-components/DefaultSelectionForeground.js.map +0 -7
- package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js +0 -107
- package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js.map +0 -7
- package/dist-cjs/lib/components/default-components/DefaultShapeIndicatorErrorFallback.js +0 -28
- package/dist-cjs/lib/components/default-components/DefaultShapeIndicatorErrorFallback.js.map +0 -7
- package/dist-cjs/lib/components/default-components/DefaultShapeIndicators.js +0 -102
- package/dist-cjs/lib/components/default-components/DefaultShapeIndicators.js.map +0 -7
- package/dist-cjs/lib/components/default-components/DefaultSnapIndictor.js +0 -170
- package/dist-cjs/lib/components/default-components/DefaultSnapIndictor.js.map +0 -7
- package/dist-cjs/lib/hooks/useHandleEvents.js +0 -100
- package/dist-cjs/lib/hooks/useHandleEvents.js.map +0 -7
- package/dist-cjs/lib/hooks/useSelectionEvents.js +0 -98
- package/dist-cjs/lib/hooks/useSelectionEvents.js.map +0 -7
- package/dist-esm/lib/components/GeometryDebuggingView.mjs +0 -95
- package/dist-esm/lib/components/GeometryDebuggingView.mjs.map +0 -7
- package/dist-esm/lib/components/LiveCollaborators.mjs +0 -135
- package/dist-esm/lib/components/LiveCollaborators.mjs.map +0 -7
- package/dist-esm/lib/components/default-components/CanvasShapeIndicators.mjs +0 -214
- package/dist-esm/lib/components/default-components/CanvasShapeIndicators.mjs.map +0 -7
- package/dist-esm/lib/components/default-components/DefaultBrush.mjs +0 -18
- package/dist-esm/lib/components/default-components/DefaultBrush.mjs.map +0 -7
- package/dist-esm/lib/components/default-components/DefaultCollaboratorHint.mjs +0 -41
- package/dist-esm/lib/components/default-components/DefaultCollaboratorHint.mjs.map +0 -7
- package/dist-esm/lib/components/default-components/DefaultCursor.mjs +0 -29
- package/dist-esm/lib/components/default-components/DefaultCursor.mjs.map +0 -7
- package/dist-esm/lib/components/default-components/DefaultHandle.mjs +0 -26
- package/dist-esm/lib/components/default-components/DefaultHandle.mjs.map +0 -7
- package/dist-esm/lib/components/default-components/DefaultHandles.mjs +0 -8
- package/dist-esm/lib/components/default-components/DefaultHandles.mjs.map +0 -7
- package/dist-esm/lib/components/default-components/DefaultScribble.mjs +0 -21
- package/dist-esm/lib/components/default-components/DefaultScribble.mjs.map +0 -7
- package/dist-esm/lib/components/default-components/DefaultSelectionForeground.mjs +0 -39
- package/dist-esm/lib/components/default-components/DefaultSelectionForeground.mjs.map +0 -7
- package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs +0 -77
- package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs.map +0 -7
- package/dist-esm/lib/components/default-components/DefaultShapeIndicatorErrorFallback.mjs +0 -8
- package/dist-esm/lib/components/default-components/DefaultShapeIndicatorErrorFallback.mjs.map +0 -7
- package/dist-esm/lib/components/default-components/DefaultShapeIndicators.mjs +0 -82
- package/dist-esm/lib/components/default-components/DefaultShapeIndicators.mjs.map +0 -7
- package/dist-esm/lib/components/default-components/DefaultSnapIndictor.mjs +0 -142
- package/dist-esm/lib/components/default-components/DefaultSnapIndictor.mjs.map +0 -7
- package/dist-esm/lib/hooks/useHandleEvents.mjs +0 -70
- package/dist-esm/lib/hooks/useHandleEvents.mjs.map +0 -7
- package/dist-esm/lib/hooks/useSelectionEvents.mjs +0 -78
- package/dist-esm/lib/hooks/useSelectionEvents.mjs.map +0 -7
- package/src/lib/components/GeometryDebuggingView.tsx +0 -108
- package/src/lib/components/LiveCollaborators.tsx +0 -180
- package/src/lib/components/default-components/CanvasShapeIndicators.tsx +0 -300
- package/src/lib/components/default-components/DefaultBrush.tsx +0 -35
- package/src/lib/components/default-components/DefaultCollaboratorHint.tsx +0 -52
- package/src/lib/components/default-components/DefaultCursor.tsx +0 -59
- package/src/lib/components/default-components/DefaultHandle.tsx +0 -42
- package/src/lib/components/default-components/DefaultHandles.tsx +0 -15
- package/src/lib/components/default-components/DefaultScribble.tsx +0 -31
- package/src/lib/components/default-components/DefaultSelectionForeground.tsx +0 -50
- package/src/lib/components/default-components/DefaultShapeIndicator.tsx +0 -104
- package/src/lib/components/default-components/DefaultShapeIndicatorErrorFallback.tsx +0 -9
- package/src/lib/components/default-components/DefaultShapeIndicators.tsx +0 -118
- package/src/lib/components/default-components/DefaultSnapIndictor.tsx +0 -174
- package/src/lib/hooks/useHandleEvents.ts +0 -88
- package/src/lib/hooks/useSelectionEvents.ts +0 -97
|
@@ -77,6 +77,7 @@ var import_notVisibleShapes = require("./derivations/notVisibleShapes");
|
|
|
77
77
|
var import_parentsToChildren = require("./derivations/parentsToChildren");
|
|
78
78
|
var import_shapeIdsInCurrentPage = require("./derivations/shapeIdsInCurrentPage");
|
|
79
79
|
var import_ClickManager = require("./managers/ClickManager/ClickManager");
|
|
80
|
+
var import_CollaboratorsManager = require("./managers/CollaboratorsManager/CollaboratorsManager");
|
|
80
81
|
var import_EdgeScrollManager = require("./managers/EdgeScrollManager/EdgeScrollManager");
|
|
81
82
|
var import_FocusManager = require("./managers/FocusManager/FocusManager");
|
|
82
83
|
var import_FontManager = require("./managers/FontManager/FontManager");
|
|
@@ -90,6 +91,7 @@ var import_TextManager = require("./managers/TextManager/TextManager");
|
|
|
90
91
|
var import_ThemeManager = require("./managers/ThemeManager/ThemeManager");
|
|
91
92
|
var import_TickManager = require("./managers/TickManager/TickManager");
|
|
92
93
|
var import_UserPreferencesManager = require("./managers/UserPreferencesManager/UserPreferencesManager");
|
|
94
|
+
var import_OverlayManager = require("./overlays/OverlayManager");
|
|
93
95
|
var import_RootState = require("./tools/RootState");
|
|
94
96
|
class Editor extends import_eventemitter3.default {
|
|
95
97
|
id = (0, import_utils.uniqueId)();
|
|
@@ -99,6 +101,7 @@ class Editor extends import_eventemitter3.default {
|
|
|
99
101
|
shapeUtils,
|
|
100
102
|
bindingUtils,
|
|
101
103
|
assetUtils: assetUtilConstructors,
|
|
104
|
+
overlayUtils: overlayUtilConstructors,
|
|
102
105
|
tools,
|
|
103
106
|
getContainer,
|
|
104
107
|
// needs to be here for backwards compatibility with TldrawEditor
|
|
@@ -158,6 +161,7 @@ class Editor extends import_eventemitter3.default {
|
|
|
158
161
|
this.inputs = new import_InputsManager.InputsManager(this);
|
|
159
162
|
this.performance = new import_PerformanceManager.PerformanceManager(this);
|
|
160
163
|
this.disposables.add(() => this.performance.dispose());
|
|
164
|
+
this.collaborators = new import_CollaboratorsManager.CollaboratorsManager(this);
|
|
161
165
|
class NewRoot extends import_RootState.RootState {
|
|
162
166
|
static initial = initialState ?? "";
|
|
163
167
|
}
|
|
@@ -218,6 +222,13 @@ class Editor extends import_eventemitter3.default {
|
|
|
218
222
|
this.root.children[Tool.id] = new Tool(this, this.root);
|
|
219
223
|
}
|
|
220
224
|
this.scribbles = new import_ScribbleManager.ScribbleManager(this);
|
|
225
|
+
this.overlays = new import_OverlayManager.OverlayManager(this);
|
|
226
|
+
if (overlayUtilConstructors) {
|
|
227
|
+
for (const Util of overlayUtilConstructors) {
|
|
228
|
+
const util = new Util(this);
|
|
229
|
+
this.overlays.registerUtil(util);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
221
232
|
const cleanupInstancePageState = (prevPageState, shapesNoLongerInPage) => {
|
|
222
233
|
let nextPageState = null;
|
|
223
234
|
const selectedShapeIds = prevPageState.selectedShapeIds.filter(
|
|
@@ -670,6 +681,12 @@ class Editor extends import_eventemitter3.default {
|
|
|
670
681
|
* @public
|
|
671
682
|
*/
|
|
672
683
|
timers = import_time.tltime.forContext(this.contextId);
|
|
684
|
+
/**
|
|
685
|
+
* A manager for remote peer collaborators connected to this editor.
|
|
686
|
+
*
|
|
687
|
+
* @public
|
|
688
|
+
*/
|
|
689
|
+
collaborators;
|
|
673
690
|
/**
|
|
674
691
|
* A manager for the user and their preferences.
|
|
675
692
|
*
|
|
@@ -700,6 +717,12 @@ class Editor extends import_eventemitter3.default {
|
|
|
700
717
|
* @public
|
|
701
718
|
*/
|
|
702
719
|
scribbles;
|
|
720
|
+
/**
|
|
721
|
+
* A manager for canvas overlay UI elements (selection handles, shape handles, etc.).
|
|
722
|
+
*
|
|
723
|
+
* @public
|
|
724
|
+
*/
|
|
725
|
+
overlays;
|
|
703
726
|
/**
|
|
704
727
|
* A manager for side effects and correct state enforcement. See {@link @tldraw/store#StoreSideEffects} for details.
|
|
705
728
|
*
|
|
@@ -1348,11 +1371,20 @@ class Editor extends import_eventemitter3.default {
|
|
|
1348
1371
|
/**
|
|
1349
1372
|
* Set the cursor.
|
|
1350
1373
|
*
|
|
1374
|
+
* No-op when the partial wouldn't change the current cursor — `setCursor`
|
|
1375
|
+
* is called from pointer-move hot paths (see `updateHoveredOverlayId`,
|
|
1376
|
+
* various tool states) and skipping redundant writes avoids needlessly
|
|
1377
|
+
* dirtying instance state.
|
|
1378
|
+
*
|
|
1351
1379
|
* @param cursor - The cursor to set.
|
|
1352
1380
|
* @public
|
|
1353
1381
|
*/
|
|
1354
1382
|
setCursor(cursor) {
|
|
1355
|
-
|
|
1383
|
+
const current = this.getInstanceState().cursor;
|
|
1384
|
+
if ((cursor.type === void 0 || cursor.type === current.type) && (cursor.rotation === void 0 || cursor.rotation === current.rotation)) {
|
|
1385
|
+
return this;
|
|
1386
|
+
}
|
|
1387
|
+
this.updateInstanceState({ cursor: { ...current, ...cursor } });
|
|
1356
1388
|
return this;
|
|
1357
1389
|
}
|
|
1358
1390
|
getPageStates() {
|
|
@@ -3018,26 +3050,53 @@ class Editor extends import_eventemitter3.default {
|
|
|
3018
3050
|
const { x: cx, y: cy, z: cz = 1 } = this.getCamera();
|
|
3019
3051
|
return new import_Vec.Vec((point.x + cx) * cz, (point.y + cy) * cz, point.z ?? 0.5);
|
|
3020
3052
|
}
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3053
|
+
// Collaborators
|
|
3054
|
+
/**
|
|
3055
|
+
* Returns a list of presence records for all peer collaborators.
|
|
3056
|
+
* This will return the latest presence record for each connected user.
|
|
3057
|
+
*
|
|
3058
|
+
* Convenience wrapper for {@link CollaboratorsManager.getCollaborators}.
|
|
3059
|
+
*
|
|
3060
|
+
* @public
|
|
3061
|
+
*/
|
|
3026
3062
|
getCollaborators() {
|
|
3027
|
-
|
|
3028
|
-
if (!allPresenceRecords.length) return import_state.EMPTY_ARRAY;
|
|
3029
|
-
const userIds = [...new Set(allPresenceRecords.map((c) => c.userId))].sort();
|
|
3030
|
-
return userIds.map((id) => {
|
|
3031
|
-
const latestPresence = (0, import_utils.maxBy)(
|
|
3032
|
-
allPresenceRecords.filter((c) => c.userId === id),
|
|
3033
|
-
(p) => p.lastActivityTimestamp ?? 0
|
|
3034
|
-
);
|
|
3035
|
-
return latestPresence;
|
|
3036
|
-
});
|
|
3063
|
+
return this.collaborators.getCollaborators();
|
|
3037
3064
|
}
|
|
3065
|
+
/**
|
|
3066
|
+
* Returns a list of presence records for all peer collaborators on the current page.
|
|
3067
|
+
* This will return the latest presence record for each connected user.
|
|
3068
|
+
*
|
|
3069
|
+
* Convenience wrapper for {@link CollaboratorsManager.getCollaboratorsOnCurrentPage}.
|
|
3070
|
+
*
|
|
3071
|
+
* @public
|
|
3072
|
+
*/
|
|
3038
3073
|
getCollaboratorsOnCurrentPage() {
|
|
3039
|
-
|
|
3040
|
-
|
|
3074
|
+
return this.collaborators.getCollaboratorsOnCurrentPage();
|
|
3075
|
+
}
|
|
3076
|
+
/**
|
|
3077
|
+
* Returns a list of presence records for peer collaborators who should currently be
|
|
3078
|
+
* shown in the UI. Filters {@link Editor.getCollaborators} by activity state
|
|
3079
|
+
* (active / idle / inactive) and visibility rules such as following and highlighted
|
|
3080
|
+
* users. Re-evaluates on the collaborator visibility clock, so callers don't need to
|
|
3081
|
+
* drive their own activity timer.
|
|
3082
|
+
*
|
|
3083
|
+
* Convenience wrapper for {@link CollaboratorsManager.getVisibleCollaborators}.
|
|
3084
|
+
*
|
|
3085
|
+
* @public
|
|
3086
|
+
*/
|
|
3087
|
+
getVisibleCollaborators() {
|
|
3088
|
+
return this.collaborators.getVisibleCollaborators();
|
|
3089
|
+
}
|
|
3090
|
+
/**
|
|
3091
|
+
* Returns a list of presence records for peer collaborators who should currently be
|
|
3092
|
+
* shown in the UI, filtered to those on the current page.
|
|
3093
|
+
*
|
|
3094
|
+
* Convenience wrapper for {@link CollaboratorsManager.getVisibleCollaboratorsOnCurrentPage}.
|
|
3095
|
+
*
|
|
3096
|
+
* @public
|
|
3097
|
+
*/
|
|
3098
|
+
getVisibleCollaboratorsOnCurrentPage() {
|
|
3099
|
+
return this.collaborators.getVisibleCollaboratorsOnCurrentPage();
|
|
3041
3100
|
}
|
|
3042
3101
|
// Attribution
|
|
3043
3102
|
/**
|
|
@@ -3673,7 +3732,7 @@ class Editor extends import_eventemitter3.default {
|
|
|
3673
3732
|
} = context;
|
|
3674
3733
|
const zoomStepFunction = (zoom) => Math.pow(2, Math.ceil(Math.log2(zoom)));
|
|
3675
3734
|
const steppedScreenScale = zoomStepFunction(screenScale);
|
|
3676
|
-
const networkEffectiveType = "connection" in navigator ? navigator.connection
|
|
3735
|
+
const networkEffectiveType = "connection" in navigator ? navigator.connection?.effectiveType ?? null : null;
|
|
3677
3736
|
return await this.store.props.assets.resolve(asset, {
|
|
3678
3737
|
screenScale: screenScale || 1,
|
|
3679
3738
|
steppedScreenScale,
|
|
@@ -8388,15 +8447,6 @@ __decorateClass([
|
|
|
8388
8447
|
__decorateClass([
|
|
8389
8448
|
import_state.computed
|
|
8390
8449
|
], Editor.prototype, "getViewportPageBounds", 1);
|
|
8391
|
-
__decorateClass([
|
|
8392
|
-
import_state.computed
|
|
8393
|
-
], Editor.prototype, "_getCollaboratorsQuery", 1);
|
|
8394
|
-
__decorateClass([
|
|
8395
|
-
import_state.computed
|
|
8396
|
-
], Editor.prototype, "getCollaborators", 1);
|
|
8397
|
-
__decorateClass([
|
|
8398
|
-
import_state.computed
|
|
8399
|
-
], Editor.prototype, "getCollaboratorsOnCurrentPage", 1);
|
|
8400
8450
|
__decorateClass([
|
|
8401
8451
|
import_state.computed
|
|
8402
8452
|
], Editor.prototype, "getRenderingShapes", 1);
|