diff --git a/Makefile b/Makefile index d01bc8a..5135e50 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,7 @@ JS_FILES = \ src/models/sparklinePlus.js \ src/models/stackedArea.js \ src/models/stackedAreaWithLegend.js \ - src/charts/cumulativeLineChartDaily.js \ + src/charts/cumulativeLineChart.js \ src/charts/lineChart.js \ src/charts/lineChartDaily.js \ src/charts/stackedAreaChart.js \ diff --git a/nv.d3.js b/nv.d3.js index fe37490..0b2b596 100644 --- a/nv.d3.js +++ b/nv.d3.js @@ -250,6 +250,18 @@ nv.utils.windowSize = function() { }; + +// Easy way to bind multiple functions to window.onresize +// TODO: give a way to remove a function after its bound, other than removing alkl of them +nv.utils.windowResize = function(fun){ + var oldresize = window.onresize; + + window.onresize = function(e) { + oldresize(e); + fun(e); + } +} + nv.models.axis = function() { //Default Settings var scale = d3.scale.linear(), @@ -408,7 +420,7 @@ nv.models.bar = function() { .attr("dy", ".91em") .attr("text-anchor", "start") .text(title); - gEnter = gEnter.append('g').attr('class', 'wrap').attr('id','wrap-'+id).append('g'); + gEnter = gEnter.append('g').attr('class', 'nvd3 wrap').attr('id','wrap-'+id).append('g'); @@ -648,19 +660,9 @@ nv.models.historicalBar = function() { }); }); -/* - var wrap = parent.selectAll('g.wrap').data([data]); - var gEnter = wrap.enter(); - gEnter = gEnter.append('g').attr('class', 'wrap').attr('id','wrap-'+id).append('g'); - var wrap = parent.selectAll('g.wrap').data([data]); - var wrapEnter = wrap.enter().append('g').attr('class', 'bar'); - var gEnter = wrapEnter.append('g'); - gEnter = gEnter.append('g').attr('class', 'wrap').attr('id','wrap-'+id).append('g'); - */ - - var wrap = d3.select(this).selectAll('g.d3bar').data([data[0].values]); - var wrapEnter = wrap.enter().append('g').attr('class', 'd3bar'); + var wrap = d3.select(this).selectAll('g.wrap.bar').data([data[0].values]); + var wrapEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 bar'); var gEnter = wrapEnter.append('g'); gEnter.append('g').attr('class', 'bars'); @@ -1152,6 +1154,7 @@ nv.models.cumulativeLine = function() { getX = function(d) { return d.x }, getY = function(d) { return d.y }, id = Math.floor(Math.random() * 10000), //Create semi-unique ID incase user doesn't select one + showRescaleToggle = true, rescaleY = true; var x = d3.scale.linear(), @@ -1224,7 +1227,7 @@ nv.models.cumulativeLine = function() { var wrap = d3.select(this).classed('chart-' + id, true).selectAll('g.wrap').data([series]); - var gEnter = wrap.enter().append('g').attr('class', 'wrap d3cumulativeLine').append('g'); + var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 cumulativeLine').append('g'); gEnter.append('g').attr('class', 'x axis'); gEnter.append('g').attr('class', 'y axis'); @@ -1248,11 +1251,13 @@ nv.models.cumulativeLine = function() { .attr('transform', 'translate(' + (width/2 - margin.left) + ',' + (-margin.top) +')') .call(legend); - controls.width(140).color(['#444', '#444', '#444']); - g.select('.controlsWrap') - .datum(controlsData) - .attr('transform', 'translate(0,' + (-margin.top) +')') - .call(controls); + if (showRescaleToggle) { + controls.width(140).color(['#444', '#444', '#444']); + g.select('.controlsWrap') + .datum(controlsData) + .attr('transform', 'translate(0,' + (-margin.top) +')') + .call(controls); + } var linesWrap = g.select('.linesWrap') @@ -1442,6 +1447,7 @@ nv.models.cumulativeLine = function() { chart.color = function(_) { if (!arguments.length) return color; color = _; + legend.color(_); return chart; }; @@ -1452,6 +1458,12 @@ nv.models.cumulativeLine = function() { return chart; }; + chart.showRescaleToggle = function(_) { + if (!arguments.length) return showRescaleToggle; + showRescaleToggle = _; + return chart; + }; + // Expose the x-axis' tickFormat method. //chart.xAxis = {}; @@ -1479,7 +1491,7 @@ nv.models.legend = function() { selection.each(function(data) { var wrap = d3.select(this).selectAll('g.legend').data([data]); - var gEnter = wrap.enter().append('g').attr('class', 'legend').append('g'); + var gEnter = wrap.enter().append('g').attr('class', 'nvd3 legend').append('g'); var g = wrap.select('g') @@ -1604,8 +1616,8 @@ nv.models.line = function() { y0 = y0 || scatter.yScale(); - var wrap = d3.select(this).selectAll('g.d3line').data([data]); - var wrapEnter = wrap.enter().append('g').attr('class', 'd3line'); + var wrap = d3.select(this).selectAll('g.wrap.line').data([data]); + var wrapEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 line'); var defsEnter = wrapEnter.append('defs'); var gEnter = wrapEnter.append('g'); var g = wrap.select('g') @@ -1822,8 +1834,8 @@ nv.models.linePlusBar = function() { }).filter(function(d,i) { return !data[i].disabled && data[i].bar })) - var wrap = d3.select(this).selectAll('g.wrap').data([data]); - var gEnter = wrap.enter().append('g').attr('class', 'wrap d3linePlusBar').append('g'); + var wrap = d3.select(this).selectAll('g.wrap.linePlusBar').data([data]); + var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 linePlusBar').append('g'); gEnter.append('g').attr('class', 'x axis'); gEnter.append('g').attr('class', 'y1 axis'); @@ -1996,6 +2008,12 @@ nv.models.linePlusBar = function() { return chart; }; + chart.color = function(_) { + if (!arguments.length) return color; + color = _; + legend.color(_); + return chart; + }; return chart; } @@ -2071,7 +2089,7 @@ nv.models.lineWithFocus = function() { var wrap = d3.select(this).selectAll('g.wrap').data([data]); - var gEnter = wrap.enter().append('g').attr('class', 'wrap d3lineWithFocus').append('g'); + var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 lineWithFocus').append('g'); gEnter.append('g').attr('class', 'focus'); gEnter.append('g').attr('class', 'context'); @@ -2399,8 +2417,8 @@ nv.models.lineWithLegend = function() { - var wrap = d3.select(this).selectAll('g.wrap').data([data]); - var gEnter = wrap.enter().append('g').attr('class', 'wrap d3lineWithLegend').append('g'); + var wrap = d3.select(this).selectAll('g.wrap.lineWithLegend').data([data]); + var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 lineWithLegend').append('g'); gEnter.append('g').attr('class', 'x axis'); gEnter.append('g').attr('class', 'y axis'); @@ -2597,8 +2615,8 @@ nv.models.multiBar = function() { - var wrap = d3.select(this).selectAll('g.d3multibar').data([data]); - var wrapEnter = wrap.enter().append('g').attr('class', 'd3multibar'); + var wrap = d3.select(this).selectAll('g.wrap.multibar').data([data]); + var wrapEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 multibar'); var defsEnter = wrapEnter.append('defs'); var gEnter = wrapEnter.append('g'); @@ -2918,8 +2936,8 @@ nv.models.multiBarWithLegend = function() { - var wrap = d3.select(this).selectAll('g.wrap').data([data]); - var gEnter = wrap.enter().append('g').attr('class', 'wrap d3lineWithLegend').append('g'); + var wrap = d3.select(this).selectAll('g.wrap.multiBarWithLegend').data([data]); + var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 multiBarWithLegend').append('g'); gEnter.append('g').attr('class', 'x axis'); gEnter.append('g').attr('class', 'y axis'); @@ -3404,8 +3422,8 @@ nv.models.scatter = function() { - var wrap = d3.select(this).selectAll('g.d3scatter').data([data]); - var wrapEnter = wrap.enter().append('g').attr('class', 'd3scatter'); + var wrap = d3.select(this).selectAll('g.wrap.scatter').data([data]); + var wrapEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 scatter'); var defsEnter = wrapEnter.append('defs'); var gEnter = wrapEnter.append('g'); var g = wrap.select('g') @@ -3737,8 +3755,8 @@ nv.models.scatterWithLegend = function() { - var wrap = d3.select(this).selectAll('g.wrap').data([data]); - var gEnter = wrap.enter().append('g').attr('class', 'wrap d3scatterWithLegend').append('g'); + var wrap = d3.select(this).selectAll('g.wrap.scatterWithLegend').data([data]); + var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 scatterWithLegend').append('g'); gEnter.append('g').attr('class', 'legendWrap'); gEnter.append('g').attr('class', 'x axis'); @@ -3998,7 +4016,7 @@ nv.models.sparkline = function() { var wrap = d3.select(this).selectAll('g.sparkline').data([data]); - var gEnter = wrap.enter().append('g').attr('class', 'sparkline'); + var gEnter = wrap.enter().append('g').attr('class', 'nvd3 sparkline'); //var gEnter = svg.enter().append('svg').append('g'); //gEnter.append('g').attr('class', 'sparkline') gEnter @@ -4126,7 +4144,7 @@ nv.models.sparklinePlus = function() { var gEnter = wrap.enter().append('g') //var gEnter = svg.enter().append('svg').append('g'); - var sparklineWrap = gEnter.append('g').attr('class', 'sparklineplus') + var sparklineWrap = gEnter.append('g').attr('class', 'nvd3 sparklineplus') .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')') //.style('fill', function(d, i){ return d.color || color[i % 10] }) .style('stroke', function(d, i){ return d.color || color[i % 10] }); @@ -4294,8 +4312,8 @@ nv.models.stackedArea = function() { - var wrap = d3.select(this).selectAll('g.d3stackedarea').data([dataCopy]); - var wrapEnter = wrap.enter().append('g').attr('class', 'd3stackedarea'); + var wrap = d3.select(this).selectAll('g.wrap.stackedarea').data([dataCopy]); + var wrapEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 stackedarea'); var defsEnter = wrapEnter.append('defs'); var gEnter = wrapEnter.append('g'); var g = wrap.select('g'); @@ -4575,8 +4593,8 @@ nv.models.stackedAreaWithLegend = function() { .color(color) - var wrap = d3.select(this).selectAll('g.wrap').data([data]); - var gEnter = wrap.enter().append('g').attr('class', 'wrap d3stackedWithLegend').append('g'); + var wrap = d3.select(this).selectAll('g.wrap.stackedAreaWithLegend').data([data]); + var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 stackedWithLegend').append('g'); gEnter.append('g').attr('class', 'x axis'); gEnter.append('g').attr('class', 'y axis'); @@ -4796,6 +4814,9 @@ nv.models.stackedAreaWithLegend = function() { // and every series starts at the same value and is 1 to 1 // In other words, values at the same index, need to have the same x value // for all series +// +// TODO: now that tooltips don't use jquery, could likely get rid of the charts +// collection by simply adding some optional functionality to the model nv.charts.cumulativeLineChartDaily = function() { var selector = null, data = [], @@ -4848,7 +4869,7 @@ nv.charts.cumulativeLineChartDaily = function() { // This should always only be called once, then update should be used after, // in which case should consider the 'd3 way' and merge this with update, - // but simply do this on enter... should try anoter example that way + // but simply do this on enter... will try another example the d3 way chart.build = function() { if (!selector || !data.length) return chart; //do nothing if you have nothing to work with @@ -4875,6 +4896,7 @@ nv.charts.cumulativeLineChartDaily = function() { graph.dispatch.on('tooltipShow', showTooltip); graph.dispatch.on('tooltipHide', nv.tooltip.cleanup); + //TODO: fix issue of multiple graphs failing on resize //TODO: create resize queue and have nv core handle resize instead of binding all to window resize window.onresize = function() { @@ -4960,6 +4982,7 @@ nv.charts.cumulativeLineChartDaily = function() { }; + // This is an attempt to make an extremely easy to use chart that is ready to go, // basically the chart models with the extra glue... Queuing, tooltips, automatic resize, etc. // I may make these more specific, like 'time series line with month end data points', etc. diff --git a/nv.d3.min.js b/nv.d3.min.js index 77d498d..70ce477 100644 --- a/nv.d3.min.js +++ b/nv.d3.min.js @@ -1,3 +1,3 @@ -(function(){function c(a,b,c){return function(d,e,f){var g=a(d),h=[];g1)while(gl+k&&(o=l-h-5);break;case"w":n=b[0]+e,o=b[1]-h/2,n+i>j&&(n=b[0]-i-e),ol+k&&(o=l-h-5);break;case"n":n=b[0]-i/2,o=b[1]+e,nj&&(n=j-i-5),o+h>l+k&&(o=b[1]-h-e);break;case"s":n=b[0]-i/2,o=b[1]-h-e,nj&&(n=j-i-5),l>o&&(o=b[1]+20)}f.style.left=n+"px",f.style.top=o+"px",f.style.opacity=1;return f},b.cleanup=function(){var a=document.getElementsByClassName("nvtooltip"),b=[];while(a.length)b.push(a[0]),a[0].style.transitionDelay="0 !important",a[0].style.opacity=0,a[0].className="nvtooltip-pending-removal";setTimeout(function(){while(b.length){var a=b.pop();a.parentNode.removeChild(a)}},500)}}(),a.utils.windowSize=function(){var a={width:640,height:480};document.body&&document.body.offsetWidth&&(a.width=document.body.offsetWidth,a.height=document.body.offsetHeight),document.compatMode=="CSS1Compat"&&document.documentElement&&document.documentElement.offsetWidth&&(a.width=document.documentElement.offsetWidth,a.height=document.documentElement.offsetHeight),window.innerWidth&&window.innerHeight&&(a.width=window.innerWidth,a.height=window.innerHeight);return a},a.models.axis=function(){function e(f){f.each(function(e){(d.orient()=="top"||d.orient()=="bottom")&&d.ticks(Math.abs(a.range()[1]-a.range()[0])/100);var f=d3.select(this).selectAll("text.axislabel").data([b||null]);f.exit().remove();switch(d.orient()){case"top":f.enter().append("text").attr("class","axislabel").attr("text-anchor","middle").attr("y",0),f.attr("x",a.range()[1]/2);break;case"right":f.enter().append("text").attr("class","axislabel").attr("transform","rotate(90)").attr("y",-40),f.attr("x",-a.range()[0]/2);break;case"bottom":f.enter().append("text").attr("class","axislabel").attr("text-anchor","middle").attr("y",25),f.attr("x",a.range()[1]/2);break;case"left":f.enter().append("text").attr("class","axislabel").attr("transform","rotate(-90)").attr("y",-40),f.attr("x",-a.range()[0]/2)}f.text(function(a){return a}),d3.transition(d3.select(this)).call(d),c&&d3.select(this).selectAll("line.tick").filter(function(a){return!parseFloat(Math.round(a*1e5)/1e6)}).classed("zero",!0)});return e}var a=d3.scale.linear(),b=null,c=!0,d=d3.svg.axis().scale(a).orient("bottom");d3.rebind(e,d,"orient","ticks","tickValues","tickSubdivide","tickSize","tickPadding","tickFormat"),d3.rebind(e,a,"domain","range","rangeBand","rangeBands"),e.axisLabel=function(a){if(!arguments.length)return b;b=a;return e},e.highlightZero=function(a){if(!arguments.length)return c;c=a;return e},e.scale=function(b){if(!arguments.length)return a;a=b,d.scale(a),d3.rebind(e,a,"domain","range","rangeBand","rangeBands");return e};return e},a.models.bar=function(){function q(r){r.each(function(q){l.domain(q.map(function(a,b){return a[e]})).rangeRoundBands([0,b-a.left-a.right],.1);var r=d3.min(q,function(a){return a[j]}),s=d3.max(q,function(a){return a[j]}),t=Math.max(-r,s),u=-t;r>=0&&(u=0),m.domain([u,t]).range([c-a.top-a.bottom,0]).nice(),n.ticks(b/100),o.ticks(c/36).tickSize(-(b-a.right-a.left),0);var v=d3.select(this).on("click",function(a,b){p.chartClick({data:a,index:b,pos:d3.event,id:h})}),w=v.selectAll("g.wrap").data([q]),z=w.enter();z.append("text").attr("class","title").attr("dy",".91em").attr("text-anchor","start").text(k),z=z.append("g").attr("class","wrap").attr("id","wrap-"+h).append("g"),z.append("g").attr("class","x axis"),z.append("g").attr("class","y axis"),z.append("g").attr("class","bars"),w.attr("width",b).attr("height",c);var A=w.select("g").attr("transform","translate("+a.left+","+a.top+")"),B=w.select(".bars").selectAll(".bar").data(function(a){return a});B.exit().remove();var C=B.enter().append("svg:rect").attr("class",function(a){return a[j]<0?"bar negative":"bar positive"}).attr("fill",function(a,b){return i(b)}).attr("x",0).on("mouseover",function(a,b){d3.select(this).classed("hover",!0),p.tooltipShow({label:a[e],value:a[j],data:a,index:b,pos:[d3.event.pageX,d3.event.pageY],id:h})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),p.tooltipHide({label:a[e],value:a[j],data:a,index:b,id:h})}).on("click",function(a,b){p.elementClick({label:a[e],value:a[j],data:a,index:b,pos:d3.event,id:h}),d3.event.stopPropagation()}).on("dblclick",function(a,b){p.elementDblClick({label:a[e],value:a[j],data:a,index:b,pos:d3.event,id:h}),d3.event.stopPropagation()});B.attr("class",function(a){return a[j]<0?"bar negative":"bar positive"}).attr("transform",function(a,b){return"translate("+l(a[e])+",0)"}).attr("width",l.rangeBand).order().transition().duration(d).attr("y",function(a){return m(Math.max(0,a[j]))}).attr("height",function(a){return Math.abs(m(a[j])-m(0))}),A.select(".x.axis").attr("transform","translate(0,"+m.range()[0]+")").call(n),f&&A.select(".x.axis").selectAll("text").attr("text-anchor","start").attr("transform",function(a){return"rotate(35)translate("+this.getBBox().height/2+","+"0"+")"}),g||(A.select(".x.axis").selectAll("text").attr("fill","rgba(0,0,0,0)"),A.select(".x.axis").selectAll("line").attr("style","opacity: 0")),A.select(".y.axis").call(o)});return q}var a={top:20,right:10,bottom:80,left:60},b=960,c=500,d=500,e="label",f=!0,g=!0,h=Math.floor(Math.random()*1e4),i=d3.scale.category20(),j="y",k="",l=d3.scale.ordinal(),m=d3.scale.linear(),n=d3.svg.axis().scale(l).orient("bottom"),o=d3.svg.axis().scale(m).orient("left"),p=d3.dispatch("chartClick","elementClick","elementDblClick","tooltipShow","tooltipHide");q.margin=function(b){if(!arguments.length)return a;a=b;return q},q.width=function(c){if(!arguments.length)return b;a.left+a.right+20>c?b=a.left+a.right+20:b=c;return q},q.height=function(b){if(!arguments.length)return c;a.top+a.bottom+20>b?c=a.top+a.bottom+20:c=b;return q},q.animate=function(a){if(!arguments.length)return d;d=a;return q},q.labelField=function(a){if(!arguments.length)return e;e=a;return q},q.dataField=function(a){if(!arguments.length)return j;j=a;return q},q.id=function(a){if(!arguments.length)return h;h=a;return q},q.rotatedLabel=function(a){if(!arguments.length)return f;f=a;return q},q.showLabels=function(a){if(!arguments.length)return g;g=a;return q},q.title=function(a){if(!arguments.length)return k;k=a;return q},q.xaxis={},d3.rebind(q.xaxis,n,"tickFormat"),q.yaxis={},d3.rebind(q.yaxis,o,"tickFormat"),q.dispatch=p;return q},a.models.historicalBar=function(){function r(g){g.each(function(g){var h=b-a.left-a.right,o=c-a.top-a.bottom;m.domain(k||d3.extent(g[0].values,e)).range([0,h]),n.domain(l||d3.extent(g[0].values,f)).range([o,0]);var p=d3.select(this).on("click",function(a,b){q.chartClick({data:a,index:b,pos:d3.event,id:d})}),r=d3.select(this).selectAll("g.d3bar").data([g[0].values]),s=r.enter().append("g").attr("class","d3bar"),t=s.append("g");t.append("g").attr("class","bars"),r.attr("width",b).attr("height",c);var u=r.select("g").attr("transform","translate("+a.left+","+a.top+")");s.append("defs").append("clipPath").attr("id","chart-clip-path-"+d).append("rect"),r.select("#chart-clip-path-"+d+" rect").attr("width",h).attr("height",o),t.attr("clip-path",i?"url(#chart-clip-path-"+d+")":"");var v=t.append("g").attr("class","shiftWrap"),w=r.select(".bars").selectAll(".bar").data(function(a){return a});w.exit().remove();var z=w.enter().append("svg:rect").attr("class",function(a,b){return f(a,b)<0?"bar negative":"bar positive"}).attr("fill",function(a,b){return j[0]}).attr("x",0).attr("y",function(a,b){return n(Math.max(0,f(a,b)))}).attr("height",function(a,b){return Math.abs(n(f(a,b))-n(0))}).on("mouseover",function(a,b){d3.select(this).classed("hover",!0),q.elementMouseover({point:a,series:g[0],pos:[m(e(a,b)),n(f(a,b))],pointIndex:b,seriesIndex:0,e:d3.event})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),q.elementMouseout({point:a,series:g[0],pointIndex:b,seriesIndex:0,e:d3.event})}).on("click",function(a,b){q.elementClick({value:f(a,b),data:a,index:b,pos:[m(e(a,b)),n(f(a,b))],e:d3.event,id:d}),d3.event.stopPropagation()}).on("dblclick",function(a,b){q.elementDblClick({value:f(a,b),data:a,index:b,pos:[m(e(a,b)),n(f(a,b))],e:d3.event,id:d}),d3.event.stopPropagation()});w.attr("class",function(a,b){return f(a,b)<0?"bar negative":"bar positive"}).attr("transform",function(a,b){return"translate("+(m(e(a,b))-m(.5))+",0)"}).attr("width",m(.9)),d3.transition(w).attr("y",function(a,b){return n(Math.max(0,f(a,b)))}).attr("height",function(a,b){return Math.abs(n(f(a,b))-n(0))})});return r}var a={top:0,right:0,bottom:0,left:0},b=960,c=500,d=Math.floor(Math.random()*1e4),e=function(a){return a.x},f=function(a){return a.y},g=[],h=[],i=!0,j=d3.scale.category20().range(),k,l,m=d3.scale.linear(),n=d3.scale.linear(),o=d3.svg.axis().scale(m).orient("bottom"),p=d3.svg.axis().scale(n).orient("left"),q=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout");r.dispatch=q,r.x=function(a){if(!arguments.length)return e;e=a;return r},r.y=function(a){if(!arguments.length)return f;f=a;return r},r.margin=function(b){if(!arguments.length)return a;a=b;return r},r.width=function(c){if(!arguments.length)return b;a.left+a.right+20>c?b=a.left+a.right+20:b=c;return r},r.height=function(b){if(!arguments.length)return c;a.top+a.bottom+20>b?c=a.top+a.bottom+20:c=b;return r},r.xDomain=function(a){if(!arguments.length)return k;k=a;return r},r.yDomain=function(a){if(!arguments.length)return l;l=a;return r},r.forceX=function(a){if(!arguments.length)return g;g=a;return r},r.forceY=function(a){if(!arguments.length)return h;h=a;return r},r.clipEdge=function(a){if(!arguments.length)return i;i=a;return r},r.color=function(a){if(!arguments.length)return j;j=a;return r},r.id=function(a){if(!arguments.length)return d;d=a;return r};return r},a.models.bullet=function(){function k(a){a.each(function(a,k){var l=d.call(this,a,k).slice().sort(d3.descending),m=e.call(this,a,k).slice().sort(d3.descending),n=f.call(this,a,k).slice().sort(d3.descending),o=d3.select(this),p=d3.scale.linear().domain([0,Math.max(l[0],m[0],n[0])]).range(b?[g,0]:[0,g]),q=this.__chart__||d3.scale.linear().domain([0,Infinity]).range(p.range());this.__chart__=p;var r=function(a){return Math.abs(q(a)-q(0))},s=function(a){return Math.abs(p(a)-p(0))},t=o.selectAll("rect.range").data(l);t.enter().append("rect").attr("class",function(a,b){return"range s"+b}).attr("width",r).attr("height",h).attr("x",b?q:0).on("mouseover",function(a,b){j.elementMouseover({value:a,label:b<=0?"Maximum":b>1?"Minimum":"Mean",pos:[p(a),h/2]})}).on("mouseout",function(a,b){j.elementMouseout({value:a,label:b<=0?"Minimum":b>=1?"Maximum":"Mean"})}).transition().duration(c).attr("width",s).attr("x",b?p:0),t.transition().duration(c).attr("x",b?p:0).attr("width",s).attr("height",h);var u=o.selectAll("rect.measure").data(n);u.enter().append("rect").attr("class",function(a,b){return"measure s"+b}).attr("width",r).attr("height",h/3).attr("x",b?q:0).attr("y",h/3).on("mouseover",function(a){j.elementMouseover({value:a,label:"Current",pos:[p(a),h/2]})}).on("mouseout",function(a){j.elementMouseout({value:a,label:"Current"})}).transition().duration(c).attr("width",s).attr("x",b?p:0),u.transition().duration(c).attr("width",s).attr("height",h/3).attr("x",b?p:0).attr("y",h/3);var v=o.selectAll("path.markerTriangle").data(m),w=h/6;v.enter().append("path").attr("class","markerTriangle").attr("transform",function(a){return"translate("+q(a)+","+h/2+")"}).attr("d","M0,"+w+"L"+w+","+ -w+" "+ -w+","+ -w+"Z").on("mouseover",function(a,b){j.elementMouseover({value:a,label:"Previous",pos:[p(a),h/2]})}).on("mouseout",function(a,b){j.elementMouseout({value:a,label:"Previous"})}),v.transition().duration(c).attr("transform",function(a){return"translate("+p(a)+","+h/2+")"}),v.exit().remove();var x=i||p.tickFormat(8),y=o.selectAll("g.tick").data(p.ticks(8),function(a){return this.textContent||x(a)}),z=y.enter().append("g").attr("class","tick").attr("transform",function(a){return"translate("+q(a)+",0)"}).style("opacity",1e-6);z.append("line").attr("y1",h).attr("y2",h*7/6),z.append("text").attr("text-anchor","middle").attr("dy","1em").attr("y",h*7/6).text(x),z.transition().duration(c).attr("transform",function(a){return"translate("+p(a)+",0)"}).style("opacity",1);var A=y.transition().duration(c).attr("transform",function(a){return"translate("+p(a)+",0)"}).style("opacity",1);A.select("line").attr("y1",h).attr("y2",h*7/6),A.select("text").attr("y",h*7/6),y.exit().transition().duration(c).attr("transform",function(a){return"translate("+p(a)+",0)"}).style("opacity",1e-6).remove()}),d3.timer.flush()}var a="left",b=!1,c=0,d=function(a){return a.ranges},e=function(a){return a.markers},f=function(a){return a.measures},g=380,h=30,i=null,j=d3.dispatch("elementMouseover","elementMouseout");k.dispatch=j,k.orient=function(c){if(!arguments.length)return a;a=c,b=a=="right"||a=="bottom";return k},k.ranges=function(a){if(!arguments.length)return d;d=a;return k},k.markers=function(a){if(!arguments.length)return e;e=a;return k},k.measures=function(a){if(!arguments.length)return f;f=a;return k},k.width=function(a){if(!arguments.length)return g;g=a;return k},k.height=function(a){if(!arguments.length)return h;h=a;return k},k.tickFormat=function(a){if(!arguments.length)return i;i=a;return k},k.duration=function(a){if(!arguments.length)return c;c=a;return k};return k},a.models.cumulativeLine=function(){function A(a,b){return b.map(function(b,c){var d=h(b.values[a],a);return{key:b.key,values:b.values.map(function(a,b){return{x:g(a,b),y:(h(a,b)-d)/(1+d)}}),disabled:b.disabled,hover:b.hover}})}function z(a){a.each(function(f){var g=c(),h=d(),w=g-b.left-b.right,x=h-b.top-b.bottom,y=A(t.i,f),B=y.filter(function(a){return!j||!a.disabled}).map(function(a){return a.values});k.domain(d3.extent(d3.merge(B),function(a){return a.x})).range([0,w]),l.domain([0,f[0].values.length-1]).range([0,w]).clamp(!0),m.domain(d3.extent(d3.merge(B),function(a){return a.y})).range([x,0]),r.width(w).height(x).color(f.map(function(a,b){return a.color||e[b%10]}).filter(function(a,b){return!f[b].disabled}));var C=d3.select(this).classed("chart-"+i,!0).selectAll("g.wrap").data([y]),D=C.enter().append("g").attr("class","wrap d3cumulativeLine").append("g");D.append("g").attr("class","x axis"),D.append("g").attr("class","y axis"),D.append("g").attr("class","linesWrap"),D.append("g").attr("class","legendWrap"),D.append("g").attr("class","controlsWrap"),b.top=p.height();var E=C.select("g").attr("transform","translate("+b.left+","+b.top+")");p.width(g/2-b.right),E.select(".legendWrap").datum(f).attr("transform","translate("+(g/2-b.left)+","+ -b.top+")").call(p),q.width(140).color(["#444","#444","#444"]),E.select(".controlsWrap").datum(u).attr("transform","translate(0,"+ -b.top+")").call(q);var F=E.select(".linesWrap").datum(y.filter(function(a){return!a.disabled}));d3.transition(F).call(r);var G=F.selectAll(".indexLine").data([t]);G.enter().append("rect").attr("class","indexLine").attr("width",3).attr("x",-2).attr("fill","red").attr("fill-opacity",.5).call(v),G.attr("transform",function(a){return"translate("+l(a.i)+",0)"}).attr("height",x),n.domain(k.domain()).range(k.range()).ticks(g/100).tickSize(-x,0),E.select(".x.axis").attr("transform","translate(0,"+m.range()[0]+")"),d3.transition(E.select(".x.axis")).call(n),o.domain(m.domain()).range(m.range()).ticks(h/36).tickSize(-w,0),d3.transition(E.select(".y.axis")).call(o),p.dispatch.on("legendClick",function(b,c){b.disabled=!b.disabled,f.filter(function(a){return!a.disabled}).length||f.map(function(a){a.disabled=!1,C.selectAll(".series").classed("disabled",!1);return a}),a.transition().call(z)}),q.dispatch.on("legendClick",function(b,c){b.disabled=!b.disabled,j=!b.disabled,a.transition().call(z)}),r.dispatch.on("elementMouseover.tooltip",function(a){s.tooltipShow({point:a.point,series:a.series,pos:[a.pos[0]+b.left,a.pos[1]+b.top],seriesIndex:a.seriesIndex,pointIndex:a.pointIndex})}),r.dispatch.on("elementMouseout.tooltip",function(a){s.tooltipHide(a)})});return z}function y(a,b){d3.transition(d3.select(".chart-"+i)).call(z)}function x(a,b){a.x+=d3.event.dx,a.i=Math.round(l.invert(a.x)),d3.select(this).attr("transform","translate("+l(a.i)+",0)")}function w(a,b){}var b={top:30,right:20,bottom:30,left:60},c=function(){return 960},d=function(){return 500},e=d3.scale.category20().range(),f=function(){return 2.5},g=function(a){return a.x},h=function(a){return a.y},i=Math.floor(Math.random()*1e4),j=!0,k=d3.scale.linear(),l=d3.scale.linear(),m=d3.scale.linear(),n=a.models.axis().scale(k).orient("bottom"),o=a.models.axis().scale(m).orient("left"),p=a.models.legend().height(30),q=a.models.legend().height(30),r=a.models.line(),s=d3.dispatch("tooltipShow","tooltipHide"),t={i:0,x:0},u=[{key:"Re-scale y-axis"}],v=d3.behavior.drag().on("dragstart",w).on("drag",x).on("dragend",y);z.dispatch=s,z.x=function(a){if(!arguments.length)return g;g=a;return z},z.y=function(a){if(!arguments.length)return h;h=a;return z},z.margin=function(a){if(!arguments.length)return b;b=a;return z},z.width=function(a){if(!arguments.length)return c;c=d3.functor(a);return z},z.height=function(a){if(!arguments.length)return d;d=d3.functor(a);return z},z.color=function(a){if(!arguments.length)return e;e=a;return z},z.dotRadius=function(a){if(!arguments.length)return f;f=d3.functor(a),r.dotRadius=a;return z},z.xAxis=n,z.yAxis=o;return z},a.models.legend=function(){function f(g){g.each(function(f){var g=d3.select(this).selectAll("g.legend").data([f]),h=g.enter().append("g").attr("class","legend").append("g"),i=g.select("g").attr("transform","translate("+a.left+","+a.top+")"),j=i.selectAll(".series").data(function(a){return a}),k=j.enter().append("g").attr("class","series").on("mouseover",function(a,b){e.legendMouseover(a,b)}).on("mouseout",function(a,b){e.legendMouseout(a,b)}).on("click",function(a,b){e.legendClick(a,b)});k.append("circle").style("fill",function(a,b){return a.color||d[b%20]}).style("stroke",function(a,b){return a.color||d[b%20]}).style("stroke-width",2).attr("r",5),k.append("text").text(function(a){return a.key}).attr("text-anchor","start").attr("dy",".32em").attr("dx","8"),j.classed("disabled",function(a){return a.disabled}),j.exit().remove();var l=5,m=5,n=0,o;j.attr("transform",function(c,d){var e=d3.select(this).select("text").node().getComputedTextLength()+28;o=m,bn&&(n=m);return"translate("+o+","+l+")"}),i.attr("transform","translate("+(b-a.right-n)+","+a.top+")"),c=a.top+a.bottom+l+15});return f}var a={top:5,right:0,bottom:5,left:10},b=400,c=20,d=d3.scale.category20().range(),e=d3.dispatch("legendClick","legendMouseover","legendMouseout");f.dispatch=e,f.margin=function(b){if(!arguments.length)return a;a=b;return f},f.width=function(a){if(!arguments.length)return b;b=a;return f},f.height=function(a){if(!arguments.length)return c;c=a;return f},f.color=function(a){if(!arguments.length)return d;d=a;return f};return f},a.models.line=function(){function p(a){a.each(function(a){var o=c-b.left-b.right,p=d-b.top-b.bottom;m=m||j.xScale(),n=n||j.yScale();var q=d3.select(this).selectAll("g.d3line").data([a]),r=q.enter().append("g").attr("class","d3line"),s=r.append("defs"),t=r.append("g"),u=q.select("g");r.append("g").attr("class","scatterWrap");var v=q.select(".scatterWrap").datum(a);t.append("g").attr("class","groups"),j.id(f).width(o).height(p),d3.transition(v).call(j),k=j.xScale(),l=j.yScale(),q.attr("transform","translate("+b.left+","+b.top+")"),s.append("clipPath").attr("id","edge-clip-"+f).append("rect"),q.select("#edge-clip-"+f+" rect").attr("width",o).attr("height",p),u.attr("clip-path",i?"url(#edge-clip-"+f+")":""),v.attr("clip-path",i?"url(#edge-clip-"+f+")":"");var w=q.select(".groups").selectAll(".group").data(function(a){return a},function(a){return a.key});w.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),d3.transition(w.exit()).style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),w.attr("class",function(a,b){return"group series-"+b}).classed("hover",function(a){return a.hover}).style("fill",function(a,b){return e[b%20]}).style("stroke",function(a,b){return e[b%20]}),d3.transition(w).style("stroke-opacity",1).style("fill-opacity",.5);var z=w.selectAll("path").data(function(a,b){return[a.values]});z.enter().append("path").attr("d",d3.svg.line().x(function(a,b){return m(g(a,b))}).y(function(a,b){return n(h(a,b))})),d3.transition(w.exit().selectAll("path")).attr("d",d3.svg.line().x(function(a,b){return k(g(a,b))}).y(function(a,b){return l(h(a,b))})).remove(),d3.transition(z).attr("d",d3.svg.line().x(function(a,b){return k(g(a,b))}).y(function(a,b){return l(h(a,b))})),m=k.copy(),n=l.copy()});return p}var b={top:0,right:0,bottom:0,left:0},c=960,d=500,e=d3.scale.category20().range(),f=Math.floor(Math.random()*1e4),g=function(a){return a.x},h=function(a){return a.y},i=!1,j=a.models.scatter().size(2.5).sizeDomain([2.5]),k,l,m,n,o;p.dispatch=j.dispatch,d3.rebind(p,j,"interactive","size","xScale","yScale","zScale","xDomain","yDomain","sizeDomain","forceX","forceY","forceSize","clipVoronoi","clipRadius"),p.margin=function(a){if(!arguments.length)return b;b=a;return p},p.width=function(a){if(!arguments.length)return c;c=a;return p},p.height=function(a){if(!arguments.length)return d;d=a;return p},p.x=function(a){if(!arguments.length)return g;g=a,j.x(a);return p},p.y=function(a){if(!arguments.length)return h;h=a,j.y(a);return p},p.clipEdge=function(a){if(!arguments.length)return i;i=a;return p},p.color=function(a){if(!arguments.length)return e;e=a,j.color(a);return p},p.id=function(a){if(!arguments.length)return f;f=a;return p};return p},a.models.linePlusBar=function(){function s(a){a.each(function(e){var t=c(),u=d(),v=t-b.left-b.right,w=u-b.top-b.bottom,y=e.filter(function(a){return!a.disabled&&a.bar}).map(function(a){return a.values.map(function(a,b){return{x:f(a,b),y:g(a,b)}})}),z=e.filter(function(a){return!a.disabled&&!a.bar}).map(function(a){return a.values.map(function(a,b){return{x:f(a,b),y:g(a,b)}})});j.domain(d3.extent(d3.merge(y.concat(z)),function(a){return a.x})).range([0,v]),k.domain(d3.extent(d3.merge(y),function(a){return a.y})).range([w,0]),l.domain(d3.extent(d3.merge(z),function(a){return a.y})).range([w,0]),q.width(v).height(w).color(e.map(function(a,b){return a.color||h[b%10]}).filter(function(a,b){return!e[b].disabled&&!e[b].bar})),r.width(v).height(w).color(e.map(function(a,b){return a.color||h[b%10]}).filter(function(a,b){return!e[b].disabled&&e[b].bar}));var A=d3.select(this).selectAll("g.wrap").data([e]),B=A.enter().append("g").attr("class","wrap d3linePlusBar").append("g");B.append("g").attr("class","x axis"),B.append("g").attr("class","y1 axis"),B.append("g").attr("class","y2 axis"),B.append("g").attr("class","barsWrap"),B.append("g").attr("class","linesWrap"),B.append("g").attr("class","legendWrap"),p.dispatch.on("legendClick",function(b,c){b.disabled=!b.disabled,e.filter(function(a){return!a.disabled}).length||e.map(function(a){a.disabled=!1,A.selectAll(".series").classed("disabled",!1);return a}),a.transition().call(s)}),q.dispatch.on("elementMouseover.tooltip",function(a){i.tooltipShow({point:a.point,series:a.series,pos:[a.pos[0]+b.left,a.pos[1]+b.top],seriesIndex:a.seriesIndex,pointIndex:a.pointIndex})}),q.dispatch.on("elementMouseout.tooltip",function(a){i.tooltipHide(a)}),r.dispatch.on("elementMouseover.tooltip",function(a){a.pos=[a.pos[0]+b.left,a.pos[1]+b.top],i.tooltipShow(a)}),r.dispatch.on("elementMouseout.tooltip",function(a){i.tooltipHide(a)}),b.top=p.height();var C=A.select("g").attr("transform","translate("+b.left+","+b.top+")");p.width(t/2-b.right),C.select(".legendWrap").datum(e.map(function(a){a.key=a.key+(a.bar?" (left axis)":" (right axis)");return a})).attr("transform","translate("+(t/2-b.left)+","+ -b.top+")").call(p);var D=e.filter(function(a){return!a.disabled&&a.bar}),E=C.select(".barsWrap").datum(D.length?D:[{values:[]}]),F=C.select(".linesWrap").datum(e.filter(function(a){return!a.disabled&&!a.bar}));d3.transition(E).call(r),d3.transition(F).call(q),m.domain(j.domain()).range(j.range()).ticks(t/100).tickSize(-w,0),C.select(".x.axis").attr("transform","translate(0,"+k.range()[0]+")"),d3.transition(C.select(".x.axis")).call(m),n.domain(k.domain()).range(k.range()).ticks(u/36).tickSize(-v,0),d3.transition(C.select(".y1.axis")).call(n),o.domain(l.domain()).range(l.range()).ticks(u/36).tickSize(y.length?0:-v,0),C.select(".y2.axis").attr("transform","translate("+j.range()[1]+",0)"),d3.transition(C.select(".y2.axis")).call(o)});return s}var b={top:30,right:60,bottom:50,left:60},c=function(){return 960},d=function(){return 500},e=function(){return 2.5},f=function(a){return a.x},g=function(a){return a.y},h=d3.scale.category20().range(),i=d3.dispatch("tooltipShow","tooltipHide"),j=d3.scale.linear(),k=d3.scale.linear(),l=d3.scale.linear(),m=a.models.axis().scale(j).orient("bottom"),n=a.models.axis().scale(k).orient("left"),o=a.models.axis().scale(l).orient("right"),p=a.models.legend().height(30),q=a.models.line(),r=a.models.historicalBar();s.dispatch=i,s.legend=p,s.lines=q,s.bars=r,s.xAxis=m,s.yAxis1=n,s.yAxis2=o,s.x=function(a){if(!arguments.length)return f;f=a,q.x(a),r.x(a);return s},s.y=function(a){if(!arguments.length)return g;g=a,q.y(a),r.y(a);return s},s.margin=function(a){if(!arguments.length)return b;b=a;return s},s.width=function(a){if(!arguments.length)return c;c=d3.functor(a);return s},s.height=function(a){if(!arguments.length)return d;d=d3.functor(a);return s},s.dotRadius=function(a){if(!arguments.length)return e;e=d3.functor(a),q.dotRadius=a;return s};return s},a.models.lineWithFocus=function(){function y(a){a.each(function(k){function L(){var a=x.empty()?o.domain():d3.extent(d3.merge(z).filter(function(a){return i(a)>=x.extent()[0]&&i(a)<=x.extent()[1]}),j);typeof a[0]=="undefined"&&(a=o.domain()),l.domain(x.empty()?n.domain():x.extent()),m.domain(a),u.xDomain(l.domain()),u.yDomain(m.domain())}function K(){L(),H.call(u),D.select(".x.axis").call(p),D.select(".y.axis").call(q)}var z=k.filter(function(a){return!a.disabled}).map(function(a){return a.values}),A=d-b.left-b.right,B=f-b.top-b.bottom,C=g-c.top-c.bottom;n.domain(d3.extent(d3.merge(z),i)).range([0,A]),o.domain(d3.extent(d3.merge(z),j)).range([C,0]),l.domain(x.empty()?n.domain():x.extent()).range([0,A]),m.domain(o.domain()).range([B,0]),x.on("brush",K),u.width(A).height(B).color(k.map(function(a,b){return a.color||h[b%10]}).filter(function(a,b){return!k[b].disabled})),v.width(A).height(C).color(k.map(function(a,b){return a.color||h[b%10]}).filter(function(a,b){return!k[b].disabled})),L();var D=d3.select(this).selectAll("g.wrap").data([k]),E=D.enter().append("g").attr("class","wrap d3lineWithFocus").append("g");E.append("g").attr("class","focus"),E.append("g").attr("class","context"),E.append("g").attr("class","legendWrap");var F=D.select("g");t.width(d/2-b.right),F.select(".legendWrap").datum(k).attr("transform","translate("+A/2+",0)").call(t),b.top=t.height();var G=F.select(".focus").attr("transform","translate("+b.left+","+b.top+")");E.select(".focus").append("g").attr("class","x axis"),E.select(".focus").append("g").attr("class","y axis"),E.select(".focus").append("g").attr("class","focusLines");var H=G.select(".focusLines").datum(k.filter(function(a){return!a.disabled}));d3.transition(H).call(u),p.domain(l.domain()).range(l.range()).ticks(d/100).tickSize(-B,0),G.select(".x.axis").attr("transform","translate(0,"+m.range()[0]+")"),d3.transition(F.select(".x.axis")).call(p),q.domain(m.domain()).range(m.range()).ticks(e/36).tickSize(-A,0),d3.transition(F.select(".y.axis")).call(q);var I=F.select(".context").attr("transform","translate("+c.left+","+f+")");E.select(".context").append("g").attr("class","x2 axis"),E.select(".context").append("g").attr("class","y2 axis"),E.select(".context").append("g").attr("class","contextLines"),E.select(".context").append("g").attr("class","x brush").attr("class","x brush").call(x).selectAll("rect").attr("y",-5).attr("height",g+4);var J=I.select(".contextLines").datum(k.filter(function(a){return!a.disabled}));d3.transition(J).call(v),r.domain(n.domain()).range(n.range()).ticks(d/100).tickSize(-C,0),I.select(".x2.axis").attr("transform","translate(0,"+o.range()[0]+")"),d3.transition(I.select(".x2.axis")).call(r),s.domain(o.domain()).range(o.range()).ticks(C/24).tickSize(-A,0),I.select(".y2.axis"),d3.transition(I.select(".y2.axis")).call(s),t.dispatch.on("legendClick",function(b,c){b.disabled=!b.disabled,k.filter(function(a){return!a.disabled}).length||k.map(function(a){a.disabled=!1,D.selectAll(".series").classed("disabled",!1);return a}),a.transition().call(y)}),u.dispatch.on("elementMouseover.tooltip",function(a){w.tooltipShow({point:a.point,series:a.series,pos:[a.pos[0]+b.left,a.pos[1]+b.top],seriesIndex:a.seriesIndex,pointIndex:a.pointIndex})}),u.dispatch.on("elementMouseout.tooltip",function(a){w.tooltipHide(a)})});return y}var b={top:30,right:20,bottom:30,left:60},c={top:0,right:20,bottom:20,left:60},d=960,e=500,f=400,g=100,h=d3.scale.category20().range(),i=function(a){return a.x},j=function(a){return a.y},k=Math.floor(Math.random()*1e4),l=d3.scale.linear(),m=d3.scale.linear(),n=d3.scale.linear(),o=d3.scale.linear(),p=a.models.axis().scale(l).orient("bottom"),q=a.models.axis().scale(m).orient("left"),r=a.models.axis().scale(n).orient("bottom"),s=a.models.axis().scale(o).orient("left"),t=a.models.legend().height(30),u=a.models.line().clipEdge(!0),v=a.models.line().interactive(!1),w=d3.dispatch("tooltipShow","tooltipHide"),x=d3.svg.brush().x(n);y.dispatch=w,y.x=function(a){if(!arguments.length)return i;i=a,u.x(a),v.x(a);return y},y.y=function(a){if(!arguments.length)return j;j=a,u.y(a),v.y(a);return y},y.margin=function(a){if(!arguments.length)return b;b=a;return y},y.width=function(a){if(!arguments.length)return d;d=a;return y},y.height=function(a){if(!arguments.length)return e;e=a,f=a-g;return y},y.contextHeight=function(a){if(!arguments.length)return g;g=a,f=e-a;return y},y.id=function(a){if(!arguments.length)return k;k=a;return y},y.xTickFormat=function(a){if(!arguments.length)return l.tickFormat();p.tickFormat(a),r.tickFormat(a);return y},y.yTickFormat=function(a){if(!arguments.length)return m.tickFormat();q.tickFormat(a),s.tickFormat(a);return y},y.xAxis=p,y.yAxis=q;return y},a.models.lineWithLegend=function(){function m(a){a.each(function(n){var o=n.filter(function(a){return!a.disabled}).map(function(a){return a.values.map(function(a,b){return{x:k.x()(a,b),y:k.y()(a,b)}})}),p=c()-b.left-b.right,q=d()-b.top-b.bottom;f.domain(d3.extent(d3.merge(o).map(function(a){return a.x}).concat(k.forceX))).range([0,p]),g.domain(d3.extent(d3.merge(o).map(function(a){return a.y}).concat(k.forceY))).range([q,0]),k.width(p).height(q).xDomain(f.domain()).yDomain(g.domain()).color(n.map(function(a,b){return a -.color||e[b%10]}).filter(function(a,b){return!n[b].disabled}));var r=d3.select(this).selectAll("g.wrap").data([n]),s=r.enter().append("g").attr("class","wrap d3lineWithLegend").append("g");s.append("g").attr("class","x axis"),s.append("g").attr("class","y axis"),s.append("g").attr("class","linesWrap"),s.append("g").attr("class","legendWrap"),b.top=j.height();var t=r.select("g").attr("transform","translate("+b.left+","+b.top+")");j.width(p/2),t.select(".legendWrap").datum(n).attr("transform","translate("+p/2+","+ -b.top+")").call(j);var u=t.select(".linesWrap").datum(n.filter(function(a){return!a.disabled}));d3.transition(u).call(k),h.domain(f.domain()).range(f.range()).ticks(p/100).tickSize(-q,0),t.select(".x.axis").attr("transform","translate(0,"+g.range()[0]+")"),d3.transition(t.select(".x.axis")).call(h),i.domain(g.domain()).range(g.range()).ticks(q/36).tickSize(-p,0),d3.transition(t.select(".y.axis")).call(i),j.dispatch.on("legendClick",function(b,c){b.disabled=!b.disabled,n.filter(function(a){return!a.disabled}).length||n.map(function(a){a.disabled=!1,r.selectAll(".series").classed("disabled",!1);return a}),a.transition().call(m)}),k.dispatch.on("elementMouseover.tooltip",function(a){l.tooltipShow({point:a.point,series:a.series,pos:[a.pos[0]+b.left,a.pos[1]+b.top],seriesIndex:a.seriesIndex,pointIndex:a.pointIndex})}),k.dispatch.on("elementMouseout.tooltip",function(a){l.tooltipHide(a)})});return m}var b={top:30,right:20,bottom:50,left:60},c=function(){return 960},d=function(){return 500},e=d3.scale.category20().range(),f=d3.scale.linear(),g=d3.scale.linear(),h=a.models.axis().scale(f).orient("bottom"),i=a.models.axis().scale(g).orient("left"),j=a.models.legend().height(30),k=a.models.line(),l=d3.dispatch("tooltipShow","tooltipHide");m.dispatch=l,m.legend=j,m.xAxis=h,m.yAxis=i,d3.rebind(m,k,"x","y","size","xDomain","yDomain","forceX","forceY","interactive","clipEdge","clipVoronoi","id"),m.margin=function(a){if(!arguments.length)return b;b=a;return m},m.width=function(a){if(!arguments.length)return c;c=d3.functor(a);return m},m.height=function(a){if(!arguments.length)return d;d=d3.functor(a);return m};return m},a.models.multiBar=function(){function r(s){s.each(function(t){var u=b-a.left-a.right,v=c-a.top-a.bottom;m=m||o,n=n||p,i&&(t=d3.layout.stack().offset("zero").values(function(a){return a.values}).y(f)(t)),t=t.map(function(a,b){a.values=a.values.map(function(a){a.series=b;return a});return a});var w=k&&l?[]:t.map(function(a){return a.values.map(function(a,b){return{x:e(a,b),y:f(a,b),y0:a.y0}})});o.domain(d3.merge(w).map(function(a){return a.x})).rangeBands([0,u],.1),p.domain(l||[0,d3.max(d3.merge(w).map(function(a){return a.y+(i?a.y0:0)}).concat(g))]).range([v,0]);var z=d3.select(this).selectAll("g.d3multibar").data([t]),A=z.enter().append("g").attr("class","d3multibar"),B=A.append("defs"),C=A.append("g");C.append("g").attr("class","groups");var D=z.select("g");z.attr("transform","translate("+a.left+","+a.top+")"),B.append("clipPath").attr("id","edge-clip-"+d).append("rect"),z.select("#edge-clip-"+d+" rect").attr("width",u).attr("height",v),D.attr("clip-path",h?"url(#edge-clip-"+d+")":"");var E=z.select(".groups").selectAll(".group").data(function(a){return a},function(a){return a.key});E.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),d3.transition(E.exit()).style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),E.attr("class",function(a,b){return"group series-"+b}).classed("hover",function(a){return a.hover}).style("fill",function(a,b){return j[b%10]}).style("stroke",function(a,b){return j[b%10]}),d3.transition(E).style("stroke-opacity",1).style("fill-opacity",.75);var F=E.selectAll("rect.bar").data(function(a){return a.values});F.exit().remove();var G=F.enter().append("rect").attr("class",function(a,b){return f(a,b)<0?"bar negative":"bar positive"}).attr("x",function(a,b,c){return i?0:c*o.rangeBand()/t.length}).attr("y",function(a){return n(i?a.y0:0)}).attr("height",0).attr("width",o.rangeBand()/(i?1:t.length)).on("mouseover",function(a,b){d3.select(this).classed("hover",!0),q.elementMouseover({value:f(a,b),point:a,series:t[a.series],pos:[o(e(a,b))+o.rangeBand()*(i?t.length/2:a.series+.5)/t.length,p(f(a,b)+(i?a.y0:0))],pointIndex:b,seriesIndex:a.series,e:d3.event})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),q.elementMouseout({value:f(a,b),point:a,series:t[a.series],pointIndex:b,seriesIndex:a.series,e:d3.event})}).on("click",function(a,b){q.elementClick({value:f(a,b),point:a,series:t[a.series],pos:[o(e(a,b))+o.rangeBand()*(i?t.length/2:a.series+.5)/t.length,p(f(a,b)+(i?a.y0:0))],pointIndex:b,seriesIndex:a.series,e:d3.event}),d3.event.stopPropagation()}).on("dblclick",function(a,b){q.elementDblClick({value:f(a,b),point:a,series:t[a.series],pos:[o(e(a,b))+o.rangeBand()*(i?t.length/2:a.series+.5)/t.length,p(f(a,b)+(i?a.y0:0))],pointIndex:b,seriesIndex:a.series,e:d3.event}),d3.event.stopPropagation()});F.attr("class",function(a,b){return f(a,b)<0?"bar negative":"bar positive"}).attr("transform",function(a,b){return"translate("+o(e(a,b))+",0)"}),i?d3.transition(F).delay(function(a,b){return b*1e3/t[0].values.length}).attr("y",function(a,b){return p(f(a,b)+(i?a.y0:0))}).attr("height",function(a,b){return Math.abs(p(a.y+(i?a.y0:0))-p(i?a.y0:0))}).each("end",function(){d3.transition(d3.select(this)).attr("x",function(a,b){return i?0:a.series*o.rangeBand()/t.length}).attr("width",o.rangeBand()/(i?1:t.length))}):d3.transition(F).delay(function(a,b){return b*1200/t[0].values.length}).attr("x",function(a,b){return a.series*o.rangeBand()/t.length}).attr("width",o.rangeBand()/t.length).each("end",function(){d3.transition(d3.select(this)).attr("y",function(a,b){return p(f(a,b))}).attr("height",function(a,b){return Math.abs(p(a.y)-p(0))})}),r.update=function(){s.transition().call(r)},m=o.copy(),n=p.copy()});return r}var a={top:0,right:0,bottom:0,left:0},b=960,c=500,d=Math.floor(Math.random()*1e4),e=function(a){return a.x},f=function(a){return a.y},g=[],h=!0,i=!1,j=d3.scale.category20().range(),k,l,m,n,o=d3.scale.ordinal(),p=d3.scale.linear(),q=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout");r.dispatch=q,r.x=function(a){if(!arguments.length)return e;e=a;return r},r.y=function(a){if(!arguments.length)return f;f=a;return r},r.margin=function(b){if(!arguments.length)return a;a=b;return r},r.width=function(a){if(!arguments.length)return b;b=a;return r},r.height=function(a){if(!arguments.length)return c;c=a;return r},r.xDomain=function(a){if(!arguments.length)return k;k=a;return r},r.yDomain=function(a){if(!arguments.length)return l;l=a;return r},r.forceY=function(a){if(!arguments.length)return g;g=a;return r},r.stacked=function(a){if(!arguments.length)return i;i=a;return r},r.clipEdge=function(a){if(!arguments.length)return h;h=a;return r},r.color=function(a){if(!arguments.length)return j;j=a;return r},r.id=function(a){if(!arguments.length)return d;d=a;return r};return r},a.models.multiBarWithLegend=function(){function o(a){a.each(function(p){var q=c()-b.left-b.right,r=d()-b.top-b.bottom,s;l.stacked()?s=p.filter(function(a){return!a.disabled}).reduce(function(a,b,c){b.values.forEach(function(b,d){c||(a[d]={x:l.x()(b,d),y:0}),a[d].y+=l.y()(b,d)});return a},[]):s=p.filter(function(a){return!a.disabled}).map(function(a){return a.values.map(function(a,b){return{x:l.x()(a,b),y:l.y()(a,b)}})}),f.domain(d3.merge(s).map(function(a){return a.x})).rangeBands([0,q],.1),g.domain(d3.extent(d3.merge(s).map(function(a){return a.y}).concat(l.forceY))).range([r,0]),l.width(q).height(r).color(p.map(function(a,b){return a.color||e[b%10]}).filter(function(a,b){return!p[b].disabled}));var t=d3.select(this).selectAll("g.wrap").data([p]),u=t.enter().append("g").attr("class","wrap d3lineWithLegend").append("g");u.append("g").attr("class","x axis"),u.append("g").attr("class","y axis"),u.append("g").attr("class","linesWrap"),u.append("g").attr("class","legendWrap"),u.append("g").attr("class","controlsWrap"),b.top=j.height();var v=t.select("g").attr("transform","translate("+b.left+","+b.top+")");j.width(q/2),v.select(".legendWrap").datum(p).attr("transform","translate("+q/2+","+ -b.top+")").call(j),k.width(180).color(["#444","#444","#444"]),v.select(".controlsWrap").datum(n).attr("transform","translate(0,"+ -b.top+")").call(k);var w=v.select(".linesWrap").datum(p.filter(function(a){return!a.disabled}));d3.transition(w).call(l),h.scale(f).ticks(q/100).tickSize(-r,0),v.select(".x.axis").attr("transform","translate(0,"+g.range()[0]+")"),d3.transition(v.select(".x.axis")).call(h);var z=v.select(".x.axis").selectAll("g");z.selectAll("line, text").style("opacity",1),z.filter(function(a,b){return b%Math.ceil(p[0].values.length/(q/100))!==0}).selectAll("line, text").style("opacity",0),i.domain(g.domain()).range(g.range()).ticks(r/36).tickSize(-q,0),d3.transition(v.select(".y.axis")).call(i),j.dispatch.on("legendClick",function(b,c){b.disabled=!b.disabled,p.filter(function(a){return!a.disabled}).length||p.map(function(a){a.disabled=!1,t.selectAll(".series").classed("disabled",!1);return a}),a.transition().call(o)}),k.dispatch.on("legendClick",function(b,c){if(!!b.disabled){n=n.map(function(a){a.disabled=!0;return a}),b.disabled=!1;switch(b.key){case"Grouped":l.stacked(!1);break;case"Stacked":l.stacked(!0)}a.transition().call(o)}}),l.dispatch.on("elementMouseover.tooltip",function(a){a.pos=[a.pos[0]+b.left,a.pos[1]+b.top],m.tooltipShow(a)}),l.dispatch.on("elementMouseout.tooltip",function(a){m.tooltipHide(a)})});return o}var b={top:30,right:20,bottom:50,left:60},c=function(){return 960},d=function(){return 500},e=d3.scale.category20().range(),f=d3.scale.ordinal(),g=d3.scale.linear(),h=a.models.axis().scale(f).orient("bottom").highlightZero(!1),i=a.models.axis().scale(g).orient("left"),j=a.models.legend().height(30),k=a.models.legend().height(30),l=a.models.multiBar().stacked(!1),m=d3.dispatch("tooltipShow","tooltipHide"),n=[{key:"Grouped"},{key:"Stacked",disabled:!0}];o.dispatch=m,o.legend=j,o.xAxis=h,o.yAxis=i,d3.rebind(o,l,"x","y","xDomain","yDomain","forceX","forceY","clipEdge","id"),o.margin=function(a){if(!arguments.length)return b;b=a;return o},o.width=function(a){if(!arguments.length)return c;c=d3.functor(a);return o},o.height=function(a){if(!arguments.length)return d;d=d3.functor(a);return o};return o},a.models.pie=function(){function p(m){m.each(function(m){function z(a){a.innerRadius=0;var b=d3.interpolate({startAngle:0,endAngle:0},a);return function(a){return t(b(a))}}function y(a){var b=(a.startAngle+a.endAngle)*90/Math.PI-90;return b>90?b-180:b}var n=d3.select(this).on("click",function(a,b){o.chartClick({data:a,index:b,pos:d3.event,id:h})}),p=n.selectAll("svg.margin").data([m]),q=p.enter();q.append("text").attr("class","title").attr("dy",".91em").attr("text-anchor","start").text(l),q.append("svg").attr("class","margin").attr("x",a.left).attr("y",a.top).style("overflow","visible");var r=p.selectAll("g.wrap").data([m]);r.exit().remove();var s=r.enter();s.append("g").attr("class","wrap").attr("id","wrap-"+h).append("g").attr("class","pie"),r.attr("width",b).attr("height",c).attr("transform","translate("+e+","+e+")");var t=d3.svg.arc().outerRadius(e-e/5);k&&t.innerRadius(e/2);var u=d3.layout.pie().value(function(a){return a[g]}),v=p.select(".pie").selectAll(".slice").data(u);v.exit().remove();var w=v.enter().append("svg:g").attr("class","slice").on("mouseover",function(a,b){d3.select(this).classed("hover",!0),o.tooltipShow({label:a.data[f],value:a.data[g],data:a.data,index:b,pos:[d3.event.pageX,d3.event.pageY],id:h})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),o.tooltipHide({label:a.data[f],value:a.data[g],data:a.data,index:b,id:h})}).on("click",function(a,b){o.elementClick({label:a.data[f],value:a.data[g],data:a.data,index:b,pos:d3.event,id:h}),d3.event.stopPropagation()}).on("dblclick",function(a,b){o.elementDblClick({label:a.data[f],value:a.data[g],data:a.data,index:b,pos:d3.event,id:h}),d3.event.stopPropagation()}),x=w.append("svg:path").attr("class","path").attr("fill",function(a,b){return i(b)});v.select(".path").attr("d",t).transition().ease("bounce").duration(d).attrTween("d",z),j&&(w.append("text"),v.select("text").transition().duration(d).ease("bounce").attr("transform",function(a){a.outerRadius=e+10,a.innerRadius=e+15;return"translate("+t.centroid(a)+")"}).attr("text-anchor","middle").style("font","bold 12px Arial").text(function(a,b){return a.data[f]}))});return p}var a={top:20,right:20,bottom:20,left:20},b=500,c=500,d=2e3,e=Math.min(b-(a.right+a.left),c-(a.top+a.bottom))/2,f="label",g="y",h=Math.floor(Math.random()*1e4),i=d3.scale.category20(),j=!0,k=!1,l="",m=0,n=0,o=d3.dispatch("chartClick","elementClick","elementDblClick","tooltipShow","tooltipHide");p.margin=function(b){if(!arguments.length)return a;a=b;return p},p.width=function(d){if(!arguments.length)return b;a.left+a.right+20>d?b=a.left+a.right+20:b=d,e=Math.min(b-(a.left+a.right),c-(a.top+a.bottom))/2;return p},p.height=function(d){if(!arguments.length)return c;a.top+a.bottom+20>d?c=a.top+a.bottom+20:c=d,e=Math.min(b-(a.left+a.right),c-(a.top+a.bottom))/2;return p},p.animate=function(a){if(!arguments.length)return d;d=a;return p},p.labelField=function(a){if(!arguments.length)return f;f=a;return p},p.dataField=function(a){if(!arguments.length)return g;g=a;return p},p.showLabels=function(a){if(!arguments.length)return j;j=a;return p},p.donut=function(a){if(!arguments.length)return k;k=a;return p},p.title=function(a){if(!arguments.length)return l;l=a;return p},p.id=function(a){if(!arguments.length)return h;h=a;return p},p.dispatch=o;return p},a.models.scatter=function(){function A(B){B.each(function(A){function J(){if(!o){E.select("#points-clip-"+e).remove(),E.select(".point-paths").remove();return!1}H.append("g").attr("class","point-paths");var b=d3.merge(A.map(function(a,b){return a.values.map(function(a,c){return[f(i(a,c))*(Math.random()/1e12+1),g(j(a,c))*(Math.random()/1e12+1),b,c]})}));if(q){G.append("clipPath").attr("id","points-clip-"+e);var c=E.select("#points-clip-"+e).selectAll("circle").data(b);c.enter().append("circle").attr("r",r),c.exit().remove(),c.attr("cx",function(a){return a[0]}).attr("cy",function(a){return a[1]}),E.select(".point-paths").attr("clip-path","url(#points-clip-"+e+")")}var d=d3.geom.voronoi(b).map(function(a,c){return{data:a,series:b[c][2],point:b[c][3]}}),h=E.select(".point-paths").selectAll("path").data(d);h.enter().append("path").attr("class",function(a,b){return"path-"+b}),h.exit().remove(),h.attr("d",function(a){return"M"+a.data.join(",")+"Z"}).on("click",function(b){var c=A[b.series],d=c.values[b.point];v.elementClick({point:d,series:c,pos:[f(i(d,b.point))+a.left,g(j(d,b.point))+a.top],seriesIndex:b.series,pointIndex:b.point})}).on("mouseover",function(b){var c=A[b.series],d=c.values[b.point];v.elementMouseover({point:d,series:c,pos:[f(i(d,b.point))+a.left,g(j(d,b.point))+a.top],seriesIndex:b.series,pointIndex:b.point})}).on("mouseout",function(a,b){v.elementMouseout({point:A[a.series].values[a.point],series:A[a.series],seriesIndex:a.series,pointIndex:a.point})}),v.on("elementMouseover.point",function(a){E.select(".series-"+a.seriesIndex+" .point-"+a.pointIndex).classed("hover",!0)}),v.on("elementMouseout.point",function(a){E.select(".series-"+a.seriesIndex+" circle.point-"+a.pointIndex).classed("hover",!1)})}var B=b-a.left-a.right,C=c-a.top-a.bottom;w=w||f,x=x||g,y=y||h,A=A.map(function(a,b){a.values=a.values.map(function(a){a.series=b;return a});return a});var D=s&&t&&u?[]:A.map(function(a){return a.values.map(function(a,b){return{x:i(a,b),y:j(a,b),size:k(a,b)}})});f.domain(s||d3.extent(d3.merge(D).map(function(a){return a.x}).concat(l))).range([0,B]),g.domain(t||d3.extent(d3.merge(D).map(function(a){return a.y}).concat(m))).range([C,0]),h.domain(u||d3.extent(d3.merge(D).map(function(a){return a.size}).concat(n))).range([2,10]);var E=d3.select(this).selectAll("g.d3scatter").data([A]),F=E.enter().append("g").attr("class","d3scatter"),G=F.append("defs"),H=F.append("g"),I=E.select("g");H.append("g").attr("class","groups"),E.attr("transform","translate("+a.left+","+a.top+")"),G.append("clipPath").attr("id","edge-clip-"+e).append("rect"),E.select("#edge-clip-"+e+" rect").attr("width",B).attr("height",C),I.attr("clip-path",p?"url(#edge-clip-"+e+")":"");var K=E.select(".groups").selectAll(".group").data(function(a){return a},function(a){return a.key});K.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),d3.transition(K.exit()).style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),K.attr("class",function(a,b){return"group series-"+b}).classed("hover",function(a){return a.hover}),d3.transition(K).style("fill",function(a,b){return d[b%20]}).style("stroke",function(a,b){return d[b%20]}).style("stroke-opacity",1).style("fill-opacity",.5);var L=K.selectAll("circle.point").data(function(a){return a.values});L.enter().append("circle").attr("cx",function(a,b){return w(i(a,b))}).attr("cy",function(a,b){return x(j(a,b))}).attr("r",function(a,b){return y(k(a,b))}),d3.transition(K.exit().selectAll("circle.point")).attr("cx",function(a,b){return f(i(a,b))}).attr("cy",function(a,b){return g(j(a,b))}).attr("r",function(a,b){return h(k(a,b))}).remove(),L.attr("class",function(a,b){return"point point-"+b}),d3.transition(L).attr("cx",function(a,b){return f(i(a,b))}).attr("cy",function(a,b){return g(j(a,b))}).attr("r",function(a,b){return h(k(a,b))}),clearTimeout(z),z=setTimeout(J,750),w=f.copy(),x=g.copy(),y=h.copy()});return A}var a={top:0,right:0,bottom:0,left:0},b=960,c=500,d=d3.scale.category20().range(),e=Math.floor(Math.random()*1e5),f=d3.scale.linear(),g=d3.scale.linear(),h=d3.scale.sqrt(),i=function(a){return a.x},j=function(a){return a.y},k=function(a){return a.size},l=[],m=[],n=[],o=!0,p=!1,q=!0,r=function(){return 25},s,t,u,v=d3.dispatch("elementClick","elementMouseover","elementMouseout"),w,x,y,z;A.dispatch=v,A.x=function(a){if(!arguments.length)return i;i=d3.functor(a);return A},A.y=function(a){if(!arguments.length)return j;j=d3.functor(a);return A},A.size=function(a){if(!arguments.length)return k;k=d3.functor(a);return A},A.margin=function(b){if(!arguments.length)return a;a=b;return A},A.width=function(a){if(!arguments.length)return b;b=a;return A},A.height=function(a){if(!arguments.length)return c;c=a;return A},A.xScale=function(a){if(!arguments.length)return f;f=a;return A},A.yScale=function(a){if(!arguments.length)return g;g=a;return A},A.zScale=function(a){if(!arguments.length)return h;h=a;return A},A.xDomain=function(a){if(!arguments.length)return s;s=a;return A},A.yDomain=function(a){if(!arguments.length)return t;t=a;return A},A.sizeDomain=function(a){if(!arguments.length)return u;u=a;return A},A.forceX=function(a){if(!arguments.length)return l;l=a;return A},A.forceY=function(a){if(!arguments.length)return m;m=a;return A},A.forceSize=function(a){if(!arguments.length)return n;n=a;return A},A.interactive=function(a){if(!arguments.length)return o;o=a;return A},A.clipEdge=function(a){if(!arguments.length)return p;p=a;return A},A.clipVoronoi=function(a){if(!arguments.length)return q;q=a;return A},A.clipRadius=function(a){if(!arguments.length)return r;r=a;return A},A.color=function(a){if(!arguments.length)return d;d=a;return A},A.id=function(a){if(!arguments.length)return e;e=a;return A};return A},a.models.scatterWithLegend=function(){function s(a){a.each(function(e){var f=c()-b.left-b.right,t=d()-b.top-b.bottom;q=q||m.xScale(),r=r||m.yScale();var u=d3.select(this).selectAll("g.wrap").data([e]),v=u.enter().append("g").attr("class","wrap d3scatterWithLegend").append("g");v.append("g").attr("class","legendWrap"),v.append("g").attr("class","x axis"),v.append("g").attr("class","y axis"),v.append("g").attr("class","scatterWrap"),m.width(f).height(t).color(e.map(function(a,b){return a.color||i[b%20]}).filter(function(a,b){return!e[b].disabled}));var w=u.select(".scatterWrap").datum(e.filter(function(a){return!a.disabled}));d3.transition(w).call(m),o=m.xScale(),p=m.yScale(),j.scale(o),k.scale(p),b.top=l.height();var z=u.select("g").attr("transform","translate("+b.left+","+b.top+")");l.width(f/2),u.select(".legendWrap").datum(e).attr("transform","translate("+f/2+","+ -b.top+")").call(l);if(g||h){var A=w.selectAll("g.distribution").data(function(a){return a},function(a){return a.key});A.enter().append("g").attr("class",function(a,b){return"distribution series-"+b}),A.style("stroke",function(a,b){return i.filter(function(a,b){return e[b]&&!e[b].disabled})[b%10]})}if(g){var B=A.selectAll("line.distX").data(function(a){return a.values});B.enter().append("line").attr("x1",function(a,b){return q(m.x()(a,b))}).attr("x2",function(a,b){return q(m.x()(a,b))}),d3.transition(A.exit().selectAll("line.distX")).attr("x1",function(a,b){return o(m.x()(a,b))}).attr("x2",function(a,b){return o(m.x()(a,b))}).remove(),B.attr("class",function(a,b){return"distX distX-"+b}).attr("y1",p.range()[0]).attr("y2",p.range()[0]+8),d3.transition(B).attr("x1",function(a,b){return o(m.x()(a,b))}).attr("x2",function(a,b){return o(m.x()(a,b))})}if(h){var C=A.selectAll("line.distY").data(function(a){return a.values});C.enter().append("line").attr("y1",function(a,b){return r(m.y()(a,b))}).attr("y2",function(a,b){return r(m.y()(a,b))}),d3.transition(A.exit().selectAll("line.distY")).attr("y1",function(a,b){return p(m.y()(a,b))}).attr("y2",function(a,b){return p(m.y()(a,b))}).remove(),C.attr("class",function(a,b){return"distY distY-"+b}).attr("x1",o.range()[0]).attr("x2",o.range()[0]-8),d3.transition(C).attr("y1",function(a,b){return p(m.y()(a,b))}).attr("y2",function(a,b){return p(m.y()(a,b))})}j.ticks(f/100).tickSize(-t,0),z.select(".x.axis").attr("transform","translate(0,"+p.range()[0]+")"),d3.transition(z.select(".x.axis")).call(j),k.ticks(t/36).tickSize(-f,0),d3.transition(z.select(".y.axis")).call(k),l.dispatch.on("legendClick",function(b,c,d){b.disabled=!b.disabled,e.filter(function(a){return!a.disabled}).length||e.map(function(a){a.disabled=!1,u.selectAll(".series").classed("disabled",!1);return a}),a.transition().call(s)}),m.dispatch.on("elementMouseover.tooltip",function(a){n.tooltipShow({point:a.point,series:a.series,pos:[a.pos[0]+b.left,a.pos[1]+b.top],seriesIndex:a.seriesIndex,pointIndex:a.pointIndex}),w.select(".series-"+a.seriesIndex+" .distX-"+a.pointIndex).attr("y1",a.pos[1]),w.select(".series-"+a.seriesIndex+" .distY-"+a.pointIndex).attr("x1",a.pos[0])}),m.dispatch.on("elementMouseout.tooltip",function(a){n.tooltipHide(a),w.select(".series-"+a.seriesIndex+" .distX-"+a.pointIndex).attr("y1",p.range()[0]),w.select(".series-"+a.seriesIndex+" .distY-"+a.pointIndex).attr("x1",o.range()[0])}),q=o.copy(),r=p.copy()});return s}var b={top:30,right:20,bottom:50,left:60},c=function(){return 960},d=function(){return 500},e=!1,f=!1,g=!1,h=!1,i=d3.scale.category20().range(),j=a.models.axis().orient("bottom").tickPadding(10),k=a.models.axis().orient("left").tickPadding(10),l=a.models.legend().height(30),m=a.models.scatter(),n=d3.dispatch("tooltipShow","tooltipHide"),o,p,q,r;s.dispatch=n,s.legend=l,s.xAxis=j,s.yAxis=k,d3.rebind(s,m,"interactive","size","xScale","yScale","zScale","xDomain","yDomain","sizeDomain","forceX","forceY","forceSize","clipVoronoi","clipRadius"),s.margin=function(a){if(!arguments.length)return b;b=a;return s},s.width=function(a){if(!arguments.length)return c;c=d3.functor(a);return s},s.height=function(a){if(!arguments.length)return d;d=d3.functor(a);return s},s.color=function(a){if(!arguments.length)return i;i=a,l.color(a);return s},s.showDistX=function(a){if(!arguments.length)return g;g=a;return s},s.showDistY=function(a){if(!arguments.length)return h;h=a;return s};return s},a.models.sparkline=function(){function l(d){d.each(function(d){var l=b-a.left-a.right,m=c-a.top-a.bottom;j.domain(h||d3.extent(d,e)).range([0,l]),k.domain(i||d3.extent(d,f)).range([m,0]);var n=d3.select(this).selectAll("g.sparkline").data([d]),o=n.enter().append("g").attr("class","sparkline");o.attr("transform","translate("+a.left+","+a.top+")").style("stroke",function(a,b){return a.color||g[b*2%20]});var p=o.selectAll("path").data(function(a){return[a]});p.enter().append("path"),p.exit().remove(),p.attr("d",d3.svg.line().x(function(a,b){return j(e(a,b))}).y(function(a,b){return k(f(a,b))}));var q=o.selectAll("circle.point").data(function(a){return a.filter(function(a,b){return k.domain().indexOf(f(a,b))!=-1||e(a,b)==j.domain()[1]})});q.enter().append("circle").attr("class","point"),q.exit().remove(),q.attr("cx",function(a,b){return j(e(a,b))}).attr("cy",function(a,b){return k(f(a,b))}).attr("r",2).style("stroke",function(a,b){return a.x==j.domain()[1]?"#444":a.y==k.domain()[0]?"#d62728":"#2ca02c"}).style("fill",function(a,b){return a.x==j.domain()[1]?"#444":a.y==k.domain()[0]?"#d62728":"#2ca02c"})});return l}var a={top:0,right:0,bottom:0,left:0},b=400,c=32,d=!0,e=function(a){return a.x},f=function(a){return a.y},g=d3.scale.category20().range(),h,i,j=d3.scale.linear(),k=d3.scale.linear();l.margin=function(b){if(!arguments.length)return a;a=b;return l},l.width=function(a){if(!arguments.length)return b;b=a;return l},l.height=function(a){if(!arguments.length)return c;c=a;return l},l.x=function(a){if(!arguments.length)return e;e=d3.functor(a);return l},l.y=function(a){if(!arguments.length)return f;f=d3.functor(a);return l},l.xDomain=function(a){if(!arguments.length)return h;h=a;return l},l.yDomain=function(a){if(!arguments.length)return i;i=a;return l},l.animate=function(a){if(!arguments.length)return d;d=a;return l};return l},a.models.sparklinePlus=function(){function o(a){a.each(function(a){function w(){var c=d3.event.offsetX-b.left;t.attr("x1",c).attr("x2",c),u.attr("transform",function(a){return"translate("+(c-6)+","+ -b.top+")"}).text(j(Math.round(l.invert(c)))),v.attr("transform",function(a){return"translate("+(c+6)+","+ -b.top+")"}).text(k(g(a[Math.round(l.invert(c))])))}var e=c-b.left-b.right,i=d-b.top-b.bottom;l.domain(d3.extent(a,f)).range([0,e]),m.domain(d3.extent(a,g)).range([i,0]);var o=d3.select(this).selectAll("g.sparklineplus").data([a]),p=o.enter().append("g"),q=p.append("g").attr("class","sparklineplus").attr("transform","translate("+b.left+","+b.top+")").style("stroke",function(a,b){return a.color||h[b%10]});n.xDomain(l.domain()).yDomain(m.domain()),q.call(n);var r=q.append("g").attr("class","hoverValue"),s=q.append("g").attr("class","hoverArea");r.attr("transform",function(a){return"translate("+l(a)+",0)"});var t=r.append("line").attr("x1",l.range()[1]).attr("y1",-b.top).attr("x2",l.range()[1]).attr("y2",d),u=r.append("text").attr("class","xValue").attr("text-anchor","end").attr("dy",".9em"),v=r.append("text").attr("class","yValue").attr("text-anchor","start").attr("dy",".9em");s.append("rect").attr("width",e).attr("height",i).on("mousemove",w)});return o}var b={top:15,right:40,bottom:3,left:40},c=400,d=50,e=!0,f=function(a){return a.x},g=function(a){return a.y},h=d3.scale.category20().range(),i=Math.floor(Math.random()*1e5),j=d3.format(",r"),k=d3.format(",.2f"),l=d3.scale.linear(),m=d3.scale.linear(),n=a.models.sparkline();o.margin=function(a){if(!arguments.length)return b;b=a;return o},o.width=function(a){if(!arguments.length)return c;c=a,n.width(a-b.left-b.right);return o},o.height=function(a){if(!arguments.length)return d;d=a,n.height(a-b.top-b.bottom);return o},o.x=function(a){if(!arguments.length)return f;f=d3.functor(a),n.x(a);return o},o.y=function(a){if(!arguments.length)return g;g=d3.functor(a),n.y(a);return o},o.id=function(a){if(!arguments.length)return i;i=a;return o},o.animate=function(a){if(!arguments.length)return e;e=a;return o};return o},a.models.stackedArea=function(){function o(a){a.each(function(a){var i=JSON.parse(JSON.stringify(a)),o=c-b.left-b.right,p=d-b.top-b.bottom;i=d3.layout.stack().offset(j).order(k).values(function(a){return a.values}).y(h)(i);var q=d3.select(this).selectAll("g.d3stackedarea").data([i]),r=q.enter().append("g").attr("class","d3stackedarea"),s=r.append("defs"),t=r.append("g"),u=q.select("g");t.append("g").attr("class","areaWrap"),m.width(o).height(p).x(g).y(function(a){return a.y+a.y0}).forceY([0]).color(a.map(function(a,b){return a.color||e[b%20]}).filter(function(b,c){return!a[c].disabled})),t.append("g").attr("class","scatterWrap");var v=u.select(".scatterWrap").datum(i.filter(function(a){return!a.disabled}));d3.transition(v).call(m),x=m.xScale(),y=m.yScale(),q.attr("transform","translate("+b.left+","+b.top+")"),s.append("clipPath").attr("id","edge-clip-"+f).append("rect"),q.select("#edge-clip-"+f+" rect").attr("width",o).attr("height",p),u.attr("clip-path",l?"url(#edge-clip-"+f+")":"");var w=d3.svg.area().x(function(a,b){return x(g(a,b))}).y0(function(a){return y(a.y0)}).y1(function(a){return y(a.y+a.y0)}),z=d3.svg.area().x(function(a,b){return x(g(a,b))}).y0(function(a){return y(a.y0)}).y1(function(a){return y(a.y0)}),A=u.select(".areaWrap").selectAll("path.area").data(function(a){return a});A.enter().append("path").attr("class",function(a,b){return"area area-"+b}).on("mouseover",function(a,b){d3.select(this).classed("hover",!0),n.areaMouseover({point:a,series:a.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:b})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),n.areaMouseout({point:a,series:a.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:b})}).on("click",function(a,b){d3.select(this).classed("hover",!1),n.areaClick({point:a,series:a.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:b})}),d3.transition(A.exit()).attr("d",function(a,b){return z(a.values,b)}).remove(),A.style("fill",function(a,b){return e[b%20]}).style("stroke",function(a,b){return e[b%20]}),d3.transition(A).attr("d",function(a,b){return w(a.values,b)}),m.dispatch.on("elementClick.area",function(a){n.areaClick(a)}),m.dispatch.on("elementMouseover.area",function(a){u.select(".area-"+a.seriesIndex).classed("hover",!0)}),m.dispatch.on("elementMouseout.area",function(a){u.select(".area-"+a.seriesIndex).classed("hover",!1)})});return o}var b={top:0,right:0,bottom:0,left:0},c=960,d=500,e=d3.scale.category20().range(),f=Math.floor(Math.random()*1e5),g=function(a){return a.x},h=function(a){return a.y},i="stack",j="zero",k="default",l=!1,m=a.models.scatter().size(2.2).sizeDomain([2.5]),n=d3.dispatch("tooltipShow","tooltipHide","areaClick","areaMouseover","areaMouseout");o.dispatch=n,o.scatter=m,d3.rebind(o,m,"interactive","size","xScale","yScale","zScale","xDomain","yDomain","sizeDomain","forceX","forceY","forceSize","clipVoronoi","clipRadius"),o.x=function(a){if(!arguments.length)return g;g=d3.functor(a);return o},o.y=function(a){if(!arguments.length)return h;h=d3.functor(a);return o},o.margin=function(a){if(!arguments.length)return b;b=a;return o},o.width=function(a){if(!arguments.length)return c;c=a;return o},o.height=function(a){if(!arguments.length)return d;d=a;return o},o.clipEdge=function(a){if(!arguments.length)return l;l=a;return o},o.color=function(a){if(!arguments.length)return e;e=a;return o},o.offset=function(a){if(!arguments.length)return j;j=a;return o},o.order=function(a){if(!arguments.length)return k;k=a;return o},o.style=function(a){if(!arguments.length)return i;i=a;switch(i){case"stack":j="zero",k="default";break;case"stream":j="wiggle",k="inside-out";break;case"expand":j="expand",k="default"}return o},m.dispatch.on("elementMouseover.tooltip",function(a){a.pos=[a.pos[0]+b.left,a.pos[1]+b.top],n.tooltipShow(a)}),m.dispatch.on("elementMouseout.tooltip",function(a){n.tooltipHide(a)});return o},a.models.stackedAreaWithLegend=function(){function r(a){a.each(function(e){var s=c(),t=d(),u=s-b.left-b.right,v=t-b.top-b.bottom,w=e.filter(function(a){return!a.disabled}).reduce(function(a,b,c){b.values.forEach(function(b,d){c||(a[d]={x:i(b,d),y:0}),a[d].y+=j(b,d)});return a},[]);g.domain(d3.extent(d3.merge(w),function(a){return a.x})).range([0,u]),h.domain(o.offset()=="zero"?[0,d3.max(w,function(a){return a.y})]:[0,1]).range([v,0]),o.width(u).height(v).color(f);var z=d3.select(this).selectAll("g.wrap").data([e]),A=z.enter().append("g").attr("class","wrap d3stackedWithLegend").append("g");A.append("g").attr("class","x axis"),A.append("g").attr("class","y axis"),A.append("g").attr("class","stackedWrap"),A.append("g").attr("class","legendWrap"),A.append("g").attr("class","controlsWrap"),b.top=m.height();var B=z.select("g").attr("transform","translate("+b.left+","+b.top+")");m.width(s/2-b.right).color(f),B.select(".legendWrap").datum(e).attr("transform","translate("+(s/2-b.left)+","+ -b.top+")").call(m),n.width(280).color(["#444","#444","#444"]),B.select(".controlsWrap").datum(q).attr("transform","translate(0,"+ -b.top+")").call(n);var C=B.select(".stackedWrap").datum(e);d3.transition(C).call(o),k.domain(g.domain -()).range(g.range()).ticks(s/100).tickSize(-v,0),B.select(".x.axis").attr("transform","translate(0,"+v+")"),d3.transition(B.select(".x.axis")).call(k),l.domain(h.domain()).range(h.range()).ticks(o.offset()=="wiggle"?0:t/36).tickSize(-u,0).tickFormat(o.offset()=="zero"?d3.format(",.2f"):d3.format("%")),d3.transition(B.select(".y.axis")).call(l),o.dispatch.on("areaClick.toggle",function(b){e.filter(function(a){return!a.disabled}).length===1?e=e.map(function(a){a.disabled=!1,a.disabled?a.values.map(function(a){a._y=a.y,a.y=0;return a}):a.values.map(function(a){a.y=a._y||a.y;return a});return a}):e=e.map(function(a,c){a.disabled=c!=b.seriesIndex,a.disabled?a.values.map(function(a){a._y=a.y,a.y=0;return a}):a.values.map(function(a){a.y=a._y||a.y;return a});return a}),a.transition().call(r)}),m.dispatch.on("legendClick",function(b,c){b.disabled=!b.disabled,b.disabled?b.values.map(function(a){a._y=a.y,a.y=0;return a}):b.values.map(function(a){a.y=a._y;return a}),e.filter(function(a){return!a.disabled}).length||e.map(function(a){a.disabled=!1,a.values.map(function(a){a.y=a._y;return a});return a}),a.transition().call(r)}),n.dispatch.on("legendClick",function(b,c){if(!!b.disabled){q=q.map(function(a){a.disabled=!0;return a}),b.disabled=!1;switch(b.key){case"Stacked":o.style("stack");break;case"Stream":o.style("stream");break;case"Expanded":o.style("expand")}a.transition().call(r)}}),o.dispatch.on("tooltipShow",function(a){if(!Math.round(j(a.point)*100)){setTimeout(function(){d3.selectAll(".point.hover").classed("hover",!1)},0);return!1}p.tooltipShow({point:a.point,series:a.series,pos:[a.pos[0]+b.left,a.pos[1]+b.top],seriesIndex:a.seriesIndex,pointIndex:a.pointIndex})}),o.dispatch.on("tooltipHide",function(a){p.tooltipHide(a)})});return r}var b={top:30,right:20,bottom:50,left:60},c=function(){return 960},d=function(){return 500},e=function(){return 2.5},f=d3.scale.category20().range(),g=d3.scale.linear(),h=d3.scale.linear(),i=function(a){return a.x},j=function(a){return a.y},k=a.models.axis().scale(g).orient("bottom"),l=a.models.axis().scale(h).orient("left"),m=a.models.legend().height(30),n=a.models.legend().height(30),o=a.models.stackedArea(),p=d3.dispatch("tooltipShow","tooltipHide"),q=[{key:"Stacked"},{key:"Stream",disabled:!0},{key:"Expanded",disabled:!0}];r.dispatch=p,d3.rebind(r,o,"interactive","clipEdge"),r.x=function(a){if(!arguments.length)return i;i=d3.functor(a),o.x(i);return r},r.y=function(a){if(!arguments.length)return j;j=d3.functor(a),o.y(j);return r},r.margin=function(a){if(!arguments.length)return b;b=a;return r},r.width=function(a){if(!arguments.length)return c;c=d3.functor(a);return r},r.height=function(a){if(!arguments.length)return d;d=d3.functor(a);return r},r.dotRadius=function(a){if(!arguments.length)return e;e=d3.functor(a),o.dotRadius=a;return r},r.stacked=o,r.xAxis=k,r.yAxis=l;return r},a.charts.cumulativeLineChartDaily=function(){function h(){if(!b||!c.length)return h;d3.select(b).select("svg").datum(c).transition().duration(d).call(f);return h}var b=null,c=[],d=500,e=function(a,b,c,d,e){return"

