Defer interpolator initialization.

We don't want to compute the start value of the interpolator until the
instance starts transitioning.
This commit is contained in:
Michael Bostock 2010-11-08 21:55:31 -08:00
Родитель f8557b993f
Коммит ef4088ebbe
4 изменённых файлов: 98 добавлений и 122 удалений

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

@ -1,4 +1,4 @@
d3 = {version: "0.15.0"}; // semver
d3 = {version: "0.15.1"}; // semver
if (!Date.now) Date.now = function() {
return +new Date();
};
@ -1177,6 +1177,7 @@ d3.transition = d3_root.transition;
function d3_transition(groups, name) {
var transition = {},
tweens = {},
interpolators = [],
event = d3.dispatch("start", "end"),
stage = [],
delay = [],
@ -1187,22 +1188,25 @@ function d3_transition(groups, name) {
function step(elapsed) {
var clear = true,
k = -1;
groups.each(function(d, i) {
groups.each(function() {
if (stage[++k] == 2) return; // ended
var t = (elapsed - delay[k]) / duration[k];
if (t >= 1) {
t = 1;
} else {
var t = (elapsed - delay[k]) / duration[k],
te, // ease(t)
tk, // tween key
ik = interpolators[k];
if (t < 1) {
clear = false;
if (t < 0) return;
if (!stage[k]) {
stage[k] = 1;
event.start.dispatch.apply(this, arguments);
ik = interpolators[k] = {};
for (tk in tweens) ik[tk] = tweens[tk].apply(this, arguments);
}
}
var te = ease(t);
for (var key in tweens) tweens[key].call(this, te, k);
if (t == 1) {
te = ease(t);
for (tk in tweens) ik[tk].call(this, te);
} else {
for (tk in tweens) ik[tk].call(this, 1);
stage[k] = 2;
event.end.dispatch.apply(this, arguments);
}
@ -1251,33 +1255,23 @@ function d3_transition(groups, name) {
};
transition.attrTween = function(name, tween) {
var interpolators = [],
k = -1;
/** @this {Element} */
function attrInterpolator(d, i) {
interpolators[++k] = tween.call(this, d, i,
this.getAttribute(name));
function attrTween(d, i) {
var f = tween.call(this, d, i, this.getAttribute(name));
return function(t) {
this.setAttribute(name, f(t));
};
}
/** @this {Element} */
function attrInterpolatorNS(d, i) {
interpolators[++k] = tween.call(this, d, i,
this.getAttributeNS(name.space, name.local));
function attrTweenNS(d, i) {
var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
return function(t) {
this.setAttributeNS(name.space, name.local, f(t));
};
}
/** @this {Element} */
function attrTween(t, k) {
this.setAttribute(name, interpolators[k](t));
}
/** @this {Element} */
function attrTweenNS(t, k) {
this.setAttributeNS(name.space, name.local, interpolators[k](t));
}
name = d3.ns.qualify(name);
groups.each(name.local ? attrInterpolatorNS : attrInterpolator);
tweens["attr." + name] = name.local ? attrTweenNS : attrTween;
return transition;
};
@ -1287,21 +1281,15 @@ function d3_transition(groups, name) {
};
transition.styleTween = function(name, tween, priority) {
var interpolators = [],
k = -1;
/** @this {Element} */
function styleInterpolator(d, i) {
interpolators[++k] = tween.call(this, d, i,
window.getComputedStyle(this, null).getPropertyValue(name));
function styleTween(d, i) {
var f = tween.call(this, d, i, window.getComputedStyle(this, null).getPropertyValue(name));
return function(t) {
this.style.setProperty(name, i(t), priority);
};
}
/** @this {Element} */
function styleTween(t, k) {
this.style.setProperty(name, interpolators[k](t), priority);
}
groups.each(styleInterpolator);
tweens["style." + name] = styleTween;
return transition;
};

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

@ -1,18 +1,18 @@
(function(){var p=null;d3={version:"0.15.0"};if(!Date.now)Date.now=function(){return+new Date};if(!Object.create)Object.create=function(a){function d(){}d.prototype=a;return new d};function v(a){return Array.prototype.slice.call(a)}function C(a,d){d=v(arguments);d[0]=this;a.apply(this,d);return this}d3.range=function(a,d,e){if(arguments.length==1){d=a;a=0}if(e==p)e=1;if((d-a)/e==Infinity)throw Error("infinite range");var f=[],c=-1,b;if(e<0)for(;(b=a+e*++c)>d;)f.push(b);else for(;(b=a+e*++c)<d;)f.push(b);return f};
d3.text=function(a,d,e){var f=new XMLHttpRequest;if(arguments.length==3)f.overrideMimeType(d);else e=d;f.open("GET",a,true);f.onreadystatechange=function(){if(f.readyState==4)e(f.status<300&&f.responseText?f.responseText:p)};f.send(p)};d3.json=function(a,d){return d3.text(a,"application/json",function(e){d(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 d=a.indexOf(":");return d<0?a:{space:d3.ns.prefix[a.substring(0,d)],local:a.substring(d+1)}}};d3.dispatch=function(){for(var a={},d,e=0,f=arguments.length;e<f;e++){d=arguments[e];a[d]=E(d)}return a};
function E(){var a={},d=[];a.add=function(e){for(var f=0;f<d.length;f++)if(d[f].g==e)return a;d.push({g:e,on:true});return a};a.remove=function(e){for(var f=0;f<d.length;f++){var c=d[f];if(c.g==e){c.on=false;d=d.slice(0,f).concat(d.slice(f+1));break}}return a};a.dispatch=function(){for(var e=d,f=0,c=e.length;f<c;f++){var b=e[f];b.on&&b.g.apply(this,arguments)}};return a}
d3.format=function(a){a=F.exec(a);var d=a[1]||" ",e=a[5],f=+a[6],c=a[7],b=a[8],h=a[9];if(b)b=b.substring(1);if(e)d="0";if(h=="d")b="0";return function(g){if(h=="d"&&g%1)return"";if(b)g=(+g).toFixed(b);else g+="";if(c){for(var i=g.lastIndexOf("."),j=i>=0?g.substring(i):(i=g.length,""),o=[];i>0;)o.push(g.substring(i-=3,i+3));g=o.reverse().join(",")+j}i=g.length;if(i<f)g=Array(f-i+1).join(d)+g;return g}};
var F=/(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/,H=G(2),I=G(3),fa={linear:function(){return J},poly:G,quad:function(){return H},cubic:function(){return I},sin:function(){return K},exp:function(){return aa},circle:function(){return ba},elastic:ca,back:da,bounce:function(){return ea}},ga={"in":function(a){return a},out:L,"in-out":M,"out-in":function(a){return M(L(a))}};
d3.ease=function(a){var d=a.indexOf("-");return ga[d>=0?a.substring(d+1):"in"](fa[d>=0?a.substring(0,d):a].apply(p,Array.prototype.slice.call(arguments,1)))};function L(a){return function(d){return 1-a(1-d)}}function M(a){return function(d){return 0.5*(d<0.5?a(2*d):2-a(2-2*d))}}function J(a){return a}function G(a){return function(d){return Math.pow(d,a)}}function K(a){return 1-Math.cos(a*Math.PI/2)}function aa(a){return a?Math.pow(2,10*(a-1))-0.0010:0}function ba(a){return 1-Math.sqrt(1-a*a)}
function ca(a,d){var e;if(arguments.length<2)d=0.45;if(arguments.length<1){a=1;e=d/4}else e=d/(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/d)}}function da(a){a||(a=1.70158);return function(d){return d*d*((a+1)*d-a)}}function ea(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=p;
(function(){var o=null;d3={version:"0.15.1"};if(!Date.now)Date.now=function(){return+new Date};if(!Object.create)Object.create=function(a){function d(){}d.prototype=a;return new d};function v(a){return Array.prototype.slice.call(a)}function B(a,d){d=v(arguments);d[0]=this;a.apply(this,d);return this}d3.range=function(a,d,e){if(arguments.length==1){d=a;a=0}if(e==o)e=1;if((d-a)/e==Infinity)throw Error("infinite range");var f=[],b=-1,c;if(e<0)for(;(c=a+e*++b)>d;)f.push(c);else for(;(c=a+e*++b)<d;)f.push(c);return f};
d3.text=function(a,d,e){var f=new XMLHttpRequest;if(arguments.length==3)f.overrideMimeType(d);else e=d;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,d){return d3.text(a,"application/json",function(e){d(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 d=a.indexOf(":");return d<0?a:{space:d3.ns.prefix[a.substring(0,d)],local:a.substring(d+1)}}};d3.dispatch=function(){for(var a={},d,e=0,f=arguments.length;e<f;e++){d=arguments[e];a[d]=D(d)}return a};
function D(){var a={},d=[];a.add=function(e){for(var f=0;f<d.length;f++)if(d[f].g==e)return a;d.push({g:e,on:true});return a};a.remove=function(e){for(var f=0;f<d.length;f++){var b=d[f];if(b.g==e){b.on=false;d=d.slice(0,f).concat(d.slice(f+1));break}}return a};a.dispatch=function(){for(var e=d,f=0,b=e.length;f<b;f++){var c=e[f];c.on&&c.g.apply(this,arguments)}};return a}
d3.format=function(a){a=E.exec(a);var d=a[1]||" ",e=a[5],f=+a[6],b=a[7],c=a[8],h=a[9];if(c)c=c.substring(1);if(e)d="0";if(h=="d")c="0";return function(g){if(h=="d"&&g%1)return"";if(c)g=(+g).toFixed(c);else g+="";if(b){for(var i=g.lastIndexOf("."),j=i>=0?g.substring(i):(i=g.length,""),n=[];i>0;)n.push(g.substring(i-=3,i+3));g=n.reverse().join(",")+j}i=g.length;if(i<f)g=Array(f-i+1).join(d)+g;return g}};
var E=/(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/,H=G(2),I=G(3),fa={linear:function(){return J},poly:G,quad:function(){return H},cubic:function(){return I},sin:function(){return K},exp:function(){return aa},circle:function(){return ba},elastic:ca,back:da,bounce:function(){return ea}},ga={"in":function(a){return a},out:L,"in-out":M,"out-in":function(a){return M(L(a))}};
d3.ease=function(a){var d=a.indexOf("-");return ga[d>=0?a.substring(d+1):"in"](fa[d>=0?a.substring(0,d):a].apply(o,Array.prototype.slice.call(arguments,1)))};function L(a){return function(d){return 1-a(1-d)}}function M(a){return function(d){return 0.5*(d<0.5?a(2*d):2-a(2-2*d))}}function J(a){return a}function G(a){return function(d){return Math.pow(d,a)}}function K(a){return 1-Math.cos(a*Math.PI/2)}function aa(a){return a?Math.pow(2,10*(a-1))-0.0010:0}function ba(a){return 1-Math.sqrt(1-a*a)}
function ca(a,d){var e;if(arguments.length<2)d=0.45;if(arguments.length<1){a=1;e=d/4}else e=d/(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/d)}}function da(a){a||(a=1.70158);return function(d){return d*d*((a+1)*d-a)}}function ea(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,d){if(typeof d=="number")return d3.interpolateNumber(+a,d);if(typeof d=="string")return d in N||/^(#|rgb\(|hsl\()/.test(d)?d3.interpolateRgb(String(a),d):d3.interpolateString(String(a),d);if(d instanceof Array)return d3.interpolateArray(a,d);return d3.interpolateObject(a,d)};d3.interpolateNumber=function(a,d){d-=a;return function(e){return a+d*e}};
d3.interpolateString=function(a,d){var e,f,c=0,b=[],h=[],g,i;for(f=0;e=O.exec(d);++f){e.index&&b.push(d.substring(c,e.index));h.push({a:b.length,x:e[0]});b.push(p);c=O.lastIndex}c<d.length&&b.push(d.substring(c));f=0;for(g=h.length;(e=O.exec(a))&&f<g;++f){i=h[f];if(i.x==e[0]){if(i.a)if(b[i.a+1]==p){b[i.a-1]+=i.x;b.splice(i.a,1);for(e=f+1;e<g;++e)h[e].a--}else{b[i.a-1]+=i.x+b[i.a+1];b.splice(i.a,2);for(e=f+1;e<g;++e)h[e].a-=2}else if(b[i.a+1]==p)b[i.a]=i.x;else{b[i.a]=i.x+b[i.a+1];b.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(b[i.a+1]==p)b[i.a]=i.x;else{b[i.a]=i.x+b[i.a+1];b.splice(i.a+1,1)}g--}if(b.length==1)return b[0]==p?h[0].x:function(){return d};return function(j){for(f=0;f<g;++f)b[(i=h[f]).a]=i.x(j);return b.join("")}};
d3.interpolateRgb=function(a,d){a=P(a);d=P(d);var e=a.d,f=a.c,c=a.b,b=d.d-e,h=d.c-f,g=d.b-c;return function(i){return"rgb("+Math.round(e+b*i)+","+Math.round(f+h*i)+","+Math.round(c+g*i)+")"}};d3.interpolateArray=function(a,d){var e=[],f=[],c=a.length,b=d.length,h=Math.min(a.length,d.length),g;for(g=0;g<h;++g)e.push(d3.interpolate(a[g],d[g]));for(;g<c;++g)f[g]=a[g];for(;g<b;++g)f[g]=d[g];return function(i){for(g=0;g<h;++g)f[g]=e[g](i);return f}};
d3.interpolateObject=function(a,d){var e={},f={},c;for(c in a)if(c in d)e[c]=(c in ha||/\bcolor\b/.test(c)?d3.interpolateRgb:d3.interpolate)(a[c],d[c]);else f[c]=a[c];for(c in d)c in a||(f[c]=d[c]);return function(b){for(c in e)f[c]=e[c](b);return f}};var O=/[-+]?(?:\d+\.\d+|\d+\.|\.\d+|\d+)(?:[eE][-]?\d+)?/g,ha={background:1,fill:1,stroke:1};
function P(a){var d,e,f,c,b;if(c=/([a-z]+)\((.*)\)/i.exec(a)){b=c[2].split(",");switch(c[1]){case "hsl":return Q(parseFloat(b[0]),parseFloat(b[1])/100,parseFloat(b[2])/100);case "rgb":return{d:R(b[0]),c:R(b[1]),b:R(b[2])}}}if(c=N[a])return c;if(a==p)return N.l;if(a.charAt(0)=="#"){if(a.length==4){d=a.charAt(1);d+=d;e=a.charAt(2);e+=e;f=a.charAt(3);f+=f}else if(a.length==7){d=a.substring(1,3);e=a.substring(3,5);f=a.substring(5,7)}d=parseInt(d,16);e=parseInt(e,16);f=parseInt(f,16)}return{d:d,c:e,b:f}}
function Q(a,d,e){function f(h){if(h>360)h-=360;else if(h<0)h+=360;if(h<60)return c+(b-c)*h/60;if(h<180)return b;if(h<240)return c+(b-c)*(240-h)/60;return c}var c,b;a%=360;if(a<0)a+=360;d=d<0?0:d>1?1:d;e=e<0?0:e>1?1:e;b=e<=0.5?e*(1+d):e+d-e*d;c=2*e-b;return{d:Math.round(f(a+120)*255),c:Math.round(f(a)*255),b:Math.round(f(a-120)*255)}}function R(a){var d=parseFloat(a);return a.charAt(a.length-1)=="%"?Math.round(d*2.55):d}
d3.interpolateString=function(a,d){var e,f,b=0,c=[],h=[],g,i;for(f=0;e=O.exec(d);++f){e.index&&c.push(d.substring(b,e.index));h.push({a:c.length,x:e[0]});c.push(o);b=O.lastIndex}b<d.length&&c.push(d.substring(b));f=0;for(g=h.length;(e=O.exec(a))&&f<g;++f){i=h[f];if(i.x==e[0]){if(i.a)if(c[i.a+1]==o){c[i.a-1]+=i.x;c.splice(i.a,1);for(e=f+1;e<g;++e)h[e].a--}else{c[i.a-1]+=i.x+c[i.a+1];c.splice(i.a,2);for(e=f+1;e<g;++e)h[e].a-=2}else if(c[i.a+1]==o)c[i.a]=i.x;else{c[i.a]=i.x+c[i.a+1];c.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(c[i.a+1]==o)c[i.a]=i.x;else{c[i.a]=i.x+c[i.a+1];c.splice(i.a+1,1)}g--}if(c.length==1)return c[0]==o?h[0].x:function(){return d};return function(j){for(f=0;f<g;++f)c[(i=h[f]).a]=i.x(j);return c.join("")}};
d3.interpolateRgb=function(a,d){a=P(a);d=P(d);var e=a.d,f=a.c,b=a.b,c=d.d-e,h=d.c-f,g=d.b-b;return function(i){return"rgb("+Math.round(e+c*i)+","+Math.round(f+h*i)+","+Math.round(b+g*i)+")"}};d3.interpolateArray=function(a,d){var e=[],f=[],b=a.length,c=d.length,h=Math.min(a.length,d.length),g;for(g=0;g<h;++g)e.push(d3.interpolate(a[g],d[g]));for(;g<b;++g)f[g]=a[g];for(;g<c;++g)f[g]=d[g];return function(i){for(g=0;g<h;++g)f[g]=e[g](i);return f}};
d3.interpolateObject=function(a,d){var e={},f={},b;for(b in a)if(b in d)e[b]=(b in ha||/\bcolor\b/.test(b)?d3.interpolateRgb:d3.interpolate)(a[b],d[b]);else f[b]=a[b];for(b in d)b in a||(f[b]=d[b]);return function(c){for(b in e)f[b]=e[b](c);return f}};var O=/[-+]?(?:\d+\.\d+|\d+\.|\.\d+|\d+)(?:[eE][-]?\d+)?/g,ha={background:1,fill:1,stroke:1};
function P(a){var d,e,f,b,c;if(b=/([a-z]+)\((.*)\)/i.exec(a)){c=b[2].split(",");switch(b[1]){case "hsl":return Q(parseFloat(c[0]),parseFloat(c[1])/100,parseFloat(c[2])/100);case "rgb":return{d:R(c[0]),c:R(c[1]),b:R(c[2])}}}if(b=N[a])return b;if(a==o)return N.l;if(a.charAt(0)=="#"){if(a.length==4){d=a.charAt(1);d+=d;e=a.charAt(2);e+=e;f=a.charAt(3);f+=f}else if(a.length==7){d=a.substring(1,3);e=a.substring(3,5);f=a.substring(5,7)}d=parseInt(d,16);e=parseInt(e,16);f=parseInt(f,16)}return{d:d,c:e,b:f}}
function Q(a,d,e){function f(h){if(h>360)h-=360;else if(h<0)h+=360;if(h<60)return b+(c-b)*h/60;if(h<180)return c;if(h<240)return b+(c-b)*(240-h)/60;return b}var b,c;a%=360;if(a<0)a+=360;d=d<0?0:d>1?1:d;e=e<0?0:e>1?1:e;c=e<=0.5?e*(1+d):e+d-e*d;b=2*e-c;return{d:Math.round(f(a+120)*255),c:Math.round(f(a)*255),b:Math.round(f(a-120)*255)}}function R(a){var d=parseFloat(a);return a.charAt(a.length-1)=="%"?Math.round(d*2.55):d}
var N={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",
@ -20,34 +20,34 @@ lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsla
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"},S;for(S in N)N[S]=P(N[S]);d3.hsl=function(a,d,e){a=Q(a,d,e);return"rgb("+a.d+","+a.c+","+a.b+")"};var U=T([[document]]);
U[0].parentNode=document.documentElement;d3.select=function(a){return typeof a=="string"?U.select(a):T([[a]])};d3.selectAll=function(a){return typeof a=="string"?U.selectAll(a):T([v(a)])};
function T(a){function d(c){for(var b=[],h,g,i,j,o=0,k=a.length;o<k;o++){i=a[o];b.push(h=[]);h.parentNode=i.parentNode;h.parentData=i.parentData;for(var l=0,n=i.length;l<n;l++)if(j=i[l]){h.push(g=c(j));if(g&&!g.__data__)g.__data__=j.__data__}else h.push(p)}return T(b)}function e(c){for(var b=[],h,g,i,j=0,o=a.length;j<o;j++){g=a[j];for(var k=0,l=g.length;k<l;k++)if(i=g[k]){b.push(h=c(i));h.parentNode=i;h.parentData=i.__data__}}return T(b)}function f(c){for(var b=0,h=a.length;b<h;b++)for(var g=a[b],
i=0,j=g.length;i<j;i++){var o=g[i];if(o)return c.call(o,o.__data__,i)}return p}a.select=function(c){return d(function(b){return b.querySelector(c)})};a.selectAll=function(c){return e(function(b){return v(b.querySelectorAll(c))})};a.filter=function(c){for(var b=[],h,g,i,j=0,o=a.length;j<o;j++){g=a[j];b.push(h=[]);h.parentNode=g.parentNode;h.parentData=g.parentData;for(var k=0,l=g.length;k<l;k++)if((i=g[k])&&c.call(i,i.__data__,k))h.push(i)}return T(b)};a.data=function(c,b){function h(n,q){function w(ia){return n.parentNode.appendChild(ia)}
var m=0,s=n.length,B=q.length,r=Math.min(s,B),t=Math.max(s,B),x=[],y=[],u=[],z,A;if(b){r={};t=[];var D;A=q.length;for(m=0;m<s;m++){D=b.nodeKey(z=n[m]);if(D in r)u[A++]=n[m];else{r[D]=z;t.push(D)}}for(m=0;m<B;m++){if(z=r[D=b.dataKey(A=q[m])]){z.__data__=A;x[m]=z;y[m]=u[m]=p}else{y[m]={appendChild:w,__data__:A};x[m]=u[m]=p}delete r[D]}for(m=0;m<s;m++)if(t[m]in r)u[m]=n[m]}else{for(;m<r;m++){z=n[m];A=q[m];if(z){z.__data__=A;x[m]=z;y[m]=u[m]=p}else{y[m]={appendChild:w,__data__:A};x[m]=u[m]=p}}for(;m<
B;m++){y[m]={appendChild:w,__data__:q[m]};x[m]=u[m]=p}for(;m<t;m++){u[m]=n[m];y[m]=x[m]=p}}y.parentNode=x.parentNode=u.parentNode=n.parentNode;y.parentData=x.parentData=u.parentData=n.parentData;o.push(y);k.push(x);l.push(u)}var g=-1,i=a.length,j,o=[],k=[],l=[];if(typeof b=="string")b=ja(b);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=T(k);g.enter=function(n){return T(o).append(n)};g.exit=function(){return T(l)};return g};a.each=function(c){for(var b=
0,h=a.length;b<h;b++)for(var g=a[b],i=0,j=g.length;i<j;i++){var o=g[i];o&&c.call(o,o.__data__,i)}return a};a.attr=function(c,b){function h(){this.removeAttribute(c)}function g(){this.removeAttributeNS(c.space,c.local)}function i(){this.setAttribute(c,b)}function j(){this.setAttributeNS(c.space,c.local,b)}function o(){var l=b.apply(this,arguments);l==p?this.removeAttribute(c):this.setAttribute(c,l)}function k(){var l=b.apply(this,arguments);l==p?this.removeAttributeNS(c.space,c.local):this.setAttributeNS(c.space,
c.local,l)}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(b==p?c.local?g:h:typeof b=="function"?c.local?k:o:c.local?j:i)};a.style=function(c,b,h){function g(){this.style.removeProperty(c)}function i(){this.style.setProperty(c,b,h)}function j(){var o=b.apply(this,arguments);o==p?this.style.removeProperty(c):this.style.setProperty(c,o,h)}if(arguments.length<3)h=p;if(arguments.length<
2)return f(function(){return window.getComputedStyle(this,p).getPropertyValue(c)});return a.each(b==p?g:typeof b=="function"?j:i)};a.property=function(c,b){function h(){delete this[c]}function g(){this[c]=b}function i(){var j=b.apply(this,arguments);if(j==p)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(b==p?h:typeof b=="function"?i:g)};a.text=function(c){function b(){this.appendChild(document.createTextNode(c))}function h(){var g=
c.apply(this,arguments);g!=p&&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==p?a:a.each(typeof c=="function"?h:b)};a.html=function(c){function b(){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:b)};a.append=function(c){function b(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 d(c.local?h:b)};a.remove=function(){return d(function(c){var b=c.parentNode;b.removeChild(c);return b})};a.sort=function(c){c=ka.apply(this,arguments);for(var b=0,h=a.length;b<h;b++){var g=a[b];g.sort(c);for(var i=1,j=g.length,o=g[0];i<j;i++){var k=g[i];if(k){o&&o.parentNode.insertBefore(k,o.nextSibling);o=k}}}return a};a.on=function(c,b){c="on"+c;return a.each(function(h,g){this[c]=function(i){d3.event=
i;try{b.call(this,h,g)}finally{d3.event=p}}})};a.transition=function(c){return V(a,c)};a.call=C;return a}function ja(a){return{nodeKey:function(d){return d.getAttribute(a)},dataKey:function(d){return d[a]}}}function ka(a){arguments.length||(a=la);return function(d,e){return a(d&&d.__data__,e&&e.__data__)}}function la(a,d){return a<d?-1:a>d?1:0}d3.transition=U.transition;
function V(a,d){function e(k){var l=true,n=-1;a.each(function(){if(h[++n]!=2){var q=(k-g[n])/i[n];if(q>=1)q=1;else{l=false;if(q<0)return;if(!h[n]){h[n]=1;b.start.dispatch.apply(this,arguments)}}var w=o(q),m;for(m in c)c[m].call(this,w,n);if(q==1){h[n]=2;b.end.dispatch.apply(this,arguments)}}});return l}var f={},c={},b=d3.dispatch("start","end"),h=[],g=[],i=[],j,o=d3.ease("cubic-in-out");f.delay=function(k){var l=Infinity,n=-1;if(typeof k=="function")a.each(function(){var q=g[++n]=+k.apply(this,arguments);
if(q<l)l=q});else{l=+k;a.each(function(){g[++n]=l})}ma(e,l);return f};f.duration=function(k){var l=-1;if(typeof k=="function"){j=0;a.each(function(){var n=i[++l]=+k.apply(this,arguments);if(n>j)j=n})}else{j=+k;a.each(function(){i[++l]=j})}return f};f.ease=function(k){o=typeof k=="string"?d3.ease(k):k;return f};f.attrTween=function(k,l){function n(r,t){s[++B]=l.call(this,r,t,this.getAttribute(k))}function q(r,t){s[++B]=l.call(this,r,t,this.getAttributeNS(k.space,k.local))}function w(r,t){this.setAttribute(k,
s[t](r))}function m(r,t){this.setAttributeNS(k.space,k.local,s[t](r))}var s=[],B=-1;k=d3.ns.qualify(k);a.each(k.local?q:n);c["attr."+k]=k.local?m:w;return f};f.attr=function(k,l){return f.attrTween(k,W(l))};f.styleTween=function(k,l,n){var q=[],w=-1;a.each(function(m,s){q[++w]=l.call(this,m,s,window.getComputedStyle(this,p).getPropertyValue(k))});c["style."+k]=function(m,s){this.style.setProperty(k,q[s](m),n)};return f};f.style=function(k,l,n){return f.styleTween(k,W(l),n)};f.select=function(k){var l;
k=V(a.select(k),d).ease(o);l=-1;k.delay(function(){return g[++l]});l=-1;k.duration(function(){return i[++l]});return k};f.selectAll=function(k){var l;k=V(a.selectAll(k),d).ease(o);l=-1;k.delay(function(n,q){return g[q?l:++l]});l=-1;k.duration(function(n,q){return i[q?l:++l]});return k};f.each=function(k,l){b[k].add(l);return f};f.call=C;return f.delay(0).duration(250)}var X=p,Y=0,Z;
function ma(a,d){var e=Date.now(),f=false,c=e+d,b=X;if(isFinite(d)){for(;b;){if(b.i==a){b.h=e;b.delay=d;f=true}else{var h=b.h+b.delay;if(h<c)c=h}b=b.next}f||(X={i:a,h:e,delay:d,next:X});if(!Z){clearTimeout(Y);Y=setTimeout(na,Math.max(24,c-e))}}}function na(){Z=setInterval(oa,24);Y=0}function oa(){for(var a,d=Date.now(),e=X;e;){a=d-e.h;if(a>e.delay)e.k=e.i(a);e=e.next}a=p;for(d=X;d;)d=d.k?a?a.next=d.next:X=d.next:(a=d).next;a||(Z=clearInterval(Z))}
function T(a){function d(b){for(var c=[],h,g,i,j,n=0,p=a.length;n<p;n++){i=a[n];c.push(h=[]);h.parentNode=i.parentNode;h.parentData=i.parentData;for(var k=0,l=i.length;k<l;k++)if(j=i[k]){h.push(g=b(j));if(g&&!g.__data__)g.__data__=j.__data__}else h.push(o)}return T(c)}function e(b){for(var c=[],h,g,i,j=0,n=a.length;j<n;j++){g=a[j];for(var p=0,k=g.length;p<k;p++)if(i=g[p]){c.push(h=b(i));h.parentNode=i;h.parentData=i.__data__}}return T(c)}function f(b){for(var c=0,h=a.length;c<h;c++)for(var g=a[c],
i=0,j=g.length;i<j;i++){var n=g[i];if(n)return b.call(n,n.__data__,i)}return o}a.select=function(b){return d(function(c){return c.querySelector(b)})};a.selectAll=function(b){return e(function(c){return v(c.querySelectorAll(b))})};a.filter=function(b){for(var c=[],h,g,i,j=0,n=a.length;j<n;j++){g=a[j];c.push(h=[]);h.parentNode=g.parentNode;h.parentData=g.parentData;for(var p=0,k=g.length;p<k;p++)if((i=g[p])&&b.call(i,i.__data__,p))h.push(i)}return T(c)};a.data=function(b,c){function h(l,q){function r(ia){return l.parentNode.appendChild(ia)}
var m=0,s=l.length,z=q.length,t=Math.min(s,z),F=Math.max(s,z),w=[],x=[],u=[],y,A;if(c){t={};F=[];var C;A=q.length;for(m=0;m<s;m++){C=c.nodeKey(y=l[m]);if(C in t)u[A++]=l[m];else{t[C]=y;F.push(C)}}for(m=0;m<z;m++){if(y=t[C=c.dataKey(A=q[m])]){y.__data__=A;w[m]=y;x[m]=u[m]=o}else{x[m]={appendChild:r,__data__:A};w[m]=u[m]=o}delete t[C]}for(m=0;m<s;m++)if(F[m]in t)u[m]=l[m]}else{for(;m<t;m++){y=l[m];A=q[m];if(y){y.__data__=A;w[m]=y;x[m]=u[m]=o}else{x[m]={appendChild:r,__data__:A};w[m]=u[m]=o}}for(;m<
z;m++){x[m]={appendChild:r,__data__:q[m]};w[m]=u[m]=o}for(;m<F;m++){u[m]=l[m];x[m]=w[m]=o}}x.parentNode=w.parentNode=u.parentNode=l.parentNode;x.parentData=w.parentData=u.parentData=l.parentData;n.push(x);p.push(w);k.push(u)}var g=-1,i=a.length,j,n=[],p=[],k=[];if(typeof c=="string")c=ja(c);if(typeof b=="function")for(;++g<i;)h(j=a[g],b.call(j,j.parentData,g));else for(;++g<i;)h(j=a[g],b);g=T(p);g.enter=function(l){return T(n).append(l)};g.exit=function(){return T(k)};return g};a.each=function(b){for(var c=
0,h=a.length;c<h;c++)for(var g=a[c],i=0,j=g.length;i<j;i++){var n=g[i];n&&b.call(n,n.__data__,i)}return a};a.attr=function(b,c){function h(){this.removeAttribute(b)}function g(){this.removeAttributeNS(b.space,b.local)}function i(){this.setAttribute(b,c)}function j(){this.setAttributeNS(b.space,b.local,c)}function n(){var k=c.apply(this,arguments);k==o?this.removeAttribute(b):this.setAttribute(b,k)}function p(){var k=c.apply(this,arguments);k==o?this.removeAttributeNS(b.space,b.local):this.setAttributeNS(b.space,
b.local,k)}b=d3.ns.qualify(b);if(arguments.length<2)return f(b.local?function(){return this.getAttributeNS(b.space,b.local)}:function(){return this.getAttribute(b)});return a.each(c==o?b.local?g:h:typeof c=="function"?b.local?p:n:b.local?j:i)};a.style=function(b,c,h){function g(){this.style.removeProperty(b)}function i(){this.style.setProperty(b,c,h)}function j(){var n=c.apply(this,arguments);n==o?this.style.removeProperty(b):this.style.setProperty(b,n,h)}if(arguments.length<3)h=o;if(arguments.length<
2)return f(function(){return window.getComputedStyle(this,o).getPropertyValue(b)});return a.each(c==o?g:typeof c=="function"?j:i)};a.property=function(b,c){function h(){delete this[b]}function g(){this[b]=c}function i(){var j=c.apply(this,arguments);if(j==o)delete this[b];else this[b]=j}b=d3.ns.qualify(b);if(arguments.length<2)return f(function(){return this[b]});return a.each(c==o?h:typeof c=="function"?i:g)};a.text=function(b){function c(){this.appendChild(document.createTextNode(b))}function h(){var g=
b.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 b==o?a:a.each(typeof b=="function"?h:c)};a.html=function(b){function c(){this.innerHTML=b}function h(){this.innerHTML=b.apply(this,arguments)}if(arguments.length<1)return f(function(){return this.innerHTML});return a.each(typeof b=="function"?h:c)};a.append=function(b){function c(g){return g.appendChild(document.createElement(b))}
function h(g){return g.appendChild(document.createElementNS(b.space,b.local))}b=d3.ns.qualify(b);return d(b.local?h:c)};a.remove=function(){return d(function(b){var c=b.parentNode;c.removeChild(b);return c})};a.sort=function(b){b=ka.apply(this,arguments);for(var c=0,h=a.length;c<h;c++){var g=a[c];g.sort(b);for(var i=1,j=g.length,n=g[0];i<j;i++){var p=g[i];if(p){n&&n.parentNode.insertBefore(p,n.nextSibling);n=p}}}return a};a.on=function(b,c){b="on"+b;return a.each(function(h,g){this[b]=function(i){d3.event=
i;try{c.call(this,h,g)}finally{d3.event=o}}})};a.transition=function(b){return V(a,b)};a.call=B;return a}function ja(a){return{nodeKey:function(d){return d.getAttribute(a)},dataKey:function(d){return d[a]}}}function ka(a){arguments.length||(a=la);return function(d,e){return a(d&&d.__data__,e&&e.__data__)}}function la(a,d){return a<d?-1:a>d?1:0}d3.transition=U.transition;
function V(a,d){function e(k){var l=true,q=-1;a.each(function(){if(g[++q]!=2){var r=(k-i[q])/j[q],m,s=c[q];if(r<1){l=false;if(!(r<0)){if(!g[q]){g[q]=1;h.start.dispatch.apply(this,arguments);s=c[q]={};for(m in b)s[m]=b[m].apply(this,arguments)}r=p(r);for(m in b)s[m].call(this,r)}}else{for(m in b)s[m].call(this,1);g[q]=2;h.end.dispatch.apply(this,arguments)}}});return l}var f={},b={},c=[],h=d3.dispatch("start","end"),g=[],i=[],j=[],n,p=d3.ease("cubic-in-out");f.delay=function(k){var l=Infinity,q=-1;
if(typeof k=="function")a.each(function(){var r=i[++q]=+k.apply(this,arguments);if(r<l)l=r});else{l=+k;a.each(function(){i[++q]=l})}ma(e,l);return f};f.duration=function(k){var l=-1;if(typeof k=="function"){n=0;a.each(function(){var q=j[++l]=+k.apply(this,arguments);if(q>n)n=q})}else{n=+k;a.each(function(){j[++l]=n})}return f};f.ease=function(k){p=typeof k=="string"?d3.ease(k):k;return f};f.attrTween=function(k,l){function q(m,s){var z=l.call(this,m,s,this.getAttribute(k));return function(t){this.setAttribute(k,
z(t))}}function r(m,s){var z=l.call(this,m,s,this.getAttributeNS(k.space,k.local));return function(t){this.setAttributeNS(k.space,k.local,z(t))}}b["attr."+k]=k.local?r:q;return f};f.attr=function(k,l){return f.attrTween(k,W(l))};f.styleTween=function(k,l,q){b["style."+k]=function(r,m){l.call(this,r,m,window.getComputedStyle(this,o).getPropertyValue(k));return function(s){this.style.setProperty(k,m(s),q)}};return f};f.style=function(k,l,q){return f.styleTween(k,W(l),q)};f.select=function(k){var l;
k=V(a.select(k),d).ease(p);l=-1;k.delay(function(){return i[++l]});l=-1;k.duration(function(){return j[++l]});return k};f.selectAll=function(k){var l;k=V(a.selectAll(k),d).ease(p);l=-1;k.delay(function(q,r){return i[r?l:++l]});l=-1;k.duration(function(q,r){return j[r?l:++l]});return k};f.each=function(k,l){h[k].add(l);return f};f.call=B;return f.delay(0).duration(250)}var X=o,Y=0,Z;
function ma(a,d){var e=Date.now(),f=false,b=e+d,c=X;if(isFinite(d)){for(;c;){if(c.i==a){c.h=e;c.delay=d;f=true}else{var h=c.h+c.delay;if(h<b)b=h}c=c.next}f||(X={i:a,h:e,delay:d,next:X});if(!Z){clearTimeout(Y);Y=setTimeout(na,Math.max(24,b-e))}}}function na(){Z=setInterval(oa,24);Y=0}function oa(){for(var a,d=Date.now(),e=X;e;){a=d-e.h;if(a>e.delay)e.k=e.i(a);e=e.next}a=o;for(d=X;d;)d=d.k?a?a.next=d.next:X=d.next:(a=d).next;a||(Z=clearInterval(Z))}
function W(a){return typeof a=="function"?function(d,e,f){return d3.interpolate(f,a.call(this,d,e))}:function(d,e,f){return d3.interpolate(f,a)}}d3.scale={};
d3.scale.linear=function(){function a(j){return i((j-e)*h)}function d(j){var o=Math.min(e,f),k=Math.max(e,f),l=k-o,n=Math.pow(10,Math.floor(Math.log(l/j)/Math.LN10));j=j/(l/n);if(j<=0.15)n*=10;else if(j<=0.35)n*=5;else if(j<=0.75)n*=2;return{start:Math.ceil(o/n)*n,stop:Math.floor(k/n)*n+n*0.5,j:n}}var e=0,f=1,c=0,b=1,h=1/(f-e),g=(f-e)/(b-c),i=d3.interpolate(c,b);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)/(b-c);return a};
a.range=function(j){if(!arguments.length)return[c,b];c=j[0];b=j[1];g=(f-e)/(b-c);i=d3.interpolate(c,b);return a};a.ticks=function(j){j=d(j);return d3.range(j.start,j.stop,j.j)};a.tickFormat=function(j){return d3.format(",."+Math.max(0,-Math.floor(Math.log(d(j).j)/Math.LN10+0.01))+"f")};return a};
d3.scale.log=function(){function a(c){return Math.log(c)/Math.LN10}function d(c){return Math.pow(10,c)}function e(c){return f(a(c))}var f=d3.scale.linear();e.invert=function(c){return d(f.invert(c))};e.domain=function(c){if(!arguments.length)return f.domain().map(d);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(),b=Math.floor(c[0]),h=Math.ceil(c[1]),g=[];if(c.every(isFinite)){for(;++b<=h;)for(c=1;c<10;c++)g.push(d(b)*
c);g.push(d(b))}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 d(h){return Math.pow(h,b)}function e(h){return f(a(h))}var f=d3.scale.linear(),c=1,b=1/c;e.invert=function(h){return d(f.invert(h))};e.domain=function(h){if(!arguments.length)return f.domain().map(d);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;b=1/h;return e.domain(g)};return e};
d3.scale.linear=function(){function a(j){return i((j-e)*h)}function d(j){var n=Math.min(e,f),p=Math.max(e,f),k=p-n,l=Math.pow(10,Math.floor(Math.log(k/j)/Math.LN10));j=j/(k/l);if(j<=0.15)l*=10;else if(j<=0.35)l*=5;else if(j<=0.75)l*=2;return{start:Math.ceil(n/l)*l,stop:Math.floor(p/l)*l+l*0.5,j:l}}var e=0,f=1,b=0,c=1,h=1/(f-e),g=(f-e)/(c-b),i=d3.interpolate(b,c);a.invert=function(j){return(j-b)*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)/(c-b);return a};
a.range=function(j){if(!arguments.length)return[b,c];b=j[0];c=j[1];g=(f-e)/(c-b);i=d3.interpolate(b,c);return a};a.ticks=function(j){j=d(j);return d3.range(j.start,j.stop,j.j)};a.tickFormat=function(j){return d3.format(",."+Math.max(0,-Math.floor(Math.log(d(j).j)/Math.LN10+0.01))+"f")};return a};
d3.scale.log=function(){function a(b){return Math.log(b)/Math.LN10}function d(b){return Math.pow(10,b)}function e(b){return f(a(b))}var f=d3.scale.linear();e.invert=function(b){return d(f.invert(b))};e.domain=function(b){if(!arguments.length)return f.domain().map(d);f.domain(b.map(a));return e};e.range=function(){var b=f.range.apply(f,arguments);return arguments.length?e:b};e.ticks=function(){var b=f.domain(),c=Math.floor(b[0]),h=Math.ceil(b[1]),g=[];if(b.every(isFinite)){for(;++c<=h;)for(b=1;b<10;b++)g.push(d(c)*
b);g.push(d(c))}return g};e.tickFormat=function(){return function(b){return b.toPrecision(1)}};return e};
d3.scale.pow=function(){function a(h){return Math.pow(h,b)}function d(h){return Math.pow(h,c)}function e(h){return f(a(h))}var f=d3.scale.linear(),b=1,c=1/b;e.invert=function(h){return d(f.invert(h))};e.domain=function(h){if(!arguments.length)return f.domain().map(d);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 b;var g=e.domain();b=h;c=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(b){b=b in e?e[b]:e[b]=d.push(b)-1;return f[b%f.length]}var d=[],e={},f=[],c=0;a.domain=function(b){if(!arguments.length)return d;d=b;e={};for(var h=-1,g=-1,i=d.length;++h<i;){b=d[h];b in e||(e[b]=++g)}return a};a.range=function(b){if(!arguments.length)return f;f=b;return a};a.rangePoints=function(b,h){if(arguments.length<2)h=0;var g=b[0],i=b[1],j=(i-g)/(d.length-1+h);f=d.length==1?[(g+i)/2]:d3.range(g+j*h/2,i+j/2,j);c=0;return a};a.rangeBands=function(b,h){if(arguments.length<
2)h=0;var g=b[0],i=b[1],j=(i-g)/(d.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(pa)};d3.scale.category19=function(){return d3.scale.ordinal().range(qa)};d3.scale.category20=function(){return d3.scale.ordinal().range(ra)};
d3.scale.ordinal=function(){function a(c){c=c in e?e[c]:e[c]=d.push(c)-1;return f[c%f.length]}var d=[],e={},f=[],b=0;a.domain=function(c){if(!arguments.length)return d;d=c;e={};for(var h=-1,g=-1,i=d.length;++h<i;){c=d[h];c in e||(e[c]=++g)}return a};a.range=function(c){if(!arguments.length)return f;f=c;return a};a.rangePoints=function(c,h){if(arguments.length<2)h=0;var g=c[0],i=c[1],j=(i-g)/(d.length-1+h);f=d.length==1?[(g+i)/2]:d3.range(g+j*h/2,i+j/2,j);b=0;return a};a.rangeBands=function(c,h){if(arguments.length<
2)h=0;var g=c[0],i=c[1],j=(i-g)/(d.length+h);f=d3.range(g+j*h,i,j);b=j*(1-h);return a};a.rangeBand=function(){return b};return a};d3.scale.category10=function(){return d3.scale.ordinal().range(pa)};d3.scale.category19=function(){return d3.scale.ordinal().range(qa)};d3.scale.category20=function(){return d3.scale.ordinal().range(ra)};
var pa=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],qa=["#9c9ede","#7375b5","#4a5584","#cedb9c","#b5cf6b","#8ca252","#637939","#e7cb94","#e7ba52","#bd9e39","#8c6d31","#e7969c","#d6616b","#ad494a","#843c39","#de9ed6","#ce6dbd","#a55194","#7b4173"],ra=["#1f77b4","#aec7e8","#ff7f0e","#ffbb78","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5","#8c564b","#c49c94","#e377c2","#f7b6d2","#7f7f7f","#c7c7c7","#bcbd22","#dbdb8d","#17becf","#9edae5"];
d3.svg={};
d3.svg.arc=function(){function a(b){return b.endAngle}function d(b){return b.startAngle}function e(b){return b.outerRadius}function f(b){return b.innerRadius}function c(b){var h=f(b),g=e(b),i=d(b)-Math.PI/2,j=a(b)-Math.PI/2;b=j-i;var o=Math.cos(i);i=Math.sin(i);var k=Math.cos(j);j=Math.sin(j);return"M"+g*o+","+g*i+"A"+g+","+g+" 0 "+(b<Math.PI?"0":"1")+",1 "+g*k+","+g*j+"L"+h*k+","+h*j+"A"+h+","+h+" 0 "+(b<Math.PI?"0":"1")+",0 "+h*o+","+h*i+"Z"}c.innerRadius=function(b){f=typeof b=="function"?b:function(){return b};
return c};c.outerRadius=function(b){e=typeof b=="function"?b:function(){return b};return c};c.startAngle=function(b){d=typeof b=="function"?b:function(){return b};return c};c.endAngle=function(b){a=typeof b=="function"?b:function(){return b};return c};return c};
d3.svg.line=function(){function a(f){return f.y}function d(f){return f.x}function e(f){var c=[],b=0,h=f[0];for(c.push("M",d.call(this,h,b),",",a.call(this,h,b));h=f[++b];)c.push("L",d.call(this,h,b),",",a.call(this,h,b));return c.join("")}e.x=function(f){d=f;return e};e.y=function(f){a=f;return e};return e};
d3.svg.area=function(){function a(c){return c.y1}function d(c){return c.x}function e(c){var b=[],h=0,g=c[0];for(b.push("M",d.call(this,g,h),","+f+"V",a.call(this,g,h));g=c[++h];)b.push("L",d.call(this,g,h),",",a.call(this,g,h));b.push("V"+f+"Z");return b.join("")}var f=0;e.x=function(c){d=c;return e};e.y0=function(c){f=c;return e};e.y1=function(c){a=c;return e};return e};
d3.svg.arc=function(){function a(c){return c.endAngle}function d(c){return c.startAngle}function e(c){return c.outerRadius}function f(c){return c.innerRadius}function b(c){var h=f(c),g=e(c),i=d(c)-Math.PI/2,j=a(c)-Math.PI/2;c=j-i;var n=Math.cos(i);i=Math.sin(i);var p=Math.cos(j);j=Math.sin(j);return"M"+g*n+","+g*i+"A"+g+","+g+" 0 "+(c<Math.PI?"0":"1")+",1 "+g*p+","+g*j+"L"+h*p+","+h*j+"A"+h+","+h+" 0 "+(c<Math.PI?"0":"1")+",0 "+h*n+","+h*i+"Z"}b.innerRadius=function(c){f=typeof c=="function"?c:function(){return c};
return b};b.outerRadius=function(c){e=typeof c=="function"?c:function(){return c};return b};b.startAngle=function(c){d=typeof c=="function"?c:function(){return c};return b};b.endAngle=function(c){a=typeof c=="function"?c:function(){return c};return b};return b};
d3.svg.line=function(){function a(f){return f.y}function d(f){return f.x}function e(f){var b=[],c=0,h=f[0];for(b.push("M",d.call(this,h,c),",",a.call(this,h,c));h=f[++c];)b.push("L",d.call(this,h,c),",",a.call(this,h,c));return b.join("")}e.x=function(f){d=f;return e};e.y=function(f){a=f;return e};return e};
d3.svg.area=function(){function a(b){return b.y1}function d(b){return b.x}function e(b){var c=[],h=0,g=b[0];for(c.push("M",d.call(this,g,h),","+f+"V",a.call(this,g,h));g=b[++h];)c.push("L",d.call(this,g,h),",",a.call(this,g,h));c.push("V"+f+"Z");return c.join("")}var f=0;e.x=function(b){d=b;return e};e.y0=function(b){f=b;return e};e.y1=function(b){a=b;return e};return e};
d3.svg.mouse=function(a){var d=(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($){d.x=d3.event.pageX;d.y=d3.event.pageY}else{d.x=d3.event.clientX;d.y=d3.event.clientY}d=d.matrixTransform(a.getScreenCTM().inverse());return[d.x,d.y]};var $=/WebKit/.test(navigator.userAgent)?-1:0;})()

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

@ -1 +1 @@
d3 = {version: "0.15.0"}; // semver
d3 = {version: "0.15.1"}; // semver

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

@ -4,6 +4,7 @@ d3.transition = d3_root.transition;
function d3_transition(groups, name) {
var transition = {},
tweens = {},
interpolators = [],
event = d3.dispatch("start", "end"),
stage = [],
delay = [],
@ -14,22 +15,25 @@ function d3_transition(groups, name) {
function step(elapsed) {
var clear = true,
k = -1;
groups.each(function(d, i) {
groups.each(function() {
if (stage[++k] == 2) return; // ended
var t = (elapsed - delay[k]) / duration[k];
if (t >= 1) {
t = 1;
} else {
var t = (elapsed - delay[k]) / duration[k],
te, // ease(t)
tk, // tween key
ik = interpolators[k];
if (t < 1) {
clear = false;
if (t < 0) return;
if (!stage[k]) {
stage[k] = 1;
event.start.dispatch.apply(this, arguments);
ik = interpolators[k] = {};
for (tk in tweens) ik[tk] = tweens[tk].apply(this, arguments);
}
}
var te = ease(t);
for (var key in tweens) tweens[key].call(this, te, k);
if (t == 1) {
te = ease(t);
for (tk in tweens) ik[tk].call(this, te);
} else {
for (tk in tweens) ik[tk].call(this, 1);
stage[k] = 2;
event.end.dispatch.apply(this, arguments);
}
@ -78,33 +82,23 @@ function d3_transition(groups, name) {
};
transition.attrTween = function(name, tween) {
var interpolators = [],
k = -1;
/** @this {Element} */
function attrInterpolator(d, i) {
interpolators[++k] = tween.call(this, d, i,
this.getAttribute(name));
function attrTween(d, i) {
var f = tween.call(this, d, i, this.getAttribute(name));
return function(t) {
this.setAttribute(name, f(t));
};
}
/** @this {Element} */
function attrInterpolatorNS(d, i) {
interpolators[++k] = tween.call(this, d, i,
this.getAttributeNS(name.space, name.local));
function attrTweenNS(d, i) {
var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
return function(t) {
this.setAttributeNS(name.space, name.local, f(t));
};
}
/** @this {Element} */
function attrTween(t, k) {
this.setAttribute(name, interpolators[k](t));
}
/** @this {Element} */
function attrTweenNS(t, k) {
this.setAttributeNS(name.space, name.local, interpolators[k](t));
}
name = d3.ns.qualify(name);
groups.each(name.local ? attrInterpolatorNS : attrInterpolator);
tweens["attr." + name] = name.local ? attrTweenNS : attrTween;
return transition;
};
@ -114,21 +108,15 @@ function d3_transition(groups, name) {
};
transition.styleTween = function(name, tween, priority) {
var interpolators = [],
k = -1;
/** @this {Element} */
function styleInterpolator(d, i) {
interpolators[++k] = tween.call(this, d, i,
window.getComputedStyle(this, null).getPropertyValue(name));
function styleTween(d, i) {
var f = tween.call(this, d, i, window.getComputedStyle(this, null).getPropertyValue(name));
return function(t) {
this.style.setProperty(name, i(t), priority);
};
}
/** @this {Element} */
function styleTween(t, k) {
this.style.setProperty(name, interpolators[k](t), priority);
}
groups.each(styleInterpolator);
tweens["style." + name] = styleTween;
return transition;
};