react-html-graph 1.0.0 → 1.2.2

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 (88) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +1 -1
  3. package/dist/calculations/index.d.ts +15 -1
  4. package/dist/calculations/index.d.ts.map +1 -1
  5. package/dist/calculations/index.js +696 -0
  6. package/dist/calculations/index.js.map +1 -1
  7. package/dist/calculations/types.d.ts +70 -0
  8. package/dist/calculations/types.d.ts.map +1 -1
  9. package/dist/example/App.css +38 -38
  10. package/dist/example/index.css +47 -47
  11. package/dist/graph/index.d.ts.map +1 -1
  12. package/dist/graph/index.js +218 -16
  13. package/dist/graph/index.js.map +1 -1
  14. package/dist/hooks/connection.d.ts.map +1 -1
  15. package/dist/hooks/connection.js +5 -2
  16. package/dist/hooks/connection.js.map +1 -1
  17. package/dist/hooks/get-viewbox.d.ts +9 -0
  18. package/dist/hooks/get-viewbox.d.ts.map +1 -0
  19. package/dist/hooks/get-viewbox.js +20 -0
  20. package/dist/hooks/get-viewbox.js.map +1 -0
  21. package/dist/layouts/centralizar.d.ts +1 -0
  22. package/dist/layouts/centralizar.d.ts.map +1 -0
  23. package/dist/layouts/centralizar.js +2 -0
  24. package/dist/layouts/centralizar.js.map +1 -0
  25. package/dist/layouts/force-direction-layout.d.ts +9 -0
  26. package/dist/layouts/force-direction-layout.d.ts.map +1 -0
  27. package/dist/layouts/force-direction-layout.js +11 -0
  28. package/dist/layouts/force-direction-layout.js.map +1 -0
  29. package/dist/layouts/index.d.ts +13 -0
  30. package/dist/layouts/index.d.ts.map +1 -0
  31. package/dist/layouts/index.js +17 -0
  32. package/dist/layouts/index.js.map +1 -0
  33. package/dist/layouts/organic-layout.d.ts +9 -0
  34. package/dist/layouts/organic-layout.d.ts.map +1 -0
  35. package/dist/layouts/organic-layout.js +11 -0
  36. package/dist/layouts/organic-layout.js.map +1 -0
  37. package/dist/layouts/radial-layout.d.ts +9 -0
  38. package/dist/layouts/radial-layout.d.ts.map +1 -0
  39. package/dist/layouts/radial-layout.js +11 -0
  40. package/dist/layouts/radial-layout.js.map +1 -0
  41. package/dist/layouts/sequential-layout.d.ts +9 -0
  42. package/dist/layouts/sequential-layout.d.ts.map +1 -0
  43. package/dist/layouts/sequential-layout.js +11 -0
  44. package/dist/layouts/sequential-layout.js.map +1 -0
  45. package/dist/layouts/shared.d.ts +10 -0
  46. package/dist/layouts/shared.d.ts.map +1 -0
  47. package/dist/layouts/shared.js +39 -0
  48. package/dist/layouts/shared.js.map +1 -0
  49. package/dist/layouts/structural-layout.d.ts +9 -0
  50. package/dist/layouts/structural-layout.d.ts.map +1 -0
  51. package/dist/layouts/structural-layout.js +11 -0
  52. package/dist/layouts/structural-layout.js.map +1 -0
  53. package/dist/layouts/tree-layout.d.ts +9 -0
  54. package/dist/layouts/tree-layout.d.ts.map +1 -0
  55. package/dist/layouts/tree-layout.js +11 -0
  56. package/dist/layouts/tree-layout.js.map +1 -0
  57. package/dist/link/base.d.ts +3 -2
  58. package/dist/link/base.d.ts.map +1 -1
  59. package/dist/link/base.js +113 -20
  60. package/dist/link/base.js.map +1 -1
  61. package/dist/link/temp-link.d.ts.map +1 -1
  62. package/dist/link/temp-link.js +6 -4
  63. package/dist/link/temp-link.js.map +1 -1
  64. package/dist/module.d.ts +2 -1
  65. package/dist/module.d.ts.map +1 -1
  66. package/dist/module.js +2 -1
  67. package/dist/module.js.map +1 -1
  68. package/dist/nodes/base.d.ts +1 -1
  69. package/dist/nodes/base.d.ts.map +1 -1
  70. package/dist/nodes/base.js +59 -22
  71. package/dist/nodes/base.js.map +1 -1
  72. package/dist/ports/base.d.ts.map +1 -1
  73. package/dist/style.css +77 -77
  74. package/dist/types.d.ts +153 -0
  75. package/dist/types.d.ts.map +1 -1
  76. package/package.json +77 -73
  77. package/dist/example/App.d.ts +0 -3
  78. package/dist/example/App.d.ts.map +0 -1
  79. package/dist/example/App.js +0 -7
  80. package/dist/example/App.js.map +0 -1
  81. package/dist/example/graph-teste.d.ts +0 -2
  82. package/dist/example/graph-teste.d.ts.map +0 -1
  83. package/dist/example/graph-teste.js +0 -205
  84. package/dist/example/graph-teste.js.map +0 -1
  85. package/dist/example/reportWebVitals.d.ts +0 -4
  86. package/dist/example/reportWebVitals.d.ts.map +0 -1
  87. package/dist/example/reportWebVitals.js +0 -13
  88. package/dist/example/reportWebVitals.js.map +0 -1