"+a+"

"+"

"+c+" at "+b+"

"},f=a.models.cumulativeLine().x(function(a,b){return b}).color(d3.scale.category10().range()),g=function(c){var d=document.getElementById(b.substr(1)),g=c.pos[0]+d.offsetLeft,h=c.pos[1]+d.offsetTop,i=f.xAxis.tickFormat(),j=f.yAxis.tickFormat(),k=i(f.x()(c,c.pointIndex)),l=j(f.y()(c.point)),m=e(c.series.key,k,l,c,f);a.tooltip.show([g,h],m)};f.xAxis.tickFormat(function(a){return d3.time.format("%x")(new Date(c[0].values[a].x))}),f.yAxis.tickFormat(d3.format(",.2%")),h.build=function(){if(!b||!c.length)return h;a.addGraph({generate:function(){var a=d3.select(b),e=function(){return parseInt(a.style("width"))},g=function(){return parseInt(a.style("height"))},h=a.append("svg");f.width(e).height(g),h.attr("width",e()).attr("height",g()).datum(c).transition().duration(d).call(f);return f},callback:function(c){c.dispatch.on("tooltipShow",g),c.dispatch.on("tooltipHide",a.tooltip.cleanup),window.onresize=function(){d3.select(b+" svg").attr("width",c.width()()).attr("height",c.height()()).call(c)}}});return h},h.data=function(a){if(!arguments.length)return c;c=a;return h},h.selector=function(a){if(!arguments.length)return b;b=a;return h},h.duration=function(a){if(!arguments.length)return d;d=a;return h},h.tooltip=function(a){if(!arguments.length)return e;e=a;return h},h.xTickFormat=function(a){if(!arguments.length)return f.xAxis.tickFormat();f.xAxis.tickFormat(typeof a=="function"?a:d3.format(a));return h},h.yTickFormat=function(a){if(!arguments.length)return f.yAxis.tickFormat();f.yAxis.tickFormat(typeof a=="function"?a:d3.format(a));return h},h.xAxisLabel=function(a){if(!arguments.length)return f.xAxis.axisLabel();f.xAxis.axisLabel(a);return h},h.yAxisLabel=function(a){if(!arguments.length)return f.yAxis.axisLabel();f.yAxis.axisLabel(a);return h},d3.rebind(h,f,"x","y"),h.graph=f;return h},a.charts.line=function(){function h(){if(!b||!c.length)return h;d3.select(b).select("svg").datum(c).transition().duration(d).call(f);return h}var b=null,c=[],d=500,e=function(a,b,c,d,e){return"

