More refactoring of svg.chord.

This commit is contained in:
Mike Bostock 2010-11-28 11:39:35 -08:00
Родитель e08ff41dad
Коммит f02364dada
4 изменённых файлов: 107 добавлений и 116 удалений

68
d3.js поставляемый
Просмотреть файл

@ -1,4 +1,4 @@
d3 = {version: "0.25.0"}; // semver
d3 = {version: "0.25.1"}; // semver
if (!Date.now) Date.now = function() {
return +new Date();
};
@ -2101,45 +2101,41 @@ d3["svg"]["chord"] = function() {
// TODO Allow control point to be customized.
function chord(d, i) {
var s = source.call(this, d, i),
t = target.call(this, d, i),
r0 = radius.call(this, s, i),
a00 = startAngle.call(this, s, i) + d3_svg_arcOffset,
a01 = endAngle.call(this, s, i) + d3_svg_arcOffset,
r1 = radius.call(this, t, i),
a10 = startAngle.call(this, t, i) + d3_svg_arcOffset,
a11 = endAngle.call(this, t, i) + d3_svg_arcOffset;
return (a00 == a10) && (a01 == a11) && (r0 == r1)
? chord1(r0, a00, a01)
: chord2(r0, a00, a01, r1, a10, a11);
var s = subgroup(this, source, d, i),
t = subgroup(this, target, d, i);
return "M" + s.p0
+ arc(s.r, s.p1) + (equals(s, t)
? curve(s.r, s.p1, s.r, s.p0)
: curve(s.r, s.p1, t.r, t.p0)
+ arc(t.r, t.p1)
+ curve(t.r, t.p1, s.r, s.p0))
+ "Z";
}
function chord1(r0, a00, a01) {
var x00 = r0 * Math.cos(a00),
y00 = r0 * Math.sin(a00),
x01 = r0 * Math.cos(a01),
y01 = r0 * Math.sin(a01);
return "M" + x00 + "," + y00
+ "A" + r0 + "," + r0 + " 0 0,1 " + x01 + "," + y01
+ "Q 0,0 " + x00 + "," + y00
+ "Z";
function subgroup(self, f, d, i) {
var subgroup = f.call(self, d, i),
r = radius.call(self, subgroup, i),
a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset,
a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset;
return {
r: r,
a0: a0,
a1: a1,
p0: [r * Math.cos(a0), r * Math.sin(a0)],
p1: [r * Math.cos(a1), r * Math.sin(a1)]
};
}
function chord2(r0, a00, a01, r1, a10, a11) {
var x00 = r0 * Math.cos(a00),
y00 = r0 * Math.sin(a00),
x01 = r0 * Math.cos(a01),
y01 = r0 * Math.sin(a01),
x10 = r1 * Math.cos(a10),
y10 = r1 * Math.sin(a10),
x11 = r1 * Math.cos(a11),
y11 = r1 * Math.sin(a11);
return "M" + x00 + "," + y00
+ "A" + r0 + "," + r0 + " 0 0,1 " + x01 + "," + y01
+ "Q 0,0 " + x10 + "," + y10
+ "A" + r1 + "," + r1 + " 0 0,1 " + x11 + "," + y11
+ "Q 0,0 " + x00 + "," + y00
+ "Z";
function equals(a, b) {
return a.a0 == b.a0 && a.a1 == b.a1;
}
function arc(r, p) {
return "A" + r + "," + r + " 0 0,1 " + p;
}
function curve(r0, p0, r1, p1) {
return "Q 0,0 " + p1;
}
chord["radius"] = function(v) {

87
d3.min.js поставляемый
Просмотреть файл

@ -1,62 +1,61 @@
(function(){var q=null;d3={version:"0.25.0"};if(!Date.now)Date.now=function(){return+new Date};if(!Object.create)Object.create=function(a){function b(){}b.prototype=a;return new b};function w(a){return Array.prototype.slice.call(a)}function x(a){return typeof a=="function"?a:function(){return a}}d3.merge=function(a){return Array.prototype.concat.apply([],a)};
d3.split=function(a,b){var e=[],f=[],c,d=-1,g=a.length;if(arguments.length<2)b=aa;for(;++d<g;)if(b.call(f,c=a[d],d)){e.push(f);f=[]}else f.push(c);e.push(f);return e};function aa(a){return a==q}function E(a,b){b=w(arguments);b[0]=this;a.apply(this,b);return this}d3.range=function(a,b,e){if(arguments.length==1){b=a;a=0}if(e==q)e=1;if((b-a)/e==Infinity)throw Error("infinite range");var f=[],c=-1,d;if(e<0)for(;(d=a+e*++c)>b;)f.push(d);else for(;(d=a+e*++c)<b;)f.push(d);return f};
d3.text=function(a,b,e){var f=new XMLHttpRequest;if(arguments.length==3)f.overrideMimeType(b);else e=b;f.open("GET",a,true);f.onreadystatechange=function(){if(f.readyState==4)e(f.status<300&&f.responseText?f.responseText:q)};f.send(q)};d3.json=function(a,b){return d3.text(a,"application/json",function(e){b(e&&JSON.parse(e))})};
(function(){var o=null;d3={version:"0.25.1"};if(!Date.now)Date.now=function(){return+new Date};if(!Object.create)Object.create=function(a){function b(){}b.prototype=a;return new b};function w(a){return Array.prototype.slice.call(a)}function x(a){return typeof a=="function"?a:function(){return a}}d3.merge=function(a){return Array.prototype.concat.apply([],a)};
d3.split=function(a,b){var e=[],f=[],c,d=-1,h=a.length;if(arguments.length<2)b=aa;for(;++d<h;)if(b.call(f,c=a[d],d)){e.push(f);f=[]}else f.push(c);e.push(f);return e};function aa(a){return a==o}function E(a,b){b=w(arguments);b[0]=this;a.apply(this,b);return this}d3.range=function(a,b,e){if(arguments.length==1){b=a;a=0}if(e==o)e=1;if((b-a)/e==Infinity)throw Error("infinite range");var f=[],c=-1,d;if(e<0)for(;(d=a+e*++c)>b;)f.push(d);else for(;(d=a+e*++c)<b;)f.push(d);return f};
d3.text=function(a,b,e){var f=new XMLHttpRequest;if(arguments.length==3)f.overrideMimeType(b);else e=b;f.open("GET",a,true);f.onreadystatechange=function(){if(f.readyState==4)e(f.status<300&&f.responseText?f.responseText:o)};f.send(o)};d3.json=function(a,b){return d3.text(a,"application/json",function(e){b(e&&JSON.parse(e))})};
d3.ns={prefix:{svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},qualify:function(a){var b=a.indexOf(":");return b<0?a:{space:d3.ns.prefix[a.substring(0,b)],local:a.substring(b+1)}}};d3.dispatch=function(){for(var a={},b,e=0,f=arguments.length;e<f;e++){b=arguments[e];a[b]=ba(b)}return a};
function ba(){var a={},b=[];a.add=function(e){for(var f=0;f<b.length;f++)if(b[f].d==e)return a;b.push({d:e,on:true});return a};a.remove=function(e){for(var f=0;f<b.length;f++){var c=b[f];if(c.d==e){c.on=false;b=b.slice(0,f).concat(b.slice(f+1));break}}return a};a.dispatch=function(){for(var e=b,f=0,c=e.length;f<c;f++){var d=e[f];d.on&&d.d.apply(this,arguments)}};return a}
d3.format=function(a){a=ca.exec(a);var b=a[1]||" ",e=a[5],f=+a[6],c=a[7],d=a[8],g=a[9];if(d)d=d.substring(1);if(e)b="0";if(g=="d")d="0";return function(h){if(g=="d"&&h%1)return"";if(d)h=(+h).toFixed(d);else h+="";if(c){for(var i=h.lastIndexOf("."),j=i>=0?h.substring(i):(i=h.length,""),l=[];i>0;)l.push(h.substring(i-=3,i+3));h=l.reverse().join(",")+j}i=h.length;if(i<f)h=Array(f-i+1).join(b)+h;return h}};
function ba(){var a={},b=[];a.add=function(e){for(var f=0;f<b.length;f++)if(b[f].i==e)return a;b.push({i:e,on:true});return a};a.remove=function(e){for(var f=0;f<b.length;f++){var c=b[f];if(c.i==e){c.on=false;b=b.slice(0,f).concat(b.slice(f+1));break}}return a};a.dispatch=function(){for(var e=b,f=0,c=e.length;f<c;f++){var d=e[f];d.on&&d.i.apply(this,arguments)}};return a}
d3.format=function(a){a=ca.exec(a);var b=a[1]||" ",e=a[5],f=+a[6],c=a[7],d=a[8],h=a[9];if(d)d=d.substring(1);if(e)b="0";if(h=="d")d="0";return function(g){if(h=="d"&&g%1)return"";if(d)g=(+g).toFixed(d);else g+="";if(c){for(var i=g.lastIndexOf("."),j=i>=0?g.substring(i):(i=g.length,""),m=[];i>0;)m.push(g.substring(i-=3,i+3));g=m.reverse().join(",")+j}i=g.length;if(i<f)g=Array(f-i+1).join(b)+g;return g}};
var ca=/(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/,da=F(2),ea=F(3),ma={linear:function(){return fa},poly:F,quad:function(){return da},cubic:function(){return ea},sin:function(){return ga},exp:function(){return ha},circle:function(){return ia},elastic:ja,back:ka,bounce:function(){return la}},pa={"in":function(a){return a},out:na,"in-out":oa,"out-in":function(a){return oa(na(a))}};
d3.ease=function(a){var b=a.indexOf("-");return pa[b>=0?a.substring(b+1):"in"](ma[b>=0?a.substring(0,b):a].apply(q,Array.prototype.slice.call(arguments,1)))};function na(a){return function(b){return 1-a(1-b)}}function oa(a){return function(b){return 0.5*(b<0.5?a(2*b):2-a(2-2*b))}}function fa(a){return a}function F(a){return function(b){return Math.pow(b,a)}}function ga(a){return 1-Math.cos(a*Math.PI/2)}function ha(a){return a?Math.pow(2,10*(a-1))-0.0010:0}
function ia(a){return 1-Math.sqrt(1-a*a)}function ja(a,b){var e;if(arguments.length<2)b=0.45;if(arguments.length<1){a=1;e=b/4}else e=b/(2*Math.PI)*Math.asin(1/a);return function(f){return 1+a*Math.pow(2,10*-f)*Math.sin((f-e)*2*Math.PI/b)}}function ka(a){a||(a=1.70158);return function(b){return b*b*((a+1)*b-a)}}function la(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+0.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+0.9375:7.5625*(a-=2.625/2.75)*a+0.984375}d3.event=q;
d3.ease=function(a){var b=a.indexOf("-");return pa[b>=0?a.substring(b+1):"in"](ma[b>=0?a.substring(0,b):a].apply(o,Array.prototype.slice.call(arguments,1)))};function na(a){return function(b){return 1-a(1-b)}}function oa(a){return function(b){return 0.5*(b<0.5?a(2*b):2-a(2-2*b))}}function fa(a){return a}function F(a){return function(b){return Math.pow(b,a)}}function ga(a){return 1-Math.cos(a*Math.PI/2)}function ha(a){return a?Math.pow(2,10*(a-1))-0.0010:0}
function ia(a){return 1-Math.sqrt(1-a*a)}function ja(a,b){var e;if(arguments.length<2)b=0.45;if(arguments.length<1){a=1;e=b/4}else e=b/(2*Math.PI)*Math.asin(1/a);return function(f){return 1+a*Math.pow(2,10*-f)*Math.sin((f-e)*2*Math.PI/b)}}function ka(a){a||(a=1.70158);return function(b){return b*b*((a+1)*b-a)}}function la(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+0.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+0.9375:7.5625*(a-=2.625/2.75)*a+0.984375}d3.event=o;
d3.interpolate=function(a,b){if(typeof b=="number")return d3.interpolateNumber(+a,b);if(typeof b=="string")return b in G||/^(#|rgb\(|hsl\()/.test(b)?d3.interpolateRgb(String(a),b):d3.interpolateString(String(a),b);if(b instanceof Array)return d3.interpolateArray(a,b);return d3.interpolateObject(a,b)};d3.interpolateNumber=function(a,b){b-=a;return function(e){return a+b*e}};
d3.interpolateString=function(a,b){var e,f,c=0,d=[],g=[],h,i;for(f=0;e=H.exec(b);++f){e.index&&d.push(b.substring(c,e.index));g.push({a:d.length,x:e[0]});d.push(q);c=H.lastIndex}c<b.length&&d.push(b.substring(c));f=0;for(h=g.length;(e=H.exec(a))&&f<h;++f){i=g[f];if(i.x==e[0]){if(i.a)if(d[i.a+1]==q){d[i.a-1]+=i.x;d.splice(i.a,1);for(e=f+1;e<h;++e)g[e].a--}else{d[i.a-1]+=i.x+d[i.a+1];d.splice(i.a,2);for(e=f+1;e<h;++e)g[e].a-=2}else if(d[i.a+1]==q)d[i.a]=i.x;else{d[i.a]=i.x+d[i.a+1];d.splice(i.a+1,1);
for(e=f+1;e<h;++e)g[e].a--}g.splice(f,1);h--;f--}else i.x=d3.interpolateNumber(parseFloat(e[0]),parseFloat(i.x))}for(;f<h;){i=g.pop();if(d[i.a+1]==q)d[i.a]=i.x;else{d[i.a]=i.x+d[i.a+1];d.splice(i.a+1,1)}h--}if(d.length==1)return d[0]==q?g[0].x:function(){return b};return function(j){for(f=0;f<h;++f)d[(i=g[f]).a]=i.x(j);return d.join("")}};
d3.interpolateRgb=function(a,b){a=d3.rgb(a);b=d3.rgb(b);var e=a.r,f=a.g,c=a.b,d=b.r-e,g=b.g-f,h=b.b-c;return function(i){return"rgb("+Math.round(e+d*i)+","+Math.round(f+g*i)+","+Math.round(c+h*i)+")"}};d3.interpolateArray=function(a,b){var e=[],f=[],c=a.length,d=b.length,g=Math.min(a.length,b.length),h;for(h=0;h<g;++h)e.push(d3.interpolate(a[h],b[h]));for(;h<c;++h)f[h]=a[h];for(;h<d;++h)f[h]=b[h];return function(i){for(h=0;h<g;++h)f[h]=e[h](i);return f}};
d3.interpolateString=function(a,b){var e,f,c=0,d=[],h=[],g,i;for(f=0;e=H.exec(b);++f){e.index&&d.push(b.substring(c,e.index));h.push({a:d.length,x:e[0]});d.push(o);c=H.lastIndex}c<b.length&&d.push(b.substring(c));f=0;for(g=h.length;(e=H.exec(a))&&f<g;++f){i=h[f];if(i.x==e[0]){if(i.a)if(d[i.a+1]==o){d[i.a-1]+=i.x;d.splice(i.a,1);for(e=f+1;e<g;++e)h[e].a--}else{d[i.a-1]+=i.x+d[i.a+1];d.splice(i.a,2);for(e=f+1;e<g;++e)h[e].a-=2}else if(d[i.a+1]==o)d[i.a]=i.x;else{d[i.a]=i.x+d[i.a+1];d.splice(i.a+1,1);
for(e=f+1;e<g;++e)h[e].a--}h.splice(f,1);g--;f--}else i.x=d3.interpolateNumber(parseFloat(e[0]),parseFloat(i.x))}for(;f<g;){i=h.pop();if(d[i.a+1]==o)d[i.a]=i.x;else{d[i.a]=i.x+d[i.a+1];d.splice(i.a+1,1)}g--}if(d.length==1)return d[0]==o?h[0].x:function(){return b};return function(j){for(f=0;f<g;++f)d[(i=h[f]).a]=i.x(j);return d.join("")}};
d3.interpolateRgb=function(a,b){a=d3.rgb(a);b=d3.rgb(b);var e=a.r,f=a.g,c=a.b,d=b.r-e,h=b.g-f,g=b.b-c;return function(i){return"rgb("+Math.round(e+d*i)+","+Math.round(f+h*i)+","+Math.round(c+g*i)+")"}};d3.interpolateArray=function(a,b){var e=[],f=[],c=a.length,d=b.length,h=Math.min(a.length,b.length),g;for(g=0;g<h;++g)e.push(d3.interpolate(a[g],b[g]));for(;g<c;++g)f[g]=a[g];for(;g<d;++g)f[g]=b[g];return function(i){for(g=0;g<h;++g)f[g]=e[g](i);return f}};
d3.interpolateObject=function(a,b){var e={},f={},c;for(c in a)if(c in b)e[c]=(c in qa||/\bcolor\b/.test(c)?d3.interpolateRgb:d3.interpolate)(a[c],b[c]);else f[c]=a[c];for(c in b)c in a||(f[c]=b[c]);return function(d){for(c in e)f[c]=e[c](d);return f}};var H=/[-+]?(?:\d+\.\d+|\d+\.|\.\d+|\d+)(?:[eE][-]?\d+)?/g,qa={background:1,fill:1,stroke:1};d3.rgb=function(a,b,e){return arguments.length==1?I(""+a,J,ra):J(~~a,~~b,~~e)};function J(a,b,e){return{r:a,g:b,b:e,toString:sa}}
function sa(){return"#"+K(this.r)+K(this.g)+K(this.b)}function K(a){return a<16?"0"+a.toString(16):a.toString(16)}
function I(a,b,e){var f,c,d,g,h;if(g=/([a-z]+)\((.*)\)/i.exec(a)){h=g[2].split(",");switch(g[1]){case "hsl":return e(parseFloat(h[0]),parseFloat(h[1])/100,parseFloat(h[2])/100);case "rgb":return b(L(h[0]),L(h[1]),L(h[2]))}}if(e=G[a])return b(e.r,e.g,e.b);if(a==q)return b(0,0,0);if(a.charAt(0)=="#"){if(a.length==4){f=a.charAt(1);f+=f;c=a.charAt(2);c+=c;d=a.charAt(3);d+=d}else if(a.length==7){f=a.substring(1,3);c=a.substring(3,5);d=a.substring(5,7)}f=parseInt(f,16);c=parseInt(c,16);d=parseInt(d,16)}return b(f,
c,d)}function ta(a,b,e){var f=Math.min(a/=255,b/=255,e/=255),c=Math.max(a,b,e),d=c-f,g=(c+f)/2;if(d){f=g<0.5?d/(c+f):d/(2-c-f);a=a==c?(b-e)/d+(b<e?6:0):b==c?(e-a)/d+2:(a-b)/d+4;a*=60}else f=a=0;return M(a,f,g)}function L(a){var b=parseFloat(a);return a.charAt(a.length-1)=="%"?Math.round(b*2.55):b}
function I(a,b,e){var f,c,d,h,g;if(h=/([a-z]+)\((.*)\)/i.exec(a)){g=h[2].split(",");switch(h[1]){case "hsl":return e(parseFloat(g[0]),parseFloat(g[1])/100,parseFloat(g[2])/100);case "rgb":return b(L(g[0]),L(g[1]),L(g[2]))}}if(e=G[a])return b(e.r,e.g,e.b);if(a==o)return b(0,0,0);if(a.charAt(0)=="#"){if(a.length==4){f=a.charAt(1);f+=f;c=a.charAt(2);c+=c;d=a.charAt(3);d+=d}else if(a.length==7){f=a.substring(1,3);c=a.substring(3,5);d=a.substring(5,7)}f=parseInt(f,16);c=parseInt(c,16);d=parseInt(d,16)}return b(f,
c,d)}function ta(a,b,e){var f=Math.min(a/=255,b/=255,e/=255),c=Math.max(a,b,e),d=c-f,h=(c+f)/2;if(d){f=h<0.5?d/(c+f):d/(2-c-f);a=a==c?(b-e)/d+(b<e?6:0):b==c?(e-a)/d+2:(a-b)/d+4;a*=60}else f=a=0;return M(a,f,h)}function L(a){var b=parseFloat(a);return a.charAt(a.length-1)=="%"?Math.round(b*2.55):b}
var G={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",
darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",
ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",
lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",
moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",
seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},N;for(N in G)G[N]=I(G[N],J,ra);d3.hsl=function(a,b,e){return arguments.length==1?I(""+a,ta,M):M(+a,+b,+e)};
function M(a,b,e){return{h:a,s:b,l:e,toString:ua}}function ua(){return"hsl("+this.h+","+this.s*100+"%,"+this.l*100+"%)"}function ra(a,b,e){function f(g){if(g>360)g-=360;else if(g<0)g+=360;if(g<60)return c+(d-c)*g/60;if(g<180)return d;if(g<240)return c+(d-c)*(240-g)/60;return c}var c,d;a%=360;if(a<0)a+=360;b=b<0?0:b>1?1:b;e=e<0?0:e>1?1:e;d=e<=0.5?e*(1+b):e+b-e*b;c=2*e-d;return J(Math.round(f(a+120)*255),Math.round(f(a)*255),Math.round(f(a-120)*255))}var P=O([[document]]);P[0].parentNode=document.documentElement;
function M(a,b,e){return{h:a,s:b,l:e,toString:ua}}function ua(){return"hsl("+this.h+","+this.s*100+"%,"+this.l*100+"%)"}function ra(a,b,e){function f(h){if(h>360)h-=360;else if(h<0)h+=360;if(h<60)return c+(d-c)*h/60;if(h<180)return d;if(h<240)return c+(d-c)*(240-h)/60;return c}var c,d;a%=360;if(a<0)a+=360;b=b<0?0:b>1?1:b;e=e<0?0:e>1?1:e;d=e<=0.5?e*(1+b):e+b-e*b;c=2*e-d;return J(Math.round(f(a+120)*255),Math.round(f(a)*255),Math.round(f(a-120)*255))}var P=O([[document]]);P[0].parentNode=document.documentElement;
d3.select=function(a){return typeof a=="string"?P.select(a):O([[a]])};d3.selectAll=function(a){return typeof a=="string"?P.selectAll(a):O([w(a)])};
function O(a){function b(c){for(var d=[],g,h,i,j,l=0,n=a.length;l<n;l++){i=a[l];d.push(g=[]);g.parentNode=i.parentNode;g.parentData=i.parentData;for(var p=0,k=i.length;p<k;p++)if(j=i[p]){g.push(h=c(j));if(h&&"__data__"in j)h.__data__=j.__data__}else g.push(q)}return O(d)}function e(c){for(var d=[],g,h,i,j=0,l=a.length;j<l;j++){h=a[j];for(var n=0,p=h.length;n<p;n++)if(i=h[n]){d.push(g=c(i));g.parentNode=i;g.parentData=i.__data__}}return O(d)}function f(c){for(var d=0,g=a.length;d<g;d++)for(var h=a[d],
i=0,j=h.length;i<j;i++){var l=h[i];if(l)return c.call(l,l.__data__,i)}return q}a.select=function(c){return b(function(d){return d.querySelector(c)})};a.selectAll=function(c){return e(function(d){return w(d.querySelectorAll(c))})};a.filter=function(c){for(var d=[],g,h,i,j=0,l=a.length;j<l;j++){h=a[j];d.push(g=[]);g.parentNode=h.parentNode;g.parentData=h.parentData;for(var n=0,p=h.length;n<p;n++)if((i=h[n])&&c.call(i,i.__data__,n))g.push(i)}return O(d)};a.data=function(c,d){function g(k,o){function r(Ea){return k.parentNode.appendChild(Ea)}
var m=0,s=k.length,t=o.length,u=Math.min(s,t),B=Math.max(s,t),y=[],z=[],v=[],A,C;if(d){u={};B=[];var D;C=o.length;for(m=0;m<s;m++){D=d.nodeKey(A=k[m]);if(D in u)v[C++]=k[m];else{u[D]=A;B.push(D)}}for(m=0;m<t;m++){if(A=u[D=d.dataKey(C=o[m])]){A.__data__=C;y[m]=A;z[m]=v[m]=q}else{z[m]={appendChild:r,__data__:C};y[m]=v[m]=q}delete u[D]}for(m=0;m<s;m++)if(B[m]in u)v[m]=k[m]}else{for(;m<u;m++){A=k[m];C=o[m];if(A){A.__data__=C;y[m]=A;z[m]=v[m]=q}else{z[m]={appendChild:r,__data__:C};y[m]=v[m]=q}}for(;m<
t;m++){z[m]={appendChild:r,__data__:o[m]};y[m]=v[m]=q}for(;m<B;m++){v[m]=k[m];z[m]=y[m]=q}}z.parentNode=y.parentNode=v.parentNode=k.parentNode;z.parentData=y.parentData=v.parentData=k.parentData;l.push(z);n.push(y);p.push(v)}var h=-1,i=a.length,j,l=[],n=[],p=[];if(typeof d=="string")d=va(d);if(typeof c=="function")for(;++h<i;)g(j=a[h],c.call(j,j.parentData,h));else for(;++h<i;)g(j=a[h],c);h=O(n);h.enter=function(k){return O(l).append(k)};h.exit=function(){return O(p)};return h};a.each=function(c){for(var d=
0,g=a.length;d<g;d++)for(var h=a[d],i=0,j=h.length;i<j;i++){var l=h[i];l&&c.call(l,l.__data__,i)}return a};a.node=function(){return f(function(){return this})};a.attr=function(c,d){function g(){this.removeAttribute(c)}function h(){this.removeAttributeNS(c.space,c.local)}function i(){this.setAttribute(c,d)}function j(){this.setAttributeNS(c.space,c.local,d)}function l(){var p=d.apply(this,arguments);p==q?this.removeAttribute(c):this.setAttribute(c,p)}function n(){var p=d.apply(this,arguments);p==q?
this.removeAttributeNS(c.space,c.local):this.setAttributeNS(c.space,c.local,p)}c=d3.ns.qualify(c);if(arguments.length<2)return f(c.local?function(){return this.getAttributeNS(c.space,c.local)}:function(){return this.getAttribute(c)});return a.each(d==q?c.local?h:g:typeof d=="function"?c.local?n:l:c.local?j:i)};a.style=function(c,d,g){function h(){this.style.removeProperty(c)}function i(){this.style.setProperty(c,d,g)}function j(){var l=d.apply(this,arguments);l==q?this.style.removeProperty(c):this.style.setProperty(c,
l,g)}if(arguments.length<3)g=q;if(arguments.length<2)return f(function(){return window.getComputedStyle(this,q).getPropertyValue(c)});return a.each(d==q?h:typeof d=="function"?j:i)};a.property=function(c,d){function g(){delete this[c]}function h(){this[c]=d}function i(){var j=d.apply(this,arguments);if(j==q)delete this[c];else this[c]=j}c=d3.ns.qualify(c);if(arguments.length<2)return f(function(){return this[c]});return a.each(d==q?g:typeof d=="function"?i:h)};a.text=function(c){function d(){this.appendChild(document.createTextNode(c))}
function g(){var h=c.apply(this,arguments);h!=q&&this.appendChild(document.createTextNode(h))}if(arguments.length<1)return f(function(){return this.textContent});a.each(function(){for(;this.lastChild;)this.removeChild(this.lastChild)});return c==q?a:a.each(typeof c=="function"?g:d)};a.html=function(c){function d(){this.innerHTML=c}function g(){this.innerHTML=c.apply(this,arguments)}if(arguments.length<1)return f(function(){return this.innerHTML});return a.each(typeof c=="function"?g:d)};a.append=
function(c){function d(h){return h.appendChild(document.createElement(c))}function g(h){return h.appendChild(document.createElementNS(c.space,c.local))}c=d3.ns.qualify(c);return b(c.local?g:d)};a.remove=function(){return b(function(c){var d=c.parentNode;d.removeChild(c);return d})};a.sort=function(c){c=wa.apply(this,arguments);for(var d=0,g=a.length;d<g;d++){var h=a[d];h.sort(c);for(var i=1,j=h.length,l=h[0];i<j;i++){var n=h[i];if(n){l&&l.parentNode.insertBefore(n,l.nextSibling);l=n}}}return a};a.on=
function(c,d){c="on"+c;return a.each(function(g,h){this[c]=function(i){var j=d3.event;d3.event=i;try{d.call(this,g,h)}finally{d3.event=j}}})};a.transition=function(){return Q(a)};a.call=E;return a}function va(a){return{nodeKey:function(b){return b.getAttribute(a)},dataKey:function(b){return b[a]}}}function wa(a){arguments.length||(a=xa);return function(b,e){return a(b&&b.__data__,e&&e.__data__)}}function xa(a,b){return a<b?-1:a>b?1:0}d3.transition=P.transition;var ya=0,R=0;
function Q(a){function b(k){var o=true,r=-1;a.each(function(){if(i[++r]!=2){var m=(k-j[r])/l[r],s=this.__transition__,t,u=d[r];if(m<1){o=false;if(!(m<0)){if(i[r]){if(s.c!=f){i[r]=2;return}}else if(!s||s.c>f){i[r]=2;return}else{i[r]=1;h.start.dispatch.apply(this,arguments);u=d[r]={};s.c=f;for(t in c)u[t]=c[t].apply(this,arguments)}s=p(m);for(t in c)u[t].call(this,s)}}else{i[r]=2;if(s.c==f){m=s.k;for(t in c)u[t].call(this,1);if(m==f){delete this.__transition__;g&&this.parentNode.removeChild(this)}R=
f;h.end.dispatch.apply(this,arguments);R=0;s.k=m}}}});return o}var e={},f=R||++ya,c={},d=[],g=false,h=d3.dispatch("start","end"),i=[],j=[],l=[],n,p=d3.ease("cubic-in-out");a.each(function(){(this.__transition__||(this.__transition__={})).k=f});e.delay=function(k){var o=Infinity,r=-1;if(typeof k=="function")a.each(function(){var m=j[++r]=+k.apply(this,arguments);if(m<o)o=m});else{o=+k;a.each(function(){j[++r]=o})}za(b,o);return e};e.duration=function(k){var o=-1;if(typeof k=="function"){n=0;a.each(function(){var r=
l[++o]=+k.apply(this,arguments);if(r>n)n=r})}else{n=+k;a.each(function(){l[++o]=n})}return e};e.ease=function(k){p=typeof k=="string"?d3.ease(k):k;return e};e.attrTween=function(k,o){function r(s,t){var u=o.call(this,s,t,this.getAttribute(k));return function(B){this.setAttribute(k,u(B))}}function m(s,t){var u=o.call(this,s,t,this.getAttributeNS(k.space,k.local));return function(B){this.setAttributeNS(k.space,k.local,u(B))}}c["attr."+k]=k.local?m:r;return e};e.attr=function(k,o){return e.attrTween(k,
Aa(o))};e.styleTween=function(k,o,r){c["style."+k]=function(m,s){var t=o.call(this,m,s,window.getComputedStyle(this,q).getPropertyValue(k));return function(u){this.style.setProperty(k,t(u),r)}};return e};e.style=function(k,o,r){return e.styleTween(k,Aa(o),r)};e.select=function(k){var o;k=Q(a.select(k)).ease(p);o=-1;k.delay(function(){return j[++o]});o=-1;k.duration(function(){return l[++o]});return k};e.selectAll=function(k){var o;k=Q(a.selectAll(k)).ease(p);o=-1;k.delay(function(r,m){return j[m?
o:++o]});o=-1;k.duration(function(r,m){return l[m?o:++o]});return k};e.remove=function(){g=true;return e};e.each=function(k,o){h[k].add(o);return e};e.call=E;return e.delay(0).duration(250)}var S=q,T=0,U;function za(a,b){var e=Date.now(),f=false,c=e+b,d=S;if(isFinite(b)){for(;d;){if(d.j==a){d.i=e;d.delay=b;f=true}else{var g=d.i+d.delay;if(g<c)c=g}d=d.next}f||(S={j:a,i:e,delay:b,next:S});if(!U){clearTimeout(T);T=setTimeout(Ba,Math.max(24,c-e))}}}function Ba(){U=setInterval(Ca,24);T=0}
function Ca(){for(var a,b=Date.now(),e=S;e;){a=b-e.i;if(a>e.delay)e.n=e.j(a);e=e.next}a=q;for(b=S;b;)b=b.n?a?a.next=b.next:S=b.next:(a=b).next;a||(U=clearInterval(U))}function Aa(a){return typeof a=="function"?function(b,e,f){return d3.interpolate(f,a.call(this,b,e))}:function(b,e,f){return d3.interpolate(f,a)}}d3.scale={};
d3.scale.linear=function(){function a(j){return i((j-e)*g)}function b(j){var l=Math.min(e,f),n=Math.max(e,f),p=n-l,k=Math.pow(10,Math.floor(Math.log(p/j)/Math.LN10));j=j/(p/k);if(j<=0.15)k*=10;else if(j<=0.35)k*=5;else if(j<=0.75)k*=2;return{start:Math.ceil(l/k)*k,stop:Math.floor(n/k)*k+k*0.5,m:k}}var e=0,f=1,c=0,d=1,g=1/(f-e),h=(f-e)/(d-c),i=d3.interpolate(c,d);a.invert=function(j){return(j-c)*h+e};a.domain=function(j){if(!arguments.length)return[e,f];e=j[0];f=j[1];g=1/(f-e);h=(f-e)/(d-c);return a};
a.range=function(j){if(!arguments.length)return[c,d];c=j[0];d=j[1];h=(f-e)/(d-c);i=d3.interpolate(c,d);return a};a.ticks=function(j){j=b(j);return d3.range(j.start,j.stop,j.m)};a.tickFormat=function(j){return d3.format(",."+Math.max(0,-Math.floor(Math.log(b(j).m)/Math.LN10+0.01))+"f")};return a};
d3.scale.log=function(){function a(c){return Math.log(c)/Math.LN10}function b(c){return Math.pow(10,c)}function e(c){return f(a(c))}var f=d3.scale.linear();e.invert=function(c){return b(f.invert(c))};e.domain=function(c){if(!arguments.length)return f.domain().map(b);f.domain(c.map(a));return e};e.range=function(){var c=f.range.apply(f,arguments);return arguments.length?e:c};e.ticks=function(){var c=f.domain(),d=Math.floor(c[0]),g=Math.ceil(c[1]),h=[];if(c.every(isFinite)){for(;++d<=g;)for(c=1;c<10;c++)h.push(b(d)*
c);h.push(b(d))}return h};e.tickFormat=function(){return function(c){return c.toPrecision(1)}};return e};
d3.scale.pow=function(){function a(g){return Math.pow(g,c)}function b(g){return Math.pow(g,d)}function e(g){return f(a(g))}var f=d3.scale.linear(),c=1,d=1/c;e.invert=function(g){return b(f.invert(g))};e.domain=function(g){if(!arguments.length)return f.domain().map(b);f.domain(g.map(a));return e};e.range=function(){var g=f.range.apply(f,arguments);return arguments.length?e:g};e.exponent=function(g){if(!arguments.length)return c;var h=e.domain();c=g;d=1/g;return e.domain(h)};return e};
function O(a){function b(c){for(var d=[],h,g,i,j,m=0,p=a.length;m<p;m++){i=a[m];d.push(h=[]);h.parentNode=i.parentNode;h.parentData=i.parentData;for(var r=0,k=i.length;r<k;r++)if(j=i[r]){h.push(g=c(j));if(g&&"__data__"in j)g.__data__=j.__data__}else h.push(o)}return O(d)}function e(c){for(var d=[],h,g,i,j=0,m=a.length;j<m;j++){g=a[j];for(var p=0,r=g.length;p<r;p++)if(i=g[p]){d.push(h=c(i));h.parentNode=i;h.parentData=i.__data__}}return O(d)}function f(c){for(var d=0,h=a.length;d<h;d++)for(var g=a[d],
i=0,j=g.length;i<j;i++){var m=g[i];if(m)return c.call(m,m.__data__,i)}return o}a.select=function(c){return b(function(d){return d.querySelector(c)})};a.selectAll=function(c){return e(function(d){return w(d.querySelectorAll(c))})};a.filter=function(c){for(var d=[],h,g,i,j=0,m=a.length;j<m;j++){g=a[j];d.push(h=[]);h.parentNode=g.parentNode;h.parentData=g.parentData;for(var p=0,r=g.length;p<r;p++)if((i=g[p])&&c.call(i,i.__data__,p))h.push(i)}return O(d)};a.data=function(c,d){function h(k,n){function q(Ea){return k.parentNode.appendChild(Ea)}
var l=0,s=k.length,t=n.length,u=Math.min(s,t),B=Math.max(s,t),y=[],z=[],v=[],A,C;if(d){u={};B=[];var D;C=n.length;for(l=0;l<s;l++){D=d.nodeKey(A=k[l]);if(D in u)v[C++]=k[l];else{u[D]=A;B.push(D)}}for(l=0;l<t;l++){if(A=u[D=d.dataKey(C=n[l])]){A.__data__=C;y[l]=A;z[l]=v[l]=o}else{z[l]={appendChild:q,__data__:C};y[l]=v[l]=o}delete u[D]}for(l=0;l<s;l++)if(B[l]in u)v[l]=k[l]}else{for(;l<u;l++){A=k[l];C=n[l];if(A){A.__data__=C;y[l]=A;z[l]=v[l]=o}else{z[l]={appendChild:q,__data__:C};y[l]=v[l]=o}}for(;l<
t;l++){z[l]={appendChild:q,__data__:n[l]};y[l]=v[l]=o}for(;l<B;l++){v[l]=k[l];z[l]=y[l]=o}}z.parentNode=y.parentNode=v.parentNode=k.parentNode;z.parentData=y.parentData=v.parentData=k.parentData;m.push(z);p.push(y);r.push(v)}var g=-1,i=a.length,j,m=[],p=[],r=[];if(typeof d=="string")d=va(d);if(typeof c=="function")for(;++g<i;)h(j=a[g],c.call(j,j.parentData,g));else for(;++g<i;)h(j=a[g],c);g=O(p);g.enter=function(k){return O(m).append(k)};g.exit=function(){return O(r)};return g};a.each=function(c){for(var d=
0,h=a.length;d<h;d++)for(var g=a[d],i=0,j=g.length;i<j;i++){var m=g[i];m&&c.call(m,m.__data__,i)}return a};a.node=function(){return f(function(){return this})};a.attr=function(c,d){function h(){this.removeAttribute(c)}function g(){this.removeAttributeNS(c.space,c.local)}function i(){this.setAttribute(c,d)}function j(){this.setAttributeNS(c.space,c.local,d)}function m(){var r=d.apply(this,arguments);r==o?this.removeAttribute(c):this.setAttribute(c,r)}function p(){var r=d.apply(this,arguments);r==o?
this.removeAttributeNS(c.space,c.local):this.setAttributeNS(c.space,c.local,r)}c=d3.ns.qualify(c);if(arguments.length<2)return f(c.local?function(){return this.getAttributeNS(c.space,c.local)}:function(){return this.getAttribute(c)});return a.each(d==o?c.local?g:h:typeof d=="function"?c.local?p:m:c.local?j:i)};a.style=function(c,d,h){function g(){this.style.removeProperty(c)}function i(){this.style.setProperty(c,d,h)}function j(){var m=d.apply(this,arguments);m==o?this.style.removeProperty(c):this.style.setProperty(c,
m,h)}if(arguments.length<3)h=o;if(arguments.length<2)return f(function(){return window.getComputedStyle(this,o).getPropertyValue(c)});return a.each(d==o?g:typeof d=="function"?j:i)};a.property=function(c,d){function h(){delete this[c]}function g(){this[c]=d}function i(){var j=d.apply(this,arguments);if(j==o)delete this[c];else this[c]=j}c=d3.ns.qualify(c);if(arguments.length<2)return f(function(){return this[c]});return a.each(d==o?h:typeof d=="function"?i:g)};a.text=function(c){function d(){this.appendChild(document.createTextNode(c))}
function h(){var g=c.apply(this,arguments);g!=o&&this.appendChild(document.createTextNode(g))}if(arguments.length<1)return f(function(){return this.textContent});a.each(function(){for(;this.lastChild;)this.removeChild(this.lastChild)});return c==o?a:a.each(typeof c=="function"?h:d)};a.html=function(c){function d(){this.innerHTML=c}function h(){this.innerHTML=c.apply(this,arguments)}if(arguments.length<1)return f(function(){return this.innerHTML});return a.each(typeof c=="function"?h:d)};a.append=
function(c){function d(g){return g.appendChild(document.createElement(c))}function h(g){return g.appendChild(document.createElementNS(c.space,c.local))}c=d3.ns.qualify(c);return b(c.local?h:d)};a.remove=function(){return b(function(c){var d=c.parentNode;d.removeChild(c);return d})};a.sort=function(c){c=wa.apply(this,arguments);for(var d=0,h=a.length;d<h;d++){var g=a[d];g.sort(c);for(var i=1,j=g.length,m=g[0];i<j;i++){var p=g[i];if(p){m&&m.parentNode.insertBefore(p,m.nextSibling);m=p}}}return a};a.on=
function(c,d){c="on"+c;return a.each(function(h,g){this[c]=function(i){var j=d3.event;d3.event=i;try{d.call(this,h,g)}finally{d3.event=j}}})};a.transition=function(){return Q(a)};a.call=E;return a}function va(a){return{nodeKey:function(b){return b.getAttribute(a)},dataKey:function(b){return b[a]}}}function wa(a){arguments.length||(a=xa);return function(b,e){return a(b&&b.__data__,e&&e.__data__)}}function xa(a,b){return a<b?-1:a>b?1:0}d3.transition=P.transition;var ya=0,R=0;
function Q(a){function b(k){var n=true,q=-1;a.each(function(){if(i[++q]!=2){var l=(k-j[q])/m[q],s=this.__transition__,t,u=d[q];if(l<1){n=false;if(!(l<0)){if(i[q]){if(s.d!=f){i[q]=2;return}}else if(!s||s.d>f){i[q]=2;return}else{i[q]=1;g.start.dispatch.apply(this,arguments);u=d[q]={};s.d=f;for(t in c)u[t]=c[t].apply(this,arguments)}s=r(l);for(t in c)u[t].call(this,s)}}else{i[q]=2;if(s.d==f){l=s.o;for(t in c)u[t].call(this,1);if(l==f){delete this.__transition__;h&&this.parentNode.removeChild(this)}R=
f;g.end.dispatch.apply(this,arguments);R=0;s.o=l}}}});return n}var e={},f=R||++ya,c={},d=[],h=false,g=d3.dispatch("start","end"),i=[],j=[],m=[],p,r=d3.ease("cubic-in-out");a.each(function(){(this.__transition__||(this.__transition__={})).o=f});e.delay=function(k){var n=Infinity,q=-1;if(typeof k=="function")a.each(function(){var l=j[++q]=+k.apply(this,arguments);if(l<n)n=l});else{n=+k;a.each(function(){j[++q]=n})}za(b,n);return e};e.duration=function(k){var n=-1;if(typeof k=="function"){p=0;a.each(function(){var q=
m[++n]=+k.apply(this,arguments);if(q>p)p=q})}else{p=+k;a.each(function(){m[++n]=p})}return e};e.ease=function(k){r=typeof k=="string"?d3.ease(k):k;return e};e.attrTween=function(k,n){function q(s,t){var u=n.call(this,s,t,this.getAttribute(k));return function(B){this.setAttribute(k,u(B))}}function l(s,t){var u=n.call(this,s,t,this.getAttributeNS(k.space,k.local));return function(B){this.setAttributeNS(k.space,k.local,u(B))}}c["attr."+k]=k.local?l:q;return e};e.attr=function(k,n){return e.attrTween(k,
Aa(n))};e.styleTween=function(k,n,q){c["style."+k]=function(l,s){var t=n.call(this,l,s,window.getComputedStyle(this,o).getPropertyValue(k));return function(u){this.style.setProperty(k,t(u),q)}};return e};e.style=function(k,n,q){return e.styleTween(k,Aa(n),q)};e.select=function(k){var n;k=Q(a.select(k)).ease(r);n=-1;k.delay(function(){return j[++n]});n=-1;k.duration(function(){return m[++n]});return k};e.selectAll=function(k){var n;k=Q(a.selectAll(k)).ease(r);n=-1;k.delay(function(q,l){return j[l?
n:++n]});n=-1;k.duration(function(q,l){return m[l?n:++n]});return k};e.remove=function(){h=true;return e};e.each=function(k,n){g[k].add(n);return e};e.call=E;return e.delay(0).duration(250)}var S=o,T=0,U;function za(a,b){var e=Date.now(),f=false,c=e+b,d=S;if(isFinite(b)){for(;d;){if(d.n==a){d.j=e;d.delay=b;f=true}else{var h=d.j+d.delay;if(h<c)c=h}d=d.next}f||(S={n:a,j:e,delay:b,next:S});if(!U){clearTimeout(T);T=setTimeout(Ba,Math.max(24,c-e))}}}function Ba(){U=setInterval(Ca,24);T=0}
function Ca(){for(var a,b=Date.now(),e=S;e;){a=b-e.j;if(a>e.delay)e.t=e.n(a);e=e.next}a=o;for(b=S;b;)b=b.t?a?a.next=b.next:S=b.next:(a=b).next;a||(U=clearInterval(U))}function Aa(a){return typeof a=="function"?function(b,e,f){return d3.interpolate(f,a.call(this,b,e))}:function(b,e,f){return d3.interpolate(f,a)}}d3.scale={};
d3.scale.linear=function(){function a(j){return i((j-e)*h)}function b(j){var m=Math.min(e,f),p=Math.max(e,f),r=p-m,k=Math.pow(10,Math.floor(Math.log(r/j)/Math.LN10));j=j/(r/k);if(j<=0.15)k*=10;else if(j<=0.35)k*=5;else if(j<=0.75)k*=2;return{start:Math.ceil(m/k)*k,stop:Math.floor(p/k)*k+k*0.5,q:k}}var e=0,f=1,c=0,d=1,h=1/(f-e),g=(f-e)/(d-c),i=d3.interpolate(c,d);a.invert=function(j){return(j-c)*g+e};a.domain=function(j){if(!arguments.length)return[e,f];e=j[0];f=j[1];h=1/(f-e);g=(f-e)/(d-c);return a};
a.range=function(j){if(!arguments.length)return[c,d];c=j[0];d=j[1];g=(f-e)/(d-c);i=d3.interpolate(c,d);return a};a.ticks=function(j){j=b(j);return d3.range(j.start,j.stop,j.q)};a.tickFormat=function(j){return d3.format(",."+Math.max(0,-Math.floor(Math.log(b(j).q)/Math.LN10+0.01))+"f")};return a};
d3.scale.log=function(){function a(c){return Math.log(c)/Math.LN10}function b(c){return Math.pow(10,c)}function e(c){return f(a(c))}var f=d3.scale.linear();e.invert=function(c){return b(f.invert(c))};e.domain=function(c){if(!arguments.length)return f.domain().map(b);f.domain(c.map(a));return e};e.range=function(){var c=f.range.apply(f,arguments);return arguments.length?e:c};e.ticks=function(){var c=f.domain(),d=Math.floor(c[0]),h=Math.ceil(c[1]),g=[];if(c.every(isFinite)){for(;++d<=h;)for(c=1;c<10;c++)g.push(b(d)*
c);g.push(b(d))}return g};e.tickFormat=function(){return function(c){return c.toPrecision(1)}};return e};
d3.scale.pow=function(){function a(h){return Math.pow(h,c)}function b(h){return Math.pow(h,d)}function e(h){return f(a(h))}var f=d3.scale.linear(),c=1,d=1/c;e.invert=function(h){return b(f.invert(h))};e.domain=function(h){if(!arguments.length)return f.domain().map(b);f.domain(h.map(a));return e};e.range=function(){var h=f.range.apply(f,arguments);return arguments.length?e:h};e.exponent=function(h){if(!arguments.length)return c;var g=e.domain();c=h;d=1/h;return e.domain(g)};return e};
d3.scale.sqrt=function(){return d3.scale.pow().exponent(0.5)};
d3.scale.ordinal=function(){function a(d){d=d in e?e[d]:e[d]=b.push(d)-1;return f[d%f.length]}var b=[],e={},f=[],c=0;a.domain=function(d){if(!arguments.length)return b;b=d;e={};for(var g=-1,h=-1,i=b.length;++g<i;){d=b[g];d in e||(e[d]=++h)}return a};a.range=function(d){if(!arguments.length)return f;f=d;return a};a.rangePoints=function(d,g){if(arguments.length<2)g=0;var h=d[0],i=d[1],j=(i-h)/(b.length-1+g);f=b.length==1?[(h+i)/2]:d3.range(h+j*g/2,i+j/2,j);c=0;return a};a.rangeBands=function(d,g){if(arguments.length<
2)g=0;var h=d[0],i=d[1],j=(i-h)/(b.length+g);f=d3.range(h+j*g,i,j);c=j*(1-g);return a};a.rangeBand=function(){return c};return a};d3.scale.category10=function(){return d3.scale.ordinal().range(Da)};d3.scale.category20=function(){return d3.scale.ordinal().range(Fa)};d3.scale.category20b=function(){return d3.scale.ordinal().range(Ga)};d3.scale.category20c=function(){return d3.scale.ordinal().range(Ha)};
d3.scale.ordinal=function(){function a(d){d=d in e?e[d]:e[d]=b.push(d)-1;return f[d%f.length]}var b=[],e={},f=[],c=0;a.domain=function(d){if(!arguments.length)return b;b=d;e={};for(var h=-1,g=-1,i=b.length;++h<i;){d=b[h];d in e||(e[d]=++g)}return a};a.range=function(d){if(!arguments.length)return f;f=d;return a};a.rangePoints=function(d,h){if(arguments.length<2)h=0;var g=d[0],i=d[1],j=(i-g)/(b.length-1+h);f=b.length==1?[(g+i)/2]:d3.range(g+j*h/2,i+j/2,j);c=0;return a};a.rangeBands=function(d,h){if(arguments.length<
2)h=0;var g=d[0],i=d[1],j=(i-g)/(b.length+h);f=d3.range(g+j*h,i,j);c=j*(1-h);return a};a.rangeBand=function(){return c};return a};d3.scale.category10=function(){return d3.scale.ordinal().range(Da)};d3.scale.category20=function(){return d3.scale.ordinal().range(Fa)};d3.scale.category20b=function(){return d3.scale.ordinal().range(Ga)};d3.scale.category20c=function(){return d3.scale.ordinal().range(Ha)};
var Da=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],Fa=["#1f77b4","#aec7e8","#ff7f0e","#ffbb78","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5","#8c564b","#c49c94","#e377c2","#f7b6d2","#7f7f7f","#c7c7c7","#bcbd22","#dbdb8d","#17becf","#9edae5"],Ga=["#393b79","#5254a3","#6b6ecf","#9c9ede","#637939","#8ca252","#b5cf6b","#cedb9c","#8c6d31","#bd9e39","#e7ba52","#e7cb94","#843c39","#ad494a","#d6616b","#e7969c","#7b4173","#a55194","#ce6dbd",
"#de9ed6"],Ha=["#3182bd","#6baed6","#9ecae1","#c6dbef","#e6550d","#fd8d3c","#fdae6b","#fdd0a2","#31a354","#74c476","#a1d99b","#c7e9c0","#756bb1","#9e9ac8","#bcbddc","#dadaeb","#636363","#969696","#bdbdbd","#d9d9d9"];d3.svg={};
d3.svg.arc=function(){function a(d,g){var h=b.call(this,d,g),i=e.call(this,d,g),j=f.call(this,d,g)+V,l=c.call(this,d,g)+V,n=l-j,p=Math.cos(j);j=Math.sin(j);var k=Math.cos(l);l=Math.sin(l);return"M"+i*p+","+i*j+"A"+i+","+i+" 0 "+(n<Math.PI?"0":"1")+",1 "+i*k+","+i*l+"L"+h*k+","+h*l+"A"+h+","+h+" 0 "+(n<Math.PI?"0":"1")+",0 "+h*p+","+h*j+"Z"}var b=Ia,e=Ja,f=Ka,c=La;a.innerRadius=function(d){if(!arguments.length)return b;b=x(d);return a};a.outerRadius=function(d){if(!arguments.length)return e;e=x(d);
d3.svg.arc=function(){function a(d,h){var g=b.call(this,d,h),i=e.call(this,d,h),j=f.call(this,d,h)+V,m=c.call(this,d,h)+V,p=m-j,r=Math.cos(j);j=Math.sin(j);var k=Math.cos(m);m=Math.sin(m);return"M"+i*r+","+i*j+"A"+i+","+i+" 0 "+(p<Math.PI?"0":"1")+",1 "+i*k+","+i*m+"L"+g*k+","+g*m+"A"+g+","+g+" 0 "+(p<Math.PI?"0":"1")+",0 "+g*r+","+g*j+"Z"}var b=Ia,e=Ja,f=Ka,c=La;a.innerRadius=function(d){if(!arguments.length)return b;b=x(d);return a};a.outerRadius=function(d){if(!arguments.length)return e;e=x(d);
return a};a.startAngle=function(d){if(!arguments.length)return f;f=x(d);return a};a.endAngle=function(d){if(!arguments.length)return c;c=x(d);return a};return a};var V=-Math.PI/2;function Ia(a){return a.innerRadius}function Ja(a){return a.outerRadius}function Ka(a){return a.startAngle}function La(a){return a.endAngle}
d3.svg.line=function(){function a(d){return d.length<1?q:"M"+c(W(this,d,b,e))}var b=Ma,e=Na,f="linear",c=X[f];a.x=function(d){if(!arguments.length)return b;b=d;return a};a.y=function(d){if(!arguments.length)return e;e=d;return a};a.interpolate=function(d){if(!arguments.length)return f;c=X[f=d];return a};return a};
function W(a,b,e,f){var c=[],d=-1,g=b.length,h=typeof e=="function",i=typeof f=="function",j;if(h&&i)for(;++d<g;)c.push([e.call(a,j=b[d],d),f.call(a,j,d)]);else if(h)for(;++d<g;)c.push([e.call(a,b[d],d),f]);else if(i)for(;++d<g;)c.push([e,f.call(a,b[d],d)]);else for(;++d<g;)c.push([e,f]);return c}function Ma(a){return a.x}function Na(a){return a.y}var X={linear:Oa,basis:Pa};
function Oa(a){if(a.length<1)return q;var b=[],e=0,f=a.length,c=a[0];for(b.push(c[0],",",c[1]);++e<f;)b.push("L",(c=a[e])[0],",",c[1]);return b.join("")}function Pa(a){if(a.length<3)return Oa(a);var b=[],e=1,f=a.length,c=a[0],d=c[0],g=c[1],h=[d,d,d,(c=a[1])[0]],i=[g,g,g,c[1]];b.push(d,",",g);for(Y(b,h,i);++e<f;){c=a[e];h.shift();h.push(c[0]);i.shift();i.push(c[1]);Y(b,h,i)}for(e=-1;++e<2;){h.shift();h.push(c[0]);i.shift();i.push(c[1]);Y(b,h,i)}return b.join("")}
d3.svg.line=function(){function a(d){return d.length<1?o:"M"+c(W(this,d,b,e))}var b=Ma,e=Na,f="linear",c=X[f];a.x=function(d){if(!arguments.length)return b;b=d;return a};a.y=function(d){if(!arguments.length)return e;e=d;return a};a.interpolate=function(d){if(!arguments.length)return f;c=X[f=d];return a};return a};
function W(a,b,e,f){var c=[],d=-1,h=b.length,g=typeof e=="function",i=typeof f=="function",j;if(g&&i)for(;++d<h;)c.push([e.call(a,j=b[d],d),f.call(a,j,d)]);else if(g)for(;++d<h;)c.push([e.call(a,b[d],d),f]);else if(i)for(;++d<h;)c.push([e,f.call(a,b[d],d)]);else for(;++d<h;)c.push([e,f]);return c}function Ma(a){return a.x}function Na(a){return a.y}var X={linear:Oa,basis:Pa};
function Oa(a){if(a.length<1)return o;var b=[],e=0,f=a.length,c=a[0];for(b.push(c[0],",",c[1]);++e<f;)b.push("L",(c=a[e])[0],",",c[1]);return b.join("")}function Pa(a){if(a.length<3)return Oa(a);var b=[],e=1,f=a.length,c=a[0],d=c[0],h=c[1],g=[d,d,d,(c=a[1])[0]],i=[h,h,h,c[1]];b.push(d,",",h);for(Y(b,g,i);++e<f;){c=a[e];g.shift();g.push(c[0]);i.shift();i.push(c[1]);Y(b,g,i)}for(e=-1;++e<2;){g.shift();g.push(c[0]);i.shift();i.push(c[1]);Y(b,g,i)}return b.join("")}
function Z(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]}var Qa=[0,2/3,1/3,0],Ra=[0,1/3,2/3,0],Sa=[0,1/6,2/3,1/6];function Y(a,b,e){a.push("C",Z(Qa,b),",",Z(Qa,e),",",Z(Ra,b),",",Z(Ra,e),",",Z(Sa,b),",",Z(Sa,e))}
d3.svg.area=function(){function a(g){return g.length<1?q:"M"+d(W(this,g,b,f))+"L"+d(W(this,g,b,e).reverse())+"Z"}var b=Ma,e=Ta,f=Na,c="linear",d=X[c];a.x=function(g){if(!arguments.length)return b;b=g;return a};a.y0=function(g){if(!arguments.length)return e;e=g;return a};a.y1=function(g){if(!arguments.length)return f;f=g;return a};a.interpolate=function(g){if(!arguments.length)return c;d=X[c=g];return a};return a};function Ta(){return 0}
d3.svg.chord=function(){function a(g,h){var i=b.call(this,g,h),j=e.call(this,g,h),l=f.call(this,i,h),n=c.call(this,i,h)+V;i=d.call(this,i,h)+V;var p=f.call(this,j,h),k=c.call(this,j,h)+V;j=d.call(this,j,h)+V;if(n==k&&i==j&&l==p){p=l*Math.cos(n);n=l*Math.sin(n);l="M"+p+","+n+"A"+l+","+l+" 0 0,1 "+l*Math.cos(i)+","+l*Math.sin(i)+"Q 0,0 "+p+","+n+"Z"}else{var o=l*Math.cos(n);n=l*Math.sin(n);l="M"+o+","+n+"A"+l+","+l+" 0 0,1 "+l*Math.cos(i)+","+l*Math.sin(i)+"Q 0,0 "+p*Math.cos(k)+","+p*Math.sin(k)+
"A"+p+","+p+" 0 0,1 "+p*Math.cos(j)+","+p*Math.sin(j)+"Q 0,0 "+o+","+n+"Z"}return l}var b=Ua,e=Va,f=Wa,c=Ka,d=La;a.radius=function(g){if(!arguments.length)return f;f=x(g);return a};a.source=function(g){if(!arguments.length)return b;b=x(g);return a};a.target=function(g){if(!arguments.length)return e;e=x(g);return a};a.startAngle=function(g){if(!arguments.length)return c;c=x(g);return a};a.endAngle=function(g){if(!arguments.length)return d;d=x(g);return a};return a};
function Ua(a){return a.source}function Va(a){return a.target}function Wa(a){return a.radius}
d3.svg.area=function(){function a(h){return h.length<1?o:"M"+d(W(this,h,b,f))+"L"+d(W(this,h,b,e).reverse())+"Z"}var b=Ma,e=Ta,f=Na,c="linear",d=X[c];a.x=function(h){if(!arguments.length)return b;b=h;return a};a.y0=function(h){if(!arguments.length)return e;e=h;return a};a.y1=function(h){if(!arguments.length)return f;f=h;return a};a.interpolate=function(h){if(!arguments.length)return c;d=X[c=h];return a};return a};function Ta(){return 0}
d3.svg.chord=function(){function a(g,i){var j=b(this,e,g,i),m=b(this,f,g,i);return"M"+j.c+("A"+j.r+","+j.r+" 0 0,1 "+j.p)+(j.k==m.k&&j.m==m.m?"Q 0,0 "+j.c:"Q 0,0 "+m.c+("A"+m.r+","+m.r+" 0 0,1 "+m.p)+("Q 0,0 "+j.c))+"Z"}function b(g,i,j,m){var p=i.call(g,j,m);i=c.call(g,p,m);j=d.call(g,p,m)+V;g=h.call(g,p,m)+V;return{r:i,k:j,m:g,c:[i*Math.cos(j),i*Math.sin(j)],p:[i*Math.cos(g),i*Math.sin(g)]}}var e=Ua,f=Va,c=Wa,d=Ka,h=La;a.radius=function(g){if(!arguments.length)return c;c=x(g);return a};a.source=
function(g){if(!arguments.length)return e;e=x(g);return a};a.target=function(g){if(!arguments.length)return f;f=x(g);return a};a.startAngle=function(g){if(!arguments.length)return d;d=x(g);return a};a.endAngle=function(g){if(!arguments.length)return h;h=x(g);return a};return a};function Ua(a){return a.source}function Va(a){return a.target}function Wa(a){return a.radius}
d3.svg.mouse=function(a){var b=(a.ownerSVGElement||a).createSVGPoint();if($<0&&(window.scrollX||window.scrollY)){var e=d3.select(document.body).append("svg:svg").style("position","absolute").style("top",0).style("left",0),f=e[0][0].getScreenCTM();$=!(f.f||f.e);e.remove()}if($){b.x=d3.event.pageX;b.y=d3.event.pageY}else{b.x=d3.event.clientX;b.y=d3.event.clientY}b=b.matrixTransform(a.getScreenCTM().inverse());return[b.x,b.y]};var $=/WebKit/.test(navigator.userAgent)?-1:0;})()

Просмотреть файл

@ -1 +1 @@
d3 = {version: "0.25.0"}; // semver
d3 = {version: "0.25.1"}; // semver

Просмотреть файл

@ -8,45 +8,41 @@ d3["svg"]["chord"] = function() {
// TODO Allow control point to be customized.
function chord(d, i) {
var s = source.call(this, d, i),
t = target.call(this, d, i),
r0 = radius.call(this, s, i),
a00 = startAngle.call(this, s, i) + d3_svg_arcOffset,
a01 = endAngle.call(this, s, i) + d3_svg_arcOffset,
r1 = radius.call(this, t, i),
a10 = startAngle.call(this, t, i) + d3_svg_arcOffset,
a11 = endAngle.call(this, t, i) + d3_svg_arcOffset;
return (a00 == a10) && (a01 == a11) && (r0 == r1)
? chord1(r0, a00, a01)
: chord2(r0, a00, a01, r1, a10, a11);
var s = subgroup(this, source, d, i),
t = subgroup(this, target, d, i);
return "M" + s.p0
+ arc(s.r, s.p1) + (equals(s, t)
? curve(s.r, s.p1, s.r, s.p0)
: curve(s.r, s.p1, t.r, t.p0)
+ arc(t.r, t.p1)
+ curve(t.r, t.p1, s.r, s.p0))
+ "Z";
}
function chord1(r0, a00, a01) {
var x00 = r0 * Math.cos(a00),
y00 = r0 * Math.sin(a00),
x01 = r0 * Math.cos(a01),
y01 = r0 * Math.sin(a01);
return "M" + x00 + "," + y00
+ "A" + r0 + "," + r0 + " 0 0,1 " + x01 + "," + y01
+ "Q 0,0 " + x00 + "," + y00
+ "Z";
function subgroup(self, f, d, i) {
var subgroup = f.call(self, d, i),
r = radius.call(self, subgroup, i),
a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset,
a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset;
return {
r: r,
a0: a0,
a1: a1,
p0: [r * Math.cos(a0), r * Math.sin(a0)],
p1: [r * Math.cos(a1), r * Math.sin(a1)]
};
}
function chord2(r0, a00, a01, r1, a10, a11) {
var x00 = r0 * Math.cos(a00),
y00 = r0 * Math.sin(a00),
x01 = r0 * Math.cos(a01),
y01 = r0 * Math.sin(a01),
x10 = r1 * Math.cos(a10),
y10 = r1 * Math.sin(a10),
x11 = r1 * Math.cos(a11),
y11 = r1 * Math.sin(a11);
return "M" + x00 + "," + y00
+ "A" + r0 + "," + r0 + " 0 0,1 " + x01 + "," + y01
+ "Q 0,0 " + x10 + "," + y10
+ "A" + r1 + "," + r1 + " 0 0,1 " + x11 + "," + y11
+ "Q 0,0 " + x00 + "," + y00
+ "Z";
function equals(a, b) {
return a.a0 == b.a0 && a.a1 == b.a1;
}
function arc(r, p) {
return "A" + r + "," + r + " 0 0,1 " + p;
}
function curve(r0, p0, r1, p1) {
return "Q 0,0 " + p1;
}
chord["radius"] = function(v) {