@graphty/graphty-element / Graph / Graph
Class: Graph ​
Defined in: graphty-element/src/Graph.ts:89
Main orchestrator class for graph visualization and interaction. Integrates Babylon.js scene management, coordinates nodes, edges, layouts, and styling.
Implements ​
Constructors ​
Constructor ​
new Graph(
element,useMockInput):Graph
Defined in: graphty-element/src/Graph.ts:153
Creates a new Graph instance and initializes the rendering engine and managers.
Parameters ​
element ​
DOM element or element ID to attach the graph canvas to
string | Element
useMockInput ​
boolean = false
Whether to use mock input for testing (defaults to false)
Returns ​
Graph
Properties ​
camera ​
camera:
CameraManager
Defined in: graphty-element/src/Graph.ts:96
canvas ​
canvas:
HTMLCanvasElement
Defined in: graphty-element/src/Graph.ts:93
element ​
element:
Element
Defined in: graphty-element/src/Graph.ts:92
enableDetailedProfiling? ​
optionalenableDetailedProfiling:boolean
Defined in: graphty-element/src/Graph.ts:110
engine ​
engine:
Engine|WebGPUEngine
Defined in: graphty-element/src/Graph.ts:94
eventManager ​
readonlyeventManager:EventManager
Defined in: graphty-element/src/Graph.ts:122
Event manager for adding/removing event listeners
fetchEdges? ​
optionalfetchEdges:FetchEdgesFn
Defined in: graphty-element/src/Graph.ts:107
fetchNodes? ​
optionalfetchNodes:FetchNodesFn
Defined in: graphty-element/src/Graph.ts:106
initialized ​
initialized:
boolean=false
Defined in: graphty-element/src/Graph.ts:108
needRays ​
needRays:
boolean=true
Defined in: graphty-element/src/Graph.ts:102
operationQueue ​
operationQueue:
OperationQueueManager
Defined in: graphty-element/src/Graph.ts:133
pinOnDrag? ​
optionalpinOnDrag:boolean
Defined in: graphty-element/src/Graph.ts:104
runAlgorithmsOnLoad ​
runAlgorithmsOnLoad:
boolean=false
Defined in: graphty-element/src/Graph.ts:109
scene ​
scene:
Scene
Defined in: graphty-element/src/Graph.ts:95
skybox? ​
optionalskybox:string
Defined in: graphty-element/src/Graph.ts:100
styles ​
styles:
Styles
Defined in: graphty-element/src/Graph.ts:90
xrHelper ​
xrHelper:
WebXRDefaultExperience|null=null
Defined in: graphty-element/src/Graph.ts:101
Accessors ​
input ​
Get Signature ​
get input():
InputManager
Defined in: graphty-element/src/Graph.ts:2128
Get the input manager
Returns ​
The input manager instance
Methods ​
addDataFromSource() ​
addDataFromSource(
type,opts):Promise<void>
Defined in: graphty-element/src/Graph.ts:808
Adds graph data from a registered data source.
Parameters ​
type ​
string
Type/name of the registered data source
opts ​
object = {}
Options to pass to the data source
Returns ​
Promise<void>
Promise that resolves when data is loaded
addEdge() ​
addEdge(
edge,srcIdPath?,dstIdPath?,options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:1032
Add a single edge to the graph.
Parameters ​
edge ​
Edge data object to add
srcIdPath? ​
string
Key to use for edge source ID (default: "source")
dstIdPath? ​
string
Key to use for edge destination ID (default: "target")
options? ​
QueueableOptions
Queue options for operation ordering
Returns ​
Promise<void>
addEdges() ​
addEdges(
edges,srcIdPath?,dstIdPath?,options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:1073
Add edges to the graph incrementally.
Parameters ​
edges ​
Record<string | number, unknown>[]
Array of edge data objects to add
srcIdPath? ​
string
Path to source node ID in edge data (default: "source")
dstIdPath? ​
string
Path to target node ID in edge data (default: "target")
options? ​
QueueableOptions
Queue options for operation ordering
Returns ​
Promise<void>
Promise that resolves when edges are added
Remarks ​
This method ADDS edges to the existing graph without removing existing edges. Source and target nodes should exist before adding edges, otherwise the edges will reference non-existent nodes.
Edges connect nodes and can optionally store additional data accessible via edge.data.
Since ​
1.0.0
See ​
- addNodes for adding nodes first
- Data Loading Examples
Example ​
// Add edges with default source/target fields
await graph.addEdges([
{ source: 'node-1', target: 'node-2', weight: 1.5 },
{ source: 'node-2', target: 'node-3', weight: 2.0 }
]);
// Add edges with custom field names
await graph.addEdges(
[{ from: 'a', to: 'b', label: 'connects' }],
'from',
'to'
);
// Add nodes and edges together
await graph.addNodes([{id: 'a'}, {id: 'b'}]);
await graph.addEdges([{source: 'a', target: 'b'}]);addListener() ​
addListener(
type,cb):void
Defined in: graphty-element/src/Graph.ts:1527
Add an event listener for graph events.
Parameters ​
type ​
Event type to listen for
cb ​
Callback function to execute when event fires
Returns ​
void
addNode() ​
addNode(
node,idPath?,options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:960
Add a single node to the graph.
Parameters ​
node ​
Node data object to add
idPath? ​
string
Key to use for node ID (default: "id")
options? ​
QueueableOptions
Queue options for operation ordering
Returns ​
Promise<void>
addNodes() ​
addNodes(
nodes,idPath?,options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:999
Add nodes to the graph incrementally.
Parameters ​
nodes ​
Record<string | number, unknown>[]
Array of node data objects to add
idPath? ​
string
Key to use for node IDs (default: "id")
options? ​
QueueableOptions
Queue options for operation ordering
Returns ​
Promise<void>
Promise that resolves when nodes are added
Remarks ​
This method ADDS nodes to the existing graph without removing existing nodes. For complete replacement, use the nodeData property on the web component instead.
Nodes are added to the current layout and will animate into position if a force-directed layout is active.
Since ​
1.0.0
See ​
- addEdges for adding edges
- Data Loading Examples
Example ​
// Add nodes with default ID field
await graph.addNodes([
{ id: 'node-1', label: 'First Node', category: 'A' },
{ id: 'node-2', label: 'Second Node', category: 'B' }
]);
// Add nodes with custom ID field
await graph.addNodes(
[{ nodeId: 'n1', name: 'Node One' }],
'nodeId'
);
// Wait for layout to settle after adding
await graph.addNodes(newNodes);
await graph.waitForSettled();
graph.zoomToFit();aiCommand() ​
aiCommand(
input):Promise<ExecutionResult>
Defined in: graphty-element/src/Graph.ts:3753
Send a natural language command to the AI controller.
Parameters ​
input ​
string
Natural language command (e.g., "switch to circular layout")
Returns ​
Promise<ExecutionResult>
Promise resolving to command result
Example ​
// Query graph info
const result = await graph.aiCommand('How many nodes are there?');
console.log(result.message);
// Change layout
await graph.aiCommand('Use circular layout');
// Switch dimension
await graph.aiCommand('Show in 2D');applySuggestedStyles() ​
applySuggestedStyles(
algorithmKey,options?):boolean
Defined in: graphty-element/src/Graph.ts:1243
Apply suggested styles from an algorithm
Parameters ​
algorithmKey ​
Algorithm key (e.g., "graphty:degree") or array of keys
string | string[]
options? ​
Options for applying suggested styles
Returns ​
boolean
true if any styles were applied, false otherwise
batchOperations() ​
batchOperations(
fn):Promise<void>
Defined in: graphty-element/src/Graph.ts:1483
Execute multiple operations as a batch Operations will be queued and executed in dependency order
Parameters ​
fn ​
() => void | Promise<void>
Function containing operations to batch
Returns ​
Promise<void>
canCaptureScreenshot() ​
canCaptureScreenshot(
options?):Promise<CapabilityCheck>
Defined in: graphty-element/src/Graph.ts:2313
Check if screenshot can be captured with given options.
Parameters ​
options? ​
ScreenshotOptions
Screenshot options to validate
Returns ​
Promise<CapabilityCheck>
Promise<CapabilityCheck> - Result indicating whether screenshot is supported
Example ​
// Check if 4x multiplier is supported
const check = await graph.canCaptureScreenshot({ multiplier: 4 });
if (!check.supported) {
console.error('Cannot capture:', check.reason);
} else if (check.warnings) {
console.warn('Warnings:', check.warnings);
}
// Check 8K resolution
const check8k = await graph.canCaptureScreenshot({
width: 7680,
height: 4320
});
console.log(`Memory: ${check8k.estimatedMemoryMB.toFixed(0)}MB`);cancelAiCommand() ​
cancelAiCommand():
void
Defined in: graphty-element/src/Graph.ts:3816
Cancel any in-progress AI command.
Returns ​
void
Example ​
// Start a long-running command
const promise = graph.aiCommand('complex query');
// Cancel it
graph.cancelAiCommand();cancelAnimationCapture() ​
cancelAnimationCapture():
boolean
Defined in: graphty-element/src/Graph.ts:2504
Cancel ongoing animation capture
Returns ​
boolean
true if a capture was cancelled, false if no capture was in progress
Example ​
// Start a capture
const capturePromise = graph.captureAnimation({
duration: 10000,
fps: 30,
cameraMode: 'stationary'
});
// Cancel it after 2 seconds
setTimeout(() => {
const wasCancelled = graph.cancelAnimationCapture();
console.log('Cancelled:', wasCancelled);
}, 2000);
// The promise will reject with AnimationCancelledError
try {
await capturePromise;
} catch (error) {
if (error.name === 'AnimationCancelledError') {
console.log('Capture was cancelled');
}
}captureAnimation() ​
captureAnimation(
options):Promise<AnimationResult>
Defined in: graphty-element/src/Graph.ts:2357
Capture an animation as a video (stationary or animated camera)
Parameters ​
options ​
AnimationOptions
Animation capture options
Returns ​
Promise<AnimationResult>
Promise resolving to AnimationResult with blob and metadata
Example ​
// Basic 5-second video at 30fps
const result = await graph.captureAnimation({
duration: 5000,
fps: 30,
cameraMode: 'stationary'
});
// High-quality 60fps video with download
const result = await graph.captureAnimation({
duration: 10000,
fps: 60,
cameraMode: 'stationary',
download: true,
downloadFilename: 'graph-video.webm'
});
// Animated camera path (camera tour)
const result = await graph.captureAnimation({
duration: 5000,
fps: 30,
cameraMode: 'animated',
cameraPath: [
{ position: { x: 10, y: 10, z: 10 }, target: { x: 0, y: 0, z: 0 } },
{ position: { x: 0, y: 20, z: 0 }, target: { x: 0, y: 0, z: 0 }, duration: 2500 },
{ position: { x: -10, y: 10, z: 10 }, target: { x: 0, y: 0, z: 0 }, duration: 2500 }
],
easing: 'easeInOut',
download: true
});captureScreenshot() ​
captureScreenshot(
options?):Promise<ScreenshotResult>
Defined in: graphty-element/src/Graph.ts:2286
Capture a screenshot of the current graph visualization.
Parameters ​
options? ​
ScreenshotOptions
Screenshot options (format, resolution, destinations, etc.)
Returns ​
Promise<ScreenshotResult>
Promise resolving to ScreenshotResult with blob and metadata
Example ​
// Basic PNG screenshot
const result = await graph.captureScreenshot();
// High-res JPEG with download
const result = await graph.captureScreenshot({
format: 'jpeg',
multiplier: 2,
destination: { download: true }
});
// Copy to clipboard
const result = await graph.captureScreenshot({
destination: { clipboard: true }
});createApiKeyManager() ​
staticcreateApiKeyManager():ApiKeyManager
Defined in: graphty-element/src/Graph.ts:3901
Create a standalone ApiKeyManager for key management without enabling AI. Useful for settings UIs that configure keys before AI activation.
Returns ​
ApiKeyManager
A new ApiKeyManager instance
Example ​
// In a settings UI component
const keyManager = Graph.createApiKeyManager();
keyManager.enablePersistence({
encryptionKey: userSecret,
storage: 'localStorage',
});
keyManager.setKey('openai', apiKey);deselectNode() ​
deselectNode():
void
Defined in: graphty-element/src/Graph.ts:1730
Deselect the currently selected node.
Returns ​
void
Remarks ​
Clears the current selection and triggers a selection-changed event. If no node is selected, this is a no-op.
Since ​
1.0.0
See ​
- selectNode to select a node
- getSelectedNode to check current selection
Example ​
// Clear selection programmatically
graph.selectNode("node-123");
graph.deselectNode();
console.log(graph.getSelectedNode()); // null
// Clear selection on escape key
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
graph.deselectNode();
}
});disableAiControl() ​
disableAiControl():
void
Defined in: graphty-element/src/Graph.ts:3729
Disable AI control and clean up resources.
Returns ​
void
Example ​
graph.disableAiControl();
// AI commands will no longer workdispose() ​
dispose():
void
Defined in: graphty-element/src/Graph.ts:4134
Dispose all graph resources including voice, AI, XR, and Babylon.js components.
Returns ​
void
enableAiControl() ​
enableAiControl(
config):Promise<void>
Defined in: graphty-element/src/Graph.ts:3712
Enable AI-powered natural language control of the graph.
Parameters ​
config ​
AiManagerConfig
AI configuration including provider and optional API key
Returns ​
Promise<void>
Promise resolving when AI is ready
Example ​
// Enable with mock provider (for testing)
await graph.enableAiControl({ provider: 'mock' });
// Enable with OpenAI
await graph.enableAiControl({
provider: 'openai',
apiKey: 'sk-...'
});
// Now you can send commands
const result = await graph.aiCommand('Show me the graph summary');enterXR() ​
enterXR(
mode):Promise<void>
Defined in: graphty-element/src/Graph.ts:4063
Enter XR mode (VR or AR)
Parameters ​
mode ​
The XR mode to enter ('immersive-vr' or 'immersive-ar')
"immersive-vr" | "immersive-ar"
Returns ​
Promise<void>
estimateAnimationCapture() ​
estimateAnimationCapture(
options):Promise<CaptureEstimate>
Defined in: graphty-element/src/Graph.ts:2545
Estimate performance and potential issues for animation capture
Parameters ​
options ​
Pick<AnimationOptions, "duration" | "fps" | "width" | "height">
Animation options to estimate
Returns ​
Promise<CaptureEstimate>
Promise resolving to CaptureEstimate
Example ​
const estimate = await graph.estimateAnimationCapture({
duration: 5000,
fps: 60,
width: 3840,
height: 2160
});
if (estimate.likelyToDropFrames) {
console.warn(`May drop frames. Recommended: ${estimate.recommendedFps}fps`);
}exitXR() ​
exitXR():
Promise<void>
Defined in: graphty-element/src/Graph.ts:4106
Exit XR mode and return to previous camera
Returns ​
Promise<void>
exportCameraPresets() ​
exportCameraPresets():
Record<string,CameraState>
Defined in: graphty-element/src/Graph.ts:3617
Export user-defined presets as JSON
Returns ​
Record<string, CameraState>
Object mapping preset names to camera states
getAiManager() ​
getAiManager():
AiManager|null
Defined in: graphty-element/src/Graph.ts:3833
Get the AI manager for advanced configuration. Returns null if AI is not enabled.
Returns ​
AiManager | null
The AI manager or null
Example ​
const manager = graph.getAiManager();
if (manager) {
// Register custom command
manager.registerCommand(myCustomCommand);
}getAiStatus() ​
getAiStatus():
AiStatus|null
Defined in: graphty-element/src/Graph.ts:3775
Get the current AI status synchronously.
Returns ​
AiStatus | null
Current AI status or null if AI is not enabled
Example ​
const status = graph.getAiStatus();
if (status?.state === 'executing') {
console.log('AI is processing a command...');
}getApiKeyManager() ​
getApiKeyManager():
ApiKeyManager|null
Defined in: graphty-element/src/Graph.ts:3882
Get the API key manager for configuring keys before enabling AI. Returns null if AI has never been enabled.
Returns ​
ApiKeyManager | null
The API key manager or null
Example ​
const keyManager = graph.getApiKeyManager();
if (keyManager) {
const providers = keyManager.getConfiguredProviders();
console.log('Configured providers:', providers);
}getCameraController() ​
getCameraController():
CameraController|null
Defined in: graphty-element/src/Graph.ts:2212
Get the active camera controller.
Returns ​
CameraController | null
The active camera controller or null if none active
getCameraPresets() ​
getCameraPresets():
Record<string,CameraState| {builtin:true; }>
Defined in: graphty-element/src/Graph.ts:3597
Get all camera presets (built-in + user-defined)
Returns ​
Record<string, CameraState | { builtin: true; }>
Object mapping preset names to camera states or builtin marker
getCameraState() ​
getCameraState():
CameraState
Defined in: graphty-element/src/Graph.ts:2556
Get the current camera state
Returns ​
CameraState
Camera state including position, target, and rotation
getConfig() ​
getConfig():
GraphContextConfig
Defined in: graphty-element/src/Graph.ts:2032
Get the current graph context configuration.
Returns ​
The graph context configuration
Implementation of ​
getDataManager() ​
getDataManager():
DataManager
Defined in: graphty-element/src/Graph.ts:1599
Get the DataManager instance.
Returns ​
The DataManager instance
Implementation of ​
getEdgeCount() ​
getEdgeCount():
number
Defined in: graphty-element/src/Graph.ts:1509
Get the total number of edges in the graph.
Returns ​
number
The number of edges
getEventManager() ​
getEventManager():
EventManager
Defined in: graphty-element/src/Graph.ts:1655
Get the EventManager instance for event handling.
Returns ​
The EventManager instance
Implementation of ​
getLayers() ​
getLayers():
object[]
Defined in: graphty-element/src/Graph.ts:1591
Get a copy of all style layers.
Returns ​
object[]
Array of style layers
getLayoutManager() ​
getLayoutManager():
LayoutManager
Defined in: graphty-element/src/Graph.ts:1607
Get the LayoutManager instance.
Returns ​
The LayoutManager instance
Implementation of ​
getMeshCache() ​
getMeshCache():
MeshCache
Defined in: graphty-element/src/Graph.ts:1623
Get the MeshCache instance used for mesh instancing.
Returns ​
MeshCache
The MeshCache instance
Implementation of ​
getNode() ​
getNode(
nodeId):Node|undefined
Defined in: graphty-element/src/Graph.ts:3667
Get a specific node
Parameters ​
nodeId ​
ID of the node to retrieve
string | number
Returns ​
Node | undefined
The node instance or undefined if not found
getNodeCount() ​
getNodeCount():
number
Defined in: graphty-element/src/Graph.ts:1501
Get the total number of nodes in the graph.
Returns ​
number
The number of nodes
getNodeMesh() ​
getNodeMesh(
nodeId):AbstractMesh|null
Defined in: graphty-element/src/Graph.ts:2221
Get the Babylon.js mesh for a node by its ID.
Parameters ​
nodeId ​
string
ID of the node
Returns ​
AbstractMesh | null
The node's mesh or null if not found
getNodes() ​
getNodes():
Node[]
Defined in: graphty-element/src/Graph.ts:3675
Get all nodes
Returns ​
Node[]
Array of all node instances
getScene() ​
getScene():
Scene
Defined in: graphty-element/src/Graph.ts:1631
Get the Babylon.js Scene instance.
Returns ​
Scene
The Scene instance
Implementation of ​
getSelectedNode() ​
getSelectedNode():
Node|null
Defined in: graphty-element/src/Graph.ts:1667
Get the currently selected node.
Returns ​
Node | null
The selected node, or null if nothing is selected.
getSelectionManager() ​
getSelectionManager():
SelectionManager
Defined in: graphty-element/src/Graph.ts:1647
Get the SelectionManager instance for handling node selection.
Returns ​
The SelectionManager instance
Implementation of ​
GraphContext.getSelectionManager
getStatsManager() ​
getStatsManager():
StatsManager
Defined in: graphty-element/src/Graph.ts:1639
Get the StatsManager instance for performance metrics.
Returns ​
The StatsManager instance
Implementation of ​
getStyleManager() ​
getStyleManager():
StyleManager
Defined in: graphty-element/src/Graph.ts:1583
Get the StyleManager instance.
Returns ​
The StyleManager instance
Implementation of ​
getStyles() ​
getStyles():
Styles
Defined in: graphty-element/src/Graph.ts:1575
Get the Styles instance for the graph.
Returns ​
The Styles instance
getSuggestedStyles() ​
getSuggestedStyles(
algorithmKey):SuggestedStylesConfig|null
Defined in: graphty-element/src/Graph.ts:1270
Get suggested styles without applying them
Parameters ​
algorithmKey ​
string
Algorithm key (e.g., "graphty:degree")
Returns ​
SuggestedStylesConfig | null
Suggested styles config or null if none exist
getUpdateManager() ​
getUpdateManager():
UpdateManager
Defined in: graphty-element/src/Graph.ts:1615
Get the UpdateManager instance.
Returns ​
The UpdateManager instance
getViewMode() ​
getViewMode():
"vr"|"ar"|"2d"|"3d"
Defined in: graphty-element/src/Graph.ts:1804
Get the current view mode. Returns the viewMode from config (always set due to default value).
Returns ​
"vr" | "ar" | "2d" | "3d"
The current view mode ("2d", "3d", "ar", or "vr")
getVoiceAdapter() ​
getVoiceAdapter():
VoiceInputAdapter
Defined in: graphty-element/src/Graph.ts:3924
Get the voice input adapter. Creates the adapter on first use.
Returns ​
VoiceInputAdapter
The voice input adapter
Example ​
const adapter = graph.getVoiceAdapter();
if (adapter.isSupported) {
adapter.start({ continuous: true });
}getXRConfig() ​
getXRConfig():
XRConfig|undefined
Defined in: graphty-element/src/Graph.ts:2060
Get the current XR configuration.
Returns ​
XRConfig | undefined
The XR configuration if set
Implementation of ​
getXRSessionManager() ​
getXRSessionManager():
XRSessionManager|undefined
Defined in: graphty-element/src/Graph.ts:2079
Get the XR session manager instance.
Returns ​
XRSessionManager | undefined
The XR session manager if XR is initialized
Implementation of ​
GraphContext.getXRSessionManager
importCameraPresets() ​
importCameraPresets(
presets):void
Defined in: graphty-element/src/Graph.ts:3629
Import user-defined presets from JSON
Parameters ​
presets ​
Record<string, CameraState>
Object mapping preset names to camera states
Returns ​
void
init() ​
init():
Promise<void>
Defined in: graphty-element/src/Graph.ts:464
Initializes the graph instance, setting up managers, styles, and rendering pipeline.
Returns ​
Promise<void>
is2D() ​
is2D():
boolean
Defined in: graphty-element/src/Graph.ts:1794
Check if the graph is in 2D mode (deprecated - use getViewMode instead).
Returns ​
boolean
True if in 2D mode, false otherwise
Deprecated ​
Use getViewMode() === "2d" instead
Implementation of ​
isAiEnabled() ​
isAiEnabled():
boolean
Defined in: graphty-element/src/Graph.ts:3841
Check if AI control is currently enabled.
Returns ​
boolean
True if AI is enabled
isAnimationCapturing() ​
isAnimationCapturing():
boolean
Defined in: graphty-element/src/Graph.ts:2523
Check if an animation capture is currently in progress
Returns ​
boolean
True if currently capturing an animation
isARSupported() ​
isARSupported():
Promise<boolean>
Defined in: graphty-element/src/Graph.ts:2115
Check if AR mode is supported on this device/browser. Returns true if WebXR is available and AR sessions are supported.
Returns ​
Promise<boolean>
Promise resolving to true if AR is supported
Example ​
const arSupported = await graph.isARSupported();
if (!arSupported) {
console.log("AR not available on this device");
}isNodeSelected() ​
isNodeSelected(
nodeId):boolean
Defined in: graphty-element/src/Graph.ts:1739
Check if a specific node is currently selected.
Parameters ​
nodeId ​
The ID of the node to check.
string | number
Returns ​
boolean
True if the node is selected, false otherwise.
isRunning() ​
isRunning():
boolean
Defined in: graphty-element/src/Graph.ts:2044
Check if the layout engine is currently running.
Returns ​
boolean
True if layout is running
Implementation of ​
isVoiceActive() ​
isVoiceActive():
boolean
Defined in: graphty-element/src/Graph.ts:4004
Check if voice input is currently active.
Returns ​
boolean
True if voice input is active
isVRSupported() ​
isVRSupported():
Promise<boolean>
Defined in: graphty-element/src/Graph.ts:2095
Check if VR mode is supported on this device/browser. Returns true if WebXR is available and VR sessions are supported.
Returns ​
Promise<boolean>
Promise resolving to true if VR is supported
Example ​
const vrSupported = await graph.isVRSupported();
if (!vrSupported) {
console.log("VR not available on this device");
}listenerCount() ​
listenerCount():
number
Defined in: graphty-element/src/Graph.ts:1537
Get the total number of registered event listeners. Useful for debugging and testing to ensure listeners are properly cleaned up.
Returns ​
number
The number of registered listeners
loadCameraPreset() ​
loadCameraPreset(
name,options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:3586
Load a camera preset (built-in or user-defined)
Parameters ​
name ​
string
Name of the preset to load
options? ​
CameraAnimationOptions
Optional animation configuration
Returns ​
Promise<void>
Promise that resolves when camera state is applied
loadFromFile() ​
loadFromFile(
file,options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:821
Load graph data from a File object with auto-format detection
Parameters ​
file ​
File
File object from file input
options? ​
Loading options
edgeDstIdPath? ​
string
JMESPath for edge destination ID extraction
edgeSrcIdPath? ​
string
JMESPath for edge source ID extraction
format? ​
string
Explicit format override (e.g., "graphml", "json")
nodeIdPath? ​
string
JMESPath for node ID extraction
Returns ​
Promise<void>
loadFromUrl() ​
loadFromUrl(
url,options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:888
Load graph data from a URL with auto-format detection
Parameters ​
url ​
string
URL to fetch graph data from
options? ​
Loading options
edgeDstIdPath? ​
string
JMESPath for edge destination ID extraction
edgeSrcIdPath? ​
string
JMESPath for edge source ID extraction
format? ​
string
Explicit format override (e.g., "graphml", "json")
nodeIdPath? ​
string
JMESPath for node ID extraction
Returns ​
Promise<void>
Remarks ​
This method attempts to detect the format from the URL extension first. If the extension is not recognized (e.g., .txt), it fetches the content and uses content-based detection. The content is then passed directly to the data source to avoid a double-fetch.
Example ​
// Auto-detect format from extension
await graph.loadFromUrl("https://example.com/data.graphml");
// Auto-detect from content when extension doesn't match
await graph.loadFromUrl("https://example.com/data.txt");
// Explicitly specify format
await graph.loadFromUrl("https://example.com/data.txt", { format: "graphml" });needsRayUpdate() ​
needsRayUpdate():
boolean
Defined in: graphty-element/src/Graph.ts:2024
Check if ray updates are needed for edge arrows.
Returns ​
boolean
True if rays need updating
Implementation of ​
on() ​
on(
type,cb):void
Defined in: graphty-element/src/Graph.ts:1518
Alias for addEventListener
Parameters ​
type ​
Event type to listen for
cb ​
Callback function to execute when event fires
Returns ​
void
onAiStatusChange() ​
onAiStatusChange(
callback): () =>void
Defined in: graphty-element/src/Graph.ts:3796
Subscribe to AI status changes.
Parameters ​
callback ​
StatusChangeCallback
Function called when status changes
Returns ​
Unsubscribe function
():
void
Returns ​
void
Example ​
const unsubscribe = graph.onAiStatusChange((status) => {
console.log('AI state:', status.state);
if (status.streamedText) {
console.log('Response:', status.streamedText);
}
});
// Later: stop listening
unsubscribe();removeNodes() ​
removeNodes(
nodeIds,options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:1341
Remove nodes from the graph by their IDs.
Parameters ​
nodeIds ​
(string | number)[]
Array of node IDs to remove
options? ​
QueueableOptions
Queue options for operation ordering
Returns ​
Promise<void>
render() ​
render():
void
Defined in: graphty-element/src/Graph.ts:3682
Render method (public for testing)
Returns ​
void
resetCamera() ​
resetCamera(
options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:3479
Reset camera to default state
Parameters ​
options? ​
CameraAnimationOptions
Optional animation configuration
Returns ​
Promise<void>
Promise that resolves when camera is reset
resolveCameraPreset() ​
resolveCameraPreset(
preset):CameraState
Defined in: graphty-element/src/Graph.ts:3503
Resolve a camera preset (built-in or user-defined) to a CameraState
Parameters ​
preset ​
string
Name of the preset to resolve
Returns ​
CameraState
The resolved camera state
retryLastAiCommand() ​
retryLastAiCommand():
Promise<ExecutionResult>
Defined in: graphty-element/src/Graph.ts:3861
Retry the last AI command. Useful for retrying after transient errors.
Returns ​
Promise<ExecutionResult>
Promise resolving to command result
Throws ​
Error if AI not enabled or no previous command
Example ​
// After a failed command
try {
const result = await graph.retryLastAiCommand();
console.log('Retry succeeded:', result);
} catch (error) {
console.error('Retry failed:', error);
}runAlgorithm() ​
runAlgorithm(
namespace,type,options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:1207
Run a graph algorithm and store results on nodes/edges.
Parameters ​
namespace ​
string
Algorithm namespace (e.g., "graphty")
type ​
string
Algorithm type (e.g., "degree", "pagerank")
options? ​
RunAlgorithmOptions
Algorithm options and queue settings
Returns ​
Promise<void>
Promise that resolves when algorithm completes
Remarks ​
Algorithms are identified by namespace and type (e.g., graphty:degree). Results are stored on each node's algorithmResults property and can be accessed in style selectors.
Available algorithms by category:
- Centrality: degree, betweenness, closeness, pagerank, eigenvector
- Community: louvain, label-propagation, leiden
- Components: connected-components, strongly-connected
- Traversal: bfs, dfs
- Shortest Path: dijkstra, bellman-ford
- Spanning Tree: prim, kruskal
- Flow: max-flow, min-cut
Since ​
1.0.0
See ​
- applySuggestedStyles to visualize results
- Centrality Examples
- Community Detection
Example ​
// Run degree centrality
await graph.runAlgorithm('graphty', 'degree');
// Access results
const node = graph.getNode('node-1');
console.log('Degree:', node.algorithmResults['graphty:degree']);
// Run with auto-styling
await graph.runAlgorithm('graphty', 'pagerank', {
algorithmOptions: { damping: 0.85 },
applySuggestedStyles: true
});
// Use results in style selectors
styleManager.addLayer({
selector: "[?algorithmResults.'graphty:degree' > `10`]",
styles: { node: { color: '#ff0000', size: 2.0 } }
});runAlgorithmsFromTemplate() ​
runAlgorithmsFromTemplate():
Promise<void>
Defined in: graphty-element/src/Graph.ts:450
Executes all algorithms specified in the style template configuration.
Returns ​
Promise<void>
saveCameraPreset() ​
saveCameraPreset(
name):void
Defined in: graphty-element/src/Graph.ts:3568
Save current camera state as a named preset
Parameters ​
name ​
string
Name for the camera preset
Returns ​
void
screenToWorld() ​
screenToWorld(
screenPos): {x:number;y:number;z:number; } |null
Defined in: graphty-element/src/Graph.ts:2194
Convert 2D screen coordinates to 3D world coordinates via raycasting.
Parameters ​
screenPos ​
Screen position to convert
x ​
number
X coordinate in screen space
y ​
number
Y coordinate in screen space
Returns ​
{ x: number; y: number; z: number; } | null
World coordinates {x, y, z} or null if no intersection
selectNode() ​
selectNode(
nodeId):boolean
Defined in: graphty-element/src/Graph.ts:1703
Select a node by its ID.
Parameters ​
nodeId ​
The ID of the node to select
string | number
Returns ​
boolean
True if the node was found and selected, false if not found
Remarks ​
Selection triggers a selection-changed event and applies selection styles (defined in the style template). Only one node can be selected at a time; calling this method will deselect any previously selected node.
Selection is often used to:
- Show a details panel with node information
- Highlight the node and its connections
- Enable context-specific actions
Since ​
1.0.0
See ​
- deselectNode to clear selection
- getSelectedNode to get current selection
- Selection Examples
Example ​
// Select a node and show its details
if (graph.selectNode('node-123')) {
const node = graph.getSelectedNode();
console.log('Selected:', node.data);
showDetailsPanel(node);
}
// Handle click events for selection
graph.on('node-click', ({ node }) => {
graph.selectNode(node.id);
});setCameraMode() ​
setCameraMode(
mode,options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:1428
Set the active camera mode (e.g., "arcRotate", "universal").
Parameters ​
mode ​
CameraKey
Camera mode key to activate
options? ​
QueueableOptions
Queue options for operation ordering
Returns ​
Promise<void>
setCameraPan() ​
setCameraPan(
pan,options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:3467
Set camera pan (2D)
Parameters ​
pan ​
Pan offset coordinates
x ​
number
X offset
y ​
number
Y offset
options? ​
CameraAnimationOptions
Optional animation configuration
Returns ​
Promise<void>
Promise that resolves when pan is set
setCameraPosition() ​
setCameraPosition(
position,options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:3420
Set camera position (3D)
Parameters ​
position ​
Camera position coordinates
x ​
number
X coordinate
y ​
number
Y coordinate
z ​
number
Z coordinate
options? ​
CameraAnimationOptions
Optional animation configuration
Returns ​
Promise<void>
Promise that resolves when camera position is set
setCameraState() ​
setCameraState(
state,options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:2671
Set the camera state (Phase 4: with animation support)
Parameters ​
state ​
Camera state or preset name to apply
CameraState | { preset: string; }
options? ​
CameraAnimationOptions
Optional animation configuration
Returns ​
Promise<void>
setCameraTarget() ​
setCameraTarget(
target,options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:3439
Set camera target (3D)
Parameters ​
target ​
Camera target coordinates
x ​
number
X coordinate
y ​
number
Y coordinate
z ​
number
Z coordinate
options? ​
CameraAnimationOptions
Optional animation configuration
Returns ​
Promise<void>
Promise that resolves when camera target is set
setCameraZoom() ​
setCameraZoom(
zoom,options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:3455
Set camera zoom (2D)
Parameters ​
zoom ​
number
Zoom level (1.0 = default, >1 = zoomed in, <1 = zoomed out)
options? ​
CameraAnimationOptions
Optional animation configuration
Returns ​
Promise<void>
Promise that resolves when zoom is set
setData() ​
setData(
data):void
Defined in: graphty-element/src/Graph.ts:3646
Set graph data (delegates to data manager)
Parameters ​
data ​
Graph data object
edges ​
Record<string, unknown>[]
Array of edge data objects
nodes ​
Record<string, unknown>[]
Array of node data objects
Returns ​
void
setInputEnabled() ​
setInputEnabled(
enabled):void
Defined in: graphty-element/src/Graph.ts:2136
Enable or disable input
Parameters ​
enabled ​
boolean
True to enable input, false to disable
Returns ​
void
setLayout() ​
setLayout(
type,opts,options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:1140
Set the layout algorithm and configuration.
Parameters ​
type ​
string
Layout algorithm name
opts ​
object = {}
Layout-specific configuration options
options? ​
QueueableOptions
Options for operation queue behavior
Returns ​
Promise<void>
Promise that resolves when layout is initialized
Remarks ​
Available layouts:
ngraph: Force-directed (3D optimized, recommended for general use)d3-force: Force-directed (2D, web standard)circular: Nodes arranged in a circlegrid: Nodes arranged in a gridhierarchical: Tree/DAG layoutrandom: Random positions (useful for testing)fixed: Use pre-defined positions from node data
Layout changes are queued and execute in order. The layout will animate nodes from their current positions to new positions.
Since ​
1.0.0
See ​
- waitForSettled to wait for layout completion
- 3D Layout Examples
- 2D Layout Examples
Example ​
// Use force-directed layout with custom settings
await graph.setLayout('ngraph', {
springLength: 100,
springCoefficient: 0.0008,
gravity: -1.2,
dimensions: 3
});
// Wait for layout to settle then zoom to fit
await graph.waitForSettled();
graph.zoomToFit();
// Switch to circular layout
await graph.setLayout('circular', { radius: 5 });setRenderSettings() ​
setRenderSettings(
_settings,options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:1455
Update rendering settings for the graph visualization.
Parameters ​
_settings ​
Record<string, unknown>
Object containing rendering configuration options (reserved for future use)
options? ​
QueueableOptions
Queue options for operation ordering
Returns ​
Promise<void>
setRunning() ​
setRunning(
running):void
Defined in: graphty-element/src/Graph.ts:2052
Set whether the layout engine should run.
Parameters ​
running ​
boolean
True to start the layout, false to stop it
Returns ​
void
Implementation of ​
setStyleTemplate() ​
setStyleTemplate(
t,options?):Promise<Styles>
Defined in: graphty-element/src/Graph.ts:605
Sets the style template for the graph, applying visual and behavioral configurations.
Parameters ​
t ​
Style schema containing configuration for graph appearance and behavior
behavior ​
{ fetchEdges?: Function; fetchNodes?: Function; layout: { minDelta: number; preSteps: number; stepMultiplier: number; type: string; zoomStepInterval: number; }; node: { pinOnDrag: boolean; }; } = ...
behavior.fetchEdges? ​
Function = ...
behavior.fetchNodes? ​
Function = ...
behavior.layout ​
{ minDelta: number; preSteps: number; stepMultiplier: number; type: string; zoomStepInterval: number; } = ...
behavior.layout.minDelta ​
number = ...
behavior.layout.preSteps ​
number = ...
behavior.layout.stepMultiplier ​
number = ...
behavior.layout.type ​
string = ...
behavior.layout.zoomStepInterval ​
number = ...
behavior.node ​
{ pinOnDrag: boolean; } = NodeBehaviorOpts
behavior.node.pinOnDrag ​
boolean = ...
data ​
{ algorithms?: string[]; knownFields: { edgeDstIdPath: string; edgeSrcIdPath: string; edgeTimePath: string | null; edgeWeightPath: string | null; nodeIdPath: string; nodeTimePath: string | null; nodeWeightPath: string | null; }; } = ...
data.algorithms? ​
string[] = ...
data.knownFields ​
{ edgeDstIdPath: string; edgeSrcIdPath: string; edgeTimePath: string | null; edgeWeightPath: string | null; nodeIdPath: string; nodeTimePath: string | null; nodeWeightPath: string | null; } = ...
data.knownFields.edgeDstIdPath ​
string = ...
data.knownFields.edgeSrcIdPath ​
string = ...
data.knownFields.edgeTimePath ​
string | null = ...
data.knownFields.edgeWeightPath ​
string | null = ...
data.knownFields.nodeIdPath ​
string = ...
data.knownFields.nodeTimePath ​
string | null = ...
data.knownFields.nodeWeightPath ​
string | null = ...
graph ​
{ addDefaultStyle: boolean; background: { backgroundType: "color"; color: string | undefined; } | { backgroundType: "skybox"; data: string; }; effects?: { depthOfField?: number; motionBlur?: number; screenSpaceReflections?: boolean; }; layout?: string; layoutOptions?: {[key: string]: unknown; }; startingCameraDistance: number; twoD: boolean; viewMode: "vr" | "ar" | "2d" | "3d"; } = ...
graph.addDefaultStyle ​
boolean = ...
graph.background ​
{ backgroundType: "color"; color: string | undefined; } | { backgroundType: "skybox"; data: string; } = ...
graph.effects? ​
{ depthOfField?: number; motionBlur?: number; screenSpaceReflections?: boolean; } = ...
graph.effects.depthOfField? ​
number = ...
graph.effects.motionBlur? ​
number = ...
graph.effects.screenSpaceReflections? ​
boolean = ...
graph.layout? ​
string = ...
graph.layoutOptions? ​
{[key: string]: unknown; } = ...
graph.startingCameraDistance ​
number = ...
graph.twoD ​
boolean = ...
Deprecated
Use viewMode instead. twoD: true is equivalent to viewMode: "2d"
graph.viewMode ​
"vr" | "ar" | "2d" | "3d" = ...
View mode controls how the graph is rendered and displayed.
- "2d": Orthographic camera, fixed top-down view
- "3d": Perspective camera with orbit controls (default)
- "ar": Augmented reality mode using WebXR
- "vr": Virtual reality mode using WebXR
graphtyTemplate ​
true = ...
layers ​
object[] = ...
majorVersion ​
"1" = ...
metadata? ​
{ templateCreationTimestamp?: string; templateCreator?: string; templateModificationTimestamp?: string; templateName?: string; } = ...
metadata.templateCreationTimestamp? ​
string = ...
metadata.templateCreator? ​
string = ...
metadata.templateModificationTimestamp? ​
string = ...
metadata.templateName? ​
string = ...
options? ​
QueueableOptions
Optional queueing options for batch processing
Returns ​
Promise<Styles>
The updated Styles instance
setViewMode() ​
setViewMode(
mode,options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:1823
Set the view mode. This controls the camera type, input handling, and rendering approach.
Parameters ​
mode ​
The view mode to set: "2d", "3d", "ar", or "vr"
"vr" | "ar" | "2d" | "3d"
options? ​
QueueableOptions
Optional queueing options
Returns ​
Promise<void>
Promise that resolves when view mode is set
Example ​
// Switch to 2D orthographic view
await graph.setViewMode("2d");
// Switch to VR mode
await graph.setViewMode("vr");setXRConfig() ​
setXRConfig(
config):void
Defined in: graphty-element/src/Graph.ts:2069
Set XR configuration. Merges with defaults and updates the graph context.
Parameters ​
config ​
Partial XR configuration to apply
{ ar?: { enabled?: boolean; optionalFeatures?: string[]; referenceSpaceType?: "local" | "local-floor" | "bounded-floor" | "unbounded"; }; enabled?: boolean; input?: { controllers?: boolean; enableZAmplificationInDesktop?: boolean; handTracking?: boolean; nearInteraction?: boolean; physics?: boolean; zAxisAmplification?: number; }; teleportation?: { easeTime?: number; enabled?: boolean; }; ui?: { enabled?: boolean; position?: "top-right" | "top-left" | "bottom-left" | "bottom-right"; showAvailabilityWarning?: boolean; unavailableMessageDuration?: number; }; vr?: { enabled?: boolean; optionalFeatures?: string[]; referenceSpaceType?: "local" | "local-floor" | "bounded-floor" | "unbounded"; }; }
Partial XR configuration to apply
ar? ​
{ enabled?: boolean; optionalFeatures?: string[]; referenceSpaceType?: "local" | "local-floor" | "bounded-floor" | "unbounded"; } = ...
AR mode configuration
ar.enabled? ​
boolean = ...
Enable AR mode
Default
truear.optionalFeatures? ​
string[] = ...
Optional WebXR features to request
Default
["hit-test"]ar.referenceSpaceType? ​
"local" | "local-floor" | "bounded-floor" | "unbounded" = ...
WebXR reference space type for AR
Default
"local-floor"enabled? ​
boolean = ...
Enable/disable XR functionality globally
Default
trueinput? ​
{ controllers?: boolean; enableZAmplificationInDesktop?: boolean; handTracking?: boolean; nearInteraction?: boolean; physics?: boolean; zAxisAmplification?: number; } = ...
XR input and interaction configuration
input.controllers? ​
boolean = ...
Enable motion controllers
Default
trueinput.enableZAmplificationInDesktop? ​
boolean = ...
Enable Z-axis amplification in desktop mode Normally amplification only applies in XR mode, but this can enable it for desktop too
Default
falseinput.handTracking? ​
boolean = ...
Enable hand tracking
Default
trueinput.nearInteraction? ​
boolean = ...
Enable near interaction (touch/grab)
Default
trueinput.physics? ​
boolean = ...
Enable physics-based interactions
Default
falseinput.zAxisAmplification? ​
number = ...
Z-axis movement amplification factor Multiplies Z-axis delta during drag to make depth manipulation practical in VR
Example: With zAxisAmplification = 10, moving controller 0.1 units in Z will move the node 1.0 units in Z
Default
10.0teleportation? ​
{ easeTime?: number; enabled?: boolean; } = ...
Teleportation configuration
teleportation.easeTime? ​
number = ...
Teleportation animation duration (ms)
Default
200teleportation.enabled? ​
boolean = ...
Enable teleportation system
Default
falseui? ​
{ enabled?: boolean; position?: "top-right" | "top-left" | "bottom-left" | "bottom-right"; showAvailabilityWarning?: boolean; unavailableMessageDuration?: number; } = ...
XR UI button configuration
ui.enabled? ​
boolean = ...
Show VR/AR entry buttons
Default
trueui.position? ​
"top-right" | "top-left" | "bottom-left" | "bottom-right" = ...
Button position on screen
Default
"bottom-right"ui.showAvailabilityWarning? ​
boolean = ...
Show "VR / AR NOT AVAILABLE" warning when XR is not available When false, no message is displayed if AR/VR aren't available
Default
falseui.unavailableMessageDuration? ​
number = ...
Duration to show "not available" message (ms)
Default
5000vr? ​
{ enabled?: boolean; optionalFeatures?: string[]; referenceSpaceType?: "local" | "local-floor" | "bounded-floor" | "unbounded"; } = ...
VR mode configuration
vr.enabled? ​
boolean = ...
Enable VR mode
Default
truevr.optionalFeatures? ​
string[] = ...
Optional WebXR features to request
Default
[]vr.referenceSpaceType? ​
"local" | "local-floor" | "bounded-floor" | "unbounded" = ...
WebXR reference space type for VR
- "local": Seated/standing experience, no room bounds
- "local-floor": Floor-level origin, no room bounds
- "bounded-floor": Room-scale with bounds
- "unbounded": Unlimited tracking space
Default
"local-floor"| undefined
Returns ​
void
shutdown() ​
shutdown():
void
Defined in: graphty-element/src/Graph.ts:427
Shuts down the graph, stopping animations and disposing all resources.
Returns ​
void
startInputRecording() ​
startInputRecording():
void
Defined in: graphty-element/src/Graph.ts:2143
Start recording input for testing/automation
Returns ​
void
startVoiceInput() ​
startVoiceInput(
options?):boolean
Defined in: graphty-element/src/Graph.ts:3953
Start voice input and execute commands.
Parameters ​
options? ​
Voice input options
continuous? ​
boolean
Whether to continuously listen for input
interimResults? ​
boolean
Whether to return interim transcription results
language? ​
string
BCP 47 language tag (e.g., "en-US", "fr-FR")
onStart? ​
(started, error?) => void
Callback when voice input starts
onTranscript? ​
(text, isFinal) => void
Callback for transcription events
Returns ​
boolean
True if voice input started successfully
Example ​
graph.startVoiceInput({
continuous: true,
interimResults: true,
onTranscript: (text, isFinal) => {
console.log('Transcript:', text, isFinal ? '(final)' : '(interim)');
if (isFinal) {
graph.aiCommand(text);
}
},
});stopInputRecording() ​
stopInputRecording():
RecordedInputEvent[]
Defined in: graphty-element/src/Graph.ts:2151
Stop recording and get recorded events
Returns ​
Array of recorded input events
stopVoiceInput() ​
stopVoiceInput():
void
Defined in: graphty-element/src/Graph.ts:3996
Stop voice input.
Returns ​
void
Example ​
graph.stopVoiceInput();update() ​
update():
void
Defined in: graphty-element/src/Graph.ts:533
Update method - kept for backward compatibility All update logic is now handled by UpdateManager
Returns ​
void
updateNodes() ​
updateNodes(
updates,options?):Promise<void>
Defined in: graphty-element/src/Graph.ts:1382
Update node data for existing nodes in the graph.
Parameters ​
updates ​
object[]
Array of update objects containing node ID and properties to update
options? ​
QueueableOptions
Queue options for operation ordering
Returns ​
Promise<void>
waitForSettled() ​
waitForSettled():
Promise<void>
Defined in: graphty-element/src/Graph.ts:2259
Wait for the graph operations to complete and layout to stabilize.
Returns ​
Promise<void>
Promise that resolves when all operations are complete
Remarks ​
This method waits for all queued operations (data loading, layout changes, algorithm execution) to complete. Use this before taking screenshots, exporting data, or performing actions that require the graph to be stable.
The method returns when:
- All queued operations have completed
- The operation queue is empty
Since ​
1.0.0
See ​
- zoomToFit to zoom after settling
- captureScreenshot for capturing stable views
Example ​
// Wait for layout to settle before zooming
await graph.addNodes(nodes);
await graph.addEdges(edges);
await graph.waitForSettled();
graph.zoomToFit();
// Wait before taking a screenshot
await graph.setLayout('circular');
await graph.waitForSettled();
const screenshot = await graph.captureScreenshot();
// Chain operations with settle
await graph.runAlgorithm('graphty', 'pagerank');
await graph.waitForSettled();
console.log('Algorithm complete, results available');worldToScreen() ​
worldToScreen(
worldPos):object
Defined in: graphty-element/src/Graph.ts:2163
Convert 3D world coordinates to 2D screen coordinates.
Parameters ​
worldPos ​
World position to convert
x ​
number
X coordinate in world space
y ​
number
Y coordinate in world space
z ​
number
Z coordinate in world space
Returns ​
object
Screen coordinates
x ​
x:
number
y ​
y:
number
zoomToFit() ​
zoomToFit():
void
Defined in: graphty-element/src/Graph.ts:1565
Zoom the camera to fit all nodes in view.
Returns ​
void
Remarks ​
This operation executes immediately and does not go through the operation queue. It may race with queued camera updates.
For better coordination, consider using batchOperations.
Since ​
1.0.0
See ​
- waitForSettled to wait for layout before zooming
- setCameraState for manual camera control
Example ​
// Zoom to fit after data loads
await graph.addNodes(nodes);
await graph.waitForSettled();
graph.zoomToFit();
// Zoom to fit within batch operations
await graph.batchOperations(async () => {
await graph.setStyleTemplate({graph: {twoD: true}});
graph.zoomToFit(); // Will execute after style change
});