From 95591cfe7e4ee437052a18815e31246d7633320e Mon Sep 17 00:00:00 2001 From: Masayuki Tanaka Date: Wed, 19 Mar 2014 00:33:46 +0900 Subject: [PATCH] Fix axis label and add axis.y2.label option --- c3.js | 213 +++++++++++++++++++++++++++++++++++++++--------------- c3.min.js | 4 +- 2 files changed, 155 insertions(+), 62 deletions(-) diff --git a/c3.js b/c3.js index f0453e6..2994547 100644 --- a/c3.js +++ b/c3.js @@ -103,8 +103,7 @@ __axis_y2_max = getConfig(['axis', 'y2', 'max'], null), __axis_y2_min = getConfig(['axis', 'y2', 'min'], null), __axis_y2_center = getConfig(['axis', 'y2', 'center'], null), - // not used - // __axis_y2_label = getConfig(['axis', 'y2', 'text'], null), + __axis_y2_label = getConfig(['axis', 'y2', 'label'], null), __axis_y2_inner = getConfig(['axis', 'y2', 'inner'], false), __axis_y2_tick_format = getConfig(['axis', 'y2', 'tick', 'format'], null), __axis_y2_padding = getConfig(['axis', 'y2', 'padding'], null), @@ -213,8 +212,9 @@ main : function () { return "translate(" + margin.left + "," + margin.top + ")"; }, context : function () { return "translate(" + margin2.left + "," + margin2.top + ")"; }, legend : function () { return "translate(" + margin3.left + "," + margin3.top + ")"; }, + x : function () { return "translate(0," + (__axis_rotated ? 0 : height) + ")"; }, + y : function () { return "translate(0," + (__axis_rotated ? height : 0) + ")"; }, y2 : function () { return "translate(" + (__axis_rotated ? 0 : width) + "," + (__axis_rotated ? 1 : 0) + ")"; }, - x : function () { return "translate(0," + height + ")"; }, subx : function () { return "translate(0," + (__axis_rotated ? 0 : height2) + ")"; }, arc: function () { return "translate(" + width / 2 + "," + height / 2 + ")"; } }; @@ -231,6 +231,7 @@ function transformMain() { main.attr("transform", translate.main); main.select('.x.axis').attr("transform", translate.x); + main.select('.y.axis').attr("transform", translate.y); main.select('.y2.axis').attr("transform", translate.y2); main.select('.chart-arcs').attr("transform", translate.arc); } @@ -265,9 +266,9 @@ // for main margin = { - top: __axis_rotated && __axis_y2_show ? 20 : 0, + top: __axis_rotated && __axis_y2_show ? getAxisHeightByAxisId('y2') : 0, right: getCurrentPaddingRight(), - bottom: 20 + (__axis_rotated ? 0 : __subchart_size_height) + getLegendPaddingTop() + (isLegendRight ? 0 : legendHeight), + bottom: getAxisHeightByAxisId(__axis_rotated ? 'y' : 'x') + (__axis_rotated ? 0 : __subchart_size_height) + getLegendPaddingTop() + (isLegendRight ? 0 : legendHeight), left: (__axis_rotated ? __subchart_size_height + rotated_padding_right : 0) + getCurrentPaddingLeft() }; width = currentWidth - margin.left - margin.right; @@ -285,7 +286,7 @@ // for legend margin3 = { - top: isLegendRight ? margin.top : currentHeight - legendHeight, + top: isLegendRight ? 0 : currentHeight - legendHeight, right: NaN, bottom: 0, left: isLegendRight ? currentWidth - legendWidth : 0 @@ -321,7 +322,7 @@ } else if (__padding_left) { return __padding_left; } else { - return __axis_y_inner ? 1 : getDefaultPaddingWithAxisId('y'); + return __axis_y_inner ? 1 : getAxisWidthByAxisId('y'); } } function getCurrentPaddingRight() { @@ -330,16 +331,20 @@ } else if (__padding_right) { return __padding_right; } else if (isLegendRight) { - return legendWidth * (__axis_y2_show && !__axis_rotated ? 1.25 : 1); + return legendWidth + (__axis_y2_show && !__axis_rotated ? getAxisWidthByAxisId('y2') : 1); } else if (__axis_y2_show) { - return __axis_y2_inner || __axis_rotated ? 1 : getDefaultPaddingWithAxisId('y2'); + return __axis_y2_inner || __axis_rotated ? 1 : getAxisWidthByAxisId('y2'); } else { return 1; } } - function getDefaultPaddingWithAxisId() { - var yAxisLabelPosition = getYAxisLabelPosition(); - return yAxisLabelPosition.isInner ? 40 : 60; // TODO: calc automatically + function getAxisWidthByAxisId(id) { + var position = getAxisLabelPositionById(id); + return position.isInner ? 20 + getMaxTickWidth(id) : 40 + getMaxTickWidth(id); + } + function getAxisHeightByAxisId(id) { + var position = getAxisLabelPositionById(id); + return (position.isInner ? 0 : 20) + (id === 'y2' ? 20 : 0); } function getParentWidth() { return +d3.select(__bindto).style("width").replace('px', ''); // TODO: if rotated, use height @@ -347,17 +352,41 @@ function getParentHeight() { return +d3.select(__bindto).style('height').replace('px', ''); // TODO: if rotated, use width } + function getAxisClipX(forHorizontal) { + return forHorizontal ? -1 : -(margin.left - 1); + } + function getAxisClipY(forHorizontal) { + return forHorizontal ? -20 : -1; + } + function getXAxisClipX() { + return getAxisClipX(!__axis_rotated); + } + function getXAxisClipY() { + return getAxisClipY(!__axis_rotated); + } + function getYAxisClipX() { + return getAxisClipX(__axis_rotated); + } + function getYAxisClipY() { + return getAxisClipY(__axis_rotated); + } + function getAxisClipWidth(forHorizontal) { + return forHorizontal ? width + 2 : margin.left + 20; + } + function getAxisClipHeight(forHorizontal) { + return forHorizontal ? 80 : height + 2; + } function getXAxisClipWidth() { - return width + 2; + return getAxisClipWidth(!__axis_rotated); } function getXAxisClipHeight() { - return 80; + return getAxisClipHeight(!__axis_rotated); } function getYAxisClipWidth() { - return margin.left + 20; + return getAxisClipWidth(__axis_rotated); } function getYAxisClipHeight() { - return height + 2; + return getAxisClipHeight(__axis_rotated); } function getEventRectWidth() { var base = __axis_rotated ? height : width, @@ -529,47 +558,97 @@ function getYAxisLabelPosition() { return getAxisLabelPosition(__axis_y_label, 'inner-top'); } + function getY2AxisLabelPosition() { + return getAxisLabelPosition(__axis_y2_label, 'inner-top'); + } + function getAxisLabelPositionById(id) { + return id === 'y2' ? getY2AxisLabelPosition() : id === 'y' ? getYAxisLabelPosition() : getXAxisLabelPosition(); + } function textForXAxisLabel() { return getAxisLabelText(__axis_x_label); } function textForYAxisLabel() { return getAxisLabelText(__axis_y_label); } + function textForY2AxisLabel() { + return getAxisLabelText(__axis_y2_label); + } + function xForAxisLabel(forHorizontal, position) { + if (forHorizontal) { + return position.isLeft ? 0 : position.isCenter ? width / 2 : width; + } else { + return position.isBottom ? -height : position.isMiddle ? -height / 2 : 0; + } + } + function dxForAxisLabel(forHorizontal, position) { + if (forHorizontal) { + return position.isLeft ? "0.5em" : position.isRight ? "-0.5em" : "0"; + } else { + return position.isTop ? "-0.5em" : position.isBottom ? "0.5em" : "0"; + } + } + function textAnchorForAxisLabel(forHorizontal, position) { + if (forHorizontal) { + return position.isLeft ? 'start' : position.isCenter ? 'middle' : 'end'; + } else { + return position.isBottom ? 'start' : position.isMiddle ? 'middle' : 'end'; + } + } function xForXAxisLabel() { - var position = getXAxisLabelPosition(); - return position.isLeft ? 0 : position.isCenter ? width / 2 : width; + return xForAxisLabel(!__axis_rotated, getXAxisLabelPosition()); } function xForYAxisLabel() { - var position = getYAxisLabelPosition(); - return position.isBottom ? -height : position.isMiddle ? -height / 2 : 0; + return xForAxisLabel(__axis_rotated, getYAxisLabelPosition()); + } + function xForY2AxisLabel() { + return xForAxisLabel(__axis_rotated, getY2AxisLabelPosition()); } function dxForYAxisLabel() { - var position = getYAxisLabelPosition(); - return position.isTop ? "-0.5em" : "0"; + return dxForAxisLabel(__axis_rotated, getYAxisLabelPosition()); + } + function dxForY2AxisLabel() { + return dxForAxisLabel(__axis_rotated, getY2AxisLabelPosition()); } function dyForXAxisLabel() { var position = getXAxisLabelPosition(); - return position.isInner ? "-0.5em" : "3.5em"; + if (__axis_rotated) { + return position.isInner ? "1.2em" : -30 - getMaxTickWidth('x'); + } else { + return position.isInner ? "-0.5em" : "3em"; + } } function dyForYAxisLabel() { var position = getYAxisLabelPosition(); - - // TODO: define as function and use to calc padding left - var maxWidth = 0; - d3.selectAll('.y.axis .tick text').each(function () { - var box = this.getBBox(); - if (maxWidth < box.width) { maxWidth = box.width; } - }); - - return position.isInner ? "1.2em" : -20 - maxWidth; + if (__axis_rotated) { + return position.isInner ? "-0.5em" : "3em"; + } else { + return position.isInner ? "1.2em" : -20 - getMaxTickWidth('y'); + } + } + function dyForY2AxisLabel() { + var position = getY2AxisLabelPosition(); + if (__axis_rotated) { + return position.isInner ? "1.2em" : "-2.5em"; + } else { + return position.isInner ? "-0.5em" : 30 + getMaxTickWidth('y2'); + } } function textAnchorForXAxisLabel() { - var position = getXAxisLabelPosition(); - return position.isLeft ? 'start' : position.isCenter ? 'middle' : 'end'; + return textAnchorForAxisLabel(!__axis_rotated, getXAxisLabelPosition()); } function textAnchorForYAxisLabel() { - var position = getYAxisLabelPosition(); - return position.isBottom ? 'start' : position.isMiddle ? 'middle' : 'end'; + return textAnchorForAxisLabel(__axis_rotated, getYAxisLabelPosition()); + } + function textAnchorForY2AxisLabel() { + return textAnchorForAxisLabel(__axis_rotated, getY2AxisLabelPosition()); + } + function getMaxTickWidth(id) { + var maxWidth = 0; + d3.selectAll('.' + id + '.axis .tick text').each(function () { + var box = this.getBBox(); + if (maxWidth < box.width) { maxWidth = box.width; } + }); + return maxWidth; } //-- Arc --// @@ -1809,14 +1888,15 @@ defs.append("clipPath") .attr("id", "xaxis-clip") .append("rect") - .attr("x", -1) - .attr("y", -20) + .attr("x", getXAxisClipX) + .attr("y", getXAxisClipY) .attr("width", getXAxisClipWidth) .attr("height", getXAxisClipHeight); defs.append("clipPath") .attr("id", "yaxis-clip") .append("rect") - .attr("x", -margin.left + 1) + .attr("x", getYAxisClipX) + .attr("y", getYAxisClipY) .attr("width", getYAxisClipWidth) .attr("height", getYAxisClipHeight); @@ -1842,23 +1922,31 @@ .attr("transform", translate.x) .append("text") .attr("class", "-axis-x-label") + .attr("transform", __axis_rotated ? "rotate(-90)" : "") .attr("dy", dyForXAxisLabel) .style("text-anchor", textAnchorForXAxisLabel) - .text(__axis_rotated ? textForYAxisLabel : textForXAxisLabel); + .text(textForXAxisLabel); main.append("g") .attr("class", "y axis") .attr("clip-path", __axis_rotated ? getClipPath("yaxis-clip") : "") .append("text") .attr("class", "-axis-y-label") - .attr("transform", "rotate(-90)") + .attr("transform", __axis_rotated ? "" : "rotate(-90)") .attr("dx", dxForYAxisLabel) .style("text-anchor", textAnchorForYAxisLabel) - .text(__axis_rotated ? textForXAxisLabel : textForYAxisLabel); + .text(textForYAxisLabel); if (__axis_y2_show) { main.append("g") .attr("class", "y2 axis") - .attr("transform", translate.y2); + // clip-path? + .attr("transform", translate.y2) + .append("text") + .attr("class", "-axis-y2-label") + .attr("transform", __axis_rotated ? "" : "rotate(-90)") + .attr("dx", dxForY2AxisLabel) + .style("text-anchor", textAnchorForY2AxisLabel) + .text(textForY2AxisLabel); } // Grids @@ -1979,8 +2067,16 @@ // Set targets updateTargets(c3.data.targets); + // Update ticks for width calculation + if (__axis_rotated) { + main.select(".x.axis").style("opacity", 0).call(xAxis); + } else { + main.select(".y.axis").style("opacity", 0).call(yAxis); + main.select(".y2.axis").style("opacity", 0).call(yAxis2); + } + // Draw with targets - redraw({withTransform: true, withUpdateXDomain: true, withLegend: true}); + updateAndRedraw({withTransform: true, withUpdateXDomain: true, withLegend: true, durationForAxis: 0}); // Show tooltip if needed if (__tooltip_init_show) { @@ -2283,7 +2379,7 @@ var withY, withSubchart, withTransition, withTransform, withUpdateXDomain, withUpdateOrgXDomain, withLegend; var hideAxis = hasArcType(c3.data.targets); var drawBar, drawBarOnSub, xForText, yForText; - var duration, durationForExit; + var duration, durationForExit, durationForAxis; options = isDefined(options) ? options : {}; withY = isDefined(options.withY) ? options.withY : true; @@ -2296,6 +2392,7 @@ duration = withTransition ? __transition_duration : 0; durationForExit = isDefined(options.durationForExit) ? options.durationForExit : duration; + durationForAxis = isDefined(options.durationForAxis) ? options.durationForAxis : duration; // update legend and transform each g if (withLegend && __legend_show) { @@ -2319,9 +2416,9 @@ y2.domain(getYDomain('y2')); // axis - main.select(".x.axis").style("opacity", hideAxis ? 0 : 1).transition().duration(duration).call(__axis_rotated ? yAxis : xAxis); - main.select(".y.axis").style("opacity", hideAxis ? 0 : 1).transition().duration(duration).call(__axis_rotated ? xAxis : yAxis); - main.select(".y2.axis").style("opacity", hideAxis ? 0 : 1).transition().call(yAxis2); + main.select(".x.axis").style("opacity", hideAxis ? 0 : 1).transition().duration(durationForAxis).call(xAxis); + main.select(".y.axis").style("opacity", hideAxis ? 0 : 1).transition().duration(durationForAxis).call(yAxis); + main.select(".y2.axis").style("opacity", hideAxis ? 0 : 1).transition().duration(durationForAxis).call(yAxis2); // setup drawer - MEMO: these must be called after axis updated drawBar = generateDrawBar(barIndices); @@ -2331,6 +2428,7 @@ // Update label position main.select(".x.axis .-axis-x-label").attr("x", xForXAxisLabel); main.select(".y.axis .-axis-y-label").attr("x", xForYAxisLabel).attr("dy", dyForYAxisLabel); + main.select(".y2.axis .-axis-y2-label").attr("x", xForY2AxisLabel).attr("dy", dyForY2AxisLabel); // Update sub domain subY.domain(y.domain()); @@ -2708,25 +2806,20 @@ } function updateAndRedraw(options) { - var withTransition, withTransform, withLegend; options = isDefined(options) ? options : {}; - withTransition = isDefined(options.withTransition) ? options.withTransition : true; - withTransform = isDefined(options.withTransform) ? options.withTransform : false; - withLegend = isDefined(options.withLegend) ? options.withLegend : false; + options.withTransition = isDefined(options.withTransition) ? options.withTransition : true; + options.withTransform = isDefined(options.withTransform) ? options.withTransform : false; + options.withLegend = isDefined(options.withLegend) ? options.withLegend : false; + options.withUpdateXDomain = true; + options.durationForExit = 0; // Update sizes and scales updateSizes(); updateScales(); updateSvgSize(); // Update g positions - transformAll(withTransition); + transformAll(options.withTransition); // Draw with new sizes & scales - redraw({ - withTransition: withTransition, - withUpdateXDomain: true, - withTransform: withTransform, - durationForExit: 0, - withLegend: withLegend - }); + redraw(options); } function updateTargets(targets) { diff --git a/c3.min.js b/c3.min.js index 9e1ee42..2741a7c 100644 --- a/c3.min.js +++ b/c3.min.js @@ -1,2 +1,2 @@ -!function(a){"use strict";function b(){function a(a,b){a.attr("transform",function(a){return"translate("+(b(a)+q)+", 0)"})}function b(a,b){a.attr("transform",function(a){return"translate(0,"+b(a)+")"})}function c(a){var b=a[0],c=a[a.length-1];return c>b?[b,c]:[c,b]}function d(a){for(var b=[],c=Math.ceil(a[0]);c0&&b[0]>0&&b.unshift(b[0]-(b[1]-b[0])),b}function e(a,b){var c=a.length-1;return p>=c||b%Math.ceil(c/p)===0}function f(a){return a0?a:320}function t(){return Tc($d.data.targets)?0:ge?ge:If?1:v("y")}function u(){return Tc($d.data.targets)?0:he?he:Hg?ye*(Mf&&!vf?1.25:1):Mf?Qf||vf?1:v("y2"):1}function v(){var a=X();return a.isInner?40:60}function w(){return+g.select(de).style("width").replace("px","")}function x(){return+g.select(de).style("height").replace("px","")}function y(){return re+2}function z(){return 80}function A(){return oe.left+20}function B(){return te+2}function C(){var a=vf?te:re,b=rb(),c=Ob();return c>1?a*b/(c-1):a}function D(a){Ig=a}function E(a){Jg=a}function F(a){Kg=a}function G(){return rf?Hg?Jg*(Ig+1):ve:0}function H(){return rf?Hg?we:Kg*(Ig+1):0}function I(){var a=W();return a.isInner?5:20}function J(){var a,b,c=!Oe;Ge=vf?1:0,He=vf?te:re,Ie=vf?0:te,Je=vf?re:1,Ke=Ge,Le=He,Me=vf?0:ue,Ne=vf?se:1,Oe=L(Ge,He,c?void 0:Oe.domain(),function(){return Ue.tickOffset()}),Pe=M(Ie,Je),Qe=M(Ie,Je),Re=L(Ge,He,Zg,function(a){return a%1?0:Xe.tickOffset()}),Se=M(Me,Ne),Te=M(Me,Ne),a=S(),b=T(),Ue=P(Oe,Cg,a,b),Xe=P(Re,Fg,a,b),Ve=Q(Pe,Dg,Jf,Lf),We=Q(Qe,Eg,Rf,Tf),c||(Ng.scale(Re),ie&&Rg.scale(Oe)),K()}function K(){Ce=gb(),De=hb(),Ee=hb(.98)}function L(a,b,c,f){var h=(ug?g.time.scale():g.scale.linear()).range([a,b]);if(h.orgDomain=function(){return h.domain()},e(c)&&h.domain(c),d(f)&&(f=function(){return 0}),vg){var i,j=h;h=function(a){return j(a)+f(a)};for(i in j)h[i]=j[i];h.orgDomain=function(){return j.domain()},h.domain=function(a){return arguments.length?(j.domain(a),h):(a=j.domain(),[a[0],a[1]+1])}}return h}function M(a,b){return g.scale.linear().range([a,b])}function N(a){return"y2"===R(a)?Qe:Pe}function O(a){return"y2"===R(a)?Te:Se}function P(a,c,d,e){var f=(vg?b():g.svg.axis()).scale(a).orient(c);return f.tickFormat(d).ticks(e),vg?f.tickCentered(yf):f.tickOffset=function(){var a=vf?te:re;return a*rb()/Ob()/2},vg&&f.categories(xf),f}function Q(a,b,c,d){return g.svg.axis().scale(a).orient(b).tickFormat(c).ticks(d).outerTickSize(0)}function R(a){return a in cf?cf[a]:"y"}function S(){var a=ug?Bg:vg?Xb:null;return zf&&("function"==typeof zf?a=zf:ug&&(a=function(a){return g.time.format(zf)(a)})),a}function T(){var a=Ob();return Af&&a>Bf?Bf:a}function U(a){return"string"==typeof a?a:a?a.text:null}function V(a,b){var c=a&&"object"==typeof a&&a.position?a.position:b;return{isInner:c.indexOf("inner")>=0,isOuter:c.indexOf("outer")>=0,isLeft:c.indexOf("left")>=0,isCenter:c.indexOf("center")>=0,isRight:c.indexOf("right")>=0,isTop:c.indexOf("top")>=0,isMiddle:c.indexOf("middle")>=0,isBottom:c.indexOf("bottom")>=0}}function W(){return V(Df,"inner-right")}function X(){return V(Hf,"inner-top")}function Y(){return U(Df)}function Z(){return U(Hf)}function $(){var a=W();return a.isLeft?0:a.isCenter?re/2:re}function _(){var a=X();return a.isBottom?-te:a.isMiddle?-te/2:0}function ab(){var a=X();return a.isTop?"-0.5em":"0"}function bb(){var a=W();return a.isInner?"-0.5em":"3.5em"}function cb(){var a=X(),b=0;return g.selectAll(".y.axis .tick text").each(function(){var a=this.getBBox();b0)for(f=Vb(a),b=0;ba?a:0}),c=1;c0||(h[d][b]+=+a)});return g.min(Object.keys(h).map(function(a){return g.min(h[a])}))}function pb(a){var b,c,d,e,f,h=Tb(a);if(bf.length>0)for(f=Wb(a),b=0;b0?a:0}),c=1;c+a||(h[d][b]+=+a)});return g.max(Object.keys(h).map(function(a){return g.max(h[a])}))}function qb(a){var b,d,e,f,g,h,i,j,k=Sb(function(b){return R(b.id)===a}),l="y2"===a?Of:Ff,m="y2"===a?Nf:Ef,n=c(l)?l:ob(k),o=c(m)?m:pb(k),p="y2"===a?Pf:Gf,q=nc()&&vf;return n===o&&(0>n?o=0:n=0),b=Math.abs(o-n),d=e=f=q?0:.1*b,p&&(g=Math.max(Math.abs(n),Math.abs(o)),o=g-p,n=p-g),"y"===a&&Kf&&(e=c(Kf.top)?Kf.top:d,f=c(Kf.bottom)?Kf.bottom:d),"y2"===a&&Sf&&(e=c(Sf.top)?Sf.top:d,f=c(Sf.bottom)?Sf.bottom:d),q&&(h=oc(n,o),i=wb(Pe.range()),j=[h[0]/i,h[1]/i],e+=b*(j[1]/(1-j[0]-j[1])),f+=b*(j[0]/(1-j[0]-j[1]))),Pc(k)&&!Vb(k)&&(f=n),[n-f,o+e]}function rb(a){var b=wb(Zg),c=wb(Oe.domain());return a||0===c?1:b/c}function sb(a){return g.min(a,function(a){return g.min(a.values,function(a){return a.x})})}function tb(a){return g.max(a,function(a){return g.max(a.values,function(a){return a.x})})}function ub(a,b){var c,d,e=b[0],f=b[1],g=Math.abs(e-f);return vg?d=0:Pc(a)?(c=Ob(),d=c>1?g/(c-1)/2:.5):d=.01*g,d}function vb(a){var b=[sb(a),tb(a)],c=b[0],d=b[1],e=ub(a,b),f=ug?new Date(c.getTime()-e):c-e,g=ug?new Date(d.getTime()+e):d+e;return[f,g]}function wb(a){return a[1]-a[0]}function xb(a){for(var b=0;bd?0:d}function Cb(a){return Ye&&a===Ye||Ze&&hd(Ze,a)}function Db(a){return!Cb(a)}function Eb(a){return Ye?Ye:Ze?Ze[a]:null}function Fb(a,b){return a in $d.data.x&&$d.data.x[a]&&$d.data.x[a][b]?$d.data.x[a][b]:b}function Gb(a){Object.keys(a).forEach(function(b){Ze[b]=a[b]})}function Hb(a){var b;return a&&(b=af[a.id],a.name=b?b:a.id),a}function Ib(a){var b,c,d=a[0],e={},f=[];for(b=1;b=0?b.map(function(a){return a[c]}):$d.data.x[Object.keys($d.data.x)[0]]}),c=d.map(function(a){var c=_e(a);return{id:c,id_org:a,values:b.map(function(b,d){var e,f=Eb(a);return e=ug?dd(b[f]):wg?b[f]?+b[f]:Fb(a,d):d,b.x=e,{x:e,value:null===b[a]||isNaN(b[a])?null:+b[a],id:c}})}}),c.forEach(function(a){var b;a.values=a.values.sort(function(a,b){var c=a.x||0===a.x?a.x:1/0,d=b.x||0===b.x?b.x:1/0;return c-d}),b=0,a.values.forEach(function(a){a.index=b++})}),df&&Nc(Qb(c).filter(function(a){return!(a in ef)}),df),c.forEach(function(a){yb(a.id_org,a)}),c)}function Lb(a){return{id:a.id,id_org:a.id_org,values:a.values.map(function(a){return{x:a.x,value:a.value,id:a.id}})}}function Mb(a){return a>0&&$d.data.targets[0].values[a-1]?$d.data.targets[0].values[a-1].x:void 0}function Nb(a){return a1?$d.data.targets.forEach(function(b){b.values.length>c&&(a=b,c=b.values.length)}):a=b?$d.data.targets[0]:null,a}function Qb(a){return a=d(a)?$d.data.targets:a,a.map(function(a){return a.id})}function Rb(a){var b,c=Qb();for(b=0;ba})}function Wb(a){return Ub(a,function(a){return a>0})}function Xb(a){return a=0&&d===a[c].x;c--)e.push(a[c]);for(c=b;c0?g=h:f=h,g-f===1?(e=[],a[f].x&&(e=e.concat(vc(a,f))),a[g].x&&(e=e.concat(vc(a,g))),yc(e,b)):wc(a,b,f,g)}function xc(a,b){var c;return c=a.map(function(a){return wc(a.values,b)}),yc(c,b)}function yc(a,b){var c,d;return a.forEach(function(a){var e=id(a,b);(c>e||!c)&&(c=e,d=a)}),d}function zc(){return gf&&"desc"===gf.toLowerCase()}function Ac(){return gf&&"asc"===gf.toLowerCase()}function Bc(a){var b=Ac(),c=zc();return b||c?a.sort(function(a,c){var d=function(a,b){return a+Math.abs(b.value)},e=a.values.reduce(d,0),f=c.values.reduce(d,0);return b?f-e:e-f}):"function"==typeof gf&&a.sort(gf),a}function Cc(a,b){var d,e,f,g,h,i,j,k=Tc($d.data.targets),l=k?uc:tc,m=a.filter(function(a){return a&&c(a.value)});lg&&0!==m.length&&(Xg.html(og(a,S(),l,Ag)).style("visibility","hidden").style("display","block"),d=Xg.property("offsetWidth"),e=Xg.property("offsetHeight"),k?(g=re/2+b[0],i=te/2+b[1]+20):(vf?(f=q(),g=f+b[0]+100,h=g+d,j=r()-u(),i=Oe(m[0].x)+20):(f=q(),g=f+t()+Oe(m[0].x)+20,h=g+d,j=f+r()-u(),i=b[1]+15),h>j&&(g-=d+60),i+e>s()&&(i-=e+30)),Xg.style("top",i+"px").style("left",g+"px").style("visibility","visible"))}function Dc(){Xg.style("display","none")}function Ec(a){var b=a.filter(function(a){return a&&c(a.value)});lg&&(Qc($d.data.targets)||Tc($d.data.targets)||Ug.selectAll("line.xgrid-focus").style("visibility","visible").data([b[0]]).attr(vf?"y1":"x1",pc).attr(vf?"y2":"x2",pc))}function Fc(){Ug.select("line.xgrid-focus").style("visibility","hidden")}function Gc(a){return a.x||0===a.x?Oe(a.x):null}function Hc(a){return N(a.id)(a.value)}function Ic(){var a,b,c={},e=0;return Sb(Wc).forEach(function(f){for(a=0;a0&&(i+=g(b.values[f].value)-h)}),i}}function Mc(a,b){return b?2*a.tickOffset()*.6/b:0}function Nc(a,b){var c=d(a)?Qb():a;"string"==typeof c&&(c=[c]);for(var e=0;e0&&i>k||a.value<0&&k>i)&&(k=i),[[j,i],[j,k-(c-i)],[j+d,k-(c-i)],[j+d,i]]}}function Bd(a,b,c,f){var g,h,i,j,k,l,m,n,o,p,q,r=-1,s="M",t=[];if(e(f))for(g=0;g=h;h+=u)s+=i(a[g-1],a[g],h,o)}r=a[g].x}return s}function Cd(b){var c,d,e;if(Yg=g.select(de),Yg.empty())return void a.alert('No bind element found. Check the selector specified by "bindto" and existance of that element. Default "bindto" is "#chart".');if(Yg.html(""),$d.data.x={},$d.data.targets=Kb(b),o(),J(),Oe.domain(g.extent(vb($d.data.targets))),Pe.domain(qb("y")),Qe.domain(qb("y2")),Re.domain(Oe.domain()),Se.domain(Pe.domain()),Te.domain(Qe.domain()),Zg=Oe.domain(),Ng.scale(Re),ie&&Rg.scale(Oe),Sg=g.select(de).append("svg").attr("width",re+oe.left+oe.right).attr("height",te+oe.top+oe.bottom).on("mouseenter",le).on("mouseleave",me),Tg=Sg.append("defs"),Tg.append("clipPath").attr("id",sg).append("rect").attr("width",re).attr("height",te),Tg.append("clipPath").attr("id","xaxis-clip").append("rect").attr("x",-1).attr("y",-20).attr("width",y).attr("height",z),Tg.append("clipPath").attr("id","yaxis-clip").append("rect").attr("x",-oe.left+1).attr("width",A).attr("height",B),Ug=Sg.append("g").attr("transform",Gg.main),Vg=of?Sg.append("g").attr("transform",Gg.context):null,Wg=rf?Sg.append("g").attr("transform",Gg.legend):null,Xg=g.select(de).style("position","relative").append("div").style("position","absolute").style("z-index","10").style("display","none"),Ug.append("g").attr("class","x axis").attr("clip-path",vf?"":j("xaxis-clip")).attr("transform",Gg.x).append("text").attr("class","-axis-x-label").attr("dy",bb).style("text-anchor",db).text(vf?Z:Y),Ug.append("g").attr("class","y axis").attr("clip-path",vf?j("yaxis-clip"):"").append("text").attr("class","-axis-y-label").attr("transform","rotate(-90)").attr("dx",ab).style("text-anchor",eb).text(vf?Y:Z),Mf&&Ug.append("g").attr("class","y2 axis").attr("transform",Gg.y2),d=Ug.append("g").attr("clip-path",tg).attr("class","grid"),Uf&&d.append("g").attr("class","xgrids"),Wf&&d.append("g").attr("class","xgrid-lines"),ag&&d.append("g").attr("class","xgrid-focus").append("line").attr("class","xgrid-focus").attr("x1",vf?0:-10).attr("x2",vf?re:-10).attr("y1",vf?-10:oe.top).attr("y2",vf?-10:te),Xf&&d.append("g").attr("class","ygrids"),Yf&&d.append("g").attr("class","ygrid-lines"),Ug.append("g").attr("clip-path",tg).attr("class","regions"),Ug.append("g").attr("clip-path",tg).attr("class","chart"),c=Ug.select(".chart").append("g").attr("class","event-rects").style("fill-opacity",0).style("cursor",ie?vf?"ns-resize":"ew-resize":null),Ug.select(".chart").append("g").attr("class","chart-bars"),Ug.select(".chart").append("g").attr("class","chart-lines"),Ug.select(".chart").append("g").attr("class","chart-arcs").attr("transform",Gg.arc).append("text").attr("class","chart-arcs-title").style("text-anchor","middle").text(jg),Ug.select(".chart").append("g").attr("class","chart-texts"),ie&&Ug.insert("rect",ke?null:"g.grid").attr("class","zoom-rect").attr("width",re).attr("height",te).style("opacity",0).style("cursor",vf?"ns-resize":"ew-resize").call(Rg).on("dblclick.zoom",null),null!==Cf&&Ng.extent("function"!=typeof Cf?Cf:Cf(vb())),of&&(Vg.append("g").attr("clip-path",tg).attr("class","chart"),Vg.select(".chart").append("g").attr("class","chart-bars"),Vg.select(".chart").append("g").attr("class","chart-lines"),Vg.append("g").attr("clip-path",tg).attr("class","x brush").call(Ng).selectAll("rect").attr(vf?"width":"height",vf?se:ue),Vg.append("g").attr("class","x axis").attr("transform",Gg.subx).attr("clip-path",vf?j("yaxis-clip"):"")),Pd($d.data.targets),Jd({withTransform:!0,withUpdateXDomain:!0,withLegend:!0}),pg){if(ug&&"string"==typeof qg){for(qg=dd(qg),e=0;e<$d.data.targets[0].values.length&&$d.data.targets[0].values[e].x-qg!==0;e++);qg=e}Xg.html(og($d.data.targets.map(function(a){return Hb(a.values[qg])}),S(),tc,Ag)),Xg.style("top",rg.top).style("left",rg.left).style("display","block")}null==a.onresize&&(a.onresize=Md()),a.onresize.add&&a.onresize.add(function(){Od({withTransition:!1,withLegend:!0})})}function Dd(a){a.append("rect").attr("class",ic).style("cursor",kf&&lf?"pointer":null).on("mouseover",function(a,b){if(!yg&&!Tc($d.data.targets)){var c,d,e=$d.data.targets.map(function(a){return Hb(a.values[b])});if(Object.keys(af).length>0){d=[];for(var f in af)for(c=0;cf&&h>c&&d>i&&j>d):"rect"===this.nodeName&&(c=1*l.attr("x"),d=1*l.attr("y"),e=1*l.attr("width"),k=od,o=c+e>f&&h>c&&j>d),o^n&&(l.classed(ce,!n),l.classed(be,!m),k(!m,l,a,b))}))}function Hd(a){Tc($d.data.targets)||kf&&(xg=a,Ug.select(".chart").append("rect").attr("class","dragarea").style("opacity",.1),yg=!0)}function Id(){Tc($d.data.targets)||kf&&(Ug.select(".dragarea").transition().duration(100).style("opacity",0).remove(),Ug.selectAll(".-shape").classed(ce,!1),yg=!1)}function Jd(a){var b,d,f,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,D,E,F,G,H,I=Ic(),J=Tc($d.data.targets);if(a=e(a)?a:{},u=e(a.withY)?a.withY:!0,v=e(a.withSubchart)?a.withSubchart:!0,w=e(a.withTransition)?a.withTransition:!0,x=e(a.withTransform)?a.withTransform:!1,y=e(a.withUpdateXDomain)?a.withUpdateXDomain:!1,z=e(a.withUpdateOrgXDomain)?a.withUpdateOrgXDomain:!1,A=e(a.withLegend)?a.withLegend:!1,G=w?ne:0,H=e(a.durationForExit)?a.durationForExit:G,A&&rf&&Ud($d.data.targets,a),z&&(Oe.domain(g.extent(vb($d.data.targets))),Zg=Oe.domain(),ie&&Rg.scale(Oe).updateScaleExtent(),Re.domain(Oe.domain()),Ng.scale(Re)),y&&(Oe.domain(Ng.empty()?Zg:Ng.extent()),ie&&Rg.scale(Oe).updateScaleExtent()),Pe.domain(qb("y")),Qe.domain(qb("y2")),Ug.select(".x.axis").style("opacity",J?0:1).transition().duration(G).call(vf?Ve:Ue),Ug.select(".y.axis").style("opacity",J?0:1).transition().duration(G).call(vf?Ue:Ve),Ug.select(".y2.axis").style("opacity",J?0:1).transition().call(We),B=wd(I),E=xd(I,!0),F=xd(I,!1),Ug.select(".x.axis .-axis-x-label").attr("x",$),Ug.select(".y.axis .-axis-y-label").attr("x",_).attr("dy",cb),Se.domain(Pe.domain()),Te.domain(Qe.domain()),Xg.style("display","none"),Ug.select("line.xgrid-focus").style("visibility","hidden").attr("y2",te),Uf){if("year"===Vf){d=[];for(var K=vb(),L=K[0].getFullYear(),M=K[1].getFullYear(),N=L;M>=N;N++)d.push(new Date(N+"-01-01 00:00:00"))}else d=Oe.ticks(10);b=Ug.select(".xgrids").selectAll(".xgrid").data(d),b.enter().append("line").attr("class","xgrid"),b.attr("x1",vf?0:function(a){return Oe(a)-Ue.tickOffset()}).attr("x2",vf?re:function(a){return Oe(a)-Ue.tickOffset()}).attr("y1",vf?function(a){return Oe(a)-Ue.tickOffset()}:oe.top).attr("y2",vf?function(a){return Oe(a)-Ue.tickOffset()}:te).style("opacity",function(){return+g.select(this).attr(vf?"y1":"x1")===(vf?te:0)?0:1}),b.exit().remove()}Wf&&(f=Ug.select(".xgrid-lines").selectAll(".xgrid-line").data(Wf),h=f.enter().append("g").attr("class",function(a){return"xgrid-line xgrid-line-"+(a["class"]?a["class"]:"")}),h.append("line").style("opacity",0),h.append("text").attr("text-anchor","end").attr("transform",vf?"":"rotate(-90)").attr("dx",vf?0:-oe.top).attr("dy",-5).style("opacity",0),f.select("line").transition().duration(G).attr("x1",vf?0:qc).attr("x2",vf?re:qc).attr("y1",vf?qc:oe.top).attr("y2",vf?qc:te).style("opacity",1),f.select("text").transition().duration(G).attr("x",vf?re:0).attr("y",qc).text(function(a){return a.text}).style("opacity",1),f.exit().transition().duration(G).style("opacity",0).remove()),u&&Xf&&(i=Ug.select(".ygrids").selectAll(".ygrid").data(Pe.ticks(Zf)),i.enter().append("line").attr("class","ygrid"),i.attr("x1",vf?Pe:0).attr("x2",vf?Pe:re).attr("y1",vf?0:Pe).attr("y2",vf?te:Pe),i.exit().remove()),u&&Yf&&(j=Ug.select(".ygrid-lines").selectAll(".ygrid-line").data(Yf),k=j.enter().append("g").attr("class",function(a){return"ygrid-line ygrid-line-"+(a.class?a.class:"")}),k.append("line").style("opacity",0),k.append("text").attr("text-anchor","end").attr("transform",vf?"rotate(-90)":"").attr("dx",vf?0:-oe.top).attr("dy",-5).style("opacity",0),j.select("line").transition().duration(G).attr("x1",vf?rc:0).attr("x2",vf?rc:re).attr("y1",vf?0:rc).attr("y2",vf?te:rc).style("opacity",1),j.select("text").transition().duration(G).attr("x",vf?0:re).attr("y",rc).text(function(a){return a.text -}).style("opacity",1),j.exit().transition().duration(G).style("opacity",0).remove()),m=Ug.selectAll(".-bars").selectAll(".-bar").data(_c),m.enter().append("path").attr("d",B).style("stroke","none").style("opacity",0).style("fill",function(a){return Ag(a.id)}).attr("class",gc),m.style("opacity",jc).transition().duration(G).attr("d",B).style("opacity",1),m.exit().transition().duration(H).style("opacity",0).remove(),o=Ug.selectAll(".-texts").selectAll(".-text").data(bd),o.enter().append("text").attr("class",Yb).attr("text-anchor",function(a){return vf?a.value<0?"end":"start":"middle"}).style("stroke","none").style("fill-opacity",0).text(function(a){return tc(a.value)}),o.style("fill-opacity",kc).transition().duration(G).attr("x",E).attr("y",F).style("fill-opacity",mc),o.exit().transition().duration(H).style("fill-opacity",0).remove(),Ug.selectAll(".-line").style("opacity",jc).transition().duration(G).attr("d",Og).style("opacity",1),Ug.selectAll(".-area").style("opacity",0).transition().duration(G).attr("d",Pg).style("opacity",$g),l=Ug.selectAll(".-circles").selectAll(".-circle").data(ad),l.enter().append("circle").attr("class",fc).style("opacity",0).attr("r",_f),l.style("opacity",jc).transition().duration(G).style("opacity",lc).attr("cx",vf?Hc:Gc).attr("cy",vf?Gc:Hc),l.exit().remove(),Ug.selectAll(".chart-arc").select(".-arc").attr("transform",x?"scale(0)":"").style("opacity",function(a){return a===this._current?0:1}).transition().duration(G).attrTween("d",function(a){var b=fb(a);if(!b)return function(){return"M 0 0"};var c=g.interpolate(this._current,b);return this._current=c(0),function(a){return ib(c(a),!0)}}).attr("transform",x?"scale(1)":"").style("opacity",1),Ug.selectAll(".chart-arc").select("text").attr("transform",jb).style("opacity",0).transition().duration(G).text(lb).style("opacity",function(a){return $c(a.data)?1:0}),Ug.select(".chart-arcs-title").style("opacity",Sc($d.data.targets)?1:0),of&&(null!==g.event&&"zoom"===g.event.type&&Ng.extent(Oe.orgDomain()).update(),v&&(Vg.select(".x.axis").style("opacity",J?0:1).transition().duration(G).call(Xe),Ng.empty()||Ng.extent(Oe.orgDomain()).update(),D=wd(I,!0),p=Vg.selectAll(".-bars").selectAll(".-bar").data(_c),p.enter().append("path").attr("d",D).style("stroke","none").style("fill",function(a){return Ag(a.id)}).attr("class",gc),p.style("opacity",jc).transition().duration(G).attr("d",D).style("opacity",1),p.exit().transition().duration(G).style("opacity",0).remove(),Vg.selectAll(".-line").style("opacity",jc).transition().duration(G).attr("d",Qg).style("opacity",1))),Ug.selectAll(".selected-circles").filter(function(a){return Wc(a)}).selectAll("circle").remove(),Ug.selectAll(".selected-circle").transition().duration(G).attr("cx",vf?Hc:Gc).attr("cy",vf?Gc:Hc),Ze?(q=Ug.select(".event-rects").selectAll(".event-rect").data([0]),Ed(q.enter()),q.attr("x",0).attr("y",0).attr("width",re).attr("height",te)):(wg?(t=function(a,b){var c=Mb(b),d=Nb(b);return(Oe(d?d:a.x+50)-Oe(c?c:a.x-50))/2},s=function(a,b){var c=Mb(b);return(Oe(a.x)+Oe(c?c:a.x-50))/2}):(t=C(),s=function(a){return Oe(a.x)-t/2}),r=Pb(),Ug.select(".event-rects").datum(r?r.values:[]),q=Ug.select(".event-rects").selectAll(".event-rect").data(function(a){return a}),Dd(q.enter()),q.attr("class",ic).attr("x",vf?0:s).attr("y",vf?s:0).attr("width",vf?re:t).attr("height",vf?t:te),q.exit().remove()),n=Ug.select(".regions").selectAll("rect.region").data(kg),n.enter().append("rect").style("fill-opacity",0),n.attr("class",hc).attr("x",vf?0:Ab).attr("y",vf?Ab:oe.top).attr("width",vf?re:Bb).attr("height",vf?Bb:te).transition().duration(G).style("fill-opacity",function(a){return c(a.opacity)?a.opacity:.1}),n.exit().transition().duration(G).style("fill-opacity",0).remove(),Qb().forEach(function(a){_g[a]=!0})}function Kd(){Jd({withTransition:!1,withY:!1,withSubchart:!1,withUpdateXDomain:!0})}function Ld(){return"mousemove"===g.event.sourceEvent.type&&Rg.altDomain?(Oe.domain(Rg.altDomain),void Rg.scale(Oe).updateScaleExtent()):(vg&&Oe.orgDomain()[0]===Zg[0]&&Oe.domain([Zg[0]-1e-10,Oe.orgDomain()[1]]),Jd({withTransition:!1,withY:!1,withSubchart:!1}),void("mousemove"===g.event.sourceEvent.type&&(zg=!0)))}function Md(){function a(){b.forEach(function(a){a()})}var b=[];return a.add=function(a){b.push(a)},a}function Nd(){Sg.attr("width",ve).attr("height",we),Sg.select("#"+sg).select("rect").attr("width",re).attr("height",te),Sg.select("#xaxis-clip").select("rect").attr("width",y),Sg.select(".zoom-rect").attr("width",re).attr("height",te)}function Od(a){var b,c,d;a=e(a)?a:{},b=e(a.withTransition)?a.withTransition:!0,c=e(a.withTransform)?a.withTransform:!1,d=e(a.withLegend)?a.withLegend:!1,o(),J(),Nd(),n(b),Jd({withTransition:b,withUpdateXDomain:!0,withTransform:c,durationForExit:0,withLegend:d})}function Pd(a){var b,c,d,e,f,h,i,j,k,l,m,n;i=Ug.select(".chart-texts").selectAll(".chart-text").data(a),j=i.enter().append("g").attr("class",function(a){return"chart-text target target-"+a.id}).style("pointer-events","none"),j.append("g").attr("class",Zb).style("fill",function(a){return Ag(a.id)}),e=Ug.select(".chart-bars").selectAll(".chart-bar").data(a),d=e.enter().append("g").attr("class",function(a){return"chart-bar target target-"+a.id}).style("pointer-events","none"),d.append("g").attr("class",bc).style("fill",function(a){return Ag(a.id)}).style("stroke","none").style("cursor",function(a){return mf(a)?"pointer":null}),c=Ug.select(".chart-lines").selectAll(".chart-line").data(a),b=c.enter().append("g").attr("class",function(a){return"chart-line target target-"+a.id}).style("pointer-events","none"),b.append("path").attr("class",_b).style("opacity",0).style("stroke",function(a){return Ag(a.id)}),b.append("path").attr("class",dc).style("opacity",function(){return $g=+g.select(this).style("opacity"),0}).style("fill",function(a){return Ag(a.id)}),b.append("g").attr("class",function(a){return"selected-circles selected-circles-"+a.id}),b.append("g").attr("class",ac).style("fill",function(a){return Ag(a.id)}).style("cursor",function(a){return mf(a)?"pointer":null}),a.forEach(function(a){var b=Vd(a.id);Ug.selectAll(".selected-circles"+b).selectAll(".selected-circle").each(function(b){b.value=a.values[b.x].value})}),h=Ug.select(".chart-arcs").selectAll(".chart-arc").data(Fe(a)),f=h.enter().append("g").attr("class",function(a){return"chart-arc target target-"+a.data.id}),f.append("path").attr("class",cc).style("opacity",0).style("fill",function(a){return Ag(a.data.id)}).style("cursor",function(a){return mf(a)?"pointer":null}).each(function(a){this._current=a}).on("mouseover",function(a){mb(a.data.id),Rd(a.data.id)}).on("mousemove",function(a){var b=[Hb({id:a.data.id,value:a.value,ratio:kb(a)})];Cc(b,g.mouse(this))}).on("mouseout",function(a){nb(a.data.id),Td(),Dc()}),f.append("text").attr("dy",".35em").style("opacity",0).style("text-anchor","middle").style("pointer-events","none"),of&&(n=Vg.select(".chart-bars").selectAll(".chart-bar").data(a),m=n.enter().append("g").attr("class",function(a){return"chart-bar target target-"+a.id}),m.append("g").attr("class",bc).style("fill",function(a){return Ag(a.id)}),l=Vg.select(".chart-lines").selectAll(".chart-line").data(a),k=l.enter().append("g").attr("class",function(a){return"chart-line target target-"+a.id}),k.append("path").attr("class",_b).style("opacity",0).style("stroke",function(a){return Ag(a.id)})),Sg.selectAll(".target").transition().style("opacity",1)}function Qd(a,b){$d.data.targets.forEach(function(b){for(var c=0;ce&&(e=(k-j)/2,v=0,B++)),A[a]=B,z[B]=e,w[a]=v,v+=j}var e,f,g=a.getBBox(),h=10*Math.ceil((g.width+t)/10),i=10*Math.ceil((g.height+s)/10),j=Hg?i:h,k=Hg?xe:ye;c&&(v=0,B=0,m=0,p=0),x[b]=h,y[b]=i,(!m||h>=m)&&(m=h),(!p||i>=p)&&(p=i),f=Hg?p:m,uf?(Object.keys(x).forEach(function(a){x[a]=m}),Object.keys(y).forEach(function(a){y[a]=p}),e=(k-f*r.length)/2,u>e?(v=0,B=0,r.forEach(function(a){d(a)})):d(b,!0)):d(b)}var f,g,h,i,j,k,l,m,p,q,r=Qb(a),s=4,t=26,u=10,v=0,w={},x={},y={},z={},A={},B=0;b=d(b)?{}:b,q=e(b.withTransition)?b.withTransition:!0,Hg?(g=function(a){return m*(.2+A[a])},j=function(a){return z[A[a]]+w[a]}):(g=function(a){return z[A[a]]+w[a]},j=function(a){return p*(.2+A[a])}),h=function(a,b){return g(a,b)+14},k=function(a,b){return j(a,b)+9},i=function(a,b){return g(a,b)-4},l=function(a,b){return j(a,b)-7},f=Wg.selectAll(".legend-item").data(r).enter().append("g").attr("class",function(a){return"legend-item legend-item-"+a}).style("cursor","pointer").on("click",function(a){tf(a)}).on("mouseover",function(a){$d.focus(a)}).on("mouseout",function(){$d.revert()}),f.append("text").text(function(a){return e(af[a])?af[a]:a}).each(function(a,b){c(this,a,0===b)}).style("pointer-events","none").attr("x",Hg?h:-200).attr("y",Hg?-200:k),f.append("rect").attr("class","legend-item-event").style("fill-opacity",0).attr("x",Hg?i:-200).attr("y",Hg?-200:l).attr("width",function(a){return x[a]}).attr("height",function(a){return y[a]}),f.append("rect").attr("class","legend-item-tile").style("pointer-events","none").style("fill",function(a){return Ag(a)}).attr("x",Hg?h:-200).attr("y",Hg?-200:j).attr("width",10).attr("height",10),Wg.selectAll("text").data(r).each(function(a,b){c(this,a,0===b)}).transition().duration(q?250:0).attr("x",h).attr("y",k),Wg.selectAll("rect.legend-item-event").data(r).transition().duration(q?250:0).attr("x",i).attr("y",l),Wg.selectAll("rect.legend-item-tile").data(r).transition().duration(q?250:0).attr("x",g).attr("y",j),E(m),F(p),D(B),o(),J(),Nd(),n(!1)}function Vd(a){return a?"-"+a.replace(/\./g,"\\."):""}function Wd(a){return".target"+Vd(a)}function Xd(a){return Rb(a.id)}function Yd(a){return"data"in a&&Rb(a.data.id)}function Zd(a){var b=a&&a.value?a.value:null,c=a&&a["class"]?a["class"]:null;return b?function(a){return a.value!==b}:c?function(a){return a["class"]!==c}:function(){return!0}}var $d={data:{}},_d={},ae="_expanded_",be="_selected_",ce="_included_",de=i(["bindto"],"#chart"),ee=i(["size","width"],null),fe=i(["size","height"],null),ge=i(["padding","left"],null),he=i(["padding","right"],null),ie=i(["zoom","enabled"],!1),je=i(["zoom","extent"],null),ke=i(["zoom","privileged"],!1),le=i(["onenter"],function(){}),me=i(["onleave"],function(){}),ne=i(["transition","duration"],350);h("data","data is required in config");var oe,pe,qe,re,se,te,ue,ve,we,xe,ye,ze,Ae,Be,Ce,De,Ee,Fe,Ge,He,Ie,Je,Ke,Le,Me,Ne,Oe,Pe,Qe,Re,Se,Te,Ue,Ve,We,Xe,Ye=i(["data","x"],null),Ze=i(["data","xs"],null),$e=i(["data","x_format"],"%Y-%m-%d"),_e=i(["data","id_converter"],function(a){return a}),af=i(["data","names"],{}),bf=i(["data","groups"],[]),cf=i(["data","axes"],{}),df=i(["data","type"],null),ef=i(["data","types"],{}),ff=i(["data","labels"],{}),gf=i(["data","order"],null),hf=i(["data","regions"],{}),jf=i(["data","colors"],{}),kf=i(["data","selection","enabled"],!1),lf=i(["data","selection","grouped"],!1),mf=i(["data","selection","isselectable"],function(){return!0}),nf=i(["data","selection","multiple"],!0),of=i(["subchart","show"],!1),pf=of?i(["subchart","size","height"],60):0,qf=i(["color","pattern"],null),rf=i(["legend","show"],!0),sf=i(["legend","position"],"bottom"),tf=i(["legend","item","onclick"],function(){}),uf=i(["legend","equally"],!1),vf=i(["axis","rotated"],!1),wf=i(["axis","x","type"],"indexed"),xf=i(["axis","x","categories"],[]),yf=i(["axis","x","tick","centered"],!1),zf=i(["axis","x","tick","format"],null),Af=i(["axis","x","tick","culling"],"categorized"===wf?!1:!0),Bf=i(["axis","x","tick","count"],10),Cf=i(["axis","x","default"],null),Df=i(["axis","x","label"],null),Ef=i(["axis","y","max"],null),Ff=i(["axis","y","min"],null),Gf=i(["axis","y","center"],null),Hf=i(["axis","y","label"],null),If=i(["axis","y","inner"],!1),Jf=i(["axis","y","tick","format"],null),Kf=i(["axis","y","padding"],null),Lf=i(["axis","y","ticks"],10),Mf=i(["axis","y2","show"],!1),Nf=i(["axis","y2","max"],null),Of=i(["axis","y2","min"],null),Pf=i(["axis","y2","center"],null),Qf=i(["axis","y2","inner"],!1),Rf=i(["axis","y2","tick","format"],null),Sf=i(["axis","y2","padding"],null),Tf=i(["axis","y2","ticks"],10),Uf=i(["grid","x","show"],!1),Vf=i(["grid","x","type"],"tick"),Wf=i(["grid","x","lines"],null),Xf=i(["grid","y","show"],!1),Yf=i(["grid","y","lines"],null),Zf=i(["grid","y","ticks"],10),$f=i(["point","show"],!0),_f=$f?i(["point","r"],2.5):0,ag=i(["point","focus","line","enabled"],!0),bg=i(["point","focus","expand","enabled"],!0),cg=i(["point","focus","expand","r"],bg?4:_f),dg=i(["point","focus","select","r"],8),eg=i(["point","onclick"],function(){}),fg=i(["point","onselected"],function(){}),gg=i(["point","onunselected"],function(){}),hg=i(["arc","label","show"],!0),ig=i(["arc","label","format"],null),jg=i(["arc","title"],""),kg=i(["regions"],[]),lg=i(["tooltip","show"],!0),mg=i(["tooltip","format","title"],null),ng=i(["tooltip","format","value"],null),og=i(["tooltip","contents"],function(a,b,c,d){var e,f,g,h,i,j=mg?mg:b,k=ng?ng:c;for(f=0;f"+(g?""+g+"":"")),i=a[f].name,h=k(a[f].value,a[f].ratio),e+=""+i+""+h+"");return e+""}),pg=i(["tooltip","init","show"],!1),qg=i(["tooltip","init","x"],0),rg=i(["tooltip","init","position"],{top:"0px",left:"50px"}),sg=de.replace("#","")+"-clip",tg=j(sg),ug="timeseries"===wf,vg="categorized"===wf,wg=!ug&&(Ye||Ze),xg=null,yg=!1,zg=!1,Ag=cd(jf,qf),Bg=function(){var a=[[g.time.format("%Y/%-m/%-d"),function(){return!0}],[g.time.format("%-m/%-d"),function(a){return a.getMonth()}],[g.time.format("%-m/%-d"),function(a){return 1!==a.getDate()}],[g.time.format("%-m/%-d"),function(a){return a.getDay()&&1!==a.getDate()}],[g.time.format("%I %p"),function(a){return a.getHours()}],[g.time.format("%I:%M"),function(a){return a.getMinutes()}],[g.time.format(":%S"),function(a){return a.getSeconds()}],[g.time.format(".%L"),function(a){return a.getMilliseconds()}]];return function(b){for(var c=a.length-1,d=a[c];!d[1](b);)d=a[--c];return d[0](b)}}(),Cg=vf?"left":"bottom",Dg=vf?If?"top":"bottom":If?"right":"left",Eg=vf?Qf?"bottom":"top":Qf?"left":"right",Fg=vf?"left":"bottom",Gg={main:function(){return"translate("+oe.left+","+oe.top+")"},context:function(){return"translate("+pe.left+","+pe.top+")"},legend:function(){return"translate("+qe.left+","+qe.top+")"},y2:function(){return"translate("+(vf?0:re)+","+(vf?1:0)+")"},x:function(){return"translate(0,"+te+")"},subx:function(){return"translate(0,"+(vf?0:ue)+")"},arc:function(){return"translate("+re/2+","+te/2+")"}},Hg="right"===sf,Ig=0,Jg=0,Kg=0,Lg=40,Mg=20;Fe=g.layout.pie().value(function(a){return a.values.reduce(function(a,b){return a+b.value},0)});var Ng,Og=function(){var a=g.svg.line().x(vf?function(a){return N(a.id)(a.value)}:pc).y(vf?pc:function(a){return N(a.id)(a.value)});return function(b){var c,d,e=pd(b.values);return Uc(b)?(a.interpolate(Vc(b)?"cardinal":"linear"),hf[b.id]?Bd(e,Oe,N(b.id),hf[b.id]):a(e)):(c=Oe(e[0].x),d=N(b.id)(e[0].value),vf?"M "+d+" "+c:"M "+c+" "+d)}}(),Pg=function(){var a;return a=vf?g.svg.area().x0(function(a){return N(a.id)(0)}).x1(function(a){return N(a.id)(a.value)}).y(pc):g.svg.area().x(pc).y0(function(a){return N(a.id)(0)}).y1(function(a){return N(a.id)(a.value)}),function(b){var c,d,e=pd(b.values);return Oc([b],"area")||Oc([b],"area-spline")?(a.interpolate(Vc(b)?"cardinal":"linear"),a(e)):(c=Oe(e[0].x),d=N(b.id)(e[0].value),vf?"M "+d+" "+c:"M "+c+" "+d)}}(),Qg=function(){var a=g.svg.line().x(vf?function(a){return O(a.id)(a.value)}:sc).y(vf?sc:function(a){return O(a.id)(a.value)});return function(b){var c=pd(b.values);return Uc(b)?a(c):"M "+Re(c[0].x)+" "+O(b.id)(c[0].value)}}(),Rg=function(){};Ng=g.svg.brush().on("brush",Kd),Ng.update=function(){return Vg&&Vg.select(".x.brush").call(this),this},Ng.scale=function(a){return vf?this.y(a):this.x(a)},ie&&(Rg=g.behavior.zoom().on("zoomstart",function(){Rg.altDomain=g.event.sourceEvent.altKey?Oe.orgDomain():null}).on("zoom",ie?Ld:null),Rg.scale=function(a){return vf?this.y(a):this.x(a)},Rg.orgScaleExtent=function(){var a=je?je:[1,10];return[a[0],Math.max(Ob()/a[1],a[1])]},Rg.updateScaleExtent=function(){var a=wb(Oe.orgDomain())/wb(Zg),b=this.orgScaleExtent();return this.scaleExtent([b[0]*a,b[1]*a]),this});var Sg,Tg,Ug,Vg,Wg,Xg,Yg,Zg,$g,_g={};if($d.focus=function(a){function b(a){a.transition().duration(100).style("opacity",1)}var c=Sg.selectAll(Wd(a)),d=c.filter(Xd),e=c.filter(Yd);$d.revert(),$d.defocus(),b(d.classed("focused",!0)),b(e),Tc($d.data.targets)&&mb(a,!0),Rd(a)},$d.defocus=function(a){function b(a){a.transition().duration(100).style("opacity",.3)}var c=Sg.selectAll(Wd(a)),d=c.filter(Xd),e=c.filter(Yd);$d.revert(),b(d.classed("focused",!1)),b(e),Tc($d.data.targets)&&nb(a),Sd(a)},$d.revert=function(a){function b(a){a.transition().duration(100).style("opacity",1)}var c=Sg.selectAll(Wd(a)),d=c.filter(Xd),e=c.filter(Yd);b(d.classed("focused",!1)),b(e),Tc($d.data.targets)&&nb(a),Td()},$d.show=function(a){Sg.selectAll(Wd(a)).transition().style("opacity",1)},$d.hide=function(a){Sg.selectAll(Wd(a)).transition().style("opacity",0)},$d.unzoom=function(){Ng.clear().update(),Jd({withUpdateXDomain:!0})},$d.load=function(a){if("function"!=typeof a.done&&(a.done=function(){}),a.xs&&Gb(a.xs),"categories"in a&&vg&&(xf=a.categories,Ue.categories(xf)),"cacheIds"in a&&xb(a.cacheIds))return void Qd(zb(a.cacheIds),a.done);if("data"in a)Qd(Kb(a.data),a.done);else if("url"in a)g.csv(a.url,function(b,c){Qd(Kb(c),a.done)});else if("rows"in a)Qd(Kb(Ib(a.rows)),a.done);else{if(!("columns"in a))throw Error("url or rows or columns is required.");Qd(Kb(Jb(a.columns)),a.done)}},$d.unload=function(a){$d.data.targets=$d.data.targets.filter(function(b){return b.id!==a}),Sg.selectAll(Wd(a)).transition().style("opacity",0).remove(),rf&&Wg.selectAll(".legend-item"+Vd(a)).remove(),$d.data.targets.length>0&&Jd({withUpdateOrgXDomain:!0,withUpdateXDomain:!0,withLegend:!0})},$d.selected=function(a){var b=Vd(a);return g.merge(Ug.selectAll(".-shapes"+b).selectAll(".-shape").filter(function(){return g.select(this).classed(be)}).map(function(a){return a.map(function(a){return a.__data__})}))},$d.select=function(a,b,c){kf&&Ug.selectAll(".-shapes").selectAll(".-shape").each(function(d,f){var h="circle"===this.nodeName?jd:md,i="circle"===this.nodeName?kd:nd,j=lf||!a||a.indexOf(d.id)>=0,k=!b||b.indexOf(f)>=0;j&&k?mf(d)&&h(g.select(this).classed(be,!0),d,f):e(c)&&c&&i(g.select(this).classed(be,!1),d,f)})},$d.unselect=function(a,b){kf&&Ug.selectAll(".-shapes").selectAll(".-shape").each(function(c,d){var e="circle"===this.nodeName?kd:nd,f=lf||!a||a.indexOf(c.id)>=0,h=!b||b.indexOf(d)>=0;f&&h&&mf(c)&&e(g.select(this).classed(be,!1),c,d)})},$d.toLine=function(a){Nc(a,"line"),Od()},$d.toSpline=function(a){Nc(a,"spline"),Od()},$d.toBar=function(a){Nc(a,"bar"),Od()},$d.toScatter=function(a){Nc(a,"scatter"),Od()},$d.toArea=function(a){Nc(a,"area"),Od()},$d.toAreaSpline=function(a){Nc(a,"area-spline"),Od()},$d.toPie=function(a){Nc(a,"pie"),Od({withTransform:!0})},$d.toDonut=function(a){Nc(a,"donut"),Od({withTransform:!0})},$d.groups=function(a){return d(a)?bf:(bf=a,Jd(),bf)},$d.xgrids=function(a){return a?(Wf=a,Jd(),Wf):Wf},$d.xgrids.add=function(a){return a?$d.xgrids(Wf.concat(a)):void 0},$d.xgrids.remove=function(a){var b=Zd(a);return $d.xgrids(Wf.filter(b))},$d.ygrids=function(a){return a?(Yf=a,Jd(),Yf):Yf},$d.ygrids.add=function(a){return a?$d.ygrids(Yf.concat(a)):void 0},$d.ygrids.remove=function(a){var b=Zd(a);return $d.ygrids(Yf.filter(b))},$d.regions=function(a){return d(a)?kg:(kg=a,Jd(),kg)},$d.regions.add=function(a){return d(a)?kg:(kg=kg.concat(a),Jd(),kg)},$d.regions.remove=function(a,b){var d=[].concat(a);return b=e(b)?b:{},d.forEach(function(a){var d=c(b.duration)?b.duration:0;Sg.selectAll("."+a).transition().duration(d).style("fill-opacity",0).remove(),kg=kg.filter(function(b){return b.classes.indexOf(a)<0})}),kg},$d.data.get=function(a){var b=$d.data.getAsTarget(a);return e(b)?b.values.map(function(a){return a.value}):void 0},$d.data.getAsTarget=function(a){var b=Sb(function(b){return b.id===a});return b.length>0?b[0]:void 0},$d.resize=function(a){ee=a?a.width:null,fe=a?a.height:null,Od({withLegend:!0,withTransition:!1})},$d.destroy=function(){$d.data.targets=void 0,$d.data.x={},Yg.html(""),a.onresize=null},"url"in f.data)g.csv(f.data.url,function(a,b){Cd(b)});else if("rows"in f.data)Cd(Ib(f.data.rows));else{if(!("columns"in f.data))throw Error("url or rows or columns is required.");Cd(Jb(f.data.columns))}return $d}}(window); \ No newline at end of file +!function(a){"use strict";function b(){function a(a,b){a.attr("transform",function(a){return"translate("+(b(a)+q)+", 0)"})}function b(a,b){a.attr("transform",function(a){return"translate(0,"+b(a)+")"})}function c(a){var b=a[0],c=a[a.length-1];return c>b?[b,c]:[c,b]}function d(a){for(var b=[],c=Math.ceil(a[0]);c0&&b[0]>0&&b.unshift(b[0]-(b[1]-b[0])),b}function e(a,b){var c=a.length-1;return p>=c||b%Math.ceil(c/p)===0}function f(a){return a0?a:320}function t(){return ld(se.data.targets)?0:Ae?Ae:ag?1:v("y")}function u(){return ld(se.data.targets)?0:Be?Be:ah?Se+(eg&&!Pf?v("y2"):1):eg?jg||Pf?1:v("y2"):1}function v(a){var b=gb(a);return b.isInner?20+yb(a):40+yb(a)}function w(a){var b=gb(a);return(b.isInner?0:20)+("y2"===a?20:0)}function x(){return+g.select(xe).style("width").replace("px","")}function y(){return+g.select(xe).style("height").replace("px","")}function z(a){return a?-1:-(Ie.left-1)}function A(a){return a?-20:-1}function B(){return z(!Pf)}function C(){return A(!Pf)}function D(){return z(Pf)}function E(){return A(Pf)}function F(a){return a?Le+2:Ie.left+20}function G(a){return a?80:Ne+2}function H(){return F(!Pf)}function I(){return G(!Pf)}function J(){return F(Pf)}function K(){return G(Pf)}function L(){var a=Pf?Ne:Le,b=Lb(),c=gc();return c>1?a*b/(c-1):a}function M(a){bh=a}function N(a){ch=a}function O(a){dh=a}function P(){return Lf?ah?ch*(bh+1):Pe:0}function Q(){return Lf?ah?Qe:dh*(bh+1):0}function R(){var a=db();return a.isInner?5:20}function S(){var a,b,c=!gf;$e=Pf?1:0,_e=Pf?Ne:Le,af=Pf?0:Ne,bf=Pf?Le:1,cf=$e,df=_e,ef=Pf?0:Oe,ff=Pf?Me:1,gf=U($e,_e,c?void 0:gf.domain(),function(){return nf.tickOffset()}),hf=V(af,bf),jf=V(af,bf),kf=U($e,_e,sh,function(a){return a%1?0:qf.tickOffset()}),lf=V(ef,ff),mf=V(ef,ff),a=_(),b=ab(),nf=Y(gf,Xg,a,b),qf=Y(kf,$g,a,b),of=Z(hf,Yg,bg,dg),pf=Z(jf,Zg,kg,mg),c||(gh.scale(kf),Ce&&kh.scale(gf)),T()}function T(){We=Ab(),Xe=Bb(),Ye=Bb(.98)}function U(a,b,c,f){var h=(Pg?g.time.scale():g.scale.linear()).range([a,b]);if(h.orgDomain=function(){return h.domain()},e(c)&&h.domain(c),d(f)&&(f=function(){return 0}),Qg){var i,j=h;h=function(a){return j(a)+f(a)};for(i in j)h[i]=j[i];h.orgDomain=function(){return j.domain()},h.domain=function(a){return arguments.length?(j.domain(a),h):(a=j.domain(),[a[0],a[1]+1])}}return h}function V(a,b){return g.scale.linear().range([a,b])}function W(a){return"y2"===$(a)?jf:hf}function X(a){return"y2"===$(a)?mf:lf}function Y(a,c,d,e){var f=(Qg?b():g.svg.axis()).scale(a).orient(c);return f.tickFormat(d).ticks(e),Qg?f.tickCentered(Sf):f.tickOffset=function(){var a=Pf?Ne:Le;return a*Lb()/gc()/2},Qg&&f.categories(Rf),f}function Z(a,b,c,d){return g.svg.axis().scale(a).orient(b).tickFormat(c).ticks(d).outerTickSize(0)}function $(a){return a in xf?xf[a]:"y"}function _(){var a=Pg?Wg:Qg?pc:null;return Tf&&("function"==typeof Tf?a=Tf:Pg&&(a=function(a){return g.time.format(Tf)(a)})),a}function ab(){var a=gc();return Uf&&a>Vf?Vf:a}function bb(a){return"string"==typeof a?a:a?a.text:null}function cb(a,b){var c=a&&"object"==typeof a&&a.position?a.position:b;return{isInner:c.indexOf("inner")>=0,isOuter:c.indexOf("outer")>=0,isLeft:c.indexOf("left")>=0,isCenter:c.indexOf("center")>=0,isRight:c.indexOf("right")>=0,isTop:c.indexOf("top")>=0,isMiddle:c.indexOf("middle")>=0,isBottom:c.indexOf("bottom")>=0}}function db(){return cb(Xf,"inner-right")}function eb(){return cb(_f,"inner-top")}function fb(){return cb(ig,"inner-top")}function gb(a){return"y2"===a?fb():"y"===a?eb():db()}function hb(){return bb(Xf)}function ib(){return bb(_f)}function jb(){return bb(ig)}function kb(a,b){return a?b.isLeft?0:b.isCenter?Le/2:Le:b.isBottom?-Ne:b.isMiddle?-Ne/2:0}function lb(a,b){return a?b.isLeft?"0.5em":b.isRight?"-0.5em":"0":b.isTop?"-0.5em":b.isBottom?"0.5em":"0"}function mb(a,b){return a?b.isLeft?"start":b.isCenter?"middle":"end":b.isBottom?"start":b.isMiddle?"middle":"end"}function nb(){return kb(!Pf,db())}function ob(){return kb(Pf,eb())}function pb(){return kb(Pf,fb())}function qb(){return lb(Pf,eb())}function rb(){return lb(Pf,fb())}function sb(){var a=db();return Pf?a.isInner?"1.2em":-30-yb("x"):a.isInner?"-0.5em":"3em"}function tb(){var a=eb();return Pf?a.isInner?"-0.5em":"3em":a.isInner?"1.2em":-20-yb("y")}function ub(){var a=fb();return Pf?a.isInner?"1.2em":"-2.5em":a.isInner?"-0.5em":30+yb("y2")}function vb(){return mb(!Pf,db())}function wb(){return mb(Pf,eb())}function xb(){return mb(Pf,fb())}function yb(a){var b=0;return g.selectAll("."+a+".axis .tick text").each(function(){var a=this.getBBox();b0)for(f=nc(a),b=0;ba?a:0}),c=1;c0||(h[d][b]+=+a)});return g.min(Object.keys(h).map(function(a){return g.min(h[a])}))}function Jb(a){var b,c,d,e,f,h=lc(a);if(wf.length>0)for(f=oc(a),b=0;b0?a:0}),c=1;c+a||(h[d][b]+=+a)});return g.max(Object.keys(h).map(function(a){return g.max(h[a])}))}function Kb(a){var b,d,e,f,g,h,i,j,k=kc(function(b){return $(b.id)===a}),l="y2"===a?gg:Zf,m="y2"===a?fg:Yf,n=c(l)?l:Ib(k),o=c(m)?m:Jb(k),p="y2"===a?hg:$f,q=Hc()&&Pf;return n===o&&(0>n?o=0:n=0),b=Math.abs(o-n),d=e=f=q?0:.1*b,p&&(g=Math.max(Math.abs(n),Math.abs(o)),o=g-p,n=p-g),"y"===a&&cg&&(e=c(cg.top)?cg.top:d,f=c(cg.bottom)?cg.bottom:d),"y2"===a&&lg&&(e=c(lg.top)?lg.top:d,f=c(lg.bottom)?lg.bottom:d),q&&(h=Ic(n,o),i=Qb(hf.range()),j=[h[0]/i,h[1]/i],e+=b*(j[1]/(1-j[0]-j[1])),f+=b*(j[0]/(1-j[0]-j[1]))),hd(k)&&!nc(k)&&(f=n),[n-f,o+e]}function Lb(a){var b=Qb(sh),c=Qb(gf.domain());return a||0===c?1:b/c}function Mb(a){return g.min(a,function(a){return g.min(a.values,function(a){return a.x})})}function Nb(a){return g.max(a,function(a){return g.max(a.values,function(a){return a.x})})}function Ob(a,b){var c,d,e=b[0],f=b[1],g=Math.abs(e-f);return Qg?d=0:hd(a)?(c=gc(),d=c>1?g/(c-1)/2:.5):d=.01*g,d}function Pb(a){var b=[Mb(a),Nb(a)],c=b[0],d=b[1],e=Ob(a,b),f=Pg?new Date(c.getTime()-e):c-e,g=Pg?new Date(d.getTime()+e):d+e;return[f,g]}function Qb(a){return a[1]-a[0]}function Rb(a){for(var b=0;bd?0:d}function Wb(a){return rf&&a===rf||sf&&Bd(sf,a)}function Xb(a){return!Wb(a)}function Yb(a){return rf?rf:sf?sf[a]:null}function Zb(a,b){return a in se.data.x&&se.data.x[a]&&se.data.x[a][b]?se.data.x[a][b]:b}function $b(a){Object.keys(a).forEach(function(b){sf[b]=a[b]})}function _b(a){var b;return a&&(b=vf[a.id],a.name=b?b:a.id),a}function ac(a){var b,c,d=a[0],e={},f=[];for(b=1;b=0?b.map(function(a){return a[c]}):se.data.x[Object.keys(se.data.x)[0]]}),c=d.map(function(a){var c=uf(a);return{id:c,id_org:a,values:b.map(function(b,d){var e,f=Yb(a);return e=Pg?xd(b[f]):Rg?b[f]?+b[f]:Zb(a,d):d,b.x=e,{x:e,value:null===b[a]||isNaN(b[a])?null:+b[a],id:c}})}}),c.forEach(function(a){var b;a.values=a.values.sort(function(a,b){var c=a.x||0===a.x?a.x:1/0,d=b.x||0===b.x?b.x:1/0;return c-d}),b=0,a.values.forEach(function(a){a.index=b++})}),yf&&fd(ic(c).filter(function(a){return!(a in zf)}),yf),c.forEach(function(a){Sb(a.id_org,a)}),c)}function dc(a){return{id:a.id,id_org:a.id_org,values:a.values.map(function(a){return{x:a.x,value:a.value,id:a.id}})}}function ec(a){return a>0&&se.data.targets[0].values[a-1]?se.data.targets[0].values[a-1].x:void 0}function fc(a){return a1?se.data.targets.forEach(function(b){b.values.length>c&&(a=b,c=b.values.length)}):a=b?se.data.targets[0]:null,a}function ic(a){return a=d(a)?se.data.targets:a,a.map(function(a){return a.id})}function jc(a){var b,c=ic();for(b=0;ba})}function oc(a){return mc(a,function(a){return a>0})}function pc(a){return a=0&&d===a[c].x;c--)e.push(a[c]);for(c=b;c0?g=h:f=h,g-f===1?(e=[],a[f].x&&(e=e.concat(Pc(a,f))),a[g].x&&(e=e.concat(Pc(a,g))),Sc(e,b)):Qc(a,b,f,g)}function Rc(a,b){var c;return c=a.map(function(a){return Qc(a.values,b)}),Sc(c,b)}function Sc(a,b){var c,d;return a.forEach(function(a){var e=Cd(a,b);(c>e||!c)&&(c=e,d=a)}),d}function Tc(){return Bf&&"desc"===Bf.toLowerCase()}function Uc(){return Bf&&"asc"===Bf.toLowerCase()}function Vc(a){var b=Uc(),c=Tc();return b||c?a.sort(function(a,c){var d=function(a,b){return a+Math.abs(b.value)},e=a.values.reduce(d,0),f=c.values.reduce(d,0);return b?f-e:e-f}):"function"==typeof Bf&&a.sort(Bf),a}function Wc(a,b){var d,e,f,g,h,i,j,k=ld(se.data.targets),l=k?Oc:Nc,m=a.filter(function(a){return a&&c(a.value)});Gg&&0!==m.length&&(qh.html(Jg(a,_(),l,Vg)).style("visibility","hidden").style("display","block"),d=qh.property("offsetWidth"),e=qh.property("offsetHeight"),k?(g=Le/2+b[0],i=Ne/2+b[1]+20):(Pf?(f=q(),g=f+b[0]+100,h=g+d,j=r()-u(),i=gf(m[0].x)+20):(f=q(),g=f+t()+gf(m[0].x)+20,h=g+d,j=f+r()-u(),i=b[1]+15),h>j&&(g-=d+60),i+e>s()&&(i-=e+30)),qh.style("top",i+"px").style("left",g+"px").style("visibility","visible"))}function Xc(){qh.style("display","none")}function Yc(a){var b=a.filter(function(a){return a&&c(a.value)});Gg&&(id(se.data.targets)||ld(se.data.targets)||nh.selectAll("line.xgrid-focus").style("visibility","visible").data([b[0]]).attr(Pf?"y1":"x1",Jc).attr(Pf?"y2":"x2",Jc))}function Zc(){nh.select("line.xgrid-focus").style("visibility","hidden")}function $c(a){return a.x||0===a.x?gf(a.x):null}function _c(a){return W(a.id)(a.value)}function ad(){var a,b,c={},e=0;return kc(od).forEach(function(f){for(a=0;a0&&(i+=g(b.values[f].value)-h)}),i}}function ed(a,b){return b?2*a.tickOffset()*.6/b:0}function fd(a,b){var c=d(a)?ic():a;"string"==typeof c&&(c=[c]);for(var e=0;e0&&i>k||a.value<0&&k>i)&&(k=i),[[j,i],[j,k-(c-i)],[j+d,k-(c-i)],[j+d,i]]}}function Vd(a,b,c,f){var g,h,i,j,k,l,m,n,o,p,q,r=-1,s="M",t=[];if(e(f))for(g=0;g=h;h+=u)s+=i(a[g-1],a[g],h,o)}r=a[g].x}return s}function Wd(b){var c,d,e;if(rh=g.select(xe),rh.empty())return void a.alert('No bind element found. Check the selector specified by "bindto" and existance of that element. Default "bindto" is "#chart".');if(rh.html(""),se.data.x={},se.data.targets=cc(b),o(),S(),gf.domain(g.extent(Pb(se.data.targets))),hf.domain(Kb("y")),jf.domain(Kb("y2")),kf.domain(gf.domain()),lf.domain(hf.domain()),mf.domain(jf.domain()),sh=gf.domain(),gh.scale(kf),Ce&&kh.scale(gf),lh=g.select(xe).append("svg").attr("width",Le+Ie.left+Ie.right).attr("height",Ne+Ie.top+Ie.bottom).on("mouseenter",Fe).on("mouseleave",Ge),mh=lh.append("defs"),mh.append("clipPath").attr("id",Ng).append("rect").attr("width",Le).attr("height",Ne),mh.append("clipPath").attr("id","xaxis-clip").append("rect").attr("x",B).attr("y",C).attr("width",H).attr("height",I),mh.append("clipPath").attr("id","yaxis-clip").append("rect").attr("x",D).attr("y",E).attr("width",J).attr("height",K),nh=lh.append("g").attr("transform",_g.main),oh=If?lh.append("g").attr("transform",_g.context):null,ph=Lf?lh.append("g").attr("transform",_g.legend):null,qh=g.select(xe).style("position","relative").append("div").style("position","absolute").style("z-index","10").style("display","none"),nh.append("g").attr("class","x axis").attr("clip-path",Pf?"":j("xaxis-clip")).attr("transform",_g.x).append("text").attr("class","-axis-x-label").attr("transform",Pf?"rotate(-90)":"").attr("dy",sb).style("text-anchor",vb).text(hb),nh.append("g").attr("class","y axis").attr("clip-path",Pf?j("yaxis-clip"):"").append("text").attr("class","-axis-y-label").attr("transform",Pf?"":"rotate(-90)").attr("dx",qb).style("text-anchor",wb).text(ib),eg&&nh.append("g").attr("class","y2 axis").attr("transform",_g.y2).append("text").attr("class","-axis-y2-label").attr("transform",Pf?"":"rotate(-90)").attr("dx",rb).style("text-anchor",xb).text(jb),d=nh.append("g").attr("clip-path",Og).attr("class","grid"),ng&&d.append("g").attr("class","xgrids"),pg&&d.append("g").attr("class","xgrid-lines"),vg&&d.append("g").attr("class","xgrid-focus").append("line").attr("class","xgrid-focus").attr("x1",Pf?0:-10).attr("x2",Pf?Le:-10).attr("y1",Pf?-10:Ie.top).attr("y2",Pf?-10:Ne),qg&&d.append("g").attr("class","ygrids"),rg&&d.append("g").attr("class","ygrid-lines"),nh.append("g").attr("clip-path",Og).attr("class","regions"),nh.append("g").attr("clip-path",Og).attr("class","chart"),c=nh.select(".chart").append("g").attr("class","event-rects").style("fill-opacity",0).style("cursor",Ce?Pf?"ns-resize":"ew-resize":null),nh.select(".chart").append("g").attr("class","chart-bars"),nh.select(".chart").append("g").attr("class","chart-lines"),nh.select(".chart").append("g").attr("class","chart-arcs").attr("transform",_g.arc).append("text").attr("class","chart-arcs-title").style("text-anchor","middle").text(Eg),nh.select(".chart").append("g").attr("class","chart-texts"),Ce&&nh.insert("rect",Ee?null:"g.grid").attr("class","zoom-rect").attr("width",Le).attr("height",Ne).style("opacity",0).style("cursor",Pf?"ns-resize":"ew-resize").call(kh).on("dblclick.zoom",null),null!==Wf&&gh.extent("function"!=typeof Wf?Wf:Wf(Pb())),If&&(oh.append("g").attr("clip-path",Og).attr("class","chart"),oh.select(".chart").append("g").attr("class","chart-bars"),oh.select(".chart").append("g").attr("class","chart-lines"),oh.append("g").attr("clip-path",Og).attr("class","x brush").call(gh).selectAll("rect").attr(Pf?"width":"height",Pf?Me:Oe),oh.append("g").attr("class","x axis").attr("transform",_g.subx).attr("clip-path",Pf?j("yaxis-clip"):"")),he(se.data.targets),Pf?nh.select(".x.axis").style("opacity",0).call(nf):(nh.select(".y.axis").style("opacity",0).call(of),nh.select(".y2.axis").style("opacity",0).call(pf)),ge({withTransform:!0,withUpdateXDomain:!0,withLegend:!0,durationForAxis:0}),Kg){if(Pg&&"string"==typeof Lg){for(Lg=xd(Lg),e=0;e0){d=[];for(var f in vf)for(c=0;cf&&h>c&&d>i&&j>d):"rect"===this.nodeName&&(c=1*l.attr("x"),d=1*l.attr("y"),e=1*l.attr("width"),k=Id,o=c+e>f&&h>c&&j>d),o^n&&(l.classed(we,!n),l.classed(ve,!m),k(!m,l,a,b))}))}function _d(a){ld(se.data.targets)||Ef&&(Sg=a,nh.select(".chart").append("rect").attr("class","dragarea").style("opacity",.1),Tg=!0)}function ae(){ld(se.data.targets)||Ef&&(nh.select(".dragarea").transition().duration(100).style("opacity",0).remove(),nh.selectAll(".-shape").classed(we,!1),Tg=!1)}function be(a){var b,d,f,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I=ad(),J=ld(se.data.targets);if(a=e(a)?a:{},u=e(a.withY)?a.withY:!0,v=e(a.withSubchart)?a.withSubchart:!0,w=e(a.withTransition)?a.withTransition:!0,x=e(a.withTransform)?a.withTransform:!1,y=e(a.withUpdateXDomain)?a.withUpdateXDomain:!1,z=e(a.withUpdateOrgXDomain)?a.withUpdateOrgXDomain:!1,A=e(a.withLegend)?a.withLegend:!1,F=w?He:0,G=e(a.durationForExit)?a.durationForExit:F,H=e(a.durationForAxis)?a.durationForAxis:F,A&&Lf&&me(se.data.targets,a),z&&(gf.domain(g.extent(Pb(se.data.targets))),sh=gf.domain(),Ce&&kh.scale(gf).updateScaleExtent(),kf.domain(gf.domain()),gh.scale(kf)),y&&(gf.domain(gh.empty()?sh:gh.extent()),Ce&&kh.scale(gf).updateScaleExtent()),hf.domain(Kb("y")),jf.domain(Kb("y2")),nh.select(".x.axis").style("opacity",J?0:1).transition().duration(H).call(nf),nh.select(".y.axis").style("opacity",J?0:1).transition().duration(H).call(of),nh.select(".y2.axis").style("opacity",J?0:1).transition().duration(H).call(pf),B=Qd(I),D=Rd(I,!0),E=Rd(I,!1),nh.select(".x.axis .-axis-x-label").attr("x",nb),nh.select(".y.axis .-axis-y-label").attr("x",ob).attr("dy",tb),nh.select(".y2.axis .-axis-y2-label").attr("x",pb).attr("dy",ub),lf.domain(hf.domain()),mf.domain(jf.domain()),qh.style("display","none"),nh.select("line.xgrid-focus").style("visibility","hidden").attr("y2",Ne),ng){if("year"===og){d=[];for(var K=Pb(),M=K[0].getFullYear(),N=K[1].getFullYear(),O=M;N>=O;O++)d.push(new Date(O+"-01-01 00:00:00"))}else d=gf.ticks(10);b=nh.select(".xgrids").selectAll(".xgrid").data(d),b.enter().append("line").attr("class","xgrid"),b.attr("x1",Pf?0:function(a){return gf(a)-nf.tickOffset() +}).attr("x2",Pf?Le:function(a){return gf(a)-nf.tickOffset()}).attr("y1",Pf?function(a){return gf(a)-nf.tickOffset()}:Ie.top).attr("y2",Pf?function(a){return gf(a)-nf.tickOffset()}:Ne).style("opacity",function(){return+g.select(this).attr(Pf?"y1":"x1")===(Pf?Ne:0)?0:1}),b.exit().remove()}pg&&(f=nh.select(".xgrid-lines").selectAll(".xgrid-line").data(pg),h=f.enter().append("g").attr("class",function(a){return"xgrid-line xgrid-line-"+(a["class"]?a["class"]:"")}),h.append("line").style("opacity",0),h.append("text").attr("text-anchor","end").attr("transform",Pf?"":"rotate(-90)").attr("dx",Pf?0:-Ie.top).attr("dy",-5).style("opacity",0),f.select("line").transition().duration(F).attr("x1",Pf?0:Kc).attr("x2",Pf?Le:Kc).attr("y1",Pf?Kc:Ie.top).attr("y2",Pf?Kc:Ne).style("opacity",1),f.select("text").transition().duration(F).attr("x",Pf?Le:0).attr("y",Kc).text(function(a){return a.text}).style("opacity",1),f.exit().transition().duration(F).style("opacity",0).remove()),u&&qg&&(i=nh.select(".ygrids").selectAll(".ygrid").data(hf.ticks(sg)),i.enter().append("line").attr("class","ygrid"),i.attr("x1",Pf?hf:0).attr("x2",Pf?hf:Le).attr("y1",Pf?0:hf).attr("y2",Pf?Ne:hf),i.exit().remove()),u&&rg&&(j=nh.select(".ygrid-lines").selectAll(".ygrid-line").data(rg),k=j.enter().append("g").attr("class",function(a){return"ygrid-line ygrid-line-"+(a.class?a.class:"")}),k.append("line").style("opacity",0),k.append("text").attr("text-anchor","end").attr("transform",Pf?"rotate(-90)":"").attr("dx",Pf?0:-Ie.top).attr("dy",-5).style("opacity",0),j.select("line").transition().duration(F).attr("x1",Pf?Lc:0).attr("x2",Pf?Lc:Le).attr("y1",Pf?0:Lc).attr("y2",Pf?Ne:Lc).style("opacity",1),j.select("text").transition().duration(F).attr("x",Pf?0:Le).attr("y",Lc).text(function(a){return a.text}).style("opacity",1),j.exit().transition().duration(F).style("opacity",0).remove()),m=nh.selectAll(".-bars").selectAll(".-bar").data(td),m.enter().append("path").attr("d",B).style("stroke","none").style("opacity",0).style("fill",function(a){return Vg(a.id)}).attr("class",Ac),m.style("opacity",Dc).transition().duration(F).attr("d",B).style("opacity",1),m.exit().transition().duration(G).style("opacity",0).remove(),o=nh.selectAll(".-texts").selectAll(".-text").data(vd),o.enter().append("text").attr("class",qc).attr("text-anchor",function(a){return Pf?a.value<0?"end":"start":"middle"}).style("stroke","none").style("fill-opacity",0).text(function(a){return Nc(a.value)}),o.style("fill-opacity",Ec).transition().duration(F).attr("x",D).attr("y",E).style("fill-opacity",Gc),o.exit().transition().duration(G).style("fill-opacity",0).remove(),nh.selectAll(".-line").style("opacity",Dc).transition().duration(F).attr("d",hh).style("opacity",1),nh.selectAll(".-area").style("opacity",0).transition().duration(F).attr("d",ih).style("opacity",th),l=nh.selectAll(".-circles").selectAll(".-circle").data(ud),l.enter().append("circle").attr("class",zc).style("opacity",0).attr("r",ug),l.style("opacity",Dc).transition().duration(F).style("opacity",Fc).attr("cx",Pf?_c:$c).attr("cy",Pf?$c:_c),l.exit().remove(),nh.selectAll(".chart-arc").select(".-arc").attr("transform",x?"scale(0)":"").style("opacity",function(a){return a===this._current?0:1}).transition().duration(F).attrTween("d",function(a){var b=zb(a);if(!b)return function(){return"M 0 0"};var c=g.interpolate(this._current,b);return this._current=c(0),function(a){return Cb(c(a),!0)}}).attr("transform",x?"scale(1)":"").style("opacity",1),nh.selectAll(".chart-arc").select("text").attr("transform",Db).style("opacity",0).transition().duration(F).text(Fb).style("opacity",function(a){return sd(a.data)?1:0}),nh.select(".chart-arcs-title").style("opacity",kd(se.data.targets)?1:0),If&&(null!==g.event&&"zoom"===g.event.type&&gh.extent(gf.orgDomain()).update(),v&&(oh.select(".x.axis").style("opacity",J?0:1).transition().duration(F).call(qf),gh.empty()||gh.extent(gf.orgDomain()).update(),C=Qd(I,!0),p=oh.selectAll(".-bars").selectAll(".-bar").data(td),p.enter().append("path").attr("d",C).style("stroke","none").style("fill",function(a){return Vg(a.id)}).attr("class",Ac),p.style("opacity",Dc).transition().duration(F).attr("d",C).style("opacity",1),p.exit().transition().duration(F).style("opacity",0).remove(),oh.selectAll(".-line").style("opacity",Dc).transition().duration(F).attr("d",jh).style("opacity",1))),nh.selectAll(".selected-circles").filter(function(a){return od(a)}).selectAll("circle").remove(),nh.selectAll(".selected-circle").transition().duration(F).attr("cx",Pf?_c:$c).attr("cy",Pf?$c:_c),sf?(q=nh.select(".event-rects").selectAll(".event-rect").data([0]),Yd(q.enter()),q.attr("x",0).attr("y",0).attr("width",Le).attr("height",Ne)):(Rg?(t=function(a,b){var c=ec(b),d=fc(b);return(gf(d?d:a.x+50)-gf(c?c:a.x-50))/2},s=function(a,b){var c=ec(b);return(gf(a.x)+gf(c?c:a.x-50))/2}):(t=L(),s=function(a){return gf(a.x)-t/2}),r=hc(),nh.select(".event-rects").datum(r?r.values:[]),q=nh.select(".event-rects").selectAll(".event-rect").data(function(a){return a}),Xd(q.enter()),q.attr("class",Cc).attr("x",Pf?0:s).attr("y",Pf?s:0).attr("width",Pf?Le:t).attr("height",Pf?t:Ne),q.exit().remove()),n=nh.select(".regions").selectAll("rect.region").data(Fg),n.enter().append("rect").style("fill-opacity",0),n.attr("class",Bc).attr("x",Pf?0:Ub).attr("y",Pf?Ub:Ie.top).attr("width",Pf?Le:Vb).attr("height",Pf?Vb:Ne).transition().duration(F).style("fill-opacity",function(a){return c(a.opacity)?a.opacity:.1}),n.exit().transition().duration(F).style("fill-opacity",0).remove(),ic().forEach(function(a){uh[a]=!0})}function ce(){be({withTransition:!1,withY:!1,withSubchart:!1,withUpdateXDomain:!0})}function de(){return"mousemove"===g.event.sourceEvent.type&&kh.altDomain?(gf.domain(kh.altDomain),void kh.scale(gf).updateScaleExtent()):(Qg&&gf.orgDomain()[0]===sh[0]&&gf.domain([sh[0]-1e-10,gf.orgDomain()[1]]),be({withTransition:!1,withY:!1,withSubchart:!1}),void("mousemove"===g.event.sourceEvent.type&&(Ug=!0)))}function ee(){function a(){b.forEach(function(a){a()})}var b=[];return a.add=function(a){b.push(a)},a}function fe(){lh.attr("width",Pe).attr("height",Qe),lh.select("#"+Ng).select("rect").attr("width",Le).attr("height",Ne),lh.select("#xaxis-clip").select("rect").attr("width",H),lh.select(".zoom-rect").attr("width",Le).attr("height",Ne)}function ge(a){a=e(a)?a:{},a.withTransition=e(a.withTransition)?a.withTransition:!0,a.withTransform=e(a.withTransform)?a.withTransform:!1,a.withLegend=e(a.withLegend)?a.withLegend:!1,a.withUpdateXDomain=!0,a.durationForExit=0,o(),S(),fe(),n(a.withTransition),be(a)}function he(a){var b,c,d,e,f,h,i,j,k,l,m,n;i=nh.select(".chart-texts").selectAll(".chart-text").data(a),j=i.enter().append("g").attr("class",function(a){return"chart-text target target-"+a.id}).style("pointer-events","none"),j.append("g").attr("class",rc).style("fill",function(a){return Vg(a.id)}),e=nh.select(".chart-bars").selectAll(".chart-bar").data(a),d=e.enter().append("g").attr("class",function(a){return"chart-bar target target-"+a.id}).style("pointer-events","none"),d.append("g").attr("class",vc).style("fill",function(a){return Vg(a.id)}).style("stroke","none").style("cursor",function(a){return Gf(a)?"pointer":null}),c=nh.select(".chart-lines").selectAll(".chart-line").data(a),b=c.enter().append("g").attr("class",function(a){return"chart-line target target-"+a.id}).style("pointer-events","none"),b.append("path").attr("class",tc).style("opacity",0).style("stroke",function(a){return Vg(a.id)}),b.append("path").attr("class",xc).style("opacity",function(){return th=+g.select(this).style("opacity"),0}).style("fill",function(a){return Vg(a.id)}),b.append("g").attr("class",function(a){return"selected-circles selected-circles-"+a.id}),b.append("g").attr("class",uc).style("fill",function(a){return Vg(a.id)}).style("cursor",function(a){return Gf(a)?"pointer":null}),a.forEach(function(a){var b=ne(a.id);nh.selectAll(".selected-circles"+b).selectAll(".selected-circle").each(function(b){b.value=a.values[b.x].value})}),h=nh.select(".chart-arcs").selectAll(".chart-arc").data(Ze(a)),f=h.enter().append("g").attr("class",function(a){return"chart-arc target target-"+a.data.id}),f.append("path").attr("class",wc).style("opacity",0).style("fill",function(a){return Vg(a.data.id)}).style("cursor",function(a){return Gf(a)?"pointer":null}).each(function(a){this._current=a}).on("mouseover",function(a){Gb(a.data.id),je(a.data.id)}).on("mousemove",function(a){var b=[_b({id:a.data.id,value:a.value,ratio:Eb(a)})];Wc(b,g.mouse(this))}).on("mouseout",function(a){Hb(a.data.id),le(),Xc()}),f.append("text").attr("dy",".35em").style("opacity",0).style("text-anchor","middle").style("pointer-events","none"),If&&(n=oh.select(".chart-bars").selectAll(".chart-bar").data(a),m=n.enter().append("g").attr("class",function(a){return"chart-bar target target-"+a.id}),m.append("g").attr("class",vc).style("fill",function(a){return Vg(a.id)}),l=oh.select(".chart-lines").selectAll(".chart-line").data(a),k=l.enter().append("g").attr("class",function(a){return"chart-line target target-"+a.id}),k.append("path").attr("class",tc).style("opacity",0).style("stroke",function(a){return Vg(a.id)})),lh.selectAll(".target").transition().style("opacity",1)}function ie(a,b){se.data.targets.forEach(function(b){for(var c=0;ce&&(e=(k-j)/2,v=0,B++)),A[a]=B,z[B]=e,w[a]=v,v+=j}var e,f,g=a.getBBox(),h=10*Math.ceil((g.width+t)/10),i=10*Math.ceil((g.height+s)/10),j=ah?i:h,k=ah?Re:Se;c&&(v=0,B=0,m=0,p=0),x[b]=h,y[b]=i,(!m||h>=m)&&(m=h),(!p||i>=p)&&(p=i),f=ah?p:m,Of?(Object.keys(x).forEach(function(a){x[a]=m}),Object.keys(y).forEach(function(a){y[a]=p}),e=(k-f*r.length)/2,u>e?(v=0,B=0,r.forEach(function(a){d(a)})):d(b,!0)):d(b)}var f,g,h,i,j,k,l,m,p,q,r=ic(a),s=4,t=26,u=10,v=0,w={},x={},y={},z={},A={},B=0;b=d(b)?{}:b,q=e(b.withTransition)?b.withTransition:!0,ah?(g=function(a){return m*(.2+A[a])},j=function(a){return z[A[a]]+w[a]}):(g=function(a){return z[A[a]]+w[a]},j=function(a){return p*(.2+A[a])}),h=function(a,b){return g(a,b)+14},k=function(a,b){return j(a,b)+9},i=function(a,b){return g(a,b)-4},l=function(a,b){return j(a,b)-7},f=ph.selectAll(".legend-item").data(r).enter().append("g").attr("class",function(a){return"legend-item legend-item-"+a}).style("cursor","pointer").on("click",function(a){Nf(a)}).on("mouseover",function(a){se.focus(a)}).on("mouseout",function(){se.revert()}),f.append("text").text(function(a){return e(vf[a])?vf[a]:a}).each(function(a,b){c(this,a,0===b)}).style("pointer-events","none").attr("x",ah?h:-200).attr("y",ah?-200:k),f.append("rect").attr("class","legend-item-event").style("fill-opacity",0).attr("x",ah?i:-200).attr("y",ah?-200:l).attr("width",function(a){return x[a]}).attr("height",function(a){return y[a]}),f.append("rect").attr("class","legend-item-tile").style("pointer-events","none").style("fill",function(a){return Vg(a)}).attr("x",ah?h:-200).attr("y",ah?-200:j).attr("width",10).attr("height",10),ph.selectAll("text").data(r).each(function(a,b){c(this,a,0===b)}).transition().duration(q?250:0).attr("x",h).attr("y",k),ph.selectAll("rect.legend-item-event").data(r).transition().duration(q?250:0).attr("x",i).attr("y",l),ph.selectAll("rect.legend-item-tile").data(r).transition().duration(q?250:0).attr("x",g).attr("y",j),N(m),O(p),M(B),o(),S(),fe(),n(!1)}function ne(a){return a?"-"+a.replace(/\./g,"\\."):""}function oe(a){return".target"+ne(a)}function pe(a){return jc(a.id)}function qe(a){return"data"in a&&jc(a.data.id)}function re(a){var b=a&&a.value?a.value:null,c=a&&a["class"]?a["class"]:null;return b?function(a){return a.value!==b}:c?function(a){return a["class"]!==c}:function(){return!0}}var se={data:{}},te={},ue="_expanded_",ve="_selected_",we="_included_",xe=i(["bindto"],"#chart"),ye=i(["size","width"],null),ze=i(["size","height"],null),Ae=i(["padding","left"],null),Be=i(["padding","right"],null),Ce=i(["zoom","enabled"],!1),De=i(["zoom","extent"],null),Ee=i(["zoom","privileged"],!1),Fe=i(["onenter"],function(){}),Ge=i(["onleave"],function(){}),He=i(["transition","duration"],350);h("data","data is required in config");var Ie,Je,Ke,Le,Me,Ne,Oe,Pe,Qe,Re,Se,Te,Ue,Ve,We,Xe,Ye,Ze,$e,_e,af,bf,cf,df,ef,ff,gf,hf,jf,kf,lf,mf,nf,of,pf,qf,rf=i(["data","x"],null),sf=i(["data","xs"],null),tf=i(["data","x_format"],"%Y-%m-%d"),uf=i(["data","id_converter"],function(a){return a}),vf=i(["data","names"],{}),wf=i(["data","groups"],[]),xf=i(["data","axes"],{}),yf=i(["data","type"],null),zf=i(["data","types"],{}),Af=i(["data","labels"],{}),Bf=i(["data","order"],null),Cf=i(["data","regions"],{}),Df=i(["data","colors"],{}),Ef=i(["data","selection","enabled"],!1),Ff=i(["data","selection","grouped"],!1),Gf=i(["data","selection","isselectable"],function(){return!0}),Hf=i(["data","selection","multiple"],!0),If=i(["subchart","show"],!1),Jf=If?i(["subchart","size","height"],60):0,Kf=i(["color","pattern"],null),Lf=i(["legend","show"],!0),Mf=i(["legend","position"],"bottom"),Nf=i(["legend","item","onclick"],function(){}),Of=i(["legend","equally"],!1),Pf=i(["axis","rotated"],!1),Qf=i(["axis","x","type"],"indexed"),Rf=i(["axis","x","categories"],[]),Sf=i(["axis","x","tick","centered"],!1),Tf=i(["axis","x","tick","format"],null),Uf=i(["axis","x","tick","culling"],"categorized"===Qf?!1:!0),Vf=i(["axis","x","tick","count"],10),Wf=i(["axis","x","default"],null),Xf=i(["axis","x","label"],null),Yf=i(["axis","y","max"],null),Zf=i(["axis","y","min"],null),$f=i(["axis","y","center"],null),_f=i(["axis","y","label"],null),ag=i(["axis","y","inner"],!1),bg=i(["axis","y","tick","format"],null),cg=i(["axis","y","padding"],null),dg=i(["axis","y","ticks"],10),eg=i(["axis","y2","show"],!1),fg=i(["axis","y2","max"],null),gg=i(["axis","y2","min"],null),hg=i(["axis","y2","center"],null),ig=i(["axis","y2","label"],null),jg=i(["axis","y2","inner"],!1),kg=i(["axis","y2","tick","format"],null),lg=i(["axis","y2","padding"],null),mg=i(["axis","y2","ticks"],10),ng=i(["grid","x","show"],!1),og=i(["grid","x","type"],"tick"),pg=i(["grid","x","lines"],null),qg=i(["grid","y","show"],!1),rg=i(["grid","y","lines"],null),sg=i(["grid","y","ticks"],10),tg=i(["point","show"],!0),ug=tg?i(["point","r"],2.5):0,vg=i(["point","focus","line","enabled"],!0),wg=i(["point","focus","expand","enabled"],!0),xg=i(["point","focus","expand","r"],wg?4:ug),yg=i(["point","focus","select","r"],8),zg=i(["point","onclick"],function(){}),Ag=i(["point","onselected"],function(){}),Bg=i(["point","onunselected"],function(){}),Cg=i(["arc","label","show"],!0),Dg=i(["arc","label","format"],null),Eg=i(["arc","title"],""),Fg=i(["regions"],[]),Gg=i(["tooltip","show"],!0),Hg=i(["tooltip","format","title"],null),Ig=i(["tooltip","format","value"],null),Jg=i(["tooltip","contents"],function(a,b,c,d){var e,f,g,h,i,j=Hg?Hg:b,k=Ig?Ig:c;for(f=0;f"+(g?""+g+"":"")),i=a[f].name,h=k(a[f].value,a[f].ratio),e+=""+i+""+h+"");return e+""}),Kg=i(["tooltip","init","show"],!1),Lg=i(["tooltip","init","x"],0),Mg=i(["tooltip","init","position"],{top:"0px",left:"50px"}),Ng=xe.replace("#","")+"-clip",Og=j(Ng),Pg="timeseries"===Qf,Qg="categorized"===Qf,Rg=!Pg&&(rf||sf),Sg=null,Tg=!1,Ug=!1,Vg=wd(Df,Kf),Wg=function(){var a=[[g.time.format("%Y/%-m/%-d"),function(){return!0}],[g.time.format("%-m/%-d"),function(a){return a.getMonth()}],[g.time.format("%-m/%-d"),function(a){return 1!==a.getDate()}],[g.time.format("%-m/%-d"),function(a){return a.getDay()&&1!==a.getDate()}],[g.time.format("%I %p"),function(a){return a.getHours()}],[g.time.format("%I:%M"),function(a){return a.getMinutes()}],[g.time.format(":%S"),function(a){return a.getSeconds()}],[g.time.format(".%L"),function(a){return a.getMilliseconds()}]];return function(b){for(var c=a.length-1,d=a[c];!d[1](b);)d=a[--c];return d[0](b)}}(),Xg=Pf?"left":"bottom",Yg=Pf?ag?"top":"bottom":ag?"right":"left",Zg=Pf?jg?"bottom":"top":jg?"left":"right",$g=Pf?"left":"bottom",_g={main:function(){return"translate("+Ie.left+","+Ie.top+")"},context:function(){return"translate("+Je.left+","+Je.top+")"},legend:function(){return"translate("+Ke.left+","+Ke.top+")"},x:function(){return"translate(0,"+(Pf?0:Ne)+")"},y:function(){return"translate(0,"+(Pf?Ne:0)+")"},y2:function(){return"translate("+(Pf?0:Le)+","+(Pf?1:0)+")"},subx:function(){return"translate(0,"+(Pf?0:Oe)+")"},arc:function(){return"translate("+Le/2+","+Ne/2+")"}},ah="right"===Mf,bh=0,ch=0,dh=0,eh=40,fh=20;Ze=g.layout.pie().value(function(a){return a.values.reduce(function(a,b){return a+b.value},0)});var gh,hh=function(){var a=g.svg.line().x(Pf?function(a){return W(a.id)(a.value)}:Jc).y(Pf?Jc:function(a){return W(a.id)(a.value)});return function(b){var c,d,e=Jd(b.values);return md(b)?(a.interpolate(nd(b)?"cardinal":"linear"),Cf[b.id]?Vd(e,gf,W(b.id),Cf[b.id]):a(e)):(c=gf(e[0].x),d=W(b.id)(e[0].value),Pf?"M "+d+" "+c:"M "+c+" "+d)}}(),ih=function(){var a;return a=Pf?g.svg.area().x0(function(a){return W(a.id)(0)}).x1(function(a){return W(a.id)(a.value)}).y(Jc):g.svg.area().x(Jc).y0(function(a){return W(a.id)(0)}).y1(function(a){return W(a.id)(a.value)}),function(b){var c,d,e=Jd(b.values);return gd([b],"area")||gd([b],"area-spline")?(a.interpolate(nd(b)?"cardinal":"linear"),a(e)):(c=gf(e[0].x),d=W(b.id)(e[0].value),Pf?"M "+d+" "+c:"M "+c+" "+d)}}(),jh=function(){var a=g.svg.line().x(Pf?function(a){return X(a.id)(a.value)}:Mc).y(Pf?Mc:function(a){return X(a.id)(a.value)});return function(b){var c=Jd(b.values);return md(b)?a(c):"M "+kf(c[0].x)+" "+X(b.id)(c[0].value)}}(),kh=function(){};gh=g.svg.brush().on("brush",ce),gh.update=function(){return oh&&oh.select(".x.brush").call(this),this},gh.scale=function(a){return Pf?this.y(a):this.x(a)},Ce&&(kh=g.behavior.zoom().on("zoomstart",function(){kh.altDomain=g.event.sourceEvent.altKey?gf.orgDomain():null}).on("zoom",Ce?de:null),kh.scale=function(a){return Pf?this.y(a):this.x(a)},kh.orgScaleExtent=function(){var a=De?De:[1,10];return[a[0],Math.max(gc()/a[1],a[1])]},kh.updateScaleExtent=function(){var a=Qb(gf.orgDomain())/Qb(sh),b=this.orgScaleExtent();return this.scaleExtent([b[0]*a,b[1]*a]),this});var lh,mh,nh,oh,ph,qh,rh,sh,th,uh={};if(se.focus=function(a){function b(a){a.transition().duration(100).style("opacity",1)}var c=lh.selectAll(oe(a)),d=c.filter(pe),e=c.filter(qe);se.revert(),se.defocus(),b(d.classed("focused",!0)),b(e),ld(se.data.targets)&&Gb(a,!0),je(a)},se.defocus=function(a){function b(a){a.transition().duration(100).style("opacity",.3)}var c=lh.selectAll(oe(a)),d=c.filter(pe),e=c.filter(qe);se.revert(),b(d.classed("focused",!1)),b(e),ld(se.data.targets)&&Hb(a),ke(a)},se.revert=function(a){function b(a){a.transition().duration(100).style("opacity",1)}var c=lh.selectAll(oe(a)),d=c.filter(pe),e=c.filter(qe);b(d.classed("focused",!1)),b(e),ld(se.data.targets)&&Hb(a),le()},se.show=function(a){lh.selectAll(oe(a)).transition().style("opacity",1)},se.hide=function(a){lh.selectAll(oe(a)).transition().style("opacity",0)},se.unzoom=function(){gh.clear().update(),be({withUpdateXDomain:!0})},se.load=function(a){if("function"!=typeof a.done&&(a.done=function(){}),a.xs&&$b(a.xs),"categories"in a&&Qg&&(Rf=a.categories,nf.categories(Rf)),"cacheIds"in a&&Rb(a.cacheIds))return void ie(Tb(a.cacheIds),a.done);if("data"in a)ie(cc(a.data),a.done);else if("url"in a)g.csv(a.url,function(b,c){ie(cc(c),a.done)});else if("rows"in a)ie(cc(ac(a.rows)),a.done);else{if(!("columns"in a))throw Error("url or rows or columns is required.");ie(cc(bc(a.columns)),a.done)}},se.unload=function(a){se.data.targets=se.data.targets.filter(function(b){return b.id!==a}),lh.selectAll(oe(a)).transition().style("opacity",0).remove(),Lf&&ph.selectAll(".legend-item"+ne(a)).remove(),se.data.targets.length>0&&be({withUpdateOrgXDomain:!0,withUpdateXDomain:!0,withLegend:!0})},se.selected=function(a){var b=ne(a);return g.merge(nh.selectAll(".-shapes"+b).selectAll(".-shape").filter(function(){return g.select(this).classed(ve)}).map(function(a){return a.map(function(a){return a.__data__})}))},se.select=function(a,b,c){Ef&&nh.selectAll(".-shapes").selectAll(".-shape").each(function(d,f){var h="circle"===this.nodeName?Dd:Gd,i="circle"===this.nodeName?Ed:Hd,j=Ff||!a||a.indexOf(d.id)>=0,k=!b||b.indexOf(f)>=0;j&&k?Gf(d)&&h(g.select(this).classed(ve,!0),d,f):e(c)&&c&&i(g.select(this).classed(ve,!1),d,f)})},se.unselect=function(a,b){Ef&&nh.selectAll(".-shapes").selectAll(".-shape").each(function(c,d){var e="circle"===this.nodeName?Ed:Hd,f=Ff||!a||a.indexOf(c.id)>=0,h=!b||b.indexOf(d)>=0;f&&h&&Gf(c)&&e(g.select(this).classed(ve,!1),c,d)})},se.toLine=function(a){fd(a,"line"),ge()},se.toSpline=function(a){fd(a,"spline"),ge()},se.toBar=function(a){fd(a,"bar"),ge()},se.toScatter=function(a){fd(a,"scatter"),ge()},se.toArea=function(a){fd(a,"area"),ge()},se.toAreaSpline=function(a){fd(a,"area-spline"),ge()},se.toPie=function(a){fd(a,"pie"),ge({withTransform:!0})},se.toDonut=function(a){fd(a,"donut"),ge({withTransform:!0})},se.groups=function(a){return d(a)?wf:(wf=a,be(),wf)},se.xgrids=function(a){return a?(pg=a,be(),pg):pg},se.xgrids.add=function(a){return a?se.xgrids(pg.concat(a)):void 0},se.xgrids.remove=function(a){var b=re(a);return se.xgrids(pg.filter(b))},se.ygrids=function(a){return a?(rg=a,be(),rg):rg},se.ygrids.add=function(a){return a?se.ygrids(rg.concat(a)):void 0},se.ygrids.remove=function(a){var b=re(a);return se.ygrids(rg.filter(b))},se.regions=function(a){return d(a)?Fg:(Fg=a,be(),Fg)},se.regions.add=function(a){return d(a)?Fg:(Fg=Fg.concat(a),be(),Fg)},se.regions.remove=function(a,b){var d=[].concat(a);return b=e(b)?b:{},d.forEach(function(a){var d=c(b.duration)?b.duration:0;lh.selectAll("."+a).transition().duration(d).style("fill-opacity",0).remove(),Fg=Fg.filter(function(b){return b.classes.indexOf(a)<0})}),Fg},se.data.get=function(a){var b=se.data.getAsTarget(a);return e(b)?b.values.map(function(a){return a.value}):void 0},se.data.getAsTarget=function(a){var b=kc(function(b){return b.id===a});return b.length>0?b[0]:void 0},se.resize=function(a){ye=a?a.width:null,ze=a?a.height:null,ge({withLegend:!0,withTransition:!1})},se.destroy=function(){se.data.targets=void 0,se.data.x={},rh.html(""),a.onresize=null},"url"in f.data)g.csv(f.data.url,function(a,b){Wd(b)});else if("rows"in f.data)Wd(ac(f.data.rows));else{if(!("columns"in f.data))throw Error("url or rows or columns is required.");Wd(bc(f.data.columns))}return se}}(window); \ No newline at end of file