"+a+"

"+"

"+c+" at "+b+"

"},f=a.models.lineWithLegend(),g=function(c){var d=document.getElementById(b.substr(1)),g=c.pos[0]+d.offsetLeft,h=c.pos[1]+d.offsetTop,i=f.xAxis.tickFormat(),j=f.yAxis.tickFormat(),k=i(f.x()(c.point)),l=j(f.y()(c.point)),m=e(c.series.key,k,l,c,f);a.tooltip.show([g,h],m)};f.xAxis.tickFormat(d3.format(",r")),f.yAxis.tickFormat(d3.format(",.2f")),h.build=function(){if(!b||!c.length)return h;a.addGraph({generate:function(){var a=d3.select(b),e=function(){return parseInt(a.style("width"))},g=function(){return parseInt(a.style("height"))},h=a.append("svg");f.width(e).height(g),h.attr("width",e()).attr("height",g()).datum(c).transition().duration(d).call(f);return f},callback:function(c){c.dispatch.on("tooltipShow",g),c.dispatch.on("tooltipHide",a.tooltip.cleanup),window.onresize=function(){d3.select(b+" svg").attr("width",c.width()()).attr("height",c.height()()).call(c)}}});return h},h.data=function(a){if(!arguments.length)return c;c=a;return h},h.selector=function(a){if(!arguments.length)return b;b=a;return h},h.duration=function(a){if(!arguments.length)return d;d=a;return h},h.tooltip=function(a){if(!arguments.length)return e;e=a;return h},h.xTickFormat=function(a){if(!arguments.length)return f.xAxis.tickFormat();f.xAxis.tickFormat(typeof a=="function"?a:d3.format(a));return h},h.yTickFormat=function(a){if(!arguments.length)return f.yAxis.tickFormat();f.yAxis.tickFormat(typeof a=="function"?a:d3.format(a));return h},h.xAxisLabel=function(a){if(!arguments.length)return f.xAxis.axisLabel();f.xAxis.axisLabel(a);return h},h.yAxisLabel=function(a){if(!arguments.length)return f.yAxis.axisLabel();f.yAxis.axisLabel(a);return h},d3.rebind(h,f,"x","y"),h.graph=f;return h},a.charts.lineChartDaily=function(){function h(){if(!b||!c.length)return h;d3.select(b).select("svg").datum(c).transition().duration(d).call(f);return h}var b=null,c=[],d=500,e=function(a,b,c,d,e){return"

