Skip to main content

JointJS+ changelog v3.7.1

Add Isometric demo as example of isometric projection​

The demo illustrates that JointJS makes it possible to seamlessly transition between 2D and isometric SVG markup for each element. In addition, elements are prevented from overlapping each other while being moved / resized by the user. Finally, a custom obstacle detection feature allows the manhattan router to be used for automatic link routing in the isometric diagram.

Isometric

View code on GitHub

Live Isometric Demo


ui.Inspector - fix for SelectButtonGroup widget when multi: true is used with options source callback​

The SelectButtonGroup control type of Inspector was throwing errors during rendering when the multi: true option was used together with a dynamic options list (via the source property or via a reference to another model attribute). This is now resolved.


ui.Inspector - fix dependency path resolution​

Inspector maintains a list of dependencies to keep track of which Inspector fields depend on which data in element model.

Thus, whenever there is a change in the value of a model attribute, Inspector compares its path to the paths of known dependencies, and triggers those which are affected by the change. Notably, this logic is not only applied for exact matches - it needs to be applied also in cases where the dependency path is a sub-path of the path of the changed attribute, and in cases where the dependency path is a super-path of the path of the changed attribute.

In the previous version of JointJS+, there was a bug in the path comparison logic, which is now resolved.


dia.LinkView - fix element detection when using snapLinksSelf: true​

Details...

Previously, when the snapLinksSelf Paper option was used, links were not correctly detecting elements under the cursor during the arrowhead drag interaction. This issue is now resolved.

Before fixAfter fix
Before fixAfter fix

dia.Cell - fix the depth-first algorithm in getEmbeddedCells() method​

The depth-first algorithm in getEmbeddedCells() Cell method had a bug, which caused the cells not to be returned in the actual depth-first order. We have corrected the algorithm for this release.


dia.Cell - fix toFront() and toBack() methods to keep embedded elements on top of parents​

In the previous release of JointJS+, the behavior of the toFront() and toBack() methods was unintentionally changed such that embedded elements were no longer automatically put on top of their parents. This has been fixed in this release.

See CodePen.