This fixes a crash with the symbol type "hasOwnProperty", rather than defaulting to "circle". This commit also adds new map methods to retrieve the keys, values and entries. The map class now uses non-enumerable properties (if supported).
This is, essentially, an ES6 shim for a Harmony Map. We will use it instead of using a bare object, so that we don't need to worry about collision with built- in properties names (such as "__proto__" and "hasOwnProperty").
Conflicts: Makefile d3.min.js d3.v2.js examples/zoom/zoom.html
This commit provides a standard interface for time intervals: interval.floor(date) interval.ceil(date) interval.offset(date, k) interval.range(start, stop, step) All local-time intervals (such as d3.time.day) have a UTC-equivalent interval, available as interval.utc (such as d3.time.day.utc). Fixes #463. Note that for the time.scale, an interval function is required to nice (such as d3.time.day). In the future, we might relax that to allow a count of ticks, similar to the ticks method, but in that case we'd also need the ability to floor to a given tick number (e.g., every other week) and likewise for ceil. This seems like a reasonable first implementation.
Rather than having two implementations for local time and UTC time, we now have a single local-time implementation and use d3_time_utc to adapt for UTC.
Rather than producing separate files for each module, the default build now produces a single file. This should encourage better page-load performance as the files were relatively small. Also, it's easier to deal with only one file rather than many, especially if you're not quite sure what the dependencies are. You may still create minimized builds, if you don't want every feature. This commit also demotes the chart components to the examples directory, rather than keeping them as part of the core library. As always, D3 is not a charting library, and these were ever only intended to serve as examples.
It's like selection.sort, except it assumes that the data is already sorted; the elements are reordered to match the selection.
This is based on @jasondavies previous work on interpolating 3D matrices, simplified to only handle 2D transforms, and using SVG to parse transforms.
This includes a d3.extent convenience method for [d3.min, d3.max], and fixes the brush component such that the resizers are hidden when the extent is empty.
You can now query the brush for its selection. This commit also includes a new d3.random.normal for generating random numbers with a normal distribution. This is useful for jittering points for display.
The d3.svg.brush component allows one- or two-dimensional rectangular brushing. A future commit will allow the brushed region to be resized by grabbing an edge, and also provide some way of reporting the selection (duh)!
Due to the ordering in which the prototypes are defined, it was still undefined! Also, the empty method depends on the node method being defined. Added a test.
I ran the tests on the newly minified files too, for good measure, and everything passed.
Also, expose d3.formatPrefix so that it's easier for callers to create a formatter for a specific prefix (such as using the "G" prefix for all ticks).
Quote from NEWS file: In previous versions of make it was acceptable to list one or more explicit targets followed by one or more pattern targets in the same rule and it worked "as expected". However, this was not documented as acceptable and if you listed any explicit targets AFTER the pattern targets, the entire rule would be mis-parsed. This release removes this ability completely: make will generate an error message if you mix explicit and pattern targets in the same rule.
There is also a greatCircle as an alias, whose angle defaults to 90 degrees. (Or should, but some projections cannot handle 90 degrees so we use 89 instead.)