Skip to main content

Roadmap

Last update: August 22nd 2022

The contents of this page are a list of planned and possible new features for the Toolkit. For each item we list the current status - whether it is under investigation, in planning, under development, or released. Items are presented in expected order of release, but the order may be subject to change.

v6.x.x

Our main focus now is on release 6.x.x of the Toolkit and Community editions. This release will contain a few new packages, and we also intend to remove a few packages that are currently in 5.x.

New packages for 6.x.x

  • Obstacle router - this package will provide the core functionality for supporting edges whose paths avoid vertices. This is a "model" package, ie. does not interact with the UI.

  • Smart connectors - This name is a work in progress; we're unsure what we'll end up calling this. This is the UI side of the obstacle routing functionality.

Packages to be dropped in 6.x.x

  • We'll be removing the current browser-ui-vanilla, browser-ui-templates and browser-ui-dialogs packages, and renaming the current browser-ui-vanilla-2, browser-ui-templates-2 and browser-ui-dialogs-2 packages to have those names. The dialogs-core package will be folded into the new browser-ui-dialogs package.

Other 6.x.x changes

We're looking at ways to fold all of the toolkit and community edition packages into a single namespace - @jsplumbtoolkit. This is only at the investigative stage right now and may not actually come to pass

Template engine updates (released)

We've rewritten the core template engine used by the Toolkit (that is, the template engine used by the 'vanilla' renderer, not by any of the integration packages such as Angular, Vue2, Vue3 or React) to remove its dependence on a few constructs that are not available in strict mode, which is enforced by environments such as Salesforce Lightning.

This has now been released, in the @jsplumbtoolkit/browser-ui-vanilla-2 package.

Hierarchy layout enhancements (under development)

We're adding a new option to the Hierarchy layout to support grouping child nodes underneath their parent(s), in a similar way to the way the Hierarchical groups child nodes. Currently, the Hierarchy layout supports centering all nodes around the center of the axis, or at the start/end of the axis.

Node/group avoidance for edges (under development)

We're working on a package that adds the ability for edges to be automatically routed around nodes/groups.

Svelte integration (released)

Released in version 5.6.0.

Single SVG renderer (in planning)

Currently, the Toolkit renders individual SVG/HTML elements to its canvas for each of the nodes, groups and edges in the dataset. Supporting arbitrary content such as this makes the Toolkit far more flexible than other libraries in this space, but there are use cases, in particular with diagramming applications, where nodes/groups are represented by SVG, and from an implementation perspective all of the UI artifacts can be rendered inside a single SVG in the DOM. This has performance benefits, and also makes it easy to export the contents of the UI on the client side.