Version 2.3.10, [July 14th, 2022]

The 2.3.10 release fixes zoom triangle drawing (triangles could be drawn outside their group area).

Bug fixes

[CIRCLES-GH-3]

Zoom triangles could extend beyond their group area. Zoom triangles are now drawn properly. An additional improvement includes drawing narrower zoom triangles if the zoomed group is very narrow itself.

Version 2.3.9, [June 6th, 2022]

The 2.3.9 release adds a few options to allow full customization of group selection and hover coloring.

New features

[CIRCLES-GH-1]

These two new options groupSelectionOutlineStyle and groupHoverOutlineStyle determine the shape drawn for selected and hovered-on groups. Please see examples in the API documentation for details.

[CIRCLES-GH-2]

An expert-level callback onBeforeGroupDrawn has been added to aid in situations when the default color model is not sufficient or needs to be changed in between group redraws. Please see examples in the API documentation for details.

Version 2.3.8, [January 19th, 2021]

The 2.3.8 release exposes Circles as an NPM dependency for modern software building systems.

New features

[CIRCLES-243]

Starting with version 2.3.8, in addition to the conventional downloaded package, Circles is also be available as an NPM dependency. Both the branded demo and the non-branded licensed build is available in the new format.

Bugs

[CIRCLES-241]

Circles would not properly render visualization updates, such as data model or attribute changes, while its container element had the display: none style. Version 2.3.9 fixed this issue; parameter and model updates will redraw the backing canvas accordingly.

Note that the container element must still be visible at least once (upon embedding or at least one call to resize) so that its dimensions are known to the visualization.

Version 2.3.7, [December 11th, 2018]

This is a maintenance release fixing an issue with label rendering.

Deprecations, migration guide

[CIRCLES-240]
groupLinePadding property has been deprecated and will be ignored. Instead, use line-height-relative groupLinePaddingRatio.

Bugs

[CIRCLES-239]
Truncated labels on Chrome and Firefox. This is due to changed interpretation of canvas's textBaseline property in both browsers (spec-compliant). We rewrote the entire font metrics collection routine as part of this issue. Labels should no longer be truncated, even if certain glyphs protruded outside of the typical line area.

Version 2.3.6, [December 16th, 2016]

This is a maintenance release.

Bugs

[CIRCLES-237]
Inscribed title bar did not obey centerx and centery shifts.
[CIRCLES-236]
Spurious layout() invocation on retrieving image data.

Version 2.3.5, [November 9th, 2016]

This is a maintenance release fixing a regression in release 2.3.4.

Bugs

[CIRCLES-235]
Release 2.3.4 added a feature of removing expanders for groups from which all the children have been removed by means of the isGroupVisible callback. Unfortunately this also introduced a regression bug: when this callback wasn't declared at all, no expanders would be drawn at all. This fixes this issue.

Version 2.3.4, [September 22nd, 2016]

This is a maintenance release fixing a problem with expanders and invisible groups.

Bugs

[CIRCLES-234]
This bug fixes the situation when all subgroups of a parent group were hidden (by means of the isGroupVisible callback), and visibleGroupCount limit was used to display an expander triange. In such a scenario the the group expander was still displayed, even though there was nothing to display.

Version 2.3.3, [February 26th, 2016]

This is a maintenance release fixing a critical bug in release 2.3.2.

Bugs

[CIRCLES-233]
Release 2.3.2 introduced a critical bug which leads to javascript code breaking on undefined property 'options'.

Version 2.3.2, [February 9th, 2016]

This is a maintenance release fixing a minor glitch in image data property rendering.

Bugs

[CIRCLES-232]
imageData does not redraw labels correctly if deferLabelRedraws is enabled.

Version 2.3.1, [September 24th, 2015]

This maintenance release brings minor new features, improvements and cosmetic bug fixes.

New features

[CIRCLES-223]
Added the update method which allows animating weights of existing groups.
[CIRCLES-228]
Added the element option for providing the DOM element in which Circles is to be embedded.
[CIRCLES-221]
Added "documents-in-cluster" component example known from Circles flash.

Improvements

[CIRCLES-225]
Enabling the logging attribute results in immediate console feedback (instead of being quiet).
[CIRCLES-229]
Deprecated property webkitMovement* warnings are no longer emitted.

