@inditextech/weave-sdk 5.0.0 → 5.1.0-SNAPSHOT.426.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/sdk.js CHANGED
@@ -3716,6 +3716,9 @@ function getStageClickPoint(instance, pointerPos) {
3716
3716
  function isNumber(value) {
3717
3717
  return typeof value === "number" && !Number.isNaN(value);
3718
3718
  }
3719
+ function sleep(ms) {
3720
+ return new Promise((resolve) => setTimeout(resolve, ms));
3721
+ }
3719
3722
 
3720
3723
  //#endregion
3721
3724
  //#region src/plugins/users-selection/constants.ts
@@ -8560,14 +8563,17 @@ var WeaveGroupsManager = class {
8560
8563
  if (konvaGroup) {
8561
8564
  const nodePos = konvaGroup.getAbsolutePosition();
8562
8565
  const nodeRotation = konvaGroup.getAbsoluteRotation();
8566
+ const newId = v4_default();
8563
8567
  konvaGroup.moveTo(groupInstance);
8564
8568
  konvaGroup.setAbsolutePosition(nodePos);
8565
8569
  konvaGroup.rotation(nodeRotation);
8566
8570
  konvaGroup.zIndex(index);
8567
- konvaGroup.setAttr("id", v4_default());
8571
+ konvaGroup.setAttr("id", newId);
8568
8572
  konvaGroup.setAttr("draggable", false);
8569
8573
  const handler = this.instance.getNodeHandler("group");
8570
8574
  if (handler) {
8575
+ this.instance.removeNodeNT(groupChild, { emitUserChangeEvent: false });
8576
+ konvaGroup.setAttr("id", groupChild.key);
8571
8577
  const stateNode = handler.serialize(konvaGroup);
8572
8578
  this.instance.addNodeNT(stateNode, groupId, { emitUserChangeEvent: false });
8573
8579
  }
@@ -8578,20 +8584,22 @@ var WeaveGroupsManager = class {
8578
8584
  if (konvaNode) {
8579
8585
  const nodePos = konvaNode.getAbsolutePosition();
8580
8586
  const nodeRotation = konvaNode.getAbsoluteRotation();
8587
+ const newId = v4_default();
8581
8588
  konvaNode.moveTo(groupInstance);
8582
8589
  konvaNode.setAbsolutePosition(nodePos);
8583
8590
  konvaNode.rotation(nodeRotation);
8584
8591
  konvaNode.zIndex(index);
8585
- konvaNode.setAttr("id", v4_default());
8592
+ konvaNode.setAttr("id", newId);
8586
8593
  konvaNode.setAttr("draggable", false);
8587
8594
  const handler = this.instance.getNodeHandler(konvaNode.getAttrs().nodeType);
8588
8595
  if (handler) {
8596
+ this.instance.removeNodeNT(node, { emitUserChangeEvent: false });
8597
+ konvaNode.setAttr("id", node.key);
8589
8598
  const stateNode = handler.serialize(konvaNode);
8590
8599
  this.instance.addNodeNT(stateNode, groupId, { emitUserChangeEvent: false });
8591
8600
  }
8592
8601
  }
8593
8602
  }
8594
- this.instance.removeNodes(sortedNodesByZIndex);
8595
8603
  groupInstance.destroy();
8596
8604
  const groupNode = stage.findOne(`#${groupId}`);
8597
8605
  if (groupHandler && groupNode) {
@@ -8609,7 +8617,7 @@ var WeaveGroupsManager = class {
8609
8617
  tr.show();
8610
8618
  tr.forceUpdate();
8611
8619
  }
8612
- }, 0);
8620
+ }, 10);
8613
8621
  });
8614
8622
  }
