Skip to content

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

MethodParametersReturnsDescription
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)stringNode | undefinedGet node by ID
getNodes()-Node[]Get all nodes
getEdges()-Edge[]Get all edges
clear()-Promise<void>Remove all data

Selection

MethodParametersReturnsDescription
selectNode(id)stringvoidSelect a node
deselectNode()-voidClear selection
getSelectedNode()-Node | nullGet selected node

Layout

MethodParametersReturnsDescription
setLayout(type, options?)string, objectvoidSet layout algorithm
waitForSettled()-Promise<void>Wait for layout to stabilize
isSettled()-booleanCheck if layout is stable

Algorithms

MethodParametersReturnsDescription
runAlgorithm(namespace, type)string, stringPromise<AlgorithmResult>Run an algorithm
applySuggestedStyles(id)stringvoidApply algorithm visualization

Camera Control

MethodParametersReturnsDescription
zoomToFit()-voidFit all nodes in view
getCameraState()-CameraStateGet camera state
setCameraState(state, options?)CameraState, CameraAnimationOptionsPromise<void>Set camera state
setCameraPosition(pos){x, y, z}voidSet camera position
setCameraTarget(target){x, y, z}voidSet camera target

Styling

MethodParametersReturnsDescription
addStyleLayer(layer)StyleLayervoidAdd a style layer
removeStyleLayer(id)stringvoidRemove a style layer
clearStyleLayers()-voidRemove all style layers

Events

MethodParametersReturnsDescription
on(event, handler)string, FunctionvoidSubscribe to events
off(event, handler)string, FunctionvoidUnsubscribe from events

Batch Operations

MethodParametersReturnsDescription
batchOperations(fn)async FunctionPromise<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:

Extension Classes

For creating custom extensions: