@krainovsd/graph 0.10.0-rc4 → 0.10.0-rc6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/lib/cjs/index.cjs +1909 -1321
  2. package/lib/cjs/index.cjs.map +1 -1
  3. package/lib/esm/constants/force-controls.js +141 -0
  4. package/lib/esm/constants/force-controls.js.map +1 -0
  5. package/lib/esm/constants/graph-controls.js +25 -0
  6. package/lib/esm/constants/graph-controls.js.map +1 -0
  7. package/lib/esm/constants/highlight-controls.js +452 -0
  8. package/lib/esm/constants/highlight-controls.js.map +1 -0
  9. package/lib/esm/constants/link-controls.js +219 -0
  10. package/lib/esm/constants/link-controls.js.map +1 -0
  11. package/lib/esm/constants/node-controls.js +345 -0
  12. package/lib/esm/constants/node-controls.js.map +1 -0
  13. package/lib/esm/index.js +24 -3
  14. package/lib/esm/index.js.map +1 -1
  15. package/lib/esm/lib/fade-rgb.js.map +1 -1
  16. package/lib/esm/lib/rgb-animation-by-progress.js.map +1 -1
  17. package/lib/esm/module/GraphCanvas/GraphCanvas.js +29 -32
  18. package/lib/esm/module/GraphCanvas/GraphCanvas.js.map +1 -1
  19. package/lib/esm/module/GraphCanvas/constants/common-settings.js +7 -0
  20. package/lib/esm/module/GraphCanvas/constants/common-settings.js.map +1 -0
  21. package/lib/esm/module/GraphCanvas/constants/force-settings.js +29 -0
  22. package/lib/esm/module/GraphCanvas/constants/force-settings.js.map +1 -0
  23. package/lib/esm/module/GraphCanvas/constants/graph-settings.js +19 -0
  24. package/lib/esm/module/GraphCanvas/constants/graph-settings.js.map +1 -0
  25. package/lib/esm/module/GraphCanvas/constants/highlight-settings.js +62 -0
  26. package/lib/esm/module/GraphCanvas/constants/highlight-settings.js.map +1 -0
  27. package/lib/esm/module/GraphCanvas/constants/link-settings.js +31 -0
  28. package/lib/esm/module/GraphCanvas/constants/link-settings.js.map +1 -0
  29. package/lib/esm/module/GraphCanvas/constants/node-settings.js +50 -0
  30. package/lib/esm/module/GraphCanvas/constants/node-settings.js.map +1 -0
  31. package/lib/esm/module/GraphCanvas/lib/settings/force-settings-getter.js +3 -1
  32. package/lib/esm/module/GraphCanvas/lib/settings/force-settings-getter.js.map +1 -1
  33. package/lib/esm/module/GraphCanvas/lib/settings/graph-settings-getter.js +1 -1
  34. package/lib/esm/module/GraphCanvas/lib/settings/graph-settings-getter.js.map +1 -1
  35. package/lib/esm/module/GraphCanvas/lib/settings/highlight-settings-getter.js +13 -0
  36. package/lib/esm/module/GraphCanvas/lib/settings/highlight-settings-getter.js.map +1 -0
  37. package/lib/esm/module/GraphCanvas/lib/settings/link-settings-getter.js +13 -11
  38. package/lib/esm/module/GraphCanvas/lib/settings/link-settings-getter.js.map +1 -1
  39. package/lib/esm/module/GraphCanvas/lib/settings/node-settings-getter.js +22 -20
  40. package/lib/esm/module/GraphCanvas/lib/settings/node-settings-getter.js.map +1 -1
  41. package/lib/esm/module/GraphCanvas/lib/utils/calculate-link-position-by-node.js +8 -4
  42. package/lib/esm/module/GraphCanvas/lib/utils/calculate-link-position-by-node.js.map +1 -1
  43. package/lib/esm/module/GraphCanvas/lib/utils/drag-place-coefficient-getter.js.map +1 -1
  44. package/lib/esm/module/GraphCanvas/lib/utils/get-particle-position.js.map +1 -1
  45. package/lib/esm/module/GraphCanvas/lib/utils/is-node-visible.js +3 -1
  46. package/lib/esm/module/GraphCanvas/lib/utils/is-node-visible.js.map +1 -1
  47. package/lib/esm/module/GraphCanvas/lib/utils/is-overlaps-node.js.map +1 -1
  48. package/lib/esm/module/GraphCanvas/lib/utils/link-by-pointer-getter.js +2 -2
  49. package/lib/esm/module/GraphCanvas/lib/utils/link-by-pointer-getter.js.map +1 -1
  50. package/lib/esm/module/GraphCanvas/lib/utils/link-highlight.js +66 -0
  51. package/lib/esm/module/GraphCanvas/lib/utils/link-highlight.js.map +1 -0
  52. package/lib/esm/module/GraphCanvas/lib/utils/link-iteration-extractor.js +2 -3
  53. package/lib/esm/module/GraphCanvas/lib/utils/link-iteration-extractor.js.map +1 -1
  54. package/lib/esm/module/GraphCanvas/lib/utils/node-by-pointer-getter.js.map +1 -1
  55. package/lib/esm/module/GraphCanvas/lib/utils/node-highlight.js +115 -0
  56. package/lib/esm/module/GraphCanvas/lib/utils/node-highlight.js.map +1 -0
  57. package/lib/esm/module/GraphCanvas/lib/utils/node-iteration-extractor.js +2 -3
  58. package/lib/esm/module/GraphCanvas/lib/utils/node-iteration-extractor.js.map +1 -1
  59. package/lib/esm/module/GraphCanvas/slices/draw-links.js +90 -60
  60. package/lib/esm/module/GraphCanvas/slices/draw-links.js.map +1 -1
  61. package/lib/esm/module/GraphCanvas/slices/draw-nodes.js +214 -135
  62. package/lib/esm/module/GraphCanvas/slices/draw-nodes.js.map +1 -1
  63. package/lib/esm/module/GraphCanvas/slices/draw-text.js.map +1 -1
  64. package/lib/esm/module/GraphCanvas/slices/init-dnd.js +4 -4
  65. package/lib/esm/module/GraphCanvas/slices/init-dnd.js.map +1 -1
  66. package/lib/esm/module/GraphCanvas/slices/init-draw.js +4 -15
  67. package/lib/esm/module/GraphCanvas/slices/init-draw.js.map +1 -1
  68. package/lib/esm/module/GraphCanvas/slices/init-pointer.js +17 -17
  69. package/lib/esm/module/GraphCanvas/slices/init-pointer.js.map +1 -1
  70. package/lib/esm/module/GraphCanvas/slices/init-simulation.js +21 -22
  71. package/lib/esm/module/GraphCanvas/slices/init-simulation.js.map +1 -1
  72. package/lib/esm/module/GraphCanvas/slices/init-zoom.js +1 -1
  73. package/lib/esm/module/GraphCanvas/slices/init-zoom.js.map +1 -1
  74. package/lib/index.d.ts +436 -220
  75. package/package.json +1 -1
  76. package/lib/esm/lib/get-controls-info.js +0 -915
  77. package/lib/esm/lib/get-controls-info.js.map +0 -1
  78. package/lib/esm/module/GraphCanvas/constants/settings.js +0 -158
  79. package/lib/esm/module/GraphCanvas/constants/settings.js.map +0 -1
package/lib/index.d.ts CHANGED
@@ -8,17 +8,21 @@ interface NodeInterface<NodeData extends Record<string, unknown>> extends Simula
8
8
  group?: number | string;
9
9
  neighbors?: (string | number)[];
10
10
  _radius?: number;
11
+ _borderWidth?: number;
11
12
  _width?: number;
12
13
  _height?: number;
13
14
  _borderRadius?: number;
14
15
  _visible?: boolean;
15
16
  _shape?: NodeShape;
16
17
  name?: string;
18
+ label?: string;
17
19
  drag?: boolean;
18
20
  highlight?: boolean;
21
+ image?: HTMLImageElement;
19
22
  data?: NodeData;
20
23
  }
21
- type NodeShape = "circle" | "square" | "text" | "icon";
24
+ type NodeShape = "circle" | "square" | "text";
25
+ type TextStyleEnum = "normal" | "italic" | "oblique";
22
26
  type CachedNodeTextInterface = Record<string | number, string[] | undefined>;
23
27
  type CachedTextNodeParametersMap = Record<string | number, [number, number] | undefined>;
