@inditextech/weave-sdk 3.3.0 → 3.4.0-SNAPSHOT.38.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
@@ -15084,6 +15084,11 @@ 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
+ }
15087
15092
  loadDocument(roomData) {
15088
15093
  yjs_default.applyUpdate(this.document, roomData);
15089
15094
  }
@@ -17959,6 +17964,15 @@ var WeaveContextMenuPlugin = class extends WeavePlugin {
17959
17964
  initLayer = void 0;
17960
17965
  constructor(params) {
17961
17966
  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() {
17962
17976
  this.timer = null;
17963
17977
  this.tapHold = false;
17964
17978
  this.contextMenuVisible = false;
@@ -17968,12 +17982,6 @@ var WeaveContextMenuPlugin = class extends WeavePlugin {
17968
17982
  time: 0
17969
17983
  };
17970
17984
  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
- };
17977
17985
  this.pointers = {};
17978
17986
  }
17979
17987
  getName() {
@@ -18646,6 +18654,9 @@ var WeaveNodesSelectionPlugin = class extends WeavePlugin {
18646
18654
  constructor(params) {
18647
18655
  super();
18648
18656
  this.config = mergeExceptArrays(WEAVE_NODES_SELECTION_DEFAULT_CONFIG, params?.config ?? {});
18657
+ this.initialize();
18658
+ }
18659
+ initialize() {
18649
18660
  this.defaultEnabledAnchors = this.config.selection?.enabledAnchors ?? [
18650
18661
  "top-left",
18651
18662
  "top-center",
@@ -19435,7 +19446,7 @@ var WeaveNodesSelectionPlugin = class extends WeavePlugin {
19435
19446
  if (existNode) newSelectedNodes.push(existNode);
19436
19447
  }
19437
19448
  this.tr.nodes([...newSelectedNodes]);
19438
- this.tr.forceUpdate();
19449
+ if (newSelectedNodes.length > 0) this.tr.forceUpdate();
19439
19450
  this.triggerSelectedNodesEvent();
19440
19451
  }
19441
19452
  getSelectionPlugin() {
@@ -19688,6 +19699,9 @@ var WeaveCopyPasteNodesPlugin = class extends WeavePlugin {
19688
19699
  super();
19689
19700
  this.getImageBase64 = params.getImageBase64;
19690
19701
  this.config = mergeExceptArrays(WEAVE_COPY_PASTE_CONFIG_DEFAULT, params?.config);
19702
+ this.initialize();
19703
+ }
19704
+ initialize() {
19691
19705
  this.actualInternalPaddingX = 0;
19692
19706
  this.actualInternalPaddingY = 0;
19693
19707
  this.lastInternalPasteSnapshot = "";
@@ -21967,11 +21981,34 @@ var WeaveRegisterManager = class {
21967
21981
  }
21968
21982
  }
21969
21983
  }
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
+ }
21970
22007
  };
21971
22008
 
21972
22009
  //#endregion
21973
22010
  //#region package.json
21974
- var version = "3.3.0";
22011
+ var version = "3.4.0-SNAPSHOT.38.1";
21975
22012
 
21976
22013
  //#endregion
21977
22014
  //#region src/managers/setup.ts
@@ -22088,6 +22125,9 @@ var WeaveStageManager = class {
22088
22125
  initialZIndex: void 0
22089
22126
  };
22090
22127
  const stage = new Konva.Stage({ ...props });
22128
+ const containerParent = stage.container().parentNode;
22129
+ stage.width(containerParent.clientWidth);
22130
+ stage.height(containerParent.clientHeight);
22091
22131
  const realContainer = stage.container();
22092
22132
  if (realContainer !== void 0 && realContainer.style?.position !== "relative") realContainer.style.position = "relative";
22093
22133
  this.setStage(stage);
@@ -22396,6 +22436,91 @@ var WeaveExportManager = class {
22396
22436
  height: imageHeight * pixelRatio
22397
22437
  };
22398
22438
  }
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
+ }
22399
22524
  imageToBase64(img, mimeType) {
22400
22525
  if (img.naturalWidth === 0 && img.naturalHeight === 0) throw new Error("Image has no content");
22401
22526
  const canvas = document.createElement("canvas");
@@ -22675,7 +22800,12 @@ var WeaveAsyncManager = class {
22675
22800
  this.instance.emitEvent("onAsyncElementChange");
22676
22801
  }, new Map());
22677
22802
  }
