UNPKG

markgojs

Version:

Interactive diagrams, charts, and graphs, such as trees, flowcharts, orgcharts, UML, BPMN, or business diagrams

1,257 lines (1,182 loc) 215 kB
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content="GoJS changelog." /> <meta http-equiv="cache-control" content="no-cache"> <title>GoJS Change Log</title> <!-- Copyright 1998-2019 by Northwoods Software Corporation. --> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-1506307-5', 'auto'); ga('send', 'pageview'); </script> <link rel="stylesheet" href="assets/css/bootstrap.min.css"> <!-- custom CSS after bootstrap --> <link href="assets/css/main.css" rel="stylesheet" type="text/css"/> <script src="release/go.js"></script> <script src="assets/js/goDoc.js"></script> </head> <body onload="goDoc('')"> <!-- fixed navbar --> <nav id="fixed-nav" class="navbar navbar-inverse navbar-fixed-top"> <div class="container-fluid"> <div class="navbar-header"> <div class="navheader-container"> <div class="navheader-collapse" data-toggle="collapse" data-target="#navbar"> <a id="toplogo" class="navbar-brand" href="index.html">GoJS</a> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> </div> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav navbar-right"> <li><a href="index.html">Home</a></li> <li><a href="learn/index.html">Learn</a></li> <li><a href="samples/index.html">Samples</a></li> <li><a href="intro/index.html">Intro</a></li> <li><a href="api/index.html">API</a></li> <li><a href="https://www.nwoods.com/components/evalform.htm">Register</a></li> <li><a href="download.html">Download</a></li> <li><a href="https://forum.nwoods.com/c/gojs">Forum</a></li> <li><a href="https://www.nwoods.com/contact.html" onclick="ga('send','event','Outbound Link','click','contact');">Contact</a></li> <li class="buy"><a href="https://www.nwoods.com/sales/index.html" onclick="ga('send','event','Outbound Link','click','buy');">Buy</a></li> <li class="activate"><a href="https://www.nwoods.com/app/activate.aspx?sku=gojs">Activate</a></li> </ul> </div><!--/.nav-collapse --> </div> </nav> <div class="container-fluid mt70 plr15"> <h2>GoJS Change Log</h2> <p id="ver"></p> <script> if (go && go.version) { var p = document.getElementById('ver'); if (p !== null) p.textContent = ("Version: " + go.version); } </script> <p> We maintain a <a href="https://github.com/NorthwoodsSoftware/GoJS">GitHub Repository</a>, which you can star to follow version updates. We also notify of changes on <a href="https://twitter.com/NorthwoodsGo">Twitter</a>. </p> <hr> <h4> Changes for 1.8.36 </h4> <ul> <li> Fixed a layout animation bug (no animation) introduced in 1.8.35 when calling <a>Diagram.layoutDiagram</a>>. </li> <li> Improved <a>LayeredDigraphLayout</a> routing when <a>LayeredDigraphLayout.setsPortSpots</a> is false and the nodes have no spots. </li> <li> Fixed a DataInspector extension bug, where it would not update itself when adding new properties to model data if the node did not change selection. </li> </ul> <h4> Changes for 1.8.35 </h4> <ul> <li> Fixed a bug with the LayoutCompleted <a>DiagramEvent</a>, which was not always firing when manually calling <a>Diagram.layoutDiagram</a>. </li> <li> Fixed a DraggingTool bug where dragging parts across Diagrams (or Palettes) would snap incorrectly on drop. </li> </ul> <h4> Changes for 1.8.34 </h4> <ul> <li> Fixed a bug with geometry string parsing using quadratic bezier shorthand ("T"). </li> <li> Fixed setting <a>Part.category</a> of a Part that is not in the Diagram. This simply changes the property value without replacing the visual tree with a new copy of a template. </li> <li> Updated some outdated documentation regarding <a>PathSegment.radiusY</a> matching radiusX. </li> </ul> <h4> Changes for 1.8.33 </h4> <ul> <li> Fixed a bug with updating Adornments placed into non-temporary layers. Updating them might modify the parts list of that layer during iteration, causing an error. </li> <li> Documentation corrections for <a>Tool.standardWaitAfter</a> and <a>Tool.doWaitAfter</a>. </li> </ul> <h4> Changes for 1.8.32 </h4> <ul> <li> Diagram auto-scrolling now considers the document bounds of the total scrolled-to area during the auto-scroll. This makes it easy to scroll in different directions that might normally reduce the bounds during the drag. </li> <li> Fixed a bug where adornments may appear at the wrong locations when disappearing off-screen and reappearing. </li> <li> Fixed a bug with newly-copied draggable links grid snapping, and not having correct points. Also fixed some jittering while dragging links with grid snapping. </li> </ul> <h4> Changes for 1.8.31 </h4> <ul> <li> Fixed a bug rendering to SVG when an arc was the first segment of a figure and it needed an initial straight line to get to the correct starting point. </li> <li> Fixed a bug in <a>Diagram.findObjectsNear</a> where complete inclusions weren't always returning the proper set of objects fully enclosed within the circular area given by the point and distance parameters. </li> </ul> <h4> Changes for 1.8.30 </h4> <ul> <li> Fixed a bug with <a>Node.collapseTree</a>: In collapsing a circular subgraph it now correctly set <a>Node.wasTreeExpanded</a> on the original node, and now removes the Node's Adornments. </li> <li> Improved resizing behavior of the <a>Overview.box</a> to be smoother and more accurate. </li> <li> Fixed a bug with adornments not disappearing during deselection, after creating new Parts. </li> <li> Fixed a bug with Group sizing during drag-copy. </li> <li> Fixed the <a>DiagramEvent.subject</a> collection of a "SelectionDeleted" DiagramEvent to include connected Links. </li> <li> Fixed a bug with Group and member positioning during drag-copy, where the copy may sometimes incorrectly place the Parts relative to each other. </li> <li> The map returned by <a>Shape.getFigureGenerators</a> now includes string synonyms, such as "MinusLine" which references "LineH". Previously, it was only including figures directly associated with a generator function. </li> </ul> <h4> Changes for 1.8.29 </h4> <ul> <li> Fixed improper updating of Adornments of member Parts after undo or redo of ungrouping a Group. </li> <li> <a>Group.move</a> will not set <a>Link.points</a> to non-real values if the original Link position was not real. It will invalidate the route instead. </li> <li> Improved safety of layer changes during undo/redo if code has been written with layer changing side effects. </li> </ul> <h4> Changes for 1.8.28 </h4> <ul> <li> Fixed a Link re-routing bug during drags, when <a>DraggingTool.isComplexRoutingRealtime</a> is set to false. It would incorrectly re-compute AvoidsNodes routes during the drag if a node was crossed, instead of only deciding at the end of drag whether to re-compute. </li> <li> Fixed a drawing bug where the start of Group collapse/expand animations may draw one frame of its ending state. </li> <li> Setting <a>Diagram.scrollMode</a> now correctly updates the Diagram's scrollbars. </li> <li> Fixed a bug where changing the <a>Link.fromNode</a> or <a>Link.toNode</a> in a TreeModel could result in duplicate links. </li> </ul> <h4> Changes for 1.8.27 </h4> <ul> <li> Fixed a regression from 1.8.24 where some graduated panels will draw incorrectly. </li> <li> Dragging groups while <a>DraggingTool.isGridSnapEnabled</a> no longer snaps their members separately. This fixes some bugs where dragging a Group might shift group contents during a drag, such as links, or where Group contents may shift the Group as the placeholder is recomputed. </li> <li> Fixed <a>Node.findLinksTo</a> when the other port id is not null. </li> <li> Some fixes for scrollbar customization. </li> </ul> <h4> Changes for 1.8.26 </h4> <ul> <li> Fixed a regression from 1.8.24 where the opacity of objects was computed incorrectly. </li> <li> Fixed a bug where some objects resizing would not notify the Diagram. </li> </ul> <h4> Changes for 1.8.25 </h4> <ul> <li> Fixed a regression from 1.8.24 where some browsers and mice would use an incorrect wheel delta. </li> <li> Performance improvements when drawing Diagrams with large numbers of GraphObjects out of view. </li> </ul> <h4> Changes for 1.8.24 </h4> <ul> <li> Fixed an issue with scroll wheel delta when making two-finger gestures to scroll or zoom. </li> <li> Improved <a>ToolManager.positionToolTip</a> and <a>ContextMenuTool.positionContextMenu</a> when zoomed in or out. </li> <li> Performance improvements when adding large numbers of GraphObjects to Panels and when replacing a large <a>Diagram.model</a>. <a>Diagram.clear</a> now releases a few temporary references it had to old Parts in internal temporary data structures. </li> </ul> <h4> Changes for 1.8.23 </h4> <ul> <li> <b style="color:red;">This bugfix potentially alters a Shape's measurements when a minSize and a strokeWidth are present:</b> <a>GraphObject.minSize</a> now correctly constrains the size of Shapes. Before, the <code>minSize</code> of a shape would incorrectly subtract the <code>strokeWidth</code>. </li> <li> <p>Disconnected Links now respect <a>Part.dragComputation</a>. This can be used to make them snap when dragging, for example with:</p> <pre> dragComputation: function(part, pt, gridpt) { return new go.Point(gridpt.x, gridpt.y); } </pre> </li> </ul> <h4> Changes for 1.8.22 </h4> <ul> <li> Fixed an issue where the <a>ResizingTool</a> wasn't respecting <a>GraphObject.minSize</a> and <a>GraphObject.maxSize</a> during uniform resizing. </li> <li> Cleaned up require syntax in the <code>extensionsTS</code> directory. </li> <li> Fixed an issue with <a>Panel.defaultSeparatorDashArray</a> not getting used as the default value. </li> <li> Fixed resizing a nested <a>Group</a> with <a>DraggingTool.isGridSnapEnabled</a> true causing member Links to shift positions. </li> </ul> <h4> Changes for 1.8.21 </h4> <ul> <li> Fixed an issue setting certain cursors as the <a>Diagram.currentCursor</a> on webkit based browsers. </li> <li> Fixed a bug where updating the <a>Link.fromShortLength</a> or <a>Link.toShortLength</a> weren't properly updating the link's geometry. </li> <li> Self-links that are rendered as bezier loops no longer include resegmenting handles. </li> </ul> <h4> Changes for 1.8.20 </h4> <ul> <li> <a>Diagram.zoomToFit</a> and <a>CommandHandler.zoomToFit</a> now re-position the diagram upon zoom, even if the <a>Diagram.scrollMode</a> is set to <a>Diagram.InfiniteScroll</a>. </li> </ul> <h4> Changes for 1.8.19 </h4> <ul> <li> Enabled two-finger zooming on MacBook trackpads. </li> <li> Fixed half-disconnected link routing bug involving "...Side" Spots for Nodes that are members of Groups. </li> <li> Improved <a>LayeredDigraphLayout</a> alignment of nodes linked to visible nodes inside groups. </li> </ul> <h4> Changes for 1.8.18 </h4> <ul> <li> Fixed the implementation of some Arc paths in <a>Diagram.makeSVG</a>. </li> </ul> <h4> Changes for 1.8.17 </h4> <ul> <li> Return values from <a>TextBlock.graduatedFunction</a> will now be converted to strings for safety. </li> <li> Fixed a regression for scroll-wheel zooming that was introduced in 1.8.15. </li> <li> Fixed error about showing a context menu <a>Adornment</a> when that same context menu is being shown in another Diagram. </li> <li> The <a>TextEditingTool</a> now sets its height via the number of <code>textarea.rows</code>, instead of estimating text height and setting CSS height style. </li> <li> Fixes to <a>TextEditingTool</a>, including a positioning fix in IE11. </li> </ul> <h4> Changes for 1.8.16 </h4> <ul> <li> <a>Group.layout</a> setter now correctly triggers a relayout, if the newly assigned layout is invalid. </li> <li> Fixed a bug with scrollbar values after some initial layouts. </li> <li> Fixed a bug with <a>InputEvent.viewPoint</a> on <a>Diagram.lastInput</a> when dragging between Diagrams. </li> <li> Fixed a drawing bug with separator dash arrays, affecting <a>RowColumnDefinition.separatorDashArray</a>, <a>Panel.defaultColumnSeparatorDashArray</a>, and <a>Panel.defaultRowSeparatorDashArray</a>. </li> </ul> <h4> Changes for 1.8.15 </h4> <ul> <li> Link Adornments can now be of any Panel type. They are still forced into the type <a>Panel.Link</a> if the <a>Part.selectionObjectName</a> is unspecified or is an empty string, or if it refers to the <a>Link.path</a>. </li> <li> Using the wheel to scroll while the mouse is over the scroll-bar now correctly scrolls the Diagram. </li> </ul> <h4> Changes for 1.8.14 </h4> <ul> <li> <a>CommandHandler.canPasteSelection</a> now returns <code>false</code> if there are zero parts in the clipboard. </li> <li> Fixes for Link Adornment sizing. </li> </ul> <h4> Changes for 1.8.13 </h4> <ul> <li> Fixed <a>DraggingTool.doMouseMove</a> to respect settings of <a>Diagram.currentCursor</a> in <a>GraphObject.mouseDragEnter</a> event handlers. </li> <li> Adding or removing reflexive links at a node when there are multiple such links at that node no longer cause their routes to be invalidated if <a>Link.adjusting</a> is not Link.None. </li> <li> The default text editor's main element no longer erases all CSS Styling on activation. This allows you to set style by writing, for example: <code>TextEditingTool.defaultTextEditor.mainElement.style.backgroundColor = 'red';</code> </li> </ul> <h4> Changes for 1.8.12 </h4> <ul> <li>Added search functionality for classes and members in the <a href="api/index.html">API documentation</a>.</li> <li> Fix for <a>Geometry.parse</a> when numbers containing alphabet characters (such as <code>4E-06</code>) are present. </li> <li> Updated <a>Geometry.parse</a> to accept multiple '.'s without spaces to allow for chaining decimals, for example <code>1.5.75.75</code>. The result would be <code>1.5 .75 .75</code>, as specified by the <a href="https://www.w3.org/TR/SVG/paths.html#PathDataBNF">SVG grammar</a>. </li> </ul> <h4> Changes for 1.8.11 </h4> <ul> <li>Fixed a check for <code>window.navigator.msPointerEnabled</code> that was modified in 1.8.8. This was disabling Pointer Events in IE based browsers.</li> </ul> <h4> Changes for 1.8.10 </h4> <ul> <li>Improved wheel events, primarily for Firefox and Firefox for Android. Mac trackpads will now pan and scroll in both directions in Firefox.</li> <li>Fixed a bug with links not rerouting during a drag of a collapsed group. This occurred when a link was connected to a "...Side" Spot of a member node.</li> <li>Fixed a shadow regression introduced in 1.8.9.</li> <li>Some licensing fixes for versions of IE.</li> </ul> <h4> Changes for 1.8.9 </h4> <ul> <li>Fixed a bug in <a>Diagram.findObjectsNear</a> in Table Panels using TableRow and TableColumn.</li> <li>Fixed a drawing bug where some GraphObjects with a background set would be shadowed, when they should not be.</li> </ul> <h4> Changes for 1.8.8 </h4> <ul> <li>Added an Introduction page about debugging: <a href="intro/debugging.html">Debugging</a></li> <li>Fixed a check for <code>window.navigator.msPointerEnabled</code> that was added in 1.8.5.</li> <li>Fixed <a>UndoManager.canUndo</a> and <a>UndoManager.canRedo</a> to ignore <a>UndoManager.isUndoingRedoing</a>.</li> <li>The <a href="intro/serverSideImages.html">Server-side Images Intro page</a> now contains examples using Puppeteer.</li> </ul> <h4> Changes for 1.8.7 </h4> <ul> <li> Fixed routing of AvoidsNodes Links when added as members of a Group that hadn't been measured fully yet with its new members. </li> <li> Fixed <a>Layout.doLayout</a>, the default layout that only positions nodes that do not have a real <a>Part.location</a>, to respect the pre-layout position of <a>Group</a>s, when the <a>Group.layout</a> has not been set. </li> <li> Improved <a>LinkingBaseTool.isValidCycle</a> to guess whether <a>LinkingTool.archetypeLinkData</a> will create a new Link that is not <a>Link.isTreeLink</a>, which affects link validity when <a>Diagram.validCycle</a> is <a>Diagram.CycleDestinationTree</a> or <a>Diagram.CycleSourceTree</a>. </li> <li> Increased the CSS z-index of the default touch context menu from 300 to 10002. </li> <li> For Table Panels and <a>RowColumnDefinition</a>s: Before, a separator would exist and take up space for every row and column except index = 0. Now they exist and take up space for every row and column except the <em>first</em> row and column, whatever its index may be. </li> </ul> <h4> Changes for 1.8.6 </h4> <ul> <li> Added <a>ForceDirectedLayout.moveLimit</a> property. </li> <li> Event bubbling fixes for PointerEvents in IE and Edge. </li> </ul> <h4> Changes for 1.8.5 </h4> <ul> <li> IE: Fixed a regression from 1.8.3 with PointerEvents: Mouse-based events now correctly report their button (left, right middle) and modifier keys (Ctrl, Alt, etc). Additionally, meta keys now work with touches, so users can do actions such as CTRL+touch to select multiple nodes. </li> <li> Fixed a bug with shadows in IE (but not Edge) sometimes causing draw-related errors with the Canvas Context. </li> <li> The user of <code>PointerEvents</code> is additionally limited by <code>window.navigator.msPointerEnabled</code> not being false. This supports the use of IE 11 when embedded within Windows applications. </li> <li> Fixed an animation regression that began with 1.7.0: resizing Diagram DIVs now correctly animates layouts that have <a>Layout.isViewportSized</a> set to true. </li> </ul> <h4>Changes for 1.8.4</h4> <ul> <li> Added <a>Diagram.scrollsPageOnFocus</a> property, to control whether the page scrolls to show the Diagram's HTMLDivElement when the diagram receives focus, if the element is not entirely visible in the window. For compatibility now the default value is true, but the default value will be false in version 2.0. </li> <li> Fixed a regression from 1.7.28/1.7.29 with starting automatic animations. </li> <li> Fixed an animation positioning bug with nested collapsed groups. </li> </ul> <h4>Changes for 1.8.3</h4> <ul> <li> Added the <a href="samples/zoomPinch.html" target="_blank">Zoom Pinch</a> sample, demonstrating gesture customization. </li> <li> Internally, browser PointerEvents are now used by default on IE-related browsers, when possible. Other browsers still use Touch and Mouse events. </li> <li> Fixed a measurement bug with <a>GraphObject.maxSize</a> when applied to TextBlocks. </li> <li> Fixed another case of moving <a>Group</a>s not correctly invalidating link routes when the link connects with the group. </li> <li> Fixed having <a>UndoManager.isUndoingRedoing</a> to be consistently true during "StartingUndo", "StartingRedo", "FinishedUndo", and "FinishedRedo" Model <a>ChangedEvent</a>s of type Transaction. </li> <li> Fixed hit testing in some edge cases for geometries. </li> </ul> <h4>Changes for 1.8.1 and 1.8.2</h4> <ul> <li> Fixed the measurement of GraphObjects with <a>GraphObject.isPanelMain</a> in Links and Auto panels. </li> <li> Improved documentation and samples for GoCloudStorage. </li> </ul> <h4>Changes for 1.8 since 1.7.*</h4> <ul> <li> <b>Licensing</b> <p> Improvements for unlimited-domains OEM customers. </p> </li> <li> <b>Samples and documentation:</b> <ul> <li> Added GoCloudStorage classes, in the <code>storage</code> folder, for saving/loading models from various cloud storage provider services plus <code>localStorage</code>. <p> An example of using these services is at: <a href="storage/samples/GoCloudStorageManager.html" target="_blank">Go Cloud Storage Manager</a>. <p> The API documentation is at <a href="storage/api/index.html" target="_blank">Storage API</a>. <p> Load the library from <a href="storage/lib/gcs.js" target="_blank">Storage library</a>. You will also need to load the libraries for each of the services themselves (other than localStorage). <p> The source code is at <a href="storage/src/GoCloudStorage.ts">GoCloudStorage.ts</a> and in other files in that folder. </li> <li> Typescript definition file (<code>go.d.ts</code>) fixes. </li> </ul> </li> <li> <b>Diagram and Model:</b> <ul> <li> Added <a>Diagram.commit</a> and <a>Model.commit</a>, which call a given function wrapped in a transaction. This is offered as a concise alternative to calling <code>startTransaction</code> and <code>commitTransaction</code>. </li> <li> Added <a>Model.set</a> as a synonym for <a>Model.setDataProperty</a>. </li> </ul> </li> <li> <b>Parts:</b> <ul> <li> Added <a>Part.key</a> and <a>Link.key</a>, as shortcuts for retrieving the Part's key in the Model data, if it exists. </li> </ul> </li> <li> <b>Tools:</b> <ul> <li> Fixed duplicate calls to focus within the <a>TextEditingTool</a>. </li> </ul> </li> <li> <b style="color:red;">Deprecated features:</b> <p> These features will remain in the library until version 2.0, but they will no longer be documented and their use is discouraged. </p> <ul> <li> <b>Most Predefined Shape figures</b> <p> In order to shrink the size of the GoJS library we will be not be defining most predefined figures in the library. Instead, you can find all of their definitions in the <a href="extensions/Figures.js" target="_blank">Figures.js</a> file. You can simply load only those figures that you want to use by copying their definitions into your code. <p> Until version 2.0 all of the predefined figures remain defined in the GoJS library, so you do not yet have to load any figures from the extensions file. However, a number of very common figures will remain predefined even in version 2.0. The figures that will remain in 2.0 are: "Rectangle", "Square", "RoundedRectangle", "Border", "Ellipse", "Circle", "TriangleRight", "TriangleDown", "TriangleLeft", "TriangleUp", "Triangle", "Diamond", "LineH", "LineV", "BarH", "BarV", "MinusLine", "PlusLine", "XLine". <p> Note also that the definitions that are in the <a href="extensions/Figures.js" target="_blank">Figures.js</a> file are <em>not</em> entirely the same as their current definitions in the library. A number of figures have been improved and some figure parameters have changed meaning. </li> <li> <b>DiagramEvent.cancel</b> <p> The only use for this property was with the "SelectionDeleting" <a>DiagramEvent</a> in order to prevent the user from deleting the selection. Where one might have written this Diagram listener: <pre>"SelectionDeleting": function(e) { if (e.diagram.selection.any(function(p) { return p.data.key.indexOf("e") >= 0; })) { e.cancel = true; } },</pre> one can write the equivalent functionality with this <a>CommandHandler.canDeleteSelection</a> method override: <pre>"commandHandler.canDeleteSelection": function() { return !this.diagram.selection.any(function(p) { return p.data.key.indexOf("e") >= 0; }) &amp;&amp; go.CommandHandler.prototype.canDeleteSelection.call(this); },</pre> <p> Overriding the method supports the updating/enablement of commands that call <a>CommandHandler.deleteSelection</a>. Furthermore not having a "cancel" property on the DiagramEvent avoids any potential problems that might occur if there are multiple listeners for the "SelectionDeleting" event. The "SelectionDeleting" <a>DiagramEvent</a> remains useful, but not for controlling whether or not the deletion should happen. </li> <li> <b>GraphObject.fromEndSegmentDirection</b> and <b>GraphObject.toEndSegmentDirection</b> <p> These properties have not been useful. One can override <a>Link.getLinkDirection</a> to achieve the same effects. </li> <li> <b>TextEditingTool.doFocus</b> and <b>TextEditingTool.doBlur</b> <p> These undocumented properties were used to modify the default functionality of the TextEditingTool. That is now done by setting <a>TextBlock.defaultTextEditor</a> to an instance of <a>HTMLInfo</a> (new in 1.7). <p> For examples, see <a href="samples/customTextEditingTool.html">Custom TextEditingTool sample</a> and <a href="extensions/TextEditor.html">Text Editor default implementation extension</a>. </li> <li> <b>TextBlock.textEditor</b>, <b>TextEditingTool.defaultTextEditor</b>, and <b>TextEditingTool.currentTextEditor</b> <p> These properties are now primarily used with <a>HTMLInfo</a> values. HTML Elements will still work until version 2.0. </p> </li> </ul> </li> </ul> <hr class="changelog" /> <h4>Changes for 1.7.29</h4> <ul> <li> Fixed a case of missing layout animation. </li> </ul> <h4>Changes for 1.7.28</h4> <ul> <li> Typescript definition fixes. </li> <li> When <a>Part.move</a> is called as <code>Group.move</code>, the method no longer invalidates Link routes inside the group. </li> <li> Fixed regression in 1.7.23 with performing extra layouts involving nested Groups resulting in duplicate Transactions. </li> </ul> <h4>Changes for 1.7.27</h4> <ul> <li> Fixed <a>TextEditingTool</a> sometimes incorrectly ignoring non-<a>TextBlock</a>s in front of a <a>TextBlock</a>. </li> <li> Fixed <a>RelinkingTool.copyLinkProperties</a> to include copying the <a>Link.points</a>, so that when <a>Link.adjusting</a> is not None the behavior will be the same as for the original Link. </li> <li> Improved AvoidsNodes link routing to be more likely to find a shorter route by looking beyond the area of the two connected nodes. </li> <li> Improved link routing during <a>DraggingTool</a> moves to keep link routes while snapping is enabled. </li> </ul> <h4>Changes for 1.7.26</h4> <ul> <li> Fixed a regression when drawing large images scaled down, introduced in 1.7.21. </li> </ul> <h4>Changes for 1.7.25</h4> <ul> <li> Replaced the Angular 2 project with a newer Angular 4 project, at <code>projects/angular-basic</code>. This projected was created with Angular CLI; we then added a <code>diagram-editor</code> Component consisting of a <a>Diagram</a> and a <a>Palette</a>. That component takes a <a>Model</a> as an Input and produces <code>nodeSelected</code> and <code>modelChanged</code> as Outputs. The main app component shows editable details for the primary selection if it is a <a>Node</a>. </li> <li> Automatically redraw with improved sharpness as the user zooms the page. </li> <li> Fixed a bug where Pictures given a <a>GraphObject.maxSize</a> and no loaded <a>Picture.element</a> or <a>Picture.source</a> would measure incorrectly. </li> </ul> <h4>Changes for 1.7.24</h4> <ul> <li> Fixed a regression introduced in 1.7.18 with pinch-zooming on Microsoft touch devices in IE. </li> <li> Fixed a visibility bug when a non-visible <a>Part</a> switches layers. </li> <li> Events on the Diagram now attempt to find the Event target Diagram differently. This may help in libraries that use a shadow DOM or DOM scoping. </li> </ul> <h4>Changes for 1.7.23</h4> <ul> <li> Fixed a bug with SVG generation. Generated <code>&lt;svg&gt;</code> tags also now specify a <code>viewBox</code> attribute. </li> </ul> <h4>Changes for 1.7.22</h4> <ul> <li> Improved routing of links to non-visible member nodes of collapsed groups, when the spots of the group's default port are different than thespots of the non-visible node that the link is connected with. </li> <li> Diagram mouseOut now appropriately calls <a>Tool.standardMouseOver</a>, and <a>Tool.standardMouseOver</a> uses null as the current object if the mouse is not over the current Diagram. </li> <li> For wrapping, TextBlocks respect the maxSize of their Panel, but also accidentally conformed to their Panel's minSize. </li> <li> Diagram keyDown used to always preventDefault on keyDown events, but this is now overridable via <a>InputEvent.bubbling</a>. </li> </ul> <h4>Changes for 1.7.21</h4> <ul> <li> Drawing fix for HTMLVideoElement sources to <a>Picture.element</a>, which were broken in 1.7.5. </li> <li> Fix for the main element of a Panel (when using <a>GraphObject.isPanelMain</a>) sometimes getting cached incorrectly. </li> </ul> <h4>Changes for 1.7.20</h4> <ul> <li> Fixed <a>Panel.rebuildItemElements</a> not to remove any Links that were connected with item elements that are ports. </li> <li> Fixes for link routing during animation. </li> <li> Fixed slight shifting of <a>Group</a>s that have <a>Group.layout</a> being a <a>CircularLayout</a> after repeated layouts, including after expanding the subgraph. </li> </ul> <h4>Changes for 1.7.19</h4> <ul> <li> Added the <a href="samples/vue.html" target="_blank">Vue.js</a> sample, demonstrating a simple GoJS app in the <a href="https://vuejs.org">Vue.js</a> framework. </li> <li> Fixed a bug in <a>DraggingTool.moveParts</a> where it was incorrectly shifting Nodes when Nodes shifted by differing amounts. </li> <li> Extended <a>RotatingTool</a> to work on link labels; the user still cannot rotate whole Links or the <a>Link.path</a>. </li> <li> Restored behavior from 1.6 of <a>Model.fromJson</a> such that <code>linkdata.points</code> property value is of type <a>List</a>. Version 1.7 had allowed that property to remain as an Array of numbers. </li> <li> When a <a>Group.layout></a> was a <a>CircularLayout</a>, that layout was not respecting the implicit <a>Layout.arrangementOrigin</a> provided by the group by calling and remembering <a>Layout.initialOrigin</a>. </li> <li> Fixed Link arrowhead and Link label positioning when the object to be positioned is scaled. </li> </ul> <h4>Changes for 1.7.18</h4> <ul> <li> Improved multi-finger touch handling while doing single-finger operations, like dragging and panning. </li> <li> Fixed a bug where collapsing a Group in a LayeredDigraphLayout could cause incorrect routes for bezier links to member nodes. </li> <li> <a>Diagram.makeSVG</a> will now wrap the outputted TextBlock <code>&lt;text&gt;</code>s with <code>&lt;g&gt;</code> if the TextBlock has multiple lines of text. </li> </ul> <h4>Changes for 1.7.17</h4> <ul> <li> Fixed a bug in Grid Panel where it might not draw the last horizontal grid line. </li> <li> More extensions translated into TypeScript, at <a href="extensionsTS/index.html" target="_blank">ExtensionsTS</a>. </li> <li> Table Panels now allocate space to elements with a <a>GraphObject.stretch</a> value that also span multiple rows or columns in a more consistent fashion. </li> <li> Shapes inside a Grid Panel now respect <a>GraphObject.opacity</a> values. </li> <li> Label Nodes on labeled Links now are members of the link's containing Group, if any. </li> <li> Fixed a bug where if multiple Diagrams shared a Picture, they might not all be redrawn properly upon the image element loading or erroring. </li> </ul> <h4>Changes for 1.7.16</h4> <ul> <li> Translated and modularized the extensions into TypeScript <code>*.ts</code> files, in the <code>extensionsTS</code> directory. The compiled files are present in that directory as <code>*.js</code> files, which can be required or imported even if you are not using TypeScript. (Caution: all of the script in the HTML samples in the <code>extensions</code> directory have been split out into <code>...Script.ts</code> files, so try not to be confused by the corresponding <code>*.js</code> files, which will have <code>Script</code> in their names.) </li> <li> Fixed missing calls to <a>Node.linkConnected</a> and <a>Node.linkDisconnected</a> event handlers when connecting or disconnecting reflexive links. </li> <li> Fixed error in <a>Model.applyIncrementalJson</a> adding group nodes. </li> </ul> <h4>Changes for 1.7.15</h4> <ul> <li> Fixed scrollbar behavior when <a>Diagram.scrollMargin</a> was set. </li> <li> Fixed <a>ResizingTool</a> not re-routing reflexive links on <a>Group</a>s. </li> </ul> <h4>Changes for 1.7.14</h4> <ul> <li> Avoided undesired side effects of undo and redo after relinking duplicate links. </li> <li> Further improved the dragging between Diagrams that was modified in 1.7.13. </li> </ul> <h4>Changes for 1.7.13</h4> <ul> <li> Fixed a bug with pinch-zooming in some browsers. </li> <li> Fixed a regression with <a>Diagram.makeSVG</a> not including CORS-disabled images. </li> <li> Fixed a bug with the TextEditingTool when using custom HTML text editors. The code attempted to call <code>editor.focus()</code> and <code>editor.setSelectionRange()</code> before the editor was added to the DOM. This problem does not affect <a>HTMLInfo</a>, only HTML Element text editors. </li> <li> Improved dragging of nodes from a Diagram or Palette onto an empty Diagram without a new model. </li> </ul> <h4>Changes for 1.7.12</h4> <ul> <li> Added the <a href="extensions/NonRealtimeDragging.html" target="_blank">Non Realtime Dragging</a> sample, demonstrating how to customize the <a>DraggingTool</a> to have users drag around a translucent image of the selection, rather than actually moving those Nodes and Links, until the mouse up occurs. This makes use of the <a href="extensions/NonRealtimeDraggingTool.js" target="_blank">NonRealtimeDraggingTool.js</a> extension. </li> <li> The <a>DraggingTool</a> will now initiate auto scroll of the Diagram even if <a>Diagram.allowMove</a> and <a>Diagram.allowCopy</a> are false. </li> <li> Link labels along multi-segmented links with unspecified <a>GraphObject.segmentIndex</a>es will now have more accurate angles. </li> <li> Fixed a bug with TextBlocks when <a>TextBlock.wrapping</a> was set to <a>TextBlock.None</a>, it would size itself only by the last line. </li> </ul> <h4>Changes for 1.7.11</h4> <ul> <li> Fixed a bug in the <a>TextEditingTool</a> when editing TextBlocks with a non-default <a>TextBlock.textAlign</a> value. </li> <li> Fixed some Diagram construction orders not respecting screen pixel ratios. </li> <li> Fixed a <a>DraggingTool</a> bug when dragging disconnected links between Diagrams, when the destination Diagram had <a>Diagram.allowCopy</a> set to false. </li> <li> Fixed faulty locations when <a>Part.locationSpot</a> or <a>Part.locationObjectName</a> were modified when a Part was transformed (angle or scale). </li> </ul> <h4>Changes for 1.7.10</h4> <ul> <li> Fixed routing of <a>Link</a>s to rotated nodes with "...Side" Spots. </li> <li> Fixed routing of <a>Link.AvoidsNodes</a> Links that also had <a>Link.adjusting</a> set to <a>Link.End</a>. </li> </ul> <h4>Changes for 1.7.9</h4> <ul> <li> Added the <a href="extensions/ParallelRoute.html" target="_blank">Parallel Route</a> sample, demonstrating a custom <a>Link.computePoints</a> method in order to have multiple links between the same two ports have parallel segments. This makes use of the <a href="extensions/ParallelRouteLink.js" target="_blank">ParallelRouteLink.js</a> extension. </li> <li> Fixed some instances of ticks not rendering on Graduated Panels with small <a>Panel.graduatedTickUnit</a> values. </li> </ul> <h4>Changes for 1.7.8</h4> <ul> <li> Added the <a href="extensions/LinkLabelOnPathDragging.html" target="_blank">Link Label On Path Dragging</a> sample, demonstrating how to restrict the dragging of link labels to remain on the path of the link. This makes use of the <a href="extensions/LinkLabelOnPathDraggingTool.js" target="_blank">LinkLabelOnPathDraggingTool.js</a> extension. </li> <li> TableRows and TableColumns now update their ports correctly when scrolling by setting <a>Panel.topIndex</a> or <a>Panel.leftIndex</a>. </li> <li> <a>Link</a>s that have TwoWay Bindings of <a>Link.points</a> now copy faithfully between different Diagrams. </li> <li> When the <a>DraggingTool.dragsLink</a> is true, a drag of a Link that reconnects one or both ends of the Link will now raise one or two "LinkRelinked" <a>DiagramEvent</a>s. Just as with a "LinkRelinked" event raised by the <a>RelinkingTool</a>, the <a>DiagramEvent.parameter</a> will be the old port with which the Link had been connected. </li> </ul> <h4>Changes for 1.7.7</h4> <ul> <li> Added the <a href="samples/triStateCheckBoxTree.html" target="_blank">Tri-state CheckBox Tree</a> sample, demonstrating checkboxes for each item in a "tree view". </li> <li> Improved the performance of link routing when groups have a lot of member nodes and links. </li> <li> Fixed shadow scaling when making images. </li> </ul> <h4>Changes for 1.7.6</h4> <ul> <li> Added the <a href="extensions/RoundedRectangles.js" target="_blank">RoundedRectangles.js</a> definitions of figures that have rounded corners only at the top or only at the bottom. </li> <li> Added the <a href="samples/roundedGroups.html" target="_blank">Rounded Groups</a> sample demonstrating both Nodes and Groups that have rounded headers and rounded footers. </li> <li> Added the <a href="samples/twoHalves.html" target="_blank">Two Halves</a> sample demonstrating a Node template that has both a top half and a bottom half and that has rounded corners overall. </li> <li> Fixed cases where <a>InputEvent.left</a> remained true for mouse move events even after the left mouse button was released. </li> </ul> <h4>Changes for 1.7.5</h4> <ul> <li> Added the <a href="samples/minimalSVG.html" target="_blank">Minimal SVG Download</a> sample, demonstrating <a>Diagram.makeSvg</a> and "downloading" the resulting SVG file. </li> </ul> <h4>Changes for 1.7.4</h4> <ul> <li> Added the <a href="extensions/SectorReshaping.html" target="_blank">Sector Reshaping</a> sample, demonstrating a custom <a>Tool</a> that supports interactively changing the angle and breadth (sweep) and depth (radius) of a pie-shaped sector of a circle. The SectorReshapingTool is defined in the <a href="extensions/SectorReshapingTool.js">SectorReshapingTool.js</a> file in the Extensions directory. </li> <li> Fixed broken <a>Diagram.makeImageData</a> for "blob" return type. </li> </ul> <h4>Changes for 1.7.3</h4> <ul> <li> Added the <code>angular2-minimal</code> project, in the projects subdirectory. This is a copy of the Angular 2 Quick Start example, https://angular.io/docs/ts/latest/quickstart.html, augmented to show the GoJS "minimal" sample. </li> <li> Fixed another declaration in <code>go.d.ts</code>. </li> </ul> <h4>Changes for 1.7.2</h4> <ul> <li> Fixed missing declaration in <code>go.d.ts</code>. </li> </ul> <h4>Changes for 1.7.1</h4> <ul> <li> Fixed some corrupted image files in the samples. </li> <li> Renewed a Leaflet access token for the Leaflet sample. </li> </ul> <div style="border: 2px solid #1F4963; padding: 6px; margin-top: 30px; margin-bottom: 30px;"> <p><strong>GoJS version 1.7</strong> brings several new features and samples. Here are some highlights:</p> <ul> <li> From GoJS 1.7 onward there is a new method of licensing that does not require a separate <code>go.js</code> file download, instead it uses a license key. Read more on the <a href="intro/deployment.html">Deployment Intro page</a>. </li> <li> Added a new sample: <a href="extensions/FloorPlanner.html" target="_blank">Floor Planner</a> in the extensions folder. </li> <li> More intelligent link routing: GoJS now attempts to preserve Link routes when elements of a Node resize or move, but do not affect the link ports. </li> <li> Improved support for customizing tooltips, context menus and the <a>TextEditingTool</a> using a new class: <a>HTMLInfo</a>, which contains methods to show and hide custom HTML. HTMLInfo can be assigned as a value of <a>GraphObject.contextMenu</a>, <a>Diagram.contextMenu</a>, <a>GraphObject.toolTip</a>, <a>Diagram.toolTip</a>, or <a>TextBlock.defaultTextEditor</a>. Read more on the <a href="intro/HTMLInteraction.html">HTML Interaction Intro page</a>. </li> <li> New <a>Panel.type</a>: <a>Panel.Graduated</a>, used to draw regular tick marks and text along a main <a>Shape</a> element. Read more on the <a href="intro/graduatedPanels.html">Graduated Panels Intro page</a>. </li> <li> Added the <a>Panel.isEnabled</a> property, the <a>GraphObject.isEnabledObject</a> method, and the <a>GraphObject.enabledChanged</a> event. </li> <li> Added the <a>Panel.isClipping</a> property, which allows Spot Panels to designate their main Shape element as a clipping region instead of a drawn Shape. </li> <li> Added <a>Brush</a> methods for computing lighter or darker colors or Brushes. </li> <li> Added <a>Binding.ofModel</a> method, to support data binding of <a>GraphObject</a> properties to data properties that are on the <a>Model.modelData</a> shared JavaScript Object. </li> </ul> </div> <h4>Changes for 1.7 since 1.6.*</h4> <ul> <li> <b>Samples and documentation:</b> <ul> <li> Copied definitions for all <a>Shape.figure</a> figures to the <a href="extensions/Figures.js" target="_blank">Figures.js</a> file. All of the old figures are still predefined, so you will not need to load any section of this file. This file provides information about how each figure is defined, so that you can customize them or copy-and-adapt them. </li> <li> Copied definitions for all predefined templates to the <a href="extensions/Templates.js" target="_blank">Templates.js</a> file in the Extensions directory. The predefined templates are still predefined, so you will not need to load this file in order to use those definitions. This file provides information about how each template is defined, so that you can customize them or copy-and-adapt them. </li> <li> Added a new sample: <a href="extensions/FloorPlanner.html" target="_blank">Floor Planner</a> in the extensions folder. </li> <li> Added the <a href="samples/customExpandCollapse.html" target="_blank">Custom Expand Collapse</a> sample, demonstrating an alternative to the "TreeExpanderButton" and the use of the <a>Node.isTreeExpanded</a>. This sample is tolerant of cycles in the graph. </li> <li> Added the <a href="extensions/Hyperlink.html" target="_blank">Hyperlink</a> sample, demonstrating a "HyperlinkText" GraphObject builder that implements a standard hyperlink or "HTML anchor" control. The "HyperlinkText" builder is defined in the <a href="extensions/HyperlinkText.js" target="_blank">HyperlinkText.js</a> file in the Extensions directory. </li> <li> Added the <a href="samples/orgChartAssistants.html" target="_blank">Org Chart Assistants</a> sample, demonstrating a custom <a>TreeLayout</a> that positions "assistant" child nodes to the side, above the regular child nodes. </li> <li> Added the <a href="extensions/RadialLayout.js" target="_blank">Radial Layout</a> extension class, used by the <a href="samples/radial.html" target="_blank">Recentering Radial</a> sample and the <a href="samples/radialPartition.html" target="_blank">Radial Partition</a> sample. </li> <li> Added several new HTML pages that showcase existing extensions as standalone samples: <a href="extensions/DrawCommandHandler.html" target="_blank">Draw CommandHandler</a> <a href="extensions/GeometryReshaping.html" target="_blank">Geometry Reshaping</a>, <a href="extensions/GuidedDragging.html" target="_blank">Guided Dragging</a>, <a href="extensions/HyperLink.html" target="_blank">HyperLink</a>, <a href="extensions/LocalStorageCommandHandler.html" target="_blank">Local Storage CommandHandler</a>, <a href="extensions/ResizeMultiple.html" target="_blank">Resize Multiple</a>, <a href="extensions/RotateMultiple.html" target="_blank">Rotate Multiple</a>. </li> <li> Added the <a href="samples/htmlLightBoxContextMenu.html" target="_blank">HTML Light Box Context Menu</a> sample, a re-implementation of the default touch context menu using <a>HTMLInfo</a>, and references <a href="extensions/LightBoxContextMenu.js" target="_blank">LightBoxContextMenu.js</a> and <a href="extensions/LightBoxContextMenu.css" target="_blank">LightBoxContextMenu.css</a>. </li> <li> Added the <a href="extensions/TextEditor.html" target="_blank">Text Editor</a> sample, a re-implementation of the default text editor using <a>HTMLInfo</a>. It uses the <a href="extensions/TextEditor.js" target="_blank">TextEditor.js</a> extension. </li> <li> Reworked the <a href="samples/customTextEditingTool.html" target="_blank">CustomTextEditingTool</a> sample to use two <a>HTMLInfo</a> instances, defined in <a href="extensions/TextEditorRadioButtons.js" target="_blank">TextEditorRadioButtons.js</a> and <a href="extensions/TextEditorSelectBox.js" target="_blank">TextEditorSelectBox.js</a>. </li> <li> Reworked the <a href="samples/timeline.h