@krainovsd/graph 0.10.0-rc5 → 0.10.0-rc7

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 +1897 -1318
  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 +16 -27
  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 +28 -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 +22 -23
  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 -221
  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,68 +63,194 @@ 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;
122
- chargeDistanceMax?: number;
73
+ chargeStrength?: NodeIterationPropsNoThisInterface<NodeData> | number;
123
74
  chargeDistanceMin?: number;
124
75
  centerPosition?: {
125
76
  x?: number;
126
77
  y?: number;
127
78
  };
128
79
  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;
80
+ xPosition?: NodeIterationPropsNoThisInterface<NodeData> | number;
81
+ xStrength?: NodeIterationPropsNoThisInterface<NodeData> | number;
82
+ yPosition?: NodeIterationPropsNoThisInterface<NodeData> | number;
83
+ yStrength?: NodeIterationPropsNoThisInterface<NodeData> | number;
133
84
  };
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;
85
+
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
+
103
+ type HighlightSettingsInterface = HighlighCommonSettingsInterface & HighlightByNodeForNodeSettingsInterface & HighlightByNodeForLabelSettingsInterface & HighlightByNodeForTextSettingsInterface & HighlightByNodeForLinkSettingsInterface & HighlightByNodeForArrowSettingsInterface & HighlightByLinkForNodeSettingsInterface & HighlightByLinkForTextSettingsInterface & HighlightByLinkForLabelSettingsInterface & HighlightByLinkForLinkSettingsInterface & HighlightByLinkForArrowSettingsInterface;
104
+ type HighlighCommonSettingsInterface = {
158
105
  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;
106
+ highlightByHoverLink?: boolean;
107
+ linkHoverExtraZone?: number;
108
+ };
109
+ type HighlightByNodeForNodeSettingsInterface = {
110
+ highlightByNodeForNodeColorFading?: boolean;
111
+ highlightByNodeOnlyRoot?: boolean;
112
+ highlightByNodeForNodeFadingMin?: number;
113
+ highlightByNodeForNodeColorFadingMin?: number;
114
+ highlightByNodeForNodeColor?: string | null;
115
+ highlightByNodeForNodeSizingAdditional?: number;
116
+ highlightByNodeForNodeSizingAdditionalCoefficient?: number;
117
+ highlightByNodeForNodeBorderSizingAdditional?: number;
118
+ highlightByNodeForNodeBorderColor?: string | null;
119
+ };
120
+ type HighlightByNodeForLabelSettingsInterface = {
121
+ highlightByNodeForLabelSizingAdditional?: number;
122
+ highlightByNodeForLabelWeightAdditional?: number;
123
+ highlightByNodeForLabelFadingMin?: number;
124
+ };
125
+ type HighlightByNodeForTextSettingsInterface = {
126
+ highlightByNodeForTextFadingMin?: number;
127
+ highlightByNodeForTextSizingAdditional?: number;
128
+ highlightByNodeForTextShiftXAdditional?: number;
129
+ highlightByNodeForTextShiftYAdditional?: number;
130
+ highlightByNodeForTextWeightAdditional?: number;
131
+ };
132
+ type HighlightByLinkForNodeSettingsInterface = {
133
+ highlightByLinkForNodeColorFading?: boolean;
134
+ highlightByLinkForNodeFadingMin?: number;
135
+ highlightByLinkForNodeColorFadingMin?: number;
136
+ highlightByLinkForNodeColor?: string | null;
137
+ highlightByLinkForNodeSizingAdditional?: number;
138
+ highlightByLinkForNodeSizingAdditionalCoefficient?: number;
139
+ highlightByLinkForNodeBorderSizingAdditional?: number;
140
+ highlightByLinkForNodeBorderColor?: string | null;
141
+ };
142
+ type HighlightByLinkForLabelSettingsInterface = {
143
+ highlightByLinkForLabelSizingAdditional?: number;
144
+ highlightByLinkForLabelWeightAdditional?: number;
145
+ highlightByLinkForLabelFadingMin?: number;
146
+ };
147
+ type HighlightByLinkForTextSettingsInterface = {
148
+ highlightByLinkForTextFadingMin?: number;
149
+ highlightByLinkForTextSizingAdditional?: number;
150
+ highlightByLinkForTextShiftXAdditional?: number;
151
+ highlightByLinkForTextShiftYAdditional?: number;
152
+ highlightByLinkForTextWeightAdditional?: number;
153
+ };
154
+ type HighlightByNodeForLinkSettingsInterface = {
155
+ highlightByNodeForLinkFadingMin?: number;
156
+ highlightByNodeForLinkSizeAdditional?: number;
157
+ highlightByNodeForLinkColor?: string | null;
158
+ };
159
+ type HighlightByNodeForArrowSettingsInterface = {
160
+ highlightByNodeForArrowFadingMin?: number;
161
+ highlightByNodeForArrowSizeAdditional?: number;
162
+ highlightByNodeForArrowColor?: string | null;
163
+ highlightByNodeForArrowBorderSizingAdditional?: number;
164
+ highlightByNodeForArrowBorderColor?: string | null;
165
+ };
166
+ type HighlightByLinkForLinkSettingsInterface = {
167
+ highlightByLinkForLinkFadingMin?: number;
168
+ highlightByLinkForLinkSizeAdditional?: number;
169
+ highlightByLinkForLinkColor?: string | null;
170
+ };
171
+ type HighlightByLinkForArrowSettingsInterface = {
172
+ highlightByLinkForArrowFadingMin?: number;
173
+ highlightByLinkForArrowSizeAdditional?: number;
174
+ highlightByLinkForArrowColor?: string | null;
175
+ highlightByLinkForArrowBorderSizingAdditional?: number;
176
+ highlightByLinkForArrowBorderColor?: string | null;
177
+ };
178
+
179
+ type LinkSettingsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
180
+ cacheOptions?: boolean;
181
+ prettyDraw?: boolean;
182
+ arrow?: boolean;
183
+ arrowByHighlight?: boolean;
184
+ particles?: boolean;
185
+ particleFlexSpeed?: boolean;
186
+ particleFlexSpeedCoefficient?: number;
187
+ linkScaleSwitch?: number;
188
+ linkWidthBeforeScaleSwitch?: number;
189
+ linkWidthAfterScaleSwitch?: number;
190
+ linkColorBeforeScaleSwitch?: string;
191
+ linkColorAfterScaleSwitch?: string;
192
+ options?: LinkIterationPropsInterface<NodeData, LinkData, LinkOptionsInterface<NodeData, LinkData>> | LinkOptionsInterface<NodeData, LinkData>;
193
+ };
194
+ type LinkOptionsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
195
+ drawLink?: ((this: GraphCanvas<NodeData, LinkData>, link: LinkInterface<NodeData, LinkData>, options: Required<LinkOptionsInterface<NodeData, LinkData>>) => void) | null;
196
+ drawExtraLink?: ((this: GraphCanvas<NodeData, LinkData>, link: LinkInterface<NodeData, LinkData>, options: Required<LinkOptionsInterface<NodeData, LinkData>>) => void) | null;
197
+ } & LinkOptionsLinkInterface & LinkOptionsArrowInterface & LinkOptionsParticleInterface;
198
+ type LinkOptionsLinkInterface = {
199
+ alpha?: number;
200
+ color?: string;
201
+ width?: number;
202
+ };
203
+ type LinkOptionsArrowInterface = {
204
+ arrowAlpha?: number;
205
+ arrowColor?: string;
206
+ arrowSize?: number;
207
+ arrowBorderColor?: string;
208
+ arrowBorderWidth?: number;
209
+ };
210
+ type LinkOptionsParticleInterface = {
211
+ particleAlpha?: number;
212
+ particleColor?: string;
213
+ particleRadius?: number;
214
+ particleCount?: number;
215
+ particleSteps?: number;
216
+ particleBorderWidth?: number;
217
+ particleBorderColor?: string;
218
+ };
219
+
220
+ type ZoomEventInterface = D3ZoomEvent<HTMLCanvasElement, unknown>;
221
+ type DragEventInterface<NodeData extends Record<string, unknown>> = D3DragEvent<HTMLElement, unknown, NodeInterface<NodeData>>;
222
+ type ListenersInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
223
+ onContextMenu?: (this: GraphCanvas<NodeData, LinkData>, event: MouseEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
224
+ onClick?: (this: GraphCanvas<NodeData, LinkData>, event: MouseEvent | TouchEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
225
+ onDoubleClick?: (this: GraphCanvas<NodeData, LinkData>, event: MouseEvent | TouchEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
226
+ onWheelClick?: (this: GraphCanvas<NodeData, LinkData>, event: MouseEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
227
+ onMove?: (this: GraphCanvas<NodeData, LinkData>, event: MouseEvent | TouchEvent, node: NodeInterface<NodeData> | undefined, link: LinkInterface<NodeData, LinkData> | undefined) => void;
228
+ onZoom?: (this: GraphCanvas<NodeData, LinkData>, event: ZoomEventInterface) => void;
229
+ onDragSubject?: (this: GraphCanvas<NodeData, LinkData>, event: DragEventInterface<NodeData>) => NodeInterface<NodeData> | undefined;
230
+ onDraw?: (this: GraphCanvas<NodeData, LinkData>) => void;
231
+ onStartDragFinished?: (this: GraphCanvas<NodeData, LinkData>, event: DragEventInterface<NodeData>) => void;
232
+ onMoveDragFinished?: (this: GraphCanvas<NodeData, LinkData>, event: DragEventInterface<NodeData>) => void;
233
+ onEndDragFinished?: (this: GraphCanvas<NodeData, LinkData>, event: DragEventInterface<NodeData>) => void;
234
+ onDrawFinished?: (this: GraphCanvas<NodeData, LinkData>) => void;
235
+ onSimulationEnd?: (this: GraphCanvas<NodeData, LinkData>) => void;
236
+ };
237
+
238
+ type NodeSettingsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
239
+ cacheOptions?: boolean;
240
+ nodeRadiusFlexible?: boolean;
169
241
  nodeRadiusCoefficient?: number;
170
242
  nodeRadiusFactor?: number;
171
- nodeRadiusFlexible?: boolean;
172
243
  nodeSizeFlexible?: boolean;
173
244
  nodeSizeCoefficient?: number;
174
245
  nodeSizeFactor?: number;
175
246
  textNodeDebug?: boolean;
247
+ textScaleMin?: number;
248
+ textScaleMax?: number;
249
+ textSizeMin?: number;
250
+ textSizeMax?: number;
251
+ textShiftYMin?: number;
252
+ textShiftYMax?: number;
253
+ idGetter?: NodeIterationPropsInterface<NodeData, LinkData, string | number>;
176
254
  options?: NodeIterationPropsInterface<NodeData, LinkData, NodeOptionsInterface<NodeData, LinkData>> | NodeOptionsInterface<NodeData, LinkData>;
177
255
  };
178
256
  type NodeOptionsInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
@@ -180,73 +258,47 @@ type NodeOptionsInterface<NodeData extends Record<string, unknown>, LinkData ext
180
258
  textDraw?: ((this: GraphCanvas<NodeData, LinkData>, node: NodeInterface<NodeData>, options: Required<NodeOptionsInterface<NodeData, LinkData>>) => void) | null;
181
259
  nodeExtraDraw?: ((this: GraphCanvas<NodeData, LinkData>, node: NodeInterface<NodeData>, options: Required<NodeOptionsInterface<NodeData, LinkData>>) => void) | null;
182
260
  textExtraDraw?: ((this: GraphCanvas<NodeData, LinkData>, node: NodeInterface<NodeData>, options: Required<NodeOptionsInterface<NodeData, LinkData>>) => void) | null;
261
+ } & NodeOptionsNodeInterface & NodeOptionsTextInterface & NodeOptionsLabelInterface;
262
+ type NodeOptionsNodeInterface = {
183
263
  shape?: NodeShape;
184
264
  width?: number;
185
265
  height?: number;
186
- borderRadius?: number;
187
- borderColor?: string;
188
- borderWidth?: number;
189
266
  radius?: number;
190
267
  alpha?: number;
191
268
  color?: string;
192
- textNodeYPadding?: number;
193
- textNodeXPadding?: number;
269
+ borderRadius?: number;
270
+ borderColor?: string;
271
+ borderWidth?: number;
272
+ };
273
+ type NodeOptionsTextInterface = {
194
274
  textVisible?: boolean;
195
275
  text?: string | null;
276
+ textColor?: string;
277
+ textSize?: number;
196
278
  textAlpha?: number;
197
- textShiftY?: number;
279
+ textWidth?: number;
198
280
  textShiftX?: number;
281
+ textShiftY?: number;
282
+ textWeight?: number;
283
+ textGap?: number;
199
284
  textFont?: string;
200
- textSize?: number;
201
- textColor?: string;
202
285
  textAlign?: CanvasTextAlign;
203
- textWidth?: number;
204
286
  textStyle?: TextStyleEnum;
205
- textWeight?: number;
206
- textGap?: number;
207
287
  };
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>;
288
+ type NodeOptionsLabelInterface = {
289
+ labelAlpha?: number;
290
+ labelYPadding?: number;
291
+ labelXPadding?: number;
292
+ labelAlign?: CanvasTextAlign;
293
+ labelColor?: string;
294
+ labelSize?: number;
295
+ labelFont?: string;
296
+ labelWidth?: number;
297
+ labelStyle?: TextStyleEnum;
298
+ labelWeight?: number;
299
+ labelGap?: number;
300
+ label?: string | null;
228
301
  };
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
302
 
251
303
  type GraphCanvasInterface<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
252
304
  nodes: NodeInterface<NodeData>[];
@@ -257,52 +309,15 @@ type GraphCanvasInterface<NodeData extends Record<string, unknown>, LinkData ext
257
309
  nodeSettings?: NodeSettingsInterface<NodeData, LinkData>;
258
310
  linkSettings?: LinkSettingsInterface<NodeData, LinkData>;
259
311
  listeners?: ListenersInterface<NodeData, LinkData>;
312
+ highlightSettings?: HighlightSettingsInterface;
260
313
  };