"+a+"

"+"

"+c+" at "+b+"

"},f=a.models.lineWithLegend().x(function(a,b){return b}),g=function(c){var d=document.getElementById(b.substr(1)),g=c.pos[0]+d.offsetLeft,h=c.pos[1]+d.offsetTop,i=f.xAxis.tickFormat(),j=f.yAxis.tickFormat(),k=i(f.x()(c,c.pointIndex)),l=j(f.y()(c.point)),m=e(c.series.key,k,l,c,f);a.tooltip.show([g,h],m)};f.xAxis.tickFormat(function(a){return d3.time.format("%x")(new Date(c[0].values[a].x))}),f.yAxis.tickFormat(d3.format(",.2%")),h.build=function(){if(!b||!c.length)return h;a.addGraph({generate:function(){var a=d3.select(b),e=function(){return parseInt(a.style("width"))},g=function(){return parseInt(a.style("height"))},h=a.append("svg");f.width(e).height(g),h.attr("width",e()).attr("height",g()).datum(c).transition().duration(d).call(f);return f},callback:function(c){c.dispatch.on("tooltipShow",g),c.dispatch.on("tooltipHide",a.tooltip.cleanup),window.onresize=function(){d3.select(b+" svg").attr("width",c.width()()).attr("height",c.height()()).call(c)}}});return h},h.data=function(a){if(!arguments.length)return c;c=a;return h},h.selector=function(a){if(!arguments.length)return b;b=a;return h},h.duration=function(a){if(!arguments.length)return d;d=a;return h},h.tooltip=function(a){if(!arguments.length)return e;e=a;return h},h.xTickFormat=function(a){if(!arguments.length)return f.xAxis.tickFormat();f.xAxis.tickFormat(typeof a=="function"?a:d3.format(a));return h},h.yTickFormat=function(a){if(!arguments.length)return f.yAxis.tickFormat();f.yAxis.tickFormat(typeof a=="function"?a:d3.format(a));return h},h.xAxisLabel=function(a){if(!arguments.length)return f.xAxis.axisLabel();f.xAxis.axisLabel(a);return h},h.yAxisLabel=function(a){if(!arguments.length)return f.yAxis.axisLabel();f.yAxis.axisLabel(a);return h},d3.rebind(h,f,"x","y"),h.graph=f;return h},a.charts.stackedAreaChart=function(){function h(){if(!b||!c.length)return h;d3.select(b).select("svg").datum(c).transition().duration(d).call(f);return h}var b=null,c=[],d=500,e=function(a,b,c,d,e){return"

