@graph-render/react 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +6 -0
- package/CHANGELOG.md +58 -0
- package/README.md +0 -0
- package/dist/index.js +2509 -0
- package/dist/src/components/EdgePath.d.ts +25 -0
- package/dist/src/components/EdgePath.d.ts.map +1 -0
- package/dist/src/components/Graph.d.ts +6 -0
- package/dist/src/components/Graph.d.ts.map +1 -0
- package/dist/src/components/GraphLabels.d.ts +30 -0
- package/dist/src/components/GraphLabels.d.ts.map +1 -0
- package/dist/src/components/GraphNode.d.ts +35 -0
- package/dist/src/components/GraphNode.d.ts.map +1 -0
- package/dist/src/constants/defaults.d.ts +3 -0
- package/dist/src/constants/defaults.d.ts.map +1 -0
- package/dist/src/hooks/useGraphCollapse.d.ts +15 -0
- package/dist/src/hooks/useGraphCollapse.d.ts.map +1 -0
- package/dist/src/hooks/useGraphHover.d.ts +24 -0
- package/dist/src/hooks/useGraphHover.d.ts.map +1 -0
- package/dist/src/hooks/useGraphModel.d.ts +51 -0
- package/dist/src/hooks/useGraphModel.d.ts.map +1 -0
- package/dist/src/hooks/useGraphSearchState.d.ts +29 -0
- package/dist/src/hooks/useGraphSearchState.d.ts.map +1 -0
- package/dist/src/hooks/useStableConfig.d.ts +25 -0
- package/dist/src/hooks/useStableConfig.d.ts.map +1 -0
- package/dist/src/index.d.ts +7 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/utils/columns.d.ts +7 -0
- package/dist/src/utils/columns.d.ts.map +1 -0
- package/dist/src/utils/pathHighlight.d.ts +29 -0
- package/dist/src/utils/pathHighlight.d.ts.map +1 -0
- package/dist/src/utils/viewport.d.ts +14 -0
- package/dist/src/utils/viewport.d.ts.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +52 -0
- package/project.json +60 -0
- package/src/components/EdgePath.tsx +103 -0
- package/src/components/Graph.tsx +1545 -0
- package/src/components/GraphLabels.tsx +141 -0
- package/src/components/GraphNode.tsx +214 -0
- package/src/constants/defaults.ts +62 -0
- package/src/hooks/useGraphCollapse.ts +53 -0
- package/src/hooks/useGraphHover.ts +206 -0
- package/src/hooks/useGraphModel.ts +445 -0
- package/src/hooks/useGraphSearchState.ts +215 -0
- package/src/hooks/useStableConfig.ts +108 -0
- package/src/index.ts +57 -0
- package/src/utils/columns.ts +51 -0
- package/src/utils/pathHighlight.ts +160 -0
- package/src/utils/viewport.ts +100 -0
- package/tsconfig.json +12 -0
- package/tsconfig.node.json +11 -0
- package/vite.config.ts +17 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { PositionedEdge } from '@graph-render/core';
|
|
3
|
+
export interface EdgePathProps {
|
|
4
|
+
edge: PositionedEdge;
|
|
5
|
+
color: string;
|
|
6
|
+
width: number;
|
|
7
|
+
curveEdges: boolean;
|
|
8
|
+
curveStrength: number;
|
|
9
|
+
markerEnd?: string;
|
|
10
|
+
isHovered?: boolean;
|
|
11
|
+
isSelected?: boolean;
|
|
12
|
+
hoverColor: string;
|
|
13
|
+
selectionColor?: string;
|
|
14
|
+
labelColor?: string;
|
|
15
|
+
selectionMarker?: string;
|
|
16
|
+
hoverMarker?: string;
|
|
17
|
+
hoverEnabled: boolean;
|
|
18
|
+
hoverStrokeWidth?: number;
|
|
19
|
+
selectedStrokeWidth?: number;
|
|
20
|
+
hitStrokeWidth?: number;
|
|
21
|
+
onHoverChange?: (hovered: boolean) => void;
|
|
22
|
+
onClick?: () => void;
|
|
23
|
+
}
|
|
24
|
+
export declare const EdgePath: React.NamedExoticComponent<EdgePathProps>;
|
|
25
|
+
//# sourceMappingURL=EdgePath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EdgePath.d.ts","sourceRoot":"","sources":["../../../src/components/EdgePath.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAiB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAMD,eAAO,MAAM,QAAQ,2CAyEnB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { EdgeData, GraphHandle, GraphProps, NodeData, NxGraphInput, PositionedEdge, PositionedNode } from '@graph-render/types';
|
|
3
|
+
type GraphComponent = <TGraph extends NxGraphInput = NxGraphInput, TNode extends PositionedNode<any, any, any> = PositionedNode, TEdge extends PositionedEdge<any, any> = PositionedEdge, TNodeRecord extends NodeData<any, any, any> = NodeData, TEdgeRecord extends EdgeData<any, any> = EdgeData>(props: GraphProps<TGraph, TNode, TEdge, TNodeRecord, TEdgeRecord> & React.RefAttributes<GraphHandle>) => React.ReactElement | null;
|
|
4
|
+
export declare const Graph: GraphComponent;
|
|
5
|
+
export default Graph;
|
|
6
|
+
//# sourceMappingURL=Graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Graph.d.ts","sourceRoot":"","sources":["../../../src/components/Graph.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,QAAQ,EAER,WAAW,EACX,UAAU,EAMV,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,cAAc,EACf,MAAM,qBAAqB,CAAC;AAy9C7B,KAAK,cAAc,GAAG,CACpB,MAAM,SAAS,YAAY,GAAG,YAAY,EAC1C,KAAK,SAAS,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,cAAc,EAC5D,KAAK,SAAS,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,cAAc,EACvD,WAAW,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,EACtD,WAAW,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,EAEjD,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,GAC/D,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,KAC/B,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAW/B,eAAO,MAAM,KAAK,EAAgB,cAAc,CAAC;AAEjD,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { PositionedNode, LayoutType, LayoutDirection } from '@graph-render/types';
|
|
2
|
+
/**
|
|
3
|
+
* Canonical dimensions for column-label pills. Exported so that the parent
|
|
4
|
+
* Graph component can compute label bounds using the same values for fit-view
|
|
5
|
+
* calculations, eliminating the two-source-of-truth problem.
|
|
6
|
+
*/
|
|
7
|
+
export declare const LABEL_PILL_MIN_WIDTH = 64;
|
|
8
|
+
export declare const LABEL_PILL_HEIGHT = 20;
|
|
9
|
+
export declare const LABEL_PILL_RADIUS = 8;
|
|
10
|
+
export declare function getLabelPillWidth(label: string): number;
|
|
11
|
+
export declare function getEffectiveGraphLabels(positionedNodes: PositionedNode[], layout: LayoutType, layoutDirection: LayoutDirection, labels?: string[], autoLabels?: boolean): {
|
|
12
|
+
orderedXs: number[];
|
|
13
|
+
orderedLabels: string[];
|
|
14
|
+
};
|
|
15
|
+
export interface GraphLabelsProps {
|
|
16
|
+
positionedNodes: PositionedNode[];
|
|
17
|
+
layout: LayoutType;
|
|
18
|
+
layoutDirection: LayoutDirection;
|
|
19
|
+
labels?: string[];
|
|
20
|
+
autoLabels: boolean;
|
|
21
|
+
labelOffset: number;
|
|
22
|
+
/** Background fill of the label pill. Defaults to `#eef1f6`. */
|
|
23
|
+
pillBackground?: string;
|
|
24
|
+
/** Border stroke of the label pill. Defaults to `#d7dbe3`. */
|
|
25
|
+
pillBorderColor?: string;
|
|
26
|
+
/** Text color inside the label pill. Defaults to `#3f434b`. */
|
|
27
|
+
pillTextColor?: string;
|
|
28
|
+
}
|
|
29
|
+
export declare function GraphLabels({ positionedNodes, layout, layoutDirection, labels, autoLabels, labelOffset, pillBackground, pillBorderColor, pillTextColor, }: GraphLabelsProps): import("react/jsx-runtime").JSX.Element | null;
|
|
30
|
+
//# sourceMappingURL=GraphLabels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphLabels.d.ts","sourceRoot":"","sources":["../../../src/components/GraphLabels.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGlF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAQnC,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMvD;AAED,wBAAgB,uBAAuB,CACrC,eAAe,EAAE,cAAc,EAAE,EACjC,MAAM,EAAE,UAAU,EAClB,eAAe,EAAE,eAAe,EAChC,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,UAAU,UAAQ,GACjB;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CAyBlD;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,eAAe,EAAE,eAAe,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,WAAW,CAAC,EAC1B,eAAe,EACf,MAAM,EACN,eAAe,EACf,MAAM,EACN,UAAU,EACV,WAAW,EACX,cAA0B,EAC1B,eAA2B,EAC3B,aAAyB,GAC1B,EAAE,gBAAgB,kDAuDlB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { PositionedNode, Size, VertexComponent } from '@graph-render/types';
|
|
3
|
+
interface GraphNodeProps {
|
|
4
|
+
node: PositionedNode;
|
|
5
|
+
Vertex: VertexComponent;
|
|
6
|
+
isSelected: boolean;
|
|
7
|
+
isFocused: boolean;
|
|
8
|
+
isHighlighted: boolean;
|
|
9
|
+
activePathKey?: string;
|
|
10
|
+
activePathNodeIds?: Set<string>;
|
|
11
|
+
highlightColor: string;
|
|
12
|
+
selectionColor: string;
|
|
13
|
+
nodeBorderColor?: string;
|
|
14
|
+
nodeBorderWidth: number;
|
|
15
|
+
hoverNodeBorderColor: string;
|
|
16
|
+
hoverNodeBothColor: string;
|
|
17
|
+
hoverNodeInColor: string;
|
|
18
|
+
hoverNodeOutColor: string;
|
|
19
|
+
hoverNodeHighlight: boolean;
|
|
20
|
+
hoveredNodeStates: Map<string, {
|
|
21
|
+
in?: boolean;
|
|
22
|
+
out?: boolean;
|
|
23
|
+
}> | undefined;
|
|
24
|
+
onNodeMeasure?: (nodeId: string, size: Size) => void;
|
|
25
|
+
onNodeFocus?: (nodeId: string) => void;
|
|
26
|
+
onNodeClick?: (node: PositionedNode) => void;
|
|
27
|
+
onNodeDoubleClick?: (node: PositionedNode) => void;
|
|
28
|
+
onNodeMouseEnter: (nodeId: string) => void;
|
|
29
|
+
onNodeMouseLeave: () => void;
|
|
30
|
+
onPathHover: (nodeId: string, sourceIndex: number, playerKey?: string) => void;
|
|
31
|
+
onPathLeave: () => void;
|
|
32
|
+
}
|
|
33
|
+
export declare const GraphNode: React.NamedExoticComponent<GraphNodeProps>;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=GraphNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphNode.d.ts","sourceRoot":"","sources":["../../../src/components/GraphNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAI5E,UAAU,cAAc;IACtB,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,EAAE,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAC5E,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACrD,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACnD,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/E,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,eAAO,MAAM,SAAS,4CAkLrB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { GraphConfig } from '@graph-render/types';
|
|
2
|
+
export declare const DEFAULT_CONFIG: Required<Pick<GraphConfig, 'width' | 'height' | 'defaultEdgeType' | 'curveEdges' | 'curveStrength' | 'arrowPadding' | 'routingStyle' | 'edgeSeparation' | 'selfLoopRadius' | 'layout' | 'layoutDirection' | 'autoLabels' | 'labelOffset' | 'nodeSizing' | 'labelMeasurementPaddingX' | 'labelMeasurementPaddingY' | 'labelMeasurementCharWidth' | 'labelMeasurementLineHeight' | 'hoverHighlight' | 'hoverEdgeColor' | 'hoverNodeInColor' | 'hoverNodeOutColor' | 'hoverNodeHighlight' | 'edgeLabelColor'>> & Partial<Pick<GraphConfig, 'hoverNodeBorderColor' | 'hoverNodeBothColor' | 'forceRightToLeft'>>;
|
|
3
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/constants/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,WAAW,EAA+B,MAAM,qBAAqB,CAAC;AAOzF,eAAO,MAAM,cAAc,EAAE,QAAQ,CACnC,IAAI,CACF,WAAW,EACT,OAAO,GACP,QAAQ,GACR,iBAAiB,GACjB,YAAY,GACZ,eAAe,GACf,cAAc,GACd,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,QAAQ,GACR,iBAAiB,GACjB,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,0BAA0B,GAC1B,0BAA0B,GAC1B,2BAA2B,GAC3B,4BAA4B,GAC5B,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,GAClB,mBAAmB,GACnB,oBAAoB,GACpB,gBAAgB,CACnB,CACF,GACC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,sBAAsB,GAAG,oBAAoB,GAAG,kBAAkB,CAAC,CAyB9F,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface UseGraphCollapseOptions {
|
|
2
|
+
collapsedNodeIds?: string[];
|
|
3
|
+
defaultCollapsedNodeIds?: string[];
|
|
4
|
+
onCollapsedNodeIdsChange?: (nodeIds: string[]) => void;
|
|
5
|
+
}
|
|
6
|
+
interface UseGraphCollapseResult {
|
|
7
|
+
collapsedIds: string[];
|
|
8
|
+
collapsedNodeSet: Set<string>;
|
|
9
|
+
pendingExpansionNodeSet: Set<string>;
|
|
10
|
+
updateCollapsedNodeIds: (next: string[] | ((current: string[]) => string[])) => void;
|
|
11
|
+
setPendingExpansionNodeIds: React.Dispatch<React.SetStateAction<string[]>>;
|
|
12
|
+
}
|
|
13
|
+
export declare const useGraphCollapse: ({ collapsedNodeIds, defaultCollapsedNodeIds, onCollapsedNodeIdsChange, }: UseGraphCollapseOptions) => UseGraphCollapseResult;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=useGraphCollapse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGraphCollapse.d.ts","sourceRoot":"","sources":["../../../src/hooks/useGraphCollapse.ts"],"names":[],"mappings":"AAEA,UAAU,uBAAuB;IAC/B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACxD;AAED,UAAU,sBAAsB;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,sBAAsB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IACrF,0BAA0B,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;CAC5E;AAED,eAAO,MAAM,gBAAgB,GAAI,0EAI9B,uBAAuB,KAAG,sBAgC5B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { PositionedEdge } from '@graph-render/types';
|
|
2
|
+
import { FocusedPath } from '../utils/pathHighlight';
|
|
3
|
+
export declare function useGraphHover(positionedNodes: Array<{
|
|
4
|
+
id: string;
|
|
5
|
+
position: {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
};
|
|
9
|
+
meta?: Record<string, unknown>;
|
|
10
|
+
}>, positionedEdges: PositionedEdge[], hoverHighlight: boolean): {
|
|
11
|
+
hoveredEdgeId: string | null;
|
|
12
|
+
setHoveredEdgeId: import("react").Dispatch<import("react").SetStateAction<string | null>>;
|
|
13
|
+
hoveredNodeId: string | null;
|
|
14
|
+
setHoveredNodeId: import("react").Dispatch<import("react").SetStateAction<string | null>>;
|
|
15
|
+
focusedPath: FocusedPath | null;
|
|
16
|
+
setFocusedPath: import("react").Dispatch<import("react").SetStateAction<FocusedPath | null>>;
|
|
17
|
+
pathHighlight: import("@graph-render/types").PathTraversalResult | null;
|
|
18
|
+
hoveredNodeStates: Map<string, {
|
|
19
|
+
in: boolean;
|
|
20
|
+
out: boolean;
|
|
21
|
+
}> | null;
|
|
22
|
+
edgesForRender: PositionedEdge<Record<string, unknown>, unknown>[];
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=useGraphHover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGraphHover.d.ts","sourceRoot":"","sources":["../../../src/hooks/useGraphHover.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAU,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAEL,WAAW,EAEZ,MAAM,wBAAwB,CAAC;AAEhC,wBAAgB,aAAa,CAC3B,eAAe,EAAE,KAAK,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC,EACF,eAAe,EAAE,cAAc,EAAE,EACjC,cAAc,EAAE,OAAO;;;;;;;;;YAwDa,OAAO;aAAO,OAAO;;;EAqI1D"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { EdgeData, GraphConfig, GraphSearchResults, LayoutOptions, NodeData, NxGraphInput, PositionedEdge, PositionedNode, RouteEdgesOptions } from '@graph-render/types';
|
|
2
|
+
import type { NormalizedGraphConfig } from '@graph-render/core';
|
|
3
|
+
interface UseGraphModelOptions {
|
|
4
|
+
graph: NxGraphInput;
|
|
5
|
+
config: NormalizedGraphConfig;
|
|
6
|
+
mergedTheme: NonNullable<GraphConfig['theme']>;
|
|
7
|
+
collapsedIds: string[];
|
|
8
|
+
hiddenNodeIds?: string[];
|
|
9
|
+
searchQuery?: string;
|
|
10
|
+
hideUnmatchedSearch?: boolean;
|
|
11
|
+
searchPredicate?: (node: NodeData, query: string) => boolean;
|
|
12
|
+
highlightedNodeIds?: string[];
|
|
13
|
+
highlightedEdgeIds?: string[];
|
|
14
|
+
highlightStrategy?: (context: {
|
|
15
|
+
nodes: NodeData[];
|
|
16
|
+
edges: EdgeData[];
|
|
17
|
+
query: string;
|
|
18
|
+
matchedNodeIds: string[];
|
|
19
|
+
matchedEdgeIds: string[];
|
|
20
|
+
}) => Partial<GraphSearchResults>;
|
|
21
|
+
onSearchResultsChange?: (results: GraphSearchResults) => void;
|
|
22
|
+
layoutNodesOverride?: (options: LayoutOptions) => PositionedNode[];
|
|
23
|
+
routeEdgesOverride?: (nodes: PositionedNode[], edges: EdgeData[], options?: RouteEdgesOptions) => PositionedEdge[];
|
|
24
|
+
/**
|
|
25
|
+
* Called whenever an internal layout or routing step throws.
|
|
26
|
+
* - `'layout'` — the default `layoutNodes` threw
|
|
27
|
+
* - `'layout-override'` — a `layoutNodesOverride` threw (default was used as fallback)
|
|
28
|
+
* - `'routing'` — the default `routeEdges` threw
|
|
29
|
+
* - `'routing-override'`— a `routeEdgesOverride` threw (default was used as fallback)
|
|
30
|
+
*/
|
|
31
|
+
onError?: (error: Error, context: {
|
|
32
|
+
graph: NxGraphInput;
|
|
33
|
+
phase: 'layout' | 'layout-override' | 'routing' | 'routing-override';
|
|
34
|
+
}) => void;
|
|
35
|
+
}
|
|
36
|
+
export interface GraphModelResult {
|
|
37
|
+
childNodeIdsByParent: Map<string, string[]>;
|
|
38
|
+
effectiveHighlightedEdgeSet: Set<string>;
|
|
39
|
+
effectiveHighlightedNodeSet: Set<string>;
|
|
40
|
+
handleNodeMeasure: (nodeId: string, size: {
|
|
41
|
+
width: number;
|
|
42
|
+
height: number;
|
|
43
|
+
}) => void;
|
|
44
|
+
positionedEdges: PositionedEdge[];
|
|
45
|
+
positionedNodes: PositionedNode[];
|
|
46
|
+
visibleEdges: EdgeData[];
|
|
47
|
+
visibleNodesWithMeasuredSize: NodeData[];
|
|
48
|
+
}
|
|
49
|
+
export declare const useGraphModel: ({ graph, config, mergedTheme, collapsedIds, hiddenNodeIds, searchQuery, hideUnmatchedSearch, searchPredicate, highlightedNodeIds, highlightedEdgeIds, highlightStrategy, onSearchResultsChange, layoutNodesOverride, routeEdgesOverride, onError, }: UseGraphModelOptions) => GraphModelResult;
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=useGraphModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGraphModel.d.ts","sourceRoot":"","sources":["../../../src/hooks/useGraphModel.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,cAAc,EACd,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAmIhE,UAAU,oBAAoB;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7D,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE;QAC5B,KAAK,EAAE,QAAQ,EAAE,CAAC;QAClB,KAAK,EAAE,QAAQ,EAAE,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,cAAc,EAAE,MAAM,EAAE,CAAC;KAC1B,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAClC,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC9D,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,cAAc,EAAE,CAAC;IACnE,kBAAkB,CAAC,EAAE,CACnB,KAAK,EAAE,cAAc,EAAE,EACvB,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,CAAC,EAAE,iBAAiB,KACxB,cAAc,EAAE,CAAC;IACtB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,QAAQ,GAAG,iBAAiB,GAAG,SAAS,GAAG,kBAAkB,CAAA;KAAE,KAAK,IAAI,CAAC;CAC1I;AAED,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACrF,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,YAAY,EAAE,QAAQ,EAAE,CAAC;IACzB,4BAA4B,EAAE,QAAQ,EAAE,CAAC;CAC1C;AAED,eAAO,MAAM,aAAa,GAAI,qPAgB3B,oBAAoB,KAAG,gBA6OzB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { EdgeData, GraphSearchResults, NodeData } from '@graph-render/types';
|
|
2
|
+
interface UseGraphSearchStateOptions<TNode extends NodeData<any, any, any> = NodeData, TEdge extends EdgeData<any, any> = EdgeData> {
|
|
3
|
+
nodes: TNode[];
|
|
4
|
+
edges: TEdge[];
|
|
5
|
+
collapsedIds: string[];
|
|
6
|
+
hiddenNodeIds?: string[];
|
|
7
|
+
searchQuery?: string;
|
|
8
|
+
hideUnmatchedSearch?: boolean;
|
|
9
|
+
searchPredicate?: (node: TNode, query: string) => boolean;
|
|
10
|
+
highlightedNodeIds?: string[];
|
|
11
|
+
highlightedEdgeIds?: string[];
|
|
12
|
+
highlightStrategy?: (context: {
|
|
13
|
+
nodes: TNode[];
|
|
14
|
+
edges: TEdge[];
|
|
15
|
+
query: string;
|
|
16
|
+
matchedNodeIds: string[];
|
|
17
|
+
matchedEdgeIds: string[];
|
|
18
|
+
}) => Partial<GraphSearchResults>;
|
|
19
|
+
onSearchResultsChange?: (results: GraphSearchResults) => void;
|
|
20
|
+
}
|
|
21
|
+
export declare const useGraphSearchState: <TNode extends NodeData<any, any, any> = NodeData, TEdge extends EdgeData<any, any> = EdgeData>({ nodes, edges, collapsedIds, hiddenNodeIds, searchQuery, hideUnmatchedSearch, searchPredicate, highlightedNodeIds, highlightedEdgeIds, highlightStrategy, onSearchResultsChange, }: UseGraphSearchStateOptions<TNode, TEdge>) => {
|
|
22
|
+
effectiveHighlightedNodeSet: Set<string>;
|
|
23
|
+
effectiveHighlightedEdgeSet: Set<string>;
|
|
24
|
+
visibleNodes: TNode[];
|
|
25
|
+
visibleEdges: TEdge[];
|
|
26
|
+
childNodeIdsByParent: Map<string, string[]>;
|
|
27
|
+
};
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=useGraphSearchState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGraphSearchState.d.ts","sourceRoot":"","sources":["../../../src/hooks/useGraphSearchState.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE7E,UAAU,0BAA0B,CAClC,KAAK,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,EAChD,KAAK,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ;IAE3C,KAAK,EAAE,KAAK,EAAE,CAAC;IACf,KAAK,EAAE,KAAK,EAAE,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1D,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE;QAC5B,KAAK,EAAE,KAAK,EAAE,CAAC;QACf,KAAK,EAAE,KAAK,EAAE,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,cAAc,EAAE,MAAM,EAAE,CAAC;KAC1B,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAClC,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC/D;AAED,eAAO,MAAM,mBAAmB,GAC9B,KAAK,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,EAChD,KAAK,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,EAC3C,qLAYC,0BAA0B,CAAC,KAAK,EAAE,KAAK,CAAC;;;;;;CA6K1C,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the same reference for a config-like object as long as its
|
|
3
|
+
* serialized form has not changed.
|
|
4
|
+
*
|
|
5
|
+
* This prevents a common foot-gun where consumers pass an inline object
|
|
6
|
+
* literal as the `config` prop:
|
|
7
|
+
*
|
|
8
|
+
* <Graph config={{ layout: 'dag' }} ... />
|
|
9
|
+
*
|
|
10
|
+
* Without stabilization, every parent render creates a new object reference,
|
|
11
|
+
* which invalidates the normalizeGraphConfig memo and cascades through the
|
|
12
|
+
* entire graph model pipeline (layout, edge routing, etc.), causing full
|
|
13
|
+
* recomputes on every keystroke / scroll / hover in the parent tree.
|
|
14
|
+
*
|
|
15
|
+
* `GraphConfig` only contains JSON-serializable values (strings, numbers,
|
|
16
|
+
* booleans, string arrays, and theme objects with the same), so JSON.stringify
|
|
17
|
+
* is a reliable, cheap equality check here.
|
|
18
|
+
*
|
|
19
|
+
* Note: if `config` contains function-typed fields, those are intentionally
|
|
20
|
+
* excluded from the comparison (JSON.stringify omits them). Functions should
|
|
21
|
+
* be passed as separate, memoized props rather than embedded in the config
|
|
22
|
+
* object.
|
|
23
|
+
*/
|
|
24
|
+
export declare function useStableConfig<T>(config: T): T;
|
|
25
|
+
//# sourceMappingURL=useStableConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useStableConfig.d.ts","sourceRoot":"","sources":["../../../src/hooks/useStableConfig.ts"],"names":[],"mappings":"AAyEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAW/C"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { EdgeType, LayoutType, LayoutDirection, NodeSide } from '@graph-render/types';
|
|
2
|
+
export type { DragState, EdgeComponent, EdgeData, EdgeId, EdgePathProps, EdgeRenderer, EdgeRoutingContext, GraphConfig, GraphControlsPosition, GraphHandle, GraphHoverMeta, GraphProps, GraphRenderContext, GraphSearchResults, GraphSelection, GraphTheme, GraphTopology, GraphViewport, LayoutOptions, NodeData, NodeId, NodeMeasurementHints, NodeRenderer, NodeSizingMode, NxEdgeAttrs, NxGraphInput, NxNodeAttrs, PathHoverOptions, PathTraversalOptions, PathTraversalResult, Point, PositionedEdge, PositionedNode, RenderConfig, RenderGraphToSvgOptions, RenderGraphToSvgResult, RenderTheme, RouteEdgesOptions, Size, TreeMetrics, VertexComponent, VertexComponentProps, } from '@graph-render/types';
|
|
3
|
+
export { Graph } from './components/Graph';
|
|
4
|
+
export { EdgePath } from './components/EdgePath';
|
|
5
|
+
export { groupPositionedNodesByColumn } from './utils/columns';
|
|
6
|
+
export { renderGraphToSvg, layoutNodes, routeEdges, fromNxGraph, buildEdgePath, } from '@graph-render/core';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACtF,YAAY,EACV,SAAS,EACT,aAAa,EACb,QAAQ,EACR,MAAM,EACN,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACb,QAAQ,EACR,MAAM,EACN,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,EACL,cAAc,EACd,cAAc,EACd,YAAY,EACZ,uBAAuB,EACvB,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,IAAI,EACJ,WAAW,EACX,eAAe,EACf,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAG/D,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,GACd,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PositionedNode } from '@graph-render/types';
|
|
2
|
+
export interface NodeColumn<TNode extends PositionedNode = PositionedNode> {
|
|
3
|
+
centerX: number;
|
|
4
|
+
nodes: TNode[];
|
|
5
|
+
}
|
|
6
|
+
export declare const groupPositionedNodesByColumn: <TNode extends PositionedNode = PositionedNode>(nodes: TNode[], tolerance?: number) => NodeColumn<TNode>[];
|
|
7
|
+
//# sourceMappingURL=columns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../../src/utils/columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,MAAM,WAAW,UAAU,CAAC,KAAK,SAAS,cAAc,GAAG,cAAc;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,EAAE,CAAC;CAChB;AAMD,eAAO,MAAM,4BAA4B,GAAI,KAAK,SAAS,cAAc,GAAG,cAAc,EACxF,OAAO,KAAK,EAAE,EACd,YAAW,MAAiC,KAC3C,UAAU,CAAC,KAAK,CAAC,EAiCnB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { PathTraversalResult, PositionedEdge } from '@graph-render/types';
|
|
2
|
+
export interface FocusedPath {
|
|
3
|
+
nodeId: string;
|
|
4
|
+
sourceIndex: number | null;
|
|
5
|
+
pathKey?: string;
|
|
6
|
+
}
|
|
7
|
+
type NodeWithPathMeta = {
|
|
8
|
+
id: string;
|
|
9
|
+
meta?: Record<string, unknown>;
|
|
10
|
+
};
|
|
11
|
+
export declare function extractPathKeysFromNodes(nodes: NodeWithPathMeta[]): Map<string, string[]>;
|
|
12
|
+
export declare function traverseHighlightedPath(options: {
|
|
13
|
+
startNodeId: string;
|
|
14
|
+
sourceIndex?: number | null;
|
|
15
|
+
pathKey?: string;
|
|
16
|
+
incomingEdgesByTarget: Map<string, PositionedEdge[]>;
|
|
17
|
+
pathKeysByNode?: Map<string, string[]>;
|
|
18
|
+
/**
|
|
19
|
+
* Hard upper bound on the number of nodes visited. Prevents the traversal
|
|
20
|
+
* from freezing the UI on dense graphs when neither a pathKey nor a valid
|
|
21
|
+
* sourceIndex is supplied and the algorithm falls back to following all
|
|
22
|
+
* incoming edges.
|
|
23
|
+
*
|
|
24
|
+
* Defaults to 500.
|
|
25
|
+
*/
|
|
26
|
+
maxNodes?: number;
|
|
27
|
+
}): PathTraversalResult;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=pathHighlight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathHighlight.d.ts","sourceRoot":"","sources":["../../../src/utils/pathHighlight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,mBAAmB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAElF,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,KAAK,gBAAgB,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC;AAMF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA4CzF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IACrD,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,mBAAmB,CAiFtB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { GraphViewport, PositionedNode } from '@graph-render/types';
|
|
2
|
+
export interface GraphBounds {
|
|
3
|
+
minX: number;
|
|
4
|
+
minY: number;
|
|
5
|
+
maxX: number;
|
|
6
|
+
maxY: number;
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
}
|
|
10
|
+
export declare const clampZoom: (zoom: number, minZoom: number, maxZoom: number) => number;
|
|
11
|
+
export declare const getGraphBounds: (nodes: PositionedNode[]) => GraphBounds | null;
|
|
12
|
+
export declare const getFitViewport: (bounds: GraphBounds | null, width: number, height: number, padding: number, minZoom: number, maxZoom: number) => GraphViewport;
|
|
13
|
+
export declare const centerViewportOnNode: (node: PositionedNode, width: number, height: number, currentZoom: number) => GraphViewport;
|
|
14
|
+
//# sourceMappingURL=viewport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewport.d.ts","sourceRoot":"","sources":["../../../src/utils/viewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEpE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAKD,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,EAAE,SAAS,MAAM,KAAG,MAE1E,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,OAAO,cAAc,EAAE,KAAG,WAAW,GAAG,IAkCtE,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,QAAQ,WAAW,GAAG,IAAI,EAC1B,OAAO,MAAM,EACb,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,SAAS,MAAM,KACd,aAoBF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,MAAM,cAAc,EACpB,OAAO,MAAM,EACb,QAAQ,MAAM,EACd,aAAa,MAAM,KAClB,aAWF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.promise.d.ts","../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../../node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/prop-types/index.d.ts","../../../node_modules/@types/react/index.d.ts","../../../node_modules/@types/react/jsx-runtime.d.ts","../../types/dist/node.d.ts","../../types/dist/config.d.ts","../../types/dist/edge.d.ts","../../types/dist/graph.d.ts","../../types/dist/rendering.d.ts","../../types/dist/routing.d.ts","../../types/dist/layout.d.ts","../../types/dist/react.d.ts","../../types/dist/graph-utils.d.ts","../../types/dist/svg.d.ts","../../types/dist/index.d.ts","../../core-graph-render/dist/rendering/svg.d.ts","../../core-graph-render/dist/rendering/defaultRenderers.d.ts","../../core-graph-render/dist/rendering/utils.d.ts","../../core-graph-render/dist/rendering/index.d.ts","../../core-graph-render/dist/layouts/grid.d.ts","../../core-graph-render/dist/layouts/centered.d.ts","../../core-graph-render/dist/layouts/radialTree.d.ts","../../core-graph-render/dist/layouts/tree.d.ts","../../core-graph-render/dist/layouts/dag.d.ts","../../core-graph-render/dist/layouts/forceDirected.d.ts","../../core-graph-render/dist/layouts/compactBracket.d.ts","../../core-graph-render/dist/layouts/orthogonalFlow.d.ts","../../core-graph-render/dist/layouts/index.d.ts","../../core-graph-render/dist/edges/routing.d.ts","../../core-graph-render/dist/edges/pathBuilder.d.ts","../../core-graph-render/dist/edges/collision.d.ts","../../core-graph-render/dist/edges/index.d.ts","../../core-graph-render/dist/utils/graphParser.d.ts","../../core-graph-render/dist/utils/constants.d.ts","../../core-graph-render/dist/utils/graphTraversal.d.ts","../../core-graph-render/dist/utils/nodeSizing.d.ts","../../core-graph-render/dist/utils/nodeMetrics.d.ts","../../core-graph-render/dist/utils/config.d.ts","../../core-graph-render/dist/utils/index.d.ts","../../core-graph-render/dist/index.d.ts","../src/utils/pathHighlight.ts","../src/hooks/useGraphHover.ts","../src/hooks/useGraphCollapse.ts","../src/hooks/useGraphSearchState.ts","../src/hooks/useGraphModel.ts","../src/hooks/useStableConfig.ts","../src/utils/columns.ts","../src/utils/viewport.ts","../src/components/EdgePath.tsx","../src/components/GraphLabels.tsx","../src/components/GraphNode.tsx","../src/components/Graph.tsx","../src/index.ts","../src/constants/defaults.ts","../../../node_modules/vite/types/hmrPayload.d.ts","../../../node_modules/vite/types/customEvent.d.ts","../../../node_modules/vite/types/hot.d.ts","../../../node_modules/vite/types/importGlob.d.ts","../../../node_modules/vite/types/importMeta.d.ts","../../../node_modules/vite/client.d.ts"],"fileIdsList":[[83,84,85],[86],[142],[138],[139],[140,141],[98],[112,113,114],[98,102,111,115,122],[98,103,104,105,106,107,108,109,110],[99,100,101],[116,117,118,119,120,121],[86,87,123],[86,87,98,123,125,126,128,129,130,131,132,133,134],[86,87,98,130],[86,87,98],[87,98],[86,87],[86,87,98,123,124],[86,87,98,123,127],[87,98,123,130,132,135],[88],[88,89],[90],[88,90],[88,89,90,91,92,93,94,95,96,97],[88,89,90],[86,88,89,90,91,93,94]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"7a3aa194cfd5919c4da251ef04ea051077e22702638d4edcb9579e9101653519","affectsGlobalScope":true,"impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},"75c71865f1497b01b89a0e1532c5141e47b0fe1be38c24ac175bc70bbd73df53","69c8fd0dd8af7f0308ab72b50995d3561cdb70fa754e2ae6f64247e402813f75","19ffe34683f89c2dbfec459f437123831e94f6e291f1c4be6baa3f5ed013897d","9300ec2ce65001e7ac35cd260d10635fe80be5df44d08879450b1640134cc40b","63b801ebefdd1efb495c45716cb0fb78b851dee9038b8031ba8edfacab71ea92","0620622acb967fe2238d73889f83b05d42b37d7e29f0f8a856cdbfefac1693fc","b61028c5b619470fc15defe13fe4eefd470fce81166e922532ce6492e97be1d9","d33a1bc5b93f6545583f82727b18f92ba38311d101d98674661c158600eed99c","bbe2fcddc256f938a57a97c77ed949e962df916f78173cebe02def9c90a5e570","ce82317866553c55b10f8a869df9a44974a612449e1cee1adda8686f90a79f2f","eb3b16859edc4235a1eb695a04747a1ead5b6823b393a6140a10c3752e1ee356","ec1ba3e2b36a06c72f178ce9a3a8ec82429d7db48dbc87c12c010258b2e00319","fa1e91ceedee4ddc53ae0bf0dc54216a584a6f7f91840ffaae908d9e0dfa416d","a06b8315c444e3834f02d0f17381f70cca5cec5f7129b9319344b0dc25654dee","70ffc1f3efb41595eba467e352a5c61619e683c064a7715023f924cdb0c668bc","a53aa6bcc1ac51407bfa41bd832b11dd615b0e83683da1c5277ce0608183d88e","d6e3d0b0d93998faaea6f83cec1d98b019279abbfe53849f1dfdbc1eaaa53244","3166f64f38e309d784390256e453a31f898aefcd1681488231c4a8a2944f581b","ee38f9cf70ebbbebe3fc387b47060c9f3c2baf0c2ae75d9e1084f75cc26c2a16","e084d4088b67b2646251968f86697b5d7437a70c0cf9b5fb6b268b2be67e8a88","3facd92ab4f724f10c0cac5b8490ca4cce7e0a33ff55f7ec57fd96a6e32457b8","963f7ad729a6c02a1d7d5c357dccb37d8fefc40575762ebee9b1fb41b7ee935f","d48f74a1ddcb27196d1ca9f255182fe05652788c9d83a6fd77091900587544ab","816fdb229bb550091f58d67e1a567991a807c9619ccbbe04882adee7629c7682","e3fae6234cf3b93cf5c0e8e50e8747a5397a207a3f343cf2100c46f4afc732c5","d92d031ebc49efde80a25d16216936f9ca9c19c3365538d686ff6967675872d7","6b69eec8b7bc41bfd7bd25d703293a6cc544b857eafced81b69505e6271362ad","6f6340e35418c0b70b09e857a0c53e83bdd60f903ae65cd7e7e978a71a3365de","68d2509ba61a59772290d2959b30bc1a4789c834e9100776940c4014488e474e","4f0e11a63a83a2c8725cd70e05b163cb2e8cf894e184c3f36a653e117ab50a7b","3161e0c011f048ba77ba682e9b8d22763a15289897e91613490f6da1f58659d2","106a74a591a15556956a5b4ded3ae171b6998e6a6106fc04cf370844ab1baed5","6079455085ded32fcfc0c398f91d87f714a63aaae5a73cc695a3d749842335f1","b91a4de97983a5b4ac10e9c97d03032a39393c695cc7ed7b39e3692afddc83b8","9dcdab99e2856ab507cdcc944dfffda12e7e9ed785e6057845e1a1a177dd6e77","b81c33e40737d8197f930e84863db5191c392ed2bb5c334800befd022881a56e",{"version":"41cbeb0f6797857aaaeab3a083fb255587f252336b6a792ed4dd4383a7116249","signature":"dc712dcd641ca83a118d565e9919599f2e48b870dcd2b09f6d5e15b286f7176a"},{"version":"12a8d34cbb9b28a0150a3631c6e9ff589271275bbc7dc47e2a646394b88921cd","signature":"3638034bf9a510ac54b44013868f592b9e2c7c467380a3e00f48b9ba3ed9d1ca"},{"version":"3d98357e8f15a291c70b69f90a7ccd17b5607c4e95effc9b132ef0120cccdb57","signature":"6a4eb256d20064fe641daf1680857d9260375aa26ef6dd0fa14553d7a423f80e"},{"version":"e8a454ffd6f5121c59b0f503b473de8076f8c0c753f6c08fe8f5fe88461736a8","signature":"e84b112e2aa17695424cbc27c7f454850c4017b4a5650d09fffbf27b9a609262"},{"version":"e6d7f45493ba32560f97592defbf07bf1e8c325bd4fd7fbd7d3d50768bc4ed16","signature":"b5cb0bfe3905797766dbe96c1ddd608d785e49f21c6506e9f949a34e152873a4"},{"version":"4c5d075d9e32c295c6a5fbf92de99aa14a4608c01035d23137bd44963919ac97","signature":"e6327118c7f985508f4a8916360d3a7d65bdeb99193f2dab4102c60a0d76c5d0"},{"version":"0038b17f531123ac2f03466cdf0d596c088c5fd6f3dc3e6923e3ea3ff0774bc3","signature":"30ef62b34911ce251a61d462612ace8accf6a783046a553df2dd9a577bffb9b1"},{"version":"a88177d862414ff5ed7e40f844b8d2a0372fd7cedf779dbc4e249bad8949dc6c","signature":"53bcaae24fabda3e6aecbeeea82c0e5f5fcd5f02bf3f63b5490dba998bb0a9d8"},{"version":"1bb6711e5fd7eb467ebdca292a816075880f014646e19fa58b68e4869c72febc","signature":"d0f5b10b7e850c12a122fd4b7629d7927e57e365388627131aed61f6f54b7376"},{"version":"5cfa96c1bac25b033fd7c183bcd6d52152891819029f12bddb634909856aa393","signature":"c2cbbe2a5c1a9784b6b78f198cf026eef3b88e1a73cab1b3206e7b49fa09a407"},{"version":"44c9571a91179613a3f8b94af4b6990f897f6d038370471bf28d898c598eff20","signature":"3e28072eb0ee412d6ad35700d172fbfe184f2029b3ce0d9c8c1a315cba629c57"},{"version":"e8c940bd8141d4616af013eddac2d0ffc2c9dbcbc94afd400ea8a05f3aab6dfd","signature":"08d02df7ef8c3a2faf65168323cb3016570f7157a713d6f00ebb135d6c8cff14"},{"version":"ba2635c5ecae4dbd297cdbead64d396fadc3f88e6b28e189a96586de3e1ec7a7","signature":"e84b8129597854cede09ef1643e6b7cc2b043340018828e1e3a1467398d22d50"},{"version":"1244a9f8d8931553541bb7febc5a3cbda4f13e15e15f89f5f272112f9f86eb4e","signature":"bb090cbe4ca1d80ca4cb55050f8189fb0be1f9383c4519c3cdb83e35c4f4d1fb"},{"version":"282f98006ed7fa9bb2cd9bdbe2524595cfc4bcd58a0bb3232e4519f2138df811","impliedFormat":1},{"version":"6222e987b58abfe92597e1273ad7233626285bc2d78409d4a7b113d81a83496b","impliedFormat":1},{"version":"cbe726263ae9a7bf32352380f7e8ab66ee25b3457137e316929269c19e18a2be","impliedFormat":1},{"version":"7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","impliedFormat":1},{"version":"4025a454b1ca489b179ee8c684bdd70ff8c1967e382076ade53e7e4653e1daec","affectsGlobalScope":true,"impliedFormat":1},{"version":"984c09345059b76fc4221c2c54e53511f4c27a0794dfd6e9f81dc60f0b564e05","affectsGlobalScope":true,"impliedFormat":99}],"root":[[124,137]],"options":{"allowImportingTsExtensions":false,"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"jsx":4,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":99},"referencedMap":[[86,1],[87,2],[143,3],[139,4],[140,5],[142,6],[114,7],[115,8],[113,7],[112,7],[123,9],[104,7],[109,7],[107,7],[108,7],[103,7],[111,10],[110,7],[105,7],[106,7],[100,7],[102,11],[99,7],[121,7],[117,7],[116,7],[118,7],[122,12],[120,7],[119,7],[132,13],[135,14],[133,15],[134,16],[137,17],[126,18],[125,19],[128,20],[127,16],[129,18],[136,21],[130,17],[124,17],[131,17],[89,22],[90,23],[96,24],[91,25],[98,26],[94,27],[95,28],[92,25],[93,23],[97,7]],"latestChangedDtsFile":"./src/constants/defaults.d.ts","version":"5.9.3"}
|
package/package.json
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@graph-render/react",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"private": false,
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"type": "module",
|
|
9
|
+
"main": "dist/index.js",
|
|
10
|
+
"module": "dist/index.js",
|
|
11
|
+
"types": "dist/index.d.ts",
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"import": "./dist/index.js",
|
|
16
|
+
"default": "./dist/index.js"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"scripts": {
|
|
20
|
+
"dev": "vite",
|
|
21
|
+
"build": "vite build && tsc --emitDeclarationOnly --declaration --declarationMap",
|
|
22
|
+
"preview": "vite preview",
|
|
23
|
+
"lint": "eslint src --ext .ts,.tsx",
|
|
24
|
+
"storybook": "storybook dev -p 6006",
|
|
25
|
+
"build-storybook": "storybook build"
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@graph-render/core": "1.0.1",
|
|
29
|
+
"@graph-render/types": "1.0.1"
|
|
30
|
+
},
|
|
31
|
+
"peerDependencies": {
|
|
32
|
+
"react": "^18.2.0",
|
|
33
|
+
"react-dom": "^18.2.0"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@storybook/addon-essentials": "^8.1.0",
|
|
37
|
+
"@storybook/addon-interactions": "^8.1.0",
|
|
38
|
+
"@storybook/react": "^8.1.0",
|
|
39
|
+
"@storybook/react-vite": "^8.1.0",
|
|
40
|
+
"@storybook/test": "^8.1.0",
|
|
41
|
+
"storybook": "^8.1.0",
|
|
42
|
+
"@types/react": "^18.2.47",
|
|
43
|
+
"@types/react-dom": "^18.2.17",
|
|
44
|
+
"@typescript-eslint/eslint-plugin": "^6.0.0",
|
|
45
|
+
"@typescript-eslint/parser": "^6.0.0",
|
|
46
|
+
"@vitejs/plugin-react": "^5.0.4",
|
|
47
|
+
"eslint": "^8.56.0",
|
|
48
|
+
"eslint-plugin-react": "^7.33.2",
|
|
49
|
+
"typescript": "^5.3.3",
|
|
50
|
+
"vite": "^5.0.10"
|
|
51
|
+
}
|
|
52
|
+
}
|
package/project.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@graph-render/react",
|
|
3
|
+
"$schema": "../../node_modules/nx/schemas/project-schema.json",
|
|
4
|
+
"sourceRoot": "src/react-graph-render/src",
|
|
5
|
+
"projectType": "library",
|
|
6
|
+
"targets": {
|
|
7
|
+
"build": {
|
|
8
|
+
"executor": "nx:run-commands",
|
|
9
|
+
"outputs": ["{projectRoot}/dist"],
|
|
10
|
+
"options": {
|
|
11
|
+
"commands": ["vite build", "tsc --emitDeclarationOnly --declaration --declarationMap"],
|
|
12
|
+
"cwd": "{projectRoot}",
|
|
13
|
+
"parallel": false
|
|
14
|
+
},
|
|
15
|
+
"dependsOn": ["^build"]
|
|
16
|
+
},
|
|
17
|
+
"dev": {
|
|
18
|
+
"executor": "@nx/vite:dev-server",
|
|
19
|
+
"options": {
|
|
20
|
+
"buildTarget": "@graph-render/react:build"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"preview": {
|
|
24
|
+
"executor": "@nx/vite:preview-server",
|
|
25
|
+
"options": {
|
|
26
|
+
"buildTarget": "@graph-render/react:build"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"lint": {
|
|
30
|
+
"executor": "nx:run-commands",
|
|
31
|
+
"options": {
|
|
32
|
+
"command": "eslint src --ext .ts,.tsx",
|
|
33
|
+
"cwd": "{projectRoot}"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"format": {
|
|
37
|
+
"executor": "nx:run-commands",
|
|
38
|
+
"options": {
|
|
39
|
+
"command": "prettier --write src",
|
|
40
|
+
"cwd": "{projectRoot}"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"storybook": {
|
|
44
|
+
"executor": "nx:run-commands",
|
|
45
|
+
"options": {
|
|
46
|
+
"command": "storybook dev -p 6006",
|
|
47
|
+
"cwd": "{projectRoot}"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"build-storybook": {
|
|
51
|
+
"executor": "nx:run-commands",
|
|
52
|
+
"outputs": ["{projectRoot}/storybook-static"],
|
|
53
|
+
"options": {
|
|
54
|
+
"command": "storybook build",
|
|
55
|
+
"cwd": "{projectRoot}"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"tags": ["type:library", "framework:react"]
|
|
60
|
+
}
|