@@ -1,14 +1,40 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useCallback, useContext, useEffect, useImperativeHandle, useMemo, useRef, useState, } from "react";
3
+ import { calculateFitView } from "../calculations";
3
4
  import { GraphContext } from "../context/graph-context";
4
5
  import { ErrorContext } from "../context/error-context";
5
6
  import { ConnectionContext } from "../context/connection-context";
6
7
  import { GraphRootContext } from "../context/graph-root-context";
7
8
  import ConnectionProvider from "../providers/connection-provider";
9
+ import { GRAPH_LAYOUT_EXECUTORS } from "../layouts";
8
10
  import GraphObject from "../nodes/base";
9
11
  import GraphLink from "../link/base";
10
12
  import ViewBox from "./viewbox";
11
13
  import "../style.css";
14
+ function getSnapshotBounds(nodes) {
15
+ if (nodes.length === 0) {
16
+ return { left: 0, top: 0, width: 0, height: 0 };
17
+ }
18
+ let left = Infinity;
19
+ let top = Infinity;
20
+ let right = -Infinity;
21
+ let bottom = -Infinity;
22
+ for (const node of nodes) {
23
+ left = Math.min(left, node.position.x);
24
+ top = Math.min(top, node.position.y);
25
+ right = Math.max(right, node.position.x + node.width);
26
+ bottom = Math.max(bottom, node.position.y + node.height);
27
+ }
28
+ if (!Number.isFinite(left) || !Number.isFinite(top) || !Number.isFinite(right) || !Number.isFinite(bottom)) {
29
+ return { left: 0, top: 0, width: 0, height: 0 };
30
+ }
31
+ return {
32
+ left,
33
+ top,
34
+ width: Math.max(0, right - left),
35
+ height: Math.max(0, bottom - top),
36
+ };
37
+ }
12
38
  /**
13
39
  * Componente Graph que orquestra o contexto do grafo, providers e o viewbox.
14
40
  * Recebe chamadas imperativas via ref (GraphApi) expostas por GraphHandle.
@@ -21,12 +47,48 @@ export default function Graph({ ref, mode = "edit", onError }) {
21
47
  const graphApiRef = useRef(null);
22
48
  const [nodeDefs, setNodeDefs] = useState([]);
23
49
  const [linkDefs, setLinkDefs] = useState([]);
24
- const [viewbox, setViewBox] = useState({
50
+ const [viewbox, setViewBoxState] = useState({
25
51
  x: 0, y: 0, zoom: 1, width: 0, height: 0,
26
52
  });
53
+ const viewboxRef = useRef(viewbox);
54
+ const nodeStateRef = useRef(new Map());
55
+ const linkStateRef = useRef(new Map());
56
+ // Wrapper que mantém ref e state sempre sincronizados.
57
+ // A ref é a fonte de verdade; updaters leem dela (não do state batched).
58
+ const setViewBox = useCallback((updater) => {
59
+ const newVb = typeof updater === 'function' ? updater(viewboxRef.current) : updater;
60
+ viewboxRef.current = newVb;
61
+ setViewBoxState(newVb);
62
+ }, []);
63
+ const handleNodeStateChange = useCallback((state) => {
64
+ nodeStateRef.current.set(state.id, state);
65
+ }, []);
66
+ const handleLinkStateChange = useCallback((state) => {
67
+ linkStateRef.current.set(state.id, state);
68
+ }, []);
69
+ const handleNodeMove = useCallback((nodeId, newPosition) => {
70
+ setNodeDefs(prev => {
71
+ let changed = false;
72
+ const next = prev.map(def => {
73
+ if (def.id !== nodeId)
74
+ return def;
75
+ if (def.position.x === newPosition.x &&
76
+ def.position.y === newPosition.y &&
77
+ def.position.z === newPosition.z) {
78
+ return def;
79
+ }
80
+ changed = true;
81
+ return {
82
+ ...def,
83
+ position: newPosition,
84
+ };
85
+ });
86
+ return changed ? next : prev;
87
+ });
88
+ }, []);
27
89
  // Converte definicoes em React elements para GraphContext
28
- const nodes = useMemo(() => nodeDefs.map(def => (_jsx(GraphObject, { id: def.id, ports: def.ports, data: def.data, initialPosition: def.position, children: def.template }, def.id))), [nodeDefs]);
29
- const links = useMemo(() => linkDefs.map(def => (_jsx(GraphLink, { ...def }, def.id))), [linkDefs]);
90
+ const nodes = useMemo(() => nodeDefs.map(def => (_jsx(GraphObject, { id: def.id, position: def.position, ports: def.ports, data: def.data, initialPosition: def.position, onMove: (newPosition) => handleNodeMove(def.id, newPosition), onStateChange: handleNodeStateChange, children: def.template }, def.id))), [handleNodeMove, handleNodeStateChange, nodeDefs]);
91
+ const links = useMemo(() => linkDefs.map(def => (_jsx(GraphLink, { ...def, onStateChange: handleLinkStateChange }, def.id))), [handleLinkStateChange, linkDefs]);
30
92
  const panRef = useRef({
31
93
  panning: false,
32
94
  panPointStart: { x: 0, y: 0 }
@@ -44,8 +106,10 @@ export default function Graph({ ref, mode = "edit", onError }) {
44
106
  if (panRef.current.panning && rootRef.current && e.button === 1) {
45
107
  panRef.current.panning = false;
46
108
  rootRef.current.style.userSelect = "";
109
+ // Commita a posição acumulada no ref para o React state
110
+ setViewBox(viewboxRef.current);
47
111
  }
48
- }, []);
112
+ }, [setViewBox]);
49
113
  const handleWheel = useCallback((e) => {
50
114
  e.preventDefault();
51
115
  const root = rootRef.current ?? e.target;
@@ -68,17 +132,20 @@ export default function Graph({ ref, mode = "edit", onError }) {
68
132
  const y = worldY - offsetY / newZoom;
69
133
  return { ...vb, x, y, zoom: newZoom };
70
134
  });
71
- }, []);
135
+ }, [setViewBox]);
72
136
  const handleMouseMove = useCallback((e) => {
73
137
  if (!panRef.current.panning)
74
138
  return;
75
- setViewBox(vb => {
76
- return {
77
- ...vb,
78
- x: vb.x - e.movementX / vb.zoom,
79
- y: vb.y - e.movementY / vb.zoom,
80
- };
81
- });
139
+ const vb = viewboxRef.current;
140
+ const newX = vb.x - e.movementX / vb.zoom;
141
+ const newY = vb.y - e.movementY / vb.zoom;
142
+ viewboxRef.current = { ...vb, x: newX, y: newY };
143
+ // Atualiza o DOM diretamente sem causar re-render
144
+ const viewboxEl = rootRef.current?.querySelector('graph-viewbox');
145
+ if (viewboxEl) {
146
+ viewboxEl.style.transform = `scale(${vb.zoom}) translate(${-newX}px, ${-newY}px)`;
147
+ viewboxEl.style.transformOrigin = '0 0';
148
+ }
82
149
  }, []);
83
150
  useEffect(() => {
84
151
  const el = rootRef.current;
@@ -103,7 +170,7 @@ export default function Graph({ ref, mode = "edit", onError }) {
103
170
  el.removeEventListener('wheel', handleWheel);
104
171
  observer.disconnect();
105
172
  };
106
- }, [handleWheel]);
173
+ }, [handleWheel, setViewBox]);
107
174
  // Valida IDs duplicados entre nós e links
108
175
  useEffect(() => {
109
176
  const ids = new Map();
@@ -127,12 +194,28 @@ export default function Graph({ ref, mode = "edit", onError }) {
127
194
  }
128
195
  }
129
196
  }, [nodeDefs, linkDefs, handleError]);
197
+ useEffect(() => {
198
+ const validIds = new Set(nodeDefs.map(def => def.id));
199
+ for (const id of [...nodeStateRef.current.keys()]) {
200
+ if (!validIds.has(id)) {
201
+ nodeStateRef.current.delete(id);
202
+ }
203
+ }
204
+ }, [nodeDefs]);
205
+ useEffect(() => {
206
+ const validIds = new Set(linkDefs.map(def => def.id));
207
+ for (const id of [...linkStateRef.current.keys()]) {
208
+ if (!validIds.has(id)) {
209
+ linkStateRef.current.delete(id);
210
+ }
211
+ }
212
+ }, [linkDefs]);
130
213
  return (_jsx(ErrorContext.Provider, { value: { reportError: handleError }, children: _jsx(GraphContext.Provider, { value: {
131
214
  viewbox,
132
215
  nodes,
133
216
  links,
134
217
  mode,
135
- }, children: _jsx(GraphRootContext.Provider, { value: rootRef, children: _jsxs(ConnectionProvider, { graphApiRef: graphApiRef, children: [_jsx(GraphHandle, { ref: ref, graphApiRef: graphApiRef, setNodeDefs: setNodeDefs, setLinkDefs: setLinkDefs }), _jsx("graph-root", { ref: rootRef, onMouseDown: handleMouseDown, onMouseUp: handleMouseUp, onMouseMove: handleMouseMove, children: _jsx(ViewBox, {}) })] }) }) }) }));
218
+ }, children: _jsx(GraphRootContext.Provider, { value: rootRef, children: _jsxs(ConnectionProvider, { graphApiRef: graphApiRef, children: [_jsx(GraphHandle, { ref: ref, graphApiRef: graphApiRef, rootRef: rootRef, nodeDefs: nodeDefs, linkDefs: linkDefs, nodeStateRef: nodeStateRef, linkStateRef: linkStateRef, mode: mode, viewboxRef: viewboxRef, setViewBox: setViewBox, setNodeDefs: setNodeDefs, setLinkDefs: setLinkDefs }), _jsx("graph-root", { ref: rootRef, onMouseDown: handleMouseDown, onMouseUp: handleMouseUp, onMouseMove: handleMouseMove, children: _jsx(ViewBox, {}) })] }) }) }) }));
136
219
  }
137
220
  /**
138
221
  * Componente auxiliar que implementa a API imperativa do Graph (GraphApi)
@@ -141,8 +224,123 @@ export default function Graph({ ref, mode = "edit", onError }) {
141
224
  * Esta função não renderiza nada (retorna null) e serve apenas para vincular
142
225
  * handlers/estado ao objeto de API.
143
226
  */