Other changes

[CIRCLES-226]
Removed 0x0 pixels container element size warning. The visualization will work with 0x0 containers, but it won't display anything (and must be resized manually once the element changes size).

Version 2.3.0, April 9th, 2014

This release brings a roundup of bug fixes from the maintenance branch and a few minor features.

New features, Improvements

[CIRCLES-219]
Make the default logo a tad smaller (esp. for demo version).
[CIRCLES-214]
Added pixelRatio to imageData for compatibility with FoamTree and easier higher-resolution visualization captures.
[CIRCLES-217]
Added a simple demo of using WebFonts to simulate Circles 1.x look.
[CIRCLES-218]
The color of zoomed-in group decorations is now customizable via zoomDecorationFillColor and zoomDecorationStrokeColor.

Bugs

[cumulative]
A roundup of all bugs and minor enhancements from 2.2.x maintenance line.

Version 2.2.4, February 4th, 2014

This is a bugfix release.

Bugs

[CIRCLES-213]
Assertions should allow CSS predefined color names, such as "black".
[CIRCLES-212]
An exception could be thrown when changing from a null model and modifying visualization attributes in onModelChanged.
[CIRCLES-211]
Opening all groups on an empty model causes an exception.
[CIRCLES-210]
Circles does not work for containers with 0x0 size (throws InvalidStateError and becomes unusable).
[CIRCLES-208]
Fixed documentation typos (related to onload event).

Version 2.2.3, October 2nd, 2013

This is a bugfix release.

Bugs

[CIRCLES-205]
Selection and hover are not properly displayed (regression in version 2.2.2).

Version 2.2.2, September 3rd, 2013

This release brings a bunch of minor fixes and tweaks.

New features, Improvements

[CIRCLES-195]
nhttpd starts on port 8080 by default.
[CIRCLES-202]
imageData and other attributes with odd defaults should not show up in the documentation.
[CIRCLES-199]
onGroupClick and onGroupDoubleClick now expose ctrlKey, shiftKey, altKey and metaKey properties.
[CIRCLES-204]
An example of handling dynamic removal of groups from view.

Bugs

[CIRCLES-200]
An invisible group should not display selection.

Version 2.2.1, July 17th, 2013

This release corrects the example snippets for mobile devices and fixes an issue with IE10 event propagation. The visualization code is identical to 2.2.0.

Bugs

[CIRCLES-196]
Click-through layer events are not propagated on IE10 (examples only).
[CIRCLES-192]
Screen not refreshing properly on an iPhone after orientation change (examples only).

Version 2.2.0, June 19th, 2013

This release brings a bunch of new features.

New features, Improvements

[CIRCLES-187]
groupShape() function to retrieve each group's current shape. This can be used to track groups on screen and this demo shows where such a feature may be handy.
[CIRCLES-115]
Integrated title bar component. See titleBar attribute and the simplest showcase example.
[CIRCLES-182]
Added read-only layout attribute for accessing the current (most recent) layout state.
[CIRCLES-181]
Support for multiple callback listeners. Check out this section of the manual for a description how to pass multiple callback listeners to the visualization.
[CIRCLES-184]
An example of an external title bar component handling via callback events.

Bugs

[CIRCLES-190]
The deprecated attribute angleEnd does not work as advertised.
[CIRCLES-186]
Double click was emitted when position delta was higher than some threshold.
[CIRCLES-185]
onRedraw callback was never called. Also improved the documentation on this callback.
[CIRCLES-177]
Endless loop freezing the browser on expanding a single group at the root level.

Deprecations, migration guide

[CIRCLES-181]
The new multiple callback listeners feature is designed to be backwards compatible but there are minor deviations from previous behavior. The value returned from the visualization on get() calls will always be an array of functions bound to the given callback (it was previously the current function reference). Where callbacks return a value (as in onBeforeSelection), any callback can veto the change (mutual consensus is not required).

Version 2.1.0, February 26th, 2013

This release brings a number of improvements to the core animation and rendering routines, documentation and examples. Make sure to check out the list of examples, as well as the new documentation.

New features, Improvements