24
28
  /**
@@ -31,74 +35,22 @@ interface LinkInterface<NodeData extends Record<string, unknown>, LinkData exten
31
35
  data?: LinkData;
32
36
  highlight?: boolean;
33
37
  }
34
-
35
- type GraphSettingsInputRange<I extends string> = {
36
- type: "range";
37
- min: number;
38
- max: number;
38
+ type LinkParticle = {
39
39
  step: number;
40
- initialValue: number;
41
- id: I;
42
- label: string;
43
- };
44
- type GraphSettingsInputCheckBox<I extends string> = {
45
- type: "checkbox";
46
- id: I;
47
- initialValue: boolean;
48
- label: string;
49
- };
50
- type GraphSettingsInputColorBox<I extends string> = {
51
- type: "color";
52
- id: I;
53
- initialValue: string;
54
- label: string;
55
- };
56
- type GraphSettingsInputSelect<I extends string> = {
57
- type: "select";
58
- id: I;
59
- initialValue: string;
60
- label: string;
61
- options: {
62
- label: string;
63
- value: string;
64
- }[];
40
+ index: number;
41
+ prev: LinkParticle | undefined;
42
+ next: LinkParticle | undefined;
43
+ x?: number;
44
+ y?: number;
45
+ sourceId: string | number;
46
+ targetId: string | number;
65
47
  };
66
- type GraphSettingsInputInterface<I extends string> = GraphSettingsInputRange<I> | GraphSettingsInputCheckBox<I> | GraphSettingsInputColorBox<I> | GraphSettingsInputSelect<I>;
67
48
 
68
- type ZoomEventInterface = D3ZoomEvent<HTMLCanvasElement, unknown>;
69
- type DragEventInterface<NodeData extends Record<string, unknown>> = D3DragEvent<HTMLElement, unknown, NodeInterface<NodeData>>;
70
- type ListenersInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
71
- onContextMenu?: (event: MouseEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
72
- onClick?: (event: MouseEvent | TouchEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
73
- onDoubleClick?: (event: MouseEvent | TouchEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
74
- onWheelClick?: (event: MouseEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
75
- onMove?: (event: MouseEvent | TouchEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
76
- onZoom?: (event: ZoomEventInterface) => void;
77
- onDragSubject?: (event: DragEventInterface<NodeData>, state: GraphState<NodeData, LinkData>) => NodeInterface<NodeData> | undefined;
78
- onDraw?: (state: GraphState<NodeData, LinkData>, toggleHighlightStatus: (status: boolean) => void, clearHighlightState: () => void) => void;
79
- onStartDragFinished?: (event: DragEventInterface<NodeData>, state: GraphState<NodeData, LinkData>) => void;
80
- onMoveDragFinished?: (event: DragEventInterface<NodeData>, state: GraphState<NodeData, LinkData>) => void;
81
- onEndDragFinished?: (event: DragEventInterface<NodeData>, state: GraphState<NodeData, LinkData>) => void;
82
- onDrawFinished?: (state: GraphState<NodeData, LinkData>) => void;
83
- onSimulationEnd?: (state: GraphState<NodeData, LinkData>) => void;
84
- };
49
+ type NodeIterationPropsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Return = number> = (this: GraphCanvas<NodeData, LinkData>, node: NodeInterface<NodeData>, i: number, nodes: NodeInterface<NodeData>[]) => Return;
50
+ type LinkIterationPropsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Return = number> = (this: GraphCanvas<NodeData, LinkData>, link: LinkInterface<NodeData, LinkData>, i: number, links: LinkInterface<NodeData, LinkData>[]) => Return;
51
+ type NodeIterationPropsNoThisInterface<NodeData extends Record<string, unknown>, Return = number> = (node: NodeInterface<NodeData>, i: number, nodes: NodeInterface<NodeData>[]) => Return;
52
+ type LinkIterationPropsNoThisInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Return = number> = (link: LinkInterface<NodeData, LinkData>, i: number, links: LinkInterface<NodeData, LinkData>[]) => Return;
85
53
 
86
- type GraphSettingsInterface<NodeData extends Record<string, unknown>> = {
87
- highlightDownFrames?: number;
88
- highlightUpFrames?: number;
89
- zoomExtent?: [number, number];
90
- translateExtent?: [[number?, number?], [number?, number?]];
91
- translateExtentCoefficient?: number | [number, number];
92
- translateExtentEnable?: boolean;
93
- zoomInitial?: {
94
- k?: number;
95
- x?: number;
96
- y?: number;
97
- } | null;
98
- dragPlaceCoefficient?: (node: NodeInterface<NodeData>, pxEvent: number, pyEvent: number) => number | undefined;
99
- showDrawTime?: boolean;
100
- showDrawTimeEveryTick?: boolean;
101
- };
102
54
  type ForceSettingsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
103
55
  forces?: boolean;
104
56
  xForce?: boolean;
@@ -111,14 +63,14 @@ type ForceSettingsInterface<NodeData extends Record<string, unknown>, LinkData e
111
63
  nodes: number;
112
64
  links: number;
113
65
  };
114
- collideRadius?: NodeIterationPropsInterface<NodeData, LinkData> | number | null;
66
+ collideRadius?: NodeIterationPropsNoThisInterface<NodeData> | number | null;
115
67
  collideAdditionalRadius?: number;
116
68
  collideStrength?: number;
117
69
  collideIterations?: number;
118
- linkDistance?: LinkIterationPropsInterface<NodeData, LinkData> | number;
119
- linkStrength?: LinkIterationPropsInterface<NodeData, LinkData> | number;
70
+ linkDistance?: LinkIterationPropsNoThisInterface<NodeData, LinkData> | number;
71
+ linkStrength?: LinkIterationPropsNoThisInterface<NodeData, LinkData> | number;
120
72
  linkIterations?: number;
121
- chargeStrength?: NodeIterationPropsInterface<NodeData, LinkData> | number;
73
+ chargeStrength?: NodeIterationPropsNoThisInterface<NodeData> | number;
122
74
  chargeDistanceMax?: number;
123
75
  chargeDistanceMin?: number;
124
76
  centerPosition?: {
@@ -126,53 +78,180 @@ type ForceSettingsInterface<NodeData extends Record<string, unknown>, LinkData e
126
78
  y?: number;
127
79
  };
128
80
  centerStrength?: number;
129
- xPosition?: NodeIterationPropsInterface<NodeData, LinkData> | number;
130
- xStrength?: NodeIterationPropsInterface<NodeData, LinkData> | number;
131
- yPosition?: NodeIterationPropsInterface<NodeData, LinkData> | number;
132
- yStrength?: NodeIterationPropsInterface<NodeData, LinkData> | number;
81
+ xPosition?: NodeIterationPropsNoThisInterface<NodeData> | number;
82
+ xStrength?: NodeIterationPropsNoThisInterface<NodeData> | number;
83
+ yPosition?: NodeIterationPropsNoThisInterface<NodeData> | number;
84
+ yStrength?: NodeIterationPropsNoThisInterface<NodeData> | number;
133
85
  };
134
- type NodeSettingsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
135
- cache?: boolean;
136
- idGetter?: NodeIterationPropsInterface<NodeData, LinkData, string | number>;
137
- highlightByNodeOnlyRoot?: boolean;
138
- highlightByNodeNodeFadingMin?: number;
139
- highlightByNodeNodeColorFadingMin?: number;
140
- highlightByNodeNodeSizingAdditional?: number;
141
- highlightByNodeNodeSizingAdditionalCoefficient?: number;
142
- highlightByNodeTextFadingMin?: number;
143
- highlightByNodeTextSizingAdditional?: number;
144
- highlightByNodeTextShiftXAdditional?: number;
145
- highlightByNodeTextShiftYAdditional?: number;
146
- highlightByNodeTextWeightAdditional?: number;
147
- highlightByNodeTextWidthAdditional?: number;
148
- highlightByLinkNodeFadingMin?: number;
149
- highlightByLinkNodeColorFadingMin?: number;
150
- highlightByLinkTextFadingMin?: number;
151
- highlightByLinkNodeSizingAdditional?: number;
152
- highlightByLinkNodeSizingAdditionalCoefficient?: number;
153
- highlightByLinkTextSizingAdditional?: number;
154
- highlightByLinkTextShiftXAdditional?: number;
155
- highlightByLinkTextShiftYAdditional?: number;
156
- highlightByLinkTextWeightAdditional?: number;
157
- highlightByLinkTextWidthAdditional?: number;
86
+
87
+ type GraphSettingsInterface<NodeData extends Record<string, unknown>> = {
88
+ highlightDownFrames?: number;
89
+ highlightUpFrames?: number;
90
+ zoomExtent?: [number, number];
91
+ translateExtent?: [[number?, number?], [number?, number?]];
92
+ translateExtentCoefficient?: number | [number, number];
93
+ translateExtentEnable?: boolean;
94
+ zoomInitial?: {
95
+ k?: number;
96
+ x?: number;
97
+ y?: number;
98
+ } | null;
99
+ dragPlaceCoefficient?: (node: NodeInterface<NodeData>, pxEvent: number, pyEvent: number) => number | undefined;
100
+ showDrawTime?: boolean;
101
+ showDrawTimeEveryTick?: boolean;
102
+ };
103
+
104
+ type HighlightSettingsInterface = HighlighCommonSettingsInterface & HighlightByNodeForNodeSettingsInterface & HighlightByNodeForLabelSettingsInterface & HighlightByNodeForTextSettingsInterface & HighlightByNodeForLinkSettingsInterface & HighlightByNodeForArrowSettingsInterface & HighlightByLinkForNodeSettingsInterface & HighlightByLinkForTextSettingsInterface & HighlightByLinkForLabelSettingsInterface & HighlightByLinkForLinkSettingsInterface & HighlightByLinkForArrowSettingsInterface;
105
+ type HighlighCommonSettingsInterface = {
158
106
  highlightByHoverNode?: boolean;
159
- highlightByNodeNodeFading?: boolean;
160
- highlightByNodeNodeSizing?: boolean;
161
- highlightByNodeTextFading?: boolean;
162
- highlightByNodeTextSizing?: boolean;
163
- highlightByNodeNodeColor?: boolean;
164
- highlightByLinkNodeFading?: boolean;
165
- highlightByLinkNodeSizing?: boolean;
166
- highlightByLinkTextFading?: boolean;
167
- highlightByLinkTextSizing?: boolean;
168
- highlightByLinkNodeColor?: boolean;
107
+ highlightByHoverLink?: boolean;
108
+ linkHoverExtraZone?: number;
109
+ };
110
+ type HighlightByNodeForNodeSettingsInterface = {
111
+ highlightByNodeForNodeColorFading?: boolean;
112
+ highlightByNodeOnlyRoot?: boolean;
113
+ highlightByNodeForNodeFadingMin?: number;
114
+ highlightByNodeForNodeColorFadingMin?: number;
115
+ highlightByNodeForNodeColor?: string | null;
116
+ highlightByNodeForNodeSizingAdditional?: number;
117
+ highlightByNodeForNodeSizingAdditionalCoefficient?: number;
118
+ highlightByNodeForNodeBorderSizingAdditional?: number;
119
+ highlightByNodeForNodeBorderColor?: string | null;
120
+ };
121
+ type HighlightByNodeForLabelSettingsInterface = {
122
+ highlightByNodeForLabelSizingAdditional?: number;
123
+ highlightByNodeForLabelWeightAdditional?: number;
124
+ highlightByNodeForLabelFadingMin?: number;
125
+ };
126
+ type HighlightByNodeForTextSettingsInterface = {
127
+ highlightByNodeForTextFadingMin?: number;
128
+ highlightByNodeForTextSizingAdditional?: number;
129
+ highlightByNodeForTextShiftXAdditional?: number;
130
+ highlightByNodeForTextShiftYAdditional?: number;
131
+ highlightByNodeForTextWeightAdditional?: number;
132
+ };
133
+ type HighlightByLinkForNodeSettingsInterface = {
134
+ highlightByLinkForNodeColorFading?: boolean;
135
+ highlightByLinkForNodeFadingMin?: number;
136
+ highlightByLinkForNodeColorFadingMin?: number;
137
+ highlightByLinkForNodeColor?: string | null;
138
+ highlightByLinkForNodeSizingAdditional?: number;
139
+ highlightByLinkForNodeSizingAdditionalCoefficient?: number;
140
+ highlightByLinkForNodeBorderSizingAdditional?: number;
141
+ highlightByLinkForNodeBorderColor?: string | null;
142
+ };
143
+ type HighlightByLinkForLabelSettingsInterface = {
144
+ highlightByLinkForLabelSizingAdditional?: number;
145
+ highlightByLinkForLabelWeightAdditional?: number;
146
+ highlightByLinkForLabelFadingMin?: number;
147
+ };
148
+ type HighlightByLinkForTextSettingsInterface = {
149
+ highlightByLinkForTextFadingMin?: number;
150
+ highlightByLinkForTextSizingAdditional?: number;
151
+ highlightByLinkForTextShiftXAdditional?: number;
152
+ highlightByLinkForTextShiftYAdditional?: number;
153
+ highlightByLinkForTextWeightAdditional?: number;
154
+ };
155
+ type HighlightByNodeForLinkSettingsInterface = {
156
+ highlightByNodeForLinkFadingMin?: number;
157
+ highlightByNodeForLinkSizeAdditional?: number;
158
+ highlightByNodeForLinkColor?: string | null;
159
+ };
160
+ type HighlightByNodeForArrowSettingsInterface = {
161
+ highlightByNodeForArrowFadingMin?: number;
162
+ highlightByNodeForArrowSizeAdditional?: number;
163
+ highlightByNodeForArrowColor?: string | null;
164
+ highlightByNodeForArrowBorderSizingAdditional?: number;
165
+ highlightByNodeForArrowBorderColor?: string | null;
166
+ };
167
+ type HighlightByLinkForLinkSettingsInterface = {
168
+ highlightByLinkForLinkFadingMin?: number;
169
+ highlightByLinkForLinkSizeAdditional?: number;
170
+ highlightByLinkForLinkColor?: string | null;
171
+ };
172
+ type HighlightByLinkForArrowSettingsInterface = {
173
+ highlightByLinkForArrowFadingMin?: number;
174
+ highlightByLinkForArrowSizeAdditional?: number;
175
+ highlightByLinkForArrowColor?: string | null;
176
+ highlightByLinkForArrowBorderSizingAdditional?: number;
177
+ highlightByLinkForArrowBorderColor?: string | null;
178
+ };
179
+
180
+ type LinkSettingsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
181
+ cacheOptions?: boolean;
182
+ prettyDraw?: boolean;
183
+ arrow?: boolean;
184
+ arrowByHighlight?: boolean;
185
+ particles?: boolean;
186
+ particleFlexSpeed?: boolean;
187
+ particleFlexSpeedCoefficient?: number;
188
+ linkScaleSwitch?: number;
189
+ linkWidthBeforeScaleSwitch?: number;
190
+ linkWidthAfterScaleSwitch?: number;
191
+ linkColorBeforeScaleSwitch?: string;
192
+ linkColorAfterScaleSwitch?: string;
193
+ options?: LinkIterationPropsInterface<NodeData, LinkData, LinkOptionsInterface<NodeData, LinkData>> | LinkOptionsInterface<NodeData, LinkData>;
194
+ };
195
+ type LinkOptionsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
196
+ drawLink?: ((this: GraphCanvas<NodeData, LinkData>, link: LinkInterface<NodeData, LinkData>, options: Required<LinkOptionsInterface<NodeData, LinkData>>) => void) | null;
197
+ drawExtraLink?: ((this: GraphCanvas<NodeData, LinkData>, link: LinkInterface<NodeData, LinkData>, options: Required<LinkOptionsInterface<NodeData, LinkData>>) => void) | null;
198
+ } & LinkOptionsLinkInterface & LinkOptionsArrowInterface & LinkOptionsParticleInterface;
199
+ type LinkOptionsLinkInterface = {
200
+ alpha?: number;
201
+ color?: string;
202
+ width?: number;
203
+ };
204
+ type LinkOptionsArrowInterface = {
205
+ arrowAlpha?: number;
206
+ arrowColor?: string;
207
+ arrowSize?: number;
208
+ arrowBorderColor?: string;
209
+ arrowBorderWidth?: number;
210
+ };
211
+ type LinkOptionsParticleInterface = {
212
+ particleAlpha?: number;
213
+ particleColor?: string;
214
+ particleRadius?: number;
215
+ particleCount?: number;
216
+ particleSteps?: number;
217
+ particleBorderWidth?: number;
218
+ particleBorderColor?: string;
219
+ };
220
+
221
+ type ZoomEventInterface = D3ZoomEvent<HTMLCanvasElement, unknown>;
222
+ type DragEventInterface<NodeData extends Record<string, unknown>> = D3DragEvent<HTMLElement, unknown, NodeInterface<NodeData>>;
223
+ type ListenersInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
224
+ onContextMenu?: (this: GraphCanvas<NodeData, LinkData>, event: MouseEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
225
+ onClick?: (this: GraphCanvas<NodeData, LinkData>, event: MouseEvent | TouchEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
226
+ onDoubleClick?: (this: GraphCanvas<NodeData, LinkData>, event: MouseEvent | TouchEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
227
+ onWheelClick?: (this: GraphCanvas<NodeData, LinkData>, event: MouseEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
228
+ onMove?: (this: GraphCanvas<NodeData, LinkData>, event: MouseEvent | TouchEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
229
+ onZoom?: (this: GraphCanvas<NodeData, LinkData>, event: ZoomEventInterface) => void;
230
+ onDragSubject?: (this: GraphCanvas<NodeData, LinkData>, event: DragEventInterface<NodeData>) => NodeInterface<NodeData> | undefined;
231
+ onDraw?: (this: GraphCanvas<NodeData, LinkData>) => void;
232
+ onStartDragFinished?: (this: GraphCanvas<NodeData, LinkData>, event: DragEventInterface<NodeData>) => void;
233
+ onMoveDragFinished?: (this: GraphCanvas<NodeData, LinkData>, event: DragEventInterface<NodeData>) => void;
234
+ onEndDragFinished?: (this: GraphCanvas<NodeData, LinkData>, event: DragEventInterface<NodeData>) => void;
235
+ onDrawFinished?: (this: GraphCanvas<NodeData, LinkData>) => void;
236
+ onSimulationEnd?: (this: GraphCanvas<NodeData, LinkData>) => void;
237
+ };
238
+
239
+ type NodeSettingsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
240
+ cacheOptions?: boolean;
241
+ nodeRadiusFlexible?: boolean;
169
242
  nodeRadiusCoefficient?: number;
170
243
  nodeRadiusFactor?: number;
171
- nodeRadiusFlexible?: boolean;
172
244
  nodeSizeFlexible?: boolean;
173
245
  nodeSizeCoefficient?: number;
174
246
  nodeSizeFactor?: number;
175
247
  textNodeDebug?: boolean;
248
+ textScaleMin?: number;
249
+ textScaleMax?: number;
250
+ textSizeMin?: number;
251
+ textSizeMax?: number;
252
+ textShiftYMin?: number;
253
+ textShiftYMax?: number;
254
+ idGetter?: NodeIterationPropsInterface<NodeData, LinkData, string | number>;
176
255
  options?: NodeIterationPropsInterface<NodeData, LinkData, NodeOptionsInterface<NodeData, LinkData>> | NodeOptionsInterface<NodeData, LinkData>;
177
256
  };
178
257
  type NodeOptionsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
@@ -180,73 +259,47 @@ type NodeOptionsInterface<NodeData extends Record<string, unknown>, LinkData ext
180
259
  textDraw?: ((this: GraphCanvas<NodeData, LinkData>, node: NodeInterface<NodeData>, options: Required<NodeOptionsInterface<NodeData, LinkData>>) => void) | null;
181
260
  nodeExtraDraw?: ((this: GraphCanvas<NodeData, LinkData>, node: NodeInterface<NodeData>, options: Required<NodeOptionsInterface<NodeData, LinkData>>) => void) | null;
182
261
  textExtraDraw?: ((this: GraphCanvas<NodeData, LinkData>, node: NodeInterface<NodeData>, options: Required<NodeOptionsInterface<NodeData, LinkData>>) => void) | null;
262
+ } & NodeOptionsNodeInterface & NodeOptionsTextInterface & NodeOptionsLabelInterface;
263
+ type NodeOptionsNodeInterface = {
183
264
  shape?: NodeShape;
184
265
  width?: number;
185
266
  height?: number;
186
- borderRadius?: number;
187
- borderColor?: string;
188
- borderWidth?: number;
189
267
  radius?: number;
190
268
  alpha?: number;
191
269
  color?: string;
192
- textNodeYPadding?: number;
193
- textNodeXPadding?: number;
270
+ borderRadius?: number;
271
+ borderColor?: string;
272
+ borderWidth?: number;
273
+ };
274
+ type NodeOptionsTextInterface = {
194
275
  textVisible?: boolean;
195
276
  text?: string | null;
277
+ textColor?: string;
278
+ textSize?: number;
196
279
  textAlpha?: number;
197
- textShiftY?: number;
280
+ textWidth?: number;
198
281
  textShiftX?: number;
282
+ textShiftY?: number;
283
+ textWeight?: number;
284
+ textGap?: number;
199
285
  textFont?: string;
200
- textSize?: number;
201
- textColor?: string;
202
286
  textAlign?: CanvasTextAlign;
203
- textWidth?: number;
204
287
  textStyle?: TextStyleEnum;
205
- textWeight?: number;
206
- textGap?: number;
207
288
  };
208
- type NodeIterationPropsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Return = number> = (node: NodeInterface<NodeData>, i: number, nodes: NodeInterface<NodeData>[], state?: GraphState<NodeData, LinkData>) => Return;
209
- type LinkSettingsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
210
- particles?: boolean;
211
- pretty?: boolean;
212
- arrow?: boolean;
213
- arrowByHighlight?: boolean;
214
- cache?: boolean;
215
- particleFlexSpeed?: boolean;
216
- particleFlexSpeedCoefficient?: number;
217
- highlightByNodeLinkFadingMin?: number;
218
- highlightByNodeArrowFadingMin?: number;
219
- highlightByLinkArrowFadingMin?: number;
220
- highlightByLinkLinkFadingMin?: number;
221
- highlightByHoverLink?: boolean;
222
- highlightByNodeLinkFading?: boolean;
223
- highlightByNodeArrowFading?: boolean;
224
- highlightByLinkLinkFading?: boolean;
225
- highlightByLinkArrowFading?: boolean;
226
- hoverLinkThreshold?: number;
227
- options?: LinkIterationPropsInterface<NodeData, LinkData, LinkOptionsInterface<NodeData, LinkData>> | LinkOptionsInterface<NodeData, LinkData>;
289
+ type NodeOptionsLabelInterface = {
290
+ labelAlpha?: number;
291
+ labelYPadding?: number;
292
+ labelXPadding?: number;
293
+ labelAlign?: CanvasTextAlign;
294
+ labelColor?: string;
295
+ labelSize?: number;
296
+ labelFont?: string;
297
+ labelWidth?: number;
298
+ labelStyle?: TextStyleEnum;
299
+ labelWeight?: number;
300
+ labelGap?: number;
301
+ label?: string | null;
228
302
  };
229
- type LinkOptionsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
230
- drawLink?: ((link: LinkInterface<NodeData, LinkData>, options: Required<LinkOptionsInterface<NodeData, LinkData>>, state: GraphState<NodeData, LinkData>) => void) | null;
231
- drawExtraLink?: ((link: LinkInterface<NodeData, LinkData>, options: Required<LinkOptionsInterface<NodeData, LinkData>>, state: GraphState<NodeData, LinkData>) => void) | null;
232
- alpha?: number;
233
- color?: string;
234
- width?: number;
235
- arrowAlpha?: number;
236
- arrowColor?: string;
237
- arrowSize?: number;
238
- arrowBorderColor?: string;
239
- arrowBorderWidth?: number;
240
- particleBorderColor?: string;
241
- particleBorderWidth?: number;
242
- particleAlpha?: number;
243
- particleColor?: string;
244
- particleRadius?: number;
245
- particleCount?: number;
246
- particleSteps?: number;
247
- };
248
- type LinkIterationPropsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Return = number> = (link: LinkInterface<NodeData, LinkData>, i: number, links: LinkInterface<NodeData, LinkData>[], state?: GraphState<NodeData, LinkData>) => Return;
249
- type TextStyleEnum = "normal" | "italic" | "oblique";
250
303
 
251
304
  type GraphCanvasInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
252
305
  nodes: NodeInterface<NodeData>[];
@@ -257,52 +310,15 @@ type GraphCanvasInterface<NodeData extends Record<string, unknown>, LinkData ext
257
310
  nodeSettings?: NodeSettingsInterface<NodeData, LinkData>;
258
311
  linkSettings?: LinkSettingsInterface<NodeData, LinkData>;
259
312
  listeners?: ListenersInterface<NodeData, LinkData>;
313
+ highlightSettings?: HighlightSettingsInterface;
260
314
  };
261
315
  type GraphCanvasSimulation<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = Simulation<NodeInterface<NodeData>, LinkInterface<NodeData, LinkData>>;
262
- type GraphState<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
263
- context: CanvasRenderingContext2D | null | undefined;
264
- simulation: GraphCanvasSimulation<NodeData, LinkData> | undefined;
265
- areaTransform: ZoomTransform;
266
- eventAbortController: AbortController;
267
- cachedNodeText: CachedNodeTextInterface;
268
- simulationWorking: boolean;
269
- isDragging: boolean;
270
- highlightedNode: NodeInterface<NodeData> | null;
271
- highlightedLink: LinkInterface<NodeData, LinkData> | null;
272
- highlightedNeighbors: Set<string | number> | null;
273
- highlightProgress: number;
274
- highlightWorking: boolean;
275
- highlightDrawing: boolean;
276
- width: number;
277
- height: number;
278
- nodes: NodeInterface<NodeData>[];
279
- links: LinkInterface<NodeData, LinkData>[];
280
- graphSettings: Required<GraphSettingsInterface<NodeData>>;
281
- forceSettings: Required<ForceSettingsInterface<NodeData, LinkData>>;
282
- nodeSettings: Required<Omit<NodeSettingsInterface<NodeData, LinkData>, "options">> & Pick<NodeSettingsInterface<NodeData, LinkData>, "options">;
283
- linkSettings: Required<Omit<LinkSettingsInterface<NodeData, LinkData>, "options">> & Pick<LinkSettingsInterface<NodeData, LinkData>, "options">;
284
- };
285
- type RGB = {
286
- r: number;
287
- g: number;
288
- b: number;
289
- };
290
- type GraphParticle = {
291
- step: number;
292
- index: number;
293
- prev: GraphParticle | undefined;
294
- next: GraphParticle | undefined;
295
- x?: number;
296
- y?: number;
297
- sourceId: string | number;
298
- targetId: string | number;
299
- };
300
316
 
301
317
  declare class GraphCanvas<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> {
302
318
  /** initial data */
