Skip to main content
Version: 4.2

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.0v4.1.1
OriginalBPMNPools originalBPMNPools original
ExportedBPMNPools exported v4.1.0BPMNPools exported v4.1.1

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.