8615
8623
  unGroup(group) {
@@ -9693,7 +9701,7 @@ var WeaveRegisterManager = class {
9693
9701
 
9694
9702
  //#endregion
9695
9703
  //#region package.json
9696
- var version = "5.0.0";
9704
+ var version = "5.1.0-SNAPSHOT.426.1";
9697
9705
 
9698
9706
  //#endregion
9699
9707
  //#region src/managers/setup.ts
@@ -15330,6 +15338,7 @@ var WeaveImageNode = class extends WeaveNode {
15330
15338
  const imageProps = props;
15331
15339
  const { id } = imageProps;
15332
15340
  const groupImageProps = { ...imageProps };
15341
+ delete groupImageProps.name;
15333
15342
  delete groupImageProps.children;
15334
15343
  delete groupImageProps.imageProperties;
15335
15344
  delete groupImageProps.zIndex;
@@ -15426,8 +15435,9 @@ var WeaveImageNode = class extends WeaveNode {
15426
15435
  image.dblClick = () => {
15427
15436
  if (this.imageState[id]?.loaded && !this.imageState[id]?.error) this.config.onDblClick?.(this, image);
15428
15437
  };
15429
- const hasFinalImageLoaded = this.imageSource[id] && imageProps.imageURL;
15430
- const hasFallbackAndFinalImageNotLoaded = !imageProps.imageURL && this.imageFallback[id] !== void 0 && this.config.imageFallback.enabled;
15438
+ const isImageFullyLoaded = this.imageState[id]?.status === "loaded" && this.imageState[id]?.loaded === true && !this.imageState[id]?.error;
15439
+ const hasFinalImageLoaded = this.imageSource[id] && imageProps.imageURL && isImageFullyLoaded;
15440
+ const hasFallbackAndFinalImageNotLoaded = !isImageFullyLoaded && this.imageFallback[id] !== void 0 && this.config.imageFallback.enabled;
15431
15441
  if (hasFinalImageLoaded || hasFallbackAndFinalImageNotLoaded) {
15432
15442
  imagePlaceholder?.destroy();
15433
15443
  const imageSource = hasFallbackAndFinalImageNotLoaded ? this.imageFallback[id] : this.imageSource[id];
@@ -15458,6 +15468,8 @@ var WeaveImageNode = class extends WeaveNode {
15458
15468
  loaded: true,
15459
15469
  error: false
15460
15470
  };
15471
+ if (hasFallbackAndFinalImageNotLoaded && imageProps.imageURL) this.loadImage(imageProps, image, false);
15472
+ if (hasFallbackAndFinalImageNotLoaded && !imageProps.imageURL) this.loadImage(imageProps, image, this.config.imageFallback.enabled);
15461
15473
  this.updateImageCrop(image);
15462
15474
  } else {
15463
15475
  this.updatePlaceholderSize(image);
@@ -25294,7 +25306,7 @@ var WeaveImagesToolAction = class extends WeaveAction {
25294
25306
  initInitialized = false;
25295
25307
  initialized = false;
25296
25308
  initialCursor = null;
25297
- nodesIds = [];
25309
+ nodesIds = new Set();
25298
25310
  toAdd = 0;
25299
25311
  imagesFile = [];
25300
25312
  imagesURL = [];
@@ -25522,15 +25534,15 @@ var WeaveImagesToolAction = class extends WeaveAction {
25522
25534
  let imagePositionX = originPoint.x;
25523
25535
  let imagePositionY = originPoint.y;
25524
25536
  let maxHeight = 0;
25525
- this.nodesIds = [];
25537
+ this.nodesIds = new Set();
25526
25538
  const images = [];
25527
25539
  const checkAddedImages = ({ nodeId }) => {
25528
- if (this.nodesIds.includes(nodeId)) this.handleImageAdded();
25540
+ if (this.nodesIds.has(nodeId)) this.handleImageAdded();
25529
25541
  if (this.getImagesAdded() <= 0) {
25530
25542
  this.setState(WEAVE_IMAGES_TOOL_STATE.FINISHED);
25531
25543
  this.cancelAction();
25532
25544
  this.instance.removeEventListener("onAddedImage", checkAddedImages);
25533
- this.instance.emitEvent("onAddedImages", { nodesIds: this.nodesIds });
25545
+ this.instance.emitEvent("onAddedImages", { nodesIds: Array.from(this.nodesIds) });
25534
25546
  }
25535
25547
  };
25536
25548
  this.instance.addEventListener("onAddedImage", checkAddedImages);
@@ -25574,7 +25586,7 @@ var WeaveImagesToolAction = class extends WeaveAction {
25574
25586
  x: imagePositionX,
25575
25587
  y: imagePositionY
25576
25588
  }));
25577
- this.nodesIds.push(nodeId);
25589
+ this.nodesIds.add(nodeId);
25578
25590
  maxHeight = Math.max(maxHeight, height);
25579
25591
  imagePositionX += imagesPadding + width;
25580
25592
  if ((i + 1) % layoutColumns === 0) {
@@ -25608,7 +25620,7 @@ var WeaveImagesToolAction = class extends WeaveAction {
25608
25620
  x: imagePositionX,
25609
25621
  y: imagePositionY
25610
25622
  }));
25611
- this.nodesIds.push(nodeId);
25623
+ this.nodesIds.add(nodeId);
25612
25624
  maxHeight = Math.max(maxHeight, image.height);
25613
25625
  imagePositionX += imagesPadding + image.width;
25614
25626
  if ((i + 1) % layoutColumns === 0) {
@@ -25617,8 +25629,8 @@ var WeaveImagesToolAction = class extends WeaveAction {
25617
25629
  maxHeight = 0;
25618
25630
  }
25619
25631
  }
25620
- if (this.nodesIds.length > 0) {
25621
- this.toAdd = this.nodesIds.length;
25632
+ if (this.nodesIds.size > 0) {
25633
+ this.toAdd = this.nodesIds.size;
25622
25634
  await Promise.allSettled(images);
25623
25635
  } else {
25624
25636
  this.setState(WEAVE_IMAGES_TOOL_STATE.FINISHED);
@@ -25633,19 +25645,19 @@ var WeaveImagesToolAction = class extends WeaveAction {
25633
25645
  if (selectionPlugin) selectionPlugin.setSelectedNodes([]);
25634
25646
  if (params?.position) this.setState(WEAVE_IMAGES_TOOL_STATE.SELECTED_POSITION);
25635
25647
  if (params?.container) this.container = params.container;
25636
- this.nodesIds = [];
25648
+ this.nodesIds = new Set();
25637
25649
  this.forceMainContainer = params.forceMainContainer ?? false;
25638
25650
  if (params.type === WEAVE_IMAGES_TOOL_UPLOAD_TYPE.FILE) {
25639
25651
  this.uploadType = WEAVE_IMAGES_TOOL_UPLOAD_TYPE.FILE;
25640
25652
  this.onStartUploading = params.onStartUploading;
25641
25653
  this.onFinishedUploading = params.onFinishedUploading;
25642
25654
  this.uploadImageFunction = params.uploadImageFunction;
25643
- this.nodesIds = [];
25655
+ this.nodesIds = new Set();
25644
25656
  this.imagesFile = params.images;
25645
25657
  }
25646
25658
  if (params.type === WEAVE_IMAGES_TOOL_UPLOAD_TYPE.IMAGE_URL) {
25647
25659
  this.uploadType = WEAVE_IMAGES_TOOL_UPLOAD_TYPE.IMAGE_URL;
25648
- this.nodesIds = [];
25660
+ this.nodesIds = new Set();
25649
25661
  this.imagesURL = params.images;
25650
25662
  }
25651
25663
  if (![WEAVE_IMAGES_TOOL_UPLOAD_TYPE.FILE, WEAVE_IMAGES_TOOL_UPLOAD_TYPE.IMAGE_URL].includes(params.type)) {
@@ -25666,21 +25678,28 @@ var WeaveImagesToolAction = class extends WeaveAction {
25666
25678
  }
25667
25679
  }
25668
25680
  }
25669
- cleanup() {
25681
+ async waitForImagesToBeAdded(nodesIds) {
25670
25682
  const stage = this.instance.getStage();
25671
- this.tempPointerFeedbackNode?.destroy();
25672
- this.tempPointerFeedbackNode = null;
25673
- this.instance.getUtilityLayer()?.batchDraw();
25674
25683
  const selectionPlugin = this.instance.getPlugin("nodesSelection");
25675
25684
  if (selectionPlugin) {
25676
25685
  const addedNodes = [];
25677
- for (const nodeId of this.nodesIds) {
25686
+ for (const nodeId of Array.from(nodesIds)) {
25678
25687
  const node = stage.findOne(`#${nodeId}`);
25679
25688
  if (node) addedNodes.push(node);
25680
25689
  }
25681
25690
  selectionPlugin.setSelectedNodes(addedNodes);
25682
25691
  this.instance.triggerAction(SELECTION_TOOL_ACTION_NAME);
25683
25692
  }
25693
+ }
25694
+ cleanup() {
25695
+ const stage = this.instance.getStage();
25696
+ this.tempPointerFeedbackNode?.destroy();
25697
+ this.tempPointerFeedbackNode = null;
25698
+ this.instance.getUtilityLayer()?.batchDraw();
25699
+ const nodesIds = this.nodesIds;
25700
+ this.nodesIds = new Set();
25701
+ this.toAdd = 0;
25702
+ this.waitForImagesToBeAdded(nodesIds);
25684
25703
  this.instance.emitEvent("onFinishedImages");
25685
25704
  this.instance.endDrag(WEAVE_IMAGES_TOOL_ACTION_NAME);
25686
25705
  stage.container().style.cursor = "default";
@@ -25690,8 +25709,6 @@ var WeaveImagesToolAction = class extends WeaveAction {
25690
25709
  this.container = void 0;
25691
25710
  this.stageClickPoint = null;
25692
25711
  this.clickPoint = null;
25693
- this.nodesIds = [];
25694
- this.toAdd = 0;
25695
25712
  this.setState(WEAVE_IMAGES_TOOL_STATE.IDLE);
25696
25713
  }
25697
25714
  setCursor() {
@@ -33198,4 +33215,4 @@ function getJSONFromYjsBinary(actualState) {
33198
33215
  }
33199
33216
 
33200
33217
  //#endregion
33201
- 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, DEFAULT_GUIDE_TOOL_ACTION_CONFIG, DEFAULT_SNAPPING_MANAGER_CONFIG, ELLIPSE_TOOL_ACTION_NAME, ELLIPSE_TOOL_STATE, ERASER_TOOL_ACTION_NAME, ERASER_TOOL_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_DISTANCE_NAME, GUIDE_DISTANCE_ORIGIN, GUIDE_KIND, GUIDE_NAME, GUIDE_ORIENTATION, GUIDE_STATE, GUIDE_TOOL_ACTION_NAME, GUIDE_TOOL_STATE, LINE_TOOL_ACTION_NAME, LINE_TOOL_DEFAULT_CONFIG, LINE_TOOL_STATE, MEASURE_TOOL_ACTION_NAME, MEASURE_TOOL_STATE, MOVE_ORIENTATION, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, PEN_TOOL_ACTION_NAME, PEN_TOOL_STATE, POLYGON_TOOL_ACTION_NAME, POLYGON_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_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_NODES_SNAPPING_PLUGIN_KEY, WEAVE_POLYGON_NODE_TYPE, WEAVE_POLYGON_PRESETS, WEAVE_RECTANGLE_NODE_TYPE, WEAVE_REGULAR_POLYGON_NODE_TYPE, WEAVE_SHAPE_LABEL_DEFAULTS, 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_SHAPE_LABEL_EDITION_MODE, 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, WeaveGuideToolAction, WeaveImageNode, WeaveImageToolAction, WeaveImagesToolAction, WeaveLayerNode, WeaveLineNode, WeaveLineToolAction, WeaveMeasureNode, WeaveMeasureToolAction, WeaveMoveToolAction, WeaveNode, WeaveNodesMultiSelectionFeedbackPlugin, WeaveNodesSelectionPlugin, WeaveNodesSnappingPlugin, WeavePenToolAction, WeavePlugin, WeavePolygonNode, WeavePolygonToolAction, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRegularPolygonNode, WeaveRegularPolygonToolAction, WeaveRenderer, WeaveSelectionToolAction, WeaveStageDropAreaPlugin, WeaveStageGridPlugin, WeaveStageKeyboardMovePlugin, WeaveStageMinimapPlugin, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomPlugin, WeaveStarNode, WeaveStarToolAction, WeaveStateManipulation, WeaveStore, WeaveStrokeNode, WeaveStrokeSingleNode, WeaveStrokeToolAction, WeaveTextNode, WeaveTextToolAction, WeaveUsersPointersPlugin, WeaveUsersPresencePlugin, WeaveUsersSelectionPlugin, WeaveVideoNode, WeaveVideoToolAction, WeaveZoomInToolAction, WeaveZoomOutToolAction, buildAncestorGroupIds, canComposite, clearContainerTargets, computeEllipseLabelMinSize, computePolygonLabelMinSize, computeRectangleLabelMinSize, containerOverCursor, containsNodeDeep, defaultInitialState, downscaleImageFile, downscaleImageFromURL, getBoundingBox, getDownscaleRatio, getExportBoundingBox, getImageSizeFromFile, getJSONFromYjsBinary, getSelectedNodesMetadata, getShapeLabelSchemaFields, getStageClickPoint, getTargetAndSkipNodes, getTargetedNode, getTopmostShadowHost, getVisibleNodes, getVisibleNodesInViewport, hasFrames, hasImages, instantiatePreset, intersectArrays, isArray, isIOS, isInShadowDOM, isNodeInSelection, isNumber, isObject, isServer, labelId, loadImageSource, mapJsonToYjsArray, mapJsonToYjsElements, mapJsonToYjsMap, memoize, mergeExceptArrays, moveNodeToContainer, moveNodeToContainerNT, resetScale, spreadLabelProps, weavejsToYjsBinary };
33218
+ 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, DEFAULT_GUIDE_TOOL_ACTION_CONFIG, DEFAULT_SNAPPING_MANAGER_CONFIG, ELLIPSE_TOOL_ACTION_NAME, ELLIPSE_TOOL_STATE, ERASER_TOOL_ACTION_NAME, ERASER_TOOL_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_DISTANCE_NAME, GUIDE_DISTANCE_ORIGIN, GUIDE_KIND, GUIDE_NAME, GUIDE_ORIENTATION, GUIDE_STATE, GUIDE_TOOL_ACTION_NAME, GUIDE_TOOL_STATE, LINE_TOOL_ACTION_NAME, LINE_TOOL_DEFAULT_CONFIG, LINE_TOOL_STATE, MEASURE_TOOL_ACTION_NAME, MEASURE_TOOL_STATE, MOVE_ORIENTATION, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, PEN_TOOL_ACTION_NAME, PEN_TOOL_STATE, POLYGON_TOOL_ACTION_NAME, POLYGON_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_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_NODES_SNAPPING_PLUGIN_KEY, WEAVE_POLYGON_NODE_TYPE, WEAVE_POLYGON_PRESETS, WEAVE_RECTANGLE_NODE_TYPE, WEAVE_REGULAR_POLYGON_NODE_TYPE, WEAVE_SHAPE_LABEL_DEFAULTS, 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_SHAPE_LABEL_EDITION_MODE, 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, WeaveGuideToolAction, WeaveImageNode, WeaveImageToolAction, WeaveImagesToolAction, WeaveLayerNode, WeaveLineNode, WeaveLineToolAction, WeaveMeasureNode, WeaveMeasureToolAction, WeaveMoveToolAction, WeaveNode, WeaveNodesMultiSelectionFeedbackPlugin, WeaveNodesSelectionPlugin, WeaveNodesSnappingPlugin, WeavePenToolAction, WeavePlugin, WeavePolygonNode, WeavePolygonToolAction, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRegularPolygonNode, WeaveRegularPolygonToolAction, WeaveRenderer, WeaveSelectionToolAction, WeaveStageDropAreaPlugin, WeaveStageGridPlugin, WeaveStageKeyboardMovePlugin, WeaveStageMinimapPlugin, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomPlugin, WeaveStarNode, WeaveStarToolAction, WeaveStateManipulation, WeaveStore, WeaveStrokeNode, WeaveStrokeSingleNode, WeaveStrokeToolAction, WeaveTextNode, WeaveTextToolAction, WeaveUsersPointersPlugin, WeaveUsersPresencePlugin, WeaveUsersSelectionPlugin, WeaveVideoNode, WeaveVideoToolAction, WeaveZoomInToolAction, WeaveZoomOutToolAction, buildAncestorGroupIds, canComposite, clearContainerTargets, computeEllipseLabelMinSize, computePolygonLabelMinSize, computeRectangleLabelMinSize, containerOverCursor, containsNodeDeep, defaultInitialState, downscaleImageFile, downscaleImageFromURL, getBoundingBox, getDownscaleRatio, getExportBoundingBox, getImageSizeFromFile, getJSONFromYjsBinary, getSelectedNodesMetadata, getShapeLabelSchemaFields, getStageClickPoint, getTargetAndSkipNodes, getTargetedNode, getTopmostShadowHost, getVisibleNodes, getVisibleNodesInViewport, hasFrames, hasImages, instantiatePreset, intersectArrays, isArray, isIOS, isInShadowDOM, isNodeInSelection, isNumber, isObject, isServer, labelId, loadImageSource, mapJsonToYjsArray, mapJsonToYjsElements, mapJsonToYjsMap, memoize, mergeExceptArrays, moveNodeToContainer, moveNodeToContainerNT, resetScale, sleep, spreadLabelProps, weavejsToYjsBinary };
package/dist/sdk.node.js CHANGED
@@ -3715,6 +3715,9 @@ function getStageClickPoint(instance, pointerPos) {
3715
3715
  function isNumber(value) {
3716
3716
  return typeof value === "number" && !Number.isNaN(value);
3717
3717
  }
3718
+ function sleep(ms) {
3719
+ return new Promise((resolve) => setTimeout(resolve, ms));
3720
+ }
3718
3721
 
3719
3722
  //#endregion
3720
3723
  //#region src/plugins/users-selection/constants.ts
@@ -8559,14 +8562,17 @@ var WeaveGroupsManager = class {
8559
8562
  if (konvaGroup) {
8560
8563
  const nodePos = konvaGroup.getAbsolutePosition();
8561
8564
  const nodeRotation = konvaGroup.getAbsoluteRotation();
8565
+ const newId = v4_default();
8562
8566
  konvaGroup.moveTo(groupInstance);
8563
8567
  konvaGroup.setAbsolutePosition(nodePos);
8564
8568
  konvaGroup.rotation(nodeRotation);
8565
8569
  konvaGroup.zIndex(index);
8566
- konvaGroup.setAttr("id", v4_default());
8570
+ konvaGroup.setAttr("id", newId);
8567
8571
  konvaGroup.setAttr("draggable", false);
8568
8572
  const handler = this.instance.getNodeHandler("group");
8569
8573
  if (handler) {
8574
+ this.instance.removeNodeNT(groupChild, { emitUserChangeEvent: false });
8575
+ konvaGroup.setAttr("id", groupChild.key);
8570
8576
  const stateNode = handler.serialize(konvaGroup);
8571
8577
  this.instance.addNodeNT(stateNode, groupId, { emitUserChangeEvent: false });
8572
8578
  }
@@ -8577,20 +8583,22 @@ var WeaveGroupsManager = class {
8577
8583
  if (konvaNode) {
8578
8584
  const nodePos = konvaNode.getAbsolutePosition();
8579
8585
  const nodeRotation = konvaNode.getAbsoluteRotation();
8586
+ const newId = v4_default();
8580
8587
  konvaNode.moveTo(groupInstance);
8581
8588
  konvaNode.setAbsolutePosition(nodePos);
8582
8589
  konvaNode.rotation(nodeRotation);
8583
8590
  konvaNode.zIndex(index);
8584
- konvaNode.setAttr("id", v4_default());
8591
+ konvaNode.setAttr("id", newId);
8585
8592
  konvaNode.setAttr("draggable", false);
8586
8593
  const handler = this.instance.getNodeHandler(konvaNode.getAttrs().nodeType);
8587
8594
  if (handler) {
8595
+ this.instance.removeNodeNT(node, { emitUserChangeEvent: false });
8596
+ konvaNode.setAttr("id", node.key);
8588
8597
  const stateNode = handler.serialize(konvaNode);
8589
8598
  this.instance.addNodeNT(stateNode, groupId, { emitUserChangeEvent: false });
8590
8599
  }
8591
8600
  }
8592
8601
  }
8593
- this.instance.removeNodes(sortedNodesByZIndex);
8594
8602
  groupInstance.destroy();
8595
8603
  const groupNode = stage.findOne(`#${groupId}`);
8596
8604
  if (groupHandler && groupNode) {
@@ -8608,7 +8616,7 @@ var WeaveGroupsManager = class {
8608
8616
  tr.show();
8609
8617
  tr.forceUpdate();
8610
8618
  }
8611
- }, 0);
8619
+ }, 10);
8612
8620
  });
8613
8621
  }
8614
8622
  unGroup(group) {
@@ -9692,7 +9700,7 @@ var WeaveRegisterManager = class {
9692
9700
 
9693
9701
  //#endregion
9694
9702
  //#region package.json
9695
- var version = "5.0.0";
9703
+ var version = "5.1.0-SNAPSHOT.426.1";
9696
9704
 
9697
9705
  //#endregion
9698
9706
  //#region src/managers/setup.ts
@@ -15329,6 +15337,7 @@ var WeaveImageNode = class extends WeaveNode {
15329
15337
  const imageProps = props;
15330
15338
  const { id } = imageProps;
15331
15339
  const groupImageProps = { ...imageProps };
15340
+ delete groupImageProps.name;
15332
15341
  delete groupImageProps.children;
15333
15342
  delete groupImageProps.imageProperties;
15334
15343
  delete groupImageProps.zIndex;
@@ -15425,8 +15434,9 @@ var WeaveImageNode = class extends WeaveNode {
15425
15434
  image.dblClick = () => {
15426
15435
  if (this.imageState[id]?.loaded && !this.imageState[id]?.error) this.config.onDblClick?.(this, image);
15427
15436
  };
15428
- const hasFinalImageLoaded = this.imageSource[id] && imageProps.imageURL;
15429
- const hasFallbackAndFinalImageNotLoaded = !imageProps.imageURL && this.imageFallback[id] !== void 0 && this.config.imageFallback.enabled;
15437
+ const isImageFullyLoaded = this.imageState[id]?.status === "loaded" && this.imageState[id]?.loaded === true && !this.imageState[id]?.error;
15438
+ const hasFinalImageLoaded = this.imageSource[id] && imageProps.imageURL && isImageFullyLoaded;
15439
+ const hasFallbackAndFinalImageNotLoaded = !isImageFullyLoaded && this.imageFallback[id] !== void 0 && this.config.imageFallback.enabled;
15430
15440
  if (hasFinalImageLoaded || hasFallbackAndFinalImageNotLoaded) {
15431
15441
  imagePlaceholder?.destroy();
15432
15442
  const imageSource = hasFallbackAndFinalImageNotLoaded ? this.imageFallback[id] : this.imageSource[id];
@@ -15457,6 +15467,8 @@ var WeaveImageNode = class extends WeaveNode {
15457
15467
  loaded: true,
15458
15468
  error: false
15459
15469
  };
15470
+ if (hasFallbackAndFinalImageNotLoaded && imageProps.imageURL) this.loadImage(imageProps, image, false);
15471
+ if (hasFallbackAndFinalImageNotLoaded && !imageProps.imageURL) this.loadImage(imageProps, image, this.config.imageFallback.enabled);
15460
15472
  this.updateImageCrop(image);
15461
15473
  } else {
15462
15474
  this.updatePlaceholderSize(image);
@@ -25293,7 +25305,7 @@ var WeaveImagesToolAction = class extends WeaveAction {
25293
25305
  initInitialized = false;
25294
25306
  initialized = false;
25295
25307
  initialCursor = null;
25296
- nodesIds = [];
25308
+ nodesIds = new Set();
25297
25309
  toAdd = 0;
25298
25310
  imagesFile = [];
25299
25311
  imagesURL = [];
@@ -25521,15 +25533,15 @@ var WeaveImagesToolAction = class extends WeaveAction {
25521
25533
  let imagePositionX = originPoint.x;
25522
25534
  let imagePositionY = originPoint.y;
25523
25535
  let maxHeight = 0;
25524
- this.nodesIds = [];
25536
+ this.nodesIds = new Set();
25525
25537
  const images = [];
25526
25538
  const checkAddedImages = ({ nodeId }) => {
25527
- if (this.nodesIds.includes(nodeId)) this.handleImageAdded();
25539
+ if (this.nodesIds.has(nodeId)) this.handleImageAdded();
25528
25540
  if (this.getImagesAdded() <= 0) {
25529
25541
  this.setState(WEAVE_IMAGES_TOOL_STATE.FINISHED);
25530
25542
  this.cancelAction();
25531
25543
  this.instance.removeEventListener("onAddedImage", checkAddedImages);
25532
- this.instance.emitEvent("onAddedImages", { nodesIds: this.nodesIds });
25544
+ this.instance.emitEvent("onAddedImages", { nodesIds: Array.from(this.nodesIds) });
25533
25545
  }
25534
25546
  };
25535
25547
  this.instance.addEventListener("onAddedImage", checkAddedImages);
@@ -25573,7 +25585,7 @@ var WeaveImagesToolAction = class extends WeaveAction {
25573
25585
  x: imagePositionX,
25574
25586
  y: imagePositionY
25575
25587
  }));
25576
- this.nodesIds.push(nodeId);
25588
+ this.nodesIds.add(nodeId);
25577
25589
  maxHeight = Math.max(maxHeight, height);
25578
25590
  imagePositionX += imagesPadding + width;
25579
25591
  if ((i + 1) % layoutColumns === 0) {
@@ -25607,7 +25619,7 @@ var WeaveImagesToolAction = class extends WeaveAction {
25607
25619
  x: imagePositionX,
25608
25620
  y: imagePositionY
25609
25621
  }));
25610
- this.nodesIds.push(nodeId);
25622
+ this.nodesIds.add(nodeId);
25611
25623
  maxHeight = Math.max(maxHeight, image.height);
25612
25624
  imagePositionX += imagesPadding + image.width;
25613
25625
  if ((i + 1) % layoutColumns === 0) {
@@ -25616,8 +25628,8 @@ var WeaveImagesToolAction = class extends WeaveAction {
25616
25628
  maxHeight = 0;
25617
25629
  }
25618
25630
  }
25619
- if (this.nodesIds.length > 0) {
25620
- this.toAdd = this.nodesIds.length;
25631
+ if (this.nodesIds.size > 0) {
25632
+ this.toAdd = this.nodesIds.size;
25621
25633
  await Promise.allSettled(images);
25622
25634
  } else {
25623
25635
  this.setState(WEAVE_IMAGES_TOOL_STATE.FINISHED);
@@ -25632,19 +25644,19 @@ var WeaveImagesToolAction = class extends WeaveAction {
25632
25644
  if (selectionPlugin) selectionPlugin.setSelectedNodes([]);
25633
25645
  if (params?.position) this.setState(WEAVE_IMAGES_TOOL_STATE.SELECTED_POSITION);
25634
25646
  if (params?.container) this.container = params.container;
25635
- this.nodesIds = [];
25647
+ this.nodesIds = new Set();
25636
25648
  this.forceMainContainer = params.forceMainContainer ?? false;
25637
25649
  if (params.type === WEAVE_IMAGES_TOOL_UPLOAD_TYPE.FILE) {
25638
25650
  this.uploadType = WEAVE_IMAGES_TOOL_UPLOAD_TYPE.FILE;
25639
25651
  this.onStartUploading = params.onStartUploading;
25640
25652
  this.onFinishedUploading = params.onFinishedUploading;
25641
25653
  this.uploadImageFunction = params.uploadImageFunction;
25642
- this.nodesIds = [];
25654
+ this.nodesIds = new Set();
25643
25655
  this.imagesFile = params.images;
25644
25656
  }
25645
25657
  if (params.type === WEAVE_IMAGES_TOOL_UPLOAD_TYPE.IMAGE_URL) {
25646
25658
  this.uploadType = WEAVE_IMAGES_TOOL_UPLOAD_TYPE.IMAGE_URL;
25647
- this.nodesIds = [];
25659
+ this.nodesIds = new Set();
25648
25660
  this.imagesURL = params.images;
25649
25661
  }
25650
25662
  if (![WEAVE_IMAGES_TOOL_UPLOAD_TYPE.FILE, WEAVE_IMAGES_TOOL_UPLOAD_TYPE.IMAGE_URL].includes(params.type)) {
@@ -25665,21 +25677,28 @@ var WeaveImagesToolAction = class extends WeaveAction {
25665
25677
  }
25666
25678
  }
25667
25679
  }
25668
- cleanup() {
25680
+ async waitForImagesToBeAdded(nodesIds) {
25669
25681
  const stage = this.instance.getStage();
25670
- this.tempPointerFeedbackNode?.destroy();
25671
- this.tempPointerFeedbackNode = null;
25672
- this.instance.getUtilityLayer()?.batchDraw();
25673
25682
  const selectionPlugin = this.instance.getPlugin("nodesSelection");
25674
25683
  if (selectionPlugin) {
25675
25684
  const addedNodes = [];
25676
- for (const nodeId of this.nodesIds) {
25685
+ for (const nodeId of Array.from(nodesIds)) {
25677
25686
  const node = stage.findOne(`#${nodeId}`);
25678
25687
  if (node) addedNodes.push(node);
25679
25688
  }
25680
25689
  selectionPlugin.setSelectedNodes(addedNodes);
25681
25690
  this.instance.triggerAction(SELECTION_TOOL_ACTION_NAME);
25682
25691
  }
25692
+ }
25693
+ cleanup() {
25694
+ const stage = this.instance.getStage();
25695
+ this.tempPointerFeedbackNode?.destroy();
25696
+ this.tempPointerFeedbackNode = null;
25697
+ this.instance.getUtilityLayer()?.batchDraw();
25698
+ const nodesIds = this.nodesIds;
25699
+ this.nodesIds = new Set();
25700
+ this.toAdd = 0;
25701
+ this.waitForImagesToBeAdded(nodesIds);
25683
25702
  this.instance.emitEvent("onFinishedImages");
25684
25703
  this.instance.endDrag(WEAVE_IMAGES_TOOL_ACTION_NAME);
25685
25704
  stage.container().style.cursor = "default";
@@ -25689,8 +25708,6 @@ var WeaveImagesToolAction = class extends WeaveAction {
25689
25708
  this.container = void 0;
25690
25709
  this.stageClickPoint = null;
25691
25710
  this.clickPoint = null;
25692
- this.nodesIds = [];
25693
- this.toAdd = 0;
25694
25711
  this.setState(WEAVE_IMAGES_TOOL_STATE.IDLE);
25695
25712
  }
25696
25713
  setCursor() {
@@ -33178,4 +33195,4 @@ const setupCanvasBackend = async () => {
33178
33195
  };
33179
33196
 
33180
33197
  //#endregion
33181
- 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, DEFAULT_GUIDE_TOOL_ACTION_CONFIG, DEFAULT_SNAPPING_MANAGER_CONFIG, ELLIPSE_TOOL_ACTION_NAME, ELLIPSE_TOOL_STATE, ERASER_TOOL_ACTION_NAME, ERASER_TOOL_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_DISTANCE_NAME, GUIDE_DISTANCE_ORIGIN, GUIDE_KIND, GUIDE_NAME, GUIDE_ORIENTATION, GUIDE_STATE, GUIDE_TOOL_ACTION_NAME, GUIDE_TOOL_STATE, LINE_TOOL_ACTION_NAME, LINE_TOOL_DEFAULT_CONFIG, LINE_TOOL_STATE, MEASURE_TOOL_ACTION_NAME, MEASURE_TOOL_STATE, MOVE_ORIENTATION, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, PEN_TOOL_ACTION_NAME, PEN_TOOL_STATE, POLYGON_TOOL_ACTION_NAME, POLYGON_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_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_NODES_SNAPPING_PLUGIN_KEY, WEAVE_POLYGON_NODE_TYPE, WEAVE_POLYGON_PRESETS, WEAVE_RECTANGLE_NODE_TYPE, WEAVE_REGULAR_POLYGON_NODE_TYPE, WEAVE_SHAPE_LABEL_DEFAULTS, 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_SHAPE_LABEL_EDITION_MODE, 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, WeaveGuideToolAction, WeaveImageNode, WeaveImageToolAction, WeaveImagesToolAction, WeaveLayerNode, WeaveLineNode, WeaveLineToolAction, WeaveMeasureNode, WeaveMeasureToolAction, WeaveMoveToolAction, WeaveNode, WeaveNodesMultiSelectionFeedbackPlugin, WeaveNodesSelectionPlugin, WeaveNodesSnappingPlugin, WeavePenToolAction, WeavePlugin, WeavePolygonNode, WeavePolygonToolAction, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRegularPolygonNode, WeaveRegularPolygonToolAction, WeaveRenderer, WeaveSelectionToolAction, WeaveStageDropAreaPlugin, WeaveStageGridPlugin, WeaveStageKeyboardMovePlugin, WeaveStageMinimapPlugin, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomPlugin, WeaveStarNode, WeaveStarToolAction, WeaveStateManipulation, WeaveStore, WeaveStrokeNode, WeaveStrokeSingleNode, WeaveStrokeToolAction, WeaveTextNode, WeaveTextToolAction, WeaveUsersPointersPlugin, WeaveUsersPresencePlugin, WeaveUsersSelectionPlugin, WeaveVideoNode, WeaveVideoToolAction, WeaveZoomInToolAction, WeaveZoomOutToolAction, buildAncestorGroupIds, canComposite, clearContainerTargets, computeEllipseLabelMinSize, computePolygonLabelMinSize, computeRectangleLabelMinSize, containerOverCursor, containsNodeDeep, defaultInitialState, downscaleImageFile, downscaleImageFromURL, getBoundingBox, getDownscaleRatio, getExportBoundingBox, getImageSizeFromFile, getSelectedNodesMetadata, getShapeLabelSchemaFields, getStageClickPoint, getTargetAndSkipNodes, getTargetedNode, getTopmostShadowHost, getVisibleNodes, getVisibleNodesInViewport, hasFrames, hasImages, instantiatePreset, intersectArrays, isIOS, isInShadowDOM, isNodeInSelection, isNumber, isServer, labelId, loadImageSource, memoize, mergeExceptArrays, moveNodeToContainer, moveNodeToContainerNT, resetScale, setupCanvasBackend, setupSkiaBackend, spreadLabelProps };
33198
+ 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, DEFAULT_GUIDE_TOOL_ACTION_CONFIG, DEFAULT_SNAPPING_MANAGER_CONFIG, ELLIPSE_TOOL_ACTION_NAME, ELLIPSE_TOOL_STATE, ERASER_TOOL_ACTION_NAME, ERASER_TOOL_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_DISTANCE_NAME, GUIDE_DISTANCE_ORIGIN, GUIDE_KIND, GUIDE_NAME, GUIDE_ORIENTATION, GUIDE_STATE, GUIDE_TOOL_ACTION_NAME, GUIDE_TOOL_STATE, LINE_TOOL_ACTION_NAME, LINE_TOOL_DEFAULT_CONFIG, LINE_TOOL_STATE, MEASURE_TOOL_ACTION_NAME, MEASURE_TOOL_STATE, MOVE_ORIENTATION, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, PEN_TOOL_ACTION_NAME, PEN_TOOL_STATE, POLYGON_TOOL_ACTION_NAME, POLYGON_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_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_NODES_SNAPPING_PLUGIN_KEY, WEAVE_POLYGON_NODE_TYPE, WEAVE_POLYGON_PRESETS, WEAVE_RECTANGLE_NODE_TYPE, WEAVE_REGULAR_POLYGON_NODE_TYPE, WEAVE_SHAPE_LABEL_DEFAULTS, 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_SHAPE_LABEL_EDITION_MODE, 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, WeaveGuideToolAction, WeaveImageNode, WeaveImageToolAction, WeaveImagesToolAction, WeaveLayerNode, WeaveLineNode, WeaveLineToolAction, WeaveMeasureNode, WeaveMeasureToolAction, WeaveMoveToolAction, WeaveNode, WeaveNodesMultiSelectionFeedbackPlugin, WeaveNodesSelectionPlugin, WeaveNodesSnappingPlugin, WeavePenToolAction, WeavePlugin, WeavePolygonNode, WeavePolygonToolAction, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRegularPolygonNode, WeaveRegularPolygonToolAction, WeaveRenderer, WeaveSelectionToolAction, WeaveStageDropAreaPlugin, WeaveStageGridPlugin, WeaveStageKeyboardMovePlugin, WeaveStageMinimapPlugin, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomPlugin, WeaveStarNode, WeaveStarToolAction, WeaveStateManipulation, WeaveStore, WeaveStrokeNode, WeaveStrokeSingleNode, WeaveStrokeToolAction, WeaveTextNode, WeaveTextToolAction, WeaveUsersPointersPlugin, WeaveUsersPresencePlugin, WeaveUsersSelectionPlugin, WeaveVideoNode, WeaveVideoToolAction, WeaveZoomInToolAction, WeaveZoomOutToolAction, buildAncestorGroupIds, canComposite, clearContainerTargets, computeEllipseLabelMinSize, computePolygonLabelMinSize, computeRectangleLabelMinSize, containerOverCursor, containsNodeDeep, defaultInitialState, downscaleImageFile, downscaleImageFromURL, getBoundingBox, getDownscaleRatio, getExportBoundingBox, getImageSizeFromFile, getSelectedNodesMetadata, getShapeLabelSchemaFields, getStageClickPoint, getTargetAndSkipNodes, getTargetedNode, getTopmostShadowHost, getVisibleNodes, getVisibleNodesInViewport, hasFrames, hasImages, instantiatePreset, intersectArrays, isIOS, isInShadowDOM, isNodeInSelection, isNumber, isServer, labelId, loadImageSource, memoize, mergeExceptArrays, moveNodeToContainer, moveNodeToContainerNT, resetScale, setupCanvasBackend, setupSkiaBackend, sleep, spreadLabelProps };