Avg Release Cycle
7 days ago
🔄 Changes for 2.1.25
- ➕ Added the Connection Box Node sample, showing nodes that allow links between ports within a node.
- 🚀 In order to avoid possible errors caused by loading the GoJS library more than once, an Error is thrown when a second load is detected, even if the version number is the same. This helps avoid problems where there are multiple definitions for each of the classes, causing errors such as: Error: Unknown type of binding target: Node#241, where the object is a GoJS Node, but not the same GoJS Node class as the code expects. It also helps avoid situations when both the release library and the debug library are loaded.
- 🛠 Fixed raising an extraneous Diagram.mouseOver event during initialization.
- 🛠 Fixed a regression since 2.1.0 that would prevent a Diagram or Overview from re-scaling or aligning when its DIV changed size.
- 🛠 Fixed invalidating routes of external links when nested groups change their visibility in ways other than expanding trees or subgraphs.
- 🛠 Fixed Model.mergeNodeDataArray, GraphLinksModel.mergeLinkDataArray, and Model.applyIncrementalJson to set known properties, eg. GraphLinksModel.nodeGroupKeyProperty, even when the property is not present on the new data.
🔄 Changes for 2.1.24
- ➕ Added the Multi-color Links sample, showing links whose paths can be stroked with multiple colors specified in an Array as the value of the link's data.colors.
- Associating a Diagram instance with an HTMLDivElement now causes that Div element to get two new properties: "goDiagram" to refer to that Diagram instance, and "go" to refer to the "go" namespace if it exists. This makes it easier to examine or set Diagram properties or to call Diagram methods or methods on GraphObjects in existing apps without access to the app's source code.
- 🛠 Fixed using subclasses of GraphLinksModel or TreeModel.
- 🛠 Fixed AnimationTriggers incorrectly starting when AnimationManager.isEnabled is set to false.
- 🛠 Fixed extraneous Transaction ChangedEvents when modifying a group invalidated a layout.
🔄 Changes for 2.1.23
- ➕ Added the Arranging Layout extension, demonstrated in the Arranging sample. This layout is basically a layout of layouts, so that you can have a CircularLayout of CircularLayouts, as shown in the sample, or a PackedLayout of TableLayouts, or whatever. The ArrangingLayout also has a third layout that is used to position nodes not arranged by the main layout. This is normally a GridLayout that only positions singleton (disconnected) nodes.
- 👌 Improved the ParallelLayout extension and rewrote the Flowgrammer sample to use that ParallelLayout.
- 🛠 Fixed UndoManager sometimes adding a duplicate "Layout" transaction to the UndoManager.history.
🔄 Changes for 2.1.22
- ➕ Added the Rescaling Tool extension, demonstrated in the Rescaling sample. This tool modifies the GraphObject.scale property, unlike the ResizingTool which modifies the GraphObject.desiredSize property.
- 👌 Improved performance of Model.mergeNodeDataArray, GraphLinksModel.mergeLinkDataArray, and Model.toIncrementalData. The merge methods require that references are not shared between the the GoJS model and the external data provided and will now make deep copies of any new data objects before adding them to the model. This means Model.cloneDeep doesn't need to be called on the arrays passed in, as the merge methods will make the necessary calls.
- 🛠 Fixed
go-module.jsto work when treated as an ES6 module in Node.js. At the same time we have added
go-debug.mjsas copies of
go-debug-module.js. For compatibility the kit will contain both sets of files.
- 🛠 Fixed automatically performing layouts of outer groups after inner nested groups changed size.
🔄 Changes for 2.1.21
- ➕ Added the Swim Lane Layout extension, demonstrated in the Swim Lane Layout sample. This layout is a version of LayeredDigraphLayout that positions each node in the lane in which it is supposed to be.
- 🛠 Fix for parts that have their location or position set when not in the Diagram. This issue could affect temporary parts, such as adornments created by tools that are repeatedly added and removed from the Diagram.
- 🛠 Fixed ordering of links on a Spot.TopSide or Spot.BottomSide port when linking with a node to the right.
- 🛠 Fixed some scaling animations when Diagram.autoScale is set.
🔄 Changes for 2.1.20
- 🛠 Fixed GraphLinksModel.setLabelKeysForLinkData sometimes disassociating a link's label nodes that existed in both the old and new array.
- 🛠 Fixed the recording of model changes bound to a Part's position or location, where they may not have been recorded in the undo manager when modifying the position, location, or desiredSize. This also fixes a regression from 2.1.14.
- 🛠 Fixed LinearGradient painting when used as a Shape.stroke. This drawing issue was most apparent when the Shape's geometry was one-dimensional.
- 🛠 Fixed warning messages in Chrome about passive touch event listeners.
- 🛠 Fixed JumpOver and AvoidsNodes issues where ongoing animations might stop them from updating.
🔄 Changes for 2.1.19
- 🛠 Fixed changing Placeholder.padding to remeasure its Group or Adornment.
- 🛠 Fixed Diagram.initialPosition and Diagram.initialScale sometimes not showing scrollbars on initialization.
- 🛠 Fixed not recording a transaction that was empty until a "CommittingTransaction" Transaction-type ChangedEvent caused some ChangedEvents to made, a regression from 2.1.16.
🔄 Changes for 2.1.18
- ➕ Added the Belts and Rollers sample, showing belts or chains wending around rollers or gears.
- 🛠 Fixed finding a node by key after undoing a call to Model.setKeyForNodeData.
- 🛠 Fixed Diagram initialization without DIVs or with delayed initialization, where setting some properties like Diagram.scaleComputation would cause measuring errors.
- 👌 Improved handling of numeric large arc flag values when creating SVG arc PathSegments via PathSegment.constructor.
- 🛠 Fixed the TypeScript declaration for GraphObject.make to handle AnimationTriggers.
🔄 Changes for 2.1.17
- ➕ Added the Radial Adornment Buttons sample, showing a selection Adornment, only on one node, that is like a context menu with buttons arranged in a circle around the selected node.
- ➕ Added the Donut Charts sample, showing a simple circular bar chart in each node.
- 🛠 Fixed exporting the Picture.reloadSource and Picture.redraw methods.
- 🛠 Fixed the LinkingBaseTool.temporaryFromPort and LinkingBaseTool.temporaryToPort property setters to replace the port of the corresponding temporary node. This allows customization of a LinkingTool by setting either or both of those two properties.
- 🛠 Fixed Diagram.makeImage with a Picture SVG data URI source, in the same manner as in 2.1.16.
- 🛠 Fixed undo of a Shape.geometry setting, after its GraphObject.desiredSize had been set. This particular sequence of events was discovered in the use of the GeometryReshapingTool extension.
🔄 Changes for 2.1.16
- 🛠 Fixed Diagram.makeImage when a Picture has an SVG source that has a different size than its viewbox. In some browsers the SVGs had been drawn with the incorrect aspect ratio.
- 🛠 Fixed Diagram.delayInitialization incorrectly resetting the Diagram.position when animation is enabled.
- ➕ Added the Animated Focus sample, which demonstrates how to scroll to a node and really make it obvious where the node is and what it looks like.
- ➕ Added the Add To Palette sample, which allows the user to add items from the palette by selecting a node, customizing it, and then executing a command to copy it to the palette's model. The user can also remove selected items from the palette via a command, even though Palette.isReadOnly is true.