diff --git a/d3.js b/d3.js index f084a51a..75f9541a 100644 --- a/d3.js +++ b/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) { diff --git a/d3.min.js b/d3.min.js index 8140e302..ad27bfe7 100644 --- a/d3.min.js +++ b/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(;++db;)f.push(d);else for(;(d=a+e*++c)b;)f.push(d);else for(;(d=a+e*++c)=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=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=^]))?([+\- ])?(#)?(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}c360)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;lb?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(mn)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(ge.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;mb?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(lp)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(he.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