@uipath/apollo-react 3.47.2 → 3.48.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/canvas/core/CategoryTree.cjs +4 -4
- package/dist/canvas/core/CategoryTree.js +4 -4
- package/dist/canvas/storybook-utils/manifests/node-definitions.cjs +2 -2
- package/dist/canvas/storybook-utils/manifests/node-definitions.js +2 -2
- package/dist/canvas/utils/NodeUtils.cjs +7 -4
- package/dist/canvas/utils/NodeUtils.d.ts +4 -1
- package/dist/canvas/utils/NodeUtils.d.ts.map +1 -1
- package/dist/canvas/utils/NodeUtils.js +7 -4
- package/dist/canvas/utils/createPreviewNode.cjs +21 -18
- package/dist/canvas/utils/createPreviewNode.d.ts.map +1 -1
- package/dist/canvas/utils/createPreviewNode.js +21 -18
- package/package.json +1 -1
|
@@ -38,13 +38,13 @@ class CategoryTree {
|
|
|
38
38
|
}
|
|
39
39
|
static buildMap(tree) {
|
|
40
40
|
const newCategoryMap = new Map();
|
|
41
|
-
const
|
|
42
|
-
for (const tNode of
|
|
41
|
+
const addCategoriesToMap = (categories)=>{
|
|
42
|
+
for (const tNode of categories){
|
|
43
43
|
newCategoryMap.set(tNode.id, tNode);
|
|
44
|
-
|
|
44
|
+
addCategoriesToMap(tNode.nestedCategories);
|
|
45
45
|
}
|
|
46
46
|
};
|
|
47
|
-
|
|
47
|
+
addCategoriesToMap(tree);
|
|
48
48
|
return newCategoryMap;
|
|
49
49
|
}
|
|
50
50
|
static fromPrebuilt(rootCategories, rootNodes) {
|
|
@@ -10,13 +10,13 @@ class CategoryTree {
|
|
|
10
10
|
}
|
|
11
11
|
static buildMap(tree) {
|
|
12
12
|
const newCategoryMap = new Map();
|
|
13
|
-
const
|
|
14
|
-
for (const tNode of
|
|
13
|
+
const addCategoriesToMap = (categories)=>{
|
|
14
|
+
for (const tNode of categories){
|
|
15
15
|
newCategoryMap.set(tNode.id, tNode);
|
|
16
|
-
|
|
16
|
+
addCategoriesToMap(tNode.nestedCategories);
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
|
-
|
|
19
|
+
addCategoriesToMap(tree);
|
|
20
20
|
return newCategoryMap;
|
|
21
21
|
}
|
|
22
22
|
static fromPrebuilt(rootCategories, rootNodes) {
|
|
@@ -637,7 +637,7 @@ const allNodeManifests = [
|
|
|
637
637
|
},
|
|
638
638
|
handleConfiguration: [
|
|
639
639
|
{
|
|
640
|
-
position: '
|
|
640
|
+
position: 'bottom',
|
|
641
641
|
handles: [
|
|
642
642
|
{
|
|
643
643
|
id: 'input',
|
|
@@ -674,7 +674,7 @@ const allNodeManifests = [
|
|
|
674
674
|
},
|
|
675
675
|
handleConfiguration: [
|
|
676
676
|
{
|
|
677
|
-
position: '
|
|
677
|
+
position: 'bottom',
|
|
678
678
|
handles: [
|
|
679
679
|
{
|
|
680
680
|
id: 'input',
|
|
@@ -609,7 +609,7 @@ const allNodeManifests = [
|
|
|
609
609
|
},
|
|
610
610
|
handleConfiguration: [
|
|
611
611
|
{
|
|
612
|
-
position: '
|
|
612
|
+
position: 'bottom',
|
|
613
613
|
handles: [
|
|
614
614
|
{
|
|
615
615
|
id: 'input',
|
|
@@ -646,7 +646,7 @@ const allNodeManifests = [
|
|
|
646
646
|
},
|
|
647
647
|
handleConfiguration: [
|
|
648
648
|
{
|
|
649
|
-
position: '
|
|
649
|
+
position: 'bottom',
|
|
650
650
|
handles: [
|
|
651
651
|
{
|
|
652
652
|
id: 'input',
|
|
@@ -48,12 +48,15 @@ const getAbsolutePosition = (node, nodes)=>{
|
|
|
48
48
|
y
|
|
49
49
|
};
|
|
50
50
|
};
|
|
51
|
-
function getNonOverlappingPositionForDirection(nodes, newNodePosition, newNodeStyle, direction, offset = 2 * external_constants_cjs_namespaceObject.GRID_SPACING, ignoredNodeTypes = []
|
|
51
|
+
function getNonOverlappingPositionForDirection(nodes, newNodePosition, newNodeStyle, direction, offset = 2 * external_constants_cjs_namespaceObject.GRID_SPACING, ignoredNodeTypes = [], overflowDirection = {
|
|
52
|
+
x: 'right',
|
|
53
|
+
y: 'down'
|
|
54
|
+
}) {
|
|
52
55
|
const isOverlapping = nodes.some((node)=>node.id !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID && !ignoredNodeTypes.includes(node.type ?? '') && node.position.x < newNodePosition.x + newNodeStyle.width && node.position.x + (node.measured?.width ?? 0) > newNodePosition.x && node.position.y < newNodePosition.y + newNodeStyle.height && node.position.y + (node.measured?.height ?? 0) > newNodePosition.y);
|
|
53
56
|
if (isOverlapping) {
|
|
54
|
-
if ('left' === direction || 'right' === direction) newNodePosition.y += offset;
|
|
55
|
-
else newNodePosition.x += offset;
|
|
56
|
-
return getNonOverlappingPositionForDirection(nodes, newNodePosition, newNodeStyle, direction, offset, ignoredNodeTypes);
|
|
57
|
+
if ('left' === direction || 'right' === direction) newNodePosition.y += 'down' === overflowDirection.y ? offset : -offset;
|
|
58
|
+
else newNodePosition.x += 'right' === overflowDirection.x ? offset : -offset;
|
|
59
|
+
return getNonOverlappingPositionForDirection(nodes, newNodePosition, newNodeStyle, direction, offset, ignoredNodeTypes, overflowDirection);
|
|
57
60
|
}
|
|
58
61
|
return newNodePosition;
|
|
59
62
|
}
|
|
@@ -6,7 +6,10 @@ export declare const getAbsolutePosition: (node: Node, nodes: Node[]) => {
|
|
|
6
6
|
export declare function getNonOverlappingPositionForDirection(nodes: Node[], newNodePosition: XYPosition, newNodeStyle: {
|
|
7
7
|
width: number;
|
|
8
8
|
height: number;
|
|
9
|
-
}, direction: 'left' | 'right' | 'top' | 'bottom', offset?: number, ignoredNodeTypes?: string[]
|
|
9
|
+
}, direction: 'left' | 'right' | 'top' | 'bottom', offset?: number, ignoredNodeTypes?: string[], overflowDirection?: {
|
|
10
|
+
x: 'left' | 'right';
|
|
11
|
+
y: 'up' | 'down';
|
|
12
|
+
}): XYPosition;
|
|
10
13
|
export declare const snapToGrid: (value: number) => number;
|
|
11
14
|
export type CollisionAlgorithmOptions = {
|
|
12
15
|
maxIterations?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeUtils.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/NodeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,QAAQ,EACR,KAAK,UAAU,EAChB,MAAM,0CAA0C,CAAC;AAUlD,eAAO,MAAM,mBAAmB,GAAI,MAAM,IAAI,EAAE,OAAO,IAAI,EAAE,KAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAWrF,CAAC;
|
|
1
|
+
{"version":3,"file":"NodeUtils.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/NodeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,QAAQ,EACR,KAAK,UAAU,EAChB,MAAM,0CAA0C,CAAC;AAUlD,eAAO,MAAM,mBAAmB,GAAI,MAAM,IAAI,EAAE,OAAO,IAAI,EAAE,KAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAWrF,CAAC;AAeF,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,IAAI,EAAE,EACb,eAAe,EAAE,UAAU,EAC3B,YAAY,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC/C,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,EAC9C,MAAM,SAAmB,EACzB,gBAAgB,GAAE,MAAM,EAAO,EAC/B,iBAAiB,GAAE;IAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;CAA8B,GACvF,UAAU,CAgCZ;AAED,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,MAE1C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE,yBAAyB,KAAK,IAAI,EAAE,CAAC;AA6BhG,eAAO,MAAM,iBAAiB,EAAE,kBAwE/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAMF,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,QAAQ,GACvB,aAAa,GAAG,SAAS,CAgB3B;AAWD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAAE,GACnB,MAAM,GAAG,IAAI,CAQf"}
|
|
@@ -15,12 +15,15 @@ const getAbsolutePosition = (node, nodes)=>{
|
|
|
15
15
|
y
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
|
-
function getNonOverlappingPositionForDirection(nodes, newNodePosition, newNodeStyle, direction, offset = 2 * GRID_SPACING, ignoredNodeTypes = []
|
|
18
|
+
function getNonOverlappingPositionForDirection(nodes, newNodePosition, newNodeStyle, direction, offset = 2 * GRID_SPACING, ignoredNodeTypes = [], overflowDirection = {
|
|
19
|
+
x: 'right',
|
|
20
|
+
y: 'down'
|
|
21
|
+
}) {
|
|
19
22
|
const isOverlapping = nodes.some((node)=>node.id !== PREVIEW_NODE_ID && !ignoredNodeTypes.includes(node.type ?? '') && node.position.x < newNodePosition.x + newNodeStyle.width && node.position.x + (node.measured?.width ?? 0) > newNodePosition.x && node.position.y < newNodePosition.y + newNodeStyle.height && node.position.y + (node.measured?.height ?? 0) > newNodePosition.y);
|
|
20
23
|
if (isOverlapping) {
|
|
21
|
-
if ('left' === direction || 'right' === direction) newNodePosition.y += offset;
|
|
22
|
-
else newNodePosition.x += offset;
|
|
23
|
-
return getNonOverlappingPositionForDirection(nodes, newNodePosition, newNodeStyle, direction, offset, ignoredNodeTypes);
|
|
24
|
+
if ('left' === direction || 'right' === direction) newNodePosition.y += 'down' === overflowDirection.y ? offset : -offset;
|
|
25
|
+
else newNodePosition.x += 'right' === overflowDirection.x ? offset : -offset;
|
|
26
|
+
return getNonOverlappingPositionForDirection(nodes, newNodePosition, newNodeStyle, direction, offset, ignoredNodeTypes, overflowDirection);
|
|
24
27
|
}
|
|
25
28
|
return newNodePosition;
|
|
26
29
|
}
|
|
@@ -74,6 +74,14 @@ function calculatePositionFromDrop(dropPosition, handlePosition, previewNodeSize
|
|
|
74
74
|
};
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
+
function computeSpreadOffset(handle, size) {
|
|
78
|
+
const index = handle?.index ?? null;
|
|
79
|
+
const count = handle?.count ?? 1;
|
|
80
|
+
if (null === index || count <= 1) return 0;
|
|
81
|
+
if (index < Math.floor(count / 2)) return -size;
|
|
82
|
+
if (index >= Math.ceil(count / 2)) return size;
|
|
83
|
+
return 0;
|
|
84
|
+
}
|
|
77
85
|
function calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, existingNodes, offset = 5 * external_constants_cjs_namespaceObject.GRID_SPACING, ignoredNodeTypes = [], handle) {
|
|
78
86
|
const sourceAbsolutePosition = sourceNode.parentId ? (0, external_NodeUtils_cjs_namespaceObject.getAbsolutePosition)(sourceNode, existingNodes) : sourceNode.position;
|
|
79
87
|
const sourceWidth = sourceNode.measured?.width ?? 0;
|
|
@@ -95,31 +103,22 @@ function calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, exis
|
|
|
95
103
|
direction = 'left';
|
|
96
104
|
break;
|
|
97
105
|
case react_cjs_namespaceObject.Position.Right:
|
|
98
|
-
{
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
else if (handleIndex >= Math.ceil(handleCount / 2)) yOffset = previewNodeSize.height;
|
|
105
|
-
}
|
|
106
|
-
initialPosition = {
|
|
107
|
-
x: sourceAbsolutePosition.x + sourceWidth + offset,
|
|
108
|
-
y: anchorY - previewNodeSize.height / 2 + yOffset
|
|
109
|
-
};
|
|
110
|
-
direction = 'right';
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
106
|
+
initialPosition = {
|
|
107
|
+
x: sourceAbsolutePosition.x + sourceWidth + offset,
|
|
108
|
+
y: anchorY - previewNodeSize.height / 2 + computeSpreadOffset(handle, previewNodeSize.height)
|
|
109
|
+
};
|
|
110
|
+
direction = 'right';
|
|
111
|
+
break;
|
|
113
112
|
case react_cjs_namespaceObject.Position.Top:
|
|
114
113
|
initialPosition = {
|
|
115
|
-
x: anchorX - previewNodeSize.width / 2,
|
|
114
|
+
x: anchorX - previewNodeSize.width / 2 + computeSpreadOffset(handle, previewNodeSize.width / 2),
|
|
116
115
|
y: sourceAbsolutePosition.y - previewNodeSize.height - offset
|
|
117
116
|
};
|
|
118
117
|
direction = 'top';
|
|
119
118
|
break;
|
|
120
119
|
case react_cjs_namespaceObject.Position.Bottom:
|
|
121
120
|
initialPosition = {
|
|
122
|
-
x: anchorX - previewNodeSize.width / 2,
|
|
121
|
+
x: anchorX - previewNodeSize.width / 2 + computeSpreadOffset(handle, previewNodeSize.width / 2),
|
|
123
122
|
y: sourceAbsolutePosition.y + sourceHeight + offset
|
|
124
123
|
};
|
|
125
124
|
direction = 'bottom';
|
|
@@ -131,7 +130,11 @@ function calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, exis
|
|
|
131
130
|
};
|
|
132
131
|
direction = 'right';
|
|
133
132
|
}
|
|
134
|
-
|
|
133
|
+
const overflowDirection = {
|
|
134
|
+
x: anchorX >= sourceAbsolutePosition.x + sourceWidth / 2 ? 'right' : 'left',
|
|
135
|
+
y: anchorY >= sourceAbsolutePosition.y + sourceHeight / 2 ? 'down' : 'up'
|
|
136
|
+
};
|
|
137
|
+
return (0, external_NodeUtils_cjs_namespaceObject.getNonOverlappingPositionForDirection)(nodesWithAbsolutePositions, initialPosition, previewNodeSize, direction, offset, ignoredNodeTypes, overflowDirection);
|
|
135
138
|
}
|
|
136
139
|
function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, position, data, sourceHandleType = 'source', previewNodeSize = {
|
|
137
140
|
width: external_constants_cjs_namespaceObject.DEFAULT_NODE_SIZE,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPreviewNode.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/createPreviewNode.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EACT,KAAK,IAAI,EACT,QAAQ,EACR,KAAK,iBAAiB,EACvB,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"createPreviewNode.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/createPreviewNode.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EACT,KAAK,IAAI,EACT,QAAQ,EACR,KAAK,iBAAiB,EACvB,MAAM,0CAA0C,CAAC;AAiMlD,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,QAAQ,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EACnC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,gBAAgB,GAAE,QAAQ,GAAG,QAAmB,EAChD,eAAe,GAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAG/C,EACD,cAAc,GAAE,QAAyB,EACzC,gBAAgB,GAAE,MAAM,EAAO,GAC9B;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG,IAAI,CA2FnC;AAMD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,EACnC,iBAAiB,EAAE,iBAAiB,GACnC,IAAI,CAcN;AAKD,wBAAgB,0BAA0B,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAGrF"}
|
|
@@ -44,6 +44,14 @@ function calculatePositionFromDrop(dropPosition, handlePosition, previewNodeSize
|
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
+
function computeSpreadOffset(handle, size) {
|
|
48
|
+
const index = handle?.index ?? null;
|
|
49
|
+
const count = handle?.count ?? 1;
|
|
50
|
+
if (null === index || count <= 1) return 0;
|
|
51
|
+
if (index < Math.floor(count / 2)) return -size;
|
|
52
|
+
if (index >= Math.ceil(count / 2)) return size;
|
|
53
|
+
return 0;
|
|
54
|
+
}
|
|
47
55
|
function calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, existingNodes, offset = 5 * GRID_SPACING, ignoredNodeTypes = [], handle) {
|
|
48
56
|
const sourceAbsolutePosition = sourceNode.parentId ? getAbsolutePosition(sourceNode, existingNodes) : sourceNode.position;
|
|
49
57
|
const sourceWidth = sourceNode.measured?.width ?? 0;
|
|
@@ -65,31 +73,22 @@ function calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, exis
|
|
|
65
73
|
direction = 'left';
|
|
66
74
|
break;
|
|
67
75
|
case Position.Right:
|
|
68
|
-
{
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
else if (handleIndex >= Math.ceil(handleCount / 2)) yOffset = previewNodeSize.height;
|
|
75
|
-
}
|
|
76
|
-
initialPosition = {
|
|
77
|
-
x: sourceAbsolutePosition.x + sourceWidth + offset,
|
|
78
|
-
y: anchorY - previewNodeSize.height / 2 + yOffset
|
|
79
|
-
};
|
|
80
|
-
direction = 'right';
|
|
81
|
-
break;
|
|
82
|
-
}
|
|
76
|
+
initialPosition = {
|
|
77
|
+
x: sourceAbsolutePosition.x + sourceWidth + offset,
|
|
78
|
+
y: anchorY - previewNodeSize.height / 2 + computeSpreadOffset(handle, previewNodeSize.height)
|
|
79
|
+
};
|
|
80
|
+
direction = 'right';
|
|
81
|
+
break;
|
|
83
82
|
case Position.Top:
|
|
84
83
|
initialPosition = {
|
|
85
|
-
x: anchorX - previewNodeSize.width / 2,
|
|
84
|
+
x: anchorX - previewNodeSize.width / 2 + computeSpreadOffset(handle, previewNodeSize.width / 2),
|
|
86
85
|
y: sourceAbsolutePosition.y - previewNodeSize.height - offset
|
|
87
86
|
};
|
|
88
87
|
direction = 'top';
|
|
89
88
|
break;
|
|
90
89
|
case Position.Bottom:
|
|
91
90
|
initialPosition = {
|
|
92
|
-
x: anchorX - previewNodeSize.width / 2,
|
|
91
|
+
x: anchorX - previewNodeSize.width / 2 + computeSpreadOffset(handle, previewNodeSize.width / 2),
|
|
93
92
|
y: sourceAbsolutePosition.y + sourceHeight + offset
|
|
94
93
|
};
|
|
95
94
|
direction = 'bottom';
|
|
@@ -101,7 +100,11 @@ function calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, exis
|
|
|
101
100
|
};
|
|
102
101
|
direction = 'right';
|
|
103
102
|
}
|
|
104
|
-
|
|
103
|
+
const overflowDirection = {
|
|
104
|
+
x: anchorX >= sourceAbsolutePosition.x + sourceWidth / 2 ? 'right' : 'left',
|
|
105
|
+
y: anchorY >= sourceAbsolutePosition.y + sourceHeight / 2 ? 'down' : 'up'
|
|
106
|
+
};
|
|
107
|
+
return getNonOverlappingPositionForDirection(nodesWithAbsolutePositions, initialPosition, previewNodeSize, direction, offset, ignoredNodeTypes, overflowDirection);
|
|
105
108
|
}
|
|
106
109
|
function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, position, data, sourceHandleType = 'source', previewNodeSize = {
|
|
107
110
|
width: DEFAULT_NODE_SIZE,
|