Home
Softono
c

clientio

Professional software vendor delivering innovative solutions on the Softono platform. Specialized in both open-source and proprietary software development.

Total Products
2

Software by clientio

joint
Open Source

joint

# JointJS - JavaScript diagramming library powering exceptional UIs [![Build Status](https://app.travis-ci.com/clientIO/joint.svg?token=YC3doXGarvYwgzfqe9zy&branch=master)](https://app.travis-ci.com/clientIO/joint) [![Total Discussion](https://img.shields.io/github/discussions/badges/shields)](https://github.com/clientIO/joint/discussions) [![NPM Version](https://img.shields.io/npm/v/jointjs)](https://www.npmjs.com/package/jointjs) [![NPM License](https://img.shields.io/npm/l/jointjs?color=blue)](https://github.com/clientIO/joint/blob/master/LICENSE) [JointJS](https://jointjs.com) is a tested and proven *JavaScript*/*Typescript* diagramming library that helps developers and companies of any size build visual and No-Code/Low-Code applications faster and with confidence. It’s a flexible tool from which a wide range of UIs can be created (interactive diagramming applications, drawing tools, data visualizations, UIs for monitoring systems, and many more). It can become the foundational layer of your next application and help you bring your idea to market in days, not months or years. ![Use Cases](https://user-images.githubusercontent.com/3967880/200360293-808f148c-32af-4f46-bec1-b4ae4e1592a0.jpg) Further **information**, **examples** and **documentation** can be found at [jointjs.com](https://jointjs.com). :1234: Get started with [tutorials](https://docs.jointjs.com). :bulb: To ask a question, share feedback, or engage in a discussion with other community members, visit our [GitHub discussions](https://github.com/clientIO/joint/discussions). :pen: More examples are available on [CodePen](https://codepen.io/jointjs). :book: Check out our [mind-map documentation](https://resources.jointjs.com/mmap/joint.html). ## Features * essential 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 * connecting diagram elements with links or links with links * customizable links, their arrowheads and labels * configurable link shapes (anchors, connection points, vertices, routers, connectors) * custom element properties and data * import/export from/to JSON format * customizable element ports (look and position, distributed around shapes or manually positioned) * rich graph API (traversal, dfs, bfs, find neighbors, predecessors, elements at point, ...) * granular interactivity * hierarchical diagrams (containers, embedded elements, child-parent relationships) * element & link tools (buttons, status icons, tools to change the shape of links, ...) * highlighters (provide visual emphasis to your elements) * automatic layouts (arrange the elements and links automatically) * highly event driven (react on any event that happens inside the diagram) * zoom in/out * touch support * MVC architecture * SVG based * ... a lot more ## Supported browsers * Latest Google Chrome (including mobile) * Latest Firefox * Latest Safari (including mobile) * Latest Microsoft's Edge * Latest Opera ## 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: * [Node.js](https://nodejs.org/) * [grunt-cli](http://gruntjs.com/using-the-cli) * [git](https://git-scm.com/) * [yarn](https://yarnpkg.com/getting-started/install) The installation requires Node version >= 20.19.3, to avoid syntax errors during installation. Make sure that you are using Yarn version >= 2.0.0, so that you have access to [Yarn workspace ranges](https://yarnpkg.com/features/workspaces#workspace-ranges-workspace) functionality. If you are using [Volta](https://volta.sh/), it will automatically read this restriction from `package.json`. ### Setup Clone this git repository: ```bash git clone https://github.com/clientIO/joint.git ``` Navigate to the `joint` directory: ```bash cd joint ``` Install all dependencies: ```bash yarn install ``` Generate distribution files from the source code: ```bash yarn run dist ``` You are now ready to browse our example applications, which combine functionality from multiple JointJS packages: ```bash cd examples ``` Refer to each application's `README.md` file for additional instructions. You can also browse the demo applications of our JointJS Core package: ```bash cd packages/joint-core/demo ``` Most demos can be run by simply opening the `index.html` file in your browser. Some demos have additional instructions, which you can find in their respective `README.md` files. ### Tests To run all tests: ```bash yarn run test ``` To run only the server-side tests: ```bash yarn run test-server ``` To run only the client-side tests: ```bash yarn run test-client ``` To run only TypeScript tests: ```bash yarn run test-ts ``` ### Lint To check for linting errors in `src` and `types` directories: ```bash yarn run lint ``` To auto fix errors, run eslint for `src` and `types` directories: ```bash yarn run lint-fix ``` ### Code Coverage Reports To output a code coverage report in HTML: ```bash yarn run test-coverage ``` To output a code coverage report in [lcov format](http://ltp.sourceforge.net/coverage/lcov/geninfo.1.php): ```bash yarn run test-coverage-lcov ``` The output for all unit tests will be saved in the `packages/joint-core/coverage` directory. ## Contributors <a href="https://github.com/clientIO/joint/graphs/contributors"> <img src="https://contrib.rocks/image?repo=clientIO/joint" /> </a> ## License The *JointJS* library is licensed under the [Mozilla Public License 2.0](https://github.com/clientIO/joint/blob/master/LICENSE). Copyright © 2013-2026 client IO

