d3_rails 3.4.3 → 3.4.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -2
- data/app/assets/javascripts/d3.js +139 -120
- data/app/assets/javascripts/d3.min.js +5 -5
- data/lib/d3_rails/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 90d5db463645992a72b726ff6e08bfc57a6e0954
|
4
|
+
data.tar.gz: ec5f8dc3e4ebc1b2c589e9a0ddc7c5d1b10d57ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c34c18b7070370dd1196816d0cabe55be691344029b9d625cb351b2854dfd0291107996e12057f4382f69bfd4b26f12cacfd0b9a04b5004a309aabac58bdd4a
|
7
|
+
data.tar.gz: 16dba626a2e0911cee6bee9ff83e155c116114cb31d26e20df2335f88628e46b8c570d702d0c682d162e74a6fd28be0d6605ab11c4a06183c1a270cd4d7a1104
|
data/README.md
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
# D3_Rails
|
2
|
-
## Version 3.4.3 (of d3 in most current gem)
|
1
|
+
# D3_Rails [![Gem Version](https://badge.fury.io/rb/d3_rails.png)](http://badge.fury.io/rb/d3_rails)
|
3
2
|
|
4
3
|
**D3_Rails** is a small, lightweight gem which allows you to include any
|
5
4
|
and all of D3 Javascripts into your 3.1 Rails application, merely by
|
@@ -1,6 +1,6 @@
|
|
1
1
|
!function() {
|
2
2
|
var d3 = {
|
3
|
-
version: "3.4.
|
3
|
+
version: "3.4.4"
|
4
4
|
};
|
5
5
|
if (!Date.now) Date.now = function() {
|
6
6
|
return +new Date();
|
@@ -32,9 +32,10 @@
|
|
32
32
|
d3_style_setProperty.call(this, name, value + "", priority);
|
33
33
|
};
|
34
34
|
}
|
35
|
-
d3.ascending =
|
35
|
+
d3.ascending = d3_ascending;
|
36
|
+
function d3_ascending(a, b) {
|
36
37
|
return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
|
37
|
-
}
|
38
|
+
}
|
38
39
|
d3.descending = function(a, b) {
|
39
40
|
return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
|
40
41
|
};
|
@@ -105,16 +106,16 @@
|
|
105
106
|
d3.median = function(array, f) {
|
106
107
|
if (arguments.length > 1) array = array.map(f);
|
107
108
|
array = array.filter(d3_number);
|
108
|
-
return array.length ? d3.quantile(array.sort(
|
109
|
+
return array.length ? d3.quantile(array.sort(d3_ascending), .5) : undefined;
|
109
110
|
};
|
110
|
-
|
111
|
+
function d3_bisector(compare) {
|
111
112
|
return {
|
112
113
|
left: function(a, x, lo, hi) {
|
113
114
|
if (arguments.length < 3) lo = 0;
|
114
115
|
if (arguments.length < 4) hi = a.length;
|
115
116
|
while (lo < hi) {
|
116
117
|
var mid = lo + hi >>> 1;
|
117
|
-
if (
|
118
|
+
if (compare(a[mid], x) < 0) lo = mid + 1; else hi = mid;
|
118
119
|
}
|
119
120
|
return lo;
|
120
121
|
},
|
@@ -123,17 +124,20 @@
|
|
123
124
|
if (arguments.length < 4) hi = a.length;
|
124
125
|
while (lo < hi) {
|
125
126
|
var mid = lo + hi >>> 1;
|
126
|
-
if (
|
127
|
+
if (compare(a[mid], x) > 0) hi = mid; else lo = mid + 1;
|
127
128
|
}
|
128
129
|
return lo;
|
129
130
|
}
|
130
131
|
};
|
132
|
+
}
|
133
|
+
var d3_bisect = d3_bisector(d3_ascending);
|
134
|
+
d3.bisectLeft = d3_bisect.left;
|
135
|
+
d3.bisect = d3.bisectRight = d3_bisect.right;
|
136
|
+
d3.bisector = function(f) {
|
137
|
+
return d3_bisector(f.length === 1 ? function(d, x) {
|
138
|
+
return d3_ascending(f(d), x);
|
139
|
+
} : f);
|
131
140
|
};
|
132
|
-
var d3_bisector = d3.bisector(function(d) {
|
133
|
-
return d;
|
134
|
-
});
|
135
|
-
d3.bisectLeft = d3_bisector.left;
|
136
|
-
d3.bisect = d3.bisectRight = d3_bisector.right;
|
137
141
|
d3.shuffle = function(array) {
|
138
142
|
var m = array.length, t, i;
|
139
143
|
while (m) {
|
@@ -495,9 +499,7 @@
|
|
495
499
|
d3_select = function(s, n) {
|
496
500
|
return Sizzle(s, n)[0] || null;
|
497
501
|
};
|
498
|
-
d3_selectAll =
|
499
|
-
return Sizzle.uniqueSort(Sizzle(s, n));
|
500
|
-
};
|
502
|
+
d3_selectAll = Sizzle;
|
501
503
|
d3_selectMatches = Sizzle.matchesSelector;
|
502
504
|
}
|
503
505
|
d3.selection = function() {
|
@@ -872,7 +874,7 @@
|
|
872
874
|
return this.order();
|
873
875
|
};
|
874
876
|
function d3_selection_sortComparator(comparator) {
|
875
|
-
if (!arguments.length) comparator =
|
877
|
+
if (!arguments.length) comparator = d3_ascending;
|
876
878
|
return function(a, b) {
|
877
879
|
return a && b ? comparator(a.__data__, b.__data__) : !a - !b;
|
878
880
|
};
|
@@ -1087,27 +1089,12 @@
|
|
1087
1089
|
d3.mouse = function(container) {
|
1088
1090
|
return d3_mousePoint(container, d3_eventSource());
|
1089
1091
|
};
|
1090
|
-
var d3_mouse_bug44083 = /WebKit/.test(d3_window.navigator.userAgent) ? -1 : 0;
|
1091
1092
|
function d3_mousePoint(container, e) {
|
1092
1093
|
if (e.changedTouches) e = e.changedTouches[0];
|
1093
1094
|
var svg = container.ownerSVGElement || container;
|
1094
1095
|
if (svg.createSVGPoint) {
|
1095
1096
|
var point = svg.createSVGPoint();
|
1096
|
-
|
1097
|
-
svg = d3.select("body").append("svg").style({
|
1098
|
-
position: "absolute",
|
1099
|
-
top: 0,
|
1100
|
-
left: 0,
|
1101
|
-
margin: 0,
|
1102
|
-
padding: 0,
|
1103
|
-
border: "none"
|
1104
|
-
}, "important");
|
1105
|
-
var ctm = svg[0][0].getScreenCTM();
|
1106
|
-
d3_mouse_bug44083 = !(ctm.f || ctm.e);
|
1107
|
-
svg.remove();
|
1108
|
-
}
|
1109
|
-
if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX,
|
1110
|
-
point.y = e.clientY;
|
1097
|
+
point.x = e.clientX, point.y = e.clientY;
|
1111
1098
|
point = point.matrixTransform(container.getScreenCTM().inverse());
|
1112
1099
|
return [ point.x, point.y ];
|
1113
1100
|
}
|
@@ -1123,46 +1110,42 @@
|
|
1123
1110
|
}) : [];
|
1124
1111
|
};
|
1125
1112
|
d3.behavior.drag = function() {
|
1126
|
-
var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, "mousemove", "mouseup"), touchstart = dragstart(
|
1113
|
+
var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_behavior_dragMouseSubject, "mousemove", "mouseup"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_behavior_dragTouchSubject, "touchmove", "touchend");
|
1127
1114
|
function drag() {
|
1128
1115
|
this.on("mousedown.drag", mousedown).on("touchstart.drag", touchstart);
|
1129
1116
|
}
|
1130
|
-
function
|
1131
|
-
return d3.event.changedTouches[0].identifier;
|
1132
|
-
}
|
1133
|
-
function touchposition(parent, id) {
|
1134
|
-
return d3.touches(parent).filter(function(p) {
|
1135
|
-
return p.identifier === id;
|
1136
|
-
})[0];
|
1137
|
-
}
|
1138
|
-
function dragstart(id, position, move, end) {
|
1117
|
+
function dragstart(id, position, subject, move, end) {
|
1139
1118
|
return function() {
|
1140
|
-
var
|
1119
|
+
var that = this, target = d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = ".drag" + (dragId == null ? "" : "-" + dragId), dragOffset, dragSubject = d3.select(subject()).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(), position0 = position(parent, dragId);
|
1141
1120
|
if (origin) {
|
1142
|
-
|
1143
|
-
|
1121
|
+
dragOffset = origin.apply(that, arguments);
|
1122
|
+
dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ];
|
1144
1123
|
} else {
|
1145
|
-
|
1124
|
+
dragOffset = [ 0, 0 ];
|
1146
1125
|
}
|
1147
|
-
|
1126
|
+
dispatch({
|
1148
1127
|
type: "dragstart"
|
1149
1128
|
});
|
1150
1129
|
function moved() {
|
1151
|
-
var
|
1130
|
+
var position1 = position(parent, dragId), dx, dy;
|
1131
|
+
if (!position1) return;
|
1132
|
+
dx = position1[0] - position0[0];
|
1133
|
+
dy = position1[1] - position0[1];
|
1152
1134
|
dragged |= dx | dy;
|
1153
|
-
|
1154
|
-
|
1135
|
+
position0 = position1;
|
1136
|
+
dispatch({
|
1155
1137
|
type: "drag",
|
1156
|
-
x:
|
1157
|
-
y:
|
1138
|
+
x: position1[0] + dragOffset[0],
|
1139
|
+
y: position1[1] + dragOffset[1],
|
1158
1140
|
dx: dx,
|
1159
1141
|
dy: dy
|
1160
1142
|
});
|
1161
1143
|
}
|
1162
1144
|
function ended() {
|
1163
|
-
|
1164
|
-
|
1165
|
-
|
1145
|
+
if (!position(parent, dragId)) return;
|
1146
|
+
dragSubject.on(move + dragName, null).on(end + dragName, null);
|
1147
|
+
dragRestore(dragged && d3.event.target === target);
|
1148
|
+
dispatch({
|
1166
1149
|
type: "dragend"
|
1167
1150
|
});
|
1168
1151
|
}
|
@@ -1175,6 +1158,15 @@
|
|
1175
1158
|
};
|
1176
1159
|
return d3.rebind(drag, event, "on");
|
1177
1160
|
};
|
1161
|
+
function d3_behavior_dragTouchId() {
|
1162
|
+
return d3.event.changedTouches[0].identifier;
|
1163
|
+
}
|
1164
|
+
function d3_behavior_dragTouchSubject() {
|
1165
|
+
return d3.event.target;
|
1166
|
+
}
|
1167
|
+
function d3_behavior_dragMouseSubject() {
|
1168
|
+
return d3_window;
|
1169
|
+
}
|
1178
1170
|
var π = Math.PI, τ = 2 * π, halfπ = π / 2, ε = 1e-6, ε2 = ε * ε, d3_radians = π / 180, d3_degrees = 180 / π;
|
1179
1171
|
function d3_sgn(x) {
|
1180
1172
|
return x > 0 ? 1 : x < 0 ? -1 : 0;
|
@@ -1226,7 +1218,7 @@
|
|
1226
1218
|
}
|
1227
1219
|
zoom.event = function(g) {
|
1228
1220
|
g.each(function() {
|
1229
|
-
var
|
1221
|
+
var dispatch = event.of(this, arguments), view1 = view;
|
1230
1222
|
if (d3_transitionInheritId) {
|
1231
1223
|
d3.select(this).transition().each("start.zoom", function() {
|
1232
1224
|
view = this.__chart__ || {
|
@@ -1234,7 +1226,7 @@
|
|
1234
1226
|
y: 0,
|
1235
1227
|
k: 1
|
1236
1228
|
};
|
1237
|
-
zoomstarted(
|
1229
|
+
zoomstarted(dispatch);
|
1238
1230
|
}).tween("zoom:zoom", function() {
|
1239
1231
|
var dx = size[0], dy = size[1], cx = dx / 2, cy = dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]);
|
1240
1232
|
return function(t) {
|
@@ -1244,16 +1236,16 @@
|
|
1244
1236
|
y: cy - l[1] * k,
|
1245
1237
|
k: k
|
1246
1238
|
};
|
1247
|
-
zoomed(
|
1239
|
+
zoomed(dispatch);
|
1248
1240
|
};
|
1249
1241
|
}).each("end.zoom", function() {
|
1250
|
-
zoomended(
|
1242
|
+
zoomended(dispatch);
|
1251
1243
|
});
|
1252
1244
|
} else {
|
1253
1245
|
this.__chart__ = view;
|
1254
|
-
zoomstarted(
|
1255
|
-
zoomed(
|
1256
|
-
zoomended(
|
1246
|
+
zoomstarted(dispatch);
|
1247
|
+
zoomed(dispatch);
|
1248
|
+
zoomended(dispatch);
|
1257
1249
|
}
|
1258
1250
|
});
|
1259
1251
|
};
|
@@ -1336,46 +1328,46 @@
|
|
1336
1328
|
return (y - view.y) / view.k;
|
1337
1329
|
}).map(y0.invert));
|
1338
1330
|
}
|
1339
|
-
function zoomstarted(
|
1340
|
-
|
1331
|
+
function zoomstarted(dispatch) {
|
1332
|
+
dispatch({
|
1341
1333
|
type: "zoomstart"
|
1342
1334
|
});
|
1343
1335
|
}
|
1344
|
-
function zoomed(
|
1336
|
+
function zoomed(dispatch) {
|
1345
1337
|
rescale();
|
1346
|
-
|
1338
|
+
dispatch({
|
1347
1339
|
type: "zoom",
|
1348
1340
|
scale: view.k,
|
1349
1341
|
translate: [ view.x, view.y ]
|
1350
1342
|
});
|
1351
1343
|
}
|
1352
|
-
function zoomended(
|
1353
|
-
|
1344
|
+
function zoomended(dispatch) {
|
1345
|
+
dispatch({
|
1354
1346
|
type: "zoomend"
|
1355
1347
|
});
|
1356
1348
|
}
|
1357
1349
|
function mousedowned() {
|
1358
|
-
var
|
1359
|
-
d3_selection_interrupt.call(
|
1360
|
-
zoomstarted(
|
1350
|
+
var that = this, target = d3.event.target, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress();
|
1351
|
+
d3_selection_interrupt.call(that);
|
1352
|
+
zoomstarted(dispatch);
|
1361
1353
|
function moved() {
|
1362
1354
|
dragged = 1;
|
1363
|
-
translateTo(d3.mouse(
|
1364
|
-
zoomed(
|
1355
|
+
translateTo(d3.mouse(that), location0);
|
1356
|
+
zoomed(dispatch);
|
1365
1357
|
}
|
1366
1358
|
function ended() {
|
1367
|
-
|
1368
|
-
dragRestore(dragged && d3.event.target ===
|
1369
|
-
zoomended(
|
1359
|
+
subject.on(mousemove, d3_window === that ? mousewheelreset : null).on(mouseup, null);
|
1360
|
+
dragRestore(dragged && d3.event.target === target);
|
1361
|
+
zoomended(dispatch);
|
1370
1362
|
}
|
1371
1363
|
}
|
1372
1364
|
function touchstarted() {
|
1373
|
-
var
|
1374
|
-
d3_selection_interrupt.call(
|
1365
|
+
var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = ".zoom-" + d3.event.changedTouches[0].identifier, touchmove = "touchmove" + zoomName, touchend = "touchend" + zoomName, target = d3.select(d3.event.target).on(touchmove, moved).on(touchend, ended), subject = d3.select(that).on(mousedown, null).on(touchstart, started), dragRestore = d3_event_dragSuppress();
|
1366
|
+
d3_selection_interrupt.call(that);
|
1375
1367
|
started();
|
1376
|
-
zoomstarted(
|
1368
|
+
zoomstarted(dispatch);
|
1377
1369
|
function relocate() {
|
1378
|
-
var touches = d3.touches(
|
1370
|
+
var touches = d3.touches(that);
|
1379
1371
|
scale0 = view.k;
|
1380
1372
|
touches.forEach(function(t) {
|
1381
1373
|
if (t.identifier in locations0) locations0[t.identifier] = location(t);
|
@@ -1394,7 +1386,7 @@
|
|
1394
1386
|
scaleTo(view.k * 2);
|
1395
1387
|
translateTo(p, l);
|
1396
1388
|
d3_eventPreventDefault();
|
1397
|
-
zoomed(
|
1389
|
+
zoomed(dispatch);
|
1398
1390
|
}
|
1399
1391
|
touchtime = now;
|
1400
1392
|
} else if (touches.length > 1) {
|
@@ -1403,7 +1395,7 @@
|
|
1403
1395
|
}
|
1404
1396
|
}
|
1405
1397
|
function moved() {
|
1406
|
-
var touches = d3.touches(
|
1398
|
+
var touches = d3.touches(that), p0, l0, p1, l1;
|
1407
1399
|
for (var i = 0, n = touches.length; i < n; ++i, l1 = null) {
|
1408
1400
|
p1 = touches[i];
|
1409
1401
|
if (l1 = locations0[p1.identifier]) {
|
@@ -1419,7 +1411,7 @@
|
|
1419
1411
|
}
|
1420
1412
|
touchtime = null;
|
1421
1413
|
translateTo(p0, l0);
|
1422
|
-
zoomed(
|
1414
|
+
zoomed(dispatch);
|
1423
1415
|
}
|
1424
1416
|
function ended() {
|
1425
1417
|
if (d3.event.touches.length) {
|
@@ -1431,37 +1423,37 @@
|
|
1431
1423
|
return void relocate();
|
1432
1424
|
}
|
1433
1425
|
}
|
1434
|
-
|
1435
|
-
|
1426
|
+
target.on(zoomName, null);
|
1427
|
+
subject.on(mousedown, mousedowned).on(touchstart, touchstarted);
|
1436
1428
|
dragRestore();
|
1437
|
-
zoomended(
|
1429
|
+
zoomended(dispatch);
|
1438
1430
|
}
|
1439
1431
|
}
|
1440
1432
|
function mousewheeled() {
|
1441
|
-
var
|
1433
|
+
var dispatch = event.of(this, arguments);
|
1442
1434
|
if (mousewheelTimer) clearTimeout(mousewheelTimer); else d3_selection_interrupt.call(this),
|
1443
|
-
zoomstarted(
|
1435
|
+
zoomstarted(dispatch);
|
1444
1436
|
mousewheelTimer = setTimeout(function() {
|
1445
1437
|
mousewheelTimer = null;
|
1446
|
-
zoomended(
|
1438
|
+
zoomended(dispatch);
|
1447
1439
|
}, 50);
|
1448
1440
|
d3_eventPreventDefault();
|
1449
1441
|
var point = center || d3.mouse(this);
|
1450
1442
|
if (!translate0) translate0 = location(point);
|
1451
1443
|
scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k);
|
1452
1444
|
translateTo(point, translate0);
|
1453
|
-
zoomed(
|
1445
|
+
zoomed(dispatch);
|
1454
1446
|
}
|
1455
1447
|
function mousewheelreset() {
|
1456
1448
|
translate0 = null;
|
1457
1449
|
}
|
1458
1450
|
function dblclicked() {
|
1459
|
-
var
|
1460
|
-
zoomstarted(
|
1451
|
+
var dispatch = event.of(this, arguments), p = d3.mouse(this), l = location(p), k = Math.log(view.k) / Math.LN2;
|
1452
|
+
zoomstarted(dispatch);
|
1461
1453
|
scaleTo(Math.pow(2, d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1));
|
1462
1454
|
translateTo(p, l);
|
1463
|
-
zoomed(
|
1464
|
-
zoomended(
|
1455
|
+
zoomed(dispatch);
|
1456
|
+
zoomended(dispatch);
|
1465
1457
|
}
|
1466
1458
|
return d3.rebind(zoom, event, "on");
|
1467
1459
|
};
|
@@ -1628,7 +1620,7 @@
|
|
1628
1620
|
return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);
|
1629
1621
|
}
|
1630
1622
|
function d3_rgb_parse(format, rgb, hsl) {
|
1631
|
-
var r = 0, g = 0, b = 0, m1, m2,
|
1623
|
+
var r = 0, g = 0, b = 0, m1, m2, color;
|
1632
1624
|
m1 = /([a-z]+)\((.*)\)/i.exec(format);
|
1633
1625
|
if (m1) {
|
1634
1626
|
m2 = m1[2].split(",");
|
@@ -1644,23 +1636,20 @@
|
|
1644
1636
|
}
|
1645
1637
|
}
|
1646
1638
|
}
|
1647
|
-
if (
|
1648
|
-
if (format != null && format.charAt(0) === "#") {
|
1639
|
+
if (color = d3_rgb_names.get(format)) return rgb(color.r, color.g, color.b);
|
1640
|
+
if (format != null && format.charAt(0) === "#" && !isNaN(color = parseInt(format.substring(1), 16))) {
|
1649
1641
|
if (format.length === 4) {
|
1650
|
-
r =
|
1651
|
-
r
|
1652
|
-
g =
|
1653
|
-
g
|
1654
|
-
b =
|
1655
|
-
b
|
1642
|
+
r = (color & 3840) >> 4;
|
1643
|
+
r = r >> 4 | r;
|
1644
|
+
g = color & 240;
|
1645
|
+
g = g >> 4 | g;
|
1646
|
+
b = color & 15;
|
1647
|
+
b = b << 4 | b;
|
1656
1648
|
} else if (format.length === 7) {
|
1657
|
-
r =
|
1658
|
-
g =
|
1659
|
-
b =
|
1649
|
+
r = (color & 16711680) >> 16;
|
1650
|
+
g = (color & 65280) >> 8;
|
1651
|
+
b = color & 255;
|
1660
1652
|
}
|
1661
|
-
r = parseInt(r, 16);
|
1662
|
-
g = parseInt(g, 16);
|
1663
|
-
b = parseInt(b, 16);
|
1664
1653
|
}
|
1665
1654
|
return rgb(r, g, b);
|
1666
1655
|
}
|
@@ -2043,6 +2032,14 @@
|
|
2043
2032
|
};
|
2044
2033
|
d3.csv = d3.dsv(",", "text/csv");
|
2045
2034
|
d3.tsv = d3.dsv(" ", "text/tab-separated-values");
|
2035
|
+
d3.touch = function(container, touches, identifier) {
|
2036
|
+
if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches;
|
2037
|
+
if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) {
|
2038
|
+
if ((touch = touches[i]).identifier === identifier) {
|
2039
|
+
return d3_mousePoint(container, touch);
|
2040
|
+
}
|
2041
|
+
}
|
2042
|
+
};
|
2046
2043
|
var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_active, d3_timer_frame = d3_window[d3_vendorSymbol(d3_window, "requestAnimationFrame")] || function(callback) {
|
2047
2044
|
setTimeout(callback, 17);
|
2048
2045
|
};
|
@@ -2116,7 +2113,7 @@
|
|
2116
2113
|
if (value < 0) value *= -1;
|
2117
2114
|
if (precision) value = d3.round(value, d3_format_precision(value, precision));
|
2118
2115
|
i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);
|
2119
|
-
i = Math.max(-24, Math.min(24, Math.floor((i
|
2116
|
+
i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3));
|
2120
2117
|
}
|
2121
2118
|
return d3_formatPrefixes[8 + i / 3];
|
2122
2119
|
};
|
@@ -4598,7 +4595,12 @@
|
|
4598
4595
|
}, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n;
|
4599
4596
|
if (!n) return d3_geo_mercator;
|
4600
4597
|
function forward(λ, φ) {
|
4601
|
-
|
4598
|
+
if (F > 0) {
|
4599
|
+
if (φ < -halfπ + ε) φ = -halfπ + ε;
|
4600
|
+
} else {
|
4601
|
+
if (φ > halfπ - ε) φ = halfπ - ε;
|
4602
|
+
}
|
4603
|
+
var ρ = F / Math.pow(t(φ), n);
|
4602
4604
|
return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ];
|
4603
4605
|
}
|
4604
4606
|
forward.invert = function(x, y) {
|
@@ -5688,7 +5690,7 @@
|
|
5688
5690
|
}
|
5689
5691
|
d3.interpolators = [ function(a, b) {
|
5690
5692
|
var t = typeof b;
|
5691
|
-
return (t === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_Color ? d3_interpolateRgb : t === "object"
|
5693
|
+
return (t === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_Color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === "object" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b);
|
5692
5694
|
} ];
|
5693
5695
|
d3.interpolateArray = d3_interpolateArray;
|
5694
5696
|
function d3_interpolateArray(a, b) {
|
@@ -7466,9 +7468,24 @@
|
|
7466
7468
|
}
|
7467
7469
|
function d3_scale_linearTickFormat(domain, m, format) {
|
7468
7470
|
var range = d3_scale_linearTickRange(domain, m);
|
7469
|
-
|
7470
|
-
|
7471
|
-
|
7471
|
+
if (format) {
|
7472
|
+
var match = d3_format_re.exec(format);
|
7473
|
+
match.shift();
|
7474
|
+
if (match[8] === "s") {
|
7475
|
+
var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1])));
|
7476
|
+
if (!match[7]) match[7] = "." + d3_scale_linearPrecision(prefix.scale(range[2]));
|
7477
|
+
match[8] = "f";
|
7478
|
+
format = d3.format(match.join(""));
|
7479
|
+
return function(d) {
|
7480
|
+
return format(prefix.scale(d)) + prefix.symbol;
|
7481
|
+
};
|
7482
|
+
}
|
7483
|
+
if (!match[7]) match[7] = "." + d3_scale_linearFormatPrecision(match[8], range);
|
7484
|
+
format = match.join("");
|
7485
|
+
} else {
|
7486
|
+
format = ",." + d3_scale_linearPrecision(range[2]) + "f";
|
7487
|
+
}
|
7488
|
+
return d3.format(format);
|
7472
7489
|
}
|
7473
7490
|
var d3_scale_linearFormatSignificant = {
|
7474
7491
|
s: 1,
|
@@ -7482,7 +7499,7 @@
|
|
7482
7499
|
}
|
7483
7500
|
function d3_scale_linearFormatPrecision(type, range) {
|
7484
7501
|
var p = d3_scale_linearPrecision(range[2]);
|
7485
|
-
return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(
|
7502
|
+
return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== "e") : p - (type === "%") * 2;
|
7486
7503
|
}
|
7487
7504
|
d3.scale.log = function() {
|
7488
7505
|
return d3_scale_log(d3.scale.linear().domain([ 0, 1 ]), 10, true, [ 1, 10 ]);
|
@@ -7610,7 +7627,7 @@
|
|
7610
7627
|
function d3_scale_ordinal(domain, ranger) {
|
7611
7628
|
var index, range, rangeBand;
|
7612
7629
|
function scale(x) {
|
7613
|
-
return range[((index.get(x) || ranger.t === "range"
|
7630
|
+
return range[((index.get(x) || (ranger.t === "range" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length];
|
7614
7631
|
}
|
7615
7632
|
function steps(start, step) {
|
7616
7633
|
return d3.range(domain.length).map(function(i) {
|
@@ -7717,7 +7734,7 @@
|
|
7717
7734
|
if (!arguments.length) return domain;
|
7718
7735
|
domain = x.filter(function(d) {
|
7719
7736
|
return !isNaN(d);
|
7720
|
-
}).sort(
|
7737
|
+
}).sort(d3_ascending);
|
7721
7738
|
return rescale();
|
7722
7739
|
};
|
7723
7740
|
scale.range = function(x) {
|
@@ -8558,6 +8575,7 @@
|
|
8558
8575
|
};
|
8559
8576
|
d3_transitionPrototype.delay = function(value) {
|
8560
8577
|
var id = this.id;
|
8578
|
+
if (arguments.length < 1) return this.node().__transition__[id].delay;
|
8561
8579
|
return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
|
8562
8580
|
node.__transition__[id].delay = +value.call(node, node.__data__, i, j);
|
8563
8581
|
} : (value = +value, function(node) {
|
@@ -8566,6 +8584,7 @@
|
|
8566
8584
|
};
|
8567
8585
|
d3_transitionPrototype.duration = function(value) {
|
8568
8586
|
var id = this.id;
|
8587
|
+
if (arguments.length < 1) return this.node().__transition__[id].duration;
|
8569
8588
|
return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
|
8570
8589
|
node.__transition__[id].duration = Math.max(1, value.call(node, node.__data__, i, j));
|
8571
8590
|
} : (value = Math.max(1, value), function(node) {
|
@@ -8664,7 +8683,7 @@
|
|
8664
8683
|
g.each(function() {
|
8665
8684
|
var g = d3.select(this);
|
8666
8685
|
var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy();
|
8667
|
-
var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(".tick").data(ticks, scale1), tickEnter = tick.enter().insert("g", ".domain").attr("class", "tick").style("opacity", ε), tickExit = d3.transition(tick.exit()).style("opacity", ε).remove(), tickUpdate = d3.transition(tick).style("opacity", 1), tickTransform;
|
8686
|
+
var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(".tick").data(ticks, scale1), tickEnter = tick.enter().insert("g", ".domain").attr("class", "tick").style("opacity", ε), tickExit = d3.transition(tick.exit()).style("opacity", ε).remove(), tickUpdate = d3.transition(tick.order()).style("opacity", 1), tickTransform;
|
8668
8687
|
var range = d3_scaleRange(scale1), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"),
|
8669
8688
|
d3.transition(path));
|
8670
8689
|
tickEnter.append("line");
|
@@ -9214,7 +9233,7 @@
|
|
9214
9233
|
} ], [ "%Y", d3_true ] ]);
|
9215
9234
|
var d3_time_scaleMilliseconds = {
|
9216
9235
|
range: function(start, stop, step) {
|
9217
|
-
return d3.range(
|
9236
|
+
return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate);
|
9218
9237
|
},
|
9219
9238
|
floor: d3_identity,
|
9220
9239
|
ceil: d3_identity
|