"+a+"

"+"

"+c+" at "+b+"

"},f=a.models.stackedAreaWithLegend().x(function(a,b){return b}),g=function(c){var d=document.getElementById(b.substr(1)),g=c.pos[0]+d.offsetLeft,h=c.pos[1]+d.offsetTop,i=f.xAxis.tickFormat(),j=f.yAxis.tickFormat(),k=i(f.x()(c,c.pointIndex)),l=j(f.y()(c.point)),m=e(c.series.key,k,l,c,f);a.tooltip.show([g,h],m)};f.xAxis.tickFormat(function(a){return d3.time.format("%x")(new Date(c[0].values[a].x))}),f.yAxis.tickFormat(d3.format(",.2%")),h.build=function(){if(!b||!c.length)return h;a.addGraph({generate:function(){var a=d3.select(b),e=function(){return parseInt(a.style("width"))},g=function(){return parseInt(a.style("height"))},h=a.append("svg");f.width(e).height(g),h.attr("width",e()).attr("height",g()).datum(c).transition().duration(d).call(f);return f},callback:function(c){c.dispatch.on("tooltipShow",g),c.dispatch.on("tooltipHide",a.tooltip.cleanup),window.onresize=function(){d3.select(b+" svg").attr("width",c.width()()).attr("height",c.height()()).call(c)}}});return h},h.data=function(a){if(!arguments.length)return c;c=a;return h},h.selector=function(a){if(!arguments.length)return b;b=a;return h},h.duration=function(a){if(!arguments.length)return d;d=a;return h},h.tooltip=function(a){if(!arguments.length)return e;e=a;return h},h.xTickFormat=function(a){if(!arguments.length)return f.xAxis.tickFormat();f.xAxis.tickFormat(typeof a=="function"?a:d3.format(a));return h},h.yTickFormat=function(a){if(!arguments.length)return f.yAxis.tickFormat();f.yAxis.tickFormat(typeof a=="function"?a:d3.format(a));return h},h.xAxisLabel=function(a){if(!arguments.length)return f.xAxis.axisLabel();f.xAxis.axisLabel(a);return h},h.yAxisLabel=function(a){if(!arguments.length)return f.yAxis.axisLabel();f.yAxis.axisLabel(a);return h},d3.rebind(h,f,"x","y"),h.graph=f;return h}})() \ No newline at end of file +(function(){function c(a,b,c){return function(d,e,f){var g=a(d),h=[];g1)while(gl+k&&(o=l-h-5);break;case"w":n=b[0]+e,o=b[1]-h/2,n+i>j&&(n=b[0]-i-e),ol+k&&(o=l-h-5);break;case"n":n=b[0]-i/2,o=b[1]+e,nj&&(n=j-i-5),o+h>l+k&&(o=b[1]-h-e);break;case"s":n=b[0]-i/2,o=b[1]-h-e,nj&&(n=j-i-5),l>o&&(o=b[1]+20)}f.style.left=n+"px",f.style.top=o+"px",f.style.opacity=1;return f},b.cleanup=function(){var a=document.getElementsByClassName("nvtooltip"),b=[];while(a.length)b.push(a[0]),a[0].style.transitionDelay="0 !important",a[0].style.opacity=0,a[0].className="nvtooltip-pending-removal";setTimeout(function(){while(b.length){var a=b.pop();a.parentNode.removeChild(a)}},500)}}(),a.utils.windowSize=function(){var a={width:640,height:480};document.body&&document.body.offsetWidth&&(a.width=document.body.offsetWidth,a.height=document.body.offsetHeight),document.compatMode=="CSS1Compat"&&document.documentElement&&document.documentElement.offsetWidth&&(a.width=document.documentElement.offsetWidth,a.height=document.documentElement.offsetHeight),window.innerWidth&&window.innerHeight&&(a.width=window.innerWidth,a.height=window.innerHeight);return a},a.utils.windowResize=function(a){var b=window.onresize;window.onresize=function(c){b(c),a(c)}},a.models.axis=function(){function e(f){f.each(function(e){(d.orient()=="top"||d.orient()=="bottom")&&d.ticks(Math.abs(a.range()[1]-a.range()[0])/100);var f=d3.select(this).selectAll("text.axislabel").data([b||null]);f.exit().remove();switch(d.orient()){case"top":f.enter().append("text").attr("class","axislabel").attr("text-anchor","middle").attr("y",0),f.attr("x",a.range()[1]/2);break;case"right":f.enter().append("text").attr("class","axislabel").attr("transform","rotate(90)").attr("y",-40),f.attr("x",-a.range()[0]/2);break;case"bottom":f.enter().append("text").attr("class","axislabel").attr("text-anchor","middle").attr("y",25),f.attr("x",a.range()[1]/2);break;case"left":f.enter().append("text").attr("class","axislabel").attr("transform","rotate(-90)").attr("y",-40),f.attr("x",-a.range()[0]/2)}f.text(function(a){return a}),d3.transition(d3.select(this)).call(d),c&&d3.select(this).selectAll("line.tick").filter(function(a){return!parseFloat(Math.round(a*1e5)/1e6)}).classed("zero",!0)});return e}var a=d3.scale.linear(),b=null,c=!0,d=d3.svg.axis().scale(a).orient("bottom");d3.rebind(e,d,"orient","ticks","tickValues","tickSubdivide","tickSize","tickPadding","tickFormat"),d3.rebind(e,a,"domain","range","rangeBand","rangeBands"),e.axisLabel=function(a){if(!arguments.length)return b;b=a;return e},e.highlightZero=function(a){if(!arguments.length)return c;c=a;return e},e.scale=function(b){if(!arguments.length)return a;a=b,d.scale(a),d3.rebind(e,a,"domain","range","rangeBand","rangeBands");return e};return e},a.models.bar=function(){function q(r){r.each(function(q){l.domain(q.map(function(a,b){return a[e]})).rangeRoundBands([0,b-a.left-a.right],.1);var r=d3.min(q,function(a){return a[j]}),s=d3.max(q,function(a){return a[j]}),t=Math.max(-r,s),u=-t;r>=0&&(u=0),m.domain([u,t]).range([c-a.top-a.bottom,0]).nice(),n.ticks(b/100),o.ticks(c/36).tickSize(-(b-a.right-a.left),0);var v=d3.select(this).on("click",function(a,b){p.chartClick({data:a,index:b,pos:d3.event,id:h})}),w=v.selectAll("g.wrap").data([q]),z=w.enter();z.append("text").attr("class","title").attr("dy",".91em").attr("text-anchor","start").text(k),z=z.append("g").attr("class","nvd3 wrap").attr("id","wrap-"+h).append("g"),z.append("g").attr("class","x axis"),z.append("g").attr("class","y axis"),z.append("g").attr("class","bars"),w.attr("width",b).attr("height",c);var A=w.select("g").attr("transform","translate("+a.left+","+a.top+")"),B=w.select(".bars").selectAll(".bar").data(function(a){return a});B.exit().remove();var C=B.enter().append("svg:rect").attr("class",function(a){return a[j]<0?"bar negative":"bar positive"}).attr("fill",function(a,b){return i(b)}).attr("x",0).on("mouseover",function(a,b){d3.select(this).classed("hover",!0),p.tooltipShow({label:a[e],value:a[j],data:a,index:b,pos:[d3.event.pageX,d3.event.pageY],id:h})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),p.tooltipHide({label:a[e],value:a[j],data:a,index:b,id:h})}).on("click",function(a,b){p.elementClick({label:a[e],value:a[j],data:a,index:b,pos:d3.event,id:h}),d3.event.stopPropagation()}).on("dblclick",function(a,b){p.elementDblClick({label:a[e],value:a[j],data:a,index:b,pos:d3.event,id:h}),d3.event.stopPropagation()});B.attr("class",function(a){return a[j]<0?"bar negative":"bar positive"}).attr("transform",function(a,b){return"translate("+l(a[e])+",0)"}).attr("width",l.rangeBand).order().transition().duration(d).attr("y",function(a){return m(Math.max(0,a[j]))}).attr("height",function(a){return Math.abs(m(a[j])-m(0))}),A.select(".x.axis").attr("transform","translate(0,"+m.range()[0]+")").call(n),f&&A.select(".x.axis").selectAll("text").attr("text-anchor","start").attr("transform",function(a){return"rotate(35)translate("+this.getBBox().height/2+","+"0"+")"}),g||(A.select(".x.axis").selectAll("text").attr("fill","rgba(0,0,0,0)"),A.select(".x.axis").selectAll("line").attr("style","opacity: 0")),A.select(".y.axis").call(o)});return q}var a={top:20,right:10,bottom:80,left:60},b=960,c=500,d=500,e="label",f=!0,g=!0,h=Math.floor(Math.random()*1e4),i=d3.scale.category20(),j="y",k="",l=d3.scale.ordinal(),m=d3.scale.linear(),n=d3.svg.axis().scale(l).orient("bottom"),o=d3.svg.axis().scale(m).orient("left"),p=d3.dispatch("chartClick","elementClick","elementDblClick","tooltipShow","tooltipHide");q.margin=function(b){if(!arguments.length)return a;a=b;return q},q.width=function(c){if(!arguments.length)return b;a.left+a.right+20>c?b=a.left+a.right+20:b=c;return q},q.height=function(b){if(!arguments.length)return c;a.top+a.bottom+20>b?c=a.top+a.bottom+20:c=b;return q},q.animate=function(a){if(!arguments.length)return d;d=a;return q},q.labelField=function(a){if(!arguments.length)return e;e=a;return q},q.dataField=function(a){if(!arguments.length)return j;j=a;return q},q.id=function(a){if(!arguments.length)return h;h=a;return q},q.rotatedLabel=function(a){if(!arguments.length)return f;f=a;return q},q.showLabels=function(a){if(!arguments.length)return g;g=a;return q},q.title=function(a){if(!arguments.length)return k;k=a;return q},q.xaxis={},d3.rebind(q.xaxis,n,"tickFormat"),q.yaxis={},d3.rebind(q.yaxis,o,"tickFormat"),q.dispatch=p;return q},a.models.historicalBar=function(){function r(g){g.each(function(g){var h=b-a.left-a.right,o=c-a.top-a.bottom;m.domain(k||d3.extent(g[0].values,e)).range([0,h]),n.domain(l||d3.extent(g[0].values,f)).range([o,0]);var p=d3.select(this).on("click",function(a,b){q.chartClick({data:a,index:b,pos:d3.event,id:d})}),r=d3.select(this).selectAll("g.wrap.bar").data([g[0].values]),s=r.enter().append("g").attr("class","wrap nvd3 bar"),t=s.append("g");t.append("g").attr("class","bars"),r.attr("width",b).attr("height",c);var u=r.select("g").attr("transform","translate("+a.left+","+a.top+")");s.append("defs").append("clipPath").attr("id","chart-clip-path-"+d).append("rect"),r.select("#chart-clip-path-"+d+" rect").attr("width",h).attr("height",o),t.attr("clip-path",i?"url(#chart-clip-path-"+d+")":"");var v=t.append("g").attr("class","shiftWrap"),w=r.select(".bars").selectAll(".bar").data(function(a){return a});w.exit().remove();var z=w.enter().append("svg:rect").attr("class",function(a,b){return f(a,b)<0?"bar negative":"bar positive"}).attr("fill",function(a,b){return j[0]}).attr("x",0).attr("y",function(a,b){return n(Math.max(0,f(a,b)))}).attr("height",function(a,b){return Math.abs(n(f(a,b))-n(0))}).on("mouseover",function(a,b){d3.select(this).classed("hover",!0),q.elementMouseover({point:a,series:g[0],pos:[m(e(a,b)),n(f(a,b))],pointIndex:b,seriesIndex:0,e:d3.event})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),q.elementMouseout({point:a,series:g[0],pointIndex:b,seriesIndex:0,e:d3.event})}).on("click",function(a,b){q.elementClick({value:f(a,b),data:a,index:b,pos:[m(e(a,b)),n(f(a,b))],e:d3.event,id:d}),d3.event.stopPropagation()}).on("dblclick",function(a,b){q.elementDblClick({value:f(a,b),data:a,index:b,pos:[m(e(a,b)),n(f(a,b))],e:d3.event,id:d}),d3.event.stopPropagation()});w.attr("class",function(a,b){return f(a,b)<0?"bar negative":"bar positive"}).attr("transform",function(a,b){return"translate("+(m(e(a,b))-m(.5))+",0)"}).attr("width",m(.9)),d3.transition(w).attr("y",function(a,b){return n(Math.max(0,f(a,b)))}).attr("height",function(a,b){return Math.abs(n(f(a,b))-n(0))})});return r}var a={top:0,right:0,bottom:0,left:0},b=960,c=500,d=Math.floor(Math.random()*1e4),e=function(a){return a.x},f=function(a){return a.y},g=[],h=[],i=!0,j=d3.scale.category20().range(),k,l,m=d3.scale.linear(),n=d3.scale.linear(),o=d3.svg.axis().scale(m).orient("bottom"),p=d3.svg.axis().scale(n).orient("left"),q=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout");r.dispatch=q,r.x=function(a){if(!arguments.length)return e;e=a;return r},r.y=function(a){if(!arguments.length)return f;f=a;return r},r.margin=function(b){if(!arguments.length)return a;a=b;return r},r.width=function(c){if(!arguments.length)return b;a.left+a.right+20>c?b=a.left+a.right+20:b=c;return r},r.height=function(b){if(!arguments.length)return c;a.top+a.bottom+20>b?c=a.top+a.bottom+20:c=b;return r},r.xDomain=function(a){if(!arguments.length)return k;k=a;return r},r.yDomain=function(a){if(!arguments.length)return l;l=a;return r},r.forceX=function(a){if(!arguments.length)return g;g=a;return r},r.forceY=function(a){if(!arguments.length)return h;h=a;return r},r.clipEdge=function(a){if(!arguments.length)return i;i=a;return r},r.color=function(a){if(!arguments.length)return j;j=a;return r},r.id=function(a){if(!arguments.length)return d;d=a;return r};return r},a.models.bullet=function(){function k(a){a.each(function(a,k){var l=d.call(this,a,k).slice().sort(d3.descending),m=e.call(this,a,k).slice().sort(d3.descending),n=f.call(this,a,k).slice().sort(d3.descending),o=d3.select(this),p=d3.scale.linear().domain([0,Math.max(l[0],m[0],n[0])]).range(b?[g,0]:[0,g]),q=this.__chart__||d3.scale.linear().domain([0,Infinity]).range(p.range());this.__chart__=p;var r=function(a){return Math.abs(q(a)-q(0))},s=function(a){return Math.abs(p(a)-p(0))},t=o.selectAll("rect.range").data(l);t.enter().append("rect").attr("class",function(a,b){return"range s"+b}).attr("width",r).attr("height",h).attr("x",b?q:0).on("mouseover",function(a,b){j.elementMouseover({value:a,label:b<=0?"Maximum":b>1?"Minimum":"Mean",pos:[p(a),h/2]})}).on("mouseout",function(a,b){j.elementMouseout({value:a,label:b<=0?"Minimum":b>=1?"Maximum":"Mean"})}).transition().duration(c).attr("width",s).attr("x",b?p:0),t.transition().duration(c).attr("x",b?p:0).attr("width",s).attr("height",h);var u=o.selectAll("rect.measure").data(n);u.enter().append("rect").attr("class",function(a,b){return"measure s"+b}).attr("width",r).attr("height",h/3).attr("x",b?q:0).attr("y",h/3).on("mouseover",function(a){j.elementMouseover({value:a,label:"Current",pos:[p(a),h/2]})}).on("mouseout",function(a){j.elementMouseout({value:a,label:"Current"})}).transition().duration(c).attr("width",s).attr("x",b?p:0),u.transition().duration(c).attr("width",s).attr("height",h/3).attr("x",b?p:0).attr("y",h/3);var v=o.selectAll("path.markerTriangle").data(m),w=h/6;v.enter().append("path").attr("class","markerTriangle").attr("transform",function(a){return"translate("+q(a)+","+h/2+")"}).attr("d","M0,"+w+"L"+w+","+ -w+" "+ -w+","+ -w+"Z").on("mouseover",function(a,b){j.elementMouseover({value:a,label:"Previous",pos:[p(a),h/2]})}).on("mouseout",function(a,b){j.elementMouseout({value:a,label:"Previous"})}),v.transition().duration(c).attr("transform",function(a){return"translate("+p(a)+","+h/2+")"}),v.exit().remove();var x=i||p.tickFormat(8),y=o.selectAll("g.tick").data(p.ticks(8),function(a){return this.textContent||x(a)}),z=y.enter().append("g").attr("class","tick").attr("transform",function(a){return"translate("+q(a)+",0)"}).style("opacity",1e-6);z.append("line").attr("y1",h).attr("y2",h*7/6),z.append("text").attr("text-anchor","middle").attr("dy","1em").attr("y",h*7/6).text(x),z.transition().duration(c).attr("transform",function(a){return"translate("+p(a)+",0)"}).style("opacity",1);var A=y.transition().duration(c).attr("transform",function(a){return"translate("+p(a)+",0)"}).style("opacity",1);A.select("line").attr("y1",h).attr("y2",h*7/6),A.select("text").attr("y",h*7/6),y.exit().transition().duration(c).attr("transform",function(a){return"translate("+p(a)+",0)"}).style("opacity",1e-6).remove()}),d3.timer.flush()}var a="left",b=!1,c=0,d=function(a){return a.ranges},e=function(a){return a.markers},f=function(a){return a.measures},g=380,h=30,i=null,j=d3.dispatch("elementMouseover","elementMouseout");k.dispatch=j,k.orient=function(c){if(!arguments.length)return a;a=c,b=a=="right"||a=="bottom";return k},k.ranges=function(a){if(!arguments.length)return d;d=a;return k},k.markers=function(a){if(!arguments.length)return e;e=a;return k},k.measures=function(a){if(!arguments.length)return f;f=a;return k},k.width=function(a){if(!arguments.length)return g;g=a;return k},k.height=function(a){if(!arguments.length)return h;h=a;return k},k.tickFormat=function(a){if(!arguments.length)return i;i=a;return k},k.duration=function(a){if(!arguments.length)return c;c=a;return k};return k},a.models.cumulativeLine=function(){function B(a,b){return b.map(function(b,c){var d=h(b.values[a],a);return{key:b.key,values:b.values.map(function(a,b){return{x:g(a,b),y:(h(a,b)-d)/(1+d)}}),disabled:b.disabled,hover:b.hover}})}function A(a){a.each(function(f){var g=c(),h=d(),x=g-b.left-b.right,y=h-b.top-b.bottom,z=B(u.i,f),C=z.filter(function(a){return!k||!a.disabled}).map(function(a){return a.values});l.domain(d3.extent(d3.merge(C),function(a){return a.x})).range([0,x]),m.domain([0,f[0].values.length-1]).range([0,x]).clamp(!0),n.domain(d3.extent(d3.merge(C),function(a){return a.y})).range([y,0]),s.width(x).height(y).color(f.map(function(a,b){return a.color||e[b%10]}).filter(function(a,b){return!f[b].disabled}));var D=d3.select(this).classed("chart-"+i,!0).selectAll("g.wrap").data([z]),E=D.enter().append("g").attr("class","wrap nvd3 cumulativeLine").append("g");E.append("g").attr("class","x axis"),E.append("g").attr("class","y axis"),E.append("g").attr("class","linesWrap"),E.append("g").attr("class","legendWrap"),E.append("g").attr("class","controlsWrap"),b.top=q.height();var F=D.select("g").attr("transform","translate("+b.left+","+b.top+")");q.width(g/2-b.right),F.select(".legendWrap").datum(f).attr("transform","translate("+(g/2-b.left)+","+ -b.top+")").call(q),j&&(r.width(140).color(["#444","#444","#444"]),F.select(".controlsWrap").datum(v).attr("transform","translate(0,"+ -b.top+")").call(r));var G=F.select(".linesWrap").datum(z.filter(function(a){return!a.disabled}));d3.transition(G).call(s);var H=G.selectAll(".indexLine").data([u]);H.enter().append("rect").attr("class","indexLine").attr("width",3).attr("x",-2).attr("fill","red").attr("fill-opacity",.5).call(w),H.attr("transform",function(a){return"translate("+m(a.i)+",0)"}).attr("height",y),o.domain(l.domain()).range(l.range()).ticks(g/100).tickSize(-y,0),F.select(".x.axis").attr("transform","translate(0,"+n.range()[0]+")"),d3.transition(F.select(".x.axis")).call(o),p.domain(n.domain()).range(n.range()).ticks(h/36).tickSize(-x,0),d3.transition(F.select(".y.axis")).call(p),q.dispatch.on("legendClick",function(b,c){b.disabled=!b.disabled,f.filter(function(a){return!a.disabled}).length||f.map(function(a){a.disabled=!1,D.selectAll(".series").classed("disabled",!1);return a}),a.transition().call(A)}),r.dispatch.on("legendClick",function(b,c){b.disabled=!b.disabled,k=!b.disabled,a.transition().call(A)}),s.dispatch.on("elementMouseover.tooltip",function(a){t.tooltipShow({point:a.point,series:a.series,pos:[a.pos[0]+b.left,a.pos[1]+b.top],seriesIndex:a.seriesIndex,pointIndex:a.pointIndex})}),s.dispatch.on("elementMouseout.tooltip",function(a){t.tooltipHide(a)})});return A}function z(a,b){d3.transition(d3.select(".chart-"+i)).call(A)}function y(a,b){a.x+=d3.event.dx,a.i=Math.round(m.invert(a.x)),d3.select(this).attr("transform","translate("+m(a.i)+",0)")}function x(a,b){}var b={top:30,right:20,bottom:30,left:60},c=function(){return 960},d=function(){return 500},e=d3.scale.category20().range(),f=function(){return 2.5},g=function(a){return a.x},h=function(a){return a.y},i=Math.floor(Math.random()*1e4),j=!0,k=!0,l=d3.scale.linear(),m=d3.scale.linear(),n=d3.scale.linear(),o=a.models.axis().scale(l).orient("bottom"),p=a.models.axis().scale(n).orient("left"),q=a.models.legend().height(30),r=a.models.legend().height(30),s=a.models.line(),t=d3.dispatch("tooltipShow","tooltipHide"),u={i:0,x:0},v=[{key:"Re-scale y-axis"}],w=d3.behavior.drag().on("dragstart",x).on("drag",y).on("dragend",z);A.dispatch=t,A.x=function(a){if(!arguments.length)return g;g=a;return A},A.y=function(a){if(!arguments.length)return h;h=a;return A},A.margin=function(a){if(!arguments.length)return b;b=a;return A},A.width=function(a){if(!arguments.length)return c;c=d3.functor(a);return A},A.height=function(a){if(!arguments.length)return d;d=d3.functor(a);return A},A.color=function(a){if(!arguments.length)return e;e=a,q.color(a);return A},A.dotRadius=function(a){if(!arguments.length)return f;f=d3.functor(a),s.dotRadius=a;return A},A.showRescaleToggle=function(a){if(!arguments.length)return j;j=a;return A},A.xAxis=o,A.yAxis=p;return A},a.models.legend=function(){function f(g){g.each(function(f){var g=d3.select(this).selectAll("g.legend").data([f]),h=g.enter().append("g").attr("class","nvd3 legend").append("g"),i=g.select("g").attr("transform","translate("+a.left+","+a.top+")"),j=i.selectAll(".series").data(function(a){return a}),k=j.enter().append("g").attr("class","series").on("mouseover",function(a,b){e.legendMouseover(a,b)}).on("mouseout",function(a,b){e.legendMouseout(a,b)}).on("click",function(a,b){e.legendClick(a,b)});k.append("circle").style("fill",function(a,b){return a.color||d[b%20]}).style("stroke",function(a,b){return a.color||d[b%20]}).style("stroke-width",2).attr("r",5),k.append("text").text(function(a){return a.key}).attr("text-anchor","start").attr("dy",".32em").attr("dx","8"),j.classed("disabled",function(a){return a.disabled}),j.exit().remove();var l=5,m=5,n=0,o;j.attr("transform",function(c,d){var e=d3.select(this).select("text").node().getComputedTextLength()+28;o=m,bn&&(n=m);return"translate("+o+","+l+")"}),i.attr("transform","translate("+(b-a.right-n)+","+a.top+")"),c=a.top+a.bottom+l+15});return f}var a={top:5,right:0,bottom:5,left:10},b=400,c=20,d=d3.scale.category20().range(),e=d3.dispatch("legendClick","legendMouseover","legendMouseout");f.dispatch=e,f.margin=function(b){if(!arguments.length)return a;a=b;return f},f.width=function(a){if(!arguments.length)return b;b=a;return f},f.height=function(a){if(!arguments.length)return c;c=a;return f},f.color=function(a){if(!arguments.length)return d;d=a;return f};return f},a.models.line=function(){function p(a){a.each(function(a){var o=c-b.left-b.right,p=d-b.top-b.bottom;m=m||j.xScale(),n=n||j.yScale();var q=d3.select(this).selectAll("g.wrap.line").data([a]),r=q.enter().append("g").attr("class","wrap nvd3 line"),s=r.append("defs"),t=r.append("g"),u=q.select("g");r.append("g").attr("class","scatterWrap");var v=q.select(".scatterWrap").datum(a);t.append("g").attr("class","groups"),j.id(f).width(o).height(p),d3.transition(v).call(j),k=j.xScale(),l=j.yScale(),q.attr("transform","translate("+b.left+","+b.top+")"),s.append("clipPath").attr("id","edge-clip-"+f).append("rect"),q.select("#edge-clip-"+f+" rect").attr("width",o).attr("height",p),u.attr("clip-path",i?"url(#edge-clip-"+f+")":""),v.attr("clip-path",i?"url(#edge-clip-"+f+")":"");var w=q.select(".groups").selectAll(".group").data(function(a){return a},function(a){return a.key});w.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),d3.transition(w.exit()).style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),w.attr("class",function(a,b){return"group series-"+b}).classed("hover",function(a){return a.hover}).style("fill",function(a,b){return e[b%20]}).style("stroke",function(a,b){return e[b%20]}),d3.transition(w).style("stroke-opacity",1).style("fill-opacity",.5);var z=w.selectAll("path").data(function(a,b){return[a.values]});z.enter().append("path").attr("d",d3.svg.line().x(function(a,b){return m(g(a,b))}).y(function(a,b){return n(h(a,b))})),d3.transition(w.exit().selectAll("path")).attr("d",d3.svg.line().x(function(a,b){return k(g(a,b))}).y(function(a,b){return l(h(a,b))})).remove(),d3.transition(z).attr("d",d3.svg.line().x(function(a,b){return k(g(a,b))}).y(function(a,b){return l(h(a,b))})),m=k.copy(),n=l.copy()});return p}var b={top:0,right:0,bottom:0,left:0},c=960,d=500,e=d3.scale.category20().range(),f=Math.floor(Math.random()*1e4),g=function(a){return a.x},h=function(a){return a.y},i=!1,j=a.models.scatter().size(2.5).sizeDomain([2.5]),k,l,m,n,o;p.dispatch=j.dispatch,d3.rebind(p,j,"interactive","size","xScale","yScale","zScale","xDomain","yDomain","sizeDomain","forceX","forceY","forceSize","clipVoronoi","clipRadius"),p.margin=function(a){if(!arguments.length)return b;b=a;return p},p.width=function(a){if(!arguments.length)return c;c=a;return p},p.height=function(a){if(!arguments.length)return d;d=a;return p},p.x=function(a){if(!arguments.length)return g;g=a,j.x(a);return p},p.y=function(a){if(!arguments.length)return h;h=a,j.y(a);return p},p.clipEdge=function(a){if(!arguments.length)return i;i=a;return p},p.color=function(a){if(!arguments.length)return e;e=a,j.color(a);return p},p.id=function(a){if(!arguments.length)return f;f=a;return p};return p},a.models.linePlusBar=function(){function s(a){a.each(function(e){var t=c(),u=d(),v=t-b.left-b.right,w=u-b.top-b.bottom,y=e.filter(function(a){return!a.disabled&&a.bar}).map(function(a){return a.values.map(function(a,b){return{x:f(a,b),y:g(a,b)}})}),z=e.filter(function(a){return!a.disabled&&!a.bar}).map(function(a){return a.values.map(function(a,b){return{x:f(a,b),y:g(a,b)}})});j.domain(d3.extent(d3.merge(y.concat(z)),function(a){return a.x})).range([0,v]),k.domain(d3.extent(d3.merge(y),function(a){return a.y})).range([w,0]),l.domain(d3.extent(d3.merge(z),function(a){return a.y})).range([w,0]),q.width(v).height(w).color(e.map(function(a,b){return a.color||h[b%10]}).filter(function(a,b){return!e[b].disabled&&!e[b].bar})),r.width(v).height(w).color(e.map(function(a,b){return a.color||h[b%10]}).filter(function(a,b){return!e[b].disabled&&e[b].bar}));var A=d3.select(this).selectAll("g.wrap.linePlusBar").data([e]),B=A.enter().append("g").attr("class","wrap nvd3 linePlusBar").append("g");B.append("g").attr("class","x axis"),B.append("g").attr("class","y1 axis"),B.append("g").attr("class","y2 axis"),B.append("g").attr("class","barsWrap"),B.append("g").attr("class","linesWrap"),B.append("g").attr("class","legendWrap"),p.dispatch.on("legendClick",function(b,c){b.disabled=!b.disabled,e.filter(function(a){return!a.disabled}).length||e.map(function(a){a.disabled=!1,A.selectAll(".series").classed("disabled",!1);return a}),a.transition().call(s)}),q.dispatch.on("elementMouseover.tooltip",function(a){i.tooltipShow({point:a.point,series:a.series,pos:[a.pos[0]+b.left,a.pos[1]+b.top],seriesIndex:a.seriesIndex,pointIndex:a.pointIndex})}),q.dispatch.on("elementMouseout.tooltip",function(a){i.tooltipHide(a)}),r.dispatch.on("elementMouseover.tooltip",function(a){a.pos=[a.pos[0]+b.left,a.pos[1]+b.top],i.tooltipShow(a)}),r.dispatch.on("elementMouseout.tooltip",function(a){i.tooltipHide(a)}),b.top=p.height();var C=A.select("g").attr("transform","translate("+b.left+","+b.top+")");p.width(t/2-b.right),C.select(".legendWrap").datum(e.map(function(a){a.key=a.key+(a.bar?" (left axis)":" (right axis)");return a})).attr("transform","translate("+(t/2-b.left)+","+ -b.top+")").call(p);var D=e.filter(function(a){return!a.disabled&&a.bar}),E=C.select(".barsWrap").datum(D.length?D:[{values:[]}]),F=C.select(".linesWrap").datum(e.filter(function(a){return!a.disabled&&!a.bar}));d3.transition(E).call(r),d3.transition(F).call(q),m.domain(j.domain()).range(j.range()).ticks(t/100).tickSize(-w,0),C.select(".x.axis").attr("transform","translate(0,"+k.range()[0]+")"),d3.transition(C.select(".x.axis")).call(m),n.domain(k.domain()).range(k.range()).ticks(u/36).tickSize(-v,0),d3.transition(C.select(".y1.axis")).call(n),o.domain(l.domain()).range(l.range()).ticks(u/36).tickSize(y.length?0:-v,0),C.select(".y2.axis").attr("transform","translate("+j.range()[1]+",0)"),d3.transition(C.select(".y2.axis")).call(o)});return s}var b={top:30,right:60,bottom:50,left:60},c=function(){return 960},d=function(){return 500},e=function(){return 2.5},f=function(a){return a.x},g=function(a){return a.y},h=d3.scale.category20().range(),i=d3.dispatch("tooltipShow","tooltipHide"),j=d3.scale.linear(),k=d3.scale.linear(),l=d3.scale.linear(),m=a.models.axis().scale(j).orient("bottom"),n=a.models.axis().scale(k).orient("left"),o=a.models.axis().scale(l).orient("right"),p=a.models.legend().height(30),q=a.models.line(),r=a.models.historicalBar();s.dispatch=i,s.legend=p,s.lines=q,s.bars=r,s.xAxis=m,s.yAxis1=n,s.yAxis2=o,s.x=function(a){if(!arguments.length)return f;f=a,q.x(a),r.x(a);return s},s.y=function(a){if(!arguments.length)return g;g=a,q.y(a),r.y(a);return s},s.margin=function(a){if(!arguments.length)return b;b=a;return s},s.width=function(a){if(!arguments.length)return c;c=d3.functor(a);return s},s.height=function(a){if(!arguments.length)return d;d=d3.functor(a);return s},s.dotRadius=function(a){if(!arguments.length)return e;e=d3.functor(a),q.dotRadius=a;return s},s.color=function(a){if(!arguments.length)return h;h=a,p.color(a);return s};return s},a.models.lineWithFocus=function(){function y(a){a.each(function(k){function L(){var a=x.empty()?o.domain():d3.extent(d3.merge(z).filter(function(a){return i(a)>=x.extent()[0]&&i(a)<=x.extent()[1]}),j);typeof a[0]=="undefined"&&(a=o.domain()),l.domain(x.empty()?n.domain():x.extent()),m.domain(a),u.xDomain(l.domain()),u.yDomain(m.domain())}function K(){L(),H.call(u),D.select(".x.axis").call(p),D.select(".y.axis").call(q)}var z=k.filter(function(a){return!a.disabled}).map(function(a){return a.values}),A=d-b.left-b.right,B=f-b.top-b.bottom,C=g-c.top-c.bottom;n.domain(d3.extent(d3.merge(z),i)).range([0,A]),o.domain(d3.extent(d3.merge(z),j)).range([C,0]),l.domain(x.empty()?n.domain():x.extent()).range([0,A]),m.domain(o.domain()).range([B,0]),x.on("brush",K),u.width(A).height(B).color(k.map(function(a,b){return a.color||h[b%10]}).filter(function(a,b){return!k[b].disabled})),v.width(A).height(C).color(k.map(function(a,b){return a.color||h[b%10]}).filter(function(a,b){return!k[b].disabled})),L();var D=d3.select(this).selectAll("g.wrap").data([k]),E=D.enter().append("g").attr("class","wrap nvd3 lineWithFocus").append("g");E.append("g").attr("class","focus"),E.append("g").attr("class","context"),E.append("g").attr("class","legendWrap");var F=D.select("g");t.width(d/2-b.right),F.select(".legendWrap").datum(k).attr("transform","translate("+A/2+",0)").call(t),b.top=t.height();var G=F.select(".focus").attr("transform","translate("+b.left+","+b.top+")");E.select(".focus").append("g").attr("class","x axis"),E.select(".focus").append("g").attr("class","y axis"),E.select(".focus").append("g").attr("class","focusLines");var H=G.select(".focusLines").datum(k.filter(function(a){return!a.disabled}));d3.transition(H).call(u),p.domain(l.domain()).range(l.range()).ticks(d/100).tickSize(-B,0),G.select(".x.axis").attr("transform","translate(0,"+m.range()[0]+")"),d3.transition(F.select(".x.axis")).call(p),q.domain(m.domain()).range(m.range()).ticks(e/36).tickSize(-A,0),d3.transition(F.select(".y.axis")).call(q);var I=F.select(".context").attr("transform","translate("+c.left+","+f+")");E.select(".context").append("g").attr("class","x2 axis"),E.select(".context").append("g").attr("class","y2 axis"),E.select(".context").append("g").attr("class","contextLines"),E.select(".context").append("g").attr("class","x brush").attr("class","x brush").call(x).selectAll("rect").attr("y",-5).attr("height",g+4);var J=I.select(".contextLines").datum(k.filter(function(a){return!a.disabled}));d3.transition(J).call(v),r.domain(n.domain()).range(n.range()).ticks(d/100).tickSize(-C,0),I.select(".x2.axis").attr("transform","translate(0,"+o.range()[0]+")"),d3.transition(I.select(".x2.axis")).call(r),s.domain(o.domain()).range(o.range()).ticks(C/24).tickSize(-A,0),I.select(".y2.axis"),d3.transition(I.select(".y2.axis")).call(s),t.dispatch.on("legendClick",function(b,c){b.disabled=!b.disabled,k.filter(function(a){return!a.disabled}).length||k.map(function(a){a.disabled=!1,D.selectAll(".series").classed("disabled",!1);return a}),a.transition().call(y)}),u.dispatch.on("elementMouseover.tooltip",function(a){w.tooltipShow({point:a.point,series:a.series,pos:[a.pos[0]+b.left,a.pos[1]+b.top],seriesIndex:a.seriesIndex,pointIndex:a.pointIndex})}),u.dispatch.on("elementMouseout.tooltip",function(a){w.tooltipHide(a)})});return y}var b={top:30,right:20,bottom:30,left:60},c={top:0,right:20,bottom:20,left:60},d=960,e=500,f=400,g=100,h=d3.scale.category20().range(),i=function(a){return a.x},j=function(a){return a.y},k=Math.floor(Math.random()*1e4),l=d3.scale.linear(),m=d3.scale.linear(),n=d3.scale.linear(),o=d3.scale.linear(),p=a.models.axis().scale(l).orient("bottom"),q=a.models.axis().scale(m).orient("left"),r=a.models.axis().scale(n).orient("bottom"),s=a.models.axis().scale(o).orient("left"),t=a.models.legend().height(30),u=a.models.line().clipEdge(!0),v=a.models.line().interactive(!1),w=d3.dispatch("tooltipShow","tooltipHide"),x=d3.svg.brush().x(n);y.dispatch=w,y.x=function(a){if(!arguments.length)return i;i=a,u.x(a),v.x(a);return y},y.y=function(a){if(!arguments.length)return j;j=a,u.y(a),v.y(a);return y},y.margin=function(a){if(!arguments.length)return b;b=a;return y},y.width=function(a){if(!arguments.length)return d;d=a;return y},y.height=function(a){if(!arguments.length)return e;e=a,f=a-g;return y},y.contextHeight=function(a){if(!arguments.length)return g;g=a,f=e-a;return y},y.id=function(a){if(!arguments.length)return k;k=a;return y},y.xTickFormat=function(a){if(!arguments.length)return l.tickFormat();p.tickFormat(a),r.tickFormat(a);return y},y.yTickFormat=function(a){if(!arguments.length)return m.tickFormat();q.tickFormat(a),s.tickFormat(a);return y},y.xAxis=p,y.yAxis=q;return y},a.models.lineWithLegend=function(){function m(a){a.each(function(n){var o=n.filter(function(a){return!a.disabled}).map(function(a){return a.values.map(function(a,b){return{x:k.x()(a,b),y:k.y()(a,b)}})}), +p=c()-b.left-b.right,q=d()-b.top-b.bottom;f.domain(d3.extent(d3.merge(o).map(function(a){return a.x}).concat(k.forceX))).range([0,p]),g.domain(d3.extent(d3.merge(o).map(function(a){return a.y}).concat(k.forceY))).range([q,0]),k.width(p).height(q).xDomain(f.domain()).yDomain(g.domain()).color(n.map(function(a,b){return a.color||e[b%10]}).filter(function(a,b){return!n[b].disabled}));var r=d3.select(this).selectAll("g.wrap.lineWithLegend").data([n]),s=r.enter().append("g").attr("class","wrap nvd3 lineWithLegend").append("g");s.append("g").attr("class","x axis"),s.append("g").attr("class","y axis"),s.append("g").attr("class","linesWrap"),s.append("g").attr("class","legendWrap"),b.top=j.height();var t=r.select("g").attr("transform","translate("+b.left+","+b.top+")");j.width(p/2),t.select(".legendWrap").datum(n).attr("transform","translate("+p/2+","+ -b.top+")").call(j);var u=t.select(".linesWrap").datum(n.filter(function(a){return!a.disabled}));d3.transition(u).call(k),h.domain(f.domain()).range(f.range()).ticks(p/100).tickSize(-q,0),t.select(".x.axis").attr("transform","translate(0,"+g.range()[0]+")"),d3.transition(t.select(".x.axis")).call(h),i.domain(g.domain()).range(g.range()).ticks(q/36).tickSize(-p,0),d3.transition(t.select(".y.axis")).call(i),j.dispatch.on("legendClick",function(b,c){b.disabled=!b.disabled,n.filter(function(a){return!a.disabled}).length||n.map(function(a){a.disabled=!1,r.selectAll(".series").classed("disabled",!1);return a}),a.transition().call(m)}),k.dispatch.on("elementMouseover.tooltip",function(a){l.tooltipShow({point:a.point,series:a.series,pos:[a.pos[0]+b.left,a.pos[1]+b.top],seriesIndex:a.seriesIndex,pointIndex:a.pointIndex})}),k.dispatch.on("elementMouseout.tooltip",function(a){l.tooltipHide(a)})});return m}var b={top:30,right:20,bottom:50,left:60},c=function(){return 960},d=function(){return 500},e=d3.scale.category20().range(),f=d3.scale.linear(),g=d3.scale.linear(),h=a.models.axis().scale(f).orient("bottom"),i=a.models.axis().scale(g).orient("left"),j=a.models.legend().height(30),k=a.models.line(),l=d3.dispatch("tooltipShow","tooltipHide");m.dispatch=l,m.legend=j,m.xAxis=h,m.yAxis=i,d3.rebind(m,k,"x","y","size","xDomain","yDomain","forceX","forceY","interactive","clipEdge","clipVoronoi","id"),m.margin=function(a){if(!arguments.length)return b;b=a;return m},m.width=function(a){if(!arguments.length)return c;c=d3.functor(a);return m},m.height=function(a){if(!arguments.length)return d;d=d3.functor(a);return m};return m},a.models.multiBar=function(){function r(s){s.each(function(t){var u=b-a.left-a.right,v=c-a.top-a.bottom;m=m||o,n=n||p,i&&(t=d3.layout.stack().offset("zero").values(function(a){return a.values}).y(f)(t)),t=t.map(function(a,b){a.values=a.values.map(function(a){a.series=b;return a});return a});var w=k&&l?[]:t.map(function(a){return a.values.map(function(a,b){return{x:e(a,b),y:f(a,b),y0:a.y0}})});o.domain(d3.merge(w).map(function(a){return a.x})).rangeBands([0,u],.1),p.domain(l||[0,d3.max(d3.merge(w).map(function(a){return a.y+(i?a.y0:0)}).concat(g))]).range([v,0]);var z=d3.select(this).selectAll("g.wrap.multibar").data([t]),A=z.enter().append("g").attr("class","wrap nvd3 multibar"),B=A.append("defs"),C=A.append("g");C.append("g").attr("class","groups");var D=z.select("g");z.attr("transform","translate("+a.left+","+a.top+")"),B.append("clipPath").attr("id","edge-clip-"+d).append("rect"),z.select("#edge-clip-"+d+" rect").attr("width",u).attr("height",v),D.attr("clip-path",h?"url(#edge-clip-"+d+")":"");var E=z.select(".groups").selectAll(".group").data(function(a){return a},function(a){return a.key});E.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),d3.transition(E.exit()).style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),E.attr("class",function(a,b){return"group series-"+b}).classed("hover",function(a){return a.hover}).style("fill",function(a,b){return j[b%10]}).style("stroke",function(a,b){return j[b%10]}),d3.transition(E).style("stroke-opacity",1).style("fill-opacity",.75);var F=E.selectAll("rect.bar").data(function(a){return a.values});F.exit().remove();var G=F.enter().append("rect").attr("class",function(a,b){return f(a,b)<0?"bar negative":"bar positive"}).attr("x",function(a,b,c){return i?0:c*o.rangeBand()/t.length}).attr("y",function(a){return n(i?a.y0:0)}).attr("height",0).attr("width",o.rangeBand()/(i?1:t.length)).on("mouseover",function(a,b){d3.select(this).classed("hover",!0),q.elementMouseover({value:f(a,b),point:a,series:t[a.series],pos:[o(e(a,b))+o.rangeBand()*(i?t.length/2:a.series+.5)/t.length,p(f(a,b)+(i?a.y0:0))],pointIndex:b,seriesIndex:a.series,e:d3.event})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),q.elementMouseout({value:f(a,b),point:a,series:t[a.series],pointIndex:b,seriesIndex:a.series,e:d3.event})}).on("click",function(a,b){q.elementClick({value:f(a,b),point:a,series:t[a.series],pos:[o(e(a,b))+o.rangeBand()*(i?t.length/2:a.series+.5)/t.length,p(f(a,b)+(i?a.y0:0))],pointIndex:b,seriesIndex:a.series,e:d3.event}),d3.event.stopPropagation()}).on("dblclick",function(a,b){q.elementDblClick({value:f(a,b),point:a,series:t[a.series],pos:[o(e(a,b))+o.rangeBand()*(i?t.length/2:a.series+.5)/t.length,p(f(a,b)+(i?a.y0:0))],pointIndex:b,seriesIndex:a.series,e:d3.event}),d3.event.stopPropagation()});F.attr("class",function(a,b){return f(a,b)<0?"bar negative":"bar positive"}).attr("transform",function(a,b){return"translate("+o(e(a,b))+",0)"}),i?d3.transition(F).delay(function(a,b){return b*1e3/t[0].values.length}).attr("y",function(a,b){return p(f(a,b)+(i?a.y0:0))}).attr("height",function(a,b){return Math.abs(p(a.y+(i?a.y0:0))-p(i?a.y0:0))}).each("end",function(){d3.transition(d3.select(this)).attr("x",function(a,b){return i?0:a.series*o.rangeBand()/t.length}).attr("width",o.rangeBand()/(i?1:t.length))}):d3.transition(F).delay(function(a,b){return b*1200/t[0].values.length}).attr("x",function(a,b){return a.series*o.rangeBand()/t.length}).attr("width",o.rangeBand()/t.length).each("end",function(){d3.transition(d3.select(this)).attr("y",function(a,b){return p(f(a,b))}).attr("height",function(a,b){return Math.abs(p(a.y)-p(0))})}),r.update=function(){s.transition().call(r)},m=o.copy(),n=p.copy()});return r}var a={top:0,right:0,bottom:0,left:0},b=960,c=500,d=Math.floor(Math.random()*1e4),e=function(a){return a.x},f=function(a){return a.y},g=[],h=!0,i=!1,j=d3.scale.category20().range(),k,l,m,n,o=d3.scale.ordinal(),p=d3.scale.linear(),q=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout");r.dispatch=q,r.x=function(a){if(!arguments.length)return e;e=a;return r},r.y=function(a){if(!arguments.length)return f;f=a;return r},r.margin=function(b){if(!arguments.length)return a;a=b;return r},r.width=function(a){if(!arguments.length)return b;b=a;return r},r.height=function(a){if(!arguments.length)return c;c=a;return r},r.xDomain=function(a){if(!arguments.length)return k;k=a;return r},r.yDomain=function(a){if(!arguments.length)return l;l=a;return r},r.forceY=function(a){if(!arguments.length)return g;g=a;return r},r.stacked=function(a){if(!arguments.length)return i;i=a;return r},r.clipEdge=function(a){if(!arguments.length)return h;h=a;return r},r.color=function(a){if(!arguments.length)return j;j=a;return r},r.id=function(a){if(!arguments.length)return d;d=a;return r};return r},a.models.multiBarWithLegend=function(){function o(a){a.each(function(p){var q=c()-b.left-b.right,r=d()-b.top-b.bottom,s;l.stacked()?s=p.filter(function(a){return!a.disabled}).reduce(function(a,b,c){b.values.forEach(function(b,d){c||(a[d]={x:l.x()(b,d),y:0}),a[d].y+=l.y()(b,d)});return a},[]):s=p.filter(function(a){return!a.disabled}).map(function(a){return a.values.map(function(a,b){return{x:l.x()(a,b),y:l.y()(a,b)}})}),f.domain(d3.merge(s).map(function(a){return a.x})).rangeBands([0,q],.1),g.domain(d3.extent(d3.merge(s).map(function(a){return a.y}).concat(l.forceY))).range([r,0]),l.width(q).height(r).color(p.map(function(a,b){return a.color||e[b%10]}).filter(function(a,b){return!p[b].disabled}));var t=d3.select(this).selectAll("g.wrap.multiBarWithLegend").data([p]),u=t.enter().append("g").attr("class","wrap nvd3 multiBarWithLegend").append("g");u.append("g").attr("class","x axis"),u.append("g").attr("class","y axis"),u.append("g").attr("class","linesWrap"),u.append("g").attr("class","legendWrap"),u.append("g").attr("class","controlsWrap"),b.top=j.height();var v=t.select("g").attr("transform","translate("+b.left+","+b.top+")");j.width(q/2),v.select(".legendWrap").datum(p).attr("transform","translate("+q/2+","+ -b.top+")").call(j),k.width(180).color(["#444","#444","#444"]),v.select(".controlsWrap").datum(n).attr("transform","translate(0,"+ -b.top+")").call(k);var w=v.select(".linesWrap").datum(p.filter(function(a){return!a.disabled}));d3.transition(w).call(l),h.scale(f).ticks(q/100).tickSize(-r,0),v.select(".x.axis").attr("transform","translate(0,"+g.range()[0]+")"),d3.transition(v.select(".x.axis")).call(h);var z=v.select(".x.axis").selectAll("g");z.selectAll("line, text").style("opacity",1),z.filter(function(a,b){return b%Math.ceil(p[0].values.length/(q/100))!==0}).selectAll("line, text").style("opacity",0),i.domain(g.domain()).range(g.range()).ticks(r/36).tickSize(-q,0),d3.transition(v.select(".y.axis")).call(i),j.dispatch.on("legendClick",function(b,c){b.disabled=!b.disabled,p.filter(function(a){return!a.disabled}).length||p.map(function(a){a.disabled=!1,t.selectAll(".series").classed("disabled",!1);return a}),a.transition().call(o)}),k.dispatch.on("legendClick",function(b,c){if(!!b.disabled){n=n.map(function(a){a.disabled=!0;return a}),b.disabled=!1;switch(b.key){case"Grouped":l.stacked(!1);break;case"Stacked":l.stacked(!0)}a.transition().call(o)}}),l.dispatch.on("elementMouseover.tooltip",function(a){a.pos=[a.pos[0]+b.left,a.pos[1]+b.top],m.tooltipShow(a)}),l.dispatch.on("elementMouseout.tooltip",function(a){m.tooltipHide(a)})});return o}var b={top:30,right:20,bottom:50,left:60},c=function(){return 960},d=function(){return 500},e=d3.scale.category20().range(),f=d3.scale.ordinal(),g=d3.scale.linear(),h=a.models.axis().scale(f).orient("bottom").highlightZero(!1),i=a.models.axis().scale(g).orient("left"),j=a.models.legend().height(30),k=a.models.legend().height(30),l=a.models.multiBar().stacked(!1),m=d3.dispatch("tooltipShow","tooltipHide"),n=[{key:"Grouped"},{key:"Stacked",disabled:!0}];o.dispatch=m,o.legend=j,o.xAxis=h,o.yAxis=i,d3.rebind(o,l,"x","y","xDomain","yDomain","forceX","forceY","clipEdge","id"),o.margin=function(a){if(!arguments.length)return b;b=a;return o},o.width=function(a){if(!arguments.length)return c;c=d3.functor(a);return o},o.height=function(a){if(!arguments.length)return d;d=d3.functor(a);return o};return o},a.models.pie=function(){function p(m){m.each(function(m){function z(a){a.innerRadius=0;var b=d3.interpolate({startAngle:0,endAngle:0},a);return function(a){return t(b(a))}}function y(a){var b=(a.startAngle+a.endAngle)*90/Math.PI-90;return b>90?b-180:b}var n=d3.select(this).on("click",function(a,b){o.chartClick({data:a,index:b,pos:d3.event,id:h})}),p=n.selectAll("svg.margin").data([m]),q=p.enter();q.append("text").attr("class","title").attr("dy",".91em").attr("text-anchor","start").text(l),q.append("svg").attr("class","margin").attr("x",a.left).attr("y",a.top).style("overflow","visible");var r=p.selectAll("g.wrap").data([m]);r.exit().remove();var s=r.enter();s.append("g").attr("class","wrap").attr("id","wrap-"+h).append("g").attr("class","pie"),r.attr("width",b).attr("height",c).attr("transform","translate("+e+","+e+")");var t=d3.svg.arc().outerRadius(e-e/5);k&&t.innerRadius(e/2);var u=d3.layout.pie().value(function(a){return a[g]}),v=p.select(".pie").selectAll(".slice").data(u);v.exit().remove();var w=v.enter().append("svg:g").attr("class","slice").on("mouseover",function(a,b){d3.select(this).classed("hover",!0),o.tooltipShow({label:a.data[f],value:a.data[g],data:a.data,index:b,pos:[d3.event.pageX,d3.event.pageY],id:h})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),o.tooltipHide({label:a.data[f],value:a.data[g],data:a.data,index:b,id:h})}).on("click",function(a,b){o.elementClick({label:a.data[f],value:a.data[g],data:a.data,index:b,pos:d3.event,id:h}),d3.event.stopPropagation()}).on("dblclick",function(a,b){o.elementDblClick({label:a.data[f],value:a.data[g],data:a.data,index:b,pos:d3.event,id:h}),d3.event.stopPropagation()}),x=w.append("svg:path").attr("class","path").attr("fill",function(a,b){return i(b)});v.select(".path").attr("d",t).transition().ease("bounce").duration(d).attrTween("d",z),j&&(w.append("text"),v.select("text").transition().duration(d).ease("bounce").attr("transform",function(a){a.outerRadius=e+10,a.innerRadius=e+15;return"translate("+t.centroid(a)+")"}).attr("text-anchor","middle").style("font","bold 12px Arial").text(function(a,b){return a.data[f]}))});return p}var a={top:20,right:20,bottom:20,left:20},b=500,c=500,d=2e3,e=Math.min(b-(a.right+a.left),c-(a.top+a.bottom))/2,f="label",g="y",h=Math.floor(Math.random()*1e4),i=d3.scale.category20(),j=!0,k=!1,l="",m=0,n=0,o=d3.dispatch("chartClick","elementClick","elementDblClick","tooltipShow","tooltipHide");p.margin=function(b){if(!arguments.length)return a;a=b;return p},p.width=function(d){if(!arguments.length)return b;a.left+a.right+20>d?b=a.left+a.right+20:b=d,e=Math.min(b-(a.left+a.right),c-(a.top+a.bottom))/2;return p},p.height=function(d){if(!arguments.length)return c;a.top+a.bottom+20>d?c=a.top+a.bottom+20:c=d,e=Math.min(b-(a.left+a.right),c-(a.top+a.bottom))/2;return p},p.animate=function(a){if(!arguments.length)return d;d=a;return p},p.labelField=function(a){if(!arguments.length)return f;f=a;return p},p.dataField=function(a){if(!arguments.length)return g;g=a;return p},p.showLabels=function(a){if(!arguments.length)return j;j=a;return p},p.donut=function(a){if(!arguments.length)return k;k=a;return p},p.title=function(a){if(!arguments.length)return l;l=a;return p},p.id=function(a){if(!arguments.length)return h;h=a;return p},p.dispatch=o;return p},a.models.scatter=function(){function A(B){B.each(function(A){function J(){if(!o){E.select("#points-clip-"+e).remove(),E.select(".point-paths").remove();return!1}H.append("g").attr("class","point-paths");var b=d3.merge(A.map(function(a,b){return a.values.map(function(a,c){return[f(i(a,c))*(Math.random()/1e12+1),g(j(a,c))*(Math.random()/1e12+1),b,c]})}));if(q){G.append("clipPath").attr("id","points-clip-"+e);var c=E.select("#points-clip-"+e).selectAll("circle").data(b);c.enter().append("circle").attr("r",r),c.exit().remove(),c.attr("cx",function(a){return a[0]}).attr("cy",function(a){return a[1]}),E.select(".point-paths").attr("clip-path","url(#points-clip-"+e+")")}var d=d3.geom.voronoi(b).map(function(a,c){return{data:a,series:b[c][2],point:b[c][3]}}),h=E.select(".point-paths").selectAll("path").data(d);h.enter().append("path").attr("class",function(a,b){return"path-"+b}),h.exit().remove(),h.attr("d",function(a){return"M"+a.data.join(",")+"Z"}).on("click",function(b){var c=A[b.series],d=c.values[b.point];v.elementClick({point:d,series:c,pos:[f(i(d,b.point))+a.left,g(j(d,b.point))+a.top],seriesIndex:b.series,pointIndex:b.point})}).on("mouseover",function(b){var c=A[b.series],d=c.values[b.point];v.elementMouseover({point:d,series:c,pos:[f(i(d,b.point))+a.left,g(j(d,b.point))+a.top],seriesIndex:b.series,pointIndex:b.point})}).on("mouseout",function(a,b){v.elementMouseout({point:A[a.series].values[a.point],series:A[a.series],seriesIndex:a.series,pointIndex:a.point})}),v.on("elementMouseover.point",function(a){E.select(".series-"+a.seriesIndex+" .point-"+a.pointIndex).classed("hover",!0)}),v.on("elementMouseout.point",function(a){E.select(".series-"+a.seriesIndex+" circle.point-"+a.pointIndex).classed("hover",!1)})}var B=b-a.left-a.right,C=c-a.top-a.bottom;w=w||f,x=x||g,y=y||h,A=A.map(function(a,b){a.values=a.values.map(function(a){a.series=b;return a});return a});var D=s&&t&&u?[]:A.map(function(a){return a.values.map(function(a,b){return{x:i(a,b),y:j(a,b),size:k(a,b)}})});f.domain(s||d3.extent(d3.merge(D).map(function(a){return a.x}).concat(l))).range([0,B]),g.domain(t||d3.extent(d3.merge(D).map(function(a){return a.y}).concat(m))).range([C,0]),h.domain(u||d3.extent(d3.merge(D).map(function(a){return a.size}).concat(n))).range([2,10]);var E=d3.select(this).selectAll("g.wrap.scatter").data([A]),F=E.enter().append("g").attr("class","wrap nvd3 scatter"),G=F.append("defs"),H=F.append("g"),I=E.select("g");H.append("g").attr("class","groups"),E.attr("transform","translate("+a.left+","+a.top+")"),G.append("clipPath").attr("id","edge-clip-"+e).append("rect"),E.select("#edge-clip-"+e+" rect").attr("width",B).attr("height",C),I.attr("clip-path",p?"url(#edge-clip-"+e+")":"");var K=E.select(".groups").selectAll(".group").data(function(a){return a},function(a){return a.key});K.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),d3.transition(K.exit()).style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),K.attr("class",function(a,b){return"group series-"+b}).classed("hover",function(a){return a.hover}),d3.transition(K).style("fill",function(a,b){return d[b%20]}).style("stroke",function(a,b){return d[b%20]}).style("stroke-opacity",1).style("fill-opacity",.5);var L=K.selectAll("circle.point").data(function(a){return a.values});L.enter().append("circle").attr("cx",function(a,b){return w(i(a,b))}).attr("cy",function(a,b){return x(j(a,b))}).attr("r",function(a,b){return y(k(a,b))}),d3.transition(K.exit().selectAll("circle.point")).attr("cx",function(a,b){return f(i(a,b))}).attr("cy",function(a,b){return g(j(a,b))}).attr("r",function(a,b){return h(k(a,b))}).remove(),L.attr("class",function(a,b){return"point point-"+b}),d3.transition(L).attr("cx",function(a,b){return f(i(a,b))}).attr("cy",function(a,b){return g(j(a,b))}).attr("r",function(a,b){return h(k(a,b))}),clearTimeout(z),z=setTimeout(J,750),w=f.copy(),x=g.copy(),y=h.copy()});return A}var a={top:0,right:0,bottom:0,left:0},b=960,c=500,d=d3.scale.category20().range(),e=Math.floor(Math.random()*1e5),f=d3.scale.linear(),g=d3.scale.linear(),h=d3.scale.sqrt(),i=function(a){return a.x},j=function(a){return a.y},k=function(a){return a.size},l=[],m=[],n=[],o=!0,p=!1,q=!0,r=function(){return 25},s,t,u,v=d3.dispatch("elementClick","elementMouseover","elementMouseout"),w,x,y,z;A.dispatch=v,A.x=function(a){if(!arguments.length)return i;i=d3.functor(a);return A},A.y=function(a){if(!arguments.length)return j;j=d3.functor(a);return A},A.size=function(a){if(!arguments.length)return k;k=d3.functor(a);return A},A.margin=function(b){if(!arguments.length)return a;a=b;return A},A.width=function(a){if(!arguments.length)return b;b=a;return A},A.height=function(a){if(!arguments.length)return c;c=a;return A},A.xScale=function(a){if(!arguments.length)return f;f=a;return A},A.yScale=function(a){if(!arguments.length)return g;g=a;return A},A.zScale=function(a){if(!arguments.length)return h;h=a;return A},A.xDomain=function(a){if(!arguments.length)return s;s=a;return A},A.yDomain=function(a){if(!arguments.length)return t;t=a;return A},A.sizeDomain=function(a){if(!arguments.length)return u;u=a;return A},A.forceX=function(a){if(!arguments.length)return l;l=a;return A},A.forceY=function(a){if(!arguments.length)return m;m=a;return A},A.forceSize=function(a){if(!arguments.length)return n;n=a;return A},A.interactive=function(a){if(!arguments.length)return o;o=a;return A},A.clipEdge=function(a){if(!arguments.length)return p;p=a;return A},A.clipVoronoi=function(a){if(!arguments.length)return q;q=a;return A},A.clipRadius=function(a){if(!arguments.length)return r;r=a;return A},A.color=function(a){if(!arguments.length)return d;d=a;return A},A.id=function(a){if(!arguments.length)return e;e=a;return A};return A},a.models.scatterWithLegend=function(){function s(a){a.each(function(e){var f=c()-b.left-b.right,t=d()-b.top-b.bottom;q=q||m.xScale(),r=r||m.yScale();var u=d3.select(this).selectAll("g.wrap.scatterWithLegend").data([e]),v=u.enter().append("g").attr("class","wrap nvd3 scatterWithLegend").append("g");v.append("g").attr("class","legendWrap"),v.append("g").attr("class","x axis"),v.append("g").attr("class","y axis"),v.append("g").attr("class","scatterWrap"),m.width(f).height(t).color(e.map(function(a,b){return a.color||i[b%20]}).filter(function(a,b){return!e[b].disabled}));var w=u.select(".scatterWrap").datum(e.filter(function(a){return!a.disabled}));d3.transition(w).call(m),o=m.xScale(),p=m.yScale(),j.scale(o),k.scale(p),b.top=l.height();var z=u.select("g").attr("transform","translate("+b.left+","+b.top+")");l.width(f/2),u.select(".legendWrap").datum(e).attr("transform","translate("+f/2+","+ -b.top+")").call(l);if(g||h){var A=w.selectAll("g.distribution").data(function(a){return a},function(a){return a.key});A.enter().append("g").attr("class",function(a,b){return"distribution series-"+b}),A.style("stroke",function(a,b){return i.filter(function(a,b){return e[b]&&!e[b].disabled})[b%10]})}if(g){var B=A.selectAll("line.distX").data(function(a){return a.values});B.enter().append("line").attr("x1",function(a,b){return q(m.x()(a,b))}).attr("x2",function(a,b){return q(m.x()(a,b))}),d3.transition(A.exit().selectAll("line.distX")).attr("x1",function(a,b){return o(m.x()(a,b))}).attr("x2",function(a,b){return o(m.x()(a,b))}).remove(),B.attr("class",function(a,b){return"distX distX-"+b}).attr("y1",p.range()[0]).attr("y2",p.range()[0]+8),d3.transition(B).attr("x1",function(a,b){return o(m.x()(a,b))}).attr("x2",function(a,b){return o(m.x()(a,b))})}if(h){var C=A.selectAll("line.distY").data(function(a){return a.values});C.enter().append("line").attr("y1",function(a,b){return r(m.y()(a,b))}).attr("y2",function(a,b){return r(m.y()(a,b))}),d3.transition(A.exit().selectAll("line.distY")).attr("y1",function(a,b){return p(m.y()(a,b))}).attr("y2",function(a,b){return p(m.y()(a,b))}).remove(),C.attr("class",function(a,b){return"distY distY-"+b}).attr("x1",o.range()[0]).attr("x2",o.range()[0]-8),d3.transition(C).attr("y1",function(a,b){return p(m.y()(a,b))}).attr("y2",function(a,b){return p(m.y()(a,b))})}j.ticks(f/100).tickSize(-t,0),z.select(".x.axis").attr("transform","translate(0,"+p.range()[0]+")"),d3.transition(z.select(".x.axis")).call(j),k.ticks(t/36).tickSize(-f,0),d3.transition(z.select(".y.axis")).call(k),l.dispatch.on("legendClick",function(b,c,d){b.disabled=!b.disabled,e.filter(function(a){return!a.disabled}).length||e.map(function(a){a.disabled=!1,u.selectAll(".series").classed("disabled",!1);return a}),a.transition().call(s)}),m.dispatch.on("elementMouseover.tooltip",function(a){n.tooltipShow({point:a.point,series:a.series,pos:[a.pos[0]+b.left,a.pos[1]+b.top],seriesIndex:a.seriesIndex,pointIndex:a.pointIndex}),w.select(".series-"+a.seriesIndex+" .distX-"+a.pointIndex).attr("y1",a.pos[1]),w.select(".series-"+a.seriesIndex+" .distY-"+a.pointIndex).attr("x1",a.pos[0])}),m.dispatch.on("elementMouseout.tooltip",function(a){n.tooltipHide(a),w.select(".series-"+a.seriesIndex+" .distX-"+a.pointIndex).attr("y1",p.range()[0]),w.select(".series-"+a.seriesIndex+" .distY-"+a.pointIndex).attr("x1",o.range()[0])}),q=o.copy(),r=p.copy()});return s}var b={top:30,right:20,bottom:50,left:60},c=function(){return 960},d=function(){return 500},e=!1,f=!1,g=!1,h=!1,i=d3.scale.category20().range(),j=a.models.axis().orient("bottom").tickPadding(10),k=a.models.axis().orient("left").tickPadding(10),l=a.models.legend().height(30),m=a.models.scatter(),n=d3.dispatch("tooltipShow","tooltipHide"),o,p,q,r;s.dispatch=n,s.legend=l,s.xAxis=j,s.yAxis=k,d3.rebind(s,m,"interactive","size","xScale","yScale","zScale","xDomain","yDomain","sizeDomain","forceX","forceY","forceSize","clipVoronoi","clipRadius"),s.margin=function(a){if(!arguments.length)return b;b=a;return s},s.width=function(a){if(!arguments.length)return c;c=d3.functor(a);return s},s.height=function(a){if(!arguments.length)return d;d=d3.functor(a);return s},s.color=function(a){if(!arguments.length)return i;i=a,l.color(a);return s},s.showDistX=function(a){if(!arguments.length)return g;g=a;return s},s.showDistY=function(a){if(!arguments.length)return h;h=a;return s};return s},a.models.sparkline=function(){function l(d){d.each(function(d){var l=b-a.left-a.right,m=c-a.top-a.bottom;j.domain(h||d3.extent(d,e)).range([0,l]),k.domain(i||d3.extent(d,f)).range([m,0]);var n=d3.select(this).selectAll("g.sparkline").data([d]),o=n.enter().append("g").attr("class","nvd3 sparkline");o.attr("transform","translate("+a.left+","+a.top+")").style("stroke",function(a,b){return a.color||g[b*2%20]});var p=o.selectAll("path").data(function(a){return[a]});p.enter().append("path"),p.exit().remove(),p.attr("d",d3.svg.line().x(function(a,b){return j(e(a,b))}).y(function(a,b){return k(f(a,b))}));var q=o.selectAll("circle.point").data(function(a){return a.filter(function(a,b){return k.domain().indexOf(f(a,b))!=-1||e(a,b)==j.domain()[1]})});q.enter().append("circle").attr("class","point"),q.exit().remove(),q.attr("cx",function(a,b){return j(e(a,b))}).attr("cy",function(a,b){return k(f(a,b))}).attr("r",2).style("stroke",function(a,b){return a.x==j.domain()[1]?"#444":a.y==k.domain()[0]?"#d62728":"#2ca02c"}).style("fill",function(a,b){return a.x==j.domain()[1]?"#444":a.y==k.domain()[0]?"#d62728":"#2ca02c"})});return l}var a={top:0,right:0,bottom:0,left:0},b=400,c=32,d=!0,e=function(a){return a.x},f=function(a){return a.y},g=d3.scale.category20().range(),h,i,j=d3.scale.linear(),k=d3.scale.linear();l.margin=function(b){if(!arguments.length)return a;a=b;return l},l.width=function(a){if(!arguments.length)return b;b=a;return l},l.height=function(a){if(!arguments.length)return c;c=a;return l},l.x=function(a){if(!arguments.length)return e;e=d3.functor(a);return l},l.y=function(a){if(!arguments.length)return f;f=d3.functor(a);return l},l.xDomain=function(a){if(!arguments.length)return h;h=a;return l},l.yDomain=function(a){if(!arguments.length)return i;i=a;return l},l.animate=function(a){if(!arguments.length)return d;d=a;return l};return l},a.models.sparklinePlus=function(){function o(a){a.each(function(a){function w(){var c=d3.event.offsetX-b.left;t.attr("x1",c).attr("x2",c),u.attr("transform",function(a){return"translate("+(c-6)+","+ -b.top+")"}).text(j(Math.round(l.invert(c)))),v.attr("transform",function(a){return"translate("+(c+6)+","+ -b.top+")"}).text(k(g(a[Math.round(l.invert(c))])))}var e=c-b.left-b.right,i=d-b.top-b.bottom;l.domain(d3.extent(a,f)).range([0,e]),m.domain(d3.extent(a,g)).range([i,0]);var o=d3.select(this).selectAll("g.sparklineplus").data([a]),p=o.enter().append("g"),q=p.append("g").attr("class","nvd3 sparklineplus").attr("transform","translate("+b.left+","+b.top+")").style("stroke",function(a,b){return a.color||h[b%10]});n.xDomain(l.domain()).yDomain(m.domain()),q.call(n);var r=q.append("g").attr("class","hoverValue"),s=q.append("g").attr("class","hoverArea");r.attr("transform",function(a){return"translate("+l(a)+",0)"});var t=r.append("line").attr("x1",l.range()[1]).attr("y1",-b.top).attr("x2",l.range()[1]).attr("y2",d),u=r.append("text").attr("class","xValue").attr("text-anchor","end").attr("dy",".9em"),v=r.append("text").attr("class","yValue").attr("text-anchor","start").attr("dy",".9em");s.append("rect").attr("width",e).attr("height",i).on("mousemove",w)});return o}var b={top:15,right:40,bottom:3,left:40},c=400,d=50,e=!0,f=function(a){return a.x},g=function(a){return a.y},h=d3.scale.category20().range(),i=Math.floor(Math.random()*1e5),j=d3.format(",r"),k=d3.format(",.2f"),l=d3.scale.linear(),m=d3.scale.linear(),n=a.models.sparkline();o.margin=function(a){if(!arguments.length)return b;b=a;return o},o.width=function(a){if(!arguments.length)return c;c=a,n.width(a-b.left-b.right);return o},o.height=function(a){if(!arguments.length)return d;d=a,n.height(a-b.top-b.bottom);return o},o.x=function(a){if(!arguments.length)return f;f=d3.functor(a),n.x(a);return o},o.y=function(a){if(!arguments.length)return g;g=d3.functor(a),n.y(a);return o},o.id=function(a){if(!arguments.length)return i;i=a;return o},o.animate=function(a){if(!arguments.length)return e;e=a;return o};return o},a.models.stackedArea=function(){function o(a){a.each(function(a){var i=JSON.parse(JSON.stringify(a)),o=c-b.left-b.right,p=d-b.top-b.bottom;i=d3.layout.stack().offset(j).order(k).values(function(a){return a.values}).y(h)(i);var q=d3.select(this).selectAll("g.wrap.stackedarea").data([i]),r=q.enter().append("g").attr("class","wrap nvd3 stackedarea"),s=r.append("defs"),t=r.append("g"),u=q.select("g");t.append("g").attr("class","areaWrap"),m.width(o).height(p).x(g).y(function(a){return a.y+a.y0}).forceY([0]).color(a.map(function(a,b){return a.color||e[b%20]}).filter(function(b,c){return!a[c].disabled})),t.append("g").attr("class","scatterWrap");var v=u.select(".scatterWrap").datum(i.filter(function(a){return!a.disabled}));d3.transition(v).call(m),x=m.xScale(),y=m.yScale(),q.attr("transform","translate("+b.left+","+b.top+")"),s.append("clipPath").attr("id","edge-clip-"+f).append("rect"),q.select("#edge-clip-"+f+" rect").attr("width",o).attr("height",p),u.attr("clip-path",l?"url(#edge-clip-"+f+")":"");var w=d3.svg.area().x(function(a,b){return x(g(a,b))}).y0(function(a){return y(a.y0)}).y1(function(a){return y(a.y+a.y0)}),z=d3.svg.area().x(function(a,b){return x(g(a,b))}).y0(function(a){return y(a.y0)}).y1(function(a){return y(a.y0)}),A=u.select(".areaWrap").selectAll("path.area").data(function(a){return a});A.enter().append("path").attr("class",function(a,b){return"area area-"+b}).on("mouseover",function(a,b){d3.select(this).classed("hover",!0),n.areaMouseover({point:a,series:a.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:b})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),n.areaMouseout({point:a,series:a.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:b})}).on("click",function(a,b){d3.select(this).classed("hover",!1),n.areaClick({point:a,series:a.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:b})}),d3.transition(A.exit()).attr("d",function(a,b){return z(a.values,b)}).remove(),A.style("fill",function(a,b){return e[b%20]}).style("stroke",function(a,b){return e[b%20]}),d3.transition(A).attr("d",function(a,b){return w(a.values,b)}),m.dispatch.on("elementClick.area",function(a){n.areaClick(a)}),m.dispatch.on("elementMouseover.area",function(a){u.select(".area-"+a.seriesIndex).classed("hover",!0)}),m.dispatch.on("elementMouseout.area",function(a){u.select(".area-"+a.seriesIndex).classed("hover",!1)})});return o}var b={top:0,right:0,bottom:0,left:0},c=960,d=500,e=d3.scale.category20().range(),f=Math.floor(Math.random()*1e5),g=function(a){return a.x},h=function(a){return a.y},i="stack",j="zero",k="default",l=!1,m=a.models.scatter().size(2.2).sizeDomain([2.5]),n=d3.dispatch("tooltipShow","tooltipHide","areaClick","areaMouseover","areaMouseout");o.dispatch=n,o.scatter=m,d3.rebind(o,m,"interactive","size","xScale","yScale","zScale","xDomain","yDomain","sizeDomain","forceX","forceY","forceSize","clipVoronoi","clipRadius"),o.x=function(a){if(!arguments.length)return g;g=d3.functor(a);return o},o.y=function(a){if(!arguments.length)return h;h=d3.functor(a);return o},o.margin=function(a){if(!arguments.length)return b;b=a;return o},o.width=function(a){if(!arguments.length)return c;c=a;return o},o.height=function(a){if(!arguments.length)return d;d=a;return o},o.clipEdge=function(a){if(!arguments.length)return l;l=a;return o},o.color=function(a){if(!arguments.length)return e;e=a;return o},o.offset=function(a){if(!arguments.length)return j;j=a;return o},o.order=function(a){if(!arguments.length)return k;k=a;return o},o.style=function(a){if(!arguments.length)return i;i=a;switch(i){case"stack":j="zero",k="default";break;case"stream":j="wiggle",k="inside-out";break;case"expand":j="expand",k="default"}return o},m.dispatch.on("elementMouseover.tooltip",function(a){a.pos=[a.pos[0]+b.left,a.pos[1]+b.top],n.tooltipShow(a)}),m.dispatch.on("elementMouseout.tooltip",function(a){n.tooltipHide(a)});return o},a.models.stackedAreaWithLegend=function(){function r(a){a.each(function(e){var s=c(),t=d(),u=s-b.left-b.right,v=t-b.top-b.bottom,w=e.filter(function(a){return!a.disabled}).reduce(function(a,b,c){b.values.forEach(function(b,d){c||(a[d]={x:i(b,d),y:0}),a[d].y+=j(b,d)});return a},[]);g.domain(d3.extent(d3.merge(w),function(a){return a.x})).range([0,u]),h.domain(o.offset()=="zero"?[0,d3.max(w,function(a){return a.y})]:[0,1]).range([v,0]),o.width(u).height(v).color(f);var z=d3.select(this).selectAll("g.wrap.stackedAreaWithLegend").data([e]),A=z.enter().append("g").attr("class","wrap nvd3 stackedWithLegend").append("g");A.append("g").attr("class","x axis"),A.append("g").attr("class","y axis"),A.append("g").attr("class","stackedWrap"),A.append("g").attr("class","legendWrap"),A.append("g").attr +("class","controlsWrap"),b.top=m.height();var B=z.select("g").attr("transform","translate("+b.left+","+b.top+")");m.width(s/2-b.right).color(f),B.select(".legendWrap").datum(e).attr("transform","translate("+(s/2-b.left)+","+ -b.top+")").call(m),n.width(280).color(["#444","#444","#444"]),B.select(".controlsWrap").datum(q).attr("transform","translate(0,"+ -b.top+")").call(n);var C=B.select(".stackedWrap").datum(e);d3.transition(C).call(o),k.domain(g.domain()).range(g.range()).ticks(s/100).tickSize(-v,0),B.select(".x.axis").attr("transform","translate(0,"+v+")"),d3.transition(B.select(".x.axis")).call(k),l.domain(h.domain()).range(h.range()).ticks(o.offset()=="wiggle"?0:t/36).tickSize(-u,0).tickFormat(o.offset()=="zero"?d3.format(",.2f"):d3.format("%")),d3.transition(B.select(".y.axis")).call(l),o.dispatch.on("areaClick.toggle",function(b){e.filter(function(a){return!a.disabled}).length===1?e=e.map(function(a){a.disabled=!1,a.disabled?a.values.map(function(a){a._y=a.y,a.y=0;return a}):a.values.map(function(a){a.y=a._y||a.y;return a});return a}):e=e.map(function(a,c){a.disabled=c!=b.seriesIndex,a.disabled?a.values.map(function(a){a._y=a.y,a.y=0;return a}):a.values.map(function(a){a.y=a._y||a.y;return a});return a}),a.transition().call(r)}),m.dispatch.on("legendClick",function(b,c){b.disabled=!b.disabled,b.disabled?b.values.map(function(a){a._y=a.y,a.y=0;return a}):b.values.map(function(a){a.y=a._y;return a}),e.filter(function(a){return!a.disabled}).length||e.map(function(a){a.disabled=!1,a.values.map(function(a){a.y=a._y;return a});return a}),a.transition().call(r)}),n.dispatch.on("legendClick",function(b,c){if(!!b.disabled){q=q.map(function(a){a.disabled=!0;return a}),b.disabled=!1;switch(b.key){case"Stacked":o.style("stack");break;case"Stream":o.style("stream");break;case"Expanded":o.style("expand")}a.transition().call(r)}}),o.dispatch.on("tooltipShow",function(a){if(!Math.round(j(a.point)*100)){setTimeout(function(){d3.selectAll(".point.hover").classed("hover",!1)},0);return!1}p.tooltipShow({point:a.point,series:a.series,pos:[a.pos[0]+b.left,a.pos[1]+b.top],seriesIndex:a.seriesIndex,pointIndex:a.pointIndex})}),o.dispatch.on("tooltipHide",function(a){p.tooltipHide(a)})});return r}var b={top:30,right:20,bottom:50,left:60},c=function(){return 960},d=function(){return 500},e=function(){return 2.5},f=d3.scale.category20().range(),g=d3.scale.linear(),h=d3.scale.linear(),i=function(a){return a.x},j=function(a){return a.y},k=a.models.axis().scale(g).orient("bottom"),l=a.models.axis().scale(h).orient("left"),m=a.models.legend().height(30),n=a.models.legend().height(30),o=a.models.stackedArea(),p=d3.dispatch("tooltipShow","tooltipHide"),q=[{key:"Stacked"},{key:"Stream",disabled:!0},{key:"Expanded",disabled:!0}];r.dispatch=p,d3.rebind(r,o,"interactive","clipEdge"),r.x=function(a){if(!arguments.length)return i;i=d3.functor(a),o.x(i);return r},r.y=function(a){if(!arguments.length)return j;j=d3.functor(a),o.y(j);return r},r.margin=function(a){if(!arguments.length)return b;b=a;return r},r.width=function(a){if(!arguments.length)return c;c=d3.functor(a);return r},r.height=function(a){if(!arguments.length)return d;d=d3.functor(a);return r},r.dotRadius=function(a){if(!arguments.length)return e;e=d3.functor(a),o.dotRadius=a;return r},r.stacked=o,r.xAxis=k,r.yAxis=l;return r},a.charts.cumulativeLineChartDaily=function(){function h(){if(!b||!c.length)return h;d3.select(b).select("svg").datum(c).transition().duration(d).call(f);return h}var b=null,c=[],d=500,e=function(a,b,c,d,e){return"

