Download

Can't upgrade right now? You can find older versions of ReGraph here.

Want to learn more about how to build your own application?

Release notes

Version 5.6

September 16, 2025
A screenshot from Insurance Fraud showcase with nodes indicating insurance claims, witnesses, involved parties and damages

Features

  • The organic and lens layouts (and the lens arrangement for combos) are now better at reducing node label overlaps and creating a more readable chart. When tightness is set to values between 1 and 5, nodes with large labels are spread out more accurately to create fewer label overlaps without obstructions to the view. Insurance Fraud Analysis showcase.

Enhancements

  • We've improved the performance when selecting closed and open combos in very large charts.

Bugs Fixed

  • Circle node and glyph borders are always exported correctly into SVG and PDF.

Version 5.5

August 14, 2025
A chart with rectangular nodes decorated with various font icons

Features

  • To make it easier to integrate icon font libraries into ReGraph, you can now pass the icon's ligature string directly in the text property of fontIcon.
  • As a more modern approach to font loading, we are now using and recommending the document.fonts property from the CSS Font Loading API. We've implemented it in our stories, in the default Playground and also in the updated Fonts and Font Icons docs with brand new step-by-step tutorials.

Bugs Fixed

  • Interaction styling for combo labels is now applied correctly during the onItemInteraction event.

Deprecations

  • We've deprecated the FontLoader component using TypeKit's Web Font Loader and are planning to remove the component from the ReGraph package in the future. Use document.fonts from the CSS Font Loading API instead.

Version 5.4

June 30, 2025
Cyber Impact showcase screenshot

Features

  • The border API controlling the glyph border styling now has a new width property to customize the border width. Explore the new API in the updated Node Gallery and Link Gallery, or see the redesigned Cyber Impact showcase with an enhanced alert system and interactive annotation glyphs.

Enhancements

  • We've improved the performance of large charts with annotations. These improvements are especially notable for charts where annotations are linked to many subjects, and for annotated charts containing many nodes with text labels.

Bugs Fixed

  • Width of annotation labels is now calculated correctly.
  • Halos and donuts are exported correctly to SVG and PDF.
  • Dashed borders on circle nodes are now always drawn correctly.
  • Styles of removed items are always cleared without unnecessary console warnings.
  • Dragging an annotation returns the correct annotation id in the onPointerMove event.
  • The values in id1 and id2 properties of onLinkAggregation match the items at the ends of the aggregate link.
  • The TypeScript definition for GlyphLabel now inherits from LabelBase and not the other way around. This corrects some wrongly expected default values for the color of the labels.
  • The TypeScript definition of a watermark label is no longer of the Label type. Instead, it has its own WatermarkLabel definition, which inherits from Label and overwrites some default values.

Patch 5.3.2

June 18, 2025
  • Rectangular items with rounded corners no longer show artefacts in some browsers.

Patch 5.3.1

May 27, 2025
  • Fixed an issue where some pixels near a node label edge were incorrectly excluded from the interaction area.

Version 5.3

April 30, 2025

In this release, we've focused on improving the way combos are animated and laid out alongside other chart items. As a result, combo animations are now smoother than ever, and combos are laid out in charts more neatly and efficiently.

Explore the improvements in our new Social Media Analysis showcase.

In another great improvement, you can now create even richer chart designs with our new link label styling APIs.

The border option customizes the color, width and radius of borders around your labels, while the padding option controls the distance between the label text and the label border.

For more details, see our updated Link, Link Gallery and Path Finding stories.

two nodes representing airports and a link label between them indicating their distance

Enhancements

  • Thanks to improved anti-aliasing for rectangular labels, sloping rectangular labels are now drawn with smoother edges.
  • The organic layout is now even more efficient when adding items into large charts, resulting in less unnecessary movement and better performance.
  • Our Figma Design Kit is now in General Availability and you can download the latest version here.
  • The new changeEventThrottling time bar option lets you control the interval between individual onChange events.

Bugs Fixed

  • We've fixed a number of issues related to the onItemInteraction event.
  • Labels with minHeight set to 'stretch' are drawn correctly on auto-sized nodes and annotations.
  • Annotation containers around subjects nested in combos are now animated correctly during combo animations.

Patch 5.2.1

March 17, 2025
  • We recently launched the Cambridge Intelligence Figma Design Kit, which helps accelerate the design and build of your graph and timeline visualizations. It is now available to download here.

Version 5.2

February 12, 2025
a mix of styled circle and rectangular nodes with labels and images

Enhancements

  • We've refreshed our Advanced Node Gallery story with new node designs and our latest features to give you even more inspiration for node styling.
  • Our angled links now support flow animation.
  • Our aggregate links are now more performant in some situations including aggregating links between and within combos, foregrounding and fading aggregate links.
  • The Getting Started docs now feature new npm, yarn and pnpm tabs which automatically display the right steps for your selected package manager.
  • A new section in the Obfuscation Requirements docs clarifies your obligations with regards to any applicable Open Source Software (OSS) licenses.

Bugs Fixed

  • Link ends now correctly avoid node labels with rounded corners.
  • We've fixed a number of issues related to the onItemInteraction event.
  • Navigation controls work as expected in charts with large number of images.
  • Glyphs on nodes with certain node IDs are now positioned correctly on the node.
  • Node and link labels with a specified labelOffset are now always exported as expected.
  • Open combos containing nodes with width or height set to 'auto' now resize when the nodes change size.
  • Links between combos are aggregated correctly when combo is open with animate set to false in the animation prop.

Version 5.1

November 28, 2024
a chart with angled links with a down orientation in a sequential layout

Features

  • A new angled link shape provides an orthogonally branching link shape to help understand hierarchical relationships within tiered datasets. It is particularly suited to sequential layouts or arrangements, and is always aligned with their orientation property. See the Angled Links story.
  • As well as setting link shape on a per-chart or per-combo basis, you can also now set it for individual links, using linkShape. This means that you can now use link shapes to represent different types of relationship in the same chart, as illustrated in the Mixed Link Shapes story.
  • To help follow a particular path through a dense and overlapping chart, you can now assign priority to specific links so that they are shown clearly, in front of other links. This option can be especially useful when using angled links. Explore the use of link priority, used to highlight the attack path, in the Cloud Security demo.

These features are currently in beta. They are fully tested and safe to use in production, but we may still introduce breaking API changes in future versions. You can share any feedback to help us refine them by contacting us.

Enhancements

  • The technology behind the ReGraph Playground has been updated and improved, loading more quickly to provide a better development experience.
  • We've significantly improved performance of charts using the onItemInteraction event in various situations such as foregrounding combos or styling items selected by marquee selection.

Known Limitations

  • Using flow on angled links is currently not supported. We are working to add this feature in a future release. For more details, please contact us.

Bugs Fixed

  • An overview window set to a custom size now always looks and works as expected.
  • Fixed an issue where adding a set of glyphs on nodes could sometimes make the chart unresponsive.

Version 5.0

October 10, 2024

Let your charts speak with annotations!

When visualizing connected data, a beautiful chart is just the beginning — the next step is to tell the story behind the data.

ReGraph annotations bring a new dimension to graph visualization, fitting seamlessly into your application and elevating your workflow.

Annotations add a narrative layer to your charts so that you can analyze, capture, discuss and share insights directly within the chart. You can annotate nodes, links and combos, and annotations will stay readable at any chart size and zoom level.

Start exploring annotations in our brand new Annotations showcase.

Annotations for any use case

Turn AI-generated or algorithm-based alerts into annotations and highlight the most important parts of your network. Using ReGraph events, you can add interactive elements on annotations to allow your end user to deal with these alerts, creating an end‑to‑end in‑chart process for visualizing and resolving network alerts.

See an example of this in our updated Cloud Security showcase.

An image showing the Cloud Security showcase with an annotation