303
319
  protected nodes: NodeInterface<NodeData>[];
304
320
  protected links: LinkInterface<NodeData, LinkData>[];
305
- protected particles: Record<string, GraphParticle[]>;
321
+ protected particles: Record<string, LinkParticle[]>;
306
322
  protected width: number;
307
323
  protected height: number;
308
324
  protected root: HTMLElement;
@@ -311,6 +327,7 @@ declare class GraphCanvas<NodeData extends Record<string, unknown>, LinkData ext
311
327
  /** settings */
312
328
  protected graphSettings: Required<GraphSettingsInterface<NodeData>>;
313
329
  protected forceSettings: Required<ForceSettingsInterface<NodeData, LinkData>>;
330
+ protected highlightSettings: Required<HighlightSettingsInterface>;
314
331
  protected nodeSettings: Required<Omit<NodeSettingsInterface<NodeData, LinkData>, "options">> & Pick<NodeSettingsInterface<NodeData, LinkData>, "options">;
315
332
  protected linkSettings: Required<Omit<LinkSettingsInterface<NodeData, LinkData>, "options">> & Pick<LinkSettingsInterface<NodeData, LinkData>, "options">;
316
333
  protected listeners: ListenersInterface<NodeData, LinkData>;
@@ -322,6 +339,7 @@ declare class GraphCanvas<NodeData extends Record<string, unknown>, LinkData ext
322
339
  protected draw: (this: GraphCanvas<NodeData, LinkData>) => void;