"+a+"

"+"

"+c+" at "+b+"

"},f=a.models.cumulativeLine().x(function(a,b){return b}).color(d3.scale.category10().range()),g=function(c){var d=document.getElementById(b.substr(1)),g=c.pos[0]+d.offsetLeft,h=c.pos[1]+d.offsetTop,i=f.xAxis.tickFormat(),j=f.yAxis.tickFormat(),k=i(f.x()(c,c.pointIndex)),l=j(f.y()(c.point)),m=e(c.series.key,k,l,c,f);a.tooltip.show([g,h],m)};f.xAxis.tickFormat(function(a){return d3.time.format("%x")(new Date(c[0].values[a].x))}),f.yAxis.tickFormat(d3.format(",.2%")),h.build=function(){if(!b||!c.length)return h;a.addGraph({generate:function(){var a=d3.select(b),e=function(){return parseInt(a.style("width"))},g=function(){return parseInt(a.style("height"))},h=a.append("svg");f.width(e).height(g),h.attr("width",e()).attr("height",g()).datum(c).transition().duration(d).call(f);return f},callback:function(c){c.dispatch.on("tooltipShow",g),c.dispatch.on("tooltipHide",a.tooltip.cleanup),window.onresize=function(){d3.select(b+" svg").attr("width",c.width()()).attr("height",c.height()()).call(c)}}});return h},h.data=function(a){if(!arguments.length)return c;c=a;return h},h.selector=function(a){if(!arguments.length)return b;b=a;return h},h.duration=function(a){if(!arguments.length)return d;d=a;return h},h.tooltip=function(a){if(!arguments.length)return e;e=a;return h},h.xTickFormat=function(a){if(!arguments.length)return f.xAxis.tickFormat();f.xAxis.tickFormat(typeof a=="function"?a:d3.format(a));return h},h.yTickFormat=function(a){if(!arguments.length)return f.yAxis.tickFormat();f.yAxis.tickFormat(typeof a=="function"?a:d3.format(a));return h},h.xAxisLabel=function(a){if(!arguments.length)return f.xAxis.axisLabel();f.xAxis.axisLabel(a);return h},h.yAxisLabel=function(a){if(!arguments.length)return f.yAxis.axisLabel();f.yAxis.axisLabel(a);return h},d3.rebind(h,f,"x","y"),h.graph=f;return h},a.charts.line=function(){function h(){if(!b||!c.length)return h;d3.select(b).select("svg").datum(c).transition().duration(d).call(f);return h}var b=null,c=[],d=500,e=function(a,b,c,d,e){return"

