From 908e828b583715b4f16fc36f6ff7b6cc634fb2aa Mon Sep 17 00:00:00 2001 From: Masayuki Tanaka Date: Sun, 9 Mar 2014 21:32:50 +0900 Subject: [PATCH] Add legend.equally option for locate legends equllay - #62 --- c3.js | 97 ++++++++++++++++++++++++++++++++++--------------------- c3.min.js | 4 +-- 2 files changed, 63 insertions(+), 38 deletions(-) diff --git a/c3.js b/c3.js index 0f1a3cf..0dc291d 100644 --- a/c3.js +++ b/c3.js @@ -77,7 +77,8 @@ // legend var __legend_show = getConfig(['legend', 'show'], true), __legend_position = getConfig(['legend', 'position'], 'bottom'), - __legend_item_onclick = getConfig(['legend', 'item', 'onclick'], function () {}); + __legend_item_onclick = getConfig(['legend', 'item', 'onclick'], function () {}), + __legend_equally = getConfig(['legend', 'equally'], false); // axis var __axis_rotated = getConfig(['axis', 'rotated'], false), @@ -358,6 +359,7 @@ return maxDataCount > 1 ? (base * ratio) / (maxDataCount - 1) : base; } function getLegendWidth() { + // TODO: legend width should be an option return __legend_show ? isLegendRight ? 150 : currentWidth : 0; } function getLegendHeight() { @@ -2827,61 +2829,84 @@ function updateLegend(targets, options) { var ids = getTargetIds(targets), l; var xForLegend, xForLegendText, xForLegendRect, yForLegend, yForLegendText, yForLegendRect; - var item_height = 0, item_width = 0, paddingTop = 4, paddingRight = 30, margin, updateSizes; + var paddingTop = 4, paddingRight = 30, margin; + var totalLength = 0, offsets = {}, widths = {}, heights = {}; var withTransition; options = isUndefined(options) ? {} : options; withTransition = isDefined(options.withTransition) ? options.withTransition : true; - if (isLegendRight) { - xForLegend = function () { return legendWidth * 0.2; }; - yForLegend = function (d, i) { return margin + item_height * i; }; - } else { - xForLegend = function (d, i) { return margin + item_width * i; }; - yForLegend = function () { return legendHeight * 0.2; }; + function getXOffset(id, i) { + return __legend_equally ? widths[id] * i : offsets[id]; + } + function getYOffset(id, i) { + return __legend_equally ? heights[id] * i : offsets[id]; } - xForLegendText = function (d, i) { return xForLegend(d, i) + 14; }; - yForLegendText = function (d, i) { return yForLegend(d, i) + 9; }; - xForLegendRect = function (d, i) { return xForLegend(d, i) - 4; }; - yForLegendRect = function (d, i) { return yForLegend(d, i) - 7; }; - updateSizes = function (textElement) { + function updatePositions(textElement, id) { var box = textElement.getBBox(), width = Math.ceil((box.width + paddingRight) / 10) * 10, - height = Math.ceil((box.height + paddingTop) / 10) * 10; - if (width > item_width) { - item_width = width; - if (! isLegendRight) { - margin = (legendWidth - item_width * Object.keys(targets).length) / 2; + height = Math.ceil((box.height + paddingTop) / 10) * 10, + length = isLegendRight ? height : width, + areaLength = isLegendRight ? legendHeight : legendWidth, + maxWidth, maxHeight; + + widths[id] = width; + heights[id] = height; + + if (__legend_equally) { + maxWidth = d3.max(Object.keys(widths).map(function (key) { return widths[key]; })); + maxHeight = d3.max(Object.keys(heights).map(function (key) { return heights[key]; })); + if (width >= maxWidth) { + Object.keys(widths).forEach(function (key) { widths[key] = width; }); + if (! isLegendRight) { + margin = (legendWidth - width * Object.keys(targets).length) / 2; + } } - } - if (height > item_height) { - item_height = height; - if (isLegendRight) { - margin = (legendHeight - item_height * Object.keys(targets).length) / 2; + if (height >= maxHeight) { + Object.keys(heights).forEach(function (key) { heights[key] = height; }); + if (isLegendRight) { + margin = (legendHeight - height * Object.keys(targets).length) / 2; + } } + } else { + offsets[id] = totalLength; + totalLength += length; + margin = (areaLength - totalLength) / 2; } - }; + } + + if (isLegendRight) { + xForLegend = function () { return legendWidth * 0.2; }; + yForLegend = function (id, i) { return margin + getYOffset(id, i); }; + } else { + xForLegend = function (id, i) { return margin + getXOffset(id, i); }; + yForLegend = function () { return legendHeight * 0.2; }; + } + xForLegendText = function (id, i) { return xForLegend(id, i) + 14; }; + yForLegendText = function (id, i) { return yForLegend(id, i) + 9; }; + xForLegendRect = function (id, i) { return xForLegend(id, i) - 4; }; + yForLegendRect = function (id, i) { return yForLegend(id, i) - 7; }; // Define g for legend area l = legend.selectAll('.legend-item') .data(ids) .enter().append('g') - .attr('class', function (d) { return 'legend-item legend-item-' + d; }) + .attr('class', function (id) { return 'legend-item legend-item-' + id; }) .style('cursor', 'pointer') - .on('click', function (d) { - __legend_item_onclick(d); + .on('click', function (id) { + __legend_item_onclick(id); }) - .on('mouseover', function (d) { - focusLegend(d); - c3.focus(d); + .on('mouseover', function (id) { + focusLegend(id); + c3.focus(id); }) .on('mouseout', function () { revertLegend(); c3.revert(); }); l.append('text') - .text(function (d) { return isDefined(__data_names[d]) ? __data_names[d] : d; }) - .each(function () { updateSizes(this); }) + .text(function (id) { return isDefined(__data_names[id]) ? __data_names[id] : id; }) + .each(function (id) { updatePositions(this, id); }) .style("pointer-events", "none") .attr('x', isLegendRight ? xForLegendText : -200) .attr('y', isLegendRight ? -200 : yForLegend); @@ -2890,12 +2915,12 @@ .style('fill-opacity', 0) .attr('x', isLegendRight ? xForLegendRect : -200) .attr('y', isLegendRight ? -200 : yForLegendRect) - .attr('width', item_width + 14) - .attr('height', 24); + .attr('width', function (id) { return widths[id]; }) + .attr('height', function (id) { return heights[id]; }); l.append('rect') .attr("class", "legend-item-tile") .style("pointer-events", "none") - .style('fill', function (d) { return color(d); }) + .style('fill', function (id) { return color(id); }) .attr('x', isLegendRight ? xForLegendText : -200) .attr('y', isLegendRight ? -200 : yForLegendText) .attr('width', 10) @@ -2903,7 +2928,7 @@ legend.selectAll('text') .data(ids) - .each(function () { updateSizes(this); }) + .each(function (id) { updatePositions(this, id); }) .transition().duration(withTransition ? 250 : 0) .attr('x', xForLegendText) .attr('y', yForLegendText); diff --git a/c3.min.js b/c3.min.js index 2807455..23ece75 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 s(){return Nc(Sd.data.targets)?0:$d?$d:yf?1:u("y")}function t(){return Nc(Sd.data.targets)?0:_d?_d:wg?qe*(Cf&&!lf?1.25:1):Cf?Gf||lf?1:u("y2"):1}function u(){var a=T();return a.isInner?40:60}function v(){return+g.select(Xd).style("width").replace("px","")}function w(){return+g.select(Xd).style("height").replace("px","")}function x(){return je+2}function y(){return 80}function z(){return ge.left+20}function A(){return le+2}function B(){var a=lf?le:je,b=nb(),c=Kb();return c>1?a*b/(c-1):a}function C(){return hf?wg?150:ne:0}function D(){return hf?wg?oe:40:0}function E(){var a=S();return a.isInner?5:20}function F(){var a,b;ye=lf?1:0,ze=lf?le:je,Ae=lf?0:le,Be=lf?je:1,Ce=ye,De=ze,Ee=lf?0:me,Fe=lf?ke:1,Ge=H(ye,ze,Ge?Ge.domain():void 0,function(){return Me.tickOffset()}),He=I(Ae,Be,He?He.domain():void 0),Ie=I(Ae,Be,Ie?Ie.domain():void 0),Je=H(ye,ze,Lg,function(a){return a%1?0:Pe.tickOffset()}),Ke=I(Ee,Fe),Le=I(Ee,Fe),a=O(),b=P(),Me=L(Ge,rg,a,b),Pe=L(Je,ug,a,b),Ne=M(He,sg,zf,Bf),Oe=M(Ie,tg,Hf,Jf),G()}function G(){ue=cb(),ve=db(),we=db(.98)}function H(a,b,c,f){var h=(jg?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}),kg){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 I(a,b){return g.scale.linear().range([a,b])}function J(a){return"y2"===N(a)?Ie:He}function K(a){return"y2"===N(a)?Le:Ke}function L(a,c,d,e){var f=(kg?b():g.svg.axis()).scale(a).orient(c);return f.tickFormat(d).ticks(e),kg?f.tickCentered(of):f.tickOffset=function(){var a=lf?le:je;return a*nb()/Kb()/2},kg&&f.categories(nf),f}function M(a,b,c,d){return g.svg.axis().scale(a).orient(b).tickFormat(c).ticks(d).outerTickSize(0)}function N(a){return a in We?We[a]:"y"}function O(){var a=jg?qg:kg?Tb:null;return pf&&("function"==typeof pf?a=pf:jg&&(a=function(a){return g.time.format(pf)(a)})),a}function P(){var a=Kb();return qf&&a>rf?rf:a}function Q(a){return"string"==typeof a?a:a?a.text:null}function R(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 S(){return R(tf,"inner-right")}function T(){return R(xf,"inner-top")}function U(){return Q(tf)}function V(){return Q(xf)}function W(){var a=S();return a.isLeft?0:a.isCenter?je/2:je}function X(){var a=T();return a.isBottom?-le:a.isMiddle?-le/2:0}function Y(){var a=T();return a.isTop?"-0.5em":"0"}function Z(){var a=S();return a.isInner?"-0.5em":"3.5em"}function $(){var a=T(),b=0;return g.selectAll(".y.axis .tick text").each(function(){var a=this.getBBox();b0)for(f=Rb(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 lb(a){var b,c,d,e,f,h=Pb(a);if(Ve.length>0)for(f=Sb(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 mb(a){var b=Ob(function(b){return N(b.id)===a}),d="y2"===a?Ef:vf,e="y2"===a?Df:uf,f=c(d)?d:kb(b),g=c(e)?e:lb(b),h=Math.abs(g-f)*(jc()&&lf?.125:.1),i=h,j=h,k="y2"===a?Ff:wf;if(k){var l=Math.max(Math.abs(f),Math.abs(g));g=l-k,f=k-l}return"y"===a&&Af&&(i=c(Af.top)?Af.top:h,j=c(Af.bottom)?Af.bottom:h),"y2"===a&&If&&(i=c(If.top)?If.top:h,j=c(If.bottom)?If.bottom:h),Jc(b)&&!Rb(b)&&(j=f),[f-j,g+i]}function nb(a){return a?1:sb(Lg)/sb(Ge.domain())}function ob(a){return g.min(a,function(a){return g.min(a.values,function(a){return a.x})})}function pb(a){return g.max(a,function(a){return g.max(a.values,function(a){return a.x})})}function qb(a,b){var c,d=b[0],e=b[1],f=Math.abs(d-e);return c=kg?0:Jc(a)?f/(Kb()-1)/2:.01*f}function rb(a){var b=[ob(a),pb(a)],c=b[0],d=b[1],e=qb(a,b),f=jg?new Date(c.getTime()-e):c-e,g=jg?new Date(d.getTime()+e):d+e;return[f,g]}function sb(a){return a[1]-a[0]}function tb(a){for(var b=0;bd?0:d}function yb(a){return Qe&&a===Qe||Re&&bd(Re,a)}function zb(a){return!yb(a)}function Ab(a){return Qe?Qe:Re?Re[a]:null}function Bb(a,b){return a in Sd.data.x&&Sd.data.x[a]&&Sd.data.x[a][b]?Sd.data.x[a][b]:b}function Cb(a){Object.keys(a).forEach(function(b){Re[b]=a[b]})}function Db(a){var b;return a&&(b=Ue[a.id],a.name=b?b:a.id),a}function Eb(a){var b,c,d=a[0],e={},f=[];for(b=1;b=0?b.map(function(a){return a[c]}):Sd.data.x[Object.keys(Sd.data.x)[0]]}),c=d.map(function(a){var c=Te(a);return{id:c,id_org:a,values:b.map(function(b,d){var e,f=Ab(a);return e=jg?Zc(b[f]):lg?b[f]?+b[f]:Bb(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++})}),Xe&&Hc(Mb(c).filter(function(a){return!(a in Ye)}),Xe),c.forEach(function(a){ub(a.id_org,a)}),c)}function Hb(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 Ib(a){return a>0&&Sd.data.targets[0].values[a-1]?Sd.data.targets[0].values[a-1].x:void 0}function Jb(a){return a1?Sd.data.targets.forEach(function(b){b.values.length>c&&(a=b,c=b.values.length)}):a=b?Sd.data.targets[0]:null,a}function Mb(a){return a=d(a)?Sd.data.targets:a,a.map(function(a){return a.id})}function Nb(a){var b,c=Mb();for(b=0;ba})}function Sb(a){return Qb(a,function(a){return a>0})}function Tb(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 $e&&"desc"===$e.toLowerCase()}function uc(){return $e&&"asc"===$e.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 $e&&a.sort($e),a}function wc(a,b){var d,e,f,g,h,i,j,k=a.filter(function(a){return a&&c(a.value)});ag&&0!==k.length&&(Jg.html(dg(a,O(),oc,pg)).style("visibility","hidden").style("display","block"),d=Jg.property("offsetWidth"),e=Jg.property("offsetHeight"),lf?(f=p(),g=f+b[0]+100,h=g+d,j=q()-t(),i=Ge(k[0].x)+20):(f=p(),g=f+s()+Ge(k[0].x)+20,h=g+d,j=f+q()-t(),i=b[1]+15),h>j&&(g-=d+60),i+e>r()&&(i-=e+30),Jg.style("top",i+"px").style("left",g+"px").style("visibility","visible"))}function xc(){Jg.style("display","none")}function yc(a){var b=a.filter(function(a){return a&&c(a.value)});ag&&(Kc(Sd.data.targets)||Nc(Sd.data.targets)||Gg.selectAll("line.xgrid-focus").style("visibility","visible").data([b[0]]).attr(lf?"y1":"x1",kc).attr(lf?"y2":"x2",kc))}function zc(){Gg.select("line.xgrid-focus").style("visibility","hidden")}function Ac(a){return a.x||0===a.x?Ge(a.x):null}function Bc(a){return J(a.id)(a.value)}function Cc(){var a,b,c={},e=0;return Ob(Qc).forEach(function(f){for(a=0;a0&&(i+=g(b.values[f].value)-h)}),i}}function Gc(a,b){return b?2*a.tickOffset()*.6/b:0}function Hc(a,b){var c=d(a)?Mb():a;"string"==typeof c&&(c=[c]);for(var e=0;e=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,f,h;if(Kg=g.select(Xd),Kg.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(Kg.html(""),Sd.data.x={},Sd.data.targets=Gb(b),n(),F(),Ge.domain(g.extent(rb(Sd.data.targets))),He.domain(mb("y")),Ie.domain(mb("y2")),Je.domain(Ge.domain()),Ke.domain(He.domain()),Le.domain(Ie.domain()),Lg=Ge.domain(),zg.scale(Je),ae&&Dg.scale(Ge),Eg=g.select(Xd).append("svg").attr("width",je+ge.left+ge.right).attr("height",le+ge.top+ge.bottom).on("mouseenter",de).on("mouseleave",ee),Fg=Eg.append("defs"),Fg.append("clipPath").attr("id",hg).append("rect").attr("width",je).attr("height",le),Fg.append("clipPath").attr("id","xaxis-clip").append("rect").attr("x",-1).attr("y",-20).attr("width",x).attr("height",y),Fg.append("clipPath").attr("id","yaxis-clip").append("rect").attr("x",-ge.left+1).attr("width",z).attr("height",A),Gg=Eg.append("g").attr("transform",vg.main),Hg=ef?Eg.append("g").attr("transform",vg.context):null,Ig=hf?Eg.append("g").attr("transform",vg.legend):null,Jg=g.select(Xd).style("position","relative").append("div").style("position","absolute").style("z-index","10").style("display","none"),Gg.append("g").attr("class","x axis").attr("clip-path",lf?"":"url("+document.URL+"#xaxis-clip)").attr("transform",vg.x).append("text").attr("class","-axis-x-label").attr("dy",Z).style("text-anchor",_).text(lf?V:U),Gg.append("g").attr("class","y axis").attr("clip-path",lf?"url("+document.URL+"#yaxis-clip)":"").append("text").attr("class","-axis-y-label").attr("transform","rotate(-90)").attr("dx",Y).style("text-anchor",ab).text(lf?U:V),Cf&&Gg.append("g").attr("class","y2 axis").attr("transform",vg.y2),d=Gg.append("g").attr("clip-path",ig).attr("class","grid"),Kf&&d.append("g").attr("class","xgrids"),Mf&&(e=d.append("g").attr("class","xgrid-lines").selectAll(".xgrid-line").data(Mf).enter().append("g").attr("class","xgrid-line"),e.append("line").attr("class",function(a){return""+a["class"]}),e.append("text").attr("class",function(a){return""+a["class"]}).attr("text-anchor","end").attr("transform",lf?"":"rotate(-90)").attr("dx",lf?0:-ge.top).attr("dy",-5).text(function(a){return a.text})),Sf&&d.append("g").attr("class","xgrid-focus").append("line").attr("class","xgrid-focus").attr("x1",lf?0:-10).attr("x2",lf?je:-10).attr("y1",lf?-10:ge.top).attr("y2",lf?-10:le),Nf&&d.append("g").attr("class","ygrids"),Of&&(f=d.append("g").attr("class","ygrid-lines").selectAll("ygrid-line").data(Of).enter().append("g").attr("class","ygrid-line"),f.append("line").attr("class",function(a){return""+a["class"]}),f.append("text").attr("class",function(a){return""+a["class"]}).attr("text-anchor","end").attr("transform",lf?"rotate(-90)":"").attr("dx",lf?0:-ge.top).attr("dy",-5).text(function(a){return a.text})),Gg.append("g").attr("clip-path",ig).attr("class","regions"),Gg.append("g").attr("clip-path",ig).attr("class","chart"),c=Gg.select(".chart").append("g").attr("class","event-rects").style("fill-opacity",0).style("cursor",ae?lf?"ns-resize":"ew-resize":null),Gg.select(".chart").append("g").attr("class","chart-bars"),Gg.select(".chart").append("g").attr("class","chart-lines"),Gg.select(".chart").append("g").attr("class","chart-arcs").attr("transform",vg.arc).append("text").attr("class","chart-arcs-title").style("text-anchor","middle").text($f),Gg.select(".chart").append("g").attr("class","chart-texts"),ae&&Gg.insert("rect",ce?null:"g.grid").attr("class","zoom-rect").attr("width",je).attr("height",le).style("opacity",0).style("cursor",lf?"ns-resize":"ew-resize").call(Dg).on("dblclick.zoom",null),null!==sf&&zg.extent("function"!=typeof sf?sf:sf(rb())),ef&&(Hg.append("g").attr("clip-path",ig).attr("class","chart"),Hg.select(".chart").append("g").attr("class","chart-bars"),Hg.select(".chart").append("g").attr("class","chart-lines"),Hg.append("g").attr("clip-path",ig).attr("class","x brush").call(zg).selectAll("rect").attr(lf?"width":"height",lf?ke:me),Hg.append("g").attr("class","x axis").attr("transform",vg.subx).attr("clip-path",lf?"url("+document.URL+"#yaxis-clip)":"")),hf&&Nd(Sd.data.targets),Id(Sd.data.targets),Dd({withTransform:!0,withUpdateXDomain:!0}),eg){if(jg&&"string"==typeof fg){for(fg=Zc(fg),h=0;h0){d=[];for(var f in Ue)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(Wd,!n),l.classed(Vd,!m),k(!m,l,a,b))}))}function Bd(a){Nc(Sd.data.targets)||bf&&(mg=a,Gg.select(".chart").append("rect").attr("class","dragarea").style("opacity",.1),ng=!0)}function Cd(){Nc(Sd.data.targets)||bf&&(Gg.select(".dragarea").transition().duration(100).style("opacity",0).remove(),Gg.selectAll(".-shape").classed(Wd,!1),ng=!1)}function Dd(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,C,D,E,F=Cc(),G=Nc(Sd.data.targets);if(a=e(a)?a:{},s=e(a.withY)?a.withY:!0,t=e(a.withSubchart)?a.withSubchart:!0,u=e(a.withTransition)?a.withTransition:!0,v=e(a.withTransform)?a.withTransform:!1,w=e(a.withUpdateXDomain)?a.withUpdateXDomain:!1,x=e(a.withUpdateOrgXDomain)?a.withUpdateOrgXDomain:!1,D=u?fe:0,E=e(a.durationForExit)?a.durationForExit:D,x&&(Ge.domain(g.extent(rb(Sd.data.targets))),Lg=Ge.domain(),ae&&Dg.scale(Ge).updateScaleExtent(),Je.domain(Ge.domain()),zg.scale(Je)),w&&(Ge.domain(zg.empty()?Lg:zg.extent()),ae&&Dg.scale(Ge).updateScaleExtent()),He.domain(mb("y")),Ie.domain(mb("y2")),Gg.select(".x.axis").style("opacity",G?0:1).transition().duration(D).call(lf?Ne:Me),Gg.select(".y.axis").style("opacity",G?0:1).transition().duration(D).call(lf?Me:Ne),Gg.select(".y2.axis").style("opacity",G?0:1).transition().call(Oe),y=qd(F),A=rd(F,!0),C=rd(F,!1),Gg.select(".x.axis .-axis-x-label").attr("x",W),Gg.select(".y.axis .-axis-y-label").attr("x",X).attr("dy",$),Ke.domain(He.domain()),Le.domain(Ie.domain()),Jg.style("display","none"),Gg.select("line.xgrid-focus").style("visibility","hidden").attr("y2",le),Kf){if("year"===Lf){d=[];for(var H=rb(),I=H[0].getFullYear(),J=H[1].getFullYear(),K=I;J>=K;K++)d.push(new Date(K+"-01-01 00:00:00"))}else d=Ge.ticks(10);b=Gg.select(".xgrids").selectAll(".xgrid").data(d),b.enter().append("line").attr("class","xgrid"),b.attr("x1",lf?0:function(a){return Ge(a)-Me.tickOffset()}).attr("x2",lf?je:function(a){return Ge(a)-Me.tickOffset()}).attr("y1",lf?function(a){return Ge(a)-Me.tickOffset()}:ge.top).attr("y2",lf?function(a){return Ge(a)-Me.tickOffset()}:le).style("opacity",function(){return+g.select(this).attr(lf?"y1":"x1")===(lf?le:0)?0:1}),b.exit().remove()}Mf&&(f=Gg.selectAll(".xgrid-lines"),f.selectAll("line").transition().duration(D).attr("x1",lf?0:lc).attr("x2",lf?je:lc).attr("y1",lf?lc:ge.top).attr("y2",lf?lc:le),f.selectAll("text").attr("x",lf?je:0).attr("y",lc)),s&&Nf&&(h=Gg.select(".ygrids").selectAll(".ygrid").data(He.ticks(Pf)),h.enter().append("line").attr("class","ygrid"),h.attr("x1",lf?He:0).attr("x2",lf?He:je).attr("y1",lf?0:He).attr("y2",lf?le:He),h.exit().remove()),s&&Of&&(i=Gg.select(".ygrid-lines"),i.selectAll("line").transition().duration(D).attr("x1",lf?mc:0).attr("x2",lf?mc:je).attr("y1",lf?0:mc).attr("y2",lf?le:mc),i.selectAll("text").attr("x",lf?0:je).attr("y",mc)),k=Gg.selectAll(".-bars").selectAll(".-bar").data(Vc),k.enter().append("path").attr("d",y).style("stroke","none").style("opacity",0).style("fill",function(a){return pg(a.id)}).attr("class",cc),k.style("opacity",fc).transition().duration(D).attr("d",y).style("opacity",1),k.exit().transition().duration(E).style("opacity",0).remove(),m=Gg.selectAll(".-texts").selectAll(".-text").data(Xc),m.enter().append("text").attr("class",Ub).attr("text-anchor",function(a){return lf?a.value<0?"end":"start":"middle"}).style("stroke","none").style("fill-opacity",0).text(function(a){return oc(a.value) -}),m.style("fill-opacity",gc).transition().duration(D).attr("x",A).attr("y",C).style("fill-opacity",ic),m.exit().transition().duration(E).style("fill-opacity",0).remove(),Gg.selectAll(".-line").style("opacity",fc).transition().duration(D).attr("d",Ag).style("opacity",1),Gg.selectAll(".-area").style("opacity",0).transition().duration(D).attr("d",Bg).style("opacity",Mg),j=Gg.selectAll(".-circles").selectAll(".-circle").data(Wc),j.enter().append("circle").attr("class",bc).style("opacity",0).attr("r",Rf),j.style("opacity",fc).transition().duration(D).style("opacity",hc).attr("cx",lf?Bc:Ac).attr("cy",lf?Ac:Bc),j.exit().remove(),Gg.selectAll(".chart-arc").select(".-arc").attr("transform",v?"scale(0)":"").style("opacity",function(a){return a===this._current?0:1}).transition().duration(D).attrTween("d",function(a){var b=bb(a);if(!b)return function(){return"M 0 0"};var c=g.interpolate(this._current,b);return this._current=c(0),function(a){return eb(c(a),!0)}}).attr("transform",v?"scale(1)":"").style("opacity",1),Gg.selectAll(".chart-arc").select("text").attr("transform",fb).style("opacity",0).transition().duration(D).text(hb).style("opacity",function(a){return Uc(a.data)?1:0}),Gg.select(".chart-arcs-title").style("opacity",Mc(Sd.data.targets)?1:0),ef&&(null!==g.event&&"zoom"===g.event.type&&zg.extent(Ge.orgDomain()).update(),t&&(Hg.select(".x.axis").style("opacity",G?0:1).transition().duration(D).call(Pe),zg.empty()||zg.extent(Ge.orgDomain()).update(),z=qd(F,!0),n=Hg.selectAll(".-bars").selectAll(".-bar").data(Vc),n.enter().append("path").attr("d",z).style("stroke","none").style("fill",function(a){return pg(a.id)}).attr("class",cc),n.style("opacity",fc).transition().duration(D).attr("d",z).style("opacity",1),n.exit().transition().duration(D).style("opacity",0).remove(),Hg.selectAll(".-line").style("opacity",fc).transition().duration(D).attr("d",Cg).style("opacity",1))),Gg.selectAll(".selected-circles").filter(function(a){return Qc(a)}).selectAll("circle").remove(),Gg.selectAll(".selected-circle").transition().duration(D).attr("cx",lf?Bc:Ac).attr("cy",lf?Ac:Bc),Re?(o=Gg.select(".event-rects").selectAll(".event-rect").data([0]),yd(o.enter()),o.attr("x",0).attr("y",0).attr("width",je).attr("height",le)):(lg?(r=function(a,b){var c=Ib(b),d=Jb(b);return(Ge(d?d:a.x+50)-Ge(c?c:a.x-50))/2},q=function(a,b){var c=Ib(b);return(Ge(a.x)+Ge(c?c:a.x-50))/2}):(r=B(),q=function(a){return Ge(a.x)-r/2}),p=Lb(),Gg.select(".event-rects").datum(p?p.values:[]),o=Gg.select(".event-rects").selectAll(".event-rect").data(function(a){return a}),xd(o.enter()),o.attr("class",ec).attr("x",lf?0:q).attr("y",lf?q:0).attr("width",lf?je:r).attr("height",lf?r:le),o.exit().remove()),l=Gg.select(".regions").selectAll("rect.region").data(_f),l.enter().append("rect").style("fill-opacity",0),l.attr("class",dc).attr("x",lf?0:wb).attr("y",lf?wb:ge.top).attr("width",lf?je:xb).attr("height",lf?xb:le).transition().duration(D).style("fill-opacity",function(a){return c(a.opacity)?a.opacity:.1}),l.exit().transition().duration(D).style("fill-opacity",0).remove(),hf&&Nd(Sd.data.targets,{withTransition:u}),Mb().forEach(function(a){Ng[a]=!0})}function Ed(){Dd({withTransition:!1,withY:!1,withSubchart:!1,withUpdateXDomain:!0})}function Fd(){return"mousemove"===g.event.sourceEvent.type&&Dg.altDomain?(Ge.domain(Dg.altDomain),void Dg.scale(Ge).updateScaleExtent()):(kg&&Ge.orgDomain()[0]===Lg[0]&&Ge.domain([Lg[0]-1e-10,Ge.orgDomain()[1]]),Dd({withTransition:!1,withY:!1,withSubchart:!1}),void("mousemove"===g.event.sourceEvent.type&&(og=!0)))}function Gd(){function a(){b.forEach(function(a){a()})}var b=[];return a.add=function(a){b.push(a)},a}function Hd(a){var b,c;a=e(a)?a:{},b=e(a.withTransition)?a.withTransition:!1,c=e(a.withTransform)?a.withTransform:!1,n(),F(),zg.scale(Je),ae&&Dg.scale(Ge),Eg.attr("width",ne).attr("height",oe),Eg.select("#"+hg).select("rect").attr("width",je).attr("height",le),Eg.select("#xaxis-clip").select("rect").attr("width",x),Eg.select(".zoom-rect").attr("width",je).attr("height",le),m(b),Dd({withTransition:b,withUpdateXDomain:!0,withTransform:c,durationForExit:0})}function Id(a){var b,c,d,e,f,h,i,j,k,l,m,n;i=Gg.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",Vb).style("fill",function(a){return pg(a.id)}),e=Gg.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",Zb).style("fill",function(a){return pg(a.id)}).style("stroke","none").style("cursor",function(a){return df(a)?"pointer":null}),c=Gg.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",Xb).style("opacity",0).style("stroke",function(a){return pg(a.id)}),b.append("path").attr("class",_b).style("opacity",function(){return Mg=+g.select(this).style("opacity"),0}).style("fill",function(a){return pg(a.id)}),b.append("g").attr("class",function(a){return"selected-circles selected-circles-"+a.id}),b.append("g").attr("class",Yb).style("fill",function(a){return pg(a.id)}).style("cursor",function(a){return df(a)?"pointer":null}),a.forEach(function(a){var b=Od(a.id);Gg.selectAll(".selected-circles"+b).selectAll(".selected-circle").each(function(b){b.value=a.values[b.x].value})}),h=Gg.select(".chart-arcs").selectAll(".chart-arc").data(xe(a)),f=h.enter().append("g").attr("class",function(a){return"chart-arc target target-"+a.data.id}),f.append("path").attr("class",$b).style("opacity",0).style("fill",function(a){return pg(a.data.id)}).style("cursor",function(a){return df(a)?"pointer":null}).each(function(a){this._current=a}).on("mouseover",function(a){ib(a.data.id),Kd(a.data.id)}).on("mouseout",function(a){jb(a.data.id),Md()}),f.append("text").attr("dy",".35em").style("opacity",0).style("text-anchor","middle").style("pointer-events","none"),ef&&(n=Hg.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",Zb).style("fill",function(a){return pg(a.id)}),l=Hg.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",Xb).style("opacity",0).style("stroke",function(a){return pg(a.id)})),hf&&Nd(a),Eg.selectAll(".target").transition().style("opacity",1)}function Jd(a,b){Sd.data.targets.forEach(function(b){for(var c=0;cq&&(q=d,wg||(l=(qe-q*Object.keys(a).length)/2)),e>p&&(p=e,wg&&(l=(pe-p*Object.keys(a).length)/2))},c=Ig.selectAll(".legend-item").data(o).enter().append("g").attr("class",function(a){return"legend-item legend-item-"+a}).style("cursor","pointer").on("click",function(a){kf(a)}).on("mouseover",function(a){Kd(a),Sd.focus(a)}).on("mouseout",function(){Md(),Sd.revert()}),c.append("text").text(function(a){return e(Ue[a])?Ue[a]:a}).each(function(){m(this)}).style("pointer-events","none").attr("x",wg?g:-200).attr("y",wg?-200:i),c.append("rect").attr("class","legend-item-event").style("fill-opacity",0).attr("x",wg?h:-200).attr("y",wg?-200:k).attr("width",q+14).attr("height",24),c.append("rect").attr("class","legend-item-tile").style("pointer-events","none").style("fill",function(a){return pg(a)}).attr("x",wg?g:-200).attr("y",wg?-200:j).attr("width",10).attr("height",10),Ig.selectAll("text").data(o).each(function(){m(this)}).transition().duration(n?250:0).attr("x",g).attr("y",j),Ig.selectAll("rect.legend-item-event").data(o).transition().duration(n?250:0).attr("x",h).attr("y",k),Ig.selectAll("rect.legend-item-tile").data(o).transition().duration(n?250:0).attr("x",f).attr("y",i)}function Od(a){return a?"-"+a.replace(/\./g,"\\."):""}function Pd(a){return".target"+Od(a)}function Qd(a){return Nb(a.id)}function Rd(a){return"data"in a&&Nb(a.data.id)}var Sd={data:{}},Td={},Ud="_expanded_",Vd="_selected_",Wd="_included_",Xd=i(["bindto"],"#chart"),Yd=i(["size","width"],null),Zd=i(["size","height"],null),$d=i(["padding","left"],null),_d=i(["padding","right"],null),ae=i(["zoom","enabled"],!1),be=i(["zoom","extent"],null),ce=i(["zoom","privileged"],!1),de=i(["onenter"],function(){}),ee=i(["onleave"],function(){}),fe=i(["transition","duration"],350);h("data","data is required in config");var ge,he,ie,je,ke,le,me,ne,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=i(["data","x"],null),Re=i(["data","xs"],null),Se=i(["data","x_format"],"%Y-%m-%d"),Te=i(["data","id_converter"],function(a){return a}),Ue=i(["data","names"],{}),Ve=i(["data","groups"],[]),We=i(["data","axes"],{}),Xe=i(["data","type"],null),Ye=i(["data","types"],{}),Ze=i(["data","labels"],{}),$e=i(["data","order"],null),_e=i(["data","regions"],{}),af=i(["data","colors"],{}),bf=i(["data","selection","enabled"],!1),cf=i(["data","selection","grouped"],!1),df=i(["data","selection","isselectable"],function(){return!0}),ef=i(["subchart","show"],!1),ff=ef?i(["subchart","size","height"],60):0,gf=i(["color","pattern"],null),hf=i(["legend","show"],!0),jf=i(["legend","position"],"bottom"),kf=i(["legend","item","onclick"],function(){}),lf=i(["axis","rotated"],!1),mf=i(["axis","x","type"],"indexed"),nf=i(["axis","x","categories"],[]),of=i(["axis","x","tick","centered"],!1),pf=i(["axis","x","tick","format"],null),qf=i(["axis","x","tick","culling"],"categorized"===mf?!1:!0),rf=i(["axis","x","tick","count"],10),sf=i(["axis","x","default"],null),tf=i(["axis","x","label"],null),uf=i(["axis","y","max"],null),vf=i(["axis","y","min"],null),wf=i(["axis","y","center"],null),xf=i(["axis","y","label"],null),yf=i(["axis","y","inner"],!1),zf=i(["axis","y","tick","format"],null),Af=i(["axis","y","padding"],null),Bf=i(["axis","y","ticks"],10),Cf=i(["axis","y2","show"],!1),Df=i(["axis","y2","max"],null),Ef=i(["axis","y2","min"],null),Ff=i(["axis","y2","center"],null),Gf=i(["axis","y2","inner"],!1),Hf=i(["axis","y2","tick","format"],null),If=i(["axis","y2","padding"],null),Jf=i(["axis","y2","ticks"],10),Kf=i(["grid","x","show"],!1),Lf=i(["grid","x","type"],"tick"),Mf=i(["grid","x","lines"],null),Nf=i(["grid","y","show"],!1),Of=i(["grid","y","lines"],null),Pf=i(["grid","y","ticks"],10),Qf=i(["point","show"],!0),Rf=Qf?i(["point","r"],2.5):0,Sf=i(["point","focus","line","enabled"],!0),Tf=i(["point","focus","expand","enabled"],!0),Uf=i(["point","focus","expand","r"],Tf?4:Rf),Vf=i(["point","focus","select","r"],8),Wf=i(["point","onclick"],function(){}),Xf=i(["point","onselected"],function(){}),Yf=i(["point","onunselected"],function(){}),Zf=i(["arc","label","format"],function(a,b){return(100*b).toFixed(1)+"%"}),$f=i(["arc","title"],""),_f=i(["regions"],[]),ag=i(["tooltip","show"],!0),bg=i(["tooltip","format","title"],null),cg=i(["tooltip","format","value"],null),dg=i(["tooltip","contents"],function(a,b,c,d){var e,f,g,h,i,j=bg?bg:b,k=cg?cg:c;for(f=0;f"+g+""),i=a[f].name,h=k(a[f].value),e+=""+i+""+h+"");return e+""}),eg=i(["tooltip","init","show"],!1),fg=i(["tooltip","init","x"],0),gg=i(["tooltip","init","position"],{top:"0px",left:"50px"}),hg=Xd.replace("#","")+"-clip",ig="url("+document.URL+"#"+hg+")",jg="timeseries"===mf,kg="categorized"===mf,lg=!jg&&(Qe||Re),mg=null,ng=!1,og=!1,pg=Yc(af,gf),qg=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)}}(),rg=lf?"left":"bottom",sg=lf?yf?"top":"bottom":yf?"right":"left",tg=lf?Gf?"bottom":"top":Gf?"left":"right",ug=lf?"left":"bottom",vg={main:function(){return"translate("+ge.left+","+ge.top+")"},context:function(){return"translate("+he.left+","+he.top+")"},legend:function(){return"translate("+ie.left+","+ie.top+")"},y2:function(){return"translate("+(lf?0:je)+","+(lf?1:0)+")"},x:function(){return"translate(0,"+le+")"},subx:function(){return"translate(0,"+(lf?0:me)+")"},arc:function(){return"translate("+je/2+","+le/2+")"}},wg="right"===jf,xg=40,yg=20;xe=g.layout.pie().value(function(a){return a.values.reduce(function(a,b){return a+b.value},0)});var zg,Ag=function(){var a=g.svg.line().x(lf?function(a){return J(a.id)(a.value)}:kc).y(lf?kc:function(a){return J(a.id)(a.value)});return function(b){var c,d,e=jd(b.values);return Oc(b)?(a.interpolate(Pc(b)?"cardinal":"linear"),_e[b.id]?vd(e,Ge,J(b.id),_e[b.id]):a(e)):(c=Ge(e[0].x),d=J(b.id)(e[0].value),lf?"M "+d+" "+c:"M "+c+" "+d)}}(),Bg=function(){var a;return a=lf?g.svg.area().x0(function(a){return J(a.id)(0)}).x1(function(a){return J(a.id)(a.value)}).y(kc):g.svg.area().x(kc).y0(function(a){return J(a.id)(0)}).y1(function(a){return J(a.id)(a.value)}),function(b){var c,d,e=jd(b.values);return Ic([b],"area")||Ic([b],"area-spline")?(a.interpolate(Pc(b)?"cardinal":"linear"),a(e)):(c=Ge(e[0].x),d=J(b.id)(e[0].value),lf?"M "+d+" "+c:"M "+c+" "+d)}}(),Cg=function(){var a=g.svg.line().x(lf?function(a){return K(a.id)(a.value)}:nc).y(lf?nc:function(a){return K(a.id)(a.value)});return function(b){var c=jd(b.values);return Oc(b)?a(c):"M "+Je(c[0].x)+" "+K(b.id)(c[0].value)}}(),Dg=function(){};zg=g.svg.brush().on("brush",Ed),zg.update=function(){return Hg&&Hg.select(".x.brush").call(this),this},zg.scale=function(a){return lf?this.y(a):this.x(a)},ae&&(Dg=g.behavior.zoom().on("zoomstart",function(){Dg.altDomain=g.event.sourceEvent.altKey?Ge.orgDomain():null}).on("zoom",ae?Fd:null),Dg.scale=function(a){return lf?this.y(a):this.x(a)},Dg.orgScaleExtent=function(){var a=be?be:[1,10];return[a[0],Math.max(Kb()/a[1],a[1])]},Dg.updateScaleExtent=function(){var a=sb(Ge.orgDomain())/sb(Lg),b=this.orgScaleExtent();return this.scaleExtent([b[0]*a,b[1]*a]),this});var Eg,Fg,Gg,Hg,Ig,Jg,Kg,Lg,Mg,Ng={};if(Sd.focus=function(a){function b(a){a.transition().duration(100).style("opacity",1)}var c=Eg.selectAll(Pd(a)),d=c.filter(Qd),e=c.filter(Rd);Sd.revert(),Sd.defocus(),b(d.classed("focused",!0)),b(e),Nc(Sd.data.targets)&&ib(a,!0),Kd(a)},Sd.defocus=function(a){function b(a){a.transition().duration(100).style("opacity",.3)}var c=Eg.selectAll(Pd(a)),d=c.filter(Qd),e=c.filter(Rd);Sd.revert(),b(d.classed("focused",!1)),b(e),Nc(Sd.data.targets)&&jb(a),Ld(a)},Sd.revert=function(a){function b(a){a.transition().duration(100).style("opacity",1)}var c=Eg.selectAll(Pd(a)),d=c.filter(Qd),e=c.filter(Rd);b(d.classed("focused",!1)),b(e),Nc(Sd.data.targets)&&jb(a),Md()},Sd.show=function(a){Eg.selectAll(Pd(a)).transition().style("opacity",1)},Sd.hide=function(a){Eg.selectAll(Pd(a)).transition().style("opacity",0)},Sd.unzoom=function(){zg.clear().update(),Dd({withUpdateXDomain:!0})},Sd.load=function(a){if("function"!=typeof a.done&&(a.done=function(){}),a.xs&&Cb(a.xs),"categories"in a&&kg&&(nf=a.categories,Me.categories(nf)),"cacheIds"in a&&tb(a.cacheIds))return void Jd(vb(a.cacheIds),a.done);if("data"in a)Jd(Gb(a.data),a.done);else if("url"in a)g.csv(a.url,function(b,c){Jd(Gb(c),a.done)});else if("rows"in a)Jd(Gb(Eb(a.rows)),a.done);else{if(!("columns"in a))throw Error("url or rows or columns is required.");Jd(Gb(Fb(a.columns)),a.done)}},Sd.unload=function(a){Sd.data.targets=Sd.data.targets.filter(function(b){return b.id!==a}),Eg.selectAll(Pd(a)).transition().style("opacity",0).remove(),hf&&(Eg.selectAll(".legend-item"+Od(a)).remove(),Nd(Sd.data.targets)),Sd.data.targets.length>0&&Dd({withUpdateOrgXDomain:!0,withUpdateXDomain:!0})},Sd.selected=function(a){var b=Od(a);return g.merge(Gg.selectAll(".-shapes"+b).selectAll(".-shape").filter(function(){return g.select(this).classed(Vd)}).map(function(a){return a.map(function(a){return a.__data__})}))},Sd.select=function(a,b,c){bf&&Gg.selectAll(".-shapes").selectAll(".-shape").each(function(f,h){var i="circle"===this.nodeName?dd:gd,j="circle"===this.nodeName?ed:hd;b.indexOf(h)>=0?df(f)&&(cf||d(a)||a.indexOf(f.id)>=0)&&i(g.select(this).classed(Vd,!0),f,h):e(c)&&c&&j(g.select(this).classed(Vd,!1),f,h)})},Sd.unselect=function(a,b){bf&&Gg.selectAll(".-shapes").selectAll(".-shape").each(function(c,e){var f="circle"===this.nodeName?ed:hd;(d(b)||b.indexOf(e)>=0)&&df(c)&&(cf||d(a)||a.indexOf(c.id)>=0)&&f(g.select(this).classed(Vd,!1),c,e)})},Sd.toLine=function(a){Hc(a,"line"),Hd({withTransition:!0})},Sd.toSpline=function(a){Hc(a,"spline"),Hd({withTransition:!0})},Sd.toBar=function(a){Hc(a,"bar"),Hd({withTransition:!0})},Sd.toScatter=function(a){Hc(a,"scatter"),Hd({withTransition:!0})},Sd.toArea=function(a){Hc(a,"area"),Hd({withTransition:!0})},Sd.toAreaSpline=function(a){Hc(a,"area-spline"),Hd({withTransition:!0})},Sd.toPie=function(a){Hc(a,"pie"),Hd({withTransition:!0,withTransform:!0})},Sd.toDonut=function(a){Hc(a,"donut"),Hd({withTransition:!0,withTransform:!0})},Sd.groups=function(a){return d(a)?Ve:(Ve=a,Dd(),Ve)},Sd.regions=function(a){return d(a)?_f:(_f=a,Dd(),_f)},Sd.regions.add=function(a){return d(a)?_f:(_f=_f.concat(a),Dd(),_f)},Sd.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;Eg.selectAll("."+a).transition().duration(d).style("fill-opacity",0).remove(),_f=_f.filter(function(b){return b.classes.indexOf(a)<0})}),_f},Sd.data.get=function(a){var b=Sd.data.getAsTarget(a);return e(b)?b.values.map(function(a){return a.value}):void 0},Sd.data.getAsTarget=function(a){var b=Ob(function(b){return b.id===a});return b.length>0?b[0]:void 0},Sd.resize=function(a){Yd=a?a.width:null,Zd=a?a.height:null,Hd()},Sd.destroy=function(){Sd.data.targets=void 0,Sd.data.x={},Kg.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(Eb(f.data.rows));else{if(!("columns"in f.data))throw Error("url or rows or columns is required.");wd(Fb(f.data.columns))}return Sd}}(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 s(){return Nc(Sd.data.targets)?0:$d?$d:zf?1:u("y")}function t(){return Nc(Sd.data.targets)?0:_d?_d:xg?qe*(Df&&!mf?1.25:1):Df?Hf||mf?1:u("y2"):1}function u(){var a=T();return a.isInner?40:60}function v(){return+g.select(Xd).style("width").replace("px","")}function w(){return+g.select(Xd).style("height").replace("px","")}function x(){return je+2}function y(){return 80}function z(){return ge.left+20}function A(){return le+2}function B(){var a=mf?le:je,b=nb(),c=Kb();return c>1?a*b/(c-1):a}function C(){return hf?xg?150:ne:0}function D(){return hf?xg?oe:40:0}function E(){var a=S();return a.isInner?5:20}function F(){var a,b;ye=mf?1:0,ze=mf?le:je,Ae=mf?0:le,Be=mf?je:1,Ce=ye,De=ze,Ee=mf?0:me,Fe=mf?ke:1,Ge=H(ye,ze,Ge?Ge.domain():void 0,function(){return Me.tickOffset()}),He=I(Ae,Be,He?He.domain():void 0),Ie=I(Ae,Be,Ie?Ie.domain():void 0),Je=H(ye,ze,Mg,function(a){return a%1?0:Pe.tickOffset()}),Ke=I(Ee,Fe),Le=I(Ee,Fe),a=O(),b=P(),Me=L(Ge,sg,a,b),Pe=L(Je,vg,a,b),Ne=M(He,tg,Af,Cf),Oe=M(Ie,ug,If,Kf),G()}function G(){ue=cb(),ve=db(),we=db(.98)}function H(a,b,c,f){var h=(kg?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}),lg){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 I(a,b){return g.scale.linear().range([a,b])}function J(a){return"y2"===N(a)?Ie:He}function K(a){return"y2"===N(a)?Le:Ke}function L(a,c,d,e){var f=(lg?b():g.svg.axis()).scale(a).orient(c);return f.tickFormat(d).ticks(e),lg?f.tickCentered(pf):f.tickOffset=function(){var a=mf?le:je;return a*nb()/Kb()/2},lg&&f.categories(of),f}function M(a,b,c,d){return g.svg.axis().scale(a).orient(b).tickFormat(c).ticks(d).outerTickSize(0)}function N(a){return a in We?We[a]:"y"}function O(){var a=kg?rg:lg?Tb:null;return qf&&("function"==typeof qf?a=qf:kg&&(a=function(a){return g.time.format(qf)(a)})),a}function P(){var a=Kb();return rf&&a>sf?sf:a}function Q(a){return"string"==typeof a?a:a?a.text:null}function R(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 S(){return R(uf,"inner-right")}function T(){return R(yf,"inner-top")}function U(){return Q(uf)}function V(){return Q(yf)}function W(){var a=S();return a.isLeft?0:a.isCenter?je/2:je}function X(){var a=T();return a.isBottom?-le:a.isMiddle?-le/2:0}function Y(){var a=T();return a.isTop?"-0.5em":"0"}function Z(){var a=S();return a.isInner?"-0.5em":"3.5em"}function $(){var a=T(),b=0;return g.selectAll(".y.axis .tick text").each(function(){var a=this.getBBox();b0)for(f=Rb(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 lb(a){var b,c,d,e,f,h=Pb(a);if(Ve.length>0)for(f=Sb(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 mb(a){var b=Ob(function(b){return N(b.id)===a}),d="y2"===a?Ff:wf,e="y2"===a?Ef:vf,f=c(d)?d:kb(b),g=c(e)?e:lb(b),h=Math.abs(g-f)*(jc()&&mf?.125:.1),i=h,j=h,k="y2"===a?Gf:xf;if(k){var l=Math.max(Math.abs(f),Math.abs(g));g=l-k,f=k-l}return"y"===a&&Bf&&(i=c(Bf.top)?Bf.top:h,j=c(Bf.bottom)?Bf.bottom:h),"y2"===a&&Jf&&(i=c(Jf.top)?Jf.top:h,j=c(Jf.bottom)?Jf.bottom:h),Jc(b)&&!Rb(b)&&(j=f),[f-j,g+i]}function nb(a){return a?1:sb(Mg)/sb(Ge.domain())}function ob(a){return g.min(a,function(a){return g.min(a.values,function(a){return a.x})})}function pb(a){return g.max(a,function(a){return g.max(a.values,function(a){return a.x})})}function qb(a,b){var c,d=b[0],e=b[1],f=Math.abs(d-e);return c=lg?0:Jc(a)?f/(Kb()-1)/2:.01*f}function rb(a){var b=[ob(a),pb(a)],c=b[0],d=b[1],e=qb(a,b),f=kg?new Date(c.getTime()-e):c-e,g=kg?new Date(d.getTime()+e):d+e;return[f,g]}function sb(a){return a[1]-a[0]}function tb(a){for(var b=0;bd?0:d}function yb(a){return Qe&&a===Qe||Re&&bd(Re,a)}function zb(a){return!yb(a)}function Ab(a){return Qe?Qe:Re?Re[a]:null}function Bb(a,b){return a in Sd.data.x&&Sd.data.x[a]&&Sd.data.x[a][b]?Sd.data.x[a][b]:b}function Cb(a){Object.keys(a).forEach(function(b){Re[b]=a[b]})}function Db(a){var b;return a&&(b=Ue[a.id],a.name=b?b:a.id),a}function Eb(a){var b,c,d=a[0],e={},f=[];for(b=1;b=0?b.map(function(a){return a[c]}):Sd.data.x[Object.keys(Sd.data.x)[0]]}),c=d.map(function(a){var c=Te(a);return{id:c,id_org:a,values:b.map(function(b,d){var e,f=Ab(a);return e=kg?Zc(b[f]):mg?b[f]?+b[f]:Bb(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++})}),Xe&&Hc(Mb(c).filter(function(a){return!(a in Ye)}),Xe),c.forEach(function(a){ub(a.id_org,a)}),c)}function Hb(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 Ib(a){return a>0&&Sd.data.targets[0].values[a-1]?Sd.data.targets[0].values[a-1].x:void 0}function Jb(a){return a1?Sd.data.targets.forEach(function(b){b.values.length>c&&(a=b,c=b.values.length)}):a=b?Sd.data.targets[0]:null,a}function Mb(a){return a=d(a)?Sd.data.targets:a,a.map(function(a){return a.id})}function Nb(a){var b,c=Mb();for(b=0;ba})}function Sb(a){return Qb(a,function(a){return a>0})}function Tb(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 $e&&"desc"===$e.toLowerCase()}function uc(){return $e&&"asc"===$e.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 $e&&a.sort($e),a}function wc(a,b){var d,e,f,g,h,i,j,k=a.filter(function(a){return a&&c(a.value)});bg&&0!==k.length&&(Kg.html(eg(a,O(),oc,qg)).style("visibility","hidden").style("display","block"),d=Kg.property("offsetWidth"),e=Kg.property("offsetHeight"),mf?(f=p(),g=f+b[0]+100,h=g+d,j=q()-t(),i=Ge(k[0].x)+20):(f=p(),g=f+s()+Ge(k[0].x)+20,h=g+d,j=f+q()-t(),i=b[1]+15),h>j&&(g-=d+60),i+e>r()&&(i-=e+30),Kg.style("top",i+"px").style("left",g+"px").style("visibility","visible"))}function xc(){Kg.style("display","none")}function yc(a){var b=a.filter(function(a){return a&&c(a.value)});bg&&(Kc(Sd.data.targets)||Nc(Sd.data.targets)||Hg.selectAll("line.xgrid-focus").style("visibility","visible").data([b[0]]).attr(mf?"y1":"x1",kc).attr(mf?"y2":"x2",kc))}function zc(){Hg.select("line.xgrid-focus").style("visibility","hidden")}function Ac(a){return a.x||0===a.x?Ge(a.x):null}function Bc(a){return J(a.id)(a.value)}function Cc(){var a,b,c={},e=0;return Ob(Qc).forEach(function(f){for(a=0;a0&&(i+=g(b.values[f].value)-h)}),i}}function Gc(a,b){return b?2*a.tickOffset()*.6/b:0}function Hc(a,b){var c=d(a)?Mb():a;"string"==typeof c&&(c=[c]);for(var e=0;e=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,f,h;if(Lg=g.select(Xd),Lg.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(Lg.html(""),Sd.data.x={},Sd.data.targets=Gb(b),n(),F(),Ge.domain(g.extent(rb(Sd.data.targets))),He.domain(mb("y")),Ie.domain(mb("y2")),Je.domain(Ge.domain()),Ke.domain(He.domain()),Le.domain(Ie.domain()),Mg=Ge.domain(),Ag.scale(Je),ae&&Eg.scale(Ge),Fg=g.select(Xd).append("svg").attr("width",je+ge.left+ge.right).attr("height",le+ge.top+ge.bottom).on("mouseenter",de).on("mouseleave",ee),Gg=Fg.append("defs"),Gg.append("clipPath").attr("id",ig).append("rect").attr("width",je).attr("height",le),Gg.append("clipPath").attr("id","xaxis-clip").append("rect").attr("x",-1).attr("y",-20).attr("width",x).attr("height",y),Gg.append("clipPath").attr("id","yaxis-clip").append("rect").attr("x",-ge.left+1).attr("width",z).attr("height",A),Hg=Fg.append("g").attr("transform",wg.main),Ig=ef?Fg.append("g").attr("transform",wg.context):null,Jg=hf?Fg.append("g").attr("transform",wg.legend):null,Kg=g.select(Xd).style("position","relative").append("div").style("position","absolute").style("z-index","10").style("display","none"),Hg.append("g").attr("class","x axis").attr("clip-path",mf?"":"url("+document.URL+"#xaxis-clip)").attr("transform",wg.x).append("text").attr("class","-axis-x-label").attr("dy",Z).style("text-anchor",_).text(mf?V:U),Hg.append("g").attr("class","y axis").attr("clip-path",mf?"url("+document.URL+"#yaxis-clip)":"").append("text").attr("class","-axis-y-label").attr("transform","rotate(-90)").attr("dx",Y).style("text-anchor",ab).text(mf?U:V),Df&&Hg.append("g").attr("class","y2 axis").attr("transform",wg.y2),d=Hg.append("g").attr("clip-path",jg).attr("class","grid"),Lf&&d.append("g").attr("class","xgrids"),Nf&&(e=d.append("g").attr("class","xgrid-lines").selectAll(".xgrid-line").data(Nf).enter().append("g").attr("class","xgrid-line"),e.append("line").attr("class",function(a){return""+a["class"]}),e.append("text").attr("class",function(a){return""+a["class"]}).attr("text-anchor","end").attr("transform",mf?"":"rotate(-90)").attr("dx",mf?0:-ge.top).attr("dy",-5).text(function(a){return a.text})),Tf&&d.append("g").attr("class","xgrid-focus").append("line").attr("class","xgrid-focus").attr("x1",mf?0:-10).attr("x2",mf?je:-10).attr("y1",mf?-10:ge.top).attr("y2",mf?-10:le),Of&&d.append("g").attr("class","ygrids"),Pf&&(f=d.append("g").attr("class","ygrid-lines").selectAll("ygrid-line").data(Pf).enter().append("g").attr("class","ygrid-line"),f.append("line").attr("class",function(a){return""+a["class"]}),f.append("text").attr("class",function(a){return""+a["class"]}).attr("text-anchor","end").attr("transform",mf?"rotate(-90)":"").attr("dx",mf?0:-ge.top).attr("dy",-5).text(function(a){return a.text})),Hg.append("g").attr("clip-path",jg).attr("class","regions"),Hg.append("g").attr("clip-path",jg).attr("class","chart"),c=Hg.select(".chart").append("g").attr("class","event-rects").style("fill-opacity",0).style("cursor",ae?mf?"ns-resize":"ew-resize":null),Hg.select(".chart").append("g").attr("class","chart-bars"),Hg.select(".chart").append("g").attr("class","chart-lines"),Hg.select(".chart").append("g").attr("class","chart-arcs").attr("transform",wg.arc).append("text").attr("class","chart-arcs-title").style("text-anchor","middle").text(_f),Hg.select(".chart").append("g").attr("class","chart-texts"),ae&&Hg.insert("rect",ce?null:"g.grid").attr("class","zoom-rect").attr("width",je).attr("height",le).style("opacity",0).style("cursor",mf?"ns-resize":"ew-resize").call(Eg).on("dblclick.zoom",null),null!==tf&&Ag.extent("function"!=typeof tf?tf:tf(rb())),ef&&(Ig.append("g").attr("clip-path",jg).attr("class","chart"),Ig.select(".chart").append("g").attr("class","chart-bars"),Ig.select(".chart").append("g").attr("class","chart-lines"),Ig.append("g").attr("clip-path",jg).attr("class","x brush").call(Ag).selectAll("rect").attr(mf?"width":"height",mf?ke:me),Ig.append("g").attr("class","x axis").attr("transform",wg.subx).attr("clip-path",mf?"url("+document.URL+"#yaxis-clip)":"")),hf&&Nd(Sd.data.targets),Id(Sd.data.targets),Dd({withTransform:!0,withUpdateXDomain:!0}),fg){if(kg&&"string"==typeof gg){for(gg=Zc(gg),h=0;h0){d=[];for(var f in Ue)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(Wd,!n),l.classed(Vd,!m),k(!m,l,a,b))}))}function Bd(a){Nc(Sd.data.targets)||bf&&(ng=a,Hg.select(".chart").append("rect").attr("class","dragarea").style("opacity",.1),og=!0)}function Cd(){Nc(Sd.data.targets)||bf&&(Hg.select(".dragarea").transition().duration(100).style("opacity",0).remove(),Hg.selectAll(".-shape").classed(Wd,!1),og=!1)}function Dd(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,C,D,E,F=Cc(),G=Nc(Sd.data.targets);if(a=e(a)?a:{},s=e(a.withY)?a.withY:!0,t=e(a.withSubchart)?a.withSubchart:!0,u=e(a.withTransition)?a.withTransition:!0,v=e(a.withTransform)?a.withTransform:!1,w=e(a.withUpdateXDomain)?a.withUpdateXDomain:!1,x=e(a.withUpdateOrgXDomain)?a.withUpdateOrgXDomain:!1,D=u?fe:0,E=e(a.durationForExit)?a.durationForExit:D,x&&(Ge.domain(g.extent(rb(Sd.data.targets))),Mg=Ge.domain(),ae&&Eg.scale(Ge).updateScaleExtent(),Je.domain(Ge.domain()),Ag.scale(Je)),w&&(Ge.domain(Ag.empty()?Mg:Ag.extent()),ae&&Eg.scale(Ge).updateScaleExtent()),He.domain(mb("y")),Ie.domain(mb("y2")),Hg.select(".x.axis").style("opacity",G?0:1).transition().duration(D).call(mf?Ne:Me),Hg.select(".y.axis").style("opacity",G?0:1).transition().duration(D).call(mf?Me:Ne),Hg.select(".y2.axis").style("opacity",G?0:1).transition().call(Oe),y=qd(F),A=rd(F,!0),C=rd(F,!1),Hg.select(".x.axis .-axis-x-label").attr("x",W),Hg.select(".y.axis .-axis-y-label").attr("x",X).attr("dy",$),Ke.domain(He.domain()),Le.domain(Ie.domain()),Kg.style("display","none"),Hg.select("line.xgrid-focus").style("visibility","hidden").attr("y2",le),Lf){if("year"===Mf){d=[];for(var H=rb(),I=H[0].getFullYear(),J=H[1].getFullYear(),K=I;J>=K;K++)d.push(new Date(K+"-01-01 00:00:00"))}else d=Ge.ticks(10);b=Hg.select(".xgrids").selectAll(".xgrid").data(d),b.enter().append("line").attr("class","xgrid"),b.attr("x1",mf?0:function(a){return Ge(a)-Me.tickOffset()}).attr("x2",mf?je:function(a){return Ge(a)-Me.tickOffset()}).attr("y1",mf?function(a){return Ge(a)-Me.tickOffset()}:ge.top).attr("y2",mf?function(a){return Ge(a)-Me.tickOffset()}:le).style("opacity",function(){return+g.select(this).attr(mf?"y1":"x1")===(mf?le:0)?0:1}),b.exit().remove()}Nf&&(f=Hg.selectAll(".xgrid-lines"),f.selectAll("line").transition().duration(D).attr("x1",mf?0:lc).attr("x2",mf?je:lc).attr("y1",mf?lc:ge.top).attr("y2",mf?lc:le),f.selectAll("text").attr("x",mf?je:0).attr("y",lc)),s&&Of&&(h=Hg.select(".ygrids").selectAll(".ygrid").data(He.ticks(Qf)),h.enter().append("line").attr("class","ygrid"),h.attr("x1",mf?He:0).attr("x2",mf?He:je).attr("y1",mf?0:He).attr("y2",mf?le:He),h.exit().remove()),s&&Pf&&(i=Hg.select(".ygrid-lines"),i.selectAll("line").transition().duration(D).attr("x1",mf?mc:0).attr("x2",mf?mc:je).attr("y1",mf?0:mc).attr("y2",mf?le:mc),i.selectAll("text").attr("x",mf?0:je).attr("y",mc)),k=Hg.selectAll(".-bars").selectAll(".-bar").data(Vc),k.enter().append("path").attr("d",y).style("stroke","none").style("opacity",0).style("fill",function(a){return qg(a.id)}).attr("class",cc),k.style("opacity",fc).transition().duration(D).attr("d",y).style("opacity",1),k.exit().transition().duration(E).style("opacity",0).remove(),m=Hg.selectAll(".-texts").selectAll(".-text").data(Xc),m.enter().append("text").attr("class",Ub).attr("text-anchor",function(a){return mf?a.value<0?"end":"start":"middle"}).style("stroke","none").style("fill-opacity",0).text(function(a){return oc(a.value) +}),m.style("fill-opacity",gc).transition().duration(D).attr("x",A).attr("y",C).style("fill-opacity",ic),m.exit().transition().duration(E).style("fill-opacity",0).remove(),Hg.selectAll(".-line").style("opacity",fc).transition().duration(D).attr("d",Bg).style("opacity",1),Hg.selectAll(".-area").style("opacity",0).transition().duration(D).attr("d",Cg).style("opacity",Ng),j=Hg.selectAll(".-circles").selectAll(".-circle").data(Wc),j.enter().append("circle").attr("class",bc).style("opacity",0).attr("r",Sf),j.style("opacity",fc).transition().duration(D).style("opacity",hc).attr("cx",mf?Bc:Ac).attr("cy",mf?Ac:Bc),j.exit().remove(),Hg.selectAll(".chart-arc").select(".-arc").attr("transform",v?"scale(0)":"").style("opacity",function(a){return a===this._current?0:1}).transition().duration(D).attrTween("d",function(a){var b=bb(a);if(!b)return function(){return"M 0 0"};var c=g.interpolate(this._current,b);return this._current=c(0),function(a){return eb(c(a),!0)}}).attr("transform",v?"scale(1)":"").style("opacity",1),Hg.selectAll(".chart-arc").select("text").attr("transform",fb).style("opacity",0).transition().duration(D).text(hb).style("opacity",function(a){return Uc(a.data)?1:0}),Hg.select(".chart-arcs-title").style("opacity",Mc(Sd.data.targets)?1:0),ef&&(null!==g.event&&"zoom"===g.event.type&&Ag.extent(Ge.orgDomain()).update(),t&&(Ig.select(".x.axis").style("opacity",G?0:1).transition().duration(D).call(Pe),Ag.empty()||Ag.extent(Ge.orgDomain()).update(),z=qd(F,!0),n=Ig.selectAll(".-bars").selectAll(".-bar").data(Vc),n.enter().append("path").attr("d",z).style("stroke","none").style("fill",function(a){return qg(a.id)}).attr("class",cc),n.style("opacity",fc).transition().duration(D).attr("d",z).style("opacity",1),n.exit().transition().duration(D).style("opacity",0).remove(),Ig.selectAll(".-line").style("opacity",fc).transition().duration(D).attr("d",Dg).style("opacity",1))),Hg.selectAll(".selected-circles").filter(function(a){return Qc(a)}).selectAll("circle").remove(),Hg.selectAll(".selected-circle").transition().duration(D).attr("cx",mf?Bc:Ac).attr("cy",mf?Ac:Bc),Re?(o=Hg.select(".event-rects").selectAll(".event-rect").data([0]),yd(o.enter()),o.attr("x",0).attr("y",0).attr("width",je).attr("height",le)):(mg?(r=function(a,b){var c=Ib(b),d=Jb(b);return(Ge(d?d:a.x+50)-Ge(c?c:a.x-50))/2},q=function(a,b){var c=Ib(b);return(Ge(a.x)+Ge(c?c:a.x-50))/2}):(r=B(),q=function(a){return Ge(a.x)-r/2}),p=Lb(),Hg.select(".event-rects").datum(p?p.values:[]),o=Hg.select(".event-rects").selectAll(".event-rect").data(function(a){return a}),xd(o.enter()),o.attr("class",ec).attr("x",mf?0:q).attr("y",mf?q:0).attr("width",mf?je:r).attr("height",mf?r:le),o.exit().remove()),l=Hg.select(".regions").selectAll("rect.region").data(ag),l.enter().append("rect").style("fill-opacity",0),l.attr("class",dc).attr("x",mf?0:wb).attr("y",mf?wb:ge.top).attr("width",mf?je:xb).attr("height",mf?xb:le).transition().duration(D).style("fill-opacity",function(a){return c(a.opacity)?a.opacity:.1}),l.exit().transition().duration(D).style("fill-opacity",0).remove(),hf&&Nd(Sd.data.targets,{withTransition:u}),Mb().forEach(function(a){Og[a]=!0})}function Ed(){Dd({withTransition:!1,withY:!1,withSubchart:!1,withUpdateXDomain:!0})}function Fd(){return"mousemove"===g.event.sourceEvent.type&&Eg.altDomain?(Ge.domain(Eg.altDomain),void Eg.scale(Ge).updateScaleExtent()):(lg&&Ge.orgDomain()[0]===Mg[0]&&Ge.domain([Mg[0]-1e-10,Ge.orgDomain()[1]]),Dd({withTransition:!1,withY:!1,withSubchart:!1}),void("mousemove"===g.event.sourceEvent.type&&(pg=!0)))}function Gd(){function a(){b.forEach(function(a){a()})}var b=[];return a.add=function(a){b.push(a)},a}function Hd(a){var b,c;a=e(a)?a:{},b=e(a.withTransition)?a.withTransition:!1,c=e(a.withTransform)?a.withTransform:!1,n(),F(),Ag.scale(Je),ae&&Eg.scale(Ge),Fg.attr("width",ne).attr("height",oe),Fg.select("#"+ig).select("rect").attr("width",je).attr("height",le),Fg.select("#xaxis-clip").select("rect").attr("width",x),Fg.select(".zoom-rect").attr("width",je).attr("height",le),m(b),Dd({withTransition:b,withUpdateXDomain:!0,withTransform:c,durationForExit:0})}function Id(a){var b,c,d,e,f,h,i,j,k,l,m,n;i=Hg.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",Vb).style("fill",function(a){return qg(a.id)}),e=Hg.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",Zb).style("fill",function(a){return qg(a.id)}).style("stroke","none").style("cursor",function(a){return df(a)?"pointer":null}),c=Hg.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",Xb).style("opacity",0).style("stroke",function(a){return qg(a.id)}),b.append("path").attr("class",_b).style("opacity",function(){return Ng=+g.select(this).style("opacity"),0}).style("fill",function(a){return qg(a.id)}),b.append("g").attr("class",function(a){return"selected-circles selected-circles-"+a.id}),b.append("g").attr("class",Yb).style("fill",function(a){return qg(a.id)}).style("cursor",function(a){return df(a)?"pointer":null}),a.forEach(function(a){var b=Od(a.id);Hg.selectAll(".selected-circles"+b).selectAll(".selected-circle").each(function(b){b.value=a.values[b.x].value})}),h=Hg.select(".chart-arcs").selectAll(".chart-arc").data(xe(a)),f=h.enter().append("g").attr("class",function(a){return"chart-arc target target-"+a.data.id}),f.append("path").attr("class",$b).style("opacity",0).style("fill",function(a){return qg(a.data.id)}).style("cursor",function(a){return df(a)?"pointer":null}).each(function(a){this._current=a}).on("mouseover",function(a){ib(a.data.id),Kd(a.data.id)}).on("mouseout",function(a){jb(a.data.id),Md()}),f.append("text").attr("dy",".35em").style("opacity",0).style("text-anchor","middle").style("pointer-events","none"),ef&&(n=Ig.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",Zb).style("fill",function(a){return qg(a.id)}),l=Ig.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",Xb).style("opacity",0).style("stroke",function(a){return qg(a.id)})),hf&&Nd(a),Fg.selectAll(".target").transition().style("opacity",1)}function Jd(a,b){Sd.data.targets.forEach(function(b){for(var c=0;c=d&&(Object.keys(w).forEach(function(a){w[a]=h}),xg||(p=(qe-h*Object.keys(a).length)/2)),i>=e&&(Object.keys(x).forEach(function(a){x[a]=i}),xg&&(p=(pe-i*Object.keys(a).length)/2))):(v[c]=u,u+=j,p=(k-u)/2)}var i,j,k,l,m,n,o,p,q,r=Mb(a),s=4,t=30,u=0,v={},w={},x={};b=d(b)?{}:b,q=e(b.withTransition)?b.withTransition:!0,xg?(j=function(){return.2*qe},m=function(a,b){return p+f(a,b)}):(j=function(a,b){return p+c(a,b)},m=function(){return.2*pe}),k=function(a,b){return j(a,b)+14},n=function(a,b){return m(a,b)+9},l=function(a,b){return j(a,b)-4},o=function(a,b){return m(a,b)-7},i=Jg.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){kf(a)}).on("mouseover",function(a){Kd(a),Sd.focus(a)}).on("mouseout",function(){Md(),Sd.revert()}),i.append("text").text(function(a){return e(Ue[a])?Ue[a]:a}).each(function(a){h(this,a)}).style("pointer-events","none").attr("x",xg?k:-200).attr("y",xg?-200:m),i.append("rect").attr("class","legend-item-event").style("fill-opacity",0).attr("x",xg?l:-200).attr("y",xg?-200:o).attr("width",function(a){return w[a]}).attr("height",function(a){return x[a]}),i.append("rect").attr("class","legend-item-tile").style("pointer-events","none").style("fill",function(a){return qg(a)}).attr("x",xg?k:-200).attr("y",xg?-200:n).attr("width",10).attr("height",10),Jg.selectAll("text").data(r).each(function(a){h(this,a)}).transition().duration(q?250:0).attr("x",k).attr("y",n),Jg.selectAll("rect.legend-item-event").data(r).transition().duration(q?250:0).attr("x",l).attr("y",o),Jg.selectAll("rect.legend-item-tile").data(r).transition().duration(q?250:0).attr("x",j).attr("y",m)}function Od(a){return a?"-"+a.replace(/\./g,"\\."):""}function Pd(a){return".target"+Od(a)}function Qd(a){return Nb(a.id)}function Rd(a){return"data"in a&&Nb(a.data.id)}var Sd={data:{}},Td={},Ud="_expanded_",Vd="_selected_",Wd="_included_",Xd=i(["bindto"],"#chart"),Yd=i(["size","width"],null),Zd=i(["size","height"],null),$d=i(["padding","left"],null),_d=i(["padding","right"],null),ae=i(["zoom","enabled"],!1),be=i(["zoom","extent"],null),ce=i(["zoom","privileged"],!1),de=i(["onenter"],function(){}),ee=i(["onleave"],function(){}),fe=i(["transition","duration"],350);h("data","data is required in config");var ge,he,ie,je,ke,le,me,ne,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=i(["data","x"],null),Re=i(["data","xs"],null),Se=i(["data","x_format"],"%Y-%m-%d"),Te=i(["data","id_converter"],function(a){return a}),Ue=i(["data","names"],{}),Ve=i(["data","groups"],[]),We=i(["data","axes"],{}),Xe=i(["data","type"],null),Ye=i(["data","types"],{}),Ze=i(["data","labels"],{}),$e=i(["data","order"],null),_e=i(["data","regions"],{}),af=i(["data","colors"],{}),bf=i(["data","selection","enabled"],!1),cf=i(["data","selection","grouped"],!1),df=i(["data","selection","isselectable"],function(){return!0}),ef=i(["subchart","show"],!1),ff=ef?i(["subchart","size","height"],60):0,gf=i(["color","pattern"],null),hf=i(["legend","show"],!0),jf=i(["legend","position"],"bottom"),kf=i(["legend","item","onclick"],function(){}),lf=i(["legend","equally"],!1),mf=i(["axis","rotated"],!1),nf=i(["axis","x","type"],"indexed"),of=i(["axis","x","categories"],[]),pf=i(["axis","x","tick","centered"],!1),qf=i(["axis","x","tick","format"],null),rf=i(["axis","x","tick","culling"],"categorized"===nf?!1:!0),sf=i(["axis","x","tick","count"],10),tf=i(["axis","x","default"],null),uf=i(["axis","x","label"],null),vf=i(["axis","y","max"],null),wf=i(["axis","y","min"],null),xf=i(["axis","y","center"],null),yf=i(["axis","y","label"],null),zf=i(["axis","y","inner"],!1),Af=i(["axis","y","tick","format"],null),Bf=i(["axis","y","padding"],null),Cf=i(["axis","y","ticks"],10),Df=i(["axis","y2","show"],!1),Ef=i(["axis","y2","max"],null),Ff=i(["axis","y2","min"],null),Gf=i(["axis","y2","center"],null),Hf=i(["axis","y2","inner"],!1),If=i(["axis","y2","tick","format"],null),Jf=i(["axis","y2","padding"],null),Kf=i(["axis","y2","ticks"],10),Lf=i(["grid","x","show"],!1),Mf=i(["grid","x","type"],"tick"),Nf=i(["grid","x","lines"],null),Of=i(["grid","y","show"],!1),Pf=i(["grid","y","lines"],null),Qf=i(["grid","y","ticks"],10),Rf=i(["point","show"],!0),Sf=Rf?i(["point","r"],2.5):0,Tf=i(["point","focus","line","enabled"],!0),Uf=i(["point","focus","expand","enabled"],!0),Vf=i(["point","focus","expand","r"],Uf?4:Sf),Wf=i(["point","focus","select","r"],8),Xf=i(["point","onclick"],function(){}),Yf=i(["point","onselected"],function(){}),Zf=i(["point","onunselected"],function(){}),$f=i(["arc","label","format"],function(a,b){return(100*b).toFixed(1)+"%"}),_f=i(["arc","title"],""),ag=i(["regions"],[]),bg=i(["tooltip","show"],!0),cg=i(["tooltip","format","title"],null),dg=i(["tooltip","format","value"],null),eg=i(["tooltip","contents"],function(a,b,c,d){var e,f,g,h,i,j=cg?cg:b,k=dg?dg:c;for(f=0;f"+g+""),i=a[f].name,h=k(a[f].value),e+=""+i+""+h+"");return e+""}),fg=i(["tooltip","init","show"],!1),gg=i(["tooltip","init","x"],0),hg=i(["tooltip","init","position"],{top:"0px",left:"50px"}),ig=Xd.replace("#","")+"-clip",jg="url("+document.URL+"#"+ig+")",kg="timeseries"===nf,lg="categorized"===nf,mg=!kg&&(Qe||Re),ng=null,og=!1,pg=!1,qg=Yc(af,gf),rg=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)}}(),sg=mf?"left":"bottom",tg=mf?zf?"top":"bottom":zf?"right":"left",ug=mf?Hf?"bottom":"top":Hf?"left":"right",vg=mf?"left":"bottom",wg={main:function(){return"translate("+ge.left+","+ge.top+")"},context:function(){return"translate("+he.left+","+he.top+")"},legend:function(){return"translate("+ie.left+","+ie.top+")"},y2:function(){return"translate("+(mf?0:je)+","+(mf?1:0)+")"},x:function(){return"translate(0,"+le+")"},subx:function(){return"translate(0,"+(mf?0:me)+")"},arc:function(){return"translate("+je/2+","+le/2+")"}},xg="right"===jf,yg=40,zg=20;xe=g.layout.pie().value(function(a){return a.values.reduce(function(a,b){return a+b.value},0)});var Ag,Bg=function(){var a=g.svg.line().x(mf?function(a){return J(a.id)(a.value)}:kc).y(mf?kc:function(a){return J(a.id)(a.value)});return function(b){var c,d,e=jd(b.values);return Oc(b)?(a.interpolate(Pc(b)?"cardinal":"linear"),_e[b.id]?vd(e,Ge,J(b.id),_e[b.id]):a(e)):(c=Ge(e[0].x),d=J(b.id)(e[0].value),mf?"M "+d+" "+c:"M "+c+" "+d)}}(),Cg=function(){var a;return a=mf?g.svg.area().x0(function(a){return J(a.id)(0)}).x1(function(a){return J(a.id)(a.value)}).y(kc):g.svg.area().x(kc).y0(function(a){return J(a.id)(0)}).y1(function(a){return J(a.id)(a.value)}),function(b){var c,d,e=jd(b.values);return Ic([b],"area")||Ic([b],"area-spline")?(a.interpolate(Pc(b)?"cardinal":"linear"),a(e)):(c=Ge(e[0].x),d=J(b.id)(e[0].value),mf?"M "+d+" "+c:"M "+c+" "+d)}}(),Dg=function(){var a=g.svg.line().x(mf?function(a){return K(a.id)(a.value)}:nc).y(mf?nc:function(a){return K(a.id)(a.value)});return function(b){var c=jd(b.values);return Oc(b)?a(c):"M "+Je(c[0].x)+" "+K(b.id)(c[0].value)}}(),Eg=function(){};Ag=g.svg.brush().on("brush",Ed),Ag.update=function(){return Ig&&Ig.select(".x.brush").call(this),this},Ag.scale=function(a){return mf?this.y(a):this.x(a)},ae&&(Eg=g.behavior.zoom().on("zoomstart",function(){Eg.altDomain=g.event.sourceEvent.altKey?Ge.orgDomain():null}).on("zoom",ae?Fd:null),Eg.scale=function(a){return mf?this.y(a):this.x(a)},Eg.orgScaleExtent=function(){var a=be?be:[1,10];return[a[0],Math.max(Kb()/a[1],a[1])]},Eg.updateScaleExtent=function(){var a=sb(Ge.orgDomain())/sb(Mg),b=this.orgScaleExtent();return this.scaleExtent([b[0]*a,b[1]*a]),this});var Fg,Gg,Hg,Ig,Jg,Kg,Lg,Mg,Ng,Og={};if(Sd.focus=function(a){function b(a){a.transition().duration(100).style("opacity",1)}var c=Fg.selectAll(Pd(a)),d=c.filter(Qd),e=c.filter(Rd);Sd.revert(),Sd.defocus(),b(d.classed("focused",!0)),b(e),Nc(Sd.data.targets)&&ib(a,!0),Kd(a)},Sd.defocus=function(a){function b(a){a.transition().duration(100).style("opacity",.3)}var c=Fg.selectAll(Pd(a)),d=c.filter(Qd),e=c.filter(Rd);Sd.revert(),b(d.classed("focused",!1)),b(e),Nc(Sd.data.targets)&&jb(a),Ld(a)},Sd.revert=function(a){function b(a){a.transition().duration(100).style("opacity",1)}var c=Fg.selectAll(Pd(a)),d=c.filter(Qd),e=c.filter(Rd);b(d.classed("focused",!1)),b(e),Nc(Sd.data.targets)&&jb(a),Md()},Sd.show=function(a){Fg.selectAll(Pd(a)).transition().style("opacity",1)},Sd.hide=function(a){Fg.selectAll(Pd(a)).transition().style("opacity",0)},Sd.unzoom=function(){Ag.clear().update(),Dd({withUpdateXDomain:!0})},Sd.load=function(a){if("function"!=typeof a.done&&(a.done=function(){}),a.xs&&Cb(a.xs),"categories"in a&&lg&&(of=a.categories,Me.categories(of)),"cacheIds"in a&&tb(a.cacheIds))return void Jd(vb(a.cacheIds),a.done);if("data"in a)Jd(Gb(a.data),a.done);else if("url"in a)g.csv(a.url,function(b,c){Jd(Gb(c),a.done)});else if("rows"in a)Jd(Gb(Eb(a.rows)),a.done);else{if(!("columns"in a))throw Error("url or rows or columns is required.");Jd(Gb(Fb(a.columns)),a.done)}},Sd.unload=function(a){Sd.data.targets=Sd.data.targets.filter(function(b){return b.id!==a}),Fg.selectAll(Pd(a)).transition().style("opacity",0).remove(),hf&&(Fg.selectAll(".legend-item"+Od(a)).remove(),Nd(Sd.data.targets)),Sd.data.targets.length>0&&Dd({withUpdateOrgXDomain:!0,withUpdateXDomain:!0})},Sd.selected=function(a){var b=Od(a);return g.merge(Hg.selectAll(".-shapes"+b).selectAll(".-shape").filter(function(){return g.select(this).classed(Vd)}).map(function(a){return a.map(function(a){return a.__data__})}))},Sd.select=function(a,b,c){bf&&Hg.selectAll(".-shapes").selectAll(".-shape").each(function(f,h){var i="circle"===this.nodeName?dd:gd,j="circle"===this.nodeName?ed:hd;b.indexOf(h)>=0?df(f)&&(cf||d(a)||a.indexOf(f.id)>=0)&&i(g.select(this).classed(Vd,!0),f,h):e(c)&&c&&j(g.select(this).classed(Vd,!1),f,h)})},Sd.unselect=function(a,b){bf&&Hg.selectAll(".-shapes").selectAll(".-shape").each(function(c,e){var f="circle"===this.nodeName?ed:hd;(d(b)||b.indexOf(e)>=0)&&df(c)&&(cf||d(a)||a.indexOf(c.id)>=0)&&f(g.select(this).classed(Vd,!1),c,e)})},Sd.toLine=function(a){Hc(a,"line"),Hd({withTransition:!0})},Sd.toSpline=function(a){Hc(a,"spline"),Hd({withTransition:!0})},Sd.toBar=function(a){Hc(a,"bar"),Hd({withTransition:!0})},Sd.toScatter=function(a){Hc(a,"scatter"),Hd({withTransition:!0})},Sd.toArea=function(a){Hc(a,"area"),Hd({withTransition:!0})},Sd.toAreaSpline=function(a){Hc(a,"area-spline"),Hd({withTransition:!0})},Sd.toPie=function(a){Hc(a,"pie"),Hd({withTransition:!0,withTransform:!0})},Sd.toDonut=function(a){Hc(a,"donut"),Hd({withTransition:!0,withTransform:!0})},Sd.groups=function(a){return d(a)?Ve:(Ve=a,Dd(),Ve)},Sd.regions=function(a){return d(a)?ag:(ag=a,Dd(),ag)},Sd.regions.add=function(a){return d(a)?ag:(ag=ag.concat(a),Dd(),ag)},Sd.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;Fg.selectAll("."+a).transition().duration(d).style("fill-opacity",0).remove(),ag=ag.filter(function(b){return b.classes.indexOf(a)<0})}),ag},Sd.data.get=function(a){var b=Sd.data.getAsTarget(a);return e(b)?b.values.map(function(a){return a.value}):void 0},Sd.data.getAsTarget=function(a){var b=Ob(function(b){return b.id===a});return b.length>0?b[0]:void 0},Sd.resize=function(a){Yd=a?a.width:null,Zd=a?a.height:null,Hd()},Sd.destroy=function(){Sd.data.targets=void 0,Sd.data.x={},Lg.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(Eb(f.data.rows));else{if(!("columns"in f.data))throw Error("url or rows or columns is required.");wd(Fb(f.data.columns))}return Sd}}(window); \ No newline at end of file