323
340
  protected eventAbortController: AbortController;
324
341
  protected cachedNodeText: CachedNodeTextInterface;
342
+ protected cachedNodeLabel: CachedNodeTextInterface;
325
343
  protected cachedTextNodeParameters: CachedTextNodeParametersMap;
326
344
  protected linkOptionsCache: Record<string, Required<LinkOptionsInterface<NodeData, LinkData>>>;
327
345
  protected nodeOptionsCache: Record<string, Required<NodeOptionsInterface<NodeData, LinkData>>>;
@@ -333,14 +351,13 @@ declare class GraphCanvas<NodeData extends Record<string, unknown>, LinkData ext
333
351
  protected highlightWorking: boolean;
334
352
  protected highlightDrawing: boolean;
335
353
  protected get simulationWorking(): boolean;
336
- protected get state(): GraphState<NodeData, LinkData>;
337
- constructor({ links, nodes, root, forceSettings, linkSettings, listeners, nodeSettings, graphSettings, }: GraphCanvasInterface<NodeData, LinkData>);
354
+ constructor({ links, nodes, root, forceSettings, linkSettings, listeners, nodeSettings, graphSettings, highlightSettings, }: GraphCanvasInterface<NodeData, LinkData>);
338
355
  get dpi(): number;
339
356
  getData(): Pick<GraphCanvasInterface<NodeData, LinkData>, "nodes" | "links">;
