Releases: d3/d3
Releases · d3/d3
3.2.2
- Add missing transition.size method.
- Augment adaptive resampling with a 30° angular distance threshold, improving performance.
- Better handling of drag gestures in d3.behavior.drag, d3.behavior.zoom and d3.svg.brush by not preventing default behaviors or stopping propagation. For example, mousedown now changes focus, mouseup outside an iframe works correctly, and touchstart does not stutter.
3.2.1
- Fix d3.behavior.zoom for Android.
- Fix d3.min, d3.max and d3.extent for objects with non-orderable values (e.g.,
new Number(NaN)
). - Fix d3.bisect for non-orderable search value; now returns NaN.
- Fix d3.scale.threshold for non-orderable input values; now returns undefined.
- Fix transition.selectAll when the specified function returns null nodes.
- Fix brush.clamp when no scales are yet attached to the brush.
3.2 “Point Lobos”
- Add d3.dsv to support generic delimiter-separated values (e.g., "|") beyond TSV & CSV.
- Add selection.size to count the number of selected elements.
- Add xhr.responseType.
- Add quadtree.extent; deprecates size.
- Add voronoi.clipExtent; deprecates size.
- Add tree.nodeSize and cluster.nodeSize for fixed-size nodes.
- Add pack.radius for explicit control of circle radius.
- Add count argument to linear.nice and pow.nice to control nicing precision.
- Add threshold.invertExtent and quantize.invertExtent.
- Add "step" to line.interpolate and area.interpolate.
- Add brush.clamp to control extent clamping.
- Add support for parsing day-of-year, week-of-year, etc. in d3.time.format.
- Add missing selection.call on enter selections.
- d3.xhr now prefers XMLHttpRequest to XDomainRequest for cross-origin requests, if supported (IE10).
- More accurate d3.geo.area implementation.
- Improve d3.geo.centroid; now supports area-weighted polygon centroids, zero-extent features and improved handling of ambiguous centroids.
- Improve accuracy of geographic clipping and detection of polygon winding order.
- Improve accuracy of geographic adaptive resampling by enforcing a linear minimum sampling distance.
- Improve performance of d3.geo.path by caching projection streams.
- Fix d3.mouse when stylesheets apply padding, margin or borders to all SVG elements.
- Fix d3.behavior.zoom and d3.behavior.drag in regards to canceling mousedown. Zooming and dragging now play nicely with iframes on bl.ocks.org!
- Fix d3.geom.voronoi with custom accessors.
- Fix d3.layout.pack with small-radius circles.
- Fix log.tickFormat; now accepts a string as the format argument.
- Fix time intervals in Firefox when using British Summer Time.
3.1.10
- Fix xhr.response such that if the function errors, it is reported as an error rather than crashing. For example, if d3.json attempts to parse invalid JSON, the callback is now invoked with a ParseError.
- Fix IE9 race condition when a synchronous error invokes xhr.response before it is set.
- Fix d3.timer such that timers are called back in the order they are registered. This guarantees that chained transitions are allowed to end before the next transition in the chain starts.
- Fix d3.timer.flush such that all active timers are ticked once, not just timers with zero delay.
- Optimize timer run loop.
3.1.9
3.1.8
- Redesign d3.geo.albersUsa. Adopted more standard projections for the contiguous United States, Alaska and Hawaii, and removed Puerto Rico. Now applies clipping, enabling the use of graticules and robust inversion. Note: the projection will now return null when applied to points outside of the visible area. (If you require a similar projection that includes Puerto Rico, see this example.)
- Change default settings of d3.geo.albers to match the new albersUsa projection.
- Optimize d3.geo.path rendering by caching projection streams.
Define ordinal.rangeBand when ordinal.rangePoints is used.Reverted in 3.1.9.
3.1.7
- Fix pow, sqrt and log scales to preserve set domains exactly.
- Fix d3.interpolate when start and end values are different types; an interpolator is now chosen solely based on the end value. For example, when interpolating from the empty string to a number, d3.interpolateNumber is now used instead of d3.interpolateString, producing the desired intermediate interpolation from zero.
- Fix d3.interpolateString such that the return value is always a string, even if both the start and end value are coercible to numbers.
- Fix d3.interpolateTransform and d3.transform for the identity transform in Firefox.
- Fix regression in projection.clipExtent.
- Improve d3.geo.bounds implementation to handle inflection points and the antimeridian.
3.1.6
- Allow hue, chroma or saturation to be undefined in d3.hsl and d3.hcl.
- When one of the two color’s hue, chroma or saturation is undefined in d3.interpolateHsl or d3.interpolateHcl, use the other color’s value. For example, when interpolating from black to blue in HCL, the intermediate colors are now dark blues (#241178) rather than dark purples (#600054).
- Fix d3.selection and d3.transition to select the document element rather than the document.
- Fix d3.select to not propagate data bound to the document element (if any).
- Fix d3.select and d3.selectAll such that the parent node is the document element.
- Fix d3.geom.hull such that the returned polygon is counterclockwise, consistent with polygon.clip.
3.1.5
- Fix click suppression following a zoom or drag.
- Fix d3.geo.stream for null geometries.
- Fix d3.interpolateNumber and d3.interpolateString to always coerce input values to the appropriate type.
- Fix d3.interpolate such that objects that are coercible to numbers (such as
[0]
) are still interpolated using d3.interpolateArray or d3.interpolateObject as appropriate.
3.1.4
- Fix projection.clipExtent to remove the redundant closing point when no clipping is performed.