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: