@neo4j-nvl/base 0.3.9-dc45154c → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/base.mjs +1 -1
- package/dist/types/index.d.ts +85 -72
- package/dist/types/layouts/animatedlayout/animationUtils.d.ts +3 -3
- package/dist/types/layouts/forcedirectedlayout/physlayout/PhysLayout.d.ts +19 -19
- package/dist/types/modules/CallbackHelper.d.ts +5 -5
- package/dist/types/modules/ExternalCallbackHandler.d.ts +7 -0
- package/dist/types/modules/NvlController.d.ts +5 -5
- package/dist/types/modules/dataset.d.ts +1 -1
- package/dist/types/modules/state/state.d.ts +2 -2
- package/dist/types/modules/state/types.d.ts +43 -52
- package/dist/types/modules/state/utils.d.ts +8 -6
- package/dist/types/renderers/canvasrenderer/Animation.d.ts +8 -11
- package/dist/types/renderers/canvasrenderer/AnimationHandler.d.ts +15 -16
- package/dist/types/renderers/canvasrenderer/CanvasRenderer.d.ts +10 -10
- package/dist/types/renderers/canvasrenderer/arrows/ArrowBundle.d.ts +15 -15
- package/dist/types/renderers/canvasrenderer/arrows/ArrowBundler.d.ts +8 -8
- package/dist/types/renderers/canvasrenderer/arrows/arrows.d.ts +26 -26
- package/dist/types/renderers/canvasrenderer/nodes/nodes.d.ts +9 -9
- package/dist/types/renderers/canvasrenderer/types.d.ts +6 -4
- package/dist/types/renderers/canvasrenderer/util.d.ts +20 -21
- package/dist/types/renderers/canvasrenderer/wordwrap.d.ts +13 -13
- package/dist/types/types/graph-element.d.ts +15 -6
- package/dist/types/utils/canvasManagement.d.ts +2 -1
- package/dist/types/utils/colorUtils.d.ts +3 -3
- package/dist/types/utils/constants.d.ts +3 -3
- package/dist/types/utils/errors.d.ts +2 -1
- package/dist/types/utils/geometry.d.ts +31 -30
- package/dist/types/utils/graphObjectUtils.d.ts +3 -3
- package/dist/types/utils/hittest.d.ts +2 -0
- package/dist/types/utils/jsDriverResultTransformer.d.ts +13 -6
- package/dist/types/utils/segmentAnalytics.d.ts +8 -8
- package/dist/types/utils/zoomFunctions.d.ts +30 -23
- package/package.json +3 -4
package/dist/types/index.d.ts
CHANGED
|
@@ -11,9 +11,10 @@ import { nvlResultTransformer } from './utils/jsDriverResultTransformer';
|
|
|
11
11
|
import { getZoomTargetForNodePositions } from './utils/zoomFunctions';
|
|
12
12
|
/**
|
|
13
13
|
* Extends the MouseEvent interface with the {@link HitTargets} property.
|
|
14
|
-
* The result of a
|
|
14
|
+
* The result of a {@link NVL.getHits} call.
|
|
15
15
|
*/
|
|
16
16
|
interface NvlMouseEvent extends MouseEvent {
|
|
17
|
+
/** The graph elements that have been hit by the pointer event. */
|
|
17
18
|
nvlTargets: HitTargets;
|
|
18
19
|
}
|
|
19
20
|
/**
|
|
@@ -37,26 +38,31 @@ interface NvlMouseEvent extends MouseEvent {
|
|
|
37
38
|
*/
|
|
38
39
|
declare class NVL {
|
|
39
40
|
#private;
|
|
41
|
+
/**
|
|
42
|
+
* @internal
|
|
43
|
+
* @hidden
|
|
44
|
+
*/
|
|
45
|
+
readonly performance: any;
|
|
40
46
|
/**
|
|
41
47
|
* Creates a new NVL instance.
|
|
42
|
-
* @param
|
|
43
|
-
* @param
|
|
44
|
-
* @param
|
|
45
|
-
* @param {NvlOptions
|
|
46
|
-
* @param
|
|
48
|
+
* @param frame - The DOM element to display the graph in.
|
|
49
|
+
* @param nvlNodes - An array of {@link Node nodes}.
|
|
50
|
+
* @param nvlRels - An array of {@link Relationship relationships}.
|
|
51
|
+
* @param options - The {@link NvlOptions options} for the NVL instance.
|
|
52
|
+
* @param callbacks - Callbacks triggered on NVL events.
|
|
47
53
|
*/
|
|
48
54
|
constructor(frame: HTMLElement, nvlNodes?: Node[], nvlRels?: Relationship[], options?: NvlOptions, callbacks?: ExternalCallbacks);
|
|
49
55
|
/**
|
|
50
56
|
* Restarts the NVL instance.
|
|
51
|
-
* @param
|
|
52
|
-
* @param
|
|
57
|
+
* @param options - New {@link NvlOptions} for the NVL instance.
|
|
58
|
+
* @param retainPositions - Whether or not to retain the current node positions.
|
|
53
59
|
* New options will be merged with current options
|
|
54
60
|
*/
|
|
55
61
|
restart(options?: NvlOptions, retainPositions?: boolean): void;
|
|
56
62
|
/**
|
|
57
63
|
* Adds nodes and relationships to NVL and updates existing nodes and relationships.
|
|
58
|
-
* @param
|
|
59
|
-
* @param
|
|
64
|
+
* @param nodes - An Array of {@link Node nodes} to be added or updated.
|
|
65
|
+
* @param relationships - An Array of {@link Relationship relationships} to be added or updated.
|
|
60
66
|
* To update nodes or relationships, they must have an id that matches the id of the
|
|
61
67
|
* node or relationship to be updated.
|
|
62
68
|
* Only the properties that are provided will be updated.
|
|
@@ -84,18 +90,18 @@ declare class NVL {
|
|
|
84
90
|
addAndUpdateElementsInGraph(nodes?: Node[] | PartialNode[], relationships?: Relationship[] | PartialRelationship[]): void;
|
|
85
91
|
/**
|
|
86
92
|
* Gets the currently selected nodes.
|
|
87
|
-
* @returns
|
|
93
|
+
* @returns An array of all currently selected {@link Node nodes} and their positions.
|
|
88
94
|
*/
|
|
89
95
|
getSelectedNodes(): (Node & Point)[];
|
|
90
96
|
/**
|
|
91
97
|
* Gets the currently selected relationships.
|
|
92
|
-
* @returns
|
|
98
|
+
* @returns An array of all currently selected {@link Relationship relationships}.
|
|
93
99
|
*/
|
|
94
100
|
getSelectedRelationships(): Relationship[];
|
|
95
101
|
/**
|
|
96
102
|
* Updates relationships in the current scene with the provided array of nodes and relationships.
|
|
97
|
-
* @param
|
|
98
|
-
* @param
|
|
103
|
+
* @param nodes - The updated {@link Node nodes}.
|
|
104
|
+
* @param relationships - The updated {@link Relationship relationships}.
|
|
99
105
|
* Ignores any nodes or relationships that do not exist in the current scene.
|
|
100
106
|
* To update nodes or relationships, they must have an id that matches the id of the
|
|
101
107
|
* node or relationship to be updated.
|
|
@@ -121,54 +127,53 @@ declare class NVL {
|
|
|
121
127
|
updateElementsInGraph(nodes: Node[] | PartialNode[], relationships: Relationship[] | PartialRelationship[]): void;
|
|
122
128
|
/**
|
|
123
129
|
* Adds nodes and relationships in the current scene.
|
|
124
|
-
* @param
|
|
125
|
-
* @param
|
|
130
|
+
* @param nodes - The nodes to be added.
|
|
131
|
+
* @param relationships - The relationships to be added.
|
|
126
132
|
*/
|
|
127
133
|
addElementsToGraph(nodes: Node[], relationships: Relationship[]): void;
|
|
128
134
|
/**
|
|
129
135
|
* Removes the specified nodes from the current scene.
|
|
130
|
-
* @param
|
|
136
|
+
* @param nodeIds - The node ids to be removed.
|
|
131
137
|
* Adjacent relationships will also be removed.
|
|
132
138
|
*/
|
|
133
139
|
removeNodesWithIds(nodeIds: string[]): void;
|
|
134
140
|
/**
|
|
135
141
|
* Removes the specified relationships from the current scene.
|
|
136
|
-
* @param
|
|
142
|
+
* @param relationshipIds - The relationship ids to be removed.
|
|
137
143
|
*/
|
|
138
144
|
removeRelationshipsWithIds(relationshipIds: string[]): void;
|
|
139
145
|
/**
|
|
140
146
|
* Returns all nodes that is currently stored in the visualisation.
|
|
141
|
-
* @returns
|
|
147
|
+
* @returns The array of {@link Node nodes}.
|
|
142
148
|
*/
|
|
143
149
|
getNodes(): Node[];
|
|
144
150
|
/**
|
|
145
151
|
* Returns the relationships that are currently in the visualization.
|
|
146
|
-
* @returns
|
|
152
|
+
* @returns An array of the {@link Relationship relationships} in the visualization.
|
|
147
153
|
*/
|
|
148
154
|
getRelationships(): Relationship[];
|
|
149
155
|
/**
|
|
150
156
|
* Returns the node data that is currently stored in the visualisation for a given id.
|
|
151
|
-
* @param
|
|
152
|
-
* @returns {Node
|
|
157
|
+
* @param id - The id of the {@link Node node} that should be returned.
|
|
158
|
+
* @returns The {@link Node node} or undefined if there is no node with the given id.
|
|
153
159
|
*/
|
|
154
160
|
getNodeById(id: string): Node;
|
|
155
161
|
/**
|
|
156
162
|
* Returns the relationship data that is currently stored in the visualisation for a given id.
|
|
157
|
-
* @param
|
|
158
|
-
* @returns {Relationship
|
|
163
|
+
* @param id - The id of the {@link Relationship relationship} that should be returned.
|
|
164
|
+
* @returns The {@link Relationship relationship} or undefined if there is no relationship with the given id.
|
|
159
165
|
*/
|
|
160
166
|
getRelationshipById(id: string): Relationship;
|
|
161
167
|
/**
|
|
162
168
|
* Returns the node position that is currently stored in the visualisation for a given id.
|
|
163
|
-
* @param
|
|
164
|
-
* @returns
|
|
169
|
+
* @param id - The id of the node position that should be returned.
|
|
170
|
+
* @returns The position information for the given id, or undefined if there is no such {@link Node node}.
|
|
165
171
|
* or the layout has not yet run with that node.
|
|
166
172
|
*/
|
|
167
173
|
getPositionById(id: string): Node;
|
|
168
174
|
/**
|
|
169
175
|
* Returns the current options.
|
|
170
|
-
* @returns
|
|
171
|
-
* @internal
|
|
176
|
+
* @returns The current options.
|
|
172
177
|
*/
|
|
173
178
|
getCurrentOptions(): NvlOptions;
|
|
174
179
|
/** Removes the graph visualization from the DOM and cleans up everything. */
|
|
@@ -179,26 +184,21 @@ declare class NVL {
|
|
|
179
184
|
deselectAll(): void;
|
|
180
185
|
/**
|
|
181
186
|
* Updates pan and zoom fit the specified nodes in the viewport.
|
|
182
|
-
* @param
|
|
183
|
-
* @param
|
|
187
|
+
* @param nodeIds - The ids of the nodes to fit on the screen.
|
|
188
|
+
* @param zoomOptions - Specific options on how to transition the zoom.
|
|
189
|
+
*
|
|
190
|
+
* @remarks
|
|
184
191
|
* If the zoom level required to fit the provided nodes is outside of the range provided by the
|
|
185
|
-
* {@link NvlOptions.minZoom} and {@link NvlOptions.maxZoom} options,
|
|
186
|
-
*
|
|
192
|
+
* {@link NvlOptions.minZoom minZoom} and {@link NvlOptions.maxZoom maxZoom} options, and the
|
|
193
|
+
* {@link NvlOptions.allowDynamicMinZoom allowDynamicMinZoom} option is set to `false`,
|
|
187
194
|
* the zoom level will be set to the closest valid zoom level,
|
|
188
195
|
* even if the given nodes do not fit the viewport yet.
|
|
189
196
|
*/
|
|
190
197
|
fit(nodeIds: string[], zoomOptions?: NvlState['zoomOptions']): void;
|
|
191
198
|
/**
|
|
192
|
-
* Resets the zoom of the viewport back to the default zoom level of 0.75
|
|
199
|
+
* Resets the zoom of the viewport back to the default zoom level of 0.75.
|
|
193
200
|
*/
|
|
194
201
|
resetZoom(): void;
|
|
195
|
-
/**
|
|
196
|
-
* Toggles between the WebGL and Canvas rendering.
|
|
197
|
-
* @deprecated use {@link setRenderer} instead.
|
|
198
|
-
* @param {boolean} enabled Whether or not WebGL renderer should be used.
|
|
199
|
-
* @internal
|
|
200
|
-
*/
|
|
201
|
-
setUseWebGLRenderer(enabled: boolean): void;
|
|
202
202
|
/**
|
|
203
203
|
* Switches between rendering methods
|
|
204
204
|
* @param renderer - which rendering method to use
|
|
@@ -206,79 +206,88 @@ declare class NVL {
|
|
|
206
206
|
setRenderer(renderer: string): void;
|
|
207
207
|
/**
|
|
208
208
|
* Restarts NVL with or without WebGL support.
|
|
209
|
-
* @param
|
|
210
|
-
* Not to be confused with {@link setUseWebGLRenderer}, which only affects the rendering method
|
|
209
|
+
* @param disabled - Whether or not WebGL should be disabled.
|
|
211
210
|
* @experimental
|
|
212
211
|
*/
|
|
213
212
|
setDisableWebGL(disabled?: boolean): void;
|
|
214
213
|
/**
|
|
215
214
|
* Pins the specified node so it is not affected by layout forces.
|
|
216
|
-
* @param
|
|
215
|
+
* @param nodeId - The id of the node to be pinned.
|
|
217
216
|
*/
|
|
218
217
|
pinNode(nodeId: string): void;
|
|
219
218
|
/**
|
|
220
219
|
* Un-pins the specified nodes so it is affected by layout forces again.
|
|
221
|
-
* @param
|
|
220
|
+
* @param nodeIds The ids of the nodes to be un-pinned.
|
|
222
221
|
*/
|
|
223
222
|
unPinNode(nodeIds: string[]): void;
|
|
224
223
|
/**
|
|
225
224
|
* Changes the layout type.
|
|
226
|
-
* @param
|
|
225
|
+
* @param layout - The {@link Layout} type.
|
|
227
226
|
*/
|
|
228
227
|
setLayout(layout: Layout): void;
|
|
229
228
|
/**
|
|
230
229
|
* Updates the configuration of the current layout.
|
|
231
|
-
* @param
|
|
230
|
+
* @param options - The {@link LayoutOptions} configuration.
|
|
232
231
|
*/
|
|
233
232
|
setLayoutOptions(options: LayoutOptions): void;
|
|
234
233
|
/**
|
|
235
234
|
* Returns the nodes that are currently in the visualization.
|
|
236
235
|
* The `rels` property of the returned object is always empty.
|
|
237
|
-
* @returns
|
|
236
|
+
* @returns An object containing the nodes and relationships in the visualization.
|
|
238
237
|
*/
|
|
239
238
|
getNodesOnScreen(): {
|
|
239
|
+
/** The nodes in the visualization. */
|
|
240
240
|
nodes: Node[];
|
|
241
|
+
/** The relationships in the visualization. */
|
|
241
242
|
rels: Relationship[];
|
|
242
243
|
};
|
|
243
244
|
/**
|
|
244
245
|
* Fetches and returns the current positions of all nodes as an array of coordinates.
|
|
245
|
-
* @returns
|
|
246
|
+
* @returns An array of {@link Node node} positions.
|
|
246
247
|
*/
|
|
247
248
|
getNodePositions(): (Node & Point)[];
|
|
248
249
|
/**
|
|
249
|
-
* Sets the node positions based on data provided
|
|
250
|
-
* @param
|
|
251
|
-
* @param
|
|
250
|
+
* Sets the node positions based on data provided.
|
|
251
|
+
* @param data - The positions that the nodes should be set to.
|
|
252
|
+
* @param updateLayout - Whether or not the current layout algorithm
|
|
252
253
|
* should update the graph after setting the node positions.
|
|
253
|
-
*
|
|
254
|
+
*
|
|
255
|
+
* @remarks
|
|
256
|
+
* For node positions to be unaffected by layout algorithms, use the 'free' layout type
|
|
254
257
|
* or use {@link pinNode} to pin the nodes that should remain still.
|
|
255
258
|
* False by default.
|
|
256
259
|
*/
|
|
257
260
|
setNodePositions(data: Node[], updateLayout?: boolean): void;
|
|
258
261
|
/**
|
|
259
262
|
* Checks and returns whether the current layout is still in flux.
|
|
260
|
-
* @returns
|
|
263
|
+
* @returns Whether or not the layout is moving.
|
|
261
264
|
*/
|
|
262
265
|
isLayoutMoving(): boolean;
|
|
263
266
|
/**
|
|
264
267
|
* Saves the current view of the graph visualization canvas as a png to the client.
|
|
265
268
|
* @param {{ filename: string, backgroundColor: string }} options The filename and background color of the png.
|
|
266
|
-
* @param
|
|
267
|
-
* @param
|
|
269
|
+
* @param options.filename - The filename of the png file.
|
|
270
|
+
* @param options.backgroundColor - The background color of the png file.
|
|
268
271
|
* The size of the png file will be the size of the canvas in the DOM.
|
|
269
272
|
*/
|
|
270
273
|
saveToFile(options?: {
|
|
271
274
|
filename?: string;
|
|
272
275
|
backgroundColor?: string;
|
|
273
276
|
}): void;
|
|
277
|
+
/**
|
|
278
|
+
* Returns the current view of the graph visualization canvas as a data URL.
|
|
279
|
+
* @param options - The options for the image.
|
|
280
|
+
* @param options.backgroundColor - The background color of the data URL.
|
|
281
|
+
* @returns A data URL of the current view of the graph visualization canvas.
|
|
282
|
+
*/
|
|
274
283
|
getImageDataUrl(options?: {
|
|
275
284
|
backgroundColor?: string;
|
|
276
285
|
}): string;
|
|
277
286
|
/**
|
|
278
287
|
* Saves the entire graph visualization canvas as a png to the client.
|
|
279
288
|
* @param {{ filename: string, backgroundColor: string }} options The filename and background color of the png.
|
|
280
|
-
* @param
|
|
281
|
-
* @param
|
|
289
|
+
* @param options.filename - The filename of the png file.
|
|
290
|
+
* @param options.backgroundColor - The background color of the png file.
|
|
282
291
|
* The size of the png file will be as large as the entire graph at the default zoom level.
|
|
283
292
|
* Can result in a very large file.
|
|
284
293
|
*/
|
|
@@ -288,32 +297,35 @@ declare class NVL {
|
|
|
288
297
|
}): void;
|
|
289
298
|
/**
|
|
290
299
|
* Sets the zoom of the viewport to a specific value.
|
|
291
|
-
* @param
|
|
300
|
+
* @param zoomValue - The desired zoom level.
|
|
301
|
+
* @remarks
|
|
302
|
+
*
|
|
292
303
|
* When updating both the zoom level and pan coordinates,
|
|
293
304
|
* use {@link setZoomAndPan} instead of calling {@link setZoom} and {@link setPan}
|
|
294
305
|
* separately to avoid jittering.
|
|
306
|
+
*
|
|
295
307
|
* If the zoom level is outside of the range provided by the
|
|
296
308
|
* {@link NvlOptions.minZoom} and {@link NvlOptions.maxZoom} options,
|
|
297
309
|
* the zoom level will be set to the closest valid zoom level.
|
|
298
310
|
* If {@link NvlOptions.allowDynamicMinZoom} is set to true,
|
|
299
311
|
* the {@link NvlOptions.minZoom} option will be ignored of the current graph does not fit the viewport.
|
|
300
312
|
*/
|
|
301
|
-
setZoom(
|
|
313
|
+
setZoom(zoomValue: number): void;
|
|
302
314
|
/**
|
|
303
315
|
* Sets the zoom of the viewport to a specific value.
|
|
304
|
-
* @param
|
|
305
|
-
* @param
|
|
306
|
-
* When updating both the zoom level and pan coordinates,
|
|
307
|
-
* use {@link setZoomAndPan} instead of calling {@link setZoom} and {@link setPan}
|
|
308
|
-
* separately to avoid jittering.
|
|
316
|
+
* @param panX - The desired panX value.
|
|
317
|
+
* @param panY - The desired panY value.
|
|
318
|
+
* @remarks When updating both the zoom level and pan coordinates,
|
|
319
|
+
* use {@link setZoomAndPan} instead of calling {@link setZoom} and {@link setPan} separately to avoid jittering.
|
|
309
320
|
*/
|
|
310
321
|
setPan(panX: number, panY: number): void;
|
|
311
322
|
/**
|
|
312
323
|
* Sets the zoom and pan of the viewport to specific values.
|
|
313
|
-
* @param
|
|
314
|
-
* @param
|
|
315
|
-
* @param
|
|
316
|
-
* When only updating
|
|
324
|
+
* @param zoom - The desired zoom level.
|
|
325
|
+
* @param panX - The desired panX value.
|
|
326
|
+
* @param panY - The desired panY value.
|
|
327
|
+
* @remarks When only updating zoom level or pan coordinates, use {@link setZoom} or {@link setPan} instead.
|
|
328
|
+
*
|
|
317
329
|
* If the zoom level is outside of the range provided by the
|
|
318
330
|
* {@link NvlOptions.minZoom} and {@link NvlOptions.maxZoom} options,
|
|
319
331
|
* the zoom level will be set to the closest valid zoom level.
|
|
@@ -323,18 +335,18 @@ declare class NVL {
|
|
|
323
335
|
setZoomAndPan(zoom: number, panX: number, panY: number): void;
|
|
324
336
|
/**
|
|
325
337
|
* Get the current zoom level of the viewport.
|
|
326
|
-
* @returns
|
|
338
|
+
* @returns The current zoom level.
|
|
327
339
|
*/
|
|
328
340
|
getScale(): number;
|
|
329
341
|
/**
|
|
330
342
|
* Returns the current pan of the viewport.
|
|
331
|
-
* @returns
|
|
343
|
+
* @returns The current pan of the viewport.
|
|
332
344
|
*/
|
|
333
345
|
getPan(): Point;
|
|
334
346
|
/**
|
|
335
347
|
* Gets the nodes and relationships that have been hit by a pointer event.
|
|
336
|
-
* @param evt The mouse event.
|
|
337
|
-
* @param targets The graph elements to check for hits. Defaults to ['node', 'relationship'].
|
|
348
|
+
* @param evt - The mouse event.
|
|
349
|
+
* @param targets - The graph elements to check for hits. Defaults to ['node', 'relationship'].
|
|
338
350
|
* @param hitOptions - Options for the hit test.
|
|
339
351
|
* @returns A {@link NvlMouseEvent} with the {@link HitTargets} property
|
|
340
352
|
* containing the nodes and relationships that have been hit by the pointer event.
|
|
@@ -364,6 +376,7 @@ declare class NVL {
|
|
|
364
376
|
/**
|
|
365
377
|
* Functions for mapping colors.
|
|
366
378
|
* @internal
|
|
379
|
+
* @hidden
|
|
367
380
|
*/
|
|
368
381
|
declare const colorMapperFunctions: {
|
|
369
382
|
textColorForBackground: (color: string) => string;
|
|
@@ -2,8 +2,8 @@ import type { Node } from '../../types/graph-element';
|
|
|
2
2
|
import type { Point } from '../../utils/geometry';
|
|
3
3
|
/**
|
|
4
4
|
* Calculates the average node coordinates for a given set of nodes.
|
|
5
|
-
* @param
|
|
6
|
-
* @param
|
|
7
|
-
* @returns
|
|
5
|
+
* @param nodes - The nodes to calculate the average position for.
|
|
6
|
+
* @param positions - The positions of the nodes.
|
|
7
|
+
* @returns The average node coordinates.
|
|
8
8
|
*/
|
|
9
9
|
export declare const calculateAverageNodePosition: (nodes: Node[], positions: Record<string, Node | Point>) => number[];
|
|
@@ -58,15 +58,15 @@ export declare class PhysLayout {
|
|
|
58
58
|
state: NvlState;
|
|
59
59
|
});
|
|
60
60
|
/**
|
|
61
|
-
* Sets the layout options
|
|
62
|
-
* @param
|
|
63
|
-
* @param
|
|
61
|
+
* Sets the layout options.
|
|
62
|
+
* @param options - The object with the options.
|
|
63
|
+
* @param initial - Whether this is the first setting of options.
|
|
64
64
|
*/
|
|
65
65
|
setOptions(options?: ForceDirectedOptions, initial?: boolean): void;
|
|
66
66
|
/**
|
|
67
67
|
* Sets graph data to be used
|
|
68
68
|
* @param {{ nodes: Node[]; rels: Relationship[] }} data the graph object
|
|
69
|
-
* @returns
|
|
69
|
+
* @returns The top level graph of the subgraphs created by the solar merger.
|
|
70
70
|
*/
|
|
71
71
|
setData(data: {
|
|
72
72
|
nodes: Node[];
|
|
@@ -75,7 +75,7 @@ export declare class PhysLayout {
|
|
|
75
75
|
/**
|
|
76
76
|
* Updates the node's positions for the next step in the physics layout iterations if the layout needs to update
|
|
77
77
|
* @param refreshPositions whether the entire layout should be reheated
|
|
78
|
-
* @returns
|
|
78
|
+
* @returns Whether the layout should update in the following step.
|
|
79
79
|
*/
|
|
80
80
|
update(refreshPositions?: boolean): boolean;
|
|
81
81
|
/**
|
|
@@ -84,24 +84,24 @@ export declare class PhysLayout {
|
|
|
84
84
|
terminateUpdate(): void;
|
|
85
85
|
/**
|
|
86
86
|
* Returns whether the current layout needs to be updated in the next iteration step.
|
|
87
|
-
* @returns
|
|
87
|
+
* @returns Whether the layout should update in the following step.
|
|
88
88
|
*/
|
|
89
89
|
getShouldUpdate(): boolean;
|
|
90
90
|
/**
|
|
91
91
|
* Returns whether the current layout is computing.
|
|
92
92
|
* Always returns false because the force-directed layout has no computing step
|
|
93
|
-
* @returns
|
|
93
|
+
* @returns Whether the layout is computing.
|
|
94
94
|
*/
|
|
95
95
|
getComputing(): boolean;
|
|
96
96
|
/**
|
|
97
97
|
* Adds the current x,y coordinates for each node to a given list of nodes.
|
|
98
|
-
* @param
|
|
99
|
-
* @returns
|
|
98
|
+
* @param nodeList - The list of nodes to get positions for.
|
|
99
|
+
* @returns The list of nodes containing the x,y coordinates on each node object.
|
|
100
100
|
*/
|
|
101
101
|
getNodePositions(nodeList: Node[]): (Node & Point)[];
|
|
102
102
|
/**
|
|
103
103
|
* Reheats the layout
|
|
104
|
-
* @param
|
|
104
|
+
* @param fullData - The entire graph object.
|
|
105
105
|
*/
|
|
106
106
|
reheat(fullData: {
|
|
107
107
|
nodes: Node[];
|
|
@@ -109,17 +109,17 @@ export declare class PhysLayout {
|
|
|
109
109
|
}): void;
|
|
110
110
|
/**
|
|
111
111
|
* Updates the existing nodes of a graph with a given list of updates
|
|
112
|
-
* @param
|
|
112
|
+
* @param nodeList - The list of updates.
|
|
113
113
|
*/
|
|
114
114
|
updateNodes(nodeList: Node[]): void;
|
|
115
115
|
/**
|
|
116
116
|
* Adds and removes nodes from the graph based on given updates
|
|
117
|
-
* @param
|
|
118
|
-
* @param
|
|
119
|
-
* @param
|
|
120
|
-
* @param
|
|
121
|
-
* @param
|
|
122
|
-
* @param
|
|
117
|
+
* @param fullData - The entire graph object.
|
|
118
|
+
* @param fullData.nodes - The nodes in the graph.
|
|
119
|
+
* @param fullData.rels - The relationships in the graph.
|
|
120
|
+
* @param nodeChanges - The changes in the graph.
|
|
121
|
+
* @param nodeChanges.adds - A list of nodes to be added.
|
|
122
|
+
* @param nodeChanges.removes - A list of nodes to be removed.
|
|
123
123
|
*/
|
|
124
124
|
addRemoveData(fullData: {
|
|
125
125
|
nodes: Node[];
|
|
@@ -137,11 +137,11 @@ export declare class PhysLayout {
|
|
|
137
137
|
destroy(): void;
|
|
138
138
|
/**
|
|
139
139
|
* Takes the new flat key set of relationships and the current relationship changes
|
|
140
|
-
* and checks whether removed relationships are still in the new flat key set
|
|
140
|
+
* and checks whether removed relationships are still in the new flat key set.
|
|
141
141
|
* and whether added relationships were already in the old flat key set.
|
|
142
142
|
* @param newFlatKeySet The new flat key set of relationships.
|
|
143
143
|
* @param relationshipChanges The changes in the relationships.
|
|
144
|
-
* @returns
|
|
144
|
+
* @returns Whether the relationship flat map has changed.
|
|
145
145
|
*/
|
|
146
146
|
private hasRelationshipFlatMapChanged;
|
|
147
147
|
private dumpTexture;
|
|
@@ -17,21 +17,21 @@ export declare class CallbackHelper {
|
|
|
17
17
|
constructor();
|
|
18
18
|
/**
|
|
19
19
|
* Register a callback function to be called when an event of that name happens
|
|
20
|
-
* @param
|
|
21
|
-
* @param
|
|
20
|
+
* @param name - The name of the callback to register.
|
|
21
|
+
* @param callback - A function that will be called when an event of that name happens.
|
|
22
22
|
* If other callbacks are already registered for that name it is added to the list
|
|
23
23
|
*/
|
|
24
24
|
register(name: keyof ExternalCallbacks, callback: CallbackFunction): void;
|
|
25
25
|
/**
|
|
26
26
|
* Check if a callback function with that name is registered already
|
|
27
|
-
* @param
|
|
27
|
+
* @param name - The name of the callbacks to check.
|
|
28
28
|
* @return {boolean} Whether or not a callback function with that name is registered
|
|
29
29
|
*/
|
|
30
30
|
isCallbackRegistered(name: keyof ExternalCallbacks): boolean;
|
|
31
31
|
/**
|
|
32
32
|
* Call all callbacks registered for a given name
|
|
33
|
-
* @param
|
|
34
|
-
* @param
|
|
33
|
+
* @param name - The name of the callbacks to call.
|
|
34
|
+
* @param data - Data to pass when calling the callbacks.
|
|
35
35
|
*/
|
|
36
36
|
callIfRegistered(): void;
|
|
37
37
|
}
|
|
@@ -13,9 +13,16 @@ export interface ExternalCallbacks {
|
|
|
13
13
|
onInitialization?: () => void;
|
|
14
14
|
/** Triggered when a asynchronous layout calculation starts/stops. */
|
|
15
15
|
onLayoutComputing?: (isComputing: boolean) => void;
|
|
16
|
+
/**
|
|
17
|
+
* Triggered when the WebGL context is lost.
|
|
18
|
+
* {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/webglcontextlost_event}
|
|
19
|
+
*/
|
|
16
20
|
onWebGLContextLost?: (webGLContextEvent: WebGLContextEvent) => void;
|
|
17
21
|
/** Triggered when a zoom transition (e.g. {@link NVL.fit} or {@link NVL.resetZoom}) function is done. */
|
|
18
22
|
onZoomTransitionDone?: () => void;
|
|
23
|
+
/**
|
|
24
|
+
* Triggered when NVL is restarted.
|
|
25
|
+
*/
|
|
19
26
|
restart?: () => void;
|
|
20
27
|
}
|
|
21
28
|
export declare const isExternalCallback: (callback: unknown) => callback is keyof ExternalCallbacks;
|
|
@@ -54,7 +54,7 @@ export default class NvlController {
|
|
|
54
54
|
private layoutComputingCallback;
|
|
55
55
|
private currentLayoutType;
|
|
56
56
|
private descriptionElement;
|
|
57
|
-
constructor(state: NvlState, options: NvlOptions);
|
|
57
|
+
constructor(state: NvlState, frame: HTMLElement, options: NvlOptions);
|
|
58
58
|
private onWebGLContextLost;
|
|
59
59
|
private updateMinimapZoom;
|
|
60
60
|
private startMainLoop;
|
|
@@ -63,8 +63,8 @@ export default class NvlController {
|
|
|
63
63
|
dumpRelationships(): Relationship[];
|
|
64
64
|
/**
|
|
65
65
|
* Map a relative Canvas space to the DOM position
|
|
66
|
-
* @param
|
|
67
|
-
* @param
|
|
66
|
+
* @param canvasX - X position in the canvas space.
|
|
67
|
+
* @param canvasY - Y position position in the canvas space.
|
|
68
68
|
*/
|
|
69
69
|
mapCanvasSpaceToRelativePosition(canvasX: number, canvasY: number): {
|
|
70
70
|
x: number;
|
|
@@ -72,8 +72,8 @@ export default class NvlController {
|
|
|
72
72
|
};
|
|
73
73
|
/**
|
|
74
74
|
* Map a relative DOM position to the Canvas space
|
|
75
|
-
* @param
|
|
76
|
-
* @param
|
|
75
|
+
* @param clientX - Relative X position from the top left [0..rect.width].
|
|
76
|
+
* @param clientY - Relative Y position from the top left [0..rect.height].
|
|
77
77
|
*/
|
|
78
78
|
mapRelativePositionToCanvasSpace(clientX: number, clientY: number): {
|
|
79
79
|
x: number;
|
|
@@ -32,6 +32,6 @@ export interface Channel<T> {
|
|
|
32
32
|
export declare const getHtmlProperty: (item: Partial<Node | Relationship>) => HTMLElement | undefined;
|
|
33
33
|
/**
|
|
34
34
|
* Creates an empty dataset in which a graph be stored and updated using mobx actions.
|
|
35
|
-
* @returns A new and empty {@link DataSet}
|
|
35
|
+
* @returns A new and empty {@link DataSet}.
|
|
36
36
|
*/
|
|
37
37
|
export declare const createDataSet: <T extends Node | Relationship>() => DataSet<T>;
|
|
@@ -2,7 +2,7 @@ import type { NvlOptions, NvlState } from './types';
|
|
|
2
2
|
/**
|
|
3
3
|
* Create a new NVL state
|
|
4
4
|
*
|
|
5
|
-
* @param
|
|
6
|
-
* @returns
|
|
5
|
+
* @param options - The options for the new state.
|
|
6
|
+
* @returns The state object.
|
|
7
7
|
*/
|
|
8
8
|
export declare const createState: (options: NvlOptions) => NvlState;
|