261
314
  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
315
 
301
316
  declare class GraphCanvas<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> {
302
317
  /** initial data */
303
318
  protected nodes: NodeInterface<NodeData>[];
304
319
  protected links: LinkInterface<NodeData, LinkData>[];
305
- protected particles: Record<string, GraphParticle[]>;
320
+ protected particles: Record<string, LinkParticle[]>;
306
321
  protected width: number;
307
322
  protected height: number;
308
323
  protected root: HTMLElement;
@@ -311,6 +326,7 @@ declare class GraphCanvas<NodeData extends Record<string, unknown>, LinkData ext
311
326
  /** settings */
312
327
  protected graphSettings: Required<GraphSettingsInterface<NodeData>>;
313
328
  protected forceSettings: Required<ForceSettingsInterface<NodeData, LinkData>>;
329
+ protected highlightSettings: Required<HighlightSettingsInterface>;
314
330
  protected nodeSettings: Required<Omit<NodeSettingsInterface<NodeData, LinkData>, "options">> & Pick<NodeSettingsInterface<NodeData, LinkData>, "options">;
315
331
  protected linkSettings: Required<Omit<LinkSettingsInterface<NodeData, LinkData>, "options">> & Pick<LinkSettingsInterface<NodeData, LinkData>, "options">;
316
332
  protected listeners: ListenersInterface<NodeData, LinkData>;
@@ -322,6 +338,7 @@ declare class GraphCanvas<NodeData extends Record<string, unknown>, LinkData ext
322
338
  protected draw: (this: GraphCanvas<NodeData, LinkData>) => void;
323
339
  protected eventAbortController: AbortController;
324
340
  protected cachedNodeText: CachedNodeTextInterface;
341
+ protected cachedNodeLabel: CachedNodeTextInterface;
325
342
  protected cachedTextNodeParameters: CachedTextNodeParametersMap;
326
343
  protected linkOptionsCache: Record<string, Required<LinkOptionsInterface<NodeData, LinkData>>>;
327
344
  protected nodeOptionsCache: Record<string, Required<NodeOptionsInterface<NodeData, LinkData>>>;
@@ -333,14 +350,13 @@ declare class GraphCanvas<NodeData extends Record<string, unknown>, LinkData ext
333
350
  protected highlightWorking: boolean;
334
351
  protected highlightDrawing: boolean;
335
352
  protected get simulationWorking(): boolean;
336
- protected get state(): GraphState<NodeData, LinkData>;
337
- constructor({ links, nodes, root, forceSettings, linkSettings, listeners, nodeSettings, graphSettings, }: GraphCanvasInterface<NodeData, LinkData>);
353
+ constructor({ links, nodes, root, forceSettings, linkSettings, listeners, nodeSettings, graphSettings, highlightSettings, }: GraphCanvasInterface<NodeData, LinkData>);
338
354
  get dpi(): number;
339
355
  getData(): Pick<GraphCanvasInterface<NodeData, LinkData>, "nodes" | "links">;
340
356
  changeData(options: Pick<Partial<GraphCanvasInterface<NodeData, LinkData>>, "links" | "nodes">, alpha?: number): void;
341
357
  changeSettings(options: Omit<Partial<GraphCanvasInterface<NodeData, LinkData>>, "links" | "nodes" | "listeners">): undefined;
342
358
  updateRect(): void;
343
- clearCache(keys?: ("nodeOptionsCache" | "linkOptionsCache" | "cachedNodeText" | "cachedTextNodeParameters")[]): void;
359
+ clearCache(keys?: ("nodeOptionsCache" | "linkOptionsCache" | "cachedNodeText" | "cachedNodeLabel" | "cachedTextNodeParameters")[]): void;
344
360
  tick(): void;
345
361
  restart(alpha?: number): void;
346
362
  start(): void;
@@ -355,9 +371,21 @@ declare class GraphCanvas<NodeData extends Record<string, unknown>, LinkData ext
355
371
  protected init(): void;
356
372
  }