144
- function GraphHandle({ ref, graphApiRef, setNodeDefs, setLinkDefs }) {
227
+ function GraphHandle({ ref, graphApiRef, rootRef, nodeDefs, linkDefs, nodeStateRef, linkStateRef, mode, viewboxRef, setViewBox, setNodeDefs, setLinkDefs, }) {
145
228
  const { connect, disconnect, connections } = useContext(ConnectionContext);
229
+ const buildSnapshot = useCallback(() => {
230
+ const nodes = nodeDefs.map(def => {
231
+ const runtimeState = nodeStateRef.current.get(def.id);
232
+ return {
233
+ id: def.id,
234
+ width: Math.max(1, runtimeState?.width ?? 1),
235
+ height: Math.max(1, runtimeState?.height ?? 1),
236
+ position: runtimeState?.position ?? def.position,
237
+ data: def.data,
238
+ };
239
+ });
240
+ const links = linkDefs.map(def => ({
241
+ id: def.id,
242
+ from: def.from.node,
243
+ to: def.to.node,
244
+ data: def.data,
245
+ }));
246
+ return {
247
+ nodes,
248
+ links,
249
+ bounds: getSnapshotBounds(nodes),
250
+ };
251
+ }, [linkDefs, nodeDefs, nodeStateRef]);
252
+ const applyPositions = useCallback((result) => {
253
+ for (const item of result.positions) {
254
+ const currentState = nodeStateRef.current.get(item.id);
255
+ nodeStateRef.current.set(item.id, {
256
+ id: item.id,
257
+ position: item.position,
258
+ width: currentState?.width ?? 1,
259
+ height: currentState?.height ?? 1,
260
+ data: currentState?.data,
261
+ });
262
+ }
263
+ setNodeDefs(prev => {
264
+ const positionMap = new Map(result.positions.map(item => [item.id, item.position]));
265
+ let changed = false;
266
+ const next = prev.map(def => {
267
+ const newPosition = positionMap.get(def.id);
268
+ if (!newPosition)
269
+ return def;
270
+ if (def.position.x === newPosition.x &&
271
+ def.position.y === newPosition.y &&
272
+ def.position.z === newPosition.z) {
273
+ return def;
274
+ }
275
+ changed = true;
276
+ return {
277
+ ...def,
278
+ position: newPosition,
279
+ };
280
+ });
281
+ return changed ? next : prev;
282
+ });
283
+ }, [nodeStateRef, setNodeDefs]);
284
+ const centralize = useCallback(async (options) => {
285
+ const snapshot = buildSnapshot();
286
+ const root = rootRef.current;
287
+ const viewportWidth = root?.clientWidth ?? viewboxRef.current.width;
288
+ const viewportHeight = root?.clientHeight ?? viewboxRef.current.height;
289
+ const fitResult = await calculateFitView({
290
+ nodes: snapshot.nodes.map(node => ({
291
+ id: node.id,
292
+ width: node.width,
293
+ height: node.height,
294
+ x: node.position.x,
295
+ y: node.position.y,
296
+ z: node.position.z,
297
+ })),
298
+ viewportWidth,
299
+ viewportHeight,
300
+ padding: options?.padding ?? 32,
301
+ minZoom: options?.minZoom ?? 0.1,
302
+ maxZoom: options?.maxZoom ?? 2,
303
+ });
304
+ const nextViewbox = {
305
+ ...viewboxRef.current,
306
+ x: fitResult.x,
307
+ y: fitResult.y,
308
+ zoom: fitResult.zoom,
309
+ width: viewportWidth,
310
+ height: viewportHeight,
311
+ };
312
+ setViewBox(nextViewbox);
313
+ return nextViewbox;
314
+ }, [buildSnapshot, rootRef, setViewBox, viewboxRef]);
315
+ const applyLayout = useCallback(async (input) => {
316
+ const snapshot = buildSnapshot();
317
+ const root = rootRef.current;
318
+ const viewport = {
319
+ width: root?.clientWidth ?? viewboxRef.current.width,
320
+ height: root?.clientHeight ?? viewboxRef.current.height,
321
+ };
322
+ if (mode === "readonly") {
323
+ return {
324
+ positions: snapshot.nodes.map(node => ({
325
+ id: node.id,
326
+ position: node.position,
327
+ })),
328
+ bounds: snapshot.bounds,
329
+ };
330
+ }
331
+ const executor = GRAPH_LAYOUT_EXECUTORS[input.algorithm];
332
+ const layoutInput = {
333
+ nodes: snapshot.nodes,
334
+ links: snapshot.links,
335
+ options: {
336
+ ...input.options,
337
+ viewport,
338
+ },
339
+ };
340
+ const result = await executor(layoutInput);
341
+ applyPositions(result);
342
+ return result;
343
+ }, [applyPositions, buildSnapshot, mode, rootRef, viewboxRef]);
146
344
  useImperativeHandle(ref, () => {
147
345
  const api = {
148
346
  addNode: (node) => setNodeDefs(prev => [...prev, node]),
@@ -152,10 +350,14 @@ function GraphHandle({ ref, graphApiRef, setNodeDefs, setLinkDefs }) {
152
350
  connect,
153
351
  disconnect,
154
352
  getConnections: () => connections,
353
+ getNodeStates: () => Array.from(nodeStateRef.current.values()),
354
+ getLinkStates: () => Array.from(linkStateRef.current.values()),
355
+ centralize,
356
+ applyLayout,
155
357
  };
156
358
  graphApiRef.current = api;
157
359
  return api;
158
- }, [connect, disconnect, connections, setNodeDefs, setLinkDefs, graphApiRef]);
360
+ }, [applyLayout, centralize, connect, connections, disconnect, graphApiRef, linkStateRef, nodeStateRef, setLinkDefs, setNodeDefs]);
159
361
  return null;
160
362
  }