22803
+ reset() {
22804
+ this.asyncElements.clear();
22805
+ this.asyncElementsLoadedEventEmitted = false;
22806
+ }
22678
22807
  checkForAsyncElements(elements) {
22808
+ this.instance.emitEvent("onAsyncElementsIdle");
22679
22809
  const amountAsyncResourcesExtracted = this.extractAsyncResources(elements);
22680
22810
  if (amountAsyncResourcesExtracted === 0 && !this.asyncElementsLoadedEventEmitted) {
22681
22811
  this.instance.emitEvent("onAsyncElementsLoaded");
@@ -22728,7 +22858,7 @@ var WeaveAsyncManager = class {
22728
22858
  status: WEAVE_ASYNC_STATUS.LOADING
22729
22859
  };
22730
22860
  this.asyncElements.set(nodeId, element);
22731
- this.instance.emitEvent("onAsyncElementsLoading", {
22861
+ if (!this.asyncElementsLoadedEventEmitted) this.instance.emitEvent("onAsyncElementsLoading", {
22732
22862
  loaded: this.getAmountAsyncElementsLoaded(),
22733
22863
  total: this.getAmountAsyncElements()
22734
22864
  });
@@ -22741,11 +22871,11 @@ var WeaveAsyncManager = class {
22741
22871
  status: WEAVE_ASYNC_STATUS.LOADED
22742
22872
  };
22743
22873
  this.asyncElements.set(nodeId, element);
22744
- this.instance.emitEvent("onAsyncElementsLoading", {
22745
- loaded: this.getAmountAsyncElementsLoaded(),
22746
- total: this.getAmountAsyncElements()
22747
- });
22748
22874
  if (!this.asyncElementsLoadedEventEmitted) {
22875
+ this.instance.emitEvent("onAsyncElementsLoading", {
22876
+ loaded: this.getAmountAsyncElementsLoaded(),
22877
+ total: this.getAmountAsyncElements()
22878
+ });
22749
22879
  const allLoaded = this.asyncElementsLoaded();
22750
22880
  if (allLoaded) {
22751
22881
  this.instance.emitEvent("onAsyncElementsLoaded");
@@ -22962,6 +23092,34 @@ var Weave = class {
22962
23092
  store.setup();
22963
23093
  store.connect();
22964
23094
  }
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
+ }
22965
23123
  destroy() {
22966
23124
  this.moduleLogger.info(`Destroying the instance`);
22967
23125
  this.emitter.clearListeners();
@@ -23433,6 +23591,9 @@ var Weave = class {
23433
23591
  async exportNodesServerSide(nodes, boundingNodes, options) {
23434
23592
  return await this.exportManager.exportNodesServerSide(nodes, boundingNodes, options);
23435
23593
  }
23594
+ async exportAreaServerSide(area, options) {
23595
+ return await this.exportManager.exportAreaServerSide(area, options);
23596
+ }
23436
23597
  async exportNodes(nodes, boundingNodes, options) {
23437
23598
  return await this.exportManager.exportNodesAsImage(nodes, boundingNodes, options);
23438
23599
  }
@@ -23720,7 +23881,14 @@ const setupUpscaleStage = (instance, stage) => {
23720
23881
  innerElement.style.transformOrigin = "0 0";
23721
23882
  innerElement.style.transform = `scale(${scaleToCover})`;
23722
23883
  }
23723
- } else stage.setAttrs({ upscaleScale: 1 });
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
+ }
23724
23892
  };
23725
23893
 
23726
23894
  //#endregion
@@ -23731,6 +23899,7 @@ var WeaveStageNode = class extends WeaveNode {
23731
23899
  wheelMousePressed = false;
23732
23900
  isCmdCtrlPressed = false;
23733
23901
  globalEventsInitialized = false;
23902
+ initialize = void 0;
23734
23903
  onRender(props) {
23735
23904
  const stage = new Konva.Stage({
23736
23905
  ...props,
@@ -23853,6 +24022,7 @@ const WEAVE_LAYER_NODE_TYPE = "layer";
23853
24022
  //#region src/nodes/layer/layer.ts
23854
24023
  var WeaveLayerNode = class extends WeaveNode {
23855
24024
  nodeType = WEAVE_LAYER_NODE_TYPE;
24025
+ initialize = void 0;
23856
24026
  onRender(props) {
23857
24027
  const layer = new Konva.Layer({ ...props });
23858
24028
  layer.canMoveToContainer = function() {
@@ -23900,6 +24070,7 @@ const WEAVE_GROUP_NODE_TYPE = "group";
23900
24070
  //#region src/nodes/group/group.ts
23901
24071
  var WeaveGroupNode = class extends WeaveNode {
23902
24072
  nodeType = WEAVE_GROUP_NODE_TYPE;
24073
+ initialize = void 0;
23903
24074
  constructor(params) {
23904
24075
  super();
23905
24076
  const { config } = params ?? {};
@@ -23992,6 +24163,7 @@ const WEAVE_RECTANGLE_NODE_TYPE = "rectangle";
23992
24163
  //#region src/nodes/rectangle/rectangle.ts
23993
24164
  var WeaveRectangleNode = class extends WeaveNode {
23994
24165
  nodeType = WEAVE_RECTANGLE_NODE_TYPE;
24166
+ initialize = void 0;
23995
24167
  constructor(params) {
23996
24168
  super();
23997
24169
  const { config } = params ?? {};
@@ -24035,6 +24207,7 @@ const WEAVE_ELLIPSE_NODE_TYPE = "ellipse";
24035
24207
  //#region src/nodes/ellipse/ellipse.ts
24036
24208
  var WeaveEllipseNode = class extends WeaveNode {
24037
24209
  nodeType = WEAVE_ELLIPSE_NODE_TYPE;
24210
+ initialize = void 0;
24038
24211
  constructor(params) {
24039
24212
  super();
24040
24213
  const { config } = params ?? {};
@@ -24180,13 +24353,16 @@ var WeaveLineNode = class extends WeaveNode {
24180
24353
  constructor(params) {
24181
24354
  super();
24182
24355
  this.config = mergeExceptArrays(WEAVE_LINE_NODE_DEFAULT_CONFIG, params?.config ?? {});
24183
- this.handleNodeChanges = null;
24184
- this.handleZoomChanges = null;
24185
24356
  this.snapper = new GreedySnapper({
24186
24357
  snapAngles: this.config.snapAngles.angles,
24187
24358
  activateThreshold: this.config.snapAngles.activateThreshold,
24188
24359
  releaseThreshold: this.config.snapAngles.releaseThreshold
24189
24360
  });
24361
+ this.initialize();
24362
+ }
24363
+ initialize() {
24364
+ this.handleNodeChanges = null;
24365
+ this.handleZoomChanges = null;
24190
24366
  }
24191
24367
  onRender(props) {
24192
24368
  const line = new Konva.Line({
@@ -24491,17 +24667,19 @@ const TEXT_LAYOUT = {
24491
24667
  //#region src/nodes/text/text.ts
24492
24668
  var WeaveTextNode = class extends WeaveNode {
24493
24669
  nodeType = WEAVE_TEXT_NODE_TYPE;
24494
- editing = false;
24495
- textAreaSuperContainer = null;
24496
- textAreaContainer = null;
24497
- textArea = null;
24498
- eventsInitialized = false;
24499
- isCtrlMetaPressed = false;
24500
24670
  constructor(params) {
24501
24671
  super();
24502
24672
  const { config } = params ?? {};
24503
24673
  this.config = (0, import_lodash.merge)({}, WEAVE_TEXT_NODE_DEFAULT_CONFIG, config);
24674
+ this.initialize();
24675
+ }
24676
+ initialize() {
24504
24677
  this.keyPressHandler = void 0;
24678
+ this.eventsInitialized = false;
24679
+ this.isCtrlMetaPressed = false;
24680
+ this.textAreaSuperContainer = null;
24681
+ this.textAreaContainer = null;
24682
+ this.textArea = null;
24505
24683
  this.editing = false;
24506
24684
  this.textArea = null;
24507
24685
  }
@@ -25823,24 +26001,21 @@ const isAllowedUrl = (value) => {
25823
26001
  //#endregion
25824
26002
  //#region src/nodes/image/image.ts
25825
26003
  var WeaveImageNode = class extends WeaveNode {
25826
- imageBitmapCache = {};
25827
- imageSource = {};
25828
- imageFallback = {};
25829
- imageState = {};
25830
- imageTryoutAttempts = {};
25831
- imageTryoutIds = {};
25832
26004
  nodeType = WEAVE_IMAGE_NODE_TYPE;
25833
26005
  cursorsFallback = { loading: "wait" };
25834
26006
  cursors = {};
25835
26007
  constructor(params) {
25836
26008
  super();
25837
26009
  const { config } = params ?? {};
26010
+ this.config = mergeExceptArrays(WEAVE_IMAGE_DEFAULT_CONFIG, config);
26011
+ this.initialize();
26012
+ }
26013
+ initialize() {
25838
26014
  this.tapStart = {
25839
26015
  x: 0,
25840
26016
  y: 0,
25841
26017
  time: 0
25842
26018
  };
25843
- this.config = mergeExceptArrays(WEAVE_IMAGE_DEFAULT_CONFIG, config);
25844
26019
  this.imageCrop = null;
25845
26020
  this.imageBitmapCache = {};
25846
26021
  this.imageSource = {};
@@ -26446,7 +26621,7 @@ var WeaveImageNode = class extends WeaveNode {
26446
26621
  }
26447
26622
  this.loadAsyncElement(id);
26448
26623
  preloadFunction(id, realImageURL ?? "", {
26449
- onLoad: () => {
26624
+ onLoad: async () => {
26450
26625
  if (useFallback) this.imageTryoutIds[id] = setTimeout(() => {
26451
26626
  const node = this.instance.getStage().findOne(`#${id}`);
26452
26627
  if (node) {
@@ -26678,6 +26853,7 @@ const WEAVE_STAR_NODE_TYPE = "star";
26678
26853
  //#region src/nodes/star/star.ts
26679
26854
  var WeaveStarNode = class extends WeaveNode {
26680
26855
  nodeType = WEAVE_STAR_NODE_TYPE;
26856
+ initialize = void 0;
26681
26857
  constructor(params) {
26682
26858
  super();
26683
26859
  const { config } = params ?? {};
@@ -26763,6 +26939,7 @@ const WEAVE_ARROW_NODE_TYPE = "arrow";
26763
26939
  //#region src/nodes/arrow/arrow.ts
26764
26940
  var WeaveArrowNode = class extends WeaveNode {
26765
26941
  nodeType = WEAVE_ARROW_NODE_TYPE;
26942
+ initialize = void 0;
26766
26943
  constructor(params) {
26767
26944
  super();
26768
26945
  const { config } = params ?? {};
@@ -26819,6 +26996,7 @@ const WEAVE_REGULAR_POLYGON_NODE_TYPE = "regular-polygon";
26819
26996
  //#region src/nodes/regular-polygon/regular-polygon.ts
26820
26997
  var WeaveRegularPolygonNode = class extends WeaveNode {
26821
26998
  nodeType = WEAVE_REGULAR_POLYGON_NODE_TYPE;
26999
+ initialize = void 0;
26822
27000
  constructor(params) {
26823
27001
  super();
26824
27002
  const { config } = params ?? {};
@@ -26932,6 +27110,7 @@ var GroupFrame = class extends Konva.Group {
26932
27110
  //#region src/nodes/frame/frame.ts
26933
27111
  var WeaveFrameNode = class extends WeaveNode {
26934
27112
  nodeType = WEAVE_FRAME_NODE_TYPE;
27113
+ initialize = void 0;
26935
27114
  constructor(params) {
26936
27115
  super();
26937
27116
  const { config } = params ?? {};
@@ -27232,6 +27411,7 @@ const WEAVE_STROKE_NODE_DEFAULT_CONFIG = {
27232
27411
  //#region src/nodes/stroke/stroke.ts
27233
27412
  var WeaveStrokeNode = class extends WeaveNode {
27234
27413
  nodeType = WEAVE_STROKE_NODE_TYPE;
27414
+ initialize = void 0;
27235
27415
  constructor(params) {
27236
27416
  super();
27237
27417
  const { config } = params ?? {};
@@ -27808,8 +27988,6 @@ var WeaveSquareLineTipManager = class extends WeaveBaseLineTipManager {
27808
27988
  //#endregion
27809
27989
  //#region src/nodes/stroke-single/stroke-single.ts
27810
27990
  var WeaveStrokeSingleNode = class extends WeaveNode {
27811
- startHandle = null;
27812
- endHandle = null;
27813
27991
  nodeType = WEAVE_STROKE_SINGLE_NODE_TYPE;
27814
27992
  tipManagers = {
27815
27993
  [WEAVE_STROKE_SINGLE_NODE_TIP_TYPE.ARROW]: new WeaveArrowLineTipManager(),
@@ -27820,15 +27998,20 @@ var WeaveStrokeSingleNode = class extends WeaveNode {
27820
27998
  constructor(params) {
27821
27999
  super();
27822
28000
  this.config = mergeExceptArrays(WEAVE_STROKE_SINGLE_NODE_DEFAULT_CONFIG, params?.config ?? {});
27823
- this.handleNodeChanges = null;
27824
- this.handleZoomChanges = null;
27825
- this.shiftPressed = false;
27826
28001
  this.snapper = new GreedySnapper({
27827
28002
  snapAngles: this.config.snapAngles.angles,
27828
28003
  activateThreshold: this.config.snapAngles.activateThreshold,
27829
28004
  releaseThreshold: this.config.snapAngles.releaseThreshold
27830
28005
  });
28006
+ this.initialize();
28007
+ }
28008
+ initialize() {
27831
28009
  this.eventsInitialized = false;
28010
+ this.startHandle = null;
28011
+ this.endHandle = null;
28012
+ this.handleNodeChanges = null;
28013
+ this.handleZoomChanges = null;
28014
+ this.shiftPressed = false;
27832
28015
  }
27833
28016
  initEvents() {
27834
28017
  if (this.eventsInitialized) return;
@@ -28324,6 +28507,9 @@ var WeaveCommentNode = class extends WeaveNode {
28324
28507
  constructor(params) {
28325
28508
  super();
28326
28509
  this.config = mergeExceptArrays(WEAVE_COMMENT_NODE_DEFAULTS, params.config);
28510
+ this.initialize();
28511
+ }
28512
+ initialize() {
28327
28513
  this.commentDomVisibleId = null;
28328
28514
  this.commentDomVisible = false;
28329
28515
  this.commentDomAction = null;
@@ -28952,10 +29138,6 @@ const WEAVE_VIDEO_DEFAULT_CONFIG = {
28952
29138
  //#endregion
28953
29139
  //#region src/nodes/video/video.ts
28954
29140
  var WeaveVideoNode = class extends WeaveNode {
28955
- videoState = {};
28956
- videoSourceFrameId = {};
28957
- videoSource = {};
28958
- videoPlaceholder = {};
28959
29141
  nodeType = WEAVE_VIDEO_NODE_TYPE;
28960
29142
  constructor(params) {
28961
29143
  super();
@@ -28968,6 +29150,13 @@ var WeaveVideoNode = class extends WeaveNode {
28968
29150
  this.videoIconImage.src = this.config.style.icon.dataURL;
28969
29151
  }
28970
29152
  }
29153
+ initialize() {
29154
+ this.videoState = {};
29155
+ this.videoSource = {};
29156
+ this.videoSourceFrameId = {};
29157
+ this.videoPlaceholder = {};
29158
+ this.videoIconImage = void 0;
29159
+ }
28971
29160
  async loadPlaceholder(params, video) {
28972
29161
  const videoProps = params;
28973
29162
  const { id } = videoProps;
@@ -29462,6 +29651,7 @@ const WEAVE_MEASURE_NODE_DEFAULT_CONFIG = { style: {
29462
29651
  var WeaveMeasureNode = class extends WeaveNode {
29463
29652
  nodeType = WEAVE_MEASURE_NODE_TYPE;
29464
29653
  handlePointCircleRadius = 6;
29654
+ initialize = void 0;
29465
29655
  constructor(params) {
29466
29656
  super();
29467
29657
  this.config = mergeExceptArrays(WEAVE_MEASURE_NODE_DEFAULT_CONFIG, params?.config ?? {});
@@ -30752,6 +30942,7 @@ var WeaveConnectorNode = class extends WeaveNode {
30752
30942
  [WEAVE_CONNECTOR_NODE_DECORATOR_TYPE.DOT]: setupNodeDecoratorDot,
30753
30943
  [WEAVE_CONNECTOR_NODE_DECORATOR_TYPE.ARROW]: setupNodeDecoratorArrow
30754
30944
  };
30945
+ initialize = void 0;
30755
30946
  constructor(params) {
30756
30947
  super();
30757
30948
  this.config = mergeExceptArrays(WEAVE_CONNECTOR_NODE_DEFAULT_CONFIG, params?.config);
@@ -31502,10 +31693,6 @@ const WEAVE_STAGE_ZOOM_DEFAULT_CONFIG = {
31502
31693
  var WeaveStageZoomPlugin = class extends WeavePlugin {
31503
31694
  getLayerName = void 0;
31504
31695
  initLayer = void 0;
31505
- pinching = false;
31506
- zooming = false;
31507
- isTrackpad = false;
31508
- zoomVelocity = 0;
31509
31696
  zoomInertiaType = WEAVE_STAGE_ZOOM_TYPE.MOUSE_WHEEL;
31510
31697
  defaultStep = 3;
31511
31698
  constructor(params) {
@@ -31513,8 +31700,13 @@ var WeaveStageZoomPlugin = class extends WeavePlugin {
31513
31700
  const { config } = params ?? {};
31514
31701
  this.config = mergeExceptArrays(WEAVE_STAGE_ZOOM_DEFAULT_CONFIG, config);
31515
31702
  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() {
31516
31706
  this.pinching = false;
31707
+ this.zooming = false;
31517
31708
  this.isTrackpad = false;
31709
+ this.zoomVelocity = 0;
31518
31710
  this.isCtrlOrMetaPressed = false;
31519
31711
  this.updatedMinimumZoom = false;
31520
31712
  this.actualStep = this.config.zoomSteps.findIndex((step) => step === this.config.defaultZoom);
@@ -31801,6 +31993,15 @@ var WeaveStageZoomPlugin = class extends WeavePlugin {
31801
31993
  if (box.width === 0 || box.height === 0) return;
31802
31994
  this.fitToElements(box, finalOptions);
31803
31995
  }
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
+ }
31804
32005
  enable() {
31805
32006
  this.enabled = true;
31806
32007
  }
@@ -31981,6 +32182,7 @@ const ZOOM_OUT_TOOL_ACTION_NAME = "zoomOutTool";
31981
32182
  //#region src/actions/zoom-out-tool/zoom-out-tool.ts
31982
32183
  var WeaveZoomOutToolAction = class extends WeaveAction {
31983
32184
  onPropsChange = void 0;
32185
+ initialize = void 0;
31984
32186
  getName() {
31985
32187
  return ZOOM_OUT_TOOL_ACTION_NAME;
31986
32188
  }
@@ -32015,6 +32217,10 @@ const ZOOM_IN_TOOL_ACTION_NAME = "zoomInTool";
32015
32217
  //#region src/actions/zoom-in-tool/zoom-in-tool.ts
32016
32218
  var WeaveZoomInToolAction = class extends WeaveAction {
32017
32219
  onPropsChange = void 0;
32220
+ initialize = void 0;
32221
+ constructor() {
32222
+ super();
32223
+ }
32018
32224
  getName() {
32019
32225
  return ZOOM_IN_TOOL_ACTION_NAME;
32020
32226
  }
@@ -32049,6 +32255,10 @@ const FIT_TO_SCREEN_TOOL_ACTION_NAME = "fitToScreenTool";
32049
32255
  //#region src/actions/fit-to-screen-tool/fit-to-screen-tool.ts
32050
32256
  var WeaveFitToScreenToolAction = class extends WeaveAction {
32051
32257
  onPropsChange = void 0;
32258
+ initialize = void 0;
32259
+ constructor() {
32260
+ super();
32261
+ }
32052
32262
  getName() {
32053
32263
  return FIT_TO_SCREEN_TOOL_ACTION_NAME;
32054
32264
  }
@@ -32082,6 +32292,10 @@ const FIT_TO_SELECTION_TOOL_ACTION_NAME = "fitToSelectionTool";
32082
32292
  //#region src/actions/fit-to-selection-tool/fit-to-selection-tool.ts
32083
32293
  var WeaveFitToSelectionToolAction = class extends WeaveAction {
32084
32294
  onPropsChange = void 0;
32295
+ initialize = void 0;
32296
+ constructor() {
32297
+ super();
32298
+ }
32085
32299
  getName() {
32086
32300
  return FIT_TO_SELECTION_TOOL_ACTION_NAME;
32087
32301
  }
@@ -32124,6 +32338,9 @@ var WeaveMoveToolAction = class extends WeaveAction {
32124
32338
  onInit = void 0;
32125
32339
  constructor() {
32126
32340
  super();
32341
+ this.initialize();
32342
+ }
32343
+ initialize() {
32127
32344
  this.initialized = false;
32128
32345
  this.state = MOVE_TOOL_STATE.IDLE;
32129
32346
  }
@@ -32196,6 +32413,9 @@ var WeaveSelectionToolAction = class extends WeaveAction {
32196
32413
  onInit = void 0;
32197
32414
  constructor() {
32198
32415
  super();
32416
+ this.initialize();
32417
+ }
32418
+ initialize() {
32199
32419
  this.initialized = false;
32200
32420
  this.state = SELECTION_TOOL_STATE.IDLE;
32201
32421
  }
@@ -32259,6 +32479,9 @@ var WeaveEraserToolAction = class extends WeaveAction {
32259
32479
  onInit = void 0;
32260
32480
  constructor() {
32261
32481
  super();
32482
+ this.initialize();
32483
+ }
32484
+ initialize() {
32262
32485
  this.initialized = false;
32263
32486
  this.erasing = false;
32264
32487
  this.state = ERASER_TOOL_STATE.IDLE;
@@ -32359,6 +32582,9 @@ var WeaveRectangleToolAction = class extends WeaveAction {
32359
32582
  onInit = void 0;
32360
32583
  constructor() {
32361
32584
  super();
32585
+ this.initialize();
32586
+ }
32587
+ initialize() {
32362
32588
  this.pointers = new Map();
32363
32589
  this.initialized = false;
32364
32590
  this.state = RECTANGLE_TOOL_STATE.IDLE;
@@ -32568,6 +32794,9 @@ var WeaveEllipseToolAction = class extends WeaveAction {
32568
32794
  onInit = void 0;
32569
32795
  constructor() {
32570
32796
  super();
32797
+ this.initialize();
32798
+ }
32799
+ initialize() {
32571
32800
  this.pointers = new Map();
32572
32801
  this.initialized = false;
32573
32802
  this.state = ELLIPSE_TOOL_STATE.IDLE;
@@ -32784,6 +33013,9 @@ var WeavePenToolAction = class extends WeaveAction {
32784
33013
  onInit = void 0;
32785
33014
  constructor() {
32786
33015
  super();
33016
+ this.initialize();
33017
+ }
33018
+ initialize() {
32787
33019
  this.pointers = new Map();
32788
33020
  this.initialized = false;
32789
33021
  this.state = PEN_TOOL_STATE.IDLE;
@@ -33056,6 +33288,9 @@ var WeaveLineToolAction = class extends WeaveAction {
33056
33288
  constructor(params) {
33057
33289
  super();
33058
33290
  this.config = mergeExceptArrays(LINE_TOOL_DEFAULT_CONFIG, params?.config ?? {});
33291
+ this.initialize();
33292
+ }
33293
+ initialize() {
33059
33294
  this.pointers = new Map();
33060
33295
  this.initialized = false;
33061
33296
  this.state = LINE_TOOL_STATE.IDLE;
@@ -33321,6 +33556,9 @@ var WeaveBrushToolAction = class extends WeaveAction {
33321
33556
  constructor(params) {
33322
33557
  super();
33323
33558
  this.config = mergeExceptArrays(BRUSH_TOOL_DEFAULT_CONFIG, params?.config ?? {});
33559
+ this.initialize();
33560
+ }
33561
+ initialize() {
33324
33562
  this.initialized = false;
33325
33563
  this.state = BRUSH_TOOL_STATE.INACTIVE;
33326
33564
  this.strokeId = null;
@@ -33574,6 +33812,9 @@ var WeaveTextToolAction = class extends WeaveAction {
33574
33812
  onInit = void 0;
33575
33813
  constructor() {
33576
33814
  super();
33815
+ this.initialize();
33816
+ }
33817
+ initialize() {
33577
33818
  this.initialized = false;
33578
33819
  this.state = TEXT_TOOL_STATE.IDLE;
33579
33820
  this.textId = null;
@@ -33731,6 +33972,9 @@ var WeaveImageToolAction = class extends WeaveAction {
33731
33972
  constructor(params) {
33732
33973
  super();
33733
33974
  this.config = mergeExceptArrays(WEAVE_IMAGE_TOOL_CONFIG_DEFAULT, params?.config ?? {});
33975
+ this.initialize();
33976
+ }
33977
+ initialize() {
33734
33978
  this.pointers = new Map();
33735
33979
  this.initialized = false;
33736
33980
  this.imageId = null;
@@ -34171,6 +34415,9 @@ var WeaveImagesToolAction = class extends WeaveAction {
34171
34415
  constructor(params) {
34172
34416
  super();
34173
34417
  this.config = mergeExceptArrays(WEAVE_IMAGES_TOOL_DEFAULT_CONFIG, params ?? {});
34418
+ this.initialize();
34419
+ }
34420
+ initialize() {
34174
34421
  this.pointers = new Map();
34175
34422
  this.initialized = false;
34176
34423
  this.tempPointerFeedbackNode = null;
@@ -34599,6 +34846,9 @@ var WeaveStarToolAction = class extends WeaveAction {
34599
34846
  onInit = void 0;
34600
34847
  constructor() {
34601
34848
  super();
34849
+ this.initialize();
34850
+ }
34851
+ initialize() {
34602
34852
  this.pointers = new Map();
34603
34853
  this.initialized = false;
34604
34854
  this.state = STAR_TOOL_STATE.IDLE;
@@ -34800,8 +35050,8 @@ var WeaveStarToolAction = class extends WeaveAction {
34800
35050
 
34801
35051
  //#endregion
34802
35052
  //#region src/actions/arrow-tool/constants.ts
34803
- const ARROW_TOOL_ACTION_NAME = "arrowTool";
34804
- const ARROW_TOOL_STATE = {
35053
+ const WEAVE_ARROW_TOOL_ACTION_NAME = "arrowTool";
35054
+ const WEAVE_ARROW_TOOL_STATE = {
34805
35055
  ["IDLE"]: "idle",
34806
35056
  ["ADDING"]: "adding",
34807
35057
  ["DEFINING_SIZE"]: "definingSize",
@@ -34817,9 +35067,12 @@ var WeaveArrowToolAction = class extends WeaveAction {
34817
35067
  onInit = void 0;
34818
35068
  constructor() {
34819
35069
  super();
35070
+ this.initialize();
35071
+ }
35072
+ initialize() {
34820
35073
  this.pointers = new Map();
34821
35074
  this.initialized = false;
34822
- this.state = ARROW_TOOL_STATE.IDLE;
35075
+ this.state = WEAVE_ARROW_TOOL_STATE.IDLE;
34823
35076
  this.arrowId = null;
34824
35077
  this.tempArrowId = null;
34825
35078
  this.tempMainArrowNode = null;
@@ -34832,7 +35085,7 @@ var WeaveArrowToolAction = class extends WeaveAction {
34832
35085
  this.props = this.initProps();
34833
35086
  }
34834
35087
  getName() {
34835
- return ARROW_TOOL_ACTION_NAME;
35088
+ return WEAVE_ARROW_TOOL_ACTION_NAME;
34836
35089
  }
34837
35090
  initProps() {
34838
35091
  return {
@@ -34849,14 +35102,11 @@ var WeaveArrowToolAction = class extends WeaveAction {
34849
35102
  setupEvents() {
34850
35103
  const stage = this.instance.getStage();
34851
35104
  window.addEventListener("keydown", (e) => {
34852
- if (e.code === "Enter" && this.instance.getActiveAction() === ARROW_TOOL_ACTION_NAME) {
34853
- this.cancelAction();
34854
- return;
34855
- }
34856
- if (e.code === "Escape" && this.instance.getActiveAction() === ARROW_TOOL_ACTION_NAME) {
35105
+ if (e.code === "Enter" && this.instance.getActiveAction() === WEAVE_ARROW_TOOL_ACTION_NAME) {
34857
35106
  this.cancelAction();
34858
35107
  return;
34859
35108
  }
35109
+ if (e.code === "Escape" && this.instance.getActiveAction() === WEAVE_ARROW_TOOL_ACTION_NAME) this.cancelAction();
34860
35110
  });
34861
35111
  stage.on("pointerdown", (e) => {
34862
35112
  this.setTapStart(e);
@@ -34864,25 +35114,25 @@ var WeaveArrowToolAction = class extends WeaveAction {
34864
35114
  x: e.evt.clientX,
34865
35115
  y: e.evt.clientY
34866
35116
  });
34867
- if (this.pointers.size === 2 && this.instance.getActiveAction() === ARROW_TOOL_ACTION_NAME) {
34868
- this.state = ARROW_TOOL_STATE.ADDING;
35117
+ if (this.pointers.size === 2 && this.instance.getActiveAction() === WEAVE_ARROW_TOOL_ACTION_NAME) {
35118
+ this.state = WEAVE_ARROW_TOOL_STATE.ADDING;
34869
35119
  return;
34870
35120
  }
34871
- if (!this.tempMainArrowNode && this.state === ARROW_TOOL_STATE.ADDING) this.handleAdding();
34872
- if (this.tempMainArrowNode && this.state === ARROW_TOOL_STATE.ADDING) this.state = ARROW_TOOL_STATE.DEFINING_SIZE;
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;
34873
35123
  });
34874
35124
  stage.on("pointermove", () => {
34875
- if (this.state === ARROW_TOOL_STATE.IDLE) return;
35125
+ if (this.state === WEAVE_ARROW_TOOL_STATE.IDLE) return;
34876
35126
  this.setCursor();
34877
- if (this.pointers.size === 2 && this.instance.getActiveAction() === ARROW_TOOL_ACTION_NAME) {
34878
- this.state = ARROW_TOOL_STATE.ADDING;
35127
+ if (this.pointers.size === 2 && this.instance.getActiveAction() === WEAVE_ARROW_TOOL_ACTION_NAME) {
35128
+ this.state = WEAVE_ARROW_TOOL_STATE.ADDING;
34879
35129
  return;
34880
35130
  }
34881
- if (this.state === ARROW_TOOL_STATE.DEFINING_SIZE) this.handleMovement();
35131
+ if (this.state === WEAVE_ARROW_TOOL_STATE.DEFINING_SIZE) this.handleMovement();
34882
35132
  });
34883
35133
  stage.on("pointerup", (e) => {
34884
35134
  this.pointers.delete(e.evt.pointerId);
34885
- if (this.state === ARROW_TOOL_STATE.DEFINING_SIZE) this.handleSettingSize();
35135
+ if (this.state === WEAVE_ARROW_TOOL_STATE.DEFINING_SIZE) this.handleSettingSize();
34886
35136
  });
34887
35137
  this.initialized = true;
34888
35138
  }
@@ -34896,7 +35146,7 @@ var WeaveArrowToolAction = class extends WeaveAction {
34896
35146
  this.tempPoint = void 0;
34897
35147
  this.tempNextPoint = void 0;
34898
35148
  this.clickPoint = null;
34899
- this.setState(ARROW_TOOL_STATE.ADDING);
35149
+ this.setState(WEAVE_ARROW_TOOL_STATE.ADDING);
34900
35150
  }
34901
35151
  handleAdding() {
34902
35152
  const stage = this.instance.getStage();
@@ -34947,7 +35197,7 @@ var WeaveArrowToolAction = class extends WeaveAction {
34947
35197
  this.measureContainer?.add(this.tempNextPoint);
34948
35198
  this.tempPoint.moveToTop();
34949
35199
  this.tempNextPoint.moveToTop();
34950
- this.setState(ARROW_TOOL_STATE.DEFINING_SIZE);
35200
+ this.setState(WEAVE_ARROW_TOOL_STATE.DEFINING_SIZE);
34951
35201
  }
34952
35202
  }
34953
35203
  handleSettingSize() {
@@ -34974,11 +35224,11 @@ var WeaveArrowToolAction = class extends WeaveAction {
34974
35224
  y: mousePoint.y,
34975
35225
  points: [0, 0]
34976
35226
  });
34977
- this.setState(ARROW_TOOL_STATE.DEFINING_SIZE);
35227
+ this.setState(WEAVE_ARROW_TOOL_STATE.DEFINING_SIZE);
34978
35228
  }
34979
35229
  }
34980
35230
  handleMovement() {
34981
- if (this.state !== ARROW_TOOL_STATE.DEFINING_SIZE) return;
35231
+ if (this.state !== WEAVE_ARROW_TOOL_STATE.DEFINING_SIZE) return;
34982
35232
  if (this.arrowId && this.tempArrowNode && this.measureContainer && this.tempNextPoint) {
34983
35233
  const { mousePoint } = this.instance.getMousePointerRelativeToContainer(this.measureContainer);
34984
35234
  this.tempArrowNode.setAttrs({
@@ -35045,7 +35295,7 @@ var WeaveArrowToolAction = class extends WeaveAction {
35045
35295
  this.container = void 0;
35046
35296
  this.measureContainer = void 0;
35047
35297
  this.clickPoint = null;
35048
- this.setState(ARROW_TOOL_STATE.IDLE);
35298
+ this.setState(WEAVE_ARROW_TOOL_STATE.IDLE);
35049
35299
  }
35050
35300
  setCursor() {
35051
35301
  const stage = this.instance.getStage();
@@ -35089,13 +35339,15 @@ const WEAVE_STROKE_TOOL_DEFAULT_CONFIG = { snapAngles: {
35089
35339
  var WeaveStrokeToolAction = class extends WeaveAction {
35090
35340
  initialized = false;
35091
35341
  initialCursor = null;
35092
- snappedAngle = null;
35093
35342
  shiftPressed = false;
35094
35343
  onPropsChange = void 0;
35095
35344
  onInit = void 0;
35096
35345
  constructor(params) {
35097
35346
  super();
35098
35347
  this.config = mergeExceptArrays(WEAVE_STROKE_TOOL_DEFAULT_CONFIG, params?.config ?? {});
35348
+ this.initialize();
35349
+ }
35350
+ initialize() {
35099
35351
  this.pointers = new Map();
35100
35352
  this.initialized = false;
35101
35353
  this.state = WEAVE_STROKE_TOOL_STATE.IDLE;
@@ -35104,7 +35356,6 @@ var WeaveStrokeToolAction = class extends WeaveAction {
35104
35356
  this.tempLineId = null;
35105
35357
  this.tempLineNode = null;
35106
35358
  this.container = void 0;
35107
- this.snappedAngle = null;
35108
35359
  this.measureContainer = void 0;
35109
35360
  this.clickPoint = null;
35110
35361
  this.snapper = new GreedySnapper({
@@ -35117,6 +35368,9 @@ var WeaveStrokeToolAction = class extends WeaveAction {
35117
35368
  getName() {
35118
35369
  return WEAVE_STROKE_TOOL_ACTION_NAME;
35119
35370
  }
35371
+ getNames() {
35372
+ return [WEAVE_STROKE_TOOL_ACTION_NAME, ...WEAVE_STROKE_TOOL_ACTION_NAME_ALIASES];
35373
+ }
35120
35374
  hasAliases() {
35121
35375
  return true;
35122
35376
  }
@@ -35135,24 +35389,18 @@ var WeaveStrokeToolAction = class extends WeaveAction {
35135
35389
  setupEvents() {
35136
35390
  const stage = this.instance.getStage();
35137
35391
  window.addEventListener("keydown", (e) => {
35138
- if (e.code === "Enter" && this.instance.getActiveAction() === WEAVE_STROKE_TOOL_ACTION_NAME) {
35392
+ if (e.code === "Enter" && this.getNames().includes(this.instance.getActiveAction() ?? "")) {
35139
35393
  this.cancelAction();
35140
35394
  return;
35141
35395
  }
35142
- if (e.code === "Escape" && this.instance.getActiveAction() === WEAVE_STROKE_TOOL_ACTION_NAME) {
35396
+ if (e.code === "Escape" && this.getNames().includes(this.instance.getActiveAction() ?? "")) {
35143
35397
  this.cancelAction();
35144
35398
  return;
35145
35399
  }
35146
- if (e.key === "Shift" && this.instance.getActiveAction() === WEAVE_STROKE_TOOL_ACTION_NAME) {
35147
- this.snappedAngle = null;
35148
- this.shiftPressed = true;
35149
- }
35400
+ if (e.key === "Shift" && this.getNames().includes(this.instance.getActiveAction() ?? "")) this.shiftPressed = true;
35150
35401
  });
35151
35402
  window.addEventListener("keyup", (e) => {
35152
- if (e.key === "Shift" && this.instance.getActiveAction() === WEAVE_STROKE_TOOL_ACTION_NAME) {
35153
- this.snappedAngle = null;
35154
- this.shiftPressed = false;
35155
- }
35403
+ if (e.key === "Shift" && this.getNames().includes(this.instance.getActiveAction() ?? "")) this.shiftPressed = false;
35156
35404
  });
35157
35405
  stage.on("pointerdown", (e) => {
35158
35406
  this.setTapStart(e);
@@ -35160,7 +35408,7 @@ var WeaveStrokeToolAction = class extends WeaveAction {
35160
35408
  x: e.evt.clientX,
35161
35409
  y: e.evt.clientY
35162
35410
  });
35163
- if (this.pointers.size === 2 && this.instance.getActiveAction() === WEAVE_STROKE_TOOL_ACTION_NAME) {
35411
+ if (this.pointers.size === 2 && this.getNames().includes(this.instance.getActiveAction() ?? "")) {
35164
35412
  this.state = WEAVE_STROKE_TOOL_STATE.ADDING;
35165
35413
  return;
35166
35414
  }
@@ -35170,7 +35418,7 @@ var WeaveStrokeToolAction = class extends WeaveAction {
35170
35418
  stage.on("pointermove", () => {
35171
35419
  if (this.state === WEAVE_STROKE_TOOL_STATE.IDLE) return;
35172
35420
  this.setCursor();
35173
- if (this.pointers.size === 2 && this.instance.getActiveAction() === WEAVE_STROKE_TOOL_ACTION_NAME) {
35421
+ if (this.pointers.size === 2 && this.getNames().includes(this.instance.getActiveAction() ?? "")) {
35174
35422
  this.state = WEAVE_STROKE_TOOL_STATE.ADDING;
35175
35423
  return;
35176
35424
  }
@@ -35188,7 +35436,7 @@ var WeaveStrokeToolAction = class extends WeaveAction {
35188
35436
  addLine() {
35189
35437
  this.setCursor();
35190
35438
  this.setFocusStage();
35191
- this.instance.emitEvent("onAddingStroke", { actionName: this.instance.getActiveAction() ?? WEAVE_STROKE_TOOL_ACTION_NAME });
35439
+ this.instance.emitEvent("onAddingStroke", { actionName: this.instance.getActiveAction() ?? "not-defined" });
35192
35440
  this.shiftPressed = false;
35193
35441
  this.clickPoint = null;
35194
35442
  this.setState(WEAVE_STROKE_TOOL_STATE.ADDING);
@@ -35296,7 +35544,7 @@ var WeaveStrokeToolAction = class extends WeaveAction {
35296
35544
  });
35297
35545
  delete finalLine.props.dragBoundFunc;
35298
35546
  this.instance.addNode(finalLine, this.container?.getAttrs().id);
35299
- this.instance.emitEvent("onAddedStroke", { actionName: this.instance.getActiveAction() ?? WEAVE_STROKE_TOOL_ACTION_NAME });
35547
+ this.instance.emitEvent("onAddedStroke", { actionName: this.instance.getActiveAction() ?? "not-defined" });
35300
35548
  nodeCreated = true;
35301
35549
  }
35302
35550
  }
@@ -35346,6 +35594,9 @@ var WeaveRegularPolygonToolAction = class extends WeaveAction {
35346
35594
  onInit = void 0;
35347
35595
  constructor() {
35348
35596
  super();
35597
+ this.initialize();
35598
+ }
35599
+ initialize() {
35349
35600
  this.pointers = new Map();
35350
35601
  this.initialized = false;
35351
35602
  this.state = REGULAR_POLYGON_TOOL_STATE.IDLE;
@@ -35554,6 +35805,9 @@ var WeaveFrameToolAction = class extends WeaveAction {
35554
35805
  onInit = void 0;
35555
35806
  constructor() {
35556
35807
  super();
35808
+ this.initialize();
35809
+ }
35810
+ initialize() {
35557
35811
  this.initialized = false;
35558
35812
  this.state = FRAME_TOOL_STATE.IDLE;
35559
35813
  this.frameId = null;
@@ -35683,6 +35937,10 @@ var WeaveExportStageToolAction = class extends WeaveAction {
35683
35937
  };
35684
35938
  onPropsChange = void 0;
35685
35939
  onInit = void 0;
35940
+ initialize = void 0;
35941
+ constructor() {
35942
+ super();
35943
+ }
35686
35944
  getName() {
35687
35945
  return EXPORT_STAGE_TOOL_ACTION_NAME;
35688
35946
  }
@@ -35730,6 +35988,10 @@ var WeaveExportNodesToolAction = class extends WeaveAction {
35730
35988
  };
35731
35989
  onPropsChange = void 0;
35732
35990
  onInit = void 0;
35991
+ initialize = void 0;
35992
+ constructor() {
35993
+ super();
35994
+ }
35733
35995
  getName() {
35734
35996
  return EXPORT_NODES_TOOL_ACTION_NAME;
35735
35997
  }
@@ -35782,6 +36044,9 @@ var WeaveAlignNodesToolAction = class extends WeaveAction {
35782
36044
  onInit = void 0;
35783
36045
  constructor() {
35784
36046
  super();
36047
+ this.initialize();
36048
+ }
36049
+ initialize() {
35785
36050
  this.initialized = false;
35786
36051
  this.state = ALIGN_NODES_TOOL_STATE.IDLE;
35787
36052
  }
@@ -36031,6 +36296,9 @@ var WeaveCommentToolAction = class extends WeaveAction {
36031
36296
  super();
36032
36297
  const { config } = params ?? {};
36033
36298
  this.config = mergeExceptArrays(WEAVE_COMMENT_TOOL_DEFAULT_CONFIG, config);
36299
+ this.initialize();
36300
+ }
36301
+ initialize() {
36034
36302
  this.pointers = new Map();
36035
36303
  this.initialized = false;
36036
36304
  this.state = WEAVE_COMMENT_TOOL_STATE.IDLE;
@@ -36259,6 +36527,9 @@ var WeaveVideoToolAction = class extends WeaveAction {
36259
36527
  update = void 0;
36260
36528
  constructor() {
36261
36529
  super();
36530
+ this.initialize();
36531
+ }
36532
+ initialize() {
36262
36533
  this.pointers = new Map();
36263
36534
  this.initialized = false;
36264
36535
  this.state = VIDEO_TOOL_STATE.IDLE;
@@ -36438,6 +36709,9 @@ var WeaveMeasureToolAction = class extends WeaveAction {
36438
36709
  constructor(params) {
36439
36710
  super();
36440
36711
  this.config = mergeExceptArrays(WEAVE_MEASURE_TOOL_DEFAULT_CONFIG, params?.config ?? {});
36712
+ this.initialize();
36713
+ }
36714
+ initialize() {
36441
36715
  this.initialized = false;
36442
36716
  this.state = MEASURE_TOOL_STATE.IDLE;
36443
36717
  this.measureId = null;
@@ -36734,6 +37008,9 @@ var WeaveConnectorToolAction = class extends WeaveAction {
36734
37008
  constructor(params) {
36735
37009
  super();
36736
37010
  this.config = mergeExceptArrays(CONNECTOR_TOOL_DEFAULT_CONFIG, params?.config);
37011
+ this.initialize();
37012
+ }
37013
+ initialize() {
36737
37014
  this.pointers = new Map();
36738
37015
  this.initialized = false;
36739
37016
  this.tempLineNode = null;
@@ -37087,16 +37364,9 @@ var WeaveConnectorToolAction = class extends WeaveAction {
37087
37364
  //#endregion
37088
37365
  //#region src/plugins/stage-grid/stage-grid.ts
37089
37366
  var WeaveStageGridPlugin = class extends WeavePlugin {
37090
- actStageZoomX = 1;
37091
- actStageZoomY = 1;
37092
- actStagePosX = 0;
37093
- actStagePosY = 0;
37094
37367
  constructor(params) {
37095
37368
  super();
37096
37369
  const { config } = params ?? {};
37097
- this.moveToolActive = false;
37098
- this.isMouseMiddleButtonPressed = false;
37099
- this.isSpaceKeyPressed = false;
37100
37370
  this.config = {
37101
37371
  type: WEAVE_GRID_DEFAULT_TYPE,
37102
37372
  gridColor: WEAVE_GRID_DEFAULT_COLOR,
@@ -37105,7 +37375,17 @@ var WeaveStageGridPlugin = class extends WeavePlugin {
37105
37375
  gridDotMaxDotsPerAxis: WEAVE_GRID_DEFAULT_DOT_MAX_DOTS_PER_AXIS,
37106
37376
  ...config
37107
37377
  };
37378
+ this.initialize();
37379
+ }
37380
+ initialize() {
37381
+ this.moveToolActive = false;
37382
+ this.isMouseMiddleButtonPressed = false;
37383
+ this.isSpaceKeyPressed = false;
37108
37384
  this.forceStageChange = false;
37385
+ this.actStagePosX = 0;
37386
+ this.actStagePosY = 0;
37387
+ this.actStageZoomX = 1;
37388
+ this.actStageZoomY = 1;
37109
37389
  }
37110
37390
  getName() {
37111
37391
  return WEAVE_STAGE_GRID_PLUGIN_KEY;
@@ -37367,15 +37647,14 @@ var WeaveStageGridPlugin = class extends WeavePlugin {
37367
37647
  //#endregion
37368
37648
  //#region src/plugins/stage-panning/stage-panning.ts
37369
37649
  var WeaveStagePanningPlugin = class extends WeavePlugin {
37370
- panning = false;
37371
- currentPointer = null;
37372
- stageScrollInterval = void 0;
37373
- panEdgeTargets = {};
37374
37650
  getLayerName = void 0;
37375
37651
  initLayer = void 0;
37376
37652
  constructor(params) {
37377
37653
  super();
37378
37654
  this.config = mergeExceptArrays(WEAVE_STAGE_PANNING_DEFAULT_CONFIG, params?.config ?? {});
37655
+ this.initialize();
37656
+ }
37657
+ initialize() {
37379
37658
  this.pointers = new Map();
37380
37659
  this.panning = false;
37381
37660
  this.isDragging = false;
@@ -37387,6 +37666,9 @@ var WeaveStagePanningPlugin = class extends WeavePlugin {
37387
37666
  this.isCtrlOrMetaPressed = false;
37388
37667
  this.isSpaceKeyPressed = false;
37389
37668
  this.previousPointer = null;
37669
+ this.currentPointer = null;
37670
+ this.stageScrollInterval = void 0;
37671
+ this.panEdgeTargets = {};
37390
37672
  }
37391
37673
  getName() {
37392
37674
  return WEAVE_STAGE_PANNING_KEY;
@@ -37640,6 +37922,9 @@ var WeaveStageMinimapPlugin = class extends WeavePlugin {
37640
37922
  constructor(params) {
37641
37923
  super();
37642
37924
  this.config = mergeExceptArrays(STAGE_MINIMAP_DEFAULT_CONFIG, params.config);
37925
+ this.initialize();
37926
+ }
37927
+ initialize() {
37643
37928
  this.initialized = false;
37644
37929
  }
37645
37930
  getName() {
@@ -37817,6 +38102,7 @@ const WEAVE_STAGE_RESIZE_KEY = "stageResize";
37817
38102
  var WeaveStageResizePlugin = class extends WeavePlugin {
37818
38103
  getLayerName = void 0;
37819
38104
  initLayer = void 0;
38105
+ initialize = void 0;
37820
38106
  getName() {
37821
38107
  return WEAVE_STAGE_RESIZE_KEY;
37822
38108
  }
@@ -37836,6 +38122,10 @@ var WeaveStageResizePlugin = class extends WeavePlugin {
37836
38122
  const pluginInstance = plugins[pluginId];
37837
38123
  pluginInstance.onRender?.();
37838
38124
  }
38125
+ this.instance.emitEvent("onStageResize", {
38126
+ width: stage.width(),
38127
+ height: stage.height()
38128
+ });
37839
38129
  }
37840
38130
  }
37841
38131
  onInit() {
@@ -37862,10 +38152,12 @@ var WeaveStageResizePlugin = class extends WeavePlugin {
37862
38152
  //#endregion
37863
38153
  //#region src/plugins/nodes-multi-selection-feedback/nodes-multi-selection-feedback.ts
37864
38154
  var WeaveNodesMultiSelectionFeedbackPlugin = class extends WeavePlugin {
37865
- selectedHalos = {};
37866
38155
  constructor(params) {
37867
38156
  super();
37868
38157
  this.config = mergeExceptArrays(WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_DEFAULT_CONFIG, params?.config ?? {});
38158
+ this.initialize();
38159
+ }
38160
+ initialize() {
37869
38161
  this.selectedHalos = {};
37870
38162
  }
37871
38163
  getName() {
@@ -38031,12 +38323,14 @@ var WeaveNodesMultiSelectionFeedbackPlugin = class extends WeavePlugin {
38031
38323
  //#endregion
38032
38324
  //#region src/plugins/connected-users/connected-users.ts
38033
38325
  var WeaveConnectedUsersPlugin = class extends WeavePlugin {
38034
- connectedUsers = {};
38035
38326
  getLayerName = void 0;
38036
38327
  constructor(params) {
38037
38328
  super();
38038
38329
  const { config } = params ?? {};
38039
38330
  this.config = config;
38331
+ this.initialize();
38332
+ }
38333
+ initialize() {
38040
38334
  this.connectedUsers = {};
38041
38335
  }
38042
38336
  getName() {
@@ -38083,6 +38377,9 @@ var WeaveUsersSelectionPlugin = class extends WeavePlugin {
38083
38377
  this.config = config;
38084
38378
  this.config.getUser = memoize(this.config.getUser);
38085
38379
  this.config.getUserColor = memoize(this.config.getUserColor);
38380
+ this.initialize();
38381
+ }
38382
+ initialize() {
38086
38383
  this.usersSelection = {};
38087
38384
  }
38088
38385
  getName() {
@@ -38275,6 +38572,9 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
38275
38572
  this.config.getUser = memoize(this.config.getUser);
38276
38573
  this.config.getUserBackgroundColor = memoize(this.config.getUserBackgroundColor);
38277
38574
  this.config.getUserForegroundColor = memoize(this.config.getUserForegroundColor);
38575
+ this.initialize();
38576
+ }
38577
+ initialize() {
38278
38578
  this.usersPointers = {};
38279
38579
  this.usersOperations = {};
38280
38580
  }
@@ -38485,6 +38785,9 @@ var WeaveUsersPresencePlugin = class extends WeavePlugin {
38485
38785
  super();
38486
38786
  const { config } = params;
38487
38787
  this.config = mergeExceptArrays(WEAVE_USERS_PRESENCE_CONFIG_DEFAULT_PROPS, config);
38788
+ this.initialize();
38789
+ }
38790
+ initialize() {
38488
38791
  this.userPresence = {};
38489
38792
  }
38490
38793
  getName() {
@@ -38560,6 +38863,9 @@ var WeaveStageDropAreaPlugin = class extends WeavePlugin {
38560
38863
  initLayer = void 0;
38561
38864
  constructor() {
38562
38865
  super();
38866
+ this.initialize();
38867
+ }
38868
+ initialize() {
38563
38869
  this.enabled = true;
38564
38870
  }
38565
38871
  getName() {
@@ -38599,6 +38905,9 @@ var WeaveNodesEdgeSnappingPlugin = class extends WeavePlugin {
38599
38905
  this.guideLineConfig = config?.guideLine ?? GUIDE_LINE_DEFAULT_CONFIG;
38600
38906
  this.dragSnappingThreshold = config?.dragSnappingThreshold ?? GUIDE_LINE_DRAG_SNAPPING_THRESHOLD;
38601
38907
  this.transformSnappingThreshold = config?.transformSnappingThreshold ?? GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD;
38908
+ this.initialize();
38909
+ }
38910
+ initialize() {
38602
38911
  this.enabled = true;
38603
38912
  }
38604
38913
  getName() {
@@ -38975,6 +39284,9 @@ var WeaveNodesDistanceSnappingPlugin = class extends WeavePlugin {
38975
39284
  this.enterSnappingTolerance = config?.enterSnappingTolerance ?? GUIDE_ENTER_SNAPPING_TOLERANCE;
38976
39285
  this.exitSnappingTolerance = config?.exitSnappingTolerance ?? GUIDE_EXIT_SNAPPING_TOLERANCE;
38977
39286
  this.uiConfig = mergeExceptArrays(GUIDE_DISTANCE_LINE_DEFAULT_CONFIG, config?.ui);
39287
+ this.initialize();
39288
+ }
39289
+ initialize() {
38978
39290
  this.enabled = true;
38979
39291
  }
38980
39292
  getName() {
@@ -39621,12 +39933,14 @@ var WeaveNodesDistanceSnappingPlugin = class extends WeavePlugin {
39621
39933
  //#endregion
39622
39934
  //#region src/plugins/comments-renderer/comments-renderer.ts
39623
39935
  var WeaveCommentsRendererPlugin = class extends WeavePlugin {
39624
- comments = [];
39625
39936
  getLayerName = void 0;
39626
39937
  constructor(params) {
39627
39938
  super();
39628
39939
  const { config } = params ?? {};
39629
39940
  this.config = config;
39941
+ this.initialize();
39942
+ }
39943
+ initialize() {
39630
39944
  this.comments = [];
39631
39945
  }
39632
39946
  getName() {
@@ -39717,6 +40031,7 @@ const WEAVE_STAGE_KEYBOARD_MOVE_DEFAULT_CONFIG = { movementDelta: 5 };
39717
40031
  var WeaveStageKeyboardMovePlugin = class extends WeavePlugin {
39718
40032
  getLayerName = void 0;
39719
40033
  initLayer = void 0;
40034
+ initialize = void 0;
39720
40035
  constructor(params) {
39721
40036
  super();
39722
40037
  this.config = mergeExceptArrays(WEAVE_STAGE_KEYBOARD_MOVE_DEFAULT_CONFIG, params?.config ?? {});
@@ -39812,4 +40127,4 @@ function getJSONFromYjsBinary(actualState) {
39812
40127
  }
39813
40128
 
39814
40129
  //#endregion
39815
- 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 };
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 };