react-html-graph 1.2.1 → 1.2.3

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 (156) hide show
  1. package/dist/behaviour/move-behaviour.d.ts +50 -0
  2. package/dist/behaviour/move-behaviour.d.ts.map +1 -0
  3. package/dist/behaviour/move-behaviour.js +71 -0
  4. package/dist/behaviour/move-behaviour.js.map +1 -0
  5. package/dist/calculations/index.d.ts +15 -1
  6. package/dist/calculations/index.d.ts.map +1 -1
  7. package/dist/calculations/index.js +1026 -0
  8. package/dist/calculations/index.js.map +1 -1
  9. package/dist/calculations/types.d.ts +70 -0
  10. package/dist/calculations/types.d.ts.map +1 -1
  11. package/dist/context/connection-context.d.ts.map +1 -1
  12. package/dist/context/connection-context.js.map +1 -1
  13. package/dist/context/error-context.d.ts.map +1 -1
  14. package/dist/context/error-context.js.map +1 -1
  15. package/dist/context/graph-context.d.ts.map +1 -1
  16. package/dist/context/graph-context.js.map +1 -1
  17. package/dist/context/graph-event-bus-context.d.ts +4 -0
  18. package/dist/context/graph-event-bus-context.d.ts.map +1 -0
  19. package/dist/context/graph-event-bus-context.js +8 -0
  20. package/dist/context/graph-event-bus-context.js.map +1 -0
  21. package/dist/context/graph-root-context.d.ts.map +1 -1
  22. package/dist/context/graph-root-context.js.map +1 -1
  23. package/dist/context/link-info-context.d.ts +4 -0
  24. package/dist/context/link-info-context.d.ts.map +1 -0
  25. package/dist/context/link-info-context.js +15 -0
  26. package/dist/context/link-info-context.js.map +1 -0
  27. package/dist/context/node-event-context.d.ts +4 -0
  28. package/dist/context/node-event-context.d.ts.map +1 -0
  29. package/dist/context/node-event-context.js +10 -0
  30. package/dist/context/node-event-context.js.map +1 -0
  31. package/dist/context/node-registry-context.d.ts +4 -0
  32. package/dist/context/node-registry-context.d.ts.map +1 -0
  33. package/dist/context/node-registry-context.js +13 -0
  34. package/dist/context/node-registry-context.js.map +1 -0
  35. package/dist/graph/index.d.ts +2 -2
  36. package/dist/graph/index.d.ts.map +1 -1
  37. package/dist/graph/index.js +446 -36
  38. package/dist/graph/index.js.map +1 -1
  39. package/dist/hooks/connection.d.ts +1 -1
  40. package/dist/hooks/connection.d.ts.map +1 -1
  41. package/dist/hooks/connection.js +5 -2
  42. package/dist/hooks/connection.js.map +1 -1
  43. package/dist/hooks/get-viewbox.d.ts +9 -0
  44. package/dist/hooks/get-viewbox.d.ts.map +1 -0
  45. package/dist/hooks/get-viewbox.js +20 -0
  46. package/dist/hooks/get-viewbox.js.map +1 -0
  47. package/dist/hooks/graph-event-bus.d.ts +3 -0
  48. package/dist/hooks/graph-event-bus.d.ts.map +1 -0
  49. package/dist/hooks/graph-event-bus.js +7 -0
  50. package/dist/hooks/graph-event-bus.js.map +1 -0
  51. package/dist/hooks/link-info.d.ts +4 -0
  52. package/dist/hooks/link-info.d.ts.map +1 -0
  53. package/dist/hooks/link-info.js +7 -0
  54. package/dist/hooks/link-info.js.map +1 -0
  55. package/dist/hooks/node-registry.d.ts +3 -0
  56. package/dist/hooks/node-registry.d.ts.map +1 -0
  57. package/dist/hooks/node-registry.js +7 -0
  58. package/dist/hooks/node-registry.js.map +1 -0
  59. package/dist/hooks/nodeEvent.d.ts +7 -0
  60. package/dist/hooks/nodeEvent.d.ts.map +1 -0
  61. package/dist/hooks/nodeEvent.js +17 -0
  62. package/dist/hooks/nodeEvent.js.map +1 -0
  63. package/dist/hooks/use-graph-api.d.ts +50 -0
  64. package/dist/hooks/use-graph-api.d.ts.map +1 -0
  65. package/dist/hooks/use-graph-api.js +97 -0
  66. package/dist/hooks/use-graph-api.js.map +1 -0
  67. package/dist/layouts/centralizar.d.ts +1 -0
  68. package/dist/layouts/centralizar.d.ts.map +1 -0
  69. package/dist/layouts/centralizar.js +2 -0
  70. package/dist/layouts/centralizar.js.map +1 -0
  71. package/dist/layouts/force-direction-layout.d.ts +9 -0
  72. package/dist/layouts/force-direction-layout.d.ts.map +1 -0
  73. package/dist/layouts/force-direction-layout.js +11 -0
  74. package/dist/layouts/force-direction-layout.js.map +1 -0
  75. package/dist/layouts/index.d.ts +13 -0
  76. package/dist/layouts/index.d.ts.map +1 -0
  77. package/dist/layouts/index.js +17 -0
  78. package/dist/layouts/index.js.map +1 -0
  79. package/dist/layouts/organic-layout.d.ts +9 -0
  80. package/dist/layouts/organic-layout.d.ts.map +1 -0
  81. package/dist/layouts/organic-layout.js +11 -0
  82. package/dist/layouts/organic-layout.js.map +1 -0
  83. package/dist/layouts/radial-layout.d.ts +9 -0
  84. package/dist/layouts/radial-layout.d.ts.map +1 -0
  85. package/dist/layouts/radial-layout.js +11 -0
  86. package/dist/layouts/radial-layout.js.map +1 -0
  87. package/dist/layouts/sequential-layout.d.ts +9 -0
  88. package/dist/layouts/sequential-layout.d.ts.map +1 -0
  89. package/dist/layouts/sequential-layout.js +11 -0
  90. package/dist/layouts/sequential-layout.js.map +1 -0
  91. package/dist/layouts/shared.d.ts +10 -0
  92. package/dist/layouts/shared.d.ts.map +1 -0
  93. package/dist/layouts/shared.js +39 -0
  94. package/dist/layouts/shared.js.map +1 -0
  95. package/dist/layouts/structural-layout.d.ts +9 -0
  96. package/dist/layouts/structural-layout.d.ts.map +1 -0
  97. package/dist/layouts/structural-layout.js +11 -0
  98. package/dist/layouts/structural-layout.js.map +1 -0
  99. package/dist/layouts/tree-layout.d.ts +9 -0
  100. package/dist/layouts/tree-layout.d.ts.map +1 -0
  101. package/dist/layouts/tree-layout.js +11 -0
  102. package/dist/layouts/tree-layout.js.map +1 -0
  103. package/dist/link/base.d.ts +10 -20
  104. package/dist/link/base.d.ts.map +1 -1
  105. package/dist/link/base.js +17 -197
  106. package/dist/link/base.js.map +1 -1
  107. package/dist/link/temp-link.d.ts.map +1 -1
  108. package/dist/link/temp-link.js +24 -7
  109. package/dist/link/temp-link.js.map +1 -1
  110. package/dist/module.d.ts +11 -1
  111. package/dist/module.d.ts.map +1 -1
  112. package/dist/module.js +11 -1
  113. package/dist/module.js.map +1 -1
  114. package/dist/nodes/base.d.ts +2 -1
  115. package/dist/nodes/base.d.ts.map +1 -1
  116. package/dist/nodes/base.js +75 -66
  117. package/dist/nodes/base.js.map +1 -1
  118. package/dist/paths/bidirectional-path.d.ts +16 -0
  119. package/dist/paths/bidirectional-path.d.ts.map +1 -0
  120. package/dist/paths/bidirectional-path.js +260 -0
  121. package/dist/paths/bidirectional-path.js.map +1 -0
  122. package/dist/ports/base.d.ts.map +1 -1
  123. package/dist/ports/base.js +26 -13
  124. package/dist/ports/base.js.map +1 -1
  125. package/dist/providers/connection-provider.d.ts +1 -1
  126. package/dist/providers/connection-provider.d.ts.map +1 -1
  127. package/dist/providers/connection-provider.js +30 -16
  128. package/dist/providers/connection-provider.js.map +1 -1
  129. package/dist/providers/graph-event-bus-provider.d.ts +11 -0
  130. package/dist/providers/graph-event-bus-provider.d.ts.map +1 -0
  131. package/dist/providers/graph-event-bus-provider.js +46 -0
  132. package/dist/providers/graph-event-bus-provider.js.map +1 -0
  133. package/dist/providers/link-info-provider.d.ts +23 -0
  134. package/dist/providers/link-info-provider.d.ts.map +1 -0
  135. package/dist/providers/link-info-provider.js +31 -0
  136. package/dist/providers/link-info-provider.js.map +1 -0
  137. package/dist/providers/node-event-context.d.ts +3 -0
  138. package/dist/providers/node-event-context.d.ts.map +1 -0
  139. package/dist/providers/node-event-context.js +81 -0
  140. package/dist/providers/node-event-context.js.map +1 -0
  141. package/dist/providers/node-registry-provider.d.ts +11 -0
  142. package/dist/providers/node-registry-provider.d.ts.map +1 -0
  143. package/dist/providers/node-registry-provider.js +54 -0
  144. package/dist/providers/node-registry-provider.js.map +1 -0
  145. package/dist/style.css +1 -0
  146. package/dist/types.d.ts +359 -38
  147. package/dist/types.d.ts.map +1 -1
  148. package/dist/utils/proxy.d.ts +2 -0
  149. package/dist/utils/proxy.d.ts.map +1 -0
  150. package/dist/utils/proxy.js +18 -0
  151. package/dist/utils/proxy.js.map +1 -0
  152. package/dist/utils/symbols.d.ts +2 -0
  153. package/dist/utils/symbols.d.ts.map +1 -0
  154. package/dist/utils/symbols.js +2 -0
  155. package/dist/utils/symbols.js.map +1 -0
  156. package/package.json +1 -1
