The `property` action allows the setting of arbitrary properties on selected
element, such as the "value" of a form input. The `call` action invokes the
specified function, being passed the current selection (`this`) and optional
additional arguments. This makes it easier to have functions which define sets
of actions, and then apply those actions to any number of selections, similar
to mixin inheritance.
This commit is contained in:
Michael Bostock 2010-10-26 15:32:41 -07:00
Родитель d66522bb3d
Коммит b772929db9
7 изменённых файлов: 123 добавлений и 43 удалений

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

@ -10,6 +10,7 @@ SRC_FILES = \
src/start.js \
src/array.js \
src/blend.js \
src/call.js \
src/range.js \
src/ns.js \
src/dispatch.js \

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

@ -8,13 +8,19 @@ if (!Object.create) Object.create = function(o) {
};
(function(_) {
var d3 = _.d3 = {};
d3.version = "0.1.0"; // semver
d3.version = "0.1.1"; // semver
function d3_array(psuedoarray) {
return Array.prototype.slice.call(psuedoarray);
}
function d3_blend(arrays) {
return Array.prototype.concat.apply([], arrays);
}
function d3_call(callback, var_args) {
var_args = d3_array(arguments);
var_args[0] = this;
callback.apply(this, var_args);
return this;
}
/**
* @param {number} start
* @param {number=} stop
@ -1155,6 +1161,35 @@ function d3_selection(groups) {
? styleFunction : styleConstant));
};
groups.property = function(name, value) {
name = d3.ns.qualify(name);
// If no value is specified, return the first value.
if (arguments.length < 2) {
return first(function() {
return this[name];
});
}
function propertyNull() {
delete this[name];
}
function propertyConstant() {
this[name] = value;
}
function propertyFunction() {
var x = value.apply(this, arguments);
if (x == null) delete this[name];
else this[name] = x;
}
return groups.each(value == null
? propertyNull : (typeof value == "function"
? propertyFunction : propertyConstant));
};
groups.text = function(value) {
// If no value is specified, return the first value.
@ -1252,6 +1287,8 @@ function d3_selection(groups) {
return d3_transition(groups, name);
};
groups.call = d3_call;
return groups;
}
@ -1414,6 +1451,8 @@ function d3_transition(groups, name) {
return transition;
};
transition.call = d3_call;
return transition.delay(0).duration(250);
}
var d3_timer_queue = null,

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

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

6
src/call.js Normal file
Просмотреть файл

@ -0,0 +1,6 @@
function d3_call(callback, var_args) {
var_args = d3_array(arguments);
var_args[0] = this;
callback.apply(this, var_args);
return this;
}

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

@ -269,6 +269,35 @@ function d3_selection(groups) {
? styleFunction : styleConstant));
};
groups.property = function(name, value) {
name = d3.ns.qualify(name);
// If no value is specified, return the first value.
if (arguments.length < 2) {
return first(function() {
return this[name];
});
}
function propertyNull() {
delete this[name];
}
function propertyConstant() {
this[name] = value;
}
function propertyFunction() {
var x = value.apply(this, arguments);
if (x == null) delete this[name];
else this[name] = x;
}
return groups.each(value == null
? propertyNull : (typeof value == "function"
? propertyFunction : propertyConstant));
};
groups.text = function(value) {
// If no value is specified, return the first value.
@ -366,6 +395,8 @@ function d3_selection(groups) {
return d3_transition(groups, name);
};
groups.call = d3_call;
return groups;
}

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

@ -1,3 +1,3 @@
(function(_) {
var d3 = _.d3 = {};
d3.version = "0.1.0"; // semver
d3.version = "0.1.1"; // semver

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

@ -150,5 +150,7 @@ function d3_transition(groups, name) {
return transition;
};
transition.call = d3_call;
return transition.delay(0).duration(250);
}