gojs
Version:
Interactive diagrams, charts, and graphs, such as trees, flowcharts, orgcharts, UML, BPMN, or business diagrams
437 lines (399 loc) • 20.3 kB
HTML
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, viewport-fit=cover"/>
<meta name="description" content="GoJS is a JavaScript library for building interactive diagrams and graphs on the web. Build apps
with flowcharts, org charts, BPMN, UML, modeling, and other visual graph types. Interactivity, data-binding, layouts and
many node and link concepts are built-in to GoJS."/><meta name="keywords" content="JavaScript diagram graph chart drawing visualization modeling component library flowchart orgchart
network BPMN UML ER editor"/><link rel="stylesheet" href="./assets/css/style.css"/>
<!-- Copyright 1998-2023 by Northwoods Software Corporation. --> <title> GoJS - Build Interactive Diagrams for the Web </title>
</head>
<body>
<nav id="navTop" class="w-full z-30 top-0 text-white bg-nwoods-primary">
<div class="w-full container max-w-screen-lg mx-auto flex flex-wrap sm:flex-nowrap items-center justify-between mt-0 py-2">
<div class="md:pl-4">
<a class="text-white hover:text-white no-underline hover:no-underline
font-bold text-2xl lg:text-4xl rounded-lg hover:bg-nwoods-secondary opacity-0" href=".">
<h1 class="my-0 p-1 opacity-0">GoJS</h1>
</a>
</div>
<button id="topnavButton" class="rounded-lg sm:hidden focus:outline-none focus:ring" aria-label="Navigation">
<svg fill="currentColor" viewBox="0 0 20 20" class="w-6 h-6">
<path id="topnavOpen" fill-rule="evenodd" d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM9 15a1 1 0 011-1h6a1 1 0 110 2h-6a1 1 0 01-1-1z" clip-rule="evenodd"></path>
<path id="topnavClosed" class="hidden" fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"></path>
</svg>
</button>
<div id="topnavList" class="hidden sm:block items-center w-auto mt-0 text-white p-0 z-20">
<ul class="list-reset list-none font-semibold flex justify-end flex-wrap sm:flex-nowrap items-center px-0 pb-0">
<li class="p-1 sm:p-0"><a class="topnav-link" href="./learn/">Learn</a></li>
<li class="p-1 sm:p-0"><a class="topnav-link" href="./samples/">Samples</a></li>
<li class="p-1 sm:p-0"><a class="topnav-link" href="./intro/">Intro</a></li>
<li class="p-1 sm:p-0"><a class="topnav-link" href="./api/">API</a></li>
<li class="p-1 sm:p-0"><a class="topnav-link" href="https://www.nwoods.com/products/register.html">Register</a></li>
<li class="p-1 sm:p-0"><a class="topnav-link" href="./download.html">Download</a></li>
<li class="p-1 sm:p-0"><a class="topnav-link" href="https://forum.nwoods.com/c/gojs/11">Forum</a></li>
<li class="p-1 sm:p-0"><a class="topnav-link" href="https://www.nwoods.com/contact.html"
target="_blank" rel="noopener" onclick="getOutboundLink('https://www.nwoods.com/contact.html', 'contact');">Contact</a></li>
<li class="p-1 sm:p-0"><a class="topnav-link" href="https://www.nwoods.com/sales/index.html"
target="_blank" rel="noopener" onclick="getOutboundLink('https://www.nwoods.com/sales/index.html', 'buy');">Buy</a></li>
</ul>
</div>
</div>
<hr class="border-b border-gray-600 opacity-50 my-0 py-0" />
</nav>
<div class="text-white bg-nwoods-primary">
<div class="container max-w-screen-lg px-3 mx-auto flex flex-wrap flex-col md:flex-row items-center">
<div class="flex flex-col w-full md:w-2/5 justify-center items-start text-center md:text-left">
<h1 class="my-4 text-5xl font-bold leading-tight">GoJS</h1>
<p class="leading-normal tracking-normal text-2xl mb-2">A Web Framework for Rapidly Building Interactive Diagrams
</p>
<div class="mx-auto">
<a class="hover:shadow-none rounded inline-block mx-auto lg:mr-0 lg:ml-4 text-gray-800 hover:text-white hover:bg-nwoods-secondary bg-white font-bold my-6 p-4 shadow-lg"
href="./samples"> View Samples</a>
<a class="hover:shadow-none rounded inline-block mx-auto lg:mr-0 lg:ml-4 text-gray-800 hover:text-white hover:bg-nwoods-secondary bg-white font-bold my-6 p-4 shadow-lg"
href="./learn"> Take the Tutorial</a>
</div>
</div>
<div class="w-full md:w-3/5">
<img class="md:w-full w-4/5 z-50 mx-auto" src="./assets/images/banner.png" alt="Diagram">
</div>
</div>
</div>
<section class="bg-white border-b pb-8 text-gray-800">
<div class="container max-w-5xl mx-auto mb-8">
<div class="text-center pt-6">
<h2 class="text-lg text-gray-800">January 2023: GoJS 2.3 Released – Featuring a new SVG rendering context.
See the <a href="./changelog.html">changelog</a> for more details.</h2>
</div>
<div class="p-6">
<h2 class="my-3 py-3 text-center">
Build Diagrams for the Web in JavaScript and TypeScript
</h2>
</div>
<div class="grid grid-cols-2 md:grid-cols-4">
<div class="p-2">
<a class="text-nwoods-secondary" href="./samples/flowchart.html"><img class="border" width="452" height="360"
src="assets/images/site1.png" alt="Flowchart">
<h3>Flowcharts</h3>
</a>
<div>Build interactive flowcharts or flow diagrams. Let your users build, modify, and save Diagrams with JSON
model output.</div>
</div>
<div class="p-2">
<a class="text-nwoods-secondary" href="./samples/stateChart.html"><img class="border" width="452" height="360"
src="assets/images/site6.png" alt="State Chart" />
<h3>State Charts</h3>
</a>
<div>Visualize State Charts and other behavior diagrams.
Create diagrams with live updates to monitor state, or interactive diagrams for planning.</div>
</div>
<div class="p-2">
<a class="text-nwoods-secondary" href="./samples/sankey.html"><img class="border" width="452" height="360"
src="assets/images/site2.png" alt="Sankey Diagram" />
<h3>Sankey Diagrams</h3>
</a>
<div>GoJS allows considerable customization of Links and Nodes to build all kinds of diagrams. Visualize flow,
or connect pipes.</div>
</div>
<div class="p-2">
<a class="text-nwoods-secondary" href="./samples/genogram.html"><img class="border" width="452" height="360"
src="assets/images/site5.png" alt="Leaflet Map" />
<h3>Genogram Diagrams</h3>
</a>
<div>Create Genogram and Medical diagrams, or editable family trees with collapsible levels.</div>
</div>
<div class="p-2">
<a class="text-nwoods-secondary" href="./samples/orgChartEditor.html"><img class="border" width="452"
height="360" src="assets/images/site3.png" alt="Org Chart" />
<h3>Org Charts</h3>
</a>
<div>Create classic org charts for viewing or editing. Automatic layouts make different visualization options
easy.</div>
</div>
<div class="p-2">
<a class="text-nwoods-secondary" href="./samples/dynamicPorts.html"><img class="border" width="452" height="360"
src="assets/images/site7.png" alt="Dynamic Ports Demo" />
<h3>Dynamic Ports</h3>
</a>
<div>Dynamically add ports and custom link routing. Use data-bindings to save and load routes within the Model
JSON.</div>
</div>
<div class="p-2">
<a class="text-nwoods-secondary" href="./samples/productionProcess.html"><img class="border" width="452"
height="360" src="assets/images/site4.png" alt="Data Visualization" />
<h3>Industrial Processes</h3>
</a>
<div>Model industrial processes, workflows, SCADA diagrams and more. Permissions and validation make it easy to
add rules and constraints when your users build diagrams.</div>
</div>
<div class="p-2">
<a class="text-nwoods-secondary" href="./samples/regrouping.html"><img class="border" width="452" height="360"
src="assets/images/site8.png" alt="Regrouping Demo" />
<h3>Dynamic Grouping</h3>
</a>
<div>Use groups as containers and subgraphs, with group members bound by their own rules and layouts.</div>
</div>
</div>
<div class="p-6">
<h2 class="my-3 py-3 border-t text-center">
Built-in features and interactivity to develop your projects faster
</h2>
</div>
<div class="feature-grid py-6 px-2 lg:px-0 grid grid-cols-2 lg:grid-cols-3 gap-x-12">
<div>
<h3>Automatic Layouts</h3>
<p>GoJS includes several built-in <a href="./intro/layouts.html">layouts</a>, and many samples of custom layouts
to be used or adapted.</p>
</div>
<div>
<h3>Node and Link Templates</h3>
<p>Quickly set the look for your diagram parts while keeping appearance separate from data.</p>
</div>
<div>
<h3>Data Binding</h3>
<p>GoJS models can automatically keep your data in sync with your display, and vice versa.</p>
</div>
<div>
<h3>Undo & Redo</h3>
<p>GoJS has built-in state management to record a history of Diagram and Model changes. Users can easily undo
and redo, and cancelled tool operations can be rolled back. This state can be inspected for futher
customization.</p>
</div>
<div>
<h3>Keyboard Shortcuts</h3>
<p>GoJS implements a number of common <a href="./intro/commands.html">keyboard commands</a> and gestures, which
can be customized.</p>
</div>
<div>
<h3>Subgraphs</h3>
<p>GoJS Groups provide subgraphs to apply different rules or layouts to their members.</p>
</div>
<div>
<h3>Extensible Tools</h3>
<p>GoJS input is routed through <a href="./intro/tools.html">tools</a> that can be customized and extended to
give your users the interaction they need.</p>
</div>
<div>
<h3>Customizable Events and Permissions</h3>
<p>Execute custom logic or notifications when users do certain actions or key presses, or disable different
interactions altogether.</p>
</div>
<div>
<h3>Context Menus and Tooltips</h3>
<p>GoJS has built-in Context Menu and tooltips, which can be extended in-canvas or with HTML.</p>
</div>
</div>
<div class="p-6 flex-wrap flex-col-reverse sm:flex-row">
<h2 class="mb-3 text-center">
Compatible with Modern Frameworks
</h2>
<span>
<a href="./intro/react.html"><img class="inline-block w-12" alt="react" src="assets/images/react-icon.svg"></a>
<a href="./intro/angular.html"><img class="inline-block w-12" alt="angular"
src="assets/images/angular-icon.svg"></a>
<a href="./samples/vue.html"><img class="inline-block w-12" alt="vue" src="assets/images/vue-icon.svg"></a>
</span>
<div>
<p>
We publish a React component, <strong><a
href="https://github.com/NorthwoodsSoftware/gojs-react">gojs-react</a></strong> to simplify React
integration,
and host a <a href="https://github.com/NorthwoodsSoftware/gojs-react-basic">React sample using GoJS called
<strong>gojs-react-basic</strong></a>.
See the <a href="./intro/react.html">GoJS with React introduction page</a> for more information.
</p>
</div>
<div>
<p>
We publish an Angular component, <strong><a
href="https://github.com/NorthwoodsSoftware/gojs-angular">gojs-angular</a></strong> to simplify Angular
integration,
and host a <a href="https://github.com/NorthwoodsSoftware/gojs-angular-basic">Angular sample using GoJS called
<strong>gojs-angular-basic</strong></a>.
See the <a href="./intro/angular.html">GoJS with Angular introduction page</a> for more information.
</p>
</div>
<div>
<p>
We have a <a href="./samples/vue.html">sample on using <strong>Vue.js</strong> with GoJS</a>.
</p>
</div>
</div>
<div class="flex flex-wrap">
<div class="w-5/6 sm:w-1/2 p-6">
<h2>Explore</h2>
<p>
Start from over 200 sample apps that demonstrate flowcharts, org charts, mind maps, UML diagrams, BPMN
diagrams, graph editors, data visualization, custom tools and layouts, and much more.
</p>
<div class="">
<a class="button bigger" href="./samples/index.html">View Interactive Samples</a>
</div>
</div>
<div class="w-full sm:w-1/2 p-6">
<h2>Learn</h2>
<p>
Get started with a step-by-step description of how to build a JavaScript diagram in HTML using GoJS and some
model data.
</p>
<div class="">
<a class="button bigger" href="./learn/index.html">Learn with GoJS Tutorials</a>
<a class="button bigger" href="https://www.youtube.com/channel/UC9We8EoX596-6XFjJDtZIDg">Watch Videos</a>
</div>
</div>
</div>
<div class="flex flex-wrap">
<div class="w-5/6 sm:w-1/2 p-6">
<h2>Download</h2>
<p>
Get a copy of the library and all of the samples, extensions, and documentation. Search the JavaScript code
and modify the samples to start your app.
</p>
<div class="">
<a class="button bigger" href="./download.html">Download</a>
<a class="button bigger" href="https://www.npmjs.com/package/gojs">Install via npm</a>
</div>
</div>
<div class="w-full sm:w-1/2 p-6">
<h2>Technical Introduction</h2>
<p>
Read our introduction for an overview of GoJS concepts and features, including hundreds of live interactive
examples embedded right in each page.
</p>
<div class="">
<a class="button bigger" href="./intro/index.html">Read the Introduction Pages</a>
</div>
</div>
</div>
<div class="flex flex-wrap">
<div class="w-5/6 sm:w-1/2 p-6">
<h2>Free Evaluation</h2>
<p>
Evaluate the full library without any limitations. Register for free support for a month to help build your
app.
</p>
<div class="">
<a class="button bigger" href="https://www.nwoods.com/products/register.html">Register for Support</a>
<a class="button bigger" href="https://www.nwoods.com/contact.html">Contact Us</a>
</div>
</div>
<div class="w-full sm:w-1/2 p-6">
<h2>API Documentation</h2>
<p>
Read our comprehensive documentation for an in-depth reference of the properties and methods of all of the
JavaScript classes.
</p>
<div class="">
<a class="button bigger" href="./api/index.html">View the API</a>
</div>
</div>
</div>
</div>
</section>
<div class="bg-nwoods-primary">
<section class="text-white container mx-auto text-center py-2">
<h3 class="my-4 text-2xl font-semibold tracking-wide">By Northwoods Software</h3>
</section>
</div>
<footer class="bg-nwoods-primary text-white">
<div class="container max-w-screen-lg mx-auto px-8">
<div class="w-full py-6">
<div class="max-w-screen-lg xl:max-w-screen-xl mx-auto px-4 sm:px-6 md:px-8">
<ul class="text-sm font-medium pb-6 grid grid-cols-2 sm:grid-cols-3 gap-y-10">
<li class="list-none row-span-2">
<h2 class="text-base font-semibold tracking-wide">GoJS</h2>
<ul class="list-none space-y-4 md:space-y-1 px-0">
<li>
<a href="./samples/index.html">Samples</a>
</li>
<li>
<a href="./learn/index.html">Learn</a>
</li>
<li>
<a href="./intro/index.html">Intro</a>
</li>
<li>
<a href="./api/index.html">API</a>
</li>
<li>
<a href="./changelog.html">Changelog</a>
</li>
<li>
<a href="https://github.com/NorthwoodsSoftware/GoJS">GitHub</a>
</li>
</ul>
</li>
<li class="list-none row-span-2">
<h2 class="text-base font-semibold tracking-wide">Support</h2>
<ul class="list-none space-y-4 md:space-y-1 px-0">
<li>
<a href="https://www.nwoods.com/contact.html"
target="_blank" rel="noopener" onclick="getOutboundLink('https://www.nwoods.com/contact.html', 'contact');">Contact</a>
</li>
<li>
<a href="https://forum.nwoods.com/c/gojs">Forum</a>
</li>
<li>
<a href="https://www.nwoods.com/app/activate.aspx?sku=gojs">Activate</a>
</li>
<li>
<a href="https://www.nwoods.com/sales/index.html"
target="_blank" rel="noopener" onclick="getOutboundLink('https://www.nwoods.com/sales/index.html', 'buy');">Buy</a>
</li>
<li>
<a href="https://www.youtube.com/channel/UC9We8EoX596-6XFjJDtZIDg">Videos</a>
</li>
</ul>
</li>
<li class="list-none row-span-2">
<h2 class="text-base font-semibold tracking-wide">Company</h2>
<ul class="list-none space-y-4 md:space-y-1 px-0">
<li>
<a target="_blank" href="https://www.nwoods.com">Northwoods</a>
</li>
<li>
<a target="_blank" href="https://www.nwoods.com/about.html">About Us</a>
</li>
<li>
<a target="_blank" href="https://www.nwoods.com/contact.html">Contact Us</a>
</li>
<li>
<a target="_blank" href="https://www.nwoods.com/consulting.html">Consulting</a>
</li>
<li>
<a target="_blank" href="https://twitter.com/northwoodsgo">Twitter</a>
</li>
</ul>
</li>
</ul>
<p class="text-sm text-gray-100 md:mb-6">
Copyright 1998-2023 <a class="text-white" href="https://www.nwoods.com">Northwoods Software</a>
</p>
</div>
</div>
</footer> </body>
<link rel="prefetch" as="script" href="./release/go.js">
<script async src="https://www.googletagmanager.com/gtag/js?id=G-S5QK8VSK84"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date()); gtag('config', 'G-S5QK8VSK84');
var getOutboundLink = function(url, label) {
gtag('event', 'click', {
'event_category': 'outbound',
'event_label': label,
'transport_type': 'beacon'
});
}
// topnav
var topButton = document.getElementById("topnavButton");
var topnavList = document.getElementById("topnavList");
topButton.addEventListener("click", function() {
this.classList.toggle("active");
topnavList.classList.toggle("hidden");
document.getElementById("topnavOpen").classList.toggle("hidden");
document.getElementById("topnavClosed").classList.toggle("hidden");
});
</script>
</html>