@inditextech/weave-sdk 3.4.0-SNAPSHOT.38.1 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/sdk.js CHANGED
@@ -32,13 +32,13 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
32
32
  }) : target, mod));
33
33
 
34
34
  //#endregion
35
- //#region ../../node_modules/emittery/maps.js
35
+ //#region node_modules/emittery/maps.js
36
36
  const anyMap = new WeakMap();
37
37
  const eventsMap = new WeakMap();
38
38
  const producersMap = new WeakMap();
39
39
 
40
40
  //#endregion
41
- //#region ../../node_modules/emittery/index.js
41
+ //#region node_modules/emittery/index.js
42
42
  const anyProducer = Symbol("anyProducer");
43
43
  const resolvedPromise = Promise.resolve();
44
44
  const listenerAdded = Symbol("listenerAdded");
@@ -15084,11 +15084,6 @@ var WeaveStore = class {
15084
15084
  getDocument() {
15085
15085
  return this.document;
15086
15086
  }
15087
- restartDocument() {
15088
- this.latestState = { weave: {} };
15089
- this.state = syncedStore({ weave: {} });
15090
- this.document = getYjsDoc(this.state);
15091
- }
15092
15087
  loadDocument(roomData) {
15093
15088
  yjs_default.applyUpdate(this.document, roomData);
15094
15089
  }
@@ -17964,15 +17959,6 @@ var WeaveContextMenuPlugin = class extends WeavePlugin {
17964
17959
  initLayer = void 0;
17965
17960
  constructor(params) {
17966
17961
  super();
17967
- const { config } = params ?? {};
17968
- this.config = {
17969
- xOffset: WEAVE_CONTEXT_MENU_X_OFFSET_DEFAULT,
17970
- yOffset: WEAVE_CONTEXT_MENU_Y_OFFSET_DEFAULT,
17971
- ...config
17972
- };
17973
- this.initialize();
17974
- }
17975
- initialize() {
17976
17962
  this.timer = null;
17977
17963
  this.tapHold = false;
17978
17964
  this.contextMenuVisible = false;
@@ -17982,6 +17968,12 @@ var WeaveContextMenuPlugin = class extends WeavePlugin {
17982
17968
  time: 0
17983
17969
  };
17984
17970
  this.tapHoldTimeout = WEAVE_CONTEXT_MENU_TAP_HOLD_TIMEOUT;
17971
+ const { config } = params ?? {};
17972
+ this.config = {
17973
+ xOffset: WEAVE_CONTEXT_MENU_X_OFFSET_DEFAULT,
17974
+ yOffset: WEAVE_CONTEXT_MENU_Y_OFFSET_DEFAULT,
17975
+ ...config
17976
+ };
17985
17977
  this.pointers = {};
17986
17978
  }
17987
17979
  getName() {
@@ -18654,9 +18646,6 @@ var WeaveNodesSelectionPlugin = class extends WeavePlugin {
18654
18646
  constructor(params) {
18655
18647
  super();
18656
18648
  this.config = mergeExceptArrays(WEAVE_NODES_SELECTION_DEFAULT_CONFIG, params?.config ?? {});
18657
- this.initialize();
18658
- }
18659
- initialize() {
18660
18649
  this.defaultEnabledAnchors = this.config.selection?.enabledAnchors ?? [
18661
18650
  "top-left",
18662
18651
  "top-center",
@@ -19446,7 +19435,7 @@ var WeaveNodesSelectionPlugin = class extends WeavePlugin {
19446
19435
  if (existNode) newSelectedNodes.push(existNode);
19447
19436
  }
19448
19437
  this.tr.nodes([...newSelectedNodes]);
19449
- if (newSelectedNodes.length > 0) this.tr.forceUpdate();
19438
+ this.tr.forceUpdate();
19450
19439
  this.triggerSelectedNodesEvent();
19451
19440
  }
19452
19441
  getSelectionPlugin() {
@@ -19699,9 +19688,6 @@ var WeaveCopyPasteNodesPlugin = class extends WeavePlugin {
19699
19688
  super();
19700
19689
  this.getImageBase64 = params.getImageBase64;
19701
19690
  this.config = mergeExceptArrays(WEAVE_COPY_PASTE_CONFIG_DEFAULT, params?.config);
19702
- this.initialize();
19703
- }
19704
- initialize() {
19705
19691
  this.actualInternalPaddingX = 0;
19706
19692
  this.actualInternalPaddingY = 0;
19707
19693
  this.lastInternalPasteSnapshot = "";
@@ -21981,34 +21967,11 @@ var WeaveRegisterManager = class {
21981
21967
  }
21982
21968
  }
21983
21969
  }
21984
- resetNodesHandlers() {
21985
- for (const nodeHandlerId of Object.keys(this.nodesHandlers)) {
21986
- const nodeHandler = this.nodesHandlers[nodeHandlerId];
21987
- nodeHandler.initialize?.();
21988
- }
21989
- }
21990
- resetActionsHandlers() {
21991
- for (const actionHandlerId of Object.keys(this.actionsHandlers)) {
21992
- const actionHandler = this.actionsHandlers[actionHandlerId];
21993
- actionHandler.initialize?.();
21994
- }
21995
- }
21996
- resetPlugins() {
21997
- for (const pluginId of Object.keys(this.plugins)) {
21998
- const plugin = this.plugins[pluginId];
21999
- plugin.initialize?.();
22000
- }
22001
- }
22002
- reset() {
22003
- this.resetNodesHandlers();
22004
- this.resetActionsHandlers();
22005
- this.resetPlugins();
22006
- }
22007
21970
  };
22008
21971
 
22009
21972
  //#endregion
22010
21973
  //#region package.json
22011
- var version = "3.4.0-SNAPSHOT.38.1";
21974
+ var version = "3.4.0";
22012
21975
 
22013
21976
  //#endregion
22014
21977
  //#region src/managers/setup.ts
@@ -22125,9 +22088,6 @@ var WeaveStageManager = class {
22125
22088
  initialZIndex: void 0
22126
22089
  };
22127
22090
  const stage = new Konva.Stage({ ...props });
22128
- const containerParent = stage.container().parentNode;
22129
- stage.width(containerParent.clientWidth);
22130
- stage.height(containerParent.clientHeight);
22131
22091
  const realContainer = stage.container();
22132
22092
  if (realContainer !== void 0 && realContainer.style?.position !== "relative") realContainer.style.position = "relative";
22133
22093
  this.setStage(stage);
@@ -22436,91 +22396,6 @@ var WeaveExportManager = class {
22436
22396
  height: imageHeight * pixelRatio
22437
22397
  };
22438
22398
  }
22439
- async exportAreaServerSide(area, options) {
22440
- const { format = WEAVE_EXPORT_FORMATS.PNG, padding = 0, pixelRatio = 1, backgroundColor = WEAVE_EXPORT_BACKGROUND_COLOR } = options;
22441
- this.getNodesSelectionPlugin()?.disable();
22442
- this.getNodesDistanceSnappingPlugin()?.disable();
22443
- this.getNodesEdgeSnappingPlugin()?.disable();
22444
- this.getStageGridPlugin()?.disable();
22445
- const stage = this.instance.getStage();
22446
- const mainLayer = this.instance.getMainLayer();
22447
- if (!mainLayer) throw new Error("Main layer not found");
22448
- const originalPosition = {
22449
- x: stage.x(),
22450
- y: stage.y()
22451
- };
22452
- const originalScale = {
22453
- x: stage.scaleX(),
22454
- y: stage.scaleY()
22455
- };
22456
- stage.scale({
22457
- x: 1,
22458
- y: 1
22459
- });
22460
- const bounds = area;
22461
- const scaleX = stage.scaleX();
22462
- const scaleY = stage.scaleY();
22463
- const unscaledBounds = {
22464
- x: bounds.x / scaleX,
22465
- y: bounds.y / scaleY,
22466
- width: bounds.width / scaleX,
22467
- height: bounds.height / scaleY
22468
- };
22469
- const background = new Konva.Rect({
22470
- x: unscaledBounds.x - padding,
22471
- y: unscaledBounds.y - padding,
22472
- width: unscaledBounds.width + 2 * padding,
22473
- height: unscaledBounds.height + 2 * padding,
22474
- strokeWidth: 0,
22475
- fill: backgroundColor
22476
- });
22477
- mainLayer.add(background);
22478
- background.moveToBottom();
22479
- const backgroundRect = background.getClientRect();
22480
- const composites = [];
22481
- const imageWidth = Math.round(backgroundRect.width);
22482
- const imageHeight = Math.round(backgroundRect.height);
22483
- const maxRenderSize = 1920;
22484
- const cols = Math.ceil(imageWidth / maxRenderSize);
22485
- const rows = Math.ceil(imageHeight / maxRenderSize);
22486
- const tileWidth = Math.floor(imageWidth / cols);
22487
- const tileHeight = Math.floor(imageHeight / rows);
22488
- for (let y = 0; y < imageHeight; y += tileHeight) for (let x = 0; x < imageWidth; x += tileWidth) {
22489
- const width = Math.min(tileWidth, imageWidth - x);
22490
- const height = Math.min(tileHeight, imageHeight - y);
22491
- const canvas = await mainLayer.toCanvas({
22492
- x: Math.round(backgroundRect.x) + x,
22493
- y: Math.round(backgroundRect.y) + y,
22494
- width,
22495
- height,
22496
- mimeType: format,
22497
- pixelRatio,
22498
- quality: options.quality ?? 1
22499
- });
22500
- let buffer = null;
22501
- if (globalThis._weave_serverSideBackend === WEAVE_KONVA_BACKEND.CANVAS) buffer = canvas.toBuffer();
22502
- if (globalThis._weave_serverSideBackend === WEAVE_KONVA_BACKEND.SKIA) buffer = await canvas.toBuffer();
22503
- if (!buffer) throw new Error("Failed to generate image buffer");
22504
- composites.push({
22505
- top: y * pixelRatio,
22506
- left: x * pixelRatio,
22507
- input: buffer
22508
- });
22509
- }
22510
- background.destroy();
22511
- stage.position(originalPosition);
22512
- stage.scale(originalScale);
22513
- stage.batchDraw();
22514
- this.getNodesSelectionPlugin()?.enable();
22515
- this.getNodesDistanceSnappingPlugin()?.enable();
22516
- this.getNodesEdgeSnappingPlugin()?.enable();
22517
- this.getStageGridPlugin()?.enable();
22518
- return {
22519
- composites,
22520
- width: imageWidth * pixelRatio,
22521
- height: imageHeight * pixelRatio
22522
- };
22523
- }
22524
22399
  imageToBase64(img, mimeType) {
22525
22400
  if (img.naturalWidth === 0 && img.naturalHeight === 0) throw new Error("Image has no content");
22526
22401
  const canvas = document.createElement("canvas");
@@ -22800,12 +22675,7 @@ var WeaveAsyncManager = class {
22800
22675
  this.instance.emitEvent("onAsyncElementChange");
22801
22676
  }, new Map());
22802
22677
  }
22803
- reset() {
22804
- this.asyncElements.clear();
22805
- this.asyncElementsLoadedEventEmitted = false;
22806
- }
22807
22678
  checkForAsyncElements(elements) {
22808
- this.instance.emitEvent("onAsyncElementsIdle");
22809
22679
  const amountAsyncResourcesExtracted = this.extractAsyncResources(elements);
22810
22680
  if (amountAsyncResourcesExtracted === 0 && !this.asyncElementsLoadedEventEmitted) {
22811
22681
  this.instance.emitEvent("onAsyncElementsLoaded");
@@ -22858,7 +22728,7 @@ var WeaveAsyncManager = class {
22858
22728
  status: WEAVE_ASYNC_STATUS.LOADING
22859
22729
  };
22860
22730
  this.asyncElements.set(nodeId, element);
22861
- if (!this.asyncElementsLoadedEventEmitted) this.instance.emitEvent("onAsyncElementsLoading", {
22731
+ this.instance.emitEvent("onAsyncElementsLoading", {
22862
22732
  loaded: this.getAmountAsyncElementsLoaded(),
22863
22733
  total: this.getAmountAsyncElements()
22864
22734
  });
@@ -22871,11 +22741,11 @@ var WeaveAsyncManager = class {
22871
22741
  status: WEAVE_ASYNC_STATUS.LOADED
22872
22742
  };
22873
22743
  this.asyncElements.set(nodeId, element);
22744
+ this.instance.emitEvent("onAsyncElementsLoading", {
22745
+ loaded: this.getAmountAsyncElementsLoaded(),
22746
+ total: this.getAmountAsyncElements()
22747
+ });
22874
22748
  if (!this.asyncElementsLoadedEventEmitted) {
22875
- this.instance.emitEvent("onAsyncElementsLoading", {
22876
- loaded: this.getAmountAsyncElementsLoaded(),
22877
- total: this.getAmountAsyncElements()
22878
- });
22879
22749
  const allLoaded = this.asyncElementsLoaded();
22880
22750
  if (allLoaded) {
22881
22751
  this.instance.emitEvent("onAsyncElementsLoaded");
@@ -23092,34 +22962,6 @@ var Weave = class {
23092
22962
  store.setup();
23093
22963
  store.connect();
23094
22964
  }
23095
- async switchRoom() {
23096
- this.moduleLogger.info(`Switching room`);
23097
- const nodeHandlers = this.registerManager.getNodesHandlers();
23098
- for (const nodeHandlerKey of Object.keys(nodeHandlers)) {
23099
- const nodeHandler = nodeHandlers[nodeHandlerKey];
23100
- nodeHandler?.onDestroyInstance();
23101
- }
23102
- const stage = this.getStage();
23103
- if (stage) stage.destroy();
23104
- this.registerManager.reset();
23105
- this.asyncManager.reset();
23106
- this.moduleLogger.info("Switching room instance");
23107
- if (!this.isServerSide()) {
23108
- if (!window.weave) window.weave = this;
23109
- }
23110
- this.emitEvent("onRoomLoaded", false);
23111
- this.status = WEAVE_INSTANCE_STATUS.STARTING;
23112
- this.emitEvent("onInstanceStatus", this.status);
23113
- this.registerManager.reset();
23114
- this.status = WEAVE_INSTANCE_STATUS.LOADING_FONTS;
23115
- this.emitEvent("onInstanceStatus", this.status);
23116
- await this.fontsManager.loadFonts();
23117
- this.setupManager.setupLog();
23118
- this.stageManager.initStage();
23119
- this.status = WEAVE_INSTANCE_STATUS.CONNECTING_TO_ROOM;
23120
- this.emitEvent("onInstanceStatus", this.status);
23121
- this.addEventListener("onStoreConnectionStatusChange", this.handleStoreConnectionStatusChange.bind(this));
23122
- }
23123
22965
  destroy() {
23124
22966
  this.moduleLogger.info(`Destroying the instance`);
23125
22967
  this.emitter.clearListeners();
@@ -23591,9 +23433,6 @@ var Weave = class {
23591
23433
  async exportNodesServerSide(nodes, boundingNodes, options) {
23592
23434
  return await this.exportManager.exportNodesServerSide(nodes, boundingNodes, options);
23593
23435
  }
23594
- async exportAreaServerSide(area, options) {
23595
- return await this.exportManager.exportAreaServerSide(area, options);
23596
- }
23597
23436
  async exportNodes(nodes, boundingNodes, options) {
23598
23437
  return await this.exportManager.exportNodesAsImage(nodes, boundingNodes, options);
23599
23438
  }
@@ -23881,14 +23720,7 @@ const setupUpscaleStage = (instance, stage) => {
23881
23720
  innerElement.style.transformOrigin = "0 0";
23882
23721
  innerElement.style.transform = `scale(${scaleToCover})`;
23883
23722
  }
23884
- } else {
23885
- const realContainer = stage.container();
23886
- const containerWidth = realContainer.offsetWidth;
23887
- const containerHeight = realContainer.offsetHeight;
23888
- stage.width(containerWidth);
23889
- stage.height(containerHeight);
23890
- stage.setAttrs({ upscaleScale: 1 });
23891
- }
23723
+ } else stage.setAttrs({ upscaleScale: 1 });
23892
23724
  };
23893
23725
 
23894
23726
  //#endregion
@@ -23899,7 +23731,6 @@ var WeaveStageNode = class extends WeaveNode {
23899
23731
  wheelMousePressed = false;
23900
23732
  isCmdCtrlPressed = false;
23901
23733
  globalEventsInitialized = false;
23902
- initialize = void 0;
23903
23734
  onRender(props) {
23904
23735
  const stage = new Konva.Stage({
23905
23736
  ...props,
@@ -24022,7 +23853,6 @@ const WEAVE_LAYER_NODE_TYPE = "layer";
24022
23853
  //#region src/nodes/layer/layer.ts
24023
23854
  var WeaveLayerNode = class extends WeaveNode {
24024
23855
  nodeType = WEAVE_LAYER_NODE_TYPE;
24025
- initialize = void 0;
24026
23856
  onRender(props) {
24027
23857
  const layer = new Konva.Layer({ ...props });
24028
23858
  layer.canMoveToContainer = function() {
@@ -24070,7 +23900,6 @@ const WEAVE_GROUP_NODE_TYPE = "group";
24070
23900
  //#region src/nodes/group/group.ts
24071
23901
  var WeaveGroupNode = class extends WeaveNode {
24072
23902
  nodeType = WEAVE_GROUP_NODE_TYPE;
24073
- initialize = void 0;
24074
23903
  constructor(params) {
24075
23904
  super();
24076
23905
  const { config } = params ?? {};
@@ -24163,7 +23992,6 @@ const WEAVE_RECTANGLE_NODE_TYPE = "rectangle";
24163
23992
  //#region src/nodes/rectangle/rectangle.ts
24164
23993
  var WeaveRectangleNode = class extends WeaveNode {
24165
23994
  nodeType = WEAVE_RECTANGLE_NODE_TYPE;
24166
- initialize = void 0;
24167
23995
  constructor(params) {
24168
23996
  super();
24169
23997
  const { config } = params ?? {};
@@ -24207,7 +24035,6 @@ const WEAVE_ELLIPSE_NODE_TYPE = "ellipse";
24207
24035
  //#region src/nodes/ellipse/ellipse.ts
24208
24036
  var WeaveEllipseNode = class extends WeaveNode {
24209
24037
  nodeType = WEAVE_ELLIPSE_NODE_TYPE;
24210
- initialize = void 0;
24211
24038
  constructor(params) {
24212
24039
  super();
24213
24040
  const { config } = params ?? {};
@@ -24353,16 +24180,13 @@ var WeaveLineNode = class extends WeaveNode {
24353
24180
  constructor(params) {
24354
24181
  super();
24355
24182
  this.config = mergeExceptArrays(WEAVE_LINE_NODE_DEFAULT_CONFIG, params?.config ?? {});
24183
+ this.handleNodeChanges = null;
24184
+ this.handleZoomChanges = null;
24356
24185
  this.snapper = new GreedySnapper({
24357
24186
  snapAngles: this.config.snapAngles.angles,
24358
24187
  activateThreshold: this.config.snapAngles.activateThreshold,
24359
24188
  releaseThreshold: this.config.snapAngles.releaseThreshold
24360
24189
  });
24361
- this.initialize();
24362
- }
24363
- initialize() {
24364
- this.handleNodeChanges = null;
24365
- this.handleZoomChanges = null;
24366
24190
  }
24367
24191
  onRender(props) {
24368
24192
  const line = new Konva.Line({
@@ -24667,19 +24491,17 @@ const TEXT_LAYOUT = {
24667
24491
  //#region src/nodes/text/text.ts
24668
24492
  var WeaveTextNode = class extends WeaveNode {
24669
24493
  nodeType = WEAVE_TEXT_NODE_TYPE;
24494
+ editing = false;
24495
+ textAreaSuperContainer = null;
24496
+ textAreaContainer = null;
24497
+ textArea = null;
24498
+ eventsInitialized = false;
24499
+ isCtrlMetaPressed = false;
24670
24500
  constructor(params) {
24671
24501
  super();
24672
24502
  const { config } = params ?? {};
24673
24503
  this.config = (0, import_lodash.merge)({}, WEAVE_TEXT_NODE_DEFAULT_CONFIG, config);
24674
- this.initialize();
24675
- }
24676
- initialize() {
24677
24504
  this.keyPressHandler = void 0;
24678
- this.eventsInitialized = false;
24679
- this.isCtrlMetaPressed = false;
24680
- this.textAreaSuperContainer = null;
24681
- this.textAreaContainer = null;
24682
- this.textArea = null;
24683
24505
  this.editing = false;
24684
24506
  this.textArea = null;
24685
24507
  }
@@ -25340,6 +25162,8 @@ const WEAVE_IMAGE_DEFAULT_CONFIG = {
25340
25162
  crossOrigin: "anonymous",
25341
25163
  useFallbackImage: true,
25342
25164
  cropMode: {
25165
+ enabled: true,
25166
+ triggers: { ctrlCmd: true },
25343
25167
  gridLines: { enabled: true },
25344
25168
  overlay: { fill: "rgba(0,0,0,0.2)" },
25345
25169
  selection: {
@@ -26001,21 +25825,24 @@ const isAllowedUrl = (value) => {
26001
25825
  //#endregion
26002
25826
  //#region src/nodes/image/image.ts
26003
25827
  var WeaveImageNode = class extends WeaveNode {
25828
+ imageBitmapCache = {};
25829
+ imageSource = {};
25830
+ imageFallback = {};
25831
+ imageState = {};
25832
+ imageTryoutAttempts = {};
25833
+ imageTryoutIds = {};
26004
25834
  nodeType = WEAVE_IMAGE_NODE_TYPE;
26005
25835
  cursorsFallback = { loading: "wait" };
26006
25836
  cursors = {};
26007
25837
  constructor(params) {
26008
25838
  super();
26009
25839
  const { config } = params ?? {};
26010
- this.config = mergeExceptArrays(WEAVE_IMAGE_DEFAULT_CONFIG, config);
26011
- this.initialize();
26012
- }
26013
- initialize() {
26014
25840
  this.tapStart = {
26015
25841
  x: 0,
26016
25842
  y: 0,
26017
25843
  time: 0
26018
25844
  };
25845
+ this.config = mergeExceptArrays(WEAVE_IMAGE_DEFAULT_CONFIG, config);
26019
25846
  this.imageCrop = null;
26020
25847
  this.imageBitmapCache = {};
26021
25848
  this.imageSource = {};
@@ -26046,6 +25873,7 @@ var WeaveImageNode = class extends WeaveNode {
26046
25873
  this.logger.info(`image caching enabled: ${this.config.performance.cache.enabled}`);
26047
25874
  }
26048
25875
  triggerCrop(imageNode, options) {
25876
+ if (!this.config.cropMode.enabled) return;
26049
25877
  const stage = this.instance.getStage();
26050
25878
  if (imageNode.getAttrs().cropping ?? false) return;
26051
25879
  if (!(this.isSelecting() && this.isNodeSelected(imageNode))) return;
@@ -26071,6 +25899,7 @@ var WeaveImageNode = class extends WeaveNode {
26071
25899
  });
26072
25900
  }
26073
25901
  closeCrop = (imageNode, type) => {
25902
+ if (!this.config.cropMode.enabled) return;
26074
25903
  if (!this.imageCrop) return;
26075
25904
  const stage = this.instance.getStage();
26076
25905
  stage.mode(WEAVE_STAGE_DEFAULT_MODE);
@@ -26084,6 +25913,7 @@ var WeaveImageNode = class extends WeaveNode {
26084
25913
  }
26085
25914
  };
26086
25915
  resetCrop = (imageNode) => {
25916
+ if (!this.config.cropMode.enabled) return;
26087
25917
  const internalImage = imageNode.findOne(`#${imageNode.getAttrs().id}-image`);
26088
25918
  const cropGroup = imageNode.findOne(`#${imageNode.getAttrs().id}-cropGroup`);
26089
25919
  if (!internalImage || !cropGroup) return;
@@ -26127,19 +25957,21 @@ var WeaveImageNode = class extends WeaveNode {
26127
25957
  const image$1 = stage.findOne(`#${id}`);
26128
25958
  if (!image$1) return;
26129
25959
  };
26130
- image.triggerCrop = () => {
26131
- this.triggerCrop(image, { cmdCtrl: { triggered: false } });
26132
- };
26133
- image.closeCrop = (type) => {
26134
- this.closeCrop(image, type);
26135
- };
26136
- image.resetCrop = () => {
26137
- const stage = this.instance.getStage();
26138
- const image$1 = stage.findOne(`#${id}`);
26139
- if (!image$1) return;
26140
- const imageCrop = new WeaveImageCrop(this.instance, this, image$1, internalImage, cropGroup);
26141
- imageCrop.unCrop();
26142
- };
25960
+ if (this.config.cropMode.enabled) {
25961
+ image.triggerCrop = () => {
25962
+ this.triggerCrop(image, { cmdCtrl: { triggered: false } });
25963
+ };
25964
+ image.closeCrop = (type) => {
25965
+ this.closeCrop(image, type);
25966
+ };
25967
+ image.resetCrop = () => {
25968
+ const stage = this.instance.getStage();
25969
+ const image$1 = stage.findOne(`#${id}`);
25970
+ if (!image$1) return;
25971
+ const imageCrop = new WeaveImageCrop(this.instance, this, image$1, internalImage, cropGroup);
25972
+ imageCrop.unCrop();
25973
+ };
25974
+ }
26143
25975
  const defaultTransformerProperties = this.defaultGetTransformerProperties(this.config.transform);
26144
25976
  image.getTransformerProperties = function() {
26145
25977
  return defaultTransformerProperties;
@@ -26246,24 +26078,26 @@ var WeaveImageNode = class extends WeaveNode {
26246
26078
  if (this.imageCrop) this.closeCrop(image, WEAVE_IMAGE_CROP_END_TYPE.CANCEL);
26247
26079
  }
26248
26080
  });
26249
- image.on("onCmdCtrlPressed", () => {
26250
- const transformer = this.getSelectionPlugin()?.getTransformer();
26251
- if (!transformer) return;
26252
- transformer.hide();
26253
- const utilityLayer = this.instance.getUtilityLayer();
26254
- if (!utilityLayer) return;
26255
- utilityLayer?.destroyChildren();
26256
- this.renderCropMode(utilityLayer, image);
26257
- utilityLayer?.show();
26258
- });
26259
- image.on("onCmdCtrlReleased", () => {
26260
- const transformer = this.getSelectionPlugin()?.getTransformer();
26261
- if (!transformer) return;
26262
- transformer.show();
26263
- const utilityLayer = this.instance.getUtilityLayer();
26264
- if (!utilityLayer) return;
26265
- utilityLayer?.destroyChildren();
26266
- });
26081
+ if (this.config.cropMode.enabled && this.config.cropMode.triggers.ctrlCmd) {
26082
+ image.on("onCmdCtrlPressed", () => {
26083
+ const transformer = this.getSelectionPlugin()?.getTransformer();
26084
+ if (!transformer) return;
26085
+ transformer.hide();
26086
+ const utilityLayer = this.instance.getUtilityLayer();
26087
+ if (!utilityLayer) return;
26088
+ utilityLayer?.destroyChildren();
26089
+ this.renderCropMode(utilityLayer, image);
26090
+ utilityLayer?.show();
26091
+ });
26092
+ image.on("onCmdCtrlReleased", () => {
26093
+ const transformer = this.getSelectionPlugin()?.getTransformer();
26094
+ if (!transformer) return;
26095
+ transformer.show();
26096
+ const utilityLayer = this.instance.getUtilityLayer();
26097
+ if (!utilityLayer) return;
26098
+ utilityLayer?.destroyChildren();
26099
+ });
26100
+ }
26267
26101
  image.on("onSelectionCleared", () => {
26268
26102
  const transformer = this.getSelectionPlugin()?.getTransformer();
26269
26103
  if (!transformer) return;
@@ -26317,6 +26151,7 @@ var WeaveImageNode = class extends WeaveNode {
26317
26151
  width: absoluteCorners[1].x - absoluteCorners[0].x,
26318
26152
  height: absoluteCorners[2].y - absoluteCorners[0].y,
26319
26153
  fill: "transparent",
26154
+ strokeScaleEnabled: false,
26320
26155
  strokeWidth: 2,
26321
26156
  stroke: "#1a1aff",
26322
26157
  draggable: false,
@@ -26329,13 +26164,6 @@ var WeaveImageNode = class extends WeaveNode {
26329
26164
  x: 1 / stageScale,
26330
26165
  y: 1 / stageScale
26331
26166
  });
26332
- stage.on("scaleXChange scaleYChange", () => {
26333
- const scale = stage.scaleX();
26334
- rect.scale({
26335
- x: 1 / scale,
26336
- y: 1 / scale
26337
- });
26338
- });
26339
26167
  }
26340
26168
  renderCropAnchor(position, node, layer, onClick) {
26341
26169
  const transform = node.getAbsoluteTransform().copy();
@@ -26621,7 +26449,7 @@ var WeaveImageNode = class extends WeaveNode {
26621
26449
  }
26622
26450
  this.loadAsyncElement(id);
26623
26451
  preloadFunction(id, realImageURL ?? "", {
26624
- onLoad: async () => {
26452
+ onLoad: () => {
26625
26453
  if (useFallback) this.imageTryoutIds[id] = setTimeout(() => {
26626
26454
  const node = this.instance.getStage().findOne(`#${id}`);
26627
26455
  if (node) {
@@ -26853,7 +26681,6 @@ const WEAVE_STAR_NODE_TYPE = "star";
26853
26681
  //#region src/nodes/star/star.ts
26854
26682
  var WeaveStarNode = class extends WeaveNode {
26855
26683
  nodeType = WEAVE_STAR_NODE_TYPE;
26856
- initialize = void 0;
26857
26684
  constructor(params) {
26858
26685
  super();
26859
26686
  const { config } = params ?? {};
@@ -26939,7 +26766,6 @@ const WEAVE_ARROW_NODE_TYPE = "arrow";
26939
26766
  //#region src/nodes/arrow/arrow.ts
26940
26767
  var WeaveArrowNode = class extends WeaveNode {
26941
26768
  nodeType = WEAVE_ARROW_NODE_TYPE;
26942
- initialize = void 0;
26943
26769
  constructor(params) {
26944
26770
  super();
26945
26771
  const { config } = params ?? {};
@@ -26996,7 +26822,6 @@ const WEAVE_REGULAR_POLYGON_NODE_TYPE = "regular-polygon";
26996
26822
  //#region src/nodes/regular-polygon/regular-polygon.ts
26997
26823
  var WeaveRegularPolygonNode = class extends WeaveNode {
26998
26824
  nodeType = WEAVE_REGULAR_POLYGON_NODE_TYPE;
26999
- initialize = void 0;
27000
26825
  constructor(params) {
27001
26826
  super();
27002
26827
  const { config } = params ?? {};
@@ -27110,7 +26935,6 @@ var GroupFrame = class extends Konva.Group {
27110
26935
  //#region src/nodes/frame/frame.ts
27111
26936
  var WeaveFrameNode = class extends WeaveNode {
27112
26937
  nodeType = WEAVE_FRAME_NODE_TYPE;
27113
- initialize = void 0;
27114
26938
  constructor(params) {
27115
26939
  super();
27116
26940
  const { config } = params ?? {};
@@ -27411,7 +27235,6 @@ const WEAVE_STROKE_NODE_DEFAULT_CONFIG = {
27411
27235
  //#region src/nodes/stroke/stroke.ts
27412
27236
  var WeaveStrokeNode = class extends WeaveNode {
27413
27237
  nodeType = WEAVE_STROKE_NODE_TYPE;
27414
- initialize = void 0;
27415
27238
  constructor(params) {
27416
27239
  super();
27417
27240
  const { config } = params ?? {};
@@ -27988,6 +27811,8 @@ var WeaveSquareLineTipManager = class extends WeaveBaseLineTipManager {
27988
27811
  //#endregion
27989
27812
  //#region src/nodes/stroke-single/stroke-single.ts
27990
27813
  var WeaveStrokeSingleNode = class extends WeaveNode {
27814
+ startHandle = null;
27815
+ endHandle = null;
27991
27816
  nodeType = WEAVE_STROKE_SINGLE_NODE_TYPE;
27992
27817
  tipManagers = {
27993
27818
  [WEAVE_STROKE_SINGLE_NODE_TIP_TYPE.ARROW]: new WeaveArrowLineTipManager(),
@@ -27998,20 +27823,15 @@ var WeaveStrokeSingleNode = class extends WeaveNode {
27998
27823
  constructor(params) {
27999
27824
  super();
28000
27825
  this.config = mergeExceptArrays(WEAVE_STROKE_SINGLE_NODE_DEFAULT_CONFIG, params?.config ?? {});
27826
+ this.handleNodeChanges = null;
27827
+ this.handleZoomChanges = null;
27828
+ this.shiftPressed = false;
28001
27829
  this.snapper = new GreedySnapper({
28002
27830
  snapAngles: this.config.snapAngles.angles,
28003
27831
  activateThreshold: this.config.snapAngles.activateThreshold,
28004
27832
  releaseThreshold: this.config.snapAngles.releaseThreshold
28005
27833
  });
28006
- this.initialize();
28007
- }
28008
- initialize() {
28009
27834
  this.eventsInitialized = false;
28010
- this.startHandle = null;
28011
- this.endHandle = null;
28012
- this.handleNodeChanges = null;
28013
- this.handleZoomChanges = null;
28014
- this.shiftPressed = false;
28015
27835
  }
28016
27836
  initEvents() {
28017
27837
  if (this.eventsInitialized) return;
@@ -28507,9 +28327,6 @@ var WeaveCommentNode = class extends WeaveNode {
28507
28327
  constructor(params) {
28508
28328
  super();
28509
28329
  this.config = mergeExceptArrays(WEAVE_COMMENT_NODE_DEFAULTS, params.config);
28510
- this.initialize();
28511
- }
28512
- initialize() {
28513
28330
  this.commentDomVisibleId = null;
28514
28331
  this.commentDomVisible = false;
28515
28332
  this.commentDomAction = null;
@@ -29138,6 +28955,10 @@ const WEAVE_VIDEO_DEFAULT_CONFIG = {
29138
28955
  //#endregion
29139
28956
  //#region src/nodes/video/video.ts
29140
28957
  var WeaveVideoNode = class extends WeaveNode {
28958
+ videoState = {};
28959
+ videoSourceFrameId = {};
28960
+ videoSource = {};
28961
+ videoPlaceholder = {};
29141
28962
  nodeType = WEAVE_VIDEO_NODE_TYPE;
29142
28963
  constructor(params) {
29143
28964
  super();
@@ -29150,13 +28971,6 @@ var WeaveVideoNode = class extends WeaveNode {
29150
28971
  this.videoIconImage.src = this.config.style.icon.dataURL;
29151
28972
  }
29152
28973
  }
29153
- initialize() {
29154
- this.videoState = {};
29155
- this.videoSource = {};
29156
- this.videoSourceFrameId = {};
29157
- this.videoPlaceholder = {};
29158
- this.videoIconImage = void 0;
29159
- }
29160
28974
  async loadPlaceholder(params, video) {
29161
28975
  const videoProps = params;
29162
28976
  const { id } = videoProps;
@@ -29651,7 +29465,6 @@ const WEAVE_MEASURE_NODE_DEFAULT_CONFIG = { style: {
29651
29465
  var WeaveMeasureNode = class extends WeaveNode {
29652
29466
  nodeType = WEAVE_MEASURE_NODE_TYPE;
29653
29467
  handlePointCircleRadius = 6;
29654
- initialize = void 0;
29655
29468
  constructor(params) {
29656
29469
  super();
29657
29470
  this.config = mergeExceptArrays(WEAVE_MEASURE_NODE_DEFAULT_CONFIG, params?.config ?? {});
@@ -30942,7 +30755,6 @@ var WeaveConnectorNode = class extends WeaveNode {
30942
30755
  [WEAVE_CONNECTOR_NODE_DECORATOR_TYPE.DOT]: setupNodeDecoratorDot,
30943
30756
  [WEAVE_CONNECTOR_NODE_DECORATOR_TYPE.ARROW]: setupNodeDecoratorArrow
30944
30757
  };
30945
- initialize = void 0;
30946
30758
  constructor(params) {
30947
30759
  super();
30948
30760
  this.config = mergeExceptArrays(WEAVE_CONNECTOR_NODE_DEFAULT_CONFIG, params?.config);
@@ -31693,6 +31505,10 @@ const WEAVE_STAGE_ZOOM_DEFAULT_CONFIG = {
31693
31505
  var WeaveStageZoomPlugin = class extends WeavePlugin {
31694
31506
  getLayerName = void 0;
31695
31507
  initLayer = void 0;
31508
+ pinching = false;
31509
+ zooming = false;
31510
+ isTrackpad = false;
31511
+ zoomVelocity = 0;
31696
31512
  zoomInertiaType = WEAVE_STAGE_ZOOM_TYPE.MOUSE_WHEEL;
31697
31513
  defaultStep = 3;
31698
31514
  constructor(params) {
@@ -31700,13 +31516,8 @@ var WeaveStageZoomPlugin = class extends WeavePlugin {
31700
31516
  const { config } = params ?? {};
31701
31517
  this.config = mergeExceptArrays(WEAVE_STAGE_ZOOM_DEFAULT_CONFIG, config);
31702
31518
  if (!this.config.zoomSteps.includes(this.config.defaultZoom)) throw new Error(`Default zoom ${this.config.defaultZoom} is not in zoom steps`);
31703
- this.initialize();
31704
- }
31705
- initialize() {
31706
31519
  this.pinching = false;
31707
- this.zooming = false;
31708
31520
  this.isTrackpad = false;
31709
- this.zoomVelocity = 0;
31710
31521
  this.isCtrlOrMetaPressed = false;
31711
31522
  this.updatedMinimumZoom = false;
31712
31523
  this.actualStep = this.config.zoomSteps.findIndex((step) => step === this.config.defaultZoom);
@@ -31993,15 +31804,6 @@ var WeaveStageZoomPlugin = class extends WeavePlugin {
31993
31804
  if (box.width === 0 || box.height === 0) return;
31994
31805
  this.fitToElements(box, finalOptions);
31995
31806
  }
31996
- fitToArea(area, options) {
31997
- const finalOptions = mergeExceptArrays({
31998
- smartZoom: false,
31999
- overrideZoom: true
32000
- }, options);
32001
- if (!this.enabled) return;
32002
- if (area.width === 0 || area.height === 0) return;
32003
- this.fitToElements(area, finalOptions);
32004
- }
32005
31807
  enable() {
32006
31808
  this.enabled = true;
32007
31809
  }
@@ -32182,7 +31984,6 @@ const ZOOM_OUT_TOOL_ACTION_NAME = "zoomOutTool";
32182
31984
  //#region src/actions/zoom-out-tool/zoom-out-tool.ts
32183
31985
  var WeaveZoomOutToolAction = class extends WeaveAction {
32184
31986
  onPropsChange = void 0;
32185
- initialize = void 0;
32186
31987
  getName() {
32187
31988
  return ZOOM_OUT_TOOL_ACTION_NAME;
32188
31989
  }
@@ -32217,10 +32018,6 @@ const ZOOM_IN_TOOL_ACTION_NAME = "zoomInTool";
32217
32018
  //#region src/actions/zoom-in-tool/zoom-in-tool.ts
32218
32019
  var WeaveZoomInToolAction = class extends WeaveAction {
32219
32020
  onPropsChange = void 0;
32220
- initialize = void 0;
32221
- constructor() {
32222
- super();
32223
- }
32224
32021
  getName() {
32225
32022
  return ZOOM_IN_TOOL_ACTION_NAME;
32226
32023
  }
@@ -32255,10 +32052,6 @@ const FIT_TO_SCREEN_TOOL_ACTION_NAME = "fitToScreenTool";
32255
32052
  //#region src/actions/fit-to-screen-tool/fit-to-screen-tool.ts
32256
32053
  var WeaveFitToScreenToolAction = class extends WeaveAction {
32257
32054
  onPropsChange = void 0;
32258
- initialize = void 0;
32259
- constructor() {
32260
- super();
32261
- }
32262
32055
  getName() {
32263
32056
  return FIT_TO_SCREEN_TOOL_ACTION_NAME;
32264
32057
  }
@@ -32292,10 +32085,6 @@ const FIT_TO_SELECTION_TOOL_ACTION_NAME = "fitToSelectionTool";
32292
32085
  //#region src/actions/fit-to-selection-tool/fit-to-selection-tool.ts
32293
32086
  var WeaveFitToSelectionToolAction = class extends WeaveAction {
32294
32087
  onPropsChange = void 0;
32295
- initialize = void 0;
32296
- constructor() {
32297
- super();
32298
- }
32299
32088
  getName() {
32300
32089
  return FIT_TO_SELECTION_TOOL_ACTION_NAME;
32301
32090
  }
@@ -32338,9 +32127,6 @@ var WeaveMoveToolAction = class extends WeaveAction {
32338
32127
  onInit = void 0;
32339
32128
  constructor() {
32340
32129
  super();
32341
- this.initialize();
32342
- }
32343
- initialize() {
32344
32130
  this.initialized = false;
32345
32131
  this.state = MOVE_TOOL_STATE.IDLE;
32346
32132
  }
@@ -32413,9 +32199,6 @@ var WeaveSelectionToolAction = class extends WeaveAction {
32413
32199
  onInit = void 0;
32414
32200
  constructor() {
32415
32201
  super();
32416
- this.initialize();
32417
- }
32418
- initialize() {
32419
32202
  this.initialized = false;
32420
32203
  this.state = SELECTION_TOOL_STATE.IDLE;
32421
32204
  }
@@ -32479,9 +32262,6 @@ var WeaveEraserToolAction = class extends WeaveAction {
32479
32262
  onInit = void 0;
32480
32263
  constructor() {
32481
32264
  super();
32482
- this.initialize();
32483
- }
32484
- initialize() {
32485
32265
  this.initialized = false;
32486
32266
  this.erasing = false;
32487
32267
  this.state = ERASER_TOOL_STATE.IDLE;
@@ -32582,9 +32362,6 @@ var WeaveRectangleToolAction = class extends WeaveAction {
32582
32362
  onInit = void 0;
32583
32363
  constructor() {
32584
32364
  super();
32585
- this.initialize();
32586
- }
32587
- initialize() {
32588
32365
  this.pointers = new Map();
32589
32366
  this.initialized = false;
32590
32367
  this.state = RECTANGLE_TOOL_STATE.IDLE;
@@ -32794,9 +32571,6 @@ var WeaveEllipseToolAction = class extends WeaveAction {
32794
32571
  onInit = void 0;
32795
32572
  constructor() {
32796
32573
  super();
32797
- this.initialize();
32798
- }
32799
- initialize() {
32800
32574
  this.pointers = new Map();
32801
32575
  this.initialized = false;
32802
32576
  this.state = ELLIPSE_TOOL_STATE.IDLE;
@@ -33013,9 +32787,6 @@ var WeavePenToolAction = class extends WeaveAction {
33013
32787
  onInit = void 0;
33014
32788
  constructor() {
33015
32789
  super();
33016
- this.initialize();
33017
- }
33018
- initialize() {
33019
32790
  this.pointers = new Map();
33020
32791
  this.initialized = false;
33021
32792
  this.state = PEN_TOOL_STATE.IDLE;
@@ -33288,9 +33059,6 @@ var WeaveLineToolAction = class extends WeaveAction {
33288
33059
  constructor(params) {
33289
33060
  super();
33290
33061
  this.config = mergeExceptArrays(LINE_TOOL_DEFAULT_CONFIG, params?.config ?? {});
33291
- this.initialize();
33292
- }
33293
- initialize() {
33294
33062
  this.pointers = new Map();
33295
33063
  this.initialized = false;
33296
33064
  this.state = LINE_TOOL_STATE.IDLE;
@@ -33556,9 +33324,6 @@ var WeaveBrushToolAction = class extends WeaveAction {
33556
33324
  constructor(params) {
33557
33325
  super();
33558
33326
  this.config = mergeExceptArrays(BRUSH_TOOL_DEFAULT_CONFIG, params?.config ?? {});
33559
- this.initialize();
33560
- }
33561
- initialize() {
33562
33327
  this.initialized = false;
33563
33328
  this.state = BRUSH_TOOL_STATE.INACTIVE;
33564
33329
  this.strokeId = null;
@@ -33812,9 +33577,6 @@ var WeaveTextToolAction = class extends WeaveAction {
33812
33577
  onInit = void 0;
33813
33578
  constructor() {
33814
33579
  super();
33815
- this.initialize();
33816
- }
33817
- initialize() {
33818
33580
  this.initialized = false;
33819
33581
  this.state = TEXT_TOOL_STATE.IDLE;
33820
33582
  this.textId = null;
@@ -33972,9 +33734,6 @@ var WeaveImageToolAction = class extends WeaveAction {
33972
33734
  constructor(params) {
33973
33735
  super();
33974
33736
  this.config = mergeExceptArrays(WEAVE_IMAGE_TOOL_CONFIG_DEFAULT, params?.config ?? {});
33975
- this.initialize();
33976
- }
33977
- initialize() {
33978
33737
  this.pointers = new Map();
33979
33738
  this.initialized = false;
33980
33739
  this.imageId = null;
@@ -34415,9 +34174,6 @@ var WeaveImagesToolAction = class extends WeaveAction {
34415
34174
  constructor(params) {
34416
34175
  super();
34417
34176
  this.config = mergeExceptArrays(WEAVE_IMAGES_TOOL_DEFAULT_CONFIG, params ?? {});
34418
- this.initialize();
34419
- }
34420
- initialize() {
34421
34177
  this.pointers = new Map();
34422
34178
  this.initialized = false;
34423
34179
  this.tempPointerFeedbackNode = null;
@@ -34846,9 +34602,6 @@ var WeaveStarToolAction = class extends WeaveAction {
34846
34602
  onInit = void 0;
34847
34603
  constructor() {
34848
34604
  super();
34849
- this.initialize();
34850
- }
34851
- initialize() {
34852
34605
  this.pointers = new Map();
34853
34606
  this.initialized = false;
34854
34607
  this.state = STAR_TOOL_STATE.IDLE;
@@ -35050,8 +34803,8 @@ var WeaveStarToolAction = class extends WeaveAction {
35050
34803
 
35051
34804
  //#endregion
35052
34805
  //#region src/actions/arrow-tool/constants.ts
35053
- const WEAVE_ARROW_TOOL_ACTION_NAME = "arrowTool";
35054
- const WEAVE_ARROW_TOOL_STATE = {
34806
+ const ARROW_TOOL_ACTION_NAME = "arrowTool";
34807
+ const ARROW_TOOL_STATE = {
35055
34808
  ["IDLE"]: "idle",
35056
34809
  ["ADDING"]: "adding",
35057
34810
  ["DEFINING_SIZE"]: "definingSize",
@@ -35067,12 +34820,9 @@ var WeaveArrowToolAction = class extends WeaveAction {
35067
34820
  onInit = void 0;
35068
34821
  constructor() {
35069
34822
  super();
35070
- this.initialize();
35071
- }
35072
- initialize() {
35073
34823
  this.pointers = new Map();
35074
34824
  this.initialized = false;
35075
- this.state = WEAVE_ARROW_TOOL_STATE.IDLE;
34825
+ this.state = ARROW_TOOL_STATE.IDLE;
35076
34826
  this.arrowId = null;
35077
34827
  this.tempArrowId = null;
35078
34828
  this.tempMainArrowNode = null;
@@ -35085,7 +34835,7 @@ var WeaveArrowToolAction = class extends WeaveAction {
35085
34835
  this.props = this.initProps();
35086
34836
  }
35087
34837
  getName() {
35088
- return WEAVE_ARROW_TOOL_ACTION_NAME;
34838
+ return ARROW_TOOL_ACTION_NAME;
35089
34839
  }
35090
34840
  initProps() {
35091
34841
  return {
@@ -35102,11 +34852,14 @@ var WeaveArrowToolAction = class extends WeaveAction {
35102
34852
  setupEvents() {
35103
34853
  const stage = this.instance.getStage();
35104
34854
  window.addEventListener("keydown", (e) => {
35105
- if (e.code === "Enter" && this.instance.getActiveAction() === WEAVE_ARROW_TOOL_ACTION_NAME) {
34855
+ if (e.code === "Enter" && this.instance.getActiveAction() === ARROW_TOOL_ACTION_NAME) {
34856
+ this.cancelAction();
34857
+ return;
34858
+ }
34859
+ if (e.code === "Escape" && this.instance.getActiveAction() === ARROW_TOOL_ACTION_NAME) {
35106
34860
  this.cancelAction();
35107
34861
  return;
35108
34862
  }
35109
- if (e.code === "Escape" && this.instance.getActiveAction() === WEAVE_ARROW_TOOL_ACTION_NAME) this.cancelAction();
35110
34863
  });
35111
34864
  stage.on("pointerdown", (e) => {
35112
34865
  this.setTapStart(e);
@@ -35114,25 +34867,25 @@ var WeaveArrowToolAction = class extends WeaveAction {
35114
34867
  x: e.evt.clientX,
35115
34868
  y: e.evt.clientY
35116
34869
  });
35117
- if (this.pointers.size === 2 && this.instance.getActiveAction() === WEAVE_ARROW_TOOL_ACTION_NAME) {
35118
- this.state = WEAVE_ARROW_TOOL_STATE.ADDING;
34870
+ if (this.pointers.size === 2 && this.instance.getActiveAction() === ARROW_TOOL_ACTION_NAME) {
34871
+ this.state = ARROW_TOOL_STATE.ADDING;
35119
34872
  return;
35120
34873
  }
35121
- if (!this.tempMainArrowNode && this.state === WEAVE_ARROW_TOOL_STATE.ADDING) this.handleAdding();
35122
- if (this.tempMainArrowNode && this.state === WEAVE_ARROW_TOOL_STATE.ADDING) this.state = WEAVE_ARROW_TOOL_STATE.DEFINING_SIZE;
34874
+ if (!this.tempMainArrowNode && this.state === ARROW_TOOL_STATE.ADDING) this.handleAdding();
34875
+ if (this.tempMainArrowNode && this.state === ARROW_TOOL_STATE.ADDING) this.state = ARROW_TOOL_STATE.DEFINING_SIZE;
35123
34876
  });
35124
34877
  stage.on("pointermove", () => {
35125
- if (this.state === WEAVE_ARROW_TOOL_STATE.IDLE) return;
34878
+ if (this.state === ARROW_TOOL_STATE.IDLE) return;
35126
34879
  this.setCursor();
35127
- if (this.pointers.size === 2 && this.instance.getActiveAction() === WEAVE_ARROW_TOOL_ACTION_NAME) {
35128
- this.state = WEAVE_ARROW_TOOL_STATE.ADDING;
34880
+ if (this.pointers.size === 2 && this.instance.getActiveAction() === ARROW_TOOL_ACTION_NAME) {
34881
+ this.state = ARROW_TOOL_STATE.ADDING;
35129
34882
  return;
35130
34883
  }
35131
- if (this.state === WEAVE_ARROW_TOOL_STATE.DEFINING_SIZE) this.handleMovement();
34884
+ if (this.state === ARROW_TOOL_STATE.DEFINING_SIZE) this.handleMovement();
35132
34885
  });
35133
34886
  stage.on("pointerup", (e) => {
35134
34887
  this.pointers.delete(e.evt.pointerId);
35135
- if (this.state === WEAVE_ARROW_TOOL_STATE.DEFINING_SIZE) this.handleSettingSize();
34888
+ if (this.state === ARROW_TOOL_STATE.DEFINING_SIZE) this.handleSettingSize();
35136
34889
  });
35137
34890
  this.initialized = true;
35138
34891
  }
@@ -35146,7 +34899,7 @@ var WeaveArrowToolAction = class extends WeaveAction {
35146
34899
  this.tempPoint = void 0;
35147
34900
  this.tempNextPoint = void 0;
35148
34901
  this.clickPoint = null;
35149
- this.setState(WEAVE_ARROW_TOOL_STATE.ADDING);
34902
+ this.setState(ARROW_TOOL_STATE.ADDING);
35150
34903
  }
35151
34904
  handleAdding() {
35152
34905
  const stage = this.instance.getStage();
@@ -35197,7 +34950,7 @@ var WeaveArrowToolAction = class extends WeaveAction {
35197
34950
  this.measureContainer?.add(this.tempNextPoint);
35198
34951
  this.tempPoint.moveToTop();
35199
34952
  this.tempNextPoint.moveToTop();
35200
- this.setState(WEAVE_ARROW_TOOL_STATE.DEFINING_SIZE);
34953
+ this.setState(ARROW_TOOL_STATE.DEFINING_SIZE);
35201
34954
  }
35202
34955
  }
35203
34956
  handleSettingSize() {
@@ -35224,11 +34977,11 @@ var WeaveArrowToolAction = class extends WeaveAction {
35224
34977
  y: mousePoint.y,
35225
34978
  points: [0, 0]
35226
34979
  });
35227
- this.setState(WEAVE_ARROW_TOOL_STATE.DEFINING_SIZE);
34980
+ this.setState(ARROW_TOOL_STATE.DEFINING_SIZE);
35228
34981
  }
35229
34982
  }
35230
34983
  handleMovement() {
35231
- if (this.state !== WEAVE_ARROW_TOOL_STATE.DEFINING_SIZE) return;
34984
+ if (this.state !== ARROW_TOOL_STATE.DEFINING_SIZE) return;
35232
34985
  if (this.arrowId && this.tempArrowNode && this.measureContainer && this.tempNextPoint) {
35233
34986
  const { mousePoint } = this.instance.getMousePointerRelativeToContainer(this.measureContainer);
35234
34987
  this.tempArrowNode.setAttrs({
@@ -35295,7 +35048,7 @@ var WeaveArrowToolAction = class extends WeaveAction {
35295
35048
  this.container = void 0;
35296
35049
  this.measureContainer = void 0;
35297
35050
  this.clickPoint = null;
35298
- this.setState(WEAVE_ARROW_TOOL_STATE.IDLE);
35051
+ this.setState(ARROW_TOOL_STATE.IDLE);
35299
35052
  }
35300
35053
  setCursor() {
35301
35054
  const stage = this.instance.getStage();
@@ -35339,15 +35092,13 @@ const WEAVE_STROKE_TOOL_DEFAULT_CONFIG = { snapAngles: {
35339
35092
  var WeaveStrokeToolAction = class extends WeaveAction {
35340
35093
  initialized = false;
35341
35094
  initialCursor = null;
35095
+ snappedAngle = null;
35342
35096
  shiftPressed = false;
35343
35097
  onPropsChange = void 0;
35344
35098
  onInit = void 0;
35345
35099
  constructor(params) {
35346
35100
  super();
35347
35101
  this.config = mergeExceptArrays(WEAVE_STROKE_TOOL_DEFAULT_CONFIG, params?.config ?? {});
35348
- this.initialize();
35349
- }
35350
- initialize() {
35351
35102
  this.pointers = new Map();
35352
35103
  this.initialized = false;
35353
35104
  this.state = WEAVE_STROKE_TOOL_STATE.IDLE;
@@ -35356,6 +35107,7 @@ var WeaveStrokeToolAction = class extends WeaveAction {
35356
35107
  this.tempLineId = null;
35357
35108
  this.tempLineNode = null;
35358
35109
  this.container = void 0;
35110
+ this.snappedAngle = null;
35359
35111
  this.measureContainer = void 0;
35360
35112
  this.clickPoint = null;
35361
35113
  this.snapper = new GreedySnapper({
@@ -35368,9 +35120,6 @@ var WeaveStrokeToolAction = class extends WeaveAction {
35368
35120
  getName() {
35369
35121
  return WEAVE_STROKE_TOOL_ACTION_NAME;
35370
35122
  }
35371
- getNames() {
35372
- return [WEAVE_STROKE_TOOL_ACTION_NAME, ...WEAVE_STROKE_TOOL_ACTION_NAME_ALIASES];
35373
- }
35374
35123
  hasAliases() {
35375
35124
  return true;
35376
35125
  }
@@ -35389,18 +35138,24 @@ var WeaveStrokeToolAction = class extends WeaveAction {
35389
35138
  setupEvents() {
35390
35139
  const stage = this.instance.getStage();
35391
35140
  window.addEventListener("keydown", (e) => {
35392
- if (e.code === "Enter" && this.getNames().includes(this.instance.getActiveAction() ?? "")) {
35141
+ if (e.code === "Enter" && this.instance.getActiveAction() === WEAVE_STROKE_TOOL_ACTION_NAME) {
35393
35142
  this.cancelAction();
35394
35143
  return;
35395
35144
  }
35396
- if (e.code === "Escape" && this.getNames().includes(this.instance.getActiveAction() ?? "")) {
35145
+ if (e.code === "Escape" && this.instance.getActiveAction() === WEAVE_STROKE_TOOL_ACTION_NAME) {
35397
35146
  this.cancelAction();
35398
35147
  return;
35399
35148
  }
35400
- if (e.key === "Shift" && this.getNames().includes(this.instance.getActiveAction() ?? "")) this.shiftPressed = true;
35149
+ if (e.key === "Shift" && this.instance.getActiveAction() === WEAVE_STROKE_TOOL_ACTION_NAME) {
35150
+ this.snappedAngle = null;
35151
+ this.shiftPressed = true;
35152
+ }
35401
35153
  });
35402
35154
  window.addEventListener("keyup", (e) => {
35403
- if (e.key === "Shift" && this.getNames().includes(this.instance.getActiveAction() ?? "")) this.shiftPressed = false;
35155
+ if (e.key === "Shift" && this.instance.getActiveAction() === WEAVE_STROKE_TOOL_ACTION_NAME) {
35156
+ this.snappedAngle = null;
35157
+ this.shiftPressed = false;
35158
+ }
35404
35159
  });
35405
35160
  stage.on("pointerdown", (e) => {
35406
35161
  this.setTapStart(e);
@@ -35408,7 +35163,7 @@ var WeaveStrokeToolAction = class extends WeaveAction {
35408
35163
  x: e.evt.clientX,
35409
35164
  y: e.evt.clientY
35410
35165
  });
35411
- if (this.pointers.size === 2 && this.getNames().includes(this.instance.getActiveAction() ?? "")) {
35166
+ if (this.pointers.size === 2 && this.instance.getActiveAction() === WEAVE_STROKE_TOOL_ACTION_NAME) {
35412
35167
  this.state = WEAVE_STROKE_TOOL_STATE.ADDING;
35413
35168
  return;
35414
35169
  }
@@ -35418,7 +35173,7 @@ var WeaveStrokeToolAction = class extends WeaveAction {
35418
35173
  stage.on("pointermove", () => {
35419
35174
  if (this.state === WEAVE_STROKE_TOOL_STATE.IDLE) return;
35420
35175
  this.setCursor();
35421
- if (this.pointers.size === 2 && this.getNames().includes(this.instance.getActiveAction() ?? "")) {
35176
+ if (this.pointers.size === 2 && this.instance.getActiveAction() === WEAVE_STROKE_TOOL_ACTION_NAME) {
35422
35177
  this.state = WEAVE_STROKE_TOOL_STATE.ADDING;
35423
35178
  return;
35424
35179
  }
@@ -35436,7 +35191,7 @@ var WeaveStrokeToolAction = class extends WeaveAction {
35436
35191
  addLine() {
35437
35192
  this.setCursor();
35438
35193
  this.setFocusStage();
35439
- this.instance.emitEvent("onAddingStroke", { actionName: this.instance.getActiveAction() ?? "not-defined" });
35194
+ this.instance.emitEvent("onAddingStroke", { actionName: this.instance.getActiveAction() ?? WEAVE_STROKE_TOOL_ACTION_NAME });
35440
35195
  this.shiftPressed = false;
35441
35196
  this.clickPoint = null;
35442
35197
  this.setState(WEAVE_STROKE_TOOL_STATE.ADDING);
@@ -35544,7 +35299,7 @@ var WeaveStrokeToolAction = class extends WeaveAction {
35544
35299
  });
35545
35300
  delete finalLine.props.dragBoundFunc;
35546
35301
  this.instance.addNode(finalLine, this.container?.getAttrs().id);
35547
- this.instance.emitEvent("onAddedStroke", { actionName: this.instance.getActiveAction() ?? "not-defined" });
35302
+ this.instance.emitEvent("onAddedStroke", { actionName: this.instance.getActiveAction() ?? WEAVE_STROKE_TOOL_ACTION_NAME });
35548
35303
  nodeCreated = true;
35549
35304
  }
35550
35305
  }
@@ -35594,9 +35349,6 @@ var WeaveRegularPolygonToolAction = class extends WeaveAction {
35594
35349
  onInit = void 0;
35595
35350
  constructor() {
35596
35351
  super();
35597
- this.initialize();
35598
- }
35599
- initialize() {
35600
35352
  this.pointers = new Map();
35601
35353
  this.initialized = false;
35602
35354
  this.state = REGULAR_POLYGON_TOOL_STATE.IDLE;
@@ -35805,9 +35557,6 @@ var WeaveFrameToolAction = class extends WeaveAction {
35805
35557
  onInit = void 0;
35806
35558
  constructor() {
35807
35559
  super();
35808
- this.initialize();
35809
- }
35810
- initialize() {
35811
35560
  this.initialized = false;
35812
35561
  this.state = FRAME_TOOL_STATE.IDLE;
35813
35562
  this.frameId = null;
@@ -35937,10 +35686,6 @@ var WeaveExportStageToolAction = class extends WeaveAction {
35937
35686
  };
35938
35687
  onPropsChange = void 0;
35939
35688
  onInit = void 0;
35940
- initialize = void 0;
35941
- constructor() {
35942
- super();
35943
- }
35944
35689
  getName() {
35945
35690
  return EXPORT_STAGE_TOOL_ACTION_NAME;
35946
35691
  }
@@ -35988,10 +35733,6 @@ var WeaveExportNodesToolAction = class extends WeaveAction {
35988
35733
  };
35989
35734
  onPropsChange = void 0;
35990
35735
  onInit = void 0;
35991
- initialize = void 0;
35992
- constructor() {
35993
- super();
35994
- }
35995
35736
  getName() {
35996
35737
  return EXPORT_NODES_TOOL_ACTION_NAME;
35997
35738
  }
@@ -36044,9 +35785,6 @@ var WeaveAlignNodesToolAction = class extends WeaveAction {
36044
35785
  onInit = void 0;
36045
35786
  constructor() {
36046
35787
  super();
36047
- this.initialize();
36048
- }
36049
- initialize() {
36050
35788
  this.initialized = false;
36051
35789
  this.state = ALIGN_NODES_TOOL_STATE.IDLE;
36052
35790
  }
@@ -36296,9 +36034,6 @@ var WeaveCommentToolAction = class extends WeaveAction {
36296
36034
  super();
36297
36035
  const { config } = params ?? {};
36298
36036
  this.config = mergeExceptArrays(WEAVE_COMMENT_TOOL_DEFAULT_CONFIG, config);
36299
- this.initialize();
36300
- }
36301
- initialize() {
36302
36037
  this.pointers = new Map();
36303
36038
  this.initialized = false;
36304
36039
  this.state = WEAVE_COMMENT_TOOL_STATE.IDLE;
@@ -36527,9 +36262,6 @@ var WeaveVideoToolAction = class extends WeaveAction {
36527
36262
  update = void 0;
36528
36263
  constructor() {
36529
36264
  super();
36530
- this.initialize();
36531
- }
36532
- initialize() {
36533
36265
  this.pointers = new Map();
36534
36266
  this.initialized = false;
36535
36267
  this.state = VIDEO_TOOL_STATE.IDLE;
@@ -36709,9 +36441,6 @@ var WeaveMeasureToolAction = class extends WeaveAction {
36709
36441
  constructor(params) {
36710
36442
  super();
36711
36443
  this.config = mergeExceptArrays(WEAVE_MEASURE_TOOL_DEFAULT_CONFIG, params?.config ?? {});
36712
- this.initialize();
36713
- }
36714
- initialize() {
36715
36444
  this.initialized = false;
36716
36445
  this.state = MEASURE_TOOL_STATE.IDLE;
36717
36446
  this.measureId = null;
@@ -37008,9 +36737,6 @@ var WeaveConnectorToolAction = class extends WeaveAction {
37008
36737
  constructor(params) {
37009
36738
  super();
37010
36739
  this.config = mergeExceptArrays(CONNECTOR_TOOL_DEFAULT_CONFIG, params?.config);
37011
- this.initialize();
37012
- }
37013
- initialize() {
37014
36740
  this.pointers = new Map();
37015
36741
  this.initialized = false;
37016
36742
  this.tempLineNode = null;
@@ -37364,9 +37090,16 @@ var WeaveConnectorToolAction = class extends WeaveAction {
37364
37090
  //#endregion
37365
37091
  //#region src/plugins/stage-grid/stage-grid.ts
37366
37092
  var WeaveStageGridPlugin = class extends WeavePlugin {
37093
+ actStageZoomX = 1;
37094
+ actStageZoomY = 1;
37095
+ actStagePosX = 0;
37096
+ actStagePosY = 0;
37367
37097
  constructor(params) {
37368
37098
  super();
37369
37099
  const { config } = params ?? {};
37100
+ this.moveToolActive = false;
37101
+ this.isMouseMiddleButtonPressed = false;
37102
+ this.isSpaceKeyPressed = false;
37370
37103
  this.config = {
37371
37104
  type: WEAVE_GRID_DEFAULT_TYPE,
37372
37105
  gridColor: WEAVE_GRID_DEFAULT_COLOR,
@@ -37375,17 +37108,7 @@ var WeaveStageGridPlugin = class extends WeavePlugin {
37375
37108
  gridDotMaxDotsPerAxis: WEAVE_GRID_DEFAULT_DOT_MAX_DOTS_PER_AXIS,
37376
37109
  ...config
37377
37110
  };
37378
- this.initialize();
37379
- }
37380
- initialize() {
37381
- this.moveToolActive = false;
37382
- this.isMouseMiddleButtonPressed = false;
37383
- this.isSpaceKeyPressed = false;
37384
37111
  this.forceStageChange = false;
37385
- this.actStagePosX = 0;
37386
- this.actStagePosY = 0;
37387
- this.actStageZoomX = 1;
37388
- this.actStageZoomY = 1;
37389
37112
  }
37390
37113
  getName() {
37391
37114
  return WEAVE_STAGE_GRID_PLUGIN_KEY;
@@ -37647,14 +37370,15 @@ var WeaveStageGridPlugin = class extends WeavePlugin {
37647
37370
  //#endregion
37648
37371
  //#region src/plugins/stage-panning/stage-panning.ts
37649
37372
  var WeaveStagePanningPlugin = class extends WeavePlugin {
37373
+ panning = false;
37374
+ currentPointer = null;
37375
+ stageScrollInterval = void 0;
37376
+ panEdgeTargets = {};
37650
37377
  getLayerName = void 0;
37651
37378
  initLayer = void 0;
37652
37379
  constructor(params) {
37653
37380
  super();
37654
37381
  this.config = mergeExceptArrays(WEAVE_STAGE_PANNING_DEFAULT_CONFIG, params?.config ?? {});
37655
- this.initialize();
37656
- }
37657
- initialize() {
37658
37382
  this.pointers = new Map();
37659
37383
  this.panning = false;
37660
37384
  this.isDragging = false;
@@ -37666,9 +37390,6 @@ var WeaveStagePanningPlugin = class extends WeavePlugin {
37666
37390
  this.isCtrlOrMetaPressed = false;
37667
37391
  this.isSpaceKeyPressed = false;
37668
37392
  this.previousPointer = null;
37669
- this.currentPointer = null;
37670
- this.stageScrollInterval = void 0;
37671
- this.panEdgeTargets = {};
37672
37393
  }
37673
37394
  getName() {
37674
37395
  return WEAVE_STAGE_PANNING_KEY;
@@ -37922,9 +37643,6 @@ var WeaveStageMinimapPlugin = class extends WeavePlugin {
37922
37643
  constructor(params) {
37923
37644
  super();
37924
37645
  this.config = mergeExceptArrays(STAGE_MINIMAP_DEFAULT_CONFIG, params.config);
37925
- this.initialize();
37926
- }
37927
- initialize() {
37928
37646
  this.initialized = false;
37929
37647
  }
37930
37648
  getName() {
@@ -38102,7 +37820,6 @@ const WEAVE_STAGE_RESIZE_KEY = "stageResize";
38102
37820
  var WeaveStageResizePlugin = class extends WeavePlugin {
38103
37821
  getLayerName = void 0;
38104
37822
  initLayer = void 0;
38105
- initialize = void 0;
38106
37823
  getName() {
38107
37824
  return WEAVE_STAGE_RESIZE_KEY;
38108
37825
  }
@@ -38122,10 +37839,6 @@ var WeaveStageResizePlugin = class extends WeavePlugin {
38122
37839
  const pluginInstance = plugins[pluginId];
38123
37840
  pluginInstance.onRender?.();
38124
37841
  }
38125
- this.instance.emitEvent("onStageResize", {
38126
- width: stage.width(),
38127
- height: stage.height()
38128
- });
38129
37842
  }
38130
37843
  }
38131
37844
  onInit() {
@@ -38152,12 +37865,10 @@ var WeaveStageResizePlugin = class extends WeavePlugin {
38152
37865
  //#endregion
38153
37866
  //#region src/plugins/nodes-multi-selection-feedback/nodes-multi-selection-feedback.ts
38154
37867
  var WeaveNodesMultiSelectionFeedbackPlugin = class extends WeavePlugin {
37868
+ selectedHalos = {};
38155
37869
  constructor(params) {
38156
37870
  super();
38157
37871
  this.config = mergeExceptArrays(WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_DEFAULT_CONFIG, params?.config ?? {});
38158
- this.initialize();
38159
- }
38160
- initialize() {
38161
37872
  this.selectedHalos = {};
38162
37873
  }
38163
37874
  getName() {
@@ -38323,14 +38034,12 @@ var WeaveNodesMultiSelectionFeedbackPlugin = class extends WeavePlugin {
38323
38034
  //#endregion
38324
38035
  //#region src/plugins/connected-users/connected-users.ts
38325
38036
  var WeaveConnectedUsersPlugin = class extends WeavePlugin {
38037
+ connectedUsers = {};
38326
38038
  getLayerName = void 0;
38327
38039
  constructor(params) {
38328
38040
  super();
38329
38041
  const { config } = params ?? {};
38330
38042
  this.config = config;
38331
- this.initialize();
38332
- }
38333
- initialize() {
38334
38043
  this.connectedUsers = {};
38335
38044
  }
38336
38045
  getName() {
@@ -38377,9 +38086,6 @@ var WeaveUsersSelectionPlugin = class extends WeavePlugin {
38377
38086
  this.config = config;
38378
38087
  this.config.getUser = memoize(this.config.getUser);
38379
38088
  this.config.getUserColor = memoize(this.config.getUserColor);
38380
- this.initialize();
38381
- }
38382
- initialize() {
38383
38089
  this.usersSelection = {};
38384
38090
  }
38385
38091
  getName() {
@@ -38572,9 +38278,6 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
38572
38278
  this.config.getUser = memoize(this.config.getUser);
38573
38279
  this.config.getUserBackgroundColor = memoize(this.config.getUserBackgroundColor);
38574
38280
  this.config.getUserForegroundColor = memoize(this.config.getUserForegroundColor);
38575
- this.initialize();
38576
- }
38577
- initialize() {
38578
38281
  this.usersPointers = {};
38579
38282
  this.usersOperations = {};
38580
38283
  }
@@ -38785,9 +38488,6 @@ var WeaveUsersPresencePlugin = class extends WeavePlugin {
38785
38488
  super();
38786
38489
  const { config } = params;
38787
38490
  this.config = mergeExceptArrays(WEAVE_USERS_PRESENCE_CONFIG_DEFAULT_PROPS, config);
38788
- this.initialize();
38789
- }
38790
- initialize() {
38791
38491
  this.userPresence = {};
38792
38492
  }
38793
38493
  getName() {
@@ -38863,9 +38563,6 @@ var WeaveStageDropAreaPlugin = class extends WeavePlugin {
38863
38563
  initLayer = void 0;
38864
38564
  constructor() {
38865
38565
  super();
38866
- this.initialize();
38867
- }
38868
- initialize() {
38869
38566
  this.enabled = true;
38870
38567
  }
38871
38568
  getName() {
@@ -38905,9 +38602,6 @@ var WeaveNodesEdgeSnappingPlugin = class extends WeavePlugin {
38905
38602
  this.guideLineConfig = config?.guideLine ?? GUIDE_LINE_DEFAULT_CONFIG;
38906
38603
  this.dragSnappingThreshold = config?.dragSnappingThreshold ?? GUIDE_LINE_DRAG_SNAPPING_THRESHOLD;
38907
38604
  this.transformSnappingThreshold = config?.transformSnappingThreshold ?? GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD;
38908
- this.initialize();
38909
- }
38910
- initialize() {
38911
38605
  this.enabled = true;
38912
38606
  }
38913
38607
  getName() {
@@ -39284,9 +38978,6 @@ var WeaveNodesDistanceSnappingPlugin = class extends WeavePlugin {
39284
38978
  this.enterSnappingTolerance = config?.enterSnappingTolerance ?? GUIDE_ENTER_SNAPPING_TOLERANCE;
39285
38979
  this.exitSnappingTolerance = config?.exitSnappingTolerance ?? GUIDE_EXIT_SNAPPING_TOLERANCE;
39286
38980
  this.uiConfig = mergeExceptArrays(GUIDE_DISTANCE_LINE_DEFAULT_CONFIG, config?.ui);
39287
- this.initialize();
39288
- }
39289
- initialize() {
39290
38981
  this.enabled = true;
39291
38982
  }
39292
38983
  getName() {
@@ -39933,14 +39624,12 @@ var WeaveNodesDistanceSnappingPlugin = class extends WeavePlugin {
39933
39624
  //#endregion
39934
39625
  //#region src/plugins/comments-renderer/comments-renderer.ts
39935
39626
  var WeaveCommentsRendererPlugin = class extends WeavePlugin {
39627
+ comments = [];
39936
39628
  getLayerName = void 0;
39937
39629
  constructor(params) {
39938
39630
  super();
39939
39631
  const { config } = params ?? {};
39940
39632
  this.config = config;
39941
- this.initialize();
39942
- }
39943
- initialize() {
39944
39633
  this.comments = [];
39945
39634
  }
39946
39635
  getName() {
@@ -40031,7 +39720,6 @@ const WEAVE_STAGE_KEYBOARD_MOVE_DEFAULT_CONFIG = { movementDelta: 5 };
40031
39720
  var WeaveStageKeyboardMovePlugin = class extends WeavePlugin {
40032
39721
  getLayerName = void 0;
40033
39722
  initLayer = void 0;
40034
- initialize = void 0;
40035
39723
  constructor(params) {
40036
39724
  super();
40037
39725
  this.config = mergeExceptArrays(WEAVE_STAGE_KEYBOARD_MOVE_DEFAULT_CONFIG, params?.config ?? {});
@@ -40127,4 +39815,4 @@ function getJSONFromYjsBinary(actualState) {
40127
39815
  }
40128
39816
 
40129
39817
  //#endregion
40130
- 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_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_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_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, weavejsToYjsBinary };
39818
+ 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, 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_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_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_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_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, weavejsToYjsBinary };