"+a+"

"+"

"+c+" at "+b+"

"},f=a.models.lineWithLegend(),g=function(c){var d=document.getElementById(b.substr(1)),g=c.pos[0]+d.offsetLeft,h=c.pos[1]+d.offsetTop,i=f.xAxis.tickFormat(),j=f.yAxis.tickFormat(),k=i(f.x()(c.point)),l=j(f.y()(c.point)),m=e(c.series.key,k,l,c,f);a.tooltip.show([g,h],m)};f.xAxis.tickFormat(d3.format(",r")),f.yAxis.tickFormat(d3.format(",.2f")),h.build=function(){if(!b||!c.length)return h;a.addGraph({generate:function(){var a=d3.select(b),e=function(){return parseInt(a.style("width"))},g=function(){return parseInt(a.style("height"))},h=a.append("svg");f.width(e).height(g),h.attr("width",e()).attr("height",g()).datum(c).transition().duration(d).call(f);return f},callback:function(c){c.dispatch.on("tooltipShow",g),c.dispatch.on("tooltipHide",a.tooltip.cleanup),window.onresize=function(){d3.select(b+" svg").attr("width",c.width()()).attr("height",c.height()()).call(c)}}});return h},h.data=function(a){if(!arguments.length)return c;c=a;return h},h.selector=function(a){if(!arguments.length)return b;b=a;return h},h.duration=function(a){if(!arguments.length)return d;d=a;return h},h.tooltip=function(a){if(!arguments.length)return e;e=a;return h},h.xTickFormat=function(a){if(!arguments.length)return f.xAxis.tickFormat();f.xAxis.tickFormat(typeof a=="function"?a:d3.format(a));return h},h.yTickFormat=function(a){if(!arguments.length)return f.yAxis.tickFormat();f.yAxis.tickFormat(typeof a=="function"?a:d3.format(a));return h},h.xAxisLabel=function(a){if(!arguments.length)return f.xAxis.axisLabel();f.xAxis.axisLabel(a);return h},h.yAxisLabel=function(a){if(!arguments.length)return f.yAxis.axisLabel();f.yAxis.axisLabel(a);return h},d3.rebind(h,f,"x","y"),h.graph=f;return h},a.charts.lineChartDaily=function(){function h(){if(!b||!c.length)return h;d3.select(b).select("svg").datum(c).transition().duration(d).call(f);return h}var b=null,c=[],d=500,e=function(a,b,c,d,e){return"

