@uipath/apollo-react 4.15.1 → 4.16.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.
Files changed (139) hide show
  1. package/dist/canvas/components/AddNodePanel/AddNodeManager.cjs +6 -1
  2. package/dist/canvas/components/AddNodePanel/AddNodeManager.d.ts.map +1 -1
  3. package/dist/canvas/components/AddNodePanel/AddNodeManager.js +6 -1
  4. package/dist/canvas/components/AddNodePanel/createAddNodePreview.cjs +9 -3
  5. package/dist/canvas/components/AddNodePanel/createAddNodePreview.d.ts.map +1 -1
  6. package/dist/canvas/components/AddNodePanel/createAddNodePreview.js +9 -3
  7. package/dist/canvas/components/AgentCanvas/agent-flow.manifest.d.ts +2 -1
  8. package/dist/canvas/components/AgentCanvas/agent-flow.manifest.d.ts.map +1 -1
  9. package/dist/canvas/components/BaseNode/BaseNode.cjs +5 -4
  10. package/dist/canvas/components/BaseNode/BaseNode.d.ts.map +1 -1
  11. package/dist/canvas/components/BaseNode/BaseNode.js +4 -3
  12. package/dist/canvas/components/ButtonHandle/ButtonHandle.cjs +108 -13
  13. package/dist/canvas/components/ButtonHandle/ButtonHandle.d.ts +10 -5
  14. package/dist/canvas/components/ButtonHandle/ButtonHandle.d.ts.map +1 -1
  15. package/dist/canvas/components/ButtonHandle/ButtonHandle.js +108 -13
  16. package/dist/canvas/components/ButtonHandle/ButtonHandleLayoutUtils.cjs +159 -0
  17. package/dist/canvas/components/ButtonHandle/ButtonHandleLayoutUtils.d.ts +21 -0
  18. package/dist/canvas/components/ButtonHandle/ButtonHandleLayoutUtils.d.ts.map +1 -0
  19. package/dist/canvas/components/ButtonHandle/ButtonHandleLayoutUtils.js +122 -0
  20. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.cjs +10 -2
  21. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.d.ts +2 -0
  22. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.d.ts.map +1 -1
  23. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.js +5 -3
  24. package/dist/canvas/components/ButtonHandle/HandleButton.cjs +13 -2
  25. package/dist/canvas/components/ButtonHandle/HandleButton.d.ts +10 -1
  26. package/dist/canvas/components/ButtonHandle/HandleButton.d.ts.map +1 -1
  27. package/dist/canvas/components/ButtonHandle/HandleButton.js +13 -2
  28. package/dist/canvas/components/ButtonHandle/useButtonHandles.cjs +4 -2
  29. package/dist/canvas/components/ButtonHandle/useButtonHandles.d.ts +2 -1
  30. package/dist/canvas/components/ButtonHandle/useButtonHandles.d.ts.map +1 -1
  31. package/dist/canvas/components/ButtonHandle/useButtonHandles.js +4 -2
  32. package/dist/canvas/components/CanvasTooltip.cjs +2 -0
  33. package/dist/canvas/components/CanvasTooltip.d.ts +2 -2
  34. package/dist/canvas/components/CanvasTooltip.d.ts.map +1 -1
  35. package/dist/canvas/components/CanvasTooltip.js +2 -0
  36. package/dist/canvas/components/Edges/SequenceEdge.cjs +8 -4
  37. package/dist/canvas/components/Edges/SequenceEdge.js +8 -4
  38. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.cjs +24 -22
  39. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.d.ts.map +1 -1
  40. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.js +25 -23
  41. package/dist/canvas/components/LoopNode/LoopCanvasNode.cjs +75 -0
  42. package/dist/canvas/components/LoopNode/LoopCanvasNode.d.ts +6 -0
  43. package/dist/canvas/components/LoopNode/LoopCanvasNode.d.ts.map +1 -0
  44. package/dist/canvas/components/LoopNode/LoopCanvasNode.js +41 -0
  45. package/dist/canvas/components/LoopNode/LoopNode.cjs +447 -0
  46. package/dist/canvas/components/LoopNode/LoopNode.constants.cjs +56 -0
  47. package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts +7 -0
  48. package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts.map +1 -0
  49. package/dist/canvas/components/LoopNode/LoopNode.constants.js +7 -0
  50. package/dist/canvas/components/LoopNode/LoopNode.d.ts +5 -0
  51. package/dist/canvas/components/LoopNode/LoopNode.d.ts.map +1 -0
  52. package/dist/canvas/components/LoopNode/LoopNode.helpers.cjs +145 -0
  53. package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts +29 -0
  54. package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts.map +1 -0
  55. package/dist/canvas/components/LoopNode/LoopNode.helpers.js +99 -0
  56. package/dist/canvas/components/LoopNode/LoopNode.js +413 -0
  57. package/dist/canvas/components/LoopNode/LoopNode.types.cjs +18 -0
  58. package/dist/canvas/components/LoopNode/LoopNode.types.d.ts +22 -0
  59. package/dist/canvas/components/LoopNode/LoopNode.types.d.ts.map +1 -0
  60. package/dist/canvas/components/LoopNode/LoopNode.types.js +0 -0
  61. package/dist/canvas/components/LoopNode/LoopNodePreview.cjs +61 -0
  62. package/dist/canvas/components/LoopNode/LoopNodePreview.d.ts +9 -0
  63. package/dist/canvas/components/LoopNode/LoopNodePreview.d.ts.map +1 -0
  64. package/dist/canvas/components/LoopNode/LoopNodePreview.js +27 -0
  65. package/dist/canvas/components/LoopNode/index.cjs +79 -0
  66. package/dist/canvas/components/LoopNode/index.d.ts +5 -0
  67. package/dist/canvas/components/LoopNode/index.d.ts.map +1 -0
  68. package/dist/canvas/components/LoopNode/index.js +4 -0
  69. package/dist/canvas/components/NodeViewportOverlay.cjs +63 -0
  70. package/dist/canvas/components/NodeViewportOverlay.d.ts +22 -0
  71. package/dist/canvas/components/NodeViewportOverlay.d.ts.map +1 -0
  72. package/dist/canvas/components/NodeViewportOverlay.js +29 -0
  73. package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.cjs +1 -1
  74. package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.js +1 -1
  75. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.cjs +25 -23
  76. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.d.ts.map +1 -1
  77. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.js +27 -25
  78. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.cjs +10 -3
  79. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.d.ts +1 -1
  80. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.d.ts.map +1 -1
  81. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.js +10 -3
  82. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.types.d.ts +1 -0
  83. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.types.d.ts.map +1 -1
  84. package/dist/canvas/components/index.cjs +27 -20
  85. package/dist/canvas/components/index.d.ts +1 -0
  86. package/dist/canvas/components/index.d.ts.map +1 -1
  87. package/dist/canvas/components/index.js +1 -0
  88. package/dist/canvas/constants.cjs +12 -0
  89. package/dist/canvas/constants.d.ts +3 -0
  90. package/dist/canvas/constants.d.ts.map +1 -1
  91. package/dist/canvas/constants.js +4 -1
  92. package/dist/canvas/hooks/useAddNodeOnConnectEnd.cjs +22 -23
  93. package/dist/canvas/hooks/useAddNodeOnConnectEnd.d.ts.map +1 -1
  94. package/dist/canvas/hooks/useAddNodeOnConnectEnd.js +23 -24
  95. package/dist/canvas/hooks/usePreviewNode.cjs +2 -1
  96. package/dist/canvas/hooks/usePreviewNode.d.ts.map +1 -1
  97. package/dist/canvas/hooks/usePreviewNode.js +2 -1
  98. package/dist/canvas/schema/node-definition/handle.cjs +10 -2
  99. package/dist/canvas/schema/node-definition/handle.d.ts +9 -0
  100. package/dist/canvas/schema/node-definition/handle.d.ts.map +1 -1
  101. package/dist/canvas/schema/node-definition/handle.js +6 -1
  102. package/dist/canvas/schema/node-definition/index.cjs +4 -1
  103. package/dist/canvas/schema/node-definition/index.d.ts +3 -3
  104. package/dist/canvas/schema/node-definition/index.d.ts.map +1 -1
  105. package/dist/canvas/schema/node-definition/index.js +2 -2
  106. package/dist/canvas/schema/node-definition/node-manifest.cjs +2 -1
  107. package/dist/canvas/schema/node-definition/node-manifest.d.ts +7 -0
  108. package/dist/canvas/schema/node-definition/node-manifest.d.ts.map +1 -1
  109. package/dist/canvas/schema/node-definition/node-manifest.js +2 -1
  110. package/dist/canvas/schema/node-instance/base.d.ts +1 -0
  111. package/dist/canvas/schema/node-instance/base.d.ts.map +1 -1
  112. package/dist/canvas/schema/node-instance/node.d.ts +1 -0
  113. package/dist/canvas/schema/node-instance/node.d.ts.map +1 -1
  114. package/dist/canvas/storybook-utils/hooks/useCanvasStory.d.ts.map +1 -1
  115. package/dist/canvas/storybook-utils/manifests/index.d.ts +2 -1
  116. package/dist/canvas/storybook-utils/manifests/index.d.ts.map +1 -1
  117. package/dist/canvas/storybook-utils/manifests/node-definitions.d.ts.map +1 -1
  118. package/dist/canvas/styles/reactflow-reset.css +2 -2
  119. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  120. package/dist/canvas/utils/NodeUtils.cjs +4 -0
  121. package/dist/canvas/utils/NodeUtils.d.ts +2 -1
  122. package/dist/canvas/utils/NodeUtils.d.ts.map +1 -1
  123. package/dist/canvas/utils/NodeUtils.js +2 -1
  124. package/dist/canvas/utils/collapse.cjs +13 -6
  125. package/dist/canvas/utils/collapse.d.ts.map +1 -1
  126. package/dist/canvas/utils/collapse.js +9 -2
  127. package/dist/canvas/utils/createPreviewGraph.cjs +126 -0
  128. package/dist/canvas/utils/createPreviewGraph.d.ts +36 -0
  129. package/dist/canvas/utils/createPreviewGraph.d.ts.map +1 -0
  130. package/dist/canvas/utils/createPreviewGraph.js +83 -0
  131. package/dist/canvas/utils/createPreviewNode.cjs +30 -11
  132. package/dist/canvas/utils/createPreviewNode.d.ts +10 -2
  133. package/dist/canvas/utils/createPreviewNode.d.ts.map +1 -1
  134. package/dist/canvas/utils/createPreviewNode.js +21 -11
  135. package/dist/canvas/utils/index.cjs +33 -26
  136. package/dist/canvas/utils/index.d.ts +2 -1
  137. package/dist/canvas/utils/index.d.ts.map +1 -1
  138. package/dist/canvas/utils/index.js +2 -1
  139. package/package.json +3 -3