340
357
  changeData(options: Pick<Partial<GraphCanvasInterface<NodeData, LinkData>>, "links" | "nodes">, alpha?: number): void;
341
358
  changeSettings(options: Omit<Partial<GraphCanvasInterface<NodeData, LinkData>>, "links" | "nodes" | "listeners">): undefined;
342
359
  updateRect(): void;
343
- clearCache(): void;
360
+ clearCache(keys?: ("nodeOptionsCache" | "linkOptionsCache" | "cachedNodeText" | "cachedNodeLabel" | "cachedTextNodeParameters")[]): void;
344
361
  tick(): void;
345
362
  restart(alpha?: number): void;
346
363
  start(): void;
@@ -355,9 +372,21 @@ declare class GraphCanvas<NodeData extends Record<string, unknown>, LinkData ext
355
372
  protected init(): void;
356
373
  }
357
374
 
358
- declare function linkOptionsGetter<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(_: LinkInterface<NodeData, LinkData>, __: number, ___: LinkInterface<NodeData, LinkData>[], state?: GraphState<NodeData, LinkData>): Required<LinkOptionsInterface<NodeData, LinkData>>;
375
+ declare function forceSettingsGetter<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(settings: ForceSettingsInterface<NodeData, LinkData> | undefined, prevSettings?: Required<ForceSettingsInterface<NodeData, LinkData>>): Required<ForceSettingsInterface<NodeData, LinkData>>;
359
376
 