@@ -1,8 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useEffect, useContext, useCallback } from "react";
2
+ import { useEffect, useContext, useCallback, useRef } from "react";
3
3
  import { usePortDrag, usePortDrop } from "../hooks/connection";
4
4
  import { ConnectionContext } from "../context/connection-context";
5
5
  import useGraphMode from "../hooks/graph-mode";
6
+ import useNodeRegistry from "../hooks/node-registry";
6
7
  /**
7
8
  * Componente que representa uma porta de nó (input/output/bidirectional).
8
9
  * Registra a porta no contexto de conexões e fornece handlers de arraste
@@ -14,13 +15,15 @@ import useGraphMode from "../hooks/graph-mode";
14
15
  export default function GraphPort({ onClick, onMouseOver, onMouseLeave, ...props }) {
15
16
  const { registerPort, unregisterPort, getGraphApi } = useContext(ConnectionContext);
16
17
  const mode = useGraphMode();
17
- const { dragHandlers, isDragging, canDrag } = usePortDrag(props.nodeId, props.id, props.type);
18
- const { dropHandlers, canDrop } = usePortDrop(props.nodeId, props.id, props.type);
18
+ const registry = useNodeRegistry();
19
+ const portRef = useRef(null);
20
+ const { dragHandlers, isDragging, canDrag } = usePortDrag(props.nodeId, props.id, props.connectionType);
21
+ const { dropHandlers, canDrop } = usePortDrop(props.nodeId, props.id, props.connectionType);
19
22
  useEffect(() => {
20
23
  registerPort({
21
24
  nodeId: props.nodeId,
22
25
  portName: props.id,
23
- connectionType: props.type,
26
+ connectionType: props.connectionType,
24
27
  direction: props.direction,
25
28
  onDragEnd: props.onDragEnd,
26
29
  });
@@ -30,12 +33,19 @@ export default function GraphPort({ onClick, onMouseOver, onMouseLeave, ...props
30
33
  }, [
31
34
  props.nodeId,
32
35
  props.id,
33
- props.type,
36
+ props.connectionType,
34
37
  props.direction,
35
38
  props.onDragEnd,
36
39
  registerPort,
37
40
  unregisterPort,
38
41
  ]);
42
+ // Registra o elemento DOM da porta no NodeRegistry
43
+ useEffect(() => {
44
+ if (!portRef.current)
45
+ return;
46
+ registry.registerPortElement(props.nodeId, props.id, portRef.current);
47
+ return () => registry.unregisterPortElement(props.nodeId, props.id);
48
+ }, [props.nodeId, props.id, registry]);
39
49
  const forwardClickEvents = useCallback((event) => {
40
50
  if (!onClick)
41
51
  return;
@@ -45,7 +55,7 @@ export default function GraphPort({ onClick, onMouseOver, onMouseLeave, ...props
45
55
  onClick({
46
56
  type: 'click',
47
57
  graph: {
48
- type: props.type,
58
+ connectionType: props.connectionType,
49
59
  id: props.id,
50
60
  nodeId: props.nodeId,
51
61
  direction: props.direction,
@@ -53,7 +63,7 @@ export default function GraphPort({ onClick, onMouseOver, onMouseLeave, ...props
53
63
  nativeEvent: event.nativeEvent,
54
64
  api,
55
65
  });
56
- }, [getGraphApi, onClick, props.direction, props.id, props.nodeId, props.type]);
66
+ }, [getGraphApi, onClick, props.direction, props.id, props.nodeId, props.connectionType]);
57
67
  const forwardMouseOverEvents = useCallback((event) => {
58
68
  if (!onMouseOver)
59
69
  return;
@@ -63,7 +73,7 @@ export default function GraphPort({ onClick, onMouseOver, onMouseLeave, ...props
63
73
  onMouseOver({
64
74
  type: 'mouseOver',
65
75
  graph: {
66
- type: props.type,
76
+ connectionType: props.connectionType,
67
77
  id: props.id,
68
78
  nodeId: props.nodeId,
69
79
  direction: props.direction,
@@ -71,7 +81,7 @@ export default function GraphPort({ onClick, onMouseOver, onMouseLeave, ...props
71
81
  nativeEvent: event.nativeEvent,
72
82
  api,
73
83
  });
74
- }, [getGraphApi, onMouseOver, props.direction, props.id, props.nodeId, props.type]);
84
+ }, [getGraphApi, onMouseOver, props.direction, props.id, props.nodeId, props.connectionType]);
75
85
  const forwardMouseLeaveEvents = useCallback((event) => {
76
86
  if (!onMouseLeave)
77
87
  return;
@@ -81,7 +91,7 @@ export default function GraphPort({ onClick, onMouseOver, onMouseLeave, ...props
81
91
  onMouseLeave({
82
92
  type: 'mouseLeave',
83
93
  graph: {
84
- type: props.type,
94
+ connectionType: props.connectionType,
85
95
  id: props.id,
86
96
  nodeId: props.nodeId,
87
97
  direction: props.direction,
@@ -89,7 +99,7 @@ export default function GraphPort({ onClick, onMouseOver, onMouseLeave, ...props
89
99
  nativeEvent: event.nativeEvent,
90
100
  api,
91
101
  });
92
- }, [getGraphApi, onMouseLeave, props.direction, props.id, props.nodeId, props.type]);
102
+ }, [getGraphApi, onMouseLeave, props.direction, props.id, props.nodeId, props.connectionType]);
93
103
  const isOutput = props.direction === "output" || props.direction === "bidirectional";
94
104
  const isInput = props.direction === "input" || props.direction === "bidirectional";
95
105
  const handlers = mode === "edit"
@@ -101,8 +111,11 @@ export default function GraphPort({ onClick, onMouseOver, onMouseLeave, ...props
101
111
  const portAttr = props.direction === "bidirectional"
102
112
  ? "bidirectional"
103
113
  : props.direction;
104
- return (_jsx("node-graph-port", { ...handlers, onClick: forwardClickEvents, onMouseOver: forwardMouseOverEvents, onMouseLeave: forwardMouseLeaveEvents, "node-port": portAttr, "port-id": props.id, children: props.children({
105
- type: props.type,
114
+ const portLocationAttr = typeof props.location === "string"
115
+ ? props.location
116
+ : "coordinates";
117
+ return (_jsx("node-graph-port", { ref: portRef, ...handlers, onClick: forwardClickEvents, onMouseOver: forwardMouseOverEvents, onMouseLeave: forwardMouseLeaveEvents, "node-port": portAttr, "port-location": portLocationAttr, "port-id": props.id, children: props.children({
118
+ connectionType: props.connectionType,
106
119
  id: props.id,
107
120
  nodeId: props.nodeId,
108
121
  direction: props.direction,
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/ports/base.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/ports/base.tsx"],"names":[],"mappings":"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"}
@@ -6,5 +6,5 @@ import { ConnectionProviderProps } from "../types";
6
6
  * @param props Propriedades do provider (ConnectionProviderProps)
7
7
  * @returns JSX.Element
8
8
  */
