JavaScript diagramming library
JavaScript HTML CSS Other
Pull request Compare This branch is 7 commits behind clientIO:master.
Latest commit 3aac5bf Nov 15, 2016 @kumilingus kumilingus committed with vtalas ERD demo: improve link performance (#466)
joint.util.shapePerimeterConnectionPoint alternative
Permalink
Failed to load latest commit information.
css ForeignObject body: ensure position static. Oct 5, 2016
demo ERD demo: improve link performance (#466) Nov 15, 2016
dist Release v1.0.2 (#450) Oct 27, 2016
docs Docs: link attrs source/target (#453) Nov 4, 2016
plugins basic.TextView: fix the svgforeignobject detection (#462) Nov 11, 2016
scripts More improvements to publish script. Jun 14, 2016
src Vectorizer: fix convertPolylineToPathData when polyline is an SVGElem… ( Oct 21, 2016
test Vectorizer: fix convertPolylineToPathData when polyline is an SVGElem… ( Oct 21, 2016
tutorials Tutorials: fix multiplelinks tutorial (lodash chaining) Oct 26, 2016
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
.eslintrc.js Migrated to eslint from jscs (#362) Jul 29, 2016
.gitignore Fixes for test coverage task Apr 11, 2016
.travis.yml Migrated to eslint from jscs (#362) Jul 29, 2016
CHANGELOG Release v1.0.2 (#450) Oct 27, 2016
Gruntfile.js Demos: added demos from jointjs.com (#399) Sep 12, 2016
LICENSE first commit in version 0.6 Jul 19, 2013
Makefile Migrated to eslint from jscs (#362) Jul 29, 2016
README.md Removed bitdeli badge, updated contributors Aug 11, 2016
bower.json exclude everything but dist folder in bower file (#434) Oct 5, 2016
index.js Use minified joint build file in index Jun 13, 2016
package.json Release v1.0.2 (#450) Oct 27, 2016
yarn.lock add yarn.lock (#443) Oct 21, 2016

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

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