@krainovsd/graph 0.1.2 → 0.2.0
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/lib/esm/index.js +318 -190
- package/lib/esm/index.js.map +1 -1
- package/lib/index.d.ts +180 -0
- package/package.json +2 -2
- package/lib/esm/index.d.ts +0 -157
package/lib/esm/index.d.ts
DELETED
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
import { SimulationNodeDatum, SimulationLinkDatum, Simulation } from 'd3-force';
|
|
2
|
-
import { D3DragEvent } from 'd3-drag';
|
|
3
|
-
import { D3ZoomEvent, ZoomTransform } from 'd3-zoom';
|
|
4
|
-
|
|
5
|
-
interface NodeInterface<NodeData extends Record<string, unknown>> extends SimulationNodeDatum {
|
|
6
|
-
id: number | string;
|
|
7
|
-
linkCount?: number;
|
|
8
|
-
group?: number | string;
|
|
9
|
-
neighbors?: (string | number)[];
|
|
10
|
-
data?: NodeData;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
interface LinkInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> extends SimulationLinkDatum<NodeInterface<NodeData>> {
|
|
14
|
-
data?: LinkData;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
type GraphCanvasZoomEvent = D3ZoomEvent<HTMLCanvasElement, unknown>;
|
|
18
|
-
type GraphCanvasDragEvent<NodeData extends Record<string, unknown>> = D3DragEvent<HTMLElement, unknown, NodeInterface<NodeData>>;
|
|
19
|
-
type GraphCanvasListeners<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
|
|
20
|
-
onContextMenu?: (event: MouseEvent, node?: NodeInterface<NodeData>) => void;
|
|
21
|
-
onClick?: (event: MouseEvent, node?: NodeInterface<NodeData>) => void;
|
|
22
|
-
onDoubleClick?: (event: MouseEvent, node?: NodeInterface<NodeData>) => void;
|
|
23
|
-
onWheelClick?: (event: MouseEvent, node?: NodeInterface<NodeData>) => void;
|
|
24
|
-
onMove?: (event: MouseEvent, node?: NodeInterface<NodeData>) => void;
|
|
25
|
-
onZoom?: (event: GraphCanvasZoomEvent) => void;
|
|
26
|
-
onDragSubject?: (event: GraphCanvasDragEvent<NodeData>, transform: ZoomTransform, nodes: NodeInterface<NodeData>[]) => NodeInterface<NodeData> | undefined;
|
|
27
|
-
onDraw?: (canvasContext: CanvasRenderingContext2D, transform: ZoomTransform) => void;
|
|
28
|
-
onStartDragFinished?: (event: GraphCanvasDragEvent<NodeData>, simulations: GraphCanvasSimulation<NodeData, LinkData> | undefined, transform: ZoomTransform) => void;
|
|
29
|
-
onMoveDragFinished?: (event: GraphCanvasDragEvent<NodeData>, simulations: GraphCanvasSimulation<NodeData, LinkData> | undefined, transform: ZoomTransform) => void;
|
|
30
|
-
onEndDragFinished?: (event: GraphCanvasDragEvent<NodeData>, simulations: GraphCanvasSimulation<NodeData, LinkData> | undefined, transform: ZoomTransform) => void;
|
|
31
|
-
onDrawFinished?: (canvasContext: CanvasRenderingContext2D, transform: ZoomTransform) => void;
|
|
32
|
-
onSimulationEnd?: (simulations: GraphCanvasSimulation<NodeData, LinkData> | undefined) => void;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
type GraphCanvasSettingInterface<NodeData extends Record<string, unknown>> = {
|
|
36
|
-
minFading?: number;
|
|
37
|
-
highlightByHover?: boolean;
|
|
38
|
-
stickAfterDrag?: boolean;
|
|
39
|
-
zoomExtent?: [number, number];
|
|
40
|
-
dragPlaceCoefficient?: (node: NodeInterface<NodeData>, pxEvent: number, pyEvent: number, radius: number) => number | undefined;
|
|
41
|
-
};
|
|
42
|
-
type GraphCanvasForceSettings<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
|
|
43
|
-
collideOn?: boolean;
|
|
44
|
-
collideOffMax?: {
|
|
45
|
-
nodes: number;
|
|
46
|
-
links: number;
|
|
47
|
-
};
|
|
48
|
-
collideRadius?: GraphCanvasNodeIterationProps<NodeData> | number | null;
|
|
49
|
-
collideStrength?: number;
|
|
50
|
-
collideIterations?: number;
|
|
51
|
-
linkDistance?: GraphCanvasLinkIterationProps<NodeData, LinkData> | number;
|
|
52
|
-
linkStrength?: GraphCanvasLinkIterationProps<NodeData, LinkData> | number;
|
|
53
|
-
linkIterations?: number;
|
|
54
|
-
chargeStrength?: GraphCanvasNodeIterationProps<NodeData> | number;
|
|
55
|
-
chargeDistanceMax?: number;
|
|
56
|
-
chargeDistanceMin?: number;
|
|
57
|
-
centerPosition?: {
|
|
58
|
-
x?: number;
|
|
59
|
-
y?: number;
|
|
60
|
-
};
|
|
61
|
-
centerStrength?: number;
|
|
62
|
-
xForce?: GraphCanvasNodeIterationProps<NodeData> | number;
|
|
63
|
-
xStrength?: GraphCanvasNodeIterationProps<NodeData> | number;
|
|
64
|
-
yForce?: GraphCanvasNodeIterationProps<NodeData> | number;
|
|
65
|
-
yStrength?: GraphCanvasNodeIterationProps<NodeData> | number;
|
|
66
|
-
};
|
|
67
|
-
type GraphCanvasNodeSettings<NodeData extends Record<string, unknown>> = {
|
|
68
|
-
idGetter?: GraphCanvasNodeIterationProps<NodeData, string | number>;
|
|
69
|
-
options?: GraphCanvasNodeIterationProps<NodeData, GraphCanvasNodeOptions> | GraphCanvasNodeOptions;
|
|
70
|
-
};
|
|
71
|
-
type GraphCanvasNodeOptions = {
|
|
72
|
-
initialRadius?: number;
|
|
73
|
-
radiusCoefficient?: number;
|
|
74
|
-
radiusFactor?: number;
|
|
75
|
-
flexibleRadius?: boolean;
|
|
76
|
-
width?: number;
|
|
77
|
-
alpha?: number;
|
|
78
|
-
colorOuter?: string;
|
|
79
|
-
colorInner?: string;
|
|
80
|
-
text?: string | null;
|
|
81
|
-
font?: string;
|
|
82
|
-
fontColor?: string;
|
|
83
|
-
fontAlign?: CanvasTextAlign;
|
|
84
|
-
};
|
|
85
|
-
type GraphCanvasNodeIterationProps<NodeData extends Record<string, unknown>, Return = number> = (node: NodeInterface<NodeData>, i: number, nodes: NodeInterface<NodeData>[], transform?: ZoomTransform) => Return;
|
|
86
|
-
type GraphCanvasLinkSettings<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
|
|
87
|
-
options?: GraphCanvasLinkIterationProps<NodeData, LinkData, GraphCanvasLinkOptions> | GraphCanvasLinkOptions;
|
|
88
|
-
};
|
|
89
|
-
type GraphCanvasLinkOptions = {
|
|
90
|
-
alpha?: number;
|
|
91
|
-
color?: string;
|
|
92
|
-
width?: number;
|
|
93
|
-
};
|
|
94
|
-
type GraphCanvasLinkIterationProps<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Return = number> = (link: LinkInterface<NodeData, LinkData>, i: number, links: LinkInterface<NodeData, LinkData>[], transform?: ZoomTransform | null) => Return;
|
|
95
|
-
|
|
96
|
-
type GraphCanvasInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
|
|
97
|
-
nodes: NodeInterface<NodeData>[];
|
|
98
|
-
links: LinkInterface<NodeData, LinkData>[];
|
|
99
|
-
root: HTMLElement;
|
|
100
|
-
graphSettings?: GraphCanvasSettingInterface<NodeData>;
|
|
101
|
-
forceSettings?: GraphCanvasForceSettings<NodeData, LinkData>;
|
|
102
|
-
nodeSettings?: GraphCanvasNodeSettings<NodeData>;
|
|
103
|
-
linkSettings?: GraphCanvasLinkSettings<NodeData, LinkData>;
|
|
104
|
-
listeners?: GraphCanvasListeners<NodeData, LinkData>;
|
|
105
|
-
};
|
|
106
|
-
type GraphCanvasSimulation<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = Simulation<NodeInterface<NodeData>, LinkInterface<NodeData, LinkData>>;
|
|
107
|
-
|
|
108
|
-
declare class GraphCanvas<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> {
|
|
109
|
-
/** initial data */
|
|
110
|
-
private nodes;
|
|
111
|
-
private links;
|
|
112
|
-
private width;
|
|
113
|
-
private height;
|
|
114
|
-
private root;
|
|
115
|
-
private container;
|
|
116
|
-
private area;
|
|
117
|
-
private dpi;
|
|
118
|
-
/** settings */
|
|
119
|
-
private graphSettings;
|
|
120
|
-
private forceSettings;
|
|
121
|
-
private nodeSettings;
|
|
122
|
-
private linkSettings;
|
|
123
|
-
private listeners;
|
|
124
|
-
/** service */
|
|
125
|
-
private context;
|
|
126
|
-
private simulation;
|
|
127
|
-
private areaTransform;
|
|
128
|
-
private areaRect;
|
|
129
|
-
private draw;
|
|
130
|
-
private simulationWorking;
|
|
131
|
-
private isDragging;
|
|
132
|
-
private eventAbortController;
|
|
133
|
-
private highlightedNode;
|
|
134
|
-
private highlightedNeighbors;
|
|
135
|
-
private fading;
|
|
136
|
-
constructor({ links, nodes, root, forceSettings, linkSettings, listeners, nodeSettings, graphSettings, }: GraphCanvasInterface<NodeData, LinkData>);
|
|
137
|
-
getData(): Pick<GraphCanvasInterface<NodeData, LinkData>, "nodes" | "links">;
|
|
138
|
-
changeData(options: Pick<Partial<GraphCanvasInterface<NodeData, LinkData>>, "links" | "nodes">): void;
|
|
139
|
-
changeSettings(options: Omit<Partial<GraphCanvasInterface<NodeData, LinkData>>, "links" | "nodes" | "listeners">): void;
|
|
140
|
-
start(): void;
|
|
141
|
-
destroy(): void;
|
|
142
|
-
private updateSettings;
|
|
143
|
-
private updateData;
|
|
144
|
-
private updateSize;
|
|
145
|
-
private init;
|
|
146
|
-
private initSimulation;
|
|
147
|
-
private initSimulationForces;
|
|
148
|
-
private initCollideForce;
|
|
149
|
-
private initArea;
|
|
150
|
-
private initDraw;
|
|
151
|
-
private initResize;
|
|
152
|
-
private initPointer;
|
|
153
|
-
private initDnd;
|
|
154
|
-
private initZoom;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
export { GraphCanvas, type GraphCanvasDragEvent, type GraphCanvasForceSettings, type GraphCanvasInterface, type GraphCanvasLinkIterationProps, type GraphCanvasLinkOptions, type GraphCanvasLinkSettings, type GraphCanvasListeners, type GraphCanvasNodeIterationProps, type GraphCanvasNodeOptions, type GraphCanvasNodeSettings, type GraphCanvasSettingInterface, type GraphCanvasSimulation, type GraphCanvasZoomEvent, type LinkInterface, type NodeInterface };
|