Quite good looking graph derived from d3.js http://c3js.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

2 lines
52 KiB

!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]);c<a[1];c++)b.push(c);return b.length>0&&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 a<t.length?t[a]:a}function h(a){var b=f(a);return r?r(b):b}function i(f){f.each(function(){var f,i,p=g.select(this),r=d(j.domain()),s=p.selectAll(".tick.major").data(r,String),t=s.enter().insert("g","path").attr("class","tick major").style("opacity",1e-6),u=g.transition(s.exit()).style("opacity",1e-6).remove(),v=g.transition(s).style("opacity",1),w=j.rangeExtent?j.rangeExtent():c(j.range()),x=p.selectAll(".domain").data([0]);x.enter().append("path").attr("class","domain");var y=g.transition(x),z=j.copy(),A=this.__chart__||z;this.__chart__=z,t.append("line"),t.append("text");var B=t.select("line"),C=v.select("line"),D=s.select("text"),E=t.select("text"),F=v.select("text");switch(q=(z(1)-z(0))/2,i=o?0:q,k){case"bottom":f=a,B.attr("y2",l),E.attr("y",Math.max(l,0)+n),C.attr("x1",i).attr("x2",i).attr("y2",l),F.attr("x",0).attr("y",Math.max(l,0)+n),D.attr("dy",".71em").style("text-anchor","middle"),D.text(function(a){return e(r,a)?h(a):""}),y.attr("d","M"+w[0]+","+m+"V0H"+w[1]+"V"+m);break;case"left":f=b,B.attr("x2",-l),E.attr("x",-(Math.max(l,0)+n)),C.attr("x2",-l).attr("y2",0),F.attr("x",-(Math.max(l,0)+n)).attr("y",q),D.attr("dy",".32em").style("text-anchor","end"),D.text(function(a){return e(r,a)?h(a):""}),y.attr("d","M"+-m+","+w[0]+"H0V"+w[1]+"H"+-m)}if(j.ticks)t.call(f,A),v.call(f,z),u.call(f,z);else{var G=z.rangeBand()/2,H=function(a){return z(a)+G};t.call(f,H),v.call(f,H)}})}var j=g.scale.linear(),k="bottom",l=6,m=6,n=3,o=!1,p=10,q=0,r=null,s=!0,t=[];return i.scale=function(a){return arguments.length?(j=a,i):j},i.orient=function(a){return arguments.length?(k=a in{top:1,right:1,bottom:1,left:1}?a+"":"bottom",i):k},i.categories=function(a){return arguments.length?(t=a,i):t},i.tickCentered=function(a){return arguments.length?(o=a,i):o},i.tickFormat=function(a){return arguments.length?(r=a,i):r},i.tickOffset=function(){return q},i.ticks=function(a){return arguments.length?(p=a,i):p},i.tickCulling=function(a){return arguments.length?(s=a,i):s},i}function c(a){return a||0===a}function d(a){return"undefined"==typeof a}function e(a){return"undefined"!=typeof a}var f=a.c3={},g=a.d3;f.generate=function(f){function h(a,b){if(!(a in f))throw Error(b)}function i(a,b){for(var c=f,d=0;d<a.length;d++){if(!(a[d]in c))return b;c=c[a[d]]}return c}function j(a){return"url("+document.URL.split("#")[0]+"#"+a}function k(){Kg.attr("transform",zg.main),Kg.select(".x.axis").attr("transform",zg.x),Kg.select(".y2.axis").attr("transform",zg.y2),Kg.select(".chart-arcs").attr("transform",zg.arc)}function l(){hf&&(Lg.attr("transform",zg.context),Lg.select(".x.axis").attr("transform",zg.subx))}function m(a){var b=a!==!1?250:0;lf&&Mg.transition().duration(b).attr("transform",zg.legend)}function n(a){k(a),l(a),m(a)}function o(){qe=r(),re=s(),se=E(),te=D(),je={top:pf&&Gf?20:0,right:u(),bottom:20+(pf?0:jf)+(Ag?F():se),left:(pf?jf+Cg:0)+t()},me=qe-je.left-je.right,oe=re-je.top-je.bottom,ke={top:pf?je.top:re-jf-(Ag?0:se),right:0/0,bottom:20+(Ag?0:se),left:pf?Bg:je.left},ne=pf?je.left-Bg-Cg:me,pe=pf?oe:re-ke.top-ke.bottom,le={top:Ag?je.top:re+F()-se,right:0/0,bottom:0,left:Ag?qe-te:0},p(),Ag&&Pc(Vd.data.targets)&&(le.left=me/2+ve)}function p(){ve=oe/2,ue=.95*ve,we=Oc(Vd.data.targets)?.6*ue:0}function q(){var a=g.select(".y.axis").node().getBoundingClientRect(),b=g.select($d).node().getBoundingClientRect();return a.right-b.left-t()}function r(){return _d?_d:w()}function s(){var a=ae?ae:x();return a>0?a:320}function t(){return Pc(Vd.data.targets)?0:be?be:Cf?1:v("y")}function u(){return Pc(Vd.data.targets)?0:ce?ce:Ag?te*(Gf&&!pf?1.25:1):Gf?Kf||pf?1:v("y2"):1}function v(){var a=U();return a.isInner?40:60}function w(){return+g.select($d).style("width").replace("px","")}function x(){return+g.select($d).style("height").replace("px","")}function y(){return me+2}function z(){return 80}function A(){return je.left+20}function B(){return oe+2}function C(){var a=pf?oe:me,b=ob(),c=Lb();return c>1?a*b/(c-1):a}function D(){return lf?Ag?150:qe:0}function E(){return lf?Ag?re:40:0}function F(){var a=T();return a.isInner?5:20}function G(){var a,b;Be=pf?1:0,Ce=pf?oe:me,De=pf?0:oe,Ee=pf?me:1,Fe=Be,Ge=Ce,He=pf?0:pe,Ie=pf?ne:1,Je=I(Be,Ce,Je?Je.domain():void 0,function(){return Pe.tickOffset()}),Ke=J(De,Ee),Le=J(De,Ee),Me=I(Be,Ce,Pg,function(a){return a%1?0:Se.tickOffset()}),Ne=J(He,Ie),Oe=J(He,Ie),a=P(),b=Q(),Pe=M(Je,vg,a,b),Se=M(Me,yg,a,b),Qe=N(Ke,wg,Df,Ff),Re=N(Le,xg,Lf,Nf),H()}function H(){xe=db(),ye=eb(),ze=eb(.98)}function I(a,b,c,f){var h=(ng?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}),og){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 J(a,b){return g.scale.linear().range([a,b])}function K(a){return"y2"===O(a)?Le:Ke}function L(a){return"y2"===O(a)?Oe:Ne}function M(a,c,d,e){var f=(og?b():g.svg.axis()).scale(a).orient(c);return f.tickFormat(d).ticks(e),og?f.tickCentered(sf):f.tickOffset=function(){var a=pf?oe:me;return a*ob()/Lb()/2},og&&f.categories(rf),f}function N(a,b,c,d){return g.svg.axis().scale(a).orient(b).tickFormat(c).ticks(d).outerTickSize(0)}function O(a){return a in Ze?Ze[a]:"y"}function P(){var a=ng?ug:og?Ub:null;return tf&&("function"==typeof tf?a=tf:ng&&(a=function(a){return g.time.format(tf)(a)})),a}function Q(){var a=Lb();return uf&&a>vf?vf:a}function R(a){return"string"==typeof a?a:a?a.text:null}function S(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 T(){return S(xf,"inner-right")}function U(){return S(Bf,"inner-top")}function V(){return R(xf)}function W(){return R(Bf)}function X(){var a=T();return a.isLeft?0:a.isCenter?me/2:me}function Y(){var a=U();return a.isBottom?-oe:a.isMiddle?-oe/2:0}function Z(){var a=U();return a.isTop?"-0.5em":"0"}function $(){var a=T();return a.isInner?"-0.5em":"3.5em"}function _(){var a=U(),b=0;return g.selectAll(".y.axis .tick text").each(function(){var a=this.getBBox();b<a.width&&(b=a.width)}),a.isInner?"1.2em":-20-b}function ab(){var a=T();return a.isLeft?"start":a.isCenter?"middle":"end"}function bb(){var a=U();return a.isBottom?"start":a.isMiddle?"middle":"end"}function cb(a){var b=!1;return Ae(Vd.data.targets).forEach(function(c){return b||c.data.id!==a.data.id?void 0:(b=!0,void(a=c))}),b?a:null}function db(){var a=g.svg.arc().outerRadius(ue).innerRadius(we),b=function(b,c){var d;return c?a(b):(d=cb(b),d?a(d):"M 0 0")};return b.centroid=a.centroid,b}function eb(a){var b=g.svg.arc().outerRadius(ve*(a?a:1)).innerRadius(we);return function(a){var c=cb(a);return c?b(c):"M 0 0"}}function fb(a,b){return Wc(a.data)?xe(a,b):"M 0 0"}function gb(a){var b,c,d,e,f=cb(a),g="";return f&&(b=xe.centroid(f),c=b[0],d=b[1],e=Math.sqrt(c*c+d*d),g="translate("+c/e*ue*.8+","+d/e*ue*.8+")"),g}function hb(a){return(a.endAngle-a.startAngle)/(2*Math.PI)}function ib(a){return bg(a,hb(a))}function jb(a,b){var c=Ig.selectAll(".chart-arc"+Rd(a)),d=Ig.selectAll(".-arc").filter(function(b){return b.data.id!==a});c.selectAll("path").transition().duration(50).attr("d",ye).transition().duration(100).attr("d",ze).each(function(a){Vc(a.data)}),b||d.style("opacity",.3)}function kb(a){var b=Ig.selectAll(".chart-arc"+Rd(a));b.selectAll("path").transition().duration(50).attr("d",xe),Ig.selectAll(".-arc").style("opacity",1)}function lb(a){var b,c,d,e,f,h=Qb(a);if(Ye.length>0)for(f=Sb(a),b=0;b<Ye.length;b++)for(d=Ye[b][0],f&&h[d]&&h[d].forEach(function(a,b){h[d][b]=0>a?a:0}),c=1;c<Ye[b].length;c++)e=Ye[b][c],h[e]&&h[e].forEach(function(a,b){O(e)!==O(d)||!h[d]||f&&+a>0||(h[d][b]+=+a)});return g.min(Object.keys(h).map(function(a){return g.min(h[a])}))}function mb(a){var b,c,d,e,f,h=Qb(a);if(Ye.length>0)for(f=Tb(a),b=0;b<Ye.length;b++)for(d=Ye[b][0],f&&h[d]&&h[d].forEach(function(a,b){h[d][b]=a>0?a:0}),c=1;c<Ye[b].length;c++)e=Ye[b][c],h[e]&&h[e].forEach(function(a,b){O(e)!==O(d)||!h[d]||f&&0>+a||(h[d][b]+=+a)});return g.max(Object.keys(h).map(function(a){return g.max(h[a])}))}function nb(a){var b,d,e,f,g,h,i,j,k=Pb(function(b){return O(b.id)===a}),l="y2"===a?If:zf,m="y2"===a?Hf:yf,n=c(l)?l:lb(k),o=c(m)?m:mb(k),p="y2"===a?Jf:Af,q=kc()&&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&&Ef&&(e=c(Ef.top)?Ef.top:d,f=c(Ef.bottom)?Ef.bottom:d),"y2"===a&&Mf&&(e=c(Mf.top)?Mf.top:d,f=c(Mf.bottom)?Mf.bottom:d),q&&(h=lc(n,o),i=tb(Ke.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]))),Lc(k)&&!Sb(k)&&(f=n),[n-f,o+e]}function ob(a){var b=tb(Pg),c=tb(Je.domain());return a||0===c?1:b/c}function pb(a){return g.min(a,function(a){return g.min(a.values,function(a){return a.x})})}function qb(a){return g.max(a,function(a){return g.max(a.values,function(a){return a.x})})}function rb(a,b){var c,d,e=b[0],f=b[1],g=Math.abs(e-f);return og?d=0:Lc(a)?(c=Lb(),d=c>1?g/(c-1)/2:.5):d=.01*g,d}function sb(a){var b=[pb(a),qb(a)],c=b[0],d=b[1],e=rb(a,b),f=ng?new Date(c.getTime()-e):c-e,g=ng?new Date(d.getTime()+e):d+e;return[f,g]}function tb(a){return a[1]-a[0]}function ub(a){for(var b=0;b<a.length;b++)if(!(a[b]in Wd))return!1;return!0}function vb(a,b){Wd[a]=Ib(b)}function wb(a){for(var b=[],c=0;c<a.length;c++)a[c]in Wd&&b.push(Ib(Wd[a[c]]));return b}function xb(a){return"start"in a?Je(ng?_c(a.start):a.start):0}function yb(a){var b=xb(a),c="end"in a?Je(ng?_c(a.end):a.end):me,d=c-b;return 0>d?0:d}function zb(a){return Te&&a===Te||Ue&&dd(Ue,a)}function Ab(a){return!zb(a)}function Bb(a){return Te?Te:Ue?Ue[a]:null}function Cb(a,b){return a in Vd.data.x&&Vd.data.x[a]&&Vd.data.x[a][b]?Vd.data.x[a][b]:b}function Db(a){Object.keys(a).forEach(function(b){Ue[b]=a[b]})}function Eb(a){var b;return a&&(b=Xe[a.id],a.name=b?b:a.id),a}function Fb(a){var b,c,d=a[0],e={},f=[];for(b=1;b<a.length;b++){for(e={},c=0;c<a[b].length;c++)e[d[c]]=a[b][c];f.push(e)}return f}function Gb(a){var b,c,e,f=[];for(b=0;b<a.length;b++)for(e=a[b][0],c=1;c<a[b].length;c++)d(f[c-1])&&(f[c-1]={}),f[c-1][e]=a[b][c];return f}function Hb(b){var c,d=g.keys(b[0]).filter(Ab),e=g.keys(b[0]).filter(zb);return ng&&0===e.length?(a.alert('data.x or data.xs must be specified when axis.x.type == "timeseries"'),[]):(pg&&d.forEach(function(a){var c=Bb(a);Vd.data.x[a]=e.indexOf(c)>=0?b.map(function(a){return a[c]}):Vd.data.x[Object.keys(Vd.data.x)[0]]}),c=d.map(function(a){var c=We(a);return{id:c,id_org:a,values:b.map(function(b,d){var e,f=Bb(a);return e=ng?_c(b[f]):pg?b[f]?+b[f]:Cb(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++})}),$e&&Jc(Nb(c).filter(function(a){return!(a in _e)}),$e),c.forEach(function(a){vb(a.id_org,a)}),c)}function Ib(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 Jb(a){return a>0&&Vd.data.targets[0].values[a-1]?Vd.data.targets[0].values[a-1].x:void 0}function Kb(a){return a<Lb()-1?Vd.data.targets[0].values[a+1].x:void 0}function Lb(){return g.max(Vd.data.targets,function(a){return a.values.length})}function Mb(){var a,b=Vd.data.targets.length,c=0;return b>1?Vd.data.targets.forEach(function(b){b.values.length>c&&(a=b,c=b.values.length)}):a=b?Vd.data.targets[0]:null,a}function Nb(a){return a=d(a)?Vd.data.targets:a,a.map(function(a){return a.id})}function Ob(a){var b,c=Nb();for(b=0;b<c.length;b++)if(c[b]===a)return!0;return!1}function Pb(a){return e(a)?Vd.data.targets.filter(a):Vd.data.targets}function Qb(a){var b={};return a.forEach(function(a){b[a.id]=[],a.values.forEach(function(c){b[a.id].push(c.value)})}),b}function Rb(a,b){var c,d,e,f=Object.keys(a);for(c=0;c<f.length;c++)for(e=a[f[c]].values,d=0;d<e.length;d++)if(b(e[d].value))return!0;return!1}function Sb(a){return Rb(a,function(a){return 0>a})}function Tb(a){return Rb(a,function(a){return a>0})}function Ub(a){return a<rf.length?rf[a]:a}function Vb(a){return"-text -text-"+a.id}function Wb(a){return"-texts -texts-"+a.id}function Xb(a){return"-shapes -shapes-"+a.id}function Yb(a){return Xb(a)+" -line -line-"+a.id}function Zb(a){return Xb(a)+" -circles -circles-"+a.id}function $b(a){return Xb(a)+" -bars -bars-"+a.id}function _b(a){return Xb(a.data)+" -arc -arc-"+a.data.id}function ac(a){return Xb(a)+" -area -area-"+a.id}function bc(a,b){return"-shape -shape-"+b}function cc(a,b){return bc(a,b)+" -circle -circle-"+b}function dc(a,b){return bc(a,b)+" -bar -bar-"+b}function ec(a,b){return"region region-"+b+" "+("classes"in a?[].concat(a.classes).join(" "):"")}function fc(a,b){return"event-rect event-rect-"+b}function gc(a){return Rg[a.id]?1:0}function hc(a){var b=jc(a);return gc(a)*b}function ic(a){return c(a.value)?Tc(a)?.5:1:0}function jc(a){return kc(a)?1:0}function kc(a){var b=a?a.id:null;return"boolean"==typeof af&&af?!0:"boolean"===af[b]&&af[b]?!0:af[b]&&af[b].show?!0:!1}function lc(a,b){var c=[],d=1.3;return g.select("svg").selectAll(".dummy").data([a,b]).enter().append("text").text(function(a){return a}).each(function(a,b){var e=this.getBBox();c[b]=e.width*d}).remove(),c}function mc(a){return a?Je(a.x):null}function nc(a){return Je(ng?_c(a.value):a.value)}function oc(a){return Ke(a.value)}function pc(a){return Me(a.x)}function qc(a){var b=Df?Df:function(a){return+a};return b(a)}function rc(a,b){var c,d=a[b].x,e=[];for(c=b-1;c>=0&&d===a[c].x;c--)e.push(a[c]);for(c=b;c<a.length&&d===a[c].x;c++)e.push(a[c]);return e}function sc(a,b,c,d){var e,f=c?c:0,g=d?d:a.length-1,h=Math.floor((g-f)/2)+f,i=a[h],j=Je(i.x)-b[0];return j>0?g=h:f=h,g-f===1?(e=[],a[f].x&&(e=e.concat(rc(a,f))),a[g].x&&(e=e.concat(rc(a,g))),uc(e,b)):sc(a,b,f,g)}function tc(a,b){var c;return c=a.map(function(a){return sc(a.values,b)}),uc(c,b)}function uc(a,b){var c,d;return a.forEach(function(a){var e=ed(a,b);(c>e||!c)&&(c=e,d=a)}),d}function vc(){return bf&&"desc"===bf.toLowerCase()}function wc(){return bf&&"asc"===bf.toLowerCase()}function xc(a){var b=wc(),c=vc();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 yc(a,b){var d,e,f,g,h,i,j,k=a.filter(function(a){return a&&c(a.value)});eg&&0!==k.length&&(Ng.html(hg(a,P(),qc,tg)).style("visibility","hidden").style("display","block"),d=Ng.property("offsetWidth"),e=Ng.property("offsetHeight"),pf?(f=q(),g=f+b[0]+100,h=g+d,j=r()-u(),i=Je(k[0].x)+20):(f=q(),g=f+t()+Je(k[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),Ng.style("top",i+"px").style("left",g+"px").style("visibility","visible"))}function zc(){Ng.style("display","none")}function Ac(a){var b=a.filter(function(a){return a&&c(a.value)});eg&&(Mc(Vd.data.targets)||Pc(Vd.data.targets)||Kg.selectAll("line.xgrid-focus").style("visibility","visible").data([b[0]]).attr(pf?"y1":"x1",mc).attr(pf?"y2":"x2",mc))}function Bc(){Kg.select("line.xgrid-focus").style("visibility","hidden")}function Cc(a){return a.x||0===a.x?Je(a.x):null}function Dc(a){return K(a.id)(a.value)}function Ec(){var a,b,c={},e=0;return Pb(Sc).forEach(function(f){for(a=0;a<Ye.length;a++)if(!(Ye[a].indexOf(f.id)<0))for(b=0;b<Ye[a].length;b++)if(Ye[a][b]in c){c[f.id]=c[Ye[a][b]];break}d(c[f.id])&&(c[f.id]=e++)}),c.__max__=e-1,c}function Fc(a,b,c,d){var e=d?Me:Je;return function(d){var f=d.id in c?c[d.id]:0;return d.x||0===d.x?e(d.x)-a*(b/2-f):0}}function Gc(a){return function(b){var c=a?L(b.id):K(b.id);return c(b.value)}}function Hc(a,b){var c=xc(Pb(Sc)),d=c.map(function(a){return a.id});return function(e,f){var g=b?L(e.id):K(e.id),h=g(0),i=h;return c.forEach(function(b){b.id!==e.id&&a[b.id]===a[e.id]&&d.indexOf(b.id)<d.indexOf(e.id)&&b.values[f].value*e.value>0&&(i+=g(b.values[f].value)-h)}),i}}function Ic(a,b){return b?2*a.tickOffset()*.6/b:0}function Jc(a,b){var c=d(a)?Nb():a;"string"==typeof c&&(c=[c]);for(var e=0;e<c.length;e++)Rg[c[e]]=b===_e[c[e]],_e[c[e]]=b}function Kc(a,b){var c=!1;return a.forEach(function(a){_e[a.id]===b&&(c=!0),a.id in _e||"line"!==b||(c=!0)}),c}function Lc(a){return Kc(a,"bar")}function Mc(a){return Kc(a,"scatter")}function Nc(a){return Kc(a,"pie")}function Oc(a){return Kc(a,"donut")}function Pc(a){return Nc(a)||Oc(a)}function Qc(a){var b="string"==typeof a?a:a.id;return!(b in _e)||"line"===_e[b]||"spline"===_e[b]||"area"===_e[b]||"area-spline"===_e[b]}function Rc(a){var b="string"==typeof a?a:a.id;return"spline"===_e[b]||"area-spline"===_e[b]}function Sc(a){var b="string"==typeof a?a:a.id;return"bar"===_e[b]}function Tc(a){var b="string"==typeof a?a:a.id;return"scatter"===_e[b]}function Uc(a){var b="string"==typeof a?a:a.id;return"pie"===_e[b]}function Vc(a){var b="string"==typeof a?a:a.id;return"donut"===_e[b]}function Wc(a){return Uc(a)||Vc(a)}function Xc(a){return Sc(a)?a.values:[]}function Yc(a){return Qc(a)||Tc(a)?a.values:[]}function Zc(a){return Sc(a)||Qc(a)?a.values:[]}function $c(a,b){var c=[],d=a,e=null!==b?b:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"];return function(b){return b in d?a[b]:(-1===c.indexOf(b)&&c.push(b),e[c.indexOf(b)%e.length])}}function _c(a){var b;if(!a)throw Error(a+" can not be parsed as d3.time with format "+Ve+". Maybe 'x' of this data is not defined. See data.x or data.xs option.");if(b=g.time.format(Ve).parse(a),!b)throw Error("Failed to parse '"+a+"' with format "+Ve);return b}function ad(a,b){var c=g.mouse(a),d=g.select(a),e=1*d.attr("cx"),f=1*d.attr("cy");return Math.sqrt(Math.pow(e-c[0],2)+Math.pow(f-c[1],2))<b}function bd(a){var b=g.mouse(a),c=g.select(a),d=1*c.attr("x"),e=1*c.attr("y"),f=1*c.attr("width"),h=d-10,i=d+f+10,j=e-10;return h<b[0]&&b[0]<i&&j<b[1]}function cd(a,b){var c;for(c=0;c<b.length;c++)if(b[c].start<a&&a<=b[c].end)return!0;return!1}function dd(a,b){var c=!1;return Object.keys(a).forEach(function(d){a[d]===b&&(c=!0)}),c}function ed(a,b){return Math.pow(Je(a.x)-b[0],2)+Math.pow(Ke(a.value)-b[1],2)}function fd(a,b,c){_f(a,b),Kg.select(".selected-circles-"+b.id).selectAll(".selected-circle-"+c).data([b]).enter().append("circle").attr("class",function(){return"selected-circle selected-circle-"+c}).attr("cx",pf?Dc:Cc).attr("cy",pf?Cc:Dc).attr("stroke",function(){return tg(b.id)}).attr("r",1.4*Zf).transition().duration(100).attr("r",Zf)}function gd(a,b,c){ag(a,b),Kg.select(".selected-circles-"+b.id).selectAll(".selected-circle-"+c).transition().duration(100).attr("r",0).remove()}function hd(a,b,c,d){a?fd(b,c,d):gd(b,c,d)}function id(){}function jd(){}function kd(a,b,c,d){a?id(b,c,d):jd(b,c,d)}function ld(a){return a.filter(function(a){return c(a.value)})}function md(a,b){return(b?Kg.selectAll(".-circles-"+b):Kg).selectAll(".-circle"+(c(a)?"-"+a:""))}function nd(a,b){md(a,b).classed(Xd,!0).attr("r",Yf)}function od(a){md(a).filter(function(){return g.select(this).classed(Xd)}).classed(Xd,!1).attr("r",Vf)}function pd(a){return Kg.selectAll(".-bar"+(c(a)?"-"+a:""))}function qd(a){pd(a).classed(Xd,!1)}function rd(a){pd(a).classed(Xd,!1)}function sd(a,b){var c=wd(a,b);return function(a,b){var d=c(a,b),e=pf?1:0,f=pf?0:1,g="M "+d[0][e]+","+d[0][f]+" L"+d[1][e]+","+d[1][f]+" L"+d[2][e]+","+d[2][f]+" L"+d[3][e]+","+d[3][f]+" z";return g}}function td(a,b){var c=wd(a,!1),d=b?ud:vd;return function(a,b){return d(c(a,b),a,this)}}function ud(a,b){var c;return pf?(c=Sc(b)?4:6,a[2][1]+c*(b.value<0?-1:1)):a[0][0]+(a[2][0]-a[0][0])/2}function vd(a,b,c){var d=c.getBBox();return pf?(a[0][0]+a[2][0]+.6*d.height)/2:a[2][1]+(b.value<0?d.height:Sc(b)?-3:-6)}function wd(a,b){var c=a.__max__+1,d=Ic(Pe,c),e=Fc(d,c,a,!!b),f=Gc(!!b),g=Hc(a,!!b),h=b?L:K;return function(a,b){var c=h(a.id)(0),i=g(a,b)||c,j=e(a),k=f(a);return pf&&(a.value>0&&i>k||a.value<0&&k>i)&&(k=i),[[j,i],[j,k-(c-i)],[j+d,k-(c-i)],[j+d,i]]}}function xd(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<f.length;g++)t[g]={},t[g].start=d(f[g].start)?a[0].x:ng?_c(f[g].start):f[g].start,t[g].end=d(f[g].end)?a[a.length-1].x:ng?_c(f[g].end):f[g].end;for(p=pf?function(a){return c(a.value)}:function(a){return b(a.x)},q=pf?function(a){return b(a.x)}:function(a){return c(a.value)},i=ng?function(a,d,e,f){var g=a.x.getTime(),h=d.x-a.x,i=new Date(g+h*e),j=new Date(g+h*(e+f));return"M"+b(i)+" "+c(k(e))+" "+b(j)+" "+c(k(e+f))}:function(a,d,e,f){return"M"+b(j(e))+" "+c(k(e))+" "+b(j(e+f))+" "+c(k(e+f))},g=0;g<a.length;g++){if(d(t)||!cd(a[g].x,t))s+=" "+p(a[g])+" "+q(a[g]);else{j=I(a[g-1].x,a[g].x),k=J(a[g-1].value,a[g].value),l=b(a[g].x)-b(a[g-1].x),m=c(a[g].value)-c(a[g-1].value),n=Math.sqrt(Math.pow(l,2)+Math.pow(m,2)),o=2/n;var u=2*o;for(h=o;1>=h;h+=u)s+=i(a[g-1],a[g],h,o)}r=a[g].x}return s}function yd(b){var c,d,e;if(Og=g.select($d),Og.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(Og.html(""),Vd.data.x={},Vd.data.targets=Hb(b),o(),G(),Je.domain(g.extent(sb(Vd.data.targets))),Ke.domain(nb("y")),Le.domain(nb("y2")),Me.domain(Je.domain()),Ne.domain(Ke.domain()),Oe.domain(Le.domain()),Pg=Je.domain(),Dg.scale(Me),de&&Hg.scale(Je),Ig=g.select($d).append("svg").attr("width",me+je.left+je.right).attr("height",oe+je.top+je.bottom).on("mouseenter",ge).on("mouseleave",he),Jg=Ig.append("defs"),Jg.append("clipPath").attr("id",lg).append("rect").attr("width",me).attr("height",oe),Jg.append("clipPath").attr("id","xaxis-clip").append("rect").attr("x",-1).attr("y",-20).attr("width",y).attr("height",z),Jg.append("clipPath").attr("id","yaxis-clip").append("rect").attr("x",-je.left+1).attr("width",A).attr("height",B),Kg=Ig.append("g").attr("transform",zg.main),Lg=hf?Ig.append("g").attr("transform",zg.context):null,Mg=lf?Ig.append("g").attr("transform",zg.legend):null,Ng=g.select($d).style("position","relative").append("div").style("position","absolute").style("z-index","10").style("display","none"),Kg.append("g").attr("class","x axis").attr("clip-path",pf?"":j("xaxis-clip")).attr("transform",zg.x).append("text").attr("class","-axis-x-label").attr("dy",$).style("text-anchor",ab).text(pf?W:V),Kg.append("g").attr("class","y axis").attr("clip-path",pf?j("yaxis-clip"):"").append("text").attr("class","-axis-y-label").attr("transform","rotate(-90)").attr("dx",Z).style("text-anchor",bb).text(pf?V:W),Gf&&Kg.append("g").attr("class","y2 axis").attr("transform",zg.y2),d=Kg.append("g").attr("clip-path",mg).attr("class","grid"),Of&&d.append("g").attr("class","xgrids"),Qf&&d.append("g").attr("class","xgrid-lines"),Wf&&d.append("g").attr("class","xgrid-focus").append("line").attr("class","xgrid-focus").attr("x1",pf?0:-10).attr("x2",pf?me:-10).attr("y1",pf?-10:je.top).attr("y2",pf?-10:oe),Rf&&d.append("g").attr("class","ygrids"),Sf&&d.append("g").attr("class","ygrid-lines"),Kg.append("g").attr("clip-path",mg).attr("class","regions"),Kg.append("g").attr("clip-path",mg).attr("class","chart"),c=Kg.select(".chart").append("g").attr("class","event-rects").style("fill-opacity",0).style("cursor",de?pf?"ns-resize":"ew-resize":null),Kg.select(".chart").append("g").attr("class","chart-bars"),Kg.select(".chart").append("g").attr("class","chart-lines"),Kg.select(".chart").append("g").attr("class","chart-arcs").attr("transform",zg.arc).append("text").attr("class","chart-arcs-title").style("text-anchor","middle").text(cg),Kg.select(".chart").append("g").attr("class","chart-texts"),de&&Kg.insert("rect",fe?null:"g.grid").attr("class","zoom-rect").attr("width",me).attr("height",oe).style("opacity",0).style("cursor",pf?"ns-resize":"ew-resize").call(Hg).on("dblclick.zoom",null),null!==wf&&Dg.extent("function"!=typeof wf?wf:wf(sb())),hf&&(Lg.append("g").attr("clip-path",mg).attr("class","chart"),Lg.select(".chart").append("g").attr("class","chart-bars"),Lg.select(".chart").append("g").attr("class","chart-lines"),Lg.append("g").attr("clip-path",mg).attr("class","x brush").call(Dg).selectAll("rect").attr(pf?"width":"height",pf?ne:pe),Lg.append("g").attr("class","x axis").attr("transform",zg.subx).attr("clip-path",pf?j("yaxis-clip"):"")),lf&&Pd(Vd.data.targets),Kd(Vd.data.targets),Fd({withTransform:!0,withUpdateXDomain:!0}),ig){if(ng&&"string"==typeof jg){for(jg=_c(jg),e=0;e<Vd.data.targets[0].values.length&&Vd.data.targets[0].values[e].x-jg!==0;e++);jg=e}Ng.html(hg(Vd.data.targets.map(function(a){return Eb(a.values[jg])}),P(),qc,tg)),Ng.style("top",kg.top).style("left",kg.left).style("display","block")}null==a.onresize&&(a.onresize=Id()),a.onresize.add&&a.onresize.add(Jd)}function zd(a){a.append("rect").attr("class",fc).style("cursor",ef&&ff?"pointer":null).on("mouseover",function(a,b){if(!rg&&!Pc(Vd.data.targets)){var c,d,e=Vd.data.targets.map(function(a){return Eb(a.values[b])});if(Object.keys(Xe).length>0){d=[];for(var f in Xe)for(c=0;c<e.length;c++)if(e[c].id===f){d.push(e[c]),e.shift(c);break}e=d.concat(e)}Xf&&nd(b),qd(b),Ac(e)}}).on("mouseout",function(a,b){Pc(Vd.data.targets)||(Bc(),zc(),od(b),rd())}).on("mousemove",function(a,b){var c;rg||Pc(Vd.data.targets)||(c=Vd.data.targets.map(function(a){return Eb(a.values[b])}),yc(c,g.mouse(this)),ef&&(ff||Kg.selectAll(".-shape-"+b).filter(function(a){return gf(a)}).each(function(){var a=g.select(this).classed(Xd,!0);"circle"===this.nodeName&&a.attr("r",Yf),Ig.select(".event-rect-"+b).style("cursor",null)}).filter(function(){var a=g.select(this);return"circle"===this.nodeName?ad(this,Zf):"rect"===this.nodeName?bd(this,a.attr("x"),a.attr("y")):void 0}).each(function(){var a=g.select(this);a.classed(Xd)||(a.classed(Xd,!0),"circle"===this.nodeName&&a.attr("r",Zf)),Ig.select(".event-rect-"+b).style("cursor","pointer")})))}).on("click",function(a,b){return Pc(Vd.data.targets)?void 0:sg?void(sg=!1):void Kg.selectAll(".-shape-"+b).each(function(a){Bd(this,a,b)})}).call(g.behavior.drag().origin(Object).on("drag",function(){Cd(g.mouse(this))}).on("dragstart",function(){Dd(g.mouse(this))}).on("dragend",function(){Ed()})).call(Hg).on("dblclick.zoom",null)}function Ad(a){a.append("rect").attr("x",0).attr("y",0).attr("width",me).attr("height",oe).attr("class","event-rect").on("mouseout",function(){Pc(Vd.data.targets)||(Bc(),zc(),od())}).on("mousemove",function(){var a,b,c;rg||Pc(Vd.data.targets)||(a=g.mouse(this),b=tc(Vd.data.targets,a),c=[Eb(b)],yc(c,a),Xf&&(od(),nd(b.index,b.id)),Ac(c),ed(b,a)<100?Ig.select(".event-rect").style("cursor","pointer"):Ig.select(".event-rect").style("cursor",null))}).on("click",function(){var a,b;Pc(Vd.data.targets)||(a=g.mouse(this),b=tc(Vd.data.targets,a),ed(b,a)<100&&Kg.select(".-circles-"+b.id).select(".-circle-"+b.index).each(function(){Bd(this,b,b.index)}))}).call(g.behavior.drag().origin(Object).on("drag",function(){Cd(g.mouse(this))}).on("dragstart",function(){Dd(g.mouse(this))}).on("dragend",function(){Ed()})).call(Hg).on("dblclick.zoom",null)}function Bd(a,b,c){var d,e=g.select(a),f=e.classed(Yd),h=!1;"circle"===a.nodeName?(h=ad(a,1.5*Zf),d=hd):"rect"===a.nodeName&&(h=bd(a),d=kd),(ff||h)&&(ef&&gf(b)&&(e.classed(Yd,!f),d(!f,e,b,c)),$f(b,e))}function Cd(a){var b,c,d,e,f,h,i,j;Pc(Vd.data.targets)||ef&&(!de||Hg.altDomain)&&(b=qg[0],c=qg[1],d=a[0],e=a[1],f=Math.min(b,d),h=Math.max(b,d),i=ff?je.top:Math.min(c,e),j=ff?oe:Math.max(c,e),Kg.select(".dragarea").attr("x",f).attr("y",i).attr("width",h-f).attr("height",j-i),Kg.selectAll(".-shapes").selectAll(".-shape").filter(function(a){return gf(a)}).each(function(a,b){var c,d,e,k,l=g.select(this),m=l.classed(Yd),n=l.classed(Zd),o=!1;"circle"===this.nodeName?(c=1*l.attr("cx"),d=1*l.attr("cy"),k=hd,o=c>f&&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=kd,o=c+e>f&&h>c&&j>d),o^n&&(l.classed(Zd,!n),l.classed(Yd,!m),k(!m,l,a,b))}))}function Dd(a){Pc(Vd.data.targets)||ef&&(qg=a,Kg.select(".chart").append("rect").attr("class","dragarea").style("opacity",.1),rg=!0)}function Ed(){Pc(Vd.data.targets)||ef&&(Kg.select(".dragarea").transition().duration(100).style("opacity",0).remove(),Kg.selectAll(".-shape").classed(Zd,!1),rg=!1)}function Fd(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=Ec(),I=Pc(Vd.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,F=w?ie:0,G=e(a.durationForExit)?a.durationForExit:F,z&&(Je.domain(g.extent(sb(Vd.data.targets))),Pg=Je.domain(),de&&Hg.scale(Je).updateScaleExtent(),Me.domain(Je.domain()),Dg.scale(Me)),y&&(Je.domain(Dg.empty()?Pg:Dg.extent()),de&&Hg.scale(Je).updateScaleExtent()),Ke.domain(nb("y")),Le.domain(nb("y2")),Kg.select(".x.axis").style("opacity",I?0:1).transition().duration(F).call(pf?Qe:Pe),Kg.select(".y.axis").style("opacity",I?0:1).transition().duration(F).call(pf?Pe:Qe),Kg.select(".y2.axis").style("opacity",I?0:1).transition().call(Re),A=sd(H),D=td(H,!0),E=td(H,!1),Kg.select(".x.axis .-axis-x-label").attr("x",X),Kg.select(".y.axis .-axis-y-label").attr("x",Y).attr("dy",_),Ne.domain(Ke.domain()),Oe.domain(Le.domain()),Ng.style("display","none"),Kg.select("line.xgrid-focus").style("visibility","hidden").attr("y2",oe),Of){if("year"===Pf){d=[];for(var J=sb(),K=J[0].getFullYear(),L=J[1].getFullYear(),M=K;L>=M;M++)d.push(new Date(M+"-01-01 00:00:00"))}else d=Je.ticks(10);b=Kg.select(".xgrids").selectAll(".xgrid").data(d),b.enter().append("line").attr("class","xgrid"),b.attr("x1",pf?0:function(a){return Je(a)-Pe.tickOffset()}).attr("x2",pf?me:function(a){return Je(a)-Pe.tickOffset()}).attr("y1",pf?function(a){return Je(a)-Pe.tickOffset()}:je.top).attr("y2",pf?function(a){return Je(a)-Pe.tickOffset()}:oe).style("opacity",function(){return+g.select(this).attr(pf?"y1":"x1")===(pf?oe:0)?0:1}),b.exit().remove()}Qf&&(f=Kg.select(".xgrid-lines").selectAll(".xgrid-line").data(Qf),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:-je.top).attr("dy",-5).style("opacity",0),f.select("line").transition().duration(F).attr("x1",pf?0:nc).attr("x2",pf?me:nc).attr("y1",pf?nc:je.top).attr("y2",pf?nc:oe).style("opacity",1),f.select("text").transition().duration(F).attr("x",pf?me:0).attr("y",nc).text(function(a){return a.text}).style("opacity",1),f.exit().transition().duration(F).style("opacity",0).remove()),u&&Rf&&(i=Kg.select(".ygrids").selectAll(".ygrid").data(Ke.ticks(Tf)),i.enter().append("line").attr("class","ygrid"),i.attr("x1",pf?Ke:0).attr("x2",pf?Ke:me).attr("y1",pf?0:Ke).attr("y2",pf?oe:Ke),i.exit().remove()),u&&Sf&&(j=Kg.select(".ygrid-lines").selectAll(".ygrid-line").data(Sf),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:-je.top).attr("dy",-5).style("opacity",0),j.select("line").transition().duration(F).attr("x1",pf?oc:0).attr("x2",pf?oc:me).attr("y1",pf?0:oc).attr("y2",pf?oe:oc).style("opacity",1),j.select("text").transition().duration(F).attr("x",pf?0:me).attr("y",oc).text(function(a){return a.text
}).style("opacity",1),j.exit().transition().duration(F).style("opacity",0).remove()),m=Kg.selectAll(".-bars").selectAll(".-bar").data(Xc),m.enter().append("path").attr("d",A).style("stroke","none").style("opacity",0).style("fill",function(a){return tg(a.id)}).attr("class",dc),m.style("opacity",gc).transition().duration(F).attr("d",A).style("opacity",1),m.exit().transition().duration(G).style("opacity",0).remove(),o=Kg.selectAll(".-texts").selectAll(".-text").data(Zc),o.enter().append("text").attr("class",Vb).attr("text-anchor",function(a){return pf?a.value<0?"end":"start":"middle"}).style("stroke","none").style("fill-opacity",0).text(function(a){return qc(a.value)}),o.style("fill-opacity",hc).transition().duration(F).attr("x",D).attr("y",E).style("fill-opacity",jc),o.exit().transition().duration(G).style("fill-opacity",0).remove(),Kg.selectAll(".-line").style("opacity",gc).transition().duration(F).attr("d",Eg).style("opacity",1),Kg.selectAll(".-area").style("opacity",0).transition().duration(F).attr("d",Fg).style("opacity",Qg),l=Kg.selectAll(".-circles").selectAll(".-circle").data(Yc),l.enter().append("circle").attr("class",cc).style("opacity",0).attr("r",Vf),l.style("opacity",gc).transition().duration(F).style("opacity",ic).attr("cx",pf?Dc:Cc).attr("cy",pf?Cc:Dc),l.exit().remove(),Kg.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=cb(a);if(!b)return function(){return"M 0 0"};var c=g.interpolate(this._current,b);return this._current=c(0),function(a){return fb(c(a),!0)}}).attr("transform",x?"scale(1)":"").style("opacity",1),Kg.selectAll(".chart-arc").select("text").attr("transform",gb).style("opacity",0).transition().duration(F).text(ib).style("opacity",function(a){return Wc(a.data)?1:0}),Kg.select(".chart-arcs-title").style("opacity",Oc(Vd.data.targets)?1:0),hf&&(null!==g.event&&"zoom"===g.event.type&&Dg.extent(Je.orgDomain()).update(),v&&(Lg.select(".x.axis").style("opacity",I?0:1).transition().duration(F).call(Se),Dg.empty()||Dg.extent(Je.orgDomain()).update(),B=sd(H,!0),p=Lg.selectAll(".-bars").selectAll(".-bar").data(Xc),p.enter().append("path").attr("d",B).style("stroke","none").style("fill",function(a){return tg(a.id)}).attr("class",dc),p.style("opacity",gc).transition().duration(F).attr("d",B).style("opacity",1),p.exit().transition().duration(F).style("opacity",0).remove(),Lg.selectAll(".-line").style("opacity",gc).transition().duration(F).attr("d",Gg).style("opacity",1))),Kg.selectAll(".selected-circles").filter(function(a){return Sc(a)}).selectAll("circle").remove(),Kg.selectAll(".selected-circle").transition().duration(F).attr("cx",pf?Dc:Cc).attr("cy",pf?Cc:Dc),Ue?(q=Kg.select(".event-rects").selectAll(".event-rect").data([0]),Ad(q.enter()),q.attr("x",0).attr("y",0).attr("width",me).attr("height",oe)):(pg?(t=function(a,b){var c=Jb(b),d=Kb(b);return(Je(d?d:a.x+50)-Je(c?c:a.x-50))/2},s=function(a,b){var c=Jb(b);return(Je(a.x)+Je(c?c:a.x-50))/2}):(t=C(),s=function(a){return Je(a.x)-t/2}),r=Mb(),Kg.select(".event-rects").datum(r?r.values:[]),q=Kg.select(".event-rects").selectAll(".event-rect").data(function(a){return a}),zd(q.enter()),q.attr("class",fc).attr("x",pf?0:s).attr("y",pf?s:0).attr("width",pf?me:t).attr("height",pf?t:oe),q.exit().remove()),n=Kg.select(".regions").selectAll("rect.region").data(dg),n.enter().append("rect").style("fill-opacity",0),n.attr("class",ec).attr("x",pf?0:xb).attr("y",pf?xb:je.top).attr("width",pf?me:yb).attr("height",pf?yb:oe).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(),lf&&Pd(Vd.data.targets,{withTransition:w}),Nb().forEach(function(a){Rg[a]=!0})}function Gd(){Fd({withTransition:!1,withY:!1,withSubchart:!1,withUpdateXDomain:!0})}function Hd(){return"mousemove"===g.event.sourceEvent.type&&Hg.altDomain?(Je.domain(Hg.altDomain),void Hg.scale(Je).updateScaleExtent()):(og&&Je.orgDomain()[0]===Pg[0]&&Je.domain([Pg[0]-1e-10,Je.orgDomain()[1]]),Fd({withTransition:!1,withY:!1,withSubchart:!1}),void("mousemove"===g.event.sourceEvent.type&&(sg=!0)))}function Id(){function a(){b.forEach(function(a){a()})}var b=[];return a.add=function(a){b.push(a)},a}function Jd(a){var b,c;a=e(a)?a:{},b=e(a.withTransition)?a.withTransition:!1,c=e(a.withTransform)?a.withTransform:!1,o(),G(),Dg.scale(Me),de&&Hg.scale(Je),Ig.attr("width",qe).attr("height",re),Ig.select("#"+lg).select("rect").attr("width",me).attr("height",oe),Ig.select("#xaxis-clip").select("rect").attr("width",y),Ig.select(".zoom-rect").attr("width",me).attr("height",oe),n(b),Fd({withTransition:b,withUpdateXDomain:!0,withTransform:c,durationForExit:0})}function Kd(a){var b,c,d,e,f,h,i,j,k,l,m,n;i=Kg.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",Wb).style("fill",function(a){return tg(a.id)}),e=Kg.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",$b).style("fill",function(a){return tg(a.id)}).style("stroke","none").style("cursor",function(a){return gf(a)?"pointer":null}),c=Kg.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",Yb).style("opacity",0).style("stroke",function(a){return tg(a.id)}),b.append("path").attr("class",ac).style("opacity",function(){return Qg=+g.select(this).style("opacity"),0}).style("fill",function(a){return tg(a.id)}),b.append("g").attr("class",function(a){return"selected-circles selected-circles-"+a.id}),b.append("g").attr("class",Zb).style("fill",function(a){return tg(a.id)}).style("cursor",function(a){return gf(a)?"pointer":null}),a.forEach(function(a){var b=Qd(a.id);Kg.selectAll(".selected-circles"+b).selectAll(".selected-circle").each(function(b){b.value=a.values[b.x].value})}),h=Kg.select(".chart-arcs").selectAll(".chart-arc").data(Ae(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 tg(a.data.id)}).style("cursor",function(a){return gf(a)?"pointer":null}).each(function(a){this._current=a}).on("mouseover",function(a){jb(a.data.id),Md(a.data.id)}).on("mouseout",function(a){kb(a.data.id),Od()}),f.append("text").attr("dy",".35em").style("opacity",0).style("text-anchor","middle").style("pointer-events","none"),hf&&(n=Lg.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",$b).style("fill",function(a){return tg(a.id)}),l=Lg.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",Yb).style("opacity",0).style("stroke",function(a){return tg(a.id)})),lf&&Pd(a),Ig.selectAll(".target").transition().style("opacity",1)}function Ld(a,b){Vd.data.targets.forEach(function(b){for(var c=0;c<a.length;c++)if(b.id===a[c].id){b.values=a[c].values,a.splice(c,1);break}}),Vd.data.targets=Vd.data.targets.concat(a),Kd(Vd.data.targets),Fd({withUpdateOrgXDomain:!0,withUpdateXDomain:!0}),b()}function Md(a){var b=Ig.selectAll(".legend-item"),c=function(b){return!a||b===a},d=function(a){return!c(a)};b.filter(d).transition().duration(100).style("opacity",.3),b.filter(c).transition().duration(100).style("opacity",1)}function Nd(a){var b=Ig.selectAll(".legend-item"),c=function(b){return!a||b===a},d=function(a){return!c(a)};b.filter(d).transition().duration(100).style("opacity",1),b.filter(c).transition().duration(100).style("opacity",.3)}function Od(){Ig.selectAll(".legend-item").transition().duration(100).style("opacity",1)}function Pd(a,b){function c(a,b){return of?w[a]*b:v[a]}function f(a,b){return of?x[a]*b:v[a]}function h(b,c){var d,e,f=b.getBBox(),h=10*Math.ceil((f.width+t)/10),i=10*Math.ceil((f.height+s)/10),j=Ag?i:h,k=Ag?se:te;w[c]=h,x[c]=i,of?(d=g.max(Object.keys(w).map(function(a){return w[a]})),e=g.max(Object.keys(x).map(function(a){return x[a]})),h>=d&&(Object.keys(w).forEach(function(a){w[a]=h}),Ag||(p=(te-h*Object.keys(a).length)/2)),i>=e&&(Object.keys(x).forEach(function(a){x[a]=i}),Ag&&(p=(se-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=Nb(a),s=4,t=30,u=0,v={},w={},x={};b=d(b)?{}:b,q=e(b.withTransition)?b.withTransition:!0,Ag?(j=function(){return.2*te},m=function(a,b){return p+f(a,b)}):(j=function(a,b){return p+c(a,b)},m=function(){return.2*se}),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=Mg.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){Md(a),Vd.focus(a)}).on("mouseout",function(){Od(),Vd.revert()}),i.append("text").text(function(a){return e(Xe[a])?Xe[a]:a}).each(function(a){h(this,a)}).style("pointer-events","none").attr("x",Ag?k:-200).attr("y",Ag?-200:m),i.append("rect").attr("class","legend-item-event").style("fill-opacity",0).attr("x",Ag?l:-200).attr("y",Ag?-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 tg(a)}).attr("x",Ag?k:-200).attr("y",Ag?-200:n).attr("width",10).attr("height",10),Mg.selectAll("text").data(r).each(function(a){h(this,a)}).transition().duration(q?250:0).attr("x",k).attr("y",n),Mg.selectAll("rect.legend-item-event").data(r).transition().duration(q?250:0).attr("x",l).attr("y",o),Mg.selectAll("rect.legend-item-tile").data(r).transition().duration(q?250:0).attr("x",j).attr("y",m)}function Qd(a){return a?"-"+a.replace(/\./g,"\\."):""}function Rd(a){return".target"+Qd(a)}function Sd(a){return Ob(a.id)}function Td(a){return"data"in a&&Ob(a.data.id)}function Ud(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 Vd={data:{}},Wd={},Xd="_expanded_",Yd="_selected_",Zd="_included_",$d=i(["bindto"],"#chart"),_d=i(["size","width"],null),ae=i(["size","height"],null),be=i(["padding","left"],null),ce=i(["padding","right"],null),de=i(["zoom","enabled"],!1),ee=i(["zoom","extent"],null),fe=i(["zoom","privileged"],!1),ge=i(["onenter"],function(){}),he=i(["onleave"],function(){}),ie=i(["transition","duration"],350);h("data","data is required in config");var 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,Re,Se,Te=i(["data","x"],null),Ue=i(["data","xs"],null),Ve=i(["data","x_format"],"%Y-%m-%d"),We=i(["data","id_converter"],function(a){return a}),Xe=i(["data","names"],{}),Ye=i(["data","groups"],[]),Ze=i(["data","axes"],{}),$e=i(["data","type"],null),_e=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(["subchart","show"],!1),jf=hf?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),Af=i(["axis","y","center"],null),Bf=i(["axis","y","label"],null),Cf=i(["axis","y","inner"],!1),Df=i(["axis","y","tick","format"],null),Ef=i(["axis","y","padding"],null),Ff=i(["axis","y","ticks"],10),Gf=i(["axis","y2","show"],!1),Hf=i(["axis","y2","max"],null),If=i(["axis","y2","min"],null),Jf=i(["axis","y2","center"],null),Kf=i(["axis","y2","inner"],!1),Lf=i(["axis","y2","tick","format"],null),Mf=i(["axis","y2","padding"],null),Nf=i(["axis","y2","ticks"],10),Of=i(["grid","x","show"],!1),Pf=i(["grid","x","type"],"tick"),Qf=i(["grid","x","lines"],null),Rf=i(["grid","y","show"],!1),Sf=i(["grid","y","lines"],null),Tf=i(["grid","y","ticks"],10),Uf=i(["point","show"],!0),Vf=Uf?i(["point","r"],2.5):0,Wf=i(["point","focus","line","enabled"],!0),Xf=i(["point","focus","expand","enabled"],!0),Yf=i(["point","focus","expand","r"],Xf?4:Vf),Zf=i(["point","focus","select","r"],8),$f=i(["point","onclick"],function(){}),_f=i(["point","onselected"],function(){}),ag=i(["point","onunselected"],function(){}),bg=i(["arc","label","format"],function(a,b){return(100*b).toFixed(1)+"%"}),cg=i(["arc","title"],""),dg=i(["regions"],[]),eg=i(["tooltip","show"],!0),fg=i(["tooltip","format","title"],null),gg=i(["tooltip","format","value"],null),hg=i(["tooltip","contents"],function(a,b,c,d){var e,f,g,h,i,j=fg?fg:b,k=gg?gg:c;for(f=0;f<a.length;f++)a[f]&&(a[f].value||0===a[f].value)&&(e||(g=j?j(a[f].x):a[f].x,e="<table class='-tooltip'><tr><th colspan='2'>"+g+"</th></tr>"),i=a[f].name,h=k(a[f].value),e+="<tr class='-tooltip-name-"+a[f].id+"'><td class='name'><span style='background-color:"+d(a[f].id)+"'></span>"+i+"</td><td class='value'>"+h+"</td></tr>");return e+"</table>"}),ig=i(["tooltip","init","show"],!1),jg=i(["tooltip","init","x"],0),kg=i(["tooltip","init","position"],{top:"0px",left:"50px"}),lg=$d.replace("#","")+"-clip",mg=j(lg),ng="timeseries"===qf,og="categorized"===qf,pg=!ng&&(Te||Ue),qg=null,rg=!1,sg=!1,tg=$c(df,kf),ug=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)}}(),vg=pf?"left":"bottom",wg=pf?Cf?"top":"bottom":Cf?"right":"left",xg=pf?Kf?"bottom":"top":Kf?"left":"right",yg=pf?"left":"bottom",zg={main:function(){return"translate("+je.left+","+je.top+")"},context:function(){return"translate("+ke.left+","+ke.top+")"},legend:function(){return"translate("+le.left+","+le.top+")"},y2:function(){return"translate("+(pf?0:me)+","+(pf?1:0)+")"},x:function(){return"translate(0,"+oe+")"},subx:function(){return"translate(0,"+(pf?0:pe)+")"},arc:function(){return"translate("+me/2+","+oe/2+")"}},Ag="right"===mf,Bg=40,Cg=20;Ae=g.layout.pie().value(function(a){return a.values.reduce(function(a,b){return a+b.value},0)});var Dg,Eg=function(){var a=g.svg.line().x(pf?function(a){return K(a.id)(a.value)}:mc).y(pf?mc:function(a){return K(a.id)(a.value)});return function(b){var c,d,e=ld(b.values);return Qc(b)?(a.interpolate(Rc(b)?"cardinal":"linear"),cf[b.id]?xd(e,Je,K(b.id),cf[b.id]):a(e)):(c=Je(e[0].x),d=K(b.id)(e[0].value),pf?"M "+d+" "+c:"M "+c+" "+d)}}(),Fg=function(){var a;return a=pf?g.svg.area().x0(function(a){return K(a.id)(0)}).x1(function(a){return K(a.id)(a.value)}).y(mc):g.svg.area().x(mc).y0(function(a){return K(a.id)(0)}).y1(function(a){return K(a.id)(a.value)}),function(b){var c,d,e=ld(b.values);return Kc([b],"area")||Kc([b],"area-spline")?(a.interpolate(Rc(b)?"cardinal":"linear"),a(e)):(c=Je(e[0].x),d=K(b.id)(e[0].value),pf?"M "+d+" "+c:"M "+c+" "+d)}}(),Gg=function(){var a=g.svg.line().x(pf?function(a){return L(a.id)(a.value)}:pc).y(pf?pc:function(a){return L(a.id)(a.value)});return function(b){var c=ld(b.values);return Qc(b)?a(c):"M "+Me(c[0].x)+" "+L(b.id)(c[0].value)}}(),Hg=function(){};Dg=g.svg.brush().on("brush",Gd),Dg.update=function(){return Lg&&Lg.select(".x.brush").call(this),this},Dg.scale=function(a){return pf?this.y(a):this.x(a)},de&&(Hg=g.behavior.zoom().on("zoomstart",function(){Hg.altDomain=g.event.sourceEvent.altKey?Je.orgDomain():null}).on("zoom",de?Hd:null),Hg.scale=function(a){return pf?this.y(a):this.x(a)},Hg.orgScaleExtent=function(){var a=ee?ee:[1,10];return[a[0],Math.max(Lb()/a[1],a[1])]},Hg.updateScaleExtent=function(){var a=tb(Je.orgDomain())/tb(Pg),b=this.orgScaleExtent();return this.scaleExtent([b[0]*a,b[1]*a]),this});var Ig,Jg,Kg,Lg,Mg,Ng,Og,Pg,Qg,Rg={};if(Vd.focus=function(a){function b(a){a.transition().duration(100).style("opacity",1)}var c=Ig.selectAll(Rd(a)),d=c.filter(Sd),e=c.filter(Td);Vd.revert(),Vd.defocus(),b(d.classed("focused",!0)),b(e),Pc(Vd.data.targets)&&jb(a,!0),Md(a)},Vd.defocus=function(a){function b(a){a.transition().duration(100).style("opacity",.3)}var c=Ig.selectAll(Rd(a)),d=c.filter(Sd),e=c.filter(Td);Vd.revert(),b(d.classed("focused",!1)),b(e),Pc(Vd.data.targets)&&kb(a),Nd(a)},Vd.revert=function(a){function b(a){a.transition().duration(100).style("opacity",1)}var c=Ig.selectAll(Rd(a)),d=c.filter(Sd),e=c.filter(Td);b(d.classed("focused",!1)),b(e),Pc(Vd.data.targets)&&kb(a),Od()},Vd.show=function(a){Ig.selectAll(Rd(a)).transition().style("opacity",1)},Vd.hide=function(a){Ig.selectAll(Rd(a)).transition().style("opacity",0)},Vd.unzoom=function(){Dg.clear().update(),Fd({withUpdateXDomain:!0})},Vd.load=function(a){if("function"!=typeof a.done&&(a.done=function(){}),a.xs&&Db(a.xs),"categories"in a&&og&&(rf=a.categories,Pe.categories(rf)),"cacheIds"in a&&ub(a.cacheIds))return void Ld(wb(a.cacheIds),a.done);if("data"in a)Ld(Hb(a.data),a.done);else if("url"in a)g.csv(a.url,function(b,c){Ld(Hb(c),a.done)});else if("rows"in a)Ld(Hb(Fb(a.rows)),a.done);else{if(!("columns"in a))throw Error("url or rows or columns is required.");Ld(Hb(Gb(a.columns)),a.done)}},Vd.unload=function(a){Vd.data.targets=Vd.data.targets.filter(function(b){return b.id!==a}),Ig.selectAll(Rd(a)).transition().style("opacity",0).remove(),lf&&(Ig.selectAll(".legend-item"+Qd(a)).remove(),Pd(Vd.data.targets)),Vd.data.targets.length>0&&Fd({withUpdateOrgXDomain:!0,withUpdateXDomain:!0})},Vd.selected=function(a){var b=Qd(a);return g.merge(Kg.selectAll(".-shapes"+b).selectAll(".-shape").filter(function(){return g.select(this).classed(Yd)}).map(function(a){return a.map(function(a){return a.__data__})}))},Vd.select=function(a,b,c){ef&&Kg.selectAll(".-shapes").selectAll(".-shape").each(function(f,h){var i="circle"===this.nodeName?fd:id,j="circle"===this.nodeName?gd:jd;b.indexOf(h)>=0?gf(f)&&(ff||d(a)||a.indexOf(f.id)>=0)&&i(g.select(this).classed(Yd,!0),f,h):e(c)&&c&&j(g.select(this).classed(Yd,!1),f,h)})},Vd.unselect=function(a,b){ef&&Kg.selectAll(".-shapes").selectAll(".-shape").each(function(c,e){var f="circle"===this.nodeName?gd:jd;(d(b)||b.indexOf(e)>=0)&&gf(c)&&(ff||d(a)||a.indexOf(c.id)>=0)&&f(g.select(this).classed(Yd,!1),c,e)})},Vd.toLine=function(a){Jc(a,"line"),Jd({withTransition:!0})},Vd.toSpline=function(a){Jc(a,"spline"),Jd({withTransition:!0})},Vd.toBar=function(a){Jc(a,"bar"),Jd({withTransition:!0})},Vd.toScatter=function(a){Jc(a,"scatter"),Jd({withTransition:!0})},Vd.toArea=function(a){Jc(a,"area"),Jd({withTransition:!0})},Vd.toAreaSpline=function(a){Jc(a,"area-spline"),Jd({withTransition:!0})},Vd.toPie=function(a){Jc(a,"pie"),Jd({withTransition:!0,withTransform:!0})},Vd.toDonut=function(a){Jc(a,"donut"),Jd({withTransition:!0,withTransform:!0})},Vd.groups=function(a){return d(a)?Ye:(Ye=a,Fd(),Ye)},Vd.xgrids=function(a){return a?(Qf=a,Fd(),Qf):Qf},Vd.xgrids.add=function(a){return a?Vd.xgrids(Qf.concat(a)):void 0},Vd.xgrids.remove=function(a){var b=Ud(a);return Vd.xgrids(Qf.filter(b))},Vd.ygrids=function(a){return a?(Sf=a,Fd(),Sf):Sf},Vd.ygrids.add=function(a){return a?Vd.ygrids(Sf.concat(a)):void 0},Vd.ygrids.remove=function(a){var b=Ud(a);return Vd.ygrids(Sf.filter(b))},Vd.regions=function(a){return d(a)?dg:(dg=a,Fd(),dg)},Vd.regions.add=function(a){return d(a)?dg:(dg=dg.concat(a),Fd(),dg)},Vd.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;Ig.selectAll("."+a).transition().duration(d).style("fill-opacity",0).remove(),dg=dg.filter(function(b){return b.classes.indexOf(a)<0})}),dg},Vd.data.get=function(a){var b=Vd.data.getAsTarget(a);return e(b)?b.values.map(function(a){return a.value}):void 0},Vd.data.getAsTarget=function(a){var b=Pb(function(b){return b.id===a});return b.length>0?b[0]:void 0},Vd.resize=function(a){_d=a?a.width:null,ae=a?a.height:null,Jd()},Vd.destroy=function(){Vd.data.targets=void 0,Vd.data.x={},Og.html(""),a.onresize=null},"url"in f.data)g.csv(f.data.url,function(a,b){yd(b)});else if("rows"in f.data)yd(Fb(f.data.rows));else{if(!("columns"in f.data))throw Error("url or rows or columns is required.");yd(Gb(f.data.columns))}return Vd}}(window);