d3-rails 3.4.4 → 3.4.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +4 -0
- data/README.md +1 -1
- data/app/assets/javascripts/d3.js +326 -387
- data/app/assets/javascripts/d3.min.js +5 -5
- data/app/assets/javascripts/d3.v3.js +326 -387
- data/app/assets/javascripts/d3.v3.min.js +5 -5
- data/lib/d3/rails/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da6ac0888f02c6736f79a6d444d3155ada9b5380
|
4
|
+
data.tar.gz: 0b2943921830c14b72a1c39f9805115313cd0d6b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2adca8ab210f31901da1a8abab150baf10a40c7450d7bdf486f5bd18cc6ad1209e6a65867e22c848c1407d1a84628f2127a4b043cb7be7f166715944fe5ea41b
|
7
|
+
data.tar.gz: da1baf3fe57ebbc604b016425623a8db72053d6ea5997d533c2fd6e03f5bc4065402485fdd14441e48961ef9858ad5e5311c84b7905de5f0d776f65c59034323
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
!function() {
|
2
2
|
var d3 = {
|
3
|
-
version: "3.4.
|
3
|
+
version: "3.4.11"
|
4
4
|
};
|
5
5
|
if (!Date.now) Date.now = function() {
|
6
6
|
return +new Date();
|
@@ -91,13 +91,13 @@
|
|
91
91
|
return x != null && !isNaN(x);
|
92
92
|
}
|
93
93
|
d3.mean = function(array, f) {
|
94
|
-
var n = array.length, a,
|
94
|
+
var s = 0, n = array.length, a, i = -1, j = n;
|
95
95
|
if (arguments.length === 1) {
|
96
|
-
while (++i < n) if (d3_number(a = array[i]))
|
96
|
+
while (++i < n) if (d3_number(a = array[i])) s += a; else --j;
|
97
97
|
} else {
|
98
|
-
while (++i < n) if (d3_number(a = f.call(array, array[i], i)))
|
98
|
+
while (++i < n) if (d3_number(a = f.call(array, array[i], i))) s += a; else --j;
|
99
99
|
}
|
100
|
-
return j ?
|
100
|
+
return j ? s / j : undefined;
|
101
101
|
};
|
102
102
|
d3.quantile = function(values, p) {
|
103
103
|
var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;
|
@@ -492,7 +492,7 @@
|
|
492
492
|
return n.querySelector(s);
|
493
493
|
}, d3_selectAll = function(s, n) {
|
494
494
|
return n.querySelectorAll(s);
|
495
|
-
}, d3_selectMatcher = d3_documentElement[d3_vendorSymbol(d3_documentElement, "matchesSelector")], d3_selectMatches = function(n, s) {
|
495
|
+
}, d3_selectMatcher = d3_documentElement.matches || d3_documentElement[d3_vendorSymbol(d3_documentElement, "matchesSelector")], d3_selectMatches = function(n, s) {
|
496
496
|
return d3_selectMatcher.call(n, s);
|
497
497
|
};
|
498
498
|
if (typeof Sizzle === "function") {
|
@@ -627,7 +627,7 @@
|
|
627
627
|
return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g");
|
628
628
|
}
|
629
629
|
function d3_selection_classes(name) {
|
630
|
-
return name.trim().split(/^|\s+/);
|
630
|
+
return (name + "").trim().split(/^|\s+/);
|
631
631
|
}
|
632
632
|
function d3_selection_classed(name, value) {
|
633
633
|
name = d3_selection_classes(name).map(d3_selection_classedName);
|
@@ -1089,12 +1089,27 @@
|
|
1089
1089
|
d3.mouse = function(container) {
|
1090
1090
|
return d3_mousePoint(container, d3_eventSource());
|
1091
1091
|
};
|
1092
|
+
var d3_mouse_bug44083 = /WebKit/.test(d3_window.navigator.userAgent) ? -1 : 0;
|
1092
1093
|
function d3_mousePoint(container, e) {
|
1093
1094
|
if (e.changedTouches) e = e.changedTouches[0];
|
1094
1095
|
var svg = container.ownerSVGElement || container;
|
1095
1096
|
if (svg.createSVGPoint) {
|
1096
1097
|
var point = svg.createSVGPoint();
|
1097
|
-
|
1098
|
+
if (d3_mouse_bug44083 < 0 && (d3_window.scrollX || d3_window.scrollY)) {
|
1099
|
+
svg = d3.select("body").append("svg").style({
|
1100
|
+
position: "absolute",
|
1101
|
+
top: 0,
|
1102
|
+
left: 0,
|
1103
|
+
margin: 0,
|
1104
|
+
padding: 0,
|
1105
|
+
border: "none"
|
1106
|
+
}, "important");
|
1107
|
+
var ctm = svg[0][0].getScreenCTM();
|
1108
|
+
d3_mouse_bug44083 = !(ctm.f || ctm.e);
|
1109
|
+
svg.remove();
|
1110
|
+
}
|
1111
|
+
if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX,
|
1112
|
+
point.y = e.clientY;
|
1098
1113
|
point = point.matrixTransform(container.getScreenCTM().inverse());
|
1099
1114
|
return [ point.x, point.y ];
|
1100
1115
|
}
|
@@ -1212,9 +1227,9 @@
|
|
1212
1227
|
x: 0,
|
1213
1228
|
y: 0,
|
1214
1229
|
k: 1
|
1215
|
-
}, translate0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, mousedown = "mousedown.zoom", mousemove = "mousemove.zoom", mouseup = "mouseup.zoom", mousewheelTimer, touchstart = "touchstart.zoom", touchtime, event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"), x0, x1, y0, y1;
|
1230
|
+
}, translate0, center0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, mousedown = "mousedown.zoom", mousemove = "mousemove.zoom", mouseup = "mouseup.zoom", mousewheelTimer, touchstart = "touchstart.zoom", touchtime, event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"), x0, x1, y0, y1;
|
1216
1231
|
function zoom(g) {
|
1217
|
-
g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + ".zoom", mousewheeled).on(
|
1232
|
+
g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + ".zoom", mousewheeled).on("dblclick.zoom", dblclicked).on(touchstart, touchstarted);
|
1218
1233
|
}
|
1219
1234
|
zoom.event = function(g) {
|
1220
1235
|
g.each(function() {
|
@@ -1356,13 +1371,13 @@
|
|
1356
1371
|
zoomed(dispatch);
|
1357
1372
|
}
|
1358
1373
|
function ended() {
|
1359
|
-
subject.on(mousemove,
|
1374
|
+
subject.on(mousemove, null).on(mouseup, null);
|
1360
1375
|
dragRestore(dragged && d3.event.target === target);
|
1361
1376
|
zoomended(dispatch);
|
1362
1377
|
}
|
1363
1378
|
}
|
1364
1379
|
function touchstarted() {
|
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,
|
1380
|
+
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, targets = [], subject = d3.select(that).on(mousedown, null).on(touchstart, started), dragRestore = d3_event_dragSuppress();
|
1366
1381
|
d3_selection_interrupt.call(that);
|
1367
1382
|
started();
|
1368
1383
|
zoomstarted(dispatch);
|
@@ -1375,6 +1390,9 @@
|
|
1375
1390
|
return touches;
|
1376
1391
|
}
|
1377
1392
|
function started() {
|
1393
|
+
var target = d3.event.target;
|
1394
|
+
d3.select(target).on(touchmove, moved).on(touchend, ended);
|
1395
|
+
targets.push(target);
|
1378
1396
|
var changed = d3.event.changedTouches;
|
1379
1397
|
for (var i = 0, n = changed.length; i < n; ++i) {
|
1380
1398
|
locations0[changed[i].identifier] = null;
|
@@ -1423,7 +1441,7 @@
|
|
1423
1441
|
return void relocate();
|
1424
1442
|
}
|
1425
1443
|
}
|
1426
|
-
|
1444
|
+
d3.selectAll(targets).on(zoomName, null);
|
1427
1445
|
subject.on(mousedown, mousedowned).on(touchstart, touchstarted);
|
1428
1446
|
dragRestore();
|
1429
1447
|
zoomended(dispatch);
|
@@ -1431,22 +1449,17 @@
|
|
1431
1449
|
}
|
1432
1450
|
function mousewheeled() {
|
1433
1451
|
var dispatch = event.of(this, arguments);
|
1434
|
-
if (mousewheelTimer) clearTimeout(mousewheelTimer); else
|
1435
|
-
zoomstarted(dispatch);
|
1452
|
+
if (mousewheelTimer) clearTimeout(mousewheelTimer); else translate0 = location(center0 = center || d3.mouse(this)),
|
1453
|
+
d3_selection_interrupt.call(this), zoomstarted(dispatch);
|
1436
1454
|
mousewheelTimer = setTimeout(function() {
|
1437
1455
|
mousewheelTimer = null;
|
1438
1456
|
zoomended(dispatch);
|
1439
1457
|
}, 50);
|
1440
1458
|
d3_eventPreventDefault();
|
1441
|
-
var point = center || d3.mouse(this);
|
1442
|
-
if (!translate0) translate0 = location(point);
|
1443
1459
|
scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k);
|
1444
|
-
translateTo(
|
1460
|
+
translateTo(center0, translate0);
|
1445
1461
|
zoomed(dispatch);
|
1446
1462
|
}
|
1447
|
-
function mousewheelreset() {
|
1448
|
-
translate0 = null;
|
1449
|
-
}
|
1450
1463
|
function dblclicked() {
|
1451
1464
|
var dispatch = event.of(this, arguments), p = d3.mouse(this), l = location(p), k = Math.log(view.k) / Math.LN2;
|
1452
1465
|
zoomstarted(dispatch);
|
@@ -1465,29 +1478,23 @@
|
|
1465
1478
|
}, "mousewheel") : (d3_behavior_zoomDelta = function() {
|
1466
1479
|
return -d3.event.detail;
|
1467
1480
|
}, "MozMousePixelScroll");
|
1468
|
-
|
1469
|
-
|
1481
|
+
d3.color = d3_color;
|
1482
|
+
function d3_color() {}
|
1483
|
+
d3_color.prototype.toString = function() {
|
1470
1484
|
return this.rgb() + "";
|
1471
1485
|
};
|
1472
|
-
d3.hsl =
|
1473
|
-
return arguments.length === 1 ? h instanceof d3_Hsl ? d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : d3_hsl(+h, +s, +l);
|
1474
|
-
};
|
1486
|
+
d3.hsl = d3_hsl;
|
1475
1487
|
function d3_hsl(h, s, l) {
|
1476
|
-
return new
|
1488
|
+
return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l);
|
1477
1489
|
}
|
1478
|
-
|
1479
|
-
this.h = h;
|
1480
|
-
this.s = s;
|
1481
|
-
this.l = l;
|
1482
|
-
}
|
1483
|
-
var d3_hslPrototype = d3_Hsl.prototype = new d3_Color();
|
1490
|
+
var d3_hslPrototype = d3_hsl.prototype = new d3_color();
|
1484
1491
|
d3_hslPrototype.brighter = function(k) {
|
1485
1492
|
k = Math.pow(.7, arguments.length ? k : 1);
|
1486
|
-
return d3_hsl(this.h, this.s, this.l / k);
|
1493
|
+
return new d3_hsl(this.h, this.s, this.l / k);
|
1487
1494
|
};
|
1488
1495
|
d3_hslPrototype.darker = function(k) {
|
1489
1496
|
k = Math.pow(.7, arguments.length ? k : 1);
|
1490
|
-
return d3_hsl(this.h, this.s, k * this.l);
|
1497
|
+
return new d3_hsl(this.h, this.s, k * this.l);
|
1491
1498
|
};
|
1492
1499
|
d3_hslPrototype.rgb = function() {
|
1493
1500
|
return d3_hsl_rgb(this.h, this.s, this.l);
|
@@ -1509,25 +1516,18 @@
|
|
1509
1516
|
function vv(h) {
|
1510
1517
|
return Math.round(v(h) * 255);
|
1511
1518
|
}
|
1512
|
-
return d3_rgb(vv(h + 120), vv(h), vv(h - 120));
|
1519
|
+
return new d3_rgb(vv(h + 120), vv(h), vv(h - 120));
|
1513
1520
|
}
|
1514
|
-
d3.hcl =
|
1515
|
-
return arguments.length === 1 ? h instanceof d3_Hcl ? d3_hcl(h.h, h.c, h.l) : h instanceof d3_Lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : d3_hcl(+h, +c, +l);
|
1516
|
-
};
|
1521
|
+
d3.hcl = d3_hcl;
|
1517
1522
|
function d3_hcl(h, c, l) {
|
1518
|
-
return new
|
1519
|
-
}
|
1520
|
-
function d3_Hcl(h, c, l) {
|
1521
|
-
this.h = h;
|
1522
|
-
this.c = c;
|
1523
|
-
this.l = l;
|
1523
|
+
return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l);
|
1524
1524
|
}
|
1525
|
-
var d3_hclPrototype =
|
1525
|
+
var d3_hclPrototype = d3_hcl.prototype = new d3_color();
|
1526
1526
|
d3_hclPrototype.brighter = function(k) {
|
1527
|
-
return d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));
|
1527
|
+
return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));
|
1528
1528
|
};
|
1529
1529
|
d3_hclPrototype.darker = function(k) {
|
1530
|
-
return d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));
|
1530
|
+
return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));
|
1531
1531
|
};
|
1532
1532
|
d3_hclPrototype.rgb = function() {
|
1533
1533
|
return d3_hcl_lab(this.h, this.c, this.l).rgb();
|
@@ -1535,27 +1535,20 @@
|
|
1535
1535
|
function d3_hcl_lab(h, c, l) {
|
1536
1536
|
if (isNaN(h)) h = 0;
|
1537
1537
|
if (isNaN(c)) c = 0;
|
1538
|
-
return d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);
|
1538
|
+
return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);
|
1539
1539
|
}
|
1540
|
-
d3.lab =
|
1541
|
-
return arguments.length === 1 ? l instanceof d3_Lab ? d3_lab(l.l, l.a, l.b) : l instanceof d3_Hcl ? d3_hcl_lab(l.l, l.c, l.h) : d3_rgb_lab((l = d3.rgb(l)).r, l.g, l.b) : d3_lab(+l, +a, +b);
|
1542
|
-
};
|
1540
|
+
d3.lab = d3_lab;
|
1543
1541
|
function d3_lab(l, a, b) {
|
1544
|
-
return new
|
1545
|
-
}
|
1546
|
-
function d3_Lab(l, a, b) {
|
1547
|
-
this.l = l;
|
1548
|
-
this.a = a;
|
1549
|
-
this.b = b;
|
1542
|
+
return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.l, l.c, l.h) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b);
|
1550
1543
|
}
|
1551
1544
|
var d3_lab_K = 18;
|
1552
1545
|
var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;
|
1553
|
-
var d3_labPrototype =
|
1546
|
+
var d3_labPrototype = d3_lab.prototype = new d3_color();
|
1554
1547
|
d3_labPrototype.brighter = function(k) {
|
1555
|
-
return d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
|
1548
|
+
return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
|
1556
1549
|
};
|
1557
1550
|
d3_labPrototype.darker = function(k) {
|
1558
|
-
return d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
|
1551
|
+
return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
|
1559
1552
|
};
|
1560
1553
|
d3_labPrototype.rgb = function() {
|
1561
1554
|
return d3_lab_rgb(this.l, this.a, this.b);
|
@@ -1565,10 +1558,10 @@
|
|
1565
1558
|
x = d3_lab_xyz(x) * d3_lab_X;
|
1566
1559
|
y = d3_lab_xyz(y) * d3_lab_Y;
|
1567
1560
|
z = d3_lab_xyz(z) * d3_lab_Z;
|
1568
|
-
return d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));
|
1561
|
+
return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));
|
1569
1562
|
}
|
1570
1563
|
function d3_lab_hcl(l, a, b) {
|
1571
|
-
return l > 0 ? d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : d3_hcl(NaN, NaN, l);
|
1564
|
+
return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l);
|
1572
1565
|
}
|
1573
1566
|
function d3_lab_xyz(x) {
|
1574
1567
|
return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;
|
@@ -1579,36 +1572,29 @@
|
|
1579
1572
|
function d3_xyz_rgb(r) {
|
1580
1573
|
return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));
|
1581
1574
|
}
|
1582
|
-
d3.rgb =
|
1583
|
-
|
1584
|
-
|
1575
|
+
d3.rgb = d3_rgb;
|
1576
|
+
function d3_rgb(r, g, b) {
|
1577
|
+
return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b);
|
1578
|
+
}
|
1585
1579
|
function d3_rgbNumber(value) {
|
1586
|
-
return d3_rgb(value >> 16, value >> 8 & 255, value & 255);
|
1580
|
+
return new d3_rgb(value >> 16, value >> 8 & 255, value & 255);
|
1587
1581
|
}
|
1588
1582
|
function d3_rgbString(value) {
|
1589
1583
|
return d3_rgbNumber(value) + "";
|
1590
1584
|
}
|
1591
|
-
|
1592
|
-
return new d3_Rgb(r, g, b);
|
1593
|
-
}
|
1594
|
-
function d3_Rgb(r, g, b) {
|
1595
|
-
this.r = r;
|
1596
|
-
this.g = g;
|
1597
|
-
this.b = b;
|
1598
|
-
}
|
1599
|
-
var d3_rgbPrototype = d3_Rgb.prototype = new d3_Color();
|
1585
|
+
var d3_rgbPrototype = d3_rgb.prototype = new d3_color();
|
1600
1586
|
d3_rgbPrototype.brighter = function(k) {
|
1601
1587
|
k = Math.pow(.7, arguments.length ? k : 1);
|
1602
1588
|
var r = this.r, g = this.g, b = this.b, i = 30;
|
1603
|
-
if (!r && !g && !b) return d3_rgb(i, i, i);
|
1589
|
+
if (!r && !g && !b) return new d3_rgb(i, i, i);
|
1604
1590
|
if (r && r < i) r = i;
|
1605
1591
|
if (g && g < i) g = i;
|
1606
1592
|
if (b && b < i) b = i;
|
1607
|
-
return d3_rgb(Math.min(255,
|
1593
|
+
return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k));
|
1608
1594
|
};
|
1609
1595
|
d3_rgbPrototype.darker = function(k) {
|
1610
1596
|
k = Math.pow(.7, arguments.length ? k : 1);
|
1611
|
-
return d3_rgb(
|
1597
|
+
return new d3_rgb(k * this.r, k * this.g, k * this.b);
|
1612
1598
|
};
|
1613
1599
|
d3_rgbPrototype.hsl = function() {
|
1614
1600
|
return d3_rgb_hsl(this.r, this.g, this.b);
|
@@ -1663,7 +1649,7 @@
|
|
1663
1649
|
h = NaN;
|
1664
1650
|
s = l > 0 && l < 1 ? 0 : h;
|
1665
1651
|
}
|
1666
|
-
return d3_hsl(h, s, l);
|
1652
|
+
return new d3_hsl(h, s, l);
|
1667
1653
|
}
|
1668
1654
|
function d3_rgb_lab(r, g, b) {
|
1669
1655
|
r = d3_rgb_xyz(r);
|
@@ -1843,7 +1829,7 @@
|
|
1843
1829
|
d3.xhr = d3_xhrType(d3_identity);
|
1844
1830
|
function d3_xhrType(response) {
|
1845
1831
|
return function(url, mimeType, callback) {
|
1846
|
-
if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType,
|
1832
|
+
if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType,
|
1847
1833
|
mimeType = null;
|
1848
1834
|
return d3_xhr(url, mimeType, response, callback);
|
1849
1835
|
};
|
@@ -2031,7 +2017,7 @@
|
|
2031
2017
|
return dsv;
|
2032
2018
|
};
|
2033
2019
|
d3.csv = d3.dsv(",", "text/csv");
|
2034
|
-
d3.tsv = d3.dsv("
|
2020
|
+
d3.tsv = d3.dsv(" ", "text/tab-separated-values");
|
2035
2021
|
d3.touch = function(container, touches, identifier) {
|
2036
2022
|
if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches;
|
2037
2023
|
if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) {
|
@@ -2675,7 +2661,7 @@
|
|
2675
2661
|
return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1;
|
2676
2662
|
}
|
2677
2663
|
function d3_time_parseZone(date, string, i) {
|
2678
|
-
return /^[+-]\d{4}$/.test(string = string.substring(i, i + 5)) ? (date.Z =
|
2664
|
+
return /^[+-]\d{4}$/.test(string = string.substring(i, i + 5)) ? (date.Z = -string,
|
2679
2665
|
i + 5) : -1;
|
2680
2666
|
}
|
2681
2667
|
function d3_time_expandYear(d) {
|
@@ -2868,7 +2854,7 @@
|
|
2868
2854
|
var λ00, φ00, λ0, cosφ0, sinφ0;
|
2869
2855
|
d3_geo_area.point = function(λ, φ) {
|
2870
2856
|
d3_geo_area.point = nextPoint;
|
2871
|
-
λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4),
|
2857
|
+
λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4),
|
2872
2858
|
sinφ0 = Math.sin(φ);
|
2873
2859
|
};
|
2874
2860
|
function nextPoint(λ, φ) {
|
@@ -3224,7 +3210,6 @@
|
|
3224
3210
|
clip.lineEnd = ringEnd;
|
3225
3211
|
segments = [];
|
3226
3212
|
polygon = [];
|
3227
|
-
listener.polygonStart();
|
3228
3213
|
},
|
3229
3214
|
polygonEnd: function() {
|
3230
3215
|
clip.point = point;
|
@@ -3233,13 +3218,15 @@
|
|
3233
3218
|
segments = d3.merge(segments);
|
3234
3219
|
var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon);
|
3235
3220
|
if (segments.length) {
|
3221
|
+
if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
|
3236
3222
|
d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener);
|
3237
3223
|
} else if (clipStartInside) {
|
3224
|
+
if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
|
3238
3225
|
listener.lineStart();
|
3239
3226
|
interpolate(null, null, 1, listener);
|
3240
3227
|
listener.lineEnd();
|
3241
3228
|
}
|
3242
|
-
listener.polygonEnd();
|
3229
|
+
if (polygonStarted) listener.polygonEnd(), polygonStarted = false;
|
3243
3230
|
segments = polygon = null;
|
3244
3231
|
},
|
3245
3232
|
sphere: function() {
|
@@ -3267,7 +3254,7 @@
|
|
3267
3254
|
line.lineEnd();
|
3268
3255
|
}
|
3269
3256
|
var segments;
|
3270
|
-
var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygon, ring;
|
3257
|
+
var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygonStarted = false, polygon, ring;
|
3271
3258
|
function pointRing(λ, φ) {
|
3272
3259
|
ring.push([ λ, φ ]);
|
3273
3260
|
var point = rotate(λ, φ);
|
@@ -3288,9 +3275,12 @@
|
|
3288
3275
|
if (clean & 1) {
|
3289
3276
|
segment = ringSegments[0];
|
3290
3277
|
var n = segment.length - 1, i = -1, point;
|
3291
|
-
|
3292
|
-
|
3293
|
-
|
3278
|
+
if (n > 0) {
|
3279
|
+
if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
|
3280
|
+
listener.lineStart();
|
3281
|
+
while (++i < n) listener.point((point = segment[i])[0], point[1]);
|
3282
|
+
listener.lineEnd();
|
3283
|
+
}
|
3294
3284
|
return;
|
3295
3285
|
}
|
3296
3286
|
if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
|
@@ -4690,13 +4680,13 @@
|
|
4690
4680
|
(d3.geo.transverseMercator = function() {
|
4691
4681
|
var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), center = projection.center, rotate = projection.rotate;
|
4692
4682
|
projection.center = function(_) {
|
4693
|
-
return _ ? center([ -_[1], _[0] ]) : (_ = center(), [
|
4683
|
+
return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ _[1], -_[0] ]);
|
4694
4684
|
};
|
4695
4685
|
projection.rotate = function(_) {
|
4696
|
-
return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(),
|
4686
|
+
return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(),
|
4697
4687
|
[ _[0], _[1], _[2] - 90 ]);
|
4698
4688
|
};
|
4699
|
-
return
|
4689
|
+
return rotate([ 0, 0, 90 ]);
|
4700
4690
|
}).raw = d3_geo_transverseMercator;
|
4701
4691
|
d3.geom = {};
|
4702
4692
|
function d3_geom_pointX(d) {
|
@@ -5544,7 +5534,7 @@
|
|
5544
5534
|
};
|
5545
5535
|
quadtree.extent = function(_) {
|
5546
5536
|
if (!arguments.length) return x1 == null ? null : [ [ x1, y1 ], [ x2, y2 ] ];
|
5547
|
-
if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0],
|
5537
|
+
if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0],
|
5548
5538
|
y2 = +_[1][1];
|
5549
5539
|
return quadtree;
|
5550
5540
|
};
|
@@ -5617,71 +5607,38 @@
|
|
5617
5607
|
}
|
5618
5608
|
d3.interpolateString = d3_interpolateString;
|
5619
5609
|
function d3_interpolateString(a, b) {
|
5620
|
-
var
|
5610
|
+
var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];
|
5621
5611
|
a = a + "", b = b + "";
|
5622
|
-
|
5623
|
-
|
5624
|
-
|
5625
|
-
|
5626
|
-
i: s.length,
|
5627
|
-
x: m[0]
|
5628
|
-
});
|
5629
|
-
s.push(null);
|
5630
|
-
s0 = d3_interpolate_number.lastIndex;
|
5631
|
-
}
|
5632
|
-
if (s0 < b.length) s.push(b.substring(s0));
|
5633
|
-
for (i = 0, n = q.length; (m = d3_interpolate_number.exec(a)) && i < n; ++i) {
|
5634
|
-
o = q[i];
|
5635
|
-
if (o.x == m[0]) {
|
5636
|
-
if (o.i) {
|
5637
|
-
if (s[o.i + 1] == null) {
|
5638
|
-
s[o.i - 1] += o.x;
|
5639
|
-
s.splice(o.i, 1);
|
5640
|
-
for (j = i + 1; j < n; ++j) q[j].i--;
|
5641
|
-
} else {
|
5642
|
-
s[o.i - 1] += o.x + s[o.i + 1];
|
5643
|
-
s.splice(o.i, 2);
|
5644
|
-
for (j = i + 1; j < n; ++j) q[j].i -= 2;
|
5645
|
-
}
|
5646
|
-
} else {
|
5647
|
-
if (s[o.i + 1] == null) {
|
5648
|
-
s[o.i] = o.x;
|
5649
|
-
} else {
|
5650
|
-
s[o.i] = o.x + s[o.i + 1];
|
5651
|
-
s.splice(o.i + 1, 1);
|
5652
|
-
for (j = i + 1; j < n; ++j) q[j].i--;
|
5653
|
-
}
|
5654
|
-
}
|
5655
|
-
q.splice(i, 1);
|
5656
|
-
n--;
|
5657
|
-
i--;
|
5658
|
-
} else {
|
5659
|
-
o.x = d3_interpolateNumber(parseFloat(m[0]), parseFloat(o.x));
|
5612
|
+
while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) {
|
5613
|
+
if ((bs = bm.index) > bi) {
|
5614
|
+
bs = b.substring(bi, bs);
|
5615
|
+
if (s[i]) s[i] += bs; else s[++i] = bs;
|
5660
5616
|
}
|
5661
|
-
|
5662
|
-
|
5663
|
-
o = q.pop();
|
5664
|
-
if (s[o.i + 1] == null) {
|
5665
|
-
s[o.i] = o.x;
|
5617
|
+
if ((am = am[0]) === (bm = bm[0])) {
|
5618
|
+
if (s[i]) s[i] += bm; else s[++i] = bm;
|
5666
5619
|
} else {
|
5667
|
-
s[
|
5668
|
-
|
5620
|
+
s[++i] = null;
|
5621
|
+
q.push({
|
5622
|
+
i: i,
|
5623
|
+
x: d3_interpolateNumber(am, bm)
|
5624
|
+
});
|
5669
5625
|
}
|
5670
|
-
|
5626
|
+
bi = d3_interpolate_numberB.lastIndex;
|
5671
5627
|
}
|
5672
|
-
if (
|
5673
|
-
|
5674
|
-
|
5675
|
-
}) : function() {
|
5676
|
-
return b;
|
5677
|
-
};
|
5628
|
+
if (bi < b.length) {
|
5629
|
+
bs = b.substring(bi);
|
5630
|
+
if (s[i]) s[i] += bs; else s[++i] = bs;
|
5678
5631
|
}
|
5679
|
-
return function(t) {
|
5680
|
-
|
5632
|
+
return s.length < 2 ? q[0] ? (b = q[0].x, function(t) {
|
5633
|
+
return b(t) + "";
|
5634
|
+
}) : function() {
|
5635
|
+
return b;
|
5636
|
+
} : (b = q.length, function(t) {
|
5637
|
+
for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
|
5681
5638
|
return s.join("");
|
5682
|
-
};
|
5639
|
+
});
|
5683
5640
|
}
|
5684
|
-
var
|
5641
|
+
var d3_interpolate_numberA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, "g");
|
5685
5642
|
d3.interpolate = d3_interpolate;
|
5686
5643
|
function d3_interpolate(a, b) {
|
5687
5644
|
var i = d3.interpolators.length, f;
|
@@ -5690,7 +5647,7 @@
|
|
5690
5647
|
}
|
5691
5648
|
d3.interpolators = [ function(a, b) {
|
5692
5649
|
var t = typeof b;
|
5693
|
-
return (t === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof
|
5650
|
+
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);
|
5694
5651
|
} ];
|
5695
5652
|
d3.interpolateArray = d3_interpolateArray;
|
5696
5653
|
function d3_interpolateArray(a, b) {
|
@@ -6361,41 +6318,30 @@
|
|
6361
6318
|
var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity;
|
6362
6319
|
d3.layout.hierarchy = function() {
|
6363
6320
|
var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;
|
6364
|
-
function
|
6365
|
-
var
|
6366
|
-
|
6367
|
-
|
6368
|
-
|
6369
|
-
|
6370
|
-
|
6371
|
-
|
6372
|
-
|
6373
|
-
|
6374
|
-
|
6375
|
-
|
6376
|
-
|
6377
|
-
|
6378
|
-
|
6379
|
-
|
6380
|
-
node.
|
6321
|
+
function hierarchy(root) {
|
6322
|
+
var stack = [ root ], nodes = [], node;
|
6323
|
+
root.depth = 0;
|
6324
|
+
while ((node = stack.pop()) != null) {
|
6325
|
+
nodes.push(node);
|
6326
|
+
if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) {
|
6327
|
+
var n, childs, child;
|
6328
|
+
while (--n >= 0) {
|
6329
|
+
stack.push(child = childs[n]);
|
6330
|
+
child.parent = node;
|
6331
|
+
child.depth = node.depth + 1;
|
6332
|
+
}
|
6333
|
+
if (value) node.value = 0;
|
6334
|
+
node.children = childs;
|
6335
|
+
} else {
|
6336
|
+
if (value) node.value = +value.call(hierarchy, node, node.depth) || 0;
|
6337
|
+
delete node.children;
|
6381
6338
|
}
|
6382
6339
|
}
|
6383
|
-
|
6384
|
-
|
6385
|
-
|
6386
|
-
|
6387
|
-
|
6388
|
-
var i = -1, n, j = depth + 1;
|
6389
|
-
while (++i < n) v += revalue(children[i], j);
|
6390
|
-
} else if (value) {
|
6391
|
-
v = +value.call(hierarchy, node, depth) || 0;
|
6392
|
-
}
|
6393
|
-
if (value) node.value = v;
|
6394
|
-
return v;
|
6395
|
-
}
|
6396
|
-
function hierarchy(d) {
|
6397
|
-
var nodes = [];
|
6398
|
-
recurse(d, 0, nodes);
|
6340
|
+
d3_layout_hierarchyVisitAfter(root, function(node) {
|
6341
|
+
var childs, parent;
|
6342
|
+
if (sort && (childs = node.children)) childs.sort(sort);
|
6343
|
+
if (value && (parent = node.parent)) parent.value += node.value;
|
6344
|
+
});
|
6399
6345
|
return nodes;
|
6400
6346
|
}
|
6401
6347
|
hierarchy.sort = function(x) {
|
@@ -6414,7 +6360,16 @@
|
|
6414
6360
|
return hierarchy;
|
6415
6361
|
};
|
6416
6362
|
hierarchy.revalue = function(root) {
|
6417
|
-
|
6363
|
+
if (value) {
|
6364
|
+
d3_layout_hierarchyVisitBefore(root, function(node) {
|
6365
|
+
if (node.children) node.value = 0;
|
6366
|
+
});
|
6367
|
+
d3_layout_hierarchyVisitAfter(root, function(node) {
|
6368
|
+
var parent;
|
6369
|
+
if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0;
|
6370
|
+
if (parent = node.parent) parent.value += node.value;
|
6371
|
+
});
|
6372
|
+
}
|
6418
6373
|
return root;
|
6419
6374
|
};
|
6420
6375
|
return hierarchy;
|
@@ -6425,6 +6380,29 @@
|
|
6425
6380
|
object.links = d3_layout_hierarchyLinks;
|
6426
6381
|
return object;
|
6427
6382
|
}
|
6383
|
+
function d3_layout_hierarchyVisitBefore(node, callback) {
|
6384
|
+
var nodes = [ node ];
|
6385
|
+
while ((node = nodes.pop()) != null) {
|
6386
|
+
callback(node);
|
6387
|
+
if ((children = node.children) && (n = children.length)) {
|
6388
|
+
var n, children;
|
6389
|
+
while (--n >= 0) nodes.push(children[n]);
|
6390
|
+
}
|
6391
|
+
}
|
6392
|
+
}
|
6393
|
+
function d3_layout_hierarchyVisitAfter(node, callback) {
|
6394
|
+
var nodes = [ node ], nodes2 = [];
|
6395
|
+
while ((node = nodes.pop()) != null) {
|
6396
|
+
nodes2.push(node);
|
6397
|
+
if ((children = node.children) && (n = children.length)) {
|
6398
|
+
var i = -1, n, children;
|
6399
|
+
while (++i < n) nodes.push(children[i]);
|
6400
|
+
}
|
6401
|
+
}
|
6402
|
+
while ((node = nodes2.pop()) != null) {
|
6403
|
+
callback(node);
|
6404
|
+
}
|
6405
|
+
}
|
6428
6406
|
function d3_layout_hierarchyChildren(d) {
|
6429
6407
|
return d.children;
|
6430
6408
|
}
|
@@ -6740,185 +6718,6 @@
|
|
6740
6718
|
function d3_layout_histogramRange(values) {
|
6741
6719
|
return [ d3.min(values), d3.max(values) ];
|
6742
6720
|
}
|
6743
|
-
d3.layout.tree = function() {
|
6744
|
-
var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false;
|
6745
|
-
function tree(d, i) {
|
6746
|
-
var nodes = hierarchy.call(this, d, i), root = nodes[0];
|
6747
|
-
function firstWalk(node, previousSibling) {
|
6748
|
-
var children = node.children, layout = node._tree;
|
6749
|
-
if (children && (n = children.length)) {
|
6750
|
-
var n, firstChild = children[0], previousChild, ancestor = firstChild, child, i = -1;
|
6751
|
-
while (++i < n) {
|
6752
|
-
child = children[i];
|
6753
|
-
firstWalk(child, previousChild);
|
6754
|
-
ancestor = apportion(child, previousChild, ancestor);
|
6755
|
-
previousChild = child;
|
6756
|
-
}
|
6757
|
-
d3_layout_treeShift(node);
|
6758
|
-
var midpoint = .5 * (firstChild._tree.prelim + child._tree.prelim);
|
6759
|
-
if (previousSibling) {
|
6760
|
-
layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
|
6761
|
-
layout.mod = layout.prelim - midpoint;
|
6762
|
-
} else {
|
6763
|
-
layout.prelim = midpoint;
|
6764
|
-
}
|
6765
|
-
} else {
|
6766
|
-
if (previousSibling) {
|
6767
|
-
layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
|
6768
|
-
}
|
6769
|
-
}
|
6770
|
-
}
|
6771
|
-
function secondWalk(node, x) {
|
6772
|
-
node.x = node._tree.prelim + x;
|
6773
|
-
var children = node.children;
|
6774
|
-
if (children && (n = children.length)) {
|
6775
|
-
var i = -1, n;
|
6776
|
-
x += node._tree.mod;
|
6777
|
-
while (++i < n) {
|
6778
|
-
secondWalk(children[i], x);
|
6779
|
-
}
|
6780
|
-
}
|
6781
|
-
}
|
6782
|
-
function apportion(node, previousSibling, ancestor) {
|
6783
|
-
if (previousSibling) {
|
6784
|
-
var vip = node, vop = node, vim = previousSibling, vom = node.parent.children[0], sip = vip._tree.mod, sop = vop._tree.mod, sim = vim._tree.mod, som = vom._tree.mod, shift;
|
6785
|
-
while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
|
6786
|
-
vom = d3_layout_treeLeft(vom);
|
6787
|
-
vop = d3_layout_treeRight(vop);
|
6788
|
-
vop._tree.ancestor = node;
|
6789
|
-
shift = vim._tree.prelim + sim - vip._tree.prelim - sip + separation(vim, vip);
|
6790
|
-
if (shift > 0) {
|
6791
|
-
d3_layout_treeMove(d3_layout_treeAncestor(vim, node, ancestor), node, shift);
|
6792
|
-
sip += shift;
|
6793
|
-
sop += shift;
|
6794
|
-
}
|
6795
|
-
sim += vim._tree.mod;
|
6796
|
-
sip += vip._tree.mod;
|
6797
|
-
som += vom._tree.mod;
|
6798
|
-
sop += vop._tree.mod;
|
6799
|
-
}
|
6800
|
-
if (vim && !d3_layout_treeRight(vop)) {
|
6801
|
-
vop._tree.thread = vim;
|
6802
|
-
vop._tree.mod += sim - sop;
|
6803
|
-
}
|
6804
|
-
if (vip && !d3_layout_treeLeft(vom)) {
|
6805
|
-
vom._tree.thread = vip;
|
6806
|
-
vom._tree.mod += sip - som;
|
6807
|
-
ancestor = node;
|
6808
|
-
}
|
6809
|
-
}
|
6810
|
-
return ancestor;
|
6811
|
-
}
|
6812
|
-
d3_layout_treeVisitAfter(root, function(node, previousSibling) {
|
6813
|
-
node._tree = {
|
6814
|
-
ancestor: node,
|
6815
|
-
prelim: 0,
|
6816
|
-
mod: 0,
|
6817
|
-
change: 0,
|
6818
|
-
shift: 0,
|
6819
|
-
number: previousSibling ? previousSibling._tree.number + 1 : 0
|
6820
|
-
};
|
6821
|
-
});
|
6822
|
-
firstWalk(root);
|
6823
|
-
secondWalk(root, -root._tree.prelim);
|
6824
|
-
var left = d3_layout_treeSearch(root, d3_layout_treeLeftmost), right = d3_layout_treeSearch(root, d3_layout_treeRightmost), deep = d3_layout_treeSearch(root, d3_layout_treeDeepest), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2, y1 = deep.depth || 1;
|
6825
|
-
d3_layout_treeVisitAfter(root, nodeSize ? function(node) {
|
6826
|
-
node.x *= size[0];
|
6827
|
-
node.y = node.depth * size[1];
|
6828
|
-
delete node._tree;
|
6829
|
-
} : function(node) {
|
6830
|
-
node.x = (node.x - x0) / (x1 - x0) * size[0];
|
6831
|
-
node.y = node.depth / y1 * size[1];
|
6832
|
-
delete node._tree;
|
6833
|
-
});
|
6834
|
-
return nodes;
|
6835
|
-
}
|
6836
|
-
tree.separation = function(x) {
|
6837
|
-
if (!arguments.length) return separation;
|
6838
|
-
separation = x;
|
6839
|
-
return tree;
|
6840
|
-
};
|
6841
|
-
tree.size = function(x) {
|
6842
|
-
if (!arguments.length) return nodeSize ? null : size;
|
6843
|
-
nodeSize = (size = x) == null;
|
6844
|
-
return tree;
|
6845
|
-
};
|
6846
|
-
tree.nodeSize = function(x) {
|
6847
|
-
if (!arguments.length) return nodeSize ? size : null;
|
6848
|
-
nodeSize = (size = x) != null;
|
6849
|
-
return tree;
|
6850
|
-
};
|
6851
|
-
return d3_layout_hierarchyRebind(tree, hierarchy);
|
6852
|
-
};
|
6853
|
-
function d3_layout_treeSeparation(a, b) {
|
6854
|
-
return a.parent == b.parent ? 1 : 2;
|
6855
|
-
}
|
6856
|
-
function d3_layout_treeLeft(node) {
|
6857
|
-
var children = node.children;
|
6858
|
-
return children && children.length ? children[0] : node._tree.thread;
|
6859
|
-
}
|
6860
|
-
function d3_layout_treeRight(node) {
|
6861
|
-
var children = node.children, n;
|
6862
|
-
return children && (n = children.length) ? children[n - 1] : node._tree.thread;
|
6863
|
-
}
|
6864
|
-
function d3_layout_treeSearch(node, compare) {
|
6865
|
-
var children = node.children;
|
6866
|
-
if (children && (n = children.length)) {
|
6867
|
-
var child, n, i = -1;
|
6868
|
-
while (++i < n) {
|
6869
|
-
if (compare(child = d3_layout_treeSearch(children[i], compare), node) > 0) {
|
6870
|
-
node = child;
|
6871
|
-
}
|
6872
|
-
}
|
6873
|
-
}
|
6874
|
-
return node;
|
6875
|
-
}
|
6876
|
-
function d3_layout_treeRightmost(a, b) {
|
6877
|
-
return a.x - b.x;
|
6878
|
-
}
|
6879
|
-
function d3_layout_treeLeftmost(a, b) {
|
6880
|
-
return b.x - a.x;
|
6881
|
-
}
|
6882
|
-
function d3_layout_treeDeepest(a, b) {
|
6883
|
-
return a.depth - b.depth;
|
6884
|
-
}
|
6885
|
-
function d3_layout_treeVisitAfter(node, callback) {
|
6886
|
-
function visit(node, previousSibling) {
|
6887
|
-
var children = node.children;
|
6888
|
-
if (children && (n = children.length)) {
|
6889
|
-
var child, previousChild = null, i = -1, n;
|
6890
|
-
while (++i < n) {
|
6891
|
-
child = children[i];
|
6892
|
-
visit(child, previousChild);
|
6893
|
-
previousChild = child;
|
6894
|
-
}
|
6895
|
-
}
|
6896
|
-
callback(node, previousSibling);
|
6897
|
-
}
|
6898
|
-
visit(node, null);
|
6899
|
-
}
|
6900
|
-
function d3_layout_treeShift(node) {
|
6901
|
-
var shift = 0, change = 0, children = node.children, i = children.length, child;
|
6902
|
-
while (--i >= 0) {
|
6903
|
-
child = children[i]._tree;
|
6904
|
-
child.prelim += shift;
|
6905
|
-
child.mod += shift;
|
6906
|
-
shift += child.shift + (change += child.change);
|
6907
|
-
}
|
6908
|
-
}
|
6909
|
-
function d3_layout_treeMove(ancestor, node, shift) {
|
6910
|
-
ancestor = ancestor._tree;
|
6911
|
-
node = node._tree;
|
6912
|
-
var change = shift / (node.number - ancestor.number);
|
6913
|
-
ancestor.change += change;
|
6914
|
-
node.change -= change;
|
6915
|
-
node.shift += shift;
|
6916
|
-
node.prelim += shift;
|
6917
|
-
node.mod += shift;
|
6918
|
-
}
|
6919
|
-
function d3_layout_treeAncestor(vim, node, ancestor) {
|
6920
|
-
return vim._tree.ancestor.parent == node.parent ? vim._tree.ancestor : ancestor;
|
6921
|
-
}
|
6922
6721
|
d3.layout.pack = function() {
|
6923
6722
|
var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ], radius;
|
6924
6723
|
function pack(d, i) {
|
@@ -6926,17 +6725,17 @@
|
|
6926
6725
|
return radius;
|
6927
6726
|
};
|
6928
6727
|
root.x = root.y = 0;
|
6929
|
-
|
6728
|
+
d3_layout_hierarchyVisitAfter(root, function(d) {
|
6930
6729
|
d.r = +r(d.value);
|
6931
6730
|
});
|
6932
|
-
|
6731
|
+
d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);
|
6933
6732
|
if (padding) {
|
6934
6733
|
var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2;
|
6935
|
-
|
6734
|
+
d3_layout_hierarchyVisitAfter(root, function(d) {
|
6936
6735
|
d.r += dr;
|
6937
6736
|
});
|
6938
|
-
|
6939
|
-
|
6737
|
+
d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);
|
6738
|
+
d3_layout_hierarchyVisitAfter(root, function(d) {
|
6940
6739
|
d.r -= dr;
|
6941
6740
|
});
|
6942
6741
|
}
|
@@ -7073,11 +6872,158 @@
|
|
7073
6872
|
c.y = a.y;
|
7074
6873
|
}
|
7075
6874
|
}
|
6875
|
+
d3.layout.tree = function() {
|
6876
|
+
var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = null;
|
6877
|
+
function tree(d, i) {
|
6878
|
+
var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0);
|
6879
|
+
d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z;
|
6880
|
+
d3_layout_hierarchyVisitBefore(root1, secondWalk);
|
6881
|
+
if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); else {
|
6882
|
+
var left = root0, right = root0, bottom = root0;
|
6883
|
+
d3_layout_hierarchyVisitBefore(root0, function(node) {
|
6884
|
+
if (node.x < left.x) left = node;
|
6885
|
+
if (node.x > right.x) right = node;
|
6886
|
+
if (node.depth > bottom.depth) bottom = node;
|
6887
|
+
});
|
6888
|
+
var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1);
|
6889
|
+
d3_layout_hierarchyVisitBefore(root0, function(node) {
|
6890
|
+
node.x = (node.x + tx) * kx;
|
6891
|
+
node.y = node.depth * ky;
|
6892
|
+
});
|
6893
|
+
}
|
6894
|
+
return nodes;
|
6895
|
+
}
|
6896
|
+
function wrapTree(root0) {
|
6897
|
+
var root1 = {
|
6898
|
+
A: null,
|
6899
|
+
children: [ root0 ]
|
6900
|
+
}, queue = [ root1 ], node1;
|
6901
|
+
while ((node1 = queue.pop()) != null) {
|
6902
|
+
for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) {
|
6903
|
+
queue.push((children[i] = child = {
|
6904
|
+
_: children[i],
|
6905
|
+
parent: node1,
|
6906
|
+
children: (child = children[i].children) && child.slice() || [],
|
6907
|
+
A: null,
|
6908
|
+
a: null,
|
6909
|
+
z: 0,
|
6910
|
+
m: 0,
|
6911
|
+
c: 0,
|
6912
|
+
s: 0,
|
6913
|
+
t: null,
|
6914
|
+
i: i
|
6915
|
+
}).a = child);
|
6916
|
+
}
|
6917
|
+
}
|
6918
|
+
return root1.children[0];
|
6919
|
+
}
|
6920
|
+
function firstWalk(v) {
|
6921
|
+
var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null;
|
6922
|
+
if (children.length) {
|
6923
|
+
d3_layout_treeShift(v);
|
6924
|
+
var midpoint = (children[0].z + children[children.length - 1].z) / 2;
|
6925
|
+
if (w) {
|
6926
|
+
v.z = w.z + separation(v._, w._);
|
6927
|
+
v.m = v.z - midpoint;
|
6928
|
+
} else {
|
6929
|
+
v.z = midpoint;
|
6930
|
+
}
|
6931
|
+
} else if (w) {
|
6932
|
+
v.z = w.z + separation(v._, w._);
|
6933
|
+
}
|
6934
|
+
v.parent.A = apportion(v, w, v.parent.A || siblings[0]);
|
6935
|
+
}
|
6936
|
+
function secondWalk(v) {
|
6937
|
+
v._.x = v.z + v.parent.m;
|
6938
|
+
v.m += v.parent.m;
|
6939
|
+
}
|
6940
|
+
function apportion(v, w, ancestor) {
|
6941
|
+
if (w) {
|
6942
|
+
var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift;
|
6943
|
+
while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
|
6944
|
+
vom = d3_layout_treeLeft(vom);
|
6945
|
+
vop = d3_layout_treeRight(vop);
|
6946
|
+
vop.a = v;
|
6947
|
+
shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);
|
6948
|
+
if (shift > 0) {
|
6949
|
+
d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift);
|
6950
|
+
sip += shift;
|
6951
|
+
sop += shift;
|
6952
|
+
}
|
6953
|
+
sim += vim.m;
|
6954
|
+
sip += vip.m;
|
6955
|
+
som += vom.m;
|
6956
|
+
sop += vop.m;
|
6957
|
+
}
|
6958
|
+
if (vim && !d3_layout_treeRight(vop)) {
|
6959
|
+
vop.t = vim;
|
6960
|
+
vop.m += sim - sop;
|
6961
|
+
}
|
6962
|
+
if (vip && !d3_layout_treeLeft(vom)) {
|
6963
|
+
vom.t = vip;
|
6964
|
+
vom.m += sip - som;
|
6965
|
+
ancestor = v;
|
6966
|
+
}
|
6967
|
+
}
|
6968
|
+
return ancestor;
|
6969
|
+
}
|
6970
|
+
function sizeNode(node) {
|
6971
|
+
node.x *= size[0];
|
6972
|
+
node.y = node.depth * size[1];
|
6973
|
+
}
|
6974
|
+
tree.separation = function(x) {
|
6975
|
+
if (!arguments.length) return separation;
|
6976
|
+
separation = x;
|
6977
|
+
return tree;
|
6978
|
+
};
|
6979
|
+
tree.size = function(x) {
|
6980
|
+
if (!arguments.length) return nodeSize ? null : size;
|
6981
|
+
nodeSize = (size = x) == null ? sizeNode : null;
|
6982
|
+
return tree;
|
6983
|
+
};
|
6984
|
+
tree.nodeSize = function(x) {
|
6985
|
+
if (!arguments.length) return nodeSize ? size : null;
|
6986
|
+
nodeSize = (size = x) == null ? null : sizeNode;
|
6987
|
+
return tree;
|
6988
|
+
};
|
6989
|
+
return d3_layout_hierarchyRebind(tree, hierarchy);
|
6990
|
+
};
|
6991
|
+
function d3_layout_treeSeparation(a, b) {
|
6992
|
+
return a.parent == b.parent ? 1 : 2;
|
6993
|
+
}
|
6994
|
+
function d3_layout_treeLeft(v) {
|
6995
|
+
var children = v.children;
|
6996
|
+
return children.length ? children[0] : v.t;
|
6997
|
+
}
|
6998
|
+
function d3_layout_treeRight(v) {
|
6999
|
+
var children = v.children, n;
|
7000
|
+
return (n = children.length) ? children[n - 1] : v.t;
|
7001
|
+
}
|
7002
|
+
function d3_layout_treeMove(wm, wp, shift) {
|
7003
|
+
var change = shift / (wp.i - wm.i);
|
7004
|
+
wp.c -= change;
|
7005
|
+
wp.s += shift;
|
7006
|
+
wm.c += change;
|
7007
|
+
wp.z += shift;
|
7008
|
+
wp.m += shift;
|
7009
|
+
}
|
7010
|
+
function d3_layout_treeShift(v) {
|
7011
|
+
var shift = 0, change = 0, children = v.children, i = children.length, w;
|
7012
|
+
while (--i >= 0) {
|
7013
|
+
w = children[i];
|
7014
|
+
w.z += shift;
|
7015
|
+
w.m += shift;
|
7016
|
+
shift += w.s + (change += w.c);
|
7017
|
+
}
|
7018
|
+
}
|
7019
|
+
function d3_layout_treeAncestor(vim, v, ancestor) {
|
7020
|
+
return vim.a.parent === v.parent ? vim.a : ancestor;
|
7021
|
+
}
|
7076
7022
|
d3.layout.cluster = function() {
|
7077
7023
|
var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false;
|
7078
7024
|
function cluster(d, i) {
|
7079
7025
|
var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;
|
7080
|
-
|
7026
|
+
d3_layout_hierarchyVisitAfter(root, function(node) {
|
7081
7027
|
var children = node.children;
|
7082
7028
|
if (children && children.length) {
|
7083
7029
|
node.x = d3_layout_clusterX(children);
|
@@ -7089,7 +7035,7 @@
|
|
7089
7035
|
}
|
7090
7036
|
});
|
7091
7037
|
var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;
|
7092
|
-
|
7038
|
+
d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) {
|
7093
7039
|
node.x = (node.x - root.x) * size[0];
|
7094
7040
|
node.y = (root.y - node.y) * size[1];
|
7095
7041
|
} : function(node) {
|
@@ -7254,7 +7200,7 @@
|
|
7254
7200
|
return d3_layout_treemapPad(node, x);
|
7255
7201
|
}
|
7256
7202
|
var type;
|
7257
|
-
pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ],
|
7203
|
+
pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ],
|
7258
7204
|
padConstant) : padConstant;
|
7259
7205
|
return treemap;
|
7260
7206
|
};
|
@@ -7554,7 +7500,7 @@
|
|
7554
7500
|
scale.tickFormat = function(n, format) {
|
7555
7501
|
if (!arguments.length) return d3_scale_logFormat;
|
7556
7502
|
if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== "function") format = d3.format(format);
|
7557
|
-
var k = Math.max(.1, n / scale.ticks().length), f = positive ? (e = 1e-12, Math.ceil) : (e = -1e-12,
|
7503
|
+
var k = Math.max(.1, n / scale.ticks().length), f = positive ? (e = 1e-12, Math.ceil) : (e = -1e-12,
|
7558
7504
|
Math.floor), e;
|
7559
7505
|
return function(d) {
|
7560
7506
|
return d / pow(f(log(d) + e)) <= k ? format(d) : "";
|
@@ -7732,9 +7678,7 @@
|
|
7732
7678
|
}
|
7733
7679
|
scale.domain = function(x) {
|
7734
7680
|
if (!arguments.length) return domain;
|
7735
|
-
domain = x.filter(
|
7736
|
-
return !isNaN(d);
|
7737
|
-
}).sort(d3_ascending);
|
7681
|
+
domain = x.filter(d3_number).sort(d3_ascending);
|
7738
7682
|
return rescale();
|
7739
7683
|
};
|
7740
7684
|
scale.range = function(x) {
|
@@ -7842,7 +7786,7 @@
|
|
7842
7786
|
d3.svg.arc = function() {
|
7843
7787
|
var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
|
7844
7788
|
function arc() {
|
7845
|
-
var r0 = innerRadius.apply(this, arguments), r1 = outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, da = (a1 < a0 && (da = a0,
|
7789
|
+
var r0 = innerRadius.apply(this, arguments), r1 = outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, da = (a1 < a0 && (da = a0,
|
7846
7790
|
a0 = a1, a1 = da), a1 - a0), df = da < π ? "0" : "1", c0 = Math.cos(a0), s0 = Math.sin(a0), c1 = Math.cos(a1), s1 = Math.sin(a1);
|
7847
7791
|
return da >= d3_svg_arcMax ? r0 ? "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "M0," + r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + -r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + r0 + "Z" : "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "Z" : r0 ? "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L" + r0 * c1 + "," + r0 * s1 + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0 + "Z" : "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L0,0" + "Z";
|
7848
7792
|
}
|
@@ -7978,7 +7922,7 @@
|
|
7978
7922
|
return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1), d3_svg_lineCardinalTangents(points, tension));
|
7979
7923
|
}
|
7980
7924
|
function d3_svg_lineCardinalClosed(points, tension) {
|
7981
|
-
return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]),
|
7925
|
+
return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]),
|
7982
7926
|
points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));
|
7983
7927
|
}
|
7984
7928
|
function d3_svg_lineCardinal(points, tension) {
|
@@ -8684,7 +8628,7 @@
|
|
8684
8628
|
var g = d3.select(this);
|
8685
8629
|
var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy();
|
8686
8630
|
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;
|
8687
|
-
var range = d3_scaleRange(scale1), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"),
|
8631
|
+
var range = d3_scaleRange(scale1), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"),
|
8688
8632
|
d3.transition(path));
|
8689
8633
|
tickEnter.append("line");
|
8690
8634
|
tickEnter.append("text");
|
@@ -9284,11 +9228,6 @@
|
|
9284
9228
|
d3.xml = d3_xhrType(function(request) {
|
9285
9229
|
return request.responseXML;
|
9286
9230
|
});
|
9287
|
-
if (typeof define === "function" && define.amd)
|
9288
|
-
|
9289
|
-
} else if (typeof module === "object" && module.exports) {
|
9290
|
-
module.exports = d3;
|
9291
|
-
} else {
|
9292
|
-
this.d3 = d3;
|
9293
|
-
}
|
9231
|
+
if (typeof define === "function" && define.amd) define(d3); else if (typeof module === "object" && module.exports) module.exports = d3;
|
9232
|
+
this.d3 = d3;
|
9294
9233
|
}();
|