Skip to content

Releases: NorthwoodsSoftware/GoJS

2.2.9

04 May 15:53

Choose a tag to compare

If you are upgrading from 2.1 to 2.2, be sure to get a new license key. You must do this on every major.minor change, such as going from 2.1 to 2.2 or 2.3. You do not need a new key for point (2.2.x) releases.

Changes for 2.2.9

  • Fixed a regression from 2.2.8 with Table Panel when tables are empty (including tables in Node templates).

Changes for 2.2.8

  • Improved Table Panel measuring when using TableRows and TableColumns in sparsely populated tables.
  • Improved Table Panel arranging of items that span several rows or columns, when those rows or columns do not all exist.
  • Animation fixes when AnimationTriggers execute during a drag.
  • Improved accuracy of tick angles along curves in Graduated panels.
  • Fix for two-way bindings on Part.location when undoing.
  • Calls to Diagram.makeImage and Diagram.makeImageData no longer throw exceptions when attempting to render "broken" images.

2.2.8

02 May 17:26

Choose a tag to compare

If you are upgrading from 2.1 to 2.2, be sure to get a new license key. You must do this on every major.minor change, such as going from 2.1 to 2.2 or 2.3. You do not need a new key for point (2.2.x) releases.

Changes for 2.2.8

  • Improved Table Panel measuring when using TableRows and TableColumns in sparsely populated tables.
  • Improved Table Panel arranging of items that span several rows or columns, when those rows or columns do not all exist.
  • Animation fixes when AnimationTriggers execute during a drag.
  • Improved accuracy of tick angles along curves in Graduated panels.
  • Fix for two-way bindings on Part.location when undoing.
  • Calls to Diagram.makeImage and Diagram.makeImageData no longer throw exceptions when attempting to render "broken" images.

2.2.7

13 Apr 20:11

Choose a tag to compare

If you are upgrading from 2.1 to 2.2, be sure to get a new license key. You must do this on every major.minor change, such as going from 2.1 to 2.2 or 2.3. You do not need a new key for point (2.2.x) releases.

Changes for 2.2.7

  • Nested or space-constrained Table Panels apportion space more correctly when some Table elements are stretched and other rows/columns have their width or height set.
  • Improved the ScrollingTable extension to include a scrollbar "thumb".

2.2.6

30 Mar 18:48

Choose a tag to compare

Changes for 2.2.6

  • Improvements in gesture handling for iPad + keyboard combinations.
  • Made improvements and added features to the Gantt and Donut Charts samples.
  • Drag and drop from a Diagram into empty page space no longer throws an error (regression in 2.2.4).
  • Data Inspector, when multipleSelection option is true, now clears the properties fields when the Diagram.selection is empty.

2.2.5

25 Feb 15:58

Choose a tag to compare

If you are upgrading from 2.1 to 2.2, be sure to get a new license key. You must do this on every major.minor change, such as going from 2.1 to 2.2 or 2.3. You do not need a new key for point (2.2.x) releases.

Changes for 2.2.5

  • Drag and drop across Diagrams fixed on touch devices (regression in 2.2.4 for non Shadow DOM environments).
  • Module versions of the library release/go.mjs and release/go-module.js now export go as the default export.

2.2.4

21 Feb 18:07

Choose a tag to compare

If you are upgrading from 2.1 to 2.2, be sure to get a new license key. You must do this on every major.minor change, such as going from 2.1 to 2.2 or 2.3. You do not need a new key for point (2.2.x) releases.

Changes for 2.2.4

  • Allow AnimationTriggers to run during Tool operation. Previously, Animation Triggers would not run if a Tool was active, which prevented some tools such as LinkingTool from starting animations during their events.
  • Fixed a regression since 2.2.0: Drag and drop in Shadow DOM environments such as Angular now correctly identify the target Diagram (for dropping from Palettes, for instance).
  • Diagram.useDOM and Diagram.isUsingDOM were incorrectly minified, and now have their names properly exposed.

2.2.3

17 Feb 17:54

Choose a tag to compare

Changes for 2.2.3

  • Fixed Spot Panels erroneously giving incorrect sizing information to its elements if a previous element had a stretch.
  • Improved LayeredDigraphLayout routing of Bezier curve links to reduce crossing over nodes.
  • Fixed optimization (in 2.0.0) of Panel.rebuildItemElements when item template(s) may have changed.
  • The package.json now specifies "module": "release/go-module.js"

2.2.2