161
363
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/graph/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/graph/index.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/hooks/connection.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C;;;;;GAKG;AACH,wBAAgB,cAAc;;;;EAG7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc;;yBAKhF,KAAK,CAAC,UAAU;;;;EAmB3B;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc;;uBAWhF,KAAK,CAAC,UAAU;;;EAuB3B"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/hooks/connection.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI1C;;;;;GAKG;AACH,wBAAgB,cAAc;;;;EAG7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc;;yBAKhF,KAAK,CAAC,UAAU;;;;EAmB3B;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc;;uBAYhF,KAAK,CAAC,UAAU;;;EAwB3B"}
@@ -2,6 +2,7 @@ import { useContext, useCallback } from "react";
2
2
  import { ConnectionContext } from "../context/connection-context";
3
3
  import { GraphContext } from "../context/graph-context";
4
4
  import useGraphRoot from "./graph-root";
5
+ import useGetViewbox from "./get-viewbox";
5
6
  /**
6
7
  * Hook que expõe o estado de conexões e operações básicas (connect/disconnect)
7
8
  * a partir do ConnectionContext.
@@ -53,8 +54,9 @@ export function usePortDrag(nodeId, portName, connectionType) {
53
54
  */
54
55
  export function usePortDrop(nodeId, portName, connectionType) {
55
56
  const { dragState, endDrag } = useContext(ConnectionContext);
56
- const { mode, viewbox } = useContext(GraphContext);
57
+ const { mode } = useContext(GraphContext);
57
58
  const graphRoot = useGraphRoot();
59
+ const getViewbox = useGetViewbox();
58
60
  const canDrop = dragState.active &&
59
61
  dragState.connectionType === connectionType &&
60
62
  dragState.sourceNodeId !== nodeId;
@@ -66,13 +68,14 @@ export function usePortDrop(nodeId, portName, connectionType) {
66
68
  let cursorPos = { x: 0, y: 0 };
67
69
  if (graph) {
68
70
  const rect = graph.getBoundingClientRect();
71
+ const viewbox = getViewbox();
69
72
  cursorPos = {
70
73
  x: (e.clientX - rect.left) / viewbox.zoom + viewbox.x,
71
74
  y: (e.clientY - rect.top) / viewbox.zoom + viewbox.y,
72
75
  };
73
76
  }
74
77
  endDrag(nodeId, portName, cursorPos);
75
- }, [mode, dragState.active, nodeId, portName, endDrag, viewbox, graphRoot]);
78
+ }, [mode, dragState.active, nodeId, portName, endDrag, getViewbox, graphRoot]);
76
79
  return {
77
80
  dropHandlers: { onMouseUp: handleMouseUp },
78
81
  canDrop,
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/hooks/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/hooks/connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Viewbox } from "../types";
2
+ /**
3
+ * Hook que retorna um getter estável para o viewbox atual, sem causar
4
+ * re-render quando o viewbox muda. Mesma abordagem de `useGetZoom`.
5
+ *
6
+ * @returns Função que retorna o Viewbox mais recente.
7
+ */
8
+ export default function useGetViewbox(): () => Viewbox;
9
+ //# sourceMappingURL=get-viewbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-viewbox.d.ts","sourceRoot":"","sources":["../../src/hooks/get-viewbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,kBAapC"}
@@ -0,0 +1,20 @@
1
+ import { useCallback, useEffect, useRef } from "react";
2
+ import useViewbox from "./viewbox";
3
+ /**
4
+ * Hook que retorna um getter estável para o viewbox atual, sem causar
5
+ * re-render quando o viewbox muda. Mesma abordagem de `useGetZoom`.
6
+ *
7
+ * @returns Função que retorna o Viewbox mais recente.
8
+ */
9
+ export default function useGetViewbox() {
10
+ const viewbox = useViewbox();
11
+ const ref = useRef(viewbox);
12
+ useEffect(() => {
13
+ ref.current = viewbox;
14
+ }, [viewbox]);
15
+ const getViewbox = useCallback(() => {
16
+ return ref.current;
17
+ }, []);
18
+ return getViewbox;
19
+ }
20
+ //# sourceMappingURL=get-viewbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-viewbox.js","sourceRoot":"","sources":["../../src/hooks/get-viewbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,UAAU,MAAM,WAAW,CAAC;AAInC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa;IACjC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,MAAM,CAAU,OAAO,CAAC,CAAC;IAErC,SAAS,CAAC,GAAG,EAAE;QACX,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IAC1B,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,OAAO,GAAG,CAAC,OAAO,CAAC;IACvB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,UAAU,CAAC;AACtB,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=centralizar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"centralizar.d.ts","sourceRoot":"","sources":["../../src/layouts/centralizar.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=centralizar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"centralizar.js","sourceRoot":"","sources":["../../src/layouts/centralizar.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { GraphLayoutInput, GraphLayoutResult } from "../types";
2
+ /**
3
+ * Executa um layout por forças com viés direcional entre origem e destino.
4
+ *
5
+ * @param input Snapshot do grafo e opções compartilhadas
6
+ * @returns Resultado com novas posições para os nós
7
+ */
8
+ export default function forceDirectionLayout(input: GraphLayoutInput): Promise<GraphLayoutResult>;
9
+ //# sourceMappingURL=force-direction-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"force-direction-layout.d.ts","sourceRoot":"","sources":["../../src/layouts/force-direction-layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAI/D;;;;;GAKG;AACH,wBAA8B,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAEtG"}
@@ -0,0 +1,11 @@
1
+ import { runLayoutAlgorithm } from "./shared";
2
+ /**
3
+ * Executa um layout por forças com viés direcional entre origem e destino.
4
+ *
5
+ * @param input Snapshot do grafo e opções compartilhadas
6
+ * @returns Resultado com novas posições para os nós
7
+ */
8
+ export default async function forceDirectionLayout(input) {
9
+ return runLayoutAlgorithm("force-direction", input);
10
+ }
11
+ //# sourceMappingURL=force-direction-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"force-direction-layout.js","sourceRoot":"","sources":["../../src/layouts/force-direction-layout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG9C;;;;;GAKG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAuB;IACtE,OAAO,kBAAkB,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { GraphLayoutAlgorithm, GraphLayoutInput, GraphLayoutResult } from "../types";
2
+ import forceDirectionLayout from "./force-direction-layout";
3
+ import organicLayout from "./organic-layout";
4
+ import radialLayout from "./radial-layout";
5
+ import sequentialLayout from "./sequential-layout";
6
+ import structuralLayout from "./structural-layout";
7
+ import treeLayout from "./tree-layout";
8
+ /** Assinatura compartilhada por todos os executores de layout. */
9
+ export type GraphLayoutExecutor = (input: GraphLayoutInput) => Promise<GraphLayoutResult>;
10
+ /** Mapa estável dos algoritmos de layout disponíveis. */
11
+ export declare const GRAPH_LAYOUT_EXECUTORS: Record<GraphLayoutAlgorithm, GraphLayoutExecutor>;
12
+ export { forceDirectionLayout, organicLayout, radialLayout, sequentialLayout, structuralLayout, treeLayout };
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/layouts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACrF,OAAO,oBAAoB,MAAM,0BAA0B,CAAC;AAC5D,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAO,UAAU,MAAM,eAAe,CAAC;AAGvC,kEAAkE;AAClE,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE1F,yDAAyD;AACzD,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,oBAAoB,EAAE,mBAAmB,CAOpF,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import forceDirectionLayout from "./force-direction-layout";
2
+ import organicLayout from "./organic-layout";
3
+ import radialLayout from "./radial-layout";
4
+ import sequentialLayout from "./sequential-layout";
5
+ import structuralLayout from "./structural-layout";
6
+ import treeLayout from "./tree-layout";
7
+ /** Mapa estável dos algoritmos de layout disponíveis. */
8
+ export const GRAPH_LAYOUT_EXECUTORS = {
9
+ "force-direction": forceDirectionLayout,
10
+ organic: organicLayout,
11
+ radial: radialLayout,
12
+ sequential: sequentialLayout,
13
+ structural: structuralLayout,
14
+ tree: treeLayout,
15
+ };
16
+ export { forceDirectionLayout, organicLayout, radialLayout, sequentialLayout, structuralLayout, treeLayout };
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/layouts/index.ts"],"names":[],"mappings":"AACA,OAAO,oBAAoB,MAAM,0BAA0B,CAAC;AAC5D,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAO,UAAU,MAAM,eAAe,CAAC;AAMvC,yDAAyD;AACzD,MAAM,CAAC,MAAM,sBAAsB,GAAsD;IACrF,iBAAiB,EAAE,oBAAoB;IACvC,OAAO,EAAE,aAAa;IACtB,MAAM,EAAE,YAAY;IACpB,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,gBAAgB;IAC5B,IAAI,EAAE,UAAU;CACnB,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { GraphLayoutInput, GraphLayoutResult } from "../types";
2
+ /**
3
+ * Executa um layout orgânico baseado em relaxamento por forças.
4
+ *
5
+ * @param input Snapshot do grafo e opções compartilhadas
6
+ * @returns Resultado com novas posições para os nós
7
+ */
8
+ export default function organicLayout(input: GraphLayoutInput): Promise<GraphLayoutResult>;
9
+ //# sourceMappingURL=organic-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organic-layout.d.ts","sourceRoot":"","sources":["../../src/layouts/organic-layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAI/D;;;;;GAKG;AACH,wBAA8B,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAE/F"}
@@ -0,0 +1,11 @@
1
+ import { runLayoutAlgorithm } from "./shared";
2
+ /**
3
+ * Executa um layout orgânico baseado em relaxamento por forças.
4
+ *
5
+ * @param input Snapshot do grafo e opções compartilhadas
6
+ * @returns Resultado com novas posições para os nós
7
+ */
8
+ export default async function organicLayout(input) {
9
+ return runLayoutAlgorithm("organic", input);
10
+ }
11
+ //# sourceMappingURL=organic-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organic-layout.js","sourceRoot":"","sources":["../../src/layouts/organic-layout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG9C;;;;;GAKG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CAAC,KAAuB;IAC/D,OAAO,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { GraphLayoutInput, GraphLayoutResult } from "../types";
2
+ /**
3
+ * Executa um layout radial distribuindo camadas ao redor de uma raiz.
4
+ *
5
+ * @param input Snapshot do grafo e opções compartilhadas
6
+ * @returns Resultado com novas posições para os nós
7
+ */
8
+ export default function radialLayout(input: GraphLayoutInput): Promise<GraphLayoutResult>;
9
+ //# sourceMappingURL=radial-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radial-layout.d.ts","sourceRoot":"","sources":["../../src/layouts/radial-layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAI/D;;;;;GAKG;AACH,wBAA8B,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAE9F"}
@@ -0,0 +1,11 @@
1
+ import { runLayoutAlgorithm } from "./shared";
2
+ /**
3
+ * Executa um layout radial distribuindo camadas ao redor de uma raiz.
4
+ *
5
+ * @param input Snapshot do grafo e opções compartilhadas
6
+ * @returns Resultado com novas posições para os nós
7
+ */
8
+ export default async function radialLayout(input) {
9
+ return runLayoutAlgorithm("radial", input);
10
+ }
11
+ //# sourceMappingURL=radial-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radial-layout.js","sourceRoot":"","sources":["../../src/layouts/radial-layout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG9C;;;;;GAKG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,YAAY,CAAC,KAAuB;IAC9D,OAAO,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { GraphLayoutInput, GraphLayoutResult } from "../types";
2
+ /**
3
+ * Executa um layout sequencial em linhas/colunas a partir da ordem do grafo.
4
+ *
5
+ * @param input Snapshot do grafo e opções compartilhadas
6
+ * @returns Resultado com novas posições para os nós
7
+ */
8
+ export default function sequentialLayout(input: GraphLayoutInput): Promise<GraphLayoutResult>;
9
+ //# sourceMappingURL=sequential-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequential-layout.d.ts","sourceRoot":"","sources":["../../src/layouts/sequential-layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAI/D;;;;;GAKG;AACH,wBAA8B,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAElG"}
@@ -0,0 +1,11 @@
1
+ import { runLayoutAlgorithm } from "./shared";
2
+ /**
3
+ * Executa um layout sequencial em linhas/colunas a partir da ordem do grafo.
4
+ *
5
+ * @param input Snapshot do grafo e opções compartilhadas
6
+ * @returns Resultado com novas posições para os nós
7
+ */
8
+ export default async function sequentialLayout(input) {
9
+ return runLayoutAlgorithm("sequential", input);
10
+ }
11
+ //# sourceMappingURL=sequential-layout.js.map