JavaScript diagramming library
Clone or download
Pull request Compare This branch is 27 commits behind clientIO:master.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
css dia.ElementView: apply vector-effect: non-scaling-stroke to nodes ins… Jan 26, 2018
demo update dependencies (clientIO#973) Oct 3, 2018
dist Release v2.1.4 (clientIO#920) Aug 1, 2018
docs dia.CellView: attributes merging order, util.ParseDOMJSON: multiple g… Oct 10, 2018
plugins dia.ElementView: add `element:magnet:pointerclick`, `element:magnet:p… Oct 1, 2018
scripts More improvements to publish script. Jun 14, 2016
src mvc.View: prevent multiple onRender() calls (clientIO#977) Oct 10, 2018
test mvc.View: prevent multiple onRender() calls (clientIO#977) Oct 10, 2018
tutorials Tutorials: improve connecting by dropping tutorial (clientIO#905) Jun 20, 2018
types dia.Paper: allow relative dimensions (clientIO#970) Oct 1, 2018
wrappers RAP-797: All classes used internally now given joint- class name pref… May 31, 2016
.bowerrc refactorize tests Apr 14, 2015
.csslintrc Added CSS linting Apr 11, 2016
.editorconfig editorconfig - consistent coding style across IDEs (clientIO#919) Aug 1, 2018
.eslintrc.js Various minor fixes (clientIO#949) Sep 7, 2018
.gitignore dia.Link: router() & connection(), link.presentation docs, custom rou… Mar 19, 2018
.travis.yml update Jul 13, 2018
CHANGELOG Release v2.1.4 (clientIO#920) Aug 1, 2018
Gruntfile.js update dependencies (clientIO#973) Oct 3, 2018
LICENSE first commit in version 0.6 Jul 19, 2013
Makefile Migrated to eslint from jscs (clientIO#362) Jul 29, 2016
README.md update contributors (clientIO#682) Sep 25, 2017
bower.json Unit tests: Update QUnit to 2.4.0 (clientIO#675) Sep 19, 2017
index.js Use minified joint build file in index Jun 13, 2016
package-lock.json update dependencies (clientIO#973) Oct 3, 2018
package.json update dependencies (clientIO#973) Oct 3, 2018

README.md

JointJS - JavaScript diagramming library

Build Status

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.

Features

  • 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

Supported browsers

Only the good ones (those that support SVG):

  • Latest Google Chrome (including mobile)
  • Latest Firefox
  • Safari (including mobile)
  • IE 9+

Development Environment

If you want to work on JointJS locally, use the following guidelines to get started.

Dependencies

Make sure you have the following dependencies installed on your system:

Setup

Clone this git repository:

git clone https://github.com/clientIO/joint.git

Change into the joint directory:

cd joint

Run installation

npm install
bower install

This will install all npm and bower dependencies as well as run a full build.

Tests

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 test:code-style

Code Coverage

To output a code coverage report in lcov format for all unit tests:

grunt test:coverage --reporter="lcov"

The output will be saved to a new file named coverage.info at the root of the project directory.

Building Distribution Files

The dist directory contains pre-built distribution files. To re-build them, run the following:

grunt dist

Documentation

The source for the JointJS documentation (plus geometry and Vectorizer libraries) are included in this repository; see the docs directory. The documentation can be built into stand-alone HTML documents like this:

grunt build:docs

The output of the above command can be found at build/docs.

License

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

Contributors