360
- declare function nodeOptionsGetter<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(node: NodeInterface<NodeData>, _: number, __: NodeInterface<NodeData>[], state?: GraphState<NodeData, LinkData>): Required<NodeOptionsInterface<NodeData, LinkData>>;
377
+ declare function graphSettingsGetter<NodeData extends Record<string, unknown>>(settings: GraphSettingsInterface<NodeData> | undefined, prevSettings?: Required<GraphSettingsInterface<NodeData>>): Required<GraphSettingsInterface<NodeData>>;
378
+
379
+ declare function linkSettingsGetter<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(settings: LinkSettingsInterface<NodeData, LinkData> | undefined, prevSettings?: Required<Omit<LinkSettingsInterface<NodeData, LinkData>, "options">> & Pick<LinkSettingsInterface<NodeData, LinkData>, "options">): Required<Omit<LinkSettingsInterface<NodeData, LinkData>, "options">> & Pick<LinkSettingsInterface<NodeData, LinkData>, "options">;
380
+ declare function linkOptionsGetter<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(this: GraphCanvas<NodeData, LinkData>): Required<LinkOptionsInterface<NodeData, LinkData>>;
381
+
382
+ declare function listenersGetter<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(settings: ListenersInterface<NodeData, LinkData> | undefined): ListenersInterface<NodeData, LinkData>;
383
+
384
+ declare function nodeSettingsGetter<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(settings: NodeSettingsInterface<NodeData, LinkData> | undefined, prevNodeSettings?: Required<Omit<NodeSettingsInterface<NodeData, LinkData>, "options">> & Pick<NodeSettingsInterface<NodeData, LinkData>, "options">): Required<Omit<NodeSettingsInterface<NodeData, LinkData>, "options">> & Pick<NodeSettingsInterface<NodeData, LinkData>, "options">;
385
+ declare function nodeOptionsGetter<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(this: GraphCanvas<NodeData, LinkData>, node: NodeInterface<NodeData>): Required<NodeOptionsInterface<NodeData, LinkData>>;
386
+ declare function nodeTextSizeGetter<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(transform: ZoomTransform | undefined, nodeSettings: Required<Omit<NodeSettingsInterface<NodeData, LinkData>, "options">> & Pick<NodeSettingsInterface<NodeData, LinkData>, "options">): {
387
+ textSize: number;
388
+ textShiftY: number;
389
+ };
361
390
  type NodeRadiusGetterOptions = {
362
391
  linkCount: number | undefined;
363
392
  radiusFlexible: boolean;
@@ -366,9 +395,31 @@ type NodeRadiusGetterOptions = {
366
395
  radiusInitial: number;
367
396
  };
368
397
  declare function nodeRadiusGetter({ radiusFlexible, radiusInitial, linkCount, radiusCoefficient, radiusFactor, }: NodeRadiusGetterOptions): number;
398
+ type NodeSizeGetterOptions = {
399
+ linkCount: number | undefined;
400
+ sizeFlexible: boolean;
401
+ sizeCoefficient: number;
402
+ sizeFactor: number;
403
+ widthInitial: number;
404
+ heightInitial: number;
405
+ };
406
+ declare function nodeSizeGetter({ heightInitial, linkCount, sizeCoefficient, sizeFactor, sizeFlexible, widthInitial, }: NodeSizeGetterOptions): {
407
+ width: number;
408
+ height: number;
409
+ additionalSizeCoefficient: number;
410
+ };
411
+ declare function nodeIdGetter<NodeData extends Record<string, unknown>>(node: NodeInterface<NodeData>): string | number;
412
+
413
+ declare function highlightSettingsGetter(settings: HighlightSettingsInterface | undefined, prevSettings?: Required<HighlightSettingsInterface>): Required<HighlightSettingsInterface>;
414
+
415
+ declare function pointerGetter(mouseEvent: MouseEvent | TouchEvent, areaRect: DOMRect, areaTransform: ZoomTransform): number[];
416
+
417
+ declare function dragPlaceCoefficientGetter<NodeData extends Record<string, unknown>>(node: NodeInterface<NodeData>, pointerX: number, pointerY: number): number | undefined;
369
418
 
370
- declare function linkIterationExtractor<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Result extends string | number | boolean | Record<string, unknown> | unknown[]>(link: LinkInterface<NodeData, LinkData>, i: number, links: LinkInterface<NodeData, LinkData>[], state: GraphState<NodeData, LinkData>, option: LinkIterationPropsInterface<NodeData, LinkData, Result> | Result, optionConstantGetter: undefined): Result;
371
- declare function linkIterationExtractor<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Result extends string | number | boolean | Record<string, unknown> | unknown[]>(link: LinkInterface<NodeData, LinkData>, i: number, links: LinkInterface<NodeData, LinkData>[], state: GraphState<NodeData, LinkData>, option: LinkIterationPropsInterface<NodeData, LinkData, Result> | Result, optionConstantGetter: LinkIterationPropsInterface<NodeData, LinkData, Required<Result>> | Required<Result>): Required<Result>;
419
+ declare function isOverlapsNode<NodeData extends Record<string, unknown>>(node: NodeInterface<NodeData>, pointerX: number, pointerY: number, radius: number | undefined): boolean;
420
+
421
+ declare function linkIterationExtractor<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Result extends string | number | boolean | Record<string, unknown> | unknown[]>(link: LinkInterface<NodeData, LinkData>, i: number, links: LinkInterface<NodeData, LinkData>[], state: GraphCanvas<NodeData, LinkData>, option: LinkIterationPropsInterface<NodeData, LinkData, Result> | Result, optionConstantGetter: undefined): Result;
422
+ declare function linkIterationExtractor<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Result extends string | number | boolean | Record<string, unknown> | unknown[]>(link: LinkInterface<NodeData, LinkData>, i: number, links: LinkInterface<NodeData, LinkData>[], state: GraphCanvas<NodeData, LinkData>, option: LinkIterationPropsInterface<NodeData, LinkData, Result> | Result, optionConstantGetter: LinkIterationPropsInterface<NodeData, LinkData, Required<Result>> | Required<Result>): Required<Result>;
372
423
 
373
424
  type NodeByPointerGetterOptions<NodeData extends Record<string, unknown>> = {
374
425
  mouseEvent: MouseEvent | TouchEvent;
@@ -378,8 +429,8 @@ type NodeByPointerGetterOptions<NodeData extends Record<string, unknown>> = {
378
429
  };
379
430
  declare function nodeByPointerGetter<NodeData extends Record<string, unknown>>({ areaRect, areaTransform, mouseEvent, nodes, }: NodeByPointerGetterOptions<NodeData>): NodeInterface<NodeData> | undefined;
380
431
 
381
- declare function nodeIterationExtractor<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Result extends string | number | boolean | Record<string, unknown> | unknown[] | undefined | null>(node: NodeInterface<NodeData>, i: number, nodes: NodeInterface<NodeData>[], state: GraphState<NodeData, LinkData>, option: NodeIterationPropsInterface<NodeData, LinkData, Result> | Result, optionConstantGetter: undefined): Result;
382
- declare function nodeIterationExtractor<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Result extends string | number | boolean | Record<string, unknown> | unknown[] | undefined | null>(node: NodeInterface<NodeData>, i: number, nodes: NodeInterface<NodeData>[], state: GraphState<NodeData, LinkData>, option: NodeIterationPropsInterface<NodeData, LinkData, Result> | Result, optionConstantGetter: NodeIterationPropsInterface<NodeData, LinkData, Result> | Result): Required<Result>;
432
+ declare function nodeIterationExtractor<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Result extends string | number | boolean | Record<string, unknown> | unknown[] | undefined | null>(node: NodeInterface<NodeData>, i: number, nodes: NodeInterface<NodeData>[], state: GraphCanvas<NodeData, LinkData>, option: NodeIterationPropsInterface<NodeData, LinkData, Result> | Result, optionConstantGetter: undefined): Result;
433
+ declare function nodeIterationExtractor<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>, Result extends string | number | boolean | Record<string, unknown> | unknown[] | undefined | null>(node: NodeInterface<NodeData>, i: number, nodes: NodeInterface<NodeData>[], state: GraphCanvas<NodeData, LinkData>, option: NodeIterationPropsInterface<NodeData, LinkData, Result> | Result, optionConstantGetter: NodeIterationPropsInterface<NodeData, LinkData, Result> | Result): Required<Result>;
383
434
 
384
435
  declare function calculateLinkPositionByNode<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(link: LinkInterface<NodeData, LinkData>, arrowSize?: number): {
385
436
  x1: number;
@@ -391,8 +442,16 @@ declare function calculateLinkPositionByNode<NodeData extends Record<string, unk
391
442
 
392
443
  declare function animationByProgress(initial: number, additional: number, progress: number): number;
393
444
 
445
+ type IsNodeVisibleOptions<NodeData extends Record<string, unknown>> = {
446
+ width: number;
447
+ height: number;
448
+ transform: ZoomTransform;
449
+ node: NodeInterface<NodeData>;
450
+ };
451
+ declare function isNodeVisible<NodeData extends Record<string, unknown>>(opts: IsNodeVisibleOptions<NodeData>): boolean;
452
+
394
453
  type GetParticlePositionOptions = {
395
- particle: GraphParticle;
454
+ particle: LinkParticle;
396
455
  xStart: number;
397
456
  yStart: number;
398
457
  xEnd: number;
@@ -408,13 +467,93 @@ type LinkByPointerGetterOptions<NodeData extends Record<string, unknown>, LinkDa
408
467
  areaRect: DOMRect | undefined;
409
468
  areaTransform: ZoomTransform;
410
469
  links: LinkInterface<NodeData, LinkData>[];
411
- linkSettings: Required<Omit<LinkSettingsInterface<NodeData, LinkData>, "options">> & Pick<LinkSettingsInterface<NodeData, LinkData>, "options">;
470
+ linkHoverExtraZone: number;
471
+ };
472
+ declare function linkByPointerGetter<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>({ areaRect, areaTransform, mouseEvent, links, linkHoverExtraZone, }: LinkByPointerGetterOptions<NodeData, LinkData>): LinkInterface<NodeData, LinkData> | undefined;
473
+
474
+ type NodeHighlightOptions<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
475
+ nodeOptions: Required<NodeOptionsInterface<NodeData, LinkData>>;
476
+ highlightProgress: number;
477
+ highlightForNodeColor: string | null;
478
+ highlightForNodeSizingAdditional: number;
479
+ highlightForNodeSizingAdditionalCoefficient: number;
480
+ highlightForNodeBorderColor: string | null;
481
+ highlightForNodeBorderSizingAdditional: number;
482
+ highlightForTextSizingAdditional: number;
483
+ highlightForTextShiftXAdditional: number;
484
+ highlightForTextShiftYAdditional: number;
485
+ highlightForTextWeightAdditional: number;
486
+ highlightForLabelSizingAdditional: number;
487
+ highlightForLabelWeightAdditional: number;
488
+ };
489
+ declare function nodeHighlight<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(opts: NodeHighlightOptions<NodeData, LinkData>): {
490
+ color: string;
491
+ borderColor: string;
492
+ borderWidth: number;
493
+ radiusInitial: number;
494
+ widthInitial: number;
495
+ heightInitial: number;
496
+ textSize: number;
497
+ textShiftX: number;
498
+ textShiftY: number;
499
+ textWeight: number;
500
+ labelSize: number;
501
+ labelWeight: number;
502
+ sizeCoefficient: number;
503
+ };
504
+ type NodeFadingOptions<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
505
+ nodeOptions: Required<NodeOptionsInterface<NodeData, LinkData>>;
506
+ highlightProgress: number;
507
+ highlightForNodeFadingMin: number;
508
+ highlightForTextFadingMin: number;
509
+ highlightForLabelFadingMin: number;
510
+ highlightForNodeColorFading: boolean;
511
+ highlightForNodeColorFadingMin: number;
512
+ };
513
+ declare function nodeFade<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(opts: NodeFadingOptions<NodeData, LinkData>): {
514
+ alpha: number;
515
+ color: string;
516
+ textAlpha: number;
517
+ labelAlpha: number;
412
518
  };
413
- declare function linkByPointerGetter<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>({ areaRect, areaTransform, mouseEvent, links, linkSettings, }: LinkByPointerGetterOptions<NodeData, LinkData>): LinkInterface<NodeData, LinkData> | undefined;
414
519
 
415
- declare function getDrawLink<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(state: GraphState<NodeData, LinkData>): (this: GraphCanvas<NodeData, LinkData>, link: LinkInterface<NodeData, LinkData>, index: number) => void;
520
+ type LinkHighlightOptions<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
521
+ linkOptions: Required<LinkOptionsInterface<NodeData, LinkData>>;
522
+ highlightProgress: number;
523
+ arrow: boolean;
524
+ arrowByHighlight: boolean;
525
+ highlightForArrowBorderSizingAdditional: number;
526
+ highlightForArrowBorderColor: string | null;
527
+ highlightForArrowColor: string | null;
528
+ highlightForArrowSizeAdditional: number;
529
+ highlightForLinkColor: string | null;
530
+ highlightForLinkSizeAdditional: number;
531
+ };
532
+ declare function linkHighlight<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(opts: LinkHighlightOptions<NodeData, LinkData>): {
533
+ arrowAlpha: number;
534
+ color: string;
535
+ width: number;
536
+ arrowColor: string;
537
+ arrowSize: number;
538
+ arrowBorderWidth: number;
539
+ arrowBorderColor: string;
540
+ };
541
+ type LinkFadeOptions<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
542
+ linkOptions: Required<LinkOptionsInterface<NodeData, LinkData>>;
543
+ highlightProgress: number;
544
+ arrow: boolean;
545
+ arrowByHighlight: boolean;
546
+ highlightForLinkFadingMin: number;
547
+ highlightForArrowFadingMin: number;
548
+ };
549
+ declare function linkFade<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(opts: LinkFadeOptions<NodeData, LinkData>): {
550
+ alpha: number;
551
+ arrowAlpha: number;
552
+ };
416
553
 
