ngx-cytoscapejs
This library is a wrapper for Cytoscape.js to be used from any Angular 13+ application.
- Rendering of Cytoscape.js and CX graphs
- Automatic rerendering on graph data changes
- Automatic graph size adjustment on window resize
Table of contents
Dependencies
ngx-cytoscapejs depends on Angular, Cytoscape.js, lodash, cx2js and cxVizConverter.
ngx-cytoscapejs | Angular | Cytoscape.js | lodash | cx2js | cxVizConverter |
---|---|---|---|---|---|
0.3.0 | 13.x.x | 3.x.x | 4.x.x | 0.6.x | 0.1.x |
Installation
npm install --save ngx-cytoscapejs
Usage
Import the CytoscapejsModule and add it to your module:
import { NgModule } from '@angular/core';
import { CytoscapejsModule } from 'ngx-cytoscapejs';
@NgModule({
declarations: [...],
imports: [CytoscapejsModule],
providers: [...],
bootstrap: [...],
})
export class AppModule {}
Add the cytoscapejs directive to your component's HTML:
<cytoscapejs
[cytoscapeOptions]="cytoscapeOptions"
[autoFit]="autoFit"
(coreChanged)="coreChanged($event)"
></cytoscapejs>
Configure the directive in your component:
import { Core, CytoscapeOptions } from 'cytoscape';
import { CxConverter } from 'ngx-cytoscapejs';
export class AppComponent {
cytoscapeOptions: CytoscapeOptions = {...};
autoFit: boolean = true;
coreChanged(core: Core): void {
// do something with the core
}
}
The component will take up 100% of the parent's height and width.
API
For a graph to render you have to provide either cytoscapeOptions
or cxData
. The remaining inputs are optional.
Inputs
Name | Type | Default | Description |
---|---|---|---|
cytoscapeOptions |
CytoscapeOptions | Your Cytoscape graph data. You don't have to provide the container property as it will be overwritten with the component's referenced DOM element. | |
autoFit |
boolean | true | When set to true the graph will be fit every time the browser window is resized. |
cxData |
any | Your CX graph data. The data is converted using the the converters provided in the cxConverters input. |
|
cxConverters |
CxConverter[] | [cx2js, cxVizConverter] | Allows customizing the converters used by the library to convert the CX data. The library tries to convert the input data in the given order and renders the first successful conversion result. |
Outputs
Name | Type | Description |
---|---|---|
coreChanged |
Core | Emits a Core every time a new core is created. |
Enums
CxConverter
Value | Description |
---|---|
cx2js | Use cx2js for CX conversion |
cxVizConverter | Use cxVizConverter for CX conversion |
Getting help
If you have questions, concerns, bug reports, etc., please file an issue in this repository's Issue Tracker.
Roadmap
- Unit tests
- Angular CLI schematics