JointJS is a JavaScript diagramming library. It can be used to create either static diagrams or, and more importantly, fully interactive diagramming tools and application builders.
Please see http://jointjs.com for more information, demos and documentation.
- basic diagram elements (rect, circle, ellipse, text, image, path)
- ready-to-use diagram elements of well-known diagrams (ERD, Org chart, FSA, UML, PN, DEVS, ...)
- custom diagram elements based on SVG or programmatically rendered
- interactive elements and links
- connecting diagram elements with links
- customizable links, their arrowheads and labels
- links smoothing (bezier interpolation)
- magnets (link connection points) can be placed basically anywhere
- hierarchical diagrams
- serialization/deserialization to/from JSON format
- highly event driven - you can react on any event that happens inside the paper
- zoom in/out
- touch support
- plugin awareness
- MVC architecture
- ... a lot more
Only the good ones (those that support SVG):
- Latest Google Chrome (including mobile)
- Latest Firefox
- Safari (including mobile)
- IE 9+
Before running tests, be sure to run a full build:
grunt all
To run all tests:
grunt test
To run only the server-side tests:
grunt test:server
To run only the client-side tests:
grunt test:client
To run code style checks:
grunt jscs
It is possible to generate code coverage reports using the existing qunit tests. For example, to output the coverage report in lcov format for the joint unit tests:
grunt qunit:joint --reporter lcov --coverage
And for all unit tests:
grunt qunit:all --reporter lcov --coverage
By default, the output will be saved to coverage.info
at the root of the project directory. You can change the output file like this:
grunt qunit:joint --reporter lcov --output customfilename.info --coverage
JointJS library is licensed under the Mozilla Public License, v. 2.0. Please see the LICENSE file for the full license.
Copyright (c) 2013 client IO