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 development, or
released. Items are presented in expected order of release, but the order may be subject to change.
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-dialogspackages, and renaming the current
browser-ui-dialogs-2packages to have those names. The
dialogs-corepackage will be folded into the new
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
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.