@inditextech/weave-sdk 0.71.0 → 0.72.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
@@ -15494,6 +15494,7 @@ var require_lodash = __commonJS({ "../../node_modules/lodash/lodash.js"(exports,
15494
15494
  } else root$8._ = _;
15495
15495
  }).call(exports);
15496
15496
  } });
15497
+ var import_lodash$1 = __toESM(require_lodash());
15497
15498
  var import_lodash = __toESM(require_lodash(), 1);
15498
15499
 
15499
15500
  //#endregion
@@ -15592,12 +15593,12 @@ var WeaveStore = class {
15592
15593
  node: JSON.parse(JSON.stringify(nodeInfo.node))
15593
15594
  });
15594
15595
  }
15595
- if (!this.isRoomLoaded && !(0, import_lodash.isEmpty)(this.state.weave)) {
15596
+ if (!this.isRoomLoaded && !(0, import_lodash$1.isEmpty)(this.state.weave)) {
15596
15597
  this.instance.setupRenderer();
15597
15598
  this.isRoomLoaded = true;
15598
15599
  this.instance.emitEvent("onRoomLoaded", this.isRoomLoaded);
15599
15600
  }
15600
- if (this.isRoomLoaded && !(0, import_lodash.isEmpty)(this.state.weave)) this.instance.render();
15601
+ if (this.isRoomLoaded && !(0, import_lodash$1.isEmpty)(this.state.weave)) this.instance.render();
15601
15602
  });
15602
15603
  }
15603
15604
  canUndoStateStep() {
@@ -17922,7 +17923,7 @@ var require_merge = __commonJS({ "../../node_modules/lodash/merge.js"(exports, m
17922
17923
  });
17923
17924
  module.exports = merge;
17924
17925
  } });
17925
- var import_merge = __toESM(require_merge(), 1);
17926
+ var import_merge = __toESM(require_merge());
17926
17927
 
17927
17928
  //#endregion
17928
17929
  //#region src/plugins/plugin.ts
@@ -18869,7 +18870,7 @@ var require_throttle = __commonJS({ "../../node_modules/lodash/throttle.js"(expo
18869
18870
  }
18870
18871
  module.exports = throttle;
18871
18872
  } });
18872
- var import_throttle = __toESM(require_throttle(), 1);
18873
+ var import_throttle = __toESM(require_throttle());
18873
18874
 
18874
18875
  //#endregion
18875
18876
  //#region src/nodes/stage/constants.ts
@@ -20007,6 +20008,7 @@ var WeaveCopyPasteNodesPlugin = class extends WeavePlugin {
20007
20008
  this.instance.addNode(node, containerId);
20008
20009
  const realNode = this.instance.getStage().findOne(`#${newNodeId}`);
20009
20010
  if (realNode) nodesToSelect.push(realNode);
20011
+ this.getStageGridPlugin()?.onRender();
20010
20012
  }
20011
20013
  this.instance.emitEvent("onPaste", {
20012
20014
  error: void 0,
@@ -20166,6 +20168,10 @@ var WeaveCopyPasteNodesPlugin = class extends WeavePlugin {
20166
20168
  isIOS: /iP(ad|hone|od)/.test(navigator.userAgent)
20167
20169
  };
20168
20170
  }
20171
+ getStageGridPlugin() {
20172
+ const gridPlugin = this.instance.getPlugin("stageGrid");
20173
+ return gridPlugin;
20174
+ }
20169
20175
  };
20170
20176
 
20171
20177
  //#endregion
@@ -20306,7 +20312,7 @@ var WeaveNode = class {
20306
20312
  if (nodesSelectionPlugin && this.isSelecting() && this.isNodeSelected(node$1)) nodesSelectionPlugin.getTransformer().forceUpdate();
20307
20313
  if (nodesEdgeSnappingPlugin && transforming && this.isSelecting() && this.isNodeSelected(node$1)) nodesEdgeSnappingPlugin.evaluateGuidelines(e);
20308
20314
  };
