f281e7c | Mike Bostock | 12 July 2013, 00:21:38 UTC | Prevent default on dbltap. | 12 July 2013, 00:21:38 UTC |
7d813c9 | Mike Bostock | 11 July 2013, 23:54:20 UTC | Merge branch '3.2.5' | 11 July 2013, 23:54:20 UTC |
08d701c | Mike Bostock | 11 July 2013, 23:53:02 UTC | Merge branch 'fix-log-scale-rounding' into 3.2.5 | 11 July 2013, 23:53:02 UTC |
5329795 | Mike Bostock | 11 July 2013, 23:52:23 UTC | Merge branch 'fix-suppress-touchstart' into 3.2.5 | 11 July 2013, 23:52:23 UTC |
da25e58 | Mike Bostock | 11 July 2013, 23:51:38 UTC | Merge branch 'fix-localized-decimal-point' into 3.2.5 | 11 July 2013, 23:51:38 UTC |
5aba2e6 | Mike Bostock | 11 July 2013, 22:19:33 UTC | Simplify. | 11 July 2013, 22:19:33 UTC |
5955473 | Mike Bostock | 11 July 2013, 20:48:46 UTC | Fix another rounding bug in log.ticks. | 11 July 2013, 20:48:46 UTC |
4162116 | Mike Bostock | 11 July 2013, 19:55:34 UTC | Fix rounding problems with log scale nicing. | 11 July 2013, 20:14:18 UTC |
f2cacbc | Mike Bostock | 11 July 2013, 04:49:44 UTC | Regenerate bower.json. | 11 July 2013, 04:49:44 UTC |
2e17b5d | Mike Bostock | 11 July 2013, 04:48:37 UTC | Fix #1383 - Do not ignore d3.min.js for bower. | 11 July 2013, 04:48:37 UTC |
ba1a411 | Mike Bostock | 11 July 2013, 01:05:38 UTC | Separate namespace for d3_event_dragSuppress. Previously we were reusing the component’s namespace to suppress drag events; however, this had the unintended effect of the drag suppress’s touchmove listener being overwritten by the component’s touchmove listener. To prevent this, the drag supression listeners now use a separate namespace. This commit also switches to preventing the default behavior on touchmove rather than touchstart, which still prevents panning and pinching while enabling click events to still fire. | 11 July 2013, 01:07:22 UTC |
6ef0eda | Mike Bostock | 10 July 2013, 17:47:06 UTC | Fix #1381 - separate touch and mouse zooming. When a touchstart event is received, the default mousedown and mousemove listeners are now removed so that mouse-related events are not duplicately handled by the behavior. In addition, the touchstart’s default behaviors are now prevented, for consistency with the drag behavior and to prevent native panning or pinch-zooming. This commit also cleans up the zoom behavior implementation such that touch listeners are implemented consistently with mouse listeners, using temporary closures that are registered on touchstart and removed on touchend. Likewise, the zoom behavior no longer prevents the default behavior on all events, instead applying d3_event_dragSuppress to prevent specific behaviors. The drag behavior no longer requires a capturing listener for mouseup or touchend because it does not (as of 3.2.2) stop propagation on these events. | 10 July 2013, 18:03:08 UTC |
ba87620 | Mike Bostock | 10 July 2013, 17:04:21 UTC | Separate touch and mouse drag listeners. Rather than combining the same listener for both mouse and touch, we now use closures to avoid code duplication. This offers cleaner separation and avoids registering touchmove and touchend listeners on mousestart, and likewise avoids mousemove and mouseup listeners on touchstart. | 10 July 2013, 17:04:21 UTC |
88ae6c6 | Mike Bostock | 10 July 2013, 16:02:10 UTC | Fix #1373 - suppress touchstart on drag. This is not ideal because it disables clicking on draggable links, but as we are forced to suppress the touchstart event (before any movement) in order to disable touch-to-drag or pinch-to-zoom, I think this is the only option. Or, we might dispatch a synthetic click event if the touchstart is prevented. | 10 July 2013, 16:02:10 UTC |
d963161 | Mike Bostock | 06 July 2013, 21:55:44 UTC | Rename base to symbol. | 06 July 2013, 21:55:44 UTC |
7832e59 | Mike Bostock | 06 July 2013, 21:52:59 UTC | Fix #1369 - localized decimal point. The old implementation was broken because string.replace returns a new string rather than modifying the string in-place (obviously, because strings are immutable), and was further broken because the localized thousands separator can be "." in some locales. This new implementation breaks the value into separate integer and decimal parts to avoid such confusion. | 06 July 2013, 21:52:59 UTC |
5fd964b | Mike Bostock | 06 July 2013, 03:13:41 UTC | Merge branch 'fix-transition-inherit-time' | 06 July 2013, 03:13:41 UTC |
d49321d | Jason Davies | 05 July 2013, 22:39:56 UTC | Set LC_MONETARY to correct locale. | 05 July 2013, 22:39:56 UTC |
b49861d | Jason Davies | 05 July 2013, 22:34:17 UTC | Add compatibility shim for setAttribute[NS] in IE9. Similar to style.setProperty, IE9 does not always properly coerce attribute values to strings. This causes issues when attempting to set an instance of d3.rgb as an attribute value. Now that d3.interpolate can return d3.rgb instances, this situation can occur more frequently. This compatiblity shim overrides Element.prototype.setAttribute[NS] so that all attribute values are coerced to strings in IE9. | 05 July 2013, 22:34:17 UTC |
d3488d6 | Mike Bostock | 05 July 2013, 18:20:20 UTC | Bump version. | 05 July 2013, 18:20:20 UTC |
df18a15 | Mike Bostock | 05 July 2013, 18:19:53 UTC | Merge branch 'fix-axis-no-ticks' into 3.2.4 | 05 July 2013, 18:19:53 UTC |
09b020f | Mike Bostock | 05 July 2013, 18:19:30 UTC | Merge branch 'lazy-transition-event' into 3.2.4 | 05 July 2013, 18:19:30 UTC |
87799fe | Mike Bostock | 05 July 2013, 18:19:04 UTC | Merge branch 'interpolate-color' into 3.2.4 | 05 July 2013, 18:19:04 UTC |
ce6526c | Mike Bostock | 03 July 2013, 16:52:28 UTC | Color interpolators return color instances. Fixes #1029. Previously, these interpolators returned RGB hexadecimal strings, as the intent was for the color to be used to set attributes and styles. However, since #333, all colors return RGB hexadecimal strings when coerced to a string, so we can get the equivalent behavior by returning a color instance rather than a string. Returning a color instance is also more useful in the case where additional color manipulation (such as brighter/darker) is desired. | 05 July 2013, 18:18:06 UTC |
2f4d3d8 | Mike Bostock | 05 July 2013, 17:45:24 UTC | Merge branch 'enter-insert-in-order' into 3.2.4 | 05 July 2013, 17:45:24 UTC |
248effc | Mike Bostock | 05 July 2013, 17:44:58 UTC | Merge branch 'fix-basis-marker' into 3.2.4 | 05 July 2013, 17:44:58 UTC |
5818789 | Mike Bostock | 05 July 2013, 17:32:37 UTC | Add missing quantile.invertExtent. Like the quantile and threshold scales, the quantile scale represents a lossy mapping where a span of values in the domain maps to a discrete range value. | 05 July 2013, 17:32:37 UTC |
b745b32 | Mike Bostock | 05 July 2013, 17:00:29 UTC | Fix axis for scales that don’t define ticks. In addition to ordinal scales, quantile, quantize and threshold scales don’t define a ticks method. Unlike ordinal scales, however, these quantitative scales also don’t define a rangeBand method, so the axis was crashing trying to render these scales. This fixes #1367 by checking for the required rangeBand method rather than assuming scales without a ticks method define a rangeBand. Note, however, that even with this change you probably still want to define tick values explicitly when using one of these scales with an axis. That’s because each tick in the axis represents a span of values in the domain; you can use the invertExtent method to get the span for each tick value. | 05 July 2013, 17:00:29 UTC |
c859340 | Mike Bostock | 04 July 2013, 17:35:30 UTC | Fix #1364 - construct transition.event lazily. | 04 July 2013, 17:35:30 UTC |
14307a0 | Mike Bostock | 04 July 2013, 17:14:18 UTC | Fix #1363 - inherit transition.time. | 04 July 2013, 17:15:34 UTC |
68809d3 | Mike Bostock | 28 June 2013, 22:15:09 UTC | Add currency support to d3.format. Fixes #777. You can now prefix the locale’s currency symbol. For example: d3.format("+$,.2f")(-2.5e5) // -$250,000.00 This implementation is limited in that it does not support currencies where the symbol should appear after the value (e.g., "250,000.00 €" as in fr_FR). And d3.format currently only supports a single locale. But it’s a start. | 03 July 2013, 17:09:54 UTC |
27a7252 | Mike Bostock | 03 July 2013, 17:08:27 UTC | Merge branch 'master' into enter-insert-in-order Conflicts: src/selection/insert.js | 03 July 2013, 17:08:27 UTC |
c6bad2f | Mike Bostock | 03 July 2013, 17:05:14 UTC | Fix line interpolation tests. | 03 July 2013, 17:05:14 UTC |
af88c35 | Mike Bostock | 02 July 2013, 00:49:18 UTC | Use linear segments for basis interpolation ends. The first and last segment of a line interpolated using basis (B-spline) interpolation are necessarily linear. WebKit appears to have a bug where linear Bézier segments do not compute tangents correctly (presumably because the control points are coincident with an end point, and the angle of a zero-length vector is undefined). We can workaround this browser bug by using linear segments for the start and end. | 03 July 2013, 17:03:21 UTC |
6fa6e04 | Mike Bostock | 03 July 2013, 04:09:53 UTC | Remember last non-null following sibling. This way, we don’t rescan the same null elements. | 03 July 2013, 04:09:53 UTC |
99f6e65 | Mike Bostock | 02 July 2013, 17:28:23 UTC | Fix test and add symmetric test for append. | 02 July 2013, 17:28:23 UTC |
2f4c228 | Mike Bostock | 02 July 2013, 17:23:10 UTC | Simplify test. | 02 July 2013, 17:23:30 UTC |
51d4d0a | Mike Bostock | 02 July 2013, 17:22:18 UTC | Add test for enter-insert. | 02 July 2013, 17:22:18 UTC |
d1f8082 | Mike Bostock | 02 July 2013, 16:07:38 UTC | By default, enter-insert before updating sibling. Fixes #744. This implements a default `before` selector such that when entering elements are inserted (e.g., enter.insert("div")), they are inserted before the next following sibling in the update selection, if any. This change does not affect the behavior of append, so as to preserve backwards-compatibility, and likewise does not affect the behavior of insert on non-enter selections. | 02 July 2013, 16:07:38 UTC |
747c523 | Mike Bostock | 01 July 2013, 18:10:05 UTC | Merge branch '3.2.3' | 01 July 2013, 18:10:05 UTC |
a8057e3 | Mike Bostock | 01 July 2013, 18:08:34 UTC | Merge branch 'fix-pack-constant-radius' into 3.2.3 | 01 July 2013, 18:08:34 UTC |
3bd33a5 | Mike Bostock | 01 July 2013, 18:08:08 UTC | Merge branch 'append-or-insert-function' into 3.2.3 | 01 July 2013, 18:08:08 UTC |
2db1fe8 | Mike Bostock | 01 July 2013, 18:07:45 UTC | Merge branch 'fix-polygon-clip' into 3.2.3 | 01 July 2013, 18:07:45 UTC |
ec0f410 | Mike Bostock | 01 July 2013, 18:07:10 UTC | Merge branch 'fix-transform-interpolate' into 3.2.3 | 01 July 2013, 18:07:10 UTC |
580577b | Mike Bostock | 01 July 2013, 18:05:15 UTC | Hard-code the list of bower ignores. | 01 July 2013, 18:06:43 UTC |
fc60a61 | Mike Bostock | 01 July 2013, 15:48:49 UTC | Add deprecation notice. | 01 July 2013, 15:48:49 UTC |
a27d2d3 | Mike Bostock | 30 June 2013, 17:50:57 UTC | Test for append(function). | 30 June 2013, 17:50:57 UTC |
bef1ccb | Mike Bostock | 30 June 2013, 17:33:17 UTC | Accept function for selection append and insert. Like selection.select, selection.append and selection.insert can now accept a function which returns a node. This makes it slightly easier to append or insert elements whose name is computed from data, or to append elements that already exist (say from an element pool). There has been much discussion regarding whether the function should return the name of the element or the element itself. Returning a name is less work for the caller, but only supports creating new elements; returning a name is also more consistent with how D3 defines attribute values, but D3 does not allow attribute names to be specified as functions. So, it seemed better to opt for consistency with selection.select and selection.selectAll, which accept functions that return elements, since this is more expressive. Of course, you can still use select and selectAll to append elements, but using append to do that directly is more intuitive. Related #4 #311 #724 #732 #734 #961 #1031 #1271. | 30 June 2013, 17:47:10 UTC |
e0ba802 | Mike Bostock | 30 June 2013, 17:02:58 UTC | Allow pack.radius to be specified as constant. | 30 June 2013, 17:02:58 UTC |
822e0af | Mike Bostock | 30 June 2013, 00:47:17 UTC | Fix relative path. | 30 June 2013, 00:47:17 UTC |
afede9f | Mike Bostock | 29 June 2013, 17:26:38 UTC | Remove test dependencies on DOM. | 29 June 2013, 17:26:38 UTC |
e31c0fb | Mike Bostock | 29 June 2013, 16:24:41 UTC | Add make rule for component.json. | 29 June 2013, 16:24:41 UTC |
539a9da | Mike Bostock | 29 June 2013, 16:18:37 UTC | Merge branch 'master' of git://github.com/jabapyth/d3 into component | 29 June 2013, 16:18:37 UTC |
e05b1e7 | Mike Bostock | 29 June 2013, 16:03:09 UTC | Regenerate format tables on make clean. | 29 June 2013, 16:03:09 UTC |
6baa166 | Jared Forsyth | 29 June 2013, 06:01:06 UTC | adding bin/component | 29 June 2013, 06:13:44 UTC |
efce7dd | Jared Forsyth | 29 June 2013, 04:58:25 UTC | adding component(1) support | 29 June 2013, 04:58:25 UTC |
a8f2ac2 | Mike Bostock | 28 June 2013, 22:35:19 UTC | Limit transform interpolation to transition.attr. D3’s transform interpolator is designed for SVG transforms; unlike CSS3 transforms, SVG transforms do not have units and are limited to 2D. This commit limits transform interpolation to transition.attr, so that it only applies to SVG transforms and not CSS3 transforms which are assigned via style. Thus, if transition.style is used to interpolate the transform style, the default string interpolator will now be used. Note that string interpolation of CSS3 transforms is still likely to break; you should use CSS3 transitions instead. Fixes #1323. | 28 June 2013, 22:35:19 UTC |
fdd6c62 | Mike Bostock | 28 June 2013, 15:29:16 UTC | Support both open & closed polygons. Rather than converting closed polygons to open polygons on input (which could potentially be destructive), tweak the polygon methods slightly so that they work on either input. This commit also changes d3.geom.polygon to use a prototype, much like d3.selection, rather than creating every method as a closure. This makes it much faster to construct a polygon. | 28 June 2013, 15:31:16 UTC |
5596e4f | Mike Bostock | 27 June 2013, 20:29:38 UTC | Standardize on open polygons. Fixes #443. If you try to create a d3.geom.polygon with a closed polygon, it is now automatically converted to an open polygon by stripping the closing coordinate. | 27 June 2013, 20:29:38 UTC |
673c630 | Mike Bostock | 27 June 2013, 20:28:52 UTC | Allow console.warn from tests. | 27 June 2013, 20:28:52 UTC |
f6a6354 | Mike Bostock | 27 June 2013, 19:58:15 UTC | Shorter implementation of polygon.area. | 27 June 2013, 19:58:36 UTC |
2236488 | Mike Bostock | 27 June 2013, 18:32:08 UTC | Am I bowering rite? Fixes #1251 #1338. | 27 June 2013, 18:32:08 UTC |
8a9c125 | Mike Bostock | 27 June 2013, 16:47:33 UTC | Remove defunct .gitmodules. | 27 June 2013, 16:47:33 UTC |
91fb859 | Mike Bostock | 27 June 2013, 16:46:35 UTC | Simplify loading without globals. | 27 June 2013, 16:46:35 UTC |
5b8322a | Mike Bostock | 26 June 2013, 15:04:35 UTC | Merge pull request #1339 from trinary/diagonal-test Adds tests for d3.svg.diagonal | 26 June 2013, 15:04:35 UTC |
1042550 | Jason Davies | 26 June 2013, 07:53:26 UTC | Only bind relevant listeners on brush touchstart. A mousemove event was being triggered on mobile Safari causing the brush to jump briefly on touchstart, e.g. when viewing: http://bl.ocks.org/mbostock/raw/1667367/ | 26 June 2013, 07:53:26 UTC |
47b39c4 | Mike Bostock | 26 June 2013, 00:07:20 UTC | Update version. | 26 June 2013, 00:07:20 UTC |
d524fe5 | Mike Bostock | 26 June 2013, 00:06:36 UTC | Merge branch 'drag-suppress' into 3.2.2 | 26 June 2013, 00:06:36 UTC |
35f65d8 | Mike Bostock | 26 June 2013, 00:01:21 UTC | Merge branch 'add-transition-size' into 3.2.2 | 26 June 2013, 00:01:21 UTC |
aa75127 | Mike Bostock | 25 June 2013, 23:53:02 UTC | Inline d3_eventSuppress. | 25 June 2013, 23:53:02 UTC |
6293ffb | Mike Bostock | 25 June 2013, 23:46:13 UTC | Generalize d3_event_userSelect for dragging. The new d3_event_dragSuppress method serves a similar purpose to the previous d3_event_userSelect, except it generalizes to prevent all undesired browser default behaviors when dragging. In addition to text selection, this includes dragging (of links and images) and clicks (on links). Suppressing click events is optional and can be controlled by the caller. | 25 June 2013, 23:46:13 UTC |
30552f4 | Mike Bostock | 25 June 2013, 15:34:30 UTC | Clarify comment. | 25 June 2013, 15:34:30 UTC |
bbb74f7 | Mike Bostock | 25 June 2013, 14:59:21 UTC | Much larger angular threshold. Also, disable buffering to discard samples; all samples are retained. | 25 June 2013, 14:59:21 UTC |
3f8097d | Jason Davies | 25 June 2013, 09:00:37 UTC | Resample using a great-circle distance threshold. Projections will typically exhibit less curvature at larger scales, with geodesics becoming closer and closer to straight lines. Using a minimum angular distance for resampling therefore makes more sense than using an arbitrary scale-dependent threshold. It's not clear whether this new threshold should depend on the precision parameter, or be configurable separately. | 25 June 2013, 09:20:17 UTC |
40f5215 | Erik Cunningham | 24 June 2013, 22:37:28 UTC | clean up leading whitespace | 24 June 2013, 22:37:28 UTC |
995c70c | Erik Cunningham | 24 June 2013, 22:35:06 UTC | simple test coverage of d3.svg.diagonal | 24 June 2013, 22:35:06 UTC |
aa18d82 | Erik Cunningham | 24 June 2013, 21:28:54 UTC | test setup for svg.diagonal | 24 June 2013, 21:28:54 UTC |
34544e3 | Mike Bostock | 21 June 2013, 15:51:53 UTC | Invert logic. | 21 June 2013, 15:51:53 UTC |
6d650d0 | Mike Bostock | 21 June 2013, 15:44:08 UTC | Much larger minimum sample distance. | 21 June 2013, 15:44:08 UTC |
6b3c198 | Mike Bostock | 21 June 2013, 15:24:29 UTC | Simplify the minimum sample distance check. Rather than compute the distance from the start to the new middle, use the already computed distance from the start to the end. Also, we no longer need the additional check that the middle is close to either the start or the end because this is covered by the minimum sample distance check. | 21 June 2013, 15:24:29 UTC |
0b83ad6 | Mike Bostock | 20 June 2013, 15:52:00 UTC | Add tests for transition.{size,node}. | 20 June 2013, 15:52:00 UTC |
f3bfabc | adnan | 20 June 2013, 02:03:29 UTC | add transition.size | 20 June 2013, 02:03:29 UTC |
1177d1d | Mike Bostock | 19 June 2013, 17:55:00 UTC | Merge branch '3.2.1' | 19 June 2013, 17:55:00 UTC |
7287f35 | Mike Bostock | 19 June 2013, 17:53:51 UTC | Merge branch 'zoom' into 3.2.1 | 19 June 2013, 17:53:51 UTC |
61bd911 | Mike Bostock | 19 June 2013, 17:53:03 UTC | Merge branch 'brush-clamp' into 3.2.1 | 19 June 2013, 17:53:03 UTC |
8a59a8c | Mike Bostock | 19 June 2013, 17:52:10 UTC | Merge branch 'fix-transition-selectAll-null' into 3.2.1 | 19 June 2013, 17:52:32 UTC |
065029b | Mike Bostock | 19 June 2013, 17:50:26 UTC | Don’t mask private variable. | 19 June 2013, 17:50:26 UTC |
301b6d3 | Mike Bostock | 18 June 2013, 23:16:47 UTC | Restore undefined behavior for d3.bisect. Rather than return NaN, this change restores the previous undefined behavior when an unorderable value is used for bisection. After discussing with Jason, I think this is more consistent given that d3.bisect also requires that the input array is sortable, and therefore only contains orderable values. Thus, it is the responsibility of the caller to check that the search value is defined before doing bisection, and so this commit fixes the threshold scale rather than the bisect method. (Also, this is consistent with the existing quantile scale.) | 18 June 2013, 23:16:47 UTC |
0edad18 | Mike Bostock | 18 June 2013, 22:59:16 UTC | Return undefined, not NaN. Since the quantile scale allows arbitrary values in the range, there’s no reason the return value for unorderable input needs to be a number. | 18 June 2013, 22:59:16 UTC |
538108b | Mike Bostock | 18 June 2013, 17:33:01 UTC | Slightly shorter. | 18 June 2013, 17:33:01 UTC |
aad1b18 | Mike Bostock | 18 June 2013, 17:20:11 UTC | Fixes for non-orderable values. In addition to NaN, which is not equal to itself, you can have objects that are not orderable due to defined valueOf functions which return NaN. For example: var o = new Number(NaN); Here, o == o is true, but o <= o is false. Therefore it was possible for d3.min, d3.max and d3.extent to observe these non-orderable values rather than ignore them as intended. The fix is to check !(o <= o) rather than o == o. This commit also fixes d3.bisect when the search value is non-orderable. Previously, bisectLeft returned lo for non-orderable values, and bisectRight returned hi. However, if the search value is non-orderable, then this return value does not satisfy the conditions of bisection. This commit changes the bisection methods to return NaN when the search value is non-orderable. As a side-effect, the fix to d3.bisect now causes d3.scale.threshold to return undefined when passed a non-orderable value, such as undefined. (Previously, a threshold scale would return the highest value in the range, because it used bisectRight internally.) | 18 June 2013, 17:27:27 UTC |
5a6cd73 | Mike Bostock | 14 June 2013, 18:37:18 UTC | Fix transition.selectAll with null nodes. | 14 June 2013, 18:37:18 UTC |
85d156c | Jason Davies | 14 June 2013, 09:10:00 UTC | brush.clamp: return null if there are no scales. Similarly, if there are no scales, setting a clamp does nothing. For consistency with brush.extent. | 14 June 2013, 09:10:00 UTC |
95812fd | Jason Davies | 07 June 2013, 20:54:11 UTC | Add pinch-to-zoom support for Android. | 13 June 2013, 22:57:36 UTC |
84f4a62 | Mike Bostock | 13 June 2013, 22:47:51 UTC | Merge branch '3.2' | 13 June 2013, 22:47:51 UTC |
f6108db | Mike Bostock | 13 June 2013, 22:23:39 UTC | Add tests for variable scale.nice. | 13 June 2013, 22:23:39 UTC |
239d794 | Mike Bostock | 13 June 2013, 22:19:51 UTC | Condense code. | 13 June 2013, 22:19:51 UTC |
60576ba | Mike Bostock | 13 June 2013, 21:00:03 UTC | More flexible scale.nice. Fixes #1088. | 13 June 2013, 21:00:03 UTC |
9e66a85 | Mike Bostock | 12 June 2013, 23:40:19 UTC | More robust vendor prefix detection. The previous implementation depended on CSS3 transforms being vendor-prefixed, and would assume no vendor prefix if the browser supports transforms natively. Now we detect the vendor prefix on a case-by-case prefix, rather than assuming a single global prefix. | 12 June 2013, 23:40:19 UTC |
5adac77 | Mike Bostock | 12 June 2013, 23:07:42 UTC | Merge branch 'user-select' into 3.2 | 12 June 2013, 23:07:42 UTC |