@inditextech/weave-sdk 5.0.0-SNAPSHOT.397.1 → 5.0.0-SNAPSHOT.403.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 +235 -29
- package/dist/sdk.node.js +235 -29
- package/dist/sdk.node.stats.html +1 -1
- package/dist/sdk.stats.html +1 -1
- package/dist/types.d.ts +61 -45
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +235 -29
- package/dist/types.js.map +1 -1
- package/dist/types.stats.html +1 -1
- package/package.json +2 -2
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.403.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;
|
|
@@ -10956,8 +11105,8 @@ var Weave = class {
|
|
|
10956
11105
|
getStageConfiguration() {
|
|
10957
11106
|
return this.stageManager.getConfiguration();
|
|
10958
11107
|
}
|
|
10959
|
-
getInstanceRecursive(instance, filterInstanceType = []) {
|
|
10960
|
-
return this.stageManager.getInstanceRecursive(instance, filterInstanceType);
|
|
11108
|
+
getInstanceRecursive(instance, filterInstanceType = [], stopAtGroupId) {
|
|
11109
|
+
return this.stageManager.getInstanceRecursive(instance, filterInstanceType, stopAtGroupId);
|
|
10961
11110
|
}
|
|
10962
11111
|
getContainerNodes() {
|
|
10963
11112
|
return this.stageManager.getContainerNodes();
|
|
@@ -11925,6 +12074,25 @@ var WeaveGroupNode = class extends WeaveNode {
|
|
|
11925
12074
|
y: 1
|
|
11926
12075
|
});
|
|
11927
12076
|
});
|
|
12077
|
+
group.dblClick = () => {
|
|
12078
|
+
const selectionPlugin = this.instance.getPlugin("nodesSelection");
|
|
12079
|
+
if (!selectionPlugin) return;
|
|
12080
|
+
const groupId = group.getAttrs().id ?? "";
|
|
12081
|
+
selectionPlugin.enterGroupContext(groupId);
|
|
12082
|
+
const stage = this.instance.getStage();
|
|
12083
|
+
const mousePos = stage.getPointerPosition();
|
|
12084
|
+
if (!mousePos) return;
|
|
12085
|
+
const selectionLayer = stage.findOne("#" + selectionPlugin.getLayerName());
|
|
12086
|
+
selectionLayer?.listening(false);
|
|
12087
|
+
const intersected = stage.getIntersection(mousePos);
|
|
12088
|
+
selectionLayer?.listening(true);
|
|
12089
|
+
if (!intersected) return;
|
|
12090
|
+
const directChild = this.instance.getInstanceRecursive(intersected, [], groupId);
|
|
12091
|
+
if (directChild.getParent()?.getAttrs().id === groupId) {
|
|
12092
|
+
selectionPlugin.setSelectedNodes([directChild]);
|
|
12093
|
+
selectionPlugin.triggerSelectedNodesEvent();
|
|
12094
|
+
}
|
|
12095
|
+
};
|
|
11928
12096
|
return group;
|
|
11929
12097
|
}
|
|
11930
12098
|
onUpdate(nodeInstance, nextProps) {
|
|
@@ -12129,6 +12297,7 @@ var WeaveShapeLabelEditor = class {
|
|
|
12129
12297
|
this.instance.releaseMutexLock();
|
|
12130
12298
|
this.instance.getStage().mode(WEAVE_STAGE_DEFAULT_MODE);
|
|
12131
12299
|
this.editing = false;
|
|
12300
|
+
const editedGroupId = this.editingGroup?.id() ?? null;
|
|
12132
12301
|
if (this.editingGroup) {
|
|
12133
12302
|
const liveGroup = this.instance.getStage().findOne(`#${this.editingGroup.id()}`);
|
|
12134
12303
|
const labelNode = liveGroup?.findOne(`#${labelId(this.editingGroup.id())}`);
|
|
@@ -12144,7 +12313,13 @@ var WeaveShapeLabelEditor = class {
|
|
|
12144
12313
|
this.editingTextBounds = null;
|
|
12145
12314
|
this.instance.getStage().off(".weaveLabelEdit");
|
|
12146
12315
|
const selectionPlugin = this.instance.getPlugin("nodesSelection");
|
|
12147
|
-
if (selectionPlugin)
|
|
12316
|
+
if (selectionPlugin) {
|
|
12317
|
+
this.instance.enablePlugin("nodesSelection");
|
|
12318
|
+
if (editedGroupId) requestAnimationFrame(() => {
|
|
12319
|
+
const liveGroup = this.instance.getStage().findOne(`#${editedGroupId}`);
|
|
12320
|
+
if (liveGroup) selectionPlugin.setSelectedNodes([liveGroup]);
|
|
12321
|
+
});
|
|
12322
|
+
}
|
|
12148
12323
|
}
|
|
12149
12324
|
updateTextAreaPosition(group, textBounds) {
|
|
12150
12325
|
if (!this.editing || !this.textArea) return;
|
|
@@ -32205,19 +32380,40 @@ var WeaveNodesSnappingGuides = class {
|
|
|
32205
32380
|
const stage = this.instance.getStage();
|
|
32206
32381
|
const scaleX = stage.scaleX();
|
|
32207
32382
|
const scaleY = stage.scaleY();
|
|
32208
|
-
|
|
32209
|
-
if (container
|
|
32210
|
-
|
|
32211
|
-
|
|
32212
|
-
|
|
32213
|
-
|
|
32214
|
-
|
|
32215
|
-
|
|
32383
|
+
const mainLayer = this.instance.getMainLayer();
|
|
32384
|
+
if (container === stage || container === mainLayer) {
|
|
32385
|
+
const pos$1 = stage.position();
|
|
32386
|
+
return {
|
|
32387
|
+
x: -pos$1.x / scaleX,
|
|
32388
|
+
y: -pos$1.y / scaleY,
|
|
32389
|
+
width: stage.width() / scaleX,
|
|
32390
|
+
height: stage.height() / scaleY
|
|
32391
|
+
};
|
|
32392
|
+
}
|
|
32393
|
+
let frameNode = null;
|
|
32394
|
+
let cur = container;
|
|
32395
|
+
while (cur && cur !== mainLayer && cur !== stage) {
|
|
32396
|
+
if (cur.getAttrs().nodeType === "frame") {
|
|
32397
|
+
frameNode = cur;
|
|
32398
|
+
break;
|
|
32399
|
+
}
|
|
32400
|
+
cur = cur.getParent();
|
|
32401
|
+
}
|
|
32402
|
+
if (frameNode) {
|
|
32403
|
+
const rect = frameNode.getClientRect({ relativeTo: stage });
|
|
32404
|
+
return {
|
|
32405
|
+
x: rect.x,
|
|
32406
|
+
y: rect.y,
|
|
32407
|
+
width: rect.width,
|
|
32408
|
+
height: rect.height
|
|
32409
|
+
};
|
|
32410
|
+
}
|
|
32411
|
+
const pos = stage.position();
|
|
32216
32412
|
return {
|
|
32217
|
-
x,
|
|
32218
|
-
y,
|
|
32219
|
-
width,
|
|
32220
|
-
height
|
|
32413
|
+
x: -pos.x / scaleX,
|
|
32414
|
+
y: -pos.y / scaleY,
|
|
32415
|
+
width: stage.width() / scaleX,
|
|
32416
|
+
height: stage.height() / scaleY
|
|
32221
32417
|
};
|
|
32222
32418
|
}
|
|
32223
32419
|
renderSnapGuides(container, snap) {
|
|
@@ -32229,8 +32425,11 @@ var WeaveNodesSnappingGuides = class {
|
|
|
32229
32425
|
if (snap.containerId !== "mainLayer") {
|
|
32230
32426
|
const containerNode = stage.findOne(`#${snap.containerId}`);
|
|
32231
32427
|
if (containerNode) {
|
|
32232
|
-
const
|
|
32233
|
-
|
|
32428
|
+
const canvasPt = containerNode.getAbsoluteTransform().point({
|
|
32429
|
+
x: snap.guide,
|
|
32430
|
+
y: 0
|
|
32431
|
+
});
|
|
32432
|
+
value = stage.getAbsoluteTransform().copy().invert().point(canvasPt).x;
|
|
32234
32433
|
}
|
|
32235
32434
|
}
|
|
32236
32435
|
this.layer.add(new Konva.Line({
|
|
@@ -32253,8 +32452,11 @@ var WeaveNodesSnappingGuides = class {
|
|
|
32253
32452
|
if (snap.containerId !== "mainLayer") {
|
|
32254
32453
|
const containerNode = stage.findOne(`#${snap.containerId}`);
|
|
32255
32454
|
if (containerNode) {
|
|
32256
|
-
const
|
|
32257
|
-
|
|
32455
|
+
const canvasPt = containerNode.getAbsoluteTransform().point({
|
|
32456
|
+
x: 0,
|
|
32457
|
+
y: snap.guide
|
|
32458
|
+
});
|
|
32459
|
+
value = stage.getAbsoluteTransform().copy().invert().point(canvasPt).y;
|
|
32258
32460
|
}
|
|
32259
32461
|
}
|
|
32260
32462
|
this.layer.add(new Konva.Line({
|
|
@@ -32720,6 +32922,10 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
|
32720
32922
|
this.relativeToId = containerNode.id();
|
|
32721
32923
|
}
|
|
32722
32924
|
}
|
|
32925
|
+
if (container !== this.instance.getMainLayer() && !container.getAttrs().nodeId && container.getAttrs().nodeType === "group") {
|
|
32926
|
+
this.relativeTo = container;
|
|
32927
|
+
this.relativeToId = container.id();
|
|
32928
|
+
}
|
|
32723
32929
|
if (!this.relativeTo) return;
|
|
32724
32930
|
this.visibleNodes = getVisibleNodes({
|
|
32725
32931
|
instance: this.instance,
|
|
@@ -32750,8 +32956,8 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
|
32750
32956
|
y: -1 * (relativeTo.getAttrs().containerCompensationY ?? 0)
|
|
32751
32957
|
};
|
|
32752
32958
|
const diff = {
|
|
32753
|
-
x:
|
|
32754
|
-
y:
|
|
32959
|
+
x: node.x() - nodeBox.x,
|
|
32960
|
+
y: node.y() - nodeBox.y
|
|
32755
32961
|
};
|
|
32756
32962
|
this.selectionOffsets.push({
|
|
32757
32963
|
x: nodeBox.x - nodesBox.x + diff.x + containerCompensation.x,
|
|
@@ -32910,4 +33116,4 @@ const setupCanvasBackend = async () => {
|
|
|
32910
33116
|
};
|
|
32911
33117
|
|
|
32912
33118
|
//#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 };
|
|
33119
|
+
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 };
|