20309
- node.on("transform", (0, import_lodash.throttle)(handleTransform, 100));
20315
+ node.on("transform", (0, import_lodash$1.throttle)(handleTransform, 100));
20310
20316
  node.on("transformend", (e) => {
20311
20317
  const node$1 = e.target;
20312
20318
  this.instance.emitEvent("onTransform", null);
@@ -20360,7 +20366,7 @@ var WeaveNode = class {
20360
20366
  if (layerToMove && !hasFrames(node) && node.isDragging()) layerToMove.fire(WEAVE_NODE_CUSTOM_EVENTS.onTargetEnter, { bubbles: true });
20361
20367
  }
20362
20368
  };
20363
- node.on("dragmove", (0, import_lodash.throttle)(handleDragMove, 100));
20369
+ node.on("dragmove", (0, import_lodash$1.throttle)(handleDragMove, 100));
20364
20370
  node.on("dragend", (e) => {
20365
20371
  if (!this.didMove) return;
20366
20372
  const isErasing = this.instance.getActiveAction() === "eraseTool";
@@ -20763,7 +20769,6 @@ var WeaveReconciler = class {
20763
20769
  const child$1 = children[i];
20764
20770
  child$1.setAttrs({ zIndex: i });
20765
20771
  }
20766
- weaveInstance.getMainLayer()?.batchDraw();
20767
20772
  }
20768
20773
  },
20769
20774
  appendChild(parentInstance, child) {
@@ -21910,7 +21915,7 @@ var WeaveRegisterManager = class {
21910
21915
 
21911
21916
  //#endregion
21912
21917
  //#region package.json
21913
- var version = "0.71.0";
21918
+ var version = "0.72.1";
21914
21919
 
21915
21920
  //#endregion
21916
21921
  //#region src/managers/setup.ts
@@ -22438,7 +22443,7 @@ var Weave = class {
22438
22443
  this.asyncElements = watchMap(() => {
22439
22444
  this.emitEvent("onAsyncElementChange");
22440
22445
  }, new Map());
22441
- this.config = (0, import_lodash.merge)({ serverSide: false }, weaveConfig);
22446
+ this.config = (0, import_lodash$1.merge)({ serverSide: false }, weaveConfig);
22442
22447
  this.logger = new WeaveLogger(this.config?.logger ?? {
22443
22448
  disabled: false,
22444
22449
  level: "error"
@@ -23132,7 +23137,7 @@ var WeaveRectangleNode = class extends WeaveNode {
23132
23137
  const rectangle = new Konva.Rect({
23133
23138
  ...props,
23134
23139
  name: "node",
23135
- strokeScaleEnabled: false
23140
+ strokeScaleEnabled: true
23136
23141
  });
23137
23142
  this.setupDefaultNodeAugmentation(rectangle);
23138
23143
  const defaultTransformerProperties = this.defaultGetTransformerProperties(this.config.transform);
@@ -23176,7 +23181,8 @@ var WeaveEllipseNode = class extends WeaveNode {
23176
23181
  ...props,
23177
23182
  name: "node",
23178
23183
  radiusX: props.radiusX,
23179
- radiusY: props.radiusY
23184
+ radiusY: props.radiusY,
23185
+ strokeScaleEnabled: true
23180
23186
  });
23181
23187
  this.setupDefaultNodeAugmentation(ellipse);
23182
23188
  const defaultTransformerProperties = this.defaultGetTransformerProperties(this.config.transform);
@@ -23257,7 +23263,8 @@ var WeaveLineNode = class extends WeaveNode {
23257
23263
  onRender(props) {
23258
23264
  const line = new Konva.Line({
23259
23265
  ...props,
23260
- name: "node"
23266
+ name: "node",
23267
+ strokeScaleEnabled: true
23261
23268
  });
23262
23269
  this.setupDefaultNodeAugmentation(line);
23263
23270
  const defaultTransformerProperties = this.defaultGetTransformerProperties(this.config.transform);
@@ -23373,7 +23380,7 @@ var WeaveTextNode = class extends WeaveNode {
23373
23380
  text.on("transformstart", (e) => {
23374
23381
  this.instance.emitEvent("onTransform", e.target);
23375
23382
  });
23376
- text.on("transform", (0, import_lodash.throttle)(handleTextTransform, 50));
23383
+ text.on("transform", (0, import_lodash$1.throttle)(handleTextTransform, 50));
23377
23384
  text.on("transformend", () => {
23378
23385
  this.instance.emitEvent("onTransform", null);
23379
23386
  });
@@ -23939,7 +23946,7 @@ var WeaveImageToolAction = class extends WeaveAction {
23939
23946
  image: this.preloadImgs[this.imageId],
23940
23947
  stroke: "#000000ff",
23941
23948
  strokeWidth: 0,
23942
- strokeScaleEnabled: false,
23949
+ strokeScaleEnabled: true,
23943
23950
  listening: false
23944
23951
  });
23945
23952
  this.instance.getMainLayer()?.add(this.tempImageNode);
@@ -23969,7 +23976,7 @@ var WeaveImageToolAction = class extends WeaveAction {
23969
23976
  imageURL: this.imageURL,
23970
23977
  stroke: "#000000ff",
23971
23978
  strokeWidth: 0,
23972
- strokeScaleEnabled: false,
23979
+ strokeScaleEnabled: true,
23973
23980
  imageWidth: this.preloadImgs[this.imageId].width,
23974
23981
  imageHeight: this.preloadImgs[this.imageId].height,
23975
23982
  imageInfo: {
@@ -24087,7 +24094,7 @@ var WeaveImageCrop = class WeaveImageCrop {
24087
24094
  fill: "rgba(0,0,0,0.2)",
24088
24095
  stroke: "#ff0000ff",
24089
24096
  strokeWidth: 0,
24090
- strokeScaleEnabled: false,
24097
+ strokeScaleEnabled: true,
24091
24098
  draggable: true,
24092
24099
  rotation: 0
24093
24100
  });
@@ -24406,7 +24413,7 @@ var WeaveImageNode = class extends WeaveNode {
24406
24413
  time: 0
24407
24414
  };
24408
24415
  this.lastTapTime = 0;
24409
- this.config = (0, import_lodash.merge)(WEAVE_IMAGE_DEFAULT_CONFIG, config);
24416
+ this.config = (0, import_lodash$1.merge)(WEAVE_IMAGE_DEFAULT_CONFIG, config);
24410
24417
  this.imageCrop = null;
24411
24418
  this.cachedCropInfo = {};
24412
24419
  this.imageLoaded = false;
@@ -24535,7 +24542,7 @@ var WeaveImageNode = class extends WeaveNode {
24535
24542
  rotation: 0,
24536
24543
  width: 0,
24537
24544
  height: 0,
24538
- strokeScaleEnabled: false,
24545
+ strokeScaleEnabled: true,
24539
24546
  draggable: false,
24540
24547
  visible: false,
24541
24548
  name: void 0
@@ -24655,14 +24662,15 @@ var WeaveImageNode = class extends WeaveNode {
24655
24662
  const imagePlaceholder = image.findOne(`#${imageProps.id}-placeholder`);
24656
24663
  const internalImage = image.findOne(`#${imageProps.id}-image`);
24657
24664
  const realImageURL = this.config.urlTransformer?.(imageProps.imageURL ?? "") ?? imageProps.imageURL;
24665
+ this.loadAsyncElement(imageProps.id);
24658
24666
  const imageObj = new Image();
24659
24667
  imageObj.crossOrigin = this.config.crossOrigin;
24660
24668
  imageObj.onerror = (error) => {
24669
+ this.resolveAsyncElement(imageProps.id);
24661
24670
  console.error("Error loading image", realImageURL, error);
24662
24671
  imagePlaceholder?.setAttrs({ visible: true });
24663
24672
  internalImage?.setAttrs({ visible: false });
24664
24673
  };
24665
- this.loadAsyncElement(imageProps.id);
24666
24674
  imageObj.onload = () => {
24667
24675
  if (image && imagePlaceholder && internalImage) {
24668
24676
  image.setAttrs({
@@ -24713,24 +24721,25 @@ var WeaveImageNode = class extends WeaveNode {
24713
24721
  const stage = this.instance.getStage();
24714
24722
  const image = stage.findOne(`#${imageAttrs.id}`);
24715
24723
  const internalImage = image?.findOne(`#${imageAttrs.id}-image`);
24716
- if (image && internalImage && !imageAttrs.adding && imageAttrs.cropInfo && !(0, import_lodash.isEqual)(imageAttrs.cropInfo, this.cachedCropInfo[imageAttrs.id ?? ""])) {
24724
+ if (image && internalImage && !imageAttrs.adding && imageAttrs.cropInfo && !(0, import_lodash$1.isEqual)(imageAttrs.cropInfo, this.cachedCropInfo[imageAttrs.id ?? ""])) {
24717
24725
  const actualScale = imageAttrs.uncroppedImage.width / imageAttrs.imageInfo.width;
24726
+ const cropScale = imageAttrs.cropInfo ? imageAttrs.cropInfo.scaleX : actualScale;
24718
24727
  internalImage.width(imageAttrs.uncroppedImage.width);
24719
24728
  internalImage.height(imageAttrs.uncroppedImage.height);
24720
24729
  internalImage.rotation(0);
24721
24730
  internalImage.scaleX(1);
24722
24731
  internalImage.scaleY(1);
24723
24732
  internalImage.crop({
24724
- x: imageAttrs.cropInfo.x / actualScale,
24725
- y: imageAttrs.cropInfo.y / actualScale,
24726
- width: imageAttrs.cropInfo.width / actualScale,
24727
- height: imageAttrs.cropInfo.height / actualScale
24733
+ x: imageAttrs.cropInfo.x / cropScale,
24734
+ y: imageAttrs.cropInfo.y / cropScale,
24735
+ width: imageAttrs.cropInfo.width / cropScale,
24736
+ height: imageAttrs.cropInfo.height / cropScale
24728
24737
  });
24729
- internalImage.width(imageAttrs.cropSize.width);
24730
- internalImage.height(imageAttrs.cropSize.height);
24738
+ internalImage.width(imageAttrs.cropSize.width * (actualScale / cropScale));
24739
+ internalImage.height(imageAttrs.cropSize.height * (actualScale / cropScale));
24731
24740
  this.cachedCropInfo[imageAttrs.id ?? ""] = imageAttrs.cropInfo;
24732
24741
  }
24733
- if (image && internalImage && !imageAttrs.adding && !imageAttrs.cropInfo && !(0, import_lodash.isEqual)(imageAttrs.cropInfo, this.cachedCropInfo[imageAttrs.id ?? ""])) {
24742
+ if (image && internalImage && !imageAttrs.adding && !imageAttrs.cropInfo && !(0, import_lodash$1.isEqual)(imageAttrs.cropInfo, this.cachedCropInfo[imageAttrs.id ?? ""])) {
24734
24743
  internalImage.width(imageAttrs.uncroppedImage.width);
24735
24744
  internalImage.height(imageAttrs.uncroppedImage.height);
24736
24745
  internalImage.rotation(0);
@@ -24813,7 +24822,8 @@ var WeaveStarNode = class extends WeaveNode {
24813
24822
  name: "node",
24814
24823
  numPoints: props.numPoints,
24815
24824
  innerRadius: props.innerRadius,
24816
- outerRadius: props.outerRadius
24825
+ outerRadius: props.outerRadius,
24826
+ strokeScaleEnabled: true
24817
24827
  });
24818
24828
  this.setupDefaultNodeAugmentation(star);
24819
24829
  const defaultTransformerProperties = this.defaultGetTransformerProperties(this.config.transform);
@@ -24895,7 +24905,8 @@ var WeaveArrowNode = class extends WeaveNode {
24895
24905
  const line = new Konva.Arrow({
24896
24906
  ...props,
24897
24907
  name: "node",
24898
- points: props.points
24908
+ points: props.points,
24909
+ strokeScaleEnabled: true
24899
24910
  });
24900
24911
  this.setupDefaultNodeAugmentation(line);
24901
24912
  const defaultTransformerProperties = this.defaultGetTransformerProperties(this.config.transform);
@@ -24948,7 +24959,8 @@ var WeaveRegularPolygonNode = class extends WeaveNode {
24948
24959
  ...props,
24949
24960
  name: "node",
24950
24961
  sides: props.sides,
24951
- radius: props.radius
24962
+ radius: props.radius,
24963
+ strokeScaleEnabled: true
24952
24964
  });
24953
24965
  this.setupDefaultNodeAugmentation(regularPolygon);
24954
24966
  const defaultTransformerProperties = this.defaultGetTransformerProperties(this.config.transform);
@@ -25088,7 +25100,7 @@ var WeaveFrameNode = class extends WeaveNode {
25088
25100
  y: 0,
25089
25101
  width: props.frameWidth,
25090
25102
  height: props.frameHeight,
25091
- strokeScaleEnabled: false,
25103
+ strokeScaleEnabled: true,
25092
25104
  draggable: false
25093
25105
  });
25094
25106
  frame.add(frameInternalGroup);
@@ -25100,10 +25112,10 @@ var WeaveFrameNode = class extends WeaveNode {
25100
25112
  width: props.frameWidth,
25101
25113
  stroke: borderColor,
25102
25114
  strokeWidth: borderWidth,
25103
- strokeScaleEnabled: false,
25115
+ strokeScaleEnabled: true,
25104
25116
  shadowForStrokeEnabled: false,
25105
25117
  height: props.frameHeight,
25106
- fill: "#ffffffff",
25118
+ fill: frameParams.frameBackground ?? "#ffffffff",
25107
25119
  listening: false,
25108
25120
  draggable: false
25109
25121
  });
@@ -25121,7 +25133,7 @@ var WeaveFrameNode = class extends WeaveNode {
25121
25133
  text: props.title,
25122
25134
  fill: fontColor,
25123
25135
  strokeWidth: 0,
25124
- strokeScaleEnabled: false,
25136
+ strokeScaleEnabled: true,
25125
25137
  listening: false,
25126
25138
  draggable: false
25127
25139
  });
@@ -25144,7 +25156,7 @@ var WeaveFrameNode = class extends WeaveNode {
25144
25156
  y: borderWidth,
25145
25157
  width: props.frameWidth - borderWidth * 2,
25146
25158
  height: props.frameHeight - borderWidth * 2,
25147
- strokeScaleEnabled: false,
25159
+ strokeScaleEnabled: true,
25148
25160
  clipFunc: (ctx) => {
25149
25161
  const width = (frameInternal.width() + borderWidth) * frameInternal.scaleX();
25150
25162
  const height = (frameInternal.height() + borderWidth) * frameInternal.scaleY();
@@ -25257,7 +25269,9 @@ var WeaveFrameNode = class extends WeaveNode {
25257
25269
  clip: void 0
25258
25270
  });
25259
25271
  const title = stage.findOne(`#${newProps.id}-title`);
25272
+ const background = stage.findOne(`#${newProps.id}-bg`);
25260
25273
  const selectionArea = stage.findOne(`#${newProps.id}-selection-area`);
25274
+ if (background) background.setAttrs({ fill: newProps.frameBackground ?? "#ffffffff" });
25261
25275
  if (title && selectionArea) {
25262
25276
  title.text(newProps.title);
25263
25277
  const textMeasures = title.measureSize(title.getAttrs().text ?? "");
@@ -25664,7 +25678,7 @@ var WeaveCommentNode = class extends WeaveNode {
25664
25678
  nodeType = WEAVE_COMMENT_NODE_TYPE;
25665
25679
  constructor(params) {
25666
25680
  super();
25667
- this.config = (0, import_lodash.merge)(WEAVE_COMMENT_NODE_DEFAULTS, params.config);
25681
+ this.config = (0, import_lodash$1.merge)(WEAVE_COMMENT_NODE_DEFAULTS, params.config);
25668
25682
  this.commentDomVisibleId = null;
25669
25683
  this.commentDomVisible = false;
25670
25684
  this.commentDomAction = null;
@@ -25723,7 +25737,7 @@ var WeaveCommentNode = class extends WeaveNode {
25723
25737
  shadowOffsetX: this.config.style.shadowOffsetX,
25724
25738
  shadowOffsetY: this.config.style.shadowOffsetY,
25725
25739
  shadowOpacity: this.config.style.shadowOpacity,
25726
- strokeScaleEnabled: false,
25740
+ strokeScaleEnabled: true,
25727
25741
  listening: true,
25728
25742
  draggable: false,
25729
25743
  hitFunc: (ctx, shape) => {
@@ -26295,7 +26309,7 @@ var WeaveStageZoomPlugin = class extends WeavePlugin {
26295
26309
  constructor(params) {
26296
26310
  super();
26297
26311
  const { config } = params ?? {};
26298
- this.config = (0, import_lodash.merge)(WEAVE_STAGE_ZOOM_DEFAULT_CONFIG, config);
26312
+ this.config = (0, import_lodash$1.merge)(WEAVE_STAGE_ZOOM_DEFAULT_CONFIG, config);
26299
26313
  if (!this.config.zoomSteps.includes(this.config.defaultZoom)) throw new Error(`Default zoom ${this.config.defaultZoom} is not in zoom steps`);
26300
26314
  this.pinching = false;
26301
26315
  this.isTrackpad = false;
@@ -26323,7 +26337,7 @@ var WeaveStageZoomPlugin = class extends WeavePlugin {
26323
26337
  this.config.zoomSteps = [minimumZoom, ...this.config.zoomSteps];
26324
26338
  }
26325
26339
  };
26326
- mainLayer?.on("draw", (0, import_lodash.throttle)(handleDraw, 50));
26340
+ mainLayer?.on("draw", (0, import_lodash$1.throttle)(handleDraw, 50));
26327
26341
  this.setZoom(this.config.zoomSteps[this.actualStep]);
26328
26342
  }
26329
26343
  setZoom(scale, centered = true, pointer) {
@@ -27177,7 +27191,7 @@ var WeaveRectangleToolAction = class extends WeaveAction {
27177
27191
  this.tempRectNode = new Konva.Rect({
27178
27192
  ...this.props,
27179
27193
  id: this.rectId,
27180
- strokeScaleEnabled: false,
27194
+ strokeScaleEnabled: true,
27181
27195
  x: this.clickPoint?.x ?? 0,
27182
27196
  y: this.clickPoint?.y ?? 0,
27183
27197
  width: 0,
@@ -27390,7 +27404,7 @@ var WeaveEllipseToolAction = class extends WeaveAction {
27390
27404
  if (nodeHandler) {
27391
27405
  const node = nodeHandler.create(this.ellipseId, {
27392
27406
  ...this.props,
27393
- strokeScaleEnabled: false,
27407
+ strokeScaleEnabled: true,
27394
27408
  x: this.clickPoint?.x ?? 0 + this.props.radiusX,
27395
27409
  y: this.clickPoint?.y ?? 0 + this.props.radiusY,
27396
27410
  radiusX: 0,
@@ -27599,7 +27613,7 @@ var WeavePenToolAction = class extends WeaveAction {
27599
27613
  this.tempMainLineNode = new Konva.Line({
27600
27614
  ...this.props,
27601
27615
  id: this.lineId,
27602
- strokeScaleEnabled: false,
27616
+ strokeScaleEnabled: true,
27603
27617
  x: this.clickPoint?.x ?? 0,
27604
27618
  y: this.clickPoint?.y ?? 0,
27605
27619
  points: [0, 0]
@@ -27609,7 +27623,7 @@ var WeavePenToolAction = class extends WeaveAction {
27609
27623
  x: this.clickPoint?.x ?? 0,
27610
27624
  y: this.clickPoint?.y ?? 0,
27611
27625
  radius: 5 / stage.scaleX(),
27612
- strokeScaleEnabled: false,
27626
+ strokeScaleEnabled: true,
27613
27627
  stroke: "#cccccc",
27614
27628
  strokeWidth: 0,
27615
27629
  fill: "#cccccc"
@@ -27620,7 +27634,7 @@ var WeavePenToolAction = class extends WeaveAction {
27620
27634
  id: this.tempLineId,
27621
27635
  x: this.clickPoint?.x ?? 0,
27622
27636
  y: this.clickPoint?.y ?? 0,
27623
- strokeScaleEnabled: false,
27637
+ strokeScaleEnabled: true,
27624
27638
  points: [0, 0]
27625
27639
  });
27626
27640
  this.measureContainer?.add(this.tempLineNode);
@@ -27628,7 +27642,7 @@ var WeavePenToolAction = class extends WeaveAction {
27628
27642
  x: this.clickPoint?.x ?? 0,
27629
27643
  y: this.clickPoint?.y ?? 0,
27630
27644
  radius: 5 / stage.scaleX(),
27631
- strokeScaleEnabled: false,
27645
+ strokeScaleEnabled: true,
27632
27646
  stroke: "#cccccc",
27633
27647
  strokeWidth: 0,
27634
27648
  fill: "#cccccc"
@@ -27868,7 +27882,7 @@ var WeaveBrushToolAction = class extends WeaveAction {
27868
27882
  });
27869
27883
  const node = nodeHandler.create(this.strokeId, {
27870
27884
  ...this.props,
27871
- strokeScaleEnabled: false,
27885
+ strokeScaleEnabled: true,
27872
27886
  x: 0,
27873
27887
  y: 0,
27874
27888
  width: 0,
@@ -28218,7 +28232,7 @@ var WeaveStarToolAction = class extends WeaveAction {
28218
28232
  if (nodeHandler) {
28219
28233
  const node = nodeHandler.create(this.starId, {
28220
28234
  ...this.props,
28221
- strokeScaleEnabled: false,
28235
+ strokeScaleEnabled: true,
28222
28236
  x: this.clickPoint?.x ?? 0 + this.props.outerRadius,
28223
28237
  y: this.clickPoint?.y ?? 0 + this.props.outerRadius,
28224
28238
  numPoints: 5,
@@ -28433,7 +28447,7 @@ var WeaveArrowToolAction = class extends WeaveAction {
28433
28447
  this.tempMainArrowNode = new Konva.Line({
28434
28448
  ...this.props,
28435
28449
  id: this.arrowId,
28436
- strokeScaleEnabled: false,
28450
+ strokeScaleEnabled: true,
28437
28451
  x: this.clickPoint?.x ?? 0,
28438
28452
  y: this.clickPoint?.y ?? 0,
28439
28453
  points: [0, 0]
@@ -28443,7 +28457,7 @@ var WeaveArrowToolAction = class extends WeaveAction {
28443
28457
  x: this.clickPoint?.x ?? 0,
28444
28458
  y: this.clickPoint?.y ?? 0,
28445
28459
  radius: 5 / stage.scaleX(),
28446
- strokeScaleEnabled: false,
28460
+ strokeScaleEnabled: true,
28447
28461
  stroke: "#cccccc",
28448
28462
  strokeWidth: 0,
28449
28463
  fill: "#cccccc"
@@ -28452,7 +28466,7 @@ var WeaveArrowToolAction = class extends WeaveAction {
28452
28466
  this.tempArrowNode = new Konva.Arrow({
28453
28467
  ...this.props,
28454
28468
  id: this.tempArrowId,
28455
- strokeScaleEnabled: false,
28469
+ strokeScaleEnabled: true,
28456
28470
  x: this.clickPoint?.x ?? 0,
28457
28471
  y: this.clickPoint?.y ?? 0,
28458
28472
  points: [0, 0]
@@ -28462,7 +28476,7 @@ var WeaveArrowToolAction = class extends WeaveAction {
28462
28476
  x: this.clickPoint?.x ?? 0,
28463
28477
  y: this.clickPoint?.y ?? 0,
28464
28478
  radius: 5 / stage.scaleX(),
28465
- strokeScaleEnabled: false,
28479
+ strokeScaleEnabled: true,
28466
28480
  stroke: "#cccccc",
28467
28481
  strokeWidth: 0,
28468
28482
  fill: "#cccccc"
@@ -28691,7 +28705,7 @@ var WeaveRegularPolygonToolAction = class extends WeaveAction {
28691
28705
  if (nodeHandler) {
28692
28706
  const node = nodeHandler.create(this.regularPolygonId, {
28693
28707
  ...this.props,
28694
- strokeScaleEnabled: false,
28708
+ strokeScaleEnabled: true,
28695
28709
  x: (this.clickPoint?.x ?? 0) + this.props.radius,
28696
28710
  y: (this.clickPoint?.y ?? 0) + this.props.radius,
28697
28711
  radius: 0
@@ -29275,7 +29289,7 @@ var WeaveCommentToolAction = class extends WeaveAction {
29275
29289
  constructor(params) {
29276
29290
  super();
29277
29291
  const { config } = params ?? {};
29278
- this.config = (0, import_lodash.merge)(WEAVE_COMMENT_TOOL_DEFAULT_CONFIG, config);
29292
+ this.config = (0, import_lodash$1.merge)(WEAVE_COMMENT_TOOL_DEFAULT_CONFIG, config);
29279
29293
  this.pointers = new Map();
29280
29294
  this.initialized = false;
29281
29295
  this.state = WEAVE_COMMENT_TOOL_STATE.IDLE;
@@ -29575,7 +29589,7 @@ var WeaveStageGridPlugin = class extends WeavePlugin {
29575
29589
  if (!this.enabled || !(this.isSpaceKeyPressed || this.isMouseMiddleButtonPressed || this.moveToolActive)) return;
29576
29590
  this.onRender();
29577
29591
  };
29578
- stage.on("pointermove", (0, import_lodash.throttle)(handleMouseMove, 50));
29592
+ stage.on("pointermove", (0, import_lodash$1.throttle)(handleMouseMove, 50));
29579
29593
  stage.on("pointermove", () => {
29580
29594
  if (this.enabled) this.onRender();
29581
29595
  });
@@ -29970,7 +29984,7 @@ var WeaveStagePanningPlugin = class extends WeavePlugin {
29970
29984
  const WEAVE_STAGE_MINIMAP_KEY = "stageMinimap";
29971
29985
  const STAGE_MINIMAP_DEFAULT_CONFIG = { style: { viewportReference: {
29972
29986
  fill: "rgba(0,0,0,0.2)",
29973
- strokeScaleEnabled: false,
29987
+ strokeScaleEnabled: true,
29974
29988
  stroke: "#e12d3c",
29975
29989
  strokeWidth: 1
29976
29990
  } } };
@@ -29982,7 +29996,7 @@ var WeaveStageMinimapPlugin = class extends WeavePlugin {
29982
29996
  initLayer = void 0;
29983
29997
  constructor(params) {
29984
29998
  super();
29985
- this.config = (0, import_lodash.merge)(STAGE_MINIMAP_DEFAULT_CONFIG, params.config);
29999
+ this.config = (0, import_lodash$1.merge)(STAGE_MINIMAP_DEFAULT_CONFIG, params.config);
29986
30000
  this.initialized = false;
29987
30001
  }
29988
30002
  getName() {
@@ -30040,7 +30054,7 @@ var WeaveStageMinimapPlugin = class extends WeavePlugin {
30040
30054
  box.width += this.config.fitToContentPadding * 2;
30041
30055
  box.height += this.config.fitToContentPadding * 2;
30042
30056
  this.hideLayers();
30043
- const pixelRatio = .5;
30057
+ const pixelRatio = .1;
30044
30058
  const dataUrl = await stage.toDataURL({
30045
30059
  x: box.x,
30046
30060
  y: box.y,
@@ -30116,10 +30130,11 @@ var WeaveStageMinimapPlugin = class extends WeavePlugin {
30116
30130
  this.setupMinimap();
30117
30131
  }
30118
30132
  onInit() {
30119
- this.instance.addEventListener("onStateChange", async () => {
30133
+ const throttledUpdateMinimap = (0, import_lodash$1.throttle)(async () => {
30120
30134
  await this.updateMinimapContent();
30121
30135
  this.updateMinimapViewportReference();
30122
- });
30136
+ }, 100);
30137
+ this.instance.addEventListener("onStateChange", throttledUpdateMinimap);
30123
30138
  }
30124
30139
  showLayers() {
30125
30140
  const selectionLayer = this.instance.getSelectionLayer();
@@ -30236,7 +30251,7 @@ var WeaveConnectedUsersPlugin = class extends WeavePlugin {
30236
30251
  newConnectedUsers[userInformation.id] = userInformation;
30237
30252
  }
30238
30253
  }
30239
- if (!(0, import_lodash.isEqual)(this.connectedUsers, newConnectedUsers)) this.instance.emitEvent("onConnectedUsersChange", newConnectedUsers);
30254
+ if (!(0, import_lodash$1.isEqual)(this.connectedUsers, newConnectedUsers)) this.instance.emitEvent("onConnectedUsersChange", newConnectedUsers);
30240
30255
  this.connectedUsers = newConnectedUsers;
30241
30256
  });
30242
30257
  }
@@ -30428,7 +30443,7 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
30428
30443
  constructor(params) {
30429
30444
  super();
30430
30445
  const { config } = params;
30431
- this.config = (0, import_lodash.merge)(WEAVE_USERS_POINTERS_CONFIG_DEFAULT_PROPS, config);
30446
+ this.config = (0, import_lodash$1.merge)(WEAVE_USERS_POINTERS_CONFIG_DEFAULT_PROPS, config);
30432
30447
  this.config.getUser = memoize(this.config.getUser);
30433
30448
  this.config.getUserBackgroundColor = memoize(this.config.getUserBackgroundColor);
30434
30449
  this.config.getUserForegroundColor = memoize(this.config.getUserForegroundColor);
@@ -30477,7 +30492,7 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
30477
30492
  for (let i = 0; i < inactiveUsers.length; i++) delete this.usersPointers[inactiveUsers[i]];
30478
30493
  this.renderPointers();
30479
30494
  });
30480
- const sendAwarenessUpdateThrottled = (0, import_lodash.throttle)(this.sendAwarenessUpdate.bind(this), this.config.awarenessThrottleMs);
30495
+ const sendAwarenessUpdateThrottled = (0, import_lodash$1.throttle)(this.sendAwarenessUpdate.bind(this), this.config.awarenessThrottleMs);
30481
30496
  stage.on("dragmove", () => {
30482
30497
  const mousePos = stage.getRelativePointerPosition();
30483
30498
  if (mousePos) sendAwarenessUpdateThrottled(mousePos);
@@ -30984,7 +30999,7 @@ var WeaveNodesDistanceSnappingPlugin = class extends WeavePlugin {
30984
30999
  const { config } = params ?? {};
30985
31000
  this.enterSnappingTolerance = config?.enterSnappingTolerance ?? GUIDE_ENTER_SNAPPING_TOLERANCE;
30986
31001
  this.exitSnappingTolerance = config?.exitSnappingTolerance ?? GUIDE_EXIT_SNAPPING_TOLERANCE;
30987
- this.uiConfig = import_lodash.default.merge(GUIDE_DISTANCE_LINE_DEFAULT_CONFIG, config?.ui);
31002
+ this.uiConfig = import_lodash$1.default.merge(GUIDE_DISTANCE_LINE_DEFAULT_CONFIG, config?.ui);
30988
31003
  this.enabled = true;
30989
31004
  }
30990
31005
  getName() {
@@ -31644,5 +31659,63 @@ var WeaveCommentsRendererPlugin = class extends WeavePlugin {
31644
31659
  };
31645
31660
 
31646
31661
  //#endregion
31647
- export { ALIGN_NODES_ALIGN_TO, ALIGN_NODES_TOOL_ACTION_NAME, ALIGN_NODES_TOOL_STATE, ARROW_TOOL_ACTION_NAME, ARROW_TOOL_STATE, BRUSH_TOOL_ACTION_NAME, BRUSH_TOOL_DEFAULT_CONFIG, BRUSH_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, IMAGE_TOOL_ACTION_NAME, IMAGE_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, STAR_TOOL_ACTION_NAME, STAR_TOOL_STATE, TEXT_LAYOUT, TEXT_TOOL_ACTION_NAME, TEXT_TOOL_STATE, WEAVE_ARROW_NODE_TYPE, 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_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_NODE_DEFAULT_CONFIG, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_COLOR, WEAVE_GRID_DEFAULT_DOT_MAX_DOTS_PER_AXIS, WEAVE_GRID_DEFAULT_MAJOR_DOT_RATIO, WEAVE_GRID_DEFAULT_MAJOR_EVERY, WEAVE_GRID_DEFAULT_MAJOR_LINE_RATIO, WEAVE_GRID_DEFAULT_ORIGIN_COLOR, WEAVE_GRID_DEFAULT_RADIUS, WEAVE_GRID_DEFAULT_SIZE, WEAVE_GRID_DEFAULT_STROKE, WEAVE_GRID_DEFAULT_TYPE, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_GROUP_NODE_TYPE, WEAVE_IMAGE_CROP_END_TYPE, WEAVE_IMAGE_DEFAULT_CONFIG, WEAVE_IMAGE_NODE_TYPE, WEAVE_LAYER_NODE_TYPE, WEAVE_LINE_NODE_TYPE, WEAVE_NODES_DISTANCE_SNAPPING_PLUGIN_KEY, WEAVE_NODES_EDGE_SNAPPING_PLUGIN_KEY, 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_GRID_PLUGIN_KEY, WEAVE_STAGE_NODE_TYPE, WEAVE_STAR_NODE_TYPE, WEAVE_STROKE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_NODE_TYPE, WEAVE_TEXT_NODE_TYPE, WEAVE_USERS_POINTERS_CONFIG_DEFAULT_PROPS, WEAVE_USERS_POINTERS_KEY, WEAVE_USERS_SELECTION_KEY, WEAVE_USER_POINTER_KEY, WEAVE_USER_SELECTION_KEY, Weave, WeaveAction, WeaveAlignNodesToolAction, WeaveArrowNode, WeaveArrowToolAction, WeaveBrushToolAction, WeaveCommentNode, WeaveCommentToolAction, WeaveCommentsRendererPlugin, WeaveConnectedUsersPlugin, WeaveContextMenuPlugin, WeaveCopyPasteNodesPlugin, WeaveEllipseNode, WeaveEllipseToolAction, WeaveEraserToolAction, WeaveExportNodesToolAction, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToSelectionToolAction, WeaveFrameNode, WeaveFrameToolAction, WeaveGroupNode, WeaveImageNode, WeaveImageToolAction, WeaveLayerNode, WeaveLineNode, WeaveMoveToolAction, WeaveNode, WeaveNodesDistanceSnappingPlugin, WeaveNodesEdgeSnappingPlugin, WeaveNodesSelectionPlugin, WeavePenToolAction, WeavePlugin, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRegularPolygonNode, WeaveRegularPolygonToolAction, WeaveSelectionToolAction, WeaveStageDropAreaPlugin, WeaveStageGridPlugin, WeaveStageMinimapPlugin, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomPlugin, WeaveStarNode, WeaveStarToolAction, WeaveStore, WeaveStrokeNode, WeaveTextNode, WeaveTextToolAction, WeaveUsersPointersPlugin, WeaveUsersSelectionPlugin, WeaveZoomInToolAction, WeaveZoomOutToolAction, clearContainerTargets, containerOverCursor, containsNodeDeep, getBoundingBox, getExportBoundingBox, getSelectedNodesMetadata, getTargetAndSkipNodes, getTargetedNode, getTopmostShadowHost, getVisibleNodes, getVisibleNodesInViewport, hasFrames, hasImages, intersectArrays, isIOS, isInShadowDOM, isNodeInSelection, memoize, moveNodeToContainer, resetScale };
31662
+ //#region src/plugins/stage-keyboard-move/constants.ts
31663
+ const WEAVE_STAGE_KEYBOARD_MOVE_KEY = "stageKeyboardMove";
31664
+ const WEAVE_STAGE_KEYBOARD_MOVE_DEFAULT_CONFIG = { movementDelta: 5 };
31665
+
31666
+ //#endregion
31667
+ //#region src/plugins/stage-keyboard-move/stage-keyboard-move.ts
31668
+ var WeaveStageKeyboardMovePlugin = class extends WeavePlugin {
31669
+ getLayerName = void 0;
31670
+ initLayer = void 0;
31671
+ constructor(params) {
31672
+ super();
31673
+ this.config = (0, import_merge.default)(WEAVE_STAGE_KEYBOARD_MOVE_DEFAULT_CONFIG, params?.config ?? {});
31674
+ }
31675
+ getName() {
31676
+ return WEAVE_STAGE_KEYBOARD_MOVE_KEY;
31677
+ }
31678
+ handleNodesMovement(movementOrientation) {
31679
+ const nodesSelectionPlugin = this.instance.getPlugin("nodesSelection");
31680
+ if (nodesSelectionPlugin) {
31681
+ const selectedNodes = nodesSelectionPlugin.getSelectedNodes();
31682
+ for (const node of selectedNodes) {
31683
+ switch (movementOrientation) {
31684
+ case "up":
31685
+ node.y(node.y() - this.config.movementDelta);
31686
+ break;
31687
+ case "down":
31688
+ node.y(node.y() + this.config.movementDelta);
31689
+ break;
31690
+ case "left":
31691
+ node.x(node.x() - this.config.movementDelta);
31692
+ break;
31693
+ case "right":
31694
+ node.x(node.x() + this.config.movementDelta);
31695
+ break;
31696
+ }
31697
+ const nodeHandler = this.instance.getNodeHandler(node.getAttrs().nodeType);
31698
+ if (!nodeHandler) break;
31699
+ this.instance.updateNode(nodeHandler.serialize(node));
31700
+ }
31701
+ }
31702
+ }
31703
+ onInit() {
31704
+ window.addEventListener("keydown", (e) => {
31705
+ if (e.key === "ArrowUp" && e.shiftKey) this.handleNodesMovement("up");
31706
+ if (e.key === "ArrowLeft" && e.shiftKey) this.handleNodesMovement("left");
31707
+ if (e.key === "ArrowRight" && e.shiftKey) this.handleNodesMovement("right");
31708
+ if (e.key === "ArrowDown" && e.shiftKey) this.handleNodesMovement("down");
31709
+ });
31710
+ }
31711
+ enable() {
31712
+ this.enabled = true;
31713
+ }
31714
+ disable() {
31715
+ this.enabled = false;
31716
+ }
31717
+ };
31718
+
31719
+ //#endregion
31720
+ export { ALIGN_NODES_ALIGN_TO, ALIGN_NODES_TOOL_ACTION_NAME, ALIGN_NODES_TOOL_STATE, ARROW_TOOL_ACTION_NAME, ARROW_TOOL_STATE, BRUSH_TOOL_ACTION_NAME, BRUSH_TOOL_DEFAULT_CONFIG, BRUSH_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, IMAGE_TOOL_ACTION_NAME, IMAGE_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, STAR_TOOL_ACTION_NAME, STAR_TOOL_STATE, TEXT_LAYOUT, TEXT_TOOL_ACTION_NAME, TEXT_TOOL_STATE, WEAVE_ARROW_NODE_TYPE, 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_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_NODE_DEFAULT_CONFIG, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_COLOR, WEAVE_GRID_DEFAULT_DOT_MAX_DOTS_PER_AXIS, WEAVE_GRID_DEFAULT_MAJOR_DOT_RATIO, WEAVE_GRID_DEFAULT_MAJOR_EVERY, WEAVE_GRID_DEFAULT_MAJOR_LINE_RATIO, WEAVE_GRID_DEFAULT_ORIGIN_COLOR, WEAVE_GRID_DEFAULT_RADIUS, WEAVE_GRID_DEFAULT_SIZE, WEAVE_GRID_DEFAULT_STROKE, WEAVE_GRID_DEFAULT_TYPE, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_GROUP_NODE_TYPE, WEAVE_IMAGE_CROP_END_TYPE, WEAVE_IMAGE_DEFAULT_CONFIG, WEAVE_IMAGE_NODE_TYPE, WEAVE_LAYER_NODE_TYPE, WEAVE_LINE_NODE_TYPE, WEAVE_NODES_DISTANCE_SNAPPING_PLUGIN_KEY, WEAVE_NODES_EDGE_SNAPPING_PLUGIN_KEY, 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_GRID_PLUGIN_KEY, WEAVE_STAGE_KEYBOARD_MOVE_DEFAULT_CONFIG, WEAVE_STAGE_KEYBOARD_MOVE_KEY, WEAVE_STAGE_NODE_TYPE, WEAVE_STAR_NODE_TYPE, WEAVE_STROKE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_NODE_TYPE, WEAVE_TEXT_NODE_TYPE, WEAVE_USERS_POINTERS_CONFIG_DEFAULT_PROPS, WEAVE_USERS_POINTERS_KEY, WEAVE_USERS_SELECTION_KEY, WEAVE_USER_POINTER_KEY, WEAVE_USER_SELECTION_KEY, Weave, WeaveAction, WeaveAlignNodesToolAction, WeaveArrowNode, WeaveArrowToolAction, WeaveBrushToolAction, WeaveCommentNode, WeaveCommentToolAction, WeaveCommentsRendererPlugin, WeaveConnectedUsersPlugin, WeaveContextMenuPlugin, WeaveCopyPasteNodesPlugin, WeaveEllipseNode, WeaveEllipseToolAction, WeaveEraserToolAction, WeaveExportNodesToolAction, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToSelectionToolAction, WeaveFrameNode, WeaveFrameToolAction, WeaveGroupNode, WeaveImageNode, WeaveImageToolAction, WeaveLayerNode, WeaveLineNode, WeaveMoveToolAction, WeaveNode, WeaveNodesDistanceSnappingPlugin, WeaveNodesEdgeSnappingPlugin, WeaveNodesSelectionPlugin, WeavePenToolAction, WeavePlugin, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRegularPolygonNode, WeaveRegularPolygonToolAction, WeaveSelectionToolAction, WeaveStageDropAreaPlugin, WeaveStageGridPlugin, WeaveStageKeyboardMovePlugin, WeaveStageMinimapPlugin, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomPlugin, WeaveStarNode, WeaveStarToolAction, WeaveStore, WeaveStrokeNode, WeaveTextNode, WeaveTextToolAction, WeaveUsersPointersPlugin, WeaveUsersSelectionPlugin, WeaveZoomInToolAction, WeaveZoomOutToolAction, clearContainerTargets, containerOverCursor, containsNodeDeep, getBoundingBox, getExportBoundingBox, getSelectedNodesMetadata, getTargetAndSkipNodes, getTargetedNode, getTopmostShadowHost, getVisibleNodes, getVisibleNodesInViewport, hasFrames, hasImages, intersectArrays, isIOS, isInShadowDOM, isNodeInSelection, memoize, moveNodeToContainer, resetScale };
31648
31721
  //# sourceMappingURL=sdk.js.map