From e88fca3d0e52524860005ae5b67477232509704d Mon Sep 17 00:00:00 2001 From: Masayuki Tanaka Date: Fri, 8 Nov 2013 16:35:05 +0900 Subject: [PATCH] Bind onenter/onleave to root svg --- c3.js | 8 ++++---- c3.min.js | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/c3.js b/c3.js index e4eeefe..1d17c7a 100644 --- a/c3.js +++ b/c3.js @@ -863,7 +863,9 @@ // Define svgs svg = d3.select(__bindto).append("svg") .attr("width", width + margin.left + margin.right) - .attr("height", height + margin.top + margin.bottom); + .attr("height", height + margin.top + margin.bottom) + .on('mouseenter', __onenter) + .on('mouseleave', __onleave); // Define defs defs = svg.append("defs"); @@ -986,9 +988,7 @@ // Define g for chart area main.append('g') .attr("clip-path", clipPath) - .attr('class', 'chart') - .on('mouseenter', __onenter) - .on('mouseleave', __onleave); + .attr('class', 'chart'); // Cover whole with rects for events main.select('.chart').append("g") diff --git a/c3.min.js b/c3.min.js index 78f85df..9430dfc 100644 --- a/c3.min.js +++ b/c3.min.js @@ -18,11 +18,11 @@ Y["string"===typeof a?a:a.id]}function Cc(a){return mb(a)?a.values:[]}function T c,d){Ec(a,c);g.select(".selected-circles-"+c.id).selectAll(".selected-circle-"+d).data([c]).enter().append("circle").attr("class",function(a){return"selected-circle selected-circle-"+d}).attr("cx",e?X:W).attr("cy",e?W:X).attr("stroke",function(){return Q(c.id)}).attr("r",1.4*Ga).transition().duration(100).attr("r",Ga)}function nb(a,c,d){Fc(a,c);g.select(".selected-circles-"+c.id).selectAll(".selected-circle-"+d).transition().duration(100).attr("r",0).remove()}function Xb(a,c,d,b){a?Wb(c,d,b):nb(c, d,b)}function Gc(a,c,d){}function Yb(a,c,d){}function Zb(a,c,d,b){}function Hc(a,c,d,b){var f,g,n="M",k,m,h,r,t,s=[];if(l(b))for(f=0;f=g;g+=diffx2)n+=b(a[f-1],a[f],g,h);return n}function ob(a){var c=k.data.targets=da(a),d,b;N();S();m.domain(d3.extent(a.map(function(a){return a.x}))); -x.domain(B(c,"y"));O.domain(B(c,"y2"));V.domain(m.domain());Qa.domain(x.domain());Ra.domain(O.domain());M.ticks(10>a.length?a.length:10);ga.ticks(Ic).outerTickSize(0).tickFormat(Jc);Sa.ticks(Kc).outerTickSize(0).tickFormat(Lc);P=m.domain();E.x(V);ja&&F.x(m);Ha=d3.select(ya).append("svg").attr("width",t+H+C).attr("height",s+v+U);Ya=Ha.append("defs");Ya.append("clipPath").attr("id",pb).append("rect").attr("y",v).attr("width",t).attr("height",s-v);Ya.append("clipPath").attr("id","xaxis-clip").append("rect").attr("x", --1).attr("y",-1).attr("width",t+2).attr("height",40);Ya.append("clipPath").attr("id","yaxis-clip").append("rect").attr("x",-H+1).attr("y",v-1).attr("width",H).attr("height",s-v+2);g=Ha.append("g").attr("transform",I.main);w=qa?Ha.append("g").attr("transform",I.context):null;ra=sa?Ha.append("g").attr("transform",I.legend):null;Z=d3.select(ya).style("position","relative").append("div").style("position","absolute").style("width","30%").style("z-index","10").style("visibility","hidden");g.append("g").attr("class", -"x axis").attr("clip-path",e?"":"url(#xaxis-clip)").attr("transform",I.x).call(e?ga:M);g.append("g").attr("class","y axis").attr("clip-path",e?"url(#yaxis-clip)":"").call(e?M:ga).append("text").attr("transform","rotate(-90)").attr("dy","1.4em").attr("dx","-.8em").style("text-anchor","end").text(Mc);Fb&&g.append("g").attr("class","y2 axis").attr("transform",I.y2).call(Sa);d=g.append("g").attr("clip-path",Ia).attr("class","grid");$b&&d.append("g").attr("class","xgrids");qb&&(b=d.append("g").attr("class", -"xgrid-lines").selectAll(".xgrid-line").data(qb).enter().append("g").attr("class","xgrid-line"),b.append("line").attr("class",function(a){return""+a["class"]}),b.append("text").attr("class",function(a){return""+a["class"]}).attr("text-anchor","end").attr("transform",e?"":"rotate(-90)").attr("dx",e?0:-v).attr("dy",-6).text(function(a){return a.text}));Nc&&d.append("g").attr("class","xgrid-focus").append("line").attr("class","xgrid-focus").attr("x1",e?0:-10).attr("x2",e?t:-10).attr("y1",e?-10:v).attr("y2", -e?-10:s);ac&&d.append("g").attr("class","ygrids");rb&&d.append("g").attr("class","ygrid-lines").selectAll("ygrid-line").data(rb).enter().append("line").attr("class",function(a){return"ygrid-line "+a["class"]});g.append("g").attr("clip-path",Ia).attr("class","regions");g.append("g").attr("clip-path",Ia).attr("class","chart").on("mouseenter",Oc).on("mouseleave",Pc);g.select(".chart").append("g").attr("class","event-rects").style("fill-opacity",0).style("cursor",ja?"ew-resize":null).selectAll(".event-rects").data(a).enter().append("rect").attr("class", +x.domain(B(c,"y"));O.domain(B(c,"y2"));V.domain(m.domain());Qa.domain(x.domain());Ra.domain(O.domain());M.ticks(10>a.length?a.length:10);ga.ticks(Ic).outerTickSize(0).tickFormat(Jc);Sa.ticks(Kc).outerTickSize(0).tickFormat(Lc);P=m.domain();E.x(V);ja&&F.x(m);Ha=d3.select(ya).append("svg").attr("width",t+H+C).attr("height",s+v+U).on("mouseenter",Mc).on("mouseleave",Nc);Ya=Ha.append("defs");Ya.append("clipPath").attr("id",pb).append("rect").attr("y",v).attr("width",t).attr("height",s-v);Ya.append("clipPath").attr("id", +"xaxis-clip").append("rect").attr("x",-1).attr("y",-1).attr("width",t+2).attr("height",40);Ya.append("clipPath").attr("id","yaxis-clip").append("rect").attr("x",-H+1).attr("y",v-1).attr("width",H).attr("height",s-v+2);g=Ha.append("g").attr("transform",I.main);w=qa?Ha.append("g").attr("transform",I.context):null;ra=sa?Ha.append("g").attr("transform",I.legend):null;Z=d3.select(ya).style("position","relative").append("div").style("position","absolute").style("width","30%").style("z-index","10").style("visibility", +"hidden");g.append("g").attr("class","x axis").attr("clip-path",e?"":"url(#xaxis-clip)").attr("transform",I.x).call(e?ga:M);g.append("g").attr("class","y axis").attr("clip-path",e?"url(#yaxis-clip)":"").call(e?M:ga).append("text").attr("transform","rotate(-90)").attr("dy","1.4em").attr("dx","-.8em").style("text-anchor","end").text(Oc);Fb&&g.append("g").attr("class","y2 axis").attr("transform",I.y2).call(Sa);d=g.append("g").attr("clip-path",Ia).attr("class","grid");$b&&d.append("g").attr("class","xgrids"); +qb&&(b=d.append("g").attr("class","xgrid-lines").selectAll(".xgrid-line").data(qb).enter().append("g").attr("class","xgrid-line"),b.append("line").attr("class",function(a){return""+a["class"]}),b.append("text").attr("class",function(a){return""+a["class"]}).attr("text-anchor","end").attr("transform",e?"":"rotate(-90)").attr("dx",e?0:-v).attr("dy",-6).text(function(a){return a.text}));Pc&&d.append("g").attr("class","xgrid-focus").append("line").attr("class","xgrid-focus").attr("x1",e?0:-10).attr("x2", +e?t:-10).attr("y1",e?-10:v).attr("y2",e?-10:s);ac&&d.append("g").attr("class","ygrids");rb&&d.append("g").attr("class","ygrid-lines").selectAll("ygrid-line").data(rb).enter().append("line").attr("class",function(a){return"ygrid-line "+a["class"]});g.append("g").attr("clip-path",Ia).attr("class","regions");g.append("g").attr("clip-path",Ia).attr("class","chart");g.select(".chart").append("g").attr("class","event-rects").style("fill-opacity",0).style("cursor",ja?"ew-resize":null).selectAll(".event-rects").data(a).enter().append("rect").attr("class", function(a,c){return"event-rect event-rect-"+c}).style("cursor",$&&ka?"pointer":null).on("mouseover",function(a,c){if(!Za){var d=k.data.targets.map(function(a){return ca(a.values[c])}),b,p;if(0",b,e,f;for(b=0;b"+f+""+e+"";return c+""}),Sc=b(["tooltip","init","show"],!1),ta=b(["tooltip","init","x"],0),fc=b(["tooltip","init","position"],{top:"0px",left:"50px"}),pb=ya.replace("#","")+"-clip",Ia="url(#"+pb+")",D="timeseries"===ic,ha="categorized"===ic,ub=null,Za=!1,tb=!1,ea=sa?40:0,ia=d3.time.format(Yc).parse,Q=function(a,c){var b=[],e=null!==c?c:"#1f77b4 #ff7f0e #2ca02c #d62728 #9467bd #8c564b #e377c2 #7f7f7f #bcbd22 #17becf".split(" "); return function(c){if(c in a)return a[c];0<=b.indexOf(c)||b.push(c);return e[b.indexOf(c)%e.length]}}(Zc,$c),oc=function(){var a=[[d3.time.format("%Y/%-m/%-d"),function(){return!0}],[d3.time.format("%-m/%-d"),function(a){return a.getMonth()}],[d3.time.format("%-m/%-d"),function(a){return 1!=a.getDate()}],[d3.time.format("%-m/%-d"),function(a){return a.getDay()&&1!=a.getDate()}],[d3.time.format("%I %p"),function(a){return a.getHours()}],[d3.time.format("%I:%M"),function(a){return a.getMinutes()}],