JavaScript API Reference
Complete API reference for the Graph class.
Overview
The Graph class is the core orchestrator for programmatic graph manipulation. Access it via the .graph property on the Web Component:
typescript
const element = document.querySelector('graphty-element');
const graph = element.graph;TIP
For usage patterns and examples, see the JavaScript API Guide.
Core Methods
Data Management
| Method | Parameters | Returns | Description |
|---|---|---|---|
addNodes(nodes) | NodeData[] | Promise<void> | Add nodes to the graph |
addEdges(edges) | EdgeData[] | Promise<void> | Add edges to the graph |
removeNodes(ids) | string[] | Promise<void> | Remove nodes by ID |
updateNodes(updates) | NodeUpdate[] | Promise<void> | Update node properties |
getNode(id) | string | Node | undefined | Get node by ID |
getNodes() | - | Node[] | Get all nodes |
getEdges() | - | Edge[] | Get all edges |
clear() | - | Promise<void> | Remove all data |
Selection
| Method | Parameters | Returns | Description |
|---|---|---|---|
selectNode(id) | string | void | Select a node |
deselectNode() | - | void | Clear selection |
getSelectedNode() | - | Node | null | Get selected node |
Layout
| Method | Parameters | Returns | Description |
|---|---|---|---|
setLayout(type, options?) | string, object | void | Set layout algorithm |
waitForSettled() | - | Promise<void> | Wait for layout to stabilize |
isSettled() | - | boolean | Check if layout is stable |
Algorithms
| Method | Parameters | Returns | Description |
|---|---|---|---|
runAlgorithm(namespace, type) | string, string | Promise<AlgorithmResult> | Run an algorithm |
applySuggestedStyles(id) | string | void | Apply algorithm visualization |
Camera Control
| Method | Parameters | Returns | Description |
|---|---|---|---|
zoomToFit() | - | void | Fit all nodes in view |
getCameraState() | - | CameraState | Get camera state |
setCameraState(state, options?) | CameraState, CameraAnimationOptions | Promise<void> | Set camera state |
setCameraPosition(pos) | {x, y, z} | void | Set camera position |
setCameraTarget(target) | {x, y, z} | void | Set camera target |
Styling
| Method | Parameters | Returns | Description |
|---|---|---|---|
addStyleLayer(layer) | StyleLayer | void | Add a style layer |
removeStyleLayer(id) | string | void | Remove a style layer |
clearStyleLayers() | - | void | Remove all style layers |
Events
| Method | Parameters | Returns | Description |
|---|---|---|---|
on(event, handler) | string, Function | void | Subscribe to events |
off(event, handler) | string, Function | void | Unsubscribe from events |
Batch Operations
| Method | Parameters | Returns | Description |
|---|---|---|---|
batchOperations(fn) | async Function | Promise<void> | Batch multiple operations |
Manager Classes
The Graph class exposes manager instances for advanced control:
StyleManager
typescript
graph.styleManager.addLayer({ selector: '*', styles: { node: { color: '#ff0000' } } });
graph.styleManager.removeLayer(layerId);
graph.styleManager.clearLayers();DataManager
typescript
await graph.dataManager.loadFromUrl(url);
await graph.dataManager.addNodes(nodes);
await graph.dataManager.clear();LayoutManager
typescript
graph.layoutManager.setLayout('ngraph', options);
await graph.layoutManager.waitForSettled();AlgorithmManager
typescript
await graph.algorithmManager.run('graphty', 'degree');
graph.algorithmManager.applySuggestedStyles('graphty:degree');Data Types
NodeData
typescript
interface NodeData {
id: string;
label?: string;
[key: string]: unknown;
}EdgeData
typescript
interface EdgeData {
source: string;
target: string;
weight?: number;
[key: string]: unknown;
}CameraState
typescript
interface CameraState {
position: { x: number; y: number; z: number };
target: { x: number; y: number; z: number };
up: { x: number; y: number; z: number };
}StyleLayer
typescript
interface StyleLayer {
id?: string;
selector: string;
priority?: number;
styles: {
node?: NodeStyle;
edge?: EdgeStyle;
label?: LabelStyle;
};
}Generated Reference
For complete type definitions and detailed API documentation:
- Graph Class - Full TypeDoc reference
- Node Class - Node type reference
- Edge Class - Edge type reference
- Managers - Manager class references
Extension Classes
For creating custom extensions:
- LayoutEngine - Custom layout base class
- Algorithm - Custom algorithm base class
- DataSource - Custom data source base class
Related
- JavaScript API Guide - Usage patterns and examples
- Web Component API Reference - Declarative Web Component API