You can also use annotations to show real-time insights in a collaborative workflow between colleagues or investigators. The data-driven loading of annotations lets you save and then reload user-generated or user-editable insights. Once complete, export annotated charts into a shareable jpeg, svg, png or pdf format using the export function.

The Annotations showcase is an example of this create, edit and export workflow.

All levels of styling and customization

You have full control over the styling of annotations to create the look that suits your application design and interface.

The annotation body, styled in the annotation object, can show any content including text, images, font icons, or even simple buttons created using labels. You can also add your own controls such as editable text fields using an HTML overlay and the new labelPosition instance method.

The connector, styled in the connectorStyle object, lets you customize how annotations link to their subjects so that the connection is immediately clear to the chart users.

Explore the full range of possibilities in a new suite of annotation stories:

We've also added a new Annotations showcase where you can try out creating, editing and exporting annotations in a chart.

To get started with annotations, take a look at the new Annotations documentation.

Annotations are in beta. They are fully tested and safe to use in production, but we may still introduce breaking API changes in future versions. You can share any feedback by contacting us.

Enhancements

  • We've now also added an annotation to the Events story.
  • ReGraph fully supports Leaflet v1.9.x, and our SDK site now uses Leaflet v1.9.4.
  • We've updated our Welcome page with a fresh new design.
  • To continue improving security, consistency and quality of our codebase, we've added a new suite of scanners. Read more in the Security documentation.

Features out of Beta

After a period of improving, testing and implementing your feedback, the following are now officially out of beta:

Bugs Fixed

  • Loading a chart with an item set to undefined no longer produces an error.
  • The positions prop is now respected when positioning all items in the chart.
  • gridShape is now applied correctly when the combo data is loaded on first render.
  • Setting the overview option to true without specifying its backgroundColor now correctly defaults to the chart backgroundColor.

Breaking Changes

  • In previous versions, labels were drawn over glyphs by default. From 5.0, glyphs are now drawn over labels by default because this ordering is generally better when using both. To keep the order as before, with labels drawn over glyphs, set legacyGlyphAndLabelOrdering to true.
  • ReGraph now sets the overview backgroundColor to undefined by default which means that it's inherited from the chart backgroundColor. Previously the default overview background color was 'white'. To achieve the same look, set the overview backgroundColor to 'white'.

TypeScript Changes

  • The Item interface no longer contains fade and times properties. Instead, a new GraphItem interface extends Item and contains fade and times properties.
    The Node and LinkStyle interfaces now extend GraphItem.

Deprecations

  • We've deprecated the image instance method. Use export instead.
  • We've deprecated the gridShape option in the combo setStyle function. Set gridShape in the arrange property of the combo setStyle instead.

Advanced Notice: Retirement of LTA

We've deprecated ReGraph 3.10.1 (LTA), which means that from March 1, 2026, this version will no longer be available and support for this version will end.

Patch 4.8.1

July 23, 2024
  • Links between nodes in a single-level sequential layout are now always drawn correctly.

Version 4.8

July 11, 2024
An image showing image labels

Features

  • Create beautiful and coherent nodes with our new image labels. You can now use an image as a label, or use ReGraph's expanded advanced node styling to render images alongside text and font icon labels. See the Advanced Node Gallery story.
  • The Getting Started guide to Create New ReGraph App now uses Vite as a build tool to benefit from the package manager's quick setup and modern development features.

Enhancements

  • The number of images and font icons that ReGraph supports is now limited only by the user's hardware. ReGraph will performantly display up to 900 distinct images and font icons. Using more than this is not recommended as it may affect chart rendering performance.

Bugs Fixed

  • Open combos now resize correctly if their child nodes are resized to an undefined size (which defaults to 1).
  • Nodes with dimensions set to 'auto', containing multiple positioned labels, are now sized correctly around these labels.
  • Styling aggregate links with onItemInteraction no longer incorrectly shows a fade-related warning in the console.

Version 4.7

May 22, 2024
Explore KronoGraph

We've added a new Try KronoGraph page to help you learn more about KronoGraph, our timeline visualization product. The page features an intro to KronoGraph and access to a number of demos integrating KronoGraph with ReGraph:

Visit this page any time by clicking the banner on the main page.

Bugs Fixed

  • Aggregate links between combos now always use the correct combo ids.
  • Calling the fit instance method without changing the view no longer fires an onChange event after interacting with the chart.
  • The TypeScript definition of the onLinkAggregation's setStyle function no longer contains an incorrect id property and the documentation no longer incorrectly states that you can set a custom aggregate link id.

Version 4.6

April 24, 2024

Enhancements

  • To answer a popular request, we've added a new TypeScript version of the Annotation story.
  • We've made improvements to the packing algorithm which means that using 'circle' packing may now be up to 40% faster for large datasets.
  • ReGraph now fully supports Leaflet versions 1.9.x.

Bugs Fixed

  • A single onViewChange event is now invoked when the chart is first loaded.
  • Moving combo contents out of a combo now resets offsets of any links to its children.
  • Opening and closing combos with large numbers of children is now more performant.
  • Changing a child link's aggregateBy value to undefined now removes the link from the aggregate.
  • Nodes with dimensions set to 'auto' are now sized correctly when they contain labels with textWrap set to 'normal'.
  • An aggregate link is no longer created if its id is already in use by a non-aggregate link, and a warning is shown.
  • If a component is unmounted when rendering data, any unreturned promises are now caught and not reported as errors.
  • We've fixed some issues where child items or their decorations were not always fully contained within the parent combo's boundaries.

Patch 4.5.2

April 2, 2024
  • Resizing a window on MacOS machines with a specific hardware setup no longer draws temporary artefacts on the chart.

Patch 4.5.1

March 18, 2024
  • Our recommended version of PDFKit for PDF export is now v0.14.0. If you are using the previous recommended version 0.12.1, we encourage you to update to v0.14.0 as it addresses a vulnerability in a dependency of PDFKit.

Version 4.5

February 29, 2024
An image showing a sequential layout with open combos

Features

  • Discover the power of sequential in open combos with the new sequential arrangement. Set in the arrange property in the combo setStyle function, the sequential arrangement can help you drill down into sub- hierarchies and explore and interpret tiered data more easily. See more in our new Sequential Arrange story or in the updated Cloud Security showcase.
  • We've made sequential significantly more adaptive when handling data changes and small layout changes such as adding or deleting items. As a result, sequential now makes only necessary movements that preserve positions of existing items in the component as much as possible. Explore the improved behavior in the Adaptive Layouts story.
  • When using sequential layout or arrangement, the new stretchType property controls how individual levels are distributed when they contain items with varying sizes.
  • We've added an improved API for setting link paths, which was previously only possible at the layout level. There is now a new linkShape property for setting link paths for the layout, and a separate linkShape property for setting this for combos, so that you can fine-tune the appearance of your chart more effectively.

Enhancements

Bugs Fixed

  • Updating a node font icon now works as expected.
  • ReGraph now meets strict CSP directive for style-src.
  • Using combos with very large datasets is now more performant.
  • Fixed an issue with styling aggregate links using onItemInteraction.
  • Some dependencies that were previously incorrectly marked as required are now listed as optional.
  • Styling charts with very large datasets using onItemInteraction no longer causes a performance issue.
  • Using getViewCoordinatesOfItem to get information about glyphs on open combos now works as expected.
  • Using getViewCoordinatesOfItem to get information about labels on nodes styled with an array of label objects now works as expected.

Deprecated APIs

Patch 4.4.1

January 24, 2024
  • Aggregate link selection is now correctly reported in the onChange event.
  • Deleting a node at an end of an aggregate link always fires an onLinkAggregation event.
  • Aggregate links between nodes that are combined or uncombined are now always displayed correctly.
  • Interaction styling for combos is now applied/removed only after the open/close animation has finished.
  • Using the getViewCoordinatesOfItem method to get coordinates of nodes with a shape property now returns correct results.

Version 4.4

December 6, 2023
A video showing link aggregation