"+a+"

"+"

"+c+" at "+b+"

"},f=a.models.lineWithLegend().x(function(a,b){return b}),g=function(c){var d=document.getElementById(b.substr(1)),g=c.pos[0]+d.offsetLeft,h=c.pos[1]+d.offsetTop,i=f.xAxis.tickFormat(),j=f.yAxis.tickFormat(),k=i(f.x()(c,c.pointIndex)),l=j(f.y()(c.point)),m=e(c.series.key,k,l,c,f);a.tooltip.show([g,h],m)};f.xAxis.tickFormat(function(a){return d3.time.format("%x")(new Date(c[0].values[a].x))}),f.yAxis.tickFormat(d3.format(",.2%")),h.build=function(){if(!b||!c.length)return h;a.addGraph({generate:function(){var a=d3.select(b),e=function(){return parseInt(a.style("width"))},g=function(){return parseInt(a.style("height"))},h=a.append("svg");f.width(e).height(g),h.attr("width",e()).attr("height",g()).datum(c).transition().duration(d).call(f);return f},callback:function(c){c.dispatch.on("tooltipShow",g),c.dispatch.on("tooltipHide",a.tooltip.cleanup),window.onresize=function(){d3.select(b+" svg").attr("width",c.width()()).attr("height",c.height()()).call(c)}}});return h},h.data=function(a){if(!arguments.length)return c;c=a;return h},h.selector=function(a){if(!arguments.length)return b;b=a;return h},h.duration=function(a){if(!arguments.length)return d;d=a;return h},h.tooltip=function(a){if(!arguments.length)return e;e=a;return h},h.xTickFormat=function(a){if(!arguments.length)return f.xAxis.tickFormat();f.xAxis.tickFormat(typeof a=="function"?a:d3.format(a));return h},h.yTickFormat=function(a){if(!arguments.length)return f.yAxis.tickFormat();f.yAxis.tickFormat(typeof a=="function"?a:d3.format(a));return h},h.xAxisLabel=function(a){if(!arguments.length)return f.xAxis.axisLabel();f.xAxis.axisLabel(a);return h},h.yAxisLabel=function(a){if(!arguments.length)return f.yAxis.axisLabel();f.yAxis.axisLabel(a);return h},d3.rebind(h,f,"x","y"),h.graph=f;return h},a.charts.stackedAreaChart=function(){function h(){if(!b||!c.length)return h;d3.select(b).select("svg").datum(c).transition().duration(d).call(f);return h}var b=null,c=[],d=500,e=function(a,b,c,d,e){return"

"+a+"

"+"

"+c+" at "+b+"

"},f=a.models.stackedAreaWithLegend().x(function(a,b){return b}),g=function(c){var d=document.getElementById(b.substr(1)),g=c.pos[0]+d.offsetLeft,h=c.pos[1]+d.offsetTop,i=f.xAxis.tickFormat(),j=f.yAxis.tickFormat(),k=i(f.x()(c,c.pointIndex)),l=j(f.y()(c.point)),m=e(c.series.key,k,l,c,f);a.tooltip.show([g,h],m)};f.xAxis.tickFormat(function(a){return d3.time.format("%x")(new Date(c[0].values[a].x))}),f.yAxis.tickFormat(d3.format(",.2%")),h.build=function(){if(!b||!c.length)return h;a.addGraph({generate:function(){var a=d3.select(b),e=function(){return parseInt(a.style("width"))},g=function(){return parseInt(a.style("height"))},h=a.append("svg");f.width(e).height(g),h.attr("width",e()).attr("height",g()).datum(c).transition().duration(d).call(f);return f},callback:function(c){c.dispatch.on("tooltipShow",g),c.dispatch.on("tooltipHide",a.tooltip.cleanup),window.onresize=function(){d3.select(b+" svg").attr("width",c.width()()).attr("height",c.height()()).call(c)}}});return h},h.data=function(a){if(!arguments.length)return c;c=a;return h},h.selector=function(a){if(!arguments.length)return b;b=a;return h},h.duration=function(a){if(!arguments.length)return d;d=a;return h},h.tooltip=function(a){if(!arguments.length)return e;e=a;return h},h.xTickFormat=function(a){if(!arguments.length)return f.xAxis.tickFormat();f.xAxis.tickFormat(typeof a=="function"?a:d3.format(a));return h},h.yTickFormat=function(a){if(!arguments.length)return f.yAxis.tickFormat();f.yAxis.tickFormat(typeof a=="function"?a:d3.format(a));return h},h.xAxisLabel=function(a){if(!arguments.length)return f.xAxis.axisLabel();f.xAxis.axisLabel(a);return h},h.yAxisLabel=function(a){if(!arguments.length)return f.yAxis.axisLabel();f.yAxis.axisLabel(a);return h},d3.rebind(h,f,"x","y"),h.graph=f;return h}})() \ No newline at end of file