react-html-graph 1.2.2 → 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.
- package/dist/behaviour/move-behaviour.d.ts +50 -0
- package/dist/behaviour/move-behaviour.d.ts.map +1 -0
- package/dist/behaviour/move-behaviour.js +71 -0
- package/dist/behaviour/move-behaviour.js.map +1 -0
- package/dist/calculations/index.d.ts.map +1 -1
- package/dist/calculations/index.js +344 -14
- package/dist/calculations/index.js.map +1 -1
- package/dist/context/connection-context.d.ts.map +1 -1
- package/dist/context/connection-context.js.map +1 -1
- package/dist/context/error-context.d.ts.map +1 -1
- package/dist/context/error-context.js.map +1 -1
- package/dist/context/graph-context.d.ts.map +1 -1
- package/dist/context/graph-context.js.map +1 -1
- package/dist/context/graph-event-bus-context.d.ts +4 -0
- package/dist/context/graph-event-bus-context.d.ts.map +1 -0
- package/dist/context/graph-event-bus-context.js +8 -0
- package/dist/context/graph-event-bus-context.js.map +1 -0
- package/dist/context/graph-root-context.d.ts.map +1 -1
- package/dist/context/graph-root-context.js.map +1 -1
- package/dist/context/link-info-context.d.ts +4 -0
- package/dist/context/link-info-context.d.ts.map +1 -0
- package/dist/context/link-info-context.js +15 -0
- package/dist/context/link-info-context.js.map +1 -0
- package/dist/context/node-event-context.d.ts +4 -0
- package/dist/context/node-event-context.d.ts.map +1 -0
- package/dist/context/node-event-context.js +10 -0
- package/dist/context/node-event-context.js.map +1 -0
- package/dist/context/node-registry-context.d.ts +4 -0
- package/dist/context/node-registry-context.d.ts.map +1 -0
- package/dist/context/node-registry-context.js +13 -0
- package/dist/context/node-registry-context.js.map +1 -0
- package/dist/graph/index.d.ts +2 -2
- package/dist/graph/index.d.ts.map +1 -1
- package/dist/graph/index.js +256 -48
- package/dist/graph/index.js.map +1 -1
- package/dist/hooks/connection.d.ts +1 -1
- package/dist/hooks/graph-event-bus.d.ts +3 -0
- package/dist/hooks/graph-event-bus.d.ts.map +1 -0
- package/dist/hooks/graph-event-bus.js +7 -0
- package/dist/hooks/graph-event-bus.js.map +1 -0
- package/dist/hooks/link-info.d.ts +4 -0
- package/dist/hooks/link-info.d.ts.map +1 -0
- package/dist/hooks/link-info.js +7 -0
- package/dist/hooks/link-info.js.map +1 -0
- package/dist/hooks/node-registry.d.ts +3 -0
- package/dist/hooks/node-registry.d.ts.map +1 -0
- package/dist/hooks/node-registry.js +7 -0
- package/dist/hooks/node-registry.js.map +1 -0
- package/dist/hooks/nodeEvent.d.ts +7 -0
- package/dist/hooks/nodeEvent.d.ts.map +1 -0
- package/dist/hooks/nodeEvent.js +17 -0
- package/dist/hooks/nodeEvent.js.map +1 -0
- package/dist/hooks/use-graph-api.d.ts +50 -0
- package/dist/hooks/use-graph-api.d.ts.map +1 -0
- package/dist/hooks/use-graph-api.js +97 -0
- package/dist/hooks/use-graph-api.js.map +1 -0
- package/dist/link/base.d.ts +9 -20
- package/dist/link/base.d.ts.map +1 -1
- package/dist/link/base.js +17 -290
- package/dist/link/base.js.map +1 -1
- package/dist/link/temp-link.d.ts.map +1 -1
- package/dist/link/temp-link.js +18 -3
- package/dist/link/temp-link.js.map +1 -1
- package/dist/module.d.ts +9 -0
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +9 -0
- package/dist/module.js.map +1 -1
- package/dist/nodes/base.d.ts +2 -1
- package/dist/nodes/base.d.ts.map +1 -1
- package/dist/nodes/base.js +61 -89
- package/dist/nodes/base.js.map +1 -1
- package/dist/paths/bidirectional-path.d.ts +16 -0
- package/dist/paths/bidirectional-path.d.ts.map +1 -0
- package/dist/paths/bidirectional-path.js +260 -0
- package/dist/paths/bidirectional-path.js.map +1 -0
- package/dist/ports/base.d.ts.map +1 -1
- package/dist/ports/base.js +26 -13
- package/dist/ports/base.js.map +1 -1
- package/dist/providers/connection-provider.d.ts +1 -1
- package/dist/providers/connection-provider.d.ts.map +1 -1
- package/dist/providers/connection-provider.js +30 -16
- package/dist/providers/connection-provider.js.map +1 -1
- package/dist/providers/graph-event-bus-provider.d.ts +11 -0
- package/dist/providers/graph-event-bus-provider.d.ts.map +1 -0
- package/dist/providers/graph-event-bus-provider.js +46 -0
- package/dist/providers/graph-event-bus-provider.js.map +1 -0
- package/dist/providers/link-info-provider.d.ts +23 -0
- package/dist/providers/link-info-provider.d.ts.map +1 -0
- package/dist/providers/link-info-provider.js +31 -0
- package/dist/providers/link-info-provider.js.map +1 -0
- package/dist/providers/node-event-context.d.ts +3 -0
- package/dist/providers/node-event-context.d.ts.map +1 -0
- package/dist/providers/node-event-context.js +81 -0
- package/dist/providers/node-event-context.js.map +1 -0
- package/dist/providers/node-registry-provider.d.ts +11 -0
- package/dist/providers/node-registry-provider.d.ts.map +1 -0
- package/dist/providers/node-registry-provider.js +54 -0
- package/dist/providers/node-registry-provider.js.map +1 -0
- package/dist/style.css +1 -0
- package/dist/types.d.ts +206 -38
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/proxy.d.ts +2 -0
- package/dist/utils/proxy.d.ts.map +1 -0
- package/dist/utils/proxy.js +18 -0
- package/dist/utils/proxy.js.map +1 -0
- package/dist/utils/symbols.d.ts +2 -0
- package/dist/utils/symbols.d.ts.map +1 -0
- package/dist/utils/symbols.js +2 -0
- package/dist/utils/symbols.js.map +1 -0
- package/package.json +1 -1
package/dist/ports/base.js
CHANGED
|
@@ -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
|
|
18
|
-
const
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
105
|
-
|
|
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,
|
package/dist/ports/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/ports/base.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;
|
|
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({
|
|
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,
|
|
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({
|
|
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
|
|
34
|
-
}, [
|
|
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(
|
|
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
|
-
}, [
|
|
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
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
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":";AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAG/C;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,
|
|
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"}
|