[CIRCLES-138]
New documentation, all API examples are now executable.
[CIRCLES-166]
The distribution bundle now comes with an assertions file which can be included in your pages during development, this will result in validation of attributes and other helpful messages printed to the console. See the debugging section in the API reference for more information.
[CIRCLES-127]
attributionSize callback to make attribution logo size customizable (in particular when branding is locked)
[CIRCLES-124]
Clockwise and counterclockwise layout directions are now possible via angleWidth attribute. Check out this example for the possibilities.
[CIRCLES-119]
Add isGroupVisible callback attribute to allow invisible groups (gaps). Check out this example to see an example where this can be useful.
[CIRCLES-109]
Seamless handling of label blending on rapid succession of tweens.
[CIRCLES-110]
Configurable model change animation parallelism via the modelChangeAnimations attribute.
[CIRCLES-143]
String weights that are numeric are respected.
[CIRCLES-154]
Tweaks to the default rainbow color model.
[CIRCLES-139]
Added ringShape attribute for non-uniform, customizable per-group ring sizes.
[CIRCLES-155]
Allow bubbling mouse events (disable capturing) via captureMouseEvents option.
[CIRCLES-158]
ratioAspectSwap allows controlling labels aspect (radial/angular).
[CIRCLES-165]
Explicit control of attribution fade-in time with attributionFadeInTime attribute.

Bugs

[CIRCLES-172]
Control key could be undetected in events under internet explorer.
[CIRCLES-108]
Performance regressions on initial loading and fast transitions.
[CIRCLES-117]
Hover highlights don't show on IE9 and Safari.
[CIRCLES-118]
Logo images could be slightly blurred.
[CIRCLES-121]
Changing selection via an API call produces a callback event.
[CIRCLES-140]
Sequential model change does not work for rapid succession of calls.
[CIRCLES-142]
When a container with fixed positioning is used mouse coordinates are incorrect.
[CIRCLES-144]
Removed enforced label fade out times with certain rollout/pullback transitions.
[CIRCLES-148]
imageData property could still be black during onRolloutComplete when no animations were used.
[CIRCLES-149]
It is not possible to apply open attribute to the root object.
[CIRCLES-156]
Attribution image may disappear after window is resized.
[CIRCLES-157]
Incorrect callback arguments for centerx, centery and diameter if pixelRatio != 1
[CIRCLES-163]
NaN can appear in rainbow color calculation (luminance) if parent.groups.length == 1.
[CIRCLES-164]
Group identifier that evaluated to false was not properly detected (an id of '0' for example).

Deprecations, migration guide

[CIRCLES-124]
angleEnd parameter has been deprecated and will be removed in future versions. Please change your code to use the more flexible alternative: angleWidth.
[CIRCLES-122]
Removed deprecated attributes: selectionColor, selectionOutlineColor and selectionOutlineWidth to comply with FoamTree API. They are now called, respectively: groupSelectionColor, groupSelectionOutlineColor and groupSelectionOutlineWidth.

Version 2.0.3, January 14th, 2013

Maintenance branch for 2.0.x release.

Bugs

[CIRCLES-122]
Aliased selectionColor, selectionOutlineColor and selectionOutlineWidth to comply with FoamTree API. They are now called, respectively: groupSelectionColor, groupSelectionOutlineColor and groupSelectionOutlineWidth. Aliased old attributes will be removed in release 2.1.0.
[CIRCLES-121]
Changing selection via an API was producing a callback event which is inconsistent with the API description and might have led to endless loops.

Version 2.0.2, December 27th, 2012

Maintenance branch for 2.0.x release.

Bugs

[CIRCLES-117]
Hover highlights don't show on IE9+ and Safari.
[CIRCLES-116]
Label component has differing canvas and CSS dimensions.

Version 2.0.1, December 20th, 2012

Maintenance branch for 2.0.x release.

New features, Improvements

[CIRCLES-110]
Configurable model change animation parallelism via the modelChangeAnimations attribute.

Bugs

[CIRCLES-109]
Seamless handling of label blending on rapid succession of tweens.
[CIRCLES-108]
Performance regressions on initial loading and fast transitions.

Version 2.0.0, December 6th, 2012

Official release of Circles HTML5. Reimplementation from Flash to HTML5.

Version 2.0.0-rc2, November 21th, 2012

Circles HTML5 release candidate 2.

Version 2.0.0-rc1, November 16th, 2012

Circles HTML5 release candidate 2.