@@ -29,10 +29,12 @@ __webpack_require__.d(__webpack_exports__, {
29
29
  resolveCollisions: ()=>resolveCollisions,
30
30
  resolveHandleContext: ()=>resolveHandleContext,
31
31
  getHandleIndex: ()=>getHandleIndex,
32
+ selectIsConnecting: ()=>selectIsConnecting,
32
33
  snapToGrid: ()=>snapToGrid
33
34
  });
34
35
  const react_cjs_namespaceObject = require("../xyflow/react.cjs");
35
36
  const external_constants_cjs_namespaceObject = require("../constants.cjs");
37
+ const selectIsConnecting = (state)=>!!state.connection.inProgress;
36
38
  const getAbsolutePosition = (node, nodes)=>{
37
39
  let x = node.position.x;
38
40
  let y = node.position.y;
@@ -146,6 +148,7 @@ exports.getHandleIndex = __webpack_exports__.getHandleIndex;
146
148
  exports.getNonOverlappingPositionForDirection = __webpack_exports__.getNonOverlappingPositionForDirection;
147
149
  exports.resolveCollisions = __webpack_exports__.resolveCollisions;
148
150
  exports.resolveHandleContext = __webpack_exports__.resolveHandleContext;
151
+ exports.selectIsConnecting = __webpack_exports__.selectIsConnecting;
149
152
  exports.snapToGrid = __webpack_exports__.snapToGrid;
150
153
  for(var __rspack_i in __webpack_exports__)if (-1 === [
151
154
  "getAbsolutePosition",
@@ -153,6 +156,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
153
156
  "getNonOverlappingPositionForDirection",
154
157
  "resolveCollisions",
155
158
  "resolveHandleContext",
159
+ "selectIsConnecting",
156
160
  "snapToGrid"
157
161
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
158
162
  Object.defineProperty(exports, '__esModule', {
@@ -1,4 +1,5 @@
1
- import { type Handle, type InternalNode, type Node, Position, type XYPosition } from '../xyflow/react.ts';
1
+ import { type Handle, type InternalNode, type Node, Position, type ReactFlowState, type XYPosition } from '../xyflow/react.ts';
2
+ export declare const selectIsConnecting: (state: ReactFlowState) => boolean;
2
3
  export declare const getAbsolutePosition: (node: Node, nodes: Node[]) => {
3
4
  x: number;
4
5
  y: 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;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"}
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,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,0CAA0C,CAAC;AAQlD,eAAO,MAAM,kBAAkB,GAAI,OAAO,cAAc,YAAkC,CAAC;AAS3F,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"}
@@ -1,5 +1,6 @@
1
1
  import { Position } from "../xyflow/react.js";
2
2
  import { DEFAULT_NODE_SIZE, GRID_SPACING, PREVIEW_NODE_ID } from "../constants.js";
3
+ const selectIsConnecting = (state)=>!!state.connection.inProgress;
3
4
  const getAbsolutePosition = (node, nodes)=>{
4
5
  let x = node.position.x;
5
6
  let y = node.position.y;
@@ -108,4 +109,4 @@ function getHandleIndex(handleId, position, allHandles) {
108
109
  const index = peers.findIndex((h)=>h.id === handleId);
109
110
  return -1 === index ? null : index;
110
111
  }
111
- export { getAbsolutePosition, getHandleIndex, getNonOverlappingPositionForDirection, resolveCollisions, resolveHandleContext, snapToGrid };
112
+ export { getAbsolutePosition, getHandleIndex, getNonOverlappingPositionForDirection, resolveCollisions, resolveHandleContext, selectIsConnecting, snapToGrid };
@@ -24,13 +24,14 @@ var __webpack_require__ = {};
24
24
  var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
- COLLAPSED_NODE_SIZE: ()=>COLLAPSED_NODE_SIZE,
27
+ getExpandedShape: ()=>getExpandedShape,
28
+ getExpandedSize: ()=>getExpandedSize,
28
29
  EXPANDED_RECTANGLE_WIDTH: ()=>EXPANDED_RECTANGLE_WIDTH,
29
30
  getCollapsedShape: ()=>getCollapsedShape,
30
- getCollapsedSize: ()=>getCollapsedSize,
31
- getExpandedShape: ()=>getExpandedShape,
32
- getExpandedSize: ()=>getExpandedSize
31
+ COLLAPSED_NODE_SIZE: ()=>COLLAPSED_NODE_SIZE,
32
+ getCollapsedSize: ()=>getCollapsedSize
33
33
  });
34
+ const external_constants_cjs_namespaceObject = require("../constants.cjs");
34
35
  const COLLAPSED_NODE_SIZE = 96;
35
36
  const EXPANDED_RECTANGLE_WIDTH = 288;
36
37
  const getCollapsedShape = (originalShape)=>'rectangle' === originalShape ? 'square' : originalShape;
@@ -39,10 +40,16 @@ const getCollapsedSize = ()=>({
39
40
  width: COLLAPSED_NODE_SIZE,
40
41
  height: COLLAPSED_NODE_SIZE
41
42
  });
42
- const getExpandedSize = (shape)=>({
43
+ const getExpandedSize = (shape)=>{
44
+ if ('container' === shape) return {
45
+ width: external_constants_cjs_namespaceObject.DEFAULT_CONTAINER_WIDTH,
46
+ height: external_constants_cjs_namespaceObject.DEFAULT_CONTAINER_HEIGHT
47
+ };
48
+ return {
43
49
  width: 'rectangle' === shape ? EXPANDED_RECTANGLE_WIDTH : COLLAPSED_NODE_SIZE,
44
50
  height: COLLAPSED_NODE_SIZE
45
- });
51
+ };
52
+ };
46
53
  exports.COLLAPSED_NODE_SIZE = __webpack_exports__.COLLAPSED_NODE_SIZE;
47
54
  exports.EXPANDED_RECTANGLE_WIDTH = __webpack_exports__.EXPANDED_RECTANGLE_WIDTH;
48
55
  exports.getCollapsedShape = __webpack_exports__.getCollapsedShape;
@@ -1 +1 @@
1
- {"version":3,"file":"collapse.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/collapse.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAK3D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAKtC,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAM5C,eAAO,MAAM,iBAAiB,GAAI,gBAAgB,SAAS,KAAG,SAAS,GAAG,SAEzE,CAAC;AAOF,eAAO,MAAM,gBAAgB,GAAI,iBAAiB,SAAS,KAAG,SAAS,GAAG,SAEzE,CAAC;AAMF,eAAO,MAAM,gBAAgB,QAAO;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAKlE,CAAC;AAOF,eAAO,MAAM,eAAe,GAAI,QAAQ,SAAS,KAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAKlF,CAAC"}
1
+ {"version":3,"file":"collapse.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/collapse.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAK3D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAKtC,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAM5C,eAAO,MAAM,iBAAiB,GAAI,gBAAgB,SAAS,KAAG,SAAS,GAAG,SAEzE,CAAC;AAOF,eAAO,MAAM,gBAAgB,GAAI,iBAAiB,SAAS,KAAG,SAAS,GAAG,SAEzE,CAAC;AAMF,eAAO,MAAM,gBAAgB,QAAO;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAKlE,CAAC;AAOF,eAAO,MAAM,eAAe,GAAI,QAAQ,SAAS,KAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAYlF,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { DEFAULT_CONTAINER_HEIGHT, DEFAULT_CONTAINER_WIDTH } from "../constants.js";
1
2
  const COLLAPSED_NODE_SIZE = 96;
2
3
  const EXPANDED_RECTANGLE_WIDTH = 288;
3
4
  const getCollapsedShape = (originalShape)=>'rectangle' === originalShape ? 'square' : originalShape;
@@ -6,8 +7,14 @@ const getCollapsedSize = ()=>({
6
7
  width: COLLAPSED_NODE_SIZE,
7
8
  height: COLLAPSED_NODE_SIZE
8
9
  });
9
- const getExpandedSize = (shape)=>({
10
+ const getExpandedSize = (shape)=>{
11
+ if ('container' === shape) return {
12
+ width: DEFAULT_CONTAINER_WIDTH,
13
+ height: DEFAULT_CONTAINER_HEIGHT
14
+ };
15
+ return {
10
16
  width: 'rectangle' === shape ? EXPANDED_RECTANGLE_WIDTH : COLLAPSED_NODE_SIZE,
11
17
  height: COLLAPSED_NODE_SIZE
12
- });
18
+ };
19
+ };
13
20
  export { COLLAPSED_NODE_SIZE, EXPANDED_RECTANGLE_WIDTH, getCollapsedShape, getCollapsedSize, getExpandedShape, getExpandedSize };
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ createPreviewGraph: ()=>createPreviewGraph,
28
+ reparentPreviewNodeToContainer: ()=>reparentPreviewNodeToContainer,
29
+ showPreviewGraph: ()=>showPreviewGraph,
30
+ applyPreviewGraphToReactFlow: ()=>applyPreviewGraphToReactFlow
31
+ });
32
+ const external_constants_cjs_namespaceObject = require("../constants.cjs");
33
+ const external_createPreviewNode_cjs_namespaceObject = require("./createPreviewNode.cjs");
34
+ const external_NodeUtils_cjs_namespaceObject = require("./NodeUtils.cjs");
35
+ function inferPreviewContainerId(sourceNode, targetNode) {
36
+ if (!targetNode) return sourceNode.parentId;
37
+ if (sourceNode.parentId === targetNode.parentId) return sourceNode.parentId;
38
+ if (targetNode.parentId === sourceNode.id) return sourceNode.id;
39
+ if (sourceNode.parentId === targetNode.id) return targetNode.id;
40
+ }
41
+ function reparentPreviewNodeToContainer(previewNode, containerId, reactFlowInstance) {
42
+ const containerNode = reactFlowInstance.getNode(containerId);
43
+ if (!containerNode) return null;
44
+ const containerAbsolutePosition = (0, external_NodeUtils_cjs_namespaceObject.getAbsolutePosition)(containerNode, reactFlowInstance.getNodes());
45
+ return {
46
+ ...previewNode,
47
+ position: {
48
+ x: previewNode.position.x - containerAbsolutePosition.x,
49
+ y: previewNode.position.y - containerAbsolutePosition.y
50
+ },
51
+ parentId: containerId,
52
+ extent: 'parent'
53
+ };
54
+ }
55
+ function createPreviewNodeForGraph({ sourceNodeId, sourceHandleId, reactFlowInstance, position, data, sourceHandleType, previewNodeSize, handlePosition, ignoredNodeTypes, positionMode }) {
56
+ return (0, external_createPreviewNode_cjs_namespaceObject.createPreviewNode)(sourceNodeId, sourceHandleId, reactFlowInstance, position, data, sourceHandleType, previewNodeSize, handlePosition, ignoredNodeTypes, positionMode);
57
+ }
58
+ function createTrailingPreviewEdge({ targetNodeId, targetHandleId, trailingEdgeId, trailingEdgeStyle = external_createPreviewNode_cjs_namespaceObject.PREVIEW_EDGE_STYLE }) {
59
+ if (!targetNodeId) return null;
60
+ return {
61
+ id: trailingEdgeId ?? `${external_constants_cjs_namespaceObject.PREVIEW_NODE_ID}-${targetNodeId}`,
62
+ source: external_constants_cjs_namespaceObject.PREVIEW_NODE_ID,
63
+ sourceHandle: external_constants_cjs_namespaceObject.DEFAULT_SOURCE_HANDLE_ID,
64
+ target: targetNodeId,
65
+ targetHandle: targetHandleId,
66
+ type: 'default',
67
+ style: trailingEdgeStyle
68
+ };
69
+ }
70
+ function createPreviewGraph(options) {
71
+ const { reactFlowInstance, targetNodeId, containerId, removedEdgeIds, sourceNodeId } = options;
72
+ const preview = createPreviewNodeForGraph(options);
73
+ if (!preview) return null;
74
+ const sourceNode = reactFlowInstance.getNode(sourceNodeId);
75
+ if (!sourceNode) return null;
76
+ const targetNode = targetNodeId ? reactFlowInstance.getNode(targetNodeId) : void 0;
77
+ const resolvedContainerId = containerId ?? inferPreviewContainerId(sourceNode, targetNode);
78
+ const finalPreviewNode = resolvedContainerId ? reparentPreviewNodeToContainer(preview.node, resolvedContainerId, reactFlowInstance) : preview.node;
79
+ if (!finalPreviewNode) return null;
80
+ const trailingEdge = createTrailingPreviewEdge(options);
81
+ const edges = trailingEdge ? [
82
+ preview.edge,
83
+ trailingEdge
84
+ ] : [
85
+ preview.edge
86
+ ];
87
+ return {
88
+ node: finalPreviewNode,
89
+ edges,
90
+ removedEdgeIds
91
+ };
92
+ }
93
+ function showPreviewGraph(options) {
94
+ const preview = createPreviewGraph(options);
95
+ if (preview) applyPreviewGraphToReactFlow(preview, options.reactFlowInstance);
96
+ return preview;
97
+ }
98
+ function applyPreviewGraphToReactFlow(preview, reactFlowInstance) {
99
+ const removedEdgeIds = new Set(preview.removedEdgeIds ?? []);
100
+ setTimeout(()=>{
101
+ reactFlowInstance.setNodes((nodes)=>[
102
+ ...nodes.filter((node)=>node.id !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID).map((node)=>({
103
+ ...node,
104
+ selected: false
105
+ })),
106
+ preview.node
107
+ ]);
108
+ reactFlowInstance.setEdges((edges)=>[
109
+ ...edges.filter((edge)=>!(0, external_createPreviewNode_cjs_namespaceObject.isPreviewEdge)(edge) && !removedEdgeIds.has(edge.id)),
110
+ ...preview.edges
111
+ ]);
112
+ }, 0);
113
+ }
114
+ exports.applyPreviewGraphToReactFlow = __webpack_exports__.applyPreviewGraphToReactFlow;
115
+ exports.createPreviewGraph = __webpack_exports__.createPreviewGraph;
116
+ exports.reparentPreviewNodeToContainer = __webpack_exports__.reparentPreviewNodeToContainer;
117
+ exports.showPreviewGraph = __webpack_exports__.showPreviewGraph;
118
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
119
+ "applyPreviewGraphToReactFlow",
120
+ "createPreviewGraph",
121
+ "reparentPreviewNodeToContainer",
122
+ "showPreviewGraph"
123
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
124
+ Object.defineProperty(exports, '__esModule', {
125
+ value: true
126
+ });
@@ -0,0 +1,36 @@
1
+ import type { Edge, Node, Position, ReactFlowInstance } from '../xyflow/react.ts';
2
+ import { type PreviewNodePositionMode } from './createPreviewNode';
3
+ export interface PreviewGraph {
4
+ node: Node;
5
+ edges: Edge[];
6
+ removedEdgeIds?: string[];
7
+ }
8
+ export interface CreatePreviewGraphOptions {
9
+ sourceNodeId: string;
10
+ sourceHandleId: string;
11
+ reactFlowInstance: ReactFlowInstance;
12
+ position?: {
13
+ x: number;
14
+ y: number;
15
+ };
16
+ data?: Record<string, unknown>;
17
+ sourceHandleType?: 'source' | 'target';
18
+ previewNodeSize?: {
19
+ width: number;
20
+ height: number;
21
+ };
22
+ handlePosition?: Position;
23
+ ignoredNodeTypes?: string[];
24
+ positionMode?: PreviewNodePositionMode;
25
+ targetNodeId?: string;
26
+ targetHandleId?: string | null;
27
+ containerId?: string;
28
+ removedEdgeIds?: string[];
29
+ trailingEdgeId?: string;
30
+ trailingEdgeStyle?: Edge['style'];
31
+ }
32
+ export declare function reparentPreviewNodeToContainer(previewNode: Node, containerId: string, reactFlowInstance: ReactFlowInstance): Node | null;
33
+ export declare function createPreviewGraph(options: CreatePreviewGraphOptions): PreviewGraph | null;
34
+ export declare function showPreviewGraph(options: CreatePreviewGraphOptions): PreviewGraph | null;
35
+ export declare function applyPreviewGraphToReactFlow(preview: PreviewGraph, reactFlowInstance: ReactFlowInstance): void;
36
+ //# sourceMappingURL=createPreviewGraph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createPreviewGraph.d.ts","sourceRoot":"","sources":["../../../src/canvas/utils/createPreviewGraph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,iBAAiB,EAClB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAG7B,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,gBAAgB,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACvC,eAAe,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,cAAc,CAAC,EAAE,QAAQ,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;CACnC;AAsBD,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,IAAI,EACjB,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,iBAAiB,GACnC,IAAI,GAAG,IAAI,CAoBb;AAkDD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,YAAY,GAAG,IAAI,CAyB1F;AAOD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,yBAAyB,GAAG,YAAY,GAAG,IAAI,CAMxF;AAOD,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,YAAY,EACrB,iBAAiB,EAAE,iBAAiB,GACnC,IAAI,CAgBN"}
@@ -0,0 +1,83 @@
1
+ import { DEFAULT_SOURCE_HANDLE_ID, PREVIEW_NODE_ID } from "../constants.js";
2
+ import { PREVIEW_EDGE_STYLE, createPreviewNode, isPreviewEdge } from "./createPreviewNode.js";
3
+ import { getAbsolutePosition } from "./NodeUtils.js";
4
+ function inferPreviewContainerId(sourceNode, targetNode) {
5
+ if (!targetNode) return sourceNode.parentId;
6
+ if (sourceNode.parentId === targetNode.parentId) return sourceNode.parentId;
7
+ if (targetNode.parentId === sourceNode.id) return sourceNode.id;
8
+ if (sourceNode.parentId === targetNode.id) return targetNode.id;
9
+ }
10
+ function reparentPreviewNodeToContainer(previewNode, containerId, reactFlowInstance) {
11
+ const containerNode = reactFlowInstance.getNode(containerId);
12
+ if (!containerNode) return null;
13
+ const containerAbsolutePosition = getAbsolutePosition(containerNode, reactFlowInstance.getNodes());
14
+ return {
15
+ ...previewNode,
16
+ position: {
17
+ x: previewNode.position.x - containerAbsolutePosition.x,
18
+ y: previewNode.position.y - containerAbsolutePosition.y
19
+ },
20
+ parentId: containerId,
21
+ extent: 'parent'
22
+ };
23
+ }
24
+ function createPreviewNodeForGraph({ sourceNodeId, sourceHandleId, reactFlowInstance, position, data, sourceHandleType, previewNodeSize, handlePosition, ignoredNodeTypes, positionMode }) {
25
+ return createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, position, data, sourceHandleType, previewNodeSize, handlePosition, ignoredNodeTypes, positionMode);
26
+ }
27
+ function createTrailingPreviewEdge({ targetNodeId, targetHandleId, trailingEdgeId, trailingEdgeStyle = PREVIEW_EDGE_STYLE }) {
28
+ if (!targetNodeId) return null;
29
+ return {
30
+ id: trailingEdgeId ?? `${PREVIEW_NODE_ID}-${targetNodeId}`,
31
+ source: PREVIEW_NODE_ID,
32
+ sourceHandle: DEFAULT_SOURCE_HANDLE_ID,
33
+ target: targetNodeId,
34
+ targetHandle: targetHandleId,
35
+ type: 'default',
36
+ style: trailingEdgeStyle
37
+ };
38
+ }
39
+ function createPreviewGraph(options) {
40
+ const { reactFlowInstance, targetNodeId, containerId, removedEdgeIds, sourceNodeId } = options;
41
+ const preview = createPreviewNodeForGraph(options);
42
+ if (!preview) return null;
43
+ const sourceNode = reactFlowInstance.getNode(sourceNodeId);
44
+ if (!sourceNode) return null;
45
+ const targetNode = targetNodeId ? reactFlowInstance.getNode(targetNodeId) : void 0;
46
+ const resolvedContainerId = containerId ?? inferPreviewContainerId(sourceNode, targetNode);
47
+ const finalPreviewNode = resolvedContainerId ? reparentPreviewNodeToContainer(preview.node, resolvedContainerId, reactFlowInstance) : preview.node;
48
+ if (!finalPreviewNode) return null;
49
+ const trailingEdge = createTrailingPreviewEdge(options);
50
+ const edges = trailingEdge ? [
51
+ preview.edge,
52
+ trailingEdge
53
+ ] : [
54
+ preview.edge
55
+ ];
56
+ return {
57
+ node: finalPreviewNode,
58
+ edges,
59
+ removedEdgeIds
60
+ };
61
+ }
62
+ function showPreviewGraph(options) {
63
+ const preview = createPreviewGraph(options);
64
+ if (preview) applyPreviewGraphToReactFlow(preview, options.reactFlowInstance);
65
+ return preview;
66
+ }
67
+ function applyPreviewGraphToReactFlow(preview, reactFlowInstance) {
68
+ const removedEdgeIds = new Set(preview.removedEdgeIds ?? []);
69
+ setTimeout(()=>{
70
+ reactFlowInstance.setNodes((nodes)=>[
71
+ ...nodes.filter((node)=>node.id !== PREVIEW_NODE_ID).map((node)=>({
72
+ ...node,
73
+ selected: false
74
+ })),
75
+ preview.node
76
+ ]);
77
+ reactFlowInstance.setEdges((edges)=>[
78
+ ...edges.filter((edge)=>!isPreviewEdge(edge) && !removedEdgeIds.has(edge.id)),
79
+ ...preview.edges
80
+ ]);
81
+ }, 0);
82
+ }
83
+ export { applyPreviewGraphToReactFlow, createPreviewGraph, reparentPreviewNodeToContainer, showPreviewGraph };
@@ -24,13 +24,25 @@ var __webpack_require__ = {};
24
24
  var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
- applyPreviewToReactFlow: ()=>applyPreviewToReactFlow,
27
+ PREVIEW_EDGE_STYLE: ()=>PREVIEW_EDGE_STYLE,
28
+ isPreviewEdge: ()=>isPreviewEdge,
28
29
  removePreviewFromReactFlow: ()=>removePreviewFromReactFlow,
30
+ applyPreviewToReactFlow: ()=>applyPreviewToReactFlow,
31
+ getOppositePosition: ()=>getOppositePosition,
29
32
  createPreviewNode: ()=>createPreviewNode
30
33
  });
31
34
  const react_cjs_namespaceObject = require("../xyflow/react.cjs");
32
35
  const external_constants_cjs_namespaceObject = require("../constants.cjs");
33
36
  const external_NodeUtils_cjs_namespaceObject = require("./NodeUtils.cjs");
37
+ const PREVIEW_EDGE_STYLE = {
38
+ strokeDasharray: '5,5',
39
+ opacity: 0.8,
40
+ stroke: 'var(--canvas-selection-indicator)',
41
+ strokeWidth: 2
42
+ };
43
+ function isPreviewEdge(edge) {
44
+ return edge.id === external_constants_cjs_namespaceObject.PREVIEW_EDGE_ID || edge.source === external_constants_cjs_namespaceObject.PREVIEW_NODE_ID || edge.target === external_constants_cjs_namespaceObject.PREVIEW_NODE_ID;
45
+ }
34
46
  function getOppositePosition(position) {
35
47
  switch(position){
36
48
  case react_cjs_namespaceObject.Position.Left:
@@ -74,6 +86,12 @@ function calculatePositionFromDrop(dropPosition, handlePosition, previewNodeSize
74
86
  };
75
87
  }
76
88
  }
89
+ function calculateCenteredPosition(centerPosition, previewNodeSize) {
90
+ return {
91
+ x: centerPosition.x - previewNodeSize.width / 2,
92
+ y: centerPosition.y - previewNodeSize.height / 2
93
+ };
94
+ }
77
95
  function computeSpreadOffset(handle, size) {
78
96
  const index = handle?.index ?? null;
79
97
  const count = handle?.count ?? 1;
@@ -139,7 +157,7 @@ function calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, exis
139
157
  function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, position, data, sourceHandleType = 'source', previewNodeSize = {
140
158
  width: external_constants_cjs_namespaceObject.DEFAULT_NODE_SIZE,
141
159
  height: external_constants_cjs_namespaceObject.DEFAULT_NODE_SIZE
142
- }, handlePosition = react_cjs_namespaceObject.Position.Right, ignoredNodeTypes = []) {
160
+ }, handlePosition = react_cjs_namespaceObject.Position.Right, ignoredNodeTypes = [], positionMode = 'drop') {
143
161
  const sourceNode = reactFlowInstance.getNode(sourceNodeId);
144
162
  if (!sourceNode) {
145
163
  console.warn(`Source node ${sourceNodeId} not found`);
@@ -149,7 +167,7 @@ function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, posi
149
167
  const existingNodes = reactFlowInstance.getNodes().filter((n)=>n.id !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID);
150
168
  const internalNode = void 0 === position ? reactFlowInstance.getInternalNode(sourceNodeId) : void 0;
151
169
  const handle = internalNode ? (0, external_NodeUtils_cjs_namespaceObject.resolveHandleContext)(internalNode, sourceHandleId, handlePosition) : void 0;
152
- const nodePosition = position ? calculatePositionFromDrop(position, handlePosition, previewNodeSize) : calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, existingNodes, void 0, ignoredNodeTypes, handle);
170
+ const nodePosition = position ? 'center' === positionMode ? calculateCenteredPosition(position, previewNodeSize) : calculatePositionFromDrop(position, handlePosition, previewNodeSize) : calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, existingNodes, void 0, ignoredNodeTypes, handle);
153
171
  const handleFacingSource = getOppositePosition(handlePosition);