Diagramming & Flowcharts
5.3K Github Stars
joint-demos
Open Source

joint-demos

# JointJS Demos & Boilerplates ![Unique Demos](https://img.shields.io/github/directory-file-count/clientio/joint-demos?type=dir&label=Unique%20Demos) Welcome to the JointJS demos repository! This collection contains community examples as well as JointJS+ commercial applications showcasing the powerful features and capabilities of JointJS. Whether you're building flowcharts, org charts, BPMN diagrams, network diagrams, or any other type of interactive diagram, you'll find a demo here to help you get started. You can find a preview of all the demos on our website at [https://www.jointjs.com/demos](https://www.jointjs.com/demos). ## 🚀 Quick Start ### Using the Joint CLI (Recommended) The easiest way to download and run individual demos is using the official `@joint/cli` tool: ```bash # Install the CLI globally npm install -g @joint/cli # List all available demos joint list # Download a specific demo joint download <demo-name> # Example: Download the Kanban demo joint download kanban/js ``` For more information, visit the [@joint/cli npm package](https://www.npmjs.com/package/@joint/cli). After the download is complete, navigate to the demo directory and install dependencies: ```bash npm install ``` > [!IMPORTANT] > For JointJS+ demos, you must have a valid JointJS+ token configured in your `.npmrc` file to access the private npm registry and install dependencies. See the [Obtaining Your JointJS+ Token](#-obtaining-your-jointjs-token) section below for instructions on how to get and configure your token. Then start the demo according to the instructions in the demo's README file (usually `npm run dev` or `npm start`). ### Manual Installation Alternatively, you can clone this repository and navigate to any demo directory: ```bash # Clone the repository git clone https://github.com/clientIO/joint-demos.git cd joint-demos # Navigate to a demo (e.g., flowchart) cd flowchart/js # Install dependencies npm install # Run the demo npm run dev ``` ## 🔑 Using JointJS+ NPM Repository JointJS+ demos require a valid license token to access the npm registry. You can get it by having a JointJS+ license or by starting a [free trial](https://www.jointjs.com/free-trial). All demos have `.npmrc` files configured to use the private registry at `https://npm.jointjs.com/`, which requires authentication. By default, the `.npmrc` file looks like this: ``` @joint:registry=https://npm.jointjs.com always-auth=true //npm.jointjs.com/:_authToken=${JOINTJS_NPM_TOKEN} ``` ### How to obtain access token If you are a trial user, you received your access token during the trial sign-up process. If you are a customer, log in to the customer portal at https://my.jointjs.com to obtain your access token. Learn more about our [private npm registry here.](https://docs.jointjs.com/learn/help-center/npm-registry) ### Set the token as an environment variable We are using an environment variable `JOINTJS_NPM_TOKEN` to securely access your token. You need to set this environment variable with your JointJS+ token before installing dependencies. You can define the `JOINTJS_NPM_TOKEN` environment variable in your terminal or CI environment in the following way: **macOS / Linux**: ```sh export JOINTJS_NPM_TOKEN="jjs-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ``` **Windows (PowerShell)**: ```sh $env:JOINTJS_NPM_TOKEN="jjs-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ``` ## 🛠️ Root Scripts After cloning the repository, install the root dev dependencies once: ```bash npm install ``` The following scripts are then available from the repository root: | Script | Command | Description | |---|---|---| | `lint` | `npm run lint` | Lint all JS/TS files using the root ESLint config | | `build` | `npm run build` | Build all demos into `_site/` (stops on first failure) | | `screenshot` | `npm run screenshot` | Capture screenshots for demos that don't have one yet | > [!NOTE] > `build` require Bash. On Windows, run them from Git Bash or WSL. > > `screenshot` require Playwright's Chromium browser. Install it once with: > ```bash > npx playwright install chromium > ``` ## 🤝 Resources - [Documentation](https://docs.jointjs.com/) - [Website](https://www.jointjs.com) - [Support](https://github.com/clientIO/joint/discussions) - [Report an Issue](https://https://github.com/clientIO/joint/issues) **Packages** - [@joint/core on npm](https://www.npmjs.com/package/@joint/core) - [@joint/cli on npm](https://www.npmjs.com/package/@joint/cli) **Source Code** - [JointJS on GitHub](https://github.com/clientIO/joint) - [Documentation on GitHub](https://github.com/clientIO/joint-docs)

Diagramming & Flowcharts Low-Code & No-Code Dev
19 Github Stars