9
- export default function ConnectionProvider({ graphApiRef, children }: ConnectionProviderProps): import("react/jsx-runtime").JSX.Element;
9
+ export default function ConnectionProvider({ graphApi, children }: ConnectionProviderProps): import("react/jsx-runtime").JSX.Element;
10
10
  //# sourceMappingURL=connection-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection-provider.d.ts","sourceRoot":"","sources":["../../src/providers/connection-provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAkC,uBAAuB,EAA+B,MAAM,UAAU,CAAC;AAMhH;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,uBAAuB,2CAuI5F"}
1
+ {"version":3,"file":"connection-provider.d.ts","sourceRoot":"","sources":["../../src/providers/connection-provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAkC,uBAAuB,EAA8C,MAAM,UAAU,CAAC;AAM/H;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,uBAAuB,2CAoJzF"}
@@ -11,7 +11,7 @@ import useGraphRoot from "../hooks/graph-root";
11
11
  * @param props Propriedades do provider (ConnectionProviderProps)
12
12
  * @returns JSX.Element
13
13
  */
14
- export default function ConnectionProvider({ graphApiRef, children }) {
14
+ export default function ConnectionProvider({ graphApi, children }) {
15
15
  const [connections, setConnections] = useState([]);
16
16
  const [dragState, setDragState] = useState({ active: false });
17
17
  const dragStateRef = useRef({ active: false });
@@ -21,6 +21,7 @@ export default function ConnectionProvider({ graphApiRef, children }) {
21
21
  const viewbox = useViewbox();
22
22
  const graphRoot = useGraphRoot();
23
23
  const viewboxRef = useRef(viewbox);
24
+ const connectionApiRef = useRef(null);
24
25
  viewboxRef.current = viewbox;
25
26
  connectionsRef.current = connections;
26
27
  const registerPort = useCallback((reg) => {
@@ -30,8 +31,8 @@ export default function ConnectionProvider({ graphApiRef, children }) {
30
31
  portRegistry.current.delete(`${nodeId}:${portName}`);
31
32
  }, []);
32
33
  const getGraphApi = useCallback(() => {
33
- return graphApiRef.current;
34
- }, [graphApiRef]);
34
+ return graphApi;
35
+ }, [graphApi]);
35
36
  const connect = useCallback((connection) => {
36
37
  if (mode === "readonly")
37
38
  return;
@@ -68,7 +69,7 @@ export default function ConnectionProvider({ graphApiRef, children }) {
68
69
  const sourcePort = portRegistry.current.get(sourceKey);
69
70
  if (sourcePort?.onDragEnd) {
70
71
  try {
71
- await sourcePort.onDragEnd(graphApiRef.current, {
72
+ await sourcePort.onDragEnd(graphApi, {
72
73
  sourceNodeId: current.sourceNodeId,
73
74
  sourcePortName: current.sourcePortName,
74
75
  connectionType: current.connectionType,
@@ -83,7 +84,7 @@ export default function ConnectionProvider({ graphApiRef, children }) {
83
84
  }
84
85
  // Oculta o link temporário após o callback finalizar
85
86
  setDragState({ active: false });
86
- }, [graphApiRef]);
87
+ }, [graphApi]);
87
88
  // mouseup global: encerra o arraste quando clicado em espaço vazio
88
89
  useEffect(() => {
89
90
  const handleMouseUp = (e) => {
@@ -104,17 +105,30 @@ export default function ConnectionProvider({ graphApiRef, children }) {
104
105
  document.addEventListener("mouseup", handleMouseUp);
105
106
  return () => document.removeEventListener("mouseup", handleMouseUp);
106
107
  }, [endDrag, graphRoot]);
107
- const value = useMemo(() => ({
108
- connections,
109
- dragState,
110
- getGraphApi,
111
- connect,
112
- disconnect,
113
- startDrag,
114
- endDrag,
115
- registerPort,
116
- unregisterPort,
117
- }), [connections, dragState, getGraphApi, connect, disconnect, startDrag, endDrag, registerPort, unregisterPort]);
108
+ const value = useMemo(() => {
109
+ connectionApiRef.current = {
110
+ connect,
111
+ disconnect,
112
+ getConnections: () => connectionsRef.current,
113
+ };
114
+ return {
115
+ connections,
116
+ dragState,
117
+ getGraphApi,
118
+ connect,
119
+ disconnect,
120
+ startDrag,
121
+ endDrag,
122
+ registerPort,
123
+ unregisterPort,
124
+ };
125
+ }, [
126
+ connections, dragState,
127
+ getGraphApi, connect,
128
+ disconnect, startDrag,
129
+ endDrag, registerPort,
130
+ unregisterPort
131
+ ]);
118
132
  return (_jsx(ConnectionContext.Provider, { value: value, children: children }));
119
133
  }
120
134
  //# sourceMappingURL=connection-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection-provider.js","sourceRoot":"","sources":["../../src/providers/connection-provider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-provider.js","sourceRoot":"","sources":["../../src/providers/connection-provider.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ interface GraphEventBusProviderProps {
2
+ children: React.ReactNode;
3
+ }
4
+ /**
5
+ * Provider que mantém um bus centralizado de eventos do grafo.
6
+ * Permite que nós emitam eventos e links (ou outros componentes) assinem
7
+ * eventos de nós específicos para reagir a mudanças de dados, posição, etc.
8
+ */
9
+ export default function GraphEventBusProvider({ children }: GraphEventBusProviderProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=graph-event-bus-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-event-bus-provider.d.ts","sourceRoot":"","sources":["../../src/providers/graph-event-bus-provider.tsx"],"names":[],"mappings":"AAIA,UAAU,0BAA0B;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE,0BAA0B,2CAwDrF"}
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback, useRef, useMemo } from "react";
3
+ import { GraphEventBusContext } from "../context/graph-event-bus-context";
4
+ /**
5
+ * Provider que mantém um bus centralizado de eventos do grafo.
6
+ * Permite que nós emitam eventos e links (ou outros componentes) assinem
7
+ * eventos de nós específicos para reagir a mudanças de dados, posição, etc.
8
+ */
9
+ export default function GraphEventBusProvider({ children }) {
10
+ // Map<"nodeId:eventType", Set<callback>>
11
+ const listeners = useRef(new Map());
12
+ const subscribe = useCallback((nodeId, event, listener) => {
13
+ const key = `${nodeId}:${event}`;
14
+ if (!listeners.current.has(key)) {
15
+ listeners.current.set(key, new Set());
16
+ }
17
+ listeners.current.get(key).add(listener);
18
+ }, []);
19
+ const unsubscribe = useCallback((nodeId, event, listener) => {
20
+ const key = `${nodeId}:${event}`;
21
+ listeners.current.get(key)?.delete(listener);
22
+ }, []);
23
+ const emit = useCallback((nodeId, event, payload) => {
24
+ const key = `${nodeId}:${event}`;
25
+ const handlers = listeners.current.get(key);
26
+ if (!handlers)
27
+ return;
28
+ // Constrói um evento simples com type, nodeId e payload
29
+ const eventObj = { type: event, nodeId, ...payload };
30
+ handlers.forEach(handler => {
31
+ try {
32
+ handler(eventObj);
33
+ }
34
+ catch (error) {
35
+ console.error(`Erro ao despachar evento "${String(event)}" do nó "${nodeId}":`, error);
36
+ }
37
+ });
38
+ }, []);
39
+ const value = useMemo(() => ({
40
+ subscribe,
41
+ unsubscribe,
42
+ emit,
43
+ }), [subscribe, unsubscribe, emit]);
44
+ return (_jsx(GraphEventBusContext.Provider, { value: value, children: children }));
45
+ }
46
+ //# sourceMappingURL=graph-event-bus-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-event-bus-provider.js","sourceRoot":"","sources":["../../src/providers/graph-event-bus-provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAO1E;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAAE,QAAQ,EAA8B;IAClF,yCAAyC;IACzC,MAAM,SAAS,GAAG,MAAM,CAA0D,IAAI,GAAG,EAAE,CAAC,CAAC;IAE7F,MAAM,SAAS,GAAG,WAAW,CAAC,CAC1B,MAAc,EACd,KAAQ,EACR,QAA8B,EAChC,EAAE;QACA,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,QAAiD,CAAC,CAAC;IACvF,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,WAAW,GAAG,WAAW,CAAC,CAC5B,MAAc,EACd,KAAQ,EACR,QAA8B,EAChC,EAAE;QACA,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC;QACjC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,QAAiD,CAAC,CAAC;IAC1F,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,IAAI,GAAG,WAAW,CAAC,CACrB,MAAc,EACd,KAAQ,EACR,OAAiD,EACnD,EAAE;QACA,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,wDAAwD;QACxD,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAqB,CAAC;QACxE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACvB,IAAI,CAAC;gBACD,OAAO,CAAC,QAAQ,CAAC,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,6BAA6B,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3F,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,OAAO,CAA4B,GAAG,EAAE,CAAC,CAAC;QACpD,SAAS;QACT,WAAW;QACX,IAAI;KACP,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAEpC,OAAO,CACH,KAAC,oBAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YACtC,QAAQ,GACmB,CACnC,CAAC;AACN,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { GraphLinkRuntimeState } from "../types";
2
+ interface LinkInfoProviderProps<T = any> {
3
+ id: string;
4
+ from: {
5
+ node: string;
6
+ port: string;
7
+ };
8
+ to: {
9
+ node: string;
10
+ port: string;
11
+ };
12
+ data?: T;
13
+ onStateChange?: (state: GraphLinkRuntimeState) => void;
14
+ children: React.ReactNode;
15
+ }
16
+ /**
17
+ * Provider que consulta o NodeRegistry centralizado para obter
18
+ * os elementos DOM e estados dos nós/portas conectados ao link.
19
+ * Expõe essas informações via LinkInfoContext.
20
+ */
21
+ declare const LinkInfoProvider: import("react").MemoExoticComponent<({ id, from, to, data, onStateChange, children, }: LinkInfoProviderProps) => import("react/jsx-runtime").JSX.Element>;
22
+ export default LinkInfoProvider;
23
+ //# sourceMappingURL=link-info-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-info-provider.d.ts","sourceRoot":"","sources":["../../src/providers/link-info-provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAwB,MAAM,UAAU,CAAC;AAGvE,UAAU,qBAAqB,CAAC,CAAC,GAAG,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACvD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAED;;;;GAIG;AACH,QAAA,MAAM,gBAAgB,yFAOnB,qBAAqB,6CAyBtB,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { memo, useMemo } from "react";
3
+ import { LinkInfoContext } from "../context/link-info-context";
4
+ import useNodeRegistry from "../hooks/node-registry";
5
+ /**
6
+ * Provider que consulta o NodeRegistry centralizado para obter
7
+ * os elementos DOM e estados dos nós/portas conectados ao link.
8
+ * Expõe essas informações via LinkInfoContext.
9
+ */
10
+ const LinkInfoProvider = memo(function LinkInfoProvider({ id, from, to, data, onStateChange, children, }) {
11
+ const registry = useNodeRegistry();
12
+ // Valor do contexto com getters para evitar re-renders ao mover nós.
13
+ // Os getters consultam o registry que usa refs internas,
14
+ // garantindo acesso ao elemento DOM mais recente sem mudar a identidade do contexto.
15
+ const value = useMemo(() => ({
16
+ id,
17
+ from,
18
+ to,
19
+ data,
20
+ get fromNode() { return registry.getNodeElement(from.node); },
21
+ get fromPort() { return registry.getPortElement(from.node, from.port); },
22
+ get toNode() { return registry.getNodeElement(to.node); },
23
+ get toPort() { return registry.getPortElement(to.node, to.port); },
24
+ get fromNodeState() { return registry.getNodeState(from.node); },
25
+ get toNodeState() { return registry.getNodeState(to.node); },
26
+ onStateChange,
27
+ }), [id, from, to, data, onStateChange, registry]);
28
+ return (_jsx(LinkInfoContext.Provider, { value: value, children: children }));
29
+ });
30
+ export default LinkInfoProvider;
31
+ //# sourceMappingURL=link-info-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-info-provider.js","sourceRoot":"","sources":["../../src/providers/link-info-provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,eAAe,MAAM,wBAAwB,CAAC;AAWrD;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,gBAAgB,CAAC,EACpD,EAAE,EACF,IAAI,EACJ,EAAE,EACF,IAAI,EACJ,aAAa,EACb,QAAQ,GACY;IACpB,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IAEnC,qEAAqE;IACrE,yDAAyD;IACzD,qFAAqF;IACrF,MAAM,KAAK,GAAG,OAAO,CAAuB,GAAG,EAAE,CAAC,CAAC;QAC/C,EAAE;QACF,IAAI;QACJ,EAAE;QACF,IAAI;QACJ,IAAI,QAAQ,KAAK,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7D,IAAI,QAAQ,KAAK,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,MAAM,KAAK,OAAO,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,MAAM,KAAK,OAAO,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,aAAa,KAAK,OAAO,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,WAAW,KAAK,OAAO,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5D,aAAa;KAChB,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEnD,OAAO,CACH,KAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YACjC,QAAQ,GACc,CAC9B,CAAC;AACN,CAAC,CAAC,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { NodeEventProviderProps } from "../types";
2
+ export declare const NodeEventProvider: import("react").MemoExoticComponent<({ children, emitter, nodeId }: NodeEventProviderProps) => import("react/jsx-runtime").JSX.Element>;
3
+ //# sourceMappingURL=node-event-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-event-context.d.ts","sourceRoot":"","sources":["../../src/providers/node-event-context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAQR,sBAAsB,EAEzB,MAAM,UAAU,CAAC;AA+FlB,eAAO,MAAM,iBAAiB,sEAzCkE,sBAAsB,6CAyC7D,CAAC"}
@@ -0,0 +1,81 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { memo, useCallback, useRef, useEffect } from "react";
3
+ import { createReadonlyProxy } from "../utils/proxy";
4
+ import { NodeEventContext } from "../context/node-event-context";
5
+ function tryToDispatch(fn, ...args) {
6
+ try {
7
+ return fn(...args);
8
+ }
9
+ catch (error) {
10
+ console.error("Error executing event handler:", error);
11
+ }
12
+ ;
13
+ }
14
+ const EVENT_CLASS_MAP = {
15
+ dataChange: class DataChangeEventImpl {
16
+ type = "dataChange";
17
+ nodeId;
18
+ data;
19
+ constructor(nodeId, payload) {
20
+ this.nodeId = nodeId;
21
+ this.data = createReadonlyProxy(payload.data);
22
+ }
23
+ },
24
+ move: class GraphMoveEventImpl {
25
+ type = "move";
26
+ nodeId;
27
+ position;
28
+ constructor(nodeId, payload) {
29
+ this.nodeId = nodeId;
30
+ this.position = createReadonlyProxy(payload.position);
31
+ }
32
+ },
33
+ connectionChange: class ConnectionChangeEventImpl {
34
+ type = "connectionChange";
35
+ connection;
36
+ nodeId;
37
+ action;
38
+ constructor(nodeId, payload) {
39
+ this.nodeId = nodeId;
40
+ this.connection = createReadonlyProxy(payload.connection);
41
+ this.action = payload.action;
42
+ }
43
+ },
44
+ select: class GraphNodeSelectionChangeEventImpl {
45
+ type = "select";
46
+ nodeId;
47
+ selected;
48
+ constructor(nodeId, payload) {
49
+ this.nodeId = nodeId;
50
+ this.selected = payload.selected;
51
+ }
52
+ },
53
+ };
54
+ const MemizedNodeEventProvider = memo(function NodeEventProvider({ children, emitter, nodeId }) {
55
+ const eventListeners = useRef({});
56
+ const addEventListener = useCallback((type, handler) => {
57
+ if (!eventListeners.current[type]) {
58
+ eventListeners.current[type] = new Set();
59
+ }
60
+ eventListeners.current[type].add(handler);
61
+ }, []);
62
+ const removeEventListener = useCallback((type, handler) => {
63
+ eventListeners.current[type]?.delete(handler);
64
+ }, []);
65
+ const emitEvent = useCallback((type, payload) => {
66
+ const cls = EVENT_CLASS_MAP[type];
67
+ if (!cls) {
68
+ console.warn(`No event class found for event type: ${type}`);
69
+ }
70
+ const event = new cls(nodeId, payload);
71
+ eventListeners.current[type]?.forEach((handler) => {
72
+ tryToDispatch(handler, event);
73
+ });
74
+ }, [nodeId]);
75
+ useEffect(() => {
76
+ emitter(emitEvent);
77
+ }, [emitEvent, emitter]);
78
+ return (_jsx(NodeEventContext.Provider, { value: { addEventListener, removeEventListener }, children: children }));
79
+ });
80
+ export const NodeEventProvider = MemizedNodeEventProvider;
81
+ //# sourceMappingURL=node-event-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-event-context.js","sourceRoot":"","sources":["../../src/providers/node-event-context.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ interface NodeRegistryProviderProps {
2
+ children: React.ReactNode;
3
+ }
4
+ /**
5
+ * Provider que mantém o registro centralizado de elementos DOM
6
+ * e estados runtime de todos os nós/portas ativos no grafo.
7
+ * Substituí o uso de querySelector para localizar elementos.
8
+ */
9
+ export default function NodeRegistryProvider({ children }: NodeRegistryProviderProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=node-registry-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-registry-provider.d.ts","sourceRoot":"","sources":["../../src/providers/node-registry-provider.tsx"],"names":[],"mappings":"AAIA,UAAU,yBAAyB;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE,yBAAyB,2CA0DnF"}
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback, useRef, useMemo } from "react";
3
+ import { NodeRegistryContext } from "../context/node-registry-context";
4
+ /**
5
+ * Provider que mantém o registro centralizado de elementos DOM
6
+ * e estados runtime de todos os nós/portas ativos no grafo.
7
+ * Substituí o uso de querySelector para localizar elementos.
8
+ */
9
+ export default function NodeRegistryProvider({ children }) {
10
+ const nodeElements = useRef(new Map());
11
+ const portElements = useRef(new Map());
12
+ const nodeStates = useRef(new Map());
13
+ const registerNodeElement = useCallback((nodeId, element) => {
14
+ nodeElements.current.set(nodeId, element);
15
+ }, []);
16
+ const unregisterNodeElement = useCallback((nodeId) => {
17
+ nodeElements.current.delete(nodeId);
18
+ }, []);
19
+ const registerPortElement = useCallback((nodeId, portId, element) => {
20
+ portElements.current.set(`${nodeId}:${portId}`, element);
21
+ }, []);
22
+ const unregisterPortElement = useCallback((nodeId, portId) => {
23
+ portElements.current.delete(`${nodeId}:${portId}`);
24
+ }, []);
25
+ const getNodeElement = useCallback((nodeId) => {
26
+ return nodeElements.current.get(nodeId) ?? null;
27
+ }, []);
28
+ const getPortElement = useCallback((nodeId, portId) => {
29
+ return portElements.current.get(`${nodeId}:${portId}`) ?? null;
30
+ }, []);
31
+ const getNodeState = useCallback((nodeId) => {
32
+ return nodeStates.current.get(nodeId) ?? null;
33
+ }, []);
34
+ const updateNodeState = useCallback((state) => {
35
+ nodeStates.current.set(state.id, state);
36
+ }, []);
37
+ const value = useMemo(() => ({
38
+ getNodeElement,
39
+ getPortElement,
40
+ getNodeState,
41
+ registerNodeElement,
42
+ unregisterNodeElement,
43
+ registerPortElement,
44
+ unregisterPortElement,
45
+ updateNodeState,
46
+ }), [
47
+ getNodeElement, getPortElement, getNodeState,
48
+ registerNodeElement, unregisterNodeElement,
49
+ registerPortElement, unregisterPortElement,
50
+ updateNodeState,
51
+ ]);
52
+ return (_jsx(NodeRegistryContext.Provider, { value: value, children: children }));
53
+ }
54
+ //# sourceMappingURL=node-registry-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-registry-provider.js","sourceRoot":"","sources":["../../src/providers/node-registry-provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAOvE;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAE,QAAQ,EAA6B;IAChF,MAAM,YAAY,GAAG,MAAM,CAA2B,IAAI,GAAG,EAAE,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,MAAM,CAA2B,IAAI,GAAG,EAAE,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,MAAM,CAAqC,IAAI,GAAG,EAAE,CAAC,CAAC;IAEzE,MAAM,mBAAmB,GAAG,WAAW,CAAC,CAAC,MAAc,EAAE,OAAoB,EAAE,EAAE;QAC7E,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,qBAAqB,GAAG,WAAW,CAAC,CAAC,MAAc,EAAE,EAAE;QACzD,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,mBAAmB,GAAG,WAAW,CAAC,CAAC,MAAc,EAAE,MAAc,EAAE,OAAoB,EAAE,EAAE;QAC7F,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,qBAAqB,GAAG,WAAW,CAAC,CAAC,MAAc,EAAE,MAAc,EAAE,EAAE;QACzE,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,MAAc,EAAE,EAAE;QAClD,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IACpD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,MAAc,EAAE,MAAc,EAAE,EAAE;QAClE,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC;IACnE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,MAAc,EAAE,EAAE;QAChD,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAClD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,KAA4B,EAAE,EAAE;QACjE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,OAAO,CAA2B,GAAG,EAAE,CAAC,CAAC;QACnD,cAAc;QACd,cAAc;QACd,YAAY;QACZ,mBAAmB;QACnB,qBAAqB;QACrB,mBAAmB;QACnB,qBAAqB;QACrB,eAAe;KAClB,CAAC,EAAE;QACA,cAAc,EAAE,cAAc,EAAE,YAAY;QAC5C,mBAAmB,EAAE,qBAAqB;QAC1C,mBAAmB,EAAE,qBAAqB;QAC1C,eAAe;KAClB,CAAC,CAAC;IAEH,OAAO,CACH,KAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YACrC,QAAQ,GACkB,CAClC,CAAC;AACN,CAAC"}
package/dist/style.css CHANGED
@@ -44,6 +44,7 @@ node-graph-node {
44
44
  }
45
45
 
46
46
  node-graph-temp-link {
47
+ display: block;
47
48
  position: absolute;
48
49
 
49
50
  >svg {