@inditextech/weave-sdk 5.0.0-SNAPSHOT.397.1 → 5.0.0-SNAPSHOT.409.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 +241 -29
- package/dist/sdk.node.js +241 -29
- package/dist/sdk.node.stats.html +1 -1
- package/dist/sdk.stats.html +1 -1
- package/dist/types.d.ts +30 -14
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +241 -29
- package/dist/types.js.map +1 -1
- package/dist/types.stats.html +1 -1
- package/package.json +7 -7
package/dist/sdk.node.js
CHANGED
|
@@ -3500,13 +3500,34 @@ function getBoundingBox(nodes, config) {
|
|
|
3500
3500
|
height: maxY - minY
|
|
3501
3501
|
};
|
|
3502
3502
|
}
|
|
3503
|
+
/**
|
|
3504
|
+
* Builds an array of Weave node IDs from `groupId` up to the root,
|
|
3505
|
+
* including only nodes that have a `nodeType` attribute (actual Weave nodes,
|
|
3506
|
+
* not Konva stage/layer). Used as the multi-stop set for `getInstanceRecursive`
|
|
3507
|
+
* and group-context ancestor checks.
|
|
3508
|
+
*/
|
|
3509
|
+
function buildAncestorGroupIds(groupId, stage) {
|
|
3510
|
+
const ids = [];
|
|
3511
|
+
let cur = stage.findOne(`#${groupId}`) ?? null;
|
|
3512
|
+
while (cur) {
|
|
3513
|
+
const id = cur.getAttrs().id;
|
|
3514
|
+
if (id && cur.getAttrs().nodeType) ids.push(id);
|
|
3515
|
+
cur = cur.getParent();
|
|
3516
|
+
}
|
|
3517
|
+
return ids;
|
|
3518
|
+
}
|
|
3503
3519
|
function getTargetedNode(instance) {
|
|
3504
3520
|
const stage = instance.getStage();
|
|
3505
3521
|
let selectedGroup = void 0;
|
|
3506
3522
|
const mousePos = stage.getPointerPosition();
|
|
3507
3523
|
if (mousePos) {
|
|
3508
3524
|
const inter = stage.getIntersection(mousePos);
|
|
3509
|
-
if (inter)
|
|
3525
|
+
if (inter) {
|
|
3526
|
+
const selectionPlugin = instance.getPlugin("nodesSelection");
|
|
3527
|
+
const activeGroupContext = selectionPlugin?.getActiveGroupContext() ?? void 0;
|
|
3528
|
+
const stopIds = activeGroupContext ? buildAncestorGroupIds(activeGroupContext, stage) : void 0;
|
|
3529
|
+
selectedGroup = instance.getInstanceRecursive(inter, [], stopIds);
|
|
3530
|
+
}
|
|
3510
3531
|
}
|
|
3511
3532
|
return selectedGroup;
|
|
3512
3533
|
}
|
|
@@ -3647,7 +3668,7 @@ function getVisibleNodes({ instance, skipNodes, referenceLayer }) {
|
|
|
3647
3668
|
nodes.forEach((node) => {
|
|
3648
3669
|
const actualNodeParent = instance.getNodeContainer(node);
|
|
3649
3670
|
if (actualNodeParent?.getAttrs().id !== referenceLayer?.getAttrs().id) return;
|
|
3650
|
-
if (node.getParent()?.getAttrs().nodeType === "group") return;
|
|
3671
|
+
if (node.getParent()?.getAttrs().nodeType === "group" && node.getParent()?.getAttrs().id !== referenceLayer?.getAttrs().id) return;
|
|
3651
3672
|
if (skipNodes.includes(node.getParent()?.getAttrs().nodeId)) return;
|
|
3652
3673
|
if (skipNodes.includes(node.getAttrs().id ?? "")) return;
|
|
3653
3674
|
if (node.getAttrs().nodeType === "connector") return;
|
|
@@ -4825,6 +4846,7 @@ function handleClickOrTap(ctx, e) {
|
|
|
4825
4846
|
let areNodesSelected = false;
|
|
4826
4847
|
let nodeTargeted = selectedGroup && !(selectedGroup.getAttrs().active ?? false) ? selectedGroup : e.target;
|
|
4827
4848
|
if (e.target === weave.getStage()) {
|
|
4849
|
+
if (ctx.getActiveGroupContext() !== null) ctx.exitGroupContext();
|
|
4828
4850
|
ctx.getGesture().resetDoubleTap();
|
|
4829
4851
|
ctx.getNodesSelectionFeedbackPlugin()?.cleanupSelectedHalos();
|
|
4830
4852
|
return;
|
|
@@ -4834,6 +4856,18 @@ function handleClickOrTap(ctx, e) {
|
|
|
4834
4856
|
ctx.getGesture().resetDoubleTap();
|
|
4835
4857
|
return;
|
|
4836
4858
|
}
|
|
4859
|
+
const activeGroupContext = ctx.getActiveGroupContext();
|
|
4860
|
+
if (activeGroupContext !== null) {
|
|
4861
|
+
const isInsideActiveGroup = isNodeInsideGroup(nodeTargeted, activeGroupContext, stage);
|
|
4862
|
+
if (isInsideActiveGroup) {
|
|
4863
|
+
const parentId = nodeTargeted.getParent()?.getAttrs().id ?? "";
|
|
4864
|
+
if (parentId !== activeGroupContext) ctx.enterGroupContext(parentId);
|
|
4865
|
+
}
|
|
4866
|
+
if (!isInsideActiveGroup) {
|
|
4867
|
+
ctx.exitGroupContext();
|
|
4868
|
+
nodeTargeted = weave.getInstanceRecursive(nodeTargeted);
|
|
4869
|
+
}
|
|
4870
|
+
}
|
|
4837
4871
|
const metaPressed = e.evt.shiftKey || e.evt.ctrlKey || e.evt.metaKey;
|
|
4838
4872
|
const nodeSelectedIndex = tr.nodes().findIndex((node) => {
|
|
4839
4873
|
return node.getAttrs().id === nodeTargeted.getAttrs().id;
|
|
@@ -4857,6 +4891,13 @@ function handleClickOrTap(ctx, e) {
|
|
|
4857
4891
|
if (realNode) nodeTargeted = realNode;
|
|
4858
4892
|
}
|
|
4859
4893
|
if (typeof nodeTargeted.getAttrs().isContainerPrincipal !== "undefined" && !nodeTargeted.getAttrs().isContainerPrincipal) return;
|
|
4894
|
+
let cur = nodeTargeted;
|
|
4895
|
+
let p = cur.getParent();
|
|
4896
|
+
while (p?.getAttrs().nodeType === "group" && activeGroupContext !== p.getAttrs().id && !isAncestorOfActiveGroup(p, activeGroupContext, stage)) {
|
|
4897
|
+
cur = p;
|
|
4898
|
+
p = cur.getParent();
|
|
4899
|
+
}
|
|
4900
|
+
nodeTargeted = cur;
|
|
4860
4901
|
if (ctx.getGesture().isDoubleTap && !metaPressed) {
|
|
4861
4902
|
ctx.getGesture().resetDoubleTap();
|
|
4862
4903
|
nodeTargeted.dblClick();
|
|
@@ -4888,6 +4929,40 @@ function handleClickOrTap(ctx, e) {
|
|
|
4888
4929
|
}
|
|
4889
4930
|
ctx.triggerSelectedNodesEvent();
|
|
4890
4931
|
}
|
|
4932
|
+
/**
|
|
4933
|
+
* Returns true if `node` is anywhere within the group hierarchy rooted at
|
|
4934
|
+
* `groupId`: either a descendant of the active group itself, or a descendant
|
|
4935
|
+
* of any ancestor group in the path from `groupId` to the root.
|
|
4936
|
+
* Used to decide whether a click should keep the current group context active.
|
|
4937
|
+
*/
|
|
4938
|
+
function isNodeInsideGroup(node, groupId, stage) {
|
|
4939
|
+
const groupNode = stage.findOne(`#${groupId}`);
|
|
4940
|
+
if (!groupNode) return false;
|
|
4941
|
+
const containerIds = new Set(buildAncestorGroupIds(groupId, stage));
|
|
4942
|
+
let current = node;
|
|
4943
|
+
while (current) {
|
|
4944
|
+
if (containerIds.has(current.getAttrs().id ?? "")) return true;
|
|
4945
|
+
current = current.getParent();
|
|
4946
|
+
}
|
|
4947
|
+
return false;
|
|
4948
|
+
}
|
|
4949
|
+
/**
|
|
4950
|
+
* Returns true if `node` is a (strict) ancestor of the active group — i.e.
|
|
4951
|
+
* it appears in the parent chain above `activeGroupId`, not at the group
|
|
4952
|
+
* itself and not below it.
|
|
4953
|
+
*/
|
|
4954
|
+
function isAncestorOfActiveGroup(node, activeGroupId, stage) {
|
|
4955
|
+
if (!node || !activeGroupId) return false;
|
|
4956
|
+
const nodeId = node.getAttrs().id ?? "";
|
|
4957
|
+
const activeGroupNode = stage.findOne(`#${activeGroupId}`);
|
|
4958
|
+
if (!activeGroupNode) return false;
|
|
4959
|
+
let cur = activeGroupNode.getParent();
|
|
4960
|
+
while (cur) {
|
|
4961
|
+
if ((cur.getAttrs().id ?? "") === nodeId) return true;
|
|
4962
|
+
cur = cur.getParent();
|
|
4963
|
+
}
|
|
4964
|
+
return false;
|
|
4965
|
+
}
|
|
4891
4966
|
|
|
4892
4967
|
//#endregion
|
|
4893
4968
|
//#region src/plugins/nodes-selection/events/keyboard.ts
|
|
@@ -4901,6 +4976,13 @@ function registerKeyboardHandlers(ctx) {
|
|
|
4901
4976
|
const signal = ctx.getWeaveInstance().getEventsController().signal;
|
|
4902
4977
|
stage.container().addEventListener("keydown", (e) => {
|
|
4903
4978
|
if (e.code === "Space") ctx.setSpaceKeyPressed(true);
|
|
4979
|
+
if (e.code === "Escape") {
|
|
4980
|
+
if (ctx.getActiveGroupContext() !== null) {
|
|
4981
|
+
ctx.exitGroupContext();
|
|
4982
|
+
e.stopPropagation();
|
|
4983
|
+
return;
|
|
4984
|
+
}
|
|
4985
|
+
}
|
|
4904
4986
|
if (e.code === "Backspace" || e.code === "Delete") {
|
|
4905
4987
|
Promise.resolve().then(() => {
|
|
4906
4988
|
ctx.removeSelectedNodes();
|
|
@@ -4964,6 +5046,8 @@ function handlePointerDown(ctx, e) {
|
|
|
4964
5046
|
const nodesSelected = tr.nodes();
|
|
4965
5047
|
for (const node of nodesSelected) node.fire("onSelectionCleared", { bubbles: true });
|
|
4966
5048
|
}
|
|
5049
|
+
const activeGroupContext = ctx.getActiveGroupContext();
|
|
5050
|
+
if (activeGroupContext !== null) ctx.exitGroupContext();
|
|
4967
5051
|
ctx.selectNone();
|
|
4968
5052
|
ctx.triggerSelectedNodesEvent();
|
|
4969
5053
|
ctx.getWeaveInstance().emitEvent("onSelectionState", true);
|
|
@@ -5111,6 +5195,8 @@ var WeaveNodesSelectionPlugin = class extends WeavePlugin {
|
|
|
5111
5195
|
gesture = new GestureDetector();
|
|
5112
5196
|
_handledClickOrTap = false;
|
|
5113
5197
|
dragSelectedNodes = [];
|
|
5198
|
+
_activeGroupContext = null;
|
|
5199
|
+
onRender = void 0;
|
|
5114
5200
|
constructor(params) {
|
|
5115
5201
|
super();
|
|
5116
5202
|
this.config = mergeExceptArrays(WEAVE_NODES_SELECTION_DEFAULT_CONFIG, params?.config ?? {});
|
|
@@ -5135,6 +5221,8 @@ var WeaveNodesSelectionPlugin = class extends WeavePlugin {
|
|
|
5135
5221
|
this.enabled = false;
|
|
5136
5222
|
this.pointers = {};
|
|
5137
5223
|
this.dragSelectedNodes = [];
|
|
5224
|
+
this._handledClickOrTap = false;
|
|
5225
|
+
this._activeGroupContext = null;
|
|
5138
5226
|
}
|
|
5139
5227
|
getName() {
|
|
5140
5228
|
return WEAVE_NODES_SELECTION_KEY;
|
|
@@ -5256,6 +5344,7 @@ var WeaveNodesSelectionPlugin = class extends WeavePlugin {
|
|
|
5256
5344
|
this.active = true;
|
|
5257
5345
|
});
|
|
5258
5346
|
this.instance.addEventListener("onNodeRemoved", (node) => {
|
|
5347
|
+
if (this._activeGroupContext === node.id) this.exitGroupContext();
|
|
5259
5348
|
const selectedNodes = this.getSelectedNodes();
|
|
5260
5349
|
const newSelectedNodes = selectedNodes.filter((actNode) => actNode.getAttrs().id !== node.id);
|
|
5261
5350
|
this.setSelectedNodes(newSelectedNodes);
|
|
@@ -5264,6 +5353,31 @@ var WeaveNodesSelectionPlugin = class extends WeavePlugin {
|
|
|
5264
5353
|
stage.container().style.cursor = "default";
|
|
5265
5354
|
});
|
|
5266
5355
|
}
|
|
5356
|
+
getActiveGroupContext() {
|
|
5357
|
+
return this._activeGroupContext;
|
|
5358
|
+
}
|
|
5359
|
+
enterGroupContext(groupId) {
|
|
5360
|
+
const stage = this.instance.getStage();
|
|
5361
|
+
const groupNode = stage.findOne(`#${groupId}`);
|
|
5362
|
+
if (!groupNode) return;
|
|
5363
|
+
this._activeGroupContext = groupId;
|
|
5364
|
+
groupNode.getChildren().forEach((child) => {
|
|
5365
|
+
child.setAttr("draggable", true);
|
|
5366
|
+
});
|
|
5367
|
+
this.selectNone();
|
|
5368
|
+
this.instance.emitEvent("onGroupContextChange", groupId);
|
|
5369
|
+
}
|
|
5370
|
+
exitGroupContext() {
|
|
5371
|
+
if (this._activeGroupContext === null) return;
|
|
5372
|
+
const stage = this.instance.getStage();
|
|
5373
|
+
const groupNode = stage.findOne(`#${this._activeGroupContext}`);
|
|
5374
|
+
if (groupNode) groupNode.getChildren().forEach((child) => {
|
|
5375
|
+
child.setAttr("draggable", false);
|
|
5376
|
+
});
|
|
5377
|
+
this._activeGroupContext = null;
|
|
5378
|
+
this.selectNone();
|
|
5379
|
+
this.instance.emitEvent("onGroupContextChange", null);
|
|
5380
|
+
}
|
|
5267
5381
|
getLayer() {
|
|
5268
5382
|
const stage = this.instance.getStage();
|
|
5269
5383
|
return stage.findOne(`#${this.getLayerName()}`);
|
|
@@ -6214,10 +6328,27 @@ var WeaveNode = class {
|
|
|
6214
6328
|
this.hideHoverState();
|
|
6215
6329
|
return;
|
|
6216
6330
|
}
|
|
6331
|
+
if (this.isHoverSuppressedByGroupContext(node, selectionPlugin)) {
|
|
6332
|
+
this.hideHoverState();
|
|
6333
|
+
return;
|
|
6334
|
+
}
|
|
6217
6335
|
if (node?.canBeHovered?.()) selectionPlugin.getHoverTransformer().nodes([node]);
|
|
6218
6336
|
else selectionPlugin.getHoverTransformer().nodes([]);
|
|
6219
6337
|
selectionPlugin.getHoverTransformer().moveToTop();
|
|
6220
6338
|
}
|
|
6339
|
+
isHoverSuppressedByGroupContext(node, selectionPlugin) {
|
|
6340
|
+
const activeGroupId = selectionPlugin.getActiveGroupContext();
|
|
6341
|
+
if (activeGroupId === null) return false;
|
|
6342
|
+
const activeGroupNode = this.instance.getStage().findOne(`#${activeGroupId}`);
|
|
6343
|
+
if (!activeGroupNode) return false;
|
|
6344
|
+
const hoveredId = node.getAttrs().id ?? "";
|
|
6345
|
+
let current = activeGroupNode;
|
|
6346
|
+
while (current) {
|
|
6347
|
+
if ((current.getAttrs().id ?? "") === hoveredId) return true;
|
|
6348
|
+
current = current.getParent();
|
|
6349
|
+
}
|
|
6350
|
+
return false;
|
|
6351
|
+
}
|
|
6221
6352
|
hideHoverState() {
|
|
6222
6353
|
const selectionPlugin = this.getSelectionPlugin();
|
|
6223
6354
|
if (!selectionPlugin) return;
|
|
@@ -6475,7 +6606,8 @@ var WeaveNode = class {
|
|
|
6475
6606
|
}
|
|
6476
6607
|
this.instance.emitEvent("onDrag", null);
|
|
6477
6608
|
const realNodeTarget = this.getRealSelectedNode(nodeTarget);
|
|
6478
|
-
|
|
6609
|
+
const isInGroupContext = (this.getSelectionPlugin()?.getActiveGroupContext() ?? null) !== null;
|
|
6610
|
+
if (!isInGroupContext && this.isSelecting() && this.getSelectionPlugin()?.getSelectedNodes().length === 1 && (realNodeTarget.getAttrs().lockToContainer === void 0 || !realNodeTarget.getAttrs().lockToContainer)) this.instance.stateTransactional(() => {
|
|
6479
6611
|
clearContainerTargets(this.instance);
|
|
6480
6612
|
const layerToMove = containerOverCursor(this.instance, [realNodeTarget]);
|
|
6481
6613
|
let containerToMove = this.instance.getMainLayer();
|
|
@@ -6563,7 +6695,19 @@ var WeaveNode = class {
|
|
|
6563
6695
|
const user = this.instance.getStore().getUser();
|
|
6564
6696
|
const activeAction = this.instance.getActiveAction();
|
|
6565
6697
|
const isNodeSelectionEnabled = this.getSelectionPlugin()?.isEnabled();
|
|
6566
|
-
const
|
|
6698
|
+
const activeGroupCtx = this.getSelectionPlugin()?.getActiveGroupContext() ?? void 0;
|
|
6699
|
+
let realNode;
|
|
6700
|
+
if (activeGroupCtx) {
|
|
6701
|
+
const stage$1 = this.instance.getStage();
|
|
6702
|
+
const stopIds = [];
|
|
6703
|
+
let cur = stage$1.findOne(`#${activeGroupCtx}`) ?? null;
|
|
6704
|
+
while (cur) {
|
|
6705
|
+
const id = cur.getAttrs().id;
|
|
6706
|
+
if (id) stopIds.push(id);
|
|
6707
|
+
cur = cur.getParent();
|
|
6708
|
+
}
|
|
6709
|
+
realNode = this.instance.getInstanceRecursive(node, [], stopIds);
|
|
6710
|
+
} else realNode = this.instance.getInstanceRecursive(node);
|
|
6567
6711
|
const canBeTargeted = realNode.getAttrs().canBeTargeted !== false;
|
|
6568
6712
|
const isLocked = realNode.getAttrs().locked ?? false;
|
|
6569
6713
|
const isMutexLocked = realNode.getAttrs().mutexLocked && realNode.getAttrs().mutexUserId !== user.id;
|
|
@@ -9517,7 +9661,7 @@ var WeaveRegisterManager = class {
|
|
|
9517
9661
|
|
|
9518
9662
|
//#endregion
|
|
9519
9663
|
//#region package.json
|
|
9520
|
-
var version = "5.0.0-SNAPSHOT.
|
|
9664
|
+
var version = "5.0.0-SNAPSHOT.409.1";
|
|
9521
9665
|
|
|
9522
9666
|
//#endregion
|
|
9523
9667
|
//#region src/managers/setup.ts
|
|
@@ -9611,13 +9755,18 @@ var WeaveStageManager = class {
|
|
|
9611
9755
|
const stage = this.getStage();
|
|
9612
9756
|
return stage.findOne(`#${WEAVE_UTILITY_LAYER_ID}`);
|
|
9613
9757
|
}
|
|
9614
|
-
getInstanceRecursive(instance, filterInstanceType = []) {
|
|
9758
|
+
getInstanceRecursive(instance, filterInstanceType = [], stopAtGroupId) {
|
|
9615
9759
|
const attributes = instance.getAttrs();
|
|
9760
|
+
if (stopAtGroupId) {
|
|
9761
|
+
const parentId = instance.getParent()?.getAttrs().id ?? "";
|
|
9762
|
+
const matches = Array.isArray(stopAtGroupId) ? stopAtGroupId.includes(parentId) : parentId === stopAtGroupId;
|
|
9763
|
+
if (matches) return instance;
|
|
9764
|
+
}
|
|
9616
9765
|
if (instance.getParent() && instance.getParent()?.getAttrs().nodeType && ![
|
|
9617
9766
|
"stage",
|
|
9618
9767
|
"layer",
|
|
9619
9768
|
...filterInstanceType
|
|
9620
|
-
].includes(instance.getParent()?.getAttrs().nodeType)) return this.getInstanceRecursive(instance.getParent());
|
|
9769
|
+
].includes(instance.getParent()?.getAttrs().nodeType)) return this.getInstanceRecursive(instance.getParent(), filterInstanceType, stopAtGroupId);
|
|
9621
9770
|
if (attributes.id === "mainLayer") return this.instance.getMainLayer();
|
|
9622
9771
|
if (attributes.id === "stage") return this.instance.getMainLayer();
|
|
9623
9772
|
return instance;
|
|
@@ -10827,6 +10976,12 @@ var Weave = class {
|
|
|
10827
10976
|
this.stageManager.initStage();
|
|
10828
10977
|
this.status = WEAVE_INSTANCE_STATUS.CONNECTING_TO_ROOM;
|
|
10829
10978
|
this.emitEvent("onInstanceStatus", this.status);
|
|
10979
|
+
this.emitEvent("onUndoManagerStatusChange", {
|
|
10980
|
+
canUndo: false,
|
|
10981
|
+
canRedo: false,
|
|
10982
|
+
redoStackLength: 0,
|
|
10983
|
+
undoStackLength: 0
|
|
10984
|
+
});
|
|
10830
10985
|
this.addEventListener("onStoreConnectionStatusChange", this.handleStoreConnectionStatusChange.bind(this));
|
|
10831
10986
|
}
|
|
10832
10987
|
async destroy() {
|
|
@@ -10956,8 +11111,8 @@ var Weave = class {
|
|
|
10956
11111
|
getStageConfiguration() {
|
|
10957
11112
|
return this.stageManager.getConfiguration();
|
|
10958
11113
|
}
|
|
10959
|
-
getInstanceRecursive(instance, filterInstanceType = []) {
|
|
10960
|
-
return this.stageManager.getInstanceRecursive(instance, filterInstanceType);
|
|
11114
|
+
getInstanceRecursive(instance, filterInstanceType = [], stopAtGroupId) {
|
|
11115
|
+
return this.stageManager.getInstanceRecursive(instance, filterInstanceType, stopAtGroupId);
|
|
10961
11116
|
}
|
|
10962
11117
|
getContainerNodes() {
|
|
10963
11118
|
return this.stageManager.getContainerNodes();
|
|
@@ -11925,6 +12080,25 @@ var WeaveGroupNode = class extends WeaveNode {
|
|
|
11925
12080
|
y: 1
|
|
11926
12081
|
});
|
|
11927
12082
|
});
|
|
12083
|
+
group.dblClick = () => {
|
|
12084
|
+
const selectionPlugin = this.instance.getPlugin("nodesSelection");
|
|
12085
|
+
if (!selectionPlugin) return;
|
|
12086
|
+
const groupId = group.getAttrs().id ?? "";
|
|
12087
|
+
selectionPlugin.enterGroupContext(groupId);
|
|
12088
|
+
const stage = this.instance.getStage();
|
|
12089
|
+
const mousePos = stage.getPointerPosition();
|
|
12090
|
+
if (!mousePos) return;
|
|
12091
|
+
const selectionLayer = stage.findOne("#" + selectionPlugin.getLayerName());
|
|
12092
|
+
selectionLayer?.listening(false);
|
|
12093
|
+
const intersected = stage.getIntersection(mousePos);
|
|
12094
|
+
selectionLayer?.listening(true);
|
|
12095
|
+
if (!intersected) return;
|
|
12096
|
+
const directChild = this.instance.getInstanceRecursive(intersected, [], groupId);
|
|
12097
|
+
if (directChild.getParent()?.getAttrs().id === groupId) {
|
|
12098
|
+
selectionPlugin.setSelectedNodes([directChild]);
|
|
12099
|
+
selectionPlugin.triggerSelectedNodesEvent();
|
|
12100
|
+
}
|
|
12101
|
+
};
|
|
11928
12102
|
return group;
|
|
11929
12103
|
}
|
|
11930
12104
|
onUpdate(nodeInstance, nextProps) {
|
|
@@ -12129,6 +12303,7 @@ var WeaveShapeLabelEditor = class {
|
|
|
12129
12303
|
this.instance.releaseMutexLock();
|
|
12130
12304
|
this.instance.getStage().mode(WEAVE_STAGE_DEFAULT_MODE);
|
|
12131
12305
|
this.editing = false;
|
|
12306
|
+
const editedGroupId = this.editingGroup?.id() ?? null;
|
|
12132
12307
|
if (this.editingGroup) {
|
|
12133
12308
|
const liveGroup = this.instance.getStage().findOne(`#${this.editingGroup.id()}`);
|
|
12134
12309
|
const labelNode = liveGroup?.findOne(`#${labelId(this.editingGroup.id())}`);
|
|
@@ -12144,7 +12319,13 @@ var WeaveShapeLabelEditor = class {
|
|
|
12144
12319
|
this.editingTextBounds = null;
|
|
12145
12320
|
this.instance.getStage().off(".weaveLabelEdit");
|
|
12146
12321
|
const selectionPlugin = this.instance.getPlugin("nodesSelection");
|
|
12147
|
-
if (selectionPlugin)
|
|
12322
|
+
if (selectionPlugin) {
|
|
12323
|
+
this.instance.enablePlugin("nodesSelection");
|
|
12324
|
+
if (editedGroupId) requestAnimationFrame(() => {
|
|
12325
|
+
const liveGroup = this.instance.getStage().findOne(`#${editedGroupId}`);
|
|
12326
|
+
if (liveGroup) selectionPlugin.setSelectedNodes([liveGroup]);
|
|
12327
|
+
});
|
|
12328
|
+
}
|
|
12148
12329
|
}
|
|
12149
12330
|
updateTextAreaPosition(group, textBounds) {
|
|
12150
12331
|
if (!this.editing || !this.textArea) return;
|
|
@@ -32205,19 +32386,40 @@ var WeaveNodesSnappingGuides = class {
|
|
|
32205
32386
|
const stage = this.instance.getStage();
|
|
32206
32387
|
const scaleX = stage.scaleX();
|
|
32207
32388
|
const scaleY = stage.scaleY();
|
|
32208
|
-
|
|
32209
|
-
if (container
|
|
32210
|
-
|
|
32211
|
-
|
|
32212
|
-
|
|
32213
|
-
|
|
32214
|
-
|
|
32215
|
-
|
|
32389
|
+
const mainLayer = this.instance.getMainLayer();
|
|
32390
|
+
if (container === stage || container === mainLayer) {
|
|
32391
|
+
const pos$1 = stage.position();
|
|
32392
|
+
return {
|
|
32393
|
+
x: -pos$1.x / scaleX,
|
|
32394
|
+
y: -pos$1.y / scaleY,
|
|
32395
|
+
width: stage.width() / scaleX,
|
|
32396
|
+
height: stage.height() / scaleY
|
|
32397
|
+
};
|
|
32398
|
+
}
|
|
32399
|
+
let frameNode = null;
|
|
32400
|
+
let cur = container;
|
|
32401
|
+
while (cur && cur !== mainLayer && cur !== stage) {
|
|
32402
|
+
if (cur.getAttrs().nodeType === "frame") {
|
|
32403
|
+
frameNode = cur;
|
|
32404
|
+
break;
|
|
32405
|
+
}
|
|
32406
|
+
cur = cur.getParent();
|
|
32407
|
+
}
|
|
32408
|
+
if (frameNode) {
|
|
32409
|
+
const rect = frameNode.getClientRect({ relativeTo: stage });
|
|
32410
|
+
return {
|
|
32411
|
+
x: rect.x,
|
|
32412
|
+
y: rect.y,
|
|
32413
|
+
width: rect.width,
|
|
32414
|
+
height: rect.height
|
|
32415
|
+
};
|
|
32416
|
+
}
|
|
32417
|
+
const pos = stage.position();
|
|
32216
32418
|
return {
|
|
32217
|
-
x,
|
|
32218
|
-
y,
|
|
32219
|
-
width,
|
|
32220
|
-
height
|
|
32419
|
+
x: -pos.x / scaleX,
|
|
32420
|
+
y: -pos.y / scaleY,
|
|
32421
|
+
width: stage.width() / scaleX,
|
|
32422
|
+
height: stage.height() / scaleY
|
|
32221
32423
|
};
|
|
32222
32424
|
}
|
|
32223
32425
|
renderSnapGuides(container, snap) {
|
|
@@ -32229,8 +32431,11 @@ var WeaveNodesSnappingGuides = class {
|
|
|
32229
32431
|
if (snap.containerId !== "mainLayer") {
|
|
32230
32432
|
const containerNode = stage.findOne(`#${snap.containerId}`);
|
|
32231
32433
|
if (containerNode) {
|
|
32232
|
-
const
|
|
32233
|
-
|
|
32434
|
+
const canvasPt = containerNode.getAbsoluteTransform().point({
|
|
32435
|
+
x: snap.guide,
|
|
32436
|
+
y: 0
|
|
32437
|
+
});
|
|
32438
|
+
value = stage.getAbsoluteTransform().copy().invert().point(canvasPt).x;
|
|
32234
32439
|
}
|
|
32235
32440
|
}
|
|
32236
32441
|
this.layer.add(new Konva.Line({
|
|
@@ -32253,8 +32458,11 @@ var WeaveNodesSnappingGuides = class {
|
|
|
32253
32458
|
if (snap.containerId !== "mainLayer") {
|
|
32254
32459
|
const containerNode = stage.findOne(`#${snap.containerId}`);
|
|
32255
32460
|
if (containerNode) {
|
|
32256
|
-
const
|
|
32257
|
-
|
|
32461
|
+
const canvasPt = containerNode.getAbsoluteTransform().point({
|
|
32462
|
+
x: 0,
|
|
32463
|
+
y: snap.guide
|
|
32464
|
+
});
|
|
32465
|
+
value = stage.getAbsoluteTransform().copy().invert().point(canvasPt).y;
|
|
32258
32466
|
}
|
|
32259
32467
|
}
|
|
32260
32468
|
this.layer.add(new Konva.Line({
|
|
@@ -32720,6 +32928,10 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
|
32720
32928
|
this.relativeToId = containerNode.id();
|
|
32721
32929
|
}
|
|
32722
32930
|
}
|
|
32931
|
+
if (container !== this.instance.getMainLayer() && !container.getAttrs().nodeId && container.getAttrs().nodeType === "group") {
|
|
32932
|
+
this.relativeTo = container;
|
|
32933
|
+
this.relativeToId = container.id();
|
|
32934
|
+
}
|
|
32723
32935
|
if (!this.relativeTo) return;
|
|
32724
32936
|
this.visibleNodes = getVisibleNodes({
|
|
32725
32937
|
instance: this.instance,
|
|
@@ -32750,8 +32962,8 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
|
32750
32962
|
y: -1 * (relativeTo.getAttrs().containerCompensationY ?? 0)
|
|
32751
32963
|
};
|
|
32752
32964
|
const diff = {
|
|
32753
|
-
x:
|
|
32754
|
-
y:
|
|
32965
|
+
x: node.x() - nodeBox.x,
|
|
32966
|
+
y: node.y() - nodeBox.y
|
|
32755
32967
|
};
|
|
32756
32968
|
this.selectionOffsets.push({
|
|
32757
32969
|
x: nodeBox.x - nodesBox.x + diff.x + containerCompensation.x,
|
|
@@ -32910,4 +33122,4 @@ const setupCanvasBackend = async () => {
|
|
|
32910
33122
|
};
|
|
32911
33123
|
|
|
32912
33124
|
//#endregion
|
|
32913
|
-
export { ALIGN_NODES_ALIGN_TO, ALIGN_NODES_TOOL_ACTION_NAME, ALIGN_NODES_TOOL_STATE, BRUSH_TOOL_ACTION_NAME, BRUSH_TOOL_DEFAULT_CONFIG, BRUSH_TOOL_STATE, CONNECTOR_TOOL_ACTION_NAME, CONNECTOR_TOOL_DEFAULT_CONFIG, CONNECTOR_TOOL_STATE, COPY_PASTE_NODES_PLUGIN_STATE, DEFAULT_GUIDE_TOOL_ACTION_CONFIG, DEFAULT_SNAPPING_MANAGER_CONFIG, ELLIPSE_TOOL_ACTION_NAME, ELLIPSE_TOOL_STATE, ERASER_TOOL_ACTION_NAME, ERASER_TOOL_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_DISTANCE_NAME, GUIDE_DISTANCE_ORIGIN, GUIDE_KIND, GUIDE_NAME, GUIDE_ORIENTATION, GUIDE_STATE, GUIDE_TOOL_ACTION_NAME, GUIDE_TOOL_STATE, LINE_TOOL_ACTION_NAME, LINE_TOOL_DEFAULT_CONFIG, LINE_TOOL_STATE, MEASURE_TOOL_ACTION_NAME, MEASURE_TOOL_STATE, MOVE_ORIENTATION, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, PEN_TOOL_ACTION_NAME, PEN_TOOL_STATE, POLYGON_TOOL_ACTION_NAME, POLYGON_TOOL_STATE, RECTANGLE_TOOL_ACTION_NAME, RECTANGLE_TOOL_STATE, REGULAR_POLYGON_TOOL_ACTION_NAME, REGULAR_POLYGON_TOOL_STATE, SELECTION_TOOL_ACTION_NAME, SELECTION_TOOL_STATE, STAGE_MINIMAP_DEFAULT_CONFIG, STAR_TOOL_ACTION_NAME, STAR_TOOL_STATE, TEXT_LAYOUT, TEXT_TOOL_ACTION_NAME, TEXT_TOOL_STATE, VIDEO_TOOL_ACTION_NAME, VIDEO_TOOL_STATE, WEAVE_ARROW_NODE_TYPE, WEAVE_ARROW_TOOL_ACTION_NAME, WEAVE_ARROW_TOOL_STATE, WEAVE_COMMENTS_RENDERER_KEY, WEAVE_COMMENTS_TOOL_LAYER_ID, WEAVE_COMMENT_CREATE_ACTION, WEAVE_COMMENT_NODE_ACTION, WEAVE_COMMENT_NODE_DEFAULTS, WEAVE_COMMENT_NODE_TYPE, WEAVE_COMMENT_STATUS, WEAVE_COMMENT_TOOL_ACTION_NAME, WEAVE_COMMENT_TOOL_DEFAULT_CONFIG, WEAVE_COMMENT_TOOL_STATE, WEAVE_COMMENT_VIEW_ACTION, WEAVE_CONNECTOR_NODE_ANCHOR_ORIGIN, WEAVE_CONNECTOR_NODE_DECORATOR_TYPE, WEAVE_CONNECTOR_NODE_DEFAULT_CONFIG, WEAVE_CONNECTOR_NODE_LINE_ORIGIN, WEAVE_CONNECTOR_NODE_LINE_TYPE, WEAVE_CONNECTOR_NODE_TYPE, WEAVE_COPY_PASTE_CONFIG_DEFAULT, WEAVE_COPY_PASTE_NODES_KEY, WEAVE_COPY_PASTE_PASTE_CATCHER_ID, WEAVE_COPY_PASTE_PASTE_MODES, WEAVE_DEFAULT_USER_INFO_FUNCTION, WEAVE_ELLIPSE_NODE_TYPE, WEAVE_FRAME_DEFAULT_BACKGROUND_COLOR, WEAVE_FRAME_NODE_DEFAULT_CONFIG, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_CONFIG, WEAVE_GRID_DOT_TYPES, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_GROUP_NODE_TYPE, WEAVE_IMAGES_TOOL_ACTION_NAME, WEAVE_IMAGES_TOOL_DEFAULT_CONFIG, WEAVE_IMAGES_TOOL_STATE, WEAVE_IMAGES_TOOL_UPLOAD_TYPE, WEAVE_IMAGE_CROP_ANCHOR_POSITION, WEAVE_IMAGE_CROP_END_TYPE, WEAVE_IMAGE_DEFAULT_CONFIG, WEAVE_IMAGE_NODE_TYPE, WEAVE_IMAGE_TOOL_ACTION_NAME, WEAVE_IMAGE_TOOL_CONFIG_DEFAULT, WEAVE_IMAGE_TOOL_STATE, WEAVE_IMAGE_TOOL_UPLOAD_TYPE, WEAVE_LAYER_NODE_TYPE, WEAVE_LINE_NODE_DEFAULT_CONFIG, WEAVE_LINE_NODE_TYPE, WEAVE_MEASURE_NODE_DEFAULT_CONFIG, WEAVE_MEASURE_NODE_TYPE, WEAVE_MEASURE_TOOL_DEFAULT_CONFIG, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_DEFAULT_CONFIG, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_KEY, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_LAYER_ID, WEAVE_NODES_SELECTION_DEFAULT_CONFIG, WEAVE_NODES_SELECTION_KEY, WEAVE_NODES_SELECTION_LAYER_ID, WEAVE_NODES_SNAPPING_PLUGIN_KEY, WEAVE_POLYGON_NODE_TYPE, WEAVE_POLYGON_PRESETS, WEAVE_RECTANGLE_NODE_TYPE, WEAVE_REGULAR_POLYGON_NODE_TYPE, WEAVE_SHAPE_LABEL_DEFAULTS, WEAVE_STAGE_DEFAULT_MODE, WEAVE_STAGE_DROP_AREA_KEY, WEAVE_STAGE_GRID_PLUGIN_KEY, WEAVE_STAGE_IMAGE_CROPPING_MODE, WEAVE_STAGE_KEYBOARD_MOVE_DEFAULT_CONFIG, WEAVE_STAGE_KEYBOARD_MOVE_KEY, WEAVE_STAGE_KEYBOARD_MOVE_ORIENTATION, WEAVE_STAGE_MINIMAP_KEY, WEAVE_STAGE_NODE_TYPE, WEAVE_STAGE_PANNING_DEFAULT_CONFIG, WEAVE_STAGE_PANNING_KEY, WEAVE_STAGE_PANNING_THROTTLE_MS, WEAVE_STAGE_SHAPE_LABEL_EDITION_MODE, WEAVE_STAGE_TEXT_EDITION_MODE, WEAVE_STAGE_ZOOM_DEFAULT_CONFIG, WEAVE_STAGE_ZOOM_KEY, WEAVE_STAGE_ZOOM_TYPE, WEAVE_STAR_NODE_TYPE, WEAVE_STROKE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_NODE_TYPE, WEAVE_STROKE_SINGLE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_SINGLE_NODE_TIP_SIDE, WEAVE_STROKE_SINGLE_NODE_TIP_TYPE, WEAVE_STROKE_SINGLE_NODE_TYPE, WEAVE_STROKE_TOOL_ACTION_NAME, WEAVE_STROKE_TOOL_ACTION_NAME_ALIASES, WEAVE_STROKE_TOOL_DEFAULT_CONFIG, WEAVE_STROKE_TOOL_STATE, WEAVE_TEXT_NODE_DEFAULT_CONFIG, WEAVE_TEXT_NODE_TYPE, WEAVE_USERS_POINTERS_CONFIG_DEFAULT_PROPS, WEAVE_USERS_POINTERS_KEY, WEAVE_USERS_PRESENCE_CONFIG_DEFAULT_PROPS, WEAVE_USERS_PRESENCE_PLUGIN_KEY, WEAVE_USERS_SELECTION_KEY, WEAVE_USER_POINTER_KEY, WEAVE_USER_PRESENCE_KEY, WEAVE_USER_SELECTION_KEY, WEAVE_VIDEO_DEFAULT_CONFIG, WEAVE_VIDEO_NODE_TYPE, Weave, WeaveAction, WeaveAlignNodesToolAction, WeaveArrowNode, WeaveArrowToolAction, WeaveBrushToolAction, WeaveCommentNode, WeaveCommentToolAction, WeaveCommentsRendererPlugin, WeaveConnectedUsersPlugin, WeaveConnectorNode, WeaveConnectorToolAction, WeaveContextMenuPlugin, WeaveCopyPasteNodesPlugin, WeaveEllipseNode, WeaveEllipseToolAction, WeaveEraserToolAction, WeaveExportNodesToolAction, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToSelectionToolAction, WeaveFrameNode, WeaveFrameToolAction, WeaveGroupNode, WeaveGuideToolAction, WeaveImageNode, WeaveImageToolAction, WeaveImagesToolAction, WeaveLayerNode, WeaveLineNode, WeaveLineToolAction, WeaveMeasureNode, WeaveMeasureToolAction, WeaveMoveToolAction, WeaveNode, WeaveNodesMultiSelectionFeedbackPlugin, WeaveNodesSelectionPlugin, WeaveNodesSnappingPlugin, WeavePenToolAction, WeavePlugin, WeavePolygonNode, WeavePolygonToolAction, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRegularPolygonNode, WeaveRegularPolygonToolAction, WeaveRenderer, WeaveSelectionToolAction, WeaveStageDropAreaPlugin, WeaveStageGridPlugin, WeaveStageKeyboardMovePlugin, WeaveStageMinimapPlugin, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomPlugin, WeaveStarNode, WeaveStarToolAction, WeaveStateManipulation, WeaveStore, WeaveStrokeNode, WeaveStrokeSingleNode, WeaveStrokeToolAction, WeaveTextNode, WeaveTextToolAction, WeaveUsersPointersPlugin, WeaveUsersPresencePlugin, WeaveUsersSelectionPlugin, WeaveVideoNode, WeaveVideoToolAction, WeaveZoomInToolAction, WeaveZoomOutToolAction, canComposite, clearContainerTargets, computeEllipseLabelMinSize, computePolygonLabelMinSize, computeRectangleLabelMinSize, containerOverCursor, containsNodeDeep, defaultInitialState, downscaleImageFile, downscaleImageFromURL, getBoundingBox, getDownscaleRatio, getExportBoundingBox, getImageSizeFromFile, getSelectedNodesMetadata, getShapeLabelSchemaFields, getStageClickPoint, getTargetAndSkipNodes, getTargetedNode, getTopmostShadowHost, getVisibleNodes, getVisibleNodesInViewport, hasFrames, hasImages, instantiatePreset, intersectArrays, isIOS, isInShadowDOM, isNodeInSelection, isNumber, isServer, labelId, loadImageSource, memoize, mergeExceptArrays, moveNodeToContainer, moveNodeToContainerNT, resetScale, setupCanvasBackend, setupSkiaBackend, spreadLabelProps };
|
|
33125
|
+
export { ALIGN_NODES_ALIGN_TO, ALIGN_NODES_TOOL_ACTION_NAME, ALIGN_NODES_TOOL_STATE, BRUSH_TOOL_ACTION_NAME, BRUSH_TOOL_DEFAULT_CONFIG, BRUSH_TOOL_STATE, CONNECTOR_TOOL_ACTION_NAME, CONNECTOR_TOOL_DEFAULT_CONFIG, CONNECTOR_TOOL_STATE, COPY_PASTE_NODES_PLUGIN_STATE, DEFAULT_GUIDE_TOOL_ACTION_CONFIG, DEFAULT_SNAPPING_MANAGER_CONFIG, ELLIPSE_TOOL_ACTION_NAME, ELLIPSE_TOOL_STATE, ERASER_TOOL_ACTION_NAME, ERASER_TOOL_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_DISTANCE_NAME, GUIDE_DISTANCE_ORIGIN, GUIDE_KIND, GUIDE_NAME, GUIDE_ORIENTATION, GUIDE_STATE, GUIDE_TOOL_ACTION_NAME, GUIDE_TOOL_STATE, LINE_TOOL_ACTION_NAME, LINE_TOOL_DEFAULT_CONFIG, LINE_TOOL_STATE, MEASURE_TOOL_ACTION_NAME, MEASURE_TOOL_STATE, MOVE_ORIENTATION, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, PEN_TOOL_ACTION_NAME, PEN_TOOL_STATE, POLYGON_TOOL_ACTION_NAME, POLYGON_TOOL_STATE, RECTANGLE_TOOL_ACTION_NAME, RECTANGLE_TOOL_STATE, REGULAR_POLYGON_TOOL_ACTION_NAME, REGULAR_POLYGON_TOOL_STATE, SELECTION_TOOL_ACTION_NAME, SELECTION_TOOL_STATE, STAGE_MINIMAP_DEFAULT_CONFIG, STAR_TOOL_ACTION_NAME, STAR_TOOL_STATE, TEXT_LAYOUT, TEXT_TOOL_ACTION_NAME, TEXT_TOOL_STATE, VIDEO_TOOL_ACTION_NAME, VIDEO_TOOL_STATE, WEAVE_ARROW_NODE_TYPE, WEAVE_ARROW_TOOL_ACTION_NAME, WEAVE_ARROW_TOOL_STATE, WEAVE_COMMENTS_RENDERER_KEY, WEAVE_COMMENTS_TOOL_LAYER_ID, WEAVE_COMMENT_CREATE_ACTION, WEAVE_COMMENT_NODE_ACTION, WEAVE_COMMENT_NODE_DEFAULTS, WEAVE_COMMENT_NODE_TYPE, WEAVE_COMMENT_STATUS, WEAVE_COMMENT_TOOL_ACTION_NAME, WEAVE_COMMENT_TOOL_DEFAULT_CONFIG, WEAVE_COMMENT_TOOL_STATE, WEAVE_COMMENT_VIEW_ACTION, WEAVE_CONNECTOR_NODE_ANCHOR_ORIGIN, WEAVE_CONNECTOR_NODE_DECORATOR_TYPE, WEAVE_CONNECTOR_NODE_DEFAULT_CONFIG, WEAVE_CONNECTOR_NODE_LINE_ORIGIN, WEAVE_CONNECTOR_NODE_LINE_TYPE, WEAVE_CONNECTOR_NODE_TYPE, WEAVE_COPY_PASTE_CONFIG_DEFAULT, WEAVE_COPY_PASTE_NODES_KEY, WEAVE_COPY_PASTE_PASTE_CATCHER_ID, WEAVE_COPY_PASTE_PASTE_MODES, WEAVE_DEFAULT_USER_INFO_FUNCTION, WEAVE_ELLIPSE_NODE_TYPE, WEAVE_FRAME_DEFAULT_BACKGROUND_COLOR, WEAVE_FRAME_NODE_DEFAULT_CONFIG, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_CONFIG, WEAVE_GRID_DOT_TYPES, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_GROUP_NODE_TYPE, WEAVE_IMAGES_TOOL_ACTION_NAME, WEAVE_IMAGES_TOOL_DEFAULT_CONFIG, WEAVE_IMAGES_TOOL_STATE, WEAVE_IMAGES_TOOL_UPLOAD_TYPE, WEAVE_IMAGE_CROP_ANCHOR_POSITION, WEAVE_IMAGE_CROP_END_TYPE, WEAVE_IMAGE_DEFAULT_CONFIG, WEAVE_IMAGE_NODE_TYPE, WEAVE_IMAGE_TOOL_ACTION_NAME, WEAVE_IMAGE_TOOL_CONFIG_DEFAULT, WEAVE_IMAGE_TOOL_STATE, WEAVE_IMAGE_TOOL_UPLOAD_TYPE, WEAVE_LAYER_NODE_TYPE, WEAVE_LINE_NODE_DEFAULT_CONFIG, WEAVE_LINE_NODE_TYPE, WEAVE_MEASURE_NODE_DEFAULT_CONFIG, WEAVE_MEASURE_NODE_TYPE, WEAVE_MEASURE_TOOL_DEFAULT_CONFIG, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_DEFAULT_CONFIG, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_KEY, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_LAYER_ID, WEAVE_NODES_SELECTION_DEFAULT_CONFIG, WEAVE_NODES_SELECTION_KEY, WEAVE_NODES_SELECTION_LAYER_ID, WEAVE_NODES_SNAPPING_PLUGIN_KEY, WEAVE_POLYGON_NODE_TYPE, WEAVE_POLYGON_PRESETS, WEAVE_RECTANGLE_NODE_TYPE, WEAVE_REGULAR_POLYGON_NODE_TYPE, WEAVE_SHAPE_LABEL_DEFAULTS, WEAVE_STAGE_DEFAULT_MODE, WEAVE_STAGE_DROP_AREA_KEY, WEAVE_STAGE_GRID_PLUGIN_KEY, WEAVE_STAGE_IMAGE_CROPPING_MODE, WEAVE_STAGE_KEYBOARD_MOVE_DEFAULT_CONFIG, WEAVE_STAGE_KEYBOARD_MOVE_KEY, WEAVE_STAGE_KEYBOARD_MOVE_ORIENTATION, WEAVE_STAGE_MINIMAP_KEY, WEAVE_STAGE_NODE_TYPE, WEAVE_STAGE_PANNING_DEFAULT_CONFIG, WEAVE_STAGE_PANNING_KEY, WEAVE_STAGE_PANNING_THROTTLE_MS, WEAVE_STAGE_SHAPE_LABEL_EDITION_MODE, WEAVE_STAGE_TEXT_EDITION_MODE, WEAVE_STAGE_ZOOM_DEFAULT_CONFIG, WEAVE_STAGE_ZOOM_KEY, WEAVE_STAGE_ZOOM_TYPE, WEAVE_STAR_NODE_TYPE, WEAVE_STROKE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_NODE_TYPE, WEAVE_STROKE_SINGLE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_SINGLE_NODE_TIP_SIDE, WEAVE_STROKE_SINGLE_NODE_TIP_TYPE, WEAVE_STROKE_SINGLE_NODE_TYPE, WEAVE_STROKE_TOOL_ACTION_NAME, WEAVE_STROKE_TOOL_ACTION_NAME_ALIASES, WEAVE_STROKE_TOOL_DEFAULT_CONFIG, WEAVE_STROKE_TOOL_STATE, WEAVE_TEXT_NODE_DEFAULT_CONFIG, WEAVE_TEXT_NODE_TYPE, WEAVE_USERS_POINTERS_CONFIG_DEFAULT_PROPS, WEAVE_USERS_POINTERS_KEY, WEAVE_USERS_PRESENCE_CONFIG_DEFAULT_PROPS, WEAVE_USERS_PRESENCE_PLUGIN_KEY, WEAVE_USERS_SELECTION_KEY, WEAVE_USER_POINTER_KEY, WEAVE_USER_PRESENCE_KEY, WEAVE_USER_SELECTION_KEY, WEAVE_VIDEO_DEFAULT_CONFIG, WEAVE_VIDEO_NODE_TYPE, Weave, WeaveAction, WeaveAlignNodesToolAction, WeaveArrowNode, WeaveArrowToolAction, WeaveBrushToolAction, WeaveCommentNode, WeaveCommentToolAction, WeaveCommentsRendererPlugin, WeaveConnectedUsersPlugin, WeaveConnectorNode, WeaveConnectorToolAction, WeaveContextMenuPlugin, WeaveCopyPasteNodesPlugin, WeaveEllipseNode, WeaveEllipseToolAction, WeaveEraserToolAction, WeaveExportNodesToolAction, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToSelectionToolAction, WeaveFrameNode, WeaveFrameToolAction, WeaveGroupNode, WeaveGuideToolAction, WeaveImageNode, WeaveImageToolAction, WeaveImagesToolAction, WeaveLayerNode, WeaveLineNode, WeaveLineToolAction, WeaveMeasureNode, WeaveMeasureToolAction, WeaveMoveToolAction, WeaveNode, WeaveNodesMultiSelectionFeedbackPlugin, WeaveNodesSelectionPlugin, WeaveNodesSnappingPlugin, WeavePenToolAction, WeavePlugin, WeavePolygonNode, WeavePolygonToolAction, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRegularPolygonNode, WeaveRegularPolygonToolAction, WeaveRenderer, WeaveSelectionToolAction, WeaveStageDropAreaPlugin, WeaveStageGridPlugin, WeaveStageKeyboardMovePlugin, WeaveStageMinimapPlugin, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomPlugin, WeaveStarNode, WeaveStarToolAction, WeaveStateManipulation, WeaveStore, WeaveStrokeNode, WeaveStrokeSingleNode, WeaveStrokeToolAction, WeaveTextNode, WeaveTextToolAction, WeaveUsersPointersPlugin, WeaveUsersPresencePlugin, WeaveUsersSelectionPlugin, WeaveVideoNode, WeaveVideoToolAction, WeaveZoomInToolAction, WeaveZoomOutToolAction, buildAncestorGroupIds, canComposite, clearContainerTargets, computeEllipseLabelMinSize, computePolygonLabelMinSize, computeRectangleLabelMinSize, containerOverCursor, containsNodeDeep, defaultInitialState, downscaleImageFile, downscaleImageFromURL, getBoundingBox, getDownscaleRatio, getExportBoundingBox, getImageSizeFromFile, getSelectedNodesMetadata, getShapeLabelSchemaFields, getStageClickPoint, getTargetAndSkipNodes, getTargetedNode, getTopmostShadowHost, getVisibleNodes, getVisibleNodesInViewport, hasFrames, hasImages, instantiatePreset, intersectArrays, isIOS, isInShadowDOM, isNodeInSelection, isNumber, isServer, labelId, loadImageSource, memoize, mergeExceptArrays, moveNodeToContainer, moveNodeToContainerNT, resetScale, setupCanvasBackend, setupSkiaBackend, spreadLabelProps };
|