Styling for open combos

Open combos now support styling features from our 4.0 Node Styling release! Organize data in your open combos in line with your application's look and feel by using features such as multiple labels, custom label styling or pixel-perfect label positioning.

For rectangular nodes and combos, you can now set a label to minWidth: 'stretch' or minHeight: 'stretch' to get a bar label that fills the whole height or width of its parent and adjusts to any parent size, which makes it great to use as a header. In open combos, bar labels also don't get overlapped by the combo content.

In addition, open combos now support border radius to help you achieve consistent corner styling across labels, nodes, and open and closed combos alike.

And last but not least, you can now add glyphs to open combos and style and position them in the same way as glyphs on closed combos. If you style nodes or combos with both glyphs and labels, labels are drawn over glyphs by default. To reverse the order, set the new legacyGlyphAndLabelOrdering option to false.

See the new features come together in our new Network Alerts and Cloud Security showcases, or head to the Styling docs to see a new section on open combo styling.

Uncluttered view with link aggregation

Summarize links between the same pairs of nodes or combos with our new link aggregation feature.

Aggregate links represent their child links and visually reduce the number of connections in the chart, but still preserve all the data about the underlying links. To turn on link aggregation in your chart, set the aggregateLinks prop to true.

If you have different types of links in your chart, you can use the aggregateBy property to create more granular aggregation rules, and also set the aggregateByDirection property to take link directions into account.

Aggregate links can also be styled, for example to provide information about the underlying links using a summary glyph or to match your existing chart styling. To do this, pass the styling in the setStyle function of the new onLinkAggregation event.

To get started with link aggregation, head to the Basic Link Aggregation story or read more in our Aggregating Links docs.

  • All features in this release are in beta. You can share any feedback by contacting us.

  • We have changed the default alignment of label borders which is in beta from 4.0. The inside of the label border is aligned with the inside of the parent node/combo border. Previously, the outside of the label border was aligned. To get the previous label position, add a label margin that equals to the label's border width. For more details or help, please contact us.

Enhancements

  • We've added a new Save and Load story to show you how to capture and reload chart states in ReGraph.
  • Styling charts with very large datasets with onItemInteraction is now significantly faster.

Bugs Fixed

  • Link offsets between combos and other items are no longer drawn incorrectly due to hidden summary links.
  • Using onItemInteraction to add hover styling on open combos now works as expected.

Patch 4.3.1

November 9, 2023
  • Fixed various issues with watermarks.
  • Updating label properties in a node label object now works as expected.
  • The worldCoordinates instance method now correctly rounds outputs.
  • Loading a chart with a set view prop fires a single onViewChange event.
  • Passing a layout in the layout prop and undefined in the positions prop on the same render always runs a layout.
  • Changing the tightness inside a combo with a concentric arrangement no longer causes unexpected movement of child items.
  • The 'sans-serif' font is always used by default when a custom font is set incorrectly or doesn't exist and fails to load into the chart.

Version 4.3

August 31, 2023
An image showing ReGraph with OpenStreetMap

Enhancements

  • We've addressed an issue caused by a change to our existing external source of default map tiles. As a result, ReGraph now uses OpenStreetMap, licensed under the ODbL License, as the default map tile provider. We recommend that you set your own provider in the tiles property or check that your use is in accordance with the Tile Usage Policy before you deploy your charts with map mode to production.

Bugs Fixed

  • Panning and zooming a chart containing a large number of open combos is now more performant.
  • Exporting charts with curved links and color gradients no longer causes an error.
  • Using the sequential layout with a tightness value of 4 or less now produces the expected amount of space between items.
  • Adding datasets with a very large number of links into the chart is now more performant.

Version 4.2

July 12, 2023

Features

  • After a period of improving, testing and implementing your feedback, rectangular combos are now officially out of beta!
  • In this release, we made combos even more customizable with the new tightness option. Available for both circular and rectangular combos, tightness lets you control how tight or spread out the items are when they're arranged inside the open combo. You can set it in the arrange property passed to the setStyle function of the onCombineNodes event. Try it out in different combinations in the Grid Arrange story, and head to the Combo Tightness story for an example on a realistic dataset.

Enhancements

  • We've added a new documentation section About ReGraph that contains useful information about our development process.
  • The tightness property for the structural layout now affects the spacing between leaf nodes as well.
  • Similarly, the tightness property for the sequential layout, with the stacking option set to 'grid', now affects the spacing between the stacked nodes.

Bugs Fixed

  • A playing time bar no longer pauses unexpectedly.
  • Adding a large number of items to a combo no longer causes a performance issue.
  • Zooming with very small bordered labels now produces consistent results at all levels.
  • A state change animation of a node's size using the shape property now works as expected.
  • Using onItemInteraction to style items with images no longer causes a brief opaque flicker.
  • Using onItemInteraction to style charts with many items containing sub-items no longer causes a performance issue.

Patch 4.1.1

June 22, 2023
  • Using onItemInteraction to style and unstyle a combo which was implicitly faded by setting fade: false on another item no longer produces an error.

Version 4.1

May 24, 2023

Features

  • You can now set fade: false in the setStyle function passed to the onItemInteraction event handler to specify which items are foregrounded during an interaction. This new approach is both easier to use and 400% faster in terms of performance. See how it works in the Neighbors story.
  • We've added a new Geospatial Combos story that shows how you can simplify geospatial networks by grouping items into combos.
  • The orderBy property for sequential layout now accepts a sortBy option to specify whether the order should be ascending or descending. Try it out in the Hierarchies story.
  • The sequential layout is now 2x - 5x faster when running on a dataset with no set levels where the positions are calculated automatically.
  • The improved site-wide search now simultaneously displays search results from the ReGraph SDK site, relevant Cambridge Intelligence blog posts and webinars.

Bugs Fixed

  • Interaction styling on nodes is now always correctly replaced by the node's styling when the interaction is over.
  • Adding nodes that have labels with a borderRadius to some existing charts no longer makes the chart unresponsive.
  • Creating combos with custom IDs no longer causes an issue in ReGraph.
  • Setting the view to a fixed position by setting the view prop now works correctly even when animate is set to false.

Patch 4.0.1

March 16, 2023
  • Adding new items with invalid or partial styling simultaneously into new and existing combos no longer makes the chart unresponsive.

Version 4.0

February 27, 2023
An image with some examples of advanced node styling

A new era of node styling!

ReGraph 4.0 features major improvements to the customizability of nodes and node label styling.

It introduces custom-size rectangular nodes which offer even more space for information and look especially sleek in grids, with rectangular combos and with our sequential layout. You can also style them with rounded corners.

In another important enhancement, ReGraph lets you add multiple labels on a node to create information‑rich and styling‑rich nodes. Labels can truly take your node design to the next level - especially when you also use the new label styling API that lets you fine‑tune the look of your labels, use them as node styling tools or turn them into UI elements.

Custom-size rectangular nodes

Our improved rectangular nodes retain the same adaptive behavior and abilities as the default circle nodes. To create them, pass an object with width and height dimensions in the shape property. You can also give them rounded corners using the node border's radius. Get inspired in our new Cyber showcase and in the new Detail on Zoom and Advanced Node Gallery stories.

An image showing custom sized rectangular nodes

Multiple label API

To add multiple labels on a node, pass the labels as an array of objects in the label property. Each object is a label that can have a text or a fontIcon property, and that can also contain other styling options from the label styling API. See how it works in the Advanced Node Gallery or in the updated Node Gallery story.

Advanced label styling

With the new node label styling API, you can do things like:

  • Place your labels anywhere inside or outside nodes using the position property.
  • Customize the spacing inside or outside labels with margin and padding properties.
  • Format long content inside labels with textWrap property.
  • Optimize font size for any node size or zoom level with fontSize set to 'auto'.
  • Set the minHeight, maxHeight, minWidth and maxWidth of labels.