357
373
 
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>>;
374
+ 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
375
 
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>>;
376
+ declare function graphSettingsGetter<NodeData extends Record<string, unknown>>(settings: GraphSettingsInterface<NodeData> | undefined, prevSettings?: Required<GraphSettingsInterface<NodeData>>): Required<GraphSettingsInterface<NodeData>>;
377
+
378
+ 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">;
379
+ declare function linkOptionsGetter<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(this: GraphCanvas<NodeData, LinkData>): Required<LinkOptionsInterface<NodeData, LinkData>>;
380
+
381
+ declare function listenersGetter<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(settings: ListenersInterface<NodeData, LinkData> | undefined): ListenersInterface<NodeData, LinkData>;
382
+
383
+ 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">;
384
+ declare function nodeOptionsGetter<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(this: GraphCanvas<NodeData, LinkData>, node: NodeInterface<NodeData>): Required<NodeOptionsInterface<NodeData, LinkData>>;
385
+ 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">): {
386
+ textSize: number;
387
+ textShiftY: number;
388
+ };
361
389
  type NodeRadiusGetterOptions = {
362
390
  linkCount: number | undefined;
363
391
  radiusFlexible: boolean;
@@ -366,9 +394,31 @@ type NodeRadiusGetterOptions = {
366
394
  radiusInitial: number;
367
395
  };
368
396
  declare function nodeRadiusGetter({ radiusFlexible, radiusInitial, linkCount, radiusCoefficient, radiusFactor, }: NodeRadiusGetterOptions): number;
397
+ type NodeSizeGetterOptions = {
398
+ linkCount: number | undefined;
399
+ sizeFlexible: boolean;
400
+ sizeCoefficient: number;
401
+ sizeFactor: number;
402
+ widthInitial: number;
403
+ heightInitial: number;
404
+ };
405
+ declare function nodeSizeGetter({ heightInitial, linkCount, sizeCoefficient, sizeFactor, sizeFlexible, widthInitial, }: NodeSizeGetterOptions): {
406
+ width: number;
407
+ height: number;
408
+ additionalSizeCoefficient: number;
409
+ };
410
+ declare function nodeIdGetter<NodeData extends Record<string, unknown>>(node: NodeInterface<NodeData>): string | number;
411
+
412
+ declare function highlightSettingsGetter(settings: HighlightSettingsInterface | undefined, prevSettings?: Required<HighlightSettingsInterface>): Required<HighlightSettingsInterface>;
413
+
414
+ declare function pointerGetter(mouseEvent: MouseEvent | TouchEvent, areaRect: DOMRect, areaTransform: ZoomTransform): number[];
415
+
416
+ declare function dragPlaceCoefficientGetter<NodeData extends Record<string, unknown>>(node: NodeInterface<NodeData>, pointerX: number, pointerY: number): number | undefined;
369
417
 
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>;
418
+ declare function isOverlapsNode<NodeData extends Record<string, unknown>>(node: NodeInterface<NodeData>, pointerX: number, pointerY: number, radius: number | undefined): boolean;
419
+
420
+ 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;
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: LinkIterationPropsInterface<NodeData, LinkData, Required<Result>> | Required<Result>): Required<Result>;
372
422
 
