@inditextech/weave-sdk 3.8.0 → 3.9.0-SNAPSHOT.177.1

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/types.js CHANGED
@@ -17679,19 +17679,20 @@ function moveNodeToContainerNT(instance, node, containerToMove, originalNode, or
17679
17679
  node.rotation(nodeRotation);
17680
17680
  node.x(node.x() - (layerToMoveAttrs.containerOffsetX ?? 0));
17681
17681
  node.y(node.y() - (layerToMoveAttrs.containerOffsetY ?? 0));
17682
- node.movedToContainer(layerToMove);
17682
+ node.destroy();
17683
+ const newNode = node.clone();
17683
17684
  instance.emitEvent("onNodeMovedToContainer", {
17684
- node: node.clone(),
17685
+ node: newNode,
17685
17686
  container: layerToMove,
17686
17687
  originalNode,
17687
17688
  originalContainer
17688
17689
  });
17689
17690
  const nodeHandler = instance.getNodeHandler(node.getAttrs().nodeType);
17690
17691
  if (nodeHandler) {
17691
- node.setAttrs({ onMoveContainer: true });
17692
- const actualNode = nodeHandler.serialize(node);
17693
- instance.removeNodeNT(actualNode, { emitUserChangeEvent: false });
17694
- instance.addNodeNT(actualNode, layerToMoveAttrs.id, {
17692
+ const actualNodeState = nodeHandler.serialize(node);
17693
+ const newNodeState = nodeHandler.serialize(newNode);
17694
+ instance.removeNodeNT(actualNodeState, { emitUserChangeEvent: false });
17695
+ instance.addNodeNT(newNodeState, layerToMoveAttrs.id, {
17695
17696
  emitUserChangeEvent: false,
17696
17697
  overrideUserChangeType: WEAVE_NODE_CHANGE_TYPE.UPDATE
17697
17698
  });
@@ -17920,17 +17921,6 @@ function isIOS() {
17920
17921
  return /iPad|iPhone|iPod/.test(navigator.userAgent) || navigator.userAgent.includes("Mac") && "ontouchend" in document;
17921
17922
  }
17922
17923
  const isServer = () => typeof window === "undefined";
17923
- const getPositionRelativeToContainerOnPosition = (instance) => {
17924
- let position = instance.getStage().getRelativePointerPosition();
17925
- if (!position) return position;
17926
- const container = containerOverCursor(instance, [], position);
17927
- if (container) if (container.getAttrs().containerId) {
17928
- const containerNode = container.findOne(`#${container.getAttrs().containerId}`);
17929
- if (containerNode) position = containerNode?.getRelativePointerPosition();
17930
- } else position = container?.getRelativePointerPosition();
17931
- if (!position) return position;
17932
- return position;
17933
- };
17934
17924
  const canComposite = (node) => {
17935
17925
  const parent = node.getParent();
17936
17926
  return parent?.getClassName() === "Group" && parent?.getAttrs().nodeType !== "frame" && parent?.getAttrs().nodeId === void 0;
@@ -18611,12 +18601,10 @@ const WEAVE_GRID_LAYER_ID = "gridLayer";
18611
18601
  //#region src/plugins/stage-panning/constants.ts
18612
18602
  const WEAVE_STAGE_PANNING_KEY = "stagePanning";
18613
18603
  const WEAVE_STAGE_PANNING_THROTTLE_MS = 20;
18614
- const WEAVE_STAGE_PANNING_DEFAULT_CONFIG = {
18615
- edgePanOffset: 25,
18616
- edgePanMinSpeed: 2,
18617
- edgePanSpeed: 10,
18618
- edgePanMaxSpeed: 30
18619
- };
18604
+ const WEAVE_STAGE_PANNING_DEFAULT_CONFIG = { edgePan: {
18605
+ offset: 25,
18606
+ speed: 20
18607
+ } };
18620
18608
 
18621
18609
  //#endregion
18622
18610
  //#region src/plugins/nodes-multi-selection-feedback/constants.ts
@@ -18838,16 +18826,21 @@ var WeaveNodesSelectionPlugin = class extends WeavePlugin {
18838
18826
  if (moved) this.getContextMenuPlugin()?.cancelLongPressTimer();
18839
18827
  this.triggerSelectedNodesEvent();
18840
18828
  if (this.getUsersPresencePlugin()) {
18841
- for (const node of tr.nodes()) this.getUsersPresencePlugin()?.setPresence(node.id(), {
18842
- x: node.x(),
18843
- y: node.y(),
18844
- width: node.width(),
18845
- height: node.height(),
18846
- scaleX: node.scaleX(),
18847
- scaleY: node.scaleY(),
18848
- rotation: node.rotation(),
18849
- strokeScaleEnabled: false
18850
- }, false);
18829
+ for (const node of tr.nodes()) {
18830
+ let parentId = node.getParent()?.id() ?? "";
18831
+ const parent = node.getParent();
18832
+ if (parent?.getAttrs().nodeId) parentId = parent.getAttrs().nodeId;
18833
+ this.getUsersPresencePlugin()?.setPresence(node.id(), parentId, {
18834
+ x: node.x(),
18835
+ y: node.y(),
18836
+ width: node.width(),
18837
+ height: node.height(),
18838
+ scaleX: node.scaleX(),
18839
+ scaleY: node.scaleY(),
18840
+ rotation: node.rotation(),
18841
+ strokeScaleEnabled: false
18842
+ }, false);
18843
+ }
18851
18844
  this.getUsersPresencePlugin()?.forceSendPresence();
18852
18845
  }
18853
18846
  };
@@ -18935,10 +18928,15 @@ var WeaveNodesSelectionPlugin = class extends WeavePlugin {
18935
18928
  clearContainerTargets(this.instance);
18936
18929
  const layerToMove = containerOverCursor(this.instance, selectedNodes);
18937
18930
  if (this.getUsersPresencePlugin() && this.dragInProcess) {
18938
- for (const node of selectedNodes) this.getUsersPresencePlugin()?.setPresence(node.id(), {
18939
- x: node.x(),
18940
- y: node.y()
18941
- }, false);
18931
+ for (const node of selectedNodes) {
18932
+ let parentId = node.getParent()?.id() ?? "";
18933
+ const parent = node.getParent();
18934
+ if (parent?.getAttrs().nodeId) parentId = parent.getAttrs().nodeId;
18935
+ this.getUsersPresencePlugin()?.setPresence(node.id(), parentId, {
18936
+ x: node.x(),
18937
+ y: node.y()
18938
+ }, false);
18939
+ }
18942
18940
  this.getUsersPresencePlugin()?.forceSendPresence();
18943
18941
  }
18944
18942
  if (layerToMove && !selectionContainsFrames) layerToMove.fire(WEAVE_NODE_CUSTOM_EVENTS.onTargetEnter, { bubbles: true });
@@ -20167,7 +20165,6 @@ const augmentKonvaNodeClass = (config) => {
20167
20165
  Konva.Node.prototype.getRealClientRect = function(config$1) {
20168
20166
  return this.getClientRect(config$1);
20169
20167
  };
20170
- Konva.Node.prototype.movedToContainer = function() {};
20171
20168
  Konva.Node.prototype.updatePosition = function() {};
20172
20169
  Konva.Node.prototype.triggerCrop = function() {};
20173
20170
  Konva.Node.prototype.closeCrop = function() {};
@@ -20217,7 +20214,6 @@ var WeaveNode = class {
20217
20214
  "bottom-right"
20218
20215
  ];
20219
20216
  };
20220
- node.movedToContainer = function() {};
20221
20217
  node.updatePosition = function() {};
20222
20218
  node.resetCrop = function() {};
20223
20219
  node.handleMouseover = function() {};
@@ -20406,7 +20402,10 @@ var WeaveNode = class {
20406
20402
  const nodesEdgeSnappingPlugin = this.getNodesEdgeSnappingPlugin();
20407
20403
  if (nodesSelectionPlugin && this.isSelecting() && this.isNodeSelected(node$1)) nodesSelectionPlugin.getTransformer().forceUpdate();
20408
20404
  if (nodesEdgeSnappingPlugin && transforming && this.isSelecting() && this.isNodeSelected(node$1)) nodesEdgeSnappingPlugin.evaluateGuidelines(e);
20409
- this.getUsersPresencePlugin()?.setPresence(node$1.id(), {
20405
+ let parentId = node$1.getParent()?.id() ?? "";
20406
+ const parent = node$1.getParent();
20407
+ if (parent?.getAttrs().nodeId) parentId = parent.getAttrs().nodeId;
20408
+ this.getUsersPresencePlugin()?.setPresence(node$1.id(), parentId, {
20410
20409
  x: node$1.x(),
20411
20410
  y: node$1.y(),
20412
20411
  width: node$1.width(),
@@ -20464,7 +20463,6 @@ var WeaveNode = class {
20464
20463
  const nodeTarget = e.target;
20465
20464
  let isWheelMousePressed = false;
20466
20465
  if (e.evt.button === 1) isWheelMousePressed = true;
20467
- e.cancelBubble = true;
20468
20466
  this.getNodesSelectionFeedbackPlugin()?.hideSelectionHalo(nodeTarget);
20469
20467
  this.getSelectionPlugin()?.saveDragSelectedNodes();
20470
20468
  if (this.getSelectionPlugin()?.getDragSelectedNodes().length === 1) this.getSelectionPlugin()?.setNodesOpacityOnDrag();
@@ -20558,7 +20556,10 @@ var WeaveNode = class {
20558
20556
  }
20559
20557
  if (this.isSelecting() && this.getSelectionPlugin()?.getSelectedNodes().length === 1) {
20560
20558
  clearContainerTargets(this.instance);
20561
- this.getUsersPresencePlugin()?.setPresence(realNodeTarget.id(), {
20559
+ let parentId = realNodeTarget.getParent()?.id() ?? "";
20560
+ const parent = realNodeTarget.getParent();
20561
+ if (parent?.getAttrs().nodeId) parentId = parent.getAttrs().nodeId;
20562
+ this.getUsersPresencePlugin()?.setPresence(realNodeTarget.id(), parentId, {
20562
20563
  x: realNodeTarget.x(),
20563
20564
  y: realNodeTarget.y()
20564
20565
  });
@@ -20771,7 +20772,6 @@ var WeaveNode = class {
20771
20772
  delete cleanedAttrs.mutexUserId;
20772
20773
  delete cleanedAttrs.draggable;
20773
20774
  delete cleanedAttrs.overridesMouseControl;
20774
- delete cleanedAttrs.onMoveContainer;
20775
20775
  delete cleanedAttrs.dragBoundFunc;
20776
20776
  return {
20777
20777
  key: attrs.id ?? "",
@@ -21397,45 +21397,23 @@ var WeaveTargetingManager = class {
21397
21397
  }
21398
21398
  getMousePointer(point) {
21399
21399
  this.logger.debug({ point }, "getMousePointer");
21400
- const stage = this.instance.getStage();
21401
21400
  const mainLayer = this.instance.getMainLayer();
21402
21401
  let relativeMousePointer = typeof point !== "undefined" ? point : mainLayer?.getRelativePointerPosition() ?? {
21403
21402
  x: 0,
21404
21403
  y: 0
21405
21404
  };
21406
- let measureContainer = mainLayer;
21407
- let container = mainLayer;
21408
21405
  const utilityLayer = this.instance.getUtilityLayer();
21409
21406
  if (utilityLayer) utilityLayer.visible(false);
21407
+ const containerAlt = containerOverCursor(this.instance, [], relativeMousePointer);
21410
21408
  const nodesSelection = this.instance.getPlugin("nodesSelection");
21411
21409
  if (nodesSelection) nodesSelection.getTransformer().visible(false);
21412
- const dummyRect = new Konva.Rect({
21413
- width: 10,
21414
- height: 10,
21415
- x: relativeMousePointer.x,
21416
- y: relativeMousePointer.y
21417
- });
21418
- mainLayer?.add(dummyRect);
21419
- const intersectedNode = this.nodeIntersectsContainerElement(dummyRect);
21420
- if (intersectedNode) {
21421
- const containerOfNode = stage.findOne(`#${intersectedNode.getAttrs().containerId}`);
21422
- if (containerOfNode) {
21423
- container = intersectedNode;
21424
- measureContainer = containerOfNode;
21425
- }
21426
- }
21427
- if (typeof point === "undefined" && container?.getAttrs().nodeType !== "layer") relativeMousePointer = measureContainer?.getRelativePointerPosition() ?? relativeMousePointer;
21428
- if (typeof point === "undefined" && container?.getAttrs().nodeType === "layer") relativeMousePointer = measureContainer?.getRelativePointerPosition() ?? {
21429
- x: 0,
21430
- y: 0
21431
- };
21410
+ relativeMousePointer = containerAlt?.getRelativePointerPosition() ?? relativeMousePointer;
21432
21411
  if (utilityLayer) utilityLayer.visible(true);
21433
21412
  if (nodesSelection) nodesSelection.getTransformer().visible(true);
21434
- dummyRect.destroy();
21435
21413
  return {
21436
21414
  mousePoint: relativeMousePointer,
21437
- container,
21438
- measureContainer
21415
+ container: containerAlt,
21416
+ measureContainer: containerAlt
21439
21417
  };
21440
21418
  }
21441
21419
  getMousePointerRelativeToContainer(container) {
@@ -22024,7 +22002,7 @@ var WeaveRegisterManager = class {
22024
22002
 
22025
22003
  //#endregion
22026
22004
  //#region package.json
22027
- var version = "3.8.0";
22005
+ var version = "3.9.0-SNAPSHOT.177.1";
22028
22006
 
22029
22007
  //#endregion
22030
22008
  //#region src/managers/setup.ts
@@ -23464,7 +23442,7 @@ var Weave = class {
23464
23442
  this.moduleLogger.info("Start instance");
23465
23443
  if (!this.isServerSide()) {
23466
23444
  this.eventsController = new AbortController();
23467
- if (!window.weave) window.weave = this;
23445
+ window.weave = this;
23468
23446
  }
23469
23447
  this.emitEvent("onRoomLoaded", false);
23470
23448
  this.status = WEAVE_INSTANCE_STATUS.STARTING;
@@ -24455,7 +24433,6 @@ var WeaveLayerNode = class extends WeaveNode {
24455
24433
  delete cleanedAttrs.mutexUserId;
24456
24434
  delete cleanedAttrs.draggable;
24457
24435
  delete cleanedAttrs.overridesMouseControl;
24458
- delete cleanedAttrs.onMoveContainer;
24459
24436
  delete cleanedAttrs.dragBoundFunc;
24460
24437
  return {
24461
24438
  key: attrs.id ?? "",
@@ -24540,7 +24517,6 @@ var WeaveGroupNode = class extends WeaveNode {
24540
24517
  delete cleanedAttrs.mutexUserId;
24541
24518
  delete cleanedAttrs.draggable;
24542
24519
  delete cleanedAttrs.overridesMouseControl;
24543
- delete cleanedAttrs.onMoveContainer;
24544
24520
  delete cleanedAttrs.dragBoundFunc;
24545
24521
  return {
24546
24522
  key: attrs.id ?? "",
@@ -25329,7 +25305,6 @@ var WeaveTextNode = class extends WeaveNode {
25329
25305
  delete cleanedAttrs.measureMultilineText;
25330
25306
  delete cleanedAttrs.overridesMouseControl;
25331
25307
  delete cleanedAttrs.shouldUpdateOnTransform;
25332
- delete cleanedAttrs.onMoveContainer;
25333
25308
  delete cleanedAttrs.dragBoundFunc;
25334
25309
  return {
25335
25310
  key: attrs.id ?? "",
@@ -25721,6 +25696,7 @@ const WEAVE_IMAGE_CROP_ANCHOR_POSITION = {
25721
25696
  ["BOTTOM_CENTER"]: "bottom-center"
25722
25697
  };
25723
25698
  const WEAVE_IMAGE_DEFAULT_CONFIG = {
25699
+ cleanup: { intervalMs: 60 * 1e3 },
25724
25700
  performance: { cache: { enabled: false } },
25725
25701
  style: {
25726
25702
  placeholder: { fill: "#aaaaaa" },
@@ -26420,6 +26396,25 @@ var WeaveImageNode = class extends WeaveNode {
26420
26396
  this.imageTryoutAttempts = {};
26421
26397
  this.imageFallback = {};
26422
26398
  }
26399
+ setupNotUsedImagesCleanup() {
26400
+ const cleanupHandler = () => {
26401
+ this.notUsedImagesCleanup = null;
26402
+ const stage = this.instance.getStage();
26403
+ const nodesIds = Object.keys(this.imageState);
26404
+ for (const nodeId of nodesIds) {
26405
+ const node = stage.findOne(`#${nodeId}`);
26406
+ if (!node) {
26407
+ delete this.imageSource[nodeId];
26408
+ delete this.imageState[nodeId];
26409
+ delete this.imageTryoutAttempts[nodeId];
26410
+ delete this.imageFallback[nodeId];
26411
+ }
26412
+ }
26413
+ this.setupNotUsedImagesCleanup();
26414
+ };
26415
+ const bindedCleanupHandler = cleanupHandler.bind(this);
26416
+ if (!this.notUsedImagesCleanup) setTimeout(bindedCleanupHandler, this.config.cleanup.intervalMs);
26417
+ }
26423
26418
  preloadCursors() {
26424
26419
  return new Promise((resolve) => {
26425
26420
  (async () => {
@@ -26496,6 +26491,7 @@ var WeaveImageNode = class extends WeaveNode {
26496
26491
  this.instance.resolveAsyncElement(nodeId, WEAVE_IMAGE_NODE_TYPE);
26497
26492
  }
26498
26493
  onRender(props) {
26494
+ this.setupNotUsedImagesCleanup();
26499
26495
  const imageProperties = props.imageProperties;
26500
26496
  const imageProps = props;
26501
26497
  const { id } = imageProps;
@@ -26521,11 +26517,6 @@ var WeaveImageNode = class extends WeaveNode {
26521
26517
  if (this.isSelecting() && selectedNodes.includes(image)) return "grab";
26522
26518
  return "pointer";
26523
26519
  };
26524
- image.movedToContainer = () => {
26525
- const stage = this.instance.getStage();
26526
- const image$1 = stage.findOne(`#${id}`);
26527
- if (!image$1) return;
26528
- };
26529
26520
  if (this.config.cropMode.enabled) {
26530
26521
  image.triggerCrop = () => {
26531
26522
  this.triggerCrop(image, { cmdCtrl: { triggered: false } });
@@ -27237,8 +27228,6 @@ var WeaveImageNode = class extends WeaveNode {
27237
27228
  }
27238
27229
  onDestroy(nodeInstance) {
27239
27230
  const nodeId = nodeInstance.getAttrs().id ?? "";
27240
- const isMoveContainer = nodeInstance.getAttr("onMoveContainer");
27241
- nodeInstance.setAttr("onMoveContainer", void 0);
27242
27231
  const utilityLayer = this.instance.getUtilityLayer();
27243
27232
  const nodes = utilityLayer?.find(".cropMode") ?? [];
27244
27233
  nodes.forEach((n) => {
@@ -27248,12 +27237,6 @@ var WeaveImageNode = class extends WeaveNode {
27248
27237
  clearTimeout(this.imageTryoutIds[nodeId]);
27249
27238
  delete this.imageTryoutIds[nodeId];
27250
27239
  }
27251
- if (!isMoveContainer) {
27252
- delete this.imageSource[nodeId];
27253
- delete this.imageState[nodeId];
27254
- delete this.imageTryoutAttempts[nodeId];
27255
- delete this.imageFallback[nodeId];
27256
- }
27257
27240
  nodeInstance.destroy();
27258
27241
  }
27259
27242
  };
@@ -27800,7 +27783,6 @@ var WeaveFrameNode = class extends WeaveNode {
27800
27783
  delete cleanedAttrs.draggable;
27801
27784
  delete cleanedAttrs.onTargetEnter;
27802
27785
  delete cleanedAttrs.overridesMouseControl;
27803
- delete cleanedAttrs.onMoveContainer;
27804
27786
  delete cleanedAttrs.dragBoundFunc;
27805
27787
  return {
27806
27788
  key: realAttrs?.id ?? "",
@@ -28039,7 +28021,6 @@ var WeaveStrokeNode = class extends WeaveNode {
28039
28021
  delete cleanedAttrs.sceneFunc;
28040
28022
  delete cleanedAttrs.hitFunc;
28041
28023
  delete cleanedAttrs.overridesMouseControl;
28042
- delete cleanedAttrs.onMoveContainer;
28043
28024
  delete cleanedAttrs.dragBoundFunc;
28044
28025
  return {
28045
28026
  key: attrs.id ?? "",
@@ -29584,6 +29565,7 @@ var WeaveVideoNode = class extends WeaveNode {
29584
29565
  const videoIconGroup = video.findOne(`#${id}-video-icon-group`);
29585
29566
  if (!videoPlaceholder || !videoIconGroup) return;
29586
29567
  const realVideoPlaceholderURL = this.config.urlTransformer?.(videoProps.videoPlaceholderURL ?? "", video) ?? videoProps.videoPlaceholderURL;
29568
+ if (!this.videoPlaceholder) this.initialize();
29587
29569
  this.videoPlaceholder[id] = Konva.Util.createImageElement();
29588
29570
  this.videoPlaceholder[id].crossOrigin = this.config.crossOrigin;
29589
29571
  this.videoPlaceholder[id].src = realVideoPlaceholderURL;
@@ -31971,7 +31953,6 @@ var WeaveConnectorNode = class extends WeaveNode {
31971
31953
  delete cleanedAttrs.startInfoLoaded;
31972
31954
  delete cleanedAttrs.endInfoLoaded;
31973
31955
  delete cleanedAttrs.overridesMouseControl;
31974
- delete cleanedAttrs.onMoveContainer;
31975
31956
  delete cleanedAttrs.dragBoundFunc;
31976
31957
  return {
31977
31958
  key: attrs.id ?? "",
@@ -34430,7 +34411,7 @@ var WeaveImageToolAction = class extends WeaveAction {
34430
34411
  const dragProperties = this.instance.getDragProperties();
34431
34412
  if (dragProperties && dragId === WEAVE_IMAGE_TOOL_ACTION_NAME) {
34432
34413
  this.instance.getStage().setPointersPositions(e);
34433
- const position = getPositionRelativeToContainerOnPosition(this.instance);
34414
+ const position = this.instance.getStage().getRelativePointerPosition();
34434
34415
  if (!position) return;
34435
34416
  this.instance.triggerAction(WEAVE_IMAGE_TOOL_ACTION_NAME, {
34436
34417
  type: WEAVE_IMAGE_TOOL_UPLOAD_TYPE.IMAGE_URL,
@@ -34880,7 +34861,7 @@ var WeaveImagesToolAction = class extends WeaveAction {
34880
34861
  const dragProperties = this.instance.getDragProperties();
34881
34862
  if (dragProperties && dragId === WEAVE_IMAGES_TOOL_ACTION_NAME) {
34882
34863
  this.instance.getStage().setPointersPositions(e);
34883
- const position = getPositionRelativeToContainerOnPosition(this.instance);
34864
+ const position = this.instance.getStage().getRelativePointerPosition();
34884
34865
  if (!position) return;
34885
34866
  this.instance.triggerAction(WEAVE_IMAGES_TOOL_ACTION_NAME, {
34886
34867
  type: WEAVE_IMAGES_TOOL_UPLOAD_TYPE.IMAGE_URL,
@@ -36991,7 +36972,7 @@ var WeaveVideoToolAction = class extends WeaveAction {
36991
36972
  const dragProperties = this.instance.getDragProperties();
36992
36973
  if (dragProperties && dragId === VIDEO_TOOL_ACTION_NAME) {
36993
36974
  this.instance.getStage().setPointersPositions(e);
36994
- const position = getPositionRelativeToContainerOnPosition(this.instance);
36975
+ const position = this.instance.getStage().getRelativePointerPosition();
36995
36976
  this.instance.triggerAction(VIDEO_TOOL_ACTION_NAME, {
36996
36977
  videoId: dragProperties.videoId,
36997
36978
  videoParams: dragProperties.videoParams,
@@ -38299,13 +38280,12 @@ var WeaveStagePanningPlugin = class extends WeavePlugin {
38299
38280
  if (this.panEdgeTargets[e.target.getAttrs().id ?? ""] !== void 0) return;
38300
38281
  this.panEdgeTargets[e.target.getAttrs().id ?? ""] = e.target;
38301
38282
  if (this.stageScrollInterval !== void 0) return;
38283
+ const speed = this.config.edgePan.speed;
38302
38284
  this.stageScrollInterval = setInterval(() => {
38303
38285
  const pos = stage.getPointerPosition();
38304
- const offset = this.config.edgePanOffset;
38286
+ const offset = this.config.edgePan.offset;
38305
38287
  if (!pos) return;
38306
38288
  const { width, height } = stage.size();
38307
- const scale = stage.scaleX();
38308
- const speed = Math.max(this.config.edgePanMinSpeed, Math.min(this.config.edgePanMaxSpeed, this.config.edgePanSpeed / scale));
38309
38289
  let isNearLeft = false;
38310
38290
  let isNearRight = false;
38311
38291
  let isNearTop = false;
@@ -39315,7 +39295,11 @@ var WeaveUsersPresencePlugin = class extends WeavePlugin {
39315
39295
  const presenceInfo = userPresence[nodeId];
39316
39296
  if (this.config.getUser().id === presenceInfo.userId) continue;
39317
39297
  const nodeInstance = stage.findOne(`#${presenceInfo.nodeId}`);
39318
- if (nodeInstance) {
39298
+ if (!nodeInstance) continue;
39299
+ let parentId = nodeInstance.getParent()?.id() ?? "";
39300
+ const parent = nodeInstance.getParent();
39301
+ if (parent?.getAttrs().nodeId) parentId = parent.getAttrs().nodeId;
39302
+ if (nodeInstance && presenceInfo.parentId === parentId) {
39319
39303
  const newProps = {
39320
39304
  ...nodeInstance.getAttrs(),
39321
39305
  ...presenceInfo.attrs
@@ -39330,10 +39314,11 @@ var WeaveUsersPresencePlugin = class extends WeavePlugin {
39330
39314
  const store = this.instance.getStore();
39331
39315
  store.setAwarenessInfo(WEAVE_USER_PRESENCE_KEY, this.userPresence);
39332
39316
  }
39333
- setPresence(nodeId, attrs, forceUpdate = true) {
39317
+ setPresence(nodeId, parentId, attrs, forceUpdate = true) {
39334
39318
  const userInfo = this.config.getUser();
39335
39319
  this.userPresence[nodeId] = {
39336
39320
  userId: userInfo.id,
39321
+ parentId,
39337
39322
  nodeId,
39338
39323
  attrs
39339
39324
  };
@@ -40613,5 +40598,5 @@ var WeaveStageKeyboardMovePlugin = class extends WeavePlugin {
40613
40598
  };
40614
40599
 
40615
40600
  //#endregion
40616
- export { ALIGN_NODES_ALIGN_TO, ALIGN_NODES_TOOL_ACTION_NAME, ALIGN_NODES_TOOL_STATE, BRUSH_TOOL_ACTION_NAME, BRUSH_TOOL_DEFAULT_CONFIG, BRUSH_TOOL_STATE, CONNECTOR_TOOL_ACTION_NAME, CONNECTOR_TOOL_DEFAULT_CONFIG, CONNECTOR_TOOL_STATE, COPY_PASTE_NODES_PLUGIN_STATE, ELLIPSE_TOOL_ACTION_NAME, ELLIPSE_TOOL_STATE, ERASER_TOOL_ACTION_NAME, ERASER_TOOL_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_DISTANCE_LINE_DEFAULT_CONFIG, GUIDE_ENTER_SNAPPING_TOLERANCE, GUIDE_EXIT_SNAPPING_TOLERANCE, GUIDE_HORIZONTAL_LINE_NAME, GUIDE_LINE_DEFAULT_CONFIG, GUIDE_LINE_DRAG_SNAPPING_THRESHOLD, GUIDE_LINE_NAME, GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD, GUIDE_ORIENTATION, GUIDE_VERTICAL_LINE_NAME, LINE_TOOL_ACTION_NAME, LINE_TOOL_DEFAULT_CONFIG, LINE_TOOL_STATE, MEASURE_TOOL_ACTION_NAME, MEASURE_TOOL_STATE, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, NODE_SNAP, NODE_SNAP_HORIZONTAL, NODE_SNAP_VERTICAL, PEN_TOOL_ACTION_NAME, PEN_TOOL_STATE, RECTANGLE_TOOL_ACTION_NAME, RECTANGLE_TOOL_STATE, REGULAR_POLYGON_TOOL_ACTION_NAME, REGULAR_POLYGON_TOOL_STATE, SELECTION_TOOL_ACTION_NAME, SELECTION_TOOL_STATE, STAGE_MINIMAP_DEFAULT_CONFIG, STAR_TOOL_ACTION_NAME, STAR_TOOL_STATE, TEXT_LAYOUT, TEXT_TOOL_ACTION_NAME, TEXT_TOOL_STATE, VIDEO_TOOL_ACTION_NAME, VIDEO_TOOL_STATE, WEAVE_ARROW_NODE_TYPE, WEAVE_ARROW_TOOL_ACTION_NAME, WEAVE_ARROW_TOOL_STATE, WEAVE_COMMENTS_RENDERER_KEY, WEAVE_COMMENTS_TOOL_LAYER_ID, WEAVE_COMMENT_CREATE_ACTION, WEAVE_COMMENT_NODE_ACTION, WEAVE_COMMENT_NODE_DEFAULTS, WEAVE_COMMENT_NODE_TYPE, WEAVE_COMMENT_STATUS, WEAVE_COMMENT_TOOL_ACTION_NAME, WEAVE_COMMENT_TOOL_DEFAULT_CONFIG, WEAVE_COMMENT_TOOL_STATE, WEAVE_COMMENT_VIEW_ACTION, WEAVE_CONNECTOR_NODE_ANCHOR_ORIGIN, WEAVE_CONNECTOR_NODE_DECORATOR_TYPE, WEAVE_CONNECTOR_NODE_DEFAULT_CONFIG, WEAVE_CONNECTOR_NODE_LINE_ORIGIN, WEAVE_CONNECTOR_NODE_LINE_TYPE, WEAVE_CONNECTOR_NODE_TYPE, WEAVE_COPY_PASTE_CONFIG_DEFAULT, WEAVE_COPY_PASTE_NODES_KEY, WEAVE_COPY_PASTE_PASTE_CATCHER_ID, WEAVE_COPY_PASTE_PASTE_MODES, WEAVE_DEFAULT_USER_INFO_FUNCTION, WEAVE_ELLIPSE_NODE_TYPE, WEAVE_FRAME_DEFAULT_BACKGROUND_COLOR, WEAVE_FRAME_NODE_DEFAULT_CONFIG, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_CONFIG, WEAVE_GRID_DOT_TYPES, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_GROUP_NODE_TYPE, WEAVE_IMAGES_TOOL_ACTION_NAME, WEAVE_IMAGES_TOOL_DEFAULT_CONFIG, WEAVE_IMAGES_TOOL_STATE, WEAVE_IMAGES_TOOL_UPLOAD_TYPE, WEAVE_IMAGE_CROP_ANCHOR_POSITION, WEAVE_IMAGE_CROP_END_TYPE, WEAVE_IMAGE_DEFAULT_CONFIG, WEAVE_IMAGE_NODE_TYPE, WEAVE_IMAGE_TOOL_ACTION_NAME, WEAVE_IMAGE_TOOL_CONFIG_DEFAULT, WEAVE_IMAGE_TOOL_STATE, WEAVE_IMAGE_TOOL_UPLOAD_TYPE, WEAVE_LAYER_NODE_TYPE, WEAVE_LINE_NODE_DEFAULT_CONFIG, WEAVE_LINE_NODE_TYPE, WEAVE_MEASURE_NODE_DEFAULT_CONFIG, WEAVE_MEASURE_NODE_TYPE, WEAVE_MEASURE_TOOL_DEFAULT_CONFIG, WEAVE_NODES_DISTANCE_SNAPPING_PLUGIN_KEY, WEAVE_NODES_EDGE_SNAPPING_PLUGIN_KEY, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_DEFAULT_CONFIG, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_KEY, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_LAYER_ID, WEAVE_NODES_SELECTION_DEFAULT_CONFIG, WEAVE_NODES_SELECTION_KEY, WEAVE_NODES_SELECTION_LAYER_ID, WEAVE_RECTANGLE_NODE_TYPE, WEAVE_REGULAR_POLYGON_NODE_TYPE, WEAVE_STAGE_DEFAULT_MODE, WEAVE_STAGE_DROP_AREA_KEY, WEAVE_STAGE_GRID_PLUGIN_KEY, WEAVE_STAGE_IMAGE_CROPPING_MODE, WEAVE_STAGE_KEYBOARD_MOVE_DEFAULT_CONFIG, WEAVE_STAGE_KEYBOARD_MOVE_KEY, WEAVE_STAGE_KEYBOARD_MOVE_ORIENTATION, WEAVE_STAGE_MINIMAP_KEY, WEAVE_STAGE_NODE_TYPE, WEAVE_STAGE_PANNING_DEFAULT_CONFIG, WEAVE_STAGE_PANNING_KEY, WEAVE_STAGE_PANNING_THROTTLE_MS, WEAVE_STAGE_TEXT_EDITION_MODE, WEAVE_STAGE_ZOOM_DEFAULT_CONFIG, WEAVE_STAGE_ZOOM_KEY, WEAVE_STAGE_ZOOM_TYPE, WEAVE_STAR_NODE_TYPE, WEAVE_STROKE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_NODE_TYPE, WEAVE_STROKE_SINGLE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_SINGLE_NODE_TIP_SIDE, WEAVE_STROKE_SINGLE_NODE_TIP_TYPE, WEAVE_STROKE_SINGLE_NODE_TYPE, WEAVE_STROKE_TOOL_ACTION_NAME, WEAVE_STROKE_TOOL_ACTION_NAME_ALIASES, WEAVE_STROKE_TOOL_DEFAULT_CONFIG, WEAVE_STROKE_TOOL_STATE, WEAVE_TEXT_NODE_DEFAULT_CONFIG, WEAVE_TEXT_NODE_TYPE, WEAVE_USERS_POINTERS_CONFIG_DEFAULT_PROPS, WEAVE_USERS_POINTERS_KEY, WEAVE_USERS_PRESENCE_CONFIG_DEFAULT_PROPS, WEAVE_USERS_PRESENCE_PLUGIN_KEY, WEAVE_USERS_SELECTION_KEY, WEAVE_USER_POINTER_KEY, WEAVE_USER_PRESENCE_KEY, WEAVE_USER_SELECTION_KEY, WEAVE_VIDEO_DEFAULT_CONFIG, WEAVE_VIDEO_NODE_TYPE, Weave, WeaveAction, WeaveAlignNodesToolAction, WeaveArrowNode, WeaveArrowToolAction, WeaveBrushToolAction, WeaveCommentNode, WeaveCommentToolAction, WeaveCommentsRendererPlugin, WeaveConnectedUsersPlugin, WeaveConnectorNode, WeaveConnectorToolAction, WeaveContextMenuPlugin, WeaveCopyPasteNodesPlugin, WeaveEllipseNode, WeaveEllipseToolAction, WeaveEraserToolAction, WeaveExportNodesToolAction, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToSelectionToolAction, WeaveFrameNode, WeaveFrameToolAction, WeaveGroupNode, WeaveImageNode, WeaveImageToolAction, WeaveImagesToolAction, WeaveLayerNode, WeaveLineNode, WeaveLineToolAction, WeaveMeasureNode, WeaveMeasureToolAction, WeaveMoveToolAction, WeaveNode, WeaveNodesDistanceSnappingPlugin, WeaveNodesEdgeSnappingPlugin, WeaveNodesMultiSelectionFeedbackPlugin, WeaveNodesSelectionPlugin, WeavePenToolAction, WeavePlugin, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRegularPolygonNode, WeaveRegularPolygonToolAction, WeaveRenderer, WeaveSelectionToolAction, WeaveStageDropAreaPlugin, WeaveStageGridPlugin, WeaveStageKeyboardMovePlugin, WeaveStageMinimapPlugin, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomPlugin, WeaveStarNode, WeaveStarToolAction, WeaveStore, WeaveStrokeNode, WeaveStrokeSingleNode, WeaveStrokeToolAction, WeaveTextNode, WeaveTextToolAction, WeaveUsersPointersPlugin, WeaveUsersPresencePlugin, WeaveUsersSelectionPlugin, WeaveVideoNode, WeaveVideoToolAction, WeaveZoomInToolAction, WeaveZoomOutToolAction, canComposite, clearContainerTargets, containerOverCursor, containsNodeDeep, defaultInitialState, downscaleImageFile, downscaleImageFromURL, getBoundingBox, getDownscaleRatio, getExportBoundingBox, getImageSizeFromFile, getJSONFromYjsBinary, getPositionRelativeToContainerOnPosition, getSelectedNodesMetadata, getStageClickPoint, getTargetAndSkipNodes, getTargetedNode, getTopmostShadowHost, getVisibleNodes, getVisibleNodesInViewport, hasFrames, hasImages, intersectArrays, isArray, isIOS, isInShadowDOM, isNodeInSelection, isObject, isServer, loadImageSource, mapJsonToYjsArray, mapJsonToYjsElements, mapJsonToYjsMap, memoize, mergeExceptArrays, moveNodeToContainer, moveNodeToContainerNT, resetScale, setupCanvasBackend, setupSkiaBackend, weavejsToYjsBinary };
40601
+ export { ALIGN_NODES_ALIGN_TO, ALIGN_NODES_TOOL_ACTION_NAME, ALIGN_NODES_TOOL_STATE, BRUSH_TOOL_ACTION_NAME, BRUSH_TOOL_DEFAULT_CONFIG, BRUSH_TOOL_STATE, CONNECTOR_TOOL_ACTION_NAME, CONNECTOR_TOOL_DEFAULT_CONFIG, CONNECTOR_TOOL_STATE, COPY_PASTE_NODES_PLUGIN_STATE, ELLIPSE_TOOL_ACTION_NAME, ELLIPSE_TOOL_STATE, ERASER_TOOL_ACTION_NAME, ERASER_TOOL_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_DISTANCE_LINE_DEFAULT_CONFIG, GUIDE_ENTER_SNAPPING_TOLERANCE, GUIDE_EXIT_SNAPPING_TOLERANCE, GUIDE_HORIZONTAL_LINE_NAME, GUIDE_LINE_DEFAULT_CONFIG, GUIDE_LINE_DRAG_SNAPPING_THRESHOLD, GUIDE_LINE_NAME, GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD, GUIDE_ORIENTATION, GUIDE_VERTICAL_LINE_NAME, LINE_TOOL_ACTION_NAME, LINE_TOOL_DEFAULT_CONFIG, LINE_TOOL_STATE, MEASURE_TOOL_ACTION_NAME, MEASURE_TOOL_STATE, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, NODE_SNAP, NODE_SNAP_HORIZONTAL, NODE_SNAP_VERTICAL, PEN_TOOL_ACTION_NAME, PEN_TOOL_STATE, RECTANGLE_TOOL_ACTION_NAME, RECTANGLE_TOOL_STATE, REGULAR_POLYGON_TOOL_ACTION_NAME, REGULAR_POLYGON_TOOL_STATE, SELECTION_TOOL_ACTION_NAME, SELECTION_TOOL_STATE, STAGE_MINIMAP_DEFAULT_CONFIG, STAR_TOOL_ACTION_NAME, STAR_TOOL_STATE, TEXT_LAYOUT, TEXT_TOOL_ACTION_NAME, TEXT_TOOL_STATE, VIDEO_TOOL_ACTION_NAME, VIDEO_TOOL_STATE, WEAVE_ARROW_NODE_TYPE, WEAVE_ARROW_TOOL_ACTION_NAME, WEAVE_ARROW_TOOL_STATE, WEAVE_COMMENTS_RENDERER_KEY, WEAVE_COMMENTS_TOOL_LAYER_ID, WEAVE_COMMENT_CREATE_ACTION, WEAVE_COMMENT_NODE_ACTION, WEAVE_COMMENT_NODE_DEFAULTS, WEAVE_COMMENT_NODE_TYPE, WEAVE_COMMENT_STATUS, WEAVE_COMMENT_TOOL_ACTION_NAME, WEAVE_COMMENT_TOOL_DEFAULT_CONFIG, WEAVE_COMMENT_TOOL_STATE, WEAVE_COMMENT_VIEW_ACTION, WEAVE_CONNECTOR_NODE_ANCHOR_ORIGIN, WEAVE_CONNECTOR_NODE_DECORATOR_TYPE, WEAVE_CONNECTOR_NODE_DEFAULT_CONFIG, WEAVE_CONNECTOR_NODE_LINE_ORIGIN, WEAVE_CONNECTOR_NODE_LINE_TYPE, WEAVE_CONNECTOR_NODE_TYPE, WEAVE_COPY_PASTE_CONFIG_DEFAULT, WEAVE_COPY_PASTE_NODES_KEY, WEAVE_COPY_PASTE_PASTE_CATCHER_ID, WEAVE_COPY_PASTE_PASTE_MODES, WEAVE_DEFAULT_USER_INFO_FUNCTION, WEAVE_ELLIPSE_NODE_TYPE, WEAVE_FRAME_DEFAULT_BACKGROUND_COLOR, WEAVE_FRAME_NODE_DEFAULT_CONFIG, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_CONFIG, WEAVE_GRID_DOT_TYPES, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_GROUP_NODE_TYPE, WEAVE_IMAGES_TOOL_ACTION_NAME, WEAVE_IMAGES_TOOL_DEFAULT_CONFIG, WEAVE_IMAGES_TOOL_STATE, WEAVE_IMAGES_TOOL_UPLOAD_TYPE, WEAVE_IMAGE_CROP_ANCHOR_POSITION, WEAVE_IMAGE_CROP_END_TYPE, WEAVE_IMAGE_DEFAULT_CONFIG, WEAVE_IMAGE_NODE_TYPE, WEAVE_IMAGE_TOOL_ACTION_NAME, WEAVE_IMAGE_TOOL_CONFIG_DEFAULT, WEAVE_IMAGE_TOOL_STATE, WEAVE_IMAGE_TOOL_UPLOAD_TYPE, WEAVE_LAYER_NODE_TYPE, WEAVE_LINE_NODE_DEFAULT_CONFIG, WEAVE_LINE_NODE_TYPE, WEAVE_MEASURE_NODE_DEFAULT_CONFIG, WEAVE_MEASURE_NODE_TYPE, WEAVE_MEASURE_TOOL_DEFAULT_CONFIG, WEAVE_NODES_DISTANCE_SNAPPING_PLUGIN_KEY, WEAVE_NODES_EDGE_SNAPPING_PLUGIN_KEY, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_DEFAULT_CONFIG, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_KEY, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_LAYER_ID, WEAVE_NODES_SELECTION_DEFAULT_CONFIG, WEAVE_NODES_SELECTION_KEY, WEAVE_NODES_SELECTION_LAYER_ID, WEAVE_RECTANGLE_NODE_TYPE, WEAVE_REGULAR_POLYGON_NODE_TYPE, WEAVE_STAGE_DEFAULT_MODE, WEAVE_STAGE_DROP_AREA_KEY, WEAVE_STAGE_GRID_PLUGIN_KEY, WEAVE_STAGE_IMAGE_CROPPING_MODE, WEAVE_STAGE_KEYBOARD_MOVE_DEFAULT_CONFIG, WEAVE_STAGE_KEYBOARD_MOVE_KEY, WEAVE_STAGE_KEYBOARD_MOVE_ORIENTATION, WEAVE_STAGE_MINIMAP_KEY, WEAVE_STAGE_NODE_TYPE, WEAVE_STAGE_PANNING_DEFAULT_CONFIG, WEAVE_STAGE_PANNING_KEY, WEAVE_STAGE_PANNING_THROTTLE_MS, WEAVE_STAGE_TEXT_EDITION_MODE, WEAVE_STAGE_ZOOM_DEFAULT_CONFIG, WEAVE_STAGE_ZOOM_KEY, WEAVE_STAGE_ZOOM_TYPE, WEAVE_STAR_NODE_TYPE, WEAVE_STROKE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_NODE_TYPE, WEAVE_STROKE_SINGLE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_SINGLE_NODE_TIP_SIDE, WEAVE_STROKE_SINGLE_NODE_TIP_TYPE, WEAVE_STROKE_SINGLE_NODE_TYPE, WEAVE_STROKE_TOOL_ACTION_NAME, WEAVE_STROKE_TOOL_ACTION_NAME_ALIASES, WEAVE_STROKE_TOOL_DEFAULT_CONFIG, WEAVE_STROKE_TOOL_STATE, WEAVE_TEXT_NODE_DEFAULT_CONFIG, WEAVE_TEXT_NODE_TYPE, WEAVE_USERS_POINTERS_CONFIG_DEFAULT_PROPS, WEAVE_USERS_POINTERS_KEY, WEAVE_USERS_PRESENCE_CONFIG_DEFAULT_PROPS, WEAVE_USERS_PRESENCE_PLUGIN_KEY, WEAVE_USERS_SELECTION_KEY, WEAVE_USER_POINTER_KEY, WEAVE_USER_PRESENCE_KEY, WEAVE_USER_SELECTION_KEY, WEAVE_VIDEO_DEFAULT_CONFIG, WEAVE_VIDEO_NODE_TYPE, Weave, WeaveAction, WeaveAlignNodesToolAction, WeaveArrowNode, WeaveArrowToolAction, WeaveBrushToolAction, WeaveCommentNode, WeaveCommentToolAction, WeaveCommentsRendererPlugin, WeaveConnectedUsersPlugin, WeaveConnectorNode, WeaveConnectorToolAction, WeaveContextMenuPlugin, WeaveCopyPasteNodesPlugin, WeaveEllipseNode, WeaveEllipseToolAction, WeaveEraserToolAction, WeaveExportNodesToolAction, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToSelectionToolAction, WeaveFrameNode, WeaveFrameToolAction, WeaveGroupNode, WeaveImageNode, WeaveImageToolAction, WeaveImagesToolAction, WeaveLayerNode, WeaveLineNode, WeaveLineToolAction, WeaveMeasureNode, WeaveMeasureToolAction, WeaveMoveToolAction, WeaveNode, WeaveNodesDistanceSnappingPlugin, WeaveNodesEdgeSnappingPlugin, WeaveNodesMultiSelectionFeedbackPlugin, WeaveNodesSelectionPlugin, WeavePenToolAction, WeavePlugin, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRegularPolygonNode, WeaveRegularPolygonToolAction, WeaveRenderer, WeaveSelectionToolAction, WeaveStageDropAreaPlugin, WeaveStageGridPlugin, WeaveStageKeyboardMovePlugin, WeaveStageMinimapPlugin, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomPlugin, WeaveStarNode, WeaveStarToolAction, WeaveStore, WeaveStrokeNode, WeaveStrokeSingleNode, WeaveStrokeToolAction, WeaveTextNode, WeaveTextToolAction, WeaveUsersPointersPlugin, WeaveUsersPresencePlugin, WeaveUsersSelectionPlugin, WeaveVideoNode, WeaveVideoToolAction, WeaveZoomInToolAction, WeaveZoomOutToolAction, canComposite, clearContainerTargets, containerOverCursor, containsNodeDeep, defaultInitialState, downscaleImageFile, downscaleImageFromURL, getBoundingBox, getDownscaleRatio, getExportBoundingBox, getImageSizeFromFile, getJSONFromYjsBinary, getSelectedNodesMetadata, getStageClickPoint, getTargetAndSkipNodes, getTargetedNode, getTopmostShadowHost, getVisibleNodes, getVisibleNodesInViewport, hasFrames, hasImages, intersectArrays, isArray, isIOS, isInShadowDOM, isNodeInSelection, isObject, isServer, loadImageSource, mapJsonToYjsArray, mapJsonToYjsElements, mapJsonToYjsMap, memoize, mergeExceptArrays, moveNodeToContainer, moveNodeToContainerNT, resetScale, setupCanvasBackend, setupSkiaBackend, weavejsToYjsBinary };
40617
40602
  //# sourceMappingURL=types.js.map