Changes for 1.5.21
- Fixed changing Diagram.scale causing an error for some values of Diagram.contentAlignment.
- Improved the TextEditingTool to scroll the edited TextBlock into view, not the whole Part holding the TextBlock.
- Fixed Model.setKeyForNodeData to update link data references (regression) in GraphLinksModels.
- Fixed an aspect-ratio issue when using Diagram.makeSvg with Pictures. Fixed a related issue when using Picture.sourceRect when rendering SVG.
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.Scale
or 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
- Fixed Diagram.alignDocument when scrolling the current screen out of view.
- Fixed round-off errors in GridLayout positioning of nodes when GridLayout.alignment is GridLayout.Location.
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:
- Fixed Picture.element property setter to allow null.
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:
- The TextEditingTool.selectsTextOnActivate now selects text on iOS Safari.
- Fixed the Part.containingGroup of reflexive member Links.
- Fixed the loading of Link routes via a Binding on Link.points when the Links were connected with a Group.
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:
- Fixed an undo/redo bug with Part.location and GraphObject.position.
- Fixed Picture optimizations to work with Picture.sourceRect
- Fixed the TextEditingTool inserting newlines into TextBlocks with TextBlock.isMultiLine set to false, when a validation function was present.
Changes for 1.5.8:
- Improved the TypeScript definition file, goJS.d.ts, fixing some typos, changing some Object types to be any for easier usage.
- Fixed DraggingTool when DraggingTool.dragsLink is true and when dragging a Link to respect LinkingBaseTool.isValidLink on the RelinkingTool.
- Fixed TextBlock rendering in some ellipses cases.
Changes for 1.5.7:
- Added an Introduction page just for Changed Events.
- Fixed Iterator.next to continue returning false once it has already returned false.
- Overviews now respect Layer.opacity
- Successive calls to CommandHandler.editTextBlock now correctly switch the TextBlock.
Changes for 1.5.6:
- Changed default behavior of LayoutNetwork.commitLayout to call LayoutVertex.commit on each vertex in the layout. Previous behavior was to do nothing, but all predefined layouts that used LayoutNetwork already had overrides of this method. The new behavior is convenient for the implementation of simple custom Layouts that use networks. The new behavior does not affect custom layouts that do not use networks.
- Fixed GraphObject.getDocumentAngle sometimes returning 0 when it should return 180.
- Fixed text rendering when both TextBlock.isUnderline and TextBlock.isStrikethrough are true with all values of TextBlock.textAlign.
- Fixed export of LinkReshapingTool.setReshapingBehavior and LinkReshapingTool.getReshapingBehavior.
- Fixed Model.fromJson reading solid color Brushes, when they are not just strings.
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).
1.5.0:
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.