cytoscape-dagre
Description
The Dagre layout for DAGs and trees for Cytoscape.js (demo)
The dagre
layout organises the graph using a DAG (directed acyclic graph) system, written by Chris Pettitt. It is especially suitable for DAGs and trees. For more information, please refer to Dagre's documentation.
Dependencies
- Cytoscape.js ^3.2.0
- Dagre ^0.8.2
Usage instructions
Download the library:
- via npm:
npm install cytoscape-dagre
, - via bower:
bower install cytoscape-dagre
, or - via direct download in the repository (probably from a tag).
Import the library as appropriate for your project:
ES import:
import cytoscape from 'cytoscape';
import dagre from 'cytoscape-dagre';
cytoscape.use( dagre );
CommonJS require:
let cytoscape = require('cytoscape');
let dagre = require('cytoscape-dagre');
cytoscape.use( dagre );
AMD:
require(['cytoscape', 'cytoscape-dagre'], function( cytoscape, dagre ){
dagre( cytoscape );
});
Plain HTML/JS has the extension registered for you automatically, because no require()
is needed.
API
Call the layout, e.g. cy.layout({ name: 'dagre', ... }).run()
, with options:
var defaults = {
nodeSep: undefined,
edgeSep: undefined,
rankSep: undefined,
rankDir: undefined,
align: undefined,
acyclicer: undefined,
ranker: undefined,
minLen: function( edge ){ return 1; },
edgeWeight: function( edge ){ return 1; },
fit: true,
padding: 30,
spacingFactor: undefined,
nodeDimensionsIncludeLabels: false,
animate: false,
animateFilter: function( node, i ){ return true; },
animationDuration: 500,
animationEasing: undefined,
boundingBox: undefined,
transform: function( node, pos ){ return pos; },
ready: function(){},
sort: undefined,
stop: function(){}
};
Build targets
npm run test
: Run Mocha tests in ./test
npm run build
: Build ./src/**
into cytoscape-dagre.js
npm run watch
: Automatically build on changes with live reloading (N.b. you must already have an HTTP server running)npm run dev
: Automatically build on changes with live reloading with webpack dev servernpm run lint
: Run eslint on the source
N.b. all builds use babel, so modern ES features can be used in the src
.
Publishing instructions
This project is set up to automatically be published to npm and bower. To publish:
- Build the extension :
npm run build:release
- Commit the build :
git commit -am "Build for release"
- Bump the version number and tag:
npm version major|minor|patch
- Push to origin:
git push && git push --tags
- Publish to npm:
npm publish .
- If publishing to bower for the first time, you'll need to run
bower register cytoscape-dagre https://github.com/cytoscape/cytoscape.js-dagre.git
- Make a new release for Zenodo.