373
423
  type NodeByPointerGetterOptions<NodeData extends Record<string, unknown>> = {
374
424
  mouseEvent: MouseEvent | TouchEvent;
@@ -378,8 +428,8 @@ type NodeByPointerGetterOptions<NodeData extends Record<string, unknown>> = {
378
428
  };
379
429
  declare function nodeByPointerGetter<NodeData extends Record<string, unknown>>({ areaRect, areaTransform, mouseEvent, nodes, }: NodeByPointerGetterOptions<NodeData>): NodeInterface<NodeData> | undefined;
380
430
 
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>;
431
+ 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;
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: NodeIterationPropsInterface<NodeData, LinkData, Result> | Result): Required<Result>;
383
433
 
384
434
  declare function calculateLinkPositionByNode<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(link: LinkInterface<NodeData, LinkData>, arrowSize?: number): {
385
435
  x1: number;
@@ -391,8 +441,16 @@ declare function calculateLinkPositionByNode<NodeData extends Record<string, unk
391
441
 
392
442
  declare function animationByProgress(initial: number, additional: number, progress: number): number;
393
443
 
444
+ type IsNodeVisibleOptions<NodeData extends Record<string, unknown>> = {
445
+ width: number;
446
+ height: number;
447
+ transform: ZoomTransform;
448
+ node: NodeInterface<NodeData>;
449
+ };
450
+ declare function isNodeVisible<NodeData extends Record<string, unknown>>(opts: IsNodeVisibleOptions<NodeData>): boolean;
451
+
394
452
  type GetParticlePositionOptions = {
395
- particle: GraphParticle;
453
+ particle: LinkParticle;
396
454
  xStart: number;
397
455
  yStart: number;
398
456
  xEnd: number;
@@ -408,13 +466,93 @@ type LinkByPointerGetterOptions<NodeData extends Record<string, unknown>, LinkDa
408
466
  areaRect: DOMRect | undefined;
409
467
  areaTransform: ZoomTransform;
410
468
  links: LinkInterface<NodeData, LinkData>[];
411
- linkSettings: Required<Omit<LinkSettingsInterface<NodeData, LinkData>, "options">> & Pick<LinkSettingsInterface<NodeData, LinkData>, "options">;
469
+ linkHoverExtraZone: number;
470
+ };
471
+ 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;
472
+
473
+ type NodeHighlightOptions<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
474
+ nodeOptions: Required<NodeOptionsInterface<NodeData, LinkData>>;
475
+ highlightProgress: number;
476
+ highlightForNodeColor: string | null;
477
+ highlightForNodeSizingAdditional: number;
478
+ highlightForNodeSizingAdditionalCoefficient: number;
479
+ highlightForNodeBorderColor: string | null;
480
+ highlightForNodeBorderSizingAdditional: number;
481
+ highlightForTextSizingAdditional: number;
482
+ highlightForTextShiftXAdditional: number;
483
+ highlightForTextShiftYAdditional: number;
484
+ highlightForTextWeightAdditional: number;
485
+ highlightForLabelSizingAdditional: number;
486
+ highlightForLabelWeightAdditional: number;
487
+ };
488
+ declare function nodeHighlight<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(opts: NodeHighlightOptions<NodeData, LinkData>): {
489
+ color: string;
490
+ borderColor: string;
491
+ borderWidth: number;
492
+ radiusInitial: number;
493
+ widthInitial: number;
494
+ heightInitial: number;
495
+ textSize: number;
496
+ textShiftX: number;
497
+ textShiftY: number;
498
+ textWeight: number;
499
+ labelSize: number;
500
+ labelWeight: number;
501
+ sizeCoefficient: number;
502
+ };
503
+ type NodeFadingOptions<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
504
+ nodeOptions: Required<NodeOptionsInterface<NodeData, LinkData>>;
505
+ highlightProgress: number;
506
+ highlightForNodeFadingMin: number;
507
+ highlightForTextFadingMin: number;
508
+ highlightForLabelFadingMin: number;
509
+ highlightForNodeColorFading: boolean;
510
+ highlightForNodeColorFadingMin: number;
511
+ };
512
+ declare function nodeFade<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(opts: NodeFadingOptions<NodeData, LinkData>): {
513
+ alpha: number;
514
+ color: string;
515
+ textAlpha: number;
516
+ labelAlpha: number;
412
517
  };
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
518
 
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;
519
+ type LinkHighlightOptions<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
520
+ linkOptions: Required<LinkOptionsInterface<NodeData, LinkData>>;
521
+ highlightProgress: number;
522
+ arrow: boolean;
523
+ arrowByHighlight: boolean;
524
+ highlightForArrowBorderSizingAdditional: number;
525
+ highlightForArrowBorderColor: string | null;
526
+ highlightForArrowColor: string | null;
527
+ highlightForArrowSizeAdditional: number;
528
+ highlightForLinkColor: string | null;
529
+ highlightForLinkSizeAdditional: number;
530
+ };
531
+ declare function linkHighlight<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(opts: LinkHighlightOptions<NodeData, LinkData>): {
532
+ arrowAlpha: number;
533
+ color: string;
534
+ width: number;
535
+ arrowColor: string;
536
+ arrowSize: number;
537
+ arrowBorderWidth: number;
538
+ arrowBorderColor: string;
539
+ };
540
+ type LinkFadeOptions<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>> = {
541
+ linkOptions: Required<LinkOptionsInterface<NodeData, LinkData>>;
542
+ highlightProgress: number;
543
+ arrow: boolean;
544
+ arrowByHighlight: boolean;
545
+ highlightForLinkFadingMin: number;
546
+ highlightForArrowFadingMin: number;
547
+ };
548
+ declare function linkFade<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(opts: LinkFadeOptions<NodeData, LinkData>): {
549
+ alpha: number;
550
+ arrowAlpha: number;
551
+ };
416
552
 
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;
553
+ declare function getDrawLink<NodeData extends Record<string, unknown>, LinkData extends Record<string, unknown>>(): (this: GraphCanvas<NodeData, LinkData>, link: LinkInterface<NodeData, LinkData>, index: number) => void;
554
+
555
+ 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
556
 