See also the Node Gallery story, Node Label API and the Advanced Node Styling docs.

Custom interactions with labels

With an unlimited number of labels come unlimited possibilities. As well as a source of information, here are some other examples of use:

  • Multicolor node styling (empty labels with set backgroundColor used as color blocks)
  • UI elements (e.g. progress bars sized by values in the nodes' data properties)
  • Buttons with interaction styling (using the onClick and onItemInteraction events)

Get started with the new APIs

Multiple labels and label styling are straightforward to use whether you're starting from scratch or updating existing code. To enable unlock the new APIs, place your existing label or font icon inside a label property array of objects, for example:

label: [
  { text: 'label' },
  { fontIcon: { text: '☺︎' } }
]

Note that multiple labels API and label styling API are currently in beta. You can share any feedback by contacting us.

Enhancements

  • To improve memory usage and performance, the value of data is no longer deep cloned when the property is imported to the chart model or retrieved from it.
  • Added a number of Playground improvements such as an option to format code in the Code and Data tabs using Prettier.
  • ReGraph now uses Leaflet v1.9.1.

Bugs Fixed

  • Removing a donut border on a closed combo by setting the border's width property to 0 no longer removes the border of the open combo.

Breaking Changes

  • Calling a chart instance method before the chart has finished mounting or after it has unmounted now correctly raises an error.
  • Babel's modular runtime helpers @babel/runtime-corejs3@^7.20 are now a dependency of ReGraph. See our Dependencies docs for details.
  • ReGraph no longer deep clones the data property object every time the property is imported to the chart model or retrieved from it. This affects all functions that accept or retrieve the property. To restore the previous behaviour, deep clone the data property object before passing it to ReGraph.
  • We've made some breaking changes to the TS definitions. See TypeScript Changes.

TypeScript Changes

  • Passing a list of Items in the View chart prop now correctly raises a TypeScript error.
  • Improved return type definitions for image, export, viewCoordinates and worldCoordinates chart instance methods.

Deprecated APIs

  • We've deprecated standard layout. We recommend using organic instead.
  • We've deprecated the center option. Use the position option instead.

End of Support

  • Support for Internet Explorer 11 has now ended.
  • Support for legacy onChart- and onTimeBar- events has now ended.
  • Support for LTA versions 1.11.0 and 2.4.0 has ended and the versions have been removed.

Patch 3.10.1

December 13, 2022
  • Revealed combo links are now layered correctly behind nodes.
  • Further fix to ensure that reusing summary link IDs that had been rendered and subsequently removed no longer produces an error.

Version 3.10

October 26, 2022

Features

  • We've updated our Timeline Analysis showcase to use KronoGraph 2.0. The latest version of KronoGraph now draws all entities and their events in the timeline to give you an instant overview of your dataset. To navigate through the overview, it uses a new lens feature that lets you enlarge a smaller set of entities, scroll, and investigate any interesting data points while keeping the overall context of where you are in your data.

Bugs Fixed

  • Adding data to sequential layout with packing set to 'aligned' now always produces the expected result.
  • Setting selection in the chart options prop to false no longer causes TypeScript errors.
  • Using the FontLoader component with React 18 no longer causes TypeScript errors.
  • Truncating long labels doesn't affect node spacing in the sequential layout.

Version 3.9

September 27, 2022

Enhancements

  • A new HTML tab in the Playground lets you add your own HTML code.

Bugs Fixed

  • Removing flow velocity decreases the level of CPU usage as expected.
  • Reusing summary link IDs between nested combos that had been rendered and subsequently removed no longer produces an error.
  • Adding a large number of unconnected nodes to the chart no longer makes it unresponsive.
  • The FontLoader component now works correctly in React 18 dev mode.
  • Animated glyphs no longer move unexpectedly during animation.
  • Borders of animated glyphs scale correctly during animation.
  • Spacing between multiple text lines scales correctly during node resizing.
  • The Chart and Stacked Bars Story is now displayed correctly.

Version 3.8

July 27, 2022

Features

  • A new gridShape option lets you control the number of rows or columns inside open combos with grid arrangement. Try it out in our new Grid Arrange story.

Bugs Fixed

  • Resizing node labels inside a combo now correctly adjusts the parent combo size if needed.
  • Adding data to sequential layout with packing set to 'aligned' always produces the expected result.
  • Reusing summary link IDs that had been rendered and subsequently removed no longer produces an error.
  • Passing a boolean object as the first parameter of the ping instance method no longer causes TypeScript errors.

Patch 3.7.1

June 6, 2022
  • Simultaneously opening multiple nested rectangular combos now always produces the correct result.
  • ReGraph now renders correctly when StrictMode is enabled in React 18.

Version 3.7

May 24, 2022

Features

  • A new onUpdateComplete event is invoked each time the chart has finished updating. You can use it for example to check when the chart animation is complete. Note that the event is currently in beta.
  • We've added three new chart instance methods that are intended for integration testing: getItemAtViewCoordinates, getItemInfo and getViewCoordinatesOfItem. See our new Testing tips docs for details. Note that these methods are in alpha, which means that we might change their behavior or introduce breaking changes in any release until the alpha status is removed.
  • You can share any feedback about our alpha or beta features by contacting us.

Bugs Fixed

  • Sequential layout always correctly adapts when chart items are removed.

Patch 3.6.3

April 12, 2022
  • Fixed an issue where ReGraph did not raise an onChange event after rapidly re-rendering a chart in map mode.

Patch 3.6.2

March 29, 2022
  • Fixed an issue with sequential layout where using automatic level detection on certain data inputs could sometimes result in an error.

Patch 3.6.1

March 24, 2022
  • Fixed an issue with internal tooling on the SDK site. There are no behavior changes to the ReGraph package.

Version 3.6

March 7, 2022

Features

The main theme of this release is a number of new features and improvements for our sequential layout:

  • You can organize nodes in your sequential layouts with the new stacking property. Setting its arrange option stacks groups of four or more same-level nodes with identical neighbors into grids that make even wide hierarchies readable without any zooming.
  • If your charts contain multiple disconnected subgraphs, you can now use the packing option to pack them like any other layout to make the most of the available screen space.
  • To showcase the powerful effect of stacking and packing options on a sequential layout, we've added a brand new Navigating Large Hierarchies story.
  • The new orderBy property lets you order the nodes within levels based on a value of a specified data property. See an example in our updated Hierarchies story.

Note: If you are setting packing for all your layouts, the setting will now also be applied to sequential. If you want to keep the previous behavior, set packing to 'aligned' for sequential layout.

Enhancements

  • The new setCorsAdapter config method sets the value of the crossorigin HTML attribute whenever ReGraph is trying to load an image from a third-party domain.
  • The onItemInteraction event is now in beta, which means that it's safe to use in production. You can still share any feedback by contacting us.

Bugs Fixed

  • Short links with a dashed line style are always exported correctly.
  • Adding new components to a chart with a single fixed component always positions new components correctly.

Patch 3.5.2

February 10, 2022
  • Fixed an issue with downloading exported images in a story on the SDK site.

Patch 3.5.1

January 31, 2022
  • Fixed an issue with internal tooling on the SDK site. There are no behavior changes to the ReGraph package.

Version 3.5

December 2, 2021
An image showing a ReGraph chart with organic layout

Features

  • In this release we've focused on performance of our organic and lens layouts:
    • The organic layout now uses 15% fewer position calculations to complete a layout. In addition, it is also 25% - 200% quicker when adding or removing items, and requires less movement while adapting to layout changes.
    • The lens layout now runs 500% faster in large networks and since lens is the default arrangement in circular combos, they're much faster to create and interact with too.
  • Our new Performance story measures ReGraph's performance using a sample dataset. You can also open the story in the Playground and run the test with your own dataset.
  • The contents property that shows or hides summary link's contents now accepts a dictionary with ids and truthy values for the child links that should be revealed. Try it out in the updated Summary Links and Selection Behavior story.

Bugs Fixed

  • Removing large number of nodes at once is now faster.
  • Navigation bar is now always displaying correctly in Safari.
  • The properties for ping instance method are correctly typed as optional.
  • The color property for label is now correctly typed.
  • Links connected to repositioned nodes are visible in map mode after toggling between chart and map mode.

Deprecations

  • We have deprecated ReGraph 2.4.0 (LTA), which means that from November 1, 2022 this version will no longer be available and support for this version will end.

Version 3.4

September 30, 2021
An example PDF report showing a ReGraph chart

Features

Present, share or publish your charts as PDF documents in just a few steps - ReGraph's export method can now be set to type:'pdf' to generate images of charts in the popular format. You can customize the output using the doc property by passing your own PDFDocument from PDFKit.

  • We've updated the Export story and added a brand new PDF Report story.
  • The new extents option specifies whether the whole chart or just its on‑screen view should be exported.
  • The export instance method is still in beta and you can share any feedback by contacting us.

Note: As stated in the Dependencies page of our SDK site, the optional functionalities of PDF export and map mode require the use of open source dependencies.

Bugs Fixed

  • Summary links restyled by interaction styling now always return to original styling when the interaction is finished.
  • Updating items while combining nested nodes no longer produces an error.

Patch 3.3.1

September 14, 2021
  • ReGraph now correctly falls back to canvas mode when hardware acceleration is disabled in Chrome v93 and Edge v93.

Version 3.3

August 24, 2021

Features

  • Rectangular combos are in beta! Their default 'grid' arrangement now keeps its neat rectangular shape at all times. In addition, we have also improved how rectangular combos work in combination with sequential layout. Try it out in our updated Combo Tightness story.
  • The new controlTheme property of the options prop can be set to 'dark' to turn the navigation and overview window controls into a dark mode. Check out the new look in the Dark mode story.
  • ReGraph now automatically applies RTL auto support once it detects any RTL characters. See the Right to Left Text story.

Bugs Fixed

  • Any errors that occur during onItemInteraction are reported in the console.
  • onItemInteraction no longer reports properties set in closedStyle when interacting with open combos.
  • Properties in closedStyle are respected even for automatically closed combos.
  • The fade property is now always respected when combos are created.
  • Various improvements to behavior of combos when using the fit:'auto' option.
  • Setting label center to null now shows the label correctly in the default position.
  • When interacting with multiple glyphs with the same angle property, the index of the sub-item is now always reported correctly.
  • Fixed an issue where adding items consisting only of single node components could cause overlapping.

Patch 3.2.1

July 29, 2021
  • Fixed an issue when using sequential with some data structures could cause the chart to become unresponsive.

Version 3.2

June 28, 2021

Features

  • The new onItemInteraction event unlocks a variety of hover and selection styling possibilities. You can style the items in the event's handler and the styling will only apply during the specified interaction.
  • We've added two new stories to help you explore interaction styling - Item Interaction and Donut Menu.

Note: onItemInteraction is currently in Alpha, so we don’t recommend using it in production just yet. We might change the behavior or introduce breaking API changes in any release until the Alpha status is removed. There are several scenarios when styling combos and sub-items which will be improved in an upcoming release.

An image showing site search
  • A new site-wide search box is now available at the top right corner of all SDK pages.

Deprecations

  • We have deprecated ReGraph 1.11.0 (LTA), which means that from June 1, 2022 this version will no longer be available and support for this version will end.

Bugs Fixed

  • Passing an empty object to the positions prop now always runs a full layout.
  • Switching from chart mode to map mode now always fires the onViewChange event with correct properties.
  • Running neighbors analysis with a dataset containing self-links no longer produces an error.
  • Defining end1 and end2 properties no longer prevents item style updates.
  • The time bar correctly renders option settings in smooth mode.

Version 3.1

May 10, 2021

Features

  • A little movement goes a long way: our default organic layout now adapts when you resize items, in addition to when you add or remove them. It keeps movement to a minimum and preserves the positions of existing items relative to one another. See the improvement in action in our Social Network Analysis showcase.
  • Report on the details: our new export instance method generates a high resolution .png, .jpg, or .svg image of the chart. Check out the updated Export story or try it out on a huge chart in the Performance showcase.
  • All the examples in our Docs are now hook-based, which means that all of the ReGraph sample code now uses functional components.

Deprecations

  • We intend to end support for Internet Explorer 11 from October 31, 2021. If you need more information or help, please contact support.

Bugs Fixed

  • TimeBar only reports range in the onChange event when relevant.
  • The view prop is correctly reported in onChange when the chart is passed positions on first load.
  • handMode: false is respected when the chart changes to map mode.
  • The dummyLink dragger now works correctly in map mode.
  • Existing nodes in items now appear immediately if assigned coordinates while in map mode.
  • The return type definitions for viewCoordinates and worldCoordinates no longer cause TypeScript errors.

Patch 3.0.1

April 19, 2021
  • onViewChange now fires consistently on first load.

Version 3.0

March 18, 2021

New events API!

ReGraph version 3 brings you a brand new events API that is more powerful, intuitive and more customizable than ever before.

While you can continue using the deprecated legacy events during the lifecycle of 3.X, we strongly recommend migrating your code as soon as possible to make the most of the new features.

ReGraph doesn't support simultaneous use of legacy and new events. Having both event types in your code will result in errors.

React-like experience and handling

  • Events are renamed to follow the naming of native React DOM events. Some events were replaced and many contain new and useful properties. See the new API for Chart Events and Time Bar Events.
  • Event handling is more functional and intuitive. All events are passed a single object as a parameter. See the new structure and properties in the updated Chart Events and Time Bar Events stories.
  • Other behaviors are also more similar to native React DOM events. For example, events now use preventDefault() to prevent default actions. Also, error handling is now done directly in the event handlers.

Customizable dragging

  • We've made dragging much more precise and easier to control. The new onDragEnd event replaces a number of events at once and can help you reduce your code.
  • With the new setDragOptions() function and properties such as button and modifierKeys, you can customize the dragging behavior to respond to various user actions such as key or button presses.
  • Check out the dragging possibilities in our two new stories - Snap to Grid and Drag Events.

Smoother high-frequency events

  • Some events such as onPointerMove, onDrag and onWheel now fire more frequently, giving you more information and control over the interactions in the chart.
  • We've added a brand new onViewChange event which fires continuously during chart view changes. Use it to create seamless actions and animations - just like our brand new HTML Annotations story.

Enhancements

  • Improvements to performance of combos in large datasets.
  • Dragging and selection are now handled separately. As a result, you can drag an item or the background without changing the active selection.

Bugs Fixed

  • Summary links are now updated correctly when child links have been removed from the combos.
  • Various issues linked to the legacy chart events and legacy time bar events are now fixed in the 3.0 events.

Breaking Changes

Using any ReGraph events (legacy or 3.0) simultaneously with native React DOM events is not possible unless the React DOM event is moved onto a wrapping div.

We've removed support for the following APIs:

  • The view API for legacy onTimeBarChange event. Use range instead.
  • The consistent property on the layout prop is now handled internally by ReGraph.

Deprecated APIs

  • We deprecated onChart- and onTimeBar- events. While you can still use them during the lifecycle of 3.X, we recommend migrating your code as soon as possible.
  • The new events API does not have a replacement for onError events. Errors are handled in the event handler.
  • The return objects of onCombineNodes and onCombineLinks are deprecated. Styling is now done using setStyle. See Styling.

We've also removed support for some previously deprecated APIs. See Breaking Changes.

Version 2.4

February 3, 2021
An image showing a KronoGraph and ReGraph integration

Features

  • KronoGraph is a new product for timeline visualization from Cambridge Intelligence. It can seamlessly integrate with ReGraph, unlocking even more possibilities for analysis and visualization of your data. Check out the two products working beautifully together in our new Timeline Analysis showcase.
  • More functional stories: You asked, and we have delivered! Most of our stories are now hook-based rather than class-based.

Bugs Fixed

  • Summary links can no longer have duplicate names.
  • Open parent combos now resize when closed child combos resize.
  • Switching to map mode fires only one change event.
  • The positions prop input validation has been improved.

Patch 2.3.1

December 15, 2020
  • Fixed an issue where the analysis package was encountering a 'navigator is not defined' error.
  • Fixed an issue where click events were firing twice in some circumstances.

Version 2.3

December 7, 2020
An image showing rectangular combos

Rectangular combos are here!

Our new rectangular combos provide a clear and condensed view of your data and its context. They also work particularly well with our sequential layout! Here are the technical details:

  • In the combine prop, there is a new shape property which supports 'circle' and 'rectangle'.
  • In the onCombineNodes return, there is a new 'grid' option for the arrange property. It is the default arrangement for rectangular combos.

You can try out rectangular combos for yourself in our Rectangular Combos story, or open any of our other combos stories in the playground and add shape:'rectangle' to the combine prop.

Please note: rectangular combos are in Alpha, so we don’t recommend using them in production just yet. We might still introduce breaking API changes, or change the behaviors or animations in any release until the Alpha status is removed.

We are very keen to hear from users who want to use rectangular combos. Please tell us about your experience with them by emailing [email protected].

Enhancements

  • Nested combos padding has been improved, particularly when the combo only has one other combo inside of it.
  • TypeScript users can now check that the properties included in the properties array in the combine prop are correct in the data objects of their nodes.
  • ReGraph now officially supports React 17, while retaining compatibility with v16.3 and up.

Bugs Fixed

  • Temporary dummy links are now drawn above combos.
  • The dummyLink drag return now works correctly with curved links.
  • Single page applications should no longer see a benign 'Chart has been destroyed' error.
  • The Getting Started instructions have been updated to work with Yarn 2.
  • Fixed an issue where onChartDragCancel was not firing in some circumstances.
  • Long press gestures on touch devices are now properly supported in the time bar.
  • The typing of value on the times property of items has been corrected to number.
  • Several scenarios with fit:'auto' have been improved.

Version 2.2

October 26, 2020

Features

  • A new curvedLinks property for styling the links of sequential layouts. When set to true, links join nodes in the direction of the orientation property. Check out the updated Hierarchies and Impact Analysis stories.
  • A new dummyLink API returned from onChartDragStart which triggers a dummy link dragger and lets the user create a new link. See the updated Create Link story and the Breaking Changes section for more information.
  • A new Material Icons story which demonstrates how to use Material Design icons with ReGraph.
  • Improved zooming experience with smoother scrolling.
  • Improved reliability of some multi-touch gestures such as pinch-to-zoom.
  • Added support for native macOS modifier key events such as ^+click to trigger a context menu or ⌘+click to add / remove items from the current selection.
  • Implemented a new internal Static Analysis / SAST tool for testing the ReGraph source code.

Bugs Fixed

  • ReGraph no longer waits for images to load when adding new data to the chart.
  • Touch-triggered selection changes are now correctly labeled as 'user'.
  • Multi-selection of items while holding the Shift key is available for touch devices.
  • An initial dragover event of 'null' is now fired for the chart background when a node is dragged.
  • Clicking the time bar no longer triggers drag events, and vice versa.
  • Clicking the chart background no longer publishes a selection change event if the selection has not changed.
  • Some font icons using Unicode code points from outside the Basic Multilingual Plane are now supported.
  • Font icons are now supported on link end glyphs.
  • Combos are now recognized by the top property in the layout prop.

Deprecations

  • The consistent property of the layout prop has been deprecated as most of its functionality is now handled internally by ReGraph.

Breaking Changes

The selection workaround previously used in the Create Link story no longer works. The story now uses the new dummyLink API. If your app gives your users the ability to create links by dragging between nodes, you will likely need to update your code. For any help migrating to the new format, please contact support.

Patch 2.1.2

September 25, 2020
  • Fixed an issue where the Leaflet object was sometimes not passed when the map was shown on initial load.
  • Fixed an issue where fit:'auto' was not fitting properly when items were added to an empty map.

Patch 2.1.1

September 10, 2020
  • Updated endpoint for GraphQL demos.

Version 2.1

September 1, 2020

Features

  • A new Combos Drag and Drop story which demonstrates how to move nodes between combos.
  • New data connection stories which demonstrate how to fetch data from a REST API or GraphQL endpoint.
  • A sidebar search box is now available on the Docs and API Reference pages.

Bugs Fixed

  • The fit property is respected when the Chart is initialized.
  • Improved the behavior of the chart in several scenarios when fit:'auto' is set.
  • Animated changes to item properties on selection change no longer cancel dragging.
  • Various sub-objects are now removed from items when set to null or undefined.
  • Unique package names resolve an issue when updating installations with yarn.

Patch 2.0.1

August 13, 2020
  • The onChartClick event now passes the subItem property when clicking on a combo.
  • The Filtering Data story info tab now links to the CSS file.
  • Improved the behavior of the chart in some scenarios when fit:'auto' is set.
  • Combos now work with falsey values, e.g. data: { group: 0 }.

Version 2.0

July 15, 2020

In ReGraph 2.0 the chart is better than ever at adapting to changes in your data and state. Adaptive layout and view strategies automatically tell the story of your data and keep your users informed.

For help upgrading from ReGraph v1.X, see the Version 2 Migration Guide.

Adaptive Layouts

Layouts have been improved to be more adaptive. Components will arrange themselves more intelligently when adding or removing items from the Chart.

ReGraph uses adaptive layouts so long as the positions prop is unset. No extra layout prop options are required.

Read more about Adaptive Layouts in the Cambridge Intelligence blog.

View Improvements

We've changed the way that ReGraph handles the view. By default, we'll maximize the visibility of changes to the Chart, while minimizing the amount the view moves. This helps keep the user informed as they manipulate the state of the chart.

A new fit option lets you control this behavior, or switch it off entirely if you want to ensure the viewport won't move.

In addition, we've introduced a new set of instance methods for the Chart and Time Bar which allow direct manipulation of the view.

As a result of these changes, the String values in the view prop for the Chart have been deprecated. The Time Bar view prop has been deprecated entirely.

Enhancements
  • Adaptive layouts with improved component packing.
  • Adaptive view adjusts to chart changes.
  • The overview window background and border colors can now be customized.
  • A new stretch option for the sequential layout to adjust the spacing between levels. Check out the updated Hierarchies Story.
SDK Improvements
  • A new Mafia showcase demo has been added to the SDK site which demonstrates the new adaptive layout and view behaviors.
  • An updated Adaptive Layouts story provides more detail about the adaptive layout behaviors.
  • Each story in the Storybook now has an Info tab to provide additional context.

Bugs Fixed

  • The times object on items is now typed properly.
  • The time bar range prop now uses the expected start and end values.
  • The time bar highlight prop now handles time ranges correctly.
  • The onChartDragStart event no longer triggers when a drag starts on a link.
  • The ReGraph chart will now filter out any item that is passed with an empty id like this, in addition to logging a warning:
    <Chart items={ '': { color: 'red' }}) 
  • ReGraph can now run without the dependency on the FontLoader component which allows the analysis package to run in web workers and other environments without browser windows.
  • Fixed a FontLoader error while running in React dev mode.
  • Fixed an issue when panning the view in Map Mode.