154
172
  const finalData = {
155
173
  ...data ?? {}
@@ -179,12 +197,7 @@ function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, posi
179
197
  id: external_constants_cjs_namespaceObject.PREVIEW_EDGE_ID,
180
198
  ...previewSourceAndTargetData,
181
199
  type: 'default',
182
- style: {
183
- strokeDasharray: '5,5',
184
- opacity: 0.8,
185
- stroke: 'var(--canvas-selection-indicator)',
186
- strokeWidth: 2
187
- }
200
+ style: PREVIEW_EDGE_STYLE
188
201
  };
189
202
  return {
190
203
  node: previewNode,
@@ -201,21 +214,27 @@ function applyPreviewToReactFlow(preview, reactFlowInstance) {
201
214
  preview.node
202
215
  ]);
203
216
  reactFlowInstance.setEdges((edges)=>[
204
- ...edges.filter((e)=>e.id !== external_constants_cjs_namespaceObject.PREVIEW_EDGE_ID),
217
+ ...edges.filter((edge)=>!isPreviewEdge(edge)),
205
218
  preview.edge
206
219
  ]);
207
220
  }, 0);
208
221
  }
209
222
  function removePreviewFromReactFlow(reactFlowInstance) {
210
223
  reactFlowInstance.setNodes((nodes)=>nodes.filter((n)=>n.id !== external_constants_cjs_namespaceObject.PREVIEW_NODE_ID));
211
- reactFlowInstance.setEdges((edges)=>edges.filter((e)=>e.id !== external_constants_cjs_namespaceObject.PREVIEW_EDGE_ID));
224
+ reactFlowInstance.setEdges((edges)=>edges.filter((edge)=>!isPreviewEdge(edge)));
212
225
  }