419
557
  type DrawTextOptions = {
420
558
  id: string | number;
@@ -434,6 +572,64 @@ type DrawTextOptions = {
434
572
  };
435
573
  declare function drawText({ context, id, textAlign, textColor, textFont, textStyle, textGap, textWeight, textSize, text, x, y, cachedNodeText, maxWidth, }: DrawTextOptions): void;
436
574
 
575
+ declare const COMMON_SETTINGS: {
576
+ nodeRadius: number;
577
+ nodeSize: number;
578
+ };
579
+
580
+ declare const FORCE_SETTINGS: Required<ForceSettingsInterface<Record<string, unknown>, Record<string, unknown>>>;
581
+
582
+ declare const GRAPH_SETTINGS: Required<GraphSettingsInterface<Record<string, unknown>>>;
583
+
584
+ declare const HIGHLIGHT_SETTINGS: Required<HighlightSettingsInterface>;
585
+
586
+ declare const LINK_SETTINGS: Omit<Required<LinkSettingsInterface<Record<string, unknown>, Record<string, unknown>>>, "options">;
587
+ declare const LINK_OPTIONS: Omit<Required<LinkOptionsInterface<Record<string, unknown>, Record<string, unknown>>>, "color" | "width" | "drawLink" | "drawExtraLink" | "arrowColor">;
588
+
589
+ declare const NODE_SETTINGS: Omit<Required<NodeSettingsInterface<Record<string, unknown>, Record<string, unknown>>>, "options" | "idGetter">;
590
+ declare const NODE_OPTIONS: Omit<Required<NodeOptionsInterface<Record<string, unknown>, Record<string, unknown>>>, "color" | "text" | "textVisible" | "textSize" | "textShiftY" | "nodeDraw" | "nodeExtraDraw" | "textDraw" | "textExtraDraw">;
591
+
592
+ type GraphSettingsInputRange<I extends string> = {
593
+ type: "range";
594
+ min: number;
595
+ max: number;
596
+ step: number;
597
+ initialValue: number;
598
+ id: I;
599
+ label: string;
600
+ };
601
+ type GraphSettingsInputCheckBox<I extends string> = {
602
+ type: "checkbox";
603
+ id: I;
604
+ initialValue: boolean;
605
+ label: string;
606
+ };
607
+ type GraphSettingsInputColorBox<I extends string> = {
608
+ type: "color";
609
+ id: I;
610
+ initialValue: string;
611
+ label: string;
612
+ };
613
+ type GraphSettingsInputSelect<I extends string> = {
614
+ type: "select";
615
+ id: I;
616
+ initialValue: string;
617
+ label: string;
618
+ options: {
619
+ label: string;
620
+ value: string;
621
+ }[];
622
+ };
623
+ type GraphSettingsInputInterface<I extends string> = GraphSettingsInputRange<I> | GraphSettingsInputCheckBox<I> | GraphSettingsInputColorBox<I> | GraphSettingsInputSelect<I>;
624
+
625
+ type RGB = {
626
+ r: number;
627
+ g: number;
628
+ b: number;
629
+ };
630
+
631
+ declare function colorGetter(): (key: string) => string;
632
+
437
633
  declare function colorToRgb(color: string): string | null;
438
634
 
439
635
  declare function extractRgb(color: string | null): {
@@ -446,11 +642,30 @@ declare function fadeRgb(color: RGB, fade: number): RGB;
446
642
 
447
643
  declare function rgbAnimationByProgress(start: RGB, end: RGB, progress: number): RGB;
448
644
 
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>>[];
645
+ declare const FORCE_CONTROLS: GraphSettingsInputInterface<keyof ForceSettingsInterface<Record<string, unknown>, Record<string, unknown>>>[];
646
+
647
+ declare const GRAPH_CONTROLS: GraphSettingsInputInterface<keyof GraphSettingsInterface<Record<string, unknown>>>[];
648
+
649
+ declare const HIGHLIGHT_COMMON_CONTROLS: GraphSettingsInputInterface<keyof HighlighCommonSettingsInterface>[];
650
+ declare const HIGHLIGHT_BY_NODE_FOR_NODE_CONTROLS: GraphSettingsInputInterface<keyof HighlightByNodeForNodeSettingsInterface>[];
651
+ declare const HIGHLIGHT_BY_NODE_FOR_TEXT_CONTROLS: GraphSettingsInputInterface<keyof HighlightByNodeForTextSettingsInterface>[];
652
+ declare const HIGHLIGHT_BY_NODE_FOR_LABEL_CONTROLS: GraphSettingsInputInterface<keyof HighlightByNodeForLabelSettingsInterface>[];
653
+ declare const HIGHLIGHT_BY_NODE_FOR_LINK_CONTROLS: GraphSettingsInputInterface<keyof HighlightByNodeForLinkSettingsInterface>[];
654
+ declare const HIGHLIGHT_BY_NODE_FOR_ARROW_CONTROLS: GraphSettingsInputInterface<keyof HighlightByNodeForArrowSettingsInterface>[];
655
+ declare const HIGHLIGHT_BY_LINK_FOR_NODE_CONTROLS: GraphSettingsInputInterface<keyof HighlightByLinkForNodeSettingsInterface>[];
656
+ declare const HIGHLIGHT_BY_LINK_FOR_TEXT_CONTROLS: GraphSettingsInputInterface<keyof HighlightByLinkForTextSettingsInterface>[];
657
+ declare const HIGHLIGHT_BY_LINK_FOR_LABEL_CONTROLS: GraphSettingsInputInterface<keyof HighlightByLinkForLabelSettingsInterface>[];
658
+ declare const HIGHLIGHT_BY_LINK_FOR_LINK_CONTROLS: GraphSettingsInputInterface<keyof HighlightByLinkForLinkSettingsInterface>[];
659
+ declare const HIGHLIGHT_BY_LINK_FOR_ARROW_CONTROLS: GraphSettingsInputInterface<keyof HighlightByLinkForArrowSettingsInterface>[];
660
+
661
+ declare const LINK_SETTINGS_CONTROLS: GraphSettingsInputInterface<keyof Omit<Required<LinkSettingsInterface<Record<string, unknown>, Record<string, unknown>>>, "options">>[];
662
+ declare const LINK_OPTIONS_LINK_CONTROLS: GraphSettingsInputInterface<keyof LinkOptionsLinkInterface>[];
663
+ declare const LINK_OPTIONS_ARROW_CONTROLS: GraphSettingsInputInterface<keyof LinkOptionsArrowInterface>[];
664
+ declare const LINK_OPTIONS_PARTICLE_CONTROLS: GraphSettingsInputInterface<keyof LinkOptionsParticleInterface>[];
665
+
666
+ declare const NODE_SETTINGS_CONTROLS: GraphSettingsInputInterface<keyof Omit<Required<NodeSettingsInterface<Record<string, unknown>, Record<string, unknown>>>, "options" | "idGetter">>[];
667
+ declare const NODE_OPTIONS_NODE_CONTROLS: GraphSettingsInputInterface<keyof NodeOptionsNodeInterface>[];
668
+ declare const NODE_OPTIONS_TEXT_CONTROLS: GraphSettingsInputInterface<keyof NodeOptionsTextInterface>[];
669
+ declare const NODE_OPTIONS_LABEL_CONTROLS: GraphSettingsInputInterface<keyof NodeOptionsLabelInterface>[];
455
670
 
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 };
671
+ 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 };