JointJS+ changelog v4.1.1
apps
apps.BPMNPools - add phases import/export
Previously, the export and import actions of the BPMNPools app ignored phases. We addressed this tech debt in the new version, which means that all exported diagrams exported from the app now look exactly the same when imported back into the app.
Details...
| v4.1.0 | v4.1.1 | |
|---|---|---|
| Original | ![]() | ![]() |
| Exported | ![]() | ![]() |
format
Visio
format.Visio - fix text annotations to use colorTrans option in a Character element
Details...
The colorTrans value is now correctly used to set the opacity (1 - colorTrans) of text fragments created to represent Character elements.
format.Visio - fix error when encountering a fld element without content
Details...
JointJS now uses '' (empty string) as the default content of fld elements.
format.Visio - fix to ignore unsupported image types
JointJS now checks that the file type is one of the supported types (jpeg, jpg, png, bmp, gif, tiff, svg, webp, ico) before trying to use the file as an image during import.
format.Visio - fix to show an error in the console in case of an empty ref XML file instead of throwing an exception
Previously, the import was throwing an error in case of an empty ref XML file. Now, it logs a debug message in the browser console that the archive is wrong, but continues import as normal.
format.Visio - fix to export JointJS ports as Connection XML
We now export ports in JointJS elements as Connection XML and then uses these Connections as source and target for links.
Details...
By default, the center of the port's bbox is set as the end point, but an exact point may be specified for created Visio Connections via the portConnectionPoint callback:
portConnectionPoint: (port, elementView) => {
const portNode = elementView.findPortNode(port.id);
const portBBox = elementView.getNodeBBox(portNode);
let y: number;
switch (port.group) {
case 'bottom':
y = portBBox.height;
break;
case 'top':
default:
y = 0;
break;
}
return {
x: portBBox.width / 2,
y: y
}
},
ui
Halo
ui.Halo - fix to make sure the halo is updated after the cellView
Previously, in the paper's async mode, Halo updates were executed before the updates of the related cell view. This could result in the halo being positioned incorrectly (i.e. using the previous cell state).
PaperScroller
ui.PaperScroller - fix rounding errors to prevent unnecessary scrollbars
When calculating the required padding to position a paper inside a zoomed paperScroller, JointJS was previously working with rounded padding values. This could lead to a result that was 1px off the correct value (when rounding of the two padding values happened to align in one direction), and thus cause a scrollbar to be shown when it was not expected. Applying the rounding at the end of the calculation prevents the issue.
Selection
ui.Selection - fix removeHandle() method to apply to hidden handles
Previously, if you tried to remove a handle while it was not visible, the handle was not removed. The method has now been fixed so that it removes hidden handles as well.
TextEditor
ui.TextEditor - fix incorrect placeholder position
Fixed incorrect background position when showing placeholder. Also fixed caret position when textAnchor: 'end', so that it matches the end of the placeholder.
layout
DirectedGraph
layout.DirectedGraph - fix to accept 0 value for nodesep, edgesep, ranksep
Previously, providing 0 as a value of nodesep, edgesep, ranksep options of the layout() was incorrectly interpreted the same as if no value was provided (and thus causing Dagre's default values to be applied). We now correctly check whether the provided value is a number, instead.
mvc
Dom
mvc.Dom - fix to use getComputedStyle() for static position check
Details...
We updated the position() method to use window.getComputedStyle() so that it accurately retrieves the position property of the currently investigated parent element, in order to ensure proper handling of style inheritance and computed values.