226
+ exports.PREVIEW_EDGE_STYLE = __webpack_exports__.PREVIEW_EDGE_STYLE;
213
227
  exports.applyPreviewToReactFlow = __webpack_exports__.applyPreviewToReactFlow;
214
228
  exports.createPreviewNode = __webpack_exports__.createPreviewNode;
229
+ exports.getOppositePosition = __webpack_exports__.getOppositePosition;
230
+ exports.isPreviewEdge = __webpack_exports__.isPreviewEdge;
215
231
  exports.removePreviewFromReactFlow = __webpack_exports__.removePreviewFromReactFlow;
216
232
  for(var __rspack_i in __webpack_exports__)if (-1 === [
233
+ "PREVIEW_EDGE_STYLE",
217
234
  "applyPreviewToReactFlow",
218
235
  "createPreviewNode",
236
+ "getOppositePosition",
237
+ "isPreviewEdge",
219
238
  "removePreviewFromReactFlow"
220
239
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
221
240
  Object.defineProperty(exports, '__esModule', {
@@ -1,11 +1,19 @@
1
1
  import { type Edge, type Node, Position, type ReactFlowInstance } from '../xyflow/react.ts';
2
+ export type PreviewNodePositionMode = 'drop' | 'center';
3
+ export declare const PREVIEW_EDGE_STYLE: Edge['style'];
4
+ export declare function isPreviewEdge(edge: {
5
+ id?: string;
6
+ source?: string;
7
+ target?: string;
8
+ }): boolean;
9
+ export declare function getOppositePosition(position: Position): Position;
2
10
  export declare function createPreviewNode(sourceNodeId: string, sourceHandleId: string, reactFlowInstance: ReactFlowInstance, position?: {
3
11
  x: number;
4
12
  y: number;
5
- }, data?: Record<string, any>, sourceHandleType?: 'source' | 'target', previewNodeSize?: {
13
+ }, data?: Record<string, unknown>, sourceHandleType?: 'source' | 'target', previewNodeSize?: {
6
14
  width: number;
7
15
  height: number;
8
- }, handlePosition?: Position, ignoredNodeTypes?: string[]): {
16
+ }, handlePosition?: Position, ignoredNodeTypes?: string[], positionMode?: PreviewNodePositionMode): {
9
17
  node: Node;
10
18
  edge: Edge;
11
19
  } | null;
@@ -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;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"}
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;AASlD,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAExD,eAAO,MAAM,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAK5C,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAM9F;AAMD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAahE;AAiLD,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,OAAO,CAAC,EAC9B,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,EAC/B,YAAY,GAAE,uBAAgC,GAC7C;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG,IAAI,CAwFnC;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"}
@@ -1,6 +1,15 @@
1
1
  import { Position } from "../xyflow/react.js";
2
2
  import { DEFAULT_NODE_SIZE, GRID_SPACING, PREVIEW_EDGE_ID, PREVIEW_NODE_ID } from "../constants.js";
3
3
  import { getAbsolutePosition, getNonOverlappingPositionForDirection, resolveHandleContext } from "./NodeUtils.js";
4
+ const PREVIEW_EDGE_STYLE = {
5
+ strokeDasharray: '5,5',
6
+ opacity: 0.8,
7
+ stroke: 'var(--canvas-selection-indicator)',
8
+ strokeWidth: 2
9
+ };
10
+ function isPreviewEdge(edge) {
11
+ return edge.id === PREVIEW_EDGE_ID || edge.source === PREVIEW_NODE_ID || edge.target === PREVIEW_NODE_ID;
12
+ }
4
13
  function getOppositePosition(position) {
5
14
  switch(position){
6
15
  case Position.Left:
@@ -44,6 +53,12 @@ function calculatePositionFromDrop(dropPosition, handlePosition, previewNodeSize
44
53
  };
45
54
  }
46
55
  }
56
+ function calculateCenteredPosition(centerPosition, previewNodeSize) {
57
+ return {
58
+ x: centerPosition.x - previewNodeSize.width / 2,
59
+ y: centerPosition.y - previewNodeSize.height / 2
60
+ };
61
+ }
47
62
  function computeSpreadOffset(handle, size) {
48
63
  const index = handle?.index ?? null;
49
64
  const count = handle?.count ?? 1;
@@ -109,7 +124,7 @@ function calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, exis
109
124
  function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, position, data, sourceHandleType = 'source', previewNodeSize = {
110
125
  width: DEFAULT_NODE_SIZE,
111
126
  height: DEFAULT_NODE_SIZE
112
- }, handlePosition = Position.Right, ignoredNodeTypes = []) {
127
+ }, handlePosition = Position.Right, ignoredNodeTypes = [], positionMode = 'drop') {
113
128
  const sourceNode = reactFlowInstance.getNode(sourceNodeId);
114
129
  if (!sourceNode) {
115
130
  console.warn(`Source node ${sourceNodeId} not found`);
@@ -119,7 +134,7 @@ function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, posi
119
134
  const existingNodes = reactFlowInstance.getNodes().filter((n)=>n.id !== PREVIEW_NODE_ID);
120
135
  const internalNode = void 0 === position ? reactFlowInstance.getInternalNode(sourceNodeId) : void 0;
121
136
  const handle = internalNode ? resolveHandleContext(internalNode, sourceHandleId, handlePosition) : void 0;
122
- const nodePosition = position ? calculatePositionFromDrop(position, handlePosition, previewNodeSize) : calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, existingNodes, void 0, ignoredNodeTypes, handle);
137
+ const nodePosition = position ? 'center' === positionMode ? calculateCenteredPosition(position, previewNodeSize) : calculatePositionFromDrop(position, handlePosition, previewNodeSize) : calculateAutoPosition(sourceNode, handlePosition, previewNodeSize, existingNodes, void 0, ignoredNodeTypes, handle);
123
138
  const handleFacingSource = getOppositePosition(handlePosition);
124
139
  const finalData = {
125
140
  ...data ?? {}
@@ -149,12 +164,7 @@ function createPreviewNode(sourceNodeId, sourceHandleId, reactFlowInstance, posi
149
164
  id: PREVIEW_EDGE_ID,
150
165
  ...previewSourceAndTargetData,
151
166
  type: 'default',
152
- style: {
153
- strokeDasharray: '5,5',
154
- opacity: 0.8,
155
- stroke: 'var(--canvas-selection-indicator)',
156
- strokeWidth: 2
157
- }
167
+ style: PREVIEW_EDGE_STYLE
158
168
  };
159
169
  return {
160
170
  node: previewNode,
@@ -171,13 +181,13 @@ function applyPreviewToReactFlow(preview, reactFlowInstance) {
171
181
  preview.node
172
182
  ]);
173
183
  reactFlowInstance.setEdges((edges)=>[
174
- ...edges.filter((e)=>e.id !== PREVIEW_EDGE_ID),
184
+ ...edges.filter((edge)=>!isPreviewEdge(edge)),
175
185
  preview.edge
176
186
  ]);
177
187
  }, 0);
178
188
  }
179
189
  function removePreviewFromReactFlow(reactFlowInstance) {
180
190
  reactFlowInstance.setNodes((nodes)=>nodes.filter((n)=>n.id !== PREVIEW_NODE_ID));
181
- reactFlowInstance.setEdges((edges)=>edges.filter((e)=>e.id !== PREVIEW_EDGE_ID));
191
+ reactFlowInstance.setEdges((edges)=>edges.filter((edge)=>!isPreviewEdge(edge)));
182
192
  }
183
- export { applyPreviewToReactFlow, createPreviewNode, removePreviewFromReactFlow };
193
+ export { PREVIEW_EDGE_STYLE, applyPreviewToReactFlow, createPreviewNode, getOppositePosition, isPreviewEdge, removePreviewFromReactFlow };