Breaking Changes

For details on how to handle the following breaking changes, see the Version 2 Migration Guide.

  • The default name in the layout prop is now 'organic'.
  • The default packing in the layout prop is now 'circle'.
  • The time bar range prop now uses the expected start and end properties, not dt1 and dt2.
  • The times object on items has been updated to accept a Date, number, or object containing start and end.
  • Various TypeScript changes to reflect API changes and bug fixes.

Deprecated APIs

  • The 'hierarchy' layout is now deprecated. Instead, please use:
    layout={{name: 'sequential'}}
  • The string values for the Chart view prop are now deprecated. Please use the new zoom, pan, and fit instance methods instead.
  • The time bar view prop is now deprecated. Please use the range prop and the new zoom, pan, and fit instance methods instead.

Version 2.0 Migration Guide

ReGraph version 2 has a number of improvements to reduce the complexity of your code in key areas, such as the layout and view props.

Getting the most out of layouts

ReGraph's default layout options have changed to:

layout={{name:'organic', packing:'circle'}}

We believe that these options provide the best experience, but if you want things to look as they did by default in version 1, then use:

layout={{name:'standard', packing:'rectangle'}}

When using packing:'rectangle', or setting the positions prop you will not get the new adaptive layout behaviors.

The 'hierarchy' layout has been deprecated. Please use our next-generation hierarchical layout 'sequential' instead.

