Oops, there was a regression in 1.5.21 that caused scale changes, including zooming by mouse-wheel, to fail. Please don’t use 1.5.21 and use 1.5.22 instead. Sorry for the inconvenience.
GoJS can now be downloaded via several different sources: How to download GoJS
Changes for 1.5.21
Changes for 1.5.20
- Fixed TextBlock.OverflowEllipsis sometimes not displaying ellipses when a height was set on the TextBlock.
- Fixed routing of links with Link.adjusting being
Link.Stretch sometimes resulting in straight lines.
- Fixed TreeLayout not respecting Part.isLayoutPositioned set to false on Comment Nodes (Nodes with the category “Comment”).
- Text rendering improvements.
Changes for 1.5.19
- Fixed error when operating in PhantomJS environment.
- Fixed handling of control characters in text strings by Model.toJson.
Changes for 1.5.18
GoJS can now be installed via npm:
$ npm install gojs
Changes for 1.5.17:
- In CommonJS environments, set the
go namespace Object to
module.exports as well as to
window.module.exports, in case they are different objects.
Changes for 1.5.15:
- Fixed zero-sized Arc PathSegments.
- Ensured Groups always redraw their bounds when collapsed or expanded.
Changes for 1.5.14:
Changes for 1.5.13:
- Fixed GraphObject.isActionable items being erroneously clickable through other non-actionable Parts.
Diagram.makeSvg now uses globally unique identifiers for its elements so that SVG from makeSvg can be used multiple times in the same page.
- Fixed DraggingTool movement of a Node with a half-connected Link when DraggingTool.isGridSnapEnabled is true.
Changes for 1.5.12:
Changes for 1.5.11:
- Fixes for location data binding when animation is enabled.
- Provisional fix for OSX scrollbars when invisible by default. Functionality may change in future releases.
- Fixed ResizingTool when resizing a Group with reflexive links.
- The TextEditingTool more accurately predicts the editable area for text.
Changes for 1.5.10:
- Fixed the way PathSegment.Arcs are calculated and approximated. This will change computed bounds and hit-testing, which now correctly reflect drawn arcs, but the bounds changes may cause incompatibilities in apps that depend on the old approximations.
Changes for 1.5.9:
Changes for 1.5.8:
Changes for 1.5.7:
Changes for 1.5.6:
Changes for 1.5.5:
• Added the CheckBoxes sample, demonstrating how to define a “check box” and how to customize them.
• Added the static method GraphObject.takeBuilderArgument, for use by GraphObject.defineBuilder functions for more easily retrieving builder arguments from the arguments passed to GraphObject.make.
• Added the definitions of the predefined arrowheads to the Arrowheads.js file in the Extensions directory. The predefined arrowheads are still predefined, so you will not need to load this file in order to have those definitions. This file provides information about how each arrowhead is defined, so that you can customize them or copy-and-adapt them.
• Fixed TextBlock.isStrikethrough to work with all values of TextBlock.textAlign.
• Adding a Part is now undoable if its layer has changed without notifying the undo manager, such as with a “layerName”:“isSelected” binding.
• Fixed Geometry.scale and Geometry.rotate of PathSegments that are arcs.
Changes for 1.5.4:
- Added the Realtime Drag Selecting sample, with the RealtimeDragSelectingTool defined in the RealtimeDragSelectingTool.js in the Extensions directory.
- Added the Hover Buttons sample, demonstrating how an Adornment can be used to show buttons for a node when the mouse is briefly motionless over the node.
- Added the Spiral Layout sample, with the SpiralLayout defined in the SpiralLayout.js file in the Extensions directory.
- Fixed ContextMenuTool so that any click events (Tool.standardMouseClick) in the ContextMenuTool.currentContextMenu occur on mouse-up, not mouse-down.
Changes for 1.5.3:
- The transaction name argument to UndoManager.commitTransaction (or Model.commitTransaction or Diagram.commitTransaction) is now optional, and defaults to the name given at the time of the call to UndoManager.startTransaction.
- The Backspace (Windows) or Delete (Mac) key now invokes CommandHandler.deleteSelection just like the Delete (Windows) or Delete-Forward (Mac) key already does.
Changes for 1.5.2:
- Updated the TypeScript definition file,
goJS.d.ts, to TypeScript version 1.4.
- Fixed Brush constructor in Debug mode improperly raising error about string argument not being a valid color string.
- Fixed a cross-origin error when using Diagram.makeImageData with SVG images in Internet Explorer.
Changes for 1.5.1:
- Added the Kanban Board sample, derived from the Swim Lanes (vertical) sample.
- Fixed scrollbar clicking on touch-enabled devices in Chrome on Windows.
- More graceful handling of Picture image errors.
- Fixed bugs with undo of changed state inside Parts whose Part.category was later changed.
- Stopped touch events from always calling preventDefault (touch events were impossible to bubble).
I’m pleased to announce that version 1.5.0 is now the latest release of GoJS, with many new samples and features.
If I counted correctly, there are 33 new samples, most of which you can see at http://gojs.net/latest/samples. The Change Log lists all of the new samples.
Some of the new samples are in the http://gojs.net/latest/extensions directory, demonstrating new classes that are defined there. Those extension classes are designed to be reused in your application – just load the JS file.
Many of the old samples have been improved, including bug fixes. If you based your app on a GoJS sample, you might want to consider seeing if there were any changes. Some samples, such as BPMN, http://gojs.net/latest/extensions/BPMN.html, have had code cleanups and lots of new features.
Buttons are now styled to be flatter and more rectangular. If you are curious about how the predefined Buttons are now defined, you can see their definitions in http://gojs.net/latest/extensions/Buttons.js.
There are now Diagram methods for doing “query-by-example”, such as Diagram.findNodesByExample.
You can let the user scroll or pan the diagram infinitely far by setting Diagram.scrollMode. You can now limit the specific values that a Diagram may be scrolled to or zoomed to by supplying functions that return the permitted values: Diagram.positionComputation and Diagram.scaleComputation.
You can now define your own custom named Shape figures and arrowheads by calling the static methods Shape.defineFigureGenerator and Shape.defineArrowheadGeometry.
You can now define your own named kinds of Panel or GraphObject, just as “Button”, “TreeExpanderButton”, “SubGraphExpanderButton”, “ContextMenuButton”, and “PanelExpanderButton” (new!) are now defined in Buttons.js. Those definitions make use of the new static method GraphObject.defineBuilder.
We have now documented the Picture.sourceCrossOrigin property, whose value may be a function that you can use to customize cross-origin requests for Images.
I sometimes had bugs in my apps because I forgot to make sure that Arrays of Objects in my model node data were copied when the node was copied. Although implementing a Model.copyNodeDataFunction still works, you can now set Model.copiesArrays and Model.copiesArrayObjects to true to accomplish the same results.
You can now use Placeholders in tooltip and context menu Adornments in order to determine the positioning of those Adornments.
Read about these and all of the other improvements in GoJS at http://gojs.net/latest and the Change Log.