07 Feb 20:41

Choose a tag to compare

If you are upgrading from 2.1 to 2.2, be sure to get a new license key. You must do this on every major.minor change, such as going from 2.1 to 2.2 or 2.3. You do not need a new key for point (2.2.x) releases.

Changes for 2.2.2

  • Added init optional argument to Brushconstructor.
  • Stopped tap-hold on some versions of iOS Safari from selecting text.
  • Improvements for licensing Electron apps.

Changes for 2.2 are here

2.2.1

28 Jan 15:29

Choose a tag to compare

If you are upgrading from 2.1 to 2.2, be sure to get a new license key. You must do this on every major.minor change, such as going from 2.1 to 2.2 or 2.3. You do not need a new key for point (2.2.x) releases.

Changes for 2.2.1

See the full 2.2 changelog here.

2.2.0

20 Jan 14:55

Choose a tag to compare

GoJS 2.2

GoJS 2.2 introduces a number of properties and methods for convenience and to improve customization. GoJS 2.2 also includes new methods for constructing objects, and enhances TypeScript typings support.

GoJS 2.2 also includes several performance enhancements when drawing large graphs, reduced memory usage, and more efficient replacing or merging of item Arrays.

Some of the samples and written documentation have been upgraded to use more modern JavaScript: classes, arrow functions, const and let, so the samples and documentation might no longer be viewable using old browsers such as Internet Explorer 11 or some old Android browsers. The library and the extensions continue to target ES5 (ES2012), so that apps using the library can still work on IE11.

Method Chaining and New Ways to Build Objects

In GoJS 2.2 many methods that previously returned void now return the method's instance, to promote method chaining. GoJS 2.2 also introduces several new methods or arguments to allow type-checking of settings by compilers and in text editors.

Several existing methods now return their instance:

GraphObject constructors now accept one or two optional arguments. The first is the value for a common property, and the second is a JavaScript Object detailing properties to initialize. For example, one can now write:

  • new go.TextBlock("Some Text", { margin: 5 })
  • new go.Picture("sourceURI.png", { width: 30, height: 30 })
  • new go.Shape("RoundedRectangle", { fill: "blue", stroke: "yellow" })
  • new go.Panel("Auto", { padding: 10, background: "green" })

This means that one can now write code like:

// Create a Node and add a Shape and a TextBlock to it:
myDiagram.nodeTemplate =
  new go.Node("Vertical")
    .add(new go.Shape({ width: 40, height: 40, fill: "white" })  // default width & height & fill
          .bind("width") // binds data.width to Shape.width
          .bind("height")
          .bind("fill", "color") // binds data.color to Shape.fill
          .bind("figure", "fig")) // data.fig should be the registered name of a geometry figure generator
    .add(new go.TextBlock("(no name)",  // default string to display
                          { isMultiline: false, editable: true })
          .bind("text", "name", null, null));  // TwoWay Binding of TextBlock.text with data.name without converters

New methods GraphObject.set and Diagram.set return their instance. When using TypeScript definitions, the compiler checks these calls for GraphObject and Diagram property existence and value types.

New method GraphObject.apply can be used to define common functions that provide settings and bindings. Such customizations can then be applied to a GraphObject that you are initializing by calling GraphObject.apply with that function.

Together, these changes remove the need to use GraphObject.make when concisely defining Diagrams and templates. For a complete example, this code:

const $ = go.GraphObject.make;

const myDiagram = $(go.Diagram, "myDiagramDiv",
  {
    "undoManager.isEnabled": true
  });

myDiagram.nodeTemplate =
  $(go.Node, "Auto",
    $(go.Shape, "RoundedRectangle",
      { strokeWidth: 0, fill: "white" },
      new go.Binding("fill", "color")),
    $(go.TextBlock,
      { margin: 8, font: "bold 14px sans-serif", stroke: '#333' },
      new go.Binding("text", "key"))
  );

Can now be written as:

const myDiagram = new go.Diagram("myDiagramDiv",
  {
    "undoManager.isEnabled": true
  });

myDiagram.nodeTemplate =
  new go.Node("Auto")
    .add(new go.Shape("RoundedRectangle", { strokeWidth: 0, fill: "white" })
          .bind("fill", "color"))
    .add(new go.TextBlock({ margin: 8, font: "bold 14px sans-serif", stroke: '#333' })
          .bind("text", "key"));

For more information and examples, see the intro page on Building Objects.

General New Features in GoJS 2.2

Read more