View changes

The options prop has a new fit property which by default automatically adjusts the viewport to show your users the changing data in the chart. It massively simplifies how the viewport is managed and in many applications it should remove the need for you to set the view prop entirely.

We recommend removing the view prop in the render function of your application and running some regression testing to see whether the fit option handles things sufficiently. We'd be happy to talk through any cases where you still need to control the view on [email protected].

To make manual viewport adjustments more robust, we have replaced the string value view properties with zoom, pan, and fit instance methods. You will want to use these instance methods if you still need to pass a string value to the view prop.

You can continue to use the deprecated view prop to preserve existing behavior.

Time bar changes

The view prop has been deprecated in favor of the updated range prop. There are also new zoom, pan, and fit instance methods to make manual viewport adjustments more robust. You will want to use these instance methods if you were passing a string value to the view prop.

Additionally, the format for the times property on items has been updated to accept a Date, number, or object containing start and end. This prevents the situation where a times value could contain both a point in time and a duration.

Version 1.11

April 24, 2020
An image showing a sequential layout

Features

  • Automatic level detection for your hierarchical data when using the sequential layout, meaning the top and level options are now optional when using this layout.
  • There is a new Hierarchies story where you can explore the different sequential layout options.
  • The Combos and Timebar story has been updated to fade nodes instead of removing them.
  • Further styling updates to the SDK site in Docs, Storybook, and Playground. We'd love to hear what you think about the changes so far. Contact [email protected].