417
- declare function getDrawNode<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(nodeRenders: (() => void)[], textRenders: (() => void)[], state: GraphState<NodeData, LinkData>): (this: GraphCanvas<NodeData, LinkData>, node: NodeInterface<NodeData>, index: number) => void;
554
+ declare function getDrawLink<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(): (this: GraphCanvas<NodeData, LinkData>, link: LinkInterface<NodeData, LinkData>, index: number) => void;
555
+
556
+ declare function getDrawNode<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(nodeRenders: (() => void)[], textRenders: (() => void)[]): (this: GraphCanvas<NodeData, LinkData>, node: NodeInterface<NodeData>, index: number) => void;
418
557
 
419
558
  type DrawTextOptions = {
420
559
  id: string | number;
@@ -434,6 +573,64 @@ type DrawTextOptions = {
434
573
  };
435
574
  declare function drawText({ context, id, textAlign, textColor, textFont, textStyle, textGap, textWeight, textSize, text, x, y, cachedNodeText, maxWidth, }: DrawTextOptions): void;
436
575
 
576
+ declare const COMMON_SETTINGS: {
577
+ nodeRadius: number;
578
+ nodeSize: number;
579
+ };
580
+
581
+ declare const FORCE_SETTINGS: Required<ForceSettingsInterface<Record<string, unknown>, Record<string, unknown>>>;
582
+
583
+ declare const GRAPH_SETTINGS: Required<GraphSettingsInterface<Record<string, unknown>>>;
584
+
585
+ declare const HIGHLIGHT_SETTINGS: Required<HighlightSettingsInterface>;
586
+
587
+ declare const LINK_SETTINGS: Omit<Required<LinkSettingsInterface<Record<string, unknown>, Record<string, unknown>>>, "options">;
588
+ declare const LINK_OPTIONS: Omit<Required<LinkOptionsInterface<Record<string, unknown>, Record<string, unknown>>>, "color" | "width" | "drawLink" | "drawExtraLink" | "arrowColor">;
589
+
590
+ declare const NODE_SETTINGS: Omit<Required<NodeSettingsInterface<Record<string, unknown>, Record<string, unknown>>>, "options" | "idGetter">;
591
+ declare const NODE_OPTIONS: Omit<Required<NodeOptionsInterface<Record<string, unknown>, Record<string, unknown>>>, "color" | "text" | "textVisible" | "textSize" | "textShiftY" | "nodeDraw" | "nodeExtraDraw" | "textDraw" | "textExtraDraw">;
592
+
593
+ type GraphSettingsInputRange<I extends string> = {
594
+ type: "range";
595
+ min: number;
596
+ max: number;
597
+ step: number;
598
+ initialValue: number;
599
+ id: I;
600
+ label: string;
601
+ };
602
+ type GraphSettingsInputCheckBox<I extends string> = {
603
+ type: "checkbox";
604
+ id: I;
605
+ initialValue: boolean;
606
+ label: string;
607
+ };
608
+ type GraphSettingsInputColorBox<I extends string> = {
609
+ type: "color";
610
+ id: I;
611
+ initialValue: string;
612
+ label: string;
613
+ };
614
+ type GraphSettingsInputSelect<I extends string> = {
615
+ type: "select";
616
+ id: I;
617
+ initialValue: string;
618
+ label: string;
619
+ options: {
620
+ label: string;
621
+ value: string;
622
+ }[];
623
+ };
624
+ type GraphSettingsInputInterface<I extends string> = GraphSettingsInputRange<I> | GraphSettingsInputCheckBox<I> | GraphSettingsInputColorBox<I> | GraphSettingsInputSelect<I>;
625
+
626
+ type RGB = {
627
+ r: number;
628
+ g: number;
629
+ b: number;
630
+ };
631
+
632
+ declare function colorGetter(): (key: string) => string;
633
+
437
634
  declare function colorToRgb(color: string): string | null;
438
635
 
439
636
  declare function extractRgb(color: string | null): {
@@ -446,11 +643,30 @@ declare function fadeRgb(color: RGB, fade: number): RGB;
446
643
 
447
644
  declare function rgbAnimationByProgress(start: RGB, end: RGB, progress: number): RGB;
448
645
 
449
- declare function getForceControls<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(keys?: (keyof ForceSettingsInterface<NodeData, LinkData>)[]): GraphSettingsInputInterface<keyof ForceSettingsInterface<NodeData, LinkData>>[];
450
- declare function getGraphControls<NodeData extends Record<string, unknown>>(keys?: (keyof GraphSettingsInterface<NodeData>)[]): GraphSettingsInputInterface<keyof GraphSettingsInterface<NodeData>>[];
451
- declare function getNodeSettingControls<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(keys?: keyof Omit<Required<NodeSettingsInterface<NodeData, LinkData>>, "options" | "idGetter">): GraphSettingsInputInterface<"cache" | "highlightByNodeOnlyRoot" | "highlightByNodeNodeFadingMin" | "highlightByNodeNodeColorFadingMin" | "highlightByNodeNodeSizingAdditional" | "highlightByNodeNodeSizingAdditionalCoefficient" | "highlightByNodeTextFadingMin" | "highlightByNodeTextSizingAdditional" | "highlightByNodeTextShiftXAdditional" | "highlightByNodeTextShiftYAdditional" | "highlightByNodeTextWeightAdditional" | "highlightByNodeTextWidthAdditional" | "highlightByLinkNodeFadingMin" | "highlightByLinkNodeColorFadingMin" | "highlightByLinkTextFadingMin" | "highlightByLinkNodeSizingAdditional" | "highlightByLinkNodeSizingAdditionalCoefficient" | "highlightByLinkTextSizingAdditional" | "highlightByLinkTextShiftXAdditional" | "highlightByLinkTextShiftYAdditional" | "highlightByLinkTextWeightAdditional" | "highlightByLinkTextWidthAdditional" | "highlightByHoverNode" | "highlightByNodeNodeFading" | "highlightByNodeNodeSizing" | "highlightByNodeTextFading" | "highlightByNodeTextSizing" | "highlightByNodeNodeColor" | "highlightByLinkNodeFading" | "highlightByLinkNodeSizing" | "highlightByLinkTextFading" | "highlightByLinkTextSizing" | "highlightByLinkNodeColor" | "nodeRadiusCoefficient" | "nodeRadiusFactor" | "nodeRadiusFlexible" | "nodeSizeFlexible" | "nodeSizeCoefficient" | "nodeSizeFactor" | "textNodeDebug">[];
452
- declare function getNodeOptionsControls<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(keys?: (keyof NodeOptionsInterface<NodeData, LinkData>)[]): GraphSettingsInputInterface<keyof NodeOptionsInterface<NodeData, LinkData>>[];
453
- declare function getLinkSettingsControls<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(keys?: keyof Omit<Required<LinkSettingsInterface<NodeData, LinkData>>, "options">): GraphSettingsInputInterface<"cache" | "particles" | "pretty" | "arrow" | "arrowByHighlight" | "particleFlexSpeed" | "particleFlexSpeedCoefficient" | "highlightByNodeLinkFadingMin" | "highlightByNodeArrowFadingMin" | "highlightByLinkArrowFadingMin" | "highlightByLinkLinkFadingMin" | "highlightByHoverLink" | "highlightByNodeLinkFading" | "highlightByNodeArrowFading" | "highlightByLinkLinkFading" | "highlightByLinkArrowFading" | "hoverLinkThreshold">[];
454
- declare function getLinkOptionsControls<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(keys?: (keyof LinkOptionsInterface<NodeData, LinkData>)[]): GraphSettingsInputInterface<keyof LinkOptionsInterface<NodeData, LinkData>>[];
646
+ declare const FORCE_CONTROLS: GraphSettingsInputInterface<keyof ForceSettingsInterface<Record<string, unknown>, Record<string, unknown>>>[];
647
+
648
+ declare const GRAPH_CONTROLS: GraphSettingsInputInterface<keyof GraphSettingsInterface<Record<string, unknown>>>[];
649
+
650
+ declare const HIGHLIGHT_COMMON_CONTROLS: GraphSettingsInputInterface<keyof HighlighCommonSettingsInterface>[];
651
+ declare const HIGHLIGHT_BY_NODE_FOR_NODE_CONTROLS: GraphSettingsInputInterface<keyof HighlightByNodeForNodeSettingsInterface>[];
652
+ declare const HIGHLIGHT_BY_NODE_FOR_TEXT_CONTROLS: GraphSettingsInputInterface<keyof HighlightByNodeForTextSettingsInterface>[];
653
+ declare const HIGHLIGHT_BY_NODE_FOR_LABEL_CONTROLS: GraphSettingsInputInterface<keyof HighlightByNodeForLabelSettingsInterface>[];
654
+ declare const HIGHLIGHT_BY_NODE_FOR_LINK_CONTROLS: GraphSettingsInputInterface<keyof HighlightByNodeForLinkSettingsInterface>[];
655
+ declare const HIGHLIGHT_BY_NODE_FOR_ARROW_CONTROLS: GraphSettingsInputInterface<keyof HighlightByNodeForArrowSettingsInterface>[];
656
+ declare const HIGHLIGHT_BY_LINK_FOR_NODE_CONTROLS: GraphSettingsInputInterface<keyof HighlightByLinkForNodeSettingsInterface>[];
657
+ declare const HIGHLIGHT_BY_LINK_FOR_TEXT_CONTROLS: GraphSettingsInputInterface<keyof HighlightByLinkForTextSettingsInterface>[];
658
+ declare const HIGHLIGHT_BY_LINK_FOR_LABEL_CONTROLS: GraphSettingsInputInterface<keyof HighlightByLinkForLabelSettingsInterface>[];
659
+ declare const HIGHLIGHT_BY_LINK_FOR_LINK_CONTROLS: GraphSettingsInputInterface<keyof HighlightByLinkForLinkSettingsInterface>[];
660
+ declare const HIGHLIGHT_BY_LINK_FOR_ARROW_CONTROLS: GraphSettingsInputInterface<keyof HighlightByLinkForArrowSettingsInterface>[];
661
+
662
+ declare const LINK_SETTINGS_CONTROLS: GraphSettingsInputInterface<keyof Omit<Required<LinkSettingsInterface<Record<string, unknown>, Record<string, unknown>>>, "options">>[];
663
+ declare const LINK_OPTIONS_LINK_CONTROLS: GraphSettingsInputInterface<keyof LinkOptionsLinkInterface>[];
664
+ declare const LINK_OPTIONS_ARROW_CONTROLS: GraphSettingsInputInterface<keyof LinkOptionsArrowInterface>[];
665
+ declare const LINK_OPTIONS_PARTICLE_CONTROLS: GraphSettingsInputInterface<keyof LinkOptionsParticleInterface>[];
666
+
667
+ declare const NODE_SETTINGS_CONTROLS: GraphSettingsInputInterface<keyof Omit<Required<NodeSettingsInterface<Record<string, unknown>, Record<string, unknown>>>, "options" | "idGetter">>[];
668
+ declare const NODE_OPTIONS_NODE_CONTROLS: GraphSettingsInputInterface<keyof NodeOptionsNodeInterface>[];
669
+ declare const NODE_OPTIONS_TEXT_CONTROLS: GraphSettingsInputInterface<keyof NodeOptionsTextInterface>[];
670
+ declare const NODE_OPTIONS_LABEL_CONTROLS: GraphSettingsInputInterface<keyof NodeOptionsLabelInterface>[];
455
671
 
456
- export { type CachedNodeTextInterface, type CachedTextNodeParametersInterface, type CachedTextNodeParametersMap, type DragEventInterface, type ForceSettingsInterface, GraphCanvas, type GraphCanvasInterface, type GraphCanvasSimulation, type GraphParticle, type GraphSettingsInputInterface, type GraphSettingsInterface, type GraphState, type LinkInterface, type LinkIterationPropsInterface, type LinkOptionsInterface, type LinkSettingsInterface, type ListenersInterface, type NodeInterface, type NodeIterationPropsInterface, type NodeOptionsInterface, type NodeSettingsInterface, type NodeShape, type RGB, type TextStyleEnum, type ZoomEventInterface, animationByProgress, calculateLinkPositionByNode, colorToRgb, drawText, extractRgb, fadeRgb, getDrawLink, getDrawNode, getForceControls, getGraphControls, getLinkOptionsControls, getLinkSettingsControls, getNodeOptionsControls, getNodeSettingControls, getParticlePosition, linkByPointerGetter, linkIterationExtractor, linkOptionsGetter, nodeByPointerGetter, nodeIterationExtractor, nodeOptionsGetter, nodeRadiusGetter, rgbAnimationByProgress };
672
+ export { COMMON_SETTINGS, type CachedNodeTextInterface, type CachedTextNodeParametersInterface, type CachedTextNodeParametersMap, type DragEventInterface, FORCE_CONTROLS, FORCE_SETTINGS, type ForceSettingsInterface, GRAPH_CONTROLS, GRAPH_SETTINGS, GraphCanvas, type GraphCanvasInterface, type GraphCanvasSimulation, type GraphSettingsInputInterface, type GraphSettingsInterface, HIGHLIGHT_BY_LINK_FOR_ARROW_CONTROLS, HIGHLIGHT_BY_LINK_FOR_LABEL_CONTROLS, HIGHLIGHT_BY_LINK_FOR_LINK_CONTROLS, HIGHLIGHT_BY_LINK_FOR_NODE_CONTROLS, HIGHLIGHT_BY_LINK_FOR_TEXT_CONTROLS, HIGHLIGHT_BY_NODE_FOR_ARROW_CONTROLS, HIGHLIGHT_BY_NODE_FOR_LABEL_CONTROLS, HIGHLIGHT_BY_NODE_FOR_LINK_CONTROLS, HIGHLIGHT_BY_NODE_FOR_NODE_CONTROLS, HIGHLIGHT_BY_NODE_FOR_TEXT_CONTROLS, HIGHLIGHT_COMMON_CONTROLS, HIGHLIGHT_SETTINGS, type HighlighCommonSettingsInterface, type HighlightByLinkForArrowSettingsInterface, type HighlightByLinkForLabelSettingsInterface, type HighlightByLinkForLinkSettingsInterface, type HighlightByLinkForNodeSettingsInterface, type HighlightByLinkForTextSettingsInterface, type HighlightByNodeForArrowSettingsInterface, type HighlightByNodeForLabelSettingsInterface, type HighlightByNodeForLinkSettingsInterface, type HighlightByNodeForNodeSettingsInterface, type HighlightByNodeForTextSettingsInterface, type HighlightSettingsInterface, LINK_OPTIONS, LINK_OPTIONS_ARROW_CONTROLS, LINK_OPTIONS_LINK_CONTROLS, LINK_OPTIONS_PARTICLE_CONTROLS, LINK_SETTINGS, LINK_SETTINGS_CONTROLS, type LinkByPointerGetterOptions, type LinkInterface, type LinkIterationPropsInterface, type LinkIterationPropsNoThisInterface, type LinkOptionsArrowInterface, type LinkOptionsInterface, type LinkOptionsLinkInterface, type LinkOptionsParticleInterface, type LinkParticle, type LinkSettingsInterface, type ListenersInterface, NODE_OPTIONS, NODE_OPTIONS_LABEL_CONTROLS, NODE_OPTIONS_NODE_CONTROLS, NODE_OPTIONS_TEXT_CONTROLS, NODE_SETTINGS, NODE_SETTINGS_CONTROLS, type NodeByPointerGetterOptions, type NodeInterface, type NodeIterationPropsInterface, type NodeIterationPropsNoThisInterface, type NodeOptionsInterface, type NodeOptionsLabelInterface, type NodeOptionsNodeInterface, type NodeOptionsTextInterface, type NodeRadiusGetterOptions, type NodeSettingsInterface, type NodeShape, type NodeSizeGetterOptions, type RGB, type TextStyleEnum, type ZoomEventInterface, animationByProgress, calculateLinkPositionByNode, colorGetter, colorToRgb, dragPlaceCoefficientGetter, drawText, extractRgb, fadeRgb, forceSettingsGetter, getDrawLink, getDrawNode, getParticlePosition, graphSettingsGetter, highlightSettingsGetter, isNodeVisible, isOverlapsNode, linkByPointerGetter, linkFade, linkHighlight, linkIterationExtractor, linkOptionsGetter, linkSettingsGetter, listenersGetter, nodeByPointerGetter, nodeFade, nodeHighlight, nodeIdGetter, nodeIterationExtractor, nodeOptionsGetter, nodeRadiusGetter, nodeSettingsGetter, nodeSizeGetter, nodeTextSizeGetter, pointerGetter, rgbAnimationByProgress };