Bugs Fixed

  • Fixed an issue where layouts were not accounting for combo summary links.
  • Fixed an issue where nodes set back to default values weren't animating.
  • Fixed an issue with options.selection and falsey values.

Patch 1.10.2

March 26, 2020
  • Fixed an issue where summary link glyphs could not be cleared.
  • Fixed an issue where link end1 and end2 did not update correctly.

Patch 1.10.1

March 19, 2020
  • SDK site maintenance

Version 1.10

March 4, 2020

Features

  • A new Lazy Loading Combos story to help you load only the data your users want to see. This can significantly improve application performance.
  • A new subItem argument on our event handlers. This supersedes the sub argument.
  • A new onChartDragCancel event invoked when a state change animation cancels a drag.
  • A fresh new look for our SDK site. There are further improvements planned, but we'd love to hear what you think about the changes so far. Contact [email protected].

Bugs Fixed

  • The Chart component is now robust to user interaction during state change animations. See the related onChartDragCancel event, above.
  • ReGraph no longer reveals contents links between closed combos on selection.

Deprecations

  • The sub argument on event handlers has been deprecated in favor of subItem.

TypeScript Changes

  • The donut.segments property is now correctly typed to accept an array rather than an object.

Version 1.9

February 3, 2020

Features

Bugs Fixed

  • Fixed several cases where ReGraph was waiting for non-visible animations.
  • The ReGraph Chart will log a warning if an item is passed with an empty id like this:
  • <Chart items={ '': { color: 'red' }}) />

Deprecations

  • The time bar option histogram has been deprecated in favor of style. Instead of:
    <TimeBar items={items} options={ histogram: { color: 'red' } } />
    you should now write:
    <TimeBar items={items} options={ style: { color: 'red' } } />
    Note: histogram will continue to function until the next major version of ReGraph.

TypeScript Changes

  • The TypeScript definitions for the time bar have changed to accommodate the mode prop. The following changes may break existing code:
    • TimeBar.HistogramOptions has been renamed to TimeBar.StyleOptions.
    • The histo value for TimeBar.EventTypes has been removed. This affects the first argument of time bar event handlers.
    • The times property on items is now correctly typed. Check the API for more details.
    • The time bar highlight prop is now correctly typed. Check the API for more details.

Version 1.8

December 19, 2019
A video showing links being summarized between combos

Features

Bugs Fixed

  • Zoom to ids now animates correctly
  • When children of summary links are visible, they can be interacted with

TypeScript Changes

  • Some TypeScript definitions were updated to match our documentation
    • Chart.ComboNode → Chart.Combo
    • Chart.ComboLink → Chart.Summary

Version 1.7

November 27, 2019

Features

  • There is now a ReGraph playground at regraph.io/playground! You can open the code examples all over the site in the live editor by clicking on the yellow edit icon.
  • Instance methods to convert between view and world coordinates are now available. More details can be found here.

Bugs Fixed

  • Improved performance of some combo animations
  • Changing positions now respects the animation: {animate: false} property
  • Fixed an issue where view was sometimes not reported in onChartChange

Version 1.6

October 31, 2019
An image showing stacked bars in the time bar

Features

  • Stacked bars are now available in the Time Bar (see the Stacked Bars example).
  • A major update to our TypeScript definitions file to make it clearer and easier to use. Note: breaking changes to the TS definitions are included in this release (see TypeScript Changes below).
  • Evaluators will now see a watermark in downloaded versions of ReGraph.

Bugs Fixed

  • Chart components created by ReGraph are now named 'rg-chart-#'.

TypeScript Changes

  • Refactored several interfaces and removed the Formats namespace. Node and Link formats are now top-level interfaces.
  • Utilized generics to type the data property on Nodes and Links, as well as the Combo object in onCombineNodes.
  • Added a type definition for the FontLoader.
  • Added TypeScript section to Storybook.
  • Show All TypeScript changes
    • Chart.ChartChangeEvent → Chart.ChangeEvent
    • Chart.ChartEvents namespace merged with Chart.Props
    • Chart.ChartInstanceMethods namespace merged into the Chart class
    • Chart.ChartLabelOptions → Chart.LabelOptions
    • Chart.ChartOptions → Chart.Options
    • Chart.ChartProps → Chart.Props
    • Chart.ChartViewOptions → Chart.ViewOptions
    • Chart.ComboLinkStyles → Chart.ComboLink
    • Chart.ComboNodeStyles → Chart.ComboNode
    • Chart view prop values have been consolidated into a View type
    • Formats.Border → Border
    • Formats.Donut → Donut
    • Formats.DonutBorder → DonutBorder
    • Formats.DonutSegment → DonutSegment
    • Formats.FontIcon → FontIcon
    • Formats.Glyph → Glyph
    • Formats.Halo → Halo
    • Formats.Item → Item
    • Formats.Label → Label
    • Formats.Link → Link
    • Formats.LinkEnd → LinkEnd
    • Formats.LinkFlowOptions → LinkFlowOptions
    • Formats.LinkStyle → LinkStyle
    • Formats.Location → Location
    • Formats.Node → Node
    • Formats.NodeLabel → NodeLabel
    • Formats.StyledBorder → StyledBorder
    • Formats.Time → Time
    • Formats.TimePeriod → TimePeriod
    • IdIndex → Index
    • TimeBar.TimeBarChangeEvent → TimeBar.ChangeEvent
    • TimeBar.TimeBarEvents namespace merged with TimeBar.Props
    • TimeBar.TimeBarLabelsOptions → TimeBar.LabelsOptions
    • TimeBar.TimeBarOptions → TimeBar.Options
    • TimeBar.TimeBarProps → TimeBar.Props
    • TimeBar.TimeBarRange → TimeBar.Range

Version 1.5

October 3, 2019
An image showing labels on a link

Features

  • Significant performance improvements when making changes to large charts (see note below).
  • Labels and glyphs can now be added to link ends (see the Link Styles example).

Bugs Fixed

  • Overlaps are less likely when adding new components to the chart with most layouts.

Note on performance changes

To respond to state updates more quickly, we've increased the strictness of our change detection algorithm. This means that sub-objects on items must be re-created when modified.

If you have code that mutates these sub-objects, like this:

const item = { ...items[id] };
item.label.color = 'red';

You will now need to rebuild those objects, like this:

const item = { ...items[id] };
item.label = {
    ...item.label,
    color: 'red',
};

Patch 1.4.1

September 25, 2019
  • SDK maintenance

Version 1.4

September 19, 2019
An image of an organic layout

Features

  • A significantly faster organic layout - typically between 2x and 5x faster than before.
  • The ability to run sequential layouts by passing only a 'top' node - no need to specify levels for all nodes.
  • Improved aesthetics of sequential layouts.
  • Performance and stability improvements to the sequential layout on large datasets.
  • Ability to pass a list of items to the view prop to trigger a zoom to those items.
  • A new way to sign into the SDK site using email.
  • Various documentation improvements.
An image of a sequential layout

Bugs Fixed

  • Fixed an issue which could cause links in combos to have the wrong offset.
  • Fixed a problem where the time bar would not always zoom to fit its contents.

TypeScript Changes

  • Definitions for the Chart's view prop and onChartChange event have been expanded.
  • The ViewSettings interface has been renamed to ViewOptions.

Version 1.3

September 3, 2019

Features

  • The chart now uses adaptive styling which adjusts how nodes, links, and labels are drawn to suit the current zoom level.
  • Combos performance improvements.
  • Improved SDK site support for IE11.

Patch 1.2.1

August, 2019
  • Fixed an issue where initial chart render was waiting for image load.

Version 1.2

August 20, 2019

Features

  • Improved demo support for touch devices.
  • Various documentation improvements.

Bugs Fixed

  • Fixed combo labels default behavior with empty label property.
  • Default selection color applied if supplied color is invalid.

Patch 1.1.1

August 7, 2019
  • Fixed an issue where regraph/analysis could not access the core graph engine.

Version 1.1

August 5, 2019
Link flow

Features

  • New link property flow to allow animated flow along a link (see the Link Styles example).
  • New links.inlineLabels chart option for labels along links (see the Path Finding example).
  • New orientation property added to layout options (only for hierarchy and sequential layouts).
  • Organic layout has been improved and now has both rectangular and circular packing options.
  • Changing id1 and/or id2 on a link is now allowed.
  • Improved demo support for IE11 and Edge.
  • Various documentation improvements.

Bugs Fixed

  • Non-integer width containers caused ReGraph to continuously resize itself vertically.
  • ReGraph can now work alongside KeyLines.
  • Simplified the Chart and Time Bar example.
  • Time Bar can now be given open-ended times.
  • Various improvements to combos.

TypeScript changes

  • Definitions for the return object of onCombineNodes and onCombineLinks now contain Node and Link styles.

Patch 1.0.1

July 25, 2019
  • Combos sometimes crashed when combos contained non-string node labels.
  • Layout now happens when transferring items to new combos.

Version 1.0

July 22, 2019

Features

  • Various documentation improvements

Bugs Fixed

  • Fix for potential infinite loop in some circumstances.
  • Shaking combo nodes could cause their contents to become detached.

TypeScript breaking changes

  • Logo → LogoOptions
  • Locale → LocaleOptions
  • Zoom → ZoomOptions
  • Changed type of TimeBar property items to be Items.
  • Removed TimeBarChangeEvent.selection (this shouldn't have been there).

Known issues - we are working on fixes to these

  • Non-integer width containers can cause ReGraph to continuously resize itself vertically.
  • Interacting with ReGraph during state changes can cause unwanted side-effects.
  • The performance of certain transitions can be improved.
  • Under some circumstances nodes can be positioned outside of their containing combo.
  • Some demos can fail to load under IE11 and Edge.

Version 0.10

July 15, 2019
  • Four new showcases
  • New welcome page
  • Neighbors function can now take string id as argument
  • Chart and time bar no longer override specified CSS styles
  • Glyphs have a default gray color (note this represents a breaking change in scenarios where you have icons or images in glyphs without a background color specified)
  • More stories use the data panel now
  • Path finding demo now shows times and distances
  • Bugs fixed:
    • Time bar selections weren't always consistent with state
    • onChartChange now reports why:'auto' correctly
    • Layout was not always happening in some circumstances
    • Chart options for selection weren't unsettable
    • Animation timing was wrong for multiple simultaneous transfers between combos

Version 0.9

July 4, 2019
  • New example showing combos and time bar together
  • Fix for bug where combos didn't rearrange when asked
  • Change in behavior for selected nodes that have links into combos
  • Chart options navigation example improved
  • Many documentation improvements
  • TypeScript breaking changes:
    • Layout → LayoutOptions
    • pingOptions → PingOptions
    • imageOptions → ImageOptions

Version 0.8

June 27, 2019
  • Fix for filtering items in combos with more than one level
  • Improved animations between combo states
  • Various combo fixes for custom ids
  • Labels have a maxLength property (this was mistakenly called 'truncate' in earlier versions)
  • Many documentation fixes

Patch 0.7.2

June 14, 2019
  • Fix for import via commonjs.

Patch 0.7.1

June 7, 2019
  • Fix for 'double bounce' issue when animating some state transitions
  • Fix for items becoming detached from combos in some circumstances
  • Fix for combo shortest paths example

Version 0.7

June 6, 2019
  • Added TypeScript support
  • Exposed underlying Leaflet object for map customization in Geo mode
  • New Geo layering example
  • Added 'ping' animations to nodes and links
  • Export of Chart to PNG format
  • The time bar allows three selection lines rather than just one

This release has one breaking change in the analysis namespace: shortestPath return values 'one' and 'onePath' now return an ordered array of ids along the path.

Version 0.6

May 28, 2019
  • Sequential layout added to layout examples
  • Significantly improved memory management when showing/hiding the React components repeatedly
  • Rendering performance is now 50% faster
  • Lens layout is now better at handling mixtures of node sizes, as are combo arrangements

Version 0.5

May 22, 2019
  • Combo animation improvements - some transitions are now much smoother
  • Added a data tab to stories so developers can see the data the story uses
  • Time bar has a minimum height of 100px if height not specified
  • Changed dependencies: webfontloader is now a full dependency of ReGraph
  • Corrected license statement in package.json
  • Fixed some combo issues

Figma Design Kit

The Cambridge Intelligence Figma Design Kit is a powerful new tool to accelerate the design and build of beautiful, branded graph and timeline visualizations that seamlessly fit into your application UI. It aligns with our product feature sets and APIs, ensuring a faster and smoother Design-to-Development handover.

To use the Figma Design Kit, download it, and then either drag the .fig file, or import it, into your Figma project(s).

Request a trial (Required to download)   Download The Figma Design Kit

Long Term Availability (LTA) Releases

We always recommend using the most recent version of ReGraph, as it includes the latest features, enhancements and performance optimisations. Every release is stable and suitable for production use. We understand that you might not be able to do this right away, especially if it means upgrading to a new major version.

If you’d prefer to continue using a previous major version, you can download a ReGraph Long Term Availability (LTA) release.

With each major release we will make an LTA release of the previous minor release available. We’ll always provide at least 12 months notice when we intend to remove an older LTA version.

LTA release support

If you’re using an LTA release, you’ll get the same high level of support from ReGraph developers. We can't retrofit bug fixes in an LTA release, but if you find an issue, please report it to [email protected].