From 7fe77a5cb4478357b8e30c96c4a7e8c0d15b6b58 Mon Sep 17 00:00:00 2001 From: Antonio Grass Date: Tue, 14 Apr 2015 14:59:44 -0300 Subject: [PATCH 01/11] add legend accessor to pie chart --- src/base-mixin.js | 13 +++++++++++++ src/pie-chart.js | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/base-mixin.js b/src/base-mixin.js index e26ce0a77..b0d746d6f 100644 --- a/src/base-mixin.js +++ b/src/base-mixin.js @@ -31,6 +31,7 @@ dc.baseMixin = function (_chart) { var _keyAccessor = dc.pluck('key'); var _valueAccessor = dc.pluck('value'); var _label = dc.pluck('key'); + var _legend_label = dc.pluck('key'); var _ordering = dc.pluck('key'); var _orderSort; @@ -916,6 +917,18 @@ dc.baseMixin = function (_chart) { _renderLabel = true; return _chart; }; + _chart.legendLabelAccessor = function (_) { + if (!arguments.length) { + return _legendLabelAccessor; + } + _legendLabelAccessor = _; + _defaultAccessor = false; + return _chart; + }; + + _chart.getLegendLabel = function (d, i) { + return _colors(_legendLabelAccessor.call(this, d, i)); + }; /** #### .renderLabel(boolean) diff --git a/src/pie-chart.js b/src/pie-chart.js index 8b54278c6..b0c2817ce 100644 --- a/src/pie-chart.js +++ b/src/pie-chart.js @@ -428,7 +428,7 @@ dc.pieChart = function (parent, chartGroup) { _chart.legendables = function () { return _chart.data().map(function (d, i) { - var legendable = {name: d.key, data: d.value, others: d.others, chart:_chart}; + var legendable = {name: _chart.getLegendLabel(d, i), data: d.value, others: d.others, chart:_chart}; legendable.color = _chart.getColor(d, i); return legendable; }); From f3feb99a8cfaacc5cd6157e174496dc1e6e3a16b Mon Sep 17 00:00:00 2001 From: Antonio Grass Date: Tue, 14 Apr 2015 17:21:33 -0300 Subject: [PATCH 02/11] add compressed file --- dc.js | 15 +++++++++++++- dc.min.js | 6 +++--- dc.min.js.map | 2 +- package.json | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 71 insertions(+), 6 deletions(-) diff --git a/dc.js b/dc.js index f82085ec4..77c55c824 100644 --- a/dc.js +++ b/dc.js @@ -681,6 +681,7 @@ dc.baseMixin = function (_chart) { var _keyAccessor = dc.pluck('key'); var _valueAccessor = dc.pluck('value'); var _label = dc.pluck('key'); + var _legend_label = dc.pluck('key'); var _ordering = dc.pluck('key'); var _orderSort; @@ -1566,6 +1567,18 @@ dc.baseMixin = function (_chart) { _renderLabel = true; return _chart; }; + _chart.legendLabelAccessor = function (_) { + if (!arguments.length) { + return _legendLabelAccessor; + } + _legendLabelAccessor = _; + _defaultAccessor = false; + return _chart; + }; + + _chart.getLegendLabel = function (d, i) { + return _colors(_legendLabelAccessor.call(this, d, i)); + }; /** #### .renderLabel(boolean) @@ -4123,7 +4136,7 @@ dc.pieChart = function (parent, chartGroup) { _chart.legendables = function () { return _chart.data().map(function (d, i) { - var legendable = {name: d.key, data: d.value, others: d.others, chart:_chart}; + var legendable = {name: _chart.getLegendLabel(d, i), data: d.value, others: d.others, chart:_chart}; legendable.color = _chart.getColor(d, i); return legendable; }); diff --git a/dc.min.js b/dc.min.js index a45db02f9..c67fbde3b 100644 --- a/dc.min.js +++ b/dc.min.js @@ -1,4 +1,4 @@ -!function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&do?b:o},q=p,r=200,s=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>r?b:r},t=s,u=c.pluck("key"),v=c.pluck("value"),w=c.pluck("key"),x=c.pluck("key"),y=!1,z=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},A=!0,B=750,C=c.printers.filters,D=["dimension","group"],E=c.constants.DEFAULT_CHART_GROUP,F=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),G=[],H=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c=d&&d>=a)return!0}return!1}),b},I=function(a){return a.all()};d.width=function(b){return arguments.length?(q=a.functor(b||p),d):q(k.node())},d.height=function(b){return arguments.length?(t=a.functor(b||s),d):t(k.node())},d.minWidth=function(a){return arguments.length?(o=a,d):o},d.minHeight=function(a){return arguments.length?(r=a,d):r},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(I=a.functor(b),d.expireCache(),d):I.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(x=a,m=b.quicksort.by(x),d.expireCache(),d):x},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(m||(m=b.quicksort.by(x)),m(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root()):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e)),E=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(C=a,d):C},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(C(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(B=a,d):B},d._mandatoryAttributes=function(a){return arguments.length?(D=a,d):D},d.render=function(){F.preRender(d),D&&D.forEach(f);var a=d._doRender();return n&&n.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){F.renderlet(d),a&&F[a](d)}):(F.renderlet(d),a&&F[a](d))},d.redraw=function(){F.preRedraw(d);var a=d._doRedraw();return n&&n.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&F.filtered(d,a)},d._invokeZoomedListener=function(){F.zoomed(d)};var J=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(J=a,d):J},d.hasFilter=function(a){return J(G,a)};var K=function(a,b){for(var c=0;c=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(K=a,d):K};var L=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(L=a,d):L};var M=function(a){return[]};return d.resetFilterHandler=function(a){return arguments.length?(M=a,d):M},d.replaceFilter=function(a){G=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?K(G,a):L(G,a)}):null===a?G=M(G):d.hasFilter(a)?K(G,a):L(G,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):G.length>0?G[0]:null},d.filters=function(){return G},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(H=a,d):H},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(u=a,d):u},d.valueAccessor=function(a){return arguments.length?(v=a,d):v},d.label=function(a){return arguments.length?(w=a,y=!0,d):w},d.renderLabel=function(a){return arguments.length?(y=a,d):y},d.title=function(a){return arguments.length?(z=a,d):z},d.renderTitle=function(a){return arguments.length?(A=a,d):A},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(E=a,d):E},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(n=a,n.parent(d),d):n},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return F.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],ba,b._useOuterPadding()?aa:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,aa=.5,ba=0,ca=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(ca=a,b):ca},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),ca&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=ca?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=ca?b.width()-P:P,d=ca?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(ba=a,b):ba},b._outerRangeBandPadding=function(a){return arguments.length?(aa=a,b):aa},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(d===1/0)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b),isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"}function C(b,c){ -O.selectAll("g.pie-slice").each(function(d){b.name===d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G,H,I=.5,J="pie-slice",K="empty-chart",L="empty",M=0,N=I,O=c.capMixin(c.colorMixin(c.baseMixin({})));return O.colorAccessor(O.cappedKeyAccessor),O.title(function(a){return O.cappedKeyAccessor(a)+": "+O.cappedValueAccessor(a)}),O.slicesCap=O.cap,O.label(O.cappedKeyAccessor),O.renderLabel(!0),O.transitionDuration(350),O._doRender=function(){return O.resetSvg(),E=O.svg().append("g").attr("transform","translate("+O.cx()+","+O.cy()+")"),e(),O},O.innerRadius=function(a){return arguments.length?(M=a,O):M},O.radius=function(a){return arguments.length?(D=a,O):D},O.cx=function(a){return arguments.length?(F=a,O):F||O.width()/2},O.cy=function(a){return arguments.length?(G=a,O):G||O.height()/2},O._doRedraw=function(){return e(),O},O.minAngleForLabel=function(a){return arguments.length?(N=a,O):N},O.emptyTitle=function(a){return 0===arguments.length?L:(L=a,O)},O.externalLabels=function(a){return 0===arguments.length?H:(H=a?a:void 0,O)},O.legendables=function(){return O.data().map(function(a,b){var c={name:a.key,data:a.value,others:a.others,chart:O};return c.color=O.getColor(a,b),c})},O.legendHighlight=function(a){C(a,!0)},O.legendReset=function(a){C(a,!1)},O.legendToggle=function(a){O.onClick({key:a.name,others:a.others})},O.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(l.y()(a.y+a.y0)-l.y()(a.y0)))}function f(a,b,d){var f=a.selectAll("rect.bar").data(d.values,c.pluck("x")),g=f.enter().append("rect").attr("class","bar").attr("fill",c.pluck("data",l.getColor)).attr("y",l.yAxisHeight()).attr("height",0);l.renderTitle()&&g.append("title").text(c.pluck("data",l.title(d.name))),l.isOrdinal()&&f.on("click",l.onClick),c.transition(f,l.transitionDuration()).attr("x",function(a){var b=l.x()(a.x);return n&&(b-=i/2),l.isOrdinal()&&void 0!==m&&(b+=m/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=l.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",i).attr("height",function(a){return e(a)}).attr("fill",c.pluck("data",l.getColor)).select("title").text(c.pluck("data",l.title(d.name))),c.transition(f.exit(),l.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===i){var a=l.xUnitCount();i=Math.floor(l.isOrdinal()&&void 0===m?l.x().rangeBand():m?(l.xAxisLength()-(a-1)*m)/a:l.xAxisLength()/(1+l.barPadding())/a),(i===1/0||isNaN(i)||j>i)&&(i=j)}}function h(b,c){return function(){var d=a.select(this),e=d.attr("fill")===b;return c?!e:e}}var i,j=1,k=2,l=c.stackMixin(c.coordinateGridMixin({})),m=k,n=!1,o=!1;return c.override(l,"rescale",function(){l._rescale(),i=void 0}),c.override(l,"render",function(){l.round()&&n&&!o&&c.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),l._render()}),l.plotData=function(){var b=l.chartBodyG().selectAll("g.stack").data(l.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},l.fadeDeselectedArea=function(){var a=l.chartBodyG().selectAll("rect.bar"),b=l.brush().extent();if(l.isOrdinal())l.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return l.hasFilter(a.x)}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!l.hasFilter(a.x)})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(l.brushIsEmpty(b))a.classed(c.constants.DESELECTED_CLASS,!1);else{var d=b[0],e=b[1];a.classed(c.constants.DESELECTED_CLASS,function(a){return a.x=e})}},l.centerBar=function(a){return arguments.length?(n=a,l):n},c.override(l,"onClick",function(a){l._onClick(a.data)}),l.barPadding=function(a){return arguments.length?(l._rangeBandPadding(a),m=void 0,l):l._rangeBandPadding()},l._useOuterPadding=function(){return void 0===m},l.outerPadding=l._outerRangeBandPadding,l.gap=function(a){return arguments.length?(m=a,l):m},l.extendBrush=function(){var a=l.brush().extent();return!l.round()||n&&!o||(a[0]=a.map(l.round())[0],a[1]=a.map(l.round())[1],l.chartBodyG().select(".brush").call(l.brush().extent(a))),a},l.alwaysUseRounding=function(a){return arguments.length?(o=a,l):o},l.legendHighlight=function(a){l.isLegendableHidden(a)||l.g().selectAll("rect.bar").classed("highlight",h(a.color)).classed("fadeout",h(a.color,!0))},l.legendReset=function(){l.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},c.override(l,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in l.xUnits()){var b=l.xUnits().resolution;a+=b}return a}),l.anchor(b,d)},c.lineChart=function(b,d){function e(a,b){return z.getColor.call(a,a.values,b)}function f(b,d){var f=a.svg.line().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).interpolate(F).tension(G);r&&f.defined(r);var g=b.append("path").attr("class","line").attr("stroke",e);s&&g.attr("stroke-dasharray",s),c.transition(d.select("path.line"),z.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(b,d){if(A){var f=a.svg.area().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).y0(function(a){return z.y()(a.y0)}).interpolate(F).tension(G);r&&f.defined(r),b.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),c.transition(d.select("path.area"),z.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(b,d){if(!z.brushOn()&&z.xyTipsOn()){var e=u+"-list",f=b.select("g."+e);f.empty()&&(f=b.append("g").attr("class",e)),d.each(function(b,d){var e=b.values;r&&(e=e.filter(r));var g=f.select("g."+u+"._"+d);g.empty()&&(g=f.append("g").attr("class",u+" _"+d)),j(g);var h=g.selectAll("circle."+v).data(e,c.pluck("x"));h.enter().append("circle").attr("class",v).attr("r",m()).style("fill-opacity",D).style("stroke-opacity",E).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}),h.attr("cx",function(a){return c.utils.safeNumber(z.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(z.y()(a.y+a.y0))}).attr("fill",z.getColor).call(p,b),h.exit().remove()})}}function j(a){var b=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+x).empty()?a.append("path").attr("class",x):a.select("path."+x);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",B),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=z._yAxisX()-z.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+z.yAxisHeight()+"L"+c+" "+d;b.select("path."+w).style("display","").attr("d",f),b.select("path."+x).style("display","").attr("d",g)}function m(){return C||B}function n(a){a.style("fill-opacity",D).style("stroke-opacity",E).attr("r",m())}function o(a){a.select("path."+w).style("display","none"),a.select("path."+x).style("display","none")}function p(a,b){z.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(c.pluck("data",z.title(b.name))))}function q(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")===b&&e.attr("stroke-dasharray")===(c instanceof Array?c.join(","):null)||e.attr("fill")===b;return d?!f:f}}var r,s,t=5,u="dc-tooltip",v="dot",w="yRef",x="xRef",y=1e-6,z=c.stackMixin(c.coordinateGridMixin({})),A=!1,B=t,C=null,D=y,E=y,F="linear",G=.7,H=!0;return z.transitionDuration(500),z._rangeBandPadding(1),z.plotData=function(){var a=z.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(z.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},z.interpolate=function(a){return arguments.length?(F=a,z):F},z.tension=function(a){return arguments.length?(G=a,z):G},z.defined=function(a){return arguments.length?(r=a,z):r},z.dashStyle=function(a){return arguments.length?(s=a,z):s},z.renderArea=function(a){return arguments.length?(A=a,z):A},z.xyTipsOn=function(a){return arguments.length?(H=a,z):H},z.dotRadius=function(a){return arguments.length?(B=a,z):B},z.renderDataPoints=function(a){return arguments.length?(a?(D=a.fillOpacity||.8,E=a.strokeOpacity||.8,C=a.radius||2):(D=y,E=y,C=null),z):{fillOpacity:D,strokeOpacity:E,radius:C}},z.legendHighlight=function(a){z.isLegendableHidden(a)||z.g().selectAll("path.line, path.area").classed("highlight",q(a.color,a.dashstyle)).classed("fadeout",q(a.color,a.dashstyle,!0))},z.legendReset=function(){z.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},c.override(z,"legendables",function(){var a=z._legendables();return s?a.map(function(a){return a.dashstyle=s,a}):a}),z.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseMixin({}),g={some:"",all:""};return f.html=function(a){return arguments.length?(a.all&&(g.all=a.all),a.some&&(g.some=a.some),f):g},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f._doRender=function(){var a=f.dimension().size(),b=f.group().value(),c=e(a),d=e(b);return a===b&&""!==g.all?f.root().html(g.all.replace("%total-count",c).replace("%filter-count",d)):""!==g.some?f.root().html(g.some.replace("%total-count",c).replace("%filter-count",d)):(f.selectAll(".total-count").text(c),f.selectAll(".filter-count").text(d)),f},f._doRedraw=function(){return f._doRender()},f.anchor(b,d)},c.dataTable=function(b,d){function e(){var a=!0;if(o.forEach(function(b){a&="function"==typeof b}),!a){m.selectAll("th").remove();var b=m.root().selectAll("th").data(o),c=b.enter().append("th");c.attr("class",l).html(function(a){return m._doColumnHeaderFormat(a)})}var d=m.root().selectAll("tbody").data(f(),function(a){return m.keyAccessor()(a)}),e=d.enter().append("tbody");return e.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",o.length).html(function(a){return m.keyAccessor()(a)}),d.exit().remove(),e}function f(){var b;return b=q===a.ascending?m.dimension().bottom(n):m.dimension().top(n),a.nest().key(m.group()).sortKeys(q).entries(b.sort(function(a,b){return q(p(a),p(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return o.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(function(b){return m._doColumnValueFormat(a,b)})}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l="dc-table-head",m=c.baseMixin({}),n=25,o=[],p=function(a){return a},q=a.ascending;return m._doRender=function(){return m.selectAll("tbody").remove(),g(e()),m},m._doColumnValueFormat=function(a,b){return"function"==typeof a?a(b):"string"==typeof a?b[a]:a.format(b)},m._doColumnHeaderFormat=function(a){return"function"==typeof a?m._doColumnHeaderFnToString(a):"string"==typeof a?m._doColumnHeaderCapitalize(a):String(a.label)},m._doColumnHeaderCapitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},m._doColumnHeaderFnToString=function(a){var b=String(a),c=b.indexOf("return ");if(c>=0){var d=b.lastIndexOf(";");if(d>=0){b=b.substring(c+7,d);var e=b.indexOf("numberFormat");e>=0&&(b=b.replace("numberFormat",""))}}return b},m._doRedraw=function(){return m._doRender()},m.size=function(a){return arguments.length?(n=a,m):n},m.columns=function(a){return arguments.length?(o=a,m):o},m.sortBy=function(a){return arguments.length?(p=a,m):p},m.order=function(a){return arguments.length?(q=a,m):q},m.anchor(b,d)},c.dataGrid=function(b,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=c.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

"+l.keyAccessor()(a)+"

"};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,d)},c.bubbleChart=function(a,b){function d(a){var b=a.enter().append("g");b.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),c.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(b),i._doRenderTitles(b)}function e(a){c.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=c.bubbleMixin(c.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,b)},c.compositeChart=function(b,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return c.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return c.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=c.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),c.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),t=a.scale.linear().domain(b).range([0,G.effectiveWidth()])}H.scale(t)}function f(){var a=s.select("g.axis");e(),a.empty()&&(a=s.append("g").attr("class","axis").attr("transform","translate(0, "+G.effectiveHeight()+")")),c.transition(a,G.transitionDuration()).call(H)}function g(){s.selectAll("g.tick").select("line.grid-line").remove(),s.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-G.effectiveHeight()})}function h(){v=G.data(),f(),g();var a=s.selectAll("g."+D).data(v);i(a),j(a),l(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return D+" _"+b});b.append("rect").attr("width",0),n(b),o(a)}function j(a){a.exit().remove()}function k(){var a=t(0);return a===-(1/0)||a!==a?t(1):a}function l(a){var b,d=v.length;b=C?C:(G.effectiveHeight()-(d+1)*B)/d,y||(x=b/2);var e=a.attr("transform",function(a,c){return"translate(0,"+((c+1)*B+c*b)+")"}).select("rect").attr("height",b).attr("fill",G.getColor).on("click",p).classed("deselected",function(a){return G.hasFilter()?!r(a):!1}).classed("selected",function(a){return G.hasFilter()?r(a):!1});c.transition(e,G.transitionDuration()).attr("width",function(a){return Math.abs(k()-t(G.valueAccessor()(a)))}).attr("transform",q),m(a),o(a)}function m(a){G.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(G.title()))}function n(a){G.renderLabel()&&a.append("text").on("click",p),G.renderTitleLabel()&&a.append("text").attr("class",E).on("click",p)}function o(a){if(G.renderLabel()){var b=a.select("text").attr("x",w).attr("y",x).attr("dy",z).on("click",p).attr("class",function(a,b){return D+" _"+b}).text(function(a){return G.label()(a)});c.transition(b,G.transitionDuration()).attr("transform",q)}if(G.renderTitleLabel()){var d=a.select("."+E).attr("x",G.effectiveWidth()-A).attr("y",x).attr("text-anchor","end").on("click",p).attr("class",function(a,b){return E+" _"+b}).text(function(a){return G.title()(a)});c.transition(d,G.transitionDuration()).attr("transform",q)}}function p(a){G.onClick(a)}function q(a){var b=t(G.cappedValueAccessor(a)),c=k(),d=b>c?c:b;return"translate("+d+",0)"}function r(a){return G.hasFilter(G.cappedKeyAccessor(a))}var s,t,u,v,w=10,x=15,y=!1,z="0.35em",A=2,B=5,C=!1,D="row",E="titlerow",F=!1,G=c.capMixin(c.marginMixin(c.colorMixin(c.baseMixin({})))),H=a.svg.axis().orient("bottom");return G.rowsCap=G.cap,G._doRender=function(){return G.resetSvg(),s=G.svg().append("g").attr("transform","translate("+G.margins().left+","+G.margins().top+")"),h(),G},G.title(function(a){return G.cappedKeyAccessor(a)+": "+G.cappedValueAccessor(a)}),G.label(G.cappedKeyAccessor),G.x=function(a){return arguments.length?(t=a,G):t},G.renderTitleLabel=function(a){return arguments.length?(F=a,G):F},G._doRedraw=function(){return h(),G},G.xAxis=function(){return H},G.fixedBarHeight=function(a){return arguments.length?(C=a,G):C},G.gap=function(a){return arguments.length?(B=a,G):B},G.elasticX=function(a){return arguments.length?(u=a,G):u},G.labelOffsetX=function(a){return arguments.length?(w=a,G):w},G.labelOffsetY=function(a){return arguments.length?(x=a,y=!0,G):x},G.titleLabelOffsetX=function(a){return arguments.length?(A=a,G):A},G.anchor(b,d)},c.legend=function(){function a(){return j+i}var b,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70,n=!1;return f.parent=function(a){return arguments.length?(b=a,f):b},f.render=function(){b.svg().select("g.dc-legend").remove(),d=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=b.legendables(),o=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)}).on("click",function(a){a.chart.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(c.pluck("dashstyle"))?o.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",c.pluck("dashstyle")).attr("stroke",c.pluck("color")):o.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),o.append("text").text(c.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var p=0,q=0;o.attr("transform",function(b,c){if(k){var d="translate("+p+","+q*a()+")",e=n===!0?this.getBBox().width+j:m;return p+e>=l?(++q,p=0):p+=e,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f.autoItemWidth=function(a){return arguments.length?(n=a,f):n},f},c.scatterPlot=function(b,d){function e(b,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return b(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),c.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var b=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});c.transition(b,g.transitionDuration()).attr("d",h)}var g=c.coordinateGridMixin({}),h=a.svg.symbol(),i=function(a){return a.value},j=g.keyAccessor();g.keyAccessor(function(a){return j(a)[0]}),g.valueAccessor(function(a){return j(a)[1]}),g.colorAccessor(function(){return g._groupName});var k=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},l=3,m=5,n=0;return h.size(function(a){return i(a)?this.filtered?Math.pow(m,2):Math.pow(l,2):n}),c.override(g,"_filter",function(a){return arguments.length?g.__filter(c.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",k),c.transition(a,g.transitionDuration()).attr("opacity",function(a){return i(a)?1:0}).attr("fill",g.getColor).attr("transform",k).attr("d",h),c.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.existenceAccessor=function(a){return arguments.length?(i=a,this):i},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(l=a,g):l},g.highlightedSize=function(a){return arguments.length?(m=a,g):m},g.hiddenSize=function(a){return arguments.length?(n=a,g):n},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")===b.color},m),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")===b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))c.events.trigger(function(){g.filter(null),g.redrawGroup()}),f(!1);else{var b=c.filters.RangedTwoDimensionalFilter(a);c.events.trigger(function(){g.filter(null),g.filter(b),g.redrawGroup()},c.constants.EVENT_DELAY),f(b)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(b,d)},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseMixin({}),h={one:"",some:"",none:""};return g._mandatoryAttributes(["group"]),g.html=function(a){return arguments.length?(a.none?h.none=a.none:a.one?h.none=a.one:a.some&&(h.none=a.some),a.one?h.one=a.one:a.some&&(h.one=a.some),a.some?h.some=a.some:a.one&&(h.some=a.one),g):h},g.value=function(){return g.data()},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250),g._doRender=function(){ -var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);return this.lastValue=b,function(a){var d=null,e=g.formatNumber()(c(a));0===b&&""!==h.none?d=h.none:1===b&&""!==h.one?d=h.one:""!==h.some&&(d=h.some),this.innerHTML=d?d.replace("%number",e):e}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},c.heatMap=function(b,d){function e(a,b){var d=p.selectAll(".box-group").filter(function(c){return c.key[a]===b}),e=d.filter(function(a){return!p.hasFilter(a.key)});c.events.trigger(function(){e.empty()?d.each(function(a){p.filter(a.key)}):e.each(function(a){p.filter(a.key)}),p.redrawGroup()})}var f,g,h,i=6.75,j=a.ascending,k=a.ascending,l=a.scale.ordinal(),m=a.scale.ordinal(),n=i,o=i,p=c.colorMixin(c.marginMixin(c.baseMixin({})));p._mandatoryAttributes(["group"]),p.title(p.colorAccessor());var q=function(a){return a},r=function(a){return a};p.colsLabel=function(a){return arguments.length?(q=a,p):q},p.rowsLabel=function(a){return arguments.length?(r=a,p):r};var s=function(a){e(0,a)},t=function(a){e(1,a)},u=function(a){var b=a.key;c.events.trigger(function(){p.filter(b),p.redrawGroup()})};return c.override(p,"filter",function(a){return arguments.length?p._filter(c.filters.TwoDimensionalFilter(a)):p._filter()}),p.rows=function(a){return arguments.length?(h=a,p):h},p.rowOrdering=function(a){return arguments.length?(k=a,p):k},p.cols=function(a){return arguments.length?(g=a,p):g},p.colOrdering=function(a){return arguments.length?(j=a,p):j},p._doRender=function(){return p.resetSvg(),f=p.svg().append("g").attr("class","heatmap").attr("transform","translate("+p.margins().left+","+p.margins().top+")"),p._doRedraw()},p._doRedraw=function(){var a=p.data(),b=p.rows()||a.map(p.valueAccessor()),d=p.cols()||a.map(p.keyAccessor());k&&(b=b.sort(k)),j&&(d=d.sort(j)),b=m.domain(b),d=l.domain(d);var e=b.domain().length,g=d.domain().length,h=Math.floor(p.effectiveWidth()/g),i=Math.floor(p.effectiveHeight()/e);d.rangeRoundBands([0,p.effectiveWidth()]),b.rangeRoundBands([p.effectiveHeight(),0]);var q=f.selectAll("g.box-group").data(p.data(),function(a,b){return p.keyAccessor()(a,b)+"\x00"+p.valueAccessor()(a,b)}),r=q.enter().append("g").attr("class","box-group");r.append("rect").attr("class","heat-box").attr("fill","white").on("click",p.boxOnClick()),p.renderTitle()&&(r.append("title"),q.selectAll("title").text(p.title())),c.transition(q.selectAll("rect"),p.transitionDuration()).attr("x",function(a,b){return d(p.keyAccessor()(a,b))}).attr("y",function(a,c){return b(p.valueAccessor()(a,c))}).attr("rx",n).attr("ry",o).attr("fill",p.getColor).attr("width",h).attr("height",i),q.exit().remove();var s=f.selectAll("g.cols");s.empty()&&(s=f.append("g").attr("class","cols axis"));var t=s.selectAll("text").data(d.domain());t.enter().append("text").attr("x",function(a){return d(a)+h/2}).style("text-anchor","middle").attr("y",p.effectiveHeight()).attr("dy",12).on("click",p.xAxisOnClick()).text(p.colsLabel()),c.transition(t,p.transitionDuration()).text(p.colsLabel()).attr("x",function(a){return d(a)+h/2}),t.exit().remove();var u=f.selectAll("g.rows");u.empty()&&(u=f.append("g").attr("class","rows axis"));var v=u.selectAll("text").data(b.domain());return v.enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",p.yAxisOnClick()).text(p.rowsLabel()),c.transition(v,p.transitionDuration()).text(p.rowsLabel()).attr("y",function(a){return b(a)+i/2}),v.exit().remove(),p.selectAll("g.box-group").each(p.hasFilter()?function(a){p.isSelectedNode(a)?p.highlightSelected(this):p.fadeDeselected(this)}:function(){p.resetHighlight(this)}),p},p.boxOnClick=function(a){return arguments.length?(u=a,p):u},p.xAxisOnClick=function(a){return arguments.length?(s=a,p):s},p.yAxisOnClick=function(a){return arguments.length?(t=a,p):t},p.xBorderRadius=function(a){return arguments.length?(n=a,p):n},p.yBorderRadius=function(a){return arguments.length?(o=a,p):o},p.isSelectedNode=function(a){return p.hasFilter(a.key)},p.anchor(b,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null===b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),c.boxPlot=function(b,d){function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}function f(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function g(b){c.transition(b,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function h(a){a.exit().remove().call(m)}var i=c.coordinateGridMixin({}),j=1.5,k=e,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(c.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+", 0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});f(b),g(b),h(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var b=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return c.utils.subtract(b,i.yAxisPadding())},i.yAxisMax=function(){var b=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return c.utils.add(b,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(b,d)},c.abstractBubbleChart=c.bubbleMixin,c.baseChart=c.baseMixin,c.capped=c.capMixin,c.colorChart=c.colorMixin,c.coordinateGridChart=c.coordinateGridMixin,c.marginable=c.marginMixin,c.stackableChart=c.stackMixin,c.d3=a,c.crossfilter=b,c}if("function"==typeof define&&define.amd)define(["d3","crossfilter"],a);else if("object"==typeof module&&module.exports){var b=require("d3"),c=require("crossfilter");"function"!=typeof c&&(c=c.crossfilter),module.exports=a(b,c)}else this.dc=a(d3,crossfilter)}(); +!function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&do?b:o},q=p,r=200,s=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>r?b:r},t=s,u=c.pluck("key"),v=c.pluck("value"),w=c.pluck("key"),x=(c.pluck("key"),c.pluck("key")),y=!1,z=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},A=!0,B=750,C=c.printers.filters,D=["dimension","group"],E=c.constants.DEFAULT_CHART_GROUP,F=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),G=[],H=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c=d&&d>=a)return!0}return!1}),b},I=function(a){return a.all()};d.width=function(b){return arguments.length?(q=a.functor(b||p),d):q(k.node())},d.height=function(b){return arguments.length?(t=a.functor(b||s),d):t(k.node())},d.minWidth=function(a){return arguments.length?(o=a,d):o},d.minHeight=function(a){return arguments.length?(r=a,d):r},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(I=a.functor(b),d.expireCache(),d):I.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(x=a,m=b.quicksort.by(x),d.expireCache(),d):x},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(m||(m=b.quicksort.by(x)),m(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root()):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e)),E=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(C=a,d):C},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(C(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(B=a,d):B},d._mandatoryAttributes=function(a){return arguments.length?(D=a,d):D},d.render=function(){F.preRender(d),D&&D.forEach(f);var a=d._doRender();return n&&n.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){F.renderlet(d),a&&F[a](d)}):(F.renderlet(d),a&&F[a](d))},d.redraw=function(){F.preRedraw(d);var a=d._doRedraw();return n&&n.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&F.filtered(d,a)},d._invokeZoomedListener=function(){F.zoomed(d)};var J=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(J=a,d):J},d.hasFilter=function(a){return J(G,a)};var K=function(a,b){for(var c=0;c=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(K=a,d):K};var L=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(L=a,d):L};var M=function(a){return[]};return d.resetFilterHandler=function(a){return arguments.length?(M=a,d):M},d.replaceFilter=function(a){G=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?K(G,a):L(G,a)}):null===a?G=M(G):d.hasFilter(a)?K(G,a):L(G,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):G.length>0?G[0]:null},d.filters=function(){return G},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(H=a,d):H},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(u=a,d):u},d.valueAccessor=function(a){return arguments.length?(v=a,d):v},d.label=function(a){return arguments.length?(w=a,y=!0,d):w},d.legendLabelAccessor=function(a){return arguments.length?(_legendLabelAccessor=a,_defaultAccessor=!1,d):_legendLabelAccessor},d.getLegendLabel=function(a,b){return _colors(_legendLabelAccessor.call(this,a,b))},d.renderLabel=function(a){return arguments.length?(y=a,d):y},d.title=function(a){return arguments.length?(z=a,d):z},d.renderTitle=function(a){return arguments.length?(A=a,d):A},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(E=a,d):E},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(n=a,n.parent(d),d):n},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return F.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],ba,b._useOuterPadding()?aa:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,aa=.5,ba=0,ca=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(ca=a,b):ca},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),ca&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=ca?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=ca?b.width()-P:P,d=ca?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(ba=a,b):ba},b._outerRangeBandPadding=function(a){return arguments.length?(aa=a,b):aa},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(d===1/0)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){ +var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b),isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"}function C(b,c){O.selectAll("g.pie-slice").each(function(d){b.name===d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G,H,I=.5,J="pie-slice",K="empty-chart",L="empty",M=0,N=I,O=c.capMixin(c.colorMixin(c.baseMixin({})));return O.colorAccessor(O.cappedKeyAccessor),O.title(function(a){return O.cappedKeyAccessor(a)+": "+O.cappedValueAccessor(a)}),O.slicesCap=O.cap,O.label(O.cappedKeyAccessor),O.renderLabel(!0),O.transitionDuration(350),O._doRender=function(){return O.resetSvg(),E=O.svg().append("g").attr("transform","translate("+O.cx()+","+O.cy()+")"),e(),O},O.innerRadius=function(a){return arguments.length?(M=a,O):M},O.radius=function(a){return arguments.length?(D=a,O):D},O.cx=function(a){return arguments.length?(F=a,O):F||O.width()/2},O.cy=function(a){return arguments.length?(G=a,O):G||O.height()/2},O._doRedraw=function(){return e(),O},O.minAngleForLabel=function(a){return arguments.length?(N=a,O):N},O.emptyTitle=function(a){return 0===arguments.length?L:(L=a,O)},O.externalLabels=function(a){return 0===arguments.length?H:(H=a?a:void 0,O)},O.legendables=function(){return O.data().map(function(a,b){var c={name:O.getLegendLabel(a,b),data:a.value,others:a.others,chart:O};return c.color=O.getColor(a,b),c})},O.legendHighlight=function(a){C(a,!0)},O.legendReset=function(a){C(a,!1)},O.legendToggle=function(a){O.onClick({key:a.name,others:a.others})},O.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(l.y()(a.y+a.y0)-l.y()(a.y0)))}function f(a,b,d){var f=a.selectAll("rect.bar").data(d.values,c.pluck("x")),g=f.enter().append("rect").attr("class","bar").attr("fill",c.pluck("data",l.getColor)).attr("y",l.yAxisHeight()).attr("height",0);l.renderTitle()&&g.append("title").text(c.pluck("data",l.title(d.name))),l.isOrdinal()&&f.on("click",l.onClick),c.transition(f,l.transitionDuration()).attr("x",function(a){var b=l.x()(a.x);return n&&(b-=i/2),l.isOrdinal()&&void 0!==m&&(b+=m/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=l.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",i).attr("height",function(a){return e(a)}).attr("fill",c.pluck("data",l.getColor)).select("title").text(c.pluck("data",l.title(d.name))),c.transition(f.exit(),l.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===i){var a=l.xUnitCount();i=Math.floor(l.isOrdinal()&&void 0===m?l.x().rangeBand():m?(l.xAxisLength()-(a-1)*m)/a:l.xAxisLength()/(1+l.barPadding())/a),(i===1/0||isNaN(i)||j>i)&&(i=j)}}function h(b,c){return function(){var d=a.select(this),e=d.attr("fill")===b;return c?!e:e}}var i,j=1,k=2,l=c.stackMixin(c.coordinateGridMixin({})),m=k,n=!1,o=!1;return c.override(l,"rescale",function(){l._rescale(),i=void 0}),c.override(l,"render",function(){l.round()&&n&&!o&&c.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),l._render()}),l.plotData=function(){var b=l.chartBodyG().selectAll("g.stack").data(l.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},l.fadeDeselectedArea=function(){var a=l.chartBodyG().selectAll("rect.bar"),b=l.brush().extent();if(l.isOrdinal())l.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return l.hasFilter(a.x)}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!l.hasFilter(a.x)})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(l.brushIsEmpty(b))a.classed(c.constants.DESELECTED_CLASS,!1);else{var d=b[0],e=b[1];a.classed(c.constants.DESELECTED_CLASS,function(a){return a.x=e})}},l.centerBar=function(a){return arguments.length?(n=a,l):n},c.override(l,"onClick",function(a){l._onClick(a.data)}),l.barPadding=function(a){return arguments.length?(l._rangeBandPadding(a),m=void 0,l):l._rangeBandPadding()},l._useOuterPadding=function(){return void 0===m},l.outerPadding=l._outerRangeBandPadding,l.gap=function(a){return arguments.length?(m=a,l):m},l.extendBrush=function(){var a=l.brush().extent();return!l.round()||n&&!o||(a[0]=a.map(l.round())[0],a[1]=a.map(l.round())[1],l.chartBodyG().select(".brush").call(l.brush().extent(a))),a},l.alwaysUseRounding=function(a){return arguments.length?(o=a,l):o},l.legendHighlight=function(a){l.isLegendableHidden(a)||l.g().selectAll("rect.bar").classed("highlight",h(a.color)).classed("fadeout",h(a.color,!0))},l.legendReset=function(){l.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},c.override(l,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in l.xUnits()){var b=l.xUnits().resolution;a+=b}return a}),l.anchor(b,d)},c.lineChart=function(b,d){function e(a,b){return z.getColor.call(a,a.values,b)}function f(b,d){var f=a.svg.line().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).interpolate(F).tension(G);r&&f.defined(r);var g=b.append("path").attr("class","line").attr("stroke",e);s&&g.attr("stroke-dasharray",s),c.transition(d.select("path.line"),z.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(b,d){if(A){var f=a.svg.area().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).y0(function(a){return z.y()(a.y0)}).interpolate(F).tension(G);r&&f.defined(r),b.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),c.transition(d.select("path.area"),z.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(b,d){if(!z.brushOn()&&z.xyTipsOn()){var e=u+"-list",f=b.select("g."+e);f.empty()&&(f=b.append("g").attr("class",e)),d.each(function(b,d){var e=b.values;r&&(e=e.filter(r));var g=f.select("g."+u+"._"+d);g.empty()&&(g=f.append("g").attr("class",u+" _"+d)),j(g);var h=g.selectAll("circle."+v).data(e,c.pluck("x"));h.enter().append("circle").attr("class",v).attr("r",m()).style("fill-opacity",D).style("stroke-opacity",E).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}),h.attr("cx",function(a){return c.utils.safeNumber(z.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(z.y()(a.y+a.y0))}).attr("fill",z.getColor).call(p,b),h.exit().remove()})}}function j(a){var b=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+x).empty()?a.append("path").attr("class",x):a.select("path."+x);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",B),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=z._yAxisX()-z.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+z.yAxisHeight()+"L"+c+" "+d;b.select("path."+w).style("display","").attr("d",f),b.select("path."+x).style("display","").attr("d",g)}function m(){return C||B}function n(a){a.style("fill-opacity",D).style("stroke-opacity",E).attr("r",m())}function o(a){a.select("path."+w).style("display","none"),a.select("path."+x).style("display","none")}function p(a,b){z.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(c.pluck("data",z.title(b.name))))}function q(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")===b&&e.attr("stroke-dasharray")===(c instanceof Array?c.join(","):null)||e.attr("fill")===b;return d?!f:f}}var r,s,t=5,u="dc-tooltip",v="dot",w="yRef",x="xRef",y=1e-6,z=c.stackMixin(c.coordinateGridMixin({})),A=!1,B=t,C=null,D=y,E=y,F="linear",G=.7,H=!0;return z.transitionDuration(500),z._rangeBandPadding(1),z.plotData=function(){var a=z.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(z.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},z.interpolate=function(a){return arguments.length?(F=a,z):F},z.tension=function(a){return arguments.length?(G=a,z):G},z.defined=function(a){return arguments.length?(r=a,z):r},z.dashStyle=function(a){return arguments.length?(s=a,z):s},z.renderArea=function(a){return arguments.length?(A=a,z):A},z.xyTipsOn=function(a){return arguments.length?(H=a,z):H},z.dotRadius=function(a){return arguments.length?(B=a,z):B},z.renderDataPoints=function(a){return arguments.length?(a?(D=a.fillOpacity||.8,E=a.strokeOpacity||.8,C=a.radius||2):(D=y,E=y,C=null),z):{fillOpacity:D,strokeOpacity:E,radius:C}},z.legendHighlight=function(a){z.isLegendableHidden(a)||z.g().selectAll("path.line, path.area").classed("highlight",q(a.color,a.dashstyle)).classed("fadeout",q(a.color,a.dashstyle,!0))},z.legendReset=function(){z.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},c.override(z,"legendables",function(){var a=z._legendables();return s?a.map(function(a){return a.dashstyle=s,a}):a}),z.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseMixin({}),g={some:"",all:""};return f.html=function(a){return arguments.length?(a.all&&(g.all=a.all),a.some&&(g.some=a.some),f):g},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f._doRender=function(){var a=f.dimension().size(),b=f.group().value(),c=e(a),d=e(b);return a===b&&""!==g.all?f.root().html(g.all.replace("%total-count",c).replace("%filter-count",d)):""!==g.some?f.root().html(g.some.replace("%total-count",c).replace("%filter-count",d)):(f.selectAll(".total-count").text(c),f.selectAll(".filter-count").text(d)),f},f._doRedraw=function(){return f._doRender()},f.anchor(b,d)},c.dataTable=function(b,d){function e(){var a=!0;if(o.forEach(function(b){a&="function"==typeof b}),!a){m.selectAll("th").remove();var b=m.root().selectAll("th").data(o),c=b.enter().append("th");c.attr("class",l).html(function(a){return m._doColumnHeaderFormat(a)})}var d=m.root().selectAll("tbody").data(f(),function(a){return m.keyAccessor()(a)}),e=d.enter().append("tbody");return e.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",o.length).html(function(a){return m.keyAccessor()(a)}),d.exit().remove(),e}function f(){var b;return b=q===a.ascending?m.dimension().bottom(n):m.dimension().top(n),a.nest().key(m.group()).sortKeys(q).entries(b.sort(function(a,b){return q(p(a),p(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return o.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(function(b){return m._doColumnValueFormat(a,b)})}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l="dc-table-head",m=c.baseMixin({}),n=25,o=[],p=function(a){return a},q=a.ascending;return m._doRender=function(){return m.selectAll("tbody").remove(),g(e()),m},m._doColumnValueFormat=function(a,b){return"function"==typeof a?a(b):"string"==typeof a?b[a]:a.format(b)},m._doColumnHeaderFormat=function(a){return"function"==typeof a?m._doColumnHeaderFnToString(a):"string"==typeof a?m._doColumnHeaderCapitalize(a):String(a.label)},m._doColumnHeaderCapitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},m._doColumnHeaderFnToString=function(a){var b=String(a),c=b.indexOf("return ");if(c>=0){var d=b.lastIndexOf(";");if(d>=0){b=b.substring(c+7,d);var e=b.indexOf("numberFormat");e>=0&&(b=b.replace("numberFormat",""))}}return b},m._doRedraw=function(){return m._doRender()},m.size=function(a){return arguments.length?(n=a,m):n},m.columns=function(a){return arguments.length?(o=a,m):o},m.sortBy=function(a){return arguments.length?(p=a,m):p},m.order=function(a){return arguments.length?(q=a,m):q},m.anchor(b,d)},c.dataGrid=function(b,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=c.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

"+l.keyAccessor()(a)+"

"};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,d)},c.bubbleChart=function(a,b){function d(a){var b=a.enter().append("g");b.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),c.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(b),i._doRenderTitles(b)}function e(a){c.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=c.bubbleMixin(c.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,b)},c.compositeChart=function(b,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return c.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return c.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=c.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),c.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),t=a.scale.linear().domain(b).range([0,G.effectiveWidth()])}H.scale(t)}function f(){var a=s.select("g.axis");e(),a.empty()&&(a=s.append("g").attr("class","axis").attr("transform","translate(0, "+G.effectiveHeight()+")")),c.transition(a,G.transitionDuration()).call(H)}function g(){s.selectAll("g.tick").select("line.grid-line").remove(),s.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-G.effectiveHeight()})}function h(){v=G.data(),f(),g();var a=s.selectAll("g."+D).data(v);i(a),j(a),l(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return D+" _"+b});b.append("rect").attr("width",0),n(b),o(a)}function j(a){a.exit().remove()}function k(){var a=t(0);return a===-(1/0)||a!==a?t(1):a}function l(a){var b,d=v.length;b=C?C:(G.effectiveHeight()-(d+1)*B)/d,y||(x=b/2);var e=a.attr("transform",function(a,c){return"translate(0,"+((c+1)*B+c*b)+")"}).select("rect").attr("height",b).attr("fill",G.getColor).on("click",p).classed("deselected",function(a){return G.hasFilter()?!r(a):!1}).classed("selected",function(a){return G.hasFilter()?r(a):!1});c.transition(e,G.transitionDuration()).attr("width",function(a){return Math.abs(k()-t(G.valueAccessor()(a)))}).attr("transform",q),m(a),o(a)}function m(a){G.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(G.title()))}function n(a){G.renderLabel()&&a.append("text").on("click",p),G.renderTitleLabel()&&a.append("text").attr("class",E).on("click",p)}function o(a){if(G.renderLabel()){var b=a.select("text").attr("x",w).attr("y",x).attr("dy",z).on("click",p).attr("class",function(a,b){return D+" _"+b}).text(function(a){return G.label()(a)});c.transition(b,G.transitionDuration()).attr("transform",q)}if(G.renderTitleLabel()){var d=a.select("."+E).attr("x",G.effectiveWidth()-A).attr("y",x).attr("text-anchor","end").on("click",p).attr("class",function(a,b){return E+" _"+b}).text(function(a){return G.title()(a)});c.transition(d,G.transitionDuration()).attr("transform",q)}}function p(a){G.onClick(a)}function q(a){var b=t(G.cappedValueAccessor(a)),c=k(),d=b>c?c:b;return"translate("+d+",0)"}function r(a){return G.hasFilter(G.cappedKeyAccessor(a))}var s,t,u,v,w=10,x=15,y=!1,z="0.35em",A=2,B=5,C=!1,D="row",E="titlerow",F=!1,G=c.capMixin(c.marginMixin(c.colorMixin(c.baseMixin({})))),H=a.svg.axis().orient("bottom");return G.rowsCap=G.cap,G._doRender=function(){return G.resetSvg(),s=G.svg().append("g").attr("transform","translate("+G.margins().left+","+G.margins().top+")"),h(),G},G.title(function(a){return G.cappedKeyAccessor(a)+": "+G.cappedValueAccessor(a)}),G.label(G.cappedKeyAccessor),G.x=function(a){return arguments.length?(t=a,G):t},G.renderTitleLabel=function(a){return arguments.length?(F=a,G):F},G._doRedraw=function(){return h(),G},G.xAxis=function(){return H},G.fixedBarHeight=function(a){return arguments.length?(C=a,G):C},G.gap=function(a){return arguments.length?(B=a,G):B},G.elasticX=function(a){return arguments.length?(u=a,G):u},G.labelOffsetX=function(a){return arguments.length?(w=a,G):w},G.labelOffsetY=function(a){return arguments.length?(x=a,y=!0,G):x},G.titleLabelOffsetX=function(a){return arguments.length?(A=a,G):A},G.anchor(b,d)},c.legend=function(){function a(){return j+i}var b,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70,n=!1;return f.parent=function(a){return arguments.length?(b=a,f):b},f.render=function(){b.svg().select("g.dc-legend").remove(),d=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=b.legendables(),o=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)}).on("click",function(a){a.chart.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(c.pluck("dashstyle"))?o.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",c.pluck("dashstyle")).attr("stroke",c.pluck("color")):o.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),o.append("text").text(c.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var p=0,q=0;o.attr("transform",function(b,c){if(k){var d="translate("+p+","+q*a()+")",e=n===!0?this.getBBox().width+j:m;return p+e>=l?(++q,p=0):p+=e,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f.autoItemWidth=function(a){return arguments.length?(n=a,f):n},f},c.scatterPlot=function(b,d){function e(b,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return b(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),c.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var b=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});c.transition(b,g.transitionDuration()).attr("d",h)}var g=c.coordinateGridMixin({}),h=a.svg.symbol(),i=function(a){return a.value},j=g.keyAccessor();g.keyAccessor(function(a){return j(a)[0]}),g.valueAccessor(function(a){return j(a)[1]}),g.colorAccessor(function(){return g._groupName});var k=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},l=3,m=5,n=0;return h.size(function(a){return i(a)?this.filtered?Math.pow(m,2):Math.pow(l,2):n}),c.override(g,"_filter",function(a){return arguments.length?g.__filter(c.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",k),c.transition(a,g.transitionDuration()).attr("opacity",function(a){return i(a)?1:0}).attr("fill",g.getColor).attr("transform",k).attr("d",h),c.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.existenceAccessor=function(a){return arguments.length?(i=a,this):i},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(l=a,g):l},g.highlightedSize=function(a){return arguments.length?(m=a,g):m},g.hiddenSize=function(a){return arguments.length?(n=a,g):n},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")===b.color},m),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")===b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))c.events.trigger(function(){g.filter(null),g.redrawGroup()}),f(!1);else{var b=c.filters.RangedTwoDimensionalFilter(a);c.events.trigger(function(){g.filter(null),g.filter(b),g.redrawGroup()},c.constants.EVENT_DELAY),f(b)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(b,d)},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseMixin({}),h={one:"",some:"",none:""};return g._mandatoryAttributes(["group"]),g.html=function(a){return arguments.length?(a.none?h.none=a.none:a.one?h.none=a.one:a.some&&(h.none=a.some), +a.one?h.one=a.one:a.some&&(h.one=a.some),a.some?h.some=a.some:a.one&&(h.some=a.one),g):h},g.value=function(){return g.data()},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250),g._doRender=function(){var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);return this.lastValue=b,function(a){var d=null,e=g.formatNumber()(c(a));0===b&&""!==h.none?d=h.none:1===b&&""!==h.one?d=h.one:""!==h.some&&(d=h.some),this.innerHTML=d?d.replace("%number",e):e}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},c.heatMap=function(b,d){function e(a,b){var d=p.selectAll(".box-group").filter(function(c){return c.key[a]===b}),e=d.filter(function(a){return!p.hasFilter(a.key)});c.events.trigger(function(){e.empty()?d.each(function(a){p.filter(a.key)}):e.each(function(a){p.filter(a.key)}),p.redrawGroup()})}var f,g,h,i=6.75,j=a.ascending,k=a.ascending,l=a.scale.ordinal(),m=a.scale.ordinal(),n=i,o=i,p=c.colorMixin(c.marginMixin(c.baseMixin({})));p._mandatoryAttributes(["group"]),p.title(p.colorAccessor());var q=function(a){return a},r=function(a){return a};p.colsLabel=function(a){return arguments.length?(q=a,p):q},p.rowsLabel=function(a){return arguments.length?(r=a,p):r};var s=function(a){e(0,a)},t=function(a){e(1,a)},u=function(a){var b=a.key;c.events.trigger(function(){p.filter(b),p.redrawGroup()})};return c.override(p,"filter",function(a){return arguments.length?p._filter(c.filters.TwoDimensionalFilter(a)):p._filter()}),p.rows=function(a){return arguments.length?(h=a,p):h},p.rowOrdering=function(a){return arguments.length?(k=a,p):k},p.cols=function(a){return arguments.length?(g=a,p):g},p.colOrdering=function(a){return arguments.length?(j=a,p):j},p._doRender=function(){return p.resetSvg(),f=p.svg().append("g").attr("class","heatmap").attr("transform","translate("+p.margins().left+","+p.margins().top+")"),p._doRedraw()},p._doRedraw=function(){var a=p.data(),b=p.rows()||a.map(p.valueAccessor()),d=p.cols()||a.map(p.keyAccessor());k&&(b=b.sort(k)),j&&(d=d.sort(j)),b=m.domain(b),d=l.domain(d);var e=b.domain().length,g=d.domain().length,h=Math.floor(p.effectiveWidth()/g),i=Math.floor(p.effectiveHeight()/e);d.rangeRoundBands([0,p.effectiveWidth()]),b.rangeRoundBands([p.effectiveHeight(),0]);var q=f.selectAll("g.box-group").data(p.data(),function(a,b){return p.keyAccessor()(a,b)+"\x00"+p.valueAccessor()(a,b)}),r=q.enter().append("g").attr("class","box-group");r.append("rect").attr("class","heat-box").attr("fill","white").on("click",p.boxOnClick()),p.renderTitle()&&(r.append("title"),q.selectAll("title").text(p.title())),c.transition(q.selectAll("rect"),p.transitionDuration()).attr("x",function(a,b){return d(p.keyAccessor()(a,b))}).attr("y",function(a,c){return b(p.valueAccessor()(a,c))}).attr("rx",n).attr("ry",o).attr("fill",p.getColor).attr("width",h).attr("height",i),q.exit().remove();var s=f.selectAll("g.cols");s.empty()&&(s=f.append("g").attr("class","cols axis"));var t=s.selectAll("text").data(d.domain());t.enter().append("text").attr("x",function(a){return d(a)+h/2}).style("text-anchor","middle").attr("y",p.effectiveHeight()).attr("dy",12).on("click",p.xAxisOnClick()).text(p.colsLabel()),c.transition(t,p.transitionDuration()).text(p.colsLabel()).attr("x",function(a){return d(a)+h/2}),t.exit().remove();var u=f.selectAll("g.rows");u.empty()&&(u=f.append("g").attr("class","rows axis"));var v=u.selectAll("text").data(b.domain());return v.enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",p.yAxisOnClick()).text(p.rowsLabel()),c.transition(v,p.transitionDuration()).text(p.rowsLabel()).attr("y",function(a){return b(a)+i/2}),v.exit().remove(),p.selectAll("g.box-group").each(p.hasFilter()?function(a){p.isSelectedNode(a)?p.highlightSelected(this):p.fadeDeselected(this)}:function(){p.resetHighlight(this)}),p},p.boxOnClick=function(a){return arguments.length?(u=a,p):u},p.xAxisOnClick=function(a){return arguments.length?(s=a,p):s},p.yAxisOnClick=function(a){return arguments.length?(t=a,p):t},p.xBorderRadius=function(a){return arguments.length?(n=a,p):n},p.yBorderRadius=function(a){return arguments.length?(o=a,p):o},p.isSelectedNode=function(a){return p.hasFilter(a.key)},p.anchor(b,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null===b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),c.boxPlot=function(b,d){function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}function f(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function g(b){c.transition(b,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function h(a){a.exit().remove().call(m)}var i=c.coordinateGridMixin({}),j=1.5,k=e,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(c.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+", 0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});f(b),g(b),h(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var b=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return c.utils.subtract(b,i.yAxisPadding())},i.yAxisMax=function(){var b=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return c.utils.add(b,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(b,d)},c.abstractBubbleChart=c.bubbleMixin,c.baseChart=c.baseMixin,c.capped=c.capMixin,c.colorChart=c.colorMixin,c.coordinateGridChart=c.coordinateGridMixin,c.marginable=c.marginMixin,c.stackableChart=c.stackMixin,c.d3=a,c.crossfilter=b,c}if("function"==typeof define&&define.amd)define(["d3","crossfilter"],a);else if("object"==typeof module&&module.exports){var b=require("d3"),c=require("crossfilter");"function"!=typeof c&&(c=c.crossfilter),module.exports=a(b,c)}else this.dc=a(d3,crossfilter)}(); //# sourceMappingURL=dc.min.js.map \ No newline at end of file diff --git a/dc.min.js.map b/dc.min.js.map index aa1ac28f4..9d21494fc 100644 --- a/dc.min.js.map +++ b/dc.min.js.map @@ -1 +1 @@ -{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","label","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","label","legendLabelAccessor","_legendLabelAccessor","_defaultAccessor","getLegendLabel","_colors","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","scale","category20c","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 10ea7f340..8a4e850b4 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,59 @@ }, "dependencies": { "crossfilter": "1.x", - "d3": "3.x" + "d3": "3.x", + "handlebars": "~3.0.1", + "supports-color": "~1.3.1", + "wordwrap": "0.0.2", + "fileset": "~0.1.5", + "js-yaml": "~3.2.7", + "esprima": "~2.1.0", + "escodegen": "~1.6.1", + "resolve": "~1.1.6", + "lodash": "~3.6.0", + "brace-expansion": "~1.1.0", + "open": "0.0.5", + "wrappy": "~1.0.1", + "module-deps": "~3.7.6", + "deps-sort": "~1.3.5", + "browser-pack": "~4.0.1", + "insert-module-globals": "~6.2.1", + "syntax-error": "~1.1.2", + "assert": "~1.3.0", + "buffer": "~3.1.2", + "console-browserify": "~1.1.0", + "depd": "~1.0.1", + "chalk": "~1.0.0", + "underscore": "~1.8.3", + "finalhandler": "~0.3.4", + "debug": "~2.1.3", + "parseurl": "~1.3.0", + "bytes": "~2.0.0", + "cli": "~0.6.6", + "content-type": "~1.0.1", + "shelljs": "~0.4.0", + "cookie-parser": "~1.3.4", + "http-errors": "~1.3.1", + "q": "~1.2.0", + "vow": "~0.4.9", + "htmlparser2": "~3.8.2", + "cookie-signature": "~1.0.6", + "exit": "~0.1.2", + "jscs": "~1.12.0", + "wrench": "~1.5.8", + "type-is": "~1.6.1", + "utils-merge": "~1.0.0", + "hooker": "~0.2.3", + "cookie": "~0.1.2", + "on-headers": "~1.0.0", + "jasmine-core": "~2.2.0", + "serve-static": "~1.9.2", + "strip-json-comments": "~1.0.2", + "q-io": "~1.12.0", + "pako": "~0.2.6", + "sauce-tunnel": "~2.2.3", + "constants-browserify": "0.0.1", + "marked": "~0.3.3" }, "devDependencies": { "emu": "~0.0.2", From a5ae55626b3133877687e3c445f5d0c4c70900da Mon Sep 17 00:00:00 2001 From: Antonio Grass Date: Tue, 14 Apr 2015 17:59:24 -0300 Subject: [PATCH 03/11] fixing bug --- dc.js | 21 +++++++++++---------- dc.min.js | 7 ++++--- dc.min.js.map | 2 +- src/base-mixin.js | 20 ++++++++++---------- src/pie-chart.js | 1 + 5 files changed, 27 insertions(+), 24 deletions(-) diff --git a/dc.js b/dc.js index 77c55c824..4ddd9bf38 100644 --- a/dc.js +++ b/dc.js @@ -681,7 +681,7 @@ dc.baseMixin = function (_chart) { var _keyAccessor = dc.pluck('key'); var _valueAccessor = dc.pluck('value'); var _label = dc.pluck('key'); - var _legend_label = dc.pluck('key'); + var _legendLabelAccessor = dc.pluck('key'); var _ordering = dc.pluck('key'); var _orderSort; @@ -1545,6 +1545,14 @@ dc.baseMixin = function (_chart) { return _chart; }; + _chart.legendLabelAccessor = function (_) { + if (!arguments.length) { + return _legendLabelAccessor; + } + _legendLabelAccessor = _; + return _chart; + }; + /** #### .label([labelFunction]) Set or get the label function. The chart class will use this function to render labels for each @@ -1567,17 +1575,9 @@ dc.baseMixin = function (_chart) { _renderLabel = true; return _chart; }; - _chart.legendLabelAccessor = function (_) { - if (!arguments.length) { - return _legendLabelAccessor; - } - _legendLabelAccessor = _; - _defaultAccessor = false; - return _chart; - }; _chart.getLegendLabel = function (d, i) { - return _colors(_legendLabelAccessor.call(this, d, i)); + return _legendLabelAccessor.call(this, d, i); }; /** @@ -3759,6 +3759,7 @@ dc.pieChart = function (parent, chartGroup) { var _chart = dc.capMixin(dc.colorMixin(dc.baseMixin({}))); _chart.colorAccessor(_chart.cappedKeyAccessor); + _chart.legendLabelAccessor(_chart.cappedKeyAccessor); _chart.title(function (d) { return _chart.cappedKeyAccessor(d) + ': ' + _chart.cappedValueAccessor(d); diff --git a/dc.min.js b/dc.min.js index c67fbde3b..ed335ebbd 100644 --- a/dc.min.js +++ b/dc.min.js @@ -1,4 +1,5 @@ -!function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&do?b:o},q=p,r=200,s=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>r?b:r},t=s,u=c.pluck("key"),v=c.pluck("value"),w=c.pluck("key"),x=(c.pluck("key"),c.pluck("key")),y=!1,z=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},A=!0,B=750,C=c.printers.filters,D=["dimension","group"],E=c.constants.DEFAULT_CHART_GROUP,F=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),G=[],H=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c=d&&d>=a)return!0}return!1}),b},I=function(a){return a.all()};d.width=function(b){return arguments.length?(q=a.functor(b||p),d):q(k.node())},d.height=function(b){return arguments.length?(t=a.functor(b||s),d):t(k.node())},d.minWidth=function(a){return arguments.length?(o=a,d):o},d.minHeight=function(a){return arguments.length?(r=a,d):r},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(I=a.functor(b),d.expireCache(),d):I.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(x=a,m=b.quicksort.by(x),d.expireCache(),d):x},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(m||(m=b.quicksort.by(x)),m(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root()):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e)),E=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(C=a,d):C},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(C(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(B=a,d):B},d._mandatoryAttributes=function(a){return arguments.length?(D=a,d):D},d.render=function(){F.preRender(d),D&&D.forEach(f);var a=d._doRender();return n&&n.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){F.renderlet(d),a&&F[a](d)}):(F.renderlet(d),a&&F[a](d))},d.redraw=function(){F.preRedraw(d);var a=d._doRedraw();return n&&n.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&F.filtered(d,a)},d._invokeZoomedListener=function(){F.zoomed(d)};var J=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(J=a,d):J},d.hasFilter=function(a){return J(G,a)};var K=function(a,b){for(var c=0;c=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(K=a,d):K};var L=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(L=a,d):L};var M=function(a){return[]};return d.resetFilterHandler=function(a){return arguments.length?(M=a,d):M},d.replaceFilter=function(a){G=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?K(G,a):L(G,a)}):null===a?G=M(G):d.hasFilter(a)?K(G,a):L(G,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):G.length>0?G[0]:null},d.filters=function(){return G},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(H=a,d):H},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(u=a,d):u},d.valueAccessor=function(a){return arguments.length?(v=a,d):v},d.label=function(a){return arguments.length?(w=a,y=!0,d):w},d.legendLabelAccessor=function(a){return arguments.length?(_legendLabelAccessor=a,_defaultAccessor=!1,d):_legendLabelAccessor},d.getLegendLabel=function(a,b){return _colors(_legendLabelAccessor.call(this,a,b))},d.renderLabel=function(a){return arguments.length?(y=a,d):y},d.title=function(a){return arguments.length?(z=a,d):z},d.renderTitle=function(a){return arguments.length?(A=a,d):A},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(E=a,d):E},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(n=a,n.parent(d),d):n},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return F.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],ba,b._useOuterPadding()?aa:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,aa=.5,ba=0,ca=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(ca=a,b):ca},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),ca&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=ca?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=ca?b.width()-P:P,d=ca?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(ba=a,b):ba},b._outerRangeBandPadding=function(a){return arguments.length?(aa=a,b):aa},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(d===1/0)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){ -var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b),isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"}function C(b,c){O.selectAll("g.pie-slice").each(function(d){b.name===d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G,H,I=.5,J="pie-slice",K="empty-chart",L="empty",M=0,N=I,O=c.capMixin(c.colorMixin(c.baseMixin({})));return O.colorAccessor(O.cappedKeyAccessor),O.title(function(a){return O.cappedKeyAccessor(a)+": "+O.cappedValueAccessor(a)}),O.slicesCap=O.cap,O.label(O.cappedKeyAccessor),O.renderLabel(!0),O.transitionDuration(350),O._doRender=function(){return O.resetSvg(),E=O.svg().append("g").attr("transform","translate("+O.cx()+","+O.cy()+")"),e(),O},O.innerRadius=function(a){return arguments.length?(M=a,O):M},O.radius=function(a){return arguments.length?(D=a,O):D},O.cx=function(a){return arguments.length?(F=a,O):F||O.width()/2},O.cy=function(a){return arguments.length?(G=a,O):G||O.height()/2},O._doRedraw=function(){return e(),O},O.minAngleForLabel=function(a){return arguments.length?(N=a,O):N},O.emptyTitle=function(a){return 0===arguments.length?L:(L=a,O)},O.externalLabels=function(a){return 0===arguments.length?H:(H=a?a:void 0,O)},O.legendables=function(){return O.data().map(function(a,b){var c={name:O.getLegendLabel(a,b),data:a.value,others:a.others,chart:O};return c.color=O.getColor(a,b),c})},O.legendHighlight=function(a){C(a,!0)},O.legendReset=function(a){C(a,!1)},O.legendToggle=function(a){O.onClick({key:a.name,others:a.others})},O.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(l.y()(a.y+a.y0)-l.y()(a.y0)))}function f(a,b,d){var f=a.selectAll("rect.bar").data(d.values,c.pluck("x")),g=f.enter().append("rect").attr("class","bar").attr("fill",c.pluck("data",l.getColor)).attr("y",l.yAxisHeight()).attr("height",0);l.renderTitle()&&g.append("title").text(c.pluck("data",l.title(d.name))),l.isOrdinal()&&f.on("click",l.onClick),c.transition(f,l.transitionDuration()).attr("x",function(a){var b=l.x()(a.x);return n&&(b-=i/2),l.isOrdinal()&&void 0!==m&&(b+=m/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=l.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",i).attr("height",function(a){return e(a)}).attr("fill",c.pluck("data",l.getColor)).select("title").text(c.pluck("data",l.title(d.name))),c.transition(f.exit(),l.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===i){var a=l.xUnitCount();i=Math.floor(l.isOrdinal()&&void 0===m?l.x().rangeBand():m?(l.xAxisLength()-(a-1)*m)/a:l.xAxisLength()/(1+l.barPadding())/a),(i===1/0||isNaN(i)||j>i)&&(i=j)}}function h(b,c){return function(){var d=a.select(this),e=d.attr("fill")===b;return c?!e:e}}var i,j=1,k=2,l=c.stackMixin(c.coordinateGridMixin({})),m=k,n=!1,o=!1;return c.override(l,"rescale",function(){l._rescale(),i=void 0}),c.override(l,"render",function(){l.round()&&n&&!o&&c.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),l._render()}),l.plotData=function(){var b=l.chartBodyG().selectAll("g.stack").data(l.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},l.fadeDeselectedArea=function(){var a=l.chartBodyG().selectAll("rect.bar"),b=l.brush().extent();if(l.isOrdinal())l.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return l.hasFilter(a.x)}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!l.hasFilter(a.x)})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(l.brushIsEmpty(b))a.classed(c.constants.DESELECTED_CLASS,!1);else{var d=b[0],e=b[1];a.classed(c.constants.DESELECTED_CLASS,function(a){return a.x=e})}},l.centerBar=function(a){return arguments.length?(n=a,l):n},c.override(l,"onClick",function(a){l._onClick(a.data)}),l.barPadding=function(a){return arguments.length?(l._rangeBandPadding(a),m=void 0,l):l._rangeBandPadding()},l._useOuterPadding=function(){return void 0===m},l.outerPadding=l._outerRangeBandPadding,l.gap=function(a){return arguments.length?(m=a,l):m},l.extendBrush=function(){var a=l.brush().extent();return!l.round()||n&&!o||(a[0]=a.map(l.round())[0],a[1]=a.map(l.round())[1],l.chartBodyG().select(".brush").call(l.brush().extent(a))),a},l.alwaysUseRounding=function(a){return arguments.length?(o=a,l):o},l.legendHighlight=function(a){l.isLegendableHidden(a)||l.g().selectAll("rect.bar").classed("highlight",h(a.color)).classed("fadeout",h(a.color,!0))},l.legendReset=function(){l.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},c.override(l,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in l.xUnits()){var b=l.xUnits().resolution;a+=b}return a}),l.anchor(b,d)},c.lineChart=function(b,d){function e(a,b){return z.getColor.call(a,a.values,b)}function f(b,d){var f=a.svg.line().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).interpolate(F).tension(G);r&&f.defined(r);var g=b.append("path").attr("class","line").attr("stroke",e);s&&g.attr("stroke-dasharray",s),c.transition(d.select("path.line"),z.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(b,d){if(A){var f=a.svg.area().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).y0(function(a){return z.y()(a.y0)}).interpolate(F).tension(G);r&&f.defined(r),b.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),c.transition(d.select("path.area"),z.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(b,d){if(!z.brushOn()&&z.xyTipsOn()){var e=u+"-list",f=b.select("g."+e);f.empty()&&(f=b.append("g").attr("class",e)),d.each(function(b,d){var e=b.values;r&&(e=e.filter(r));var g=f.select("g."+u+"._"+d);g.empty()&&(g=f.append("g").attr("class",u+" _"+d)),j(g);var h=g.selectAll("circle."+v).data(e,c.pluck("x"));h.enter().append("circle").attr("class",v).attr("r",m()).style("fill-opacity",D).style("stroke-opacity",E).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}),h.attr("cx",function(a){return c.utils.safeNumber(z.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(z.y()(a.y+a.y0))}).attr("fill",z.getColor).call(p,b),h.exit().remove()})}}function j(a){var b=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+x).empty()?a.append("path").attr("class",x):a.select("path."+x);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",B),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=z._yAxisX()-z.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+z.yAxisHeight()+"L"+c+" "+d;b.select("path."+w).style("display","").attr("d",f),b.select("path."+x).style("display","").attr("d",g)}function m(){return C||B}function n(a){a.style("fill-opacity",D).style("stroke-opacity",E).attr("r",m())}function o(a){a.select("path."+w).style("display","none"),a.select("path."+x).style("display","none")}function p(a,b){z.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(c.pluck("data",z.title(b.name))))}function q(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")===b&&e.attr("stroke-dasharray")===(c instanceof Array?c.join(","):null)||e.attr("fill")===b;return d?!f:f}}var r,s,t=5,u="dc-tooltip",v="dot",w="yRef",x="xRef",y=1e-6,z=c.stackMixin(c.coordinateGridMixin({})),A=!1,B=t,C=null,D=y,E=y,F="linear",G=.7,H=!0;return z.transitionDuration(500),z._rangeBandPadding(1),z.plotData=function(){var a=z.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(z.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},z.interpolate=function(a){return arguments.length?(F=a,z):F},z.tension=function(a){return arguments.length?(G=a,z):G},z.defined=function(a){return arguments.length?(r=a,z):r},z.dashStyle=function(a){return arguments.length?(s=a,z):s},z.renderArea=function(a){return arguments.length?(A=a,z):A},z.xyTipsOn=function(a){return arguments.length?(H=a,z):H},z.dotRadius=function(a){return arguments.length?(B=a,z):B},z.renderDataPoints=function(a){return arguments.length?(a?(D=a.fillOpacity||.8,E=a.strokeOpacity||.8,C=a.radius||2):(D=y,E=y,C=null),z):{fillOpacity:D,strokeOpacity:E,radius:C}},z.legendHighlight=function(a){z.isLegendableHidden(a)||z.g().selectAll("path.line, path.area").classed("highlight",q(a.color,a.dashstyle)).classed("fadeout",q(a.color,a.dashstyle,!0))},z.legendReset=function(){z.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},c.override(z,"legendables",function(){var a=z._legendables();return s?a.map(function(a){return a.dashstyle=s,a}):a}),z.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseMixin({}),g={some:"",all:""};return f.html=function(a){return arguments.length?(a.all&&(g.all=a.all),a.some&&(g.some=a.some),f):g},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f._doRender=function(){var a=f.dimension().size(),b=f.group().value(),c=e(a),d=e(b);return a===b&&""!==g.all?f.root().html(g.all.replace("%total-count",c).replace("%filter-count",d)):""!==g.some?f.root().html(g.some.replace("%total-count",c).replace("%filter-count",d)):(f.selectAll(".total-count").text(c),f.selectAll(".filter-count").text(d)),f},f._doRedraw=function(){return f._doRender()},f.anchor(b,d)},c.dataTable=function(b,d){function e(){var a=!0;if(o.forEach(function(b){a&="function"==typeof b}),!a){m.selectAll("th").remove();var b=m.root().selectAll("th").data(o),c=b.enter().append("th");c.attr("class",l).html(function(a){return m._doColumnHeaderFormat(a)})}var d=m.root().selectAll("tbody").data(f(),function(a){return m.keyAccessor()(a)}),e=d.enter().append("tbody");return e.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",o.length).html(function(a){return m.keyAccessor()(a)}),d.exit().remove(),e}function f(){var b;return b=q===a.ascending?m.dimension().bottom(n):m.dimension().top(n),a.nest().key(m.group()).sortKeys(q).entries(b.sort(function(a,b){return q(p(a),p(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return o.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(function(b){return m._doColumnValueFormat(a,b)})}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l="dc-table-head",m=c.baseMixin({}),n=25,o=[],p=function(a){return a},q=a.ascending;return m._doRender=function(){return m.selectAll("tbody").remove(),g(e()),m},m._doColumnValueFormat=function(a,b){return"function"==typeof a?a(b):"string"==typeof a?b[a]:a.format(b)},m._doColumnHeaderFormat=function(a){return"function"==typeof a?m._doColumnHeaderFnToString(a):"string"==typeof a?m._doColumnHeaderCapitalize(a):String(a.label)},m._doColumnHeaderCapitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},m._doColumnHeaderFnToString=function(a){var b=String(a),c=b.indexOf("return ");if(c>=0){var d=b.lastIndexOf(";");if(d>=0){b=b.substring(c+7,d);var e=b.indexOf("numberFormat");e>=0&&(b=b.replace("numberFormat",""))}}return b},m._doRedraw=function(){return m._doRender()},m.size=function(a){return arguments.length?(n=a,m):n},m.columns=function(a){return arguments.length?(o=a,m):o},m.sortBy=function(a){return arguments.length?(p=a,m):p},m.order=function(a){return arguments.length?(q=a,m):q},m.anchor(b,d)},c.dataGrid=function(b,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=c.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

"+l.keyAccessor()(a)+"

"};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,d)},c.bubbleChart=function(a,b){function d(a){var b=a.enter().append("g");b.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),c.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(b),i._doRenderTitles(b)}function e(a){c.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=c.bubbleMixin(c.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,b)},c.compositeChart=function(b,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return c.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return c.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=c.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),c.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),t=a.scale.linear().domain(b).range([0,G.effectiveWidth()])}H.scale(t)}function f(){var a=s.select("g.axis");e(),a.empty()&&(a=s.append("g").attr("class","axis").attr("transform","translate(0, "+G.effectiveHeight()+")")),c.transition(a,G.transitionDuration()).call(H)}function g(){s.selectAll("g.tick").select("line.grid-line").remove(),s.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-G.effectiveHeight()})}function h(){v=G.data(),f(),g();var a=s.selectAll("g."+D).data(v);i(a),j(a),l(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return D+" _"+b});b.append("rect").attr("width",0),n(b),o(a)}function j(a){a.exit().remove()}function k(){var a=t(0);return a===-(1/0)||a!==a?t(1):a}function l(a){var b,d=v.length;b=C?C:(G.effectiveHeight()-(d+1)*B)/d,y||(x=b/2);var e=a.attr("transform",function(a,c){return"translate(0,"+((c+1)*B+c*b)+")"}).select("rect").attr("height",b).attr("fill",G.getColor).on("click",p).classed("deselected",function(a){return G.hasFilter()?!r(a):!1}).classed("selected",function(a){return G.hasFilter()?r(a):!1});c.transition(e,G.transitionDuration()).attr("width",function(a){return Math.abs(k()-t(G.valueAccessor()(a)))}).attr("transform",q),m(a),o(a)}function m(a){G.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(G.title()))}function n(a){G.renderLabel()&&a.append("text").on("click",p),G.renderTitleLabel()&&a.append("text").attr("class",E).on("click",p)}function o(a){if(G.renderLabel()){var b=a.select("text").attr("x",w).attr("y",x).attr("dy",z).on("click",p).attr("class",function(a,b){return D+" _"+b}).text(function(a){return G.label()(a)});c.transition(b,G.transitionDuration()).attr("transform",q)}if(G.renderTitleLabel()){var d=a.select("."+E).attr("x",G.effectiveWidth()-A).attr("y",x).attr("text-anchor","end").on("click",p).attr("class",function(a,b){return E+" _"+b}).text(function(a){return G.title()(a)});c.transition(d,G.transitionDuration()).attr("transform",q)}}function p(a){G.onClick(a)}function q(a){var b=t(G.cappedValueAccessor(a)),c=k(),d=b>c?c:b;return"translate("+d+",0)"}function r(a){return G.hasFilter(G.cappedKeyAccessor(a))}var s,t,u,v,w=10,x=15,y=!1,z="0.35em",A=2,B=5,C=!1,D="row",E="titlerow",F=!1,G=c.capMixin(c.marginMixin(c.colorMixin(c.baseMixin({})))),H=a.svg.axis().orient("bottom");return G.rowsCap=G.cap,G._doRender=function(){return G.resetSvg(),s=G.svg().append("g").attr("transform","translate("+G.margins().left+","+G.margins().top+")"),h(),G},G.title(function(a){return G.cappedKeyAccessor(a)+": "+G.cappedValueAccessor(a)}),G.label(G.cappedKeyAccessor),G.x=function(a){return arguments.length?(t=a,G):t},G.renderTitleLabel=function(a){return arguments.length?(F=a,G):F},G._doRedraw=function(){return h(),G},G.xAxis=function(){return H},G.fixedBarHeight=function(a){return arguments.length?(C=a,G):C},G.gap=function(a){return arguments.length?(B=a,G):B},G.elasticX=function(a){return arguments.length?(u=a,G):u},G.labelOffsetX=function(a){return arguments.length?(w=a,G):w},G.labelOffsetY=function(a){return arguments.length?(x=a,y=!0,G):x},G.titleLabelOffsetX=function(a){return arguments.length?(A=a,G):A},G.anchor(b,d)},c.legend=function(){function a(){return j+i}var b,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70,n=!1;return f.parent=function(a){return arguments.length?(b=a,f):b},f.render=function(){b.svg().select("g.dc-legend").remove(),d=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=b.legendables(),o=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)}).on("click",function(a){a.chart.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(c.pluck("dashstyle"))?o.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",c.pluck("dashstyle")).attr("stroke",c.pluck("color")):o.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),o.append("text").text(c.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var p=0,q=0;o.attr("transform",function(b,c){if(k){var d="translate("+p+","+q*a()+")",e=n===!0?this.getBBox().width+j:m;return p+e>=l?(++q,p=0):p+=e,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f.autoItemWidth=function(a){return arguments.length?(n=a,f):n},f},c.scatterPlot=function(b,d){function e(b,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return b(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),c.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var b=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});c.transition(b,g.transitionDuration()).attr("d",h)}var g=c.coordinateGridMixin({}),h=a.svg.symbol(),i=function(a){return a.value},j=g.keyAccessor();g.keyAccessor(function(a){return j(a)[0]}),g.valueAccessor(function(a){return j(a)[1]}),g.colorAccessor(function(){return g._groupName});var k=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},l=3,m=5,n=0;return h.size(function(a){return i(a)?this.filtered?Math.pow(m,2):Math.pow(l,2):n}),c.override(g,"_filter",function(a){return arguments.length?g.__filter(c.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",k),c.transition(a,g.transitionDuration()).attr("opacity",function(a){return i(a)?1:0}).attr("fill",g.getColor).attr("transform",k).attr("d",h),c.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.existenceAccessor=function(a){return arguments.length?(i=a,this):i},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(l=a,g):l},g.highlightedSize=function(a){return arguments.length?(m=a,g):m},g.hiddenSize=function(a){return arguments.length?(n=a,g):n},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")===b.color},m),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")===b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))c.events.trigger(function(){g.filter(null),g.redrawGroup()}),f(!1);else{var b=c.filters.RangedTwoDimensionalFilter(a);c.events.trigger(function(){g.filter(null),g.filter(b),g.redrawGroup()},c.constants.EVENT_DELAY),f(b)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(b,d)},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseMixin({}),h={one:"",some:"",none:""};return g._mandatoryAttributes(["group"]),g.html=function(a){return arguments.length?(a.none?h.none=a.none:a.one?h.none=a.one:a.some&&(h.none=a.some), -a.one?h.one=a.one:a.some&&(h.one=a.some),a.some?h.some=a.some:a.one&&(h.some=a.one),g):h},g.value=function(){return g.data()},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250),g._doRender=function(){var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);return this.lastValue=b,function(a){var d=null,e=g.formatNumber()(c(a));0===b&&""!==h.none?d=h.none:1===b&&""!==h.one?d=h.one:""!==h.some&&(d=h.some),this.innerHTML=d?d.replace("%number",e):e}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},c.heatMap=function(b,d){function e(a,b){var d=p.selectAll(".box-group").filter(function(c){return c.key[a]===b}),e=d.filter(function(a){return!p.hasFilter(a.key)});c.events.trigger(function(){e.empty()?d.each(function(a){p.filter(a.key)}):e.each(function(a){p.filter(a.key)}),p.redrawGroup()})}var f,g,h,i=6.75,j=a.ascending,k=a.ascending,l=a.scale.ordinal(),m=a.scale.ordinal(),n=i,o=i,p=c.colorMixin(c.marginMixin(c.baseMixin({})));p._mandatoryAttributes(["group"]),p.title(p.colorAccessor());var q=function(a){return a},r=function(a){return a};p.colsLabel=function(a){return arguments.length?(q=a,p):q},p.rowsLabel=function(a){return arguments.length?(r=a,p):r};var s=function(a){e(0,a)},t=function(a){e(1,a)},u=function(a){var b=a.key;c.events.trigger(function(){p.filter(b),p.redrawGroup()})};return c.override(p,"filter",function(a){return arguments.length?p._filter(c.filters.TwoDimensionalFilter(a)):p._filter()}),p.rows=function(a){return arguments.length?(h=a,p):h},p.rowOrdering=function(a){return arguments.length?(k=a,p):k},p.cols=function(a){return arguments.length?(g=a,p):g},p.colOrdering=function(a){return arguments.length?(j=a,p):j},p._doRender=function(){return p.resetSvg(),f=p.svg().append("g").attr("class","heatmap").attr("transform","translate("+p.margins().left+","+p.margins().top+")"),p._doRedraw()},p._doRedraw=function(){var a=p.data(),b=p.rows()||a.map(p.valueAccessor()),d=p.cols()||a.map(p.keyAccessor());k&&(b=b.sort(k)),j&&(d=d.sort(j)),b=m.domain(b),d=l.domain(d);var e=b.domain().length,g=d.domain().length,h=Math.floor(p.effectiveWidth()/g),i=Math.floor(p.effectiveHeight()/e);d.rangeRoundBands([0,p.effectiveWidth()]),b.rangeRoundBands([p.effectiveHeight(),0]);var q=f.selectAll("g.box-group").data(p.data(),function(a,b){return p.keyAccessor()(a,b)+"\x00"+p.valueAccessor()(a,b)}),r=q.enter().append("g").attr("class","box-group");r.append("rect").attr("class","heat-box").attr("fill","white").on("click",p.boxOnClick()),p.renderTitle()&&(r.append("title"),q.selectAll("title").text(p.title())),c.transition(q.selectAll("rect"),p.transitionDuration()).attr("x",function(a,b){return d(p.keyAccessor()(a,b))}).attr("y",function(a,c){return b(p.valueAccessor()(a,c))}).attr("rx",n).attr("ry",o).attr("fill",p.getColor).attr("width",h).attr("height",i),q.exit().remove();var s=f.selectAll("g.cols");s.empty()&&(s=f.append("g").attr("class","cols axis"));var t=s.selectAll("text").data(d.domain());t.enter().append("text").attr("x",function(a){return d(a)+h/2}).style("text-anchor","middle").attr("y",p.effectiveHeight()).attr("dy",12).on("click",p.xAxisOnClick()).text(p.colsLabel()),c.transition(t,p.transitionDuration()).text(p.colsLabel()).attr("x",function(a){return d(a)+h/2}),t.exit().remove();var u=f.selectAll("g.rows");u.empty()&&(u=f.append("g").attr("class","rows axis"));var v=u.selectAll("text").data(b.domain());return v.enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",p.yAxisOnClick()).text(p.rowsLabel()),c.transition(v,p.transitionDuration()).text(p.rowsLabel()).attr("y",function(a){return b(a)+i/2}),v.exit().remove(),p.selectAll("g.box-group").each(p.hasFilter()?function(a){p.isSelectedNode(a)?p.highlightSelected(this):p.fadeDeselected(this)}:function(){p.resetHighlight(this)}),p},p.boxOnClick=function(a){return arguments.length?(u=a,p):u},p.xAxisOnClick=function(a){return arguments.length?(s=a,p):s},p.yAxisOnClick=function(a){return arguments.length?(t=a,p):t},p.xBorderRadius=function(a){return arguments.length?(n=a,p):n},p.yBorderRadius=function(a){return arguments.length?(o=a,p):o},p.isSelectedNode=function(a){return p.hasFilter(a.key)},p.anchor(b,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null===b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),c.boxPlot=function(b,d){function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}function f(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function g(b){c.transition(b,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function h(a){a.exit().remove().call(m)}var i=c.coordinateGridMixin({}),j=1.5,k=e,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(c.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+", 0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});f(b),g(b),h(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var b=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return c.utils.subtract(b,i.yAxisPadding())},i.yAxisMax=function(){var b=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return c.utils.add(b,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(b,d)},c.abstractBubbleChart=c.bubbleMixin,c.baseChart=c.baseMixin,c.capped=c.capMixin,c.colorChart=c.colorMixin,c.coordinateGridChart=c.coordinateGridMixin,c.marginable=c.marginMixin,c.stackableChart=c.stackMixin,c.d3=a,c.crossfilter=b,c}if("function"==typeof define&&define.amd)define(["d3","crossfilter"],a);else if("object"==typeof module&&module.exports){var b=require("d3"),c=require("crossfilter");"function"!=typeof c&&(c=c.crossfilter),module.exports=a(b,c)}else this.dc=a(d3,crossfilter)}(); +!function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&do?b:o},q=p,r=200,s=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>r?b:r},t=s,u=c.pluck("key"),v=c.pluck("value"),w=c.pluck("key"),x=c.pluck("key"),y=c.pluck("key"),z=!1,A=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},B=!0,C=750,D=c.printers.filters,E=["dimension","group"],F=c.constants.DEFAULT_CHART_GROUP,G=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),H=[],I=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c=d&&d>=a)return!0}return!1}),b},J=function(a){return a.all()};d.width=function(b){return arguments.length?(q=a.functor(b||p),d):q(k.node())},d.height=function(b){return arguments.length?(t=a.functor(b||s),d):t(k.node())},d.minWidth=function(a){return arguments.length?(o=a,d):o},d.minHeight=function(a){return arguments.length?(r=a,d):r},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(J=a.functor(b),d.expireCache(),d):J.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(y=a,m=b.quicksort.by(y),d.expireCache(),d):y},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(m||(m=b.quicksort.by(y)),m(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root()):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e)),F=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(D=a,d):D},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(D(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(C=a,d):C},d._mandatoryAttributes=function(a){return arguments.length?(E=a,d):E},d.render=function(){G.preRender(d),E&&E.forEach(f);var a=d._doRender();return n&&n.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){G.renderlet(d),a&&G[a](d)}):(G.renderlet(d),a&&G[a](d))},d.redraw=function(){G.preRedraw(d);var a=d._doRedraw();return n&&n.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&G.filtered(d,a)},d._invokeZoomedListener=function(){G.zoomed(d)};var K=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(K=a,d):K},d.hasFilter=function(a){return K(H,a)};var L=function(a,b){for(var c=0;c=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(L=a,d):L};var M=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(M=a,d):M};var N=function(a){return[]};return d.resetFilterHandler=function(a){return arguments.length?(N=a,d):N},d.replaceFilter=function(a){H=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?L(H,a):M(H,a)}):null===a?H=N(H):d.hasFilter(a)?L(H,a):M(H,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):H.length>0?H[0]:null},d.filters=function(){return H},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(I=a,d):I},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(u=a,d):u},d.valueAccessor=function(a){return arguments.length?(v=a,d):v},d.legendLabelAccessor=function(a){return arguments.length?(x=a,d):x},d.label=function(a){return arguments.length?(w=a,z=!0,d):w},d.getLegendLabel=function(a,b){return x.call(this,a,b)},d.renderLabel=function(a){return arguments.length?(z=a,d):z},d.title=function(a){return arguments.length?(A=a,d):A},d.renderTitle=function(a){return arguments.length?(B=a,d):B},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(F=a,d):F},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(n=a,n.parent(d),d):n},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return G.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],ba,b._useOuterPadding()?aa:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,aa=.5,ba=0,ca=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(ca=a,b):ca},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),ca&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=ca?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=ca?b.width()-P:P,d=ca?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(ba=a,b):ba},b._outerRangeBandPadding=function(a){return arguments.length?(aa=a,b):aa},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(d===1/0)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b), +isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"}function C(b,c){O.selectAll("g.pie-slice").each(function(d){b.name===d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G,H,I=.5,J="pie-slice",K="empty-chart",L="empty",M=0,N=I,O=c.capMixin(c.colorMixin(c.baseMixin({})));return O.colorAccessor(O.cappedKeyAccessor),O.legendLabelAccessor(O.cappedKeyAccessor),O.title(function(a){return O.cappedKeyAccessor(a)+": "+O.cappedValueAccessor(a)}),O.slicesCap=O.cap,O.label(O.cappedKeyAccessor),O.renderLabel(!0),O.transitionDuration(350),O._doRender=function(){return O.resetSvg(),E=O.svg().append("g").attr("transform","translate("+O.cx()+","+O.cy()+")"),e(),O},O.innerRadius=function(a){return arguments.length?(M=a,O):M},O.radius=function(a){return arguments.length?(D=a,O):D},O.cx=function(a){return arguments.length?(F=a,O):F||O.width()/2},O.cy=function(a){return arguments.length?(G=a,O):G||O.height()/2},O._doRedraw=function(){return e(),O},O.minAngleForLabel=function(a){return arguments.length?(N=a,O):N},O.emptyTitle=function(a){return 0===arguments.length?L:(L=a,O)},O.externalLabels=function(a){return 0===arguments.length?H:(H=a?a:void 0,O)},O.legendables=function(){return O.data().map(function(a,b){var c={name:O.getLegendLabel(a,b),data:a.value,others:a.others,chart:O};return c.color=O.getColor(a,b),c})},O.legendHighlight=function(a){C(a,!0)},O.legendReset=function(a){C(a,!1)},O.legendToggle=function(a){O.onClick({key:a.name,others:a.others})},O.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(l.y()(a.y+a.y0)-l.y()(a.y0)))}function f(a,b,d){var f=a.selectAll("rect.bar").data(d.values,c.pluck("x")),g=f.enter().append("rect").attr("class","bar").attr("fill",c.pluck("data",l.getColor)).attr("y",l.yAxisHeight()).attr("height",0);l.renderTitle()&&g.append("title").text(c.pluck("data",l.title(d.name))),l.isOrdinal()&&f.on("click",l.onClick),c.transition(f,l.transitionDuration()).attr("x",function(a){var b=l.x()(a.x);return n&&(b-=i/2),l.isOrdinal()&&void 0!==m&&(b+=m/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=l.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",i).attr("height",function(a){return e(a)}).attr("fill",c.pluck("data",l.getColor)).select("title").text(c.pluck("data",l.title(d.name))),c.transition(f.exit(),l.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===i){var a=l.xUnitCount();i=Math.floor(l.isOrdinal()&&void 0===m?l.x().rangeBand():m?(l.xAxisLength()-(a-1)*m)/a:l.xAxisLength()/(1+l.barPadding())/a),(i===1/0||isNaN(i)||j>i)&&(i=j)}}function h(b,c){return function(){var d=a.select(this),e=d.attr("fill")===b;return c?!e:e}}var i,j=1,k=2,l=c.stackMixin(c.coordinateGridMixin({})),m=k,n=!1,o=!1;return c.override(l,"rescale",function(){l._rescale(),i=void 0}),c.override(l,"render",function(){l.round()&&n&&!o&&c.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),l._render()}),l.plotData=function(){var b=l.chartBodyG().selectAll("g.stack").data(l.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},l.fadeDeselectedArea=function(){var a=l.chartBodyG().selectAll("rect.bar"),b=l.brush().extent();if(l.isOrdinal())l.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return l.hasFilter(a.x)}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!l.hasFilter(a.x)})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(l.brushIsEmpty(b))a.classed(c.constants.DESELECTED_CLASS,!1);else{var d=b[0],e=b[1];a.classed(c.constants.DESELECTED_CLASS,function(a){return a.x=e})}},l.centerBar=function(a){return arguments.length?(n=a,l):n},c.override(l,"onClick",function(a){l._onClick(a.data)}),l.barPadding=function(a){return arguments.length?(l._rangeBandPadding(a),m=void 0,l):l._rangeBandPadding()},l._useOuterPadding=function(){return void 0===m},l.outerPadding=l._outerRangeBandPadding,l.gap=function(a){return arguments.length?(m=a,l):m},l.extendBrush=function(){var a=l.brush().extent();return!l.round()||n&&!o||(a[0]=a.map(l.round())[0],a[1]=a.map(l.round())[1],l.chartBodyG().select(".brush").call(l.brush().extent(a))),a},l.alwaysUseRounding=function(a){return arguments.length?(o=a,l):o},l.legendHighlight=function(a){l.isLegendableHidden(a)||l.g().selectAll("rect.bar").classed("highlight",h(a.color)).classed("fadeout",h(a.color,!0))},l.legendReset=function(){l.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},c.override(l,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in l.xUnits()){var b=l.xUnits().resolution;a+=b}return a}),l.anchor(b,d)},c.lineChart=function(b,d){function e(a,b){return z.getColor.call(a,a.values,b)}function f(b,d){var f=a.svg.line().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).interpolate(F).tension(G);r&&f.defined(r);var g=b.append("path").attr("class","line").attr("stroke",e);s&&g.attr("stroke-dasharray",s),c.transition(d.select("path.line"),z.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(b,d){if(A){var f=a.svg.area().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).y0(function(a){return z.y()(a.y0)}).interpolate(F).tension(G);r&&f.defined(r),b.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),c.transition(d.select("path.area"),z.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(b,d){if(!z.brushOn()&&z.xyTipsOn()){var e=u+"-list",f=b.select("g."+e);f.empty()&&(f=b.append("g").attr("class",e)),d.each(function(b,d){var e=b.values;r&&(e=e.filter(r));var g=f.select("g."+u+"._"+d);g.empty()&&(g=f.append("g").attr("class",u+" _"+d)),j(g);var h=g.selectAll("circle."+v).data(e,c.pluck("x"));h.enter().append("circle").attr("class",v).attr("r",m()).style("fill-opacity",D).style("stroke-opacity",E).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}),h.attr("cx",function(a){return c.utils.safeNumber(z.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(z.y()(a.y+a.y0))}).attr("fill",z.getColor).call(p,b),h.exit().remove()})}}function j(a){var b=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+x).empty()?a.append("path").attr("class",x):a.select("path."+x);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",B),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=z._yAxisX()-z.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+z.yAxisHeight()+"L"+c+" "+d;b.select("path."+w).style("display","").attr("d",f),b.select("path."+x).style("display","").attr("d",g)}function m(){return C||B}function n(a){a.style("fill-opacity",D).style("stroke-opacity",E).attr("r",m())}function o(a){a.select("path."+w).style("display","none"),a.select("path."+x).style("display","none")}function p(a,b){z.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(c.pluck("data",z.title(b.name))))}function q(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")===b&&e.attr("stroke-dasharray")===(c instanceof Array?c.join(","):null)||e.attr("fill")===b;return d?!f:f}}var r,s,t=5,u="dc-tooltip",v="dot",w="yRef",x="xRef",y=1e-6,z=c.stackMixin(c.coordinateGridMixin({})),A=!1,B=t,C=null,D=y,E=y,F="linear",G=.7,H=!0;return z.transitionDuration(500),z._rangeBandPadding(1),z.plotData=function(){var a=z.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(z.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},z.interpolate=function(a){return arguments.length?(F=a,z):F},z.tension=function(a){return arguments.length?(G=a,z):G},z.defined=function(a){return arguments.length?(r=a,z):r},z.dashStyle=function(a){return arguments.length?(s=a,z):s},z.renderArea=function(a){return arguments.length?(A=a,z):A},z.xyTipsOn=function(a){return arguments.length?(H=a,z):H},z.dotRadius=function(a){return arguments.length?(B=a,z):B},z.renderDataPoints=function(a){return arguments.length?(a?(D=a.fillOpacity||.8,E=a.strokeOpacity||.8,C=a.radius||2):(D=y,E=y,C=null),z):{fillOpacity:D,strokeOpacity:E,radius:C}},z.legendHighlight=function(a){z.isLegendableHidden(a)||z.g().selectAll("path.line, path.area").classed("highlight",q(a.color,a.dashstyle)).classed("fadeout",q(a.color,a.dashstyle,!0))},z.legendReset=function(){z.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},c.override(z,"legendables",function(){var a=z._legendables();return s?a.map(function(a){return a.dashstyle=s,a}):a}),z.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseMixin({}),g={some:"",all:""};return f.html=function(a){return arguments.length?(a.all&&(g.all=a.all),a.some&&(g.some=a.some),f):g},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f._doRender=function(){var a=f.dimension().size(),b=f.group().value(),c=e(a),d=e(b);return a===b&&""!==g.all?f.root().html(g.all.replace("%total-count",c).replace("%filter-count",d)):""!==g.some?f.root().html(g.some.replace("%total-count",c).replace("%filter-count",d)):(f.selectAll(".total-count").text(c),f.selectAll(".filter-count").text(d)),f},f._doRedraw=function(){return f._doRender()},f.anchor(b,d)},c.dataTable=function(b,d){function e(){var a=!0;if(o.forEach(function(b){a&="function"==typeof b}),!a){m.selectAll("th").remove();var b=m.root().selectAll("th").data(o),c=b.enter().append("th");c.attr("class",l).html(function(a){return m._doColumnHeaderFormat(a)})}var d=m.root().selectAll("tbody").data(f(),function(a){return m.keyAccessor()(a)}),e=d.enter().append("tbody");return e.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",o.length).html(function(a){return m.keyAccessor()(a)}),d.exit().remove(),e}function f(){var b;return b=q===a.ascending?m.dimension().bottom(n):m.dimension().top(n),a.nest().key(m.group()).sortKeys(q).entries(b.sort(function(a,b){return q(p(a),p(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return o.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(function(b){return m._doColumnValueFormat(a,b)})}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l="dc-table-head",m=c.baseMixin({}),n=25,o=[],p=function(a){return a},q=a.ascending;return m._doRender=function(){return m.selectAll("tbody").remove(),g(e()),m},m._doColumnValueFormat=function(a,b){return"function"==typeof a?a(b):"string"==typeof a?b[a]:a.format(b)},m._doColumnHeaderFormat=function(a){return"function"==typeof a?m._doColumnHeaderFnToString(a):"string"==typeof a?m._doColumnHeaderCapitalize(a):String(a.label)},m._doColumnHeaderCapitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},m._doColumnHeaderFnToString=function(a){var b=String(a),c=b.indexOf("return ");if(c>=0){var d=b.lastIndexOf(";");if(d>=0){b=b.substring(c+7,d);var e=b.indexOf("numberFormat");e>=0&&(b=b.replace("numberFormat",""))}}return b},m._doRedraw=function(){return m._doRender()},m.size=function(a){return arguments.length?(n=a,m):n},m.columns=function(a){return arguments.length?(o=a,m):o},m.sortBy=function(a){return arguments.length?(p=a,m):p},m.order=function(a){return arguments.length?(q=a,m):q},m.anchor(b,d)},c.dataGrid=function(b,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=c.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

"+l.keyAccessor()(a)+"

"};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,d)},c.bubbleChart=function(a,b){function d(a){var b=a.enter().append("g");b.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),c.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(b),i._doRenderTitles(b)}function e(a){c.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=c.bubbleMixin(c.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,b)},c.compositeChart=function(b,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return c.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return c.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=c.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),c.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),t=a.scale.linear().domain(b).range([0,G.effectiveWidth()])}H.scale(t)}function f(){var a=s.select("g.axis");e(),a.empty()&&(a=s.append("g").attr("class","axis").attr("transform","translate(0, "+G.effectiveHeight()+")")),c.transition(a,G.transitionDuration()).call(H)}function g(){s.selectAll("g.tick").select("line.grid-line").remove(),s.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-G.effectiveHeight()})}function h(){v=G.data(),f(),g();var a=s.selectAll("g."+D).data(v);i(a),j(a),l(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return D+" _"+b});b.append("rect").attr("width",0),n(b),o(a)}function j(a){a.exit().remove()}function k(){var a=t(0);return a===-(1/0)||a!==a?t(1):a}function l(a){var b,d=v.length;b=C?C:(G.effectiveHeight()-(d+1)*B)/d,y||(x=b/2);var e=a.attr("transform",function(a,c){return"translate(0,"+((c+1)*B+c*b)+")"}).select("rect").attr("height",b).attr("fill",G.getColor).on("click",p).classed("deselected",function(a){return G.hasFilter()?!r(a):!1}).classed("selected",function(a){return G.hasFilter()?r(a):!1});c.transition(e,G.transitionDuration()).attr("width",function(a){return Math.abs(k()-t(G.valueAccessor()(a)))}).attr("transform",q),m(a),o(a)}function m(a){G.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(G.title()))}function n(a){G.renderLabel()&&a.append("text").on("click",p),G.renderTitleLabel()&&a.append("text").attr("class",E).on("click",p)}function o(a){if(G.renderLabel()){var b=a.select("text").attr("x",w).attr("y",x).attr("dy",z).on("click",p).attr("class",function(a,b){return D+" _"+b}).text(function(a){return G.label()(a)});c.transition(b,G.transitionDuration()).attr("transform",q)}if(G.renderTitleLabel()){var d=a.select("."+E).attr("x",G.effectiveWidth()-A).attr("y",x).attr("text-anchor","end").on("click",p).attr("class",function(a,b){return E+" _"+b}).text(function(a){return G.title()(a)});c.transition(d,G.transitionDuration()).attr("transform",q)}}function p(a){G.onClick(a)}function q(a){var b=t(G.cappedValueAccessor(a)),c=k(),d=b>c?c:b;return"translate("+d+",0)"}function r(a){return G.hasFilter(G.cappedKeyAccessor(a))}var s,t,u,v,w=10,x=15,y=!1,z="0.35em",A=2,B=5,C=!1,D="row",E="titlerow",F=!1,G=c.capMixin(c.marginMixin(c.colorMixin(c.baseMixin({})))),H=a.svg.axis().orient("bottom");return G.rowsCap=G.cap,G._doRender=function(){return G.resetSvg(),s=G.svg().append("g").attr("transform","translate("+G.margins().left+","+G.margins().top+")"),h(),G},G.title(function(a){return G.cappedKeyAccessor(a)+": "+G.cappedValueAccessor(a)}),G.label(G.cappedKeyAccessor),G.x=function(a){return arguments.length?(t=a,G):t},G.renderTitleLabel=function(a){return arguments.length?(F=a,G):F},G._doRedraw=function(){return h(),G},G.xAxis=function(){return H},G.fixedBarHeight=function(a){return arguments.length?(C=a,G):C},G.gap=function(a){return arguments.length?(B=a,G):B},G.elasticX=function(a){return arguments.length?(u=a,G):u},G.labelOffsetX=function(a){return arguments.length?(w=a,G):w},G.labelOffsetY=function(a){return arguments.length?(x=a,y=!0,G):x},G.titleLabelOffsetX=function(a){return arguments.length?(A=a,G):A},G.anchor(b,d)},c.legend=function(){function a(){return j+i}var b,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70,n=!1;return f.parent=function(a){return arguments.length?(b=a,f):b},f.render=function(){b.svg().select("g.dc-legend").remove(),d=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=b.legendables(),o=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)}).on("click",function(a){a.chart.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(c.pluck("dashstyle"))?o.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",c.pluck("dashstyle")).attr("stroke",c.pluck("color")):o.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),o.append("text").text(c.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var p=0,q=0;o.attr("transform",function(b,c){if(k){var d="translate("+p+","+q*a()+")",e=n===!0?this.getBBox().width+j:m;return p+e>=l?(++q,p=0):p+=e,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f.autoItemWidth=function(a){return arguments.length?(n=a,f):n},f},c.scatterPlot=function(b,d){function e(b,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return b(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),c.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var b=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});c.transition(b,g.transitionDuration()).attr("d",h)}var g=c.coordinateGridMixin({}),h=a.svg.symbol(),i=function(a){return a.value},j=g.keyAccessor();g.keyAccessor(function(a){return j(a)[0]}),g.valueAccessor(function(a){return j(a)[1]}),g.colorAccessor(function(){return g._groupName});var k=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},l=3,m=5,n=0;return h.size(function(a){return i(a)?this.filtered?Math.pow(m,2):Math.pow(l,2):n}),c.override(g,"_filter",function(a){return arguments.length?g.__filter(c.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",k),c.transition(a,g.transitionDuration()).attr("opacity",function(a){return i(a)?1:0}).attr("fill",g.getColor).attr("transform",k).attr("d",h),c.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.existenceAccessor=function(a){return arguments.length?(i=a,this):i},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(l=a,g):l},g.highlightedSize=function(a){return arguments.length?(m=a,g):m},g.hiddenSize=function(a){return arguments.length?(n=a,g):n},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")===b.color},m),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")===b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))c.events.trigger(function(){g.filter(null),g.redrawGroup()}),f(!1);else{var b=c.filters.RangedTwoDimensionalFilter(a);c.events.trigger(function(){g.filter(null),g.filter(b),g.redrawGroup()},c.constants.EVENT_DELAY),f(b)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(b,d)},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseMixin({}),h={one:"",some:"",none:""};return g._mandatoryAttributes(["group"]),g.html=function(a){return arguments.length?(a.none?h.none=a.none:a.one?h.none=a.one:a.some&&(h.none=a.some),a.one?h.one=a.one:a.some&&(h.one=a.some),a.some?h.some=a.some:a.one&&(h.some=a.one),g):h},g.value=function(){return g.data(); + +},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250),g._doRender=function(){var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);return this.lastValue=b,function(a){var d=null,e=g.formatNumber()(c(a));0===b&&""!==h.none?d=h.none:1===b&&""!==h.one?d=h.one:""!==h.some&&(d=h.some),this.innerHTML=d?d.replace("%number",e):e}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},c.heatMap=function(b,d){function e(a,b){var d=p.selectAll(".box-group").filter(function(c){return c.key[a]===b}),e=d.filter(function(a){return!p.hasFilter(a.key)});c.events.trigger(function(){e.empty()?d.each(function(a){p.filter(a.key)}):e.each(function(a){p.filter(a.key)}),p.redrawGroup()})}var f,g,h,i=6.75,j=a.ascending,k=a.ascending,l=a.scale.ordinal(),m=a.scale.ordinal(),n=i,o=i,p=c.colorMixin(c.marginMixin(c.baseMixin({})));p._mandatoryAttributes(["group"]),p.title(p.colorAccessor());var q=function(a){return a},r=function(a){return a};p.colsLabel=function(a){return arguments.length?(q=a,p):q},p.rowsLabel=function(a){return arguments.length?(r=a,p):r};var s=function(a){e(0,a)},t=function(a){e(1,a)},u=function(a){var b=a.key;c.events.trigger(function(){p.filter(b),p.redrawGroup()})};return c.override(p,"filter",function(a){return arguments.length?p._filter(c.filters.TwoDimensionalFilter(a)):p._filter()}),p.rows=function(a){return arguments.length?(h=a,p):h},p.rowOrdering=function(a){return arguments.length?(k=a,p):k},p.cols=function(a){return arguments.length?(g=a,p):g},p.colOrdering=function(a){return arguments.length?(j=a,p):j},p._doRender=function(){return p.resetSvg(),f=p.svg().append("g").attr("class","heatmap").attr("transform","translate("+p.margins().left+","+p.margins().top+")"),p._doRedraw()},p._doRedraw=function(){var a=p.data(),b=p.rows()||a.map(p.valueAccessor()),d=p.cols()||a.map(p.keyAccessor());k&&(b=b.sort(k)),j&&(d=d.sort(j)),b=m.domain(b),d=l.domain(d);var e=b.domain().length,g=d.domain().length,h=Math.floor(p.effectiveWidth()/g),i=Math.floor(p.effectiveHeight()/e);d.rangeRoundBands([0,p.effectiveWidth()]),b.rangeRoundBands([p.effectiveHeight(),0]);var q=f.selectAll("g.box-group").data(p.data(),function(a,b){return p.keyAccessor()(a,b)+"\x00"+p.valueAccessor()(a,b)}),r=q.enter().append("g").attr("class","box-group");r.append("rect").attr("class","heat-box").attr("fill","white").on("click",p.boxOnClick()),p.renderTitle()&&(r.append("title"),q.selectAll("title").text(p.title())),c.transition(q.selectAll("rect"),p.transitionDuration()).attr("x",function(a,b){return d(p.keyAccessor()(a,b))}).attr("y",function(a,c){return b(p.valueAccessor()(a,c))}).attr("rx",n).attr("ry",o).attr("fill",p.getColor).attr("width",h).attr("height",i),q.exit().remove();var s=f.selectAll("g.cols");s.empty()&&(s=f.append("g").attr("class","cols axis"));var t=s.selectAll("text").data(d.domain());t.enter().append("text").attr("x",function(a){return d(a)+h/2}).style("text-anchor","middle").attr("y",p.effectiveHeight()).attr("dy",12).on("click",p.xAxisOnClick()).text(p.colsLabel()),c.transition(t,p.transitionDuration()).text(p.colsLabel()).attr("x",function(a){return d(a)+h/2}),t.exit().remove();var u=f.selectAll("g.rows");u.empty()&&(u=f.append("g").attr("class","rows axis"));var v=u.selectAll("text").data(b.domain());return v.enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",p.yAxisOnClick()).text(p.rowsLabel()),c.transition(v,p.transitionDuration()).text(p.rowsLabel()).attr("y",function(a){return b(a)+i/2}),v.exit().remove(),p.selectAll("g.box-group").each(p.hasFilter()?function(a){p.isSelectedNode(a)?p.highlightSelected(this):p.fadeDeselected(this)}:function(){p.resetHighlight(this)}),p},p.boxOnClick=function(a){return arguments.length?(u=a,p):u},p.xAxisOnClick=function(a){return arguments.length?(s=a,p):s},p.yAxisOnClick=function(a){return arguments.length?(t=a,p):t},p.xBorderRadius=function(a){return arguments.length?(n=a,p):n},p.yBorderRadius=function(a){return arguments.length?(o=a,p):o},p.isSelectedNode=function(a){return p.hasFilter(a.key)},p.anchor(b,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null===b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),c.boxPlot=function(b,d){function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}function f(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function g(b){c.transition(b,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function h(a){a.exit().remove().call(m)}var i=c.coordinateGridMixin({}),j=1.5,k=e,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(c.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+", 0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});f(b),g(b),h(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var b=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return c.utils.subtract(b,i.yAxisPadding())},i.yAxisMax=function(){var b=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return c.utils.add(b,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(b,d)},c.abstractBubbleChart=c.bubbleMixin,c.baseChart=c.baseMixin,c.capped=c.capMixin,c.colorChart=c.colorMixin,c.coordinateGridChart=c.coordinateGridMixin,c.marginable=c.marginMixin,c.stackableChart=c.stackMixin,c.d3=a,c.crossfilter=b,c}if("function"==typeof define&&define.amd)define(["d3","crossfilter"],a);else if("object"==typeof module&&module.exports){var b=require("d3"),c=require("crossfilter");"function"!=typeof c&&(c=c.crossfilter),module.exports=a(b,c)}else this.dc=a(d3,crossfilter)}(); //# sourceMappingURL=dc.min.js.map \ No newline at end of file diff --git a/dc.min.js.map b/dc.min.js.map index 9d21494fc..2e2139faa 100644 --- a/dc.min.js.map +++ b/dc.min.js.map @@ -1 +1 @@ -{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","label","legendLabelAccessor","_legendLabelAccessor","_defaultAccessor","getLegendLabel","_colors","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","scale","category20c","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_legendLabelAccessor","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","legendLabelAccessor","label","getLegendLabel","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"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"} \ No newline at end of file diff --git a/src/base-mixin.js b/src/base-mixin.js index b0d746d6f..095da2fc4 100644 --- a/src/base-mixin.js +++ b/src/base-mixin.js @@ -31,7 +31,7 @@ dc.baseMixin = function (_chart) { var _keyAccessor = dc.pluck('key'); var _valueAccessor = dc.pluck('value'); var _label = dc.pluck('key'); - var _legend_label = dc.pluck('key'); + var _legendLabelAccessor = dc.pluck('key'); var _ordering = dc.pluck('key'); var _orderSort; @@ -895,6 +895,14 @@ dc.baseMixin = function (_chart) { return _chart; }; + _chart.legendLabelAccessor = function (_) { + if (!arguments.length) { + return _legendLabelAccessor; + } + _legendLabelAccessor = _; + return _chart; + }; + /** #### .label([labelFunction]) Set or get the label function. The chart class will use this function to render labels for each @@ -917,17 +925,9 @@ dc.baseMixin = function (_chart) { _renderLabel = true; return _chart; }; - _chart.legendLabelAccessor = function (_) { - if (!arguments.length) { - return _legendLabelAccessor; - } - _legendLabelAccessor = _; - _defaultAccessor = false; - return _chart; - }; _chart.getLegendLabel = function (d, i) { - return _colors(_legendLabelAccessor.call(this, d, i)); + return _legendLabelAccessor.call(this, d, i); }; /** diff --git a/src/pie-chart.js b/src/pie-chart.js index b0c2817ce..5ec34a0cc 100644 --- a/src/pie-chart.js +++ b/src/pie-chart.js @@ -51,6 +51,7 @@ dc.pieChart = function (parent, chartGroup) { var _chart = dc.capMixin(dc.colorMixin(dc.baseMixin({}))); _chart.colorAccessor(_chart.cappedKeyAccessor); + _chart.legendLabelAccessor(_chart.cappedKeyAccessor); _chart.title(function (d) { return _chart.cappedKeyAccessor(d) + ': ' + _chart.cappedValueAccessor(d); From 4c1c6a9bcd3ad27218ece90ed737eb5c8935c008 Mon Sep 17 00:00:00 2001 From: Antonio Grass Date: Tue, 14 Apr 2015 18:08:01 -0300 Subject: [PATCH 04/11] remove dependencies --- package.json | 52 ---------------------------------------------------- 1 file changed, 52 deletions(-) diff --git a/package.json b/package.json index 8a4e850b4..3eb4e4e6b 100644 --- a/package.json +++ b/package.json @@ -27,58 +27,6 @@ "dependencies": { "crossfilter": "1.x", "d3": "3.x", - "handlebars": "~3.0.1", - "supports-color": "~1.3.1", - "wordwrap": "0.0.2", - "fileset": "~0.1.5", - "js-yaml": "~3.2.7", - "esprima": "~2.1.0", - "escodegen": "~1.6.1", - "resolve": "~1.1.6", - "lodash": "~3.6.0", - "brace-expansion": "~1.1.0", - "open": "0.0.5", - "wrappy": "~1.0.1", - "module-deps": "~3.7.6", - "deps-sort": "~1.3.5", - "browser-pack": "~4.0.1", - "insert-module-globals": "~6.2.1", - "syntax-error": "~1.1.2", - "assert": "~1.3.0", - "buffer": "~3.1.2", - "console-browserify": "~1.1.0", - "depd": "~1.0.1", - "chalk": "~1.0.0", - "underscore": "~1.8.3", - "finalhandler": "~0.3.4", - "debug": "~2.1.3", - "parseurl": "~1.3.0", - "bytes": "~2.0.0", - "cli": "~0.6.6", - "content-type": "~1.0.1", - "shelljs": "~0.4.0", - "cookie-parser": "~1.3.4", - "http-errors": "~1.3.1", - "q": "~1.2.0", - "vow": "~0.4.9", - "htmlparser2": "~3.8.2", - "cookie-signature": "~1.0.6", - "exit": "~0.1.2", - "jscs": "~1.12.0", - "wrench": "~1.5.8", - "type-is": "~1.6.1", - "utils-merge": "~1.0.0", - "hooker": "~0.2.3", - "cookie": "~0.1.2", - "on-headers": "~1.0.0", - "jasmine-core": "~2.2.0", - "serve-static": "~1.9.2", - "strip-json-comments": "~1.0.2", - "q-io": "~1.12.0", - "pako": "~0.2.6", - "sauce-tunnel": "~2.2.3", - "constants-browserify": "0.0.1", - "marked": "~0.3.3" }, "devDependencies": { "emu": "~0.0.2", From 26c511785f5f64edc5906b37d5f7c7e592d46ba9 Mon Sep 17 00:00:00 2001 From: Antonio Grass Date: Tue, 14 Apr 2015 18:09:16 -0300 Subject: [PATCH 05/11] fix --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3eb4e4e6b..10ea7f340 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ }, "dependencies": { "crossfilter": "1.x", - "d3": "3.x", + "d3": "3.x" }, "devDependencies": { "emu": "~0.0.2", From 2ab686122ccd58eaa08dfa4749c1609892be6cd0 Mon Sep 17 00:00:00 2001 From: Antonio Grass Date: Fri, 17 Apr 2015 18:40:01 -0300 Subject: [PATCH 06/11] add test and remove helper --- dc.js | 19 ++++++++++++----- dc.min.js | 7 +++--- dc.min.js.map | 2 +- package.json | 34 +++++++++++++++++++++++++++++- spec/bar-chart-spec.js | 0 spec/base-mixin-spec.js | 0 spec/biggish-data-spec.js | 0 spec/box-plot-spec.js | 0 spec/bubble-chart-spec.js | 0 spec/bubble-overlay-spec.js | 0 spec/color-spec.js | 0 spec/composite-chart-spec.js | 0 spec/coordinate-grid-chart-spec.js | 0 spec/core-spec.js | 0 spec/data-addition-spec.js | 0 spec/data-count-spec.js | 0 spec/data-grid-spec.js | 0 spec/data-table-spec.js | 0 spec/event-spec.js | 0 spec/filter-dates-spec.js | 0 spec/filters-spec.js | 0 spec/geo-choropleth-chart-spec.js | 0 spec/heatmap-spec.js | 0 spec/helpers/custom_matchers.js | 0 spec/helpers/fixtures.js | 0 spec/helpers/geoFixtures.js | 0 spec/helpers/spec-helper.js | 0 spec/legend-spec.js | 0 spec/line-chart-spec.js | 0 spec/logger-spec.js | 0 spec/number-display-spec.js | 0 spec/pie-chart-spec.js | 26 +++++++++++++++++++++++ spec/row-chart-spec.js | 0 spec/scatter-plot-spec.js | 0 spec/series-chart-spec.js | 0 spec/utils-spec.js | 0 src/base-mixin.js | 17 +++++++++++---- src/pie-chart.js | 2 +- 38 files changed, 91 insertions(+), 16 deletions(-) mode change 100644 => 100755 spec/bar-chart-spec.js mode change 100644 => 100755 spec/base-mixin-spec.js mode change 100644 => 100755 spec/biggish-data-spec.js mode change 100644 => 100755 spec/box-plot-spec.js mode change 100644 => 100755 spec/bubble-chart-spec.js mode change 100644 => 100755 spec/bubble-overlay-spec.js mode change 100644 => 100755 spec/color-spec.js mode change 100644 => 100755 spec/composite-chart-spec.js mode change 100644 => 100755 spec/coordinate-grid-chart-spec.js mode change 100644 => 100755 spec/core-spec.js mode change 100644 => 100755 spec/data-addition-spec.js mode change 100644 => 100755 spec/data-count-spec.js mode change 100644 => 100755 spec/data-grid-spec.js mode change 100644 => 100755 spec/data-table-spec.js mode change 100644 => 100755 spec/event-spec.js mode change 100644 => 100755 spec/filter-dates-spec.js mode change 100644 => 100755 spec/filters-spec.js mode change 100644 => 100755 spec/geo-choropleth-chart-spec.js mode change 100644 => 100755 spec/heatmap-spec.js mode change 100644 => 100755 spec/helpers/custom_matchers.js mode change 100644 => 100755 spec/helpers/fixtures.js mode change 100644 => 100755 spec/helpers/geoFixtures.js mode change 100644 => 100755 spec/helpers/spec-helper.js mode change 100644 => 100755 spec/legend-spec.js mode change 100644 => 100755 spec/line-chart-spec.js mode change 100644 => 100755 spec/logger-spec.js mode change 100644 => 100755 spec/number-display-spec.js mode change 100644 => 100755 spec/pie-chart-spec.js mode change 100644 => 100755 spec/row-chart-spec.js mode change 100644 => 100755 spec/scatter-plot-spec.js mode change 100644 => 100755 spec/series-chart-spec.js mode change 100644 => 100755 spec/utils-spec.js diff --git a/dc.js b/dc.js index 4ddd9bf38..e712be72c 100644 --- a/dc.js +++ b/dc.js @@ -1545,6 +1545,19 @@ dc.baseMixin = function (_chart) { return _chart; }; + + /** + #### .legendLabelAccessor([legendLabelAccessorFunction]) + Set or get the legend label accessor function. The legend label accessor function is used to retrieve the + value from the legend label for the crossfilter group. + ```js + // default legenLabel accessor + chart.legendLabelAccessor(function(d) { return d.key; }); + // custom legen label accessor for a multi-value crossfilter reduction + chart.legendLabelAccessor(function(p) { return "Custom Legend:" + p.key; }); + ``` + + **/ _chart.legendLabelAccessor = function (_) { if (!arguments.length) { return _legendLabelAccessor; @@ -1576,10 +1589,6 @@ dc.baseMixin = function (_chart) { return _chart; }; - _chart.getLegendLabel = function (d, i) { - return _legendLabelAccessor.call(this, d, i); - }; - /** #### .renderLabel(boolean) Turn on/off label rendering @@ -4137,7 +4146,7 @@ dc.pieChart = function (parent, chartGroup) { _chart.legendables = function () { return _chart.data().map(function (d, i) { - var legendable = {name: _chart.getLegendLabel(d, i), data: d.value, others: d.others, chart:_chart}; + var legendable = {name: _chart.legendLabelAccessor(d, i), data: d.value, others: d.others, chart:_chart}; legendable.color = _chart.getColor(d, i); return legendable; }); diff --git a/dc.min.js b/dc.min.js index ed335ebbd..30a10f40e 100644 --- a/dc.min.js +++ b/dc.min.js @@ -1,5 +1,4 @@ -!function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&do?b:o},q=p,r=200,s=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>r?b:r},t=s,u=c.pluck("key"),v=c.pluck("value"),w=c.pluck("key"),x=c.pluck("key"),y=c.pluck("key"),z=!1,A=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},B=!0,C=750,D=c.printers.filters,E=["dimension","group"],F=c.constants.DEFAULT_CHART_GROUP,G=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),H=[],I=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c=d&&d>=a)return!0}return!1}),b},J=function(a){return a.all()};d.width=function(b){return arguments.length?(q=a.functor(b||p),d):q(k.node())},d.height=function(b){return arguments.length?(t=a.functor(b||s),d):t(k.node())},d.minWidth=function(a){return arguments.length?(o=a,d):o},d.minHeight=function(a){return arguments.length?(r=a,d):r},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(J=a.functor(b),d.expireCache(),d):J.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(y=a,m=b.quicksort.by(y),d.expireCache(),d):y},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(m||(m=b.quicksort.by(y)),m(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root()):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e)),F=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(D=a,d):D},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(D(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(C=a,d):C},d._mandatoryAttributes=function(a){return arguments.length?(E=a,d):E},d.render=function(){G.preRender(d),E&&E.forEach(f);var a=d._doRender();return n&&n.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){G.renderlet(d),a&&G[a](d)}):(G.renderlet(d),a&&G[a](d))},d.redraw=function(){G.preRedraw(d);var a=d._doRedraw();return n&&n.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&G.filtered(d,a)},d._invokeZoomedListener=function(){G.zoomed(d)};var K=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(K=a,d):K},d.hasFilter=function(a){return K(H,a)};var L=function(a,b){for(var c=0;c=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(L=a,d):L};var M=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(M=a,d):M};var N=function(a){return[]};return d.resetFilterHandler=function(a){return arguments.length?(N=a,d):N},d.replaceFilter=function(a){H=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?L(H,a):M(H,a)}):null===a?H=N(H):d.hasFilter(a)?L(H,a):M(H,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):H.length>0?H[0]:null},d.filters=function(){return H},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(I=a,d):I},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(u=a,d):u},d.valueAccessor=function(a){return arguments.length?(v=a,d):v},d.legendLabelAccessor=function(a){return arguments.length?(x=a,d):x},d.label=function(a){return arguments.length?(w=a,z=!0,d):w},d.getLegendLabel=function(a,b){return x.call(this,a,b)},d.renderLabel=function(a){return arguments.length?(z=a,d):z},d.title=function(a){return arguments.length?(A=a,d):A},d.renderTitle=function(a){return arguments.length?(B=a,d):B},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(F=a,d):F},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(n=a,n.parent(d),d):n},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return G.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],ba,b._useOuterPadding()?aa:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,aa=.5,ba=0,ca=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(ca=a,b):ca},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),ca&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=ca?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=ca?b.width()-P:P,d=ca?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(ba=a,b):ba},b._outerRangeBandPadding=function(a){return arguments.length?(aa=a,b):aa},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(d===1/0)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b), -isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"}function C(b,c){O.selectAll("g.pie-slice").each(function(d){b.name===d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G,H,I=.5,J="pie-slice",K="empty-chart",L="empty",M=0,N=I,O=c.capMixin(c.colorMixin(c.baseMixin({})));return O.colorAccessor(O.cappedKeyAccessor),O.legendLabelAccessor(O.cappedKeyAccessor),O.title(function(a){return O.cappedKeyAccessor(a)+": "+O.cappedValueAccessor(a)}),O.slicesCap=O.cap,O.label(O.cappedKeyAccessor),O.renderLabel(!0),O.transitionDuration(350),O._doRender=function(){return O.resetSvg(),E=O.svg().append("g").attr("transform","translate("+O.cx()+","+O.cy()+")"),e(),O},O.innerRadius=function(a){return arguments.length?(M=a,O):M},O.radius=function(a){return arguments.length?(D=a,O):D},O.cx=function(a){return arguments.length?(F=a,O):F||O.width()/2},O.cy=function(a){return arguments.length?(G=a,O):G||O.height()/2},O._doRedraw=function(){return e(),O},O.minAngleForLabel=function(a){return arguments.length?(N=a,O):N},O.emptyTitle=function(a){return 0===arguments.length?L:(L=a,O)},O.externalLabels=function(a){return 0===arguments.length?H:(H=a?a:void 0,O)},O.legendables=function(){return O.data().map(function(a,b){var c={name:O.getLegendLabel(a,b),data:a.value,others:a.others,chart:O};return c.color=O.getColor(a,b),c})},O.legendHighlight=function(a){C(a,!0)},O.legendReset=function(a){C(a,!1)},O.legendToggle=function(a){O.onClick({key:a.name,others:a.others})},O.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(l.y()(a.y+a.y0)-l.y()(a.y0)))}function f(a,b,d){var f=a.selectAll("rect.bar").data(d.values,c.pluck("x")),g=f.enter().append("rect").attr("class","bar").attr("fill",c.pluck("data",l.getColor)).attr("y",l.yAxisHeight()).attr("height",0);l.renderTitle()&&g.append("title").text(c.pluck("data",l.title(d.name))),l.isOrdinal()&&f.on("click",l.onClick),c.transition(f,l.transitionDuration()).attr("x",function(a){var b=l.x()(a.x);return n&&(b-=i/2),l.isOrdinal()&&void 0!==m&&(b+=m/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=l.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",i).attr("height",function(a){return e(a)}).attr("fill",c.pluck("data",l.getColor)).select("title").text(c.pluck("data",l.title(d.name))),c.transition(f.exit(),l.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===i){var a=l.xUnitCount();i=Math.floor(l.isOrdinal()&&void 0===m?l.x().rangeBand():m?(l.xAxisLength()-(a-1)*m)/a:l.xAxisLength()/(1+l.barPadding())/a),(i===1/0||isNaN(i)||j>i)&&(i=j)}}function h(b,c){return function(){var d=a.select(this),e=d.attr("fill")===b;return c?!e:e}}var i,j=1,k=2,l=c.stackMixin(c.coordinateGridMixin({})),m=k,n=!1,o=!1;return c.override(l,"rescale",function(){l._rescale(),i=void 0}),c.override(l,"render",function(){l.round()&&n&&!o&&c.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),l._render()}),l.plotData=function(){var b=l.chartBodyG().selectAll("g.stack").data(l.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},l.fadeDeselectedArea=function(){var a=l.chartBodyG().selectAll("rect.bar"),b=l.brush().extent();if(l.isOrdinal())l.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return l.hasFilter(a.x)}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!l.hasFilter(a.x)})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(l.brushIsEmpty(b))a.classed(c.constants.DESELECTED_CLASS,!1);else{var d=b[0],e=b[1];a.classed(c.constants.DESELECTED_CLASS,function(a){return a.x=e})}},l.centerBar=function(a){return arguments.length?(n=a,l):n},c.override(l,"onClick",function(a){l._onClick(a.data)}),l.barPadding=function(a){return arguments.length?(l._rangeBandPadding(a),m=void 0,l):l._rangeBandPadding()},l._useOuterPadding=function(){return void 0===m},l.outerPadding=l._outerRangeBandPadding,l.gap=function(a){return arguments.length?(m=a,l):m},l.extendBrush=function(){var a=l.brush().extent();return!l.round()||n&&!o||(a[0]=a.map(l.round())[0],a[1]=a.map(l.round())[1],l.chartBodyG().select(".brush").call(l.brush().extent(a))),a},l.alwaysUseRounding=function(a){return arguments.length?(o=a,l):o},l.legendHighlight=function(a){l.isLegendableHidden(a)||l.g().selectAll("rect.bar").classed("highlight",h(a.color)).classed("fadeout",h(a.color,!0))},l.legendReset=function(){l.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},c.override(l,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in l.xUnits()){var b=l.xUnits().resolution;a+=b}return a}),l.anchor(b,d)},c.lineChart=function(b,d){function e(a,b){return z.getColor.call(a,a.values,b)}function f(b,d){var f=a.svg.line().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).interpolate(F).tension(G);r&&f.defined(r);var g=b.append("path").attr("class","line").attr("stroke",e);s&&g.attr("stroke-dasharray",s),c.transition(d.select("path.line"),z.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(b,d){if(A){var f=a.svg.area().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).y0(function(a){return z.y()(a.y0)}).interpolate(F).tension(G);r&&f.defined(r),b.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),c.transition(d.select("path.area"),z.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(b,d){if(!z.brushOn()&&z.xyTipsOn()){var e=u+"-list",f=b.select("g."+e);f.empty()&&(f=b.append("g").attr("class",e)),d.each(function(b,d){var e=b.values;r&&(e=e.filter(r));var g=f.select("g."+u+"._"+d);g.empty()&&(g=f.append("g").attr("class",u+" _"+d)),j(g);var h=g.selectAll("circle."+v).data(e,c.pluck("x"));h.enter().append("circle").attr("class",v).attr("r",m()).style("fill-opacity",D).style("stroke-opacity",E).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}),h.attr("cx",function(a){return c.utils.safeNumber(z.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(z.y()(a.y+a.y0))}).attr("fill",z.getColor).call(p,b),h.exit().remove()})}}function j(a){var b=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+x).empty()?a.append("path").attr("class",x):a.select("path."+x);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",B),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=z._yAxisX()-z.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+z.yAxisHeight()+"L"+c+" "+d;b.select("path."+w).style("display","").attr("d",f),b.select("path."+x).style("display","").attr("d",g)}function m(){return C||B}function n(a){a.style("fill-opacity",D).style("stroke-opacity",E).attr("r",m())}function o(a){a.select("path."+w).style("display","none"),a.select("path."+x).style("display","none")}function p(a,b){z.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(c.pluck("data",z.title(b.name))))}function q(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")===b&&e.attr("stroke-dasharray")===(c instanceof Array?c.join(","):null)||e.attr("fill")===b;return d?!f:f}}var r,s,t=5,u="dc-tooltip",v="dot",w="yRef",x="xRef",y=1e-6,z=c.stackMixin(c.coordinateGridMixin({})),A=!1,B=t,C=null,D=y,E=y,F="linear",G=.7,H=!0;return z.transitionDuration(500),z._rangeBandPadding(1),z.plotData=function(){var a=z.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(z.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},z.interpolate=function(a){return arguments.length?(F=a,z):F},z.tension=function(a){return arguments.length?(G=a,z):G},z.defined=function(a){return arguments.length?(r=a,z):r},z.dashStyle=function(a){return arguments.length?(s=a,z):s},z.renderArea=function(a){return arguments.length?(A=a,z):A},z.xyTipsOn=function(a){return arguments.length?(H=a,z):H},z.dotRadius=function(a){return arguments.length?(B=a,z):B},z.renderDataPoints=function(a){return arguments.length?(a?(D=a.fillOpacity||.8,E=a.strokeOpacity||.8,C=a.radius||2):(D=y,E=y,C=null),z):{fillOpacity:D,strokeOpacity:E,radius:C}},z.legendHighlight=function(a){z.isLegendableHidden(a)||z.g().selectAll("path.line, path.area").classed("highlight",q(a.color,a.dashstyle)).classed("fadeout",q(a.color,a.dashstyle,!0))},z.legendReset=function(){z.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},c.override(z,"legendables",function(){var a=z._legendables();return s?a.map(function(a){return a.dashstyle=s,a}):a}),z.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseMixin({}),g={some:"",all:""};return f.html=function(a){return arguments.length?(a.all&&(g.all=a.all),a.some&&(g.some=a.some),f):g},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f._doRender=function(){var a=f.dimension().size(),b=f.group().value(),c=e(a),d=e(b);return a===b&&""!==g.all?f.root().html(g.all.replace("%total-count",c).replace("%filter-count",d)):""!==g.some?f.root().html(g.some.replace("%total-count",c).replace("%filter-count",d)):(f.selectAll(".total-count").text(c),f.selectAll(".filter-count").text(d)),f},f._doRedraw=function(){return f._doRender()},f.anchor(b,d)},c.dataTable=function(b,d){function e(){var a=!0;if(o.forEach(function(b){a&="function"==typeof b}),!a){m.selectAll("th").remove();var b=m.root().selectAll("th").data(o),c=b.enter().append("th");c.attr("class",l).html(function(a){return m._doColumnHeaderFormat(a)})}var d=m.root().selectAll("tbody").data(f(),function(a){return m.keyAccessor()(a)}),e=d.enter().append("tbody");return e.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",o.length).html(function(a){return m.keyAccessor()(a)}),d.exit().remove(),e}function f(){var b;return b=q===a.ascending?m.dimension().bottom(n):m.dimension().top(n),a.nest().key(m.group()).sortKeys(q).entries(b.sort(function(a,b){return q(p(a),p(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return o.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(function(b){return m._doColumnValueFormat(a,b)})}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l="dc-table-head",m=c.baseMixin({}),n=25,o=[],p=function(a){return a},q=a.ascending;return m._doRender=function(){return m.selectAll("tbody").remove(),g(e()),m},m._doColumnValueFormat=function(a,b){return"function"==typeof a?a(b):"string"==typeof a?b[a]:a.format(b)},m._doColumnHeaderFormat=function(a){return"function"==typeof a?m._doColumnHeaderFnToString(a):"string"==typeof a?m._doColumnHeaderCapitalize(a):String(a.label)},m._doColumnHeaderCapitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},m._doColumnHeaderFnToString=function(a){var b=String(a),c=b.indexOf("return ");if(c>=0){var d=b.lastIndexOf(";");if(d>=0){b=b.substring(c+7,d);var e=b.indexOf("numberFormat");e>=0&&(b=b.replace("numberFormat",""))}}return b},m._doRedraw=function(){return m._doRender()},m.size=function(a){return arguments.length?(n=a,m):n},m.columns=function(a){return arguments.length?(o=a,m):o},m.sortBy=function(a){return arguments.length?(p=a,m):p},m.order=function(a){return arguments.length?(q=a,m):q},m.anchor(b,d)},c.dataGrid=function(b,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=c.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

"+l.keyAccessor()(a)+"

"};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,d)},c.bubbleChart=function(a,b){function d(a){var b=a.enter().append("g");b.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),c.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(b),i._doRenderTitles(b)}function e(a){c.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=c.bubbleMixin(c.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,b)},c.compositeChart=function(b,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return c.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return c.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=c.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),c.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),t=a.scale.linear().domain(b).range([0,G.effectiveWidth()])}H.scale(t)}function f(){var a=s.select("g.axis");e(),a.empty()&&(a=s.append("g").attr("class","axis").attr("transform","translate(0, "+G.effectiveHeight()+")")),c.transition(a,G.transitionDuration()).call(H)}function g(){s.selectAll("g.tick").select("line.grid-line").remove(),s.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-G.effectiveHeight()})}function h(){v=G.data(),f(),g();var a=s.selectAll("g."+D).data(v);i(a),j(a),l(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return D+" _"+b});b.append("rect").attr("width",0),n(b),o(a)}function j(a){a.exit().remove()}function k(){var a=t(0);return a===-(1/0)||a!==a?t(1):a}function l(a){var b,d=v.length;b=C?C:(G.effectiveHeight()-(d+1)*B)/d,y||(x=b/2);var e=a.attr("transform",function(a,c){return"translate(0,"+((c+1)*B+c*b)+")"}).select("rect").attr("height",b).attr("fill",G.getColor).on("click",p).classed("deselected",function(a){return G.hasFilter()?!r(a):!1}).classed("selected",function(a){return G.hasFilter()?r(a):!1});c.transition(e,G.transitionDuration()).attr("width",function(a){return Math.abs(k()-t(G.valueAccessor()(a)))}).attr("transform",q),m(a),o(a)}function m(a){G.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(G.title()))}function n(a){G.renderLabel()&&a.append("text").on("click",p),G.renderTitleLabel()&&a.append("text").attr("class",E).on("click",p)}function o(a){if(G.renderLabel()){var b=a.select("text").attr("x",w).attr("y",x).attr("dy",z).on("click",p).attr("class",function(a,b){return D+" _"+b}).text(function(a){return G.label()(a)});c.transition(b,G.transitionDuration()).attr("transform",q)}if(G.renderTitleLabel()){var d=a.select("."+E).attr("x",G.effectiveWidth()-A).attr("y",x).attr("text-anchor","end").on("click",p).attr("class",function(a,b){return E+" _"+b}).text(function(a){return G.title()(a)});c.transition(d,G.transitionDuration()).attr("transform",q)}}function p(a){G.onClick(a)}function q(a){var b=t(G.cappedValueAccessor(a)),c=k(),d=b>c?c:b;return"translate("+d+",0)"}function r(a){return G.hasFilter(G.cappedKeyAccessor(a))}var s,t,u,v,w=10,x=15,y=!1,z="0.35em",A=2,B=5,C=!1,D="row",E="titlerow",F=!1,G=c.capMixin(c.marginMixin(c.colorMixin(c.baseMixin({})))),H=a.svg.axis().orient("bottom");return G.rowsCap=G.cap,G._doRender=function(){return G.resetSvg(),s=G.svg().append("g").attr("transform","translate("+G.margins().left+","+G.margins().top+")"),h(),G},G.title(function(a){return G.cappedKeyAccessor(a)+": "+G.cappedValueAccessor(a)}),G.label(G.cappedKeyAccessor),G.x=function(a){return arguments.length?(t=a,G):t},G.renderTitleLabel=function(a){return arguments.length?(F=a,G):F},G._doRedraw=function(){return h(),G},G.xAxis=function(){return H},G.fixedBarHeight=function(a){return arguments.length?(C=a,G):C},G.gap=function(a){return arguments.length?(B=a,G):B},G.elasticX=function(a){return arguments.length?(u=a,G):u},G.labelOffsetX=function(a){return arguments.length?(w=a,G):w},G.labelOffsetY=function(a){return arguments.length?(x=a,y=!0,G):x},G.titleLabelOffsetX=function(a){return arguments.length?(A=a,G):A},G.anchor(b,d)},c.legend=function(){function a(){return j+i}var b,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70,n=!1;return f.parent=function(a){return arguments.length?(b=a,f):b},f.render=function(){b.svg().select("g.dc-legend").remove(),d=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=b.legendables(),o=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)}).on("click",function(a){a.chart.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(c.pluck("dashstyle"))?o.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",c.pluck("dashstyle")).attr("stroke",c.pluck("color")):o.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),o.append("text").text(c.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var p=0,q=0;o.attr("transform",function(b,c){if(k){var d="translate("+p+","+q*a()+")",e=n===!0?this.getBBox().width+j:m;return p+e>=l?(++q,p=0):p+=e,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f.autoItemWidth=function(a){return arguments.length?(n=a,f):n},f},c.scatterPlot=function(b,d){function e(b,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return b(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),c.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var b=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});c.transition(b,g.transitionDuration()).attr("d",h)}var g=c.coordinateGridMixin({}),h=a.svg.symbol(),i=function(a){return a.value},j=g.keyAccessor();g.keyAccessor(function(a){return j(a)[0]}),g.valueAccessor(function(a){return j(a)[1]}),g.colorAccessor(function(){return g._groupName});var k=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},l=3,m=5,n=0;return h.size(function(a){return i(a)?this.filtered?Math.pow(m,2):Math.pow(l,2):n}),c.override(g,"_filter",function(a){return arguments.length?g.__filter(c.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",k),c.transition(a,g.transitionDuration()).attr("opacity",function(a){return i(a)?1:0}).attr("fill",g.getColor).attr("transform",k).attr("d",h),c.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.existenceAccessor=function(a){return arguments.length?(i=a,this):i},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(l=a,g):l},g.highlightedSize=function(a){return arguments.length?(m=a,g):m},g.hiddenSize=function(a){return arguments.length?(n=a,g):n},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")===b.color},m),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")===b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))c.events.trigger(function(){g.filter(null),g.redrawGroup()}),f(!1);else{var b=c.filters.RangedTwoDimensionalFilter(a);c.events.trigger(function(){g.filter(null),g.filter(b),g.redrawGroup()},c.constants.EVENT_DELAY),f(b)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(b,d)},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseMixin({}),h={one:"",some:"",none:""};return g._mandatoryAttributes(["group"]),g.html=function(a){return arguments.length?(a.none?h.none=a.none:a.one?h.none=a.one:a.some&&(h.none=a.some),a.one?h.one=a.one:a.some&&(h.one=a.some),a.some?h.some=a.some:a.one&&(h.some=a.one),g):h},g.value=function(){return g.data(); - -},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250),g._doRender=function(){var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);return this.lastValue=b,function(a){var d=null,e=g.formatNumber()(c(a));0===b&&""!==h.none?d=h.none:1===b&&""!==h.one?d=h.one:""!==h.some&&(d=h.some),this.innerHTML=d?d.replace("%number",e):e}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},c.heatMap=function(b,d){function e(a,b){var d=p.selectAll(".box-group").filter(function(c){return c.key[a]===b}),e=d.filter(function(a){return!p.hasFilter(a.key)});c.events.trigger(function(){e.empty()?d.each(function(a){p.filter(a.key)}):e.each(function(a){p.filter(a.key)}),p.redrawGroup()})}var f,g,h,i=6.75,j=a.ascending,k=a.ascending,l=a.scale.ordinal(),m=a.scale.ordinal(),n=i,o=i,p=c.colorMixin(c.marginMixin(c.baseMixin({})));p._mandatoryAttributes(["group"]),p.title(p.colorAccessor());var q=function(a){return a},r=function(a){return a};p.colsLabel=function(a){return arguments.length?(q=a,p):q},p.rowsLabel=function(a){return arguments.length?(r=a,p):r};var s=function(a){e(0,a)},t=function(a){e(1,a)},u=function(a){var b=a.key;c.events.trigger(function(){p.filter(b),p.redrawGroup()})};return c.override(p,"filter",function(a){return arguments.length?p._filter(c.filters.TwoDimensionalFilter(a)):p._filter()}),p.rows=function(a){return arguments.length?(h=a,p):h},p.rowOrdering=function(a){return arguments.length?(k=a,p):k},p.cols=function(a){return arguments.length?(g=a,p):g},p.colOrdering=function(a){return arguments.length?(j=a,p):j},p._doRender=function(){return p.resetSvg(),f=p.svg().append("g").attr("class","heatmap").attr("transform","translate("+p.margins().left+","+p.margins().top+")"),p._doRedraw()},p._doRedraw=function(){var a=p.data(),b=p.rows()||a.map(p.valueAccessor()),d=p.cols()||a.map(p.keyAccessor());k&&(b=b.sort(k)),j&&(d=d.sort(j)),b=m.domain(b),d=l.domain(d);var e=b.domain().length,g=d.domain().length,h=Math.floor(p.effectiveWidth()/g),i=Math.floor(p.effectiveHeight()/e);d.rangeRoundBands([0,p.effectiveWidth()]),b.rangeRoundBands([p.effectiveHeight(),0]);var q=f.selectAll("g.box-group").data(p.data(),function(a,b){return p.keyAccessor()(a,b)+"\x00"+p.valueAccessor()(a,b)}),r=q.enter().append("g").attr("class","box-group");r.append("rect").attr("class","heat-box").attr("fill","white").on("click",p.boxOnClick()),p.renderTitle()&&(r.append("title"),q.selectAll("title").text(p.title())),c.transition(q.selectAll("rect"),p.transitionDuration()).attr("x",function(a,b){return d(p.keyAccessor()(a,b))}).attr("y",function(a,c){return b(p.valueAccessor()(a,c))}).attr("rx",n).attr("ry",o).attr("fill",p.getColor).attr("width",h).attr("height",i),q.exit().remove();var s=f.selectAll("g.cols");s.empty()&&(s=f.append("g").attr("class","cols axis"));var t=s.selectAll("text").data(d.domain());t.enter().append("text").attr("x",function(a){return d(a)+h/2}).style("text-anchor","middle").attr("y",p.effectiveHeight()).attr("dy",12).on("click",p.xAxisOnClick()).text(p.colsLabel()),c.transition(t,p.transitionDuration()).text(p.colsLabel()).attr("x",function(a){return d(a)+h/2}),t.exit().remove();var u=f.selectAll("g.rows");u.empty()&&(u=f.append("g").attr("class","rows axis"));var v=u.selectAll("text").data(b.domain());return v.enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",p.yAxisOnClick()).text(p.rowsLabel()),c.transition(v,p.transitionDuration()).text(p.rowsLabel()).attr("y",function(a){return b(a)+i/2}),v.exit().remove(),p.selectAll("g.box-group").each(p.hasFilter()?function(a){p.isSelectedNode(a)?p.highlightSelected(this):p.fadeDeselected(this)}:function(){p.resetHighlight(this)}),p},p.boxOnClick=function(a){return arguments.length?(u=a,p):u},p.xAxisOnClick=function(a){return arguments.length?(s=a,p):s},p.yAxisOnClick=function(a){return arguments.length?(t=a,p):t},p.xBorderRadius=function(a){return arguments.length?(n=a,p):n},p.yBorderRadius=function(a){return arguments.length?(o=a,p):o},p.isSelectedNode=function(a){return p.hasFilter(a.key)},p.anchor(b,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null===b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),c.boxPlot=function(b,d){function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}function f(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function g(b){c.transition(b,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function h(a){a.exit().remove().call(m)}var i=c.coordinateGridMixin({}),j=1.5,k=e,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(c.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+", 0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});f(b),g(b),h(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var b=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return c.utils.subtract(b,i.yAxisPadding())},i.yAxisMax=function(){var b=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return c.utils.add(b,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(b,d)},c.abstractBubbleChart=c.bubbleMixin,c.baseChart=c.baseMixin,c.capped=c.capMixin,c.colorChart=c.colorMixin,c.coordinateGridChart=c.coordinateGridMixin,c.marginable=c.marginMixin,c.stackableChart=c.stackMixin,c.d3=a,c.crossfilter=b,c}if("function"==typeof define&&define.amd)define(["d3","crossfilter"],a);else if("object"==typeof module&&module.exports){var b=require("d3"),c=require("crossfilter");"function"!=typeof c&&(c=c.crossfilter),module.exports=a(b,c)}else this.dc=a(d3,crossfilter)}(); +!function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&do?b:o},q=p,r=200,s=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>r?b:r},t=s,u=c.pluck("key"),v=c.pluck("value"),w=c.pluck("key"),x=c.pluck("key"),y=c.pluck("key"),z=!1,A=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},B=!0,C=750,D=c.printers.filters,E=["dimension","group"],F=c.constants.DEFAULT_CHART_GROUP,G=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),H=[],I=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c=d&&d>=a)return!0}return!1}),b},J=function(a){return a.all()};d.width=function(b){return arguments.length?(q=a.functor(b||p),d):q(k.node())},d.height=function(b){return arguments.length?(t=a.functor(b||s),d):t(k.node())},d.minWidth=function(a){return arguments.length?(o=a,d):o},d.minHeight=function(a){return arguments.length?(r=a,d):r},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(J=a.functor(b),d.expireCache(),d):J.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(y=a,m=b.quicksort.by(y),d.expireCache(),d):y},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(m||(m=b.quicksort.by(y)),m(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root()):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e)),F=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(D=a,d):D},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(D(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(C=a,d):C},d._mandatoryAttributes=function(a){return arguments.length?(E=a,d):E},d.render=function(){G.preRender(d),E&&E.forEach(f);var a=d._doRender();return n&&n.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){G.renderlet(d),a&&G[a](d)}):(G.renderlet(d),a&&G[a](d))},d.redraw=function(){G.preRedraw(d);var a=d._doRedraw();return n&&n.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&G.filtered(d,a)},d._invokeZoomedListener=function(){G.zoomed(d)};var K=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(K=a,d):K},d.hasFilter=function(a){return K(H,a)};var L=function(a,b){for(var c=0;c=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(L=a,d):L};var M=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(M=a,d):M};var N=function(a){return[]};return d.resetFilterHandler=function(a){return arguments.length?(N=a,d):N},d.replaceFilter=function(a){H=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?L(H,a):M(H,a)}):null===a?H=N(H):d.hasFilter(a)?L(H,a):M(H,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):H.length>0?H[0]:null},d.filters=function(){return H},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(I=a,d):I},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(u=a,d):u},d.valueAccessor=function(a){return arguments.length?(v=a,d):v},d.legendLabelAccessor=function(a){return arguments.length?(x=a,d):x},d.label=function(a){return arguments.length?(w=a,z=!0,d):w},d.renderLabel=function(a){return arguments.length?(z=a,d):z},d.title=function(a){return arguments.length?(A=a,d):A},d.renderTitle=function(a){return arguments.length?(B=a,d):B},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(F=a,d):F},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(n=a,n.parent(d),d):n},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return G.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],ba,b._useOuterPadding()?aa:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,aa=.5,ba=0,ca=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(ca=a,b):ca},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),ca&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=ca?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=ca?b.width()-P:P,d=ca?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(ba=a,b):ba},b._outerRangeBandPadding=function(a){return arguments.length?(aa=a,b):aa},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(d===1/0)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b), +isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"}function C(b,c){O.selectAll("g.pie-slice").each(function(d){b.name===d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G,H,I=.5,J="pie-slice",K="empty-chart",L="empty",M=0,N=I,O=c.capMixin(c.colorMixin(c.baseMixin({})));return O.colorAccessor(O.cappedKeyAccessor),O.legendLabelAccessor(O.cappedKeyAccessor),O.title(function(a){return O.cappedKeyAccessor(a)+": "+O.cappedValueAccessor(a)}),O.slicesCap=O.cap,O.label(O.cappedKeyAccessor),O.renderLabel(!0),O.transitionDuration(350),O._doRender=function(){return O.resetSvg(),E=O.svg().append("g").attr("transform","translate("+O.cx()+","+O.cy()+")"),e(),O},O.innerRadius=function(a){return arguments.length?(M=a,O):M},O.radius=function(a){return arguments.length?(D=a,O):D},O.cx=function(a){return arguments.length?(F=a,O):F||O.width()/2},O.cy=function(a){return arguments.length?(G=a,O):G||O.height()/2},O._doRedraw=function(){return e(),O},O.minAngleForLabel=function(a){return arguments.length?(N=a,O):N},O.emptyTitle=function(a){return 0===arguments.length?L:(L=a,O)},O.externalLabels=function(a){return 0===arguments.length?H:(H=a?a:void 0,O)},O.legendables=function(){return O.data().map(function(a,b){var c={name:O.legendLabelAccessor(a,b),data:a.value,others:a.others,chart:O};return c.color=O.getColor(a,b),c})},O.legendHighlight=function(a){C(a,!0)},O.legendReset=function(a){C(a,!1)},O.legendToggle=function(a){O.onClick({key:a.name,others:a.others})},O.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(l.y()(a.y+a.y0)-l.y()(a.y0)))}function f(a,b,d){var f=a.selectAll("rect.bar").data(d.values,c.pluck("x")),g=f.enter().append("rect").attr("class","bar").attr("fill",c.pluck("data",l.getColor)).attr("y",l.yAxisHeight()).attr("height",0);l.renderTitle()&&g.append("title").text(c.pluck("data",l.title(d.name))),l.isOrdinal()&&f.on("click",l.onClick),c.transition(f,l.transitionDuration()).attr("x",function(a){var b=l.x()(a.x);return n&&(b-=i/2),l.isOrdinal()&&void 0!==m&&(b+=m/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=l.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",i).attr("height",function(a){return e(a)}).attr("fill",c.pluck("data",l.getColor)).select("title").text(c.pluck("data",l.title(d.name))),c.transition(f.exit(),l.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===i){var a=l.xUnitCount();i=Math.floor(l.isOrdinal()&&void 0===m?l.x().rangeBand():m?(l.xAxisLength()-(a-1)*m)/a:l.xAxisLength()/(1+l.barPadding())/a),(i===1/0||isNaN(i)||j>i)&&(i=j)}}function h(b,c){return function(){var d=a.select(this),e=d.attr("fill")===b;return c?!e:e}}var i,j=1,k=2,l=c.stackMixin(c.coordinateGridMixin({})),m=k,n=!1,o=!1;return c.override(l,"rescale",function(){l._rescale(),i=void 0}),c.override(l,"render",function(){l.round()&&n&&!o&&c.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),l._render()}),l.plotData=function(){var b=l.chartBodyG().selectAll("g.stack").data(l.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},l.fadeDeselectedArea=function(){var a=l.chartBodyG().selectAll("rect.bar"),b=l.brush().extent();if(l.isOrdinal())l.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return l.hasFilter(a.x)}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!l.hasFilter(a.x)})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(l.brushIsEmpty(b))a.classed(c.constants.DESELECTED_CLASS,!1);else{var d=b[0],e=b[1];a.classed(c.constants.DESELECTED_CLASS,function(a){return a.x=e})}},l.centerBar=function(a){return arguments.length?(n=a,l):n},c.override(l,"onClick",function(a){l._onClick(a.data)}),l.barPadding=function(a){return arguments.length?(l._rangeBandPadding(a),m=void 0,l):l._rangeBandPadding()},l._useOuterPadding=function(){return void 0===m},l.outerPadding=l._outerRangeBandPadding,l.gap=function(a){return arguments.length?(m=a,l):m},l.extendBrush=function(){var a=l.brush().extent();return!l.round()||n&&!o||(a[0]=a.map(l.round())[0],a[1]=a.map(l.round())[1],l.chartBodyG().select(".brush").call(l.brush().extent(a))),a},l.alwaysUseRounding=function(a){return arguments.length?(o=a,l):o},l.legendHighlight=function(a){l.isLegendableHidden(a)||l.g().selectAll("rect.bar").classed("highlight",h(a.color)).classed("fadeout",h(a.color,!0))},l.legendReset=function(){l.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},c.override(l,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in l.xUnits()){var b=l.xUnits().resolution;a+=b}return a}),l.anchor(b,d)},c.lineChart=function(b,d){function e(a,b){return z.getColor.call(a,a.values,b)}function f(b,d){var f=a.svg.line().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).interpolate(F).tension(G);r&&f.defined(r);var g=b.append("path").attr("class","line").attr("stroke",e);s&&g.attr("stroke-dasharray",s),c.transition(d.select("path.line"),z.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(b,d){if(A){var f=a.svg.area().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).y0(function(a){return z.y()(a.y0)}).interpolate(F).tension(G);r&&f.defined(r),b.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),c.transition(d.select("path.area"),z.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(b,d){if(!z.brushOn()&&z.xyTipsOn()){var e=u+"-list",f=b.select("g."+e);f.empty()&&(f=b.append("g").attr("class",e)),d.each(function(b,d){var e=b.values;r&&(e=e.filter(r));var g=f.select("g."+u+"._"+d);g.empty()&&(g=f.append("g").attr("class",u+" _"+d)),j(g);var h=g.selectAll("circle."+v).data(e,c.pluck("x"));h.enter().append("circle").attr("class",v).attr("r",m()).style("fill-opacity",D).style("stroke-opacity",E).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}),h.attr("cx",function(a){return c.utils.safeNumber(z.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(z.y()(a.y+a.y0))}).attr("fill",z.getColor).call(p,b),h.exit().remove()})}}function j(a){var b=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+x).empty()?a.append("path").attr("class",x):a.select("path."+x);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",B),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=z._yAxisX()-z.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+z.yAxisHeight()+"L"+c+" "+d;b.select("path."+w).style("display","").attr("d",f),b.select("path."+x).style("display","").attr("d",g)}function m(){return C||B}function n(a){a.style("fill-opacity",D).style("stroke-opacity",E).attr("r",m())}function o(a){a.select("path."+w).style("display","none"),a.select("path."+x).style("display","none")}function p(a,b){z.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(c.pluck("data",z.title(b.name))))}function q(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")===b&&e.attr("stroke-dasharray")===(c instanceof Array?c.join(","):null)||e.attr("fill")===b;return d?!f:f}}var r,s,t=5,u="dc-tooltip",v="dot",w="yRef",x="xRef",y=1e-6,z=c.stackMixin(c.coordinateGridMixin({})),A=!1,B=t,C=null,D=y,E=y,F="linear",G=.7,H=!0;return z.transitionDuration(500),z._rangeBandPadding(1),z.plotData=function(){var a=z.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(z.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},z.interpolate=function(a){return arguments.length?(F=a,z):F},z.tension=function(a){return arguments.length?(G=a,z):G},z.defined=function(a){return arguments.length?(r=a,z):r},z.dashStyle=function(a){return arguments.length?(s=a,z):s},z.renderArea=function(a){return arguments.length?(A=a,z):A},z.xyTipsOn=function(a){return arguments.length?(H=a,z):H},z.dotRadius=function(a){return arguments.length?(B=a,z):B},z.renderDataPoints=function(a){return arguments.length?(a?(D=a.fillOpacity||.8,E=a.strokeOpacity||.8,C=a.radius||2):(D=y,E=y,C=null),z):{fillOpacity:D,strokeOpacity:E,radius:C}},z.legendHighlight=function(a){z.isLegendableHidden(a)||z.g().selectAll("path.line, path.area").classed("highlight",q(a.color,a.dashstyle)).classed("fadeout",q(a.color,a.dashstyle,!0))},z.legendReset=function(){z.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},c.override(z,"legendables",function(){var a=z._legendables();return s?a.map(function(a){return a.dashstyle=s,a}):a}),z.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseMixin({}),g={some:"",all:""};return f.html=function(a){return arguments.length?(a.all&&(g.all=a.all),a.some&&(g.some=a.some),f):g},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f._doRender=function(){var a=f.dimension().size(),b=f.group().value(),c=e(a),d=e(b);return a===b&&""!==g.all?f.root().html(g.all.replace("%total-count",c).replace("%filter-count",d)):""!==g.some?f.root().html(g.some.replace("%total-count",c).replace("%filter-count",d)):(f.selectAll(".total-count").text(c),f.selectAll(".filter-count").text(d)),f},f._doRedraw=function(){return f._doRender()},f.anchor(b,d)},c.dataTable=function(b,d){function e(){var a=!0;if(o.forEach(function(b){a&="function"==typeof b}),!a){m.selectAll("th").remove();var b=m.root().selectAll("th").data(o),c=b.enter().append("th");c.attr("class",l).html(function(a){return m._doColumnHeaderFormat(a)})}var d=m.root().selectAll("tbody").data(f(),function(a){return m.keyAccessor()(a)}),e=d.enter().append("tbody");return e.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",o.length).html(function(a){return m.keyAccessor()(a)}),d.exit().remove(),e}function f(){var b;return b=q===a.ascending?m.dimension().bottom(n):m.dimension().top(n),a.nest().key(m.group()).sortKeys(q).entries(b.sort(function(a,b){return q(p(a),p(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return o.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(function(b){return m._doColumnValueFormat(a,b)})}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l="dc-table-head",m=c.baseMixin({}),n=25,o=[],p=function(a){return a},q=a.ascending;return m._doRender=function(){return m.selectAll("tbody").remove(),g(e()),m},m._doColumnValueFormat=function(a,b){return"function"==typeof a?a(b):"string"==typeof a?b[a]:a.format(b)},m._doColumnHeaderFormat=function(a){return"function"==typeof a?m._doColumnHeaderFnToString(a):"string"==typeof a?m._doColumnHeaderCapitalize(a):String(a.label)},m._doColumnHeaderCapitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},m._doColumnHeaderFnToString=function(a){var b=String(a),c=b.indexOf("return ");if(c>=0){var d=b.lastIndexOf(";");if(d>=0){b=b.substring(c+7,d);var e=b.indexOf("numberFormat");e>=0&&(b=b.replace("numberFormat",""))}}return b},m._doRedraw=function(){return m._doRender()},m.size=function(a){return arguments.length?(n=a,m):n},m.columns=function(a){return arguments.length?(o=a,m):o},m.sortBy=function(a){return arguments.length?(p=a,m):p},m.order=function(a){return arguments.length?(q=a,m):q},m.anchor(b,d)},c.dataGrid=function(b,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=c.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

"+l.keyAccessor()(a)+"

"};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,d)},c.bubbleChart=function(a,b){function d(a){var b=a.enter().append("g");b.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),c.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(b),i._doRenderTitles(b)}function e(a){c.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=c.bubbleMixin(c.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,b)},c.compositeChart=function(b,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return c.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return c.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=c.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),c.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),t=a.scale.linear().domain(b).range([0,G.effectiveWidth()])}H.scale(t)}function f(){var a=s.select("g.axis");e(),a.empty()&&(a=s.append("g").attr("class","axis").attr("transform","translate(0, "+G.effectiveHeight()+")")),c.transition(a,G.transitionDuration()).call(H)}function g(){s.selectAll("g.tick").select("line.grid-line").remove(),s.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-G.effectiveHeight()})}function h(){v=G.data(),f(),g();var a=s.selectAll("g."+D).data(v);i(a),j(a),l(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return D+" _"+b});b.append("rect").attr("width",0),n(b),o(a)}function j(a){a.exit().remove()}function k(){var a=t(0);return a===-(1/0)||a!==a?t(1):a}function l(a){var b,d=v.length;b=C?C:(G.effectiveHeight()-(d+1)*B)/d,y||(x=b/2);var e=a.attr("transform",function(a,c){return"translate(0,"+((c+1)*B+c*b)+")"}).select("rect").attr("height",b).attr("fill",G.getColor).on("click",p).classed("deselected",function(a){return G.hasFilter()?!r(a):!1}).classed("selected",function(a){return G.hasFilter()?r(a):!1});c.transition(e,G.transitionDuration()).attr("width",function(a){return Math.abs(k()-t(G.valueAccessor()(a)))}).attr("transform",q),m(a),o(a)}function m(a){G.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(G.title()))}function n(a){G.renderLabel()&&a.append("text").on("click",p),G.renderTitleLabel()&&a.append("text").attr("class",E).on("click",p)}function o(a){if(G.renderLabel()){var b=a.select("text").attr("x",w).attr("y",x).attr("dy",z).on("click",p).attr("class",function(a,b){return D+" _"+b}).text(function(a){return G.label()(a)});c.transition(b,G.transitionDuration()).attr("transform",q)}if(G.renderTitleLabel()){var d=a.select("."+E).attr("x",G.effectiveWidth()-A).attr("y",x).attr("text-anchor","end").on("click",p).attr("class",function(a,b){return E+" _"+b}).text(function(a){return G.title()(a)});c.transition(d,G.transitionDuration()).attr("transform",q)}}function p(a){G.onClick(a)}function q(a){var b=t(G.cappedValueAccessor(a)),c=k(),d=b>c?c:b;return"translate("+d+",0)"}function r(a){return G.hasFilter(G.cappedKeyAccessor(a))}var s,t,u,v,w=10,x=15,y=!1,z="0.35em",A=2,B=5,C=!1,D="row",E="titlerow",F=!1,G=c.capMixin(c.marginMixin(c.colorMixin(c.baseMixin({})))),H=a.svg.axis().orient("bottom");return G.rowsCap=G.cap,G._doRender=function(){return G.resetSvg(),s=G.svg().append("g").attr("transform","translate("+G.margins().left+","+G.margins().top+")"),h(),G},G.title(function(a){return G.cappedKeyAccessor(a)+": "+G.cappedValueAccessor(a)}),G.label(G.cappedKeyAccessor),G.x=function(a){return arguments.length?(t=a,G):t},G.renderTitleLabel=function(a){return arguments.length?(F=a,G):F},G._doRedraw=function(){return h(),G},G.xAxis=function(){return H},G.fixedBarHeight=function(a){return arguments.length?(C=a,G):C},G.gap=function(a){return arguments.length?(B=a,G):B},G.elasticX=function(a){return arguments.length?(u=a,G):u},G.labelOffsetX=function(a){return arguments.length?(w=a,G):w},G.labelOffsetY=function(a){return arguments.length?(x=a,y=!0,G):x},G.titleLabelOffsetX=function(a){return arguments.length?(A=a,G):A},G.anchor(b,d)},c.legend=function(){function a(){return j+i}var b,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70,n=!1;return f.parent=function(a){return arguments.length?(b=a,f):b},f.render=function(){b.svg().select("g.dc-legend").remove(),d=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=b.legendables(),o=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)}).on("click",function(a){a.chart.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(c.pluck("dashstyle"))?o.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",c.pluck("dashstyle")).attr("stroke",c.pluck("color")):o.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),o.append("text").text(c.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var p=0,q=0;o.attr("transform",function(b,c){if(k){var d="translate("+p+","+q*a()+")",e=n===!0?this.getBBox().width+j:m;return p+e>=l?(++q,p=0):p+=e,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f.autoItemWidth=function(a){return arguments.length?(n=a,f):n},f},c.scatterPlot=function(b,d){function e(b,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return b(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),c.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var b=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});c.transition(b,g.transitionDuration()).attr("d",h)}var g=c.coordinateGridMixin({}),h=a.svg.symbol(),i=function(a){return a.value},j=g.keyAccessor();g.keyAccessor(function(a){return j(a)[0]}),g.valueAccessor(function(a){return j(a)[1]}),g.colorAccessor(function(){return g._groupName});var k=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},l=3,m=5,n=0;return h.size(function(a){return i(a)?this.filtered?Math.pow(m,2):Math.pow(l,2):n}),c.override(g,"_filter",function(a){return arguments.length?g.__filter(c.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",k),c.transition(a,g.transitionDuration()).attr("opacity",function(a){return i(a)?1:0}).attr("fill",g.getColor).attr("transform",k).attr("d",h),c.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.existenceAccessor=function(a){return arguments.length?(i=a,this):i},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(l=a,g):l},g.highlightedSize=function(a){return arguments.length?(m=a,g):m},g.hiddenSize=function(a){return arguments.length?(n=a,g):n},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")===b.color},m),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")===b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))c.events.trigger(function(){g.filter(null),g.redrawGroup()}),f(!1);else{var b=c.filters.RangedTwoDimensionalFilter(a);c.events.trigger(function(){g.filter(null),g.filter(b),g.redrawGroup()},c.constants.EVENT_DELAY),f(b)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(b,d)},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseMixin({}),h={one:"",some:"",none:""};return g._mandatoryAttributes(["group"]),g.html=function(a){return arguments.length?(a.none?h.none=a.none:a.one?h.none=a.one:a.some&&(h.none=a.some),a.one?h.one=a.one:a.some&&(h.one=a.some),a.some?h.some=a.some:a.one&&(h.some=a.one),g):h},g.value=function(){ +return g.data()},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250),g._doRender=function(){var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);return this.lastValue=b,function(a){var d=null,e=g.formatNumber()(c(a));0===b&&""!==h.none?d=h.none:1===b&&""!==h.one?d=h.one:""!==h.some&&(d=h.some),this.innerHTML=d?d.replace("%number",e):e}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},c.heatMap=function(b,d){function e(a,b){var d=p.selectAll(".box-group").filter(function(c){return c.key[a]===b}),e=d.filter(function(a){return!p.hasFilter(a.key)});c.events.trigger(function(){e.empty()?d.each(function(a){p.filter(a.key)}):e.each(function(a){p.filter(a.key)}),p.redrawGroup()})}var f,g,h,i=6.75,j=a.ascending,k=a.ascending,l=a.scale.ordinal(),m=a.scale.ordinal(),n=i,o=i,p=c.colorMixin(c.marginMixin(c.baseMixin({})));p._mandatoryAttributes(["group"]),p.title(p.colorAccessor());var q=function(a){return a},r=function(a){return a};p.colsLabel=function(a){return arguments.length?(q=a,p):q},p.rowsLabel=function(a){return arguments.length?(r=a,p):r};var s=function(a){e(0,a)},t=function(a){e(1,a)},u=function(a){var b=a.key;c.events.trigger(function(){p.filter(b),p.redrawGroup()})};return c.override(p,"filter",function(a){return arguments.length?p._filter(c.filters.TwoDimensionalFilter(a)):p._filter()}),p.rows=function(a){return arguments.length?(h=a,p):h},p.rowOrdering=function(a){return arguments.length?(k=a,p):k},p.cols=function(a){return arguments.length?(g=a,p):g},p.colOrdering=function(a){return arguments.length?(j=a,p):j},p._doRender=function(){return p.resetSvg(),f=p.svg().append("g").attr("class","heatmap").attr("transform","translate("+p.margins().left+","+p.margins().top+")"),p._doRedraw()},p._doRedraw=function(){var a=p.data(),b=p.rows()||a.map(p.valueAccessor()),d=p.cols()||a.map(p.keyAccessor());k&&(b=b.sort(k)),j&&(d=d.sort(j)),b=m.domain(b),d=l.domain(d);var e=b.domain().length,g=d.domain().length,h=Math.floor(p.effectiveWidth()/g),i=Math.floor(p.effectiveHeight()/e);d.rangeRoundBands([0,p.effectiveWidth()]),b.rangeRoundBands([p.effectiveHeight(),0]);var q=f.selectAll("g.box-group").data(p.data(),function(a,b){return p.keyAccessor()(a,b)+"\x00"+p.valueAccessor()(a,b)}),r=q.enter().append("g").attr("class","box-group");r.append("rect").attr("class","heat-box").attr("fill","white").on("click",p.boxOnClick()),p.renderTitle()&&(r.append("title"),q.selectAll("title").text(p.title())),c.transition(q.selectAll("rect"),p.transitionDuration()).attr("x",function(a,b){return d(p.keyAccessor()(a,b))}).attr("y",function(a,c){return b(p.valueAccessor()(a,c))}).attr("rx",n).attr("ry",o).attr("fill",p.getColor).attr("width",h).attr("height",i),q.exit().remove();var s=f.selectAll("g.cols");s.empty()&&(s=f.append("g").attr("class","cols axis"));var t=s.selectAll("text").data(d.domain());t.enter().append("text").attr("x",function(a){return d(a)+h/2}).style("text-anchor","middle").attr("y",p.effectiveHeight()).attr("dy",12).on("click",p.xAxisOnClick()).text(p.colsLabel()),c.transition(t,p.transitionDuration()).text(p.colsLabel()).attr("x",function(a){return d(a)+h/2}),t.exit().remove();var u=f.selectAll("g.rows");u.empty()&&(u=f.append("g").attr("class","rows axis"));var v=u.selectAll("text").data(b.domain());return v.enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",p.yAxisOnClick()).text(p.rowsLabel()),c.transition(v,p.transitionDuration()).text(p.rowsLabel()).attr("y",function(a){return b(a)+i/2}),v.exit().remove(),p.selectAll("g.box-group").each(p.hasFilter()?function(a){p.isSelectedNode(a)?p.highlightSelected(this):p.fadeDeselected(this)}:function(){p.resetHighlight(this)}),p},p.boxOnClick=function(a){return arguments.length?(u=a,p):u},p.xAxisOnClick=function(a){return arguments.length?(s=a,p):s},p.yAxisOnClick=function(a){return arguments.length?(t=a,p):t},p.xBorderRadius=function(a){return arguments.length?(n=a,p):n},p.yBorderRadius=function(a){return arguments.length?(o=a,p):o},p.isSelectedNode=function(a){return p.hasFilter(a.key)},p.anchor(b,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null===b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),c.boxPlot=function(b,d){function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}function f(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function g(b){c.transition(b,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function h(a){a.exit().remove().call(m)}var i=c.coordinateGridMixin({}),j=1.5,k=e,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(c.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+", 0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});f(b),g(b),h(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var b=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return c.utils.subtract(b,i.yAxisPadding())},i.yAxisMax=function(){var b=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return c.utils.add(b,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(b,d)},c.abstractBubbleChart=c.bubbleMixin,c.baseChart=c.baseMixin,c.capped=c.capMixin,c.colorChart=c.colorMixin,c.coordinateGridChart=c.coordinateGridMixin,c.marginable=c.marginMixin,c.stackableChart=c.stackMixin,c.d3=a,c.crossfilter=b,c}if("function"==typeof define&&define.amd)define(["d3","crossfilter"],a);else if("object"==typeof module&&module.exports){var b=require("d3"),c=require("crossfilter");"function"!=typeof c&&(c=c.crossfilter),module.exports=a(b,c)}else this.dc=a(d3,crossfilter)}(); //# sourceMappingURL=dc.min.js.map \ No newline at end of file diff --git a/dc.min.js.map b/dc.min.js.map index 2e2139faa..8af5389b9 100644 --- a/dc.min.js.map +++ b/dc.min.js.map @@ -1 +1 @@ -{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_legendLabelAccessor","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","legendLabelAccessor","label","getLegendLabel","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_legendLabelAccessor","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","legendLabelAccessor","label","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 10ea7f340..ddf518998 100644 --- a/package.json +++ b/package.json @@ -25,8 +25,40 @@ "url": "https://github.com/dc-js/dc.js.git" }, "dependencies": { + "browser-resolve": "^1.8.2", + "browserify-zlib": "^0.1.4", + "concat-stream": "^1.4.8", "crossfilter": "1.x", - "d3": "3.x" + "crypto-browserify": "^3.9.14", + "d3": "3.x", + "defined": "^1.0.0", + "domain-browser": "^1.1.4", + "duplexer2": "0.0.2", + "events": "^1.0.2", + "has": "^1.0.0", + "http-browserify": "^1.7.0", + "https-browserify": "0.0.0", + "isarray": "0.0.1", + "labeled-stream-splicer": "^1.0.2", + "marked": "^0.3.3", + "os-browserify": "^0.1.2", + "path-browserify": "0.0.0", + "phantomjs": "^1.9.16", + "process": "^0.10.1", + "punycode": "^1.3.2", + "querystring-es3": "^0.2.1", + "read-only-stream": "^1.1.1", + "readable-stream": "^1.0.33", + "shallow-copy": "0.0.1", + "stream-browserify": "^1.0.0", + "string_decoder": "^0.10.31", + "through2": "^0.6.5", + "timers-browserify": "^1.4.0", + "tty-browserify": "0.0.0", + "url": "^0.10.3", + "util": "^0.10.3", + "vm-browserify": "0.0.4", + "xtend": "^4.0.0" }, "devDependencies": { "emu": "~0.0.2", diff --git a/spec/bar-chart-spec.js b/spec/bar-chart-spec.js old mode 100644 new mode 100755 diff --git a/spec/base-mixin-spec.js b/spec/base-mixin-spec.js old mode 100644 new mode 100755 diff --git a/spec/biggish-data-spec.js b/spec/biggish-data-spec.js old mode 100644 new mode 100755 diff --git a/spec/box-plot-spec.js b/spec/box-plot-spec.js old mode 100644 new mode 100755 diff --git a/spec/bubble-chart-spec.js b/spec/bubble-chart-spec.js old mode 100644 new mode 100755 diff --git a/spec/bubble-overlay-spec.js b/spec/bubble-overlay-spec.js old mode 100644 new mode 100755 diff --git a/spec/color-spec.js b/spec/color-spec.js old mode 100644 new mode 100755 diff --git a/spec/composite-chart-spec.js b/spec/composite-chart-spec.js old mode 100644 new mode 100755 diff --git a/spec/coordinate-grid-chart-spec.js b/spec/coordinate-grid-chart-spec.js old mode 100644 new mode 100755 diff --git a/spec/core-spec.js b/spec/core-spec.js old mode 100644 new mode 100755 diff --git a/spec/data-addition-spec.js b/spec/data-addition-spec.js old mode 100644 new mode 100755 diff --git a/spec/data-count-spec.js b/spec/data-count-spec.js old mode 100644 new mode 100755 diff --git a/spec/data-grid-spec.js b/spec/data-grid-spec.js old mode 100644 new mode 100755 diff --git a/spec/data-table-spec.js b/spec/data-table-spec.js old mode 100644 new mode 100755 diff --git a/spec/event-spec.js b/spec/event-spec.js old mode 100644 new mode 100755 diff --git a/spec/filter-dates-spec.js b/spec/filter-dates-spec.js old mode 100644 new mode 100755 diff --git a/spec/filters-spec.js b/spec/filters-spec.js old mode 100644 new mode 100755 diff --git a/spec/geo-choropleth-chart-spec.js b/spec/geo-choropleth-chart-spec.js old mode 100644 new mode 100755 diff --git a/spec/heatmap-spec.js b/spec/heatmap-spec.js old mode 100644 new mode 100755 diff --git a/spec/helpers/custom_matchers.js b/spec/helpers/custom_matchers.js old mode 100644 new mode 100755 diff --git a/spec/helpers/fixtures.js b/spec/helpers/fixtures.js old mode 100644 new mode 100755 diff --git a/spec/helpers/geoFixtures.js b/spec/helpers/geoFixtures.js old mode 100644 new mode 100755 diff --git a/spec/helpers/spec-helper.js b/spec/helpers/spec-helper.js old mode 100644 new mode 100755 diff --git a/spec/legend-spec.js b/spec/legend-spec.js old mode 100644 new mode 100755 diff --git a/spec/line-chart-spec.js b/spec/line-chart-spec.js old mode 100644 new mode 100755 diff --git a/spec/logger-spec.js b/spec/logger-spec.js old mode 100644 new mode 100755 diff --git a/spec/number-display-spec.js b/spec/number-display-spec.js old mode 100644 new mode 100755 diff --git a/spec/pie-chart-spec.js b/spec/pie-chart-spec.js old mode 100644 new mode 100755 index 919226bdc..5d5562833 --- a/spec/pie-chart-spec.js +++ b/spec/pie-chart-spec.js @@ -658,6 +658,32 @@ describe('dc.pieChart', function() { valueDimension.filterAll(); }); }); + + + describe('legends with label', function() { + var chart; + beforeEach(function() { + chart = buildChart("pie-chart-legend") + .cap(3) + .legend(dc.legend()) + .legendLabelAccessor(function(d){ + return d.key + " labeled"; + }) + .render(); + }); + it('should generate items for each slice', function() { + expect(chart.selectAll('g.dc-legend g.dc-legend-item').size()).toEqual(chart.data().length); + }); + it('should include "others" item labeled', function() { + var numOthersGroups = chart.selectAll('g.dc-legend g.dc-legend-item text').filter(function(d, i) { + return d.name == "Others labeled"; + }).size(); + expect(numOthersGroups).toEqual(1); + }); + afterEach(function() { + valueDimension.filterAll(); + }); + }); }); diff --git a/spec/row-chart-spec.js b/spec/row-chart-spec.js old mode 100644 new mode 100755 diff --git a/spec/scatter-plot-spec.js b/spec/scatter-plot-spec.js old mode 100644 new mode 100755 diff --git a/spec/series-chart-spec.js b/spec/series-chart-spec.js old mode 100644 new mode 100755 diff --git a/spec/utils-spec.js b/spec/utils-spec.js old mode 100644 new mode 100755 diff --git a/src/base-mixin.js b/src/base-mixin.js index 095da2fc4..370d1d99e 100644 --- a/src/base-mixin.js +++ b/src/base-mixin.js @@ -895,6 +895,19 @@ dc.baseMixin = function (_chart) { return _chart; }; + + /** + #### .legendLabelAccessor([legendLabelAccessorFunction]) + Set or get the legend label accessor function. The legend label accessor function is used to retrieve the + value from the legend label for the crossfilter group. + ```js + // default legenLabel accessor + chart.legendLabelAccessor(function(d) { return d.key; }); + // custom legen label accessor for a multi-value crossfilter reduction + chart.legendLabelAccessor(function(p) { return "Custom Legend:" + p.key; }); + ``` + + **/ _chart.legendLabelAccessor = function (_) { if (!arguments.length) { return _legendLabelAccessor; @@ -926,10 +939,6 @@ dc.baseMixin = function (_chart) { return _chart; }; - _chart.getLegendLabel = function (d, i) { - return _legendLabelAccessor.call(this, d, i); - }; - /** #### .renderLabel(boolean) Turn on/off label rendering diff --git a/src/pie-chart.js b/src/pie-chart.js index 5ec34a0cc..951ff52e7 100644 --- a/src/pie-chart.js +++ b/src/pie-chart.js @@ -429,7 +429,7 @@ dc.pieChart = function (parent, chartGroup) { _chart.legendables = function () { return _chart.data().map(function (d, i) { - var legendable = {name: _chart.getLegendLabel(d, i), data: d.value, others: d.others, chart:_chart}; + var legendable = {name: _chart.legendLabelAccessor(d, i), data: d.value, others: d.others, chart:_chart}; legendable.color = _chart.getColor(d, i); return legendable; }); From d4c52aa1b60502e2b0b1bed1a0d9613d2bf36931 Mon Sep 17 00:00:00 2001 From: Antonio Grass Date: Fri, 17 Apr 2015 18:50:52 -0300 Subject: [PATCH 07/11] add test and remove method helper --- dc.js | 19 ++++++++++++++----- dc.min.js | 7 +++---- dc.min.js.map | 2 +- spec/pie-chart-spec.js | 26 ++++++++++++++++++++++++++ src/base-mixin.js | 17 +++++++++++++---- src/pie-chart.js | 2 +- 6 files changed, 58 insertions(+), 15 deletions(-) diff --git a/dc.js b/dc.js index 4ddd9bf38..e712be72c 100644 --- a/dc.js +++ b/dc.js @@ -1545,6 +1545,19 @@ dc.baseMixin = function (_chart) { return _chart; }; + + /** + #### .legendLabelAccessor([legendLabelAccessorFunction]) + Set or get the legend label accessor function. The legend label accessor function is used to retrieve the + value from the legend label for the crossfilter group. + ```js + // default legenLabel accessor + chart.legendLabelAccessor(function(d) { return d.key; }); + // custom legen label accessor for a multi-value crossfilter reduction + chart.legendLabelAccessor(function(p) { return "Custom Legend:" + p.key; }); + ``` + + **/ _chart.legendLabelAccessor = function (_) { if (!arguments.length) { return _legendLabelAccessor; @@ -1576,10 +1589,6 @@ dc.baseMixin = function (_chart) { return _chart; }; - _chart.getLegendLabel = function (d, i) { - return _legendLabelAccessor.call(this, d, i); - }; - /** #### .renderLabel(boolean) Turn on/off label rendering @@ -4137,7 +4146,7 @@ dc.pieChart = function (parent, chartGroup) { _chart.legendables = function () { return _chart.data().map(function (d, i) { - var legendable = {name: _chart.getLegendLabel(d, i), data: d.value, others: d.others, chart:_chart}; + var legendable = {name: _chart.legendLabelAccessor(d, i), data: d.value, others: d.others, chart:_chart}; legendable.color = _chart.getColor(d, i); return legendable; }); diff --git a/dc.min.js b/dc.min.js index ed335ebbd..30a10f40e 100644 --- a/dc.min.js +++ b/dc.min.js @@ -1,5 +1,4 @@ -!function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&do?b:o},q=p,r=200,s=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>r?b:r},t=s,u=c.pluck("key"),v=c.pluck("value"),w=c.pluck("key"),x=c.pluck("key"),y=c.pluck("key"),z=!1,A=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},B=!0,C=750,D=c.printers.filters,E=["dimension","group"],F=c.constants.DEFAULT_CHART_GROUP,G=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),H=[],I=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c=d&&d>=a)return!0}return!1}),b},J=function(a){return a.all()};d.width=function(b){return arguments.length?(q=a.functor(b||p),d):q(k.node())},d.height=function(b){return arguments.length?(t=a.functor(b||s),d):t(k.node())},d.minWidth=function(a){return arguments.length?(o=a,d):o},d.minHeight=function(a){return arguments.length?(r=a,d):r},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(J=a.functor(b),d.expireCache(),d):J.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(y=a,m=b.quicksort.by(y),d.expireCache(),d):y},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(m||(m=b.quicksort.by(y)),m(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root()):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e)),F=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(D=a,d):D},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(D(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(C=a,d):C},d._mandatoryAttributes=function(a){return arguments.length?(E=a,d):E},d.render=function(){G.preRender(d),E&&E.forEach(f);var a=d._doRender();return n&&n.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){G.renderlet(d),a&&G[a](d)}):(G.renderlet(d),a&&G[a](d))},d.redraw=function(){G.preRedraw(d);var a=d._doRedraw();return n&&n.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&G.filtered(d,a)},d._invokeZoomedListener=function(){G.zoomed(d)};var K=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(K=a,d):K},d.hasFilter=function(a){return K(H,a)};var L=function(a,b){for(var c=0;c=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(L=a,d):L};var M=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(M=a,d):M};var N=function(a){return[]};return d.resetFilterHandler=function(a){return arguments.length?(N=a,d):N},d.replaceFilter=function(a){H=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?L(H,a):M(H,a)}):null===a?H=N(H):d.hasFilter(a)?L(H,a):M(H,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):H.length>0?H[0]:null},d.filters=function(){return H},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(I=a,d):I},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(u=a,d):u},d.valueAccessor=function(a){return arguments.length?(v=a,d):v},d.legendLabelAccessor=function(a){return arguments.length?(x=a,d):x},d.label=function(a){return arguments.length?(w=a,z=!0,d):w},d.getLegendLabel=function(a,b){return x.call(this,a,b)},d.renderLabel=function(a){return arguments.length?(z=a,d):z},d.title=function(a){return arguments.length?(A=a,d):A},d.renderTitle=function(a){return arguments.length?(B=a,d):B},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(F=a,d):F},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(n=a,n.parent(d),d):n},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return G.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],ba,b._useOuterPadding()?aa:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,aa=.5,ba=0,ca=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(ca=a,b):ca},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),ca&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=ca?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=ca?b.width()-P:P,d=ca?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(ba=a,b):ba},b._outerRangeBandPadding=function(a){return arguments.length?(aa=a,b):aa},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(d===1/0)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b), -isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"}function C(b,c){O.selectAll("g.pie-slice").each(function(d){b.name===d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G,H,I=.5,J="pie-slice",K="empty-chart",L="empty",M=0,N=I,O=c.capMixin(c.colorMixin(c.baseMixin({})));return O.colorAccessor(O.cappedKeyAccessor),O.legendLabelAccessor(O.cappedKeyAccessor),O.title(function(a){return O.cappedKeyAccessor(a)+": "+O.cappedValueAccessor(a)}),O.slicesCap=O.cap,O.label(O.cappedKeyAccessor),O.renderLabel(!0),O.transitionDuration(350),O._doRender=function(){return O.resetSvg(),E=O.svg().append("g").attr("transform","translate("+O.cx()+","+O.cy()+")"),e(),O},O.innerRadius=function(a){return arguments.length?(M=a,O):M},O.radius=function(a){return arguments.length?(D=a,O):D},O.cx=function(a){return arguments.length?(F=a,O):F||O.width()/2},O.cy=function(a){return arguments.length?(G=a,O):G||O.height()/2},O._doRedraw=function(){return e(),O},O.minAngleForLabel=function(a){return arguments.length?(N=a,O):N},O.emptyTitle=function(a){return 0===arguments.length?L:(L=a,O)},O.externalLabels=function(a){return 0===arguments.length?H:(H=a?a:void 0,O)},O.legendables=function(){return O.data().map(function(a,b){var c={name:O.getLegendLabel(a,b),data:a.value,others:a.others,chart:O};return c.color=O.getColor(a,b),c})},O.legendHighlight=function(a){C(a,!0)},O.legendReset=function(a){C(a,!1)},O.legendToggle=function(a){O.onClick({key:a.name,others:a.others})},O.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(l.y()(a.y+a.y0)-l.y()(a.y0)))}function f(a,b,d){var f=a.selectAll("rect.bar").data(d.values,c.pluck("x")),g=f.enter().append("rect").attr("class","bar").attr("fill",c.pluck("data",l.getColor)).attr("y",l.yAxisHeight()).attr("height",0);l.renderTitle()&&g.append("title").text(c.pluck("data",l.title(d.name))),l.isOrdinal()&&f.on("click",l.onClick),c.transition(f,l.transitionDuration()).attr("x",function(a){var b=l.x()(a.x);return n&&(b-=i/2),l.isOrdinal()&&void 0!==m&&(b+=m/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=l.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",i).attr("height",function(a){return e(a)}).attr("fill",c.pluck("data",l.getColor)).select("title").text(c.pluck("data",l.title(d.name))),c.transition(f.exit(),l.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===i){var a=l.xUnitCount();i=Math.floor(l.isOrdinal()&&void 0===m?l.x().rangeBand():m?(l.xAxisLength()-(a-1)*m)/a:l.xAxisLength()/(1+l.barPadding())/a),(i===1/0||isNaN(i)||j>i)&&(i=j)}}function h(b,c){return function(){var d=a.select(this),e=d.attr("fill")===b;return c?!e:e}}var i,j=1,k=2,l=c.stackMixin(c.coordinateGridMixin({})),m=k,n=!1,o=!1;return c.override(l,"rescale",function(){l._rescale(),i=void 0}),c.override(l,"render",function(){l.round()&&n&&!o&&c.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),l._render()}),l.plotData=function(){var b=l.chartBodyG().selectAll("g.stack").data(l.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},l.fadeDeselectedArea=function(){var a=l.chartBodyG().selectAll("rect.bar"),b=l.brush().extent();if(l.isOrdinal())l.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return l.hasFilter(a.x)}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!l.hasFilter(a.x)})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(l.brushIsEmpty(b))a.classed(c.constants.DESELECTED_CLASS,!1);else{var d=b[0],e=b[1];a.classed(c.constants.DESELECTED_CLASS,function(a){return a.x=e})}},l.centerBar=function(a){return arguments.length?(n=a,l):n},c.override(l,"onClick",function(a){l._onClick(a.data)}),l.barPadding=function(a){return arguments.length?(l._rangeBandPadding(a),m=void 0,l):l._rangeBandPadding()},l._useOuterPadding=function(){return void 0===m},l.outerPadding=l._outerRangeBandPadding,l.gap=function(a){return arguments.length?(m=a,l):m},l.extendBrush=function(){var a=l.brush().extent();return!l.round()||n&&!o||(a[0]=a.map(l.round())[0],a[1]=a.map(l.round())[1],l.chartBodyG().select(".brush").call(l.brush().extent(a))),a},l.alwaysUseRounding=function(a){return arguments.length?(o=a,l):o},l.legendHighlight=function(a){l.isLegendableHidden(a)||l.g().selectAll("rect.bar").classed("highlight",h(a.color)).classed("fadeout",h(a.color,!0))},l.legendReset=function(){l.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},c.override(l,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in l.xUnits()){var b=l.xUnits().resolution;a+=b}return a}),l.anchor(b,d)},c.lineChart=function(b,d){function e(a,b){return z.getColor.call(a,a.values,b)}function f(b,d){var f=a.svg.line().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).interpolate(F).tension(G);r&&f.defined(r);var g=b.append("path").attr("class","line").attr("stroke",e);s&&g.attr("stroke-dasharray",s),c.transition(d.select("path.line"),z.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(b,d){if(A){var f=a.svg.area().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).y0(function(a){return z.y()(a.y0)}).interpolate(F).tension(G);r&&f.defined(r),b.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),c.transition(d.select("path.area"),z.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(b,d){if(!z.brushOn()&&z.xyTipsOn()){var e=u+"-list",f=b.select("g."+e);f.empty()&&(f=b.append("g").attr("class",e)),d.each(function(b,d){var e=b.values;r&&(e=e.filter(r));var g=f.select("g."+u+"._"+d);g.empty()&&(g=f.append("g").attr("class",u+" _"+d)),j(g);var h=g.selectAll("circle."+v).data(e,c.pluck("x"));h.enter().append("circle").attr("class",v).attr("r",m()).style("fill-opacity",D).style("stroke-opacity",E).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}),h.attr("cx",function(a){return c.utils.safeNumber(z.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(z.y()(a.y+a.y0))}).attr("fill",z.getColor).call(p,b),h.exit().remove()})}}function j(a){var b=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+x).empty()?a.append("path").attr("class",x):a.select("path."+x);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",B),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=z._yAxisX()-z.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+z.yAxisHeight()+"L"+c+" "+d;b.select("path."+w).style("display","").attr("d",f),b.select("path."+x).style("display","").attr("d",g)}function m(){return C||B}function n(a){a.style("fill-opacity",D).style("stroke-opacity",E).attr("r",m())}function o(a){a.select("path."+w).style("display","none"),a.select("path."+x).style("display","none")}function p(a,b){z.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(c.pluck("data",z.title(b.name))))}function q(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")===b&&e.attr("stroke-dasharray")===(c instanceof Array?c.join(","):null)||e.attr("fill")===b;return d?!f:f}}var r,s,t=5,u="dc-tooltip",v="dot",w="yRef",x="xRef",y=1e-6,z=c.stackMixin(c.coordinateGridMixin({})),A=!1,B=t,C=null,D=y,E=y,F="linear",G=.7,H=!0;return z.transitionDuration(500),z._rangeBandPadding(1),z.plotData=function(){var a=z.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(z.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},z.interpolate=function(a){return arguments.length?(F=a,z):F},z.tension=function(a){return arguments.length?(G=a,z):G},z.defined=function(a){return arguments.length?(r=a,z):r},z.dashStyle=function(a){return arguments.length?(s=a,z):s},z.renderArea=function(a){return arguments.length?(A=a,z):A},z.xyTipsOn=function(a){return arguments.length?(H=a,z):H},z.dotRadius=function(a){return arguments.length?(B=a,z):B},z.renderDataPoints=function(a){return arguments.length?(a?(D=a.fillOpacity||.8,E=a.strokeOpacity||.8,C=a.radius||2):(D=y,E=y,C=null),z):{fillOpacity:D,strokeOpacity:E,radius:C}},z.legendHighlight=function(a){z.isLegendableHidden(a)||z.g().selectAll("path.line, path.area").classed("highlight",q(a.color,a.dashstyle)).classed("fadeout",q(a.color,a.dashstyle,!0))},z.legendReset=function(){z.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},c.override(z,"legendables",function(){var a=z._legendables();return s?a.map(function(a){return a.dashstyle=s,a}):a}),z.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseMixin({}),g={some:"",all:""};return f.html=function(a){return arguments.length?(a.all&&(g.all=a.all),a.some&&(g.some=a.some),f):g},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f._doRender=function(){var a=f.dimension().size(),b=f.group().value(),c=e(a),d=e(b);return a===b&&""!==g.all?f.root().html(g.all.replace("%total-count",c).replace("%filter-count",d)):""!==g.some?f.root().html(g.some.replace("%total-count",c).replace("%filter-count",d)):(f.selectAll(".total-count").text(c),f.selectAll(".filter-count").text(d)),f},f._doRedraw=function(){return f._doRender()},f.anchor(b,d)},c.dataTable=function(b,d){function e(){var a=!0;if(o.forEach(function(b){a&="function"==typeof b}),!a){m.selectAll("th").remove();var b=m.root().selectAll("th").data(o),c=b.enter().append("th");c.attr("class",l).html(function(a){return m._doColumnHeaderFormat(a)})}var d=m.root().selectAll("tbody").data(f(),function(a){return m.keyAccessor()(a)}),e=d.enter().append("tbody");return e.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",o.length).html(function(a){return m.keyAccessor()(a)}),d.exit().remove(),e}function f(){var b;return b=q===a.ascending?m.dimension().bottom(n):m.dimension().top(n),a.nest().key(m.group()).sortKeys(q).entries(b.sort(function(a,b){return q(p(a),p(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return o.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(function(b){return m._doColumnValueFormat(a,b)})}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l="dc-table-head",m=c.baseMixin({}),n=25,o=[],p=function(a){return a},q=a.ascending;return m._doRender=function(){return m.selectAll("tbody").remove(),g(e()),m},m._doColumnValueFormat=function(a,b){return"function"==typeof a?a(b):"string"==typeof a?b[a]:a.format(b)},m._doColumnHeaderFormat=function(a){return"function"==typeof a?m._doColumnHeaderFnToString(a):"string"==typeof a?m._doColumnHeaderCapitalize(a):String(a.label)},m._doColumnHeaderCapitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},m._doColumnHeaderFnToString=function(a){var b=String(a),c=b.indexOf("return ");if(c>=0){var d=b.lastIndexOf(";");if(d>=0){b=b.substring(c+7,d);var e=b.indexOf("numberFormat");e>=0&&(b=b.replace("numberFormat",""))}}return b},m._doRedraw=function(){return m._doRender()},m.size=function(a){return arguments.length?(n=a,m):n},m.columns=function(a){return arguments.length?(o=a,m):o},m.sortBy=function(a){return arguments.length?(p=a,m):p},m.order=function(a){return arguments.length?(q=a,m):q},m.anchor(b,d)},c.dataGrid=function(b,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=c.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

"+l.keyAccessor()(a)+"

"};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,d)},c.bubbleChart=function(a,b){function d(a){var b=a.enter().append("g");b.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),c.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(b),i._doRenderTitles(b)}function e(a){c.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=c.bubbleMixin(c.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,b)},c.compositeChart=function(b,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return c.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return c.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=c.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),c.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),t=a.scale.linear().domain(b).range([0,G.effectiveWidth()])}H.scale(t)}function f(){var a=s.select("g.axis");e(),a.empty()&&(a=s.append("g").attr("class","axis").attr("transform","translate(0, "+G.effectiveHeight()+")")),c.transition(a,G.transitionDuration()).call(H)}function g(){s.selectAll("g.tick").select("line.grid-line").remove(),s.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-G.effectiveHeight()})}function h(){v=G.data(),f(),g();var a=s.selectAll("g."+D).data(v);i(a),j(a),l(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return D+" _"+b});b.append("rect").attr("width",0),n(b),o(a)}function j(a){a.exit().remove()}function k(){var a=t(0);return a===-(1/0)||a!==a?t(1):a}function l(a){var b,d=v.length;b=C?C:(G.effectiveHeight()-(d+1)*B)/d,y||(x=b/2);var e=a.attr("transform",function(a,c){return"translate(0,"+((c+1)*B+c*b)+")"}).select("rect").attr("height",b).attr("fill",G.getColor).on("click",p).classed("deselected",function(a){return G.hasFilter()?!r(a):!1}).classed("selected",function(a){return G.hasFilter()?r(a):!1});c.transition(e,G.transitionDuration()).attr("width",function(a){return Math.abs(k()-t(G.valueAccessor()(a)))}).attr("transform",q),m(a),o(a)}function m(a){G.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(G.title()))}function n(a){G.renderLabel()&&a.append("text").on("click",p),G.renderTitleLabel()&&a.append("text").attr("class",E).on("click",p)}function o(a){if(G.renderLabel()){var b=a.select("text").attr("x",w).attr("y",x).attr("dy",z).on("click",p).attr("class",function(a,b){return D+" _"+b}).text(function(a){return G.label()(a)});c.transition(b,G.transitionDuration()).attr("transform",q)}if(G.renderTitleLabel()){var d=a.select("."+E).attr("x",G.effectiveWidth()-A).attr("y",x).attr("text-anchor","end").on("click",p).attr("class",function(a,b){return E+" _"+b}).text(function(a){return G.title()(a)});c.transition(d,G.transitionDuration()).attr("transform",q)}}function p(a){G.onClick(a)}function q(a){var b=t(G.cappedValueAccessor(a)),c=k(),d=b>c?c:b;return"translate("+d+",0)"}function r(a){return G.hasFilter(G.cappedKeyAccessor(a))}var s,t,u,v,w=10,x=15,y=!1,z="0.35em",A=2,B=5,C=!1,D="row",E="titlerow",F=!1,G=c.capMixin(c.marginMixin(c.colorMixin(c.baseMixin({})))),H=a.svg.axis().orient("bottom");return G.rowsCap=G.cap,G._doRender=function(){return G.resetSvg(),s=G.svg().append("g").attr("transform","translate("+G.margins().left+","+G.margins().top+")"),h(),G},G.title(function(a){return G.cappedKeyAccessor(a)+": "+G.cappedValueAccessor(a)}),G.label(G.cappedKeyAccessor),G.x=function(a){return arguments.length?(t=a,G):t},G.renderTitleLabel=function(a){return arguments.length?(F=a,G):F},G._doRedraw=function(){return h(),G},G.xAxis=function(){return H},G.fixedBarHeight=function(a){return arguments.length?(C=a,G):C},G.gap=function(a){return arguments.length?(B=a,G):B},G.elasticX=function(a){return arguments.length?(u=a,G):u},G.labelOffsetX=function(a){return arguments.length?(w=a,G):w},G.labelOffsetY=function(a){return arguments.length?(x=a,y=!0,G):x},G.titleLabelOffsetX=function(a){return arguments.length?(A=a,G):A},G.anchor(b,d)},c.legend=function(){function a(){return j+i}var b,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70,n=!1;return f.parent=function(a){return arguments.length?(b=a,f):b},f.render=function(){b.svg().select("g.dc-legend").remove(),d=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=b.legendables(),o=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)}).on("click",function(a){a.chart.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(c.pluck("dashstyle"))?o.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",c.pluck("dashstyle")).attr("stroke",c.pluck("color")):o.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),o.append("text").text(c.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var p=0,q=0;o.attr("transform",function(b,c){if(k){var d="translate("+p+","+q*a()+")",e=n===!0?this.getBBox().width+j:m;return p+e>=l?(++q,p=0):p+=e,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f.autoItemWidth=function(a){return arguments.length?(n=a,f):n},f},c.scatterPlot=function(b,d){function e(b,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return b(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),c.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var b=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});c.transition(b,g.transitionDuration()).attr("d",h)}var g=c.coordinateGridMixin({}),h=a.svg.symbol(),i=function(a){return a.value},j=g.keyAccessor();g.keyAccessor(function(a){return j(a)[0]}),g.valueAccessor(function(a){return j(a)[1]}),g.colorAccessor(function(){return g._groupName});var k=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},l=3,m=5,n=0;return h.size(function(a){return i(a)?this.filtered?Math.pow(m,2):Math.pow(l,2):n}),c.override(g,"_filter",function(a){return arguments.length?g.__filter(c.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",k),c.transition(a,g.transitionDuration()).attr("opacity",function(a){return i(a)?1:0}).attr("fill",g.getColor).attr("transform",k).attr("d",h),c.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.existenceAccessor=function(a){return arguments.length?(i=a,this):i},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(l=a,g):l},g.highlightedSize=function(a){return arguments.length?(m=a,g):m},g.hiddenSize=function(a){return arguments.length?(n=a,g):n},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")===b.color},m),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")===b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))c.events.trigger(function(){g.filter(null),g.redrawGroup()}),f(!1);else{var b=c.filters.RangedTwoDimensionalFilter(a);c.events.trigger(function(){g.filter(null),g.filter(b),g.redrawGroup()},c.constants.EVENT_DELAY),f(b)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(b,d)},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseMixin({}),h={one:"",some:"",none:""};return g._mandatoryAttributes(["group"]),g.html=function(a){return arguments.length?(a.none?h.none=a.none:a.one?h.none=a.one:a.some&&(h.none=a.some),a.one?h.one=a.one:a.some&&(h.one=a.some),a.some?h.some=a.some:a.one&&(h.some=a.one),g):h},g.value=function(){return g.data(); - -},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250),g._doRender=function(){var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);return this.lastValue=b,function(a){var d=null,e=g.formatNumber()(c(a));0===b&&""!==h.none?d=h.none:1===b&&""!==h.one?d=h.one:""!==h.some&&(d=h.some),this.innerHTML=d?d.replace("%number",e):e}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},c.heatMap=function(b,d){function e(a,b){var d=p.selectAll(".box-group").filter(function(c){return c.key[a]===b}),e=d.filter(function(a){return!p.hasFilter(a.key)});c.events.trigger(function(){e.empty()?d.each(function(a){p.filter(a.key)}):e.each(function(a){p.filter(a.key)}),p.redrawGroup()})}var f,g,h,i=6.75,j=a.ascending,k=a.ascending,l=a.scale.ordinal(),m=a.scale.ordinal(),n=i,o=i,p=c.colorMixin(c.marginMixin(c.baseMixin({})));p._mandatoryAttributes(["group"]),p.title(p.colorAccessor());var q=function(a){return a},r=function(a){return a};p.colsLabel=function(a){return arguments.length?(q=a,p):q},p.rowsLabel=function(a){return arguments.length?(r=a,p):r};var s=function(a){e(0,a)},t=function(a){e(1,a)},u=function(a){var b=a.key;c.events.trigger(function(){p.filter(b),p.redrawGroup()})};return c.override(p,"filter",function(a){return arguments.length?p._filter(c.filters.TwoDimensionalFilter(a)):p._filter()}),p.rows=function(a){return arguments.length?(h=a,p):h},p.rowOrdering=function(a){return arguments.length?(k=a,p):k},p.cols=function(a){return arguments.length?(g=a,p):g},p.colOrdering=function(a){return arguments.length?(j=a,p):j},p._doRender=function(){return p.resetSvg(),f=p.svg().append("g").attr("class","heatmap").attr("transform","translate("+p.margins().left+","+p.margins().top+")"),p._doRedraw()},p._doRedraw=function(){var a=p.data(),b=p.rows()||a.map(p.valueAccessor()),d=p.cols()||a.map(p.keyAccessor());k&&(b=b.sort(k)),j&&(d=d.sort(j)),b=m.domain(b),d=l.domain(d);var e=b.domain().length,g=d.domain().length,h=Math.floor(p.effectiveWidth()/g),i=Math.floor(p.effectiveHeight()/e);d.rangeRoundBands([0,p.effectiveWidth()]),b.rangeRoundBands([p.effectiveHeight(),0]);var q=f.selectAll("g.box-group").data(p.data(),function(a,b){return p.keyAccessor()(a,b)+"\x00"+p.valueAccessor()(a,b)}),r=q.enter().append("g").attr("class","box-group");r.append("rect").attr("class","heat-box").attr("fill","white").on("click",p.boxOnClick()),p.renderTitle()&&(r.append("title"),q.selectAll("title").text(p.title())),c.transition(q.selectAll("rect"),p.transitionDuration()).attr("x",function(a,b){return d(p.keyAccessor()(a,b))}).attr("y",function(a,c){return b(p.valueAccessor()(a,c))}).attr("rx",n).attr("ry",o).attr("fill",p.getColor).attr("width",h).attr("height",i),q.exit().remove();var s=f.selectAll("g.cols");s.empty()&&(s=f.append("g").attr("class","cols axis"));var t=s.selectAll("text").data(d.domain());t.enter().append("text").attr("x",function(a){return d(a)+h/2}).style("text-anchor","middle").attr("y",p.effectiveHeight()).attr("dy",12).on("click",p.xAxisOnClick()).text(p.colsLabel()),c.transition(t,p.transitionDuration()).text(p.colsLabel()).attr("x",function(a){return d(a)+h/2}),t.exit().remove();var u=f.selectAll("g.rows");u.empty()&&(u=f.append("g").attr("class","rows axis"));var v=u.selectAll("text").data(b.domain());return v.enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",p.yAxisOnClick()).text(p.rowsLabel()),c.transition(v,p.transitionDuration()).text(p.rowsLabel()).attr("y",function(a){return b(a)+i/2}),v.exit().remove(),p.selectAll("g.box-group").each(p.hasFilter()?function(a){p.isSelectedNode(a)?p.highlightSelected(this):p.fadeDeselected(this)}:function(){p.resetHighlight(this)}),p},p.boxOnClick=function(a){return arguments.length?(u=a,p):u},p.xAxisOnClick=function(a){return arguments.length?(s=a,p):s},p.yAxisOnClick=function(a){return arguments.length?(t=a,p):t},p.xBorderRadius=function(a){return arguments.length?(n=a,p):n},p.yBorderRadius=function(a){return arguments.length?(o=a,p):o},p.isSelectedNode=function(a){return p.hasFilter(a.key)},p.anchor(b,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null===b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),c.boxPlot=function(b,d){function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}function f(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function g(b){c.transition(b,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function h(a){a.exit().remove().call(m)}var i=c.coordinateGridMixin({}),j=1.5,k=e,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(c.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+", 0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});f(b),g(b),h(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var b=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return c.utils.subtract(b,i.yAxisPadding())},i.yAxisMax=function(){var b=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return c.utils.add(b,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(b,d)},c.abstractBubbleChart=c.bubbleMixin,c.baseChart=c.baseMixin,c.capped=c.capMixin,c.colorChart=c.colorMixin,c.coordinateGridChart=c.coordinateGridMixin,c.marginable=c.marginMixin,c.stackableChart=c.stackMixin,c.d3=a,c.crossfilter=b,c}if("function"==typeof define&&define.amd)define(["d3","crossfilter"],a);else if("object"==typeof module&&module.exports){var b=require("d3"),c=require("crossfilter");"function"!=typeof c&&(c=c.crossfilter),module.exports=a(b,c)}else this.dc=a(d3,crossfilter)}(); +!function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&do?b:o},q=p,r=200,s=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>r?b:r},t=s,u=c.pluck("key"),v=c.pluck("value"),w=c.pluck("key"),x=c.pluck("key"),y=c.pluck("key"),z=!1,A=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},B=!0,C=750,D=c.printers.filters,E=["dimension","group"],F=c.constants.DEFAULT_CHART_GROUP,G=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),H=[],I=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c=d&&d>=a)return!0}return!1}),b},J=function(a){return a.all()};d.width=function(b){return arguments.length?(q=a.functor(b||p),d):q(k.node())},d.height=function(b){return arguments.length?(t=a.functor(b||s),d):t(k.node())},d.minWidth=function(a){return arguments.length?(o=a,d):o},d.minHeight=function(a){return arguments.length?(r=a,d):r},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(J=a.functor(b),d.expireCache(),d):J.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(y=a,m=b.quicksort.by(y),d.expireCache(),d):y},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(m||(m=b.quicksort.by(y)),m(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root()):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e)),F=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(D=a,d):D},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(D(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(C=a,d):C},d._mandatoryAttributes=function(a){return arguments.length?(E=a,d):E},d.render=function(){G.preRender(d),E&&E.forEach(f);var a=d._doRender();return n&&n.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){G.renderlet(d),a&&G[a](d)}):(G.renderlet(d),a&&G[a](d))},d.redraw=function(){G.preRedraw(d);var a=d._doRedraw();return n&&n.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&G.filtered(d,a)},d._invokeZoomedListener=function(){G.zoomed(d)};var K=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(K=a,d):K},d.hasFilter=function(a){return K(H,a)};var L=function(a,b){for(var c=0;c=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(L=a,d):L};var M=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(M=a,d):M};var N=function(a){return[]};return d.resetFilterHandler=function(a){return arguments.length?(N=a,d):N},d.replaceFilter=function(a){H=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?L(H,a):M(H,a)}):null===a?H=N(H):d.hasFilter(a)?L(H,a):M(H,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):H.length>0?H[0]:null},d.filters=function(){return H},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(I=a,d):I},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(u=a,d):u},d.valueAccessor=function(a){return arguments.length?(v=a,d):v},d.legendLabelAccessor=function(a){return arguments.length?(x=a,d):x},d.label=function(a){return arguments.length?(w=a,z=!0,d):w},d.renderLabel=function(a){return arguments.length?(z=a,d):z},d.title=function(a){return arguments.length?(A=a,d):A},d.renderTitle=function(a){return arguments.length?(B=a,d):B},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(F=a,d):F},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(n=a,n.parent(d),d):n},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return G.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],ba,b._useOuterPadding()?aa:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,aa=.5,ba=0,ca=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(ca=a,b):ca},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),ca&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=ca?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=ca?b.width()-P:P,d=ca?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(ba=a,b):ba},b._outerRangeBandPadding=function(a){return arguments.length?(aa=a,b):aa},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(d===1/0)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b), +isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"}function C(b,c){O.selectAll("g.pie-slice").each(function(d){b.name===d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G,H,I=.5,J="pie-slice",K="empty-chart",L="empty",M=0,N=I,O=c.capMixin(c.colorMixin(c.baseMixin({})));return O.colorAccessor(O.cappedKeyAccessor),O.legendLabelAccessor(O.cappedKeyAccessor),O.title(function(a){return O.cappedKeyAccessor(a)+": "+O.cappedValueAccessor(a)}),O.slicesCap=O.cap,O.label(O.cappedKeyAccessor),O.renderLabel(!0),O.transitionDuration(350),O._doRender=function(){return O.resetSvg(),E=O.svg().append("g").attr("transform","translate("+O.cx()+","+O.cy()+")"),e(),O},O.innerRadius=function(a){return arguments.length?(M=a,O):M},O.radius=function(a){return arguments.length?(D=a,O):D},O.cx=function(a){return arguments.length?(F=a,O):F||O.width()/2},O.cy=function(a){return arguments.length?(G=a,O):G||O.height()/2},O._doRedraw=function(){return e(),O},O.minAngleForLabel=function(a){return arguments.length?(N=a,O):N},O.emptyTitle=function(a){return 0===arguments.length?L:(L=a,O)},O.externalLabels=function(a){return 0===arguments.length?H:(H=a?a:void 0,O)},O.legendables=function(){return O.data().map(function(a,b){var c={name:O.legendLabelAccessor(a,b),data:a.value,others:a.others,chart:O};return c.color=O.getColor(a,b),c})},O.legendHighlight=function(a){C(a,!0)},O.legendReset=function(a){C(a,!1)},O.legendToggle=function(a){O.onClick({key:a.name,others:a.others})},O.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(l.y()(a.y+a.y0)-l.y()(a.y0)))}function f(a,b,d){var f=a.selectAll("rect.bar").data(d.values,c.pluck("x")),g=f.enter().append("rect").attr("class","bar").attr("fill",c.pluck("data",l.getColor)).attr("y",l.yAxisHeight()).attr("height",0);l.renderTitle()&&g.append("title").text(c.pluck("data",l.title(d.name))),l.isOrdinal()&&f.on("click",l.onClick),c.transition(f,l.transitionDuration()).attr("x",function(a){var b=l.x()(a.x);return n&&(b-=i/2),l.isOrdinal()&&void 0!==m&&(b+=m/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=l.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",i).attr("height",function(a){return e(a)}).attr("fill",c.pluck("data",l.getColor)).select("title").text(c.pluck("data",l.title(d.name))),c.transition(f.exit(),l.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===i){var a=l.xUnitCount();i=Math.floor(l.isOrdinal()&&void 0===m?l.x().rangeBand():m?(l.xAxisLength()-(a-1)*m)/a:l.xAxisLength()/(1+l.barPadding())/a),(i===1/0||isNaN(i)||j>i)&&(i=j)}}function h(b,c){return function(){var d=a.select(this),e=d.attr("fill")===b;return c?!e:e}}var i,j=1,k=2,l=c.stackMixin(c.coordinateGridMixin({})),m=k,n=!1,o=!1;return c.override(l,"rescale",function(){l._rescale(),i=void 0}),c.override(l,"render",function(){l.round()&&n&&!o&&c.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),l._render()}),l.plotData=function(){var b=l.chartBodyG().selectAll("g.stack").data(l.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},l.fadeDeselectedArea=function(){var a=l.chartBodyG().selectAll("rect.bar"),b=l.brush().extent();if(l.isOrdinal())l.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return l.hasFilter(a.x)}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!l.hasFilter(a.x)})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(l.brushIsEmpty(b))a.classed(c.constants.DESELECTED_CLASS,!1);else{var d=b[0],e=b[1];a.classed(c.constants.DESELECTED_CLASS,function(a){return a.x=e})}},l.centerBar=function(a){return arguments.length?(n=a,l):n},c.override(l,"onClick",function(a){l._onClick(a.data)}),l.barPadding=function(a){return arguments.length?(l._rangeBandPadding(a),m=void 0,l):l._rangeBandPadding()},l._useOuterPadding=function(){return void 0===m},l.outerPadding=l._outerRangeBandPadding,l.gap=function(a){return arguments.length?(m=a,l):m},l.extendBrush=function(){var a=l.brush().extent();return!l.round()||n&&!o||(a[0]=a.map(l.round())[0],a[1]=a.map(l.round())[1],l.chartBodyG().select(".brush").call(l.brush().extent(a))),a},l.alwaysUseRounding=function(a){return arguments.length?(o=a,l):o},l.legendHighlight=function(a){l.isLegendableHidden(a)||l.g().selectAll("rect.bar").classed("highlight",h(a.color)).classed("fadeout",h(a.color,!0))},l.legendReset=function(){l.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},c.override(l,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in l.xUnits()){var b=l.xUnits().resolution;a+=b}return a}),l.anchor(b,d)},c.lineChart=function(b,d){function e(a,b){return z.getColor.call(a,a.values,b)}function f(b,d){var f=a.svg.line().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).interpolate(F).tension(G);r&&f.defined(r);var g=b.append("path").attr("class","line").attr("stroke",e);s&&g.attr("stroke-dasharray",s),c.transition(d.select("path.line"),z.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(b,d){if(A){var f=a.svg.area().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).y0(function(a){return z.y()(a.y0)}).interpolate(F).tension(G);r&&f.defined(r),b.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),c.transition(d.select("path.area"),z.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(b,d){if(!z.brushOn()&&z.xyTipsOn()){var e=u+"-list",f=b.select("g."+e);f.empty()&&(f=b.append("g").attr("class",e)),d.each(function(b,d){var e=b.values;r&&(e=e.filter(r));var g=f.select("g."+u+"._"+d);g.empty()&&(g=f.append("g").attr("class",u+" _"+d)),j(g);var h=g.selectAll("circle."+v).data(e,c.pluck("x"));h.enter().append("circle").attr("class",v).attr("r",m()).style("fill-opacity",D).style("stroke-opacity",E).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}),h.attr("cx",function(a){return c.utils.safeNumber(z.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(z.y()(a.y+a.y0))}).attr("fill",z.getColor).call(p,b),h.exit().remove()})}}function j(a){var b=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+x).empty()?a.append("path").attr("class",x):a.select("path."+x);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",B),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=z._yAxisX()-z.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+z.yAxisHeight()+"L"+c+" "+d;b.select("path."+w).style("display","").attr("d",f),b.select("path."+x).style("display","").attr("d",g)}function m(){return C||B}function n(a){a.style("fill-opacity",D).style("stroke-opacity",E).attr("r",m())}function o(a){a.select("path."+w).style("display","none"),a.select("path."+x).style("display","none")}function p(a,b){z.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(c.pluck("data",z.title(b.name))))}function q(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")===b&&e.attr("stroke-dasharray")===(c instanceof Array?c.join(","):null)||e.attr("fill")===b;return d?!f:f}}var r,s,t=5,u="dc-tooltip",v="dot",w="yRef",x="xRef",y=1e-6,z=c.stackMixin(c.coordinateGridMixin({})),A=!1,B=t,C=null,D=y,E=y,F="linear",G=.7,H=!0;return z.transitionDuration(500),z._rangeBandPadding(1),z.plotData=function(){var a=z.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(z.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},z.interpolate=function(a){return arguments.length?(F=a,z):F},z.tension=function(a){return arguments.length?(G=a,z):G},z.defined=function(a){return arguments.length?(r=a,z):r},z.dashStyle=function(a){return arguments.length?(s=a,z):s},z.renderArea=function(a){return arguments.length?(A=a,z):A},z.xyTipsOn=function(a){return arguments.length?(H=a,z):H},z.dotRadius=function(a){return arguments.length?(B=a,z):B},z.renderDataPoints=function(a){return arguments.length?(a?(D=a.fillOpacity||.8,E=a.strokeOpacity||.8,C=a.radius||2):(D=y,E=y,C=null),z):{fillOpacity:D,strokeOpacity:E,radius:C}},z.legendHighlight=function(a){z.isLegendableHidden(a)||z.g().selectAll("path.line, path.area").classed("highlight",q(a.color,a.dashstyle)).classed("fadeout",q(a.color,a.dashstyle,!0))},z.legendReset=function(){z.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},c.override(z,"legendables",function(){var a=z._legendables();return s?a.map(function(a){return a.dashstyle=s,a}):a}),z.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseMixin({}),g={some:"",all:""};return f.html=function(a){return arguments.length?(a.all&&(g.all=a.all),a.some&&(g.some=a.some),f):g},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f._doRender=function(){var a=f.dimension().size(),b=f.group().value(),c=e(a),d=e(b);return a===b&&""!==g.all?f.root().html(g.all.replace("%total-count",c).replace("%filter-count",d)):""!==g.some?f.root().html(g.some.replace("%total-count",c).replace("%filter-count",d)):(f.selectAll(".total-count").text(c),f.selectAll(".filter-count").text(d)),f},f._doRedraw=function(){return f._doRender()},f.anchor(b,d)},c.dataTable=function(b,d){function e(){var a=!0;if(o.forEach(function(b){a&="function"==typeof b}),!a){m.selectAll("th").remove();var b=m.root().selectAll("th").data(o),c=b.enter().append("th");c.attr("class",l).html(function(a){return m._doColumnHeaderFormat(a)})}var d=m.root().selectAll("tbody").data(f(),function(a){return m.keyAccessor()(a)}),e=d.enter().append("tbody");return e.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",o.length).html(function(a){return m.keyAccessor()(a)}),d.exit().remove(),e}function f(){var b;return b=q===a.ascending?m.dimension().bottom(n):m.dimension().top(n),a.nest().key(m.group()).sortKeys(q).entries(b.sort(function(a,b){return q(p(a),p(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return o.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(function(b){return m._doColumnValueFormat(a,b)})}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l="dc-table-head",m=c.baseMixin({}),n=25,o=[],p=function(a){return a},q=a.ascending;return m._doRender=function(){return m.selectAll("tbody").remove(),g(e()),m},m._doColumnValueFormat=function(a,b){return"function"==typeof a?a(b):"string"==typeof a?b[a]:a.format(b)},m._doColumnHeaderFormat=function(a){return"function"==typeof a?m._doColumnHeaderFnToString(a):"string"==typeof a?m._doColumnHeaderCapitalize(a):String(a.label)},m._doColumnHeaderCapitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},m._doColumnHeaderFnToString=function(a){var b=String(a),c=b.indexOf("return ");if(c>=0){var d=b.lastIndexOf(";");if(d>=0){b=b.substring(c+7,d);var e=b.indexOf("numberFormat");e>=0&&(b=b.replace("numberFormat",""))}}return b},m._doRedraw=function(){return m._doRender()},m.size=function(a){return arguments.length?(n=a,m):n},m.columns=function(a){return arguments.length?(o=a,m):o},m.sortBy=function(a){return arguments.length?(p=a,m):p},m.order=function(a){return arguments.length?(q=a,m):q},m.anchor(b,d)},c.dataGrid=function(b,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=c.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

"+l.keyAccessor()(a)+"

"};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,d)},c.bubbleChart=function(a,b){function d(a){var b=a.enter().append("g");b.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),c.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(b),i._doRenderTitles(b)}function e(a){c.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=c.bubbleMixin(c.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,b)},c.compositeChart=function(b,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return c.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return c.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=c.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),c.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),t=a.scale.linear().domain(b).range([0,G.effectiveWidth()])}H.scale(t)}function f(){var a=s.select("g.axis");e(),a.empty()&&(a=s.append("g").attr("class","axis").attr("transform","translate(0, "+G.effectiveHeight()+")")),c.transition(a,G.transitionDuration()).call(H)}function g(){s.selectAll("g.tick").select("line.grid-line").remove(),s.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-G.effectiveHeight()})}function h(){v=G.data(),f(),g();var a=s.selectAll("g."+D).data(v);i(a),j(a),l(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return D+" _"+b});b.append("rect").attr("width",0),n(b),o(a)}function j(a){a.exit().remove()}function k(){var a=t(0);return a===-(1/0)||a!==a?t(1):a}function l(a){var b,d=v.length;b=C?C:(G.effectiveHeight()-(d+1)*B)/d,y||(x=b/2);var e=a.attr("transform",function(a,c){return"translate(0,"+((c+1)*B+c*b)+")"}).select("rect").attr("height",b).attr("fill",G.getColor).on("click",p).classed("deselected",function(a){return G.hasFilter()?!r(a):!1}).classed("selected",function(a){return G.hasFilter()?r(a):!1});c.transition(e,G.transitionDuration()).attr("width",function(a){return Math.abs(k()-t(G.valueAccessor()(a)))}).attr("transform",q),m(a),o(a)}function m(a){G.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(G.title()))}function n(a){G.renderLabel()&&a.append("text").on("click",p),G.renderTitleLabel()&&a.append("text").attr("class",E).on("click",p)}function o(a){if(G.renderLabel()){var b=a.select("text").attr("x",w).attr("y",x).attr("dy",z).on("click",p).attr("class",function(a,b){return D+" _"+b}).text(function(a){return G.label()(a)});c.transition(b,G.transitionDuration()).attr("transform",q)}if(G.renderTitleLabel()){var d=a.select("."+E).attr("x",G.effectiveWidth()-A).attr("y",x).attr("text-anchor","end").on("click",p).attr("class",function(a,b){return E+" _"+b}).text(function(a){return G.title()(a)});c.transition(d,G.transitionDuration()).attr("transform",q)}}function p(a){G.onClick(a)}function q(a){var b=t(G.cappedValueAccessor(a)),c=k(),d=b>c?c:b;return"translate("+d+",0)"}function r(a){return G.hasFilter(G.cappedKeyAccessor(a))}var s,t,u,v,w=10,x=15,y=!1,z="0.35em",A=2,B=5,C=!1,D="row",E="titlerow",F=!1,G=c.capMixin(c.marginMixin(c.colorMixin(c.baseMixin({})))),H=a.svg.axis().orient("bottom");return G.rowsCap=G.cap,G._doRender=function(){return G.resetSvg(),s=G.svg().append("g").attr("transform","translate("+G.margins().left+","+G.margins().top+")"),h(),G},G.title(function(a){return G.cappedKeyAccessor(a)+": "+G.cappedValueAccessor(a)}),G.label(G.cappedKeyAccessor),G.x=function(a){return arguments.length?(t=a,G):t},G.renderTitleLabel=function(a){return arguments.length?(F=a,G):F},G._doRedraw=function(){return h(),G},G.xAxis=function(){return H},G.fixedBarHeight=function(a){return arguments.length?(C=a,G):C},G.gap=function(a){return arguments.length?(B=a,G):B},G.elasticX=function(a){return arguments.length?(u=a,G):u},G.labelOffsetX=function(a){return arguments.length?(w=a,G):w},G.labelOffsetY=function(a){return arguments.length?(x=a,y=!0,G):x},G.titleLabelOffsetX=function(a){return arguments.length?(A=a,G):A},G.anchor(b,d)},c.legend=function(){function a(){return j+i}var b,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70,n=!1;return f.parent=function(a){return arguments.length?(b=a,f):b},f.render=function(){b.svg().select("g.dc-legend").remove(),d=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=b.legendables(),o=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)}).on("click",function(a){a.chart.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(c.pluck("dashstyle"))?o.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",c.pluck("dashstyle")).attr("stroke",c.pluck("color")):o.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),o.append("text").text(c.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var p=0,q=0;o.attr("transform",function(b,c){if(k){var d="translate("+p+","+q*a()+")",e=n===!0?this.getBBox().width+j:m;return p+e>=l?(++q,p=0):p+=e,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f.autoItemWidth=function(a){return arguments.length?(n=a,f):n},f},c.scatterPlot=function(b,d){function e(b,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return b(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),c.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var b=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});c.transition(b,g.transitionDuration()).attr("d",h)}var g=c.coordinateGridMixin({}),h=a.svg.symbol(),i=function(a){return a.value},j=g.keyAccessor();g.keyAccessor(function(a){return j(a)[0]}),g.valueAccessor(function(a){return j(a)[1]}),g.colorAccessor(function(){return g._groupName});var k=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},l=3,m=5,n=0;return h.size(function(a){return i(a)?this.filtered?Math.pow(m,2):Math.pow(l,2):n}),c.override(g,"_filter",function(a){return arguments.length?g.__filter(c.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",k),c.transition(a,g.transitionDuration()).attr("opacity",function(a){return i(a)?1:0}).attr("fill",g.getColor).attr("transform",k).attr("d",h),c.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.existenceAccessor=function(a){return arguments.length?(i=a,this):i},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(l=a,g):l},g.highlightedSize=function(a){return arguments.length?(m=a,g):m},g.hiddenSize=function(a){return arguments.length?(n=a,g):n},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")===b.color},m),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")===b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))c.events.trigger(function(){g.filter(null),g.redrawGroup()}),f(!1);else{var b=c.filters.RangedTwoDimensionalFilter(a);c.events.trigger(function(){g.filter(null),g.filter(b),g.redrawGroup()},c.constants.EVENT_DELAY),f(b)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(b,d)},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseMixin({}),h={one:"",some:"",none:""};return g._mandatoryAttributes(["group"]),g.html=function(a){return arguments.length?(a.none?h.none=a.none:a.one?h.none=a.one:a.some&&(h.none=a.some),a.one?h.one=a.one:a.some&&(h.one=a.some),a.some?h.some=a.some:a.one&&(h.some=a.one),g):h},g.value=function(){ +return g.data()},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250),g._doRender=function(){var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);return this.lastValue=b,function(a){var d=null,e=g.formatNumber()(c(a));0===b&&""!==h.none?d=h.none:1===b&&""!==h.one?d=h.one:""!==h.some&&(d=h.some),this.innerHTML=d?d.replace("%number",e):e}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},c.heatMap=function(b,d){function e(a,b){var d=p.selectAll(".box-group").filter(function(c){return c.key[a]===b}),e=d.filter(function(a){return!p.hasFilter(a.key)});c.events.trigger(function(){e.empty()?d.each(function(a){p.filter(a.key)}):e.each(function(a){p.filter(a.key)}),p.redrawGroup()})}var f,g,h,i=6.75,j=a.ascending,k=a.ascending,l=a.scale.ordinal(),m=a.scale.ordinal(),n=i,o=i,p=c.colorMixin(c.marginMixin(c.baseMixin({})));p._mandatoryAttributes(["group"]),p.title(p.colorAccessor());var q=function(a){return a},r=function(a){return a};p.colsLabel=function(a){return arguments.length?(q=a,p):q},p.rowsLabel=function(a){return arguments.length?(r=a,p):r};var s=function(a){e(0,a)},t=function(a){e(1,a)},u=function(a){var b=a.key;c.events.trigger(function(){p.filter(b),p.redrawGroup()})};return c.override(p,"filter",function(a){return arguments.length?p._filter(c.filters.TwoDimensionalFilter(a)):p._filter()}),p.rows=function(a){return arguments.length?(h=a,p):h},p.rowOrdering=function(a){return arguments.length?(k=a,p):k},p.cols=function(a){return arguments.length?(g=a,p):g},p.colOrdering=function(a){return arguments.length?(j=a,p):j},p._doRender=function(){return p.resetSvg(),f=p.svg().append("g").attr("class","heatmap").attr("transform","translate("+p.margins().left+","+p.margins().top+")"),p._doRedraw()},p._doRedraw=function(){var a=p.data(),b=p.rows()||a.map(p.valueAccessor()),d=p.cols()||a.map(p.keyAccessor());k&&(b=b.sort(k)),j&&(d=d.sort(j)),b=m.domain(b),d=l.domain(d);var e=b.domain().length,g=d.domain().length,h=Math.floor(p.effectiveWidth()/g),i=Math.floor(p.effectiveHeight()/e);d.rangeRoundBands([0,p.effectiveWidth()]),b.rangeRoundBands([p.effectiveHeight(),0]);var q=f.selectAll("g.box-group").data(p.data(),function(a,b){return p.keyAccessor()(a,b)+"\x00"+p.valueAccessor()(a,b)}),r=q.enter().append("g").attr("class","box-group");r.append("rect").attr("class","heat-box").attr("fill","white").on("click",p.boxOnClick()),p.renderTitle()&&(r.append("title"),q.selectAll("title").text(p.title())),c.transition(q.selectAll("rect"),p.transitionDuration()).attr("x",function(a,b){return d(p.keyAccessor()(a,b))}).attr("y",function(a,c){return b(p.valueAccessor()(a,c))}).attr("rx",n).attr("ry",o).attr("fill",p.getColor).attr("width",h).attr("height",i),q.exit().remove();var s=f.selectAll("g.cols");s.empty()&&(s=f.append("g").attr("class","cols axis"));var t=s.selectAll("text").data(d.domain());t.enter().append("text").attr("x",function(a){return d(a)+h/2}).style("text-anchor","middle").attr("y",p.effectiveHeight()).attr("dy",12).on("click",p.xAxisOnClick()).text(p.colsLabel()),c.transition(t,p.transitionDuration()).text(p.colsLabel()).attr("x",function(a){return d(a)+h/2}),t.exit().remove();var u=f.selectAll("g.rows");u.empty()&&(u=f.append("g").attr("class","rows axis"));var v=u.selectAll("text").data(b.domain());return v.enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",p.yAxisOnClick()).text(p.rowsLabel()),c.transition(v,p.transitionDuration()).text(p.rowsLabel()).attr("y",function(a){return b(a)+i/2}),v.exit().remove(),p.selectAll("g.box-group").each(p.hasFilter()?function(a){p.isSelectedNode(a)?p.highlightSelected(this):p.fadeDeselected(this)}:function(){p.resetHighlight(this)}),p},p.boxOnClick=function(a){return arguments.length?(u=a,p):u},p.xAxisOnClick=function(a){return arguments.length?(s=a,p):s},p.yAxisOnClick=function(a){return arguments.length?(t=a,p):t},p.xBorderRadius=function(a){return arguments.length?(n=a,p):n},p.yBorderRadius=function(a){return arguments.length?(o=a,p):o},p.isSelectedNode=function(a){return p.hasFilter(a.key)},p.anchor(b,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null===b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),c.boxPlot=function(b,d){function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}function f(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function g(b){c.transition(b,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function h(a){a.exit().remove().call(m)}var i=c.coordinateGridMixin({}),j=1.5,k=e,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(c.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+", 0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});f(b),g(b),h(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var b=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return c.utils.subtract(b,i.yAxisPadding())},i.yAxisMax=function(){var b=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return c.utils.add(b,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(b,d)},c.abstractBubbleChart=c.bubbleMixin,c.baseChart=c.baseMixin,c.capped=c.capMixin,c.colorChart=c.colorMixin,c.coordinateGridChart=c.coordinateGridMixin,c.marginable=c.marginMixin,c.stackableChart=c.stackMixin,c.d3=a,c.crossfilter=b,c}if("function"==typeof define&&define.amd)define(["d3","crossfilter"],a);else if("object"==typeof module&&module.exports){var b=require("d3"),c=require("crossfilter");"function"!=typeof c&&(c=c.crossfilter),module.exports=a(b,c)}else this.dc=a(d3,crossfilter)}(); //# sourceMappingURL=dc.min.js.map \ No newline at end of file diff --git a/dc.min.js.map b/dc.min.js.map index 2e2139faa..8af5389b9 100644 --- a/dc.min.js.map +++ b/dc.min.js.map @@ -1 +1 @@ -{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_legendLabelAccessor","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","legendLabelAccessor","label","getLegendLabel","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_legendLabelAccessor","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","legendLabelAccessor","label","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"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"} \ No newline at end of file diff --git a/spec/pie-chart-spec.js b/spec/pie-chart-spec.js index 919226bdc..5d5562833 100644 --- a/spec/pie-chart-spec.js +++ b/spec/pie-chart-spec.js @@ -658,6 +658,32 @@ describe('dc.pieChart', function() { valueDimension.filterAll(); }); }); + + + describe('legends with label', function() { + var chart; + beforeEach(function() { + chart = buildChart("pie-chart-legend") + .cap(3) + .legend(dc.legend()) + .legendLabelAccessor(function(d){ + return d.key + " labeled"; + }) + .render(); + }); + it('should generate items for each slice', function() { + expect(chart.selectAll('g.dc-legend g.dc-legend-item').size()).toEqual(chart.data().length); + }); + it('should include "others" item labeled', function() { + var numOthersGroups = chart.selectAll('g.dc-legend g.dc-legend-item text').filter(function(d, i) { + return d.name == "Others labeled"; + }).size(); + expect(numOthersGroups).toEqual(1); + }); + afterEach(function() { + valueDimension.filterAll(); + }); + }); }); diff --git a/src/base-mixin.js b/src/base-mixin.js index 095da2fc4..370d1d99e 100644 --- a/src/base-mixin.js +++ b/src/base-mixin.js @@ -895,6 +895,19 @@ dc.baseMixin = function (_chart) { return _chart; }; + + /** + #### .legendLabelAccessor([legendLabelAccessorFunction]) + Set or get the legend label accessor function. The legend label accessor function is used to retrieve the + value from the legend label for the crossfilter group. + ```js + // default legenLabel accessor + chart.legendLabelAccessor(function(d) { return d.key; }); + // custom legen label accessor for a multi-value crossfilter reduction + chart.legendLabelAccessor(function(p) { return "Custom Legend:" + p.key; }); + ``` + + **/ _chart.legendLabelAccessor = function (_) { if (!arguments.length) { return _legendLabelAccessor; @@ -926,10 +939,6 @@ dc.baseMixin = function (_chart) { return _chart; }; - _chart.getLegendLabel = function (d, i) { - return _legendLabelAccessor.call(this, d, i); - }; - /** #### .renderLabel(boolean) Turn on/off label rendering diff --git a/src/pie-chart.js b/src/pie-chart.js index 5ec34a0cc..951ff52e7 100644 --- a/src/pie-chart.js +++ b/src/pie-chart.js @@ -429,7 +429,7 @@ dc.pieChart = function (parent, chartGroup) { _chart.legendables = function () { return _chart.data().map(function (d, i) { - var legendable = {name: _chart.getLegendLabel(d, i), data: d.value, others: d.others, chart:_chart}; + var legendable = {name: _chart.legendLabelAccessor(d, i), data: d.value, others: d.others, chart:_chart}; legendable.color = _chart.getColor(d, i); return legendable; }); From accfef1449be827c838d342cd80e08c1fc0117bf Mon Sep 17 00:00:00 2001 From: Antonio Grass Date: Sat, 18 Apr 2015 16:52:38 -0300 Subject: [PATCH 08/11] fixing error --- dc.js | 2 +- dc.min.js | 2 +- dc.min.js.map | 2 +- src/pie-chart.js | 3 ++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/dc.js b/dc.js index e712be72c..b05e80358 100644 --- a/dc.js +++ b/dc.js @@ -4146,7 +4146,7 @@ dc.pieChart = function (parent, chartGroup) { _chart.legendables = function () { return _chart.data().map(function (d, i) { - var legendable = {name: _chart.legendLabelAccessor(d, i), data: d.value, others: d.others, chart:_chart}; + var legendable = {name: _chart.legendLabelAccessor().call(this, d, i), data: d.value, others: d.others, chart:_chart}; legendable.color = _chart.getColor(d, i); return legendable; }); diff --git a/dc.min.js b/dc.min.js index 30a10f40e..22b1b9f6d 100644 --- a/dc.min.js +++ b/dc.min.js @@ -1,4 +1,4 @@ !function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&do?b:o},q=p,r=200,s=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>r?b:r},t=s,u=c.pluck("key"),v=c.pluck("value"),w=c.pluck("key"),x=c.pluck("key"),y=c.pluck("key"),z=!1,A=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},B=!0,C=750,D=c.printers.filters,E=["dimension","group"],F=c.constants.DEFAULT_CHART_GROUP,G=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),H=[],I=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c=d&&d>=a)return!0}return!1}),b},J=function(a){return a.all()};d.width=function(b){return arguments.length?(q=a.functor(b||p),d):q(k.node())},d.height=function(b){return arguments.length?(t=a.functor(b||s),d):t(k.node())},d.minWidth=function(a){return arguments.length?(o=a,d):o},d.minHeight=function(a){return arguments.length?(r=a,d):r},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(J=a.functor(b),d.expireCache(),d):J.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(y=a,m=b.quicksort.by(y),d.expireCache(),d):y},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(m||(m=b.quicksort.by(y)),m(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root()):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e)),F=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(D=a,d):D},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(D(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(C=a,d):C},d._mandatoryAttributes=function(a){return arguments.length?(E=a,d):E},d.render=function(){G.preRender(d),E&&E.forEach(f);var a=d._doRender();return n&&n.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){G.renderlet(d),a&&G[a](d)}):(G.renderlet(d),a&&G[a](d))},d.redraw=function(){G.preRedraw(d);var a=d._doRedraw();return n&&n.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&G.filtered(d,a)},d._invokeZoomedListener=function(){G.zoomed(d)};var K=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(K=a,d):K},d.hasFilter=function(a){return K(H,a)};var L=function(a,b){for(var c=0;c=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(L=a,d):L};var M=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(M=a,d):M};var N=function(a){return[]};return d.resetFilterHandler=function(a){return arguments.length?(N=a,d):N},d.replaceFilter=function(a){H=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?L(H,a):M(H,a)}):null===a?H=N(H):d.hasFilter(a)?L(H,a):M(H,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):H.length>0?H[0]:null},d.filters=function(){return H},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(I=a,d):I},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(u=a,d):u},d.valueAccessor=function(a){return arguments.length?(v=a,d):v},d.legendLabelAccessor=function(a){return arguments.length?(x=a,d):x},d.label=function(a){return arguments.length?(w=a,z=!0,d):w},d.renderLabel=function(a){return arguments.length?(z=a,d):z},d.title=function(a){return arguments.length?(A=a,d):A},d.renderTitle=function(a){return arguments.length?(B=a,d):B},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(F=a,d):F},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(n=a,n.parent(d),d):n},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return G.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],ba,b._useOuterPadding()?aa:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,aa=.5,ba=0,ca=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(ca=a,b):ca},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),ca&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=ca?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=ca?b.width()-P:P,d=ca?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(ba=a,b):ba},b._outerRangeBandPadding=function(a){return arguments.length?(aa=a,b):aa},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(d===1/0)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b), -isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"}function C(b,c){O.selectAll("g.pie-slice").each(function(d){b.name===d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G,H,I=.5,J="pie-slice",K="empty-chart",L="empty",M=0,N=I,O=c.capMixin(c.colorMixin(c.baseMixin({})));return O.colorAccessor(O.cappedKeyAccessor),O.legendLabelAccessor(O.cappedKeyAccessor),O.title(function(a){return O.cappedKeyAccessor(a)+": "+O.cappedValueAccessor(a)}),O.slicesCap=O.cap,O.label(O.cappedKeyAccessor),O.renderLabel(!0),O.transitionDuration(350),O._doRender=function(){return O.resetSvg(),E=O.svg().append("g").attr("transform","translate("+O.cx()+","+O.cy()+")"),e(),O},O.innerRadius=function(a){return arguments.length?(M=a,O):M},O.radius=function(a){return arguments.length?(D=a,O):D},O.cx=function(a){return arguments.length?(F=a,O):F||O.width()/2},O.cy=function(a){return arguments.length?(G=a,O):G||O.height()/2},O._doRedraw=function(){return e(),O},O.minAngleForLabel=function(a){return arguments.length?(N=a,O):N},O.emptyTitle=function(a){return 0===arguments.length?L:(L=a,O)},O.externalLabels=function(a){return 0===arguments.length?H:(H=a?a:void 0,O)},O.legendables=function(){return O.data().map(function(a,b){var c={name:O.legendLabelAccessor(a,b),data:a.value,others:a.others,chart:O};return c.color=O.getColor(a,b),c})},O.legendHighlight=function(a){C(a,!0)},O.legendReset=function(a){C(a,!1)},O.legendToggle=function(a){O.onClick({key:a.name,others:a.others})},O.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(l.y()(a.y+a.y0)-l.y()(a.y0)))}function f(a,b,d){var f=a.selectAll("rect.bar").data(d.values,c.pluck("x")),g=f.enter().append("rect").attr("class","bar").attr("fill",c.pluck("data",l.getColor)).attr("y",l.yAxisHeight()).attr("height",0);l.renderTitle()&&g.append("title").text(c.pluck("data",l.title(d.name))),l.isOrdinal()&&f.on("click",l.onClick),c.transition(f,l.transitionDuration()).attr("x",function(a){var b=l.x()(a.x);return n&&(b-=i/2),l.isOrdinal()&&void 0!==m&&(b+=m/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=l.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",i).attr("height",function(a){return e(a)}).attr("fill",c.pluck("data",l.getColor)).select("title").text(c.pluck("data",l.title(d.name))),c.transition(f.exit(),l.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===i){var a=l.xUnitCount();i=Math.floor(l.isOrdinal()&&void 0===m?l.x().rangeBand():m?(l.xAxisLength()-(a-1)*m)/a:l.xAxisLength()/(1+l.barPadding())/a),(i===1/0||isNaN(i)||j>i)&&(i=j)}}function h(b,c){return function(){var d=a.select(this),e=d.attr("fill")===b;return c?!e:e}}var i,j=1,k=2,l=c.stackMixin(c.coordinateGridMixin({})),m=k,n=!1,o=!1;return c.override(l,"rescale",function(){l._rescale(),i=void 0}),c.override(l,"render",function(){l.round()&&n&&!o&&c.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),l._render()}),l.plotData=function(){var b=l.chartBodyG().selectAll("g.stack").data(l.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},l.fadeDeselectedArea=function(){var a=l.chartBodyG().selectAll("rect.bar"),b=l.brush().extent();if(l.isOrdinal())l.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return l.hasFilter(a.x)}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!l.hasFilter(a.x)})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(l.brushIsEmpty(b))a.classed(c.constants.DESELECTED_CLASS,!1);else{var d=b[0],e=b[1];a.classed(c.constants.DESELECTED_CLASS,function(a){return a.x=e})}},l.centerBar=function(a){return arguments.length?(n=a,l):n},c.override(l,"onClick",function(a){l._onClick(a.data)}),l.barPadding=function(a){return arguments.length?(l._rangeBandPadding(a),m=void 0,l):l._rangeBandPadding()},l._useOuterPadding=function(){return void 0===m},l.outerPadding=l._outerRangeBandPadding,l.gap=function(a){return arguments.length?(m=a,l):m},l.extendBrush=function(){var a=l.brush().extent();return!l.round()||n&&!o||(a[0]=a.map(l.round())[0],a[1]=a.map(l.round())[1],l.chartBodyG().select(".brush").call(l.brush().extent(a))),a},l.alwaysUseRounding=function(a){return arguments.length?(o=a,l):o},l.legendHighlight=function(a){l.isLegendableHidden(a)||l.g().selectAll("rect.bar").classed("highlight",h(a.color)).classed("fadeout",h(a.color,!0))},l.legendReset=function(){l.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},c.override(l,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in l.xUnits()){var b=l.xUnits().resolution;a+=b}return a}),l.anchor(b,d)},c.lineChart=function(b,d){function e(a,b){return z.getColor.call(a,a.values,b)}function f(b,d){var f=a.svg.line().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).interpolate(F).tension(G);r&&f.defined(r);var g=b.append("path").attr("class","line").attr("stroke",e);s&&g.attr("stroke-dasharray",s),c.transition(d.select("path.line"),z.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(b,d){if(A){var f=a.svg.area().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).y0(function(a){return z.y()(a.y0)}).interpolate(F).tension(G);r&&f.defined(r),b.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),c.transition(d.select("path.area"),z.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(b,d){if(!z.brushOn()&&z.xyTipsOn()){var e=u+"-list",f=b.select("g."+e);f.empty()&&(f=b.append("g").attr("class",e)),d.each(function(b,d){var e=b.values;r&&(e=e.filter(r));var g=f.select("g."+u+"._"+d);g.empty()&&(g=f.append("g").attr("class",u+" _"+d)),j(g);var h=g.selectAll("circle."+v).data(e,c.pluck("x"));h.enter().append("circle").attr("class",v).attr("r",m()).style("fill-opacity",D).style("stroke-opacity",E).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}),h.attr("cx",function(a){return c.utils.safeNumber(z.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(z.y()(a.y+a.y0))}).attr("fill",z.getColor).call(p,b),h.exit().remove()})}}function j(a){var b=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+x).empty()?a.append("path").attr("class",x):a.select("path."+x);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",B),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=z._yAxisX()-z.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+z.yAxisHeight()+"L"+c+" "+d;b.select("path."+w).style("display","").attr("d",f),b.select("path."+x).style("display","").attr("d",g)}function m(){return C||B}function n(a){a.style("fill-opacity",D).style("stroke-opacity",E).attr("r",m())}function o(a){a.select("path."+w).style("display","none"),a.select("path."+x).style("display","none")}function p(a,b){z.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(c.pluck("data",z.title(b.name))))}function q(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")===b&&e.attr("stroke-dasharray")===(c instanceof Array?c.join(","):null)||e.attr("fill")===b;return d?!f:f}}var r,s,t=5,u="dc-tooltip",v="dot",w="yRef",x="xRef",y=1e-6,z=c.stackMixin(c.coordinateGridMixin({})),A=!1,B=t,C=null,D=y,E=y,F="linear",G=.7,H=!0;return z.transitionDuration(500),z._rangeBandPadding(1),z.plotData=function(){var a=z.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(z.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},z.interpolate=function(a){return arguments.length?(F=a,z):F},z.tension=function(a){return arguments.length?(G=a,z):G},z.defined=function(a){return arguments.length?(r=a,z):r},z.dashStyle=function(a){return arguments.length?(s=a,z):s},z.renderArea=function(a){return arguments.length?(A=a,z):A},z.xyTipsOn=function(a){return arguments.length?(H=a,z):H},z.dotRadius=function(a){return arguments.length?(B=a,z):B},z.renderDataPoints=function(a){return arguments.length?(a?(D=a.fillOpacity||.8,E=a.strokeOpacity||.8,C=a.radius||2):(D=y,E=y,C=null),z):{fillOpacity:D,strokeOpacity:E,radius:C}},z.legendHighlight=function(a){z.isLegendableHidden(a)||z.g().selectAll("path.line, path.area").classed("highlight",q(a.color,a.dashstyle)).classed("fadeout",q(a.color,a.dashstyle,!0))},z.legendReset=function(){z.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},c.override(z,"legendables",function(){var a=z._legendables();return s?a.map(function(a){return a.dashstyle=s,a}):a}),z.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseMixin({}),g={some:"",all:""};return f.html=function(a){return arguments.length?(a.all&&(g.all=a.all),a.some&&(g.some=a.some),f):g},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f._doRender=function(){var a=f.dimension().size(),b=f.group().value(),c=e(a),d=e(b);return a===b&&""!==g.all?f.root().html(g.all.replace("%total-count",c).replace("%filter-count",d)):""!==g.some?f.root().html(g.some.replace("%total-count",c).replace("%filter-count",d)):(f.selectAll(".total-count").text(c),f.selectAll(".filter-count").text(d)),f},f._doRedraw=function(){return f._doRender()},f.anchor(b,d)},c.dataTable=function(b,d){function e(){var a=!0;if(o.forEach(function(b){a&="function"==typeof b}),!a){m.selectAll("th").remove();var b=m.root().selectAll("th").data(o),c=b.enter().append("th");c.attr("class",l).html(function(a){return m._doColumnHeaderFormat(a)})}var d=m.root().selectAll("tbody").data(f(),function(a){return m.keyAccessor()(a)}),e=d.enter().append("tbody");return e.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",o.length).html(function(a){return m.keyAccessor()(a)}),d.exit().remove(),e}function f(){var b;return b=q===a.ascending?m.dimension().bottom(n):m.dimension().top(n),a.nest().key(m.group()).sortKeys(q).entries(b.sort(function(a,b){return q(p(a),p(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return o.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(function(b){return m._doColumnValueFormat(a,b)})}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l="dc-table-head",m=c.baseMixin({}),n=25,o=[],p=function(a){return a},q=a.ascending;return m._doRender=function(){return m.selectAll("tbody").remove(),g(e()),m},m._doColumnValueFormat=function(a,b){return"function"==typeof a?a(b):"string"==typeof a?b[a]:a.format(b)},m._doColumnHeaderFormat=function(a){return"function"==typeof a?m._doColumnHeaderFnToString(a):"string"==typeof a?m._doColumnHeaderCapitalize(a):String(a.label)},m._doColumnHeaderCapitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},m._doColumnHeaderFnToString=function(a){var b=String(a),c=b.indexOf("return ");if(c>=0){var d=b.lastIndexOf(";");if(d>=0){b=b.substring(c+7,d);var e=b.indexOf("numberFormat");e>=0&&(b=b.replace("numberFormat",""))}}return b},m._doRedraw=function(){return m._doRender()},m.size=function(a){return arguments.length?(n=a,m):n},m.columns=function(a){return arguments.length?(o=a,m):o},m.sortBy=function(a){return arguments.length?(p=a,m):p},m.order=function(a){return arguments.length?(q=a,m):q},m.anchor(b,d)},c.dataGrid=function(b,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=c.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

"+l.keyAccessor()(a)+"

"};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,d)},c.bubbleChart=function(a,b){function d(a){var b=a.enter().append("g");b.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),c.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(b),i._doRenderTitles(b)}function e(a){c.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=c.bubbleMixin(c.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,b)},c.compositeChart=function(b,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return c.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return c.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=c.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),c.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),t=a.scale.linear().domain(b).range([0,G.effectiveWidth()])}H.scale(t)}function f(){var a=s.select("g.axis");e(),a.empty()&&(a=s.append("g").attr("class","axis").attr("transform","translate(0, "+G.effectiveHeight()+")")),c.transition(a,G.transitionDuration()).call(H)}function g(){s.selectAll("g.tick").select("line.grid-line").remove(),s.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-G.effectiveHeight()})}function h(){v=G.data(),f(),g();var a=s.selectAll("g."+D).data(v);i(a),j(a),l(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return D+" _"+b});b.append("rect").attr("width",0),n(b),o(a)}function j(a){a.exit().remove()}function k(){var a=t(0);return a===-(1/0)||a!==a?t(1):a}function l(a){var b,d=v.length;b=C?C:(G.effectiveHeight()-(d+1)*B)/d,y||(x=b/2);var e=a.attr("transform",function(a,c){return"translate(0,"+((c+1)*B+c*b)+")"}).select("rect").attr("height",b).attr("fill",G.getColor).on("click",p).classed("deselected",function(a){return G.hasFilter()?!r(a):!1}).classed("selected",function(a){return G.hasFilter()?r(a):!1});c.transition(e,G.transitionDuration()).attr("width",function(a){return Math.abs(k()-t(G.valueAccessor()(a)))}).attr("transform",q),m(a),o(a)}function m(a){G.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(G.title()))}function n(a){G.renderLabel()&&a.append("text").on("click",p),G.renderTitleLabel()&&a.append("text").attr("class",E).on("click",p)}function o(a){if(G.renderLabel()){var b=a.select("text").attr("x",w).attr("y",x).attr("dy",z).on("click",p).attr("class",function(a,b){return D+" _"+b}).text(function(a){return G.label()(a)});c.transition(b,G.transitionDuration()).attr("transform",q)}if(G.renderTitleLabel()){var d=a.select("."+E).attr("x",G.effectiveWidth()-A).attr("y",x).attr("text-anchor","end").on("click",p).attr("class",function(a,b){return E+" _"+b}).text(function(a){return G.title()(a)});c.transition(d,G.transitionDuration()).attr("transform",q)}}function p(a){G.onClick(a)}function q(a){var b=t(G.cappedValueAccessor(a)),c=k(),d=b>c?c:b;return"translate("+d+",0)"}function r(a){return G.hasFilter(G.cappedKeyAccessor(a))}var s,t,u,v,w=10,x=15,y=!1,z="0.35em",A=2,B=5,C=!1,D="row",E="titlerow",F=!1,G=c.capMixin(c.marginMixin(c.colorMixin(c.baseMixin({})))),H=a.svg.axis().orient("bottom");return G.rowsCap=G.cap,G._doRender=function(){return G.resetSvg(),s=G.svg().append("g").attr("transform","translate("+G.margins().left+","+G.margins().top+")"),h(),G},G.title(function(a){return G.cappedKeyAccessor(a)+": "+G.cappedValueAccessor(a)}),G.label(G.cappedKeyAccessor),G.x=function(a){return arguments.length?(t=a,G):t},G.renderTitleLabel=function(a){return arguments.length?(F=a,G):F},G._doRedraw=function(){return h(),G},G.xAxis=function(){return H},G.fixedBarHeight=function(a){return arguments.length?(C=a,G):C},G.gap=function(a){return arguments.length?(B=a,G):B},G.elasticX=function(a){return arguments.length?(u=a,G):u},G.labelOffsetX=function(a){return arguments.length?(w=a,G):w},G.labelOffsetY=function(a){return arguments.length?(x=a,y=!0,G):x},G.titleLabelOffsetX=function(a){return arguments.length?(A=a,G):A},G.anchor(b,d)},c.legend=function(){function a(){return j+i}var b,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70,n=!1;return f.parent=function(a){return arguments.length?(b=a,f):b},f.render=function(){b.svg().select("g.dc-legend").remove(),d=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=b.legendables(),o=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)}).on("click",function(a){a.chart.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(c.pluck("dashstyle"))?o.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",c.pluck("dashstyle")).attr("stroke",c.pluck("color")):o.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),o.append("text").text(c.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var p=0,q=0;o.attr("transform",function(b,c){if(k){var d="translate("+p+","+q*a()+")",e=n===!0?this.getBBox().width+j:m;return p+e>=l?(++q,p=0):p+=e,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f.autoItemWidth=function(a){return arguments.length?(n=a,f):n},f},c.scatterPlot=function(b,d){function e(b,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return b(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),c.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var b=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});c.transition(b,g.transitionDuration()).attr("d",h)}var g=c.coordinateGridMixin({}),h=a.svg.symbol(),i=function(a){return a.value},j=g.keyAccessor();g.keyAccessor(function(a){return j(a)[0]}),g.valueAccessor(function(a){return j(a)[1]}),g.colorAccessor(function(){return g._groupName});var k=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},l=3,m=5,n=0;return h.size(function(a){return i(a)?this.filtered?Math.pow(m,2):Math.pow(l,2):n}),c.override(g,"_filter",function(a){return arguments.length?g.__filter(c.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",k),c.transition(a,g.transitionDuration()).attr("opacity",function(a){return i(a)?1:0}).attr("fill",g.getColor).attr("transform",k).attr("d",h),c.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.existenceAccessor=function(a){return arguments.length?(i=a,this):i},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(l=a,g):l},g.highlightedSize=function(a){return arguments.length?(m=a,g):m},g.hiddenSize=function(a){return arguments.length?(n=a,g):n},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")===b.color},m),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")===b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))c.events.trigger(function(){g.filter(null),g.redrawGroup()}),f(!1);else{var b=c.filters.RangedTwoDimensionalFilter(a);c.events.trigger(function(){g.filter(null),g.filter(b),g.redrawGroup()},c.constants.EVENT_DELAY),f(b)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(b,d)},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseMixin({}),h={one:"",some:"",none:""};return g._mandatoryAttributes(["group"]),g.html=function(a){return arguments.length?(a.none?h.none=a.none:a.one?h.none=a.one:a.some&&(h.none=a.some),a.one?h.one=a.one:a.some&&(h.one=a.some),a.some?h.some=a.some:a.one&&(h.some=a.one),g):h},g.value=function(){ +isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"}function C(b,c){O.selectAll("g.pie-slice").each(function(d){b.name===d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G,H,I=.5,J="pie-slice",K="empty-chart",L="empty",M=0,N=I,O=c.capMixin(c.colorMixin(c.baseMixin({})));return O.colorAccessor(O.cappedKeyAccessor),O.legendLabelAccessor(O.cappedKeyAccessor),O.title(function(a){return O.cappedKeyAccessor(a)+": "+O.cappedValueAccessor(a)}),O.slicesCap=O.cap,O.label(O.cappedKeyAccessor),O.renderLabel(!0),O.transitionDuration(350),O._doRender=function(){return O.resetSvg(),E=O.svg().append("g").attr("transform","translate("+O.cx()+","+O.cy()+")"),e(),O},O.innerRadius=function(a){return arguments.length?(M=a,O):M},O.radius=function(a){return arguments.length?(D=a,O):D},O.cx=function(a){return arguments.length?(F=a,O):F||O.width()/2},O.cy=function(a){return arguments.length?(G=a,O):G||O.height()/2},O._doRedraw=function(){return e(),O},O.minAngleForLabel=function(a){return arguments.length?(N=a,O):N},O.emptyTitle=function(a){return 0===arguments.length?L:(L=a,O)},O.externalLabels=function(a){return 0===arguments.length?H:(H=a?a:void 0,O)},O.legendables=function(){return O.data().map(function(a,b){var c={name:O.legendLabelAccessor().call(this,a,b),data:a.value,others:a.others,chart:O};return c.color=O.getColor(a,b),c})},O.legendHighlight=function(a){C(a,!0)},O.legendReset=function(a){C(a,!1)},O.legendToggle=function(a){O.onClick({key:a.name,others:a.others})},O.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(l.y()(a.y+a.y0)-l.y()(a.y0)))}function f(a,b,d){var f=a.selectAll("rect.bar").data(d.values,c.pluck("x")),g=f.enter().append("rect").attr("class","bar").attr("fill",c.pluck("data",l.getColor)).attr("y",l.yAxisHeight()).attr("height",0);l.renderTitle()&&g.append("title").text(c.pluck("data",l.title(d.name))),l.isOrdinal()&&f.on("click",l.onClick),c.transition(f,l.transitionDuration()).attr("x",function(a){var b=l.x()(a.x);return n&&(b-=i/2),l.isOrdinal()&&void 0!==m&&(b+=m/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=l.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",i).attr("height",function(a){return e(a)}).attr("fill",c.pluck("data",l.getColor)).select("title").text(c.pluck("data",l.title(d.name))),c.transition(f.exit(),l.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===i){var a=l.xUnitCount();i=Math.floor(l.isOrdinal()&&void 0===m?l.x().rangeBand():m?(l.xAxisLength()-(a-1)*m)/a:l.xAxisLength()/(1+l.barPadding())/a),(i===1/0||isNaN(i)||j>i)&&(i=j)}}function h(b,c){return function(){var d=a.select(this),e=d.attr("fill")===b;return c?!e:e}}var i,j=1,k=2,l=c.stackMixin(c.coordinateGridMixin({})),m=k,n=!1,o=!1;return c.override(l,"rescale",function(){l._rescale(),i=void 0}),c.override(l,"render",function(){l.round()&&n&&!o&&c.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),l._render()}),l.plotData=function(){var b=l.chartBodyG().selectAll("g.stack").data(l.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},l.fadeDeselectedArea=function(){var a=l.chartBodyG().selectAll("rect.bar"),b=l.brush().extent();if(l.isOrdinal())l.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return l.hasFilter(a.x)}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!l.hasFilter(a.x)})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(l.brushIsEmpty(b))a.classed(c.constants.DESELECTED_CLASS,!1);else{var d=b[0],e=b[1];a.classed(c.constants.DESELECTED_CLASS,function(a){return a.x=e})}},l.centerBar=function(a){return arguments.length?(n=a,l):n},c.override(l,"onClick",function(a){l._onClick(a.data)}),l.barPadding=function(a){return arguments.length?(l._rangeBandPadding(a),m=void 0,l):l._rangeBandPadding()},l._useOuterPadding=function(){return void 0===m},l.outerPadding=l._outerRangeBandPadding,l.gap=function(a){return arguments.length?(m=a,l):m},l.extendBrush=function(){var a=l.brush().extent();return!l.round()||n&&!o||(a[0]=a.map(l.round())[0],a[1]=a.map(l.round())[1],l.chartBodyG().select(".brush").call(l.brush().extent(a))),a},l.alwaysUseRounding=function(a){return arguments.length?(o=a,l):o},l.legendHighlight=function(a){l.isLegendableHidden(a)||l.g().selectAll("rect.bar").classed("highlight",h(a.color)).classed("fadeout",h(a.color,!0))},l.legendReset=function(){l.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},c.override(l,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in l.xUnits()){var b=l.xUnits().resolution;a+=b}return a}),l.anchor(b,d)},c.lineChart=function(b,d){function e(a,b){return z.getColor.call(a,a.values,b)}function f(b,d){var f=a.svg.line().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).interpolate(F).tension(G);r&&f.defined(r);var g=b.append("path").attr("class","line").attr("stroke",e);s&&g.attr("stroke-dasharray",s),c.transition(d.select("path.line"),z.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(b,d){if(A){var f=a.svg.area().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).y0(function(a){return z.y()(a.y0)}).interpolate(F).tension(G);r&&f.defined(r),b.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),c.transition(d.select("path.area"),z.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(b,d){if(!z.brushOn()&&z.xyTipsOn()){var e=u+"-list",f=b.select("g."+e);f.empty()&&(f=b.append("g").attr("class",e)),d.each(function(b,d){var e=b.values;r&&(e=e.filter(r));var g=f.select("g."+u+"._"+d);g.empty()&&(g=f.append("g").attr("class",u+" _"+d)),j(g);var h=g.selectAll("circle."+v).data(e,c.pluck("x"));h.enter().append("circle").attr("class",v).attr("r",m()).style("fill-opacity",D).style("stroke-opacity",E).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}),h.attr("cx",function(a){return c.utils.safeNumber(z.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(z.y()(a.y+a.y0))}).attr("fill",z.getColor).call(p,b),h.exit().remove()})}}function j(a){var b=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+x).empty()?a.append("path").attr("class",x):a.select("path."+x);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",B),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=z._yAxisX()-z.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+z.yAxisHeight()+"L"+c+" "+d;b.select("path."+w).style("display","").attr("d",f),b.select("path."+x).style("display","").attr("d",g)}function m(){return C||B}function n(a){a.style("fill-opacity",D).style("stroke-opacity",E).attr("r",m())}function o(a){a.select("path."+w).style("display","none"),a.select("path."+x).style("display","none")}function p(a,b){z.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(c.pluck("data",z.title(b.name))))}function q(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")===b&&e.attr("stroke-dasharray")===(c instanceof Array?c.join(","):null)||e.attr("fill")===b;return d?!f:f}}var r,s,t=5,u="dc-tooltip",v="dot",w="yRef",x="xRef",y=1e-6,z=c.stackMixin(c.coordinateGridMixin({})),A=!1,B=t,C=null,D=y,E=y,F="linear",G=.7,H=!0;return z.transitionDuration(500),z._rangeBandPadding(1),z.plotData=function(){var a=z.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(z.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},z.interpolate=function(a){return arguments.length?(F=a,z):F},z.tension=function(a){return arguments.length?(G=a,z):G},z.defined=function(a){return arguments.length?(r=a,z):r},z.dashStyle=function(a){return arguments.length?(s=a,z):s},z.renderArea=function(a){return arguments.length?(A=a,z):A},z.xyTipsOn=function(a){return arguments.length?(H=a,z):H},z.dotRadius=function(a){return arguments.length?(B=a,z):B},z.renderDataPoints=function(a){return arguments.length?(a?(D=a.fillOpacity||.8,E=a.strokeOpacity||.8,C=a.radius||2):(D=y,E=y,C=null),z):{fillOpacity:D,strokeOpacity:E,radius:C}},z.legendHighlight=function(a){z.isLegendableHidden(a)||z.g().selectAll("path.line, path.area").classed("highlight",q(a.color,a.dashstyle)).classed("fadeout",q(a.color,a.dashstyle,!0))},z.legendReset=function(){z.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},c.override(z,"legendables",function(){var a=z._legendables();return s?a.map(function(a){return a.dashstyle=s,a}):a}),z.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseMixin({}),g={some:"",all:""};return f.html=function(a){return arguments.length?(a.all&&(g.all=a.all),a.some&&(g.some=a.some),f):g},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f._doRender=function(){var a=f.dimension().size(),b=f.group().value(),c=e(a),d=e(b);return a===b&&""!==g.all?f.root().html(g.all.replace("%total-count",c).replace("%filter-count",d)):""!==g.some?f.root().html(g.some.replace("%total-count",c).replace("%filter-count",d)):(f.selectAll(".total-count").text(c),f.selectAll(".filter-count").text(d)),f},f._doRedraw=function(){return f._doRender()},f.anchor(b,d)},c.dataTable=function(b,d){function e(){var a=!0;if(o.forEach(function(b){a&="function"==typeof b}),!a){m.selectAll("th").remove();var b=m.root().selectAll("th").data(o),c=b.enter().append("th");c.attr("class",l).html(function(a){return m._doColumnHeaderFormat(a)})}var d=m.root().selectAll("tbody").data(f(),function(a){return m.keyAccessor()(a)}),e=d.enter().append("tbody");return e.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",o.length).html(function(a){return m.keyAccessor()(a)}),d.exit().remove(),e}function f(){var b;return b=q===a.ascending?m.dimension().bottom(n):m.dimension().top(n),a.nest().key(m.group()).sortKeys(q).entries(b.sort(function(a,b){return q(p(a),p(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return o.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(function(b){return m._doColumnValueFormat(a,b)})}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l="dc-table-head",m=c.baseMixin({}),n=25,o=[],p=function(a){return a},q=a.ascending;return m._doRender=function(){return m.selectAll("tbody").remove(),g(e()),m},m._doColumnValueFormat=function(a,b){return"function"==typeof a?a(b):"string"==typeof a?b[a]:a.format(b)},m._doColumnHeaderFormat=function(a){return"function"==typeof a?m._doColumnHeaderFnToString(a):"string"==typeof a?m._doColumnHeaderCapitalize(a):String(a.label)},m._doColumnHeaderCapitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},m._doColumnHeaderFnToString=function(a){var b=String(a),c=b.indexOf("return ");if(c>=0){var d=b.lastIndexOf(";");if(d>=0){b=b.substring(c+7,d);var e=b.indexOf("numberFormat");e>=0&&(b=b.replace("numberFormat",""))}}return b},m._doRedraw=function(){return m._doRender()},m.size=function(a){return arguments.length?(n=a,m):n},m.columns=function(a){return arguments.length?(o=a,m):o},m.sortBy=function(a){return arguments.length?(p=a,m):p},m.order=function(a){return arguments.length?(q=a,m):q},m.anchor(b,d)},c.dataGrid=function(b,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=c.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

"+l.keyAccessor()(a)+"

"};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,d)},c.bubbleChart=function(a,b){function d(a){var b=a.enter().append("g");b.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),c.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(b),i._doRenderTitles(b)}function e(a){c.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=c.bubbleMixin(c.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,b)},c.compositeChart=function(b,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return c.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return c.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=c.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),c.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),t=a.scale.linear().domain(b).range([0,G.effectiveWidth()])}H.scale(t)}function f(){var a=s.select("g.axis");e(),a.empty()&&(a=s.append("g").attr("class","axis").attr("transform","translate(0, "+G.effectiveHeight()+")")),c.transition(a,G.transitionDuration()).call(H)}function g(){s.selectAll("g.tick").select("line.grid-line").remove(),s.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-G.effectiveHeight()})}function h(){v=G.data(),f(),g();var a=s.selectAll("g."+D).data(v);i(a),j(a),l(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return D+" _"+b});b.append("rect").attr("width",0),n(b),o(a)}function j(a){a.exit().remove()}function k(){var a=t(0);return a===-(1/0)||a!==a?t(1):a}function l(a){var b,d=v.length;b=C?C:(G.effectiveHeight()-(d+1)*B)/d,y||(x=b/2);var e=a.attr("transform",function(a,c){return"translate(0,"+((c+1)*B+c*b)+")"}).select("rect").attr("height",b).attr("fill",G.getColor).on("click",p).classed("deselected",function(a){return G.hasFilter()?!r(a):!1}).classed("selected",function(a){return G.hasFilter()?r(a):!1});c.transition(e,G.transitionDuration()).attr("width",function(a){return Math.abs(k()-t(G.valueAccessor()(a)))}).attr("transform",q),m(a),o(a)}function m(a){G.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(G.title()))}function n(a){G.renderLabel()&&a.append("text").on("click",p),G.renderTitleLabel()&&a.append("text").attr("class",E).on("click",p)}function o(a){if(G.renderLabel()){var b=a.select("text").attr("x",w).attr("y",x).attr("dy",z).on("click",p).attr("class",function(a,b){return D+" _"+b}).text(function(a){return G.label()(a)});c.transition(b,G.transitionDuration()).attr("transform",q)}if(G.renderTitleLabel()){var d=a.select("."+E).attr("x",G.effectiveWidth()-A).attr("y",x).attr("text-anchor","end").on("click",p).attr("class",function(a,b){return E+" _"+b}).text(function(a){return G.title()(a)});c.transition(d,G.transitionDuration()).attr("transform",q)}}function p(a){G.onClick(a)}function q(a){var b=t(G.cappedValueAccessor(a)),c=k(),d=b>c?c:b;return"translate("+d+",0)"}function r(a){return G.hasFilter(G.cappedKeyAccessor(a))}var s,t,u,v,w=10,x=15,y=!1,z="0.35em",A=2,B=5,C=!1,D="row",E="titlerow",F=!1,G=c.capMixin(c.marginMixin(c.colorMixin(c.baseMixin({})))),H=a.svg.axis().orient("bottom");return G.rowsCap=G.cap,G._doRender=function(){return G.resetSvg(),s=G.svg().append("g").attr("transform","translate("+G.margins().left+","+G.margins().top+")"),h(),G},G.title(function(a){return G.cappedKeyAccessor(a)+": "+G.cappedValueAccessor(a)}),G.label(G.cappedKeyAccessor),G.x=function(a){return arguments.length?(t=a,G):t},G.renderTitleLabel=function(a){return arguments.length?(F=a,G):F},G._doRedraw=function(){return h(),G},G.xAxis=function(){return H},G.fixedBarHeight=function(a){return arguments.length?(C=a,G):C},G.gap=function(a){return arguments.length?(B=a,G):B},G.elasticX=function(a){return arguments.length?(u=a,G):u},G.labelOffsetX=function(a){return arguments.length?(w=a,G):w},G.labelOffsetY=function(a){return arguments.length?(x=a,y=!0,G):x},G.titleLabelOffsetX=function(a){return arguments.length?(A=a,G):A},G.anchor(b,d)},c.legend=function(){function a(){return j+i}var b,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70,n=!1;return f.parent=function(a){return arguments.length?(b=a,f):b},f.render=function(){b.svg().select("g.dc-legend").remove(),d=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=b.legendables(),o=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)}).on("click",function(a){a.chart.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(c.pluck("dashstyle"))?o.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",c.pluck("dashstyle")).attr("stroke",c.pluck("color")):o.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),o.append("text").text(c.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var p=0,q=0;o.attr("transform",function(b,c){if(k){var d="translate("+p+","+q*a()+")",e=n===!0?this.getBBox().width+j:m;return p+e>=l?(++q,p=0):p+=e,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f.autoItemWidth=function(a){return arguments.length?(n=a,f):n},f},c.scatterPlot=function(b,d){function e(b,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return b(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),c.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var b=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});c.transition(b,g.transitionDuration()).attr("d",h)}var g=c.coordinateGridMixin({}),h=a.svg.symbol(),i=function(a){return a.value},j=g.keyAccessor();g.keyAccessor(function(a){return j(a)[0]}),g.valueAccessor(function(a){return j(a)[1]}),g.colorAccessor(function(){return g._groupName});var k=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},l=3,m=5,n=0;return h.size(function(a){return i(a)?this.filtered?Math.pow(m,2):Math.pow(l,2):n}),c.override(g,"_filter",function(a){return arguments.length?g.__filter(c.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",k),c.transition(a,g.transitionDuration()).attr("opacity",function(a){return i(a)?1:0}).attr("fill",g.getColor).attr("transform",k).attr("d",h),c.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.existenceAccessor=function(a){return arguments.length?(i=a,this):i},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(l=a,g):l},g.highlightedSize=function(a){return arguments.length?(m=a,g):m},g.hiddenSize=function(a){return arguments.length?(n=a,g):n},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")===b.color},m),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")===b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))c.events.trigger(function(){g.filter(null),g.redrawGroup()}),f(!1);else{var b=c.filters.RangedTwoDimensionalFilter(a);c.events.trigger(function(){g.filter(null),g.filter(b),g.redrawGroup()},c.constants.EVENT_DELAY),f(b)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(b,d)},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseMixin({}),h={one:"",some:"",none:""};return g._mandatoryAttributes(["group"]),g.html=function(a){return arguments.length?(a.none?h.none=a.none:a.one?h.none=a.one:a.some&&(h.none=a.some),a.one?h.one=a.one:a.some&&(h.one=a.some),a.some?h.some=a.some:a.one&&(h.some=a.one),g):h},g.value=function(){ return g.data()},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250),g._doRender=function(){var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);return this.lastValue=b,function(a){var d=null,e=g.formatNumber()(c(a));0===b&&""!==h.none?d=h.none:1===b&&""!==h.one?d=h.one:""!==h.some&&(d=h.some),this.innerHTML=d?d.replace("%number",e):e}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},c.heatMap=function(b,d){function e(a,b){var d=p.selectAll(".box-group").filter(function(c){return c.key[a]===b}),e=d.filter(function(a){return!p.hasFilter(a.key)});c.events.trigger(function(){e.empty()?d.each(function(a){p.filter(a.key)}):e.each(function(a){p.filter(a.key)}),p.redrawGroup()})}var f,g,h,i=6.75,j=a.ascending,k=a.ascending,l=a.scale.ordinal(),m=a.scale.ordinal(),n=i,o=i,p=c.colorMixin(c.marginMixin(c.baseMixin({})));p._mandatoryAttributes(["group"]),p.title(p.colorAccessor());var q=function(a){return a},r=function(a){return a};p.colsLabel=function(a){return arguments.length?(q=a,p):q},p.rowsLabel=function(a){return arguments.length?(r=a,p):r};var s=function(a){e(0,a)},t=function(a){e(1,a)},u=function(a){var b=a.key;c.events.trigger(function(){p.filter(b),p.redrawGroup()})};return c.override(p,"filter",function(a){return arguments.length?p._filter(c.filters.TwoDimensionalFilter(a)):p._filter()}),p.rows=function(a){return arguments.length?(h=a,p):h},p.rowOrdering=function(a){return arguments.length?(k=a,p):k},p.cols=function(a){return arguments.length?(g=a,p):g},p.colOrdering=function(a){return arguments.length?(j=a,p):j},p._doRender=function(){return p.resetSvg(),f=p.svg().append("g").attr("class","heatmap").attr("transform","translate("+p.margins().left+","+p.margins().top+")"),p._doRedraw()},p._doRedraw=function(){var a=p.data(),b=p.rows()||a.map(p.valueAccessor()),d=p.cols()||a.map(p.keyAccessor());k&&(b=b.sort(k)),j&&(d=d.sort(j)),b=m.domain(b),d=l.domain(d);var e=b.domain().length,g=d.domain().length,h=Math.floor(p.effectiveWidth()/g),i=Math.floor(p.effectiveHeight()/e);d.rangeRoundBands([0,p.effectiveWidth()]),b.rangeRoundBands([p.effectiveHeight(),0]);var q=f.selectAll("g.box-group").data(p.data(),function(a,b){return p.keyAccessor()(a,b)+"\x00"+p.valueAccessor()(a,b)}),r=q.enter().append("g").attr("class","box-group");r.append("rect").attr("class","heat-box").attr("fill","white").on("click",p.boxOnClick()),p.renderTitle()&&(r.append("title"),q.selectAll("title").text(p.title())),c.transition(q.selectAll("rect"),p.transitionDuration()).attr("x",function(a,b){return d(p.keyAccessor()(a,b))}).attr("y",function(a,c){return b(p.valueAccessor()(a,c))}).attr("rx",n).attr("ry",o).attr("fill",p.getColor).attr("width",h).attr("height",i),q.exit().remove();var s=f.selectAll("g.cols");s.empty()&&(s=f.append("g").attr("class","cols axis"));var t=s.selectAll("text").data(d.domain());t.enter().append("text").attr("x",function(a){return d(a)+h/2}).style("text-anchor","middle").attr("y",p.effectiveHeight()).attr("dy",12).on("click",p.xAxisOnClick()).text(p.colsLabel()),c.transition(t,p.transitionDuration()).text(p.colsLabel()).attr("x",function(a){return d(a)+h/2}),t.exit().remove();var u=f.selectAll("g.rows");u.empty()&&(u=f.append("g").attr("class","rows axis"));var v=u.selectAll("text").data(b.domain());return v.enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",p.yAxisOnClick()).text(p.rowsLabel()),c.transition(v,p.transitionDuration()).text(p.rowsLabel()).attr("y",function(a){return b(a)+i/2}),v.exit().remove(),p.selectAll("g.box-group").each(p.hasFilter()?function(a){p.isSelectedNode(a)?p.highlightSelected(this):p.fadeDeselected(this)}:function(){p.resetHighlight(this)}),p},p.boxOnClick=function(a){return arguments.length?(u=a,p):u},p.xAxisOnClick=function(a){return arguments.length?(s=a,p):s},p.yAxisOnClick=function(a){return arguments.length?(t=a,p):t},p.xBorderRadius=function(a){return arguments.length?(n=a,p):n},p.yBorderRadius=function(a){return arguments.length?(o=a,p):o},p.isSelectedNode=function(a){return p.hasFilter(a.key)},p.anchor(b,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null===b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),c.boxPlot=function(b,d){function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}function f(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function g(b){c.transition(b,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function h(a){a.exit().remove().call(m)}var i=c.coordinateGridMixin({}),j=1.5,k=e,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(c.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+", 0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});f(b),g(b),h(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var b=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return c.utils.subtract(b,i.yAxisPadding())},i.yAxisMax=function(){var b=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return c.utils.add(b,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(b,d)},c.abstractBubbleChart=c.bubbleMixin,c.baseChart=c.baseMixin,c.capped=c.capMixin,c.colorChart=c.colorMixin,c.coordinateGridChart=c.coordinateGridMixin,c.marginable=c.marginMixin,c.stackableChart=c.stackMixin,c.d3=a,c.crossfilter=b,c}if("function"==typeof define&&define.amd)define(["d3","crossfilter"],a);else if("object"==typeof module&&module.exports){var b=require("d3"),c=require("crossfilter");"function"!=typeof c&&(c=c.crossfilter),module.exports=a(b,c)}else this.dc=a(d3,crossfilter)}(); //# sourceMappingURL=dc.min.js.map \ No newline at end of file diff --git a/dc.min.js.map b/dc.min.js.map index 8af5389b9..395e27c71 100644 --- a/dc.min.js.map +++ b/dc.min.js.map @@ -1 +1 @@ -{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_legendLabelAccessor","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","legendLabelAccessor","label","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_legendLabelAccessor","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","legendLabelAccessor","label","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"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"} \ No newline at end of file diff --git a/src/pie-chart.js b/src/pie-chart.js index 951ff52e7..3ab352516 100644 --- a/src/pie-chart.js +++ b/src/pie-chart.js @@ -429,7 +429,8 @@ dc.pieChart = function (parent, chartGroup) { _chart.legendables = function () { return _chart.data().map(function (d, i) { - var legendable = {name: _chart.legendLabelAccessor(d, i), data: d.value, others: d.others, chart:_chart}; + var legendable = { name: _chart.legendLabelAccessor().call(this, d, i), + data: d.value, others: d.others, chart:_chart }; legendable.color = _chart.getColor(d, i); return legendable; }); From ba6f752e17a0efacc1f99061cb85c7eaa1ed675e Mon Sep 17 00:00:00 2001 From: Antonio Grass Date: Tue, 21 Apr 2015 22:14:05 -0300 Subject: [PATCH 09/11] Revert "add test and remove helper" This reverts commit 2ab686122ccd58eaa08dfa4749c1609892be6cd0. --- dc.js | 19 +++++------------ dc.min.js | 7 +++--- dc.min.js.map | 2 +- package.json | 34 +----------------------------- spec/bar-chart-spec.js | 0 spec/base-mixin-spec.js | 0 spec/biggish-data-spec.js | 0 spec/box-plot-spec.js | 0 spec/bubble-chart-spec.js | 0 spec/bubble-overlay-spec.js | 0 spec/color-spec.js | 0 spec/composite-chart-spec.js | 0 spec/coordinate-grid-chart-spec.js | 0 spec/core-spec.js | 0 spec/data-addition-spec.js | 0 spec/data-count-spec.js | 0 spec/data-grid-spec.js | 0 spec/data-table-spec.js | 0 spec/event-spec.js | 0 spec/filter-dates-spec.js | 0 spec/filters-spec.js | 0 spec/geo-choropleth-chart-spec.js | 0 spec/heatmap-spec.js | 0 spec/helpers/custom_matchers.js | 0 spec/helpers/fixtures.js | 0 spec/helpers/geoFixtures.js | 0 spec/helpers/spec-helper.js | 0 spec/legend-spec.js | 0 spec/line-chart-spec.js | 0 spec/logger-spec.js | 0 spec/number-display-spec.js | 0 spec/pie-chart-spec.js | 26 ----------------------- spec/row-chart-spec.js | 0 spec/scatter-plot-spec.js | 0 spec/series-chart-spec.js | 0 spec/utils-spec.js | 0 src/base-mixin.js | 17 ++++----------- src/pie-chart.js | 2 +- 38 files changed, 16 insertions(+), 91 deletions(-) mode change 100755 => 100644 spec/bar-chart-spec.js mode change 100755 => 100644 spec/base-mixin-spec.js mode change 100755 => 100644 spec/biggish-data-spec.js mode change 100755 => 100644 spec/box-plot-spec.js mode change 100755 => 100644 spec/bubble-chart-spec.js mode change 100755 => 100644 spec/bubble-overlay-spec.js mode change 100755 => 100644 spec/color-spec.js mode change 100755 => 100644 spec/composite-chart-spec.js mode change 100755 => 100644 spec/coordinate-grid-chart-spec.js mode change 100755 => 100644 spec/core-spec.js mode change 100755 => 100644 spec/data-addition-spec.js mode change 100755 => 100644 spec/data-count-spec.js mode change 100755 => 100644 spec/data-grid-spec.js mode change 100755 => 100644 spec/data-table-spec.js mode change 100755 => 100644 spec/event-spec.js mode change 100755 => 100644 spec/filter-dates-spec.js mode change 100755 => 100644 spec/filters-spec.js mode change 100755 => 100644 spec/geo-choropleth-chart-spec.js mode change 100755 => 100644 spec/heatmap-spec.js mode change 100755 => 100644 spec/helpers/custom_matchers.js mode change 100755 => 100644 spec/helpers/fixtures.js mode change 100755 => 100644 spec/helpers/geoFixtures.js mode change 100755 => 100644 spec/helpers/spec-helper.js mode change 100755 => 100644 spec/legend-spec.js mode change 100755 => 100644 spec/line-chart-spec.js mode change 100755 => 100644 spec/logger-spec.js mode change 100755 => 100644 spec/number-display-spec.js mode change 100755 => 100644 spec/pie-chart-spec.js mode change 100755 => 100644 spec/row-chart-spec.js mode change 100755 => 100644 spec/scatter-plot-spec.js mode change 100755 => 100644 spec/series-chart-spec.js mode change 100755 => 100644 spec/utils-spec.js diff --git a/dc.js b/dc.js index e712be72c..4ddd9bf38 100644 --- a/dc.js +++ b/dc.js @@ -1545,19 +1545,6 @@ dc.baseMixin = function (_chart) { return _chart; }; - - /** - #### .legendLabelAccessor([legendLabelAccessorFunction]) - Set or get the legend label accessor function. The legend label accessor function is used to retrieve the - value from the legend label for the crossfilter group. - ```js - // default legenLabel accessor - chart.legendLabelAccessor(function(d) { return d.key; }); - // custom legen label accessor for a multi-value crossfilter reduction - chart.legendLabelAccessor(function(p) { return "Custom Legend:" + p.key; }); - ``` - - **/ _chart.legendLabelAccessor = function (_) { if (!arguments.length) { return _legendLabelAccessor; @@ -1589,6 +1576,10 @@ dc.baseMixin = function (_chart) { return _chart; }; + _chart.getLegendLabel = function (d, i) { + return _legendLabelAccessor.call(this, d, i); + }; + /** #### .renderLabel(boolean) Turn on/off label rendering @@ -4146,7 +4137,7 @@ dc.pieChart = function (parent, chartGroup) { _chart.legendables = function () { return _chart.data().map(function (d, i) { - var legendable = {name: _chart.legendLabelAccessor(d, i), data: d.value, others: d.others, chart:_chart}; + var legendable = {name: _chart.getLegendLabel(d, i), data: d.value, others: d.others, chart:_chart}; legendable.color = _chart.getColor(d, i); return legendable; }); diff --git a/dc.min.js b/dc.min.js index 30a10f40e..ed335ebbd 100644 --- a/dc.min.js +++ b/dc.min.js @@ -1,4 +1,5 @@ -!function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&do?b:o},q=p,r=200,s=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>r?b:r},t=s,u=c.pluck("key"),v=c.pluck("value"),w=c.pluck("key"),x=c.pluck("key"),y=c.pluck("key"),z=!1,A=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},B=!0,C=750,D=c.printers.filters,E=["dimension","group"],F=c.constants.DEFAULT_CHART_GROUP,G=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),H=[],I=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c=d&&d>=a)return!0}return!1}),b},J=function(a){return a.all()};d.width=function(b){return arguments.length?(q=a.functor(b||p),d):q(k.node())},d.height=function(b){return arguments.length?(t=a.functor(b||s),d):t(k.node())},d.minWidth=function(a){return arguments.length?(o=a,d):o},d.minHeight=function(a){return arguments.length?(r=a,d):r},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(J=a.functor(b),d.expireCache(),d):J.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(y=a,m=b.quicksort.by(y),d.expireCache(),d):y},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(m||(m=b.quicksort.by(y)),m(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root()):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e)),F=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(D=a,d):D},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(D(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(C=a,d):C},d._mandatoryAttributes=function(a){return arguments.length?(E=a,d):E},d.render=function(){G.preRender(d),E&&E.forEach(f);var a=d._doRender();return n&&n.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){G.renderlet(d),a&&G[a](d)}):(G.renderlet(d),a&&G[a](d))},d.redraw=function(){G.preRedraw(d);var a=d._doRedraw();return n&&n.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&G.filtered(d,a)},d._invokeZoomedListener=function(){G.zoomed(d)};var K=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(K=a,d):K},d.hasFilter=function(a){return K(H,a)};var L=function(a,b){for(var c=0;c=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(L=a,d):L};var M=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(M=a,d):M};var N=function(a){return[]};return d.resetFilterHandler=function(a){return arguments.length?(N=a,d):N},d.replaceFilter=function(a){H=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?L(H,a):M(H,a)}):null===a?H=N(H):d.hasFilter(a)?L(H,a):M(H,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):H.length>0?H[0]:null},d.filters=function(){return H},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(I=a,d):I},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(u=a,d):u},d.valueAccessor=function(a){return arguments.length?(v=a,d):v},d.legendLabelAccessor=function(a){return arguments.length?(x=a,d):x},d.label=function(a){return arguments.length?(w=a,z=!0,d):w},d.renderLabel=function(a){return arguments.length?(z=a,d):z},d.title=function(a){return arguments.length?(A=a,d):A},d.renderTitle=function(a){return arguments.length?(B=a,d):B},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(F=a,d):F},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(n=a,n.parent(d),d):n},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return G.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],ba,b._useOuterPadding()?aa:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,aa=.5,ba=0,ca=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(ca=a,b):ca},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),ca&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=ca?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=ca?b.width()-P:P,d=ca?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(ba=a,b):ba},b._outerRangeBandPadding=function(a){return arguments.length?(aa=a,b):aa},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(d===1/0)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b), -isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"}function C(b,c){O.selectAll("g.pie-slice").each(function(d){b.name===d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G,H,I=.5,J="pie-slice",K="empty-chart",L="empty",M=0,N=I,O=c.capMixin(c.colorMixin(c.baseMixin({})));return O.colorAccessor(O.cappedKeyAccessor),O.legendLabelAccessor(O.cappedKeyAccessor),O.title(function(a){return O.cappedKeyAccessor(a)+": "+O.cappedValueAccessor(a)}),O.slicesCap=O.cap,O.label(O.cappedKeyAccessor),O.renderLabel(!0),O.transitionDuration(350),O._doRender=function(){return O.resetSvg(),E=O.svg().append("g").attr("transform","translate("+O.cx()+","+O.cy()+")"),e(),O},O.innerRadius=function(a){return arguments.length?(M=a,O):M},O.radius=function(a){return arguments.length?(D=a,O):D},O.cx=function(a){return arguments.length?(F=a,O):F||O.width()/2},O.cy=function(a){return arguments.length?(G=a,O):G||O.height()/2},O._doRedraw=function(){return e(),O},O.minAngleForLabel=function(a){return arguments.length?(N=a,O):N},O.emptyTitle=function(a){return 0===arguments.length?L:(L=a,O)},O.externalLabels=function(a){return 0===arguments.length?H:(H=a?a:void 0,O)},O.legendables=function(){return O.data().map(function(a,b){var c={name:O.legendLabelAccessor(a,b),data:a.value,others:a.others,chart:O};return c.color=O.getColor(a,b),c})},O.legendHighlight=function(a){C(a,!0)},O.legendReset=function(a){C(a,!1)},O.legendToggle=function(a){O.onClick({key:a.name,others:a.others})},O.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(l.y()(a.y+a.y0)-l.y()(a.y0)))}function f(a,b,d){var f=a.selectAll("rect.bar").data(d.values,c.pluck("x")),g=f.enter().append("rect").attr("class","bar").attr("fill",c.pluck("data",l.getColor)).attr("y",l.yAxisHeight()).attr("height",0);l.renderTitle()&&g.append("title").text(c.pluck("data",l.title(d.name))),l.isOrdinal()&&f.on("click",l.onClick),c.transition(f,l.transitionDuration()).attr("x",function(a){var b=l.x()(a.x);return n&&(b-=i/2),l.isOrdinal()&&void 0!==m&&(b+=m/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=l.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",i).attr("height",function(a){return e(a)}).attr("fill",c.pluck("data",l.getColor)).select("title").text(c.pluck("data",l.title(d.name))),c.transition(f.exit(),l.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===i){var a=l.xUnitCount();i=Math.floor(l.isOrdinal()&&void 0===m?l.x().rangeBand():m?(l.xAxisLength()-(a-1)*m)/a:l.xAxisLength()/(1+l.barPadding())/a),(i===1/0||isNaN(i)||j>i)&&(i=j)}}function h(b,c){return function(){var d=a.select(this),e=d.attr("fill")===b;return c?!e:e}}var i,j=1,k=2,l=c.stackMixin(c.coordinateGridMixin({})),m=k,n=!1,o=!1;return c.override(l,"rescale",function(){l._rescale(),i=void 0}),c.override(l,"render",function(){l.round()&&n&&!o&&c.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),l._render()}),l.plotData=function(){var b=l.chartBodyG().selectAll("g.stack").data(l.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},l.fadeDeselectedArea=function(){var a=l.chartBodyG().selectAll("rect.bar"),b=l.brush().extent();if(l.isOrdinal())l.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return l.hasFilter(a.x)}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!l.hasFilter(a.x)})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(l.brushIsEmpty(b))a.classed(c.constants.DESELECTED_CLASS,!1);else{var d=b[0],e=b[1];a.classed(c.constants.DESELECTED_CLASS,function(a){return a.x=e})}},l.centerBar=function(a){return arguments.length?(n=a,l):n},c.override(l,"onClick",function(a){l._onClick(a.data)}),l.barPadding=function(a){return arguments.length?(l._rangeBandPadding(a),m=void 0,l):l._rangeBandPadding()},l._useOuterPadding=function(){return void 0===m},l.outerPadding=l._outerRangeBandPadding,l.gap=function(a){return arguments.length?(m=a,l):m},l.extendBrush=function(){var a=l.brush().extent();return!l.round()||n&&!o||(a[0]=a.map(l.round())[0],a[1]=a.map(l.round())[1],l.chartBodyG().select(".brush").call(l.brush().extent(a))),a},l.alwaysUseRounding=function(a){return arguments.length?(o=a,l):o},l.legendHighlight=function(a){l.isLegendableHidden(a)||l.g().selectAll("rect.bar").classed("highlight",h(a.color)).classed("fadeout",h(a.color,!0))},l.legendReset=function(){l.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},c.override(l,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in l.xUnits()){var b=l.xUnits().resolution;a+=b}return a}),l.anchor(b,d)},c.lineChart=function(b,d){function e(a,b){return z.getColor.call(a,a.values,b)}function f(b,d){var f=a.svg.line().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).interpolate(F).tension(G);r&&f.defined(r);var g=b.append("path").attr("class","line").attr("stroke",e);s&&g.attr("stroke-dasharray",s),c.transition(d.select("path.line"),z.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(b,d){if(A){var f=a.svg.area().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).y0(function(a){return z.y()(a.y0)}).interpolate(F).tension(G);r&&f.defined(r),b.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),c.transition(d.select("path.area"),z.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(b,d){if(!z.brushOn()&&z.xyTipsOn()){var e=u+"-list",f=b.select("g."+e);f.empty()&&(f=b.append("g").attr("class",e)),d.each(function(b,d){var e=b.values;r&&(e=e.filter(r));var g=f.select("g."+u+"._"+d);g.empty()&&(g=f.append("g").attr("class",u+" _"+d)),j(g);var h=g.selectAll("circle."+v).data(e,c.pluck("x"));h.enter().append("circle").attr("class",v).attr("r",m()).style("fill-opacity",D).style("stroke-opacity",E).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}),h.attr("cx",function(a){return c.utils.safeNumber(z.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(z.y()(a.y+a.y0))}).attr("fill",z.getColor).call(p,b),h.exit().remove()})}}function j(a){var b=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+x).empty()?a.append("path").attr("class",x):a.select("path."+x);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",B),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=z._yAxisX()-z.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+z.yAxisHeight()+"L"+c+" "+d;b.select("path."+w).style("display","").attr("d",f),b.select("path."+x).style("display","").attr("d",g)}function m(){return C||B}function n(a){a.style("fill-opacity",D).style("stroke-opacity",E).attr("r",m())}function o(a){a.select("path."+w).style("display","none"),a.select("path."+x).style("display","none")}function p(a,b){z.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(c.pluck("data",z.title(b.name))))}function q(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")===b&&e.attr("stroke-dasharray")===(c instanceof Array?c.join(","):null)||e.attr("fill")===b;return d?!f:f}}var r,s,t=5,u="dc-tooltip",v="dot",w="yRef",x="xRef",y=1e-6,z=c.stackMixin(c.coordinateGridMixin({})),A=!1,B=t,C=null,D=y,E=y,F="linear",G=.7,H=!0;return z.transitionDuration(500),z._rangeBandPadding(1),z.plotData=function(){var a=z.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(z.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},z.interpolate=function(a){return arguments.length?(F=a,z):F},z.tension=function(a){return arguments.length?(G=a,z):G},z.defined=function(a){return arguments.length?(r=a,z):r},z.dashStyle=function(a){return arguments.length?(s=a,z):s},z.renderArea=function(a){return arguments.length?(A=a,z):A},z.xyTipsOn=function(a){return arguments.length?(H=a,z):H},z.dotRadius=function(a){return arguments.length?(B=a,z):B},z.renderDataPoints=function(a){return arguments.length?(a?(D=a.fillOpacity||.8,E=a.strokeOpacity||.8,C=a.radius||2):(D=y,E=y,C=null),z):{fillOpacity:D,strokeOpacity:E,radius:C}},z.legendHighlight=function(a){z.isLegendableHidden(a)||z.g().selectAll("path.line, path.area").classed("highlight",q(a.color,a.dashstyle)).classed("fadeout",q(a.color,a.dashstyle,!0))},z.legendReset=function(){z.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},c.override(z,"legendables",function(){var a=z._legendables();return s?a.map(function(a){return a.dashstyle=s,a}):a}),z.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseMixin({}),g={some:"",all:""};return f.html=function(a){return arguments.length?(a.all&&(g.all=a.all),a.some&&(g.some=a.some),f):g},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f._doRender=function(){var a=f.dimension().size(),b=f.group().value(),c=e(a),d=e(b);return a===b&&""!==g.all?f.root().html(g.all.replace("%total-count",c).replace("%filter-count",d)):""!==g.some?f.root().html(g.some.replace("%total-count",c).replace("%filter-count",d)):(f.selectAll(".total-count").text(c),f.selectAll(".filter-count").text(d)),f},f._doRedraw=function(){return f._doRender()},f.anchor(b,d)},c.dataTable=function(b,d){function e(){var a=!0;if(o.forEach(function(b){a&="function"==typeof b}),!a){m.selectAll("th").remove();var b=m.root().selectAll("th").data(o),c=b.enter().append("th");c.attr("class",l).html(function(a){return m._doColumnHeaderFormat(a)})}var d=m.root().selectAll("tbody").data(f(),function(a){return m.keyAccessor()(a)}),e=d.enter().append("tbody");return e.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",o.length).html(function(a){return m.keyAccessor()(a)}),d.exit().remove(),e}function f(){var b;return b=q===a.ascending?m.dimension().bottom(n):m.dimension().top(n),a.nest().key(m.group()).sortKeys(q).entries(b.sort(function(a,b){return q(p(a),p(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return o.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(function(b){return m._doColumnValueFormat(a,b)})}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l="dc-table-head",m=c.baseMixin({}),n=25,o=[],p=function(a){return a},q=a.ascending;return m._doRender=function(){return m.selectAll("tbody").remove(),g(e()),m},m._doColumnValueFormat=function(a,b){return"function"==typeof a?a(b):"string"==typeof a?b[a]:a.format(b)},m._doColumnHeaderFormat=function(a){return"function"==typeof a?m._doColumnHeaderFnToString(a):"string"==typeof a?m._doColumnHeaderCapitalize(a):String(a.label)},m._doColumnHeaderCapitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},m._doColumnHeaderFnToString=function(a){var b=String(a),c=b.indexOf("return ");if(c>=0){var d=b.lastIndexOf(";");if(d>=0){b=b.substring(c+7,d);var e=b.indexOf("numberFormat");e>=0&&(b=b.replace("numberFormat",""))}}return b},m._doRedraw=function(){return m._doRender()},m.size=function(a){return arguments.length?(n=a,m):n},m.columns=function(a){return arguments.length?(o=a,m):o},m.sortBy=function(a){return arguments.length?(p=a,m):p},m.order=function(a){return arguments.length?(q=a,m):q},m.anchor(b,d)},c.dataGrid=function(b,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=c.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

"+l.keyAccessor()(a)+"

"};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,d)},c.bubbleChart=function(a,b){function d(a){var b=a.enter().append("g");b.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),c.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(b),i._doRenderTitles(b)}function e(a){c.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=c.bubbleMixin(c.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,b)},c.compositeChart=function(b,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return c.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return c.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=c.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),c.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),t=a.scale.linear().domain(b).range([0,G.effectiveWidth()])}H.scale(t)}function f(){var a=s.select("g.axis");e(),a.empty()&&(a=s.append("g").attr("class","axis").attr("transform","translate(0, "+G.effectiveHeight()+")")),c.transition(a,G.transitionDuration()).call(H)}function g(){s.selectAll("g.tick").select("line.grid-line").remove(),s.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-G.effectiveHeight()})}function h(){v=G.data(),f(),g();var a=s.selectAll("g."+D).data(v);i(a),j(a),l(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return D+" _"+b});b.append("rect").attr("width",0),n(b),o(a)}function j(a){a.exit().remove()}function k(){var a=t(0);return a===-(1/0)||a!==a?t(1):a}function l(a){var b,d=v.length;b=C?C:(G.effectiveHeight()-(d+1)*B)/d,y||(x=b/2);var e=a.attr("transform",function(a,c){return"translate(0,"+((c+1)*B+c*b)+")"}).select("rect").attr("height",b).attr("fill",G.getColor).on("click",p).classed("deselected",function(a){return G.hasFilter()?!r(a):!1}).classed("selected",function(a){return G.hasFilter()?r(a):!1});c.transition(e,G.transitionDuration()).attr("width",function(a){return Math.abs(k()-t(G.valueAccessor()(a)))}).attr("transform",q),m(a),o(a)}function m(a){G.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(G.title()))}function n(a){G.renderLabel()&&a.append("text").on("click",p),G.renderTitleLabel()&&a.append("text").attr("class",E).on("click",p)}function o(a){if(G.renderLabel()){var b=a.select("text").attr("x",w).attr("y",x).attr("dy",z).on("click",p).attr("class",function(a,b){return D+" _"+b}).text(function(a){return G.label()(a)});c.transition(b,G.transitionDuration()).attr("transform",q)}if(G.renderTitleLabel()){var d=a.select("."+E).attr("x",G.effectiveWidth()-A).attr("y",x).attr("text-anchor","end").on("click",p).attr("class",function(a,b){return E+" _"+b}).text(function(a){return G.title()(a)});c.transition(d,G.transitionDuration()).attr("transform",q)}}function p(a){G.onClick(a)}function q(a){var b=t(G.cappedValueAccessor(a)),c=k(),d=b>c?c:b;return"translate("+d+",0)"}function r(a){return G.hasFilter(G.cappedKeyAccessor(a))}var s,t,u,v,w=10,x=15,y=!1,z="0.35em",A=2,B=5,C=!1,D="row",E="titlerow",F=!1,G=c.capMixin(c.marginMixin(c.colorMixin(c.baseMixin({})))),H=a.svg.axis().orient("bottom");return G.rowsCap=G.cap,G._doRender=function(){return G.resetSvg(),s=G.svg().append("g").attr("transform","translate("+G.margins().left+","+G.margins().top+")"),h(),G},G.title(function(a){return G.cappedKeyAccessor(a)+": "+G.cappedValueAccessor(a)}),G.label(G.cappedKeyAccessor),G.x=function(a){return arguments.length?(t=a,G):t},G.renderTitleLabel=function(a){return arguments.length?(F=a,G):F},G._doRedraw=function(){return h(),G},G.xAxis=function(){return H},G.fixedBarHeight=function(a){return arguments.length?(C=a,G):C},G.gap=function(a){return arguments.length?(B=a,G):B},G.elasticX=function(a){return arguments.length?(u=a,G):u},G.labelOffsetX=function(a){return arguments.length?(w=a,G):w},G.labelOffsetY=function(a){return arguments.length?(x=a,y=!0,G):x},G.titleLabelOffsetX=function(a){return arguments.length?(A=a,G):A},G.anchor(b,d)},c.legend=function(){function a(){return j+i}var b,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70,n=!1;return f.parent=function(a){return arguments.length?(b=a,f):b},f.render=function(){b.svg().select("g.dc-legend").remove(),d=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=b.legendables(),o=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)}).on("click",function(a){a.chart.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(c.pluck("dashstyle"))?o.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",c.pluck("dashstyle")).attr("stroke",c.pluck("color")):o.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),o.append("text").text(c.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var p=0,q=0;o.attr("transform",function(b,c){if(k){var d="translate("+p+","+q*a()+")",e=n===!0?this.getBBox().width+j:m;return p+e>=l?(++q,p=0):p+=e,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f.autoItemWidth=function(a){return arguments.length?(n=a,f):n},f},c.scatterPlot=function(b,d){function e(b,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return b(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),c.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var b=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});c.transition(b,g.transitionDuration()).attr("d",h)}var g=c.coordinateGridMixin({}),h=a.svg.symbol(),i=function(a){return a.value},j=g.keyAccessor();g.keyAccessor(function(a){return j(a)[0]}),g.valueAccessor(function(a){return j(a)[1]}),g.colorAccessor(function(){return g._groupName});var k=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},l=3,m=5,n=0;return h.size(function(a){return i(a)?this.filtered?Math.pow(m,2):Math.pow(l,2):n}),c.override(g,"_filter",function(a){return arguments.length?g.__filter(c.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",k),c.transition(a,g.transitionDuration()).attr("opacity",function(a){return i(a)?1:0}).attr("fill",g.getColor).attr("transform",k).attr("d",h),c.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.existenceAccessor=function(a){return arguments.length?(i=a,this):i},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(l=a,g):l},g.highlightedSize=function(a){return arguments.length?(m=a,g):m},g.hiddenSize=function(a){return arguments.length?(n=a,g):n},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")===b.color},m),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")===b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))c.events.trigger(function(){g.filter(null),g.redrawGroup()}),f(!1);else{var b=c.filters.RangedTwoDimensionalFilter(a);c.events.trigger(function(){g.filter(null),g.filter(b),g.redrawGroup()},c.constants.EVENT_DELAY),f(b)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(b,d)},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseMixin({}),h={one:"",some:"",none:""};return g._mandatoryAttributes(["group"]),g.html=function(a){return arguments.length?(a.none?h.none=a.none:a.one?h.none=a.one:a.some&&(h.none=a.some),a.one?h.one=a.one:a.some&&(h.one=a.some),a.some?h.some=a.some:a.one&&(h.some=a.one),g):h},g.value=function(){ -return g.data()},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250),g._doRender=function(){var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);return this.lastValue=b,function(a){var d=null,e=g.formatNumber()(c(a));0===b&&""!==h.none?d=h.none:1===b&&""!==h.one?d=h.one:""!==h.some&&(d=h.some),this.innerHTML=d?d.replace("%number",e):e}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},c.heatMap=function(b,d){function e(a,b){var d=p.selectAll(".box-group").filter(function(c){return c.key[a]===b}),e=d.filter(function(a){return!p.hasFilter(a.key)});c.events.trigger(function(){e.empty()?d.each(function(a){p.filter(a.key)}):e.each(function(a){p.filter(a.key)}),p.redrawGroup()})}var f,g,h,i=6.75,j=a.ascending,k=a.ascending,l=a.scale.ordinal(),m=a.scale.ordinal(),n=i,o=i,p=c.colorMixin(c.marginMixin(c.baseMixin({})));p._mandatoryAttributes(["group"]),p.title(p.colorAccessor());var q=function(a){return a},r=function(a){return a};p.colsLabel=function(a){return arguments.length?(q=a,p):q},p.rowsLabel=function(a){return arguments.length?(r=a,p):r};var s=function(a){e(0,a)},t=function(a){e(1,a)},u=function(a){var b=a.key;c.events.trigger(function(){p.filter(b),p.redrawGroup()})};return c.override(p,"filter",function(a){return arguments.length?p._filter(c.filters.TwoDimensionalFilter(a)):p._filter()}),p.rows=function(a){return arguments.length?(h=a,p):h},p.rowOrdering=function(a){return arguments.length?(k=a,p):k},p.cols=function(a){return arguments.length?(g=a,p):g},p.colOrdering=function(a){return arguments.length?(j=a,p):j},p._doRender=function(){return p.resetSvg(),f=p.svg().append("g").attr("class","heatmap").attr("transform","translate("+p.margins().left+","+p.margins().top+")"),p._doRedraw()},p._doRedraw=function(){var a=p.data(),b=p.rows()||a.map(p.valueAccessor()),d=p.cols()||a.map(p.keyAccessor());k&&(b=b.sort(k)),j&&(d=d.sort(j)),b=m.domain(b),d=l.domain(d);var e=b.domain().length,g=d.domain().length,h=Math.floor(p.effectiveWidth()/g),i=Math.floor(p.effectiveHeight()/e);d.rangeRoundBands([0,p.effectiveWidth()]),b.rangeRoundBands([p.effectiveHeight(),0]);var q=f.selectAll("g.box-group").data(p.data(),function(a,b){return p.keyAccessor()(a,b)+"\x00"+p.valueAccessor()(a,b)}),r=q.enter().append("g").attr("class","box-group");r.append("rect").attr("class","heat-box").attr("fill","white").on("click",p.boxOnClick()),p.renderTitle()&&(r.append("title"),q.selectAll("title").text(p.title())),c.transition(q.selectAll("rect"),p.transitionDuration()).attr("x",function(a,b){return d(p.keyAccessor()(a,b))}).attr("y",function(a,c){return b(p.valueAccessor()(a,c))}).attr("rx",n).attr("ry",o).attr("fill",p.getColor).attr("width",h).attr("height",i),q.exit().remove();var s=f.selectAll("g.cols");s.empty()&&(s=f.append("g").attr("class","cols axis"));var t=s.selectAll("text").data(d.domain());t.enter().append("text").attr("x",function(a){return d(a)+h/2}).style("text-anchor","middle").attr("y",p.effectiveHeight()).attr("dy",12).on("click",p.xAxisOnClick()).text(p.colsLabel()),c.transition(t,p.transitionDuration()).text(p.colsLabel()).attr("x",function(a){return d(a)+h/2}),t.exit().remove();var u=f.selectAll("g.rows");u.empty()&&(u=f.append("g").attr("class","rows axis"));var v=u.selectAll("text").data(b.domain());return v.enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",p.yAxisOnClick()).text(p.rowsLabel()),c.transition(v,p.transitionDuration()).text(p.rowsLabel()).attr("y",function(a){return b(a)+i/2}),v.exit().remove(),p.selectAll("g.box-group").each(p.hasFilter()?function(a){p.isSelectedNode(a)?p.highlightSelected(this):p.fadeDeselected(this)}:function(){p.resetHighlight(this)}),p},p.boxOnClick=function(a){return arguments.length?(u=a,p):u},p.xAxisOnClick=function(a){return arguments.length?(s=a,p):s},p.yAxisOnClick=function(a){return arguments.length?(t=a,p):t},p.xBorderRadius=function(a){return arguments.length?(n=a,p):n},p.yBorderRadius=function(a){return arguments.length?(o=a,p):o},p.isSelectedNode=function(a){return p.hasFilter(a.key)},p.anchor(b,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null===b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),c.boxPlot=function(b,d){function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}function f(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function g(b){c.transition(b,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function h(a){a.exit().remove().call(m)}var i=c.coordinateGridMixin({}),j=1.5,k=e,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(c.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+", 0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});f(b),g(b),h(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var b=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return c.utils.subtract(b,i.yAxisPadding())},i.yAxisMax=function(){var b=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return c.utils.add(b,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(b,d)},c.abstractBubbleChart=c.bubbleMixin,c.baseChart=c.baseMixin,c.capped=c.capMixin,c.colorChart=c.colorMixin,c.coordinateGridChart=c.coordinateGridMixin,c.marginable=c.marginMixin,c.stackableChart=c.stackMixin,c.d3=a,c.crossfilter=b,c}if("function"==typeof define&&define.amd)define(["d3","crossfilter"],a);else if("object"==typeof module&&module.exports){var b=require("d3"),c=require("crossfilter");"function"!=typeof c&&(c=c.crossfilter),module.exports=a(b,c)}else this.dc=a(d3,crossfilter)}(); +!function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&do?b:o},q=p,r=200,s=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>r?b:r},t=s,u=c.pluck("key"),v=c.pluck("value"),w=c.pluck("key"),x=c.pluck("key"),y=c.pluck("key"),z=!1,A=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},B=!0,C=750,D=c.printers.filters,E=["dimension","group"],F=c.constants.DEFAULT_CHART_GROUP,G=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),H=[],I=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c=d&&d>=a)return!0}return!1}),b},J=function(a){return a.all()};d.width=function(b){return arguments.length?(q=a.functor(b||p),d):q(k.node())},d.height=function(b){return arguments.length?(t=a.functor(b||s),d):t(k.node())},d.minWidth=function(a){return arguments.length?(o=a,d):o},d.minHeight=function(a){return arguments.length?(r=a,d):r},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(J=a.functor(b),d.expireCache(),d):J.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(y=a,m=b.quicksort.by(y),d.expireCache(),d):y},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(m||(m=b.quicksort.by(y)),m(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root()):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e)),F=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(D=a,d):D},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(D(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(C=a,d):C},d._mandatoryAttributes=function(a){return arguments.length?(E=a,d):E},d.render=function(){G.preRender(d),E&&E.forEach(f);var a=d._doRender();return n&&n.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){G.renderlet(d),a&&G[a](d)}):(G.renderlet(d),a&&G[a](d))},d.redraw=function(){G.preRedraw(d);var a=d._doRedraw();return n&&n.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&G.filtered(d,a)},d._invokeZoomedListener=function(){G.zoomed(d)};var K=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(K=a,d):K},d.hasFilter=function(a){return K(H,a)};var L=function(a,b){for(var c=0;c=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(L=a,d):L};var M=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(M=a,d):M};var N=function(a){return[]};return d.resetFilterHandler=function(a){return arguments.length?(N=a,d):N},d.replaceFilter=function(a){H=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?L(H,a):M(H,a)}):null===a?H=N(H):d.hasFilter(a)?L(H,a):M(H,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):H.length>0?H[0]:null},d.filters=function(){return H},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(I=a,d):I},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(u=a,d):u},d.valueAccessor=function(a){return arguments.length?(v=a,d):v},d.legendLabelAccessor=function(a){return arguments.length?(x=a,d):x},d.label=function(a){return arguments.length?(w=a,z=!0,d):w},d.getLegendLabel=function(a,b){return x.call(this,a,b)},d.renderLabel=function(a){return arguments.length?(z=a,d):z},d.title=function(a){return arguments.length?(A=a,d):A},d.renderTitle=function(a){return arguments.length?(B=a,d):B},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(F=a,d):F},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(n=a,n.parent(d),d):n},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return G.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],ba,b._useOuterPadding()?aa:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,aa=.5,ba=0,ca=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(ca=a,b):ca},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),ca&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=ca?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=ca?b.width()-P:P,d=ca?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(ba=a,b):ba},b._outerRangeBandPadding=function(a){return arguments.length?(aa=a,b):aa},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(d===1/0)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b), +isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"}function C(b,c){O.selectAll("g.pie-slice").each(function(d){b.name===d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G,H,I=.5,J="pie-slice",K="empty-chart",L="empty",M=0,N=I,O=c.capMixin(c.colorMixin(c.baseMixin({})));return O.colorAccessor(O.cappedKeyAccessor),O.legendLabelAccessor(O.cappedKeyAccessor),O.title(function(a){return O.cappedKeyAccessor(a)+": "+O.cappedValueAccessor(a)}),O.slicesCap=O.cap,O.label(O.cappedKeyAccessor),O.renderLabel(!0),O.transitionDuration(350),O._doRender=function(){return O.resetSvg(),E=O.svg().append("g").attr("transform","translate("+O.cx()+","+O.cy()+")"),e(),O},O.innerRadius=function(a){return arguments.length?(M=a,O):M},O.radius=function(a){return arguments.length?(D=a,O):D},O.cx=function(a){return arguments.length?(F=a,O):F||O.width()/2},O.cy=function(a){return arguments.length?(G=a,O):G||O.height()/2},O._doRedraw=function(){return e(),O},O.minAngleForLabel=function(a){return arguments.length?(N=a,O):N},O.emptyTitle=function(a){return 0===arguments.length?L:(L=a,O)},O.externalLabels=function(a){return 0===arguments.length?H:(H=a?a:void 0,O)},O.legendables=function(){return O.data().map(function(a,b){var c={name:O.getLegendLabel(a,b),data:a.value,others:a.others,chart:O};return c.color=O.getColor(a,b),c})},O.legendHighlight=function(a){C(a,!0)},O.legendReset=function(a){C(a,!1)},O.legendToggle=function(a){O.onClick({key:a.name,others:a.others})},O.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(l.y()(a.y+a.y0)-l.y()(a.y0)))}function f(a,b,d){var f=a.selectAll("rect.bar").data(d.values,c.pluck("x")),g=f.enter().append("rect").attr("class","bar").attr("fill",c.pluck("data",l.getColor)).attr("y",l.yAxisHeight()).attr("height",0);l.renderTitle()&&g.append("title").text(c.pluck("data",l.title(d.name))),l.isOrdinal()&&f.on("click",l.onClick),c.transition(f,l.transitionDuration()).attr("x",function(a){var b=l.x()(a.x);return n&&(b-=i/2),l.isOrdinal()&&void 0!==m&&(b+=m/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=l.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",i).attr("height",function(a){return e(a)}).attr("fill",c.pluck("data",l.getColor)).select("title").text(c.pluck("data",l.title(d.name))),c.transition(f.exit(),l.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===i){var a=l.xUnitCount();i=Math.floor(l.isOrdinal()&&void 0===m?l.x().rangeBand():m?(l.xAxisLength()-(a-1)*m)/a:l.xAxisLength()/(1+l.barPadding())/a),(i===1/0||isNaN(i)||j>i)&&(i=j)}}function h(b,c){return function(){var d=a.select(this),e=d.attr("fill")===b;return c?!e:e}}var i,j=1,k=2,l=c.stackMixin(c.coordinateGridMixin({})),m=k,n=!1,o=!1;return c.override(l,"rescale",function(){l._rescale(),i=void 0}),c.override(l,"render",function(){l.round()&&n&&!o&&c.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),l._render()}),l.plotData=function(){var b=l.chartBodyG().selectAll("g.stack").data(l.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},l.fadeDeselectedArea=function(){var a=l.chartBodyG().selectAll("rect.bar"),b=l.brush().extent();if(l.isOrdinal())l.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return l.hasFilter(a.x)}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!l.hasFilter(a.x)})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(l.brushIsEmpty(b))a.classed(c.constants.DESELECTED_CLASS,!1);else{var d=b[0],e=b[1];a.classed(c.constants.DESELECTED_CLASS,function(a){return a.x=e})}},l.centerBar=function(a){return arguments.length?(n=a,l):n},c.override(l,"onClick",function(a){l._onClick(a.data)}),l.barPadding=function(a){return arguments.length?(l._rangeBandPadding(a),m=void 0,l):l._rangeBandPadding()},l._useOuterPadding=function(){return void 0===m},l.outerPadding=l._outerRangeBandPadding,l.gap=function(a){return arguments.length?(m=a,l):m},l.extendBrush=function(){var a=l.brush().extent();return!l.round()||n&&!o||(a[0]=a.map(l.round())[0],a[1]=a.map(l.round())[1],l.chartBodyG().select(".brush").call(l.brush().extent(a))),a},l.alwaysUseRounding=function(a){return arguments.length?(o=a,l):o},l.legendHighlight=function(a){l.isLegendableHidden(a)||l.g().selectAll("rect.bar").classed("highlight",h(a.color)).classed("fadeout",h(a.color,!0))},l.legendReset=function(){l.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},c.override(l,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in l.xUnits()){var b=l.xUnits().resolution;a+=b}return a}),l.anchor(b,d)},c.lineChart=function(b,d){function e(a,b){return z.getColor.call(a,a.values,b)}function f(b,d){var f=a.svg.line().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).interpolate(F).tension(G);r&&f.defined(r);var g=b.append("path").attr("class","line").attr("stroke",e);s&&g.attr("stroke-dasharray",s),c.transition(d.select("path.line"),z.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(b,d){if(A){var f=a.svg.area().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).y0(function(a){return z.y()(a.y0)}).interpolate(F).tension(G);r&&f.defined(r),b.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),c.transition(d.select("path.area"),z.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(b,d){if(!z.brushOn()&&z.xyTipsOn()){var e=u+"-list",f=b.select("g."+e);f.empty()&&(f=b.append("g").attr("class",e)),d.each(function(b,d){var e=b.values;r&&(e=e.filter(r));var g=f.select("g."+u+"._"+d);g.empty()&&(g=f.append("g").attr("class",u+" _"+d)),j(g);var h=g.selectAll("circle."+v).data(e,c.pluck("x"));h.enter().append("circle").attr("class",v).attr("r",m()).style("fill-opacity",D).style("stroke-opacity",E).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}),h.attr("cx",function(a){return c.utils.safeNumber(z.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(z.y()(a.y+a.y0))}).attr("fill",z.getColor).call(p,b),h.exit().remove()})}}function j(a){var b=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+x).empty()?a.append("path").attr("class",x):a.select("path."+x);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",B),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=z._yAxisX()-z.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+z.yAxisHeight()+"L"+c+" "+d;b.select("path."+w).style("display","").attr("d",f),b.select("path."+x).style("display","").attr("d",g)}function m(){return C||B}function n(a){a.style("fill-opacity",D).style("stroke-opacity",E).attr("r",m())}function o(a){a.select("path."+w).style("display","none"),a.select("path."+x).style("display","none")}function p(a,b){z.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(c.pluck("data",z.title(b.name))))}function q(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")===b&&e.attr("stroke-dasharray")===(c instanceof Array?c.join(","):null)||e.attr("fill")===b;return d?!f:f}}var r,s,t=5,u="dc-tooltip",v="dot",w="yRef",x="xRef",y=1e-6,z=c.stackMixin(c.coordinateGridMixin({})),A=!1,B=t,C=null,D=y,E=y,F="linear",G=.7,H=!0;return z.transitionDuration(500),z._rangeBandPadding(1),z.plotData=function(){var a=z.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(z.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},z.interpolate=function(a){return arguments.length?(F=a,z):F},z.tension=function(a){return arguments.length?(G=a,z):G},z.defined=function(a){return arguments.length?(r=a,z):r},z.dashStyle=function(a){return arguments.length?(s=a,z):s},z.renderArea=function(a){return arguments.length?(A=a,z):A},z.xyTipsOn=function(a){return arguments.length?(H=a,z):H},z.dotRadius=function(a){return arguments.length?(B=a,z):B},z.renderDataPoints=function(a){return arguments.length?(a?(D=a.fillOpacity||.8,E=a.strokeOpacity||.8,C=a.radius||2):(D=y,E=y,C=null),z):{fillOpacity:D,strokeOpacity:E,radius:C}},z.legendHighlight=function(a){z.isLegendableHidden(a)||z.g().selectAll("path.line, path.area").classed("highlight",q(a.color,a.dashstyle)).classed("fadeout",q(a.color,a.dashstyle,!0))},z.legendReset=function(){z.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},c.override(z,"legendables",function(){var a=z._legendables();return s?a.map(function(a){return a.dashstyle=s,a}):a}),z.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseMixin({}),g={some:"",all:""};return f.html=function(a){return arguments.length?(a.all&&(g.all=a.all),a.some&&(g.some=a.some),f):g},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f._doRender=function(){var a=f.dimension().size(),b=f.group().value(),c=e(a),d=e(b);return a===b&&""!==g.all?f.root().html(g.all.replace("%total-count",c).replace("%filter-count",d)):""!==g.some?f.root().html(g.some.replace("%total-count",c).replace("%filter-count",d)):(f.selectAll(".total-count").text(c),f.selectAll(".filter-count").text(d)),f},f._doRedraw=function(){return f._doRender()},f.anchor(b,d)},c.dataTable=function(b,d){function e(){var a=!0;if(o.forEach(function(b){a&="function"==typeof b}),!a){m.selectAll("th").remove();var b=m.root().selectAll("th").data(o),c=b.enter().append("th");c.attr("class",l).html(function(a){return m._doColumnHeaderFormat(a)})}var d=m.root().selectAll("tbody").data(f(),function(a){return m.keyAccessor()(a)}),e=d.enter().append("tbody");return e.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",o.length).html(function(a){return m.keyAccessor()(a)}),d.exit().remove(),e}function f(){var b;return b=q===a.ascending?m.dimension().bottom(n):m.dimension().top(n),a.nest().key(m.group()).sortKeys(q).entries(b.sort(function(a,b){return q(p(a),p(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return o.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(function(b){return m._doColumnValueFormat(a,b)})}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l="dc-table-head",m=c.baseMixin({}),n=25,o=[],p=function(a){return a},q=a.ascending;return m._doRender=function(){return m.selectAll("tbody").remove(),g(e()),m},m._doColumnValueFormat=function(a,b){return"function"==typeof a?a(b):"string"==typeof a?b[a]:a.format(b)},m._doColumnHeaderFormat=function(a){return"function"==typeof a?m._doColumnHeaderFnToString(a):"string"==typeof a?m._doColumnHeaderCapitalize(a):String(a.label)},m._doColumnHeaderCapitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},m._doColumnHeaderFnToString=function(a){var b=String(a),c=b.indexOf("return ");if(c>=0){var d=b.lastIndexOf(";");if(d>=0){b=b.substring(c+7,d);var e=b.indexOf("numberFormat");e>=0&&(b=b.replace("numberFormat",""))}}return b},m._doRedraw=function(){return m._doRender()},m.size=function(a){return arguments.length?(n=a,m):n},m.columns=function(a){return arguments.length?(o=a,m):o},m.sortBy=function(a){return arguments.length?(p=a,m):p},m.order=function(a){return arguments.length?(q=a,m):q},m.anchor(b,d)},c.dataGrid=function(b,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=c.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

"+l.keyAccessor()(a)+"

"};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,d)},c.bubbleChart=function(a,b){function d(a){var b=a.enter().append("g");b.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),c.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(b),i._doRenderTitles(b)}function e(a){c.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=c.bubbleMixin(c.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,b)},c.compositeChart=function(b,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return c.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return c.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=c.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),c.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),t=a.scale.linear().domain(b).range([0,G.effectiveWidth()])}H.scale(t)}function f(){var a=s.select("g.axis");e(),a.empty()&&(a=s.append("g").attr("class","axis").attr("transform","translate(0, "+G.effectiveHeight()+")")),c.transition(a,G.transitionDuration()).call(H)}function g(){s.selectAll("g.tick").select("line.grid-line").remove(),s.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-G.effectiveHeight()})}function h(){v=G.data(),f(),g();var a=s.selectAll("g."+D).data(v);i(a),j(a),l(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return D+" _"+b});b.append("rect").attr("width",0),n(b),o(a)}function j(a){a.exit().remove()}function k(){var a=t(0);return a===-(1/0)||a!==a?t(1):a}function l(a){var b,d=v.length;b=C?C:(G.effectiveHeight()-(d+1)*B)/d,y||(x=b/2);var e=a.attr("transform",function(a,c){return"translate(0,"+((c+1)*B+c*b)+")"}).select("rect").attr("height",b).attr("fill",G.getColor).on("click",p).classed("deselected",function(a){return G.hasFilter()?!r(a):!1}).classed("selected",function(a){return G.hasFilter()?r(a):!1});c.transition(e,G.transitionDuration()).attr("width",function(a){return Math.abs(k()-t(G.valueAccessor()(a)))}).attr("transform",q),m(a),o(a)}function m(a){G.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(G.title()))}function n(a){G.renderLabel()&&a.append("text").on("click",p),G.renderTitleLabel()&&a.append("text").attr("class",E).on("click",p)}function o(a){if(G.renderLabel()){var b=a.select("text").attr("x",w).attr("y",x).attr("dy",z).on("click",p).attr("class",function(a,b){return D+" _"+b}).text(function(a){return G.label()(a)});c.transition(b,G.transitionDuration()).attr("transform",q)}if(G.renderTitleLabel()){var d=a.select("."+E).attr("x",G.effectiveWidth()-A).attr("y",x).attr("text-anchor","end").on("click",p).attr("class",function(a,b){return E+" _"+b}).text(function(a){return G.title()(a)});c.transition(d,G.transitionDuration()).attr("transform",q)}}function p(a){G.onClick(a)}function q(a){var b=t(G.cappedValueAccessor(a)),c=k(),d=b>c?c:b;return"translate("+d+",0)"}function r(a){return G.hasFilter(G.cappedKeyAccessor(a))}var s,t,u,v,w=10,x=15,y=!1,z="0.35em",A=2,B=5,C=!1,D="row",E="titlerow",F=!1,G=c.capMixin(c.marginMixin(c.colorMixin(c.baseMixin({})))),H=a.svg.axis().orient("bottom");return G.rowsCap=G.cap,G._doRender=function(){return G.resetSvg(),s=G.svg().append("g").attr("transform","translate("+G.margins().left+","+G.margins().top+")"),h(),G},G.title(function(a){return G.cappedKeyAccessor(a)+": "+G.cappedValueAccessor(a)}),G.label(G.cappedKeyAccessor),G.x=function(a){return arguments.length?(t=a,G):t},G.renderTitleLabel=function(a){return arguments.length?(F=a,G):F},G._doRedraw=function(){return h(),G},G.xAxis=function(){return H},G.fixedBarHeight=function(a){return arguments.length?(C=a,G):C},G.gap=function(a){return arguments.length?(B=a,G):B},G.elasticX=function(a){return arguments.length?(u=a,G):u},G.labelOffsetX=function(a){return arguments.length?(w=a,G):w},G.labelOffsetY=function(a){return arguments.length?(x=a,y=!0,G):x},G.titleLabelOffsetX=function(a){return arguments.length?(A=a,G):A},G.anchor(b,d)},c.legend=function(){function a(){return j+i}var b,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70,n=!1;return f.parent=function(a){return arguments.length?(b=a,f):b},f.render=function(){b.svg().select("g.dc-legend").remove(),d=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=b.legendables(),o=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)}).on("click",function(a){a.chart.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(c.pluck("dashstyle"))?o.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",c.pluck("dashstyle")).attr("stroke",c.pluck("color")):o.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),o.append("text").text(c.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var p=0,q=0;o.attr("transform",function(b,c){if(k){var d="translate("+p+","+q*a()+")",e=n===!0?this.getBBox().width+j:m;return p+e>=l?(++q,p=0):p+=e,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f.autoItemWidth=function(a){return arguments.length?(n=a,f):n},f},c.scatterPlot=function(b,d){function e(b,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return b(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),c.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var b=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});c.transition(b,g.transitionDuration()).attr("d",h)}var g=c.coordinateGridMixin({}),h=a.svg.symbol(),i=function(a){return a.value},j=g.keyAccessor();g.keyAccessor(function(a){return j(a)[0]}),g.valueAccessor(function(a){return j(a)[1]}),g.colorAccessor(function(){return g._groupName});var k=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},l=3,m=5,n=0;return h.size(function(a){return i(a)?this.filtered?Math.pow(m,2):Math.pow(l,2):n}),c.override(g,"_filter",function(a){return arguments.length?g.__filter(c.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",k),c.transition(a,g.transitionDuration()).attr("opacity",function(a){return i(a)?1:0}).attr("fill",g.getColor).attr("transform",k).attr("d",h),c.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.existenceAccessor=function(a){return arguments.length?(i=a,this):i},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(l=a,g):l},g.highlightedSize=function(a){return arguments.length?(m=a,g):m},g.hiddenSize=function(a){return arguments.length?(n=a,g):n},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")===b.color},m),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")===b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))c.events.trigger(function(){g.filter(null),g.redrawGroup()}),f(!1);else{var b=c.filters.RangedTwoDimensionalFilter(a);c.events.trigger(function(){g.filter(null),g.filter(b),g.redrawGroup()},c.constants.EVENT_DELAY),f(b)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(b,d)},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseMixin({}),h={one:"",some:"",none:""};return g._mandatoryAttributes(["group"]),g.html=function(a){return arguments.length?(a.none?h.none=a.none:a.one?h.none=a.one:a.some&&(h.none=a.some),a.one?h.one=a.one:a.some&&(h.one=a.some),a.some?h.some=a.some:a.one&&(h.some=a.one),g):h},g.value=function(){return g.data(); + +},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250),g._doRender=function(){var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);return this.lastValue=b,function(a){var d=null,e=g.formatNumber()(c(a));0===b&&""!==h.none?d=h.none:1===b&&""!==h.one?d=h.one:""!==h.some&&(d=h.some),this.innerHTML=d?d.replace("%number",e):e}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},c.heatMap=function(b,d){function e(a,b){var d=p.selectAll(".box-group").filter(function(c){return c.key[a]===b}),e=d.filter(function(a){return!p.hasFilter(a.key)});c.events.trigger(function(){e.empty()?d.each(function(a){p.filter(a.key)}):e.each(function(a){p.filter(a.key)}),p.redrawGroup()})}var f,g,h,i=6.75,j=a.ascending,k=a.ascending,l=a.scale.ordinal(),m=a.scale.ordinal(),n=i,o=i,p=c.colorMixin(c.marginMixin(c.baseMixin({})));p._mandatoryAttributes(["group"]),p.title(p.colorAccessor());var q=function(a){return a},r=function(a){return a};p.colsLabel=function(a){return arguments.length?(q=a,p):q},p.rowsLabel=function(a){return arguments.length?(r=a,p):r};var s=function(a){e(0,a)},t=function(a){e(1,a)},u=function(a){var b=a.key;c.events.trigger(function(){p.filter(b),p.redrawGroup()})};return c.override(p,"filter",function(a){return arguments.length?p._filter(c.filters.TwoDimensionalFilter(a)):p._filter()}),p.rows=function(a){return arguments.length?(h=a,p):h},p.rowOrdering=function(a){return arguments.length?(k=a,p):k},p.cols=function(a){return arguments.length?(g=a,p):g},p.colOrdering=function(a){return arguments.length?(j=a,p):j},p._doRender=function(){return p.resetSvg(),f=p.svg().append("g").attr("class","heatmap").attr("transform","translate("+p.margins().left+","+p.margins().top+")"),p._doRedraw()},p._doRedraw=function(){var a=p.data(),b=p.rows()||a.map(p.valueAccessor()),d=p.cols()||a.map(p.keyAccessor());k&&(b=b.sort(k)),j&&(d=d.sort(j)),b=m.domain(b),d=l.domain(d);var e=b.domain().length,g=d.domain().length,h=Math.floor(p.effectiveWidth()/g),i=Math.floor(p.effectiveHeight()/e);d.rangeRoundBands([0,p.effectiveWidth()]),b.rangeRoundBands([p.effectiveHeight(),0]);var q=f.selectAll("g.box-group").data(p.data(),function(a,b){return p.keyAccessor()(a,b)+"\x00"+p.valueAccessor()(a,b)}),r=q.enter().append("g").attr("class","box-group");r.append("rect").attr("class","heat-box").attr("fill","white").on("click",p.boxOnClick()),p.renderTitle()&&(r.append("title"),q.selectAll("title").text(p.title())),c.transition(q.selectAll("rect"),p.transitionDuration()).attr("x",function(a,b){return d(p.keyAccessor()(a,b))}).attr("y",function(a,c){return b(p.valueAccessor()(a,c))}).attr("rx",n).attr("ry",o).attr("fill",p.getColor).attr("width",h).attr("height",i),q.exit().remove();var s=f.selectAll("g.cols");s.empty()&&(s=f.append("g").attr("class","cols axis"));var t=s.selectAll("text").data(d.domain());t.enter().append("text").attr("x",function(a){return d(a)+h/2}).style("text-anchor","middle").attr("y",p.effectiveHeight()).attr("dy",12).on("click",p.xAxisOnClick()).text(p.colsLabel()),c.transition(t,p.transitionDuration()).text(p.colsLabel()).attr("x",function(a){return d(a)+h/2}),t.exit().remove();var u=f.selectAll("g.rows");u.empty()&&(u=f.append("g").attr("class","rows axis"));var v=u.selectAll("text").data(b.domain());return v.enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",p.yAxisOnClick()).text(p.rowsLabel()),c.transition(v,p.transitionDuration()).text(p.rowsLabel()).attr("y",function(a){return b(a)+i/2}),v.exit().remove(),p.selectAll("g.box-group").each(p.hasFilter()?function(a){p.isSelectedNode(a)?p.highlightSelected(this):p.fadeDeselected(this)}:function(){p.resetHighlight(this)}),p},p.boxOnClick=function(a){return arguments.length?(u=a,p):u},p.xAxisOnClick=function(a){return arguments.length?(s=a,p):s},p.yAxisOnClick=function(a){return arguments.length?(t=a,p):t},p.xBorderRadius=function(a){return arguments.length?(n=a,p):n},p.yBorderRadius=function(a){return arguments.length?(o=a,p):o},p.isSelectedNode=function(a){return p.hasFilter(a.key)},p.anchor(b,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null===b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),c.boxPlot=function(b,d){function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}function f(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function g(b){c.transition(b,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function h(a){a.exit().remove().call(m)}var i=c.coordinateGridMixin({}),j=1.5,k=e,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(c.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+", 0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});f(b),g(b),h(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var b=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return c.utils.subtract(b,i.yAxisPadding())},i.yAxisMax=function(){var b=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return c.utils.add(b,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(b,d)},c.abstractBubbleChart=c.bubbleMixin,c.baseChart=c.baseMixin,c.capped=c.capMixin,c.colorChart=c.colorMixin,c.coordinateGridChart=c.coordinateGridMixin,c.marginable=c.marginMixin,c.stackableChart=c.stackMixin,c.d3=a,c.crossfilter=b,c}if("function"==typeof define&&define.amd)define(["d3","crossfilter"],a);else if("object"==typeof module&&module.exports){var b=require("d3"),c=require("crossfilter");"function"!=typeof c&&(c=c.crossfilter),module.exports=a(b,c)}else this.dc=a(d3,crossfilter)}(); //# sourceMappingURL=dc.min.js.map \ No newline at end of file diff --git a/dc.min.js.map b/dc.min.js.map index 8af5389b9..2e2139faa 100644 --- a/dc.min.js.map +++ b/dc.min.js.map @@ -1 +1 @@ -{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_legendLabelAccessor","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","legendLabelAccessor","label","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"CAkBA,WAAc,QAASA,GAAIC,EAAIC,GAC/B,YAuBA,IAAIC,IACAC,QAAS,YACTC,WACIC,YAAa,WACbC,kBAAmB,QACnBC,YAAa,QACbC,iBAAkB,aAClBC,eAAgB,WAChBC,gBAAiB,YACjBC,iBAAkB,kBAClBC,oBAAqB,0BACrBC,YAAa,GACbC,kBAAmB,OAEvBC,WAAY,KAGhBb,GAAGc,cAAgB,WAIf,QAASC,GAAqBC,GAS1B,MARKA,KACDA,EAAQhB,EAAGE,UAAUQ,qBAGpBO,EAAUD,KACXC,EAAUD,OAGPA,EAXX,GAAIC,KAcJ,QACIC,IAAK,SAAUC,GACX,IAAK,GAAIC,KAAKH,GACV,GAAIA,EAAUG,GAAGC,QAAQF,IAAU,EAC/B,OAAO,CAGf,QAAO,GAGXG,SAAU,SAAUH,EAAOH,GACvBA,EAAQD,EAAqBC,GAC7BC,EAAUD,GAAOO,KAAKJ,IAG1BK,WAAY,SAAUL,EAAOH,GACzBA,EAAQD,EAAqBC,EAC7B,KAAK,GAAIS,GAAI,EAAGA,EAAIR,EAAUD,GAAOU,OAAQD,IACzC,GAAIR,EAAUD,GAAOS,GAAGE,eAAiBR,EAAMQ,aAAc,CACzDV,EAAUD,GAAOY,OAAOH,EAAG,EAC3B,SAKZI,MAAO,SAAUb,GACTA,QACOC,GAAUD,GAEjBC,MAIRa,KAAM,SAAUd,GAEZ,MADAA,GAAQD,EAAqBC,GACtBC,EAAUD,QAO7BhB,EAAG+B,cAAgB,SAAUZ,EAAOH,GAChChB,EAAGc,cAAcQ,SAASH,EAAOH,IAGrChB,EAAGgC,gBAAkB,SAAUb,EAAOH,GAClChB,EAAGc,cAAcU,WAAWL,EAAOH,IAGvChB,EAAGiC,SAAW,SAAUd,GACpB,MAAOnB,GAAGc,cAAcI,IAAIC,IAGhCnB,EAAGkC,oBAAsB,SAAUlB,GAC/BhB,EAAGc,cAAce,MAAMb,IAY3BhB,EAAGmC,UAAY,SAAUnB,GAErB,IAAK,GADDoB,GAASpC,EAAGc,cAAcgB,KAAKd,GAC1BS,EAAI,EAAGA,EAAIW,EAAOV,SAAUD,EACjCW,EAAOX,GAAGU,aASlBnC,EAAGqC,WAAa,SAAUrB,GAEtB,IAAK,GADDoB,GAASpC,EAAGc,cAAcgB,KAAKd,GAC1BS,EAAI,EAAGA,EAAIW,EAAOV,SAAUD,EAC7BW,EAAOX,GAAGa,OACVF,EAAOX,GAAGa,SAUtBtC,EAAGuC,UAAY,SAAUvB,GAErB,IAAK,GADDoB,GAASpC,EAAGc,cAAcgB,KAAKd,GAC1BS,EAAI,EAAGA,EAAIW,EAAOV,SAAUD,EACjCW,EAAOX,GAAGe,QAGQ,QAAlBxC,EAAGa,YACHb,EAAGa,WAAWG,IAWtBhB,EAAGyC,UAAY,SAAUzB,GAErB,IAAK,GADDoB,GAASpC,EAAGc,cAAcgB,KAAKd,GAC1BS,EAAI,EAAGA,EAAIW,EAAOV,SAAUD,EACjCW,EAAOX,GAAGiB,QAGQ,QAAlB1C,EAAGa,YACHb,EAAGa,WAAWG,IAStBhB,EAAG2C,oBAAqB,EAExB3C,EAAG4C,WAAa,SAAUC,EAAYC,EAAUC,GAC5C,GAAgB,GAAZD,GAA8BE,SAAbF,GAA0B9C,EAAG2C,mBAC9C,MAAOE,EAGX,IAAII,GAAIJ,EACHD,aACAE,SAASA,EAMd,OAJyB,kBAAf,IACNC,EAASE,GAGNA,GAGXjD,EAAGkD,SAcHlD,EAAGkD,MAAMC,SAAW,SAAUF,EAAG7B,GAC7B,MAAOgC,MAAKC,IAAIjC,EAAI6B,IAgBxBjD,EAAGkD,MAAMI,QAAU,SAAUL,EAAG7B,EAAGmC,GAC/B,MAAOA,IAoBXvD,EAAGkD,MAAMM,MACTxD,EAAGkD,MAAMM,GAAGC,UAAY,SAAUA,GAC9B,GAAIC,GAAK,SAAUT,EAAG7B,GAClB,GAAIuC,GAAIP,KAAKC,KAAKjC,EAAI6B,GAAKS,EAAGE,WAC9B,OAAI5D,GAAG6D,MAAMC,aAAaH,EAAIP,KAAKW,MAAMJ,IAC9BP,KAAKW,MAAMJ,GAEXP,KAAKY,KAAKL,GAIzB,OADAD,GAAGE,WAAaH,EACTC,GAGX1D,EAAGiE,SACHjE,EAAGiE,MAAMF,MAAQ,SAAUG,GACvB,MAAOd,MAAKW,MAAMG,IAEtBlE,EAAGiE,MAAMD,KAAO,SAAUE,GACtB,MAAOd,MAAKY,KAAKE,IAErBlE,EAAGiE,MAAMA,MAAQ,SAAUC,GACvB,MAAOd,MAAKa,MAAMC,IAGtBlE,EAAGmE,SAAW,SAAUC,EAAKC,EAAcC,GACvC,GAAIC,GAAmBH,EAAIC,EAC3BD,GAAI,IAAMC,GAAgBE,EAC1BH,EAAIC,GAAgBC,GAGxBtE,EAAGwE,UAAY,SAAUC,GACrB,MAAKC,WAAUhD,QAGf1B,EAAGa,WAAa4D,EACTzE,GAHIA,EAAGa,YAMlBb,EAAG2E,gBAAkB,SAAUC,GAC3B,MAAOA,aAAaC,SAAUD,EAAEE,aAAc,GAGlD9E,EAAG+E,UAEH/E,EAAG+E,OAAOC,UAAY,SAAUC,GAC5B,GAAIC,GAAOD,GAAO,2BAElBE,MAAKC,QAAUF,EAEfC,KAAKE,SAAW,WACZ,MAAOH,KAIflF,EAAG+E,OAAOO,sBAAwB,WAC9BtF,EAAG+E,OAAOC,UAAUO,MAAMJ,KAAMT,YAGpC1E,EAAGwF,WAAa1F,EAAG2F,KAAKC,OAAO,YAE/B1F,EAAG2F,YAEH3F,EAAG2F,SAASC,QAAU,SAAUA,GAG5B,IAAK,GAFD3C,GAAI,GAECxB,EAAI,EAAGA,EAAImE,EAAQlE,SAAUD,EAC9BA,EAAI,IACJwB,GAAK,MAETA,GAAKjD,EAAG2F,SAASE,OAAOD,EAAQnE,GAGpC,OAAOwB,IAGXjD,EAAG2F,SAASE,OAAS,SAAUA,GAC3B,GAAI5C,GAAI,EAcR,OAZsB,mBAAX4C,IAAqC,OAAXA,IAC7BA,YAAkBC,OACdD,EAAOnE,QAAU,EACjBuB,EAAI,IAAMjD,EAAG6D,MAAMkC,iBAAiBF,EAAO,IAAM,OAAS7F,EAAG6D,MAAMkC,iBAAiBF,EAAO,IAAM,IAC1FA,EAAOnE,QAAU,IACxBuB,EAAIjD,EAAG6D,MAAMkC,iBAAiBF,EAAO,KAGzC5C,EAAIjD,EAAG6D,MAAMkC,iBAAiBF,IAI/B5C,GAGXjD,EAAGgG,MAAQ,SAAU9B,EAAG+B,GACpB,MAAKA,GAGE,SAAUtC,EAAGlC,GAAK,MAAOwE,GAAEC,KAAKvC,EAAGA,EAAEO,GAAIzC,IAFrC,SAAUkC,GAAK,MAAOA,GAAEO,KAKvClE,EAAG6D,SAEH7D,EAAG6D,MAAMkC,iBAAmB,SAAUF,GAClC,GAAI5C,GAAI,GAAK4C,CAYb,OAVIA,aAAkBM,MAClBlD,EAAIjD,EAAGwF,WAAWK,GACQ,gBAAb,GACb5C,EAAI4C,EACG7F,EAAG6D,MAAMuC,QAAQP,GACxB5C,EAAIjD,EAAG6D,MAAMkC,iBAAiBM,QAAQR,GAC/B7F,EAAG6D,MAAMyC,UAAUT,KAC1B5C,EAAIG,KAAKa,MAAM4B,IAGZ5C,GAEXjD,EAAG6D,MAAMkC,iBAAiBM,QAAUvG,EAAG4F,OAAO,OAI9C1F,EAAG6D,MAAM0C,IAAM,SAAUC,EAAGC,GAKxB,GAJiB,gBAANA,KACPA,EAAIA,EAAEC,QAAQ,IAAK,KAGnBF,YAAaL,MAAM,CACF,gBAANM,KACPA,GAAKA,EAET,IAAI9C,GAAI,GAAIwC,KAGZ,OAFAxC,GAAEgD,QAAQH,EAAEI,WACZjD,EAAEkD,QAAQL,EAAEM,UAAYL,GACjB9C,EACJ,GAAiB,gBAAN8C,GAAgB,CAC9B,GAAIM,IAAeN,EAAI,GACvB,OAAOD,GAAI,EAAIA,GAAK,EAAIO,GAAcP,GAAK,EAAIO,GAE/C,MAAOP,GAAIC,GAInBzG,EAAG6D,MAAMmD,SAAW,SAAUR,EAAGC,GAK7B,GAJiB,gBAANA,KACPA,EAAIA,EAAEC,QAAQ,IAAK,KAGnBF,YAAaL,MAAM,CACF,gBAANM,KACPA,GAAKA,EAET,IAAI9C,GAAI,GAAIwC,KAGZ,OAFAxC,GAAEgD,QAAQH,EAAEI,WACZjD,EAAEkD,QAAQL,EAAEM,UAAYL,GACjB9C,EACJ,GAAiB,gBAAN8C,GAAgB,CAC9B,GAAIM,IAAeN,EAAI,GACvB,OAAW,GAAJD,EAAQA,GAAK,EAAIO,GAAcP,GAAK,EAAIO,GAE/C,MAAOP,GAAIC,GAInBzG,EAAG6D,MAAMoD,SAAW,SAAU/C,GAC1B,MAAOA,MAAOA,GAGlBlE,EAAG6D,MAAMuC,QAAU,SAAUlC,GACzB,MAAOA,MAAOA,GAAKA,KAAW,EAAJA,IAG9BlE,EAAG6D,MAAMyC,UAAY,SAAUpC,GAC3B,MAAOA,MAAOA,GAAKA,KAAW,EAAJA,IAG9BlE,EAAG6D,MAAMC,aAAe,SAAUI,GAC9B,OAAQlE,EAAG6D,MAAMoD,SAAS/C,IAAOA,EAAIlE,EAAGE,UAAUU,mBAAqBsD,GAAKlE,EAAGE,UAAUU,mBAG7FZ,EAAG6D,MAAMqD,MAAQ,SAAUC,EAAKC,EAAKC,GACjC,MAAaD,GAAND,EAAYC,EAAOD,EAAME,EAAMA,EAAMF,EAGhD,IAAIG,GAAa,CA8mQjB,OA7mQAtH,GAAG6D,MAAM0D,SAAW,WAChB,QAASD,GAGbtH,EAAG6D,MAAM2D,SAAW,SAAUC,GAC1B,MAAOA,GAAKC,cAAchB,QAAQ,QAAS,KAAKA,QAAQ,SAAU,KAGtE1G,EAAG6D,MAAM8D,eAAiB,SAAUC,EAAQC,EAAUC,GAClDA,EAAMA,GAAOD,CACb,IAAIE,GAAUH,EAAOI,OAAOH,EAI5B,OAHIE,GAAQE,UACRF,EAAUH,EAAOM,OAAOJ,IAErBC,GAGX/H,EAAG6D,MAAMsE,WAAa,SAAUjE,GAAK,MAAOlE,GAAG6D,MAAMoD,UAAU/C,IAAMA,EAAI,GAEzElE,EAAGoI,UAEHpI,EAAGoI,OAAOC,gBAAiB,EAE3BrI,EAAGoI,OAAOE,KAAO,SAAUrD,GASvB,MARIsD,WACIA,QAAQD,KACRC,QAAQD,KAAKrD,GACNsD,QAAQC,KACfD,QAAQC,IAAIvD,IAIbjF,EAAGoI,QAGdpI,EAAGoI,OAAOK,MAAQ,SAAUxD,GASxB,MARIjF,GAAGoI,OAAOC,gBAAkBE,UACxBA,QAAQE,MACRF,QAAQE,MAAMxD,GACPsD,QAAQC,KACfD,QAAQC,IAAIvD,IAIbjF,EAAGoI,QAGdpI,EAAGoI,OAAOM,UAAY,SAAUC,EAAI1D,GAGhC,QAAS2D,KAKL,MAJKC,KACD7I,EAAGoI,OAAOE,KAAKrD,GACf4D,GAAS,GAENF,EAAGpD,MAAMJ,KAAMT,WAN1B,GAAImE,IAAS,CAQb,OAAOD,IAGX5I,EAAG8I,QACCC,QAAS,MAqBb/I,EAAG8I,OAAOE,QAAU,SAAUC,EAASC,GACnC,MAAKA,IAKLlJ,EAAG8I,OAAOC,QAAUE,MAEpBE,YAAW,WACHF,IAAYjJ,EAAG8I,OAAOC,SACtBE,KAELC,QAVCD,MAaRjJ,EAAG4F,WAoBH5F,EAAG4F,QAAQwD,aAAe,SAAUC,EAAKC,GACrC,GAAIC,GAAQ,GAAIzD,OAAMuD,EAAKC,EAK3B,OAJAC,GAAMC,WAAa,SAAUC,GACzB,MAAOA,IAAStE,KAAK,IAAMsE,EAAQtE,KAAK,IAGrCoE,GASXvJ,EAAG4F,QAAQ8D,qBAAuB,SAAUC,GACxC,GAAc,OAAVA,EAAkB,MAAO,KAE7B,IAAI9D,GAAS8D,CAMb,OALA9D,GAAO2D,WAAa,SAAUC,GAC1B,MAAOA,GAAM/H,QAAU+H,EAAM/H,SAAWmE,EAAOnE,QACxC+H,EAAM,KAAO5D,EAAO,IAAM4D,EAAM,KAAO5D,EAAO,IAGlDA,GAgBX7F,EAAG4F,QAAQgE,2BAA6B,SAAUD,GAC9C,GAAc,OAAVA,EAAkB,MAAO,KAE7B,IACIE,GADAhE,EAAS8D,CA8Bb,OA1BIE,GADAhE,EAAO,YAAcC,SAEhB1C,KAAKgE,IAAIuC,EAAM,GAAG,GAAIA,EAAM,GAAG,IAAKvG,KAAKgE,IAAIuC,EAAM,GAAG,GAAIA,EAAM,GAAG,MACnEvG,KAAKiE,IAAIsC,EAAM,GAAG,GAAIA,EAAM,GAAG,IAAKvG,KAAKiE,IAAIsC,EAAM,GAAG,GAAIA,EAAM,GAAG,QAGrDA,EAAM,KAAKG,EAAAA,KAAYH,EAAM,GAAIG,EAAAA,IAGxDjE,EAAO2D,WAAa,SAAUC,GAC1B,GAAIM,GAAGC,CAEP,IAAIP,YAAiB3D,OAAO,CACxB,GAAqB,IAAjB2D,EAAM/H,OACN,OAAO,CAEXqI,GAAIN,EAAM,GACVO,EAAIP,EAAM,OAEVM,GAAIN,EACJO,EAAIH,EAAe,GAAG,EAG1B,OAAOE,IAAKF,EAAe,GAAG,IAAME,EAAIF,EAAe,GAAG,IACnDG,GAAKH,EAAe,GAAG,IAAMG,EAAIH,EAAe,GAAG,IAGvDhE,GASX7F,EAAGiK,UAAY,SAAUC,GA0WrB,QAASC,KAIL,MAHAC,GAAOF,EAAOG,OAAOnC,OAAO,OACvBoC,KAAK,QAASJ,EAAOK,SACrBD,KAAK,SAAUJ,EAAOM,UAuE/B,QAASC,GAA4BC,GACjC,IAAKR,EAAOQ,KAAOR,EAAOQ,KACtB,KAAM,IAAI1K,GAAG+E,OAAOO,sBAAsB,6BAA+BoF,EAC/B,yBAA2BR,EAAOvI,aAAe,KA4PnG,QAASgJ,KACL,GAAIT,EAAOU,aAAeV,EAAOU,YAAY/E,OAAQ,CACjD,GAAIgF,GAAKC,EAAeZ,EAAOU,YAAaG,EAC5CA,GAAWF,EAAKA,EAAKE,GArrB7Bb,EAAOpF,WAAa9E,EAAG6D,MAAM0D,UAE7B,IAAIyD,GACAC,EAEAC,EACAC,EACAf,EAsBAgB,EA0BAC,EA9CAC,EAAY,IACZC,EAAgB,SAAUxD,GAC1B,GAAIwC,GAAQxC,GAAWA,EAAQyD,uBAAyBzD,EAAQyD,wBAAwBjB,KACxF,OAAQA,IAASA,EAAQe,EAAaf,EAAQe,GAE9CG,EAASF,EAETG,EAAa,IACbC,EAAiB,SAAU5D,GAC3B,GAAIyC,GAASzC,GAAWA,EAAQyD,uBAAyBzD,EAAQyD,wBAAwBhB,MACzF,OAAQA,IAAUA,EAASkB,EAAclB,EAASkB,GAElDE,EAAUD,EAEVE,EAAe7L,EAAGgG,MAAM,OACxB8F,EAAiB9L,EAAGgG,MAAM,SAC1B+F,EAAS/L,EAAGgG,MAAM,OAClBgG,EAAuBhM,EAAGgG,MAAM,OAEhCiG,EAAYjM,EAAGgG,MAAM,OAGrBkG,GAAe,EAEfC,EAAS,SAAUxI,GACnB,MAAOuG,GAAOkC,cAAczI,GAAK,KAAOuG,EAAOmC,gBAAgB1I,IAE/D2I,GAAe,EAEfC,EAAsB,IAEtBC,EAAiBxM,EAAG2F,SAASC,QAE7B6G,GAAwB,YAAa,SAErCC,EAAc1M,EAAGE,UAAUQ,oBAE3BiM,EAAa7M,EAAG8M,SAChB,YACA,aACA,YACA,aACA,WACA,SACA,aAIA7B,KACAD,EAAiB,SAAUF,EAAWhF,GAkBtC,MAjBAgF,GAAU/E,OAAO,MAEM,IAAnBD,EAAQlE,OACRkJ,EAAU/E,OAAO,MAEjB+E,EAAUiC,eAAe,SAAUlJ,GAC/B,IAAK,GAAIlC,GAAI,EAAGA,EAAImE,EAAQlE,OAAQD,IAAK,CACrC,GAAIoE,GAASD,EAAQnE,EACrB,IAAIoE,EAAO2D,YAAc3D,EAAO2D,WAAW7F,GACvC,OAAO,CACJ,IAAcA,GAAVkC,GAAeA,GAAUlC,EAChC,OAAO,EAGf,OAAO,IAGRiC,GAGPkH,EAAQ,SAAU9L,GAClB,MAAOA,GAAM+L,MASjB7C,GAAOK,MAAQ,SAAUyC,GACrB,MAAKtI,WAAUhD,QAGf+J,EAAS3L,EAAGmN,QAAQD,GAAKzB,GAClBrB,GAHIuB,EAAON,EAAM+B,SA2B5BhD,EAAOM,OAAS,SAAU2C,GACtB,MAAKzI,WAAUhD,QAGfkK,EAAU9L,EAAGmN,QAAQE,GAAKxB,GACnBzB,GAHI0B,EAAQT,EAAM+B,SAY7BhD,EAAOkD,SAAW,SAAUJ,GACxB,MAAKtI,WAAUhD,QAGf4J,EAAY0B,EACL9C,GAHIoB,GAYfpB,EAAOmD,UAAY,SAAUL,GACzB,MAAKtI,WAAUhD,QAGfgK,EAAasB,EACN9C,GAHIwB,GAefxB,EAAOU,UAAY,SAAUjH,GACzB,MAAKe,WAAUhD,QAGfsJ,EAAarH,EACbuG,EAAOoD,cACApD,GAJIc,GAkBfd,EAAOqD,KAAO,SAAU5J,GACpB,MAAKe,WAAUhD,QAGfoL,EAAQhN,EAAGmN,QAAQtJ,GACnBuG,EAAOoD,cACApD,GAJI4C,EAAM5G,KAAKgE,EAAQe,IAkBlCf,EAAOlJ,MAAQ,SAAUwM,EAAG/F,GACxB,MAAK/C,WAAUhD,QAGfuJ,EAASuC,EACTtD,EAAOuD,WAAahG,EACpByC,EAAOoD,cACApD,GALIe,GAYff,EAAOwD,SAAW,SAAU9I,GACxB,MAAKF,WAAUhD,QAGfuK,EAAYrH,EACZwG,EAAarL,EAAY4N,UAAUC,GAAG3B,GACtC/B,EAAOoD,cACApD,GALI+B,GAQf/B,EAAO2D,sBAAwB,SAAUN,GACrC,GAAIO,GAAWP,EAAKQ,MAAM,EAE1B,OAAID,GAASpM,QAAU,EACZoM,GAGN1C,IACDA,EAAarL,EAAY4N,UAAUC,GAAG3B,IAGnCb,EAAW0C,EAAU,EAAGA,EAASpM,UAQ5CwI,EAAO/H,UAAY,WACf,MAAO+H,GAAOrE,OAAO,OAczBqE,EAAOlC,OAAS,SAAU/E,GACtB,MAAOkI,GAAMnD,OAAO/E,IAcxBiH,EAAO8D,UAAY,SAAU/K,GACzB,MAAOkI,GAAQA,EAAM6C,UAAU/K,GAAK,MAWxCiH,EAAO+D,OAAS,SAAUvD,EAAGwD,GACzB,MAAKxJ,WAAUhD,QAGX1B,EAAG2E,gBAAgB+F,IACnBQ,EAAUR,EAAEuD,SACZ9C,EAAQT,EAAEL,SAEVa,EAAUR,EACVS,EAAQrL,EAAGkI,OAAOkD,GAClBC,EAAMgD,QAAQnO,EAAGE,UAAUC,aAAa,GACxCH,EAAG+B,cAAcmI,EAAQgE,IAE7BxB,EAAcwB,EACPhE,GAZIgB,GAoBfhB,EAAOvI,WAAa,WAChB,GAAI+I,GAAIR,EAAO+D,QACf,OAAIvD,IAAKA,EAAE0D,GACA1D,EAAE0D,GAET1D,GAAKA,EAAEhE,QACAgE,EAAEhE,QAAQ,IAAK,IAEnB,WAAawD,EAAOmE,WAW/BnE,EAAOG,KAAO,SAAU5D,GACpB,MAAK/B,WAAUhD,QAGfyJ,EAAQ1E,EACDyD,GAHIiB,GAafjB,EAAOoE,IAAM,SAAU7J,GACnB,MAAKC,WAAUhD,QAGf0I,EAAO3F,EACAyF,GAHIE,GAUfF,EAAOqE,SAAW,WAEd,MADArE,GAAOlC,OAAO,OAAOwG,SACdrE,KAkBXD,EAAOuE,cAAgB,SAAUhK,GAC7B,MAAKC,WAAUhD,QAGf8K,EAAiB/H,EACVyF,GAHIsC,GAmBftC,EAAOwE,eAAiB,WAKpB,MAJIvD,KACAjB,EAAO8D,UAAU,UAAUW,MAAM,UAAW,MAC5CzE,EAAO8D,UAAU,WAAWY,KAAKpC,EAAetC,EAAOtE,YAAY+I,MAAM,UAAW,OAEjFzE,GAGXA,EAAO2E,gBAAkB,WAKrB,MAJI1D,KACAjB,EAAO8D,UAAU,UAAUW,MAAM,UAAW,QAC5CzE,EAAO8D,UAAU,WAAWW,MAAM,UAAW,QAAQC,KAAK1E,EAAOrE,WAE9DqE,GASXA,EAAO4E,mBAAqB,SAAUnL,GAClC,MAAKe,WAAUhD,QAGf6K,EAAsB5I,EACfuG,GAHIqC,GAMfrC,EAAOuC,qBAAuB,SAAUhI,GACpC,MAAKC,WAAUhD,QAGf+K,EAAuBhI,EAChByF,GAHIuC,GAqBfvC,EAAO1H,OAAS,WACZmK,EAAWoC,UAAU7E,GAEjBuC,GACAA,EAAqBuC,QAAQvE,EAGjC,IAAIwE,GAAS/E,EAAOgF,WAQpB,OANI7D,IACAA,EAAQ7I,SAGZ0H,EAAOiF,oBAAoB,cAEpBF,GAGX/E,EAAOiF,oBAAsB,SAAUC,GAC/BlF,EAAO4E,qBAAuB,GAAK1E,EACnCA,EAAKxH,aAAaE,SAASoH,EAAO4E,sBAC7BO,KAAK,MAAO,WACT1C,EAAsB,UAAEzC,GACpBkF,GACAzC,EAAWyC,GAAOlF,MAI9ByC,EAAsB,UAAEzC,GACpBkF,GACAzC,EAAWyC,GAAOlF,KAe9BA,EAAOxH,OAAS,WACZiK,EAAW2C,UAAUpF,EAErB,IAAI+E,GAAS/E,EAAOqF,WAQpB,OANIlE,IACAA,EAAQ7I,SAGZ0H,EAAOiF,oBAAoB,cAEpBF,GAGX/E,EAAOsF,YAAc,WACjBxP,EAAGyC,UAAUyH,EAAOgE,eAGxBhE,EAAOuF,YAAc,WACjBzP,EAAGuC,UAAU2H,EAAOgE,eAGxBhE,EAAOwF,wBAA0B,SAAUzJ,GAC7BjD,SAANiD,GACA0G,EAAWgD,SAASzF,EAAQjE,IAIpCiE,EAAO0F,sBAAwB,WAC3BjD,EAAWkD,OAAO3F,GAGtB,IAAI4F,GAAoB,SAAUlK,EAASC,GACvC,MAAe,QAAXA,GAAsC,mBAAb,GAClBD,EAAQlE,OAAS,EAErBkE,EAAQmK,KAAK,SAAU9J,GAC1B,MAAiBA,IAAVJ,GAAeA,GAAUI,IA2BxCiE,GAAO8F,iBAAmB,SAAUvL,GAChC,MAAKC,WAAUhD,QAGfoO,EAAoBrL,EACbyF,GAHI4F,GAYf5F,EAAO+F,UAAY,SAAUpK,GACzB,MAAOiK,GAAkB/E,EAAUlF,GAGvC,IAAIqK,GAAuB,SAAUtK,EAASC,GAC1C,IAAK,GAAIpE,GAAI,EAAGA,EAAImE,EAAQlE,OAAQD,IAChC,GAAImE,EAAQnE,IAAMoE,GAAUD,EAAQnE,IAAMoE,EAAQ,CAC9CD,EAAQhE,OAAOH,EAAG,EAClB,OAGR,MAAOmE,GA8BXsE,GAAOiG,oBAAsB,SAAU1L,GACnC,MAAKC,WAAUhD,QAGfwO,EAAuBzL,EAChByF,GAHIgG,EAMf,IAAIE,GAAoB,SAAUxK,EAASC,GAEvC,MADAD,GAAQrE,KAAKsE,GACND,EAyBXsE,GAAOmG,iBAAmB,SAAU5L,GAChC,MAAKC,WAAUhD,QAGf0O,EAAoB3L,EACbyF,GAHIkG,EAMf,IAAIE,GAAsB,SAAU1K,GAChC,SAidJ,OAzbAsE,GAAOqG,mBAAqB,SAAU9L,GAClC,MAAKC,WAAUhD,QAGf4O,EAAsB7L,EACfyF,GAHIoG,GAafpG,EAAOsG,cAAgB,SAAU/L,GAC7BsG,KACAb,EAAOrE,OAAOpB,IAalByF,EAAOrE,OAAS,SAAUpB,GACtB,MAAKC,WAAUhD,QAGX+C,YAAaqB,QAASrB,EAAE,YAAcqB,SAAUrB,EAAE+E,WAClD/E,EAAE,GAAGuK,QAAQ,SAAUrL,GACfuG,EAAO+F,UAAUtM,GACjBuM,EAAqBnF,EAAUpH,GAE/ByM,EAAkBrF,EAAUpH,KAGvB,OAANc,EACPsG,EAAWuF,EAAoBvF,GAE3Bb,EAAO+F,UAAUxL,GACjByL,EAAqBnF,EAAUtG,GAE/B2L,EAAkBrF,EAAUtG,GAGpCkG,IACAT,EAAOwF,wBAAwBjL,GAEjB,OAAV0G,GAAkBjB,EAAO+F,YACzB/F,EAAOwE,iBAEPxE,EAAO2E,kBAGJ3E,GA5BIa,EAASrJ,OAAS,EAAIqJ,EAAS,GAAK,MAsCnDb,EAAOtE,QAAU,WACb,MAAOmF,IAGXb,EAAOuG,kBAAoB,SAAUrP,GACjCtB,EAAGkI,OAAO5G,GAAG+M,QAAQnO,EAAGE,UAAUK,gBAAgB,GAClDT,EAAGkI,OAAO5G,GAAG+M,QAAQnO,EAAGE,UAAUI,kBAAkB,IAGxD4J,EAAOwG,eAAiB,SAAUtP,GAC9BtB,EAAGkI,OAAO5G,GAAG+M,QAAQnO,EAAGE,UAAUK,gBAAgB,GAClDT,EAAGkI,OAAO5G,GAAG+M,QAAQnO,EAAGE,UAAUI,kBAAkB,IAGxD4J,EAAOyG,eAAiB,SAAUvP,GAC9BtB,EAAGkI,OAAO5G,GAAG+M,QAAQnO,EAAGE,UAAUK,gBAAgB,GAClDT,EAAGkI,OAAO5G,GAAG+M,QAAQnO,EAAGE,UAAUI,kBAAkB,IAQxD4J,EAAO0G,QAAU,SAAUjN,GACvB,GAAIkC,GAASqE,EAAOkC,cAAczI,EAClC3D,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAOA,GACdqE,EAAOsF,iBA0BftF,EAAO2G,cAAgB,SAAUpM,GAC7B,MAAKC,WAAUhD,QAGfoJ,EAAiBrG,EACVyF,GAHIY,GAOfZ,EAAOgF,UAAY,WAEf,MAAOhF,IAGXA,EAAOqF,UAAY,WAEf,MAAOrF,IAGXA,EAAO4G,YAAc,WAEjB,UAGJ5G,EAAO6G,gBAAkB,aAIzB7G,EAAO8G,YAAc,aAIrB9G,EAAO+G,aAAe,aAItB/G,EAAOgH,mBAAqB,WAExB,OAAO,GAgBXhH,EAAOkC,YAAc,SAAU3H,GAC3B,MAAKC,WAAUhD,QAGfmK,EAAepH,EACRyF,GAHI2B,GAoBf3B,EAAOmC,cAAgB,SAAU5H,GAC7B,MAAKC,WAAUhD,QAGfoK,EAAiBrH,EACVyF,GAHI4B,GAmBf5B,EAAOiH,oBAAsB,SAAU1M,GACnC,MAAKC,WAAUhD,QAGfsK,EAAuBvH,EAChByF,GAHI8B,GAoBf9B,EAAOkH,MAAQ,SAAU3M,GACrB,MAAKC,WAAUhD,QAGfqK,EAAStH,EACTyH,GAAe,EACRhC,GAJI6B,GAYf7B,EAAOmH,YAAc,SAAU5M,GAC3B,MAAKC,WAAUhD,QAGfwK,EAAezH,EACRyF,GAHIgC,GA2BfhC,EAAOoH,MAAQ,SAAU7M,GACrB,MAAKC,WAAUhD,QAGfyK,EAAS1H,EACFyF,GAHIiC,GAYfjC,EAAOqH,YAAc,SAAU9M,GAC3B,MAAKC,WAAUhD,QAGf4K,EAAe7H,EACRyF,GAHIoC,GA2BfpC,EAAO1F,UAAYxE,EAAGoI,OAAOM,UAAU,SAAUjE,GAE7C,MADAyF,GAAOsH,GAAG,aAAexR,EAAG6D,MAAM0D,WAAY9C,GACvCyF,GACR,4GAOHA,EAAOgE,WAAa,SAAUzJ,GAC1B,MAAKC,WAAUhD,QAGfgL,EAAcjI,EACPyF,GAHIwC,GAefxC,EAAOoD,YAAc,WAEjB,MAAOpD,IAaXA,EAAOuH,OAAS,SAAUjL,GACtB,MAAK9B,WAAUhD,QAGf2J,EAAU7E,EACV6E,EAAQzD,OAAOsC,GACRA,GAJImB,GAWfnB,EAAOmE,QAAU,WACb,MAAOnE,GAAOpF,YAalBoF,EAAOwH,QAAU,SAAUC,GACvB,IAAK,GAAI/M,KAAK+M,GACgB,kBAAfzH,GAAOtF,GACdsF,EAAOtF,GAAGsB,KAAKgE,EAAQyH,EAAK/M,IAE5B5E,EAAGoI,OAAOK,MAAM,mCAAqC7D,EAG7D,OAAOsF,IA8BXA,EAAOsH,GAAK,SAAUpC,EAAOwC,GAEzB,MADAjF,GAAW6E,GAAGpC,EAAOwC,GACd1H,GAGJA,GASXlK,EAAG6R,YAAc,SAAU3H,GACvB,GAAI4H,IAAWC,IAAK,GAAIC,MAAO,GAAIC,OAAQ,GAAIC,KAAM,GA+BrD,OAhBAhI,GAAOiI,QAAU,SAAUC,GACvB,MAAK1N,WAAUhD,QAGfoQ,EAAUM,EACHlI,GAHI4H,GAMf5H,EAAOmI,eAAiB,WACpB,MAAOnI,GAAOK,QAAUL,EAAOiI,UAAUD,KAAOhI,EAAOiI,UAAUH,OAGrE9H,EAAOoI,gBAAkB,WACrB,MAAOpI,GAAOM,SAAWN,EAAOiI,UAAUJ,IAAM7H,EAAOiI,UAAUF,QAG9D/H,GAUXlK,EAAGuS,WAAa,SAAUrI,GACtB,GAAIsI,GAAU1S,EAAG2S,MAAMC,cACnBC,GAAmB,EAEnBC,EAAiB,SAAUjP,GAAK,MAAOuG,GAAOkC,cAAczI,GAiIhE,OA7GAuG,GAAO2I,OAAS,SAAUpO,GACtB,MAAKC,WAAUhD,QAIX8Q,EADA/N,YAAaqB,OACHhG,EAAG2S,MAAMK,WAAWvJ,MAAM9E,GAE1B3E,EAAGmN,QAAQxI,GAElByF,GAPIsI,GAeftI,EAAO6I,cAAgB,SAAUtM,GAC7B,MAAOyD,GAAO2I,OAAO/S,EAAG2S,MAAMnP,UAAUiG,MAAM9C,KAQlDyD,EAAO8I,aAAe,SAAUvM,GAC5B,MAAOyD,GAAO2I,OAAO/S,EAAG2S,MAAMQ,SACR1J,MAAM9C,GACNyM,YAAYpT,EAAGqT,kBAezCjJ,EAAOkJ,cAAgB,SAAU3O,GAC7B,MAAKC,WAAUhD,QAGfkR,EAAiBnO,EACjBkO,GAAmB,EACZzI,GAJI0I,GAQf1I,EAAOmJ,qBAAuB,WAC1B,MAAOV,IAYXzI,EAAOoJ,YAAc,SAAU7O,GAC3B,MAAKC,WAAUhD,QAGf8Q,EAAQjP,OAAOkB,GACRyF,GAHIsI,EAAQjP,UAYvB2G,EAAOqJ,qBAAuB,WAC1B,GAAIC,IAAa1T,EAAGsH,IAAI8C,EAAOqD,OAAQrD,EAAOkJ,iBAC7BtT,EAAGuH,IAAI6C,EAAOqD,OAAQrD,EAAOkJ,iBAE9C,OADAZ,GAAQjP,OAAOiQ,GACRtJ,GAQXA,EAAOuJ,SAAW,SAAU9P,EAAGlC,GAC3B,MAAO+Q,GAAQI,EAAe1M,KAAKf,KAAMxB,EAAGlC,KAOhDyI,EAAOwJ,gBAAkB,SAAUjP,GAC/B,MAAKC,WAAUhD,QAGfwI,EAAOuJ,SAAWhP,EACXyF,GAHIA,EAAOuJ,UAMfvJ,GAWXlK,EAAG2T,oBAAsB,SAAUzJ,GAa/B,QAAS0J,KACLC,GAAa,EACTC,IACA5J,EAAOH,IAAIxG,OAAOwQ,EAAe7J,EAAOH,IAAIxG,SAAUyQ,IAClDC,GACA/J,EAAOH,IAAIxG,OAAOwQ,EAAe7J,EAAOH,IAAIxG,SAAU0Q,EAAYlK,IAAIxG,WAI9E,IAAIA,GAAS2G,EAAOH,IAAIxG,SACpB2Q,EAAYlU,EAAG4F,QAAQwD,aAAa7F,EAAO,GAAIA,EAAO,GAE1D2G,GAAOsG,cAAc0D,GACrBhK,EAAOiK,UACPjK,EAAOxH,SAEHuR,IAAgBG,EAAYlK,EAAOrE,SAAUoO,EAAYpO,WACzD7F,EAAG8I,OAAOE,QAAQ,WACdiL,EAAYzD,cAAc0D,GAC1BD,EAAYvR,WAIpBwH,EAAO0F,wBAEP5P,EAAG8I,OAAOE,QAAQ,WACdkB,EAAOsF,eACRxP,EAAGE,UAAUS,aAEhBkT,GAAcO,EAAY7Q,EAAQyQ,GA2UtC,QAASK,GAAa7G,GACbtD,EAAOoK,aAMJpK,EAAOqK,YAAqC,IAAvBC,EAAGjR,SAAS7B,SACjC8S,EAAGjR,OAAO2G,EAAOuK,mBANjBvK,EAAOqK,YACPC,EAAGjR,QAAQ2G,EAAOwK,WAAYxK,EAAOyK,YAU7C,IAAIC,GAAOJ,EAAGjR,WACTsR,GAAgBD,EAAK7E,KAAK,SAAU+E,EAAMrT,GAAK,MAAOqT,KAASD,EAAapT,OAC7EyI,EAAOiK,UAEXU,EAAeD,EAGX1K,EAAOoK,YACPE,EAAGO,YAAY,EAAG7K,EAAO8K,eAAgBC,GAC3B/K,EAAOgL,mBAAqBC,GAAyB,GAEnEX,EAAGjL,OAAO,EAAGW,EAAO8K,gBAGxBI,EAASA,EAAO3C,MAAMvI,EAAOH,KAE7BsL,EAAwB7H,GA6B5B,QAAS6H,GAAwB7H,GAC7B,GAAI8H,GAAY9H,EAAEQ,UAAU,KAAOuH,EAEnC,IAAIC,EAAyB,CACrBF,EAAUrN,UACVqN,EAAY9H,EAAEiI,OAAO,IAAK,gBACrBnL,KAAK,QAASoL,EAAkB,IAAMH,GACtCjL,KAAK,YAAa,aAAeJ,EAAOiI,UAAUD,KAAO,IAAMhI,EAAOiI,UAAUJ,IAAM,KAG/F,IAAI4D,GAAQP,EAAOQ,aAAeR,EAAOQ,aACZ,kBAAbpB,GAAGmB,MAAuBnB,EAAGmB,MAAMP,EAAOO,QAAQ,IAAMnB,EAAGjR,SAEvEsS,EAAQP,EAAUtH,UAAU,QAC3BT,KAAKoI,GAGNG,EAAcD,EAAME,QACnB7N,OAAO,QACPoC,KAAK,KAAM,SAAU3G,GAClB,MAAO6Q,GAAG7Q,KAEb2G,KAAK,KAAMJ,EAAO8L,UAAY9L,EAAOiI,UAAUJ,KAC/CzH,KAAK,KAAM,SAAU3G,GAClB,MAAO6Q,GAAG7Q,KAEb2G,KAAK,KAAM,GACXA,KAAK,UAAW,EACrBtK,GAAG4C,WAAWkT,EAAa5L,EAAO4E,sBAC7BxE,KAAK,UAAW,GAGrBtK,EAAG4C,WAAWiT,EAAO3L,EAAO4E,sBACvBxE,KAAK,KAAM,SAAU3G,GAClB,MAAO6Q,GAAG7Q,KAEb2G,KAAK,KAAMJ,EAAO8L,UAAY9L,EAAOiI,UAAUJ,KAC/CzH,KAAK,KAAM,SAAU3G,GAClB,MAAO6Q,GAAG7Q,KAEb2G,KAAK,KAAM,GAGhBuL,EAAMI,OAAOzH,aAGb8G,GAAUtH,UAAU,QAAQQ,SAiWpC,QAAS0H,KACL,MAAOhM,GAAO8L,UAAY9L,EAAOiI,UAAUJ,IAkG/C,QAASoE,KACL,MAAOjM,GAAOvI,aAAa+E,QAAQ,SAAU,KAAO,QAkBxD,QAAS0P,KACL,GAAIC,GAAOrW,EAAG6D,MAAM8D,eAAe2O,EAAS,QAGxClI,EAAK+H,IACLI,EAAgBvW,EAAG6D,MAAM8D,eAAe0O,EAAM,IAAMjI,EAAI,YAAY9D,KAAK,KAAM8D,GAE/EoI,EAAyB,EAAfC,CAEdzW,GAAG6D,MAAM8D,eAAe4O,EAAe,QAClCjM,KAAK,QAASJ,EAAO8K,cAAgBwB,GACrClM,KAAK,SAAUJ,EAAOwM,cAAgBF,GACtClM,KAAK,YAAa,cAAgBmM,EAAe,MAAQA,EAAe,KA6BjF,QAASE,GAAWnU,GACZ0H,EAAOoK,cACPsC,GAAW,GAGfvC,EAAanK,EAAOsD,KACpBtD,EAAO2M,cAAc3M,EAAOsD,KAE5BtD,EAAO4M,YAEH5M,EAAOqK,YAAcV,GAAcrR,IACnC0H,EAAO6M,YAAY7M,EAAOsD,MAG1BtD,EAAO8M,YAAcxU,IACrB0H,EAAO+M,YAAY/M,EAAOsD,KAG1BhL,EACA0H,EAAOgN,YAAYhN,EAAOsD,KAE1BtD,EAAOiN,YAAYjN,EAAOsD,KAIlC,QAAS4J,KACDC,EACAnN,EAAOoN,mBAEFC,GACLrN,EAAOsN,oBAiBf,QAASzD,GAAexK,EAAOkO,GAC3B,GAAIC,KAGJ,OAFAA,GAAiB,GAAK5X,EAAGuH,KAAKkC,EAAM,GAAIkO,EAAW,KACnDC,EAAiB,GAAK5X,EAAGsH,KAAKmC,EAAM,GAAIkO,EAAW,KAC5CC,EAsDX,QAAStD,GAAYuD,EAAQC,GACzB,MAAKD,IAAWC,EAGND,GAAWC,EAGM,IAAlBD,EAAOjW,QAAkC,IAAlBkW,EAAOlW,QAC5B,EAEFiW,EAAO,GAAGE,YAAcD,EAAO,GAAGC,WACvCF,EAAO,GAAGE,YAAcD,EAAO,GAAGC,WAC3B,GAEJ,GATI,GAHA,EAiCf,QAASC,GAAiBvO,GACtB,MAAOA,aAAiBzD,QAASyD,EAAM7H,OAAS,EAzmCpD,GAAIgU,GAAkB,YAClBqC,EAAmB,aACnBxC,EAAiB,WACjByC,EAAqB,eACrBC,EAAqB,eACrBC,EAA6B,EAEjChO,GAASlK,EAAGuS,WAAWvS,EAAG6R,YAAY7R,EAAGiK,UAAUC,KAEnDA,EAAO2I,OAAO/S,EAAG2S,MAAM0F,cACvBjO,EAAOuC,uBAAuBlL,KAAK,IAkCnC,IAAI+U,GACA8B,EACAC,EAEA7D,EACAR,EAKAsE,EAEAzD,EAEA0D,EAIAC,EAKAC,EAMAC,EASAzE,EACA0E,EAjCAvD,EAAStV,EAAGwO,IAAIsK,OAAOC,OAAO,UAC9BC,EAAU9Y,EAAGkD,MAAMC,SACnB4V,EAAgB,EAChBC,GAAe,EAEfC,EAAqB,EAIrBC,EAASpZ,EAAGwO,IAAIsK,OAAOC,OAAO,QAC9BM,EAAgB,EAChBC,GAAe,EAEfC,EAAqB,EAErBC,EAASxZ,EAAGwO,IAAIiL,QAChB3C,GAAW,EAGX4C,GAA4B,EAC5BhE,GAA0B,EAE1B3B,GAAa,EAGb4F,GAAc,EAAG3P,EAAAA,GACjBgK,GAAmB,EAEnB4F,EAAQ5Z,EAAG6Z,SAASC,OAAOpI,GAAG,OAAQoC,GACtCiG,EAAY/Z,EAAG6Z,SAASC,OAAOpI,GAAG,OAAQ,MAC1C+F,GAAwB,EAKxBF,GAAiB,EACjBZ,EAAe,EAEftB,GAAyB,GACzBF,GAAoB,EAEpB6E,IAAiB,CAihCrB,OA/gCA5P,GAAOiK,QAAU,WACbuE,EAAa1V,QAYjBkH,EAAO6P,WAAa,SAAUtV,GAC1B,MAAKC,WAAUhD,QAGfuS,EAAcxP,EACdwP,EAAY+F,WAAW9P,GAChBA,GAJI+J,GAYf/J,EAAO+P,UAAY,SAAUxV,GACzB,MAAKC,WAAUhD,QAGf+X,EAAahV,EACNyF,GAHIuP,GAUfvP,EAAOgQ,gBAAkB,SAAUzT,GAC/B,MAAK/B,WAAUhD,QAGf+X,EAAW,GAAKhT,EAAI,EAAI,EACxBqN,EAAmBrN,EACZyD,GAJI4J,GAOf5J,EAAOiQ,WAAa,SAAUvS,GAa1B,MAXI0O,GADWtT,SAAX4E,EACUsC,EAAOoE,MAEP1G,EAGdwQ,EAAK9B,EAAQpO,OAAO,KAEpBmQ,EAAcD,EAAGlQ,OAAO,KAAKoC,KAAK,QAAS,cACtCA,KAAK,YAAa,aAAeJ,EAAOiI,UAAUD,KAAO,KAAOhI,EAAOiI,UAAUJ,IAAM,KACvFzH,KAAK,YAAa,QAAU6L,IAAkB,KAE5CiC,GAUXlO,EAAOsD,EAAI,SAAU/I,GACjB,MAAKC,WAAUhD,QAGf0W,EAAK3T,EACEyF,GAHIkO,GAaflO,EAAOkQ,cAAgB,SAAUC,GAC7B,MAAK3V,WAAUhD,QAGf2V,EAAiBgD,EACVnQ,GAHImN,GAUfnN,EAAOoQ,WAAa,SAAU7V,GAC1B,MAAKC,WAAUhD,QAGf2W,EAAc5T,EACPyF,GAHImO,GAmBfnO,EAAOH,EAAI,SAAUtF,GACjB,MAAKC,WAAUhD,QAGf8S,EAAK/P,EACLuP,EAAmBQ,EAAGjR,SACf2G,GAJIsK,GAOftK,EAAOqQ,gBAAkB,WACrB,MAAOvG,IAmCX9J,EAAOsQ,OAAS,SAAU/V,GACtB,MAAKC,WAAUhD,QAGfoX,EAAUrU,EACHyF,GAHI4O,GAqBf5O,EAAOuQ,MAAQ,SAAUhW,GACrB,MAAKC,WAAUhD,QAGf0T,EAAS3Q,EACFyF,GAHIkL,GAYflL,EAAOqK,SAAW,SAAU9P,GACxB,MAAKC,WAAUhD,QAGfsX,EAAevU,EACRyF,GAHI8O,GAgBf9O,EAAOwQ,aAAe,SAAUjW,GAC5B,MAAKC,WAAUhD,QAGfqX,EAAgBtU,EACTyF,GAHI6O,GAWf7O,EAAOyQ,WAAa,WAChB,GAAmB3X,SAAf0V,EAA0B,CAC1B,GAAIxV,GAAQgH,EAAOsQ,SAAStQ,EAAOH,IAAIxG,SAAS,GAAI2G,EAAOH,IAAIxG,SAAS,GAAI2G,EAAOH,IAAIxG,SAGnFmV,GADAxV,YAAiB4C,OACJ5C,EAAMxB,OAENwB,EAIrB,MAAOwV,IASXxO,EAAO0Q,cAAgB,SAAUnW,GAC7B,MAAKC,WAAUhD,QAGfoY,GAAiBrV,EACVyF,GAHI4P,IAYf5P,EAAOoK,UAAY,WACf,MAAOpK,GAAOsQ,WAAaxa,EAAGkD,MAAMI,SAGxC4G,EAAOgL,iBAAmB,WACtB,OAAO,GAGXhL,EAAOuK,gBAAkB,WACrB,GAAIoG,GAAS3Q,EAAO2D,sBAAsB3D,EAAOqD,OACjD,OAAOsN,GAAOC,IAAI5Q,EAAOkC,gBAmC7BlC,EAAO6M,YAAc,SAAUvJ,GAC3B,GAAIuN,GAASvN,EAAEQ,UAAU,MAErB+M,GAAO9S,UACP8S,EAASvN,EAAEtF,OAAO,KACboC,KAAK,QAAS,UACdA,KAAK,YAAa,aAAeJ,EAAOiI,UAAUD,KAAO,IAAMhI,EAAO8L,UAAY,KAG3F,IAAIgF,GAAWxN,EAAEQ,UAAU,QAAUiK,EACjC+C,GAAS/S,SAAWiC,EAAO+Q,eAC3BD,EAAWxN,EAAEtF,OAAO,QACfoC,KAAK,YAAa,cAAgBJ,EAAOiI,UAAUD,KAAOhI,EAAO8K,cAAgB,GAAK,KAClF9K,EAAOM,SAAWyO,GAAsB,KAC5C3O,KAAK,QAAS2N,GACd3N,KAAK,cAAe,UACpBsE,KAAK1E,EAAO+Q,eAEjB/Q,EAAO+Q,cAAgBD,EAASpM,SAAW1E,EAAO+Q,cAClDD,EAASpM,KAAK1E,EAAO+Q,cAGzBjb,EAAG4C,WAAWmY,EAAQ7Q,EAAO4E,sBACxB5I,KAAKkP,IAqDdlL,EAAO8L,QAAU,WACb,MAAQ9L,GAAOM,SAAWN,EAAOiI,UAAUF,QAG/C/H,EAAO8K,YAAc,WACjB,MAAO9K,GAAOmI,kBAQlBnI,EAAO+Q,WAAa,SAAUxW,EAAG+R,GAC7B,MAAK9R,WAAUhD,QAGf4W,EAAc7T,EACdyF,EAAOiI,UAAUF,QAAUgH,EAC3BA,EAAkCjW,SAAZwT,EAAyB0B,EAA6B1B,EAC5EtM,EAAOiI,UAAUF,QAAUgH,EACpB/O,GANIoO,GASfpO,EAAO2M,cAAgB,SAAUrJ,GAC7B,GAAWxK,SAAPuV,GAAoBrO,EAAO8M,WAAY,CACvCuB,EAAKzY,EAAG2S,MAAMQ,QACd,IAAI7L,GAAM8C,EAAOgR,YAAc,EAC3B7T,EAAM6C,EAAOiR,YAAc,CAC/B5C,GAAGhV,QAAQ6D,EAAKC,IAAM+T,YAAYlR,EAAOwM,cAAe,IAG5D6B,EAAGhP,OAAOW,EAAOwM,cAAe,IAChCwC,EAASA,EAAOzG,MAAM8F,GAElBuB,IACAZ,EAAOL,OAAO,SAGlB3O,EAAOmR,kCAAkC7N,EAAG+K,EAAIW,IAGpDhP,EAAOoR,iBAAmB,SAAUC,EAAW3M,EAAM4M,EAAUC,GAC3DA,EAAiBA,GAAkBpC,CAEnC,IAAIqC,GAAWxR,EAAOsD,IAAIQ,UAAU,QAAUgK,EAAqB,IAAMuD,EAAY,SACrF,IAAIG,EAASzT,SAAW2G,EAAM,CAE1B,GAAI+M,GAAkBzR,EAAOiI,UAAUJ,IAAM7H,EAAOwM,cAAgB,CACpEgF,GAAWxR,EAAOsD,IAAItF,OAAO,QACxBoC,KAAK,YAAa,aAAemR,EAAiB,IAAME,EAAiB,YAAcH,EAAW,KAClGlR,KAAK,QAAS0N,EAAqB,IAAMuD,EAAY,UACrDjR,KAAK,cAAe,UACpBsE,KAAKA,GAEVA,GAAQ8M,EAAS9M,SAAWA,GAC5B8M,EAAS9M,KAAKA,IAItB1E,EAAO0R,cAAgB,SAAUL,EAAW3C,EAAMiD,GAC9C,GAAIC,GAAS5R,EAAOsD,IAAIQ,UAAU,KAAOuN,EACrCO,GAAO7T,UACP6T,EAAS5R,EAAOsD,IAAItF,OAAO,KACtBoC,KAAK,QAAS,QAAUiR,GACxBjR,KAAK,YAAa,aAAeuR,EAAW,IAAM3R,EAAOiI,UAAUJ,IAAM,MAGlF/R,EAAG4C,WAAWkZ,EAAQ5R,EAAO4E,sBAAsB5I,KAAK0S,IAG5D1O,EAAO+M,YAAc,WACjB,GAAI8E,GAAejC,GAAkB5P,EAAOK,QAAUL,EAAOiI,UAAUH,MAAS9H,EAAO8R,SACvF9R,GAAO0R,cAAc,IAAK1C,EAAQ6C,EAClC,IAAIE,GAAgBnC,GAAkB5P,EAAOK,QAAU8O,EAAsBA,EACzEmC,EAAW1B,GAAiB,GAAK,GACrC5P,GAAOoR,iBAAiB,IAAKpR,EAAOgS,aAAcV,EAAUS,IAGhE/R,EAAOmR,kCAAoC,SAAU7N,EAAGiF,EAAOmG,GAC3D,GAAItD,GAAY9H,EAAEQ,UAAU,KAAO+J,EAEnC,IAAIyB,EAA2B,CAC3B,GAAI7D,GAAQiD,EAAKhD,aAAegD,EAAKhD,aAAenD,EAAMkD,MAAMiD,EAAKjD,QAAQ,GAEzEL,GAAUrN,UACVqN,EAAY9H,EAAEiI,OAAO,IAAK,gBACrBnL,KAAK,QAASoL,EAAkB,IAAMqC,GACtCzN,KAAK,YAAa,aAAeJ,EAAOiI,UAAUD,KAAO,IAAMhI,EAAOiI,UAAUJ,IAAM,KAG/F,IAAI8D,GAAQP,EAAUtH,UAAU,QAC3BT,KAAKoI,GAGNG,EAAcD,EAAME,QACnB7N,OAAO,QACPoC,KAAK,KAAM,GACXA,KAAK,KAAM,SAAU3G,GAClB,MAAO8O,GAAM9O,KAEhB2G,KAAK,KAAMJ,EAAO8K,eAClB1K,KAAK,KAAM,SAAU3G,GAClB,MAAO8O,GAAM9O,KAEhB2G,KAAK,UAAW,EACrBtK,GAAG4C,WAAWkT,EAAa5L,EAAO4E,sBAC7BxE,KAAK,UAAW,GAGrBtK,EAAG4C,WAAWiT,EAAO3L,EAAO4E,sBACvBxE,KAAK,KAAM,GACXA,KAAK,KAAM,SAAU3G,GAClB,MAAO8O,GAAM9O,KAEhB2G,KAAK,KAAMJ,EAAO8K,eAClB1K,KAAK,KAAM,SAAU3G,GAClB,MAAO8O,GAAM9O,KAIrBkS,EAAMI,OAAOzH,aAGb8G,GAAUtH,UAAU,QAAQQ,UAIpCtE,EAAO8R,QAAU,WACb,MAAO9R,GAAO0Q,gBAAkB1Q,EAAOK,QAAUL,EAAOiI,UAAUH,MAAQ9H,EAAOiI,UAAUD,MAS/FhI,EAAOgS,WAAa,SAAUzX,EAAG+R,GAC7B,MAAK9R,WAAUhD,QAGf8W,EAAc/T,EACdyF,EAAOiI,UAAUD,MAAQmH,EACzBA,EAAkCrW,SAAZwT,EAAyB0B,EAA6B1B,EAC5EtM,EAAOiI,UAAUD,MAAQmH,EAClBnP,GANIsO,GAcftO,EAAOF,EAAI,SAAUvF,GACjB,MAAKC,WAAUhD,QAGf6W,EAAK9T,EACEyF,GAHIqO,GAqBfrO,EAAOiS,MAAQ,SAAUnS,GACrB,MAAKtF,WAAUhD,QAGfwX,EAASlP,EACFE,GAHIgP,GAYfhP,EAAO8M,SAAW,SAAUvS,GACxB,MAAKC,WAAUhD,QAGf0X,EAAe3U,EACRyF,GAHIkP,GAWflP,EAAOkS,0BAA4B,SAAU3X,GACzC,MAAKC,WAAUhD,QAGf8X,EAA4B/U,EACrByF,GAHIsP,GAWftP,EAAOmL,wBAA0B,SAAU5Q,GACvC,MAAKC,WAAUhD,QAGf8T,EAA0B/Q,EACnByF,GAHIsL,GAUftL,EAAOwK,SAAW,WACd,GAAItN,GAAMtH,EAAGsH,IAAI8C,EAAOqD,OAAQ,SAAUnM,GACtC,MAAO8I,GAAOkC,cAAchL,IAEhC,OAAOpB,GAAG6D,MAAMmD,SAASI,EAAK2R,IAOlC7O,EAAOyK,SAAW,WACd,GAAItN,GAAMvH,EAAGuH,IAAI6C,EAAOqD,OAAQ,SAAUnM,GACtC,MAAO8I,GAAOkC,cAAchL,IAEhC,OAAOpB,GAAG6D,MAAM0C,IAAIc,EAAK0R,IAO7B7O,EAAOgR,SAAW,WACd,GAAI9T,GAAMtH,EAAGsH,IAAI8C,EAAOqD,OAAQ,SAAUnM,GACtC,MAAO8I,GAAOmC,gBAAgBjL,IAElC,OAAOpB,GAAG6D,MAAMmD,SAASI,EAAK+R,IAOlCjP,EAAOiR,SAAW,WACd,GAAI9T,GAAMvH,EAAGuH,IAAI6C,EAAOqD,OAAQ,SAAUnM,GACtC,MAAO8I,GAAOmC,gBAAgBjL,IAElC,OAAOpB,GAAG6D,MAAM0C,IAAIc,EAAK8R,IAa7BjP,EAAOmS,aAAe,SAAU5X,GAC5B,MAAKC,WAAUhD,QAGfyX,EAAgB1U,EACTyF,GAHIiP,GAMfjP,EAAOwM,YAAc,WACjB,MAAOxM,GAAOoI,mBAalBpI,EAAOjG,MAAQ,SAAUQ,GACrB,MAAKC,WAAUhD,QAGf+W,EAAShU,EACFyF,GAHIuO,GAMfvO,EAAO+K,kBAAoB,SAAUxQ,GACjC,MAAKC,WAAUhD,QAGfuT,GAAoBxQ,EACbyF,GAHI+K,IAMf/K,EAAOiL,uBAAyB,SAAU1Q,GACtC,MAAKC,WAAUhD,QAGfyT,GAAyB1Q,EAClByF,GAHIiL,IAMfnV,EAAGmE,SAAS+F,EAAQ,SAAU,SAAUzF,GACpC,MAAKC,WAAUhD,QAIfwI,EAAOoS,QAAQ7X,GAEXA,EACAyF,EAAOqP,QAAQgD,OAAO9X,GAEtByF,EAAOqP,QAAQ1X,QAGZqI,GAXIA,EAAOoS,YActBpS,EAAOqP,MAAQ,SAAU9U,GACrB,MAAKC,WAAUhD,QAGf4X,EAAS7U,EACFyF,GAHIoP,GAUfpP,EAAOgN,YAAc,SAAU1J,GAC3B,GAAIoJ,EAAU,CACV0C,EAAO9H,GAAG,QAAStH,EAAOsS,WAC1BlD,EAAO9H,GAAG,aAActH,EAAOsN,mBAC/B8B,EAAO9H,GAAG,WAAY4F,EAEtB,IAAIqF,GAASjP,EAAEtF,OAAO,KACjBoC,KAAK,QAAS,SACdA,KAAK,YAAa,aAAeJ,EAAOiI,UAAUD,KAAO,IAAMhI,EAAOiI,UAAUJ,IAAM,KACtF7L,KAAKoT,EAAOvP,EAAEG,EAAOH,KAC1BG,GAAOwS,UAAUD,GACjBvS,EAAOyS,eAAeF,GAElBvS,EAAO+F,aACP/F,EAAOiN,YAAY3J,KAK/BtD,EAAOyS,eAAiB,SAAUF,GAC9BA,EAAOzO,UAAU,WAAW9F,OAAO,QAAQoC,KAAK,IAAKJ,EAAO0S,mBAGhE1S,EAAOwS,UAAY,SAAUD,GACzBA,EAAOzO,UAAU,QAAQ1D,KAAK,SAAU4L,MAG5ChM,EAAO2S,YAAc,WACjB,GAAIN,GAASjD,EAAOiD,QAQpB,OAPIrS,GAAOjG,UACPsY,EAAO,GAAKA,EAAOzB,IAAI5Q,EAAOjG,SAAS,GACvCsY,EAAO,GAAKA,EAAOzB,IAAI5Q,EAAOjG,SAAS,GAEvCmU,EAAGpQ,OAAO,UACL9B,KAAKoT,EAAOiD,OAAOA,KAErBA,GAGXrS,EAAO4S,aAAe,SAAUP,GAC5B,MAAOjD,GAAOrR,UAAYsU,GAAUA,EAAO,IAAMA,EAAO,IAG5DrS,EAAOsS,UAAY,WACf,GAAID,GAASrS,EAAO2S,aAIpB,IAFA3S,EAAOiN,YAAYiB,GAEflO,EAAO4S,aAAaP,GACpBvc,EAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAO,MACdqE,EAAOsF,eACRxP,EAAGE,UAAUS,iBACb,CACH,GAAIoc,GAAe/c,EAAG4F,QAAQwD,aAAamT,EAAO,GAAIA,EAAO,GAE7Dvc,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOsG,cAAcuM,GACrB7S,EAAOsF,eACRxP,EAAGE,UAAUS,eAIxBuJ,EAAOiN,YAAc,SAAU3J,GAC3B,GAAIoJ,EAAU,CACN1M,EAAOrE,UAAYqE,EAAOqP,QAAQtR,SAClCiC,EAAOqP,QAAQgD,OAAOrS,EAAOrE,SAGjC,IAAI4W,GAASjP,EAAExF,OAAO,UACtByU,GAAOvW,KAAKgE,EAAOqP,QAAQxP,EAAEG,EAAOH,MACpCG,EAAOwS,UAAUD,GAGrBvS,EAAO8S,sBAGX9S,EAAO8S,mBAAqB,aAK5B9S,EAAO0S,iBAAmB,SAAUjZ,GAChC,GAAIvC,KAAY,MAANuC,GAAYoG,EAAI3I,EAAI,EAAI,GAAI4I,EAAIkM,IAAgB,CAC1D,OAAO,IAAO,GAAMnM,EAAK,IAAMC,EAC3B,YAAc5I,EAAI,IAAO,IAAM2I,EAAK,KAAOC,EAAI,GAC/C,KAAO,EAAIA,EAAI,GACf,YAAc5I,EAAI,IAAO,GAAM2I,EAAK,IAAO,EAAIC,EAC/C,KACO,IAAMD,EAAK,KAAOC,EAAI,GAC7B,KAAO,EAAIA,EAAI,GACf,IAAO,IAAMD,EAAK,KAAOC,EAAI,GAC7B,KAAO,EAAIA,EAAI,IAcvBE,EAAO+S,YAAc,SAAUC,GAC3B,MAAKxY,WAAUhD,QAGf+U,EAAeyG,EACRhT,GAHIuM,GAqBfvM,EAAOiT,gBAAkB,aAEzBjT,EAAOgF,UAAY,WAYf,MAXAhF,GAAOqE,WAEPrE,EAAOiT,kBAEPjT,EAAOiQ,aACP/D,IAEAO,GAAU,GAEVS,IAEOlN,GAGXA,EAAOqF,UAAY,WAMf,MALArF,GAAOiT,kBAEPxG,GAAU,GACVP,IAEOlM,GAqCXA,EAAOoN,iBAAmB,WACtBC,GAAwB,EACxBmC,EAAM3P,EAAEG,EAAOH,KACVqT,YAAY3D,GACZ4D,MAAMnT,EAAOK,QAASL,EAAOM,WAC7B1H,SAASoH,EAAO4E,sBACrB5E,EAAOG,OAAOnE,KAAKwT,IAGvBxP,EAAOsN,kBAAoB,WACvBtN,EAAOG,OAAOnE,KAAK2T,IA2BvB3P,EAAO5H,MAAQ,SAAUiH,GAEjBW,EAAOH,IAAIxG,OADXuU,EAAiBvO,GACCA,EAEAyK,GAGtB0F,EAAM3P,EAAEG,EAAOH,KACf6J,KAGJ1J,EAAOoT,UAAY,WACf,MAAOzJ,IAGX3J,EAAO8P,WAAa,SAAUuD,GAC1B,MAAK7Y,WAAUhD,QAGfiX,EAAc4E,EACdrT,EAAOsH,GAAG,WAAY,SAAUrQ,GACvBA,EAAM0E,SAICuO,EAAYjT,EAAM0E,SAAU8S,EAAY9S,WAChD7F,EAAG8I,OAAOE,QAAQ,WACd2P,EAAYrW,MAAMnB,EAAM0E,YAL5B7F,EAAG8I,OAAOE,QAAQ,WACd2P,EAAY5O,IAAIxG,OAAOoV,EAAY4B,uBAQxCrQ,GAdIyO,GA4CfzO,EAAOsT,QAAU,SAAU/Y,GACvB,MAAKC,WAAUhD,QAGfkV,EAAWnS,EACJyF,GAHI0M,GAUR1M,GAQXlK,EAAGyd,WAAa,SAAUvT,GAEtB,QAASwT,GAAeC,EAAOC,GAC3B,GAAIC,GAAcF,EAAMG,UAAY5T,EAAOmC,eAa3C,OAZAsR,GAAMlW,KAAOsW,OAAOJ,EAAMlW,MAAQmW,GAClCD,EAAMK,OAASL,EAAM3c,MAAM+L,MAAM+N,IAAI,SAAUnX,EAAGlC,GAC9C,OACIsI,EAAGG,EAAOkC,cAAczI,EAAGlC,GAC3BuI,EAAG2T,EAAMM,OAAS,KAAOJ,EAAYla,EAAGlC,GACxC8L,KAAM5J,EACNga,MAAOA,EAAMlW,KACbwW,OAAQN,EAAMM,UAItBN,EAAMK,OAASL,EAAMK,OAAOnY,OAAOqY,KAC5BP,EAAMK,OAWjB,QAASE,KACL,IAAKhU,EAAOH,IACR,MAAOjK,GAAGmN,SAAQ,EAEtB,IAAIkR,GAAUjU,EAAOH,IAAIxG,QACzB,OAAI2G,GAAOoK,YAGA,WACH,OAAO,GAGXpK,EAAOqK,WACA,WAAc,OAAO,GAEzB,SAAU2I,GAEb,MAAOA,GAAEnT,GAAKoU,EAAQ,IAAMjB,EAAEnT,GAAKoU,EAAQA,EAAQzc,OAAS,IAoEpE,QAAS0c,GAAgBla,GACrB,GAAIzC,GAAI4c,EAAOvD,IAAI9a,EAAGgG,MAAM,SAAS3E,QAAQ6C,EAC7C,OAAOma,GAAO5c,GAoDlB,QAAS6c,KACL,GAAIC,GAAWrU,EAAOqD,OAAOuN,IAAI,SAAU6C,GAAS,MAAOA,GAAMK,QACjE,OAAOlY,OAAM0Y,UAAUC,OAAOlZ,SAAUgZ,GAiE5C,QAASG,GAAWlY,GAChB,OAAQA,EAAEyX,OAvNd,GAAIU,GAAe7e,EAAG8e,OAAOC,QACxBb,OAAON,GAERW,KACAS,KAEAC,GAAiB,CAgQrB,OAzNA7U,GAAO2U,MAAQ,SAAU7d,EAAOyG,EAAMqW,GAClC,IAAKpZ,UAAUhD,OACX,MAAO2c,EAGP3Z,WAAUhD,QAAU,IACpBoc,EAAWrW,EAGf,IAAIkW,IAAS3c,MAAMA,EASnB,OARoB,gBAATyG,KACPkW,EAAMlW,KAAOA,GAEO,kBAAbqW,KACPH,EAAMG,SAAWA,GAErBO,EAAO9c,KAAKoc,GAELzT,GAGXlK,EAAGmE,SAAS+F,EAAQ,QAAS,SAAUsD,EAAGtJ,EAAG+B,GACzC,MAAKvB,WAAUhD,QAGf2c,KACAS,KACA5U,EAAO2U,MAAMrR,EAAGtJ,GACZ+B,GACAiE,EAAOmC,cAAcpG,GAElBiE,EAAOe,OAAOuC,EAAGtJ,IARbgG,EAAOe,WAiBtBf,EAAO8U,cAAgB,SAAUva,GAC7B,MAAKC,WAAUhD,QAGfqd,EAAiBta,EACVyF,GAHI6U,GAiBf7U,EAAO+U,UAAY,SAAUC,GACzB,GAAIvB,GAAQS,EAAgBc,EAI5B,OAHIvB,KACAA,EAAMM,QAAS,GAEZ/T,GASXA,EAAOiV,UAAY,SAAUD,GACzB,GAAIvB,GAAQS,EAAgBc,EAI5B,OAHIvB,KACAA,EAAMM,QAAS,GAEZ/T,GAGXA,EAAOkV,wBAA0B,SAAUC,GACvC,MAAOhB,GAAOgB,GAAOvB,UAAY5T,EAAOmC,iBAG5CnC,EAAOgR,SAAW,WACd,GAAI9T,GAAMtH,EAAGsH,IAAIkX,IAAgB,SAAUpB,GACvC,MAAQA,GAAElT,EAAIkT,EAAEoC,GAAKpC,EAAEoC,GAAOpC,EAAElT,EAAIkT,EAAEoC,GAAMpC,EAAEoC,IAGlD,OAAOtf,GAAG6D,MAAMmD,SAASI,EAAK8C,EAAOmS,iBAIzCnS,EAAOiR,SAAW,WACd,GAAI9T,GAAMvH,EAAGuH,IAAIiX,IAAgB,SAAUpB,GACvC,MAAOA,GAAElT,EAAIkT,EAAEoC,IAGnB,OAAOtf,GAAG6D,MAAM0C,IAAIc,EAAK6C,EAAOmS,iBAQpCnS,EAAOwK,SAAW,WACd,GAAItN,GAAMtH,EAAGsH,IAAIkX,IAAgBte,EAAGgG,MAAM,KAC1C,OAAOhG,GAAG6D,MAAMmD,SAASI,EAAK8C,EAAOwQ,iBAGzCxQ,EAAOyK,SAAW,WACd,GAAItN,GAAMvH,EAAGuH,IAAIiX,IAAgBte,EAAGgG,MAAM,KAC1C,OAAOhG,GAAG6D,MAAM0C,IAAIc,EAAK6C,EAAOwQ,iBAoBpC1a,EAAGmE,SAAS+F,EAAQ,QAAS,SAAUgV,EAAWK,GAC9C,MAAKL,GAIoB,kBAAdA,GACAhV,EAAOiC,OAAO+S,GAErBA,IAAchV,EAAOuD,YAAuC,kBAAlB8R,GACnCrV,EAAOiC,OAAOoT,GAGI,kBAAlBA,GACAT,EAAQI,IAAchV,EAAOiC,UAGxC2S,EAAQI,GAAaK,EAEdrV,GAhBIA,EAAOiC,WAyBtBjC,EAAOsV,YAAc,SAAUX,GAC3B,MAAKna,WAAUhD,QAGfid,EAAeE,EACR3U,GAHIyU,GAUfzU,EAAOqD,KAAK,WACR,GAAIkS,GAASpB,EAAOxY,OAAO6Y,EAC3B,OAAOe,GAAO/d,OAASwI,EAAOsV,cAAcC,QAGhDvV,EAAOuK,gBAAkB,WACrB,GAAIiL,GAAOpB,IAAexD,IAAI9a,EAAGgG,MAAM,SACnC2Z,EAAUzV,EAAO2D,sBAAsB6R,EAC3C,OAAOC,GAAQ7E,IAAI5Q,EAAOkC,gBAG9BlC,EAAOkJ,cAAc,SAAUzP,GAC3B,GAAIga,GAAQxY,KAAKwY,OAASxY,KAAKsC,MAAQ9D,EAAE8D,MAAQ9D,EAAEga,KACnD,OAAOA,KAGXzT,EAAO4G,YAAc,WACjB,MAAOuN,GAAOvD,IAAI,SAAU6C,EAAOlc,GAC/B,OACIN,MAAM+I,EACNzC,KAAKkW,EAAMlW,KACXwW,OAAQN,EAAMM,SAAU,EACxB2B,MAAM1V,EAAOuJ,SAASvN,KAAKyX,EAAOA,EAAMK,OAAQvc,OAK5DyI,EAAOgH,mBAAqB,SAAUvN,GAClC,GAAIga,GAAQS,EAAgBza,EAAE8D,KAC9B,OAAOkW,GAAQA,EAAMM,QAAS,GAGlC/T,EAAO+G,aAAe,SAAUtN,GACxBob,IACI7U,EAAOgH,mBAAmBvN,GAC1BuG,EAAOiV,UAAUxb,EAAE8D,MAEnByC,EAAO+U,UAAUtb,EAAE8D,MAGvByC,EAAOuF,gBAIRvF,GAcXlK,EAAG6f,SAAW,SAAU3V,GAEpB,GAAI4V,GAAOhW,EAAAA,EAEPiW,EAAe,SAEfC,EAAiB,SAAUC,GAC3B,GAAIC,GAAapgB,EAAGqgB,IAAIF,EAAS/V,EAAOmC,iBACpC+T,EAAUlW,EAAOlJ,QAAQ+L,MACzBsT,EAAavgB,EAAGqgB,IAAIC,EAASlW,EAAOmC,iBACpCiU,EAAUL,EAAQnF,IAAI5Q,EAAOkC,eAC7BmU,EAAUH,EAAQtF,IAAI5Q,EAAOkC,eAC7BoU,EAAS1gB,EAAG2gB,IAAIH,GAChBI,EAASH,EAAQ1a,OAAO,SAAUlC,GAAI,OAAQ6c,EAAOtf,IAAIyC,IAC7D,OAAI0c,GAAaH,EACND,EAAQxB,SAASiC,OAAUA,EAAQC,IAAOZ,EAActW,MAAS4W,EAAaH,KAElFD,EAyFX,OAtFA/V,GAAO0W,kBAAoB,SAAUjd,EAAGlC,GACpC,MAAIkC,GAAE+c,OACK/c,EAAEgd,IAENzW,EAAOkC,cAAczI,EAAGlC,IAGnCyI,EAAO2W,oBAAsB,SAAUld,EAAGlC,GACtC,MAAIkC,GAAE+c,OACK/c,EAAE8F,MAENS,EAAOmC,gBAAgB1I,EAAGlC,IAGrCyI,EAAOqD,KAAK,SAAUvM,GAClB,GAAI8e,IAAShW,EAAAA,EACT,MAAOI,GAAO2D,sBAAsB7M,EAAM+L,MAE1C,IAAIkT,GAAUjf,EAAM+Q,IAAI+N,EAExB,OADAG,GAAU/V,EAAO2D,sBAAsBoS,GACnCD,EACOA,EAAeC,GAEnBA,IAQf/V,EAAO4W,IAAM,SAAUrc,GACnB,MAAKC,WAAUhD,QAGfoe,EAAOrb,EACAyF,GAHI4V,GAUf5V,EAAO6W,YAAc,SAAUtc,GAC3B,MAAKC,WAAUhD,QAGfqe,EAAetb,EACRyF,GAHI6V,GA0Bf7V,EAAO8W,cAAgB,SAAUvc,GAC7B,MAAKC,WAAUhD,QAGfse,EAAiBvb,EACVyF,GAHI8V,GAMfhgB,EAAGmE,SAAS+F,EAAQ,UAAW,SAAUvG,GACjCA,EAAE+c,QACFxW,EAAOrE,QAAQlC,EAAE+c,SAErBxW,EAAO+W,SAAStd,KAGbuG,GAUXlK,EAAGkhB,YAAc,SAAUhX,GACvB,GAAIiX,GAAyB,GACzBC,EAAsB,EAE1BlX,GAAOmX,kBAAoB,OAC3BnX,EAAOoX,aAAe,SACtBpX,EAAOqX,WAAa,GAEpBrX,EAASlK,EAAGuS,WAAWrI,GAEvBA,EAAOmH,aAAY,GAEnBnH,EAAOqD,KAAK,SAAUvM,GAClB,MAAOA,GAAM+Q,IAAIjI,EAAAA,IAGrB,IAAI0X,GAAK1hB,EAAG2S,MAAMQ,SAAS1P,QAAQ,EAAG,MAElCke,EAAkB,SAAU9d,GAC5B,MAAOA,GAAE8C,EASbyD,GAAOzD,EAAI,SAAUhC,GACjB,MAAKC,WAAUhD,QAGf8f,EAAK/c,EACEyF,GAHIsX,GAcftX,EAAOwX,oBAAsB,SAAUjd,GACnC,MAAKC,WAAUhD,QAGf+f,EAAkBhd,EACXyF,GAHIuX,GAMfvX,EAAOyX,KAAO,WACV,GAAIva,GAAMtH,EAAGsH,IAAI8C,EAAOqD,OAAQ,SAAUnM,GACtC,MAAO8I,GAAOwX,sBAAsBtgB,IAExC,OAAOgG,IAGX8C,EAAO0X,KAAO,WACV,GAAIva,GAAMvH,EAAGuH,IAAI6C,EAAOqD,OAAQ,SAAUnM,GACtC,MAAO8I,GAAOwX,sBAAsBtgB,IAExC,OAAOiG,IAGX6C,EAAO2X,QAAU,SAAUle,GACvB,GAAI8F,GAAQS,EAAOwX,sBAAsB/d,GACrC8C,EAAIyD,EAAOzD,IAAIgD,EAInB,QAHIqY,MAAMrb,IAAe,GAATgD,KACZhD,EAAI,GAEDA,EAGX,IAAIsb,GAAgB,SAAUpe,GAC1B,MAAOuG,GAAOkH,QAAQzN,IAGtBqe,EAAe,SAAUre,GACzB,MAAQuG,GAAO2X,QAAQle,GAAKyd,EAAuB,EAAI,EAG3DlX,GAAO+X,eAAiB,SAAUC,GAC9B,GAAIhY,EAAOmH,cAAe,CACtB,GAAID,GAAQ8Q,EAAala,OAAO,OAE5BoJ,GAAMnJ,UACNmJ,EAAQ8Q,EAAaha,OAAO,QACvBoC,KAAK,cAAe,UACpBA,KAAK,KAAM,QACXkH,GAAG,QAAStH,EAAO0G,UAG5BQ,EACK9G,KAAK,UAAW,GAChBsE,KAAKmT,GACV/hB,EAAG4C,WAAWwO,EAAOlH,EAAO4E,sBACvBxE,KAAK,UAAW0X,KAI7B9X,EAAOiY,eAAiB,SAAUD,GAC9B,GAAIhY,EAAOmH,cAAe,CACtB,GAAI+Q,GAASF,EAAalU,UAAU,QAC/BY,KAAKmT,EACV/hB,GAAG4C,WAAWwf,EAAQlY,EAAO4E,sBACxBxE,KAAK,UAAW0X,IAI7B,IAAIK,GAAgB,SAAU1e,GAC1B,MAAOuG,GAAOoH,QAAQ3N,GA2E1B,OAxEAuG,GAAOoY,gBAAkB,SAAU9U,GAC/B,GAAItD,EAAOqH,cAAe,CACtB,GAAID,GAAQ9D,EAAExF,OAAO,QAEjBsJ,GAAMrJ,SACNuF,EAAEtF,OAAO,SAAS0G,KAAKyT,KAKnCnY,EAAOqY,eAAiB,SAAU/U,GAC1BtD,EAAOqH,eACP/D,EAAEQ,UAAU,SAASY,KAAKyT,IAUlCnY,EAAOsY,mBAAqB,SAAU/d,GAClC,MAAKC,WAAUhD,QAGf0f,EAAsB3c,EACfyF,GAHIkX,GAYflX,EAAOuY,sBAAwB,SAAUhe,GACrC,MAAKC,WAAUhD,QAGfyf,EAAyB1c,EAClByF,GAHIiX,GAMfjX,EAAO8S,mBAAqB,WAEpB9S,EAAO8D,UAAU,KAAO9D,EAAOmX,mBAAmBhS,KADlDnF,EAAO+F,YACgD,SAAUtM,GACzDuG,EAAOwY,eAAe/e,GACtBuG,EAAOuG,kBAAkBtL,MAEzB+E,EAAOwG,eAAevL,OAIyB,WACnD+E,EAAOyG,eAAexL,SAKlC+E,EAAOwY,eAAiB,SAAU/e,GAC9B,MAAOuG,GAAO+F,UAAUtM,EAAEgd,MAG9BzW,EAAO0G,QAAU,SAAUjN,GACvB,GAAIkC,GAASlC,EAAEgd,GACf3gB,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAOA,GACdqE,EAAOsF,iBAIRtF,GAsCXlK,EAAG2iB,SAAW,SAAU/a,EAAQsG,GAkD5B,QAASyI,KAELiM,EAAUA,EAAUA,EAAU9iB,EAAGsH,KAAK8C,EAAOK,QAASL,EAAOM,WAAa,CAE1E,IAGIqY,GAHAC,EAAMC,IAENC,EAAMC,GAaV,IAVInjB,EAAGqgB,IAAIjW,EAAOqD,OAAQrD,EAAOmC,kBAC7BwW,EAAUG,EAAI9Y,EAAOqD,QACrB6K,EAAGjK,QAAQ+U,GAAgB,KAI3BL,EAAUG,IAAMrC,IAAIwC,EAAa1Z,MAAM,EAAGiX,QAASyC,MACnD/K,EAAGjK,QAAQ+U,GAAgB,IAG3B9K,EAAI,CACJ,GAAIgL,GAAShL,EAAGpK,UAAU,KAAOqV,GAC5B9V,KAAKsV,EAEVS,GAAeF,EAAQN,EAAKD,GAE5BU,EAAeV,EAASC,GAExBU,EAAeJ,GAEfK,KAIR,QAASH,GAAeF,EAAQN,EAAKD,GACjC,GAAIa,GAAcC,EAAiBP,EAEnCQ,GAAgBF,EAAaZ,GAE7Be,EAAaH,GAEbI,EAAajB,EAASC,GAG1B,QAASa,GAAiBP,GACtB,GAAIM,GAAcN,EACbrN,QACA7N,OAAO,KACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAO4hB,GAAiB,KAAO5hB,GAEvC,OAAOiiB,GAGX,QAASE,GAAgBF,EAAaZ,GAClC,GAAIiB,GAAYL,EAAYxb,OAAO,QAC9BoC,KAAK,OAAQ0Z,GACbxS,GAAG,QAASZ,GACZtG,KAAK,IAAK,SAAU3G,EAAGlC,GACpB,MAAOwiB,GAAQtgB,EAAGlC,EAAGqhB,IAG7B9iB,GAAG4C,WAAWmhB,EAAW7Z,EAAO4E,qBAAsB,SAAU7L,GAC5DA,EAAEihB,UAAU,IAAKC,KAIzB,QAASN,GAAaH,GACdxZ,EAAOqH,eACPmS,EAAYxb,OAAO,SAAS0G,KAAK,SAAUjL,GACvC,MAAOuG,GAAOoH,QAAQ3N,EAAE4J,QAKpC,QAAS6W,GAAeC,EAAavB,GACjC9iB,EAAG4C,WAAWyhB,EAAana,EAAO4E,sBAC7BxE,KAAK,YAAa,SAAU3G,GACzB,MAAOsY,GAActY,EAAGmf,KAE3BxY,KAAK,cAAe,UACpBsE,KAAK,SAAUjL,GACZ,GAAI4J,GAAO5J,EAAE4J,IACb,QAAK+W,EAAe/W,KAASgX,EAAc5gB,IAAQ6gB,EAAgB7gB,GAG5DuG,EAAOkH,QAAQzN,EAAE4J,MAFb,KAMvB,QAASuW,GAAajB,EAASC,GAC3B,GAAI5Y,EAAOmH,cAAe,CACtB,GAAI+Q,GAAShK,EAAGpK,UAAU,QAAUqV,GAC/B9V,KAAKsV,EAEVT,GAAOnM,OAAOzH,QAEd,IAAI6V,GAAcjC,EACbrM,QACA7N,OAAO,QACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,GAAIgjB,GAAUpB,EAAiB,KAAO5hB,CAItC,OAHIijB,KACAD,GAAW,aAERA,IAEVjT,GAAG,QAASZ,EACjBwT,GAAeC,EAAavB,IAIpC,QAASS,GAAeV,EAASC,GAC7B6B,EAAiB9B,EAASC,GAC1B8B,EAAa/B,EAASC,GACtB+B,EAAahC,GAGjB,QAAS8B,GAAiB9B,EAASC,GAC/B,GAAIgC,GAAa1M,EAAGpK,UAAU,KAAOqV,GAChC9V,KAAKsV,GACL7a,OAAO,QACPsC,KAAK,IAAK,SAAU3G,EAAGlC,GACpB,MAAOwiB,GAAQtgB,EAAGlC,EAAGqhB,IAE7B9iB,GAAG4C,WAAWkiB,EAAY5a,EAAO4E,qBAC7B,SAAU7L,GACNA,EAAEihB,UAAU,IAAKC,KAClB7Z,KAAK,OAAQ0Z,GAGxB,QAASY,GAAa/B,EAASC,GAC3B,GAAI5Y,EAAOmH,cAAe,CACtB,GAAI+Q,GAAShK,EAAGpK,UAAU,QAAUqV,GAC/B9V,KAAKsV,EACVuB,GAAehC,EAAQU,IAI/B,QAAS+B,GAAahC,GACd3Y,EAAOqH,eACP6G,EAAGpK,UAAU,KAAOqV,GACf9V,KAAKsV,GACL7a,OAAO,SACP4G,KAAK,SAAUjL,GACZ,MAAOuG,GAAOoH,QAAQ3N,EAAE4J,QAKxC,QAASiW,GAAeJ,GACpBA,EAAOnN,OAAOzH,SAGlB,QAASiV,KAEDvZ,EAAO8D,UAAU,KAAOqV,GAAgBhU,KADxCnF,EAAO+F,YACsC,SAAUtM,GAC/C6gB,EAAgB7gB,GAChBuG,EAAOuG,kBAAkBtL,MAEzB+E,EAAOwG,eAAevL,OAIe,WACzC+E,EAAOyG,eAAexL,QA2DlC,QAAS4d,KACL,MAAOjjB,GAAGwO,IAAIwU,MAAMiC,YAAYnC,GAASoC,YAAYC,GAGzD,QAAST,GAAgB7gB,GACrB,MAAOuG,GAAO+F,UAAU/F,EAAO0W,kBAAkBjd,EAAE4J,OAqBvD,QAAS0V,KACL,MAAOnjB,GAAG8e,OAAOoE,MAAMkC,KAAK,MAAMzb,MAAMS,EAAO2W,qBAGnD,QAAS0D,GAAc5gB,GACnB,GAAIwhB,GAASxhB,EAAEyhB,SAAWzhB,EAAE0hB,UAC5B,OAAOvD,OAAMqD,IAAkBG,EAARH,EAG3B,QAASb,GAAe3gB,GACpB,MAAyC,KAAlCuG,EAAO2W,oBAAoBld,GAGtC,QAASwgB,GAASoB,GACdA,EAAEP,YAAcC,CAChB,IAAIlc,GAAU5D,KAAKqgB,QACfC,GAAY1c,KACZA,GAAWsc,WAAY,EAAGD,SAAU,GAExC,IAAI3jB,GAAI3B,EAAGoT,YAAYnK,EAASwc,EAEhC,OADApgB,MAAKqgB,SAAW/jB,EAAE,GACX,SAAUikB,GACb,MAAOzB,GAAQxiB,EAAEikB,GAAI,EAAG3C,MAIhC,QAAS0C,GAAY1c,GACjB,OAAQA,GAAW+Y,MAAM/Y,EAAQsc,aAAevD,MAAM/Y,EAAQqc,UAGlE,QAASpB,GAAKrgB,EAAGlC,GACb,MAAOyI,GAAOuJ,SAAS9P,EAAE4J,KAAM9L,GAGnC,QAASmP,GAAQjN,EAAGlC,GACZ2W,EAAG9N,KAAK,WAAa4Y,GACrBhZ,EAAO0G,QAAQjN,EAAE4J,KAAM9L,GAI/B,QAASwiB,GAAQtgB,EAAGlC,EAAGqhB,GACnB,GAAI6C,GAAO7C,EAAInf,EAAGlC,EAIlB,OAHIkkB,GAAKtkB,QAAQ,QAAU,IACvBskB,EAAO,QAEJA,EAiCX,QAAS1J,GAActY,EAAGmf,GACtB,GAAI8C,EASJ,OAPIA,GADAlB,EACW5kB,EAAGwO,IAAIwU,MACbiC,YAAYnC,EAAU8B,GACtBM,YAAYpC,EAAU8B,GACtBkB,SAASjiB,GAEHmf,EAAI8C,SAASjiB;AAExBme,MAAM8D,EAAS,KAAO9D,MAAM8D,EAAS,IAC9B,iBAEA,aAAeA,EAAW,IAwBzC,QAASC,GAA6BC,EAAYC,GAC9C7b,EAAO8D,UAAU,eAAeqB,KAAK,SAAU1L,GACvCmiB,EAAWre,OAAS9D,EAAE4J,KAAKoT,KAC3B7gB,EAAGkI,OAAO7C,MAAMgJ,QAAQ,YAAa4X,KAhajD,GAMInD,GAGAxK,EACA4N,EACAC,EAEAvB,EAbAwB,EAA8B,GAE9B7C,EAAiB,YACjBH,EAAiB,cACjBC,EAAc,QAGd8B,EAAe,EAKfK,EAAoBY,EAEpBhc,EAASlK,EAAG6f,SAAS7f,EAAGuS,WAAWvS,EAAGiK,eAuZ1C,OArZAC,GAAOkJ,cAAclJ,EAAO0W,mBAC5B1W,EAAOiH,oBAAoBjH,EAAO0W,mBAElC1W,EAAOoH,MAAM,SAAU3N,GACnB,MAAOuG,GAAO0W,kBAAkBjd,GAAK,KAAOuG,EAAO2W,oBAAoBld,KAU3EuG,EAAOic,UAAYjc,EAAO4W,IAE1B5W,EAAOkH,MAAMlH,EAAO0W,mBACpB1W,EAAOmH,aAAY,GAEnBnH,EAAO4E,mBAAmB,KAE1B5E,EAAOgF,UAAY,WASf,MARAhF,GAAOqE,WAEP6J,EAAKlO,EAAOoE,MACPpG,OAAO,KACPoC,KAAK,YAAa,aAAeJ,EAAOkc,KAAO,IAAMlc,EAAOmc,KAAO,KAExE1P,IAEOzM,GAkLXA,EAAO8a,YAAc,SAAUve,GAC3B,MAAK/B,WAAUhD,QAGfujB,EAAexe,EACRyD,GAHI+a,GAYf/a,EAAOoc,OAAS,SAAU7f,GACtB,MAAK/B,WAAUhD,QAGfkhB,EAAUnc,EACHyD,GAHI0Y,GAWf1Y,EAAOkc,GAAK,SAAUA,GAClB,MAAK1hB,WAAUhD,QAGfskB,EAAMI,EACClc,GAHK8b,GAAQ9b,EAAOK,QAAU,GAWzCL,EAAOmc,GAAK,SAAUA,GAClB,MAAK3hB,WAAUhD,QAGfukB,EAAMI,EACCnc,GAHK+b,GAAQ/b,EAAOM,SAAW,GAc1CN,EAAOqF,UAAY,WAEf,MADAoH,KACOzM,GAQXA,EAAOqc,iBAAmB,SAAU9hB,GAChC,MAAKC,WAAUhD,QAGf4jB,EAAoB7gB,EACbyF,GAHIob,GA0Dfpb,EAAOsc,WAAa,SAAUlV,GAC1B,MAAyB,KAArB5M,UAAUhD,OACHyhB,GAEXA,EAAc7R,EACPpH,IASXA,EAAOuc,eAAiB,SAAUH,GAC9B,MAAyB,KAArB5hB,UAAUhD,OACHgjB,GAEPA,EADO4B,EACgBA,EAEAtjB,OAGpBkH,IAoBXA,EAAO4G,YAAc,WACjB,MAAO5G,GAAOqD,OAAOuN,IAAI,SAAUnX,EAAGlC,GAClC,GAAIqkB,IAAcre,KAAMyC,EAAOiH,oBAAoBxN,EAAGlC,GAAI8L,KAAM5J,EAAE8F,MAAOiX,OAAQ/c,EAAE+c,OAAQvf,MAAM+I,EAEjG,OADA4b,GAAWlG,MAAQ1V,EAAOuJ,SAAS9P,EAAGlC,GAC/BqkB,KAIf5b,EAAO6G,gBAAkB,SAAUpN,GAC/BkiB,EAA6BliB,GAAG,IAGpCuG,EAAO8G,YAAc,SAAUrN,GAC3BkiB,EAA6BliB,GAAG,IAGpCuG,EAAO+G,aAAe,SAAUtN,GAC5BuG,EAAO0G,SAAS+P,IAAKhd,EAAE8D,KAAMiZ,OAAQ/c,EAAE+c,UAWpCxW,EAAO+D,OAAOrG,EAAQsG,IAsCjClO,EAAG0mB,SAAW,SAAU9e,EAAQsG,GA8C5B,QAASyY,GAAUhjB,GACf,MAAO3D,GAAG6D,MAAMsE,WAAW/E,KAAKC,IAAI6G,EAAOF,IAAIrG,EAAEqG,EAAIrG,EAAE2b,IAAMpV,EAAOF,IAAIrG,EAAE2b,MAG9E,QAASsH,GAAWjJ,EAAOkJ,EAAYljB,GACnC,GAAImjB,GAAOnJ,EAAM3P,UAAU,YACtBT,KAAK5J,EAAEqa,OAAQhe,EAAGgG,MAAM,MAEzB+P,EAAQ+Q,EAAK/Q,QACZ7N,OAAO,QACPoC,KAAK,QAAS,OACdA,KAAK,OAAQtK,EAAGgG,MAAM,OAAQkE,EAAOuJ,WACrCnJ,KAAK,IAAKJ,EAAOwM,eACjBpM,KAAK,SAAU,EAEhBJ,GAAOqH,eACPwE,EAAM7N,OAAO,SAAS0G,KAAK5O,EAAGgG,MAAM,OAAQkE,EAAOoH,MAAM3N,EAAE8D,QAG3DyC,EAAOoK,aACPwS,EAAKtV,GAAG,QAAStH,EAAO0G,SAG5B5Q,EAAG4C,WAAWkkB,EAAM5c,EAAO4E,sBACtBxE,KAAK,IAAK,SAAU3G,GACjB,GAAIoG,GAAIG,EAAOH,IAAIpG,EAAEoG,EAOrB,OANIgd,KACAhd,GAAKid,EAAY,GAEjB9c,EAAOoK,aAAwBtR,SAATikB,IACtBld,GAAKkd,EAAO,GAETjnB,EAAG6D,MAAMsE,WAAW4B,KAE9BO,KAAK,IAAK,SAAU3G,GACjB,GAAIqG,GAAIE,EAAOF,IAAIrG,EAAEqG,EAAIrG,EAAE2b,GAM3B,OAJI3b,GAAEqG,EAAI,IACNA,GAAK2c,EAAUhjB,IAGZ3D,EAAG6D,MAAMsE,WAAW6B,KAE9BM,KAAK,QAAS0c,GACd1c,KAAK,SAAU,SAAU3G,GACtB,MAAOgjB,GAAUhjB,KAEpB2G,KAAK,OAAQtK,EAAGgG,MAAM,OAAQkE,EAAOuJ,WACrCzL,OAAO,SAAS4G,KAAK5O,EAAGgG,MAAM,OAAQkE,EAAOoH,MAAM3N,EAAE8D,QAE1DzH,EAAG4C,WAAWkkB,EAAK7Q,OAAQ/L,EAAO4E,sBAC7BxE,KAAK,SAAU,GACfkE,SAGT,QAAS0Y,KACL,GAAkBlkB,SAAdgkB,EAAyB,CACzB,GAAIG,GAAejd,EAAOyQ,YAItBqM,GAAY5jB,KAAKW,MADjBmG,EAAOoK,aAAwBtR,SAATikB,EACC/c,EAAOH,IAAIqd,YAC3BH,GACiB/c,EAAO8K,eAAiBmS,EAAe,GAAKF,GAAQE,EAErDjd,EAAO8K,eAAiB,EAAI9K,EAAOmd,cAAgBF,IAG1EH,IAAcld,EAAAA,GAAYgY,MAAMkF,IAA0BM,EAAZN,KAC9CA,EAAYM,IAkIxB,QAASC,GAAY3H,EAAO4H,GACxB,MAAO,YACH,GAAIC,GAAO3nB,EAAGkI,OAAO7C,MACjBuiB,EAAQD,EAAKnd,KAAK,UAAYsV,CAClC,OAAO4H,IAAOE,EAAQA,GAxP9B,GASIV,GATAM,EAAgB,EAChBK,EAA2B,EAE3Bzd,EAASlK,EAAGyd,WAAWzd,EAAG2T,yBAE1BsT,EAAOU,EACPZ,GAAa,EACba,GAAqB,CA4QzB,OAxQA5nB,GAAGmE,SAAS+F,EAAQ,UAAW,WAC3BA,EAAO2d,WACPb,EAAYhkB,SAGhBhD,EAAGmE,SAAS+F,EAAQ,SAAU,WACtBA,EAAOjG,SAAW8iB,IAAea,GACjC5nB,EAAGoI,OAAOE,KAAK,mHAInB4B,EAAO4d,YAGX5d,EAAO4M,SAAW,WACd,GAAI2I,GAASvV,EAAOoQ,aAAatM,UAAU,WACtCT,KAAKrD,EAAOqD,OAEjB2Z,KAEAzH,EACK1J,QACA7N,OAAO,KACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAO,UAAiBA,IAGhCge,EAAOpQ,KAAK,SAAU1L,EAAGlC,GACrB,GAAIkc,GAAQ7d,EAAGkI,OAAO7C,KAEtByhB,GAAWjJ,EAAOlc,EAAGkC,MA8E7BuG,EAAO8S,mBAAqB,WACxB,GAAI8J,GAAO5c,EAAOoQ,aAAatM,UAAU,YACrCuO,EAASrS,EAAOqP,QAAQgD,QAE5B,IAAIrS,EAAOoK,YACHpK,EAAO+F,aACP6W,EAAK3Y,QAAQnO,EAAGE,UAAUK,eAAgB,SAAUoD,GAChD,MAAOuG,GAAO+F,UAAUtM,EAAEoG,KAE9B+c,EAAK3Y,QAAQnO,EAAGE,UAAUI,iBAAkB,SAAUqD,GAClD,OAAQuG,EAAO+F,UAAUtM,EAAEoG,OAG/B+c,EAAK3Y,QAAQnO,EAAGE,UAAUK,gBAAgB,GAC1CumB,EAAK3Y,QAAQnO,EAAGE,UAAUI,kBAAkB,QAGhD,IAAK4J,EAAO4S,aAAaP,GAQrBuK,EAAK3Y,QAAQnO,EAAGE,UAAUI,kBAAkB,OARd,CAC9B,GAAIynB,GAAQxL,EAAO,GACfyL,EAAMzL,EAAO,EAEjBuK,GAAK3Y,QAAQnO,EAAGE,UAAUI,iBAAkB,SAAUqD,GAClD,MAAOA,GAAEoG,EAAIge,GAASpkB,EAAEoG,GAAKie,MAa7C9d,EAAO+d,UAAY,SAAUxjB,GACzB,MAAKC,WAAUhD,QAGfqlB,EAAatiB,EACNyF,GAHI6c,GAMf/mB,EAAGmE,SAAS+F,EAAQ,UAAW,SAAUvG,GACrCuG,EAAO+W,SAAStd,EAAE4J,QAUtBrD,EAAOmd,WAAa,SAAU5iB,GAC1B,MAAKC,WAAUhD,QAGfwI,EAAO+K,kBAAkBxQ,GACzBwiB,EAAOjkB,OACAkH,GAJIA,EAAO+K,qBAOtB/K,EAAOgL,iBAAmB,WACtB,MAAgBlS,UAATikB,GAUX/c,EAAOge,aAAehe,EAAOiL,uBAS7BjL,EAAOie,IAAM,SAAU1jB,GACnB,MAAKC,WAAUhD,QAGfulB,EAAOxiB,EACAyF,GAHI+c,GAMf/c,EAAO2S,YAAc,WACjB,GAAIN,GAASrS,EAAOqP,QAAQgD,QAS5B,QARIrS,EAAOjG,SAAa8iB,IAAca,IAClCrL,EAAO,GAAKA,EAAOzB,IAAI5Q,EAAOjG,SAAS,GACvCsY,EAAO,GAAKA,EAAOzB,IAAI5Q,EAAOjG,SAAS,GAEvCiG,EAAOoQ,aAAatS,OAAO,UACtB9B,KAAKgE,EAAOqP,QAAQgD,OAAOA,KAG7BA,GAgBXrS,EAAOke,kBAAoB,SAAU3jB,GACjC,MAAKC,WAAUhD,QAGfkmB,EAAqBnjB,EACdyF,GAHI0d,GAcf1d,EAAO6G,gBAAkB,SAAUpN,GAC1BuG,EAAOgH,mBAAmBvN,IAC3BuG,EAAOsD,IAAIQ,UAAU,YAChBG,QAAQ,YAAaoZ,EAAY5jB,EAAEic,QACnCzR,QAAQ,UAAWoZ,EAAY5jB,EAAEic,OAAO,KAIrD1V,EAAO8G,YAAc,WACjB9G,EAAOsD,IAAIQ,UAAU,YAChBG,QAAQ,aAAa,GACrBA,QAAQ,WAAW,IAG5BnO,EAAGmE,SAAS+F,EAAQ,WAAY,WAC5B,GAAI7C,GAAMlC,KAAKkjB,WACf,IAAI,cAAgBne,GAAOsQ,SAAU,CACjC,GAAI8N,GAAMpe,EAAOsQ,SAAS5W,UAC1ByD,IAAOihB,EAEX,MAAOjhB,KAGJ6C,EAAO+D,OAAOrG,EAAQsG,IAuCjClO,EAAGuoB,UAAY,SAAU3gB,EAAQsG,GAiI7B,QAAS2E,GAAOlP,EAAGlC,GACf,MAAOyI,GAAOuJ,SAASvN,KAAKvC,EAAGA,EAAEqa,OAAQvc,GAG7C,QAAS+mB,GAASC,EAAahJ,GAC3B,GAAIiJ,GAAO5oB,EAAGwO,IAAIoa,OACb3e,EAAE,SAAUpG,GACT,MAAOuG,GAAOH,IAAIpG,EAAEoG,KAEvBC,EAAE,SAAUrG,GACT,MAAOuG,GAAOF,IAAIrG,EAAEqG,EAAIrG,EAAE2b,MAE7BpM,YAAYyV,GACZC,QAAQC,EACTC,IACAJ,EAAKK,QAAQD,EAGjB,IAAInD,GAAO8C,EAAYvgB,OAAO,QACzBoC,KAAK,QAAS,QACdA,KAAK,SAAUuI,EAChBmW,IACArD,EAAKrb,KAAK,mBAAoB0e,GAGlChpB,EAAG4C,WAAW6c,EAAOzX,OAAO,aAAckC,EAAO4E,sBAE5CxE,KAAK,SAAUuI,GACfvI,KAAK,IAAK,SAAU3G,GACjB,MAAOslB,GAAMP,EAAK/kB,EAAEqa,WAIhC,QAASkL,GAAST,EAAahJ,GAC3B,GAAI0J,EAAa,CACb,GAAIC,GAAOtpB,EAAGwO,IAAI8a,OACbrf,EAAE,SAAUpG,GACT,MAAOuG,GAAOH,IAAIpG,EAAEoG,KAEvBC,EAAE,SAAUrG,GACT,MAAOuG,GAAOF,IAAIrG,EAAEqG,EAAIrG,EAAE2b,MAE7BA,GAAG,SAAU3b,GACV,MAAOuG,GAAOF,IAAIrG,EAAE2b,MAEvBpM,YAAYyV,GACZC,QAAQC,EACTC,IACAM,EAAKL,QAAQD,GAGjBL,EAAYvgB,OAAO,QACdoC,KAAK,QAAS,QACdA,KAAK,OAAQuI,GACbvI,KAAK,IAAK,SAAU3G,GACjB,MAAOslB,GAAMG,EAAKzlB,EAAEqa,WAG5Bhe,EAAG4C,WAAW6c,EAAOzX,OAAO,aAAckC,EAAO4E,sBAE5CxE,KAAK,OAAQuI,GACbvI,KAAK,IAAK,SAAU3G,GACjB,MAAOslB,GAAMG,EAAKzlB,EAAEqa,YAKpC,QAASiL,GAAOtlB,GACZ,OAASA,GAAKA,EAAEtC,QAAQ,QAAU,EAAK,OAASsC,EAGpD,QAAS0lB,GAASC,EAAW7J,GACzB,IAAKvV,EAAOsT,WAAatT,EAAOqf,WAAY,CACxC,GAAIC,GAAmBC,EAAkB,QACrCC,EAAWJ,EAAUthB,OAAO,KAAOwhB,EAEnCE,GAASzhB,UACTyhB,EAAWJ,EAAUphB,OAAO,KAAKoC,KAAK,QAASkf,IAGnD/J,EAAOpQ,KAAK,SAAU1L,EAAGkjB,GACrB,GAAI8C,GAAShmB,EAAEqa,MACX8K,KACAa,EAASA,EAAO9jB,OAAOijB,GAG3B,IAAItb,GAAIkc,EAAS1hB,OAAO,KAAOyhB,EAAkB,KAAO5C,EACpDrZ,GAAEvF,UACFuF,EAAIkc,EAASxhB,OAAO,KAAKoC,KAAK,QAASmf,EAAkB,KAAO5C,IAGpE+C,EAAepc,EAEf,IAAIqc,GAAOrc,EAAEQ,UAAU,UAAY8b,GAC9Bvc,KAAKoc,EAAQ3pB,EAAGgG,MAAM,KAE3B6jB,GAAK9T,QACA7N,OAAO,UACPoC,KAAK,QAASwf,GACdxf,KAAK,IAAKyf,KACVpb,MAAM,eAAgBqb,GACtBrb,MAAM,iBAAkBsb,GACxBzY,GAAG,YAAa,WACb,GAAI0Y,GAAMpqB,EAAGkI,OAAO7C,KACpBglB,GAAQD,GACRE,EAAaF,EAAK1c,KAErBgE,GAAG,WAAY,WACZ,GAAI0Y,GAAMpqB,EAAGkI,OAAO7C,KACpBklB,GAAQH,GACRI,EAAa9c,KAGrBqc,EACKvf,KAAK,KAAM,SAAU3G,GAClB,MAAO3D,GAAG6D,MAAMsE,WAAW+B,EAAOH,IAAIpG,EAAEoG,MAE3CO,KAAK,KAAM,SAAU3G,GAClB,MAAO3D,GAAG6D,MAAMsE,WAAW+B,EAAOF,IAAIrG,EAAEqG,EAAIrG,EAAE2b,OAEjDhV,KAAK,OAAQJ,EAAOuJ,UACpBvN,KAAKqL,EAAa5N,GAEvBkmB,EAAK5T,OAAOzH,YAKxB,QAASob,GAAepc,GACpB,GAAI+c,GAAW/c,EAAExF,OAAO,QAAUwiB,GAAuBviB,QACrDuF,EAAEtF,OAAO,QAAQoC,KAAK,QAASkgB,GAAyBhd,EAAExF,OAAO,QAAUwiB,EAC/ED,GAAS5b,MAAM,UAAW,QAAQrE,KAAK,mBAAoB,MAE3D,IAAImgB,GAAWjd,EAAExF,OAAO,QAAU0iB,GAAuBziB,QACrDuF,EAAEtF,OAAO,QAAQoC,KAAK,QAASogB,GAAyBld,EAAExF,OAAO,QAAU0iB,EAC/ED,GAAS9b,MAAM,UAAW,QAAQrE,KAAK,mBAAoB,OAG/D,QAAS6f,GAAQD,GAIb,MAHAA,GAAIvb,MAAM,eAAgB,IAC1Bub,EAAIvb,MAAM,iBAAkB,IAC5Bub,EAAI5f,KAAK,IAAKqgB,GACPT,EAGX,QAASE,GAAaF,EAAK1c,GACvB,GAAIzD,GAAImgB,EAAI5f,KAAK,MACbN,EAAIkgB,EAAI5f,KAAK,MACbsgB,EAAU1gB,EAAO8R,UAAY9R,EAAOiI,UAAUD,KAC9C2Y,EAAgB,IAAMD,EAAS,IAAM5gB,EAAI,IAAM,EAAM,IAAM,EAC3D8gB,EAAgB,IAAM/gB,EAAI,IAAMG,EAAOwM,cAAgB,IAAM3M,EAAI,IAAMC,CAC3EwD,GAAExF,OAAO,QAAUwiB,GAAuB7b,MAAM,UAAW,IAAIrE,KAAK,IAAKugB,GACzErd,EAAExF,OAAO,QAAU0iB,GAAuB/b,MAAM,UAAW,IAAIrE,KAAK,IAAKwgB,GAG7E,QAASf,KACL,MAAOgB,IAAoBJ,EAG/B,QAASN,GAAQH,GACbA,EAAIvb,MAAM,eAAgBqb,GACrBrb,MAAM,iBAAkBsb,GACxB3f,KAAK,IAAKyf,KAGnB,QAASO,GAAa9c,GAClBA,EAAExF,OAAO,QAAUwiB,GAAuB7b,MAAM,UAAW,QAC3DnB,EAAExF,OAAO,QAAU0iB,GAAuB/b,MAAM,UAAW,QAG/D,QAAS4C,GAAY2Y,EAAKvmB,GAClBuG,EAAOqH,gBACP2Y,EAAIlc,UAAU,SAASQ,SACvB0b,EAAIhiB,OAAO,SAAS0G,KAAK5O,EAAGgG,MAAM,OAAQkE,EAAOoH,MAAM3N,EAAE8D,SAoEjE,QAAS8f,GAAY3H,EAAOoL,EAAWxD,GACnC,MAAO,YACH,GAAIC,GAAO3nB,EAAGkI,OAAO7C,MACjBuiB,EAASD,EAAKnd,KAAK,YAAcsV,GACjC6H,EAAKnd,KAAK,uBAA0B0gB,YAAqBllB,OACrDklB,EAAUC,KAAK,KAAO,OAAUxD,EAAKnd,KAAK,UAAYsV,CAC9D,OAAO4H,IAAOE,EAAQA,GAvX9B,GAeIoB,GACAE,EAhBAkC,EAAqB,EACrBzB,EAAkB,aAClBK,EAAmB,MACnBU,EAAwB,OACxBE,EAAwB,OACxBS,EAAsB,KAEtBjhB,EAASlK,EAAGyd,WAAWzd,EAAG2T,yBAC1BwV,GAAc,EACdwB,EAAaO,EACbH,EAAmB,KACnBf,EAAwBmB,EACxBlB,EAA0BkB,EAC1BxC,EAAe,SACfE,EAAW,GAGXuC,GAAY,CAmYhB,OAjYAlhB,GAAO4E,mBAAmB,KAC1B5E,EAAO+K,kBAAkB,GAEzB/K,EAAO4M,SAAW,WACd,GAAIwS,GAAYpf,EAAOoQ,aACnB+Q,EAAa/B,EAAUtb,UAAU,eAEjCqd,GAAWpjB,UACXojB,EAAa/B,EAAUphB,OAAO,KAAKoC,KAAK,QAAS,cAGrD,IAAImV,GAAS4L,EAAWrd,UAAU,WAAWT,KAAKrD,EAAOqD,QAErDkb,EAAchJ,EACb1J,QACA7N,OAAO,KACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAO,UAAiBA,GAGhC+mB,GAASC,EAAahJ,GAEtByJ,EAAST,EAAahJ,GAEtB4J,EAASC,EAAW7J,IAWxBvV,EAAOgJ,YAAc,SAAUzO,GAC3B,MAAKC,WAAUhD,QAGfinB,EAAelkB,EACRyF,GAHIye,GAcfze,EAAO0e,QAAU,SAAUnkB,GACvB,MAAKC,WAAUhD,QAGfmnB,EAAWpkB,EACJyF,GAHI2e,GAiBf3e,EAAO6e,QAAU,SAAUtkB,GACvB,MAAKC,WAAUhD,QAGfonB,EAAWrkB,EACJyF,GAHI4e,GAef5e,EAAOohB,UAAY,SAAU7mB,GACzB,MAAKC,WAAUhD,QAGfsnB,EAAavkB,EACNyF,GAHI8e,GAYf9e,EAAOqhB,WAAa,SAAU9mB,GAC1B,MAAKC,WAAUhD,QAGfynB,EAAc1kB,EACPyF,GAHIif,GA6Lfjf,EAAOqf,SAAW,SAAU9kB,GACxB,MAAKC,WAAUhD,QAGf0pB,EAAY3mB,EACLyF,GAHIkhB,GAUflhB,EAAOshB,UAAY,SAAU/mB,GACzB,MAAKC,WAAUhD,QAGfipB,EAAalmB,EACNyF,GAHIygB,GAyBfzgB,EAAOuhB,iBAAmB,SAAU/Z,GAChC,MAAKhN,WAAUhD,QAMHgQ,GAKRsY,EAAwBtY,EAAQga,aAAe,GAC/CzB,EAA0BvY,EAAQia,eAAiB,GACnDZ,EAAmBrZ,EAAQ4U,QAAU,IANrC0D,EAAwBmB,EACxBlB,EAA0BkB,EAC1BJ,EAAmB,MAMhB7gB,IAbCwhB,YAAa1B,EACb2B,cAAe1B,EACf3D,OAAQyE,IAwBpB7gB,EAAO6G,gBAAkB,SAAUpN,GAC1BuG,EAAOgH,mBAAmBvN,IAC3BuG,EAAOsD,IAAIQ,UAAU,wBAChBG,QAAQ,YAAaoZ,EAAY5jB,EAAEic,MAAOjc,EAAEqnB,YAC5C7c,QAAQ,UAAWoZ,EAAY5jB,EAAEic,MAAOjc,EAAEqnB,WAAW,KAIlE9gB,EAAO8G,YAAc,WACjB9G,EAAOsD,IAAIQ,UAAU,wBAChBG,QAAQ,aAAa,GACrBA,QAAQ,WAAW,IAG5BnO,EAAGmE,SAAS+F,EAAQ,cAAe,WAC/B,GAAI4G,GAAc5G,EAAO0hB,cACzB,OAAK5C,GAGElY,EAAYgK,IAAI,SAAUtU,GAE7B,MADAA,GAAEwkB,UAAYhC,EACPxiB,IAJAsK,IAQR5G,EAAO+D,OAAOrG,EAAQsG,IA6CjClO,EAAG6rB,UAAY,SAAUjkB,EAAQsG,GAC7B,GAAI4d,GAAgBhsB,EAAG4F,OAAO,MAC1BwE,EAASlK,EAAGiK,cACZ8hB,GAAShc,KAAK,GAAIhD,IAAI,GAmE1B,OAlDA7C,GAAO8hB,KAAO,SAAU/oB,GACpB,MAAKyB,WAAUhD,QAGXuB,EAAE8J,MACFgf,EAAMhf,IAAM9J,EAAE8J,KAEd9J,EAAE8M,OACFgc,EAAMhc,KAAO9M,EAAE8M,MAEZ7F,GARI6hB,GAmBf7hB,EAAO+hB,aAAe,SAAUhpB,GAC5B,MAAKyB,WAAUhD,QAGfoqB,EAAgB7oB,EACTiH,GAHI4hB,GAMf5hB,EAAOgF,UAAY,WACf,GAAIgd,GAAMhiB,EAAOU,YAAYyS,OACzBlW,EAAM+C,EAAOlJ,QAAQyI,QACrBsD,EAAM+e,EAAcI,GACpBC,EAAWL,EAAc3kB,EAU7B,OARK+kB,KAAQ/kB,GAAuB,KAAd4kB,EAAMhf,IACxB7C,EAAOG,OAAO2hB,KAAKD,EAAMhf,IAAIrG,QAAQ,eAAgBqG,GAAKrG,QAAQ,gBAAiBylB,IAC7D,KAAfJ,EAAMhc,KACb7F,EAAOG,OAAO2hB,KAAKD,EAAMhc,KAAKrJ,QAAQ,eAAgBqG,GAAKrG,QAAQ,gBAAiBylB,KAEpFjiB,EAAO8D,UAAU,gBAAgBY,KAAK7B,GACtC7C,EAAO8D,UAAU,iBAAiBY,KAAKud,IAEpCjiB,GAGXA,EAAOqF,UAAY,WACf,MAAOrF,GAAOgF,aAGXhF,EAAO+D,OAAOrG,EAAQsG,IA2BjClO,EAAGosB,UAAY,SAAUxkB,EAAQsG,GAkE7B,QAASme,KAQL,GAAIC,IAAgB,CAKpB,IAJAC,EAASvd,QAAQ,SAAU/I,GACvBqmB,GAA8C,kBAANrmB,MAGvCqmB,EAAe,CAChBpiB,EAAO8D,UAAU,MAAMQ,QACvB,IAAIge,GAAWtiB,EAAOG,OAAO2D,UAAU,MAClCT,KAAKgf,GAENE,EAAYD,EACXzW,QACA7N,OAAO,KAEZukB,GACKniB,KAAK,QAASoiB,GACVV,KAAK,SAAUroB,GACZ,MAAQuG,GAAOyiB,sBAAsBhpB,KAKrD,GAAIkX,GAAS3Q,EAAOG,OAAO2D,UAAU,SAChCT,KAAKqf,IAAe,SAAUjpB,GAC3B,MAAOuG,GAAOkC,cAAczI,KAGhCkpB,EAAWhS,EACV9E,QACA7N,OAAO,QAcZ,OAZA2kB,GACK3kB,OAAO,MACPoC,KAAK,QAASwiB,GACV5kB,OAAO,MACPoC,KAAK,QAASyiB,GACdziB,KAAK,UAAWiiB,EAAS7qB,QACzBsqB,KAAK,SAAUroB,GACZ,MAAOuG,GAAOkC,cAAczI,KAGxCkX,EAAO5E,OAAOzH,SAEPqe,EAGX,QAASD,KACL,GAAII,EAOJ,OALIA,GADAC,IAAWntB,EAAGotB,UACJhjB,EAAOU,YAAYqH,OAAOkb,GAE1BjjB,EAAOU,YAAYmH,IAAIob,GAG9BrtB,EAAGstB,OACLzM,IAAIzW,EAAOlJ,SACXqsB,SAASJ,GACTD,QAAQA,EAAQ9H,KAAK,SAAUxa,EAAG6a,GAC/B,MAAO0H,GAAOK,EAAQ5iB,GAAI4iB,EAAQ/H,OAI9C,QAASgI,GAAW1S,GAChB,GAAI2S,GAAO3S,EAAO4S,QACbzf,UAAU,MAAQ0f,GAClBngB,KAAK,SAAU5J,GACZ,MAAOA,GAAEqa,SAGb2P,EAAWH,EAAKzX,QACf7N,OAAO,MACPoC,KAAK,QAASojB,EAYnB,OAVAnB,GAASvd,QAAQ,SAAU4e,EAAGnsB,GAC1BksB,EAASzlB,OAAO,MACXoC,KAAK,QAASujB,EAAmB,KAAOpsB,GACxCuqB,KAAK,SAAUroB,GACZ,MAAOuG,GAAO4jB,qBAAqBF,EAAGjqB,OAIlD6pB,EAAKvX,OAAOzH,SAELgf,EA5JX,GAAIT,GAAkB,iBAClBW,EAAgB,eAChBG,EAAmB,kBACnBf,EAAkB,iBAClBJ,EAAiB,gBAEjBxiB,EAASlK,EAAGiK,cAEZkjB,EAAQ,GACRZ,KACAe,EAAU,SAAU3pB,GACpB,MAAOA,IAEPspB,EAASntB,EAAGotB,SAqShB,OAnSAhjB,GAAOgF,UAAY,WAKf,MAJAhF,GAAO8D,UAAU,SAASQ,SAE1B+e,EAAWlB,KAEJniB,GAGXA,EAAO4jB,qBAAuB,SAAUF,EAAGjqB,GACvC,MAAsB,kBAANiqB,GACRA,EAAEjqB,GACa,gBAANiqB,GACRjqB,EAAEiqB,GACFA,EAAEloB,OAAO/B,IAKtBuG,EAAOyiB,sBAAwB,SAAUhpB,GAIrC,MAAqB,kBAANA,GACPuG,EAAO6jB,0BAA0BpqB,GAClB,gBAANA,GACRuG,EAAO8jB,0BAA0BrqB,GAAKoa,OAAOpa,EAAEyN,QAG5DlH,EAAO8jB,0BAA4B,SAAU/qB,GAEzC,MAAOA,GAAEgrB,OAAO,GAAGC,cAAgBjrB,EAAE8K,MAAM,IAG/C7D,EAAO6jB,0BAA4B,SAAU9nB,GAEzC,GAAIhD,GAAI8a,OAAO9X,GACXkoB,EAAKlrB,EAAE5B,QAAQ,UACnB,IAAI8sB,GAAM,EAAG,CACT,GAAIC,GAAKnrB,EAAEorB,YAAY,IACvB,IAAID,GAAM,EAAG,CACTnrB,EAAIA,EAAEqrB,UAAUH,EAAK,EAAGC,EACxB,IAAIG,GAAKtrB,EAAE5B,QAAQ,eACfktB,IAAM,IACNtrB,EAAIA,EAAEyD,QAAQ,eAAgB,MAI1C,MAAOzD,IAiGXiH,EAAOqF,UAAY,WACf,MAAOrF,GAAOgF,aAQlBhF,EAAOmT,KAAO,SAAUpa,GACpB,MAAKyB,WAAUhD,QAGfyrB,EAAQlqB,EACDiH,GAHIijB,GA2FfjjB,EAAOskB,QAAU,SAAU/pB,GACvB,MAAKC,WAAUhD,QAGf6qB,EAAW9nB,EACJyF,GAHIqiB,GAkBfriB,EAAOukB,OAAS,SAAUhqB,GACtB,MAAKC,WAAUhD,QAGf4rB,EAAU7oB,EACHyF,GAHIojB,GAefpjB,EAAOujB,MAAQ,SAAUhpB,GACrB,MAAKC,WAAUhD,QAGfurB,EAASxoB,EACFyF,GAHI+iB,GAMR/iB,EAAO+D,OAAOrG,EAAQsG,IA6BjClO,EAAG0uB,SAAW,SAAU9mB,EAAQsG,GA4B5B,QAASme,KACL,GAAIxR,GAAS3Q,EAAOG,OAAO2D,UAAU,OAAS2gB,GACrCphB,KAAKqf,IAAe,SAAUjpB,GAC3B,MAAOuG,GAAOkC,cAAczI,KAGpCirB,EAAY/T,EACP9E,QACA7N,OAAO,OACPoC,KAAK,QAASqkB,EAUvB,OARIE,IACAD,EACK5C,KAAK,SAAUroB,GACZ,MAAOkrB,GAAWlrB,KAI9BkX,EAAO5E,OAAOzH,SACPogB,EAGX,QAAShC,KACL,GAAII,GAAU9iB,EAAOU,YAAYmH,IAAIob,EAErC,OAAOrtB,GAAGstB,OACLzM,IAAIzW,EAAOlJ,SACXqsB,SAASJ,GACTD,QAAQA,EAAQ9H,KAAK,SAAUxa,EAAG6a,GAC/B,MAAO0H,GAAOK,EAAQ5iB,GAAI4iB,EAAQ/H,OAI9C,QAASuJ,GAAYjU,GACjB,GAAIkU,GAAQlU,EAAO4S,QACVzf,UAAU,OAASghB,GACnBzhB,KAAK,SAAU5J,GACZ,MAAOA,GAAEqa,QAYrB,OATA+Q,GAAMhZ,QACD7N,OAAO,OACPoC,KAAK,QAAS0kB,GACdhD,KAAK,SAAUroB,GACZ,MAAOooB,GAAMpoB,KAGrBorB,EAAM9Y,OAAOzH,SAENugB,EA5EX,GAAIhC,GAAkB,gBAClBiC,EAAiB,eACjBlC,EAAkB,gBAClB6B,EAAiB,cAEjBzkB,EAASlK,EAAGiK,cAEZkjB,EAAQ,IACRpB,EAAQ,SAAUpoB,GAAK,MAAO,kDAAoDsrB,KAAKC,UAAUvrB,IACjG2pB,EAAU,SAAU3pB,GACpB,MAAOA,IAEPspB,EAASntB,EAAGotB,UAEZ2B,EAAa,SAAUlrB,GACvB,MAAO,eAAkBmpB,EAAkB,gBAAoBC,EAAkB,KAC7E7iB,EAAOkC,cAAczI,GAAK,cAwJlC,OArJAuG,GAAOgF,UAAY,WAKf,MAJAhF,GAAO8D,UAAU,OAAS2gB,GAAgBngB,SAE1CsgB,EAAYzC,KAELniB,GAuDXA,EAAOqF,UAAY,WACf,MAAOrF,GAAOgF,aAQlBhF,EAAOmT,KAAO,SAAUpa,GACpB,MAAKyB,WAAUhD,QAGfyrB,EAAQlqB,EACDiH,GAHIijB,GAgBfjjB,EAAO8hB,KAAO,SAAUvnB,GACpB,MAAKC,WAAUhD,QAGfqqB,EAAQtnB,EACDyF,GAHI6hB,GAcf7hB,EAAOilB,UAAY,SAAU1qB,GACzB,MAAKC,WAAUhD,QAGfmtB,EAAapqB,EACNyF,GAHI2kB,GAmBf3kB,EAAOukB,OAAS,SAAUhqB,GACtB,MAAKC,WAAUhD,QAGf4rB,EAAU7oB,EACHyF,GAHIojB,GAefpjB,EAAOujB,MAAQ,SAAUhpB,GACrB,MAAKC,WAAUhD,QAGfurB,EAASxoB,EACFyF,GAHI+iB,GAMR/iB,EAAO+D,OAAOrG,EAAQsG,IAuCjClO,EAAGovB,YAAc,SAAUxnB,EAAQsG,GA4C/B,QAASmhB,GAAYC,GACjB,GAAIpN,GAAeoN,EAAQvZ,QAAQ7N,OAAO,IAE1Cga,GACK5X,KAAK,QAASJ,EAAOmX,mBACrB/W,KAAK,YAAailB,GAClBrnB,OAAO,UAAUoC,KAAK,QAAS,SAAU3G,EAAGlC,GACzC,MAAOyI,GAAOoX,aAAe,KAAO7f,IAEvC+P,GAAG,QAAStH,EAAO0G,SACnBtG,KAAK,OAAQJ,EAAOuJ,UACpBnJ,KAAK,IAAK,GACftK,EAAG4C,WAAW0sB,EAASplB,EAAO4E,sBACzBd,UAAU,UAAY9D,EAAOoX,cAC7BhX,KAAK,IAAK,SAAU3G,GACjB,MAAOuG,GAAO2X,QAAQle,KAEzB2G,KAAK,UAAW,SAAU3G,GACvB,MAAQuG,GAAO2X,QAAQle,GAAK,EAAK,EAAI,IAG7CuG,EAAO+X,eAAeC,GAEtBhY,EAAOoY,gBAAgBJ,GAG3B,QAASsN,GAAYF,GACjBtvB,EAAG4C,WAAW0sB,EAASplB,EAAO4E,sBACzBxE,KAAK,YAAailB,GAClBvhB,UAAU,UAAY9D,EAAOoX,cAC7BhX,KAAK,OAAQJ,EAAOuJ,UACpBnJ,KAAK,IAAK,SAAU3G,GACjB,MAAOuG,GAAO2X,QAAQle,KAEzB2G,KAAK,UAAW,SAAU3G,GACvB,MAAQuG,GAAO2X,QAAQle,GAAK,EAAK,EAAI,IAG7CuG,EAAOiY,eAAemN,GACtBplB,EAAOqY,eAAe+M,GAG1B,QAASG,GAAYH,GACjBA,EAAQrZ,OAAOzH,SAGnB,QAASkhB,GAAQ/rB,GACb,GAAIoG,GAAIG,EAAOH,IAAIG,EAAOkC,cAAczI,GAIxC,OAHIme,OAAM/X,KACNA,EAAI,GAEDA,EAGX,QAAS4lB,GAAQhsB,GACb,GAAIqG,GAAIE,EAAOF,IAAIE,EAAOmC,gBAAgB1I,GAI1C,OAHIme,OAAM9X,KACNA,EAAI,GAEDA,EAtGX,GAAIE,GAASlK,EAAGkhB,YAAYlhB,EAAG2T,yBAE3Bic,GAAiB,CAErB1lB,GAAO4E,mBAAmB,IAE1B,IAAIygB,GAAgB,SAAU5rB,GAC1B,MAAO,aAAgB+rB,EAAQ/rB,GAAM,IAAOgsB,EAAQhsB,GAAM,IA2G9D,OAlGAuG,GAAO2lB,cAAgB,SAAUprB,GAC7B,MAAKC,WAAUhD,QAGfkuB,EAAiBnrB,EACVyF,GAHI0lB,GAMf1lB,EAAO4M,SAAW,WACV8Y,GACA1lB,EAAOzD,IAAIlD,QAAQ2G,EAAOyX,OAAQzX,EAAO0X,SAG7C1X,EAAOzD,IAAI8C,OAAOW,EAAOqX,WAAYrX,EAAO8K,cAAgB9K,EAAOuY,yBAEnE,IAAI6M,GAAUplB,EAAOoQ,aAAatM,UAAU,KAAO9D,EAAOmX,mBACrD9T,KAAKrD,EAAOqD,OAAQ,SAAU5J,GAAK,MAAOA,GAAEgd,KAEjD0O,GAAYC,GAEZE,EAAYF,GAEZG,EAAYH,GAEZplB,EAAO8S,sBAiEX9S,EAAOgN,YAAc,aAIrBhN,EAAOiN,YAAc,WAEjBjN,EAAO8S,sBAGJ9S,EAAO+D,OAAOrG,EAAQsG,IA+BjClO,EAAG8vB,eAAiB,SAAUloB,EAAQsG,GAoFlC,QAAS6hB,MACmB/sB,SAApBkH,EAAO8lB,UAA0B9lB,EAAO8M,cACxC9M,EAAO8lB,OAAOlwB,EAAG2S,MAAMQ,UACvB/I,EAAO8lB,SAASzsB,QAAQ0sB,IAAiBC,MAAkB9U,YAAYlR,EAAOwM,cAAe,KAGjGxM,EAAO8lB,SAASzmB,OAAOW,EAAOwM,cAAe,IAC7CxM,EAAOimB,WAAWjmB,EAAOimB,aAAa1d,MAAMvI,EAAO8lB,WAEnD9lB,EAAOimB,aAAatX,OAAO,SAG/B,QAASuX,MACcptB,SAAfkH,EAAOF,KAAqBE,EAAO8M,cACnC9M,EAAOF,EAAElK,EAAG2S,MAAMQ,UAClB/I,EAAOF,IAAIzG,QAAQ2X,IAAYC,MAAaC,YAAYlR,EAAOwM,cAAe,KAGlFxM,EAAOF,IAAIT,OAAOW,EAAOwM,cAAe,IACxCxM,EAAOiS,MAAMjS,EAAOiS,QAAQ1J,MAAMvI,EAAOF,MAEzCE,EAAOiS,QAAQtD,OAAO,QAG1B,QAASwX,GAAeC,EAAO7uB,GAC3B6uB,EAAMnW,WAAWjQ,EAAOsD,KACxB8iB,EAAM9iB,IAAIlD,KAAK,QAASimB,EAAkB,KAAO9uB,GAqLrD,QAAS+uB,KACL,MAAOC,GAAU5qB,OAAO,SAAUyqB,GAC9B,OAAQA,EAAM1V,kBAItB,QAAS8V,KACL,MAAOD,GAAU5qB,OAAO,SAAUyqB,GAC9B,MAAOA,GAAM1V,kBAIrB,QAAS+V,GAAYvuB,GACjB,MAAOA,GAAO0Y,IAAI,SAAUyC,GACxB,MAAOA,GAAErC,aAKjB,QAASA,KACL,MAAOpb,GAAGsH,IAAIupB,EAAYH,MAG9B,QAASP,KACL,MAAOnwB,GAAGsH,IAAIupB,EAAYD,MAG9B,QAASE,GAAYxuB,GACjB,MAAOA,GAAO0Y,IAAI,SAAUyC,GACxB,MAAOA,GAAEpC,aAKjB,QAASA,KACL,MAAOnb,GAAG6D,MAAM0C,IAAIzG,EAAGuH,IAAIupB,EAAYJ,MAAuBtmB,EAAOmS,gBAGzE,QAAS6T,KACL,MAAOlwB,GAAG6D,MAAM0C,IAAIzG,EAAGuH,IAAIupB,EAAYF,MAAwBxmB,EAAOmS,gBAG1E,QAASwU,KACL,MAAOJ,GAAU3V,IAAI,SAAUyC,GAC3B,MAAOA,GAAE7I,aAQjB,QAASoc,KACL,MAAOL,GAAU3V,IAAI,SAAUyC,GAC3B,MAAOA,GAAE5I,aAvVjB,GAcIoc,GAdAR,EAAkB,MAClBS,EAAqC,GAErC9mB,EAASlK,EAAG2T,wBACZ8c,KAEAQ,KAEAC,GAAe,EACfC,GAAc,EAEdC,EAActxB,EAAGwO,IAAIsK,OACrByY,EAAmB,EACnBC,EAA0BN,EAE1BO,GAAsB,CAmY1B,OAjYArnB,GAAOuC,yBACPvC,EAAO4E,mBAAmB,KAE1B9O,EAAGmE,SAAS+F,EAAQ,aAAc,WAG9B,IAAK,GAFDsD,GAAIrI,KAAKqsB,cAEJ/vB,EAAI,EAAGA,EAAIgvB,EAAU/uB,SAAUD,EAAG,CACvC,GAAI6uB,GAAQG,EAAUhvB,EAEtB4uB,GAAeC,EAAO7uB,GAEjB6uB,EAAM1lB,aACP0lB,EAAM1lB,UAAUV,EAAOU,aAEtB0lB,EAAMtvB,SACPsvB,EAAMtvB,MAAMkJ,EAAOlJ,SAGvBsvB,EAAMpiB,WAAWhE,EAAOgE,cACxBoiB,EAAMhiB,IAAIpE,EAAOoE,OACjBgiB,EAAM9V,OAAOtQ,EAAOsQ,UACpB8V,EAAMxhB,mBAAmB5E,EAAO4E,sBAChCwhB,EAAM9S,QAAQtT,EAAOsT,WACrB8S,EAAM/e,YAAYrH,EAAOqH,eAG7B,MAAO/D,KAGXtD,EAAOsS,UAAY,WAIf,IAAK,GAHDD,GAASrS,EAAO2S,cAChBC,EAAe5S,EAAO4S,aAAaP,GAE9B9a,EAAI,EAAGA,EAAIgvB,EAAU/uB,SAAUD,EACpCgvB,EAAUhvB,GAAGoE,OAAO,MACfiX,GACD2T,EAAUhvB,GAAGoE,OAAO0W,IAKhCrS,EAAO2M,cAAgB,WACgB,IAA/B2Z,IAAoB9uB,QAAgB0uB,IACJ,IAAhCM,IAAqBhvB,QAAgBquB,IAErCS,IAAoB9uB,OAAS,IAAM6vB,EACnCrnB,EAAOmR,kCAAkCnR,EAAOsD,IAAKtD,EAAOF,IAAKE,EAAOiS,SAEnEuU,IAAqBhvB,OAAS,GACnCwI,EAAOmR,kCAAkCnR,EAAOsD,IAAKujB,EAASK,IAItElnB,EAAO+M,YAAc,WACkB,IAA/BuZ,IAAoB9uB,SACpBwI,EAAO0R,cAAc,IAAK1R,EAAOiS,QAASjS,EAAOiI,UAAUD,MAC3DhI,EAAOoR,iBAAiB,IAAKpR,EAAOgS,aAAc,MAGlB,IAAhCwU,IAAqBhvB,SACrBwI,EAAO0R,cAAc,KAAM1R,EAAOimB,aAAcjmB,EAAOK,QAAUL,EAAOiI,UAAUH,OAClF9H,EAAOoR,iBAAiB,KAAMpR,EAAOunB,kBAAmB,GAAIvnB,EAAOK,QAAU+mB,KAiCrFpnB,EAAO4M,SAAW,WACd,IAAK,GAAIrV,GAAI,EAAGA,EAAIgvB,EAAU/uB,SAAUD,EAAG,CACvC,GAAI6uB,GAAQG,EAAUhvB,EAEjB6uB,GAAM9iB,KACP6iB,EAAeC,EAAO7uB,GAGtByvB,GACAZ,EAAMzd,OAAO3I,EAAO2I,UAGxByd,EAAMvmB,EAAEG,EAAOH,KAEfumB,EAAM7V,MAAMvQ,EAAOuQ,SAEf6V,EAAM1V,iBACN0V,EAAMtmB,EAAEE,EAAO8lB,UACfM,EAAMnU,MAAMjS,EAAOimB,gBAGnBG,EAAMtmB,EAAEE,EAAOF,KACfsmB,EAAMnU,MAAMjS,EAAOiS,UAGvBmU,EAAMxZ,WAENwZ,EAAMnhB,wBAUdjF,EAAOwnB,sBAAwB,SAAUjtB,GACrC,MAAKC,YAIL6sB,EAAsB9sB,EACfyF,GAJIqnB,GAYfrnB,EAAOynB,aAAe,SAAUltB,GAC5B,MAAKC,WAAUhD,QAGfuvB,EAAgBxsB,EAChBgsB,EAAUzhB,QAAQ,SAAUshB,GACxBA,EAAM5e,QAAQuf,KAEX/mB,GANI+mB,GASf/mB,EAAO8S,mBAAqB,WACxB,IAAK,GAAIvb,GAAI,EAAGA,EAAIgvB,EAAU/uB,SAAUD,EAAG,CACvC,GAAI6uB,GAAQG,EAAUhvB,EACtB6uB,GAAM/W,MAAMrP,EAAOqP,SACnB+W,EAAMtT,uBAQd9S,EAAOunB,gBAAkB,SAAUhtB,EAAG+R,GAClC,MAAK9R,WAAUhD,QAGf2vB,EAAmB5sB,EACnByF,EAAOiI,UAAUH,OAASsf,EAC1BA,EAAuCtuB,SAAZwT,EAAyBwa,EAAqCxa,EACzFtM,EAAOiI,UAAUH,OAASsf,EACnBpnB,GANImnB,GAmCfnnB,EAAO0nB,QAAU,SAAUxvB,GAavB,MAZAquB,GAAYruB,EACZquB,EAAUzhB,QAAQ,SAAUshB,GACxBA,EAAM9lB,OAAON,EAAOM,UACpB8lB,EAAM/lB,MAAML,EAAOK,SACnB+lB,EAAMne,QAAQjI,EAAOiI,WAEjBgf,GACAb,EAAMhf,MAAMpH,EAAOoH,SAGvBgf,EAAM5e,QAAQuf,KAEX/mB,GAQXA,EAAO2nB,SAAW,WACd,MAAOpB,IAUXvmB,EAAO4nB,YAAc,SAAUrtB,GAC3B,MAAKC,WAAUhD,QAGfwvB,EAAezsB,EACRyF,GAHIgnB,GAWfhnB,EAAO6nB,WAAa,SAAUttB,GAC1B,MAAKC,WAAUhD,QAGfyvB,EAAc1sB,EACPyF,GAHIinB,GAYfjnB,EAAO8lB,OAAS,SAAUvrB,GACtB,MAAKC,WAAUhD,QAGfqvB,EAAUtsB,EACHyF,GAHI6mB,SAwBR7mB,GAAOgR,eAePhR,GAAOiR,SAednb,EAAGmE,SAAS+F,EAAQ,WAAY,WAC5B,MAAOlK,GAAG6D,MAAMmD,SAASlH,EAAGsH,IAAIypB,KAAkC3mB,EAAOwQ,kBAS7E1a,EAAGmE,SAAS+F,EAAQ,WAAY,WAC5B,MAAOlK,GAAG6D,MAAM0C,IAAIzG,EAAGuH,IAAIypB,KAAkC5mB,EAAOwQ,kBAGxExQ,EAAO4G,YAAc,WACjB,MAAO2f,GAAUuB,OAAO,SAAUjD,EAAOuB,GAKrC,MAJIY,IACAZ,EAAMzd,OAAO3I,EAAO2I,UAExBkc,EAAMxtB,KAAKgE,MAAMwpB,EAAOuB,EAAMxf,eACvBie,QAIf7kB,EAAO6G,gBAAkB,SAAUpN,GAC/B,IAAK,GAAIsuB,GAAI,EAAGA,EAAIxB,EAAU/uB,SAAUuwB,EAAG,CACvC,GAAI3B,GAAQG,EAAUwB,EACtB3B,GAAMvf,gBAAgBpN,KAI9BuG,EAAO8G,YAAc,SAAUrN,GAC3B,IAAK,GAAIsuB,GAAI,EAAGA,EAAIxB,EAAU/uB,SAAUuwB,EAAG,CACvC,GAAI3B,GAAQG,EAAUwB,EACtB3B,GAAMtf,YAAYrN,KAI1BuG,EAAO+G,aAAe,WAClB1I,QAAQC,IAAI,wDAkBhB0B,EAAOimB,WAAa,SAAUA,GAC1B,MAAKzrB,WAAUhD,QAGf0vB,EAAcjB,EACPjmB,GAHIknB,GAMRlnB,EAAO+D,OAAOrG,EAAQsG,IAkCjClO,EAAGkyB,YAAc,SAAUtqB,EAAQsG,GAG/B,QAASikB,GAAQznB,EAAG6a,GAChB,MAAOzlB,GAAGotB,UAAUhjB,EAAOkC,cAAc1B,GAAIR,EAAOkC,cAAcmZ,IAoDtE,QAAS6M,GAAW7U,GACZ8U,EAAQ9U,GAAG/P,KACX6kB,EAAQ9U,GAAG/P,IAAIgB,eAEZ6jB,GAAQ9U,GAGnB,QAAS+U,KACLztB,OAAO0tB,KAAKF,GAASvX,IAAIsX,GACzBC,KAhEJ,GAQIG,GARAtoB,EAASlK,EAAG8vB,eAAeloB,EAAQsG,GAMnCmkB,KACAI,EAAiBzyB,EAAGuoB,UAEpBmK,EAAc5yB,EAAGotB,UACjByF,EAAaR,CAiIjB,OA/HAjoB,GAAOuC,uBAAuBlL,KAAK,iBAAkB,SACrD2I,EAAO4nB,aAAY,GAEnB5nB,EAAOiT,gBAAkB,WACrB,GACIyV,GADAC,KAEAC,EAAShzB,EAAGstB,OAAOzM,IAAI6R,EACvBE,IACAI,EAAOzF,SAASqF,GAEhBC,GACAG,EAAOC,WAAWJ,EAEtB,IAAIK,GAAUF,EAAO9F,QAAQ9iB,EAAOqD,QAChCskB,EACAmB,EAAQlY,IAAI,SAAUmY,EAAKxxB,GACvB,GAAIyxB,GAAWb,EAAQY,EAAItS,MAAQ8R,EAAevsB,KAAKgE,EAAQA,EAAQgE,EAAY+kB,EAAItS,IAAKlf,EAM5F,OALK4wB,GAAQY,EAAItS,OACbiS,GAAkB,GAEtBP,EAAQY,EAAItS,KAAOuS,EACnBL,EAAKtxB,KAAK0xB,EAAItS,KACPuS,EACFtoB,UAAUV,EAAOU,aACjB5J,OAAO+L,IAAIjN,EAAGmN,QAAQgmB,EAAIjV,SAAUiV,EAAItS,KACxCvU,YAAYlC,EAAOkC,eACnBC,cAAcnC,EAAOmC,iBACrBmR,QAAQtT,EAAOsT,YAI5B3Y,QAAO0tB,KAAKF,GACPxsB,OAAO,SAAU0X,GAAI,MAA2B,KAApBsV,EAAKxxB,QAAQkc,KACzCvO,QAAQ,SAAUuO,GACf6U,EAAW7U,GACXqV,GAAkB,IAE1B1oB,EAAOipB,SAAStB,GACZe,GAAmB1oB,EAAOuH,UAC1BvH,EAAOuH,SAASjP,UA4BxB0H,EAAO/I,MAAQ,SAAUsD,GACrB,MAAKC,WAAUhD,QAGf+wB,EAAiBhuB,EACjB6tB,IACOpoB,GAJIuoB,GAYfvoB,EAAOkpB,eAAiB,SAAU3uB,GAC9B,MAAKC,WAAUhD,QAGf8wB,EAAkB/tB,EAClB6tB,IACOpoB,GAJIsoB,GAgBftoB,EAAOmpB,WAAa,SAAU5uB,GAC1B,MAAKC,WAAUhD,QAGfgxB,EAAcjuB,EACd6tB,IACOpoB,GAJIwoB,GAafxoB,EAAOopB,UAAY,SAAU7uB,GACzB,MAAKC,WAAUhD,QAGfixB,EAAaluB,EACb6tB,IACOpoB,GAJIyoB,GAQfzoB,EAAOipB,SAAWjpB,EAAO0nB,cAClB1nB,GAAO0nB,QAEP1nB,GAmCXlK,EAAGuzB,mBAAqB,SAAU3rB,EAAQsG,GAoCtC,QAAS4I,GAAS+P,GACd,GAAItZ,GAAOimB,GAEX,IAAIC,EAAY5M,GAAa,CACzB,GAAI6M,GAAUC,EAAc9M,EAE5B+M,GAAYF,EAAS7M,EAAYtZ,GAEjCgE,EAAYmiB,EAAS7M,EAAYtZ,IAIzC,QAASimB,KAGL,IAAK,GAFDjmB,MACAsmB,EAAW3pB,EAAOqD,OACb9L,EAAI,EAAGA,EAAIoyB,EAASnyB,SAAUD,EACnC8L,EAAKrD,EAAOkC,cAAcynB,EAASpyB,KAAOyI,EAAOmC,gBAAgBwnB,EAASpyB,GAE9E,OAAO8L,GAGX,QAASkmB,GAAY5M,GACjB,MAAOiN,GAAQjN,GAAYza,YAG/B,QAASunB,GAAc9M,GACnB,GAAI6M,GAAUxpB,EAAOoE,MAChBN,UAAU+lB,EAAclN,IACxB1Y,QAAQ,WAAY,SAAUxK,GAC3B,MAAOqwB,GAAWnN,EAAYljB,KAEjCwK,QAAQ,aAAc,SAAUxK,GAC7B,MAAOswB,GAAapN,EAAYljB,KAEnC2G,KAAK,QAAS,SAAU3G,GACrB,GAAIuwB,GAAiBJ,EAAQjN,GAAYpf,KACrC0sB,EAAcn0B,EAAG6D,MAAM2D,SAASssB,EAAQjN,GAAYza,YAAYzI,IAChEywB,EAAcF,EAAiB,IAAMC,CAOzC,OANIH,GAAWnN,EAAYljB,KACvBywB,GAAe,aAEfH,EAAapN,EAAYljB,KACzBywB,GAAe,eAEZA,GAEf,OAAOV,GAGX,QAASK,GAAclN,GACnB,MAAO,UAAYA,EAAa,MAAQiN,EAAQjN,GAAYpf,KAGhE,QAASusB,GAAWnN,EAAYljB,GAC5B,MAAOuG,GAAO+F,aAAe/F,EAAO+F,UAAUokB,EAAOxN,EAAYljB,IAGrE,QAASswB,GAAapN,EAAYljB,GAC9B,MAAOuG,GAAO+F,cAAgB/F,EAAO+F,UAAUokB,EAAOxN,EAAYljB,IAGtE,QAAS0wB,GAAOxN,EAAYljB,GACxB,MAAOmwB,GAAQjN,GAAYza,YAAYzI,GAG3C,QAASmwB,GAAQzU,GACb,MAAOiV,GAAUjV,GAGrB,QAASuU,GAAYF,EAAS7M,EAAYtZ,GACtC,GAAIgnB,GAAQb,EACP1rB,OAAO,QACPsC,KAAK,OAAQ,WACV,GAAIkqB,GAAc10B,EAAGkI,OAAO7C,MAAMmF,KAAK,OACvC,OAAIkqB,GACOA,EAEJ,SAEVhjB,GAAG,QAAS,SAAU7N,GACnB,MAAOuG,GAAO0G,QAAQjN,EAAGkjB,IAGjC7mB,GAAG4C,WAAW2xB,EAAOrqB,EAAO4E,sBAAsBxE,KAAK,OAAQ,SAAU3G,EAAGlC,GACxE,MAAOyI,GAAOuJ,SAASlG,EAAKumB,EAAQjN,GAAYza,YAAYzI,IAAKlC,KAYzE,QAAS8P,GAAYmiB,EAAS7M,EAAYtZ,GAClCrD,EAAOqH,eACPmiB,EAAQ1lB,UAAU,SAASY,KAAK,SAAUjL,GACtC,GAAIgd,GAAM0T,EAAOxN,EAAYljB,GACzB8F,EAAQ8D,EAAKoT,EACjB,OAAOzW,GAAOoH,SAASqP,IAAKA,EAAKlX,MAAOA,MAxIpD,GAAIS,GAASlK,EAAGuS,WAAWvS,EAAGiK,cAE9BC,GAAOkJ,cAAc,SAAUzP,GAC3B,MAAOA,IAAK,GAGhB,IACI8wB,GADAC,EAAW50B,EAAG60B,IAAIhP,OAGlB2O,IAsOJ,OApOApqB,GAAOgF,UAAY,WACfhF,EAAOqE,UACP,KAAK,GAAIsY,GAAa,EAAGA,EAAayN,EAAU5yB,SAAUmlB,EAAY,CAClE,GAAI+N,GAAS1qB,EAAOoE,MAAMpG,OAAO,KAC5BoC,KAAK,QAAS,QAAUuc,GAEzB6M,EAAUkB,EAAO5mB,UAAU,KAAO8lB,EAAQjN,GAAYpf,MACrD8F,KAAKumB,EAAQjN,GAAYtZ,MACzBwI,QACA7N,OAAO,KACPoC,KAAK,QAASwpB,EAAQjN,GAAYpf,KAEvCisB,GACKxrB,OAAO,QACPoC,KAAK,OAAQ,SACbA,KAAK,IAAKoqB,GAEfhB,EAAQxrB,OAAO,SAEf4O,EAAS+P,GAEb4N,GAAkB,GA2FtBvqB,EAAO0G,QAAU,SAAUjN,EAAGkjB,GAC1B,GAAIgO,GAAiBf,EAAQjN,GAAYza,YAAYzI,EACrD3D,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAOgvB,GACd3qB,EAAOsF,iBAcftF,EAAOqF,UAAY,WACf,IAAK,GAAIsX,GAAa,EAAGA,EAAayN,EAAU5yB,SAAUmlB,EACtD/P,EAAS+P,GACL4N,GACAvqB,EAAOoE,MAAMN,UAAU,KAAO8lB,EAAQjN,GAAYpf,KAAO,SAAS6C,KAAK,IAAKoqB,EAGpFD,IAAkB,GAuBtBvqB,EAAO4qB,eAAiB,SAAUC,EAAMttB,EAAM2E,GAC1C,IAAK,GAAI3K,GAAI,EAAGA,EAAI6yB,EAAU5yB,SAAUD,EACpC,GAAI6yB,EAAU7yB,GAAGgG,OAASA,EAGtB,MAFA6sB,GAAU7yB,GAAG8L,KAAOwnB,EACpBT,EAAU7yB,GAAG2K,YAAcA,EACpBlC,CAIf,OADAoqB,GAAU/yB,MAAMkG,KAAMA,EAAM8F,KAAMwnB,EAAM3oB,YAAaA,IAC9ClC,GASXA,EAAO8qB,WAAa,SAAUA,GAG1B,MAFAN,GAASM,WAAWA,GACpBP,GAAkB,EACXvqB,GAYXA,EAAO+qB,SAAW,WACd,MAAOX,IAUXpqB,EAAOgrB,QAAU,WACb,MAAOR,IAQXxqB,EAAOirB,cAAgB,SAAU1tB,GAG7B,IAAK,GAFDwtB,MAEKxzB,EAAI,EAAGA,EAAI6yB,EAAU5yB,SAAUD,EAAG,CACvC,GAAIkc,GAAQ2W,EAAU7yB,EAClBkc,GAAMlW,OAASA,GACfwtB,EAAS1zB,KAAKoc,GAMtB,MAFA2W,GAAYW,EAEL/qB,GAGJA,EAAO+D,OAAOrG,EAAQsG,IA6CjClO,EAAGo1B,cAAgB,SAAU/qB,EAAM6D,GAwC/B,QAASmnB,KAKL,MAJAjd,GAAKlO,EAAOlC,OAAO,KAAOstB,GACtBld,EAAGnQ,UACHmQ,EAAKlO,EAAOoE,MAAMpG,OAAO,KAAKoC,KAAK,QAASgrB,IAEzCld,EAGX,QAASmd,KACL,GAAIhoB,GAAOioB,GAEXC,GAAQzmB,QAAQ,SAAU0mB,GACtB,GAAIC,GAAQC,EAASF,EAAOnoB,GAExBsoB,EAASF,EAAM3tB,OAAO,UAAYsZ,EAElCuU,GAAO5tB,UACP4tB,EAASF,EAAMztB,OAAO,UACjBoC,KAAK,QAASgX,GACdhX,KAAK,IAAK,GACVA,KAAK,OAAQJ,EAAOuJ,UACpBjC,GAAG,QAAStH,EAAO0G,UAG5B5Q,EAAG4C,WAAWizB,EAAQ3rB,EAAO4E,sBACxBxE,KAAK,IAAK,SAAU3G,GACjB,MAAOuG,GAAO2X,QAAQle,KAG9BuG,EAAO+X,eAAe0T,GAEtBzrB,EAAOoY,gBAAgBqT,KAI/B,QAASH,KACL,GAAIjoB,KAIJ,OAHArD,GAAOqD,OAAOyB,QAAQ,SAAU8mB,GAC5BvoB,EAAKrD,EAAOkC,cAAc0pB,IAAUA,IAEjCvoB,EAGX,QAASqoB,GAASF,EAAOnoB,GACrB,GAAIwoB,GAAkB1U,EAAoB,IAAMrhB,EAAG6D,MAAM2D,SAASkuB,EAAMjuB,MAEpEkuB,EAAQvd,EAAGpQ,OAAO,KAAOhI,EAAG6D,MAAM2D,SAASkuB,EAAMjuB,MAUrD,OARIkuB,GAAM1tB,UACN0tB,EAAQvd,EAAGlQ,OAAO,KACboC,KAAK,QAASyrB,GACdzrB,KAAK,YAAa,aAAeorB,EAAM3rB,EAAI,IAAM2rB,EAAM1rB,EAAI,MAGpE2rB,EAAMG,MAAMvoB,EAAKmoB,EAAMjuB,OAEhBkuB,EAWX,QAASK,KACL,GAAIzoB,GAAOioB,GAEXC,GAAQzmB,QAAQ,SAAU0mB,GACtB,GAAIC,GAAQC,EAASF,EAAOnoB,GAExBsoB,EAASF,EAAM3tB,OAAO,UAAYsZ,EAEtCthB,GAAG4C,WAAWizB,EAAQ3rB,EAAO4E,sBACxBxE,KAAK,IAAK,SAAU3G,GACjB,MAAOuG,GAAO2X,QAAQle,KAEzB2G,KAAK,OAAQJ,EAAOuJ,UAEzBvJ,EAAOiY,eAAewT,GAEtBzrB,EAAOqY,eAAeoT,KA1H9B,GAKIvd,GALAkd,EAAuB,iBACvBjU,EAAoB,OACpBC,EAAe,SAEfpX,EAASlK,EAAGkhB,YAAYlhB,EAAGiK,eAE3BwrB,IAwJJ,OAtJAvrB,GAAO4E,mBAAmB,KAE1B5E,EAAOwX,oBAAoB,SAAU/d,GACjC,MAAOA,GAAE8F,QAWbS,EAAOwrB,MAAQ,SAAUjuB,EAAMsC,EAAGC,GAE9B,MADAyrB,GAAQl0B,MAAMkG,KAAMA,EAAMsC,EAAGA,EAAGC,EAAGA,IAC5BE,GAGXA,EAAOgF,UAAY,WASf,MARAkJ,GAAKid,IAELnrB,EAAOzD,IAAI8C,OAAOW,EAAOqX,WAAYrX,EAAOK,QAAUL,EAAOuY,0BAE7D8S,IAEArrB,EAAO8S,qBAEA9S,GA8DXA,EAAOqF,UAAY,WAKf,MAJAymB,KAEA9rB,EAAO8S,qBAEA9S,GAuBXA,EAAOzB,MAAQ,SAAUwtB,GACrB,GAAIA,EAAM,CACN,GAAIC,GAAShsB,EAAOlC,OAAO,KAAOhI,EAAGE,UAAUE,kBAE3C81B,GAAOjuB,UACPiuB,EAAShsB,EAAOoE,MACXpG,OAAO,KACPoC,KAAK,QAAStK,EAAGE,UAAUE,mBAGpC,IAAI+1B,GAAYD,EAAOhuB,OAAO,QACzBoC,KAAK,IAAK,IACVA,KAAK,IAAK,GAEf4rB,GACKhuB,OAAO,QACPoC,KAAK,QAASJ,EAAOK,SACrBD,KAAK,SAAUJ,EAAOM,UACtBgH,GAAG,YAAa,WACb,GAAIqK,GAAW/b,EAAGs2B,MAAMF,EAAOhpB,QAC3BjI,EAAM4W,EAAS,GAAK,KAAOA,EAAS,EACxCsa,GAAUvnB,KAAK3J,SAGvBiF,GAAO8D,UAAU,UAAUQ,QAG/B,OAAOtE,IAGXA,EAAO+D,OAAO5D,EAAM6D,GAEbhE,GA+BXlK,EAAGq2B,SAAW,SAAUzuB,EAAQsG,GA6B5B,QAASooB,KACL,IAAK9hB,GAAM+hB,EAAW,CAClB,GAAIha,GAASzc,EAAGyc,OAAOia,EAAUtsB,EAAO2W,oBACpCtE,GAAO,GAAK,IACZA,EAAO,GAAK,GAEhB/H,EAAK1U,EAAG2S,MAAMQ,SAAS1P,OAAOgZ,GACzBhT,OAAO,EAAGW,EAAOmI,mBAE1B+C,EAAO3C,MAAM+B,GAGjB,QAASiiB,KACL,GAAIC,GAAQte,EAAGpQ,OAAO,SAEtBsuB,KAEII,EAAMzuB,UACNyuB,EAAQte,EAAGlQ,OAAO,KAAKoC,KAAK,QAAS,QAChCA,KAAK,YAAa,gBAAkBJ,EAAOoI,kBAAoB,MAGxEtS,EAAG4C,WAAW8zB,EAAOxsB,EAAO4E,sBACvB5I,KAAKkP,GAkCd,QAASuhB,KACLve,EAAGpK,UAAU,UACRhG,OAAO,kBACPwG,SAEL4J,EAAGpK,UAAU,UACR9F,OAAO,QACPoC,KAAK,QAAS,aACdA,KAAK,KAAM,GACXA,KAAK,KAAM,GACXA,KAAK,KAAM,GACXA,KAAK,KAAM,WACR,OAAQJ,EAAOoI,oBAI3B,QAASqE,KACL6f,EAAWtsB,EAAOqD,OAElBkpB,IACAE,GAEA,IAAInJ,GAAOpV,EAAGpK,UAAU,KAAO4oB,GAC1BrpB,KAAKipB,EAEVlT,GAAekK,GACfhK,EAAegK,GACfjK,EAAeiK,GAGnB,QAASlK,GAAekK,GACpB,GAAIG,GAAWH,EAAKzX,QACf7N,OAAO,KACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAOm1B,GAAe,KAAOn1B,GAGrCksB,GAASzlB,OAAO,QAAQoC,KAAK,QAAS,GAEtCwZ,EAAa6J,GACb/I,EAAa4I,GAGjB,QAAShK,GAAegK,GACpBA,EAAKvX,OAAOzH,SAGhB,QAASqoB,KACL,GAAIxsB,GAAOmK,EAAG,EACd,OAAQnK,OAAUP,EAAAA,IAAYO,IAASA,EAAQmK,EAAG,GAAKnK,EAG3D,QAASkZ,GAAeiK,GACpB,GAEIhjB,GAFAtG,EAAIsyB,EAAS90B,MAMb8I,GAHCssB,EAGQA,GAFC5sB,EAAOoI,mBAAqBpO,EAAI,GAAK+iB,GAAQ/iB,EAMtD6yB,IACDC,EAAgBxsB,EAAS,EAG7B,IAAIysB,GAAOzJ,EAAKljB,KAAK,YAAa,SAAU3G,EAAGlC,GACvC,MAAO,iBAAmBA,EAAI,GAAKwlB,EAAOxlB,EAAI+I,GAAU,MACzDxC,OAAO,QACTsC,KAAK,SAAUE,GACfF,KAAK,OAAQJ,EAAOuJ,UACpBjC,GAAG,QAASZ,GACZzC,QAAQ,aAAc,SAAUxK,GAC7B,MAAQuG,GAAO+F,aAAgBinB,EAAcvzB,IAAK,IAErDwK,QAAQ,WAAY,SAAUxK,GAC3B,MAAQuG,GAAO+F,YAAeinB,EAAcvzB,IAAK,GAGzD3D,GAAG4C,WAAWq0B,EAAM/sB,EAAO4E,sBACtBxE,KAAK,QAAS,SAAU3G,GACrB,MAAOP,MAAKC,IAAIwzB,IAAcriB,EAAGtK,EAAOmC,gBAAgB1I,OAE3D2G,KAAK,YAAa6sB,GAEvBtT,EAAa2J,GACb5I,EAAa4I,GAGjB,QAAS3J,GAAa2J,GACdtjB,EAAOqH,gBACPic,EAAKxf,UAAU,SAASQ,SACxBgf,EAAKtlB,OAAO,SAAS0G,KAAK1E,EAAOoH,UAIzC,QAASwS,GAAa6J,GACdzjB,EAAOmH,eACPsc,EAASzlB,OAAO,QACXsJ,GAAG,QAASZ,GAEjB1G,EAAOktB,oBACPzJ,EAASzlB,OAAO,QACXoC,KAAK,QAAS+sB,GACd7lB,GAAG,QAASZ,GAIzB,QAASgU,GAAa4I,GAClB,GAAItjB,EAAOmH,cAAe,CACtB,GAAIimB,GAAM9J,EAAKxlB,OAAO,QACjBsC,KAAK,IAAKitB,GACVjtB,KAAK,IAAK0sB,GACV1sB,KAAK,KAAMktB,GACXhmB,GAAG,QAASZ,GACZtG,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAOm1B,GAAe,KAAOn1B,IAEhCmN,KAAK,SAAUjL,GACZ,MAAOuG,GAAOkH,QAAQzN,IAE9B3D,GAAG4C,WAAW00B,EAAKptB,EAAO4E,sBACrBxE,KAAK,YAAa6sB,GAE3B,GAAIjtB,EAAOktB,mBAAoB,CAC3B,GAAIK,GAAWjK,EAAKxlB,OAAO,IAAMqvB,GACxB/sB,KAAK,IAAKJ,EAAOmI,iBAAmBqlB,GACpCptB,KAAK,IAAK0sB,GACV1sB,KAAK,cAAe,OACpBkH,GAAG,QAASZ,GACZtG,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAO41B,GAAoB,KAAO51B,IAErCmN,KAAK,SAAUjL,GACZ,MAAOuG,GAAOoH,QAAQ3N,IAElC3D,GAAG4C,WAAW60B,EAAUvtB,EAAO4E,sBAC1BxE,KAAK,YAAa6sB,IAiB/B,QAASvmB,GAAQjN,GACbuG,EAAO0G,QAAQjN,GAGnB,QAASwzB,GAAWxzB,GAChB,GAAIoG,GAAIyK,EAAGtK,EAAO2W,oBAAoBld,IAClCg0B,EAAKd,IACL5zB,EAAI8G,EAAI4tB,EAAKA,EAAK5tB,CACtB,OAAO,aAAe9G,EAAI,MAgH9B,QAASi0B,GAAevzB,GACpB,MAAOuG,GAAO+F,UAAU/F,EAAO0W,kBAAkBjd,IAxWrD,GAAIyU,GAiBA5D,EAEA+hB,EAIAC,EArBAe,EAAgB,GAChBP,EAAgB,GAChBD,GAAmB,EACnBS,EAAY,SACZE,EAAqB,EAErBzQ,EAAO,EAEP6P,GAAkB,EAClBF,EAAe,MACfS,EAAoB,WACpBO,GAAoB,EAEpB1tB,EAASlK,EAAG6f,SAAS7f,EAAG6R,YAAY7R,EAAGuS,WAAWvS,EAAGiK,iBAMrDmL,EAAStV,EAAGwO,IAAIsK,OAAOC,OAAO,SAsVlC,OAlVA3O,GAAO2tB,QAAU3tB,EAAO4W,IA4BxB5W,EAAOgF,UAAY,WASf,MARAhF,GAAOqE,WAEP6J,EAAKlO,EAAOoE,MACPpG,OAAO,KACPoC,KAAK,YAAa,aAAeJ,EAAOiI,UAAUD,KAAO,IAAMhI,EAAOiI,UAAUJ,IAAM,KAE3F4E,IAEOzM,GAGXA,EAAOoH,MAAM,SAAU3N,GACnB,MAAOuG,GAAO0W,kBAAkBjd,GAAK,KAAOuG,EAAO2W,oBAAoBld,KAG3EuG,EAAOkH,MAAMlH,EAAO0W,mBAOpB1W,EAAOH,EAAI,SAAUA,GACjB,MAAKrF,WAAUhD,QAGf8S,EAAKzK,EACEG,GAHIsK,GAyJftK,EAAOktB,iBAAmB,SAAU3yB,GAChC,MAAKC,WAAUhD,QAGfk2B,EAAoBnzB,EACbyF,GAHI0tB,GAiBf1tB,EAAOqF,UAAY,WAEf,MADAoH,KACOzM,GAeXA,EAAOuQ,MAAQ,WACX,MAAOrF,IAaXlL,EAAO4tB,eAAiB,SAAUtqB,GAC9B,MAAK9I,WAAUhD,QAGfo1B,EAAkBtpB,EACXtD,GAHI4sB,GAWf5sB,EAAOie,IAAM,SAAU3a,GACnB,MAAK9I,WAAUhD,QAGfulB,EAAOzZ,EACAtD,GAHI+c,GAYf/c,EAAOqK,SAAW,SAAU9P,GACxB,MAAKC,WAAUhD,QAGf60B,EAAY9xB,EACLyF,GAHIqsB,GAYfrsB,EAAO6tB,aAAe,SAAUnzB,GAC5B,MAAKF,WAAUhD,QAGf61B,EAAgB3yB,EACTsF,GAHIqtB,GAYfrtB,EAAO8tB,aAAe,SAAUpzB,GAC5B,MAAKF,WAAUhD,QAGfs1B,EAAgBpyB,EAChBmyB,GAAmB,EACZ7sB,GAJI8sB,GAaf9sB,EAAO+tB,kBAAoB,SAAUrzB,GACjC,MAAKF,WAAUhD,QAGfg2B,EAAqB9yB,EACdsF,GAHIwtB,GAURxtB,EAAO+D,OAAOrG,EAAQsG,IAiBjClO,EAAGyR,OAAS,WAiGR,QAASymB,KACL,MAAOjR,GAAOkR,EAjGlB,GAGI7hB,GAUA8B,EAbAggB,EAAY,EAEZ/sB,KAEAmJ,EAAK,EACL+D,EAAK,EACL4f,EAAc,GACdlR,EAAO,EACPoR,GAAc,EACdC,EAAe,IACfC,EAAa,GACbC,GAAiB,CA0LrB,OAtLAntB,GAAQzD,OAAS,SAAUsV,GACvB,MAAKxY,WAAUhD,QAGf4U,EAAU4G,EACH7R,GAHIiL,GAMfjL,EAAQ7I,OAAS,WACb8T,EAAQhI,MAAMtG,OAAO,eAAewG,SACpC4J,EAAK9B,EAAQhI,MAAMpG,OAAO,KACrBoC,KAAK,QAAS,aACdA,KAAK,YAAa,aAAekK,EAAK,IAAM+D,EAAK,IACtD,IAAIzH,GAAcwF,EAAQxF,cAEtB2nB,EAAYrgB,EAAGpK,UAAU,oBACxBT,KAAKuD,GACLiF,QACA7N,OAAO,KACPoC,KAAK,QAAS,kBACdkH,GAAG,YAAa,SAAU7N,GACvB2S,EAAQvF,gBAAgBpN,KAE3B6N,GAAG,WAAY,SAAU7N,GACtB2S,EAAQtF,YAAYrN,KAEvB6N,GAAG,QAAS,SAAU7N,GACnBA,EAAExC,MAAM8P,aAAatN,IAG7ByU,GAAGpK,UAAU,oBACRG,QAAQ,UAAW,SAAUxK,GAC1B,MAAOA,GAAExC,MAAM+P,mBAAmBvN,KAGtCmN,EAAYf,KAAK/P,EAAGgG,MAAM,cAC1ByyB,EACKvwB,OAAO,QACPoC,KAAK,KAAM,GACXA,KAAK,KAAM6tB,EAAc,GACzB7tB,KAAK,KAAM6tB,GACX7tB,KAAK,KAAM6tB,EAAc,GACzB7tB,KAAK,eAAgB,GACrBA,KAAK,mBAAoBtK,EAAGgG,MAAM,cAClCsE,KAAK,SAAUtK,EAAGgG,MAAM,UAE7ByyB,EACKvwB,OAAO,QACPoC,KAAK,QAAS6tB,GACd7tB,KAAK,SAAU6tB,GACf7tB,KAAK,OAAQ,SAAU3G,GAAI,MAAOA,GAAIA,EAAEic,MAAQ,SAGzD6Y,EAAUvwB,OAAO,QACR0G,KAAK5O,EAAGgG,MAAM,SACdsE,KAAK,IAAK6tB,EAAcC,GACxB9tB,KAAK,IAAK,WACP,MAAO6tB,GAAc,GAAKhzB,KAAKuzB,aAAevzB,KAAKuzB,aAAe,IAAM,EAAI,GAGxF,IAAIC,GAA6B,EAC7BC,EAAM,CACVH,GAAUnuB,KAAK,YAAa,SAAU3G,EAAGlC,GACrC,GAAI42B,EAAa,CACb,GAAIQ,GAAc,aAAeF,EAA6B,IAAMC,EAAMV,IAAqB,IAC3FY,EAAcN,KAAmB,EAAOrzB,KAAK4zB,UAAUxuB,MAAQ0c,EAAOsR,CAQ1E,OANKI,GAA6BG,GAAcR,KAC1CM,EACFD,EAA6B,GAE7BA,GAA8BG,EAE3BD,EAGP,MAAO,eAAiBp3B,EAAIy2B,IAAqB,OAa7D7sB,EAAQtB,EAAI,SAAUA,GAClB,MAAKrF,WAAUhD,QAGf8S,EAAKzK,EACEsB,GAHImJ,GAUfnJ,EAAQrB,EAAI,SAAUA,GAClB,MAAKtF,WAAUhD,QAGf6W,EAAKvO,EACEqB,GAHIkN,GAUflN,EAAQ8c,IAAM,SAAUA,GACpB,MAAKzjB,WAAUhD,QAGfulB,EAAOkB,EACA9c,GAHI4b,GAUf5b,EAAQ2tB,WAAa,SAAU7rB,GAC3B,MAAKzI,WAAUhD,QAGfy2B,EAAchrB,EACP9B,GAHI8sB,GAUf9sB,EAAQ4tB,WAAa,SAAUx0B,GAC3B,MAAKC,WAAUhD,QAGf22B,EAAc5zB,EACP4G,GAHIgtB,GAUfhtB,EAAQ6tB,YAAc,SAAUz0B,GAC5B,MAAKC,WAAUhD,QAGf42B,EAAe7zB,EACR4G,GAHIitB,GAUfjtB,EAAQytB,UAAY,SAAUr0B,GAC1B,MAAKC,WAAUhD,QAGf62B,EAAa9zB,EACN4G,GAHIktB,GAWfltB,EAAQ8tB,cAAgB,SAAU10B,GAC9B,MAAKC,WAAUhD,QAGf82B,EAAiB/zB,EACV4G,GAHImtB,GAMRntB,GAmCXrL,EAAGo5B,YAAc,SAAUxxB,EAAQsG,GAuJ/B,QAASmrB,GAAmBC,EAAWjc,GACnC,GAAIkc,GAAUrvB,EAAO8D,UAAU,2BAA2BnI,OAAO,WAC7D,MAAOyzB,GAAUx5B,EAAGkI,OAAO7C,SAE3Bq0B,EAAUC,EAAQpc,MACtBoc,GAAQpc,KAAKja,KAAKs2B,IAAIrc,EAAM,IAC5Brd,EAAG4C,WAAW22B,EAASrvB,EAAO4E,sBAAsBxE,KAAK,IAAKmvB,GAC9DA,EAAQpc,KAAKmc,GAuBjB,QAASG,GAAe9zB,GACpB,GAAI0zB,GAAUrvB,EAAO8D,UAAU,2BAA2BqB,KAAK,SAAU1L,GACrEwB,KAAKwK,SAAW9J,GAAUA,EAAO2D,WAAW7F,EAAEgd,MAGlD3gB,GAAG4C,WAAW22B,EAASrvB,EAAO4E,sBAAsBxE,KAAK,IAAKmvB,GAzLlE,GAAIvvB,GAASlK,EAAG2T,wBACZ8lB,EAAU35B,EAAGwO,IAAIsrB,SAEjBC,EAAqB,SAAUl2B,GAAK,MAAOA,GAAE8F,OAE7CqwB,EAAsB5vB,EAAOkC,aACjClC,GAAOkC,YAAY,SAAUzI,GAAK,MAAOm2B,GAAoBn2B,GAAG,KAChEuG,EAAOmC,cAAc,SAAU1I,GAAK,MAAOm2B,GAAoBn2B,GAAG,KAClEuG,EAAOkJ,cAAc,WAAc,MAAOlJ,GAAOuD,YAEjD,IAAIssB,GAAW,SAAUp2B,GACrB,MAAO,aAAeuG,EAAOH,IAAIG,EAAOkC,cAAczI,IAAM,IACtCuG,EAAOF,IAAIE,EAAOmC,gBAAgB1I,IAAM,KAG9Dq2B,EAAc,EACdC,EAAmB,EACnBC,EAAc,CAwMlB,OAtMAT,GAAQpc,KAAK,SAAU1Z,GACnB,MAAKk2B,GAAmBl2B,GAEbwB,KAAKwK,SACLvM,KAAKs2B,IAAIO,EAAkB,GAE3B72B,KAAKs2B,IAAIM,EAAa,GAJtBE,IAQfl6B,EAAGmE,SAAS+F,EAAQ,UAAW,SAAUrE,GACrC,MAAKnB,WAAUhD,OAIRwI,EAAOiwB,SAASn6B,EAAG4F,QAAQgE,2BAA2B/D,IAHlDqE,EAAOiwB,aAMtBjwB,EAAO4M,SAAW,WACd,GAAIyiB,GAAUrvB,EAAOoQ,aAAatM,UAAU,eACvCT,KAAKrD,EAAOqD,OAEjBgsB,GACKxjB,QACJ7N,OAAO,QACHoC,KAAK,QAAS,UACdA,KAAK,UAAW,GAChBA,KAAK,OAAQJ,EAAOuJ,UACpBnJ,KAAK,YAAayvB,GAEvB/5B,EAAG4C,WAAW22B,EAASrvB,EAAO4E,sBACzBxE,KAAK,UAAW,SAAU3G,GAAK,MAAOk2B,GAAmBl2B,GAAK,EAAI,IAClE2G,KAAK,OAAQJ,EAAOuJ,UACpBnJ,KAAK,YAAayvB,GAClBzvB,KAAK,IAAKmvB,GAEfz5B,EAAG4C,WAAW22B,EAAQtjB,OAAQ/L,EAAO4E,sBAChCxE,KAAK,UAAW,GAAGkE,UAU5BtE,EAAOkwB,kBAAoB,SAAUC,GACjC,MAAK31B,WAAUhD,QAGfm4B,EAAqBQ,EACdl1B,MAHI00B,GAaf3vB,EAAO0vB,OAAS,SAAUU,GACtB,MAAK51B,WAAUhD,QAGf+3B,EAAQa,KAAKA,GACNpwB,GAHIuvB,EAAQa,QAWvBpwB,EAAOqwB,WAAa,SAAUt3B,GAC1B,MAAKyB,WAAUhD,QAGfs4B,EAAc/2B,EACPiH,GAHI8vB,GAWf9vB,EAAOswB,gBAAkB,SAAUv3B,GAC/B,MAAKyB,WAAUhD,QAGfu4B,EAAmBh3B,EACZiH,GAHI+vB,GAWf/vB,EAAOuwB,WAAa,SAAUx3B,GAC1B,MAAKyB,WAAUhD,QAGfw4B,EAAcj3B,EACPiH,GAHIgwB,GAMfhwB,EAAO4G,YAAc,WACjB,QAAS3P,MAAO+I,EAAQzC,KAAMyC,EAAOuD,WAAYmS,MAAO1V,EAAOuJ,cAGnEvJ,EAAO6G,gBAAkB,SAAUpN,GAC/B01B,EAAmB,SAAUO,GACzB,MAAOA,GAAOtvB,KAAK,UAAY3G,EAAEic,OAClCqa,GACH/vB,EAAO8D,UAAU,2BAA2BnI,OAAO,WAC/C,MAAO/F,GAAGkI,OAAO7C,MAAMmF,KAAK,UAAY3G,EAAEic,QAC3CzR,QAAQ,WAAW,IAG1BjE,EAAO8G,YAAc,SAAUrN,GAC3B01B,EAAmB,SAAUO,GACzB,MAAOA,GAAOtvB,KAAK,UAAY3G,EAAEic,OAClCoa,GACH9vB,EAAO8D,UAAU,2BAA2BnI,OAAO,WAC/C,MAAO/F,GAAGkI,OAAO7C,MAAMmF,KAAK,UAAY3G,EAAEic,QAC3CzR,QAAQ,WAAW,IAa1BjE,EAAOyS,eAAiB,aAIxBzS,EAAO2S,YAAc,WACjB,GAAIN,GAASrS,EAAOqP,QAAQgD,QAQ5B,OAPIrS,GAAOjG,UACPsY,EAAO,GAAKA,EAAO,GAAGzB,IAAI5Q,EAAOjG,SACjCsY,EAAO,GAAKA,EAAO,GAAGzB,IAAI5Q,EAAOjG,SAEjCiG,EAAOsD,IAAIxF,OAAO,UACb9B,KAAKgE,EAAOqP,QAAQgD,OAAOA,KAE7BA,GAGXrS,EAAO4S,aAAe,SAAUP,GAC5B,MAAOrS,GAAOqP,QAAQtR,UAAYsU,GAAUA,EAAO,GAAG,IAAMA,EAAO,GAAG,IAAMA,EAAO,GAAG,IAAMA,EAAO,GAAG,IAW1GrS,EAAOsS,UAAY,WACf,GAAID,GAASrS,EAAO2S,aAIpB,IAFA3S,EAAOiN,YAAYjN,EAAOsD,KAEtBtD,EAAO4S,aAAaP,GACpBvc,EAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAO,MACdqE,EAAOsF,gBAGXmqB,GAAe,OAEZ,CACH,GAAIe,GAAiB16B,EAAG4F,QAAQgE,2BAA2B2S,EAC3Dvc,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAO,MACdqE,EAAOrE,OAAO60B,GACdxwB,EAAOsF,eACRxP,EAAGE,UAAUS,aAEhBg5B,EAAee,KAIvBxwB,EAAOwS,UAAY,SAAUD,GACzBA,EAAOvW,KAAKgE,EAAOqP,QAAQvP,EAAEE,EAAOF,OAGjCE,EAAO+D,OAAOrG,EAAQsG,IAmCjClO,EAAG26B,cAAgB,SAAU/yB,EAAQsG,GACjC,GAAI0sB,GAAa,iBACb9O,EAAgBhsB,EAAG4F,OAAO,OAC1BwE,EAASlK,EAAGiK,cACZ8hB,GAAS8O,IAAI,GAAI9qB,KAAK,GAAI+qB,KAAK,GA6GnC,OA1GA5wB,GAAOuC,sBAAsB,UAkB7BvC,EAAO8hB,KAAO,SAAU/oB,GACpB,MAAKyB,WAAUhD,QAGXuB,EAAE63B,KACF/O,EAAM+O,KAAO73B,EAAE63B,KACR73B,EAAE43B,IACT9O,EAAM+O,KAAO73B,EAAE43B,IACR53B,EAAE8M,OACTgc,EAAM+O,KAAO73B,EAAE8M,MAEf9M,EAAE43B,IACF9O,EAAM8O,IAAM53B,EAAE43B,IACP53B,EAAE8M,OACTgc,EAAM8O,IAAM53B,EAAE8M,MAEd9M,EAAE8M,KACFgc,EAAMhc,KAAO9M,EAAE8M,KACR9M,EAAE43B,MACT9O,EAAMhc,KAAO9M,EAAE43B,KAEZ3wB,GAnBI6hB,GA2Bf7hB,EAAOT,MAAQ;AACX,MAAOS,GAAOqD,QAGlBrD,EAAOqD,KAAK,SAAUvM,GAClB,GAAI+5B,GAAS/5B,EAAMyI,MAAQzI,EAAMyI,QAAUzI,EAAM+Q,IAAI,GAAG,EACxD,OAAO7H,GAAOmC,gBAAgB0uB,KAGlC7wB,EAAO4E,mBAAmB,KAE1B5E,EAAOgF,UAAY,WACf,GAAI8rB,GAAW9wB,EAAOT,QAClBwxB,EAAO/wB,EAAO8D,UAAU,IAAM4sB,EAE9BK,GAAKhzB,UACLgzB,EAAOA,EAAK1tB,MAAM,IACbwI,QACA7N,OAAO,QACPoC,KAAK,QAASswB,IAGvBK,EAAKr4B,aACAE,SAASoH,EAAO4E,sBAChBosB,KAAK,eACLC,MAAM,OAAQ,WACX,GAAIC,GAASt7B,EAAGu7B,kBAAkBl2B,KAAKm2B,WAAa,EAAGN,EAEvD,OADA71B,MAAKm2B,UAAYN,EACV,SAAUtV,GACb,GAAIsG,GAAO,KAAMuP,EAAMrxB,EAAO+hB,eAAemP,EAAO1V,GACnC,KAAbsV,GAAkC,KAAfjP,EAAM+O,KACzB9O,EAAOD,EAAM+O,KACO,IAAbE,GAAiC,KAAdjP,EAAM8O,IAChC7O,EAAOD,EAAM8O,IACS,KAAf9O,EAAMhc,OACbic,EAAOD,EAAMhc,MAEjB5K,KAAKq2B,UAAYxP,EAAOA,EAAKtlB,QAAQ,UAAW60B,GAAOA,MAKvErxB,EAAOqF,UAAY,WACf,MAAOrF,GAAOgF,aAQlBhF,EAAO+hB,aAAe,SAAUxnB,GAC5B,MAAKC,WAAUhD,QAGfoqB,EAAgBrnB,EACTyF,GAHI4hB,GAMR5hB,EAAO+D,OAAOrG,EAAQsG,IAgCjClO,EAAGy7B,QAAU,SAAU7zB,EAAQsG,GAuE3B,QAASwtB,GAAW9iB,EAAMnP,GACtB,GAAIkyB,GAAczxB,EAAO8D,UAAU,cAAcnI,OAAO,SAAUlC,GAC9D,MAAOA,GAAEgd,IAAI/H,KAAUnP,IAEvBmyB,EAAwBD,EAAY91B,OAAO,SAAUlC,GACrD,OAAQuG,EAAO+F,UAAUtM,EAAEgd,MAE/B3gB,GAAG8I,OAAOE,QAAQ,WACV4yB,EAAsB3zB,QACtB0zB,EAAYtsB,KAAK,SAAU1L,GACvBuG,EAAOrE,OAAOlC,EAAEgd,OAGpBib,EAAsBvsB,KAAK,SAAU1L,GACjCuG,EAAOrE,OAAOlC,EAAEgd,OAGxBzW,EAAOsF,gBAtFf,GAEIqsB,GAEAC,EACAC,EALAC,EAAwB,KAMxBC,EAAen8B,EAAGotB,UAClBgP,EAAep8B,EAAGotB,UAClBiP,EAAYr8B,EAAG2S,MAAMnP,UACrB84B,EAAYt8B,EAAG2S,MAAMnP,UAErB+4B,EAAiBL,EACjBM,EAAiBN,EAEjB9xB,EAASlK,EAAGuS,WAAWvS,EAAG6R,YAAY7R,EAAGiK,eAC7CC,GAAOuC,sBAAsB,UAC7BvC,EAAOoH,MAAMpH,EAAOkJ,gBAEpB,IAAImpB,GAAa,SAAU54B,GACvB,MAAOA,IAEP64B,EAAa,SAAU74B,GACvB,MAAOA,GAYXuG,GAAOuyB,UAAY,SAAUh4B,GACzB,MAAKC,WAAUhD,QAGf66B,EAAa93B,EACNyF,GAHIqyB,GAefryB,EAAOwyB,UAAY,SAAUj4B,GACzB,MAAKC,WAAUhD,QAGf86B,EAAa/3B,EACNyF,GAHIsyB,EAMf,IAAIG,GAAgB,SAAUh5B,GAAK+3B,EAAW,EAAG/3B,IAC7Ci5B,EAAgB,SAAUj5B,GAAK+3B,EAAW,EAAG/3B,IAC7Ck5B,EAAc,SAAUl5B,GACxB,GAAIkC,GAASlC,EAAEgd,GACf3gB,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAOA,GACdqE,EAAOsF,gBAoQf,OA3OAxP,GAAGmE,SAAS+F,EAAQ,SAAU,SAAUrE,GACpC,MAAKnB,WAAUhD,OAIRwI,EAAOoS,QAAQtc,EAAG4F,QAAQ8D,qBAAqB7D,IAH3CqE,EAAOoS,YAYtBpS,EAAOsjB,KAAO,SAAU/oB,GACpB,MAAKC,WAAUhD,QAGfq6B,EAAQt3B,EACDyF,GAHI6xB,GAUf7xB,EAAO4yB,YAAc,SAAUr4B,GAC3B,MAAKC,WAAUhD,QAGfw6B,EAAez3B,EACRyF,GAHIgyB,GAWfhyB,EAAO6yB,KAAO,SAAUt4B,GACpB,MAAKC,WAAUhD,QAGfo6B,EAAQr3B,EACDyF,GAHI4xB,GAUf5xB,EAAO8yB,YAAc,SAAUv4B,GAC3B,MAAKC,WAAUhD,QAGfu6B,EAAex3B,EACRyF,GAHI+xB,GAMf/xB,EAAOgF,UAAY,WAQf,MAPAhF,GAAOqE,WAEPstB,EAAa3xB,EAAOoE,MACfpG,OAAO,KACPoC,KAAK,QAAS,WACdA,KAAK,YAAa,aAAeJ,EAAOiI,UAAUD,KAAO,IAAMhI,EAAOiI,UAAUJ,IAAM,KAEpF7H,EAAOqF,aAGlBrF,EAAOqF,UAAY,WACf,GAAIhC,GAAOrD,EAAOqD,OACdigB,EAAOtjB,EAAOsjB,QAAUjgB,EAAKuN,IAAI5Q,EAAOmC,iBACxC0wB,EAAO7yB,EAAO6yB,QAAUxvB,EAAKuN,IAAI5Q,EAAOkC,cACxC8vB,KACA1O,EAAOA,EAAKtI,KAAKgX,IAEjBD,IACAc,EAAOA,EAAK7X,KAAK+W,IAErBzO,EAAO4O,EAAU74B,OAAOiqB,GACxBuP,EAAOZ,EAAU54B,OAAOw5B,EAExB,IAAIE,GAAWzP,EAAKjqB,SAAS7B,OACzBw7B,EAAWH,EAAKx5B,SAAS7B,OACzBy7B,EAAW/5B,KAAKW,MAAMmG,EAAOmI,iBAAmB6qB,GAChDE,EAAYh6B,KAAKW,MAAMmG,EAAOoI,kBAAoB2qB,EAEtDF,GAAKM,iBAAiB,EAAGnzB,EAAOmI,mBAChCmb,EAAK6P,iBAAiBnzB,EAAOoI,kBAAmB,GAEhD,IAAIgrB,GAAQzB,EAAW7tB,UAAU,eAAeT,KAAKrD,EAAOqD,OAAQ,SAAU5J,EAAGlC,GAC7E,MAAOyI,GAAOkC,cAAczI,EAAGlC,GAAK,OAAOyI,EAAOmC,gBAAgB1I,EAAGlC,KAErE87B,EAASD,EAAMvnB,QAAQ7N,OAAO,KAC7BoC,KAAK,QAAS,YAEnBizB,GAAOr1B,OAAO,QACToC,KAAK,QAAS,YACdA,KAAK,OAAQ,SACbkH,GAAG,QAAStH,EAAOszB,cAEpBtzB,EAAOqH,gBACPgsB,EAAOr1B,OAAO,SACdo1B,EAAMtvB,UAAU,SAASY,KAAK1E,EAAOoH,UAGzCtR,EAAG4C,WAAW06B,EAAMtvB,UAAU,QAAS9D,EAAO4E,sBACzCxE,KAAK,IAAK,SAAU3G,EAAGlC,GAAK,MAAOs7B,GAAK7yB,EAAOkC,cAAczI,EAAGlC,MAChE6I,KAAK,IAAK,SAAU3G,EAAGlC,GAAK,MAAO+rB,GAAKtjB,EAAOmC,gBAAgB1I,EAAGlC,MAClE6I,KAAK,KAAM+xB,GACX/xB,KAAK,KAAMgyB,GACXhyB,KAAK,OAAQJ,EAAOuJ,UACpBnJ,KAAK,QAAS6yB,GACd7yB,KAAK,SAAU8yB,GAEpBE,EAAMrnB,OAAOzH,QAEb,IAAIivB,GAAQ5B,EAAW7tB,UAAU,SAC7ByvB,GAAMx1B,UACNw1B,EAAQ5B,EAAW3zB,OAAO,KAAKoC,KAAK,QAAS,aAEjD,IAAIozB,GAAYD,EAAMzvB,UAAU,QAAQT,KAAKwvB,EAAKx5B,SAClDm6B,GAAU3nB,QAAQ7N,OAAO,QAClBoC,KAAK,IAAK,SAAU3G,GAAK,MAAOo5B,GAAKp5B,GAAKw5B,EAAW,IACrDxuB,MAAM,cAAe,UACrBrE,KAAK,IAAKJ,EAAOoI,mBACjBhI,KAAK,KAAM,IACXkH,GAAG,QAAStH,EAAOyzB,gBACnB/uB,KAAK1E,EAAOuyB,aACnBz8B,EAAG4C,WAAW86B,EAAWxzB,EAAO4E,sBACxBF,KAAK1E,EAAOuyB,aACZnyB,KAAK,IAAK,SAAU3G,GAAK,MAAOo5B,GAAKp5B,GAAKw5B,EAAW,IAC7DO,EAAUznB,OAAOzH,QACjB,IAAIovB,GAAQ/B,EAAW7tB,UAAU,SAC7B4vB,GAAM31B,UACN21B,EAAQ/B,EAAW3zB,OAAO,KAAKoC,KAAK,QAAS,aAEjD,IAAIuzB,GAAYD,EAAM5vB,UAAU,QAAQT,KAAKigB,EAAKjqB,SA0BlD,OAzBAs6B,GAAU9nB,QAAQ7N,OAAO,QAClBoC,KAAK,KAAM,GACXqE,MAAM,cAAe,OACrBrE,KAAK,IAAK,GACVA,KAAK,KAAM,IACXkH,GAAG,QAAStH,EAAO4zB,gBACnBlvB,KAAK1E,EAAOwyB,aACnB18B,EAAG4C,WAAWi7B,EAAW3zB,EAAO4E,sBACzBF,KAAK1E,EAAOwyB,aACZpyB,KAAK,IAAK,SAAU3G,GAAK,MAAO6pB,GAAK7pB,GAAKy5B,EAAY,IAC7DS,EAAU5nB,OAAOzH,SAGbtE,EAAO8D,UAAU,eAAeqB,KADhCnF,EAAO+F,YAC8B,SAAUtM,GACvCuG,EAAOwY,eAAe/e,GACtBuG,EAAOuG,kBAAkBtL,MAEzB+E,EAAOwG,eAAevL,OAIO,WACjC+E,EAAOyG,eAAexL,QAGvB+E,GAOXA,EAAOszB,WAAa,SAAUv3B,GAC1B,MAAKvB,WAAUhD,QAGfm7B,EAAc52B,EACPiE,GAHI2yB,GAYf3yB,EAAOyzB,aAAe,SAAU13B,GAC5B,MAAKvB,WAAUhD,QAGfi7B,EAAgB12B,EACTiE,GAHIyyB,GAYfzyB,EAAO4zB,aAAe,SAAU73B,GAC5B,MAAKvB,WAAUhD,QAGfk7B,EAAgB32B,EACTiE,GAHI0yB,GAUf1yB,EAAO6zB,cAAgB,SAAUp6B,GAC7B,MAAKe,WAAUhD,QAGf26B,EAAiB14B,EACVuG,GAHImyB,GAUfnyB,EAAO8zB,cAAgB,SAAUr6B,GAC7B,MAAKe,WAAUhD,QAGf46B,EAAiB34B,EACVuG,GAHIoyB,GAMfpyB,EAAOwY,eAAiB,SAAU/e,GAC9B,MAAOuG,GAAO+F,UAAUtM,EAAEgd,MAGvBzW,EAAO+D,OAAOrG,EAAQsG,IAIjC,WA+SI,QAAS+vB,GAAYt6B,GACjB,OAAQ,EAAGA,EAAEjC,OAAS,GAG1B,QAASw8B,GAAav6B,GAClB,OACI7D,EAAGq+B,SAASx6B,EAAG,KACf7D,EAAGq+B,SAASx6B,EAAG,IACf7D,EAAGq+B,SAASx6B,EAAG,MApTvB7D,EAAGs+B,IAAM,WAWL,QAASA,GAAI5wB,GACTA,EAAE6B,KAAK,SAAU1L,EAAGlC,GAChBkC,EAAIA,EAAEmX,IAAIrR,GAAOyb,KAAKplB,EAAGotB,UACzB,IAAI1f,GAAI1N,EAAGkI,OAAO7C,MACdjB,EAAIP,EAAEjC,OACN0F,EAAMzD,EAAE,GACR0D,EAAM1D,EAAEO,EAAI,GAGZm6B,EAAe16B,EAAE26B,UAAYA,EAAU36B,GAGvC46B,EAAiBC,GAAYA,EAASt4B,KAAKf,KAAMxB,EAAGlC,GACpDg9B,EAAcF,GAAkBA,EAAezjB,IAAI,SAAUrZ,GAAK,MAAOkC,GAAElC,KAI3Ei9B,EAAiBH,EACjBz+B,EAAGyJ,MAAM,EAAGg1B,EAAe,IAAI9f,OAAO3e,EAAGyJ,MAAMg1B,EAAe,GAAK,EAAGr6B,IAAMpE,EAAGyJ,MAAMrF,GAGrFy6B,EAAK7+B,EAAG2S,MAAMQ,SACb1P,OAAOA,GAAUA,EAAO2C,KAAKf,KAAMxB,EAAGlC,KAAO2F,EAAKC,IAClDkC,OAAOiB,EAAQ,IAGhBmtB,EAAKxyB,KAAKy5B,WAAa9+B,EAAG2S,MAAMQ,SAC/B1P,QAAQ,EAAGuG,EAAAA,IACXP,MAAMo1B,EAAGp1B,QAGdpE,MAAKy5B,UAAYD,CAQjB,IAAIE,GAASrxB,EAAEQ,UAAU,eACpBT,KAAKkxB,GAAeA,MAEzBI,GAAO9oB,QAAQN,OAAO,OAAQ,QACzBnL,KAAK,QAAS,UACdA,KAAK,KAAMC,EAAQ,GACnBD,KAAK,KAAM,SAAU3G,GAAK,MAAOg0B,GAAGh0B,EAAE,MACtC2G,KAAK,KAAMC,EAAQ,GACnBD,KAAK,KAAM,SAAU3G,GAAK,MAAOg0B,GAAGh0B,EAAE,MACtCgL,MAAM,UAAW,MACnB/L,aACEE,SAASA,GACT6L,MAAM,UAAW,GACjBrE,KAAK,KAAM,SAAU3G,GAAK,MAAOg7B,GAAGh7B,EAAE,MACtC2G,KAAK,KAAM,SAAU3G,GAAK,MAAOg7B,GAAGh7B,EAAE,MAE3Ck7B,EAAOj8B,aACFE,SAASA,GACT6L,MAAM,UAAW,GACjBrE,KAAK,KAAM,SAAU3G,GAAK,MAAOg7B,GAAGh7B,EAAE,MACtC2G,KAAK,KAAM,SAAU3G,GAAK,MAAOg7B,GAAGh7B,EAAE,MAE3Ck7B,EAAO5oB,OAAOrT,aACTE,SAASA,GACT6L,MAAM,UAAW,MACjBrE,KAAK,KAAM,SAAU3G,GAAK,MAAOg7B,GAAGh7B,EAAE,MACtC2G,KAAK,KAAM,SAAU3G,GAAK,MAAOg7B,GAAGh7B,EAAE,MACtC6K,QAGL,IAAI4vB,GAAM5wB,EAAEQ,UAAU,YACjBT,MAAM8wB,GAEXD,GAAIroB,QAAQ7N,OAAO,QACdoC,KAAK,QAAS,OACdA,KAAK,IAAK,GACVA,KAAK,IAAK,SAAU3G,GAAK,MAAOg0B,GAAGh0B,EAAE,MACrC2G,KAAK,QAASC,GACdD,KAAK,SAAU,SAAU3G,GAAK,MAAOg0B,GAAGh0B,EAAE,IAAMg0B,EAAGh0B,EAAE,MACvDf,aACEE,SAASA,GACTwH,KAAK,IAAK,SAAU3G,GAAK,MAAOg7B,GAAGh7B,EAAE,MACrC2G,KAAK,SAAU,SAAU3G,GAAK,MAAOg7B,GAAGh7B,EAAE,IAAMg7B,EAAGh7B,EAAE,MAE1Dy6B,EAAIx7B,aACCE,SAASA,GACTwH,KAAK,IAAK,SAAU3G,GAAK,MAAOg7B,GAAGh7B,EAAE,MACrC2G,KAAK,SAAU,SAAU3G,GAAK,MAAOg7B,GAAGh7B,EAAE,IAAMg7B,EAAGh7B,EAAE,KAG1D,IAAIm7B,GAAatxB,EAAEQ,UAAU,eACxBT,MAAM8wB,EAAa,IAExBS,GAAW/oB,QAAQ7N,OAAO,QACrBoC,KAAK,QAAS,UACdA,KAAK,KAAM,GACXA,KAAK,KAAMqtB,GACXrtB,KAAK,KAAMC,GACXD,KAAK,KAAMqtB,GACX/0B,aACAE,SAASA,GACTwH,KAAK,KAAMq0B,GACXr0B,KAAK,KAAMq0B,GAEhBG,EAAWl8B,aACNE,SAASA,GACTwH,KAAK,KAAMq0B,GACXr0B,KAAK,KAAMq0B,EAGhB,IAAII,GAAUvxB,EAAEQ,UAAU,gBACrBT,KAAKkxB,MAEVM,GAAQhpB,QAAQN,OAAO,OAAQ,gBAC1BnL,KAAK,QAAS,WACdA,KAAK,KAAM,GACXA,KAAK,KAAMqtB,GACXrtB,KAAK,KAAMC,GACXD,KAAK,KAAMqtB,GACXhpB,MAAM,UAAW,MACnB/L,aACEE,SAASA,GACTwH,KAAK,KAAMq0B,GACXr0B,KAAK,KAAMq0B,GACXhwB,MAAM,UAAW,GAEtBowB,EAAQn8B,aACHE,SAASA,GACTwH,KAAK,KAAMq0B,GACXr0B,KAAK,KAAMq0B,GACXhwB,MAAM,UAAW,GAEtBowB,EAAQ9oB,OAAOrT,aACVE,SAASA,GACTwH,KAAK,KAAMq0B,GACXr0B,KAAK,KAAMq0B,GACXhwB,MAAM,UAAW,MACjBH,QAGL,IAAIwwB,GAAUxxB,EAAEQ,UAAU,kBACrBT,KAAKmxB,EAAgBO,OAE1BD,GAAQjpB,QAAQN,OAAO,SAAU,QAC5BnL,KAAK,QAAS,WACdA,KAAK,IAAK,GACVA,KAAK,KAAMC,EAAQ,GACnBD,KAAK,KAAM,SAAU7I,GAAK,MAAOk2B,GAAGh0B,EAAElC,MACtCkN,MAAM,UAAW,MACjB/L,aACAE,SAASA,GACTwH,KAAK,KAAM,SAAU7I,GAAK,MAAOk9B,GAAGh7B,EAAElC,MACtCkN,MAAM,UAAW,GAEtBqwB,EAAQp8B,aACHE,SAASA,GACTwH,KAAK,KAAM,SAAU7I,GAAK,MAAOk9B,GAAGh7B,EAAElC,MACtCkN,MAAM,UAAW,GAEtBqwB,EAAQ/oB,OAAOrT,aACVE,SAASA,GACTwH,KAAK,KAAM,SAAU7I,GAAK,MAAOk9B,GAAGh7B,EAAElC,MACtCkN,MAAM,UAAW,MACjBH,QAGL,IAAI9I,GAASw5B,GAAcP,EAAGO,WAAW,GAGrCC,EAAU3xB,EAAEQ,UAAU,YACrBT,KAAK8wB,EAEVc,GAAQppB,QAAQ7N,OAAO,QAClBoC,KAAK,QAAS,OACdA,KAAK,KAAM,QACXA,KAAK,KAAM,SAAU3G,EAAGlC,GAAK,MAAW,GAAJA,EAAQ,EAAI,KAChD6I,KAAK,IAAK,SAAU3G,EAAGlC,GAAK,MAAW,GAAJA,EAAQ8I,EAAQ,IACnDD,KAAK,IAAKqtB,GACVrtB,KAAK,cAAe,SAAU3G,EAAGlC,GAAK,MAAW,GAAJA,EAAQ,QAAU,QAC/DmN,KAAKlJ,GACL9C,aACAE,SAASA,GACTwH,KAAK,IAAKq0B,GAEfQ,EAAQv8B,aACHE,SAASA,GACT8L,KAAKlJ,GACL4E,KAAK,IAAKq0B,EAKf,IAAIS,GAAc5xB,EAAEQ,UAAU,gBACzBT,KAAKkxB,MAEVW,GAAYrpB,QAAQ7N,OAAO,QACtBoC,KAAK,QAAS,WACdA,KAAK,KAAM,QACXA,KAAK,KAAM,GACXA,KAAK,IAAKC,GACVD,KAAK,IAAKqtB,GACV/oB,KAAKlJ,GACLiJ,MAAM,UAAW,MACjB/L,aACAE,SAASA,GACTwH,KAAK,IAAKq0B,GACVhwB,MAAM,UAAW,GAEtBywB,EAAYx8B,aACPE,SAASA,GACT8L,KAAKlJ,GACL4E,KAAK,IAAKq0B,GACVhwB,MAAM,UAAW,GAEtBywB,EAAYnpB,OAAOrT,aACdE,SAASA,GACTwH,KAAK,IAAKq0B,GACVhwB,MAAM,UAAW,MACjBH,WAET1O,EAAGu/B,MAAMC,QArOb,GAAI/0B,GAAQ,EACRC,EAAS,EACT1H,EAAW,EACXS,EAAS,KACTkG,EAAQw1B,OACRT,EAAWP,EACXK,EAAYJ,EACZgB,EAAa,IAiSjB,OAhEAd,GAAI7zB,MAAQ,SAAUR,GAClB,MAAKrF,WAAUhD,QAGf6I,EAAQR,EACDq0B,GAHI7zB,GAMf6zB,EAAI5zB,OAAS,SAAUT,GACnB,MAAKrF,WAAUhD,QAGf8I,EAAST,EACFq0B,GAHI5zB,GAMf4zB,EAAIc,WAAa,SAAUn1B,GACvB,MAAKrF,WAAUhD,QAGfw9B,EAAan1B,EACNq0B,GAHIc,GAMfd,EAAIt7B,SAAW,SAAUiH,GACrB,MAAKrF,WAAUhD,QAGfoB,EAAWiH,EACJq0B,GAHIt7B,GAMfs7B,EAAI76B,OAAS,SAAUwG,GACnB,MAAKrF,WAAUhD,QAGf6B,EAAe,OAANwG,EAAaA,EAAIjK,EAAGmN,QAAQlD,GAC9Bq0B,GAHI76B,GAMf66B,EAAI30B,MAAQ,SAAUM,GAClB,MAAKrF,WAAUhD,QAGf+H,EAAQM,EACDq0B,GAHI30B,GAMf20B,EAAII,SAAW,SAAUz0B,GACrB,MAAKrF,WAAUhD,QAGf88B,EAAWz0B,EACJq0B,GAHII,GAMfJ,EAAIE,UAAY,SAAUv0B,GACtB,MAAKrF,WAAUhD,QAGf48B,EAAYv0B,EACLq0B,GAHIE,GAMRF,MA6Cfp+B,EAAGu/B,QAAU,SAAU33B,EAAQsG,GAI3B,QAASsxB,GAAsBC,GAC3B,MAAO,UAAU97B,GAQb,IAPA,GAAI+7B,GAAK/7B,EAAE26B,UAAU,GACjBqB,EAAKh8B,EAAE26B,UAAU,GACjBsB,GAAOD,EAAKD,GAAMD,EAClBh+B,EAAI,GACJwwB,EAAItuB,EAAEjC,OAGHiC,IAAIlC,GAAKi+B,EAAKE,IACrB,KAAOj8B,IAAIsuB,GAAK0N,EAAKC,IAErB,OAAQn+B,EAAGwwB,IA0GnB,QAAS4N,GAAYC,GACjB,GAAIC,GAAcD,EAAO/pB,QAAQ7N,OAAO,IAExC63B,GACKz1B,KAAK,QAAS,OACdA,KAAK,YAAa01B,GAClB95B,KAAK+5B,GACLzuB,GAAG,QAAS,SAAU7N,GACnBuG,EAAOrE,OAAOlC,EAAEgd,KAChBzW,EAAOsF,gBAInB,QAAS0wB,GAAYJ,GACjB9/B,EAAG4C,WAAWk9B,EAAQ51B,EAAO4E,sBACxBxE,KAAK,YAAa01B,GAClB95B,KAAK+5B,GACL5wB,KAAK,WACFvP,EAAGkI,OAAO7C,MAAM6C,OAAO,YAAYsC,KAAK,OAAQJ,EAAOuJ,YAInE,QAAS0sB,GAAYL,GACjBA,EAAO7pB,OAAOzH,SAAStI,KAAK+5B,GAhJhC,GAAI/1B,GAASlK,EAAG2T,wBAoBZysB,EAAoB,IACpBC,EAAeb,EACfc,EAAYD,EAAaD,GAEzBH,EAAOngC,EAAGs+B,MACVmC,EAAc,KAEdC,EAAY,SAAUC,EAAiBjmB,GACvC,MAAItQ,GAAOoK,YACApK,EAAOH,IAAIqd,YAEXqZ,GAAmB,EAAIv2B,EAAOw2B,cAAgBlmB,EAK7DtQ,GAAOmS,aAAa,IAGpBnS,EAAOH,EAAEjK,EAAG2S,MAAMnP,WAClB4G,EAAOsQ,OAAOxa,EAAGkD,MAAMI,SAKvB4G,EAAOqD,KAAK,SAAUvM,GAClB,MAAOA,GAAM+L,MAAM+N,IAAI,SAAUnX,GAE7B,MADAA,GAAEmX,IAAM,SAAUgD,GAAY,MAAOA,GAAS5X,KAAKvC,EAAGA,IAC/CA,IACRkC,OAAO,SAAUlC,GAChB,GAAIqa,GAAS9T,EAAOmC,gBAAgB1I,EACpC,OAAyB,KAAlBqa,EAAOtc,WAYtBwI,EAAOw2B,WAAax2B,EAAO+K,kBAC3B/K,EAAOw2B,WAAW,IASlBx2B,EAAOge,aAAehe,EAAOiL,uBAC7BjL,EAAOge,aAAa,IAQpBhe,EAAOizB,SAAW,SAAU14B,GACxB,MAAKC,WAAUhD,QAGf8+B,EAAY1gC,EAAGmN,QAAQxI,GAChByF,GAHIs2B,EAMf,IAAIR,GAAe,SAAUr8B,EAAGlC,GAC5B,GAAIk/B,GAAUz2B,EAAOH,IAAIG,EAAOkC,cAAczI,EAAGlC,GACjD,OAAO,aAAek/B,EAAU,OA0GpC,OAvGAz2B,GAAOiT,gBAAkB,WACjBjT,EAAOqK,YACPrK,EAAOH,IAAIxG,YAInB2G,EAAO4M,SAAW,WACd,GAAI8pB,GAAsBJ,EAAUt2B,EAAOmI,iBAAkBnI,EAAOyQ,aAEpEslB,GAAKzB,SAAS8B,GACT/1B,MAAMq2B,GACNp2B,OAAON,EAAOoI,mBACd7I,MAAMS,EAAOmC,iBACb9I,OAAO2G,EAAOF,IAAIzG,UAClBT,SAASoH,EAAO4E,sBAChBowB,WAAWqB,EAEhB,IAAIT,GAAS51B,EAAOoQ,aAAatM,UAAU,SAAST,KAAKrD,EAAOqD,OAAQ,SAAU5J,GAAK,MAAOA,GAAEgd,KAEhGkf,GAAYC,GACZI,EAAYJ,GACZK,EAAYL,GAEZ51B,EAAO8S,sBA6BX9S,EAAO8S,mBAAqB,WAEpB9S,EAAOsD,IAAIQ,UAAU,SAASqB,KAD9BnF,EAAO+F,YAC4B,SAAUtM,GACrCuG,EAAOwY,eAAe/e,GACtBuG,EAAOuG,kBAAkBtL,MAEzB+E,EAAOwG,eAAevL,OAIK,WAC/B+E,EAAOyG,eAAexL,SAKlC+E,EAAOwY,eAAiB,SAAU/e,GAC9B,MAAOuG,GAAO+F,UAAUtM,EAAEgd,MAG9BzW,EAAOgR,SAAW,WACd,GAAI9T,GAAMtH,EAAGsH,IAAI8C,EAAOqD,OAAQ,SAAUnM,GACtC,MAAOtB,GAAGsH,IAAI8C,EAAOmC,gBAAgBjL,KAEzC,OAAOpB,GAAG6D,MAAMmD,SAASI,EAAK8C,EAAOmS,iBAGzCnS,EAAOiR,SAAW,WACd,GAAI9T,GAAMvH,EAAGuH,IAAI6C,EAAOqD,OAAQ,SAAUnM,GACtC,MAAOtB,GAAGuH,IAAI6C,EAAOmC,gBAAgBjL,KAEzC,OAAOpB,GAAG6D,MAAM0C,IAAIc,EAAK6C,EAAOmS,iBAYpCnS,EAAOg1B,WAAa,SAAUn1B,GAC1B,MAAKrF,WAAUhD,QAGf6+B,EAAcx2B,EACPG,GAHIq2B,GAMRr2B,EAAO+D,OAAOrG,EAAQsG,IAKjClO,EAAG6gC,oBAAsB7gC,EAAGkhB,YAC5BlhB,EAAG8gC,UAAY9gC,EAAGiK,UAClBjK,EAAG+gC,OAAS/gC,EAAG6f,SACf7f,EAAGghC,WAAahhC,EAAGuS,WACnBvS,EAAGihC,oBAAsBjhC,EAAG2T,oBAC5B3T,EAAGkhC,WAAalhC,EAAG6R,YACnB7R,EAAGmhC,eAAiBnhC,EAAGyd,WAIvBzd,EAAGF,GAAKA,EACRE,EAAGD,YAAcA,EAEVC,EACH,GAAqB,kBAAXohC,SAAyBA,OAAOC,IACtCD,QAAQ,KAAM,eAAgBvhC,OAC3B,IAAqB,gBAAXyhC,SAAuBA,OAAOC,QAAS,CACpD,GAAIC,GAAMC,QAAQ,MACdC,EAAeD,QAAQ,cAMC,mBAAjBC,KACPA,EAAeA,EAAa3hC,aAEhCuhC,OAAOC,QAAU1hC,EAAI2hC,EAAKE,OAE1Bv8B,MAAKnF,GAAKH,EAAIC,GAAIC"} \ No newline at end of file +{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_legendLabelAccessor","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","legendLabelAccessor","label","getLegendLabel","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index ddf518998..10ea7f340 100644 --- a/package.json +++ b/package.json @@ -25,40 +25,8 @@ "url": "https://github.com/dc-js/dc.js.git" }, "dependencies": { - "browser-resolve": "^1.8.2", - "browserify-zlib": "^0.1.4", - "concat-stream": "^1.4.8", "crossfilter": "1.x", - "crypto-browserify": "^3.9.14", - "d3": "3.x", - "defined": "^1.0.0", - "domain-browser": "^1.1.4", - "duplexer2": "0.0.2", - "events": "^1.0.2", - "has": "^1.0.0", - "http-browserify": "^1.7.0", - "https-browserify": "0.0.0", - "isarray": "0.0.1", - "labeled-stream-splicer": "^1.0.2", - "marked": "^0.3.3", - "os-browserify": "^0.1.2", - "path-browserify": "0.0.0", - "phantomjs": "^1.9.16", - "process": "^0.10.1", - "punycode": "^1.3.2", - "querystring-es3": "^0.2.1", - "read-only-stream": "^1.1.1", - "readable-stream": "^1.0.33", - "shallow-copy": "0.0.1", - "stream-browserify": "^1.0.0", - "string_decoder": "^0.10.31", - "through2": "^0.6.5", - "timers-browserify": "^1.4.0", - "tty-browserify": "0.0.0", - "url": "^0.10.3", - "util": "^0.10.3", - "vm-browserify": "0.0.4", - "xtend": "^4.0.0" + "d3": "3.x" }, "devDependencies": { "emu": "~0.0.2", diff --git a/spec/bar-chart-spec.js b/spec/bar-chart-spec.js old mode 100755 new mode 100644 diff --git a/spec/base-mixin-spec.js b/spec/base-mixin-spec.js old mode 100755 new mode 100644 diff --git a/spec/biggish-data-spec.js b/spec/biggish-data-spec.js old mode 100755 new mode 100644 diff --git a/spec/box-plot-spec.js b/spec/box-plot-spec.js old mode 100755 new mode 100644 diff --git a/spec/bubble-chart-spec.js b/spec/bubble-chart-spec.js old mode 100755 new mode 100644 diff --git a/spec/bubble-overlay-spec.js b/spec/bubble-overlay-spec.js old mode 100755 new mode 100644 diff --git a/spec/color-spec.js b/spec/color-spec.js old mode 100755 new mode 100644 diff --git a/spec/composite-chart-spec.js b/spec/composite-chart-spec.js old mode 100755 new mode 100644 diff --git a/spec/coordinate-grid-chart-spec.js b/spec/coordinate-grid-chart-spec.js old mode 100755 new mode 100644 diff --git a/spec/core-spec.js b/spec/core-spec.js old mode 100755 new mode 100644 diff --git a/spec/data-addition-spec.js b/spec/data-addition-spec.js old mode 100755 new mode 100644 diff --git a/spec/data-count-spec.js b/spec/data-count-spec.js old mode 100755 new mode 100644 diff --git a/spec/data-grid-spec.js b/spec/data-grid-spec.js old mode 100755 new mode 100644 diff --git a/spec/data-table-spec.js b/spec/data-table-spec.js old mode 100755 new mode 100644 diff --git a/spec/event-spec.js b/spec/event-spec.js old mode 100755 new mode 100644 diff --git a/spec/filter-dates-spec.js b/spec/filter-dates-spec.js old mode 100755 new mode 100644 diff --git a/spec/filters-spec.js b/spec/filters-spec.js old mode 100755 new mode 100644 diff --git a/spec/geo-choropleth-chart-spec.js b/spec/geo-choropleth-chart-spec.js old mode 100755 new mode 100644 diff --git a/spec/heatmap-spec.js b/spec/heatmap-spec.js old mode 100755 new mode 100644 diff --git a/spec/helpers/custom_matchers.js b/spec/helpers/custom_matchers.js old mode 100755 new mode 100644 diff --git a/spec/helpers/fixtures.js b/spec/helpers/fixtures.js old mode 100755 new mode 100644 diff --git a/spec/helpers/geoFixtures.js b/spec/helpers/geoFixtures.js old mode 100755 new mode 100644 diff --git a/spec/helpers/spec-helper.js b/spec/helpers/spec-helper.js old mode 100755 new mode 100644 diff --git a/spec/legend-spec.js b/spec/legend-spec.js old mode 100755 new mode 100644 diff --git a/spec/line-chart-spec.js b/spec/line-chart-spec.js old mode 100755 new mode 100644 diff --git a/spec/logger-spec.js b/spec/logger-spec.js old mode 100755 new mode 100644 diff --git a/spec/number-display-spec.js b/spec/number-display-spec.js old mode 100755 new mode 100644 diff --git a/spec/pie-chart-spec.js b/spec/pie-chart-spec.js old mode 100755 new mode 100644 index 5d5562833..919226bdc --- a/spec/pie-chart-spec.js +++ b/spec/pie-chart-spec.js @@ -658,32 +658,6 @@ describe('dc.pieChart', function() { valueDimension.filterAll(); }); }); - - - describe('legends with label', function() { - var chart; - beforeEach(function() { - chart = buildChart("pie-chart-legend") - .cap(3) - .legend(dc.legend()) - .legendLabelAccessor(function(d){ - return d.key + " labeled"; - }) - .render(); - }); - it('should generate items for each slice', function() { - expect(chart.selectAll('g.dc-legend g.dc-legend-item').size()).toEqual(chart.data().length); - }); - it('should include "others" item labeled', function() { - var numOthersGroups = chart.selectAll('g.dc-legend g.dc-legend-item text').filter(function(d, i) { - return d.name == "Others labeled"; - }).size(); - expect(numOthersGroups).toEqual(1); - }); - afterEach(function() { - valueDimension.filterAll(); - }); - }); }); diff --git a/spec/row-chart-spec.js b/spec/row-chart-spec.js old mode 100755 new mode 100644 diff --git a/spec/scatter-plot-spec.js b/spec/scatter-plot-spec.js old mode 100755 new mode 100644 diff --git a/spec/series-chart-spec.js b/spec/series-chart-spec.js old mode 100755 new mode 100644 diff --git a/spec/utils-spec.js b/spec/utils-spec.js old mode 100755 new mode 100644 diff --git a/src/base-mixin.js b/src/base-mixin.js index 370d1d99e..095da2fc4 100644 --- a/src/base-mixin.js +++ b/src/base-mixin.js @@ -895,19 +895,6 @@ dc.baseMixin = function (_chart) { return _chart; }; - - /** - #### .legendLabelAccessor([legendLabelAccessorFunction]) - Set or get the legend label accessor function. The legend label accessor function is used to retrieve the - value from the legend label for the crossfilter group. - ```js - // default legenLabel accessor - chart.legendLabelAccessor(function(d) { return d.key; }); - // custom legen label accessor for a multi-value crossfilter reduction - chart.legendLabelAccessor(function(p) { return "Custom Legend:" + p.key; }); - ``` - - **/ _chart.legendLabelAccessor = function (_) { if (!arguments.length) { return _legendLabelAccessor; @@ -939,6 +926,10 @@ dc.baseMixin = function (_chart) { return _chart; }; + _chart.getLegendLabel = function (d, i) { + return _legendLabelAccessor.call(this, d, i); + }; + /** #### .renderLabel(boolean) Turn on/off label rendering diff --git a/src/pie-chart.js b/src/pie-chart.js index 951ff52e7..5ec34a0cc 100644 --- a/src/pie-chart.js +++ b/src/pie-chart.js @@ -429,7 +429,7 @@ dc.pieChart = function (parent, chartGroup) { _chart.legendables = function () { return _chart.data().map(function (d, i) { - var legendable = {name: _chart.legendLabelAccessor(d, i), data: d.value, others: d.others, chart:_chart}; + var legendable = {name: _chart.getLegendLabel(d, i), data: d.value, others: d.others, chart:_chart}; legendable.color = _chart.getColor(d, i); return legendable; }); From 897837d5346cf3a2e180f2ba82ac79b018043026 Mon Sep 17 00:00:00 2001 From: Antonio Grass Date: Wed, 22 Apr 2015 09:45:47 -0300 Subject: [PATCH 10/11] sync with origin --- CONTRIBUTING.md | 11 +- Changelog.md | 4 + Gruntfile.js | 141 +++--- LICENSE_BANNER | 18 + dc.js | 18 +- dc.js.map | 1 + dc.min.js | 21 +- dc.min.js.map | 2 +- package.json | 30 +- spec/composite-chart-spec.js | 2 +- spec/core-spec.js | 14 + src/banner.js | 18 - src/base-mixin.js | 9 + src/core.js | 4 +- web/docs/index.html | 855 +++++++++++++++++++---------------- web/js/dc.js | 15 +- web/js/dc.js.map | 36 +- web/js/dc.min.js | 26 +- web/js/dc.min.js.map | 2 +- 19 files changed, 676 insertions(+), 551 deletions(-) create mode 100644 LICENSE_BANNER create mode 100644 dc.js.map diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f46cdc232..5f5abc035 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,17 +10,18 @@ ## Pull Request Guidelines -* Fork the repository +* Fork the repository. +* As with all pull requests, put your changes in a branch. For contributions that change the dc.js API, create your branch off of `develop`. If your contribution does not change the API, branch off of `master` instead. * Make changes to the files in `src/` not dc.js * Add tests to `spec/`. Feel free to create a new file if needed. * Run `grunt server` and go to http://localhost:8888/spec to develop your tests. * Run `grunt lint` to confirm that your code meets the dc.js style guidelines. * Run `grunt test` to confirm that all tests will pass on phantomjs. * Commit your changes to `src/*` and `spec/*` but not any build artifacts. (Build artifacts include `dc.*js*`, `web/docs/*`, `web/js/*`) -* Submit a pull request -* If you merge master or another branch into your patchset, please rebase against master. -* The DC maintainer team will review and build the artifacts when merging -* If you continue making changes to your fork of `dc.js`, create a branch for each pull request +* Submit a pull request. +* If you merge `develop` or `master` into your patchset, please rebase against develop. (It's okay to rewrite history for PRs, because these branches are temporary and it's unlikely that anyone is tracking your feature branch.) +* The DC maintainer team will review and build the artifacts when merging. +* If you continue making changes to your fork of `dc.js`, create a separate branch for each pull request and keep the changes separate. #### Coding Conventions diff --git a/Changelog.md b/Changelog.md index fdc62dd5e..47c4f80d1 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,6 +3,10 @@ * Front page stable version automatically read from GitHub, by Enrico Spinielli ([#865](https://github.com/dc-js/dc.js/pull/865)) # 2.0 Series +## 2.0.0 beta 8 + * simplify Gruntfile and further update dependencies, by Matt Traynham ([#849](https://github.com/dc-js/dc.js/pull/849)) + * setting the chart group should automatically put the chart in that group, by Matt Traynham ([#834](https://github.com/dc-js/dc.js/pull/834) / [#775](https://github.com/dc-js/dc.js/issues/775)) + ## 2.0.0 beta 7 * fixes a bug introduced in the last release where the ordering function was defined inconsistently, causing the default ordering function to be incorrect and causing crashes with largish data in crossfilter's quicksort on IE. ([#909](https://github.com/dc-js/dc.js/issues/909)) diff --git a/Gruntfile.js b/Gruntfile.js index 2f356dba1..18c8ffefe 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,21 +1,32 @@ module.exports = function (grunt) { 'use strict'; - var jsFiles = module.exports.jsFiles; + require('load-grunt-tasks')(grunt, { + pattern: ['grunt-*', '!grunt-lib-phantomjs', '!grunt-template-jasmine-istanbul'] + }); + require('time-grunt')(grunt); - var output = { - js: '<%= pkg.name %>.js', - jsmin: '<%= pkg.name %>.min.js', - map: '<%= pkg.name %>.min.js.map' + var config = { + src: 'src', + spec: 'spec', + web: 'web', + pkg: require('./package.json'), + banner: grunt.file.read('./LICENSE_BANNER'), + jsFiles: module.exports.jsFiles }; grunt.initConfig({ - pkg: grunt.file.readJSON('package.json'), + conf: config, concat: { + options : { + process: true, + sourceMap: true, + banner : '<%= conf.banner %>' + }, js: { - src: jsFiles, - dest: output.js + src: '<%= conf.jsFiles %>', + dest: '<%= conf.pkg.name %>.js' } }, uglify: { @@ -23,28 +34,23 @@ module.exports = function (grunt) { options: { mangle: true, compress: true, - sourceMap: output.map + sourceMap: true, + banner : '<%= conf.banner %>' }, - src: output.js, - dest: output.jsmin - } - }, - sed: { - version: { - pattern: '%VERSION%', - replacement: '<%= pkg.version %>', - path: [output.js, output.jsmin] + src: '<%= conf.pkg.name %>.js', + dest: '<%= conf.pkg.name %>.min.js' } }, jscs: { old: { - src: ['spec/**/*.js'], + src: ['<%= conf.spec %>/**/*.js'], options: { validateIndentation: 4 } }, source: { - src: ['src/**/*.js', '!src/{banner,footer}.js', 'Gruntfile.js', 'web/stock.js'], + src: ['<%= conf.src %>/**/*.js', '!<%= conf.src %>/{banner,footer}.js', 'Gruntfile.js', + '<%= conf.web %>/stock.js'], options: { config: '.jscsrc' } @@ -52,28 +58,32 @@ module.exports = function (grunt) { }, jshint: { source: { - src: ['src/**/*.js', 'Gruntfile.js', 'web/stock.js'], + src: ['<%= conf.src %>/**/*.js', 'Gruntfile.js', '<%= conf.web %>/stock.js'], options: { jshintrc: '.jshintrc', - ignores: ['src/banner.js', 'src/footer.js'] + ignores: ['<%= conf.src %>/banner.js', '<%= conf.src %>/footer.js'] } } }, watch: { scripts: { - files: ['src/**/*.js'], + files: ['<%= conf.src %>/**/*.js'], tasks: ['build', 'copy'] }, jasmineRunner: { - files: ['spec/**/*.js'], + files: ['<%= conf.spec %>/**/*.js'], tasks: ['jasmine:specs:build'] }, tests: { - files: ['src/**/*.js', 'spec/**/*.js'], + files: ['<%= conf.src %>/**/*.js', '<%= conf.spec %>/**/*.js'], tasks: ['test'] }, reload: { - files: ['dc.js', 'dc.css', 'web/js/dc.js', 'web/css/dc.css', 'dc.min.js'], + files: ['<%= conf.pkg.name %>.js', + '<%= conf.pkg.name %>css', + '<%= conf.web %>/js/<%= conf.pkg.name %>.js', + '<%= conf.web %>/css/<%= conf.pkg.name %>.css', + '<%= conf.pkg.name %>.min.js'], options: { livereload: true } @@ -92,17 +102,17 @@ module.exports = function (grunt) { options: { display: 'short', summary: true, - specs: 'spec/*-spec.js', - helpers: 'spec/helpers/*.js', + specs: '<%= conf.spec %>/*-spec.js', + helpers: '<%= conf.spec %>/helpers/*.js', version: '2.0.0', - outfile: 'spec/index.html', + outfile: '<%= conf.spec %>/index.html', keepRunner: true }, src: [ - 'web/js/d3.js', - 'web/js/crossfilter.js', - 'web/js/colorbrewer.js', - 'dc.js' + '<%= conf.web %>/js/d3.js', + '<%= conf.web %>/js/crossfilter.js', + '<%= conf.web %>/js/colorbrewer.js', + '<%= conf.pkg.name %>.js' ] }, coverage:{ @@ -129,10 +139,10 @@ module.exports = function (grunt) { options: { display: 'short', summary: true, - specs: 'spec/*-spec.js', - helpers: 'spec/helpers/*.js', + specs: '<%= conf.spec %>/*-spec.js', + helpers: '<%= conf.spec %>/helpers/*.js', version: '2.0.0', - outfile: 'spec/index-browserify.html', + outfile: '<%= conf.spec %>/index-browserify.html', keepRunner: true }, src: [ @@ -164,14 +174,14 @@ module.exports = function (grunt) { platform: 'WIN8' } ], - testname: 'dc.js' + testname: '<%= conf.pkg.name %>.js' } } }, emu: { api: { - src: output.js, - dest: 'web/docs/api-latest.md' + src: '<%= conf.pkg.name %>.js', + dest: '<%= conf.web %>/docs/api-latest.md' } }, toc: { @@ -183,19 +193,19 @@ module.exports = function (grunt) { markdown: { html: { src: '<%= emu.api.dest %>', - dest: 'web/docs/index.html' + dest: '<%= conf.web %>/docs/index.html' }, options: {markdownOptions: {highlight: 'manual'}} }, docco: { options: { - dst: 'web/docs', - basepath:'web' + dst: '<%= conf.web %>/docs', + basepath:'<%= conf.web %>' }, howto: { files: [ { - src: ['web/stock.js'] + src: ['<%= conf.web %>/stock.js'] } ] } @@ -203,18 +213,20 @@ module.exports = function (grunt) { copy: { 'dc-to-gh': { files: [ - {expand: true, flatten: true, src: 'dc.css', dest: 'web/css/'}, + {expand: true, flatten: true, src: '<%= conf.pkg.name %>.css', dest: '<%= conf.web %>/css/'}, { expand: true, flatten: true, src: [ - output.js, - output.js + '.map', + '<%= conf.pkg.name %>.js', + '<%= conf.pkg.name %>.js.map', + '<%= conf.pkg.name %>.min.js', + '<%= conf.pkg.name %>.min.js.map', 'node_modules/d3/d3.js', 'node_modules/crossfilter/crossfilter.js', 'test/env-data.js' ], - dest: 'web/js/' + dest: '<%= conf.web %>/js/' } ] } @@ -247,7 +259,7 @@ module.exports = function (grunt) { '

An attempt to present a simple example of each chart type.', '', 'Contributions welcome.

', - '

Source ', + '

Source ', 'here.

', body, '' @@ -256,14 +268,14 @@ module.exports = function (grunt) { absolute: true }, files: [ - {dest: 'web/examples/index.html', src: ['web/examples/*.html']} + {dest: '<%= conf.web %>/examples/index.html', src: ['<%= conf.web %>/examples/*.html']} ] } }, 'gh-pages': { options: { - base: 'web', + base: '<%= conf.web %>', message: 'Synced from from master branch.' }, src: ['**'] @@ -298,36 +310,17 @@ module.exports = function (grunt) { }, browserify: { dev: { - src: 'dc.js', + src: '<%= conf.pkg.name %>.js', dest: 'bundle.js', options: { browserifyOptions: { standalone: 'dc' } } - }, + } } }); - // These plugins provide necessary tasks. - grunt.loadNpmTasks('grunt-contrib-concat'); - grunt.loadNpmTasks('grunt-contrib-connect'); - grunt.loadNpmTasks('grunt-contrib-copy'); - grunt.loadNpmTasks('grunt-contrib-jasmine'); - grunt.loadNpmTasks('grunt-contrib-jshint'); - grunt.loadNpmTasks('grunt-contrib-uglify'); - grunt.loadNpmTasks('grunt-contrib-watch'); - grunt.loadNpmTasks('grunt-docco2'); - grunt.loadNpmTasks('grunt-gh-pages'); - grunt.loadNpmTasks('grunt-jscs'); - grunt.loadNpmTasks('grunt-saucelabs'); - grunt.loadNpmTasks('grunt-markdown'); - grunt.loadNpmTasks('grunt-sed'); - grunt.loadNpmTasks('grunt-shell'); - grunt.loadNpmTasks('grunt-debug-task'); - grunt.loadNpmTasks('grunt-fileindex'); - grunt.loadNpmTasks('grunt-browserify'); - // custom tasks grunt.registerMultiTask('emu', 'Documentation extraction by emu.', function () { var emu = require('emu'), @@ -376,11 +369,11 @@ module.exports = function (grunt) { }); // task aliases - grunt.registerTask('build', ['concat', 'uglify', 'sed']); + grunt.registerTask('build', ['concat', 'uglify']); grunt.registerTask('docs', ['build', 'copy', 'emu', 'toc', 'markdown', 'docco']); grunt.registerTask('web', ['docs', 'gh-pages']); grunt.registerTask('server', ['docs', 'fileindex', 'jasmine:specs:build', 'connect:server', 'watch:jasmine']); - grunt.registerTask('test', ['build', 'jasmine:specs', 'test-stock-example', 'shell:hooks']); + grunt.registerTask('test', ['build', 'jasmine:specs', 'shell:hooks']); grunt.registerTask('test-browserify', ['build', 'browserify', 'jasmine:browserify']); grunt.registerTask('coverage', ['build', 'jasmine:coverage']); grunt.registerTask('ci', ['test', 'jasmine:specs:build', 'connect:server', 'saucelabs-jasmine']); @@ -390,7 +383,7 @@ module.exports = function (grunt) { }; module.exports.jsFiles = [ - 'src/banner.js', + 'src/banner.js', // NOTE: keep this first 'src/core.js', 'src/errors.js', 'src/utils.js', diff --git a/LICENSE_BANNER b/LICENSE_BANNER new file mode 100644 index 000000000..8e7eb0981 --- /dev/null +++ b/LICENSE_BANNER @@ -0,0 +1,18 @@ +/*! + * dc <%= conf.pkg.version %> + * http://dc-js.github.io/dc.js/ + * Copyright 2012-2015 Nick Zhu & the dc.js Developers + * https://github.com/dc-js/dc.js/blob/master/AUTHORS + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ diff --git a/dc.js b/dc.js index b05e80358..05d973a40 100644 --- a/dc.js +++ b/dc.js @@ -1,7 +1,8 @@ /*! * dc 2.1.0-dev * http://dc-js.github.io/dc.js/ - * Copyright 2012 Nick Zhu and other contributors + * Copyright 2012-2015 Nick Zhu & the dc.js Developers + * https://github.com/dc-js/dc.js/blob/master/AUTHORS * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,7 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - (function() { function _dc(d3, crossfilter) { 'use strict'; @@ -663,6 +663,7 @@ dc.baseMixin = function (_chart) { var _anchor; var _root; var _svg; + var _isChild; var _minWidth = 200; var _defaultWidth = function (element) { @@ -950,11 +951,13 @@ dc.baseMixin = function (_chart) { if (dc.instanceOfChart(a)) { _anchor = a.anchor(); _root = a.root(); + _isChild = true; } else { _anchor = a; _root = d3.select(_anchor); _root.classed(dc.constants.CHART_CLASS, true); dc.registerChart(_chart, chartGroup); + _isChild = false; } _chartGroup = chartGroup; return _chart; @@ -1680,7 +1683,13 @@ dc.baseMixin = function (_chart) { if (!arguments.length) { return _chartGroup; } + if (!_isChild) { + dc.deregisterChart(_chart, _chartGroup); + } _chartGroup = _; + if (!_isChild) { + dc.registerChart(_chart, _chartGroup); + } return _chart; }; @@ -4146,7 +4155,8 @@ dc.pieChart = function (parent, chartGroup) { _chart.legendables = function () { return _chart.data().map(function (d, i) { - var legendable = {name: _chart.legendLabelAccessor().call(this, d, i), data: d.value, others: d.others, chart:_chart}; + var legendable = { name: _chart.legendLabelAccessor().call(this, d, i), + data: d.value, others: d.others, chart:_chart }; legendable.color = _chart.getColor(d, i); return legendable; }); @@ -8776,3 +8786,5 @@ return dc;} } } )(); + +//# sourceMappingURL=dc.js.map \ No newline at end of file diff --git a/dc.js.map b/dc.js.map new file mode 100644 index 000000000..8eff7fac4 --- /dev/null +++ b/dc.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["src/banner.js","src/core.js","src/errors.js","src/utils.js","src/logger.js","src/events.js","src/filters.js","src/base-mixin.js","src/margin-mixin.js","src/color-mixin.js","src/coordinate-grid-mixin.js","src/stack-mixin.js","src/cap-mixin.js","src/bubble-mixin.js","src/pie-chart.js","src/bar-chart.js","src/line-chart.js","src/data-count.js","src/data-table.js","src/data-grid.js","src/bubble-chart.js","src/composite-chart.js","src/series-chart.js","src/geo-choropleth-chart.js","src/bubble-overlay.js","src/row-chart.js","src/legend.js","src/scatter-plot.js","src/number-display.js","src/heatmap.js","src/d3.box.js","src/box-plot.js","src/footer.js"],"names":[],"mappings":"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","file":"dc.js","sourcesContent":["(function() { function _dc(d3, crossfilter) {\n'use strict';\n","/**\n#### Version 2.1.0-dev\nThe entire dc.js library is scoped under the **dc** name space. It does not introduce anything else\ninto the global name space.\n#### Function Chaining\nMost dc functions are designed to allow function chaining, meaning they return the current chart\ninstance whenever it is appropriate. This way chart configuration can be written in the following\nstyle:\n```js\nchart.width(300)\n .height(300)\n .filter('sunday')\n```\nThe getter forms of functions do not participate in function chaining because they necessarily\nreturn values that are not the chart. (Although some, such as `.svg` and `.xAxis`, return values\nthat are chainable d3 objects.)\n\n**/\n\n/*jshint -W062*/\n/*jshint -W079*/\nvar dc = {\n version: '2.1.0-dev',\n constants: {\n CHART_CLASS: 'dc-chart',\n DEBUG_GROUP_CLASS: 'debug',\n STACK_CLASS: 'stack',\n DESELECTED_CLASS: 'deselected',\n SELECTED_CLASS: 'selected',\n NODE_INDEX_NAME: '__index__',\n GROUP_INDEX_NAME: '__group_index__',\n DEFAULT_CHART_GROUP: '__default_chart_group__',\n EVENT_DELAY: 40,\n NEGLIGIBLE_NUMBER: 1e-10\n },\n _renderlet: null\n};\n\ndc.chartRegistry = function () {\n // chartGroup:string => charts:array\n var _chartMap = {};\n\n function initializeChartGroup(group) {\n if (!group) {\n group = dc.constants.DEFAULT_CHART_GROUP;\n }\n\n if (!_chartMap[group]) {\n _chartMap[group] = [];\n }\n\n return group;\n }\n\n return {\n has: function (chart) {\n for (var e in _chartMap) {\n if (_chartMap[e].indexOf(chart) >= 0) {\n return true;\n }\n }\n return false;\n },\n\n register: function (chart, group) {\n group = initializeChartGroup(group);\n _chartMap[group].push(chart);\n },\n\n deregister: function (chart, group) {\n group = initializeChartGroup(group);\n for (var i = 0; i < _chartMap[group].length; i++) {\n if (_chartMap[group][i].anchorName() === chart.anchorName()) {\n _chartMap[group].splice(i, 1);\n break;\n }\n }\n },\n\n clear: function (group) {\n if (group) {\n delete _chartMap[group];\n } else {\n _chartMap = {};\n }\n },\n\n list: function (group) {\n group = initializeChartGroup(group);\n return _chartMap[group];\n }\n };\n}();\n/*jshint +W062 */\n/*jshint +W079*/\n\ndc.registerChart = function (chart, group) {\n dc.chartRegistry.register(chart, group);\n};\n\ndc.deregisterChart = function (chart, group) {\n dc.chartRegistry.deregister(chart, group);\n};\n\ndc.hasChart = function (chart) {\n return dc.chartRegistry.has(chart);\n};\n\ndc.deregisterAllCharts = function (group) {\n dc.chartRegistry.clear(group);\n};\n\n/**\n## Utilities\n**/\n\n/**\n#### dc.filterAll([chartGroup])\nClear all filters on all charts within the given chart group. If the chart group is not given then\nonly charts that belong to the default chart group will be reset.\n**/\ndc.filterAll = function (group) {\n var charts = dc.chartRegistry.list(group);\n for (var i = 0; i < charts.length; ++i) {\n charts[i].filterAll();\n }\n};\n\n/**\n#### dc.refocusAll([chartGroup])\nReset zoom level / focus on all charts that belong to the given chart group. If the chart group is\nnot given then only charts that belong to the default chart group will be reset.\n**/\ndc.refocusAll = function (group) {\n var charts = dc.chartRegistry.list(group);\n for (var i = 0; i < charts.length; ++i) {\n if (charts[i].focus) {\n charts[i].focus();\n }\n }\n};\n\n/**\n#### dc.renderAll([chartGroup])\nRe-render all charts belong to the given chart group. If the chart group is not given then only\ncharts that belong to the default chart group will be re-rendered.\n**/\ndc.renderAll = function (group) {\n var charts = dc.chartRegistry.list(group);\n for (var i = 0; i < charts.length; ++i) {\n charts[i].render();\n }\n\n if (dc._renderlet !== null) {\n dc._renderlet(group);\n }\n};\n\n/**\n#### dc.redrawAll([chartGroup])\nRedraw all charts belong to the given chart group. If the chart group is not given then only charts\nthat belong to the default chart group will be re-drawn. Redraw is different from re-render since\nwhen redrawing dc tries to update the graphic incrementally, using transitions, instead of starting\nfrom scratch.\n**/\ndc.redrawAll = function (group) {\n var charts = dc.chartRegistry.list(group);\n for (var i = 0; i < charts.length; ++i) {\n charts[i].redraw();\n }\n\n if (dc._renderlet !== null) {\n dc._renderlet(group);\n }\n};\n\n/**\n#### dc.disableTransitions\nIf this boolean is set truthy, all transitions will be disabled, and changes to the charts will happen\nimmediately. Default: false\n**/\ndc.disableTransitions = false;\n\ndc.transition = function (selections, duration, callback) {\n if (duration <= 0 || duration === undefined || dc.disableTransitions) {\n return selections;\n }\n\n var s = selections\n .transition()\n .duration(duration);\n\n if (typeof(callback) === 'function') {\n callback(s);\n }\n\n return s;\n};\n\ndc.units = {};\n\n/**\n#### dc.units.integers\n`dc.units.integers` is the default value for `xUnits` for the [Coordinate Grid\nChart](#coordinate-grid-chart) and should be used when the x values are a sequence of integers.\n\nIt is a function that counts the number of integers in the range supplied in its start and end parameters.\n\n```js\nchart.xUnits(dc.units.integers) // already the default\n```\n\n**/\ndc.units.integers = function (s, e) {\n return Math.abs(e - s);\n};\n\n/**\n#### dc.units.ordinal\nThis argument can be passed to the `xUnits` function of the to specify ordinal units for the x\naxis. Usually this parameter is used in combination with passing `d3.scale.ordinal()` to `.x`.\n\nIt just returns the domain passed to it, which for ordinal charts is an array of all values.\n\n```js\nchart.xUnits(dc.units.ordinal)\n .x(d3.scale.ordinal())\n```\n\n**/\ndc.units.ordinal = function (s, e, domain) {\n return domain;\n};\n\n/**\n#### dc.units.fp.precision(precision)\nThis function generates an argument for the [Coordinate Grid Chart's](#coordinate-grid-chart)\n`xUnits` function specifying that the x values are floating-point numbers with the given\nprecision.\n\nThe returned function determines how many values at the given precision will fit into the range\nsupplied in its start and end parameters.\n\n```js\n// specify values (and ticks) every 0.1 units\nchart.xUnits(dc.units.fp.precision(0.1)\n// there are 500 units between 0.5 and 1 if the precision is 0.001\nvar thousandths = dc.units.fp.precision(0.001);\nthousandths(0.5, 1.0) // returns 500\n```\n**/\ndc.units.fp = {};\ndc.units.fp.precision = function (precision) {\n var _f = function (s, e) {\n var d = Math.abs((e - s) / _f.resolution);\n if (dc.utils.isNegligible(d - Math.floor(d))) {\n return Math.floor(d);\n } else {\n return Math.ceil(d);\n }\n };\n _f.resolution = precision;\n return _f;\n};\n\ndc.round = {};\ndc.round.floor = function (n) {\n return Math.floor(n);\n};\ndc.round.ceil = function (n) {\n return Math.ceil(n);\n};\ndc.round.round = function (n) {\n return Math.round(n);\n};\n\ndc.override = function (obj, functionName, newFunction) {\n var existingFunction = obj[functionName];\n obj['_' + functionName] = existingFunction;\n obj[functionName] = newFunction;\n};\n\ndc.renderlet = function (_) {\n if (!arguments.length) {\n return dc._renderlet;\n }\n dc._renderlet = _;\n return dc;\n};\n\ndc.instanceOfChart = function (o) {\n return o instanceof Object && o.__dcFlag__ && true;\n};\n","dc.errors = {};\n\ndc.errors.Exception = function (msg) {\n var _msg = msg || 'Unexpected internal error';\n\n this.message = _msg;\n\n this.toString = function () {\n return _msg;\n };\n};\n\ndc.errors.InvalidStateException = function () {\n dc.errors.Exception.apply(this, arguments);\n};\n","dc.dateFormat = d3.time.format('%m/%d/%Y');\n\ndc.printers = {};\n\ndc.printers.filters = function (filters) {\n var s = '';\n\n for (var i = 0; i < filters.length; ++i) {\n if (i > 0) {\n s += ', ';\n }\n s += dc.printers.filter(filters[i]);\n }\n\n return s;\n};\n\ndc.printers.filter = function (filter) {\n var s = '';\n\n if (typeof filter !== 'undefined' && filter !== null) {\n if (filter instanceof Array) {\n if (filter.length >= 2) {\n s = '[' + dc.utils.printSingleValue(filter[0]) + ' -> ' + dc.utils.printSingleValue(filter[1]) + ']';\n } else if (filter.length >= 1) {\n s = dc.utils.printSingleValue(filter[0]);\n }\n } else {\n s = dc.utils.printSingleValue(filter);\n }\n }\n\n return s;\n};\n\ndc.pluck = function (n, f) {\n if (!f) {\n return function (d) { return d[n]; };\n }\n return function (d, i) { return f.call(d, d[n], i); };\n};\n\ndc.utils = {};\n\ndc.utils.printSingleValue = function (filter) {\n var s = '' + filter;\n\n if (filter instanceof Date) {\n s = dc.dateFormat(filter);\n } else if (typeof(filter) === 'string') {\n s = filter;\n } else if (dc.utils.isFloat(filter)) {\n s = dc.utils.printSingleValue.fformat(filter);\n } else if (dc.utils.isInteger(filter)) {\n s = Math.round(filter);\n }\n\n return s;\n};\ndc.utils.printSingleValue.fformat = d3.format('.2f');\n\n// FIXME: these assume than any string r is a percentage (whether or not it\n// includes %). They also generate strange results if l is a string.\ndc.utils.add = function (l, r) {\n if (typeof r === 'string') {\n r = r.replace('%', '');\n }\n\n if (l instanceof Date) {\n if (typeof r === 'string') {\n r = +r;\n }\n var d = new Date();\n d.setTime(l.getTime());\n d.setDate(l.getDate() + r);\n return d;\n } else if (typeof r === 'string') {\n var percentage = (+r / 100);\n return l > 0 ? l * (1 + percentage) : l * (1 - percentage);\n } else {\n return l + r;\n }\n};\n\ndc.utils.subtract = function (l, r) {\n if (typeof r === 'string') {\n r = r.replace('%', '');\n }\n\n if (l instanceof Date) {\n if (typeof r === 'string') {\n r = +r;\n }\n var d = new Date();\n d.setTime(l.getTime());\n d.setDate(l.getDate() - r);\n return d;\n } else if (typeof r === 'string') {\n var percentage = (+r / 100);\n return l < 0 ? l * (1 + percentage) : l * (1 - percentage);\n } else {\n return l - r;\n }\n};\n\ndc.utils.isNumber = function (n) {\n return n === +n;\n};\n\ndc.utils.isFloat = function (n) {\n return n === +n && n !== (n | 0);\n};\n\ndc.utils.isInteger = function (n) {\n return n === +n && n === (n | 0);\n};\n\ndc.utils.isNegligible = function (n) {\n return !dc.utils.isNumber(n) || (n < dc.constants.NEGLIGIBLE_NUMBER && n > -dc.constants.NEGLIGIBLE_NUMBER);\n};\n\ndc.utils.clamp = function (val, min, max) {\n return val < min ? min : (val > max ? max : val);\n};\n\nvar _idCounter = 0;\ndc.utils.uniqueId = function () {\n return ++_idCounter;\n};\n\ndc.utils.nameToId = function (name) {\n return name.toLowerCase().replace(/[\\s]/g, '_').replace(/[\\.']/g, '');\n};\n\ndc.utils.appendOrSelect = function (parent, selector, tag) {\n tag = tag || selector;\n var element = parent.select(selector);\n if (element.empty()) {\n element = parent.append(tag);\n }\n return element;\n};\n\ndc.utils.safeNumber = function (n) { return dc.utils.isNumber(+n) ? +n : 0;};\n","dc.logger = {};\n\ndc.logger.enableDebugLog = false;\n\ndc.logger.warn = function (msg) {\n if (console) {\n if (console.warn) {\n console.warn(msg);\n } else if (console.log) {\n console.log(msg);\n }\n }\n\n return dc.logger;\n};\n\ndc.logger.debug = function (msg) {\n if (dc.logger.enableDebugLog && console) {\n if (console.debug) {\n console.debug(msg);\n } else if (console.log) {\n console.log(msg);\n }\n }\n\n return dc.logger;\n};\n\ndc.logger.deprecate = function (fn, msg) {\n // Allow logging of deprecation\n var warned = false;\n function deprecated() {\n if (!warned) {\n dc.logger.warn(msg);\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n};\n","dc.events = {\n current: null\n};\n\n/**\n#### dc.events.trigger(function[, delay])\nThis function triggers a throttled event function with a specified delay (in milli-seconds). Events\nthat are triggered repetitively due to user interaction such brush dragging might flood the library\nand invoke more renders than can be executed in time. Using this function to wrap your event\nfunction allows the library to smooth out the rendering by throttling events and only responding to\nthe most recent event.\n\n```js\n chart.renderlet(function(chart){\n // smooth the rendering through event throttling\n dc.events.trigger(function(){\n // focus some other chart to the range selected by user on this chart\n someOtherChart.focus(chart.filter());\n });\n })\n```\n**/\ndc.events.trigger = function (closure, delay) {\n if (!delay) {\n closure();\n return;\n }\n\n dc.events.current = closure;\n\n setTimeout(function () {\n if (closure === dc.events.current) {\n closure();\n }\n }, delay);\n};\n","dc.filters = {};\n\n/**\n## Filters\nThe dc.js filters are functions which are passed into crossfilter to chose which records will be\naccumulated to produce values for the charts. In the crossfilter model, any filters applied on one\ndimension will affect all the other dimensions but not that one. dc always applies a filter\nfunction to the dimension; the function combines multiple filters and if any of them accept a\nrecord, it is filtered in.\n\nThese filter constructors are used as appropriate by the various charts to implement brushing. We\nmention below which chart uses which filter. In some cases, many instances of a filter will be added.\n\n**/\n\n/**\n#### dc.filters.RangedFilter(low, high)\n RangedFilter is a filter which accepts keys between `low` and `high`. It is used to implement X\n axis brushing for the [coordinate grid charts](#coordinate-grid-mixin).\n**/\ndc.filters.RangedFilter = function (low, high) {\n var range = new Array(low, high);\n range.isFiltered = function (value) {\n return value >= this[0] && value < this[1];\n };\n\n return range;\n};\n\n/**\n#### dc.filters.TwoDimensionalFilter(array)\n TwoDimensionalFilter is a filter which accepts a single two-dimensional value. It is used by the\n [heat map chart](#heat-map) to include particular cells as they are clicked. (Rows and columns are\n filtered by filtering all the cells in the row or column.)\n**/\ndc.filters.TwoDimensionalFilter = function (array) {\n if (array === null) { return null; }\n\n var filter = array;\n filter.isFiltered = function (value) {\n return value.length && value.length === filter.length &&\n value[0] === filter[0] && value[1] === filter[1];\n };\n\n return filter;\n};\n\n/**\n#### dc.filters.RangedTwoDimensionalFilter(array)\n The RangedTwoDimensionalFilter allows filtering all values which fit within a rectangular\n region. It is used by the [scatter plot](#scatter-plot) to implement rectangular brushing.\n\n It takes two two-dimensional points in the form `[[x1,y1],[x2,y2]]`, and normalizes them so that\n `x1 <= x2` and `y1 <- y2`. It then returns a filter which accepts any points which are in the\n rectangular range including the lower values but excluding the higher values.\n\n If an array of two values are given to the RangedTwoDimensionalFilter, it interprets the values as\n two x coordinates `x1` and `x2` and returns a filter which accepts any points for which `x1 <= x <\n x2`.\n **/\ndc.filters.RangedTwoDimensionalFilter = function (array) {\n if (array === null) { return null; }\n\n var filter = array;\n var fromBottomLeft;\n\n if (filter[0] instanceof Array) {\n fromBottomLeft = [\n [Math.min(array[0][0], array[1][0]), Math.min(array[0][1], array[1][1])],\n [Math.max(array[0][0], array[1][0]), Math.max(array[0][1], array[1][1])]\n ];\n } else {\n fromBottomLeft = [[array[0], -Infinity], [array[1], Infinity]];\n }\n\n filter.isFiltered = function (value) {\n var x, y;\n\n if (value instanceof Array) {\n if (value.length !== 2) {\n return false;\n }\n x = value[0];\n y = value[1];\n } else {\n x = value;\n y = fromBottomLeft[0][1];\n }\n\n return x >= fromBottomLeft[0][0] && x < fromBottomLeft[1][0] &&\n y >= fromBottomLeft[0][1] && y < fromBottomLeft[1][1];\n };\n\n return filter;\n};\n","/**\n## Base Mixin\nBase Mixin is an abstract functional object representing a basic dc chart object\nfor all chart and widget implementations. Methods from the Base Mixin are inherited\nand available on all chart implementation in the DC library.\n**/\ndc.baseMixin = function (_chart) {\n _chart.__dcFlag__ = dc.utils.uniqueId();\n\n var _dimension;\n var _group;\n\n var _anchor;\n var _root;\n var _svg;\n var _isChild;\n\n var _minWidth = 200;\n var _defaultWidth = function (element) {\n var width = element && element.getBoundingClientRect && element.getBoundingClientRect().width;\n return (width && width > _minWidth) ? width : _minWidth;\n };\n var _width = _defaultWidth;\n\n var _minHeight = 200;\n var _defaultHeight = function (element) {\n var height = element && element.getBoundingClientRect && element.getBoundingClientRect().height;\n return (height && height > _minHeight) ? height : _minHeight;\n };\n var _height = _defaultHeight;\n\n var _keyAccessor = dc.pluck('key');\n var _valueAccessor = dc.pluck('value');\n var _label = dc.pluck('key');\n var _legendLabelAccessor = dc.pluck('key');\n\n var _ordering = dc.pluck('key');\n var _orderSort;\n\n var _renderLabel = false;\n\n var _title = function (d) {\n return _chart.keyAccessor()(d) + ': ' + _chart.valueAccessor()(d);\n };\n var _renderTitle = true;\n\n var _transitionDuration = 750;\n\n var _filterPrinter = dc.printers.filters;\n\n var _mandatoryAttributes = ['dimension', 'group'];\n\n var _chartGroup = dc.constants.DEFAULT_CHART_GROUP;\n\n var _listeners = d3.dispatch(\n 'preRender',\n 'postRender',\n 'preRedraw',\n 'postRedraw',\n 'filtered',\n 'zoomed',\n 'renderlet');\n\n var _legend;\n\n var _filters = [];\n var _filterHandler = function (dimension, filters) {\n dimension.filter(null);\n\n if (filters.length === 0) {\n dimension.filter(null);\n } else {\n dimension.filterFunction(function (d) {\n for (var i = 0; i < filters.length; i++) {\n var filter = filters[i];\n if (filter.isFiltered && filter.isFiltered(d)) {\n return true;\n } else if (filter <= d && filter >= d) {\n return true;\n }\n }\n return false;\n });\n }\n return filters;\n };\n\n var _data = function (group) {\n return group.all();\n };\n\n /**\n #### .width([value])\n Set or get the width attribute of a chart. See `.height` below for further description of the\n behavior.\n\n **/\n _chart.width = function (w) {\n if (!arguments.length) {\n return _width(_root.node());\n }\n _width = d3.functor(w || _defaultWidth);\n return _chart;\n };\n\n /**\n #### .height([value])\n Set or get the height attribute of a chart. The height is applied to the SVG element generated by\n the chart when rendered (or rerendered). If a value is given, then it will be used to calculate\n the new height and the chart returned for method chaining. The value can either be a numeric, a\n function, or falsy. If no value is specified then the value of the current height attribute will\n be returned.\n\n By default, without an explicit height being given, the chart will select the width of its\n anchor element. If that isn't possible it defaults to 200. Setting the value falsy will return\n the chart to the default behavior\n\n Examples:\n\n ```js\n chart.height(250); // Set the chart's height to 250px;\n chart.height(function(anchor) { return doSomethingWith(anchor); }); // set the chart's height with a function\n chart.height(null); // reset the height to the default auto calculation\n ```\n\n **/\n _chart.height = function (h) {\n if (!arguments.length) {\n return _height(_root.node());\n }\n _height = d3.functor(h || _defaultHeight);\n return _chart;\n };\n\n /**\n #### .minWidth([value])\n Set or get the minimum width attribute of a chart. This only applicable if the width is\n calculated by dc.\n\n **/\n _chart.minWidth = function (w) {\n if (!arguments.length) {\n return _minWidth;\n }\n _minWidth = w;\n return _chart;\n };\n\n /**\n #### .minHeight([value])\n Set or get the minimum height attribute of a chart. This only applicable if the height is\n calculated by dc.\n\n **/\n _chart.minHeight = function (w) {\n if (!arguments.length) {\n return _minHeight;\n }\n _minHeight = w;\n return _chart;\n };\n\n /**\n #### .dimension([value]) - **mandatory**\n Set or get the dimension attribute of a chart. In dc a dimension can be any valid [crossfilter\n dimension](https://github.com/square/crossfilter/wiki/API-Reference#wiki-dimension).\n\n If a value is given, then it will be used as the new dimension. If no value is specified then\n the current dimension will be returned.\n\n **/\n _chart.dimension = function (d) {\n if (!arguments.length) {\n return _dimension;\n }\n _dimension = d;\n _chart.expireCache();\n return _chart;\n };\n\n /**\n #### .data([callback])\n Set the data callback or retrieve the chart's data set. The data callback is passed the chart's\n group and by default will return `group.all()`. This behavior may be modified to, for instance,\n return only the top 5 groups:\n ```\n chart.data(function(group) {\n return group.top(5);\n });\n ```\n **/\n _chart.data = function (d) {\n if (!arguments.length) {\n return _data.call(_chart, _group);\n }\n _data = d3.functor(d);\n _chart.expireCache();\n return _chart;\n };\n\n /**\n #### .group([value, [name]]) - **mandatory**\n Set or get the group attribute of a chart. In dc a group is a [crossfilter\n group](https://github.com/square/crossfilter/wiki/API-Reference#wiki-group). Usually the group\n should be created from the particular dimension associated with the same chart. If a value is\n given, then it will be used as the new group.\n\n If no value specified then the current group will be returned.\n If `name` is specified then it will be used to generate legend label.\n\n **/\n _chart.group = function (g, name) {\n if (!arguments.length) {\n return _group;\n }\n _group = g;\n _chart._groupName = name;\n _chart.expireCache();\n return _chart;\n };\n\n /**\n #### .ordering([orderFunction])\n Get or set an accessor to order ordinal charts\n **/\n _chart.ordering = function (o) {\n if (!arguments.length) {\n return _ordering;\n }\n _ordering = o;\n _orderSort = crossfilter.quicksort.by(_ordering);\n _chart.expireCache();\n return _chart;\n };\n\n _chart._computeOrderedGroups = function (data) {\n var dataCopy = data.slice(0);\n\n if (dataCopy.length <= 1) {\n return dataCopy;\n }\n\n if (!_orderSort) {\n _orderSort = crossfilter.quicksort.by(_ordering);\n }\n\n return _orderSort(dataCopy, 0, dataCopy.length);\n };\n\n /**\n #### .filterAll()\n Clear all filters associated with this chart.\n\n **/\n _chart.filterAll = function () {\n return _chart.filter(null);\n };\n\n /**\n #### .select(selector)\n Execute d3 single selection in the chart's scope using the given selector and return the d3\n selection. Roughly the same as:\n ```js\n d3.select('#chart-id').select(selector);\n ```\n This function is **not chainable** since it does not return a chart instance; however the d3\n selection result can be chained to d3 function calls.\n\n **/\n _chart.select = function (s) {\n return _root.select(s);\n };\n\n /**\n #### .selectAll(selector)\n Execute in scope d3 selectAll using the given selector and return d3 selection result. Roughly\n the same as:\n ```js\n d3.select('#chart-id').selectAll(selector);\n ```\n This function is **not chainable** since it does not return a chart instance; however the d3\n selection result can be chained to d3 function calls.\n\n **/\n _chart.selectAll = function (s) {\n return _root ? _root.selectAll(s) : null;\n };\n\n /**\n #### .anchor([anchorChart|anchorSelector|anchorNode], [chartGroup])\n Set the svg root to either be an existing chart's root; or any valid [d3 single\n selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying a dom\n block element such as a div; or a dom element or d3 selection. Optionally registers the chart\n within the chartGroup. This class is called internally on chart initialization, but be called\n again to relocate the chart. However, it will orphan any previously created SVG elements.\n **/\n _chart.anchor = function (a, chartGroup) {\n if (!arguments.length) {\n return _anchor;\n }\n if (dc.instanceOfChart(a)) {\n _anchor = a.anchor();\n _root = a.root();\n _isChild = true;\n } else {\n _anchor = a;\n _root = d3.select(_anchor);\n _root.classed(dc.constants.CHART_CLASS, true);\n dc.registerChart(_chart, chartGroup);\n _isChild = false;\n }\n _chartGroup = chartGroup;\n return _chart;\n };\n\n /**\n #### .anchorName()\n Returns the dom id for the chart's anchored location.\n\n **/\n _chart.anchorName = function () {\n var a = _chart.anchor();\n if (a && a.id) {\n return a.id;\n }\n if (a && a.replace) {\n return a.replace('#', '');\n }\n return 'dc-chart' + _chart.chartID();\n };\n\n /**\n #### .root([rootElement])\n Returns the root element where a chart resides. Usually it will be the parent div element where\n the svg was created. You can also pass in a new root element however this is usually handled by\n dc internally. Resetting the root element on a chart outside of dc internals may have\n unexpected consequences.\n\n **/\n _chart.root = function (r) {\n if (!arguments.length) {\n return _root;\n }\n _root = r;\n return _chart;\n };\n\n /**\n #### .svg([svgElement])\n Returns the top svg element for this specific chart. You can also pass in a new svg element,\n however this is usually handled by dc internally. Resetting the svg element on a chart outside\n of dc internals may have unexpected consequences.\n\n **/\n _chart.svg = function (_) {\n if (!arguments.length) {\n return _svg;\n }\n _svg = _;\n return _chart;\n };\n\n /**\n #### .resetSvg()\n Remove the chart's SVG elements from the dom and recreate the container SVG element.\n **/\n _chart.resetSvg = function () {\n _chart.select('svg').remove();\n return generateSvg();\n };\n\n function generateSvg() {\n _svg = _chart.root().append('svg')\n .attr('width', _chart.width())\n .attr('height', _chart.height());\n return _svg;\n }\n\n /**\n #### .filterPrinter([filterPrinterFunction])\n Set or get the filter printer function. The filter printer function is used to generate human\n friendly text for filter value(s) associated with the chart instance. By default dc charts use a\n default filter printer `dc.printers.filter` that provides simple printing support for both\n single value and ranged filters.\n\n **/\n _chart.filterPrinter = function (_) {\n if (!arguments.length) {\n return _filterPrinter;\n }\n _filterPrinter = _;\n return _chart;\n };\n\n /**\n #### .turnOnControls() & .turnOffControls()\n Turn on/off optional control elements within the root element. dc currently supports the\n following html control elements.\n\n * root.selectAll('.reset') - elements are turned on if the chart has an active filter. This type\n of control element is usually used to store a reset link to allow user to reset filter on a\n certain chart. This element will be turned off automatically if the filter is cleared.\n * root.selectAll('.filter') elements are turned on if the chart has an active filter. The text\n content of this element is then replaced with the current filter value using the filter printer\n function. This type of element will be turned off automatically if the filter is cleared.\n\n **/\n _chart.turnOnControls = function () {\n if (_root) {\n _chart.selectAll('.reset').style('display', null);\n _chart.selectAll('.filter').text(_filterPrinter(_chart.filters())).style('display', null);\n }\n return _chart;\n };\n\n _chart.turnOffControls = function () {\n if (_root) {\n _chart.selectAll('.reset').style('display', 'none');\n _chart.selectAll('.filter').style('display', 'none').text(_chart.filter());\n }\n return _chart;\n };\n\n /**\n #### .transitionDuration([duration])\n Set or get the animation transition duration(in milliseconds) for this chart instance. Default\n duration is 750ms.\n\n **/\n _chart.transitionDuration = function (d) {\n if (!arguments.length) {\n return _transitionDuration;\n }\n _transitionDuration = d;\n return _chart;\n };\n\n _chart._mandatoryAttributes = function (_) {\n if (!arguments.length) {\n return _mandatoryAttributes;\n }\n _mandatoryAttributes = _;\n return _chart;\n };\n\n function checkForMandatoryAttributes(a) {\n if (!_chart[a] || !_chart[a]()) {\n throw new dc.errors.InvalidStateException('Mandatory attribute chart.' + a +\n ' is missing on chart[#' + _chart.anchorName() + ']');\n }\n }\n\n /**\n #### .render()\n Invoking this method will force the chart to re-render everything from scratch. Generally it\n should only be used to render the chart for the first time on the page or if you want to make\n sure everything is redrawn from scratch instead of relying on the default incremental redrawing\n behaviour.\n\n **/\n _chart.render = function () {\n _listeners.preRender(_chart);\n\n if (_mandatoryAttributes) {\n _mandatoryAttributes.forEach(checkForMandatoryAttributes);\n }\n\n var result = _chart._doRender();\n\n if (_legend) {\n _legend.render();\n }\n\n _chart._activateRenderlets('postRender');\n\n return result;\n };\n\n _chart._activateRenderlets = function (event) {\n if (_chart.transitionDuration() > 0 && _svg) {\n _svg.transition().duration(_chart.transitionDuration())\n .each('end', function () {\n _listeners['renderlet'](_chart);\n if (event) {\n _listeners[event](_chart);\n }\n });\n } else {\n _listeners['renderlet'](_chart);\n if (event) {\n _listeners[event](_chart);\n }\n }\n };\n\n /**\n #### .redraw()\n Calling redraw will cause the chart to re-render data changes incrementally. If there is no\n change in the underlying data dimension then calling this method will have no effect on the\n chart. Most chart interaction in dc will automatically trigger this method through internal\n events (in particular [dc.redrawAll](#dcredrawallchartgroup)); therefore, you only need to\n manually invoke this function if data is manipulated outside of dc's control (for example if\n data is loaded in the background using `crossfilter.add()`).\n\n **/\n _chart.redraw = function () {\n _listeners.preRedraw(_chart);\n\n var result = _chart._doRedraw();\n\n if (_legend) {\n _legend.render();\n }\n\n _chart._activateRenderlets('postRedraw');\n\n return result;\n };\n\n _chart.redrawGroup = function () {\n dc.redrawAll(_chart.chartGroup());\n };\n\n _chart.renderGroup = function () {\n dc.renderAll(_chart.chartGroup());\n };\n\n _chart._invokeFilteredListener = function (f) {\n if (f !== undefined) {\n _listeners.filtered(_chart, f);\n }\n };\n\n _chart._invokeZoomedListener = function () {\n _listeners.zoomed(_chart);\n };\n\n var _hasFilterHandler = function (filters, filter) {\n if (filter === null || typeof(filter) === 'undefined') {\n return filters.length > 0;\n }\n return filters.some(function (f) {\n return filter <= f && filter >= f;\n });\n };\n\n /**\n #### .hasFilterHandler([function])\n Set or get the has filter handler. The has filter handler is a function that checks to see if\n the chart's current filters include a specific filter. Using a custom has filter handler allows\n you to change the way filters are checked for and replaced.\n\n ```js\n // default has filter handler\n function (filters, filter) {\n if (filter === null || typeof(filter) === 'undefined') {\n return filters.length > 0;\n }\n return filters.some(function (f) {\n return filter <= f && filter >= f;\n });\n }\n\n // custom filter handler (no-op)\n chart.hasFilterHandler(function(filters, filter) {\n return false;\n });\n ```\n **/\n _chart.hasFilterHandler = function (_) {\n if (!arguments.length) {\n return _hasFilterHandler;\n }\n _hasFilterHandler = _;\n return _chart;\n };\n\n /**\n #### .hasFilter([filter])\n Check whether any active filter or a specific filter is associated with particular chart instance.\n This function is **not chainable**.\n\n **/\n _chart.hasFilter = function (filter) {\n return _hasFilterHandler(_filters, filter);\n };\n\n var _removeFilterHandler = function (filters, filter) {\n for (var i = 0; i < filters.length; i++) {\n if (filters[i] <= filter && filters[i] >= filter) {\n filters.splice(i, 1);\n break;\n }\n }\n return filters;\n };\n\n /**\n #### .removeFilterHandler([function])\n Set or get the remove filter handler. The remove filter handler is a function that removes a\n filter from the chart's current filters. Using a custom remove filter handler allows you to\n change how filters are removed or perform additional work when removing a filter, e.g. when\n using a filter server other than crossfilter.\n\n Any changes should modify the `filters` array argument and return that array.\n\n ```js\n // default remove filter handler\n function (filters, filter) {\n for (var i = 0; i < filters.length; i++) {\n if (filters[i] <= filter && filters[i] >= filter) {\n filters.splice(i, 1);\n break;\n }\n }\n return filters;\n }\n\n // custom filter handler (no-op)\n chart.removeFilterHandler(function(filters, filter) {\n return filters;\n });\n ```\n **/\n _chart.removeFilterHandler = function (_) {\n if (!arguments.length) {\n return _removeFilterHandler;\n }\n _removeFilterHandler = _;\n return _chart;\n };\n\n var _addFilterHandler = function (filters, filter) {\n filters.push(filter);\n return filters;\n };\n\n /**\n #### .addFilterHandler([function])\n Set or get the add filter handler. The add filter handler is a function that adds a filter to\n the chart's filter list. Using a custom add filter handler allows you to change the way filters\n are added or perform additional work when adding a filter, e.g. when using a filter server other\n than crossfilter.\n\n Any changes should modify the `filters` array argument and return that array.\n\n ```js\n // default add filter handler\n function (filters, filter) {\n filters.push(filter);\n return filters;\n }\n\n // custom filter handler (no-op)\n chart.addFilterHandler(function(filters, filter) {\n return filters;\n });\n ```\n **/\n _chart.addFilterHandler = function (_) {\n if (!arguments.length) {\n return _addFilterHandler;\n }\n _addFilterHandler = _;\n return _chart;\n };\n\n var _resetFilterHandler = function (filters) {\n return [];\n };\n\n /**\n #### .resetFilterHandler([function])\n Set or get the reset filter handler. The reset filter handler is a function that resets the\n chart's filter list by returning a new list. Using a custom reset filter handler allows you to\n change the way filters are reset, or perform additional work when resetting the filters,\n e.g. when using a filter server other than crossfilter.\n\n This function should return an array.\n\n ```js\n // default remove filter handler\n function (filters) {\n return [];\n }\n\n // custom filter handler (no-op)\n chart.resetFilterHandler(function(filters) {\n return filters;\n });\n ```\n **/\n _chart.resetFilterHandler = function (_) {\n if (!arguments.length) {\n return _resetFilterHandler;\n }\n _resetFilterHandler = _;\n return _chart;\n };\n\n function applyFilters() {\n if (_chart.dimension() && _chart.dimension().filter) {\n var fs = _filterHandler(_chart.dimension(), _filters);\n _filters = fs ? fs : _filters;\n }\n }\n\n _chart.replaceFilter = function (_) {\n _filters = [];\n _chart.filter(_);\n };\n\n /**\n #### .filter([filterValue])\n Filter the chart by the given value or return the current filter if the input parameter is missing.\n ```js\n // filter by a single string\n chart.filter('Sunday');\n // filter by a single age\n chart.filter(18);\n ```\n **/\n _chart.filter = function (_) {\n if (!arguments.length) {\n return _filters.length > 0 ? _filters[0] : null;\n }\n if (_ instanceof Array && _[0] instanceof Array && !_.isFiltered) {\n _[0].forEach(function (d) {\n if (_chart.hasFilter(d)) {\n _removeFilterHandler(_filters, d);\n } else {\n _addFilterHandler(_filters, d);\n }\n });\n } else if (_ === null) {\n _filters = _resetFilterHandler(_filters);\n } else {\n if (_chart.hasFilter(_)) {\n _removeFilterHandler(_filters, _);\n } else {\n _addFilterHandler(_filters, _);\n }\n }\n applyFilters();\n _chart._invokeFilteredListener(_);\n\n if (_root !== null && _chart.hasFilter()) {\n _chart.turnOnControls();\n } else {\n _chart.turnOffControls();\n }\n\n return _chart;\n };\n\n /**\n #### .filters()\n Returns all current filters. This method does not perform defensive cloning of the internal\n filter array before returning, therefore any modification of the returned array will effect the\n chart's internal filter storage.\n\n **/\n _chart.filters = function () {\n return _filters;\n };\n\n _chart.highlightSelected = function (e) {\n d3.select(e).classed(dc.constants.SELECTED_CLASS, true);\n d3.select(e).classed(dc.constants.DESELECTED_CLASS, false);\n };\n\n _chart.fadeDeselected = function (e) {\n d3.select(e).classed(dc.constants.SELECTED_CLASS, false);\n d3.select(e).classed(dc.constants.DESELECTED_CLASS, true);\n };\n\n _chart.resetHighlight = function (e) {\n d3.select(e).classed(dc.constants.SELECTED_CLASS, false);\n d3.select(e).classed(dc.constants.DESELECTED_CLASS, false);\n };\n\n /**\n #### .onClick(datum)\n This function is passed to d3 as the onClick handler for each chart. The default behavior is to\n filter on the clicked datum (passed to the callback) and redraw the chart group.\n **/\n _chart.onClick = function (d) {\n var filter = _chart.keyAccessor()(d);\n dc.events.trigger(function () {\n _chart.filter(filter);\n _chart.redrawGroup();\n });\n };\n\n /**\n #### .filterHandler([function])\n Set or get the filter handler. The filter handler is a function that performs the filter action\n on a specific dimension. Using a custom filter handler allows you to perform additional logic\n before or after filtering.\n\n ```js\n // default filter handler\n function(dimension, filter){\n dimension.filter(filter); // perform filtering\n return filter; // return the actual filter value\n }\n\n // custom filter handler\n chart.filterHandler(function(dimension, filter){\n var newFilter = filter + 10;\n dimension.filter(newFilter);\n return newFilter; // set the actual filter value to the new value\n });\n ```\n\n **/\n _chart.filterHandler = function (_) {\n if (!arguments.length) {\n return _filterHandler;\n }\n _filterHandler = _;\n return _chart;\n };\n\n // abstract function stub\n _chart._doRender = function () {\n // do nothing in base, should be overridden by sub-function\n return _chart;\n };\n\n _chart._doRedraw = function () {\n // do nothing in base, should be overridden by sub-function\n return _chart;\n };\n\n _chart.legendables = function () {\n // do nothing in base, should be overridden by sub-function\n return [];\n };\n\n _chart.legendHighlight = function () {\n // do nothing in base, should be overridden by sub-function\n };\n\n _chart.legendReset = function () {\n // do nothing in base, should be overridden by sub-function\n };\n\n _chart.legendToggle = function () {\n // do nothing in base, should be overriden by sub-function\n };\n\n _chart.isLegendableHidden = function () {\n // do nothing in base, should be overridden by sub-function\n return false;\n };\n\n /**\n #### .keyAccessor([keyAccessorFunction])\n Set or get the key accessor function. The key accessor function is used to retrieve the key\n value from the crossfilter group. Key values are used differently in different charts, for\n example keys correspond to slices in a pie chart and x axis positions in a grid coordinate chart.\n ```js\n // default key accessor\n chart.keyAccessor(function(d) { return d.key; });\n // custom key accessor for a multi-value crossfilter reduction\n chart.keyAccessor(function(p) { return p.value.absGain; });\n ```\n\n **/\n _chart.keyAccessor = function (_) {\n if (!arguments.length) {\n return _keyAccessor;\n }\n _keyAccessor = _;\n return _chart;\n };\n\n /**\n #### .valueAccessor([valueAccessorFunction])\n Set or get the value accessor function. The value accessor function is used to retrieve the\n value from the crossfilter group. Group values are used differently in different charts, for\n example values correspond to slice sizes in a pie chart and y axis positions in a grid\n coordinate chart.\n ```js\n // default value accessor\n chart.valueAccessor(function(d) { return d.value; });\n // custom value accessor for a multi-value crossfilter reduction\n chart.valueAccessor(function(p) { return p.value.percentageGain; });\n ```\n\n **/\n _chart.valueAccessor = function (_) {\n if (!arguments.length) {\n return _valueAccessor;\n }\n _valueAccessor = _;\n return _chart;\n };\n\n\n /**\n #### .legendLabelAccessor([legendLabelAccessorFunction])\n Set or get the legend label accessor function. The legend label accessor function is used to retrieve the\n value from the legend label for the crossfilter group.\n ```js\n // default legenLabel accessor\n chart.legendLabelAccessor(function(d) { return d.key; });\n // custom legen label accessor for a multi-value crossfilter reduction\n chart.legendLabelAccessor(function(p) { return \"Custom Legend:\" + p.key; });\n ```\n\n **/\n _chart.legendLabelAccessor = function (_) {\n if (!arguments.length) {\n return _legendLabelAccessor;\n }\n _legendLabelAccessor = _;\n return _chart;\n };\n\n /**\n #### .label([labelFunction])\n Set or get the label function. The chart class will use this function to render labels for each\n child element in the chart, e.g. slices in a pie chart or bubbles in a bubble chart. Not every\n chart supports the label function for example bar chart and line chart do not use this function\n at all.\n ```js\n // default label function just return the key\n chart.label(function(d) { return d.key; });\n // label function has access to the standard d3 data binding and can get quite complicated\n chart.label(function(d) { return d.data.key + '(' + Math.floor(d.data.value / all.value() * 100) + '%)'; });\n ```\n\n **/\n _chart.label = function (_) {\n if (!arguments.length) {\n return _label;\n }\n _label = _;\n _renderLabel = true;\n return _chart;\n };\n\n /**\n #### .renderLabel(boolean)\n Turn on/off label rendering\n\n **/\n _chart.renderLabel = function (_) {\n if (!arguments.length) {\n return _renderLabel;\n }\n _renderLabel = _;\n return _chart;\n };\n\n /**\n #### .title([titleFunction])\n Set or get the title function. The chart class will use this function to render the svg title\n (usually interpreted by browser as tooltips) for each child element in the chart, e.g. a slice\n in a pie chart or a bubble in a bubble chart. Almost every chart supports the title function;\n however in grid coordinate charts you need to turn off the brush in order to see titles, because\n otherwise the brush layer will block tooltip triggering.\n ```js\n // default title function just return the key\n chart.title(function(d) { return d.key + ': ' + d.value; });\n // title function has access to the standard d3 data binding and can get quite complicated\n chart.title(function(p) {\n return p.key.getFullYear()\n + '\\n'\n + 'Index Gain: ' + numberFormat(p.value.absGain) + '\\n'\n + 'Index Gain in Percentage: ' + numberFormat(p.value.percentageGain) + '%\\n'\n + 'Fluctuation / Index Ratio: ' + numberFormat(p.value.fluctuationPercentage) + '%';\n });\n ```\n\n **/\n _chart.title = function (_) {\n if (!arguments.length) {\n return _title;\n }\n _title = _;\n return _chart;\n };\n\n /**\n #### .renderTitle(boolean)\n Turn on/off title rendering, or return the state of the render title flag if no arguments are\n given.\n\n **/\n _chart.renderTitle = function (_) {\n if (!arguments.length) {\n return _renderTitle;\n }\n _renderTitle = _;\n return _chart;\n };\n\n /**\n #### .renderlet(renderletFunction)\n A renderlet is similar to an event listener on rendering event. Multiple renderlets can be added\n to an individual chart. Each time a chart is rerendered or redrawn the renderlets are invoked\n right after the chart finishes its own drawing routine, giving you a way to modify the svg\n elements. Renderlet functions take the chart instance as the only input parameter and you can\n use the dc API or use raw d3 to achieve pretty much any effect.\n\n @Deprecated - Use [Listeners](#Listeners) with a 'renderlet' prefix\n Generates a random key for the renderlet, which makes it hard for removal.\n ```js\n // renderlet function\n chart.renderlet(function(chart){\n // mix of dc API and d3 manipulation\n chart.select('g.y').style('display', 'none');\n // its a closure so you can also access other chart variable available in the closure scope\n moveChart.filter(chart.filter());\n });\n ```\n\n **/\n _chart.renderlet = dc.logger.deprecate(function (_) {\n _chart.on('renderlet.' + dc.utils.uniqueId(), _);\n return _chart;\n }, 'chart.renderlet has been deprecated. Please use chart.on(\"renderlet.\", renderletFunction)');\n\n /**\n #### .chartGroup([group])\n Get or set the chart group to which this chart belongs. Chart groups are rendered or redrawn\n together since it is expected they share the same underlying crossfilter data set.\n **/\n _chart.chartGroup = function (_) {\n if (!arguments.length) {\n return _chartGroup;\n }\n if (!_isChild) {\n dc.deregisterChart(_chart, _chartGroup);\n }\n _chartGroup = _;\n if (!_isChild) {\n dc.registerChart(_chart, _chartGroup);\n }\n return _chart;\n };\n\n /**\n #### .expireCache()\n Expire the internal chart cache. dc charts cache some data internally on a per chart basis to\n speed up rendering and avoid unnecessary calculation; however it might be useful to clear the\n cache if you have changed state which will affect rendering. For example if you invoke the\n `crossfilter.add` function or reset group or dimension after rendering it is a good idea to\n clear the cache to make sure charts are rendered properly.\n\n **/\n _chart.expireCache = function () {\n // do nothing in base, should be overridden by sub-function\n return _chart;\n };\n\n /**\n #### .legend([dc.legend])\n Attach a dc.legend widget to this chart. The legend widget will automatically draw legend labels\n based on the color setting and names associated with each group.\n\n ```js\n chart.legend(dc.legend().x(400).y(10).itemHeight(13).gap(5))\n ```\n\n **/\n _chart.legend = function (l) {\n if (!arguments.length) {\n return _legend;\n }\n _legend = l;\n _legend.parent(_chart);\n return _chart;\n };\n\n /**\n #### .chartID()\n Returns the internal numeric ID of the chart.\n **/\n _chart.chartID = function () {\n return _chart.__dcFlag__;\n };\n\n /**\n #### .options(optionsObject)\n Set chart options using a configuration object. Each key in the object will cause the method of\n the same name to be called with the value to set that attribute for the chart.\n\n Example:\n ```\n chart.options({dimension: myDimension, group: myGroup});\n ```\n **/\n _chart.options = function (opts) {\n for (var o in opts) {\n if (typeof(_chart[o]) === 'function') {\n _chart[o].call(_chart, opts[o]);\n } else {\n dc.logger.debug('Not a valid option setter name: ' + o);\n }\n }\n return _chart;\n };\n\n /**\n ## Listeners\n All dc chart instance supports the following listeners.\n\n #### .on('renderlet', function(chart, filter){...})\n This listener function will be invoked after transitions after redraw and render. Replaces the\n deprecated `.renderlet()` method.\n\n #### .on('preRender', function(chart){...})\n This listener function will be invoked before chart rendering.\n\n #### .on('postRender', function(chart){...})\n This listener function will be invoked after chart finish rendering including all renderlets' logic.\n\n #### .on('preRedraw', function(chart){...})\n This listener function will be invoked before chart redrawing.\n\n #### .on('postRedraw', function(chart){...})\n This listener function will be invoked after chart finish redrawing including all renderlets' logic.\n\n #### .on('filtered', function(chart, filter){...})\n This listener function will be invoked after a filter is applied, added or removed.\n\n #### .on('zoomed', function(chart, filter){...})\n This listener function will be invoked after a zoom is triggered.\n\n **/\n _chart.on = function (event, listener) {\n _listeners.on(event, listener);\n return _chart;\n };\n\n return _chart;\n};\n","/**\n## Margin Mixin\nMargin is a mixin that provides margin utility functions for both the Row Chart and Coordinate Grid\nCharts.\n\n**/\ndc.marginMixin = function (_chart) {\n var _margin = {top: 10, right: 50, bottom: 30, left: 30};\n\n /**\n #### .margins([margins])\n Get or set the margins for a particular coordinate grid chart instance. The margins is stored as\n an associative Javascript array. Default margins: {top: 10, right: 50, bottom: 30, left: 30}.\n\n The margins can be accessed directly from the getter.\n ```js\n var leftMargin = chart.margins().left; // 30 by default\n chart.margins().left = 50;\n leftMargin = chart.margins().left; // now 50\n ```\n\n **/\n _chart.margins = function (m) {\n if (!arguments.length) {\n return _margin;\n }\n _margin = m;\n return _chart;\n };\n\n _chart.effectiveWidth = function () {\n return _chart.width() - _chart.margins().left - _chart.margins().right;\n };\n\n _chart.effectiveHeight = function () {\n return _chart.height() - _chart.margins().top - _chart.margins().bottom;\n };\n\n return _chart;\n};\n","/**\n## Color Mixin\nThe Color Mixin is an abstract chart functional class providing universal coloring support\nas a mix-in for any concrete chart implementation.\n\n**/\n\ndc.colorMixin = function (_chart) {\n var _colors = d3.scale.category20c();\n var _defaultAccessor = true;\n\n var _colorAccessor = function (d) { return _chart.keyAccessor()(d); };\n\n /**\n #### .colors([colorScale])\n Retrieve current color scale or set a new color scale. This methods accepts any function that\n operates like a d3 scale. If not set the default is\n `d3.scale.category20c()`.\n ```js\n // alternate categorical scale\n chart.colors(d3.scale.category20b());\n\n // ordinal scale\n chart.colors(d3.scale.ordinal().range(['red','green','blue']));\n // convenience method, the same as above\n chart.ordinalColors(['red','green','blue']);\n\n // set a linear scale\n chart.linearColors([\"#4575b4\", \"#ffffbf\", \"#a50026\"]);\n ```\n **/\n _chart.colors = function (_) {\n if (!arguments.length) {\n return _colors;\n }\n if (_ instanceof Array) {\n _colors = d3.scale.quantize().range(_); // deprecated legacy support, note: this fails for ordinal domains\n } else {\n _colors = d3.functor(_);\n }\n return _chart;\n };\n\n /**\n #### .ordinalColors(r)\n Convenience method to set the color scale to d3.scale.ordinal with range `r`.\n\n **/\n _chart.ordinalColors = function (r) {\n return _chart.colors(d3.scale.ordinal().range(r));\n };\n\n /**\n #### .linearColors(r)\n Convenience method to set the color scale to an Hcl interpolated linear scale with range `r`.\n\n **/\n _chart.linearColors = function (r) {\n return _chart.colors(d3.scale.linear()\n .range(r)\n .interpolate(d3.interpolateHcl));\n };\n\n /**\n #### .colorAccessor([colorAccessorFunction])\n Set or the get color accessor function. This function will be used to map a data point in a\n crossfilter group to a color value on the color scale. The default function uses the key\n accessor.\n ```js\n // default index based color accessor\n .colorAccessor(function (d, i){return i;})\n // color accessor for a multi-value crossfilter reduction\n .colorAccessor(function (d){return d.value.absGain;})\n ```\n **/\n _chart.colorAccessor = function (_) {\n if (!arguments.length) {\n return _colorAccessor;\n }\n _colorAccessor = _;\n _defaultAccessor = false;\n return _chart;\n };\n\n // what is this?\n _chart.defaultColorAccessor = function () {\n return _defaultAccessor;\n };\n\n /**\n #### .colorDomain([domain])\n Set or get the current domain for the color mapping function. The domain must be supplied as an\n array.\n\n Note: previously this method accepted a callback function. Instead you may use a custom scale\n set by `.colors`.\n\n **/\n _chart.colorDomain = function (_) {\n if (!arguments.length) {\n return _colors.domain();\n }\n _colors.domain(_);\n return _chart;\n };\n\n /**\n #### .calculateColorDomain()\n Set the domain by determining the min and max values as retrieved by `.colorAccessor` over the\n chart's dataset.\n\n **/\n _chart.calculateColorDomain = function () {\n var newDomain = [d3.min(_chart.data(), _chart.colorAccessor()),\n d3.max(_chart.data(), _chart.colorAccessor())];\n _colors.domain(newDomain);\n return _chart;\n };\n\n /**\n #### .getColor(d [, i])\n Get the color for the datum d and counter i. This is used internally by charts to retrieve a color.\n\n **/\n _chart.getColor = function (d, i) {\n return _colors(_colorAccessor.call(this, d, i));\n };\n\n /**\n #### .colorCalculator([value])\n Gets or sets chart.getColor.\n **/\n _chart.colorCalculator = function (_) {\n if (!arguments.length) {\n return _chart.getColor;\n }\n _chart.getColor = _;\n return _chart;\n };\n\n return _chart;\n};\n","/**\n## Coordinate Grid Mixin\nIncludes: [Color Mixin](#color-mixin), [Margin Mixin](#margin-mixin), [Base Mixin](#base-mixin)\n\nCoordinate Grid is an abstract base chart designed to support a number of coordinate grid based\nconcrete chart types, e.g. bar chart, line chart, and bubble chart.\n\n**/\ndc.coordinateGridMixin = function (_chart) {\n var GRID_LINE_CLASS = 'grid-line';\n var HORIZONTAL_CLASS = 'horizontal';\n var VERTICAL_CLASS = 'vertical';\n var Y_AXIS_LABEL_CLASS = 'y-axis-label';\n var X_AXIS_LABEL_CLASS = 'x-axis-label';\n var DEFAULT_AXIS_LABEL_PADDING = 12;\n\n _chart = dc.colorMixin(dc.marginMixin(dc.baseMixin(_chart)));\n\n _chart.colors(d3.scale.category10());\n _chart._mandatoryAttributes().push('x');\n\n function zoomHandler () {\n _refocused = true;\n if (_zoomOutRestrict) {\n _chart.x().domain(constrainRange(_chart.x().domain(), _xOriginalDomain));\n if (_rangeChart) {\n _chart.x().domain(constrainRange(_chart.x().domain(), _rangeChart.x().domain()));\n }\n }\n\n var domain = _chart.x().domain();\n var domFilter = dc.filters.RangedFilter(domain[0], domain[1]);\n\n _chart.replaceFilter(domFilter);\n _chart.rescale();\n _chart.redraw();\n\n if (_rangeChart && !rangesEqual(_chart.filter(), _rangeChart.filter())) {\n dc.events.trigger(function () {\n _rangeChart.replaceFilter(domFilter);\n _rangeChart.redraw();\n });\n }\n\n _chart._invokeZoomedListener();\n\n dc.events.trigger(function () {\n _chart.redrawGroup();\n }, dc.constants.EVENT_DELAY);\n\n _refocused = !rangesEqual(domain, _xOriginalDomain);\n }\n\n var _parent;\n var _g;\n var _chartBodyG;\n\n var _x;\n var _xOriginalDomain;\n var _xAxis = d3.svg.axis().orient('bottom');\n var _xUnits = dc.units.integers;\n var _xAxisPadding = 0;\n var _xElasticity = false;\n var _xAxisLabel;\n var _xAxisLabelPadding = 0;\n var _lastXDomain;\n\n var _y;\n var _yAxis = d3.svg.axis().orient('left');\n var _yAxisPadding = 0;\n var _yElasticity = false;\n var _yAxisLabel;\n var _yAxisLabelPadding = 0;\n\n var _brush = d3.svg.brush();\n var _brushOn = true;\n var _round;\n\n var _renderHorizontalGridLine = false;\n var _renderVerticalGridLine = false;\n\n var _refocused = false;\n var _unitCount;\n\n var _zoomScale = [1, Infinity];\n var _zoomOutRestrict = true;\n\n var _zoom = d3.behavior.zoom().on('zoom', zoomHandler);\n var _nullZoom = d3.behavior.zoom().on('zoom', null);\n var _hasBeenMouseZoomable = false;\n\n var _rangeChart;\n var _focusChart;\n\n var _mouseZoomable = false;\n var _clipPadding = 0;\n\n var _outerRangeBandPadding = 0.5;\n var _rangeBandPadding = 0;\n\n var _useRightYAxis = false;\n\n _chart.rescale = function () {\n _unitCount = undefined;\n };\n\n /**\n #### .rangeChart([chart])\n Get or set the range selection chart associated with this instance. Setting the range selection\n chart using this function will automatically update its selection brush when the current chart\n zooms in. In return the given range chart will also automatically attach this chart as its focus\n chart hence zoom in when range brush updates. See the [Nasdaq 100\n Index](http://dc-js.github.com/dc.js/) example for this effect in action.\n\n **/\n _chart.rangeChart = function (_) {\n if (!arguments.length) {\n return _rangeChart;\n }\n _rangeChart = _;\n _rangeChart.focusChart(_chart);\n return _chart;\n };\n\n /**\n #### .zoomScale([extent])\n Get or set the scale extent for mouse zooms.\n\n **/\n _chart.zoomScale = function (_) {\n if (!arguments.length) {\n return _zoomScale;\n }\n _zoomScale = _;\n return _chart;\n };\n\n /**\n #### .zoomOutRestrict([true/false])\n Get or set the zoom restriction for the chart. If true limits the zoom to origional domain of the chart.\n **/\n _chart.zoomOutRestrict = function (r) {\n if (!arguments.length) {\n return _zoomOutRestrict;\n }\n _zoomScale[0] = r ? 1 : 0;\n _zoomOutRestrict = r;\n return _chart;\n };\n\n _chart._generateG = function (parent) {\n if (parent === undefined) {\n _parent = _chart.svg();\n } else {\n _parent = parent;\n }\n\n _g = _parent.append('g');\n\n _chartBodyG = _g.append('g').attr('class', 'chart-body')\n .attr('transform', 'translate(' + _chart.margins().left + ', ' + _chart.margins().top + ')')\n .attr('clip-path', 'url(#' + getClipPathId() + ')');\n\n return _g;\n };\n\n /**\n #### .g([gElement])\n Get or set the root g element. This method is usually used to retrieve the g element in order to\n overlay custom svg drawing programatically. **Caution**: The root g element is usually generated\n by dc.js internals, and resetting it might produce unpredictable result.\n\n **/\n _chart.g = function (_) {\n if (!arguments.length) {\n return _g;\n }\n _g = _;\n return _chart;\n };\n\n /**\n #### .mouseZoomable([boolean])\n Set or get mouse zoom capability flag (default: false). When turned on the chart will be\n zoomable using the mouse wheel. If the range selector chart is attached zooming will also update\n the range selection brush on the associated range selector chart.\n\n **/\n _chart.mouseZoomable = function (z) {\n if (!arguments.length) {\n return _mouseZoomable;\n }\n _mouseZoomable = z;\n return _chart;\n };\n\n /**\n #### .chartBodyG()\n Retrieve the svg group for the chart body.\n **/\n _chart.chartBodyG = function (_) {\n if (!arguments.length) {\n return _chartBodyG;\n }\n _chartBodyG = _;\n return _chart;\n };\n\n /**\n #### .x([xScale]) - **mandatory**\n Get or set the x scale. The x scale can be any d3\n [quantitive scale](https://github.com/mbostock/d3/wiki/Quantitative-Scales) or\n [ordinal scale](https://github.com/mbostock/d3/wiki/Ordinal-Scales).\n ```js\n // set x to a linear scale\n chart.x(d3.scale.linear().domain([-2500, 2500]))\n // set x to a time scale to generate histogram\n chart.x(d3.time.scale().domain([new Date(1985, 0, 1), new Date(2012, 11, 31)]))\n ```\n\n **/\n _chart.x = function (_) {\n if (!arguments.length) {\n return _x;\n }\n _x = _;\n _xOriginalDomain = _x.domain();\n return _chart;\n };\n\n _chart.xOriginalDomain = function () {\n return _xOriginalDomain;\n };\n\n /**\n #### .xUnits([xUnits function])\n Set or get the xUnits function. The coordinate grid chart uses the xUnits function to calculate\n the number of data projections on x axis such as the number of bars for a bar chart or the\n number of dots for a line chart. This function is expected to return a Javascript array of all\n data points on x axis, or the number of points on the axis. [d3 time range functions\n d3.time.days, d3.time.months, and\n d3.time.years](https://github.com/mbostock/d3/wiki/Time-Intervals#aliases) are all valid xUnits\n function. dc.js also provides a few units function, see the [Utilities](#utilities) section for\n a list of built-in units functions. The default xUnits function is dc.units.integers.\n ```js\n // set x units to count days\n chart.xUnits(d3.time.days);\n // set x units to count months\n chart.xUnits(d3.time.months);\n ```\n A custom xUnits function can be used as long as it follows the following interface:\n ```js\n // units in integer\n function(start, end, xDomain) {\n // simply calculates how many integers in the domain\n return Math.abs(end - start);\n };\n\n // fixed units\n function(start, end, xDomain) {\n // be aware using fixed units will disable the focus/zoom ability on the chart\n return 1000;\n };\n ```\n\n **/\n _chart.xUnits = function (_) {\n if (!arguments.length) {\n return _xUnits;\n }\n _xUnits = _;\n return _chart;\n };\n\n /**\n #### .xAxis([xAxis])\n Set or get the x axis used by a particular coordinate grid chart instance. This function is most\n useful when x axis customization is required. The x axis in dc.js is an instance of a [d3\n axis object](https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-axis); therefore it supports any\n valid d3 axis manipulation. **Caution**: The x axis is usually generated internally by dc;\n resetting it may cause unexpected results.\n ```js\n // customize x axis tick format\n chart.xAxis().tickFormat(function(v) {return v + '%';});\n // customize x axis tick values\n chart.xAxis().tickValues([0, 100, 200, 300]);\n ```\n\n **/\n _chart.xAxis = function (_) {\n if (!arguments.length) {\n return _xAxis;\n }\n _xAxis = _;\n return _chart;\n };\n\n /**\n #### .elasticX([boolean])\n Turn on/off elastic x axis behavior. If x axis elasticity is turned on, then the grid chart will\n attempt to recalculate the x axis range whenever a redraw event is triggered.\n\n **/\n _chart.elasticX = function (_) {\n if (!arguments.length) {\n return _xElasticity;\n }\n _xElasticity = _;\n return _chart;\n };\n\n /**\n #### .xAxisPadding([padding])\n Set or get x axis padding for the elastic x axis. The padding will be added to both end of the x\n axis if elasticX is turned on; otherwise it is ignored.\n\n * padding can be an integer or percentage in string (e.g. '10%'). Padding can be applied to\n number or date x axes. When padding a date axis, an integer represents number of days being padded\n and a percentage string will be treated the same as an integer.\n\n **/\n _chart.xAxisPadding = function (_) {\n if (!arguments.length) {\n return _xAxisPadding;\n }\n _xAxisPadding = _;\n return _chart;\n };\n\n /**\n #### .xUnitCount()\n Returns the number of units displayed on the x axis using the unit measure configured by\n .xUnits.\n **/\n _chart.xUnitCount = function () {\n if (_unitCount === undefined) {\n var units = _chart.xUnits()(_chart.x().domain()[0], _chart.x().domain()[1], _chart.x().domain());\n\n if (units instanceof Array) {\n _unitCount = units.length;\n } else {\n _unitCount = units;\n }\n }\n\n return _unitCount;\n };\n /**\n #### .useRightYAxis()\n Gets or sets whether the chart should be drawn with a right axis instead of a left axis. When\n used with a chart in a composite chart, allows both left and right Y axes to be shown on a\n chart.\n **/\n\n _chart.useRightYAxis = function (_) {\n if (!arguments.length) {\n return _useRightYAxis;\n }\n _useRightYAxis = _;\n return _chart;\n };\n\n /**\n #### isOrdinal()\n Returns true if the chart is using ordinal xUnits ([dc.units.ordinal](#dcunitsordinal)), or false\n otherwise. Most charts behave differently with ordinal data and use the result of this method to\n trigger the appropriate logic.\n **/\n _chart.isOrdinal = function () {\n return _chart.xUnits() === dc.units.ordinal;\n };\n\n _chart._useOuterPadding = function () {\n return true;\n };\n\n _chart._ordinalXDomain = function () {\n var groups = _chart._computeOrderedGroups(_chart.data());\n return groups.map(_chart.keyAccessor());\n };\n\n function prepareXAxis(g) {\n if (!_chart.isOrdinal()) {\n if (_chart.elasticX()) {\n _x.domain([_chart.xAxisMin(), _chart.xAxisMax()]);\n }\n }\n else { // _chart.isOrdinal()\n if (_chart.elasticX() || _x.domain().length === 0) {\n _x.domain(_chart._ordinalXDomain());\n }\n }\n\n // has the domain changed?\n var xdom = _x.domain();\n if (!_lastXDomain || xdom.some(function (elem, i) { return elem !== _lastXDomain[i]; })) {\n _chart.rescale();\n }\n _lastXDomain = xdom;\n\n // please can't we always use rangeBands for bar charts?\n if (_chart.isOrdinal()) {\n _x.rangeBands([0, _chart.xAxisLength()], _rangeBandPadding,\n _chart._useOuterPadding() ? _outerRangeBandPadding : 0);\n } else {\n _x.range([0, _chart.xAxisLength()]);\n }\n\n _xAxis = _xAxis.scale(_chart.x());\n\n renderVerticalGridLines(g);\n }\n\n _chart.renderXAxis = function (g) {\n var axisXG = g.selectAll('g.x');\n\n if (axisXG.empty()) {\n axisXG = g.append('g')\n .attr('class', 'axis x')\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart._xAxisY() + ')');\n }\n\n var axisXLab = g.selectAll('text.' + X_AXIS_LABEL_CLASS);\n if (axisXLab.empty() && _chart.xAxisLabel()) {\n axisXLab = g.append('text')\n .attr('transform', 'translate(' + (_chart.margins().left + _chart.xAxisLength() / 2) + ',' +\n (_chart.height() - _xAxisLabelPadding) + ')')\n .attr('class', X_AXIS_LABEL_CLASS)\n .attr('text-anchor', 'middle')\n .text(_chart.xAxisLabel());\n }\n if (_chart.xAxisLabel() && axisXLab.text() !== _chart.xAxisLabel()) {\n axisXLab.text(_chart.xAxisLabel());\n }\n\n dc.transition(axisXG, _chart.transitionDuration())\n .call(_xAxis);\n };\n\n function renderVerticalGridLines(g) {\n var gridLineG = g.selectAll('g.' + VERTICAL_CLASS);\n\n if (_renderVerticalGridLine) {\n if (gridLineG.empty()) {\n gridLineG = g.insert('g', ':first-child')\n .attr('class', GRID_LINE_CLASS + ' ' + VERTICAL_CLASS)\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')');\n }\n\n var ticks = _xAxis.tickValues() ? _xAxis.tickValues() :\n (typeof _x.ticks === 'function' ? _x.ticks(_xAxis.ticks()[0]) : _x.domain());\n\n var lines = gridLineG.selectAll('line')\n .data(ticks);\n\n // enter\n var linesGEnter = lines.enter()\n .append('line')\n .attr('x1', function (d) {\n return _x(d);\n })\n .attr('y1', _chart._xAxisY() - _chart.margins().top)\n .attr('x2', function (d) {\n return _x(d);\n })\n .attr('y2', 0)\n .attr('opacity', 0);\n dc.transition(linesGEnter, _chart.transitionDuration())\n .attr('opacity', 1);\n\n // update\n dc.transition(lines, _chart.transitionDuration())\n .attr('x1', function (d) {\n return _x(d);\n })\n .attr('y1', _chart._xAxisY() - _chart.margins().top)\n .attr('x2', function (d) {\n return _x(d);\n })\n .attr('y2', 0);\n\n // exit\n lines.exit().remove();\n }\n else {\n gridLineG.selectAll('line').remove();\n }\n }\n\n _chart._xAxisY = function () {\n return (_chart.height() - _chart.margins().bottom);\n };\n\n _chart.xAxisLength = function () {\n return _chart.effectiveWidth();\n };\n\n /**\n #### .xAxisLabel([labelText, [, padding]])\n Set or get the x axis label. If setting the label, you may optionally include additional padding to\n the margin to make room for the label. By default the padded is set to 12 to accomodate the text height.\n **/\n _chart.xAxisLabel = function (_, padding) {\n if (!arguments.length) {\n return _xAxisLabel;\n }\n _xAxisLabel = _;\n _chart.margins().bottom -= _xAxisLabelPadding;\n _xAxisLabelPadding = (padding === undefined) ? DEFAULT_AXIS_LABEL_PADDING : padding;\n _chart.margins().bottom += _xAxisLabelPadding;\n return _chart;\n };\n\n _chart._prepareYAxis = function (g) {\n if (_y === undefined || _chart.elasticY()) {\n _y = d3.scale.linear();\n var min = _chart.yAxisMin() || 0,\n max = _chart.yAxisMax() || 0;\n _y.domain([min, max]).rangeRound([_chart.yAxisHeight(), 0]);\n }\n\n _y.range([_chart.yAxisHeight(), 0]);\n _yAxis = _yAxis.scale(_y);\n\n if (_useRightYAxis) {\n _yAxis.orient('right');\n }\n\n _chart._renderHorizontalGridLinesForAxis(g, _y, _yAxis);\n };\n\n _chart.renderYAxisLabel = function (axisClass, text, rotation, labelXPosition) {\n labelXPosition = labelXPosition || _yAxisLabelPadding;\n\n var axisYLab = _chart.g().selectAll('text.' + Y_AXIS_LABEL_CLASS + '.' + axisClass + '-label');\n if (axisYLab.empty() && text) {\n\n var labelYPosition = (_chart.margins().top + _chart.yAxisHeight() / 2);\n axisYLab = _chart.g().append('text')\n .attr('transform', 'translate(' + labelXPosition + ',' + labelYPosition + '),rotate(' + rotation + ')')\n .attr('class', Y_AXIS_LABEL_CLASS + ' ' + axisClass + '-label')\n .attr('text-anchor', 'middle')\n .text(text);\n }\n if (text && axisYLab.text() !== text) {\n axisYLab.text(text);\n }\n };\n\n _chart.renderYAxisAt = function (axisClass, axis, position) {\n var axisYG = _chart.g().selectAll('g.' + axisClass);\n if (axisYG.empty()) {\n axisYG = _chart.g().append('g')\n .attr('class', 'axis ' + axisClass)\n .attr('transform', 'translate(' + position + ',' + _chart.margins().top + ')');\n }\n\n dc.transition(axisYG, _chart.transitionDuration()).call(axis);\n };\n\n _chart.renderYAxis = function () {\n var axisPosition = _useRightYAxis ? (_chart.width() - _chart.margins().right) : _chart._yAxisX();\n _chart.renderYAxisAt('y', _yAxis, axisPosition);\n var labelPosition = _useRightYAxis ? (_chart.width() - _yAxisLabelPadding) : _yAxisLabelPadding;\n var rotation = _useRightYAxis ? 90 : -90;\n _chart.renderYAxisLabel('y', _chart.yAxisLabel(), rotation, labelPosition);\n };\n\n _chart._renderHorizontalGridLinesForAxis = function (g, scale, axis) {\n var gridLineG = g.selectAll('g.' + HORIZONTAL_CLASS);\n\n if (_renderHorizontalGridLine) {\n var ticks = axis.tickValues() ? axis.tickValues() : scale.ticks(axis.ticks()[0]);\n\n if (gridLineG.empty()) {\n gridLineG = g.insert('g', ':first-child')\n .attr('class', GRID_LINE_CLASS + ' ' + HORIZONTAL_CLASS)\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')');\n }\n\n var lines = gridLineG.selectAll('line')\n .data(ticks);\n\n // enter\n var linesGEnter = lines.enter()\n .append('line')\n .attr('x1', 1)\n .attr('y1', function (d) {\n return scale(d);\n })\n .attr('x2', _chart.xAxisLength())\n .attr('y2', function (d) {\n return scale(d);\n })\n .attr('opacity', 0);\n dc.transition(linesGEnter, _chart.transitionDuration())\n .attr('opacity', 1);\n\n // update\n dc.transition(lines, _chart.transitionDuration())\n .attr('x1', 1)\n .attr('y1', function (d) {\n return scale(d);\n })\n .attr('x2', _chart.xAxisLength())\n .attr('y2', function (d) {\n return scale(d);\n });\n\n // exit\n lines.exit().remove();\n }\n else {\n gridLineG.selectAll('line').remove();\n }\n };\n\n _chart._yAxisX = function () {\n return _chart.useRightYAxis() ? _chart.width() - _chart.margins().right : _chart.margins().left;\n };\n\n /**\n #### .yAxisLabel([labelText, [, padding]])\n Set or get the y axis label. If setting the label, you may optionally include additional padding\n to the margin to make room for the label. By default the padded is set to 12 to accomodate the\n text height.\n **/\n _chart.yAxisLabel = function (_, padding) {\n if (!arguments.length) {\n return _yAxisLabel;\n }\n _yAxisLabel = _;\n _chart.margins().left -= _yAxisLabelPadding;\n _yAxisLabelPadding = (padding === undefined) ? DEFAULT_AXIS_LABEL_PADDING : padding;\n _chart.margins().left += _yAxisLabelPadding;\n return _chart;\n };\n\n /**\n #### .y([yScale])\n Get or set the y scale. The y scale is typically automatically determined by the chart implementation.\n\n **/\n _chart.y = function (_) {\n if (!arguments.length) {\n return _y;\n }\n _y = _;\n return _chart;\n };\n\n /**\n #### .yAxis([yAxis])\n Set or get the y axis used by the coordinate grid chart instance. This function is most useful\n when y axis customization is required. The y axis in dc.js is simply an instance of a [d3 axis\n object](https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-_axis); therefore it supports any\n valid d3 axis manipulation. **Caution**: The y axis is usually generated internally by dc;\n resetting it may cause unexpected results.\n ```js\n // customize y axis tick format\n chart.yAxis().tickFormat(function(v) {return v + '%';});\n // customize y axis tick values\n chart.yAxis().tickValues([0, 100, 200, 300]);\n ```\n\n **/\n _chart.yAxis = function (y) {\n if (!arguments.length) {\n return _yAxis;\n }\n _yAxis = y;\n return _chart;\n };\n\n /**\n #### .elasticY([boolean])\n Turn on/off elastic y axis behavior. If y axis elasticity is turned on, then the grid chart will\n attempt to recalculate the y axis range whenever a redraw event is triggered.\n\n **/\n _chart.elasticY = function (_) {\n if (!arguments.length) {\n return _yElasticity;\n }\n _yElasticity = _;\n return _chart;\n };\n\n /**\n #### .renderHorizontalGridLines([boolean])\n Turn on/off horizontal grid lines.\n\n **/\n _chart.renderHorizontalGridLines = function (_) {\n if (!arguments.length) {\n return _renderHorizontalGridLine;\n }\n _renderHorizontalGridLine = _;\n return _chart;\n };\n\n /**\n #### .renderVerticalGridLines([boolean])\n Turn on/off vertical grid lines.\n\n **/\n _chart.renderVerticalGridLines = function (_) {\n if (!arguments.length) {\n return _renderVerticalGridLine;\n }\n _renderVerticalGridLine = _;\n return _chart;\n };\n\n /**\n #### .xAxisMin()\n Calculates the minimum x value to display in the chart. Includes xAxisPadding if set.\n **/\n _chart.xAxisMin = function () {\n var min = d3.min(_chart.data(), function (e) {\n return _chart.keyAccessor()(e);\n });\n return dc.utils.subtract(min, _xAxisPadding);\n };\n\n /**\n #### .xAxisMax()\n Calculates the maximum x value to display in the chart. Includes xAxisPadding if set.\n **/\n _chart.xAxisMax = function () {\n var max = d3.max(_chart.data(), function (e) {\n return _chart.keyAccessor()(e);\n });\n return dc.utils.add(max, _xAxisPadding);\n };\n\n /**\n #### .yAxisMin()\n Calculates the minimum y value to display in the chart. Includes yAxisPadding if set.\n **/\n _chart.yAxisMin = function () {\n var min = d3.min(_chart.data(), function (e) {\n return _chart.valueAccessor()(e);\n });\n return dc.utils.subtract(min, _yAxisPadding);\n };\n\n /**\n #### .yAxisMax()\n Calculates the maximum y value to display in the chart. Includes yAxisPadding if set.\n **/\n _chart.yAxisMax = function () {\n var max = d3.max(_chart.data(), function (e) {\n return _chart.valueAccessor()(e);\n });\n return dc.utils.add(max, _yAxisPadding);\n };\n\n /**\n #### .yAxisPadding([padding])\n Set or get y axis padding for the elastic y axis. The padding will be added to the top of the y\n axis if elasticY is turned on; otherwise it is ignored.\n\n * padding can be an integer or percentage in string (e.g. '10%'). Padding can be applied to\n number or date axes. When padding a date axis, an integer represents number of days being padded\n and a percentage string will be treated the same as an integer.\n\n **/\n _chart.yAxisPadding = function (_) {\n if (!arguments.length) {\n return _yAxisPadding;\n }\n _yAxisPadding = _;\n return _chart;\n };\n\n _chart.yAxisHeight = function () {\n return _chart.effectiveHeight();\n };\n\n /**\n #### .round([rounding function])\n Set or get the rounding function used to quantize the selection when brushing is enabled.\n ```js\n // set x unit round to by month, this will make sure range selection brush will\n // select whole months\n chart.round(d3.time.month.round);\n ```\n\n **/\n _chart.round = function (_) {\n if (!arguments.length) {\n return _round;\n }\n _round = _;\n return _chart;\n };\n\n _chart._rangeBandPadding = function (_) {\n if (!arguments.length) {\n return _rangeBandPadding;\n }\n _rangeBandPadding = _;\n return _chart;\n };\n\n _chart._outerRangeBandPadding = function (_) {\n if (!arguments.length) {\n return _outerRangeBandPadding;\n }\n _outerRangeBandPadding = _;\n return _chart;\n };\n\n dc.override(_chart, 'filter', function (_) {\n if (!arguments.length) {\n return _chart._filter();\n }\n\n _chart._filter(_);\n\n if (_) {\n _chart.brush().extent(_);\n } else {\n _chart.brush().clear();\n }\n\n return _chart;\n });\n\n _chart.brush = function (_) {\n if (!arguments.length) {\n return _brush;\n }\n _brush = _;\n return _chart;\n };\n\n function brushHeight() {\n return _chart._xAxisY() - _chart.margins().top;\n }\n\n _chart.renderBrush = function (g) {\n if (_brushOn) {\n _brush.on('brush', _chart._brushing);\n _brush.on('brushstart', _chart._disableMouseZoom);\n _brush.on('brushend', configureMouseZoom);\n\n var gBrush = g.append('g')\n .attr('class', 'brush')\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')')\n .call(_brush.x(_chart.x()));\n _chart.setBrushY(gBrush);\n _chart.setHandlePaths(gBrush);\n\n if (_chart.hasFilter()) {\n _chart.redrawBrush(g);\n }\n }\n };\n\n _chart.setHandlePaths = function (gBrush) {\n gBrush.selectAll('.resize').append('path').attr('d', _chart.resizeHandlePath);\n };\n\n _chart.setBrushY = function (gBrush) {\n gBrush.selectAll('rect').attr('height', brushHeight());\n };\n\n _chart.extendBrush = function () {\n var extent = _brush.extent();\n if (_chart.round()) {\n extent[0] = extent.map(_chart.round())[0];\n extent[1] = extent.map(_chart.round())[1];\n\n _g.select('.brush')\n .call(_brush.extent(extent));\n }\n return extent;\n };\n\n _chart.brushIsEmpty = function (extent) {\n return _brush.empty() || !extent || extent[1] <= extent[0];\n };\n\n _chart._brushing = function () {\n var extent = _chart.extendBrush();\n\n _chart.redrawBrush(_g);\n\n if (_chart.brushIsEmpty(extent)) {\n dc.events.trigger(function () {\n _chart.filter(null);\n _chart.redrawGroup();\n }, dc.constants.EVENT_DELAY);\n } else {\n var rangedFilter = dc.filters.RangedFilter(extent[0], extent[1]);\n\n dc.events.trigger(function () {\n _chart.replaceFilter(rangedFilter);\n _chart.redrawGroup();\n }, dc.constants.EVENT_DELAY);\n }\n };\n\n _chart.redrawBrush = function (g) {\n if (_brushOn) {\n if (_chart.filter() && _chart.brush().empty()) {\n _chart.brush().extent(_chart.filter());\n }\n\n var gBrush = g.select('g.brush');\n gBrush.call(_chart.brush().x(_chart.x()));\n _chart.setBrushY(gBrush);\n }\n\n _chart.fadeDeselectedArea();\n };\n\n _chart.fadeDeselectedArea = function () {\n // do nothing, sub-chart should override this function\n };\n\n // borrowed from Crossfilter example\n _chart.resizeHandlePath = function (d) {\n var e = +(d === 'e'), x = e ? 1 : -1, y = brushHeight() / 3;\n return 'M' + (0.5 * x) + ',' + y +\n 'A6,6 0 0 ' + e + ' ' + (6.5 * x) + ',' + (y + 6) +\n 'V' + (2 * y - 6) +\n 'A6,6 0 0 ' + e + ' ' + (0.5 * x) + ',' + (2 * y) +\n 'Z' +\n 'M' + (2.5 * x) + ',' + (y + 8) +\n 'V' + (2 * y - 8) +\n 'M' + (4.5 * x) + ',' + (y + 8) +\n 'V' + (2 * y - 8);\n };\n\n function getClipPathId() {\n return _chart.anchorName().replace(/[ .#]/g, '-') + '-clip';\n }\n\n /**\n #### .clipPadding([padding])\n Get or set the padding in pixels for the clip path. Once set padding will be applied evenly to\n the top, left, right, and bottom when the clip path is generated. If set to zero, the clip area\n will be exactly the chart body area minus the margins. Default: 5\n\n **/\n _chart.clipPadding = function (p) {\n if (!arguments.length) {\n return _clipPadding;\n }\n _clipPadding = p;\n return _chart;\n };\n\n function generateClipPath() {\n var defs = dc.utils.appendOrSelect(_parent, 'defs');\n // cannot select elements; bug in WebKit, must select by id\n // https://groups.google.com/forum/#!topic/d3-js/6EpAzQ2gU9I\n var id = getClipPathId();\n var chartBodyClip = dc.utils.appendOrSelect(defs, '#' + id, 'clipPath').attr('id', id);\n\n var padding = _clipPadding * 2;\n\n dc.utils.appendOrSelect(chartBodyClip, 'rect')\n .attr('width', _chart.xAxisLength() + padding)\n .attr('height', _chart.yAxisHeight() + padding)\n .attr('transform', 'translate(-' + _clipPadding + ', -' + _clipPadding + ')');\n }\n\n _chart._preprocessData = function () {};\n\n _chart._doRender = function () {\n _chart.resetSvg();\n\n _chart._preprocessData();\n\n _chart._generateG();\n generateClipPath();\n\n drawChart(true);\n\n configureMouseZoom();\n\n return _chart;\n };\n\n _chart._doRedraw = function () {\n _chart._preprocessData();\n\n drawChart(false);\n generateClipPath();\n\n return _chart;\n };\n\n function drawChart (render) {\n if (_chart.isOrdinal()) {\n _brushOn = false;\n }\n\n prepareXAxis(_chart.g());\n _chart._prepareYAxis(_chart.g());\n\n _chart.plotData();\n\n if (_chart.elasticX() || _refocused || render) {\n _chart.renderXAxis(_chart.g());\n }\n\n if (_chart.elasticY() || render) {\n _chart.renderYAxis(_chart.g());\n }\n\n if (render) {\n _chart.renderBrush(_chart.g());\n } else {\n _chart.redrawBrush(_chart.g());\n }\n }\n\n function configureMouseZoom () {\n if (_mouseZoomable) {\n _chart._enableMouseZoom();\n }\n else if (_hasBeenMouseZoomable) {\n _chart._disableMouseZoom();\n }\n }\n\n _chart._enableMouseZoom = function () {\n _hasBeenMouseZoomable = true;\n _zoom.x(_chart.x())\n .scaleExtent(_zoomScale)\n .size([_chart.width(), _chart.height()])\n .duration(_chart.transitionDuration());\n _chart.root().call(_zoom);\n };\n\n _chart._disableMouseZoom = function () {\n _chart.root().call(_nullZoom);\n };\n\n function constrainRange(range, constraint) {\n var constrainedRange = [];\n constrainedRange[0] = d3.max([range[0], constraint[0]]);\n constrainedRange[1] = d3.min([range[1], constraint[1]]);\n return constrainedRange;\n }\n\n /**\n #### .focus([range])\n Zoom this chart to focus on the given range. The given range should be an array containing only\n 2 elements (`[start, end]`) defining a range in the x domain. If the range is not given or set\n to null, then the zoom will be reset. _For focus to work elasticX has to be turned off;\n otherwise focus will be ignored._\n ```js\n chart.renderlet(function(chart){\n // smooth the rendering through event throttling\n dc.events.trigger(function(){\n // focus some other chart to the range selected by user on this chart\n someOtherChart.focus(chart.filter());\n });\n })\n ```\n\n **/\n _chart.focus = function (range) {\n if (hasRangeSelected(range)) {\n _chart.x().domain(range);\n } else {\n _chart.x().domain(_xOriginalDomain);\n }\n\n _zoom.x(_chart.x());\n zoomHandler();\n };\n\n _chart.refocused = function () {\n return _refocused;\n };\n\n _chart.focusChart = function (c) {\n if (!arguments.length) {\n return _focusChart;\n }\n _focusChart = c;\n _chart.on('filtered', function (chart) {\n if (!chart.filter()) {\n dc.events.trigger(function () {\n _focusChart.x().domain(_focusChart.xOriginalDomain());\n });\n } else if (!rangesEqual(chart.filter(), _focusChart.filter())) {\n dc.events.trigger(function () {\n _focusChart.focus(chart.filter());\n });\n }\n });\n return _chart;\n };\n\n function rangesEqual(range1, range2) {\n if (!range1 && !range2) {\n return true;\n }\n else if (!range1 || !range2) {\n return false;\n }\n else if (range1.length === 0 && range2.length === 0) {\n return true;\n }\n else if (range1[0].valueOf() === range2[0].valueOf() &&\n range1[1].valueOf() === range2[1].valueOf()) {\n return true;\n }\n return false;\n }\n\n /**\n #### .brushOn([boolean])\n Turn on/off the brush-based range filter. When brushing is on then user can drag the mouse\n across a chart with a quantitative scale to perform range filtering based on the extent of the\n brush, or click on the bars of an ordinal bar chart or slices of a pie chart to filter and\n unfilter them. However turning on the brush filter will disable other interactive elements on\n the chart such as highlighting, tool tips, and reference lines. Zooming will still be possible\n if enabled, but only via scrolling (panning will be disabled.) Default: true\n\n **/\n _chart.brushOn = function (_) {\n if (!arguments.length) {\n return _brushOn;\n }\n _brushOn = _;\n return _chart;\n };\n\n function hasRangeSelected(range) {\n return range instanceof Array && range.length > 1;\n }\n\n return _chart;\n};\n","/**\n## Stack Mixin\nStack Mixin is an mixin that provides cross-chart support of stackability using d3.layout.stack.\n\n**/\ndc.stackMixin = function (_chart) {\n\n function prepareValues (layer, layerIdx) {\n var valAccessor = layer.accessor || _chart.valueAccessor();\n layer.name = String(layer.name || layerIdx);\n layer.values = layer.group.all().map(function (d, i) {\n return {\n x: _chart.keyAccessor()(d, i),\n y: layer.hidden ? null : valAccessor(d, i),\n data: d,\n layer: layer.name,\n hidden: layer.hidden\n };\n });\n\n layer.values = layer.values.filter(domainFilter());\n return layer.values;\n }\n\n var _stackLayout = d3.layout.stack()\n .values(prepareValues);\n\n var _stack = [];\n var _titles = {};\n\n var _hidableStacks = false;\n\n function domainFilter() {\n if (!_chart.x()) {\n return d3.functor(true);\n }\n var xDomain = _chart.x().domain();\n if (_chart.isOrdinal()) {\n // TODO #416\n //var domainSet = d3.set(xDomain);\n return function () {\n return true; //domainSet.has(p.x);\n };\n }\n if (_chart.elasticX()) {\n return function () { return true; };\n }\n return function (p) {\n //return true;\n return p.x >= xDomain[0] && p.x <= xDomain[xDomain.length - 1];\n };\n }\n\n /**\n #### .stack(group[, name, accessor])\n Stack a new crossfilter group onto this chart with an optional custom value accessor. All stacks\n in the same chart will share the same key accessor and therefore the same set of keys.\n\n For example, in a stacked bar chart, the bars of each stack will be positioned using the same set\n of keys on the x axis, while stacked vertically. If name is specified then it will be used to\n generate the legend label.\n ```js\n // stack group using default accessor\n chart.stack(valueSumGroup)\n // stack group using custom accessor\n .stack(avgByDayGroup, function(d){return d.value.avgByDay;});\n ```\n\n **/\n _chart.stack = function (group, name, accessor) {\n if (!arguments.length) {\n return _stack;\n }\n\n if (arguments.length <= 2) {\n accessor = name;\n }\n\n var layer = {group:group};\n if (typeof name === 'string') {\n layer.name = name;\n }\n if (typeof accessor === 'function') {\n layer.accessor = accessor;\n }\n _stack.push(layer);\n\n return _chart;\n };\n\n dc.override(_chart, 'group', function (g, n, f) {\n if (!arguments.length) {\n return _chart._group();\n }\n _stack = [];\n _titles = {};\n _chart.stack(g, n);\n if (f) {\n _chart.valueAccessor(f);\n }\n return _chart._group(g, n);\n });\n\n /**\n #### .hidableStacks([boolean])\n Allow named stacks to be hidden or shown by clicking on legend items.\n This does not affect the behavior of hideStack or showStack.\n\n **/\n _chart.hidableStacks = function (_) {\n if (!arguments.length) {\n return _hidableStacks;\n }\n _hidableStacks = _;\n return _chart;\n };\n\n function findLayerByName(n) {\n var i = _stack.map(dc.pluck('name')).indexOf(n);\n return _stack[i];\n }\n\n /**\n #### .hideStack(name)\n Hide all stacks on the chart with the given name.\n The chart must be re-rendered for this change to appear.\n\n **/\n _chart.hideStack = function (stackName) {\n var layer = findLayerByName(stackName);\n if (layer) {\n layer.hidden = true;\n }\n return _chart;\n };\n\n /**\n #### .showStack(name)\n Show all stacks on the chart with the given name.\n The chart must be re-rendered for this change to appear.\n\n **/\n _chart.showStack = function (stackName) {\n var layer = findLayerByName(stackName);\n if (layer) {\n layer.hidden = false;\n }\n return _chart;\n };\n\n _chart.getValueAccessorByIndex = function (index) {\n return _stack[index].accessor || _chart.valueAccessor();\n };\n\n _chart.yAxisMin = function () {\n var min = d3.min(flattenStack(), function (p) {\n return (p.y + p.y0 < p.y0) ? (p.y + p.y0) : p.y0;\n });\n\n return dc.utils.subtract(min, _chart.yAxisPadding());\n\n };\n\n _chart.yAxisMax = function () {\n var max = d3.max(flattenStack(), function (p) {\n return p.y + p.y0;\n });\n\n return dc.utils.add(max, _chart.yAxisPadding());\n };\n\n function flattenStack() {\n var valueses = _chart.data().map(function (layer) { return layer.values; });\n return Array.prototype.concat.apply([], valueses);\n }\n\n _chart.xAxisMin = function () {\n var min = d3.min(flattenStack(), dc.pluck('x'));\n return dc.utils.subtract(min, _chart.xAxisPadding());\n };\n\n _chart.xAxisMax = function () {\n var max = d3.max(flattenStack(), dc.pluck('x'));\n return dc.utils.add(max, _chart.xAxisPadding());\n };\n\n /**\n #### .title([stackName], [titleFunction])\n Set or get the title function. Chart class will use this function to render svg title (usually interpreted by\n browser as tooltips) for each child element in the chart, i.e. a slice in a pie chart or a bubble in a bubble chart.\n Almost every chart supports title function however in grid coordinate chart you need to turn off brush in order to\n use title otherwise the brush layer will block tooltip trigger.\n\n If the first argument is a stack name, the title function will get or set the title for that stack. If stackName\n is not provided, the first stack is implied.\n ```js\n // set a title function on 'first stack'\n chart.title('first stack', function(d) { return d.key + ': ' + d.value; });\n // get a title function from 'second stack'\n var secondTitleFunction = chart.title('second stack');\n );\n ```\n **/\n dc.override(_chart, 'title', function (stackName, titleAccessor) {\n if (!stackName) {\n return _chart._title();\n }\n\n if (typeof stackName === 'function') {\n return _chart._title(stackName);\n }\n if (stackName === _chart._groupName && typeof titleAccessor === 'function') {\n return _chart._title(titleAccessor);\n }\n\n if (typeof titleAccessor !== 'function') {\n return _titles[stackName] || _chart._title();\n }\n\n _titles[stackName] = titleAccessor;\n\n return _chart;\n });\n\n /**\n #### .stackLayout([layout])\n Gets or sets the stack layout algorithm, which computes a baseline for each stack and\n propagates it to the next. The default is\n [d3.layout.stack](https://github.com/mbostock/d3/wiki/Stack-Layout#stack).\n **/\n _chart.stackLayout = function (stack) {\n if (!arguments.length) {\n return _stackLayout;\n }\n _stackLayout = stack;\n return _chart;\n };\n\n function visability(l) {\n return !l.hidden;\n }\n\n _chart.data(function () {\n var layers = _stack.filter(visability);\n return layers.length ? _chart.stackLayout()(layers) : [];\n });\n\n _chart._ordinalXDomain = function () {\n var flat = flattenStack().map(dc.pluck('data'));\n var ordered = _chart._computeOrderedGroups(flat);\n return ordered.map(_chart.keyAccessor());\n };\n\n _chart.colorAccessor(function (d) {\n var layer = this.layer || this.name || d.name || d.layer;\n return layer;\n });\n\n _chart.legendables = function () {\n return _stack.map(function (layer, i) {\n return {\n chart:_chart,\n name:layer.name,\n hidden: layer.hidden || false,\n color:_chart.getColor.call(layer, layer.values, i)\n };\n });\n };\n\n _chart.isLegendableHidden = function (d) {\n var layer = findLayerByName(d.name);\n return layer ? layer.hidden : false;\n };\n\n _chart.legendToggle = function (d) {\n if (_hidableStacks) {\n if (_chart.isLegendableHidden(d)) {\n _chart.showStack(d.name);\n } else {\n _chart.hideStack(d.name);\n }\n //_chart.redraw();\n _chart.renderGroup();\n }\n };\n\n return _chart;\n};\n","/**\n## Cap Mixin\nCap is a mixin that groups small data elements below a _cap_ into an *others* grouping for both the\nRow and Pie Charts.\n\nThe top ordered elements in the group up to the cap amount will be kept in the chart, and the rest\nwill be replaced with an *others* element, with value equal to the sum of the replaced values. The\nkeys of the elements below the cap limit are recorded in order to filter by those keys when the\n*others* element is clicked.\n\n**/\ndc.capMixin = function (_chart) {\n\n var _cap = Infinity;\n\n var _othersLabel = 'Others';\n\n var _othersGrouper = function (topRows) {\n var topRowsSum = d3.sum(topRows, _chart.valueAccessor()),\n allRows = _chart.group().all(),\n allRowsSum = d3.sum(allRows, _chart.valueAccessor()),\n topKeys = topRows.map(_chart.keyAccessor()),\n allKeys = allRows.map(_chart.keyAccessor()),\n topSet = d3.set(topKeys),\n others = allKeys.filter(function (d) {return !topSet.has(d);});\n if (allRowsSum > topRowsSum) {\n return topRows.concat([{'others': others, 'key': _othersLabel, 'value': allRowsSum - topRowsSum}]);\n }\n return topRows;\n };\n\n _chart.cappedKeyAccessor = function (d, i) {\n if (d.others) {\n return d.key;\n }\n return _chart.keyAccessor()(d, i);\n };\n\n _chart.cappedValueAccessor = function (d, i) {\n if (d.others) {\n return d.value;\n }\n return _chart.valueAccessor()(d, i);\n };\n\n _chart.data(function (group) {\n if (_cap === Infinity) {\n return _chart._computeOrderedGroups(group.all());\n } else {\n var topRows = group.top(_cap); // ordered by crossfilter group order (default value)\n topRows = _chart._computeOrderedGroups(topRows); // re-order using ordering (default key)\n if (_othersGrouper) {\n return _othersGrouper(topRows);\n }\n return topRows;\n }\n });\n\n /**\n #### .cap([count])\n Get or set the count of elements to that will be included in the cap.\n **/\n _chart.cap = function (_) {\n if (!arguments.length) {\n return _cap;\n }\n _cap = _;\n return _chart;\n };\n\n /**\n #### .othersLabel([label])\n Get or set the label for *Others* slice when slices cap is specified. Default label is **Others**.\n **/\n _chart.othersLabel = function (_) {\n if (!arguments.length) {\n return _othersLabel;\n }\n _othersLabel = _;\n return _chart;\n };\n\n /**\n #### .othersGrouper([grouperFunction])\n Get or set the grouper function that will perform the insertion of data for the *Others* slice\n if the slices cap is specified. If set to a falsy value, no others will be added. By default the\n grouper function computes the sum of all values below the cap.\n ```js\n chart.othersGrouper(function (data) {\n // compute the value for others, presumably the sum of all values below the cap\n var othersSum = yourComputeOthersValueLogic(data)\n\n // the keys are needed to properly filter when the others element is clicked\n var othersKeys = yourComputeOthersKeysArrayLogic(data);\n\n // add the others row to the dataset\n data.push({'key': 'Others', 'value': othersSum, 'others': othersKeys });\n\n return data;\n });\n ```\n **/\n _chart.othersGrouper = function (_) {\n if (!arguments.length) {\n return _othersGrouper;\n }\n _othersGrouper = _;\n return _chart;\n };\n\n dc.override(_chart, 'onClick', function (d) {\n if (d.others) {\n _chart.filter([d.others]);\n }\n _chart._onClick(d);\n });\n\n return _chart;\n};\n","/**\n## Bubble Mixin\nIncludes: [Color Mixin](#color-mixin)\n\nThis Mixin provides reusable functionalities for any chart that needs to visualize data using bubbles.\n\n**/\ndc.bubbleMixin = function (_chart) {\n var _maxBubbleRelativeSize = 0.3;\n var _minRadiusWithLabel = 10;\n\n _chart.BUBBLE_NODE_CLASS = 'node';\n _chart.BUBBLE_CLASS = 'bubble';\n _chart.MIN_RADIUS = 10;\n\n _chart = dc.colorMixin(_chart);\n\n _chart.renderLabel(true);\n\n _chart.data(function (group) {\n return group.top(Infinity);\n });\n\n var _r = d3.scale.linear().domain([0, 100]);\n\n var _rValueAccessor = function (d) {\n return d.r;\n };\n\n /**\n #### .r([bubbleRadiusScale])\n Get or set the bubble radius scale. By default the bubble chart uses\n `d3.scale.linear().domain([0, 100])` as its r scale .\n\n **/\n _chart.r = function (_) {\n if (!arguments.length) {\n return _r;\n }\n _r = _;\n return _chart;\n };\n\n /**\n #### .radiusValueAccessor([radiusValueAccessor])\n Get or set the radius value accessor function. If set, the radius value accessor function will\n be used to retrieve a data value for each bubble. The data retrieved then will be mapped using\n the r scale to the actual bubble radius. This allows you to encode a data dimension using bubble\n size.\n\n **/\n _chart.radiusValueAccessor = function (_) {\n if (!arguments.length) {\n return _rValueAccessor;\n }\n _rValueAccessor = _;\n return _chart;\n };\n\n _chart.rMin = function () {\n var min = d3.min(_chart.data(), function (e) {\n return _chart.radiusValueAccessor()(e);\n });\n return min;\n };\n\n _chart.rMax = function () {\n var max = d3.max(_chart.data(), function (e) {\n return _chart.radiusValueAccessor()(e);\n });\n return max;\n };\n\n _chart.bubbleR = function (d) {\n var value = _chart.radiusValueAccessor()(d);\n var r = _chart.r()(value);\n if (isNaN(r) || value <= 0) {\n r = 0;\n }\n return r;\n };\n\n var labelFunction = function (d) {\n return _chart.label()(d);\n };\n\n var labelOpacity = function (d) {\n return (_chart.bubbleR(d) > _minRadiusWithLabel) ? 1 : 0;\n };\n\n _chart._doRenderLabel = function (bubbleGEnter) {\n if (_chart.renderLabel()) {\n var label = bubbleGEnter.select('text');\n\n if (label.empty()) {\n label = bubbleGEnter.append('text')\n .attr('text-anchor', 'middle')\n .attr('dy', '.3em')\n .on('click', _chart.onClick);\n }\n\n label\n .attr('opacity', 0)\n .text(labelFunction);\n dc.transition(label, _chart.transitionDuration())\n .attr('opacity', labelOpacity);\n }\n };\n\n _chart.doUpdateLabels = function (bubbleGEnter) {\n if (_chart.renderLabel()) {\n var labels = bubbleGEnter.selectAll('text')\n .text(labelFunction);\n dc.transition(labels, _chart.transitionDuration())\n .attr('opacity', labelOpacity);\n }\n };\n\n var titleFunction = function (d) {\n return _chart.title()(d);\n };\n\n _chart._doRenderTitles = function (g) {\n if (_chart.renderTitle()) {\n var title = g.select('title');\n\n if (title.empty()) {\n g.append('title').text(titleFunction);\n }\n }\n };\n\n _chart.doUpdateTitles = function (g) {\n if (_chart.renderTitle()) {\n g.selectAll('title').text(titleFunction);\n }\n };\n\n /**\n #### .minRadiusWithLabel([radius])\n Get or set the minimum radius for label rendering. If a bubble's radius is less than this value\n then no label will be rendered. Default: 10\n\n **/\n _chart.minRadiusWithLabel = function (_) {\n if (!arguments.length) {\n return _minRadiusWithLabel;\n }\n _minRadiusWithLabel = _;\n return _chart;\n };\n\n /**\n #### .maxBubbleRelativeSize([relativeSize])\n Get or set the maximum relative size of a bubble to the length of x axis. This value is useful\n when the difference in radius between bubbles is too great. Default: 0.3\n\n **/\n _chart.maxBubbleRelativeSize = function (_) {\n if (!arguments.length) {\n return _maxBubbleRelativeSize;\n }\n _maxBubbleRelativeSize = _;\n return _chart;\n };\n\n _chart.fadeDeselectedArea = function () {\n if (_chart.hasFilter()) {\n _chart.selectAll('g.' + _chart.BUBBLE_NODE_CLASS).each(function (d) {\n if (_chart.isSelectedNode(d)) {\n _chart.highlightSelected(this);\n } else {\n _chart.fadeDeselected(this);\n }\n });\n } else {\n _chart.selectAll('g.' + _chart.BUBBLE_NODE_CLASS).each(function () {\n _chart.resetHighlight(this);\n });\n }\n };\n\n _chart.isSelectedNode = function (d) {\n return _chart.hasFilter(d.key);\n };\n\n _chart.onClick = function (d) {\n var filter = d.key;\n dc.events.trigger(function () {\n _chart.filter(filter);\n _chart.redrawGroup();\n });\n };\n\n return _chart;\n};\n","/**\n## Pie Chart\nIncludes: [Cap Mixin](#cap-mixin), [Color Mixin](#color-mixin), [Base Mixin](#base-mixin)\n\nThe pie chart implementation is usually used to visualize a small categorical distribution. The pie\nchart uses keyAccessor to determine the slices, and valueAccessor to calculate the size of each\nslice relative to the sum of all values. Slices are ordered by `.ordering` which defaults to sorting\nby key.\n\nExamples:\n\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n#### dc.pieChart(parent[, chartGroup])\nCreate a pie chart instance and attaches it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created pie chart instance\n\n```js\n// create a pie chart under #chart-container1 element using the default global chart group\nvar chart1 = dc.pieChart('#chart-container1');\n// create a pie chart under #chart-container2 element using chart group A\nvar chart2 = dc.pieChart('#chart-container2', 'chartGroupA');\n```\n\n**/\ndc.pieChart = function (parent, chartGroup) {\n var DEFAULT_MIN_ANGLE_FOR_LABEL = 0.5;\n\n var _sliceCssClass = 'pie-slice';\n var _emptyCssClass = 'empty-chart';\n var _emptyTitle = 'empty';\n\n var _radius,\n _innerRadius = 0;\n\n var _g;\n var _cx;\n var _cy;\n var _minAngleForLabel = DEFAULT_MIN_ANGLE_FOR_LABEL;\n var _externalLabelRadius;\n var _chart = dc.capMixin(dc.colorMixin(dc.baseMixin({})));\n\n _chart.colorAccessor(_chart.cappedKeyAccessor);\n _chart.legendLabelAccessor(_chart.cappedKeyAccessor);\n\n _chart.title(function (d) {\n return _chart.cappedKeyAccessor(d) + ': ' + _chart.cappedValueAccessor(d);\n });\n\n /**\n #### .slicesCap([cap])\n Get or set the maximum number of slices the pie chart will generate. The top slices are determined by\n value from high to low. Other slices exeeding the cap will be rolled up into one single *Others* slice.\n The resulting data will still be sorted by .ordering (default by key).\n\n **/\n _chart.slicesCap = _chart.cap;\n\n _chart.label(_chart.cappedKeyAccessor);\n _chart.renderLabel(true);\n\n _chart.transitionDuration(350);\n\n _chart._doRender = function () {\n _chart.resetSvg();\n\n _g = _chart.svg()\n .append('g')\n .attr('transform', 'translate(' + _chart.cx() + ',' + _chart.cy() + ')');\n\n drawChart();\n\n return _chart;\n };\n\n function drawChart() {\n // set radius on basis of chart dimension if missing\n _radius = _radius ? _radius : d3.min([_chart.width(), _chart.height()]) / 2;\n\n var arc = buildArcs();\n\n var pie = pieLayout();\n var pieData;\n // if we have data...\n if (d3.sum(_chart.data(), _chart.valueAccessor())) {\n pieData = pie(_chart.data());\n _g.classed(_emptyCssClass, false);\n } else {\n // otherwise we'd be getting NaNs, so override\n // note: abuse others for its ignoring the value accessor\n pieData = pie([{key:_emptyTitle, value:1, others: [_emptyTitle]}]);\n _g.classed(_emptyCssClass, true);\n }\n\n if (_g) {\n var slices = _g.selectAll('g.' + _sliceCssClass)\n .data(pieData);\n\n createElements(slices, arc, pieData);\n\n updateElements(pieData, arc);\n\n removeElements(slices);\n\n highlightFilter();\n }\n }\n\n function createElements(slices, arc, pieData) {\n var slicesEnter = createSliceNodes(slices);\n\n createSlicePath(slicesEnter, arc);\n\n createTitles(slicesEnter);\n\n createLabels(pieData, arc);\n }\n\n function createSliceNodes(slices) {\n var slicesEnter = slices\n .enter()\n .append('g')\n .attr('class', function (d, i) {\n return _sliceCssClass + ' _' + i;\n });\n return slicesEnter;\n }\n\n function createSlicePath(slicesEnter, arc) {\n var slicePath = slicesEnter.append('path')\n .attr('fill', fill)\n .on('click', onClick)\n .attr('d', function (d, i) {\n return safeArc(d, i, arc);\n });\n\n dc.transition(slicePath, _chart.transitionDuration(), function (s) {\n s.attrTween('d', tweenPie);\n });\n }\n\n function createTitles(slicesEnter) {\n if (_chart.renderTitle()) {\n slicesEnter.append('title').text(function (d) {\n return _chart.title()(d.data);\n });\n }\n }\n\n function positionLabels(labelsEnter, arc) {\n dc.transition(labelsEnter, _chart.transitionDuration())\n .attr('transform', function (d) {\n return labelPosition(d, arc);\n })\n .attr('text-anchor', 'middle')\n .text(function (d) {\n var data = d.data;\n if ((sliceHasNoData(data) || sliceTooSmall(d)) && !isSelectedSlice(d)) {\n return '';\n }\n return _chart.label()(d.data);\n });\n }\n\n function createLabels(pieData, arc) {\n if (_chart.renderLabel()) {\n var labels = _g.selectAll('text.' + _sliceCssClass)\n .data(pieData);\n\n labels.exit().remove();\n\n var labelsEnter = labels\n .enter()\n .append('text')\n .attr('class', function (d, i) {\n var classes = _sliceCssClass + ' _' + i;\n if (_externalLabelRadius) {\n classes += ' external';\n }\n return classes;\n })\n .on('click', onClick);\n positionLabels(labelsEnter, arc);\n }\n }\n\n function updateElements(pieData, arc) {\n updateSlicePaths(pieData, arc);\n updateLabels(pieData, arc);\n updateTitles(pieData);\n }\n\n function updateSlicePaths(pieData, arc) {\n var slicePaths = _g.selectAll('g.' + _sliceCssClass)\n .data(pieData)\n .select('path')\n .attr('d', function (d, i) {\n return safeArc(d, i, arc);\n });\n dc.transition(slicePaths, _chart.transitionDuration(),\n function (s) {\n s.attrTween('d', tweenPie);\n }).attr('fill', fill);\n }\n\n function updateLabels(pieData, arc) {\n if (_chart.renderLabel()) {\n var labels = _g.selectAll('text.' + _sliceCssClass)\n .data(pieData);\n positionLabels(labels, arc);\n }\n }\n\n function updateTitles(pieData) {\n if (_chart.renderTitle()) {\n _g.selectAll('g.' + _sliceCssClass)\n .data(pieData)\n .select('title')\n .text(function (d) {\n return _chart.title()(d.data);\n });\n }\n }\n\n function removeElements(slices) {\n slices.exit().remove();\n }\n\n function highlightFilter() {\n if (_chart.hasFilter()) {\n _chart.selectAll('g.' + _sliceCssClass).each(function (d) {\n if (isSelectedSlice(d)) {\n _chart.highlightSelected(this);\n } else {\n _chart.fadeDeselected(this);\n }\n });\n } else {\n _chart.selectAll('g.' + _sliceCssClass).each(function () {\n _chart.resetHighlight(this);\n });\n }\n }\n\n /**\n #### .innerRadius([innerRadius])\n Get or set the inner radius of the pie chart. If the inner radius is greater than 0px then the\n pie chart will be rendered as a doughnut chart. Default inner radius is 0px.\n\n **/\n _chart.innerRadius = function (r) {\n if (!arguments.length) {\n return _innerRadius;\n }\n _innerRadius = r;\n return _chart;\n };\n\n /**\n #### .radius([radius])\n Get or set the outer radius. If the radius is not set, it will be half of the minimum of the\n chart width and height.\n\n **/\n _chart.radius = function (r) {\n if (!arguments.length) {\n return _radius;\n }\n _radius = r;\n return _chart;\n };\n\n /**\n #### .cx([cx])\n Get or set center x coordinate position. Default is center of svg.\n\n **/\n _chart.cx = function (cx) {\n if (!arguments.length) {\n return (_cx || _chart.width() / 2);\n }\n _cx = cx;\n return _chart;\n };\n\n /**\n #### .cy([cy])\n Get or set center y coordinate position. Default is center of svg.\n\n **/\n _chart.cy = function (cy) {\n if (!arguments.length) {\n return (_cy || _chart.height() / 2);\n }\n _cy = cy;\n return _chart;\n };\n\n function buildArcs() {\n return d3.svg.arc().outerRadius(_radius).innerRadius(_innerRadius);\n }\n\n function isSelectedSlice(d) {\n return _chart.hasFilter(_chart.cappedKeyAccessor(d.data));\n }\n\n _chart._doRedraw = function () {\n drawChart();\n return _chart;\n };\n\n /**\n #### .minAngleForLabel([minAngle])\n Get or set the minimal slice angle for label rendering. Any slice with a smaller angle will not\n display a slice label. Default min angle is 0.5.\n **/\n _chart.minAngleForLabel = function (_) {\n if (!arguments.length) {\n return _minAngleForLabel;\n }\n _minAngleForLabel = _;\n return _chart;\n };\n\n function pieLayout() {\n return d3.layout.pie().sort(null).value(_chart.cappedValueAccessor);\n }\n\n function sliceTooSmall(d) {\n var angle = (d.endAngle - d.startAngle);\n return isNaN(angle) || angle < _minAngleForLabel;\n }\n\n function sliceHasNoData(d) {\n return _chart.cappedValueAccessor(d) === 0;\n }\n\n function tweenPie(b) {\n b.innerRadius = _innerRadius;\n var current = this._current;\n if (isOffCanvas(current)) {\n current = {startAngle: 0, endAngle: 0};\n }\n var i = d3.interpolate(current, b);\n this._current = i(0);\n return function (t) {\n return safeArc(i(t), 0, buildArcs());\n };\n }\n\n function isOffCanvas(current) {\n return !current || isNaN(current.startAngle) || isNaN(current.endAngle);\n }\n\n function fill(d, i) {\n return _chart.getColor(d.data, i);\n }\n\n function onClick(d, i) {\n if (_g.attr('class') !== _emptyCssClass) {\n _chart.onClick(d.data, i);\n }\n }\n\n function safeArc(d, i, arc) {\n var path = arc(d, i);\n if (path.indexOf('NaN') >= 0) {\n path = 'M0,0';\n }\n return path;\n }\n\n /**\n #### .emptyTitle([title])\n Title to use for the only slice when there is no data\n */\n _chart.emptyTitle = function (title) {\n if (arguments.length === 0) {\n return _emptyTitle;\n }\n _emptyTitle = title;\n return _chart;\n };\n\n /**\n #### .externalLabels([radius])\n Position slice labels offset from the outer edge of the chart\n\n The given argument sets the radial offset.\n */\n _chart.externalLabels = function (radius) {\n if (arguments.length === 0) {\n return _externalLabelRadius;\n } else if (radius) {\n _externalLabelRadius = radius;\n } else {\n _externalLabelRadius = undefined;\n }\n\n return _chart;\n };\n\n function labelPosition(d, arc) {\n var centroid;\n if (_externalLabelRadius) {\n centroid = d3.svg.arc()\n .outerRadius(_radius + _externalLabelRadius)\n .innerRadius(_radius + _externalLabelRadius)\n .centroid(d);\n } else {\n centroid = arc.centroid(d);\n }\n if (isNaN(centroid[0]) || isNaN(centroid[1])) {\n return 'translate(0,0)';\n } else {\n return 'translate(' + centroid + ')';\n }\n }\n\n _chart.legendables = function () {\n return _chart.data().map(function (d, i) {\n var legendable = { name: _chart.legendLabelAccessor().call(this, d, i),\n data: d.value, others: d.others, chart:_chart };\n legendable.color = _chart.getColor(d, i);\n return legendable;\n });\n };\n\n _chart.legendHighlight = function (d) {\n highlightSliceFromLegendable(d, true);\n };\n\n _chart.legendReset = function (d) {\n highlightSliceFromLegendable(d, false);\n };\n\n _chart.legendToggle = function (d) {\n _chart.onClick({key: d.name, others: d.others});\n };\n\n function highlightSliceFromLegendable(legendable, highlighted) {\n _chart.selectAll('g.pie-slice').each(function (d) {\n if (legendable.name === d.data.key) {\n d3.select(this).classed('highlight', highlighted);\n }\n });\n }\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Bar Chart\nIncludes: [Stack Mixin](#stack Mixin), [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nConcrete bar chart/histogram implementation.\n\nExamples:\n\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n* [Canadian City Crime Stats](http://dc-js.github.com/dc.js/crime/index.html)\n#### dc.barChart(parent[, chartGroup])\nCreate a bar chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection | compositeChart - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n If the bar chart is a sub-chart in a [Composite Chart](#composite-chart) then pass in the parent composite\n chart instance.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created bar chart instance\n\n```js\n// create a bar chart under #chart-container1 element using the default global chart group\nvar chart1 = dc.barChart('#chart-container1');\n// create a bar chart under #chart-container2 element using chart group A\nvar chart2 = dc.barChart('#chart-container2', 'chartGroupA');\n// create a sub-chart under a composite parent chart\nvar chart3 = dc.barChart(compositeChart);\n```\n\n**/\ndc.barChart = function (parent, chartGroup) {\n var MIN_BAR_WIDTH = 1;\n var DEFAULT_GAP_BETWEEN_BARS = 2;\n\n var _chart = dc.stackMixin(dc.coordinateGridMixin({}));\n\n var _gap = DEFAULT_GAP_BETWEEN_BARS;\n var _centerBar = false;\n var _alwaysUseRounding = false;\n\n var _barWidth;\n\n dc.override(_chart, 'rescale', function () {\n _chart._rescale();\n _barWidth = undefined;\n });\n\n dc.override(_chart, 'render', function () {\n if (_chart.round() && _centerBar && !_alwaysUseRounding) {\n dc.logger.warn('By default, brush rounding is disabled if bars are centered. ' +\n 'See dc.js bar chart API documentation for details.');\n }\n\n _chart._render();\n });\n\n _chart.plotData = function () {\n var layers = _chart.chartBodyG().selectAll('g.stack')\n .data(_chart.data());\n\n calculateBarWidth();\n\n layers\n .enter()\n .append('g')\n .attr('class', function (d, i) {\n return 'stack ' + '_' + i;\n });\n\n layers.each(function (d, i) {\n var layer = d3.select(this);\n\n renderBars(layer, i, d);\n });\n };\n\n function barHeight(d) {\n return dc.utils.safeNumber(Math.abs(_chart.y()(d.y + d.y0) - _chart.y()(d.y0)));\n }\n\n function renderBars(layer, layerIndex, d) {\n var bars = layer.selectAll('rect.bar')\n .data(d.values, dc.pluck('x'));\n\n var enter = bars.enter()\n .append('rect')\n .attr('class', 'bar')\n .attr('fill', dc.pluck('data', _chart.getColor))\n .attr('y', _chart.yAxisHeight())\n .attr('height', 0);\n\n if (_chart.renderTitle()) {\n enter.append('title').text(dc.pluck('data', _chart.title(d.name)));\n }\n\n if (_chart.isOrdinal()) {\n bars.on('click', _chart.onClick);\n }\n\n dc.transition(bars, _chart.transitionDuration())\n .attr('x', function (d) {\n var x = _chart.x()(d.x);\n if (_centerBar) {\n x -= _barWidth / 2;\n }\n if (_chart.isOrdinal() && _gap !== undefined) {\n x += _gap / 2;\n }\n return dc.utils.safeNumber(x);\n })\n .attr('y', function (d) {\n var y = _chart.y()(d.y + d.y0);\n\n if (d.y < 0) {\n y -= barHeight(d);\n }\n\n return dc.utils.safeNumber(y);\n })\n .attr('width', _barWidth)\n .attr('height', function (d) {\n return barHeight(d);\n })\n .attr('fill', dc.pluck('data', _chart.getColor))\n .select('title').text(dc.pluck('data', _chart.title(d.name)));\n\n dc.transition(bars.exit(), _chart.transitionDuration())\n .attr('height', 0)\n .remove();\n }\n\n function calculateBarWidth() {\n if (_barWidth === undefined) {\n var numberOfBars = _chart.xUnitCount();\n\n // please can't we always use rangeBands for bar charts?\n if (_chart.isOrdinal() && _gap === undefined) {\n _barWidth = Math.floor(_chart.x().rangeBand());\n } else if (_gap) {\n _barWidth = Math.floor((_chart.xAxisLength() - (numberOfBars - 1) * _gap) / numberOfBars);\n } else {\n _barWidth = Math.floor(_chart.xAxisLength() / (1 + _chart.barPadding()) / numberOfBars);\n }\n\n if (_barWidth === Infinity || isNaN(_barWidth) || _barWidth < MIN_BAR_WIDTH) {\n _barWidth = MIN_BAR_WIDTH;\n }\n }\n }\n\n _chart.fadeDeselectedArea = function () {\n var bars = _chart.chartBodyG().selectAll('rect.bar');\n var extent = _chart.brush().extent();\n\n if (_chart.isOrdinal()) {\n if (_chart.hasFilter()) {\n bars.classed(dc.constants.SELECTED_CLASS, function (d) {\n return _chart.hasFilter(d.x);\n });\n bars.classed(dc.constants.DESELECTED_CLASS, function (d) {\n return !_chart.hasFilter(d.x);\n });\n } else {\n bars.classed(dc.constants.SELECTED_CLASS, false);\n bars.classed(dc.constants.DESELECTED_CLASS, false);\n }\n } else {\n if (!_chart.brushIsEmpty(extent)) {\n var start = extent[0];\n var end = extent[1];\n\n bars.classed(dc.constants.DESELECTED_CLASS, function (d) {\n return d.x < start || d.x >= end;\n });\n } else {\n bars.classed(dc.constants.DESELECTED_CLASS, false);\n }\n }\n };\n\n /**\n #### .centerBar(boolean)\n Whether the bar chart will render each bar centered around the data position on x axis. Default: false\n\n **/\n _chart.centerBar = function (_) {\n if (!arguments.length) {\n return _centerBar;\n }\n _centerBar = _;\n return _chart;\n };\n\n dc.override(_chart, 'onClick', function (d) {\n _chart._onClick(d.data);\n });\n\n /**\n #### .barPadding([padding])\n Get or set the spacing between bars as a fraction of bar size. Valid values are between 0-1.\n Setting this value will also remove any previously set `gap`. See the\n [d3 docs](https://github.com/mbostock/d3/wiki/Ordinal-Scales#wiki-ordinal_rangeBands)\n for a visual description of how the padding is applied.\n **/\n _chart.barPadding = function (_) {\n if (!arguments.length) {\n return _chart._rangeBandPadding();\n }\n _chart._rangeBandPadding(_);\n _gap = undefined;\n return _chart;\n };\n\n _chart._useOuterPadding = function () {\n return _gap === undefined;\n };\n\n /**\n #### .outerPadding([padding])\n Get or set the outer padding on an ordinal bar chart. This setting has no effect on non-ordinal charts.\n Will pad the width by `padding * barWidth` on each side of the chart.\n\n Default: 0.5\n **/\n _chart.outerPadding = _chart._outerRangeBandPadding;\n\n /**\n #### .gap(gapBetweenBars)\n Manually set fixed gap (in px) between bars instead of relying on the default auto-generated\n gap. By default the bar chart implementation will calculate and set the gap automatically\n based on the number of data points and the length of the x axis.\n\n **/\n _chart.gap = function (_) {\n if (!arguments.length) {\n return _gap;\n }\n _gap = _;\n return _chart;\n };\n\n _chart.extendBrush = function () {\n var extent = _chart.brush().extent();\n if (_chart.round() && (!_centerBar || _alwaysUseRounding)) {\n extent[0] = extent.map(_chart.round())[0];\n extent[1] = extent.map(_chart.round())[1];\n\n _chart.chartBodyG().select('.brush')\n .call(_chart.brush().extent(extent));\n }\n\n return extent;\n };\n\n /**\n #### .alwaysUseRounding([boolean])\n Set or get whether rounding is enabled when bars are centered. Default: false. If false, using\n rounding with centered bars will result in a warning and rounding will be ignored. This flag\n has no effect if bars are not centered.\n\n When using standard d3.js rounding methods, the brush often doesn't align correctly with\n centered bars since the bars are offset. The rounding function must add an offset to\n compensate, such as in the following example.\n ```js\n chart.round(function(n) {return Math.floor(n)+0.5});\n ```\n **/\n _chart.alwaysUseRounding = function (_) {\n if (!arguments.length) {\n return _alwaysUseRounding;\n }\n _alwaysUseRounding = _;\n return _chart;\n };\n\n function colorFilter(color, inv) {\n return function () {\n var item = d3.select(this);\n var match = item.attr('fill') === color;\n return inv ? !match : match;\n };\n }\n\n _chart.legendHighlight = function (d) {\n if (!_chart.isLegendableHidden(d)) {\n _chart.g().selectAll('rect.bar')\n .classed('highlight', colorFilter(d.color))\n .classed('fadeout', colorFilter(d.color, true));\n }\n };\n\n _chart.legendReset = function () {\n _chart.g().selectAll('rect.bar')\n .classed('highlight', false)\n .classed('fadeout', false);\n };\n\n dc.override(_chart, 'xAxisMax', function () {\n var max = this._xAxisMax();\n if ('resolution' in _chart.xUnits()) {\n var res = _chart.xUnits().resolution;\n max += res;\n }\n return max;\n });\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Line Chart\nIncludes [Stack Mixin](#stack-mixin), [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nConcrete line/area chart implementation.\n\nExamples:\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n* [Canadian City Crime Stats](http://dc-js.github.com/dc.js/crime/index.html)\n#### dc.lineChart(parent[, chartGroup])\nCreate a line chart instance and attach it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection | compositeChart - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n If the line chart is a sub-chart in a [Composite Chart](#composite-chart) then pass in the parent composite\n chart instance.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created line chart instance\n\n```js\n// create a line chart under #chart-container1 element using the default global chart group\nvar chart1 = dc.lineChart('#chart-container1');\n// create a line chart under #chart-container2 element using chart group A\nvar chart2 = dc.lineChart('#chart-container2', 'chartGroupA');\n// create a sub-chart under a composite parent chart\nvar chart3 = dc.lineChart(compositeChart);\n```\n\n**/\ndc.lineChart = function (parent, chartGroup) {\n var DEFAULT_DOT_RADIUS = 5;\n var TOOLTIP_G_CLASS = 'dc-tooltip';\n var DOT_CIRCLE_CLASS = 'dot';\n var Y_AXIS_REF_LINE_CLASS = 'yRef';\n var X_AXIS_REF_LINE_CLASS = 'xRef';\n var DEFAULT_DOT_OPACITY = 1e-6;\n\n var _chart = dc.stackMixin(dc.coordinateGridMixin({}));\n var _renderArea = false;\n var _dotRadius = DEFAULT_DOT_RADIUS;\n var _dataPointRadius = null;\n var _dataPointFillOpacity = DEFAULT_DOT_OPACITY;\n var _dataPointStrokeOpacity = DEFAULT_DOT_OPACITY;\n var _interpolate = 'linear';\n var _tension = 0.7;\n var _defined;\n var _dashStyle;\n var _xyTipsOn = true;\n\n _chart.transitionDuration(500);\n _chart._rangeBandPadding(1);\n\n _chart.plotData = function () {\n var chartBody = _chart.chartBodyG();\n var layersList = chartBody.selectAll('g.stack-list');\n\n if (layersList.empty()) {\n layersList = chartBody.append('g').attr('class', 'stack-list');\n }\n\n var layers = layersList.selectAll('g.stack').data(_chart.data());\n\n var layersEnter = layers\n .enter()\n .append('g')\n .attr('class', function (d, i) {\n return 'stack ' + '_' + i;\n });\n\n drawLine(layersEnter, layers);\n\n drawArea(layersEnter, layers);\n\n drawDots(chartBody, layers);\n };\n\n /**\n #### .interpolate([value])\n Gets or sets the interpolator to use for lines drawn, by string name, allowing e.g. step\n functions, splines, and cubic interpolation. This is passed to\n [d3.svg.line.interpolate](https://github.com/mbostock/d3/wiki/SVG-Shapes#line_interpolate) and\n [d3.svg.area.interpolate](https://github.com/mbostock/d3/wiki/SVG-Shapes#area_interpolate),\n where you can find a complete list of valid arguments\n **/\n _chart.interpolate = function (_) {\n if (!arguments.length) {\n return _interpolate;\n }\n _interpolate = _;\n return _chart;\n };\n\n /**\n #### .tension([value])\n Gets or sets the tension to use for lines drawn, in the range 0 to 1.\n This parameter further customizes the interpolation behavior. It is passed to\n [d3.svg.line.tension](https://github.com/mbostock/d3/wiki/SVG-Shapes#line_tension) and\n [d3.svg.area.tension](https://github.com/mbostock/d3/wiki/SVG-Shapes#area_tension). Default:\n 0.7\n **/\n _chart.tension = function (_) {\n if (!arguments.length) {\n return _tension;\n }\n _tension = _;\n return _chart;\n };\n\n /**\n #### .defined([value])\n Gets or sets a function that will determine discontinuities in the line which should be\n skipped: the path will be broken into separate subpaths if some points are undefined.\n This function is passed to\n [d3.svg.line.defined](https://github.com/mbostock/d3/wiki/SVG-Shapes#line_defined)\n\n Note: crossfilter will sometimes coerce nulls to 0, so you may need to carefully write\n custom reduce functions to get this to work, depending on your data. See\n https://github.com/dc-js/dc.js/issues/615#issuecomment-49089248\n **/\n _chart.defined = function (_) {\n if (!arguments.length) {\n return _defined;\n }\n _defined = _;\n return _chart;\n };\n\n /**\n #### .dashStyle([array])\n Set the line's d3 dashstyle. This value becomes the 'stroke-dasharray' of line. Defaults to empty\n array (solid line).\n ```js\n // create a Dash Dot Dot Dot\n chart.dashStyle([3,1,1,1]);\n ```\n **/\n _chart.dashStyle = function (_) {\n if (!arguments.length) {\n return _dashStyle;\n }\n _dashStyle = _;\n return _chart;\n };\n\n /**\n #### .renderArea([boolean])\n Get or set render area flag. If the flag is set to true then the chart will render the area\n beneath each line and the line chart effectively becomes an area chart.\n\n **/\n _chart.renderArea = function (_) {\n if (!arguments.length) {\n return _renderArea;\n }\n _renderArea = _;\n return _chart;\n };\n\n function colors(d, i) {\n return _chart.getColor.call(d, d.values, i);\n }\n\n function drawLine(layersEnter, layers) {\n var line = d3.svg.line()\n .x(function (d) {\n return _chart.x()(d.x);\n })\n .y(function (d) {\n return _chart.y()(d.y + d.y0);\n })\n .interpolate(_interpolate)\n .tension(_tension);\n if (_defined) {\n line.defined(_defined);\n }\n\n var path = layersEnter.append('path')\n .attr('class', 'line')\n .attr('stroke', colors);\n if (_dashStyle) {\n path.attr('stroke-dasharray', _dashStyle);\n }\n\n dc.transition(layers.select('path.line'), _chart.transitionDuration())\n //.ease('linear')\n .attr('stroke', colors)\n .attr('d', function (d) {\n return safeD(line(d.values));\n });\n }\n\n function drawArea(layersEnter, layers) {\n if (_renderArea) {\n var area = d3.svg.area()\n .x(function (d) {\n return _chart.x()(d.x);\n })\n .y(function (d) {\n return _chart.y()(d.y + d.y0);\n })\n .y0(function (d) {\n return _chart.y()(d.y0);\n })\n .interpolate(_interpolate)\n .tension(_tension);\n if (_defined) {\n area.defined(_defined);\n }\n\n layersEnter.append('path')\n .attr('class', 'area')\n .attr('fill', colors)\n .attr('d', function (d) {\n return safeD(area(d.values));\n });\n\n dc.transition(layers.select('path.area'), _chart.transitionDuration())\n //.ease('linear')\n .attr('fill', colors)\n .attr('d', function (d) {\n return safeD(area(d.values));\n });\n }\n }\n\n function safeD (d) {\n return (!d || d.indexOf('NaN') >= 0) ? 'M0,0' : d;\n }\n\n function drawDots(chartBody, layers) {\n if (!_chart.brushOn() && _chart.xyTipsOn()) {\n var tooltipListClass = TOOLTIP_G_CLASS + '-list';\n var tooltips = chartBody.select('g.' + tooltipListClass);\n\n if (tooltips.empty()) {\n tooltips = chartBody.append('g').attr('class', tooltipListClass);\n }\n\n layers.each(function (d, layerIndex) {\n var points = d.values;\n if (_defined) {\n points = points.filter(_defined);\n }\n\n var g = tooltips.select('g.' + TOOLTIP_G_CLASS + '._' + layerIndex);\n if (g.empty()) {\n g = tooltips.append('g').attr('class', TOOLTIP_G_CLASS + ' _' + layerIndex);\n }\n\n createRefLines(g);\n\n var dots = g.selectAll('circle.' + DOT_CIRCLE_CLASS)\n .data(points, dc.pluck('x'));\n\n dots.enter()\n .append('circle')\n .attr('class', DOT_CIRCLE_CLASS)\n .attr('r', getDotRadius())\n .style('fill-opacity', _dataPointFillOpacity)\n .style('stroke-opacity', _dataPointStrokeOpacity)\n .on('mousemove', function () {\n var dot = d3.select(this);\n showDot(dot);\n showRefLines(dot, g);\n })\n .on('mouseout', function () {\n var dot = d3.select(this);\n hideDot(dot);\n hideRefLines(g);\n });\n\n dots\n .attr('cx', function (d) {\n return dc.utils.safeNumber(_chart.x()(d.x));\n })\n .attr('cy', function (d) {\n return dc.utils.safeNumber(_chart.y()(d.y + d.y0));\n })\n .attr('fill', _chart.getColor)\n .call(renderTitle, d);\n\n dots.exit().remove();\n });\n }\n }\n\n function createRefLines(g) {\n var yRefLine = g.select('path.' + Y_AXIS_REF_LINE_CLASS).empty() ?\n g.append('path').attr('class', Y_AXIS_REF_LINE_CLASS) : g.select('path.' + Y_AXIS_REF_LINE_CLASS);\n yRefLine.style('display', 'none').attr('stroke-dasharray', '5,5');\n\n var xRefLine = g.select('path.' + X_AXIS_REF_LINE_CLASS).empty() ?\n g.append('path').attr('class', X_AXIS_REF_LINE_CLASS) : g.select('path.' + X_AXIS_REF_LINE_CLASS);\n xRefLine.style('display', 'none').attr('stroke-dasharray', '5,5');\n }\n\n function showDot(dot) {\n dot.style('fill-opacity', 0.8);\n dot.style('stroke-opacity', 0.8);\n dot.attr('r', _dotRadius);\n return dot;\n }\n\n function showRefLines(dot, g) {\n var x = dot.attr('cx');\n var y = dot.attr('cy');\n var yAxisX = (_chart._yAxisX() - _chart.margins().left);\n var yAxisRefPathD = 'M' + yAxisX + ' ' + y + 'L' + (x) + ' ' + (y);\n var xAxisRefPathD = 'M' + x + ' ' + _chart.yAxisHeight() + 'L' + x + ' ' + y;\n g.select('path.' + Y_AXIS_REF_LINE_CLASS).style('display', '').attr('d', yAxisRefPathD);\n g.select('path.' + X_AXIS_REF_LINE_CLASS).style('display', '').attr('d', xAxisRefPathD);\n }\n\n function getDotRadius() {\n return _dataPointRadius || _dotRadius;\n }\n\n function hideDot(dot) {\n dot.style('fill-opacity', _dataPointFillOpacity)\n .style('stroke-opacity', _dataPointStrokeOpacity)\n .attr('r', getDotRadius());\n }\n\n function hideRefLines(g) {\n g.select('path.' + Y_AXIS_REF_LINE_CLASS).style('display', 'none');\n g.select('path.' + X_AXIS_REF_LINE_CLASS).style('display', 'none');\n }\n\n function renderTitle(dot, d) {\n if (_chart.renderTitle()) {\n dot.selectAll('title').remove();\n dot.append('title').text(dc.pluck('data', _chart.title(d.name)));\n }\n }\n\n /**\n #### .xyTipsOn([boolean])\n Turn on/off the mouseover behavior of an individual data point which renders a circle and x/y axis\n dashed lines back to each respective axis. This is ignored if the chart brush is on (`brushOn`)\n Default: true\n */\n _chart.xyTipsOn = function (_) {\n if (!arguments.length) {\n return _xyTipsOn;\n }\n _xyTipsOn = _;\n return _chart;\n };\n\n /**\n #### .dotRadius([dotRadius])\n Get or set the radius (in px) for dots displayed on the data points. Default dot radius is 5.\n **/\n _chart.dotRadius = function (_) {\n if (!arguments.length) {\n return _dotRadius;\n }\n _dotRadius = _;\n return _chart;\n };\n\n /**\n #### .renderDataPoints([options])\n Always show individual dots for each datapoint.\n\n Options, if given, is an object that can contain the following:\n\n * fillOpacity (default 0.8)\n * strokeOpacity (default 0.8)\n * radius (default 2)\n\n If `options` is falsy, it disables data point rendering.\n\n If no `options` are provided, the current `options` values are instead returned.\n\n Example:\n ```\n chart.renderDataPoints({radius: 2, fillOpacity: 0.8, strokeOpacity: 0.8})\n ```\n **/\n _chart.renderDataPoints = function (options) {\n if (!arguments.length) {\n return {\n fillOpacity: _dataPointFillOpacity,\n strokeOpacity: _dataPointStrokeOpacity,\n radius: _dataPointRadius\n };\n } else if (!options) {\n _dataPointFillOpacity = DEFAULT_DOT_OPACITY;\n _dataPointStrokeOpacity = DEFAULT_DOT_OPACITY;\n _dataPointRadius = null;\n } else {\n _dataPointFillOpacity = options.fillOpacity || 0.8;\n _dataPointStrokeOpacity = options.strokeOpacity || 0.8;\n _dataPointRadius = options.radius || 2;\n }\n return _chart;\n };\n\n function colorFilter(color, dashstyle, inv) {\n return function () {\n var item = d3.select(this);\n var match = (item.attr('stroke') === color &&\n item.attr('stroke-dasharray') === ((dashstyle instanceof Array) ?\n dashstyle.join(',') : null)) || item.attr('fill') === color;\n return inv ? !match : match;\n };\n }\n\n _chart.legendHighlight = function (d) {\n if (!_chart.isLegendableHidden(d)) {\n _chart.g().selectAll('path.line, path.area')\n .classed('highlight', colorFilter(d.color, d.dashstyle))\n .classed('fadeout', colorFilter(d.color, d.dashstyle, true));\n }\n };\n\n _chart.legendReset = function () {\n _chart.g().selectAll('path.line, path.area')\n .classed('highlight', false)\n .classed('fadeout', false);\n };\n\n dc.override(_chart, 'legendables', function () {\n var legendables = _chart._legendables();\n if (!_dashStyle) {\n return legendables;\n }\n return legendables.map(function (l) {\n l.dashstyle = _dashStyle;\n return l;\n });\n });\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Data Count Widget\nIncludes: [Base Mixin](#base-mixin)\n\nThe data count widget is a simple widget designed to display the number of records selected by the\ncurrent filters out of the total number of records in the data set. Once created the data count widget\nwill automatically update the text content of the following elements under the parent element.\n\n* '.total-count' - total number of records\n* '.filter-count' - number of records matched by the current filters\n\nExamples:\n\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n#### dc.dataCount(parent[, chartGroup])\nCreate a data count widget and attach it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this widget should be placed in.\n The data count widget will only react to filter changes in the chart group.\n\nReturns:\nA newly created data count widget instance\n#### .dimension(allData) - **mandatory**\nFor the data count widget the only valid dimension is the entire data set.\n#### .group(groupAll) - **mandatory**\nFor the data count widget the only valid group is the group returned by `dimension.groupAll()`.\n\n```js\nvar ndx = crossfilter(data);\nvar all = ndx.groupAll();\n\ndc.dataCount('.dc-data-count')\n .dimension(ndx)\n .group(all);\n```\n\n**/\ndc.dataCount = function (parent, chartGroup) {\n var _formatNumber = d3.format(',d');\n var _chart = dc.baseMixin({});\n var _html = {some:'', all:''};\n\n /**\n #### html([object])\n Gets or sets an optional object specifying HTML templates to use depending how many items are\n selected. The text `%total-count` will replaced with the total number of records, and the text\n `%filter-count` will be replaced with the number of selected records.\n - all: HTML template to use if all items are selected\n - some: HTML template to use if not all items are selected\n\n ```js\n counter.html({\n some: '%filter-count out of %total-count records selected',\n all: 'All records selected. Click on charts to apply filters'\n })\n ```\n **/\n _chart.html = function (s) {\n if (!arguments.length) {\n return _html;\n }\n if (s.all) {\n _html.all = s.all;\n }\n if (s.some) {\n _html.some = s.some;\n }\n return _chart;\n };\n\n /**\n #### formatNumber([formatter])\n Gets or sets an optional function to format the filter count and total count.\n\n ```js\n counter.formatNumber(d3.format('.2g'))\n ```\n **/\n _chart.formatNumber = function (s) {\n if (!arguments.length) {\n return _formatNumber;\n }\n _formatNumber = s;\n return _chart;\n };\n\n _chart._doRender = function () {\n var tot = _chart.dimension().size(),\n val = _chart.group().value();\n var all = _formatNumber(tot);\n var selected = _formatNumber(val);\n\n if ((tot === val) && (_html.all !== '')) {\n _chart.root().html(_html.all.replace('%total-count', all).replace('%filter-count', selected));\n } else if (_html.some !== '') {\n _chart.root().html(_html.some.replace('%total-count', all).replace('%filter-count', selected));\n } else {\n _chart.selectAll('.total-count').text(all);\n _chart.selectAll('.filter-count').text(selected);\n }\n return _chart;\n };\n\n _chart._doRedraw = function () {\n return _chart._doRender();\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Data Table Widget\nIncludes: [Base Mixin](#base-mixin)\n\nThe data table is a simple widget designed to list crossfilter focused data set (rows being\nfiltered) in a good old tabular fashion.\n\nExamples:\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n#### dc.dataTable(parent[, chartGroup])\nCreate a data table widget instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created data table widget instance\n\n**/\ndc.dataTable = function (parent, chartGroup) {\n var LABEL_CSS_CLASS = 'dc-table-label';\n var ROW_CSS_CLASS = 'dc-table-row';\n var COLUMN_CSS_CLASS = 'dc-table-column';\n var GROUP_CSS_CLASS = 'dc-table-group';\n var HEAD_CSS_CLASS = 'dc-table-head';\n\n var _chart = dc.baseMixin({});\n\n var _size = 25;\n var _columns = [];\n var _sortBy = function (d) {\n return d;\n };\n var _order = d3.ascending;\n\n _chart._doRender = function () {\n _chart.selectAll('tbody').remove();\n\n renderRows(renderGroups());\n\n return _chart;\n };\n\n _chart._doColumnValueFormat = function (v, d) {\n return ((typeof v === 'function') ?\n v(d) : // v as function\n ((typeof v === 'string') ?\n d[v] : // v is field name string\n v.format(d) // v is Object, use fn (element 2)\n )\n );\n };\n\n _chart._doColumnHeaderFormat = function (d) {\n // if 'function', convert to string representation\n // show a string capitalized\n // if an object then display it's label string as-is.\n return (typeof d === 'function') ?\n _chart._doColumnHeaderFnToString(d) :\n ((typeof d === 'string') ?\n _chart._doColumnHeaderCapitalize(d) : String(d.label));\n };\n\n _chart._doColumnHeaderCapitalize = function (s) {\n // capitalize\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n\n _chart._doColumnHeaderFnToString = function (f) {\n // columnString(f) {\n var s = String(f);\n var i1 = s.indexOf('return ');\n if (i1 >= 0) {\n var i2 = s.lastIndexOf(';');\n if (i2 >= 0) {\n s = s.substring(i1 + 7, i2);\n var i3 = s.indexOf('numberFormat');\n if (i3 >= 0) {\n s = s.replace('numberFormat', '');\n }\n }\n }\n return s;\n };\n\n function renderGroups() {\n // The 'original' example uses all 'functions'.\n\t// If all 'functions' are used, then don't remove/add a header, and leave\n\t// the html alone. This preserves the functionality of earlier releases.\n\t// A 2nd option is a string representing a field in the data.\n\t// A third option is to supply an Object such as an array of 'information', and\n\t// supply your own _doColumnHeaderFormat and _doColumnValueFormat functions to\n\t// create what you need.\n var bAllFunctions = true;\n _columns.forEach(function (f) {\n bAllFunctions = bAllFunctions & (typeof f === 'function');\n });\n\n if (!bAllFunctions) {\n _chart.selectAll('th').remove();\n var headcols = _chart.root().selectAll('th')\n .data(_columns);\n\n var headGroup = headcols\n .enter()\n .append('th');\n\n headGroup\n .attr('class', HEAD_CSS_CLASS)\n .html(function (d) {\n return (_chart._doColumnHeaderFormat(d));\n\n });\n }\n\n var groups = _chart.root().selectAll('tbody')\n .data(nestEntries(), function (d) {\n return _chart.keyAccessor()(d);\n });\n\n var rowGroup = groups\n .enter()\n .append('tbody');\n\n rowGroup\n .append('tr')\n .attr('class', GROUP_CSS_CLASS)\n .append('td')\n .attr('class', LABEL_CSS_CLASS)\n .attr('colspan', _columns.length)\n .html(function (d) {\n return _chart.keyAccessor()(d);\n });\n\n groups.exit().remove();\n\n return rowGroup;\n }\n\n function nestEntries() {\n var entries;\n if (_order === d3.ascending) {\n entries = _chart.dimension().bottom(_size);\n } else {\n entries = _chart.dimension().top(_size);\n }\n\n return d3.nest()\n .key(_chart.group())\n .sortKeys(_order)\n .entries(entries.sort(function (a, b) {\n return _order(_sortBy(a), _sortBy(b));\n }));\n }\n\n function renderRows(groups) {\n var rows = groups.order()\n .selectAll('tr.' + ROW_CSS_CLASS)\n .data(function (d) {\n return d.values;\n });\n\n var rowEnter = rows.enter()\n .append('tr')\n .attr('class', ROW_CSS_CLASS);\n\n _columns.forEach(function (v, i) {\n rowEnter.append('td')\n .attr('class', COLUMN_CSS_CLASS + ' _' + i)\n .html(function (d) {\n return _chart._doColumnValueFormat(v, d);\n });\n });\n\n rows.exit().remove();\n\n return rows;\n }\n\n _chart._doRedraw = function () {\n return _chart._doRender();\n };\n\n /**\n #### .size([size])\n Get or set the table size which determines the number of rows displayed by the widget.\n\n **/\n _chart.size = function (s) {\n if (!arguments.length) {\n return _size;\n }\n _size = s;\n return _chart;\n };\n\n /**\n #### .columns([columnFunctionArray])\n Get or set column functions. The data table widget now supports several methods of specifying\n the columns to display. The original method, first shown below, uses an array of functions to\n generate dynamic columns. Column functions are simple javascript functions with only one input\n argument `d` which represents a row in the data set. The return value of these functions will be\n used directly to generate table content for each cell. However, this method requires the .html\n table entry to have a fixed set of column headers.\n\n ```js\n chart.columns([\n function(d) {\n return d.date;\n },\n function(d) {\n return d.open;\n },\n function(d) {\n return d.close;\n },\n function(d) {\n return numberFormat(d.close - d.open);\n },\n function(d) {\n return d.volume;\n }\n ]);\n ```\n\n The next example shows you can simply list the data (d) content directly without\n specifying it as a function, except where necessary (ie, computed columns). Note\n the data element accessor name is capitalized when displayed in the table. You can\n also mix in functions as desired or necessary, but you must use the\n Object = [Label, Fn] method as shown below.\n You may wish to override the following two functions, which are internally used to\n translate the column information or function into a displayed header. The first one\n is used on the simple \"string\" column specifier, the second is used to transform the\n String(fn) into something displayable. For the Stock example, the function for Change\n becomes a header of 'd.close - d.open'.\n _chart._doColumnHeaderCapitalize _chart._doColumnHeaderFnToString\n You may use your own Object definition, however you must then override\n _chart._doColumnHeaderFormat , _chart._doColumnValueFormat\n Be aware that fields without numberFormat specification will be displayed just as\n they are stored in the data, unformatted.\n ```js\n chart.columns([\n \"date\", // d[\"date\"], ie, a field accessor; capitalized automatically\n \"open\", // ...\n \"close\", // ...\n [\"Change\", // Specify an Object = [Label, Fn]\n function (d) {\n return numberFormat(d.close - d.open);\n }],\n \"volume\" // d[\"volume\"], ie, a field accessor; capitalized automatically\n ]);\n ```\n\n A third example, where all fields are specified using the Object = [Label, Fn] method.\n\n ```js\n chart.columns([\n [\"Date\", // Specify an Object = [Label, Fn]\n function (d) {\n return d.date;\n }],\n [\"Open\",\n function (d) {\n return numberFormat(d.open);\n }],\n [\"Close\",\n function (d) {\n return numberFormat(d.close);\n }],\n [\"Change\",\n function (d) {\n return numberFormat(d.close - d.open);\n }],\n [\"Volume\",\n function (d) {\n return d.volume;\n }]\n ]);\n ```\n\n **/\n _chart.columns = function (_) {\n if (!arguments.length) {\n return _columns;\n }\n _columns = _;\n return _chart;\n };\n\n /**\n #### .sortBy([sortByFunction])\n Get or set sort-by function. This function works as a value accessor at row level and returns a\n particular field to be sorted by. Default value: identity function\n\n ```js\n chart.sortBy(function(d) {\n return d.date;\n });\n ```\n\n **/\n _chart.sortBy = function (_) {\n if (!arguments.length) {\n return _sortBy;\n }\n _sortBy = _;\n return _chart;\n };\n\n /**\n #### .order([order])\n Get or set sort order. Default value: ``` d3.ascending ```\n\n ```js\n chart.order(d3.descending);\n ```\n\n **/\n _chart.order = function (_) {\n if (!arguments.length) {\n return _order;\n }\n _order = _;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n ## Data Grid Widget\n\n Includes: [Base Mixin](#base-mixin)\n\n Data grid is a simple widget designed to list the filtered records, providing\n a simple way to define how the items are displayed.\n\n Examples:\n * [List of members of the european parliament](http://europarl.me/dc.js/web/ep/index.html)\n\n #### dc.dataGrid(parent[, chartGroup])\n Create a data grid widget instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created data grid widget instance\n\n **/\ndc.dataGrid = function (parent, chartGroup) {\n var LABEL_CSS_CLASS = 'dc-grid-label';\n var ITEM_CSS_CLASS = 'dc-grid-item';\n var GROUP_CSS_CLASS = 'dc-grid-group';\n var GRID_CSS_CLASS = 'dc-grid-top';\n\n var _chart = dc.baseMixin({});\n\n var _size = 999; // shouldn't be needed, but you might\n var _html = function (d) { return 'you need to provide an html() handling param: ' + JSON.stringify(d); };\n var _sortBy = function (d) {\n return d;\n };\n var _order = d3.ascending;\n\n var _htmlGroup = function (d) {\n return '

' +\n _chart.keyAccessor()(d) + '

';\n };\n\n _chart._doRender = function () {\n _chart.selectAll('div.' + GRID_CSS_CLASS).remove();\n\n renderItems(renderGroups());\n\n return _chart;\n };\n\n function renderGroups() {\n var groups = _chart.root().selectAll('div.' + GRID_CSS_CLASS)\n .data(nestEntries(), function (d) {\n return _chart.keyAccessor()(d);\n });\n\n var itemGroup = groups\n .enter()\n .append('div')\n .attr('class', GRID_CSS_CLASS);\n\n if (_htmlGroup) {\n itemGroup\n .html(function (d) {\n return _htmlGroup(d);\n });\n }\n\n groups.exit().remove();\n return itemGroup;\n }\n\n function nestEntries() {\n var entries = _chart.dimension().top(_size);\n\n return d3.nest()\n .key(_chart.group())\n .sortKeys(_order)\n .entries(entries.sort(function (a, b) {\n return _order(_sortBy(a), _sortBy(b));\n }));\n }\n\n function renderItems(groups) {\n var items = groups.order()\n .selectAll('div.' + ITEM_CSS_CLASS)\n .data(function (d) {\n return d.values;\n });\n\n items.enter()\n .append('div')\n .attr('class', ITEM_CSS_CLASS)\n .html(function (d) {\n return _html(d);\n });\n\n items.exit().remove();\n\n return items;\n }\n\n _chart._doRedraw = function () {\n return _chart._doRender();\n };\n\n /**\n #### .size([size])\n Get or set the grid size which determines the number of items displayed by the widget.\n\n **/\n _chart.size = function (s) {\n if (!arguments.length) {\n return _size;\n }\n _size = s;\n return _chart;\n };\n\n /**\n #### .html( function (data) { return ''; })\n Get or set the function that formats an item. The data grid widget uses a\n function to generate dynamic html. Use your favourite templating engine or\n generate the string directly.\n ```js\n chart.html(function (d) { return '
'+data.exampleString+'
';});\n ```\n\n **/\n _chart.html = function (_) {\n if (!arguments.length) {\n return _html;\n }\n _html = _;\n return _chart;\n };\n\n /**\n #### .htmlGroup( function (data) { return ''; })\n Get or set the function that formats a group label.\n ```js\n chart.htmlGroup (function (d) { return '

'.d.key . 'with ' . d.values.length .' items

'});\n ```\n\n **/\n _chart.htmlGroup = function (_) {\n if (!arguments.length) {\n return _htmlGroup;\n }\n _htmlGroup = _;\n return _chart;\n };\n\n /**\n #### .sortBy([sortByFunction])\n Get or set sort-by function. This function works as a value accessor at the item\n level and returns a particular field to be sorted.\n by. Default: identity function\n\n ```js\n chart.sortBy(function(d) {\n return d.date;\n });\n ```\n\n **/\n _chart.sortBy = function (_) {\n if (!arguments.length) {\n return _sortBy;\n }\n _sortBy = _;\n return _chart;\n };\n\n /**\n #### .order([order])\n Get or set sort order function. Default value: ``` d3.ascending ```\n\n ```js\n chart.order(d3.descending);\n ```\n\n **/\n _chart.order = function (_) {\n if (!arguments.length) {\n return _order;\n }\n _order = _;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Bubble Chart\nIncludes: [Bubble Mixin](#bubble-mixin), [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nA concrete implementation of a general purpose bubble chart that allows data visualization using the\nfollowing dimensions:\n\n* x axis position\n* y axis position\n* bubble radius\n* color\n\nExamples:\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n* [US Venture Capital Landscape 2011](http://dc-js.github.com/dc.js/vc/index.html)\n#### dc.bubbleChart(parent[, chartGroup])\nCreate a bubble chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection | compositeChart - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created bubble chart instance\n\n```js\n// create a bubble chart under #chart-container1 element using the default global chart group\nvar bubbleChart1 = dc.bubbleChart('#chart-container1');\n// create a bubble chart under #chart-container2 element using chart group A\nvar bubbleChart2 = dc.bubbleChart('#chart-container2', 'chartGroupA');\n```\n\n**/\ndc.bubbleChart = function (parent, chartGroup) {\n var _chart = dc.bubbleMixin(dc.coordinateGridMixin({}));\n\n var _elasticRadius = false;\n\n _chart.transitionDuration(750);\n\n var bubbleLocator = function (d) {\n return 'translate(' + (bubbleX(d)) + ',' + (bubbleY(d)) + ')';\n };\n\n /**\n #### .elasticRadius([boolean])\n Turn on or off the elastic bubble radius feature, or return the value of the flag. If this\n feature is turned on, then bubble radii will be automatically rescaled to fit the chart better.\n\n **/\n _chart.elasticRadius = function (_) {\n if (!arguments.length) {\n return _elasticRadius;\n }\n _elasticRadius = _;\n return _chart;\n };\n\n _chart.plotData = function () {\n if (_elasticRadius) {\n _chart.r().domain([_chart.rMin(), _chart.rMax()]);\n }\n\n _chart.r().range([_chart.MIN_RADIUS, _chart.xAxisLength() * _chart.maxBubbleRelativeSize()]);\n\n var bubbleG = _chart.chartBodyG().selectAll('g.' + _chart.BUBBLE_NODE_CLASS)\n .data(_chart.data(), function (d) { return d.key; });\n\n renderNodes(bubbleG);\n\n updateNodes(bubbleG);\n\n removeNodes(bubbleG);\n\n _chart.fadeDeselectedArea();\n };\n\n function renderNodes(bubbleG) {\n var bubbleGEnter = bubbleG.enter().append('g');\n\n bubbleGEnter\n .attr('class', _chart.BUBBLE_NODE_CLASS)\n .attr('transform', bubbleLocator)\n .append('circle').attr('class', function (d, i) {\n return _chart.BUBBLE_CLASS + ' _' + i;\n })\n .on('click', _chart.onClick)\n .attr('fill', _chart.getColor)\n .attr('r', 0);\n dc.transition(bubbleG, _chart.transitionDuration())\n .selectAll('circle.' + _chart.BUBBLE_CLASS)\n .attr('r', function (d) {\n return _chart.bubbleR(d);\n })\n .attr('opacity', function (d) {\n return (_chart.bubbleR(d) > 0) ? 1 : 0;\n });\n\n _chart._doRenderLabel(bubbleGEnter);\n\n _chart._doRenderTitles(bubbleGEnter);\n }\n\n function updateNodes(bubbleG) {\n dc.transition(bubbleG, _chart.transitionDuration())\n .attr('transform', bubbleLocator)\n .selectAll('circle.' + _chart.BUBBLE_CLASS)\n .attr('fill', _chart.getColor)\n .attr('r', function (d) {\n return _chart.bubbleR(d);\n })\n .attr('opacity', function (d) {\n return (_chart.bubbleR(d) > 0) ? 1 : 0;\n });\n\n _chart.doUpdateLabels(bubbleG);\n _chart.doUpdateTitles(bubbleG);\n }\n\n function removeNodes(bubbleG) {\n bubbleG.exit().remove();\n }\n\n function bubbleX(d) {\n var x = _chart.x()(_chart.keyAccessor()(d));\n if (isNaN(x)) {\n x = 0;\n }\n return x;\n }\n\n function bubbleY(d) {\n var y = _chart.y()(_chart.valueAccessor()(d));\n if (isNaN(y)) {\n y = 0;\n }\n return y;\n }\n\n _chart.renderBrush = function () {\n // override default x axis brush from parent chart\n };\n\n _chart.redrawBrush = function () {\n // override default x axis brush from parent chart\n _chart.fadeDeselectedArea();\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Composite Chart\nIncludes: [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nComposite charts are a special kind of chart that render multiple charts on the same Coordinate\nGrid. You can overlay (compose) different bar/line/area charts in a single composite chart to\nachieve some quite flexible charting effects.\n#### dc.compositeChart(parent[, chartGroup])\nCreate a composite chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created composite chart instance\n\n```js\n// create a composite chart under #chart-container1 element using the default global chart group\nvar compositeChart1 = dc.compositeChart('#chart-container1');\n// create a composite chart under #chart-container2 element using chart group A\nvar compositeChart2 = dc.compositeChart('#chart-container2', 'chartGroupA');\n```\n\n**/\ndc.compositeChart = function (parent, chartGroup) {\n\n var SUB_CHART_CLASS = 'sub';\n var DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING = 12;\n\n var _chart = dc.coordinateGridMixin({});\n var _children = [];\n\n var _childOptions = {};\n\n var _shareColors = false,\n _shareTitle = true;\n\n var _rightYAxis = d3.svg.axis(),\n _rightYAxisLabel = 0,\n _rightYAxisLabelPadding = DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING,\n _rightY,\n _rightAxisGridLines = false;\n\n _chart._mandatoryAttributes([]);\n _chart.transitionDuration(500);\n\n dc.override(_chart, '_generateG', function () {\n var g = this.__generateG();\n\n for (var i = 0; i < _children.length; ++i) {\n var child = _children[i];\n\n generateChildG(child, i);\n\n if (!child.dimension()) {\n child.dimension(_chart.dimension());\n }\n if (!child.group()) {\n child.group(_chart.group());\n }\n\n child.chartGroup(_chart.chartGroup());\n child.svg(_chart.svg());\n child.xUnits(_chart.xUnits());\n child.transitionDuration(_chart.transitionDuration());\n child.brushOn(_chart.brushOn());\n child.renderTitle(_chart.renderTitle());\n }\n\n return g;\n });\n\n _chart._brushing = function () {\n var extent = _chart.extendBrush();\n var brushIsEmpty = _chart.brushIsEmpty(extent);\n\n for (var i = 0; i < _children.length; ++i) {\n _children[i].filter(null);\n if (!brushIsEmpty) {\n _children[i].filter(extent);\n }\n }\n };\n\n _chart._prepareYAxis = function () {\n if (leftYAxisChildren().length !== 0) { prepareLeftYAxis(); }\n if (rightYAxisChildren().length !== 0) { prepareRightYAxis(); }\n\n if (leftYAxisChildren().length > 0 && !_rightAxisGridLines) {\n _chart._renderHorizontalGridLinesForAxis(_chart.g(), _chart.y(), _chart.yAxis());\n }\n else if (rightYAxisChildren().length > 0) {\n _chart._renderHorizontalGridLinesForAxis(_chart.g(), _rightY, _rightYAxis);\n }\n };\n\n _chart.renderYAxis = function () {\n if (leftYAxisChildren().length !== 0) {\n _chart.renderYAxisAt('y', _chart.yAxis(), _chart.margins().left);\n _chart.renderYAxisLabel('y', _chart.yAxisLabel(), -90);\n }\n\n if (rightYAxisChildren().length !== 0) {\n _chart.renderYAxisAt('yr', _chart.rightYAxis(), _chart.width() - _chart.margins().right);\n _chart.renderYAxisLabel('yr', _chart.rightYAxisLabel(), 90, _chart.width() - _rightYAxisLabelPadding);\n }\n };\n\n function prepareRightYAxis() {\n if (_chart.rightY() === undefined || _chart.elasticY()) {\n _chart.rightY(d3.scale.linear());\n _chart.rightY().domain([rightYAxisMin(), rightYAxisMax()]).rangeRound([_chart.yAxisHeight(), 0]);\n }\n\n _chart.rightY().range([_chart.yAxisHeight(), 0]);\n _chart.rightYAxis(_chart.rightYAxis().scale(_chart.rightY()));\n\n _chart.rightYAxis().orient('right');\n }\n\n function prepareLeftYAxis() {\n if (_chart.y() === undefined || _chart.elasticY()) {\n _chart.y(d3.scale.linear());\n _chart.y().domain([yAxisMin(), yAxisMax()]).rangeRound([_chart.yAxisHeight(), 0]);\n }\n\n _chart.y().range([_chart.yAxisHeight(), 0]);\n _chart.yAxis(_chart.yAxis().scale(_chart.y()));\n\n _chart.yAxis().orient('left');\n }\n\n function generateChildG(child, i) {\n child._generateG(_chart.g());\n child.g().attr('class', SUB_CHART_CLASS + ' _' + i);\n }\n\n _chart.plotData = function () {\n for (var i = 0; i < _children.length; ++i) {\n var child = _children[i];\n\n if (!child.g()) {\n generateChildG(child, i);\n }\n\n if (_shareColors) {\n child.colors(_chart.colors());\n }\n\n child.x(_chart.x());\n\n child.xAxis(_chart.xAxis());\n\n if (child.useRightYAxis()) {\n child.y(_chart.rightY());\n child.yAxis(_chart.rightYAxis());\n }\n else {\n child.y(_chart.y());\n child.yAxis(_chart.yAxis());\n }\n\n child.plotData();\n\n child._activateRenderlets();\n }\n };\n\n /**\n #### .useRightAxisGridLines(bool)\n Get or set whether to draw gridlines from the right y axis. Drawing from the left y axis is the\n default behavior. This option is only respected when subcharts with both left and right y-axes\n are present.\n **/\n _chart.useRightAxisGridLines = function (_) {\n if (!arguments) {\n return _rightAxisGridLines;\n }\n\n _rightAxisGridLines = _;\n return _chart;\n };\n\n /**\n #### .childOptions({object})\n Get or set chart-specific options for all child charts. This is equivalent to calling `.options`\n on each child chart.\n **/\n _chart.childOptions = function (_) {\n if (!arguments.length) {\n return _childOptions;\n }\n _childOptions = _;\n _children.forEach(function (child) {\n child.options(_childOptions);\n });\n return _chart;\n };\n\n _chart.fadeDeselectedArea = function () {\n for (var i = 0; i < _children.length; ++i) {\n var child = _children[i];\n child.brush(_chart.brush());\n child.fadeDeselectedArea();\n }\n };\n\n /**\n #### .rightYAxisLabel([labelText])\n Set or get the right y axis label.\n **/\n _chart.rightYAxisLabel = function (_, padding) {\n if (!arguments.length) {\n return _rightYAxisLabel;\n }\n _rightYAxisLabel = _;\n _chart.margins().right -= _rightYAxisLabelPadding;\n _rightYAxisLabelPadding = (padding === undefined) ? DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING : padding;\n _chart.margins().right += _rightYAxisLabelPadding;\n return _chart;\n };\n\n /**\n #### .compose(subChartArray)\n Combine the given charts into one single composite coordinate grid chart.\n\n ```js\n // compose the given charts in the array into one single composite chart\n moveChart.compose([\n // when creating sub-chart you need to pass in the parent chart\n dc.lineChart(moveChart)\n .group(indexAvgByMonthGroup) // if group is missing then parent's group will be used\n .valueAccessor(function (d){return d.value.avg;})\n // most of the normal functions will continue to work in a composed chart\n .renderArea(true)\n .stack(monthlyMoveGroup, function (d){return d.value;})\n .title(function (d){\n var value = d.value.avg?d.value.avg:d.value;\n if(isNaN(value)) value = 0;\n return dateFormat(d.key) + '\\n' + numberFormat(value);\n }),\n dc.barChart(moveChart)\n .group(volumeByMonthGroup)\n .centerBar(true)\n ]);\n ```\n\n **/\n _chart.compose = function (charts) {\n _children = charts;\n _children.forEach(function (child) {\n child.height(_chart.height());\n child.width(_chart.width());\n child.margins(_chart.margins());\n\n if (_shareTitle) {\n child.title(_chart.title());\n }\n\n child.options(_childOptions);\n });\n return _chart;\n };\n\n /**\n #### .children()\n Returns the child charts which are composed into the composite chart.\n **/\n\n _chart.children = function () {\n return _children;\n };\n\n /**\n #### .shareColors([boolean])\n Get or set color sharing for the chart. If set, the `.colors()` value from this chart\n will be shared with composed children. Additionally if the child chart implements\n Stackable and has not set a custom .colorAccessor, then it will generate a color\n specific to its order in the composition.\n **/\n _chart.shareColors = function (_) {\n if (!arguments.length) {\n return _shareColors;\n }\n _shareColors = _;\n return _chart;\n };\n\n /**\n #### .shareTitle([[boolean])\n Get or set title sharing for the chart. If set, the `.title()` value from this chart will be\n shared with composed children. Default value is true.\n **/\n _chart.shareTitle = function (_) {\n if (!arguments.length) {\n return _shareTitle;\n }\n _shareTitle = _;\n return _chart;\n };\n\n /**\n #### .rightY([yScale])\n Get or set the y scale for the right axis. The right y scale is typically automatically\n generated by the chart implementation.\n\n **/\n _chart.rightY = function (_) {\n if (!arguments.length) {\n return _rightY;\n }\n _rightY = _;\n return _chart;\n };\n\n function leftYAxisChildren() {\n return _children.filter(function (child) {\n return !child.useRightYAxis();\n });\n }\n\n function rightYAxisChildren() {\n return _children.filter(function (child) {\n return child.useRightYAxis();\n });\n }\n\n function getYAxisMin(charts) {\n return charts.map(function (c) {\n return c.yAxisMin();\n });\n }\n\n delete _chart.yAxisMin;\n function yAxisMin() {\n return d3.min(getYAxisMin(leftYAxisChildren()));\n }\n\n function rightYAxisMin() {\n return d3.min(getYAxisMin(rightYAxisChildren()));\n }\n\n function getYAxisMax(charts) {\n return charts.map(function (c) {\n return c.yAxisMax();\n });\n }\n\n delete _chart.yAxisMax;\n function yAxisMax() {\n return dc.utils.add(d3.max(getYAxisMax(leftYAxisChildren())), _chart.yAxisPadding());\n }\n\n function rightYAxisMax() {\n return dc.utils.add(d3.max(getYAxisMax(rightYAxisChildren())), _chart.yAxisPadding());\n }\n\n function getAllXAxisMinFromChildCharts() {\n return _children.map(function (c) {\n return c.xAxisMin();\n });\n }\n\n dc.override(_chart, 'xAxisMin', function () {\n return dc.utils.subtract(d3.min(getAllXAxisMinFromChildCharts()), _chart.xAxisPadding());\n });\n\n function getAllXAxisMaxFromChildCharts() {\n return _children.map(function (c) {\n return c.xAxisMax();\n });\n }\n\n dc.override(_chart, 'xAxisMax', function () {\n return dc.utils.add(d3.max(getAllXAxisMaxFromChildCharts()), _chart.xAxisPadding());\n });\n\n _chart.legendables = function () {\n return _children.reduce(function (items, child) {\n if (_shareColors) {\n child.colors(_chart.colors());\n }\n items.push.apply(items, child.legendables());\n return items;\n }, []);\n };\n\n _chart.legendHighlight = function (d) {\n for (var j = 0; j < _children.length; ++j) {\n var child = _children[j];\n child.legendHighlight(d);\n }\n };\n\n _chart.legendReset = function (d) {\n for (var j = 0; j < _children.length; ++j) {\n var child = _children[j];\n child.legendReset(d);\n }\n };\n\n _chart.legendToggle = function () {\n console.log('composite should not be getting legendToggle itself');\n };\n\n /**\n #### .rightYAxis([yAxis])\n Set or get the right y axis used by the composite chart. This function is most useful when y\n axis customization is required. The y axis in dc.js is an instance of a [d3 axis\n object](https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-_axis) therefore it supports any valid\n d3 axis manipulation. **Caution**: The y axis is usually generated internally by dc;\n resetting it may cause unexpected results.\n ```jså\n // customize y axis tick format\n chart.rightYAxis().tickFormat(function (v) {return v + '%';});\n // customize y axis tick values\n chart.rightYAxis().tickValues([0, 100, 200, 300]);\n ```\n\n **/\n _chart.rightYAxis = function (rightYAxis) {\n if (!arguments.length) {\n return _rightYAxis;\n }\n _rightYAxis = rightYAxis;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n ## Series Chart\n\n Includes: [Composite Chart](#composite chart)\n\n A series chart is a chart that shows multiple series of data overlaid on one chart, where the\n series is specified in the data. It is a specialization of Composite Chart and inherits all\n composite features other than recomposing the chart.\n\n #### dc.seriesChart(parent[, chartGroup])\n Create a series chart instance and attach it to the given parent element.\n\n Parameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\n Returns:\n A newly created series chart instance\n\n ```js\n // create a series chart under #chart-container1 element using the default global chart group\n var seriesChart1 = dc.seriesChart(\"#chart-container1\");\n // create a series chart under #chart-container2 element using chart group A\n var seriesChart2 = dc.seriesChart(\"#chart-container2\", \"chartGroupA\");\n ```\n\n **/\ndc.seriesChart = function (parent, chartGroup) {\n var _chart = dc.compositeChart(parent, chartGroup);\n\n function keySort(a, b) {\n return d3.ascending(_chart.keyAccessor()(a), _chart.keyAccessor()(b));\n }\n\n var _charts = {};\n var _chartFunction = dc.lineChart;\n var _seriesAccessor;\n var _seriesSort = d3.ascending;\n var _valueSort = keySort;\n\n _chart._mandatoryAttributes().push('seriesAccessor', 'chart');\n _chart.shareColors(true);\n\n _chart._preprocessData = function () {\n var keep = [];\n var childrenChanged;\n var nester = d3.nest().key(_seriesAccessor);\n if (_seriesSort) {\n nester.sortKeys(_seriesSort);\n }\n if (_valueSort) {\n nester.sortValues(_valueSort);\n }\n var nesting = nester.entries(_chart.data());\n var children =\n nesting.map(function (sub, i) {\n var subChart = _charts[sub.key] || _chartFunction.call(_chart, _chart, chartGroup, sub.key, i);\n if (!_charts[sub.key]) {\n childrenChanged = true;\n }\n _charts[sub.key] = subChart;\n keep.push(sub.key);\n return subChart\n .dimension(_chart.dimension())\n .group({all:d3.functor(sub.values)}, sub.key)\n .keyAccessor(_chart.keyAccessor())\n .valueAccessor(_chart.valueAccessor())\n .brushOn(_chart.brushOn());\n });\n // this works around the fact compositeChart doesn't really\n // have a removal interface\n Object.keys(_charts)\n .filter(function (c) {return keep.indexOf(c) === -1;})\n .forEach(function (c) {\n clearChart(c);\n childrenChanged = true;\n });\n _chart._compose(children);\n if (childrenChanged && _chart.legend()) {\n _chart.legend().render();\n }\n };\n\n function clearChart(c) {\n if (_charts[c].g()) {\n _charts[c].g().remove();\n }\n delete _charts[c];\n }\n\n function resetChildren() {\n Object.keys(_charts).map(clearChart);\n _charts = {};\n }\n\n /**\n #### .chart([function])\n Get or set the chart function, which generates the child charts. Default: dc.lineChart\n\n ```\n // put interpolation on the line charts used for the series\n chart.chart(function(c) { return dc.lineChart(c).interpolate('basis'); })\n // do a scatter series chart\n chart.chart(dc.scatterPlot)\n ```\n\n **/\n _chart.chart = function (_) {\n if (!arguments.length) {\n return _chartFunction;\n }\n _chartFunction = _;\n resetChildren();\n return _chart;\n };\n\n /**\n #### .seriesAccessor([accessor])\n Get or set accessor function for the displayed series. Given a datum, this function\n should return the series that datum belongs to.\n **/\n _chart.seriesAccessor = function (_) {\n if (!arguments.length) {\n return _seriesAccessor;\n }\n _seriesAccessor = _;\n resetChildren();\n return _chart;\n };\n\n /**\n #### .seriesSort([sortFunction])\n Get or set a function to sort the list of series by, given series values.\n\n Example:\n ```\n chart.seriesSort(d3.descending);\n ```\n **/\n _chart.seriesSort = function (_) {\n if (!arguments.length) {\n return _seriesSort;\n }\n _seriesSort = _;\n resetChildren();\n return _chart;\n };\n\n /**\n #### .valueSort([sortFunction])\n Get or set a function to sort each series values by. By default this is the key accessor which,\n for example, will ensure a lineChart series connects its points in increasing key/x order,\n rather than haphazardly.\n **/\n _chart.valueSort = function (_) {\n if (!arguments.length) {\n return _valueSort;\n }\n _valueSort = _;\n resetChildren();\n return _chart;\n };\n\n // make compose private\n _chart._compose = _chart.compose;\n delete _chart.compose;\n\n return _chart;\n};\n","/**\n## Geo Choropleth Chart\nIncludes: [Color Mixin](#color-mixin), [Base Mixin](#base-mixin)\n\nThe geo choropleth chart is designed as an easy way to create a crossfilter driven choropleth map\nfrom GeoJson data. This chart implementation was inspired by [the great d3 choropleth\nexample](http://bl.ocks.org/4060606).\n\nExamples:\n* [US Venture Capital Landscape 2011](http://dc-js.github.com/dc.js/vc/index.html)\n#### dc.geoChoroplethChart(parent[, chartGroup])\nCreate a choropleth chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created choropleth chart instance\n\n```js\n// create a choropleth chart under '#us-chart' element using the default global chart group\nvar chart1 = dc.geoChoroplethChart('#us-chart');\n// create a choropleth chart under '#us-chart2' element using chart group A\nvar chart2 = dc.compositeChart('#us-chart2', 'chartGroupA');\n```\n\n**/\ndc.geoChoroplethChart = function (parent, chartGroup) {\n var _chart = dc.colorMixin(dc.baseMixin({}));\n\n _chart.colorAccessor(function (d) {\n return d || 0;\n });\n\n var _geoPath = d3.geo.path();\n var _projectionFlag;\n\n var _geoJsons = [];\n\n _chart._doRender = function () {\n _chart.resetSvg();\n for (var layerIndex = 0; layerIndex < _geoJsons.length; ++layerIndex) {\n var states = _chart.svg().append('g')\n .attr('class', 'layer' + layerIndex);\n\n var regionG = states.selectAll('g.' + geoJson(layerIndex).name)\n .data(geoJson(layerIndex).data)\n .enter()\n .append('g')\n .attr('class', geoJson(layerIndex).name);\n\n regionG\n .append('path')\n .attr('fill', 'white')\n .attr('d', _geoPath);\n\n regionG.append('title');\n\n plotData(layerIndex);\n }\n _projectionFlag = false;\n };\n\n function plotData(layerIndex) {\n var data = generateLayeredData();\n\n if (isDataLayer(layerIndex)) {\n var regionG = renderRegionG(layerIndex);\n\n renderPaths(regionG, layerIndex, data);\n\n renderTitle(regionG, layerIndex, data);\n }\n }\n\n function generateLayeredData() {\n var data = {};\n var groupAll = _chart.data();\n for (var i = 0; i < groupAll.length; ++i) {\n data[_chart.keyAccessor()(groupAll[i])] = _chart.valueAccessor()(groupAll[i]);\n }\n return data;\n }\n\n function isDataLayer(layerIndex) {\n return geoJson(layerIndex).keyAccessor;\n }\n\n function renderRegionG(layerIndex) {\n var regionG = _chart.svg()\n .selectAll(layerSelector(layerIndex))\n .classed('selected', function (d) {\n return isSelected(layerIndex, d);\n })\n .classed('deselected', function (d) {\n return isDeselected(layerIndex, d);\n })\n .attr('class', function (d) {\n var layerNameClass = geoJson(layerIndex).name;\n var regionClass = dc.utils.nameToId(geoJson(layerIndex).keyAccessor(d));\n var baseClasses = layerNameClass + ' ' + regionClass;\n if (isSelected(layerIndex, d)) {\n baseClasses += ' selected';\n }\n if (isDeselected(layerIndex, d)) {\n baseClasses += ' deselected';\n }\n return baseClasses;\n });\n return regionG;\n }\n\n function layerSelector(layerIndex) {\n return 'g.layer' + layerIndex + ' g.' + geoJson(layerIndex).name;\n }\n\n function isSelected(layerIndex, d) {\n return _chart.hasFilter() && _chart.hasFilter(getKey(layerIndex, d));\n }\n\n function isDeselected(layerIndex, d) {\n return _chart.hasFilter() && !_chart.hasFilter(getKey(layerIndex, d));\n }\n\n function getKey(layerIndex, d) {\n return geoJson(layerIndex).keyAccessor(d);\n }\n\n function geoJson(index) {\n return _geoJsons[index];\n }\n\n function renderPaths(regionG, layerIndex, data) {\n var paths = regionG\n .select('path')\n .attr('fill', function () {\n var currentFill = d3.select(this).attr('fill');\n if (currentFill) {\n return currentFill;\n }\n return 'none';\n })\n .on('click', function (d) {\n return _chart.onClick(d, layerIndex);\n });\n\n dc.transition(paths, _chart.transitionDuration()).attr('fill', function (d, i) {\n return _chart.getColor(data[geoJson(layerIndex).keyAccessor(d)], i);\n });\n }\n\n _chart.onClick = function (d, layerIndex) {\n var selectedRegion = geoJson(layerIndex).keyAccessor(d);\n dc.events.trigger(function () {\n _chart.filter(selectedRegion);\n _chart.redrawGroup();\n });\n };\n\n function renderTitle(regionG, layerIndex, data) {\n if (_chart.renderTitle()) {\n regionG.selectAll('title').text(function (d) {\n var key = getKey(layerIndex, d);\n var value = data[key];\n return _chart.title()({key: key, value: value});\n });\n }\n }\n\n _chart._doRedraw = function () {\n for (var layerIndex = 0; layerIndex < _geoJsons.length; ++layerIndex) {\n plotData(layerIndex);\n if (_projectionFlag) {\n _chart.svg().selectAll('g.' + geoJson(layerIndex).name + ' path').attr('d', _geoPath);\n }\n }\n _projectionFlag = false;\n };\n\n /**\n #### .overlayGeoJson(json, name, keyAccessor) - **mandatory**\n Use this function to insert a new GeoJson map layer. This function can be invoked multiple times\n if you have multiple GeoJson data layers to render on top of each other. If you overlay multiple\n layers with the same name the new overlay will override the existing one.\n\n Parameters:\n * json - GeoJson feed\n * name - name of the layer\n * keyAccessor - accessor function used to extract 'key' from the GeoJson data. The key extracted by\n this function should match the keys returned by the crossfilter groups.\n\n ```js\n // insert a layer for rendering US states\n chart.overlayGeoJson(statesJson.features, 'state', function(d) {\n return d.properties.name;\n });\n ```\n\n **/\n _chart.overlayGeoJson = function (json, name, keyAccessor) {\n for (var i = 0; i < _geoJsons.length; ++i) {\n if (_geoJsons[i].name === name) {\n _geoJsons[i].data = json;\n _geoJsons[i].keyAccessor = keyAccessor;\n return _chart;\n }\n }\n _geoJsons.push({name: name, data: json, keyAccessor: keyAccessor});\n return _chart;\n };\n\n /**\n #### .projection(projection)\n Set custom geo projection function. See the available [d3 geo projection\n functions](https://github.com/mbostock/d3/wiki/Geo-Projections). Default value: albersUsa.\n\n **/\n _chart.projection = function (projection) {\n _geoPath.projection(projection);\n _projectionFlag = true;\n return _chart;\n };\n\n /**\n #### .geoJsons()\n Returns all GeoJson layers currently registered with this chart. The returned array is a\n reference to this chart's internal data structure, so any modification to this array will also\n modify this chart's internal registration.\n\n Returns an array of objects containing fields {name, data, accessor}\n\n **/\n _chart.geoJsons = function () {\n return _geoJsons;\n };\n\n /**\n #### .geoPath()\n Returns the [d3.geo.path](https://github.com/mbostock/d3/wiki/Geo-Paths#path) object used to\n render the projection and features. Can be useful for figuring out the bounding box of the\n feature set and thus a way to calculate scale and translation for the projection.\n\n **/\n _chart.geoPath = function () {\n return _geoPath;\n };\n\n /**\n #### .removeGeoJson(name)\n Remove a GeoJson layer from this chart by name\n\n **/\n _chart.removeGeoJson = function (name) {\n var geoJsons = [];\n\n for (var i = 0; i < _geoJsons.length; ++i) {\n var layer = _geoJsons[i];\n if (layer.name !== name) {\n geoJsons.push(layer);\n }\n }\n\n _geoJsons = geoJsons;\n\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Bubble Overlay Chart\nIncludes: [Bubble Mixin](#bubble-mixin), [Base Mixin](#base-mixin)\n\nThe bubble overlay chart is quite different from the typical bubble chart. With the bubble overlay\nchart you can arbitrarily place bubbles on an existing svg or bitmap image, thus changing the\ntypical x and y positioning while retaining the capability to visualize data using bubble radius\nand coloring.\n\nExamples:\n* [Canadian City Crime Stats](http://dc-js.github.com/dc.js/crime/index.html)\n#### dc.bubbleOverlay(parent[, chartGroup])\nCreate a bubble overlay chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n off-screen. Typically this element should also be the parent of the underlying image.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created bubble overlay chart instance\n\n```js\n// create a bubble overlay chart on top of the '#chart-container1 svg' element using the default global chart group\nvar bubbleChart1 = dc.bubbleOverlayChart('#chart-container1').svg(d3.select('#chart-container1 svg'));\n// create a bubble overlay chart on top of the '#chart-container2 svg' element using chart group A\nvar bubbleChart2 = dc.compositeChart('#chart-container2', 'chartGroupA').svg(d3.select('#chart-container2 svg'));\n```\n#### .svg(imageElement) - **mandatory**\nSet the underlying svg image element. Unlike other dc charts this chart will not generate a svg\nelement; therefore the bubble overlay chart will not work if this function is not invoked. If the\nunderlying image is a bitmap, then an empty svg will need to be created on top of the image.\n\n```js\n// set up underlying svg element\nchart.svg(d3.select('#chart svg'));\n```\n\n**/\ndc.bubbleOverlay = function (root, chartGroup) {\n var BUBBLE_OVERLAY_CLASS = 'bubble-overlay';\n var BUBBLE_NODE_CLASS = 'node';\n var BUBBLE_CLASS = 'bubble';\n\n var _chart = dc.bubbleMixin(dc.baseMixin({}));\n var _g;\n var _points = [];\n\n _chart.transitionDuration(750);\n\n _chart.radiusValueAccessor(function (d) {\n return d.value;\n });\n\n /**\n #### .point(name, x, y) - **mandatory**\n Set up a data point on the overlay. The name of a data point should match a specific 'key' among\n data groups generated using keyAccessor. If a match is found (point name <-> data group key)\n then a bubble will be generated at the position specified by the function. x and y\n value specified here are relative to the underlying svg.\n\n **/\n _chart.point = function (name, x, y) {\n _points.push({name: name, x: x, y: y});\n return _chart;\n };\n\n _chart._doRender = function () {\n _g = initOverlayG();\n\n _chart.r().range([_chart.MIN_RADIUS, _chart.width() * _chart.maxBubbleRelativeSize()]);\n\n initializeBubbles();\n\n _chart.fadeDeselectedArea();\n\n return _chart;\n };\n\n function initOverlayG() {\n _g = _chart.select('g.' + BUBBLE_OVERLAY_CLASS);\n if (_g.empty()) {\n _g = _chart.svg().append('g').attr('class', BUBBLE_OVERLAY_CLASS);\n }\n return _g;\n }\n\n function initializeBubbles() {\n var data = mapData();\n\n _points.forEach(function (point) {\n var nodeG = getNodeG(point, data);\n\n var circle = nodeG.select('circle.' + BUBBLE_CLASS);\n\n if (circle.empty()) {\n circle = nodeG.append('circle')\n .attr('class', BUBBLE_CLASS)\n .attr('r', 0)\n .attr('fill', _chart.getColor)\n .on('click', _chart.onClick);\n }\n\n dc.transition(circle, _chart.transitionDuration())\n .attr('r', function (d) {\n return _chart.bubbleR(d);\n });\n\n _chart._doRenderLabel(nodeG);\n\n _chart._doRenderTitles(nodeG);\n });\n }\n\n function mapData() {\n var data = {};\n _chart.data().forEach(function (datum) {\n data[_chart.keyAccessor()(datum)] = datum;\n });\n return data;\n }\n\n function getNodeG(point, data) {\n var bubbleNodeClass = BUBBLE_NODE_CLASS + ' ' + dc.utils.nameToId(point.name);\n\n var nodeG = _g.select('g.' + dc.utils.nameToId(point.name));\n\n if (nodeG.empty()) {\n nodeG = _g.append('g')\n .attr('class', bubbleNodeClass)\n .attr('transform', 'translate(' + point.x + ',' + point.y + ')');\n }\n\n nodeG.datum(data[point.name]);\n\n return nodeG;\n }\n\n _chart._doRedraw = function () {\n updateBubbles();\n\n _chart.fadeDeselectedArea();\n\n return _chart;\n };\n\n function updateBubbles() {\n var data = mapData();\n\n _points.forEach(function (point) {\n var nodeG = getNodeG(point, data);\n\n var circle = nodeG.select('circle.' + BUBBLE_CLASS);\n\n dc.transition(circle, _chart.transitionDuration())\n .attr('r', function (d) {\n return _chart.bubbleR(d);\n })\n .attr('fill', _chart.getColor);\n\n _chart.doUpdateLabels(nodeG);\n\n _chart.doUpdateTitles(nodeG);\n });\n }\n\n _chart.debug = function (flag) {\n if (flag) {\n var debugG = _chart.select('g.' + dc.constants.DEBUG_GROUP_CLASS);\n\n if (debugG.empty()) {\n debugG = _chart.svg()\n .append('g')\n .attr('class', dc.constants.DEBUG_GROUP_CLASS);\n }\n\n var debugText = debugG.append('text')\n .attr('x', 10)\n .attr('y', 20);\n\n debugG\n .append('rect')\n .attr('width', _chart.width())\n .attr('height', _chart.height())\n .on('mousemove', function () {\n var position = d3.mouse(debugG.node());\n var msg = position[0] + ', ' + position[1];\n debugText.text(msg);\n });\n } else {\n _chart.selectAll('.debug').remove();\n }\n\n return _chart;\n };\n\n _chart.anchor(root, chartGroup);\n\n return _chart;\n};\n","/**\n## Row Chart\nIncludes: [Cap Mixin](#cap-mixin), [Margin Mixin](#margin-mixin), [Color Mixin](#color-mixin), [Base Mixin](#base-mixin)\n\nConcrete row chart implementation.\n#### dc.rowChart(parent[, chartGroup])\nCreate a row chart instance and attach it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created row chart instance\n\n```js\n// create a row chart under #chart-container1 element using the default global chart group\nvar chart1 = dc.rowChart('#chart-container1');\n// create a row chart under #chart-container2 element using chart group A\nvar chart2 = dc.rowChart('#chart-container2', 'chartGroupA');\n```\n\n**/\ndc.rowChart = function (parent, chartGroup) {\n\n var _g;\n\n var _labelOffsetX = 10;\n var _labelOffsetY = 15;\n var _hasLabelOffsetY = false;\n var _dyOffset = '0.35em'; // this helps center labels https://github.com/mbostock/d3/wiki/SVG-Shapes#svg_text\n var _titleLabelOffsetX = 2;\n\n var _gap = 5;\n\n var _fixedBarHeight = false;\n var _rowCssClass = 'row';\n var _titleRowCssClass = 'titlerow';\n var _renderTitleLabel = false;\n\n var _chart = dc.capMixin(dc.marginMixin(dc.colorMixin(dc.baseMixin({}))));\n\n var _x;\n\n var _elasticX;\n\n var _xAxis = d3.svg.axis().orient('bottom');\n\n var _rowData;\n\n _chart.rowsCap = _chart.cap;\n\n function calculateAxisScale() {\n if (!_x || _elasticX) {\n var extent = d3.extent(_rowData, _chart.cappedValueAccessor);\n if (extent[0] > 0) {\n extent[0] = 0;\n }\n _x = d3.scale.linear().domain(extent)\n .range([0, _chart.effectiveWidth()]);\n }\n _xAxis.scale(_x);\n }\n\n function drawAxis() {\n var axisG = _g.select('g.axis');\n\n calculateAxisScale();\n\n if (axisG.empty()) {\n axisG = _g.append('g').attr('class', 'axis')\n .attr('transform', 'translate(0, ' + _chart.effectiveHeight() + ')');\n }\n\n dc.transition(axisG, _chart.transitionDuration())\n .call(_xAxis);\n }\n\n _chart._doRender = function () {\n _chart.resetSvg();\n\n _g = _chart.svg()\n .append('g')\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')');\n\n drawChart();\n\n return _chart;\n };\n\n _chart.title(function (d) {\n return _chart.cappedKeyAccessor(d) + ': ' + _chart.cappedValueAccessor(d);\n });\n\n _chart.label(_chart.cappedKeyAccessor);\n\n /**\n #### .x([scale])\n Gets or sets the x scale. The x scale can be any d3\n [quantitive scale](https://github.com/mbostock/d3/wiki/Quantitative-Scales)\n **/\n _chart.x = function (x) {\n if (!arguments.length) {\n return _x;\n }\n _x = x;\n return _chart;\n };\n\n function drawGridLines() {\n _g.selectAll('g.tick')\n .select('line.grid-line')\n .remove();\n\n _g.selectAll('g.tick')\n .append('line')\n .attr('class', 'grid-line')\n .attr('x1', 0)\n .attr('y1', 0)\n .attr('x2', 0)\n .attr('y2', function () {\n return -_chart.effectiveHeight();\n });\n }\n\n function drawChart() {\n _rowData = _chart.data();\n\n drawAxis();\n drawGridLines();\n\n var rows = _g.selectAll('g.' + _rowCssClass)\n .data(_rowData);\n\n createElements(rows);\n removeElements(rows);\n updateElements(rows);\n }\n\n function createElements(rows) {\n var rowEnter = rows.enter()\n .append('g')\n .attr('class', function (d, i) {\n return _rowCssClass + ' _' + i;\n });\n\n rowEnter.append('rect').attr('width', 0);\n\n createLabels(rowEnter);\n updateLabels(rows);\n }\n\n function removeElements(rows) {\n rows.exit().remove();\n }\n\n function rootValue() {\n var root = _x(0);\n return (root === -Infinity || root !== root) ? _x(1) : root;\n }\n\n function updateElements(rows) {\n var n = _rowData.length;\n\n var height;\n if (!_fixedBarHeight) {\n height = (_chart.effectiveHeight() - (n + 1) * _gap) / n;\n } else {\n height = _fixedBarHeight;\n }\n\n // vertically align label in center unless they override the value via property setter\n if (!_hasLabelOffsetY) {\n _labelOffsetY = height / 2;\n }\n\n var rect = rows.attr('transform', function (d, i) {\n return 'translate(0,' + ((i + 1) * _gap + i * height) + ')';\n }).select('rect')\n .attr('height', height)\n .attr('fill', _chart.getColor)\n .on('click', onClick)\n .classed('deselected', function (d) {\n return (_chart.hasFilter()) ? !isSelectedRow(d) : false;\n })\n .classed('selected', function (d) {\n return (_chart.hasFilter()) ? isSelectedRow(d) : false;\n });\n\n dc.transition(rect, _chart.transitionDuration())\n .attr('width', function (d) {\n return Math.abs(rootValue() - _x(_chart.valueAccessor()(d)));\n })\n .attr('transform', translateX);\n\n createTitles(rows);\n updateLabels(rows);\n }\n\n function createTitles(rows) {\n if (_chart.renderTitle()) {\n rows.selectAll('title').remove();\n rows.append('title').text(_chart.title());\n }\n }\n\n function createLabels(rowEnter) {\n if (_chart.renderLabel()) {\n rowEnter.append('text')\n .on('click', onClick);\n }\n if (_chart.renderTitleLabel()) {\n rowEnter.append('text')\n .attr('class', _titleRowCssClass)\n .on('click', onClick);\n }\n }\n\n function updateLabels(rows) {\n if (_chart.renderLabel()) {\n var lab = rows.select('text')\n .attr('x', _labelOffsetX)\n .attr('y', _labelOffsetY)\n .attr('dy', _dyOffset)\n .on('click', onClick)\n .attr('class', function (d, i) {\n return _rowCssClass + ' _' + i;\n })\n .text(function (d) {\n return _chart.label()(d);\n });\n dc.transition(lab, _chart.transitionDuration())\n .attr('transform', translateX);\n }\n if (_chart.renderTitleLabel()) {\n var titlelab = rows.select('.' + _titleRowCssClass)\n .attr('x', _chart.effectiveWidth() - _titleLabelOffsetX)\n .attr('y', _labelOffsetY)\n .attr('text-anchor', 'end')\n .on('click', onClick)\n .attr('class', function (d, i) {\n return _titleRowCssClass + ' _' + i ;\n })\n .text(function (d) {\n return _chart.title()(d);\n });\n dc.transition(titlelab, _chart.transitionDuration())\n .attr('transform', translateX);\n }\n }\n\n /**\n #### .renderTitleLabel(boolean)\n Turn on/off Title label rendering (values) using SVG style of text-anchor 'end'\n\n **/\n _chart.renderTitleLabel = function (_) {\n if (!arguments.length) {\n return _renderTitleLabel;\n }\n _renderTitleLabel = _;\n return _chart;\n };\n\n function onClick(d) {\n _chart.onClick(d);\n }\n\n function translateX(d) {\n var x = _x(_chart.cappedValueAccessor(d)),\n x0 = rootValue(),\n s = x > x0 ? x0 : x;\n return 'translate(' + s + ',0)';\n }\n\n _chart._doRedraw = function () {\n drawChart();\n return _chart;\n };\n\n /**\n #### .xAxis()\n Get the x axis for the row chart instance. Note: not settable for row charts.\n See the [d3 axis object](https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-axis) documention for more information.\n ```js\n // customize x axis tick format\n chart.xAxis().tickFormat(function (v) {return v + '%';});\n // customize x axis tick values\n chart.xAxis().tickValues([0, 100, 200, 300]);\n ```\n\n **/\n _chart.xAxis = function () {\n return _xAxis;\n };\n\n /**\n #### .fixedBarHeight([height])\n Get or set the fixed bar height. Default is [false] which will auto-scale bars.\n For example, if you want to fix the height for a specific number of bars (useful in TopN charts)\n you could fix height as follows (where count = total number of bars in your TopN and gap is\n your vertical gap space).\n ```js\n chart.fixedBarHeight( chartheight - (count + 1) * gap / count);\n ```\n **/\n _chart.fixedBarHeight = function (g) {\n if (!arguments.length) {\n return _fixedBarHeight;\n }\n _fixedBarHeight = g;\n return _chart;\n };\n\n /**\n #### .gap([gap])\n Get or set the vertical gap space between rows on a particular row chart instance. Default gap is 5px;\n\n **/\n _chart.gap = function (g) {\n if (!arguments.length) {\n return _gap;\n }\n _gap = g;\n return _chart;\n };\n\n /**\n #### .elasticX([boolean])\n Get or set the elasticity on x axis. If this attribute is set to true, then the x axis will rescle to auto-fit the\n data range when filtered.\n\n **/\n _chart.elasticX = function (_) {\n if (!arguments.length) {\n return _elasticX;\n }\n _elasticX = _;\n return _chart;\n };\n\n /**\n #### .labelOffsetX([x])\n Get or set the x offset (horizontal space to the top left corner of a row) for labels on a particular row chart.\n Default x offset is 10px;\n\n **/\n _chart.labelOffsetX = function (o) {\n if (!arguments.length) {\n return _labelOffsetX;\n }\n _labelOffsetX = o;\n return _chart;\n };\n\n /**\n #### .labelOffsetY([y])\n Get or set the y offset (vertical space to the top left corner of a row) for labels on a particular row chart.\n Default y offset is 15px;\n\n **/\n _chart.labelOffsetY = function (o) {\n if (!arguments.length) {\n return _labelOffsetY;\n }\n _labelOffsetY = o;\n _hasLabelOffsetY = true;\n return _chart;\n };\n\n /**\n #### .titleLabelOffsetx([x])\n Get of set the x offset (horizontal space between right edge of row and right edge or text.\n Default x offset is 2px;\n\n **/\n _chart.titleLabelOffsetX = function (o) {\n if (!arguments.length) {\n return _titleLabelOffsetX;\n }\n _titleLabelOffsetX = o;\n return _chart;\n };\n\n function isSelectedRow (d) {\n return _chart.hasFilter(_chart.cappedKeyAccessor(d));\n }\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Legend\nLegend is a attachable widget that can be added to other dc charts to render horizontal legend\nlabels.\n\n```js\nchart.legend(dc.legend().x(400).y(10).itemHeight(13).gap(5))\n```\n\nExamples:\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n* [Canadian City Crime Stats](http://dc-js.github.com/dc.js/crime/index.html)\n\n**/\ndc.legend = function () {\n var LABEL_GAP = 2;\n\n var _legend = {},\n _parent,\n _x = 0,\n _y = 0,\n _itemHeight = 12,\n _gap = 5,\n _horizontal = false,\n _legendWidth = 560,\n _itemWidth = 70,\n _autoItemWidth = false;\n\n var _g;\n\n _legend.parent = function (p) {\n if (!arguments.length) {\n return _parent;\n }\n _parent = p;\n return _legend;\n };\n\n _legend.render = function () {\n _parent.svg().select('g.dc-legend').remove();\n _g = _parent.svg().append('g')\n .attr('class', 'dc-legend')\n .attr('transform', 'translate(' + _x + ',' + _y + ')');\n var legendables = _parent.legendables();\n\n var itemEnter = _g.selectAll('g.dc-legend-item')\n .data(legendables)\n .enter()\n .append('g')\n .attr('class', 'dc-legend-item')\n .on('mouseover', function (d) {\n _parent.legendHighlight(d);\n })\n .on('mouseout', function (d) {\n _parent.legendReset(d);\n })\n .on('click', function (d) {\n d.chart.legendToggle(d);\n });\n\n _g.selectAll('g.dc-legend-item')\n .classed('fadeout', function (d) {\n return d.chart.isLegendableHidden(d);\n });\n\n if (legendables.some(dc.pluck('dashstyle'))) {\n itemEnter\n .append('line')\n .attr('x1', 0)\n .attr('y1', _itemHeight / 2)\n .attr('x2', _itemHeight)\n .attr('y2', _itemHeight / 2)\n .attr('stroke-width', 2)\n .attr('stroke-dasharray', dc.pluck('dashstyle'))\n .attr('stroke', dc.pluck('color'));\n } else {\n itemEnter\n .append('rect')\n .attr('width', _itemHeight)\n .attr('height', _itemHeight)\n .attr('fill', function (d) {return d ? d.color : 'blue';});\n }\n\n itemEnter.append('text')\n .text(dc.pluck('name'))\n .attr('x', _itemHeight + LABEL_GAP)\n .attr('y', function () {\n return _itemHeight / 2 + (this.clientHeight ? this.clientHeight : 13) / 2 - 2;\n });\n\n var _cumulativeLegendTextWidth = 0;\n var row = 0;\n itemEnter.attr('transform', function (d, i) {\n if (_horizontal) {\n var translateBy = 'translate(' + _cumulativeLegendTextWidth + ',' + row * legendItemHeight() + ')';\n var itemWidth = _autoItemWidth === true ? this.getBBox().width + _gap : _itemWidth;\n\n if ((_cumulativeLegendTextWidth + itemWidth) >= _legendWidth) {\n ++row ;\n _cumulativeLegendTextWidth = 0 ;\n } else {\n _cumulativeLegendTextWidth += itemWidth;\n }\n return translateBy;\n }\n else {\n return 'translate(0,' + i * legendItemHeight() + ')';\n }\n });\n };\n\n function legendItemHeight() {\n return _gap + _itemHeight;\n }\n\n /**\n #### .x([value])\n Set or get x coordinate for legend widget. Default: 0.\n **/\n _legend.x = function (x) {\n if (!arguments.length) {\n return _x;\n }\n _x = x;\n return _legend;\n };\n\n /**\n #### .y([value])\n Set or get y coordinate for legend widget. Default: 0.\n **/\n _legend.y = function (y) {\n if (!arguments.length) {\n return _y;\n }\n _y = y;\n return _legend;\n };\n\n /**\n #### .gap([value])\n Set or get gap between legend items. Default: 5.\n **/\n _legend.gap = function (gap) {\n if (!arguments.length) {\n return _gap;\n }\n _gap = gap;\n return _legend;\n };\n\n /**\n #### .itemHeight([value])\n Set or get legend item height. Default: 12.\n **/\n _legend.itemHeight = function (h) {\n if (!arguments.length) {\n return _itemHeight;\n }\n _itemHeight = h;\n return _legend;\n };\n\n /**\n #### .horizontal([boolean])\n Position legend horizontally instead of vertically\n **/\n _legend.horizontal = function (_) {\n if (!arguments.length) {\n return _horizontal;\n }\n _horizontal = _;\n return _legend;\n };\n\n /**\n #### .legendWidth([value])\n Maximum width for horizontal legend. Default: 560.\n **/\n _legend.legendWidth = function (_) {\n if (!arguments.length) {\n return _legendWidth;\n }\n _legendWidth = _;\n return _legend;\n };\n\n /**\n #### .itemWidth([value])\n legendItem width for horizontal legend. Default: 70.\n **/\n _legend.itemWidth = function (_) {\n if (!arguments.length) {\n return _itemWidth;\n }\n _itemWidth = _;\n return _legend;\n };\n\n /**\n #### .autoItemWidth([value])\n Turn automatic width for legend items on or off. If true, itemWidth() is ignored.\n This setting takes into account gap(). Default: false.\n **/\n _legend.autoItemWidth = function (_) {\n if (!arguments.length) {\n return _autoItemWidth;\n }\n _autoItemWidth = _;\n return _legend;\n };\n\n return _legend;\n};\n","/**\n## Scatter Plot\nIncludes: [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nA scatter plot chart\n#### dc.scatterPlot(parent[, chartGroup])\nCreate a scatter plot instance and attach it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection | compositeChart - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n If the scatter plot is a sub-chart in a [Composite Chart](#composite-chart) then pass in the parent composite\n chart instance.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created scatter plot instance\n\n```js\n// create a scatter plot under #chart-container1 element using the default global chart group\nvar chart1 = dc.scatterPlot('#chart-container1');\n// create a scatter plot under #chart-container2 element using chart group A\nvar chart2 = dc.scatterPlot('#chart-container2', 'chartGroupA');\n// create a sub-chart under a composite parent chart\nvar chart3 = dc.scatterPlot(compositeChart);\n```\n\n **/\ndc.scatterPlot = function (parent, chartGroup) {\n var _chart = dc.coordinateGridMixin({});\n var _symbol = d3.svg.symbol();\n\n var _existenceAccessor = function (d) { return d.value; };\n\n var originalKeyAccessor = _chart.keyAccessor();\n _chart.keyAccessor(function (d) { return originalKeyAccessor(d)[0]; });\n _chart.valueAccessor(function (d) { return originalKeyAccessor(d)[1]; });\n _chart.colorAccessor(function () { return _chart._groupName; });\n\n var _locator = function (d) {\n return 'translate(' + _chart.x()(_chart.keyAccessor()(d)) + ',' +\n _chart.y()(_chart.valueAccessor()(d)) + ')';\n };\n\n var _symbolSize = 3;\n var _highlightedSize = 5;\n var _hiddenSize = 0;\n\n _symbol.size(function (d) {\n if (!_existenceAccessor(d)) {\n return _hiddenSize;\n } else if (this.filtered) {\n return Math.pow(_highlightedSize, 2);\n } else {\n return Math.pow(_symbolSize, 2);\n }\n });\n\n dc.override(_chart, '_filter', function (filter) {\n if (!arguments.length) {\n return _chart.__filter();\n }\n\n return _chart.__filter(dc.filters.RangedTwoDimensionalFilter(filter));\n });\n\n _chart.plotData = function () {\n var symbols = _chart.chartBodyG().selectAll('path.symbol')\n .data(_chart.data());\n\n symbols\n .enter()\n .append('path')\n .attr('class', 'symbol')\n .attr('opacity', 0)\n .attr('fill', _chart.getColor)\n .attr('transform', _locator);\n\n dc.transition(symbols, _chart.transitionDuration())\n .attr('opacity', function (d) { return _existenceAccessor(d) ? 1 : 0; })\n .attr('fill', _chart.getColor)\n .attr('transform', _locator)\n .attr('d', _symbol);\n\n dc.transition(symbols.exit(), _chart.transitionDuration())\n .attr('opacity', 0).remove();\n };\n\n /**\n #### .existenceAccessor([accessor])\n Get or set the existence accessor. If a point exists, it is drawn with symbolSize radius and\n opacity 1; if it does not exist, it is drawn with hiddenSize radius and opacity 0. By default,\n the existence accessor checks if the reduced value is truthy.\n **/\n\n _chart.existenceAccessor = function (acc) {\n if (!arguments.length) {\n return _existenceAccessor;\n }\n _existenceAccessor = acc;\n return this;\n };\n\n /**\n #### .symbol([type])\n Get or set the symbol type used for each point. By default the symbol is a circle. See the D3\n [docs](https://github.com/mbostock/d3/wiki/SVG-Shapes#wiki-symbol_type) for acceptable types.\n Type can be a constant or an accessor.\n\n **/\n _chart.symbol = function (type) {\n if (!arguments.length) {\n return _symbol.type();\n }\n _symbol.type(type);\n return _chart;\n };\n\n /**\n #### .symbolSize([radius])\n Set or get radius for symbols. Default: 3.\n\n **/\n _chart.symbolSize = function (s) {\n if (!arguments.length) {\n return _symbolSize;\n }\n _symbolSize = s;\n return _chart;\n };\n\n /**\n #### .highlightedSize([radius])\n Set or get radius for highlighted symbols. Default: 4.\n\n **/\n _chart.highlightedSize = function (s) {\n if (!arguments.length) {\n return _highlightedSize;\n }\n _highlightedSize = s;\n return _chart;\n };\n\n /**\n #### .hiddenSize([radius])\n Set or get radius for symbols when the group is empty. Default: 0.\n\n **/\n _chart.hiddenSize = function (s) {\n if (!arguments.length) {\n return _hiddenSize;\n }\n _hiddenSize = s;\n return _chart;\n };\n\n _chart.legendables = function () {\n return [{chart: _chart, name: _chart._groupName, color: _chart.getColor()}];\n };\n\n _chart.legendHighlight = function (d) {\n resizeSymbolsWhere(function (symbol) {\n return symbol.attr('fill') === d.color;\n }, _highlightedSize);\n _chart.selectAll('.chart-body path.symbol').filter(function () {\n return d3.select(this).attr('fill') !== d.color;\n }).classed('fadeout', true);\n };\n\n _chart.legendReset = function (d) {\n resizeSymbolsWhere(function (symbol) {\n return symbol.attr('fill') === d.color;\n }, _symbolSize);\n _chart.selectAll('.chart-body path.symbol').filter(function () {\n return d3.select(this).attr('fill') !== d.color;\n }).classed('fadeout', false);\n };\n\n function resizeSymbolsWhere(condition, size) {\n var symbols = _chart.selectAll('.chart-body path.symbol').filter(function () {\n return condition(d3.select(this));\n });\n var oldSize = _symbol.size();\n _symbol.size(Math.pow(size, 2));\n dc.transition(symbols, _chart.transitionDuration()).attr('d', _symbol);\n _symbol.size(oldSize);\n }\n\n _chart.setHandlePaths = function () {\n // no handle paths for poly-brushes\n };\n\n _chart.extendBrush = function () {\n var extent = _chart.brush().extent();\n if (_chart.round()) {\n extent[0] = extent[0].map(_chart.round());\n extent[1] = extent[1].map(_chart.round());\n\n _chart.g().select('.brush')\n .call(_chart.brush().extent(extent));\n }\n return extent;\n };\n\n _chart.brushIsEmpty = function (extent) {\n return _chart.brush().empty() || !extent || extent[0][0] >= extent[1][0] || extent[0][1] >= extent[1][1];\n };\n\n function resizeFiltered(filter) {\n var symbols = _chart.selectAll('.chart-body path.symbol').each(function (d) {\n this.filtered = filter && filter.isFiltered(d.key);\n });\n\n dc.transition(symbols, _chart.transitionDuration()).attr('d', _symbol);\n }\n\n _chart._brushing = function () {\n var extent = _chart.extendBrush();\n\n _chart.redrawBrush(_chart.g());\n\n if (_chart.brushIsEmpty(extent)) {\n dc.events.trigger(function () {\n _chart.filter(null);\n _chart.redrawGroup();\n });\n\n resizeFiltered(false);\n\n } else {\n var ranged2DFilter = dc.filters.RangedTwoDimensionalFilter(extent);\n dc.events.trigger(function () {\n _chart.filter(null);\n _chart.filter(ranged2DFilter);\n _chart.redrawGroup();\n }, dc.constants.EVENT_DELAY);\n\n resizeFiltered(ranged2DFilter);\n }\n };\n\n _chart.setBrushY = function (gBrush) {\n gBrush.call(_chart.brush().y(_chart.y()));\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Number Display Widget\nIncludes: [Base Mixin](#base-mixin)\n\nA display of a single numeric value.\n\nExamples:\n\n* [Test Example](http://dc-js.github.io/dc.js/examples/number.html)\n#### dc.numberDisplay(parent[, chartGroup])\nCreate a Number Display instance and attach it to the given parent element.\n\nUnlike other charts, you do not need to set a dimension. Instead a group object must be provided and\na valueAccessor that returns a single value.\n\nParameters:\n\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n The number display widget will only react to filter changes in the chart group.\n\nReturns:\nA newly created number display instance\n\n```js\n// create a number display under #chart-container1 element using the default global chart group\nvar display1 = dc.numberDisplay('#chart-container1');\n```\n\n**/\ndc.numberDisplay = function (parent, chartGroup) {\n var SPAN_CLASS = 'number-display';\n var _formatNumber = d3.format('.2s');\n var _chart = dc.baseMixin({});\n var _html = {one:'', some:'', none:''};\n\n // dimension not required\n _chart._mandatoryAttributes(['group']);\n\n /**\n #### .html([object])\n Gets or sets an optional object specifying HTML templates to use depending on the number\n displayed. The text `%number` will be replaced with the current value.\n - one: HTML template to use if the number is 1\n - zero: HTML template to use if the number is 0\n - some: HTML template to use otherwise\n\n ```js\n numberWidget.html({\n one:'%number record',\n some:'%number records',\n none:'no records'})\n ```\n **/\n\n _chart.html = function (s) {\n if (!arguments.length) {\n return _html;\n }\n if (s.none) {\n _html.none = s.none;//if none available\n } else if (s.one) {\n _html.none = s.one;//if none not available use one\n } else if (s.some) {\n _html.none = s.some;//if none and one not available use some\n }\n if (s.one) {\n _html.one = s.one;//if one available\n } else if (s.some) {\n _html.one = s.some;//if one not available use some\n }\n if (s.some) {\n _html.some = s.some;//if some available\n } else if (s.one) {\n _html.some = s.one;//if some not available use one\n }\n return _chart;\n };\n\n /**\n #### .value()\n Calculate and return the underlying value of the display\n **/\n\n _chart.value = function () {\n return _chart.data();\n };\n\n _chart.data(function (group) {\n var valObj = group.value ? group.value() : group.top(1)[0];\n return _chart.valueAccessor()(valObj);\n });\n\n _chart.transitionDuration(250); // good default\n\n _chart._doRender = function () {\n var newValue = _chart.value(),\n span = _chart.selectAll('.' + SPAN_CLASS);\n\n if (span.empty()) {\n span = span.data([0])\n .enter()\n .append('span')\n .attr('class', SPAN_CLASS);\n }\n\n span.transition()\n .duration(_chart.transitionDuration())\n .ease('quad-out-in')\n .tween('text', function () {\n var interp = d3.interpolateNumber(this.lastValue || 0, newValue);\n this.lastValue = newValue;\n return function (t) {\n var html = null, num = _chart.formatNumber()(interp(t));\n if (newValue === 0 && (_html.none !== '')) {\n html = _html.none;\n } else if (newValue === 1 && (_html.one !== '')) {\n html = _html.one;\n } else if (_html.some !== '') {\n html = _html.some;\n }\n this.innerHTML = html ? html.replace('%number', num) : num;\n };\n });\n };\n\n _chart._doRedraw = function () {\n return _chart._doRender();\n };\n\n /**\n #### .formatNumber([formatter])\n Get or set a function to format the value for the display. By default `d3.format('.2s');` is used.\n\n **/\n _chart.formatNumber = function (_) {\n if (!arguments.length) {\n return _formatNumber;\n }\n _formatNumber = _;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n ## Heat Map\n\n Includes: [Color Mixin](#color-mixin), [Margin Mixin](#margin-mixin), [Base Mixin](#base-mixin)\n\n A heat map is matrix that represents the values of two dimensions of data using colors.\n\n #### dc.heatMap(parent[, chartGroup])\n Create a heat map instance and attach it to the given parent element.\n\n Parameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\n Returns:\n A newly created heat map instance\n\n ```js\n // create a heat map under #chart-container1 element using the default global chart group\n var heatMap1 = dc.heatMap('#chart-container1');\n // create a heat map under #chart-container2 element using chart group A\n var heatMap2 = dc.heatMap('#chart-container2', 'chartGroupA');\n ```\n\n **/\ndc.heatMap = function (parent, chartGroup) {\n\n var DEFAULT_BORDER_RADIUS = 6.75;\n\n var _chartBody;\n\n var _cols;\n var _rows;\n var _colOrdering = d3.ascending;\n var _rowOrdering = d3.ascending;\n var _colScale = d3.scale.ordinal();\n var _rowScale = d3.scale.ordinal();\n\n var _xBorderRadius = DEFAULT_BORDER_RADIUS;\n var _yBorderRadius = DEFAULT_BORDER_RADIUS;\n\n var _chart = dc.colorMixin(dc.marginMixin(dc.baseMixin({})));\n _chart._mandatoryAttributes(['group']);\n _chart.title(_chart.colorAccessor());\n\n var _colsLabel = function (d) {\n return d;\n };\n var _rowsLabel = function (d) {\n return d;\n };\n\n /**\n #### .colsLabel([labelFunction])\n Set or get the column label function. The chart class uses this function to render\n column labels on the X axis. It is passed the column name.\n ```js\n // the default label function just returns the name\n chart.colsLabel(function(d) { return d; });\n ```\n **/\n _chart.colsLabel = function (_) {\n if (!arguments.length) {\n return _colsLabel;\n }\n _colsLabel = _;\n return _chart;\n };\n\n /**\n #### .rowsLabel([labelFunction])\n Set or get the row label function. The chart class uses this function to render\n row labels on the Y axis. It is passed the row name.\n ```js\n // the default label function just returns the name\n chart.rowsLabel(function(d) { return d; });\n ```\n **/\n _chart.rowsLabel = function (_) {\n if (!arguments.length) {\n return _rowsLabel;\n }\n _rowsLabel = _;\n return _chart;\n };\n\n var _xAxisOnClick = function (d) { filterAxis(0, d); };\n var _yAxisOnClick = function (d) { filterAxis(1, d); };\n var _boxOnClick = function (d) {\n var filter = d.key;\n dc.events.trigger(function () {\n _chart.filter(filter);\n _chart.redrawGroup();\n });\n };\n\n function filterAxis(axis, value) {\n var cellsOnAxis = _chart.selectAll('.box-group').filter(function (d) {\n return d.key[axis] === value;\n });\n var unfilteredCellsOnAxis = cellsOnAxis.filter(function (d) {\n return !_chart.hasFilter(d.key);\n });\n dc.events.trigger(function () {\n if (unfilteredCellsOnAxis.empty()) {\n cellsOnAxis.each(function (d) {\n _chart.filter(d.key);\n });\n } else {\n unfilteredCellsOnAxis.each(function (d) {\n _chart.filter(d.key);\n });\n }\n _chart.redrawGroup();\n });\n }\n\n dc.override(_chart, 'filter', function (filter) {\n if (!arguments.length) {\n return _chart._filter();\n }\n\n return _chart._filter(dc.filters.TwoDimensionalFilter(filter));\n });\n\n /**\n #### .rows([values])\n Gets or sets the values used to create the rows of the heatmap, as an array. By default, all\n the values will be fetched from the data using the value accessor.\n **/\n\n _chart.rows = function (_) {\n if (!arguments.length) {\n return _rows;\n }\n _rows = _;\n return _chart;\n };\n\n /**\n #### .rowOrdering([orderFunction])\n Get or set an accessor to order the rows. Default is d3.ascending.\n */\n _chart.rowOrdering = function (_) {\n if (!arguments.length) {\n return _rowOrdering;\n }\n _rowOrdering = _;\n return _chart;\n };\n\n /**\n #### .cols([keys])\n Gets or sets the keys used to create the columns of the heatmap, as an array. By default, all\n the values will be fetched from the data using the key accessor.\n **/\n _chart.cols = function (_) {\n if (!arguments.length) {\n return _cols;\n }\n _cols = _;\n return _chart;\n };\n\n /**\n #### .colOrdering([orderFunction])\n Get or set an accessor to order the cols. Default is ascending.\n */\n _chart.colOrdering = function (_) {\n if (!arguments.length) {\n return _colOrdering;\n }\n _colOrdering = _;\n return _chart;\n };\n\n _chart._doRender = function () {\n _chart.resetSvg();\n\n _chartBody = _chart.svg()\n .append('g')\n .attr('class', 'heatmap')\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')');\n\n return _chart._doRedraw();\n };\n\n _chart._doRedraw = function () {\n var data = _chart.data(),\n rows = _chart.rows() || data.map(_chart.valueAccessor()),\n cols = _chart.cols() || data.map(_chart.keyAccessor());\n if (_rowOrdering) {\n rows = rows.sort(_rowOrdering);\n }\n if (_colOrdering) {\n cols = cols.sort(_colOrdering);\n }\n rows = _rowScale.domain(rows);\n cols = _colScale.domain(cols);\n\n var rowCount = rows.domain().length,\n colCount = cols.domain().length,\n boxWidth = Math.floor(_chart.effectiveWidth() / colCount),\n boxHeight = Math.floor(_chart.effectiveHeight() / rowCount);\n\n cols.rangeRoundBands([0, _chart.effectiveWidth()]);\n rows.rangeRoundBands([_chart.effectiveHeight(), 0]);\n\n var boxes = _chartBody.selectAll('g.box-group').data(_chart.data(), function (d, i) {\n return _chart.keyAccessor()(d, i) + '\\0' + _chart.valueAccessor()(d, i);\n });\n var gEnter = boxes.enter().append('g')\n .attr('class', 'box-group');\n\n gEnter.append('rect')\n .attr('class', 'heat-box')\n .attr('fill', 'white')\n .on('click', _chart.boxOnClick());\n\n if (_chart.renderTitle()) {\n gEnter.append('title');\n boxes.selectAll('title').text(_chart.title());\n }\n\n dc.transition(boxes.selectAll('rect'), _chart.transitionDuration())\n .attr('x', function (d, i) { return cols(_chart.keyAccessor()(d, i)); })\n .attr('y', function (d, i) { return rows(_chart.valueAccessor()(d, i)); })\n .attr('rx', _xBorderRadius)\n .attr('ry', _yBorderRadius)\n .attr('fill', _chart.getColor)\n .attr('width', boxWidth)\n .attr('height', boxHeight);\n\n boxes.exit().remove();\n\n var gCols = _chartBody.selectAll('g.cols');\n if (gCols.empty()) {\n gCols = _chartBody.append('g').attr('class', 'cols axis');\n }\n var gColsText = gCols.selectAll('text').data(cols.domain());\n gColsText.enter().append('text')\n .attr('x', function (d) { return cols(d) + boxWidth / 2; })\n .style('text-anchor', 'middle')\n .attr('y', _chart.effectiveHeight())\n .attr('dy', 12)\n .on('click', _chart.xAxisOnClick())\n .text(_chart.colsLabel());\n dc.transition(gColsText, _chart.transitionDuration())\n .text(_chart.colsLabel())\n .attr('x', function (d) { return cols(d) + boxWidth / 2; });\n gColsText.exit().remove();\n var gRows = _chartBody.selectAll('g.rows');\n if (gRows.empty()) {\n gRows = _chartBody.append('g').attr('class', 'rows axis');\n }\n var gRowsText = gRows.selectAll('text').data(rows.domain());\n gRowsText.enter().append('text')\n .attr('dy', 6)\n .style('text-anchor', 'end')\n .attr('x', 0)\n .attr('dx', -2)\n .on('click', _chart.yAxisOnClick())\n .text(_chart.rowsLabel());\n dc.transition(gRowsText, _chart.transitionDuration())\n .text(_chart.rowsLabel())\n .attr('y', function (d) { return rows(d) + boxHeight / 2; });\n gRowsText.exit().remove();\n\n if (_chart.hasFilter()) {\n _chart.selectAll('g.box-group').each(function (d) {\n if (_chart.isSelectedNode(d)) {\n _chart.highlightSelected(this);\n } else {\n _chart.fadeDeselected(this);\n }\n });\n } else {\n _chart.selectAll('g.box-group').each(function () {\n _chart.resetHighlight(this);\n });\n }\n return _chart;\n };\n /**\n #### .boxOnClick([handler])\n Gets or sets the handler that fires when an individual cell is clicked in the heatmap.\n By default, filtering of the cell will be toggled.\n **/\n _chart.boxOnClick = function (f) {\n if (!arguments.length) {\n return _boxOnClick;\n }\n _boxOnClick = f;\n return _chart;\n };\n\n /**\n #### .xAxisOnClick([handler])\n Gets or sets the handler that fires when a column tick is clicked in the x axis.\n By default, if any cells in the column are unselected, the whole column will be selected,\n otherwise the whole column will be unselected.\n **/\n _chart.xAxisOnClick = function (f) {\n if (!arguments.length) {\n return _xAxisOnClick;\n }\n _xAxisOnClick = f;\n return _chart;\n };\n\n /**\n #### .yAxisOnClick([handler])\n Gets or sets the handler that fires when a row tick is clicked in the y axis.\n By default, if any cells in the row are unselected, the whole row will be selected,\n otherwise the whole row will be unselected.\n **/\n _chart.yAxisOnClick = function (f) {\n if (!arguments.length) {\n return _yAxisOnClick;\n }\n _yAxisOnClick = f;\n return _chart;\n };\n\n /**\n #### .xBorderRadius([value])\n Gets or sets the X border radius. Set to 0 to get full rectangles. Default: 6.75\n */\n _chart.xBorderRadius = function (d) {\n if (!arguments.length) {\n return _xBorderRadius;\n }\n _xBorderRadius = d;\n return _chart;\n };\n\n /**\n #### .xBorderRadius([value])\n Gets or sets the Y border radius. Set to 0 to get full rectangles. Default: 6.75\n */\n _chart.yBorderRadius = function (d) {\n if (!arguments.length) {\n return _yBorderRadius;\n }\n _yBorderRadius = d;\n return _chart;\n };\n\n _chart.isSelectedNode = function (d) {\n return _chart.hasFilter(d.key);\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","// https://github.com/d3/d3-plugins/blob/master/box/box.js\n(function () {\n\n // Inspired by http://informationandvisualization.de/blog/box-plot\n d3.box = function () {\n var width = 1,\n height = 1,\n duration = 0,\n domain = null,\n value = Number,\n whiskers = boxWhiskers,\n quartiles = boxQuartiles,\n tickFormat = null;\n\n // For each small multiple…\n function box(g) {\n g.each(function (d, i) {\n d = d.map(value).sort(d3.ascending);\n var g = d3.select(this),\n n = d.length,\n min = d[0],\n max = d[n - 1];\n\n // Compute quartiles. Must return exactly 3 elements.\n var quartileData = d.quartiles = quartiles(d);\n\n // Compute whiskers. Must return exactly 2 elements, or null.\n var whiskerIndices = whiskers && whiskers.call(this, d, i),\n whiskerData = whiskerIndices && whiskerIndices.map(function (i) { return d[i]; });\n\n // Compute outliers. If no whiskers are specified, all data are 'outliers'.\n // We compute the outliers as indices, so that we can join across transitions!\n var outlierIndices = whiskerIndices ?\n d3.range(0, whiskerIndices[0]).concat(d3.range(whiskerIndices[1] + 1, n)) : d3.range(n);\n\n // Compute the new x-scale.\n var x1 = d3.scale.linear()\n .domain(domain && domain.call(this, d, i) || [min, max])\n .range([height, 0]);\n\n // Retrieve the old x-scale, if this is an update.\n var x0 = this.__chart__ || d3.scale.linear()\n .domain([0, Infinity])\n .range(x1.range());\n\n // Stash the new scale.\n this.__chart__ = x1;\n\n // Note: the box, median, and box tick elements are fixed in number,\n // so we only have to handle enter and update. In contrast, the outliers\n // and other elements are variable, so we need to exit them! Variable\n // elements also fade in and out.\n\n // Update center line: the vertical line spanning the whiskers.\n var center = g.selectAll('line.center')\n .data(whiskerData ? [whiskerData] : []);\n\n center.enter().insert('line', 'rect')\n .attr('class', 'center')\n .attr('x1', width / 2)\n .attr('y1', function (d) { return x0(d[0]); })\n .attr('x2', width / 2)\n .attr('y2', function (d) { return x0(d[1]); })\n .style('opacity', 1e-6)\n .transition()\n .duration(duration)\n .style('opacity', 1)\n .attr('y1', function (d) { return x1(d[0]); })\n .attr('y2', function (d) { return x1(d[1]); });\n\n center.transition()\n .duration(duration)\n .style('opacity', 1)\n .attr('y1', function (d) { return x1(d[0]); })\n .attr('y2', function (d) { return x1(d[1]); });\n\n center.exit().transition()\n .duration(duration)\n .style('opacity', 1e-6)\n .attr('y1', function (d) { return x1(d[0]); })\n .attr('y2', function (d) { return x1(d[1]); })\n .remove();\n\n // Update innerquartile box.\n var box = g.selectAll('rect.box')\n .data([quartileData]);\n\n box.enter().append('rect')\n .attr('class', 'box')\n .attr('x', 0)\n .attr('y', function (d) { return x0(d[2]); })\n .attr('width', width)\n .attr('height', function (d) { return x0(d[0]) - x0(d[2]); })\n .transition()\n .duration(duration)\n .attr('y', function (d) { return x1(d[2]); })\n .attr('height', function (d) { return x1(d[0]) - x1(d[2]); });\n\n box.transition()\n .duration(duration)\n .attr('y', function (d) { return x1(d[2]); })\n .attr('height', function (d) { return x1(d[0]) - x1(d[2]); });\n\n // Update median line.\n var medianLine = g.selectAll('line.median')\n .data([quartileData[1]]);\n\n medianLine.enter().append('line')\n .attr('class', 'median')\n .attr('x1', 0)\n .attr('y1', x0)\n .attr('x2', width)\n .attr('y2', x0)\n .transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1);\n\n medianLine.transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1);\n\n // Update whiskers.\n var whisker = g.selectAll('line.whisker')\n .data(whiskerData || []);\n\n whisker.enter().insert('line', 'circle, text')\n .attr('class', 'whisker')\n .attr('x1', 0)\n .attr('y1', x0)\n .attr('x2', width)\n .attr('y2', x0)\n .style('opacity', 1e-6)\n .transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1)\n .style('opacity', 1);\n\n whisker.transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1)\n .style('opacity', 1);\n\n whisker.exit().transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1)\n .style('opacity', 1e-6)\n .remove();\n\n // Update outliers.\n var outlier = g.selectAll('circle.outlier')\n .data(outlierIndices, Number);\n\n outlier.enter().insert('circle', 'text')\n .attr('class', 'outlier')\n .attr('r', 5)\n .attr('cx', width / 2)\n .attr('cy', function (i) { return x0(d[i]); })\n .style('opacity', 1e-6)\n .transition()\n .duration(duration)\n .attr('cy', function (i) { return x1(d[i]); })\n .style('opacity', 1);\n\n outlier.transition()\n .duration(duration)\n .attr('cy', function (i) { return x1(d[i]); })\n .style('opacity', 1);\n\n outlier.exit().transition()\n .duration(duration)\n .attr('cy', function (i) { return x1(d[i]); })\n .style('opacity', 1e-6)\n .remove();\n\n // Compute the tick format.\n var format = tickFormat || x1.tickFormat(8);\n\n // Update box ticks.\n var boxTick = g.selectAll('text.box')\n .data(quartileData);\n\n boxTick.enter().append('text')\n .attr('class', 'box')\n .attr('dy', '.3em')\n .attr('dx', function (d, i) { return i & 1 ? 6 : -6; })\n .attr('x', function (d, i) { return i & 1 ? width : 0; })\n .attr('y', x0)\n .attr('text-anchor', function (d, i) { return i & 1 ? 'start' : 'end'; })\n .text(format)\n .transition()\n .duration(duration)\n .attr('y', x1);\n\n boxTick.transition()\n .duration(duration)\n .text(format)\n .attr('y', x1);\n\n // Update whisker ticks. These are handled separately from the box\n // ticks because they may or may not exist, and we want don't want\n // to join box ticks pre-transition with whisker ticks post-.\n var whiskerTick = g.selectAll('text.whisker')\n .data(whiskerData || []);\n\n whiskerTick.enter().append('text')\n .attr('class', 'whisker')\n .attr('dy', '.3em')\n .attr('dx', 6)\n .attr('x', width)\n .attr('y', x0)\n .text(format)\n .style('opacity', 1e-6)\n .transition()\n .duration(duration)\n .attr('y', x1)\n .style('opacity', 1);\n\n whiskerTick.transition()\n .duration(duration)\n .text(format)\n .attr('y', x1)\n .style('opacity', 1);\n\n whiskerTick.exit().transition()\n .duration(duration)\n .attr('y', x1)\n .style('opacity', 1e-6)\n .remove();\n });\n d3.timer.flush();\n }\n\n box.width = function (x) {\n if (!arguments.length) {\n return width;\n }\n width = x;\n return box;\n };\n\n box.height = function (x) {\n if (!arguments.length) {\n return height;\n }\n height = x;\n return box;\n };\n\n box.tickFormat = function (x) {\n if (!arguments.length) {\n return tickFormat;\n }\n tickFormat = x;\n return box;\n };\n\n box.duration = function (x) {\n if (!arguments.length) {\n return duration;\n }\n duration = x;\n return box;\n };\n\n box.domain = function (x) {\n if (!arguments.length) {\n return domain;\n }\n domain = x === null ? x : d3.functor(x);\n return box;\n };\n\n box.value = function (x) {\n if (!arguments.length) {\n return value;\n }\n value = x;\n return box;\n };\n\n box.whiskers = function (x) {\n if (!arguments.length) {\n return whiskers;\n }\n whiskers = x;\n return box;\n };\n\n box.quartiles = function (x) {\n if (!arguments.length) {\n return quartiles;\n }\n quartiles = x;\n return box;\n };\n\n return box;\n };\n\n function boxWhiskers(d) {\n return [0, d.length - 1];\n }\n\n function boxQuartiles(d) {\n return [\n d3.quantile(d, 0.25),\n d3.quantile(d, 0.5),\n d3.quantile(d, 0.75)\n ];\n }\n\n})();\n","/**\n ## Box Plot\n\n Includes: [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\n A box plot is a chart that depicts numerical data via their quartile ranges.\n\n #### dc.boxPlot(parent[, chartGroup])\n Create a box plot instance and attach it to the given parent element.\n\n Parameters:\n * parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) representing\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\n Returns:\n A newly created box plot instance\n\n ```js\n // create a box plot under #chart-container1 element using the default global chart group\n var boxPlot1 = dc.boxPlot('#chart-container1');\n // create a box plot under #chart-container2 element using chart group A\n var boxPlot2 = dc.boxPlot('#chart-container2', 'chartGroupA');\n ```\n\n **/\ndc.boxPlot = function (parent, chartGroup) {\n var _chart = dc.coordinateGridMixin({});\n\n // Returns a function to compute the interquartile range.\n function DEFAULT_WHISKERS_IQR (k) {\n return function (d) {\n var q1 = d.quartiles[0],\n q3 = d.quartiles[2],\n iqr = (q3 - q1) * k,\n i = -1,\n j = d.length;\n /*jshint -W116*/\n /*jshint -W035*/\n while (d[++i] < q1 - iqr) {}\n while (d[--j] > q3 + iqr) {}\n /*jshint +W116*/\n return [i, j];\n /*jshint +W035*/\n };\n }\n\n var _whiskerIqrFactor = 1.5;\n var _whiskersIqr = DEFAULT_WHISKERS_IQR;\n var _whiskers = _whiskersIqr(_whiskerIqrFactor);\n\n var _box = d3.box();\n var _tickFormat = null;\n\n var _boxWidth = function (innerChartWidth, xUnits) {\n if (_chart.isOrdinal()) {\n return _chart.x().rangeBand();\n } else {\n return innerChartWidth / (1 + _chart.boxPadding()) / xUnits;\n }\n };\n\n // default padding to handle min/max whisker text\n _chart.yAxisPadding(12);\n\n // default to ordinal\n _chart.x(d3.scale.ordinal());\n _chart.xUnits(dc.units.ordinal);\n\n // valueAccessor should return an array of values that can be coerced into numbers\n // or if data is overloaded for a static array of arrays, it should be `Number`.\n // Empty arrays are not included.\n _chart.data(function (group) {\n return group.all().map(function (d) {\n d.map = function (accessor) { return accessor.call(d, d); };\n return d;\n }).filter(function (d) {\n var values = _chart.valueAccessor()(d);\n return values.length !== 0;\n });\n });\n\n /**\n #### .boxPadding([padding])\n Get or set the spacing between boxes as a fraction of box size. Valid values are within 0-1.\n See the [d3 docs](https://github.com/mbostock/d3/wiki/Ordinal-Scales#wiki-ordinal_rangeBands)\n for a visual description of how the padding is applied.\n\n Default: 0.8\n **/\n _chart.boxPadding = _chart._rangeBandPadding;\n _chart.boxPadding(0.8);\n\n /**\n #### .outerPadding([padding])\n Get or set the outer padding on an ordinal box chart. This setting has no effect on non-ordinal charts\n or on charts with a custom `.boxWidth`. Will pad the width by `padding * barWidth` on each side of the chart.\n\n Default: 0.5\n **/\n _chart.outerPadding = _chart._outerRangeBandPadding;\n _chart.outerPadding(0.5);\n\n /**\n #### .boxWidth(width || function(innerChartWidth, xUnits) { ... })\n Get or set the numerical width of the boxplot box. The width may also be a function taking as\n parameters the chart width excluding the right and left margins, as well as the number of x\n units.\n **/\n _chart.boxWidth = function (_) {\n if (!arguments.length) {\n return _boxWidth;\n }\n _boxWidth = d3.functor(_);\n return _chart;\n };\n\n var boxTransform = function (d, i) {\n var xOffset = _chart.x()(_chart.keyAccessor()(d, i));\n return 'translate(' + xOffset + ', 0)';\n };\n\n _chart._preprocessData = function () {\n if (_chart.elasticX()) {\n _chart.x().domain([]);\n }\n };\n\n _chart.plotData = function () {\n var _calculatedBoxWidth = _boxWidth(_chart.effectiveWidth(), _chart.xUnitCount());\n\n _box.whiskers(_whiskers)\n .width(_calculatedBoxWidth)\n .height(_chart.effectiveHeight())\n .value(_chart.valueAccessor())\n .domain(_chart.y().domain())\n .duration(_chart.transitionDuration())\n .tickFormat(_tickFormat);\n\n var boxesG = _chart.chartBodyG().selectAll('g.box').data(_chart.data(), function (d) { return d.key; });\n\n renderBoxes(boxesG);\n updateBoxes(boxesG);\n removeBoxes(boxesG);\n\n _chart.fadeDeselectedArea();\n };\n\n function renderBoxes(boxesG) {\n var boxesGEnter = boxesG.enter().append('g');\n\n boxesGEnter\n .attr('class', 'box')\n .attr('transform', boxTransform)\n .call(_box)\n .on('click', function (d) {\n _chart.filter(d.key);\n _chart.redrawGroup();\n });\n }\n\n function updateBoxes(boxesG) {\n dc.transition(boxesG, _chart.transitionDuration())\n .attr('transform', boxTransform)\n .call(_box)\n .each(function () {\n d3.select(this).select('rect.box').attr('fill', _chart.getColor);\n });\n }\n\n function removeBoxes(boxesG) {\n boxesG.exit().remove().call(_box);\n }\n\n _chart.fadeDeselectedArea = function () {\n if (_chart.hasFilter()) {\n _chart.g().selectAll('g.box').each(function (d) {\n if (_chart.isSelectedNode(d)) {\n _chart.highlightSelected(this);\n } else {\n _chart.fadeDeselected(this);\n }\n });\n } else {\n _chart.g().selectAll('g.box').each(function () {\n _chart.resetHighlight(this);\n });\n }\n };\n\n _chart.isSelectedNode = function (d) {\n return _chart.hasFilter(d.key);\n };\n\n _chart.yAxisMin = function () {\n var min = d3.min(_chart.data(), function (e) {\n return d3.min(_chart.valueAccessor()(e));\n });\n return dc.utils.subtract(min, _chart.yAxisPadding());\n };\n\n _chart.yAxisMax = function () {\n var max = d3.max(_chart.data(), function (e) {\n return d3.max(_chart.valueAccessor()(e));\n });\n return dc.utils.add(max, _chart.yAxisPadding());\n };\n\n /**\n #### .tickFormat()\n Set the numerical format of the boxplot median, whiskers and quartile labels. Defaults to\n integer formatting.\n ```js\n // format ticks to 2 decimal places\n chart.tickFormat(d3.format('.2f'));\n ```\n **/\n _chart.tickFormat = function (x) {\n if (!arguments.length) {\n return _tickFormat;\n }\n _tickFormat = x;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","// Renamed functions\n\ndc.abstractBubbleChart = dc.bubbleMixin;\ndc.baseChart = dc.baseMixin;\ndc.capped = dc.capMixin;\ndc.colorChart = dc.colorMixin;\ndc.coordinateGridChart = dc.coordinateGridMixin;\ndc.marginable = dc.marginMixin;\ndc.stackableChart = dc.stackMixin;\n\n// Expose d3 and crossfilter, so that clients in browserify\n// case can obtain them if they need them.\ndc.d3 = d3;\ndc.crossfilter = crossfilter;\n\nreturn dc;}\n if(typeof define === \"function\" && define.amd) {\n define([\"d3\", \"crossfilter\"], _dc);\n } else if(typeof module === \"object\" && module.exports) {\n var _d3 = require('d3');\n var _crossfilter = require('crossfilter');\n // When using npm + browserify, 'crossfilter' is a function,\n // since package.json specifies index.js as main function, and it\n // does special handling. When using bower + browserify,\n // there's no main in bower.json (in fact, there's no bower.json),\n // so we need to fix it.\n if (typeof _crossfilter !== \"function\") {\n _crossfilter = _crossfilter.crossfilter;\n }\n module.exports = _dc(_d3, _crossfilter);\n } else {\n this.dc = _dc(d3, crossfilter);\n }\n}\n)();\n"]} \ No newline at end of file diff --git a/dc.min.js b/dc.min.js index 22b1b9f6d..de924b1e0 100644 --- a/dc.min.js +++ b/dc.min.js @@ -1,4 +1,23 @@ -!function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&do?b:o},q=p,r=200,s=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>r?b:r},t=s,u=c.pluck("key"),v=c.pluck("value"),w=c.pluck("key"),x=c.pluck("key"),y=c.pluck("key"),z=!1,A=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},B=!0,C=750,D=c.printers.filters,E=["dimension","group"],F=c.constants.DEFAULT_CHART_GROUP,G=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),H=[],I=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c=d&&d>=a)return!0}return!1}),b},J=function(a){return a.all()};d.width=function(b){return arguments.length?(q=a.functor(b||p),d):q(k.node())},d.height=function(b){return arguments.length?(t=a.functor(b||s),d):t(k.node())},d.minWidth=function(a){return arguments.length?(o=a,d):o},d.minHeight=function(a){return arguments.length?(r=a,d):r},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(J=a.functor(b),d.expireCache(),d):J.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(y=a,m=b.quicksort.by(y),d.expireCache(),d):y},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(m||(m=b.quicksort.by(y)),m(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root()):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e)),F=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(D=a,d):D},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(D(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(C=a,d):C},d._mandatoryAttributes=function(a){return arguments.length?(E=a,d):E},d.render=function(){G.preRender(d),E&&E.forEach(f);var a=d._doRender();return n&&n.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){G.renderlet(d),a&&G[a](d)}):(G.renderlet(d),a&&G[a](d))},d.redraw=function(){G.preRedraw(d);var a=d._doRedraw();return n&&n.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&G.filtered(d,a)},d._invokeZoomedListener=function(){G.zoomed(d)};var K=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(K=a,d):K},d.hasFilter=function(a){return K(H,a)};var L=function(a,b){for(var c=0;c=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(L=a,d):L};var M=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(M=a,d):M};var N=function(a){return[]};return d.resetFilterHandler=function(a){return arguments.length?(N=a,d):N},d.replaceFilter=function(a){H=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?L(H,a):M(H,a)}):null===a?H=N(H):d.hasFilter(a)?L(H,a):M(H,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):H.length>0?H[0]:null},d.filters=function(){return H},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(I=a,d):I},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(u=a,d):u},d.valueAccessor=function(a){return arguments.length?(v=a,d):v},d.legendLabelAccessor=function(a){return arguments.length?(x=a,d):x},d.label=function(a){return arguments.length?(w=a,z=!0,d):w},d.renderLabel=function(a){return arguments.length?(z=a,d):z},d.title=function(a){return arguments.length?(A=a,d):A},d.renderTitle=function(a){return arguments.length?(B=a,d):B},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(F=a,d):F},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(n=a,n.parent(d),d):n},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return G.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],ba,b._useOuterPadding()?aa:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,aa=.5,ba=0,ca=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(ca=a,b):ca},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),ca&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=ca?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=ca?b.width()-P:P,d=ca?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(ba=a,b):ba},b._outerRangeBandPadding=function(a){return arguments.length?(aa=a,b):aa},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(d===1/0)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b), +/*! + * dc 2.1.0-dev + * http://dc-js.github.io/dc.js/ + * Copyright 2012-2015 Nick Zhu & the dc.js Developers + * https://github.com/dc-js/dc.js/blob/master/AUTHORS + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +!function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&dp?b:p},r=q,s=200,t=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>s?b:s},u=t,v=c.pluck("key"),w=c.pluck("value"),x=c.pluck("key"),y=c.pluck("key"),z=c.pluck("key"),A=!1,B=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},C=!0,D=750,E=c.printers.filters,F=["dimension","group"],G=c.constants.DEFAULT_CHART_GROUP,H=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),I=[],J=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c=d&&d>=a)return!0}return!1}),b},K=function(a){return a.all()};d.width=function(b){return arguments.length?(r=a.functor(b||q),d):r(k.node())},d.height=function(b){return arguments.length?(u=a.functor(b||t),d):u(k.node())},d.minWidth=function(a){return arguments.length?(p=a,d):p},d.minHeight=function(a){return arguments.length?(s=a,d):s},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(K=a.functor(b),d.expireCache(),d):K.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(z=a,n=b.quicksort.by(z),d.expireCache(),d):z},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(n||(n=b.quicksort.by(z)),n(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root(),m=!0):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e),m=!1),G=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(E=a,d):E},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(E(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(D=a,d):D},d._mandatoryAttributes=function(a){return arguments.length?(F=a,d):F},d.render=function(){H.preRender(d),F&&F.forEach(f);var a=d._doRender();return o&&o.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){H.renderlet(d),a&&H[a](d)}):(H.renderlet(d),a&&H[a](d))},d.redraw=function(){H.preRedraw(d);var a=d._doRedraw();return o&&o.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&H.filtered(d,a)},d._invokeZoomedListener=function(){H.zoomed(d)};var L=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(L=a,d):L},d.hasFilter=function(a){return L(I,a)};var M=function(a,b){for(var c=0;c=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(M=a,d):M};var N=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(N=a,d):N};var O=function(a){return[]};return d.resetFilterHandler=function(a){return arguments.length?(O=a,d):O},d.replaceFilter=function(a){I=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?M(I,a):N(I,a)}):null===a?I=O(I):d.hasFilter(a)?M(I,a):N(I,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):I.length>0?I[0]:null},d.filters=function(){return I},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(J=a,d):J},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(v=a,d):v},d.valueAccessor=function(a){return arguments.length?(w=a,d):w},d.legendLabelAccessor=function(a){return arguments.length?(y=a,d):y},d.label=function(a){return arguments.length?(x=a,A=!0,d):x},d.renderLabel=function(a){return arguments.length?(A=a,d):A},d.title=function(a){return arguments.length?(B=a,d):B},d.renderTitle=function(a){return arguments.length?(C=a,d):C},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(m||c.deregisterChart(d,G),G=a,m||c.registerChart(d,G),d):G},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(o=a,o.parent(d),d):o},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return H.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],ba,b._useOuterPadding()?aa:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,aa=.5,ba=0,ca=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(ca=a,b):ca},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),ca&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=ca?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=ca?b.width()-P:P,d=ca?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(ba=a,b):ba},b._outerRangeBandPadding=function(a){return arguments.length?(aa=a,b):aa},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(d===1/0)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b), isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"}function C(b,c){O.selectAll("g.pie-slice").each(function(d){b.name===d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G,H,I=.5,J="pie-slice",K="empty-chart",L="empty",M=0,N=I,O=c.capMixin(c.colorMixin(c.baseMixin({})));return O.colorAccessor(O.cappedKeyAccessor),O.legendLabelAccessor(O.cappedKeyAccessor),O.title(function(a){return O.cappedKeyAccessor(a)+": "+O.cappedValueAccessor(a)}),O.slicesCap=O.cap,O.label(O.cappedKeyAccessor),O.renderLabel(!0),O.transitionDuration(350),O._doRender=function(){return O.resetSvg(),E=O.svg().append("g").attr("transform","translate("+O.cx()+","+O.cy()+")"),e(),O},O.innerRadius=function(a){return arguments.length?(M=a,O):M},O.radius=function(a){return arguments.length?(D=a,O):D},O.cx=function(a){return arguments.length?(F=a,O):F||O.width()/2},O.cy=function(a){return arguments.length?(G=a,O):G||O.height()/2},O._doRedraw=function(){return e(),O},O.minAngleForLabel=function(a){return arguments.length?(N=a,O):N},O.emptyTitle=function(a){return 0===arguments.length?L:(L=a,O)},O.externalLabels=function(a){return 0===arguments.length?H:(H=a?a:void 0,O)},O.legendables=function(){return O.data().map(function(a,b){var c={name:O.legendLabelAccessor().call(this,a,b),data:a.value,others:a.others,chart:O};return c.color=O.getColor(a,b),c})},O.legendHighlight=function(a){C(a,!0)},O.legendReset=function(a){C(a,!1)},O.legendToggle=function(a){O.onClick({key:a.name,others:a.others})},O.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(l.y()(a.y+a.y0)-l.y()(a.y0)))}function f(a,b,d){var f=a.selectAll("rect.bar").data(d.values,c.pluck("x")),g=f.enter().append("rect").attr("class","bar").attr("fill",c.pluck("data",l.getColor)).attr("y",l.yAxisHeight()).attr("height",0);l.renderTitle()&&g.append("title").text(c.pluck("data",l.title(d.name))),l.isOrdinal()&&f.on("click",l.onClick),c.transition(f,l.transitionDuration()).attr("x",function(a){var b=l.x()(a.x);return n&&(b-=i/2),l.isOrdinal()&&void 0!==m&&(b+=m/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=l.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",i).attr("height",function(a){return e(a)}).attr("fill",c.pluck("data",l.getColor)).select("title").text(c.pluck("data",l.title(d.name))),c.transition(f.exit(),l.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===i){var a=l.xUnitCount();i=Math.floor(l.isOrdinal()&&void 0===m?l.x().rangeBand():m?(l.xAxisLength()-(a-1)*m)/a:l.xAxisLength()/(1+l.barPadding())/a),(i===1/0||isNaN(i)||j>i)&&(i=j)}}function h(b,c){return function(){var d=a.select(this),e=d.attr("fill")===b;return c?!e:e}}var i,j=1,k=2,l=c.stackMixin(c.coordinateGridMixin({})),m=k,n=!1,o=!1;return c.override(l,"rescale",function(){l._rescale(),i=void 0}),c.override(l,"render",function(){l.round()&&n&&!o&&c.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),l._render()}),l.plotData=function(){var b=l.chartBodyG().selectAll("g.stack").data(l.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},l.fadeDeselectedArea=function(){var a=l.chartBodyG().selectAll("rect.bar"),b=l.brush().extent();if(l.isOrdinal())l.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return l.hasFilter(a.x)}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!l.hasFilter(a.x)})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(l.brushIsEmpty(b))a.classed(c.constants.DESELECTED_CLASS,!1);else{var d=b[0],e=b[1];a.classed(c.constants.DESELECTED_CLASS,function(a){return a.x=e})}},l.centerBar=function(a){return arguments.length?(n=a,l):n},c.override(l,"onClick",function(a){l._onClick(a.data)}),l.barPadding=function(a){return arguments.length?(l._rangeBandPadding(a),m=void 0,l):l._rangeBandPadding()},l._useOuterPadding=function(){return void 0===m},l.outerPadding=l._outerRangeBandPadding,l.gap=function(a){return arguments.length?(m=a,l):m},l.extendBrush=function(){var a=l.brush().extent();return!l.round()||n&&!o||(a[0]=a.map(l.round())[0],a[1]=a.map(l.round())[1],l.chartBodyG().select(".brush").call(l.brush().extent(a))),a},l.alwaysUseRounding=function(a){return arguments.length?(o=a,l):o},l.legendHighlight=function(a){l.isLegendableHidden(a)||l.g().selectAll("rect.bar").classed("highlight",h(a.color)).classed("fadeout",h(a.color,!0))},l.legendReset=function(){l.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},c.override(l,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in l.xUnits()){var b=l.xUnits().resolution;a+=b}return a}),l.anchor(b,d)},c.lineChart=function(b,d){function e(a,b){return z.getColor.call(a,a.values,b)}function f(b,d){var f=a.svg.line().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).interpolate(F).tension(G);r&&f.defined(r);var g=b.append("path").attr("class","line").attr("stroke",e);s&&g.attr("stroke-dasharray",s),c.transition(d.select("path.line"),z.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(b,d){if(A){var f=a.svg.area().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).y0(function(a){return z.y()(a.y0)}).interpolate(F).tension(G);r&&f.defined(r),b.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),c.transition(d.select("path.area"),z.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(b,d){if(!z.brushOn()&&z.xyTipsOn()){var e=u+"-list",f=b.select("g."+e);f.empty()&&(f=b.append("g").attr("class",e)),d.each(function(b,d){var e=b.values;r&&(e=e.filter(r));var g=f.select("g."+u+"._"+d);g.empty()&&(g=f.append("g").attr("class",u+" _"+d)),j(g);var h=g.selectAll("circle."+v).data(e,c.pluck("x"));h.enter().append("circle").attr("class",v).attr("r",m()).style("fill-opacity",D).style("stroke-opacity",E).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}),h.attr("cx",function(a){return c.utils.safeNumber(z.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(z.y()(a.y+a.y0))}).attr("fill",z.getColor).call(p,b),h.exit().remove()})}}function j(a){var b=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+x).empty()?a.append("path").attr("class",x):a.select("path."+x);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",B),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=z._yAxisX()-z.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+z.yAxisHeight()+"L"+c+" "+d;b.select("path."+w).style("display","").attr("d",f),b.select("path."+x).style("display","").attr("d",g)}function m(){return C||B}function n(a){a.style("fill-opacity",D).style("stroke-opacity",E).attr("r",m())}function o(a){a.select("path."+w).style("display","none"),a.select("path."+x).style("display","none")}function p(a,b){z.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(c.pluck("data",z.title(b.name))))}function q(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")===b&&e.attr("stroke-dasharray")===(c instanceof Array?c.join(","):null)||e.attr("fill")===b;return d?!f:f}}var r,s,t=5,u="dc-tooltip",v="dot",w="yRef",x="xRef",y=1e-6,z=c.stackMixin(c.coordinateGridMixin({})),A=!1,B=t,C=null,D=y,E=y,F="linear",G=.7,H=!0;return z.transitionDuration(500),z._rangeBandPadding(1),z.plotData=function(){var a=z.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(z.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},z.interpolate=function(a){return arguments.length?(F=a,z):F},z.tension=function(a){return arguments.length?(G=a,z):G},z.defined=function(a){return arguments.length?(r=a,z):r},z.dashStyle=function(a){return arguments.length?(s=a,z):s},z.renderArea=function(a){return arguments.length?(A=a,z):A},z.xyTipsOn=function(a){return arguments.length?(H=a,z):H},z.dotRadius=function(a){return arguments.length?(B=a,z):B},z.renderDataPoints=function(a){return arguments.length?(a?(D=a.fillOpacity||.8,E=a.strokeOpacity||.8,C=a.radius||2):(D=y,E=y,C=null),z):{fillOpacity:D,strokeOpacity:E,radius:C}},z.legendHighlight=function(a){z.isLegendableHidden(a)||z.g().selectAll("path.line, path.area").classed("highlight",q(a.color,a.dashstyle)).classed("fadeout",q(a.color,a.dashstyle,!0))},z.legendReset=function(){z.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},c.override(z,"legendables",function(){var a=z._legendables();return s?a.map(function(a){return a.dashstyle=s,a}):a}),z.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseMixin({}),g={some:"",all:""};return f.html=function(a){return arguments.length?(a.all&&(g.all=a.all),a.some&&(g.some=a.some),f):g},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f._doRender=function(){var a=f.dimension().size(),b=f.group().value(),c=e(a),d=e(b);return a===b&&""!==g.all?f.root().html(g.all.replace("%total-count",c).replace("%filter-count",d)):""!==g.some?f.root().html(g.some.replace("%total-count",c).replace("%filter-count",d)):(f.selectAll(".total-count").text(c),f.selectAll(".filter-count").text(d)),f},f._doRedraw=function(){return f._doRender()},f.anchor(b,d)},c.dataTable=function(b,d){function e(){var a=!0;if(o.forEach(function(b){a&="function"==typeof b}),!a){m.selectAll("th").remove();var b=m.root().selectAll("th").data(o),c=b.enter().append("th");c.attr("class",l).html(function(a){return m._doColumnHeaderFormat(a)})}var d=m.root().selectAll("tbody").data(f(),function(a){return m.keyAccessor()(a)}),e=d.enter().append("tbody");return e.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",o.length).html(function(a){return m.keyAccessor()(a)}),d.exit().remove(),e}function f(){var b;return b=q===a.ascending?m.dimension().bottom(n):m.dimension().top(n),a.nest().key(m.group()).sortKeys(q).entries(b.sort(function(a,b){return q(p(a),p(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return o.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(function(b){return m._doColumnValueFormat(a,b)})}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l="dc-table-head",m=c.baseMixin({}),n=25,o=[],p=function(a){return a},q=a.ascending;return m._doRender=function(){return m.selectAll("tbody").remove(),g(e()),m},m._doColumnValueFormat=function(a,b){return"function"==typeof a?a(b):"string"==typeof a?b[a]:a.format(b)},m._doColumnHeaderFormat=function(a){return"function"==typeof a?m._doColumnHeaderFnToString(a):"string"==typeof a?m._doColumnHeaderCapitalize(a):String(a.label)},m._doColumnHeaderCapitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},m._doColumnHeaderFnToString=function(a){var b=String(a),c=b.indexOf("return ");if(c>=0){var d=b.lastIndexOf(";");if(d>=0){b=b.substring(c+7,d);var e=b.indexOf("numberFormat");e>=0&&(b=b.replace("numberFormat",""))}}return b},m._doRedraw=function(){return m._doRender()},m.size=function(a){return arguments.length?(n=a,m):n},m.columns=function(a){return arguments.length?(o=a,m):o},m.sortBy=function(a){return arguments.length?(p=a,m):p},m.order=function(a){return arguments.length?(q=a,m):q},m.anchor(b,d)},c.dataGrid=function(b,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=c.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

"+l.keyAccessor()(a)+"

"};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,d)},c.bubbleChart=function(a,b){function d(a){var b=a.enter().append("g");b.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),c.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(b),i._doRenderTitles(b)}function e(a){c.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=c.bubbleMixin(c.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,b)},c.compositeChart=function(b,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return c.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return c.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=c.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),c.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),t=a.scale.linear().domain(b).range([0,G.effectiveWidth()])}H.scale(t)}function f(){var a=s.select("g.axis");e(),a.empty()&&(a=s.append("g").attr("class","axis").attr("transform","translate(0, "+G.effectiveHeight()+")")),c.transition(a,G.transitionDuration()).call(H)}function g(){s.selectAll("g.tick").select("line.grid-line").remove(),s.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-G.effectiveHeight()})}function h(){v=G.data(),f(),g();var a=s.selectAll("g."+D).data(v);i(a),j(a),l(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return D+" _"+b});b.append("rect").attr("width",0),n(b),o(a)}function j(a){a.exit().remove()}function k(){var a=t(0);return a===-(1/0)||a!==a?t(1):a}function l(a){var b,d=v.length;b=C?C:(G.effectiveHeight()-(d+1)*B)/d,y||(x=b/2);var e=a.attr("transform",function(a,c){return"translate(0,"+((c+1)*B+c*b)+")"}).select("rect").attr("height",b).attr("fill",G.getColor).on("click",p).classed("deselected",function(a){return G.hasFilter()?!r(a):!1}).classed("selected",function(a){return G.hasFilter()?r(a):!1});c.transition(e,G.transitionDuration()).attr("width",function(a){return Math.abs(k()-t(G.valueAccessor()(a)))}).attr("transform",q),m(a),o(a)}function m(a){G.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(G.title()))}function n(a){G.renderLabel()&&a.append("text").on("click",p),G.renderTitleLabel()&&a.append("text").attr("class",E).on("click",p)}function o(a){if(G.renderLabel()){var b=a.select("text").attr("x",w).attr("y",x).attr("dy",z).on("click",p).attr("class",function(a,b){return D+" _"+b}).text(function(a){return G.label()(a)});c.transition(b,G.transitionDuration()).attr("transform",q)}if(G.renderTitleLabel()){var d=a.select("."+E).attr("x",G.effectiveWidth()-A).attr("y",x).attr("text-anchor","end").on("click",p).attr("class",function(a,b){return E+" _"+b}).text(function(a){return G.title()(a)});c.transition(d,G.transitionDuration()).attr("transform",q)}}function p(a){G.onClick(a)}function q(a){var b=t(G.cappedValueAccessor(a)),c=k(),d=b>c?c:b;return"translate("+d+",0)"}function r(a){return G.hasFilter(G.cappedKeyAccessor(a))}var s,t,u,v,w=10,x=15,y=!1,z="0.35em",A=2,B=5,C=!1,D="row",E="titlerow",F=!1,G=c.capMixin(c.marginMixin(c.colorMixin(c.baseMixin({})))),H=a.svg.axis().orient("bottom");return G.rowsCap=G.cap,G._doRender=function(){return G.resetSvg(),s=G.svg().append("g").attr("transform","translate("+G.margins().left+","+G.margins().top+")"),h(),G},G.title(function(a){return G.cappedKeyAccessor(a)+": "+G.cappedValueAccessor(a)}),G.label(G.cappedKeyAccessor),G.x=function(a){return arguments.length?(t=a,G):t},G.renderTitleLabel=function(a){return arguments.length?(F=a,G):F},G._doRedraw=function(){return h(),G},G.xAxis=function(){return H},G.fixedBarHeight=function(a){return arguments.length?(C=a,G):C},G.gap=function(a){return arguments.length?(B=a,G):B},G.elasticX=function(a){return arguments.length?(u=a,G):u},G.labelOffsetX=function(a){return arguments.length?(w=a,G):w},G.labelOffsetY=function(a){return arguments.length?(x=a,y=!0,G):x},G.titleLabelOffsetX=function(a){return arguments.length?(A=a,G):A},G.anchor(b,d)},c.legend=function(){function a(){return j+i}var b,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70,n=!1;return f.parent=function(a){return arguments.length?(b=a,f):b},f.render=function(){b.svg().select("g.dc-legend").remove(),d=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=b.legendables(),o=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)}).on("click",function(a){a.chart.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(c.pluck("dashstyle"))?o.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",c.pluck("dashstyle")).attr("stroke",c.pluck("color")):o.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),o.append("text").text(c.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var p=0,q=0;o.attr("transform",function(b,c){if(k){var d="translate("+p+","+q*a()+")",e=n===!0?this.getBBox().width+j:m;return p+e>=l?(++q,p=0):p+=e,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f.autoItemWidth=function(a){return arguments.length?(n=a,f):n},f},c.scatterPlot=function(b,d){function e(b,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return b(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),c.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var b=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});c.transition(b,g.transitionDuration()).attr("d",h)}var g=c.coordinateGridMixin({}),h=a.svg.symbol(),i=function(a){return a.value},j=g.keyAccessor();g.keyAccessor(function(a){return j(a)[0]}),g.valueAccessor(function(a){return j(a)[1]}),g.colorAccessor(function(){return g._groupName});var k=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},l=3,m=5,n=0;return h.size(function(a){return i(a)?this.filtered?Math.pow(m,2):Math.pow(l,2):n}),c.override(g,"_filter",function(a){return arguments.length?g.__filter(c.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",k),c.transition(a,g.transitionDuration()).attr("opacity",function(a){return i(a)?1:0}).attr("fill",g.getColor).attr("transform",k).attr("d",h),c.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.existenceAccessor=function(a){return arguments.length?(i=a,this):i},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(l=a,g):l},g.highlightedSize=function(a){return arguments.length?(m=a,g):m},g.hiddenSize=function(a){return arguments.length?(n=a,g):n},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")===b.color},m),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")===b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))c.events.trigger(function(){g.filter(null),g.redrawGroup()}),f(!1);else{var b=c.filters.RangedTwoDimensionalFilter(a);c.events.trigger(function(){g.filter(null),g.filter(b),g.redrawGroup()},c.constants.EVENT_DELAY),f(b)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(b,d)},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseMixin({}),h={one:"",some:"",none:""};return g._mandatoryAttributes(["group"]),g.html=function(a){return arguments.length?(a.none?h.none=a.none:a.one?h.none=a.one:a.some&&(h.none=a.some),a.one?h.one=a.one:a.some&&(h.one=a.some),a.some?h.some=a.some:a.one&&(h.some=a.one),g):h},g.value=function(){ return g.data()},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250),g._doRender=function(){var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);return this.lastValue=b,function(a){var d=null,e=g.formatNumber()(c(a));0===b&&""!==h.none?d=h.none:1===b&&""!==h.one?d=h.one:""!==h.some&&(d=h.some),this.innerHTML=d?d.replace("%number",e):e}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},c.heatMap=function(b,d){function e(a,b){var d=p.selectAll(".box-group").filter(function(c){return c.key[a]===b}),e=d.filter(function(a){return!p.hasFilter(a.key)});c.events.trigger(function(){e.empty()?d.each(function(a){p.filter(a.key)}):e.each(function(a){p.filter(a.key)}),p.redrawGroup()})}var f,g,h,i=6.75,j=a.ascending,k=a.ascending,l=a.scale.ordinal(),m=a.scale.ordinal(),n=i,o=i,p=c.colorMixin(c.marginMixin(c.baseMixin({})));p._mandatoryAttributes(["group"]),p.title(p.colorAccessor());var q=function(a){return a},r=function(a){return a};p.colsLabel=function(a){return arguments.length?(q=a,p):q},p.rowsLabel=function(a){return arguments.length?(r=a,p):r};var s=function(a){e(0,a)},t=function(a){e(1,a)},u=function(a){var b=a.key;c.events.trigger(function(){p.filter(b),p.redrawGroup()})};return c.override(p,"filter",function(a){return arguments.length?p._filter(c.filters.TwoDimensionalFilter(a)):p._filter()}),p.rows=function(a){return arguments.length?(h=a,p):h},p.rowOrdering=function(a){return arguments.length?(k=a,p):k},p.cols=function(a){return arguments.length?(g=a,p):g},p.colOrdering=function(a){return arguments.length?(j=a,p):j},p._doRender=function(){return p.resetSvg(),f=p.svg().append("g").attr("class","heatmap").attr("transform","translate("+p.margins().left+","+p.margins().top+")"),p._doRedraw()},p._doRedraw=function(){var a=p.data(),b=p.rows()||a.map(p.valueAccessor()),d=p.cols()||a.map(p.keyAccessor());k&&(b=b.sort(k)),j&&(d=d.sort(j)),b=m.domain(b),d=l.domain(d);var e=b.domain().length,g=d.domain().length,h=Math.floor(p.effectiveWidth()/g),i=Math.floor(p.effectiveHeight()/e);d.rangeRoundBands([0,p.effectiveWidth()]),b.rangeRoundBands([p.effectiveHeight(),0]);var q=f.selectAll("g.box-group").data(p.data(),function(a,b){return p.keyAccessor()(a,b)+"\x00"+p.valueAccessor()(a,b)}),r=q.enter().append("g").attr("class","box-group");r.append("rect").attr("class","heat-box").attr("fill","white").on("click",p.boxOnClick()),p.renderTitle()&&(r.append("title"),q.selectAll("title").text(p.title())),c.transition(q.selectAll("rect"),p.transitionDuration()).attr("x",function(a,b){return d(p.keyAccessor()(a,b))}).attr("y",function(a,c){return b(p.valueAccessor()(a,c))}).attr("rx",n).attr("ry",o).attr("fill",p.getColor).attr("width",h).attr("height",i),q.exit().remove();var s=f.selectAll("g.cols");s.empty()&&(s=f.append("g").attr("class","cols axis"));var t=s.selectAll("text").data(d.domain());t.enter().append("text").attr("x",function(a){return d(a)+h/2}).style("text-anchor","middle").attr("y",p.effectiveHeight()).attr("dy",12).on("click",p.xAxisOnClick()).text(p.colsLabel()),c.transition(t,p.transitionDuration()).text(p.colsLabel()).attr("x",function(a){return d(a)+h/2}),t.exit().remove();var u=f.selectAll("g.rows");u.empty()&&(u=f.append("g").attr("class","rows axis"));var v=u.selectAll("text").data(b.domain());return v.enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",p.yAxisOnClick()).text(p.rowsLabel()),c.transition(v,p.transitionDuration()).text(p.rowsLabel()).attr("y",function(a){return b(a)+i/2}),v.exit().remove(),p.selectAll("g.box-group").each(p.hasFilter()?function(a){p.isSelectedNode(a)?p.highlightSelected(this):p.fadeDeselected(this)}:function(){p.resetHighlight(this)}),p},p.boxOnClick=function(a){return arguments.length?(u=a,p):u},p.xAxisOnClick=function(a){return arguments.length?(s=a,p):s},p.yAxisOnClick=function(a){return arguments.length?(t=a,p):t},p.xBorderRadius=function(a){return arguments.length?(n=a,p):n},p.yBorderRadius=function(a){return arguments.length?(o=a,p):o},p.isSelectedNode=function(a){return p.hasFilter(a.key)},p.anchor(b,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null===b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),c.boxPlot=function(b,d){function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}function f(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function g(b){c.transition(b,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function h(a){a.exit().remove().call(m)}var i=c.coordinateGridMixin({}),j=1.5,k=e,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(c.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+", 0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});f(b),g(b),h(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var b=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return c.utils.subtract(b,i.yAxisPadding())},i.yAxisMax=function(){var b=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return c.utils.add(b,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(b,d)},c.abstractBubbleChart=c.bubbleMixin,c.baseChart=c.baseMixin,c.capped=c.capMixin,c.colorChart=c.colorMixin,c.coordinateGridChart=c.coordinateGridMixin,c.marginable=c.marginMixin,c.stackableChart=c.stackMixin,c.d3=a,c.crossfilter=b,c}if("function"==typeof define&&define.amd)define(["d3","crossfilter"],a);else if("object"==typeof module&&module.exports){var b=require("d3"),c=require("crossfilter");"function"!=typeof c&&(c=c.crossfilter),module.exports=a(b,c)}else this.dc=a(d3,crossfilter)}(); //# sourceMappingURL=dc.min.js.map \ No newline at end of file diff --git a/dc.min.js.map b/dc.min.js.map index 395e27c71..f85179803 100644 --- a/dc.min.js.map +++ b/dc.min.js.map @@ -1 +1 @@ -{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_legendLabelAccessor","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","legendLabelAccessor","label","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_isChild","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_legendLabelAccessor","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","legendLabelAccessor","label","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 10ea7f340..65220df08 100644 --- a/package.json +++ b/package.json @@ -26,33 +26,37 @@ }, "dependencies": { "crossfilter": "1.x", - "d3": "3.x" + "d3": "3.x", + "load-grunt-tasks": "^3.1.0", + "time-grunt": "^1.1.1" }, "devDependencies": { "emu": "~0.0.2", - "grunt": "~0.4.1", - "grunt-browserify": "^3.2.1", - "grunt-cli": "~0.1.9", + "grunt": "~0.4.5", + "grunt-browserify": "~3.3.0", + "grunt-cli": "~0.1.13", "grunt-contrib-concat": "~0.5.0", "grunt-contrib-connect": "~0.9.0", "grunt-contrib-copy": "~0.7.0", "grunt-contrib-jasmine": "~0.8.2", - "grunt-contrib-jshint": "~0.10.0", - "grunt-contrib-uglify": "~0.7.0", + "grunt-contrib-jshint": "~0.11.0", + "grunt-contrib-uglify": "~0.8.0", "grunt-contrib-watch": "~0.6.1", - "grunt-debug-task": "~0.1.4", + "grunt-debug-task": "~0.1.5", "grunt-docco2": "~0.2.0", "grunt-fileindex": "^0.1.0", "grunt-gh-pages": "~0.9.1", "grunt-jscs": "~1.2.0", "grunt-lib-phantomjs": "~0.6.0", - "grunt-markdown": "~0.6.1", - "grunt-saucelabs": "~8.4.1", - "grunt-sed": "~0.1.1", + "grunt-markdown": "~0.7.0", + "grunt-saucelabs": "~8.5.0", "grunt-shell": "~1.1.1", - "grunt-template-jasmine-istanbul": "~0.3.1", - "marked": "~0.3.2", - "uglify-js": "2.4.x" + "grunt-template-jasmine-istanbul": "~0.3.2", + "load-grunt-tasks": "~3.0.0", + "jsdifflib": "~1.1.0", + "marked": "~0.3.3", + "uglify-js": "2.4.x", + "time-grunt": "~1.0.0" }, "scripts": { "test": "grunt test" diff --git a/spec/composite-chart-spec.js b/spec/composite-chart-spec.js index aa8524c17..279786bcd 100644 --- a/spec/composite-chart-spec.js +++ b/spec/composite-chart-spec.js @@ -327,7 +327,7 @@ describe('dc.compositeChart', function() { dateValueGroupLine2.on("click")(dateValueGroupLine2.datum()); expect(dateValueGroupLine2.text()).toBe('Date Value Group Line 2'); - expect(d3.select(chart.selectAll('g.dc-legend g.dc-legend-item')[0][3]).classed("fadeout")).toBeTruthy(); + expect(d3.select(chart.selectAll('g.dc-legend g.dc-legend-item')[0][3]).classed("fadeout")).toBeTruthy(); expect(chart.selectAll("path.line").size()).toEqual(3); }); }); diff --git a/spec/core-spec.js b/spec/core-spec.js index c1e60b57d..2c51285c3 100644 --- a/spec/core-spec.js +++ b/spec/core-spec.js @@ -80,6 +80,20 @@ describe('dc.core', function() { dc.deregisterChart(chartGrouped, chartGroup); expect(dc.hasChart(chartGrouped)).toBeFalsy(); }); + + it('should have switched to an existing group', function () { + chart.chartGroup(chartGroup); + expect(dc.hasChart(chart)).toBeTruthy(); + expect(dc.chartRegistry.list(chartGroup).indexOf(chart) > -1).toBeTruthy(); + expect(dc.chartRegistry.list(null).indexOf(chart) > -1).toBeFalsy(); + }); + + it('should have switched to the global group', function () { + chart.chartGroup(null); + expect(dc.hasChart(chart)).toBeTruthy(); + expect(dc.chartRegistry.list(chartGroup).indexOf(chart) > -1).toBeFalsy(); + expect(dc.chartRegistry.list(null).indexOf(chart) > -1).toBeTruthy(); + }); }); describe('transition', function() { diff --git a/src/banner.js b/src/banner.js index 153885e9e..59be0972f 100644 --- a/src/banner.js +++ b/src/banner.js @@ -1,20 +1,2 @@ -/*! - * dc %VERSION% - * http://dc-js.github.io/dc.js/ - * Copyright 2012 Nick Zhu and other contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - (function() { function _dc(d3, crossfilter) { 'use strict'; diff --git a/src/base-mixin.js b/src/base-mixin.js index 370d1d99e..c7162cf68 100644 --- a/src/base-mixin.js +++ b/src/base-mixin.js @@ -13,6 +13,7 @@ dc.baseMixin = function (_chart) { var _anchor; var _root; var _svg; + var _isChild; var _minWidth = 200; var _defaultWidth = function (element) { @@ -300,11 +301,13 @@ dc.baseMixin = function (_chart) { if (dc.instanceOfChart(a)) { _anchor = a.anchor(); _root = a.root(); + _isChild = true; } else { _anchor = a; _root = d3.select(_anchor); _root.classed(dc.constants.CHART_CLASS, true); dc.registerChart(_chart, chartGroup); + _isChild = false; } _chartGroup = chartGroup; return _chart; @@ -1030,7 +1033,13 @@ dc.baseMixin = function (_chart) { if (!arguments.length) { return _chartGroup; } + if (!_isChild) { + dc.deregisterChart(_chart, _chartGroup); + } _chartGroup = _; + if (!_isChild) { + dc.registerChart(_chart, _chartGroup); + } return _chart; }; diff --git a/src/core.js b/src/core.js index 1db554ccb..3f08b65e9 100644 --- a/src/core.js +++ b/src/core.js @@ -1,5 +1,5 @@ /** -#### Version %VERSION% +#### Version <%= conf.pkg.version %> The entire dc.js library is scoped under the **dc** name space. It does not introduce anything else into the global name space. #### Function Chaining @@ -20,7 +20,7 @@ that are chainable d3 objects.) /*jshint -W062*/ /*jshint -W079*/ var dc = { - version: '%VERSION%', + version: '<%= conf.pkg.version %>', constants: { CHART_CLASS: 'dc-chart', DEBUG_GROUP_CLASS: 'debug', diff --git a/web/docs/index.html b/web/docs/index.html index 4d9184487..808c5b20e 100644 --- a/web/docs/index.html +++ b/web/docs/index.html @@ -149,9 +149,10 @@

Function Chaining

Most dc functions are designed to allow function chaining, meaning they return the current chart instance whenever it is appropriate. This way chart configuration can be written in the following style:

-
chart.width(300)
-.height(300)
-.filter('sunday')
+
chart.width(300)
+.height(300)
+.filter('sunday')
+

The getter forms of functions do not participate in function chaining because they necessarily return values that are not the chart. (Although some, such as .svg and .xAxis, return values that are chainable d3 objects.)

@@ -177,37 +178,41 @@

dc.units.integers

dc.units.integers is the default value for xUnits for the Coordinate Grid Chart and should be used when the x values are a sequence of integers.

It is a function that counts the number of integers in the range supplied in its start and end parameters.

-
chart.xUnits(dc.units.integers) // already the default
+
chart.xUnits(dc.units.integers) // already the default
+

dc.units.ordinal

This argument can be passed to the xUnits function of the to specify ordinal units for the x axis. Usually this parameter is used in combination with passing d3.scale.ordinal() to .x.

It just returns the domain passed to it, which for ordinal charts is an array of all values.

-
chart.xUnits(dc.units.ordinal)
-.x(d3.scale.ordinal())
+
chart.xUnits(dc.units.ordinal)
+.x(d3.scale.ordinal())
+

dc.units.fp.precision(precision)

-

This function generates an argument for the Coordinate Grid Chart's +

This function generates an argument for the Coordinate Grid Chart’s xUnits function specifying that the x values are floating-point numbers with the given precision.

The returned function determines how many values at the given precision will fit into the range supplied in its start and end parameters.

-
// specify values (and ticks) every 0.1 units
-chart.xUnits(dc.units.fp.precision(0.1)
-// there are 500 units between 0.5 and 1 if the precision is 0.001
-var thousandths = dc.units.fp.precision(0.001);
-thousandths(0.5, 1.0) // returns 500
+
// specify values (and ticks) every 0.1 units
+chart.xUnits(dc.units.fp.precision(0.1)
+// there are 500 units between 0.5 and 1 if the precision is 0.001
+var thousandths = dc.units.fp.precision(0.001);
+thousandths(0.5, 1.0) // returns 500
+

dc.events.trigger(function[, delay])

This function triggers a throttled event function with a specified delay (in milli-seconds). Events that are triggered repetitively due to user interaction such brush dragging might flood the library and invoke more renders than can be executed in time. Using this function to wrap your event function allows the library to smooth out the rendering by throttling events and only responding to the most recent event.

-
chart.renderlet(function(chart){
-    // smooth the rendering through event throttling
-    dc.events.trigger(function(){
-        // focus some other chart to the range selected by user on this chart
+
chart.renderlet(function(chart){
+    // smooth the rendering through event throttling
+    dc.events.trigger(function(){
+        // focus some other chart to the range selected by user on this chart
         someOtherChart.focus(chart.filter());
     });
-})
+}) +

Filters

The dc.js filters are functions which are passed into crossfilter to chose which records will be accumulated to produce values for the charts. In the crossfilter model, any filters applied on one @@ -246,12 +251,13 @@

.height([value])

function, or falsy. If no value is specified then the value of the current height attribute will be returned.

By default, without an explicit height being given, the chart will select the width of its -anchor element. If that isn't possible it defaults to 200. Setting the value falsy will return +anchor element. If that isn’t possible it defaults to 200. Setting the value falsy will return the chart to the default behavior

Examples:

-
chart.height(250); // Set the chart's height to 250px;
-chart.height(function(anchor) { return doSomethingWith(anchor); }); // set the chart's height with a function
-chart.height(null); // reset the height to the default auto calculation
+
chart.height(250); // Set the chart's height to 250px;
+chart.height(function(anchor) { return doSomethingWith(anchor); }); // set the chart's height with a function
+chart.height(null); // reset the height to the default auto calculation
+

.minWidth([value])

Set or get the minimum width attribute of a chart. This only applicable if the width is calculated by dc.

@@ -264,13 +270,13 @@

.dimension([value]) - mandatoryIf a value is given, then it will be used as the new dimension. If no value is specified then the current dimension will be returned.

.data([callback])

-

Set the data callback or retrieve the chart's data set. The data callback is passed the chart's +

Set the data callback or retrieve the chart’s data set. The data callback is passed the chart’s group and by default will return group.all(). This behavior may be modified to, for instance, return only the top 5 groups:

-
    chart.data(function(group) {
-        return group.top(5);
-    });
-

.group([value, [name]]) - mandatory

+
    chart.data(function(group) {
+        return group.top(5);
+    });
+

.group([value, [name]]) - mandatory

Set or get the group attribute of a chart. In dc a group is a crossfilter group. Usually the group should be created from the particular dimension associated with the same chart. If a value is @@ -282,25 +288,27 @@

.ordering([orderFunction])

.filterAll()

Clear all filters associated with this chart.

.select(selector)

-

Execute d3 single selection in the chart's scope using the given selector and return the d3 +

Execute d3 single selection in the chart’s scope using the given selector and return the d3 selection. Roughly the same as:

-
d3.select('#chart-id').select(selector);
+
d3.select('#chart-id').select(selector);
+

This function is not chainable since it does not return a chart instance; however the d3 selection result can be chained to d3 function calls.

.selectAll(selector)

Execute in scope d3 selectAll using the given selector and return d3 selection result. Roughly the same as:

-
d3.select('#chart-id').selectAll(selector);
+
d3.select('#chart-id').selectAll(selector);
+

This function is not chainable since it does not return a chart instance; however the d3 selection result can be chained to d3 function calls.

.anchor([anchorChart|anchorSelector|anchorNode], [chartGroup])

-

Set the svg root to either be an existing chart's root; or any valid d3 single +

Set the svg root to either be an existing chart’s root; or any valid d3 single selector specifying a dom block element such as a div; or a dom element or d3 selection. Optionally registers the chart within the chartGroup. This class is called internally on chart initialization, but be called again to relocate the chart. However, it will orphan any previously created SVG elements.

.anchorName()

-

Returns the dom id for the chart's anchored location.

+

Returns the dom id for the chart’s anchored location.

.root([rootElement])

Returns the root element where a chart resides. Usually it will be the parent div element where the svg was created. You can also pass in a new root element however this is usually handled by @@ -311,7 +319,7 @@

.svg([svgElement])

however this is usually handled by dc internally. Resetting the svg element on a chart outside of dc internals may have unexpected consequences.

.resetSvg()

-

Remove the chart's SVG elements from the dom and recreate the container SVG element.

+

Remove the chart’s SVG elements from the dom and recreate the container SVG element.

.filterPrinter([filterPrinterFunction])

Set or get the filter printer function. The filter printer function is used to generate human friendly text for filter value(s) associated with the chart instance. By default dc charts use a @@ -321,10 +329,10 @@

.turnOnControls() & .turnOffContro

Turn on/off optional control elements within the root element. dc currently supports the following html control elements.

    -
  • root.selectAll('.reset') - elements are turned on if the chart has an active filter. This type +
  • root.selectAll(‘.reset’) - elements are turned on if the chart has an active filter. This type of control element is usually used to store a reset link to allow user to reset filter on a certain chart. This element will be turned off automatically if the filter is cleared.
  • -
  • root.selectAll('.filter') elements are turned on if the chart has an active filter. The text +
  • root.selectAll(‘.filter’) elements are turned on if the chart has an active filter. The text content of this element is then replaced with the current filter value using the filter printer function. This type of element will be turned off automatically if the filter is cleared.
@@ -341,91 +349,96 @@

.redraw()

change in the underlying data dimension then calling this method will have no effect on the chart. Most chart interaction in dc will automatically trigger this method through internal events (in particular dc.redrawAll); therefore, you only need to -manually invoke this function if data is manipulated outside of dc's control (for example if +manually invoke this function if data is manipulated outside of dc’s control (for example if data is loaded in the background using crossfilter.add()).

.hasFilterHandler([function])

Set or get the has filter handler. The has filter handler is a function that checks to see if -the chart's current filters include a specific filter. Using a custom has filter handler allows +the chart’s current filters include a specific filter. Using a custom has filter handler allows you to change the way filters are checked for and replaced.

-
// default has filter handler
-function (filters, filter) {
-    if (filter === null || typeof(filter) === 'undefined') {
-        return filters.length > 0;
+
// default has filter handler
+function (filters, filter) {
+    if (filter === null || typeof(filter) === 'undefined') {
+        return filters.length > 0;
     }
-    return filters.some(function (f) {
-        return filter <= f && filter >= f;
+    return filters.some(function (f) {
+        return filter <= f && filter >= f;
     });
 }
 
-// custom filter handler (no-op)
-chart.hasFilterHandler(function(filters, filter) {
-    return false;
-});
+// custom filter handler (no-op) +chart.hasFilterHandler(function(filters, filter) { + return false; +}); +

.hasFilter([filter])

Check whether any active filter or a specific filter is associated with particular chart instance. This function is not chainable.

.removeFilterHandler([function])

Set or get the remove filter handler. The remove filter handler is a function that removes a -filter from the chart's current filters. Using a custom remove filter handler allows you to +filter from the chart’s current filters. Using a custom remove filter handler allows you to change how filters are removed or perform additional work when removing a filter, e.g. when using a filter server other than crossfilter.

Any changes should modify the filters array argument and return that array.

-
// default remove filter handler
-function (filters, filter) {
-    for (var i = 0; i < filters.length; i++) {
-        if (filters[i] <= filter && filters[i] >= filter) {
-            filters.splice(i, 1);
-            break;
+
// default remove filter handler
+function (filters, filter) {
+    for (var i = 0; i < filters.length; i++) {
+        if (filters[i] <= filter && filters[i] >= filter) {
+            filters.splice(i, 1);
+            break;
         }
     }
-    return filters;
+    return filters;
 }
 
-// custom filter handler (no-op)
-chart.removeFilterHandler(function(filters, filter) {
-    return filters;
-});
+// custom filter handler (no-op) +chart.removeFilterHandler(function(filters, filter) { + return filters; +}); +

.addFilterHandler([function])

Set or get the add filter handler. The add filter handler is a function that adds a filter to -the chart's filter list. Using a custom add filter handler allows you to change the way filters +the chart’s filter list. Using a custom add filter handler allows you to change the way filters are added or perform additional work when adding a filter, e.g. when using a filter server other than crossfilter.

Any changes should modify the filters array argument and return that array.

-
// default add filter handler
-function (filters, filter) {
+
// default add filter handler
+function (filters, filter) {
     filters.push(filter);
-    return filters;
-}
+    return filters;
+}
 
-// custom filter handler (no-op)
-chart.addFilterHandler(function(filters, filter) {
-    return filters;
-});
+// custom filter handler (no-op) +chart.addFilterHandler(function(filters, filter) { + return filters; +}); +

.resetFilterHandler([function])

Set or get the reset filter handler. The reset filter handler is a function that resets the -chart's filter list by returning a new list. Using a custom reset filter handler allows you to +chart’s filter list by returning a new list. Using a custom reset filter handler allows you to change the way filters are reset, or perform additional work when resetting the filters, e.g. when using a filter server other than crossfilter.

This function should return an array.

-
// default remove filter handler
-function (filters) {
-    return [];
-}
+
// default remove filter handler
+function (filters) {
+    return [];
+}
 
-// custom filter handler (no-op)
-chart.resetFilterHandler(function(filters) {
-    return filters;
-});
+// custom filter handler (no-op) +chart.resetFilterHandler(function(filters) { + return filters; +}); +

.filter([filterValue])

Filter the chart by the given value or return the current filter if the input parameter is missing.

-
// filter by a single string
-chart.filter('Sunday');
-// filter by a single age
-chart.filter(18);
+
// filter by a single string
+chart.filter('Sunday');
+// filter by a single age
+chart.filter(18);
+

.filters()

Returns all current filters. This method does not perform defensive cloning of the internal filter array before returning, therefore any modification of the returned array will effect the -chart's internal filter storage.

+chart’s internal filter storage.

.onClick(datum)

This function is passed to d3 as the onClick handler for each chart. The default behavior is to filter on the clicked datum (passed to the callback) and redraw the chart group.

@@ -433,44 +446,48 @@

.filterHandler([function])

Set or get the filter handler. The filter handler is a function that performs the filter action on a specific dimension. Using a custom filter handler allows you to perform additional logic before or after filtering.

-
// default filter handler
-function(dimension, filter){
-    dimension.filter(filter); // perform filtering
-    return filter; // return the actual filter value
+
// default filter handler
+function(dimension, filter){
+    dimension.filter(filter); // perform filtering
+    return filter; // return the actual filter value
 }
 
-// custom filter handler
-chart.filterHandler(function(dimension, filter){
-    var newFilter = filter + 10;
-    dimension.filter(newFilter);
-    return newFilter; // set the actual filter value to the new value
-});
+// custom filter handler +chart.filterHandler(function(dimension, filter){ + var newFilter = filter + 10; + dimension.filter(newFilter); + return newFilter; // set the actual filter value to the new value +}); +

.keyAccessor([keyAccessorFunction])

Set or get the key accessor function. The key accessor function is used to retrieve the key value from the crossfilter group. Key values are used differently in different charts, for example keys correspond to slices in a pie chart and x axis positions in a grid coordinate chart.

-
// default key accessor
-chart.keyAccessor(function(d) { return d.key; });
-// custom key accessor for a multi-value crossfilter reduction
-chart.keyAccessor(function(p) { return p.value.absGain; });
+
// default key accessor
+chart.keyAccessor(function(d) { return d.key; });
+// custom key accessor for a multi-value crossfilter reduction
+chart.keyAccessor(function(p) { return p.value.absGain; });
+

.valueAccessor([valueAccessorFunction])

Set or get the value accessor function. The value accessor function is used to retrieve the value from the crossfilter group. Group values are used differently in different charts, for example values correspond to slice sizes in a pie chart and y axis positions in a grid coordinate chart.

-
// default value accessor
-chart.valueAccessor(function(d) { return d.value; });
-// custom value accessor for a multi-value crossfilter reduction
-chart.valueAccessor(function(p) { return p.value.percentageGain; });
+
// default value accessor
+chart.valueAccessor(function(d) { return d.value; });
+// custom value accessor for a multi-value crossfilter reduction
+chart.valueAccessor(function(p) { return p.value.percentageGain; });
+

.label([labelFunction])

Set or get the label function. The chart class will use this function to render labels for each child element in the chart, e.g. slices in a pie chart or bubbles in a bubble chart. Not every chart supports the label function for example bar chart and line chart do not use this function at all.

-
// default label function just return the key
-chart.label(function(d) { return d.key; });
-// label function has access to the standard d3 data binding and can get quite complicated
-chart.label(function(d) { return d.data.key + '(' + Math.floor(d.data.value / all.value() * 100) + '%)'; });
+
// default label function just return the key
+chart.label(function(d) { return d.key; });
+// label function has access to the standard d3 data binding and can get quite complicated
+chart.label(function(d) { return d.data.key + '(' + Math.floor(d.data.value / all.value() * 100) + '%)'; });
+

.renderLabel(boolean)

Turn on/off label rendering

.title([titleFunction])

@@ -479,16 +496,17 @@

.title([titleFunction])

in a pie chart or a bubble in a bubble chart. Almost every chart supports the title function; however in grid coordinate charts you need to turn off the brush in order to see titles, because otherwise the brush layer will block tooltip triggering.

-
// default title function just return the key
-chart.title(function(d) { return d.key + ': ' + d.value; });
-// title function has access to the standard d3 data binding and can get quite complicated
-chart.title(function(p) {
-    return p.key.getFullYear()
-        + '\n'
-        + 'Index Gain: ' + numberFormat(p.value.absGain) + '\n'
-        + 'Index Gain in Percentage: ' + numberFormat(p.value.percentageGain) + '%\n'
-        + 'Fluctuation / Index Ratio: ' + numberFormat(p.value.fluctuationPercentage) + '%';
-});
+
// default title function just return the key
+chart.title(function(d) { return d.key + ': ' + d.value; });
+// title function has access to the standard d3 data binding and can get quite complicated
+chart.title(function(p) {
+    return p.key.getFullYear()
+        + '\n'
+        + 'Index Gain: ' + numberFormat(p.value.absGain) + '\n'
+        + 'Index Gain in Percentage: ' + numberFormat(p.value.percentageGain) + '%\n'
+        + 'Fluctuation / Index Ratio: ' + numberFormat(p.value.fluctuationPercentage) + '%';
+});
+

.renderTitle(boolean)

Turn on/off title rendering, or return the state of the render title flag if no arguments are given.

@@ -498,15 +516,16 @@

.renderlet(renderletFunction)

right after the chart finishes its own drawing routine, giving you a way to modify the svg elements. Renderlet functions take the chart instance as the only input parameter and you can use the dc API or use raw d3 to achieve pretty much any effect.

-

@Deprecated - Use Listeners with a 'renderlet' prefix +

@Deprecated - Use Listeners with a ‘renderlet’ prefix Generates a random key for the renderlet, which makes it hard for removal.

-
// renderlet function
-chart.renderlet(function(chart){
-    // mix of dc API and d3 manipulation
-    chart.select('g.y').style('display', 'none');
-    // its a closure so you can also access other chart variable available in the closure scope
+
// renderlet function
+chart.renderlet(function(chart){
+    // mix of dc API and d3 manipulation
+    chart.select('g.y').style('display', 'none');
+    // its a closure so you can also access other chart variable available in the closure scope
     moveChart.filter(chart.filter());
-});
+}); +

.chartGroup([group])

Get or set the chart group to which this chart belongs. Chart groups are rendered or redrawn together since it is expected they share the same underlying crossfilter data set.

@@ -519,30 +538,31 @@

.expireCache()

.legend([dc.legend])

Attach a dc.legend widget to this chart. The legend widget will automatically draw legend labels based on the color setting and names associated with each group.

-
chart.legend(dc.legend().x(400).y(10).itemHeight(13).gap(5))
+
chart.legend(dc.legend().x(400).y(10).itemHeight(13).gap(5))
+

.chartID()

Returns the internal numeric ID of the chart.

.options(optionsObject)

Set chart options using a configuration object. Each key in the object will cause the method of the same name to be called with the value to set that attribute for the chart.

Example:

-
chart.options({dimension: myDimension, group: myGroup});
-

Listeners

+
chart.options({dimension: myDimension, group: myGroup});
+

Listeners

All dc chart instance supports the following listeners.

-

.on('renderlet', function(chart, filter){...})

+

.on(‘renderlet’, function(chart, filter){…})

This listener function will be invoked after transitions after redraw and render. Replaces the deprecated .renderlet() method.

-

.on('preRender', function(chart){...})

+

.on(‘preRender’, function(chart){…})

This listener function will be invoked before chart rendering.

-

.on('postRender', function(chart){...})

-

This listener function will be invoked after chart finish rendering including all renderlets' logic.

-

.on('preRedraw', function(chart){...})

+

.on(‘postRender’, function(chart){…})

+

This listener function will be invoked after chart finish rendering including all renderlets’ logic.

+

.on(‘preRedraw’, function(chart){…})

This listener function will be invoked before chart redrawing.

-

.on('postRedraw', function(chart){...})

-

This listener function will be invoked after chart finish redrawing including all renderlets' logic.

-

.on('filtered', function(chart, filter){...})

+

.on(‘postRedraw’, function(chart){…})

+

This listener function will be invoked after chart finish redrawing including all renderlets’ logic.

+

.on(‘filtered’, function(chart, filter){…})

This listener function will be invoked after a filter is applied, added or removed.

-

.on('zoomed', function(chart, filter){...})

+

.on(‘zoomed’, function(chart, filter){…})

This listener function will be invoked after a zoom is triggered.

Margin Mixin

Margin is a mixin that provides margin utility functions for both the Row Chart and Coordinate Grid @@ -551,9 +571,10 @@

.margins([margins])

Get or set the margins for a particular coordinate grid chart instance. The margins is stored as an associative Javascript array. Default margins: {top: 10, right: 50, bottom: 30, left: 30}.

The margins can be accessed directly from the getter.

-
var leftMargin = chart.margins().left; // 30 by default
-chart.margins().left = 50;
-leftMargin = chart.margins().left; // now 50
+
var leftMargin = chart.margins().left; // 30 by default
+chart.margins().left = 50;
+leftMargin = chart.margins().left; // now 50
+

Color Mixin

The Color Mixin is an abstract chart functional class providing universal coloring support as a mix-in for any concrete chart implementation.

@@ -561,16 +582,17 @@

.colors([colorScale])

Retrieve current color scale or set a new color scale. This methods accepts any function that operates like a d3 scale. If not set the default is d3.scale.category20c().

-
// alternate categorical scale
+
// alternate categorical scale
 chart.colors(d3.scale.category20b());
 
-// ordinal scale
-chart.colors(d3.scale.ordinal().range(['red','green','blue']));
-// convenience method, the same as above
-chart.ordinalColors(['red','green','blue']);
+// ordinal scale
+chart.colors(d3.scale.ordinal().range(['red','green','blue']));
+// convenience method, the same as above
+chart.ordinalColors(['red','green','blue']);
 
-// set a linear scale
-chart.linearColors(["#4575b4", "#ffffbf", "#a50026"]);
+// set a linear scale +chart.linearColors(["#4575b4", "#ffffbf", "#a50026"]); +

.ordinalColors(r)

Convenience method to set the color scale to d3.scale.ordinal with range r.

.linearColors(r)

@@ -579,10 +601,11 @@

.colorAccessor([colorAccessorFunc

Set or the get color accessor function. This function will be used to map a data point in a crossfilter group to a color value on the color scale. The default function uses the key accessor.

-
// default index based color accessor
-.colorAccessor(function (d, i){return i;})
-// color accessor for a multi-value crossfilter reduction
-.colorAccessor(function (d){return d.value.absGain;})
+
// default index based color accessor
+.colorAccessor(function (d, i){return i;})
+// color accessor for a multi-value crossfilter reduction
+.colorAccessor(function (d){return d.value.absGain;})
+

.colorDomain([domain])

Set or get the current domain for the color mapping function. The domain must be supplied as an array.

@@ -590,7 +613,7 @@

.colorDomain([domain])

set by .colors.

.calculateColorDomain()

Set the domain by determining the min and max values as retrieved by .colorAccessor over the -chart's dataset.

+chart’s dataset.

.getColor(d [, i])

Get the color for the datum d and counter i. This is used internally by charts to retrieve a color.

.colorCalculator([value])

@@ -623,10 +646,11 @@

.x([xScale]) - mandatory

Get or set the x scale. The x scale can be any d3 quantitive scale or ordinal scale.

-
// set x to a linear scale
-chart.x(d3.scale.linear().domain([-2500, 2500]))
-// set x to a time scale to generate histogram
-chart.x(d3.time.scale().domain([new Date(1985, 0, 1), new Date(2012, 11, 31)]))
+
// set x to a linear scale
+chart.x(d3.scale.linear().domain([-2500, 2500]))
+// set x to a time scale to generate histogram
+chart.x(d3.time.scale().domain([new Date(1985, 0, 1), new Date(2012, 11, 31)]))
+

.xUnits([xUnits function])

Set or get the xUnits function. The coordinate grid chart uses the xUnits function to calculate the number of data projections on x axis such as the number of bars for a bar chart or the @@ -636,32 +660,35 @@

.xUnits([xUnits function])

d3.time.years are all valid xUnits function. dc.js also provides a few units function, see the Utilities section for a list of built-in units functions. The default xUnits function is dc.units.integers.

-
// set x units to count days
-chart.xUnits(d3.time.days);
-// set x units to count months
-chart.xUnits(d3.time.months);
+
// set x units to count days
+chart.xUnits(d3.time.days);
+// set x units to count months
+chart.xUnits(d3.time.months);
+

A custom xUnits function can be used as long as it follows the following interface:

-
// units in integer
-function(start, end, xDomain) {
-    // simply calculates how many integers in the domain
-    return Math.abs(end - start);
+
// units in integer
+function(start, end, xDomain) {
+    // simply calculates how many integers in the domain
+    return Math.abs(end - start);
 };
 
-// fixed units
-function(start, end, xDomain) {
-    // be aware using fixed units will disable the focus/zoom ability on the chart
-    return 1000;
-};
+// fixed units +function(start, end, xDomain) { + // be aware using fixed units will disable the focus/zoom ability on the chart + return 1000; +}; +

.xAxis([xAxis])

Set or get the x axis used by a particular coordinate grid chart instance. This function is most useful when x axis customization is required. The x axis in dc.js is an instance of a d3 axis object; therefore it supports any valid d3 axis manipulation. Caution: The x axis is usually generated internally by dc; resetting it may cause unexpected results.

-
// customize x axis tick format
-chart.xAxis().tickFormat(function(v) {return v + '%';});
-// customize x axis tick values
-chart.xAxis().tickValues([0, 100, 200, 300]);
+
// customize x axis tick format
+chart.xAxis().tickFormat(function(v) {return v + '%';});
+// customize x axis tick values
+chart.xAxis().tickValues([0, 100, 200, 300]);
+

.elasticX([boolean])

Turn on/off elastic x axis behavior. If x axis elasticity is turned on, then the grid chart will attempt to recalculate the x axis range whenever a redraw event is triggered.

@@ -669,7 +696,7 @@

.xAxisPadding([padding])

Set or get x axis padding for the elastic x axis. The padding will be added to both end of the x axis if elasticX is turned on; otherwise it is ignored.

    -
  • padding can be an integer or percentage in string (e.g. '10%'). Padding can be applied to +
  • padding can be an integer or percentage in string (e.g. ‘10%’). Padding can be applied to number or date x axes. When padding a date axis, an integer represents number of days being padded and a percentage string will be treated the same as an integer.
@@ -699,10 +726,11 @@

.yAxis([yAxis])

object; therefore it supports any valid d3 axis manipulation. Caution: The y axis is usually generated internally by dc; resetting it may cause unexpected results.

-
// customize y axis tick format
-chart.yAxis().tickFormat(function(v) {return v + '%';});
-// customize y axis tick values
-chart.yAxis().tickValues([0, 100, 200, 300]);
+
// customize y axis tick format
+chart.yAxis().tickFormat(function(v) {return v + '%';});
+// customize y axis tick values
+chart.yAxis().tickValues([0, 100, 200, 300]);
+

.elasticY([boolean])

Turn on/off elastic y axis behavior. If y axis elasticity is turned on, then the grid chart will attempt to recalculate the y axis range whenever a redraw event is triggered.

@@ -722,15 +750,16 @@

.yAxisPadding([padding])

Set or get y axis padding for the elastic y axis. The padding will be added to the top of the y axis if elasticY is turned on; otherwise it is ignored.

    -
  • padding can be an integer or percentage in string (e.g. '10%'). Padding can be applied to +
  • padding can be an integer or percentage in string (e.g. ‘10%’). Padding can be applied to number or date axes. When padding a date axis, an integer represents number of days being padded and a percentage string will be treated the same as an integer.

.round([rounding function])

Set or get the rounding function used to quantize the selection when brushing is enabled.

-
// set x unit round to by month, this will make sure range selection brush will
-// select whole months
-chart.round(d3.time.month.round);
+
// set x unit round to by month, this will make sure range selection brush will
+// select whole months
+chart.round(d3.time.month.round);
+

.clipPadding([padding])

Get or set the padding in pixels for the clip path. Once set padding will be applied evenly to the top, left, right, and bottom when the clip path is generated. If set to zero, the clip area @@ -740,13 +769,14 @@

.focus([range])

2 elements ([start, end]) defining a range in the x domain. If the range is not given or set to null, then the zoom will be reset. For focus to work elasticX has to be turned off; otherwise focus will be ignored.

-
chart.renderlet(function(chart){
-    // smooth the rendering through event throttling
-    dc.events.trigger(function(){
-        // focus some other chart to the range selected by user on this chart
+
chart.renderlet(function(chart){
+    // smooth the rendering through event throttling
+    dc.events.trigger(function(){
+        // focus some other chart to the range selected by user on this chart
         someOtherChart.focus(chart.filter());
     });
-})
+}) +

.brushOn([boolean])

Turn on/off the brush-based range filter. When brushing is on then user can drag the mouse across a chart with a quantitative scale to perform range filtering based on the extent of the @@ -762,10 +792,11 @@

.stack(group[, name, accessor])

For example, in a stacked bar chart, the bars of each stack will be positioned using the same set of keys on the x axis, while stacked vertically. If name is specified then it will be used to generate the legend label.

-
// stack group using default accessor
-chart.stack(valueSumGroup)
-// stack group using custom accessor
-.stack(avgByDayGroup, function(d){return d.value.avgByDay;});
+
// stack group using default accessor
+chart.stack(valueSumGroup)
+// stack group using custom accessor
+.stack(avgByDayGroup, function(d){return d.value.avgByDay;});
+

.hidableStacks([boolean])

Allow named stacks to be hidden or shown by clicking on legend items. This does not affect the behavior of hideStack or showStack.

@@ -782,11 +813,12 @@

.title([stackName], [titleFunction])

If the first argument is a stack name, the title function will get or set the title for that stack. If stackName is not provided, the first stack is implied.

-
// set a title function on 'first stack'
-chart.title('first stack', function(d) { return d.key + ': ' + d.value; });
-// get a title function from 'second stack'
-var secondTitleFunction = chart.title('second stack');
-);
+
// set a title function on 'first stack'
+chart.title('first stack', function(d) { return d.key + ': ' + d.value; });
+// get a title function from 'second stack'
+var secondTitleFunction = chart.title('second stack');
+);
+

.stackLayout([layout])

Gets or sets the stack layout algorithm, which computes a baseline for each stack and propagates it to the next. The default is @@ -806,18 +838,19 @@

.othersGrouper([grouperFunction])

Get or set the grouper function that will perform the insertion of data for the Others slice if the slices cap is specified. If set to a falsy value, no others will be added. By default the grouper function computes the sum of all values below the cap.

-
chart.othersGrouper(function (data) {
-    // compute the value for others, presumably the sum of all values below the cap
-    var othersSum  = yourComputeOthersValueLogic(data)
+
chart.othersGrouper(function (data) {
+    // compute the value for others, presumably the sum of all values below the cap
+    var othersSum  = yourComputeOthersValueLogic(data)
 
-    // the keys are needed to properly filter when the others element is clicked
-    var othersKeys = yourComputeOthersKeysArrayLogic(data);
+    // the keys are needed to properly filter when the others element is clicked
+    var othersKeys = yourComputeOthersKeysArrayLogic(data);
 
-    // add the others row to the dataset
-    data.push({'key': 'Others', 'value': othersSum, 'others': othersKeys });
+    // add the others row to the dataset
+    data.push({'key': 'Others', 'value': othersSum, 'others': othersKeys });
 
-    return data;
-});
+ return data; +}); +

Bubble Mixin

Includes: Color Mixin

This Mixin provides reusable functionalities for any chart that needs to visualize data using bubbles.

@@ -830,7 +863,7 @@

.radiusValueAccessor([radiusV the r scale to the actual bubble radius. This allows you to encode a data dimension using bubble size.

.minRadiusWithLabel([radius])

-

Get or set the minimum radius for label rendering. If a bubble's radius is less than this value +

Get or set the minimum radius for label rendering. If a bubble’s radius is less than this value then no label will be rendered. Default: 10

.maxBubbleRelativeSize([relativeSize])

Get or set the maximum relative size of a bubble to the length of x axis. This value is useful @@ -853,15 +886,16 @@

Pie Chart

a dom block element such as a div; or a dom element or d3 selection.

  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart's group.

    +Interaction with a chart will only trigger events and redraws within the chart’s group.

  • Returns: A newly created pie chart instance

    -
    // create a pie chart under #chart-container1 element using the default global chart group
    -var chart1 = dc.pieChart('#chart-container1');
    -// create a pie chart under #chart-container2 element using chart group A
    -var chart2 = dc.pieChart('#chart-container2', 'chartGroupA');
    +
    // create a pie chart under #chart-container1 element using the default global chart group
    +var chart1 = dc.pieChart('#chart-container1');
    +// create a pie chart under #chart-container2 element using chart group A
    +var chart2 = dc.pieChart('#chart-container2', 'chartGroupA');
    +

    .slicesCap([cap])

    Get or set the maximum number of slices the pie chart will generate. The top slices are determined by value from high to low. Other slices exeeding the cap will be rolled up into one single Others slice. @@ -896,16 +930,17 @@

    Bar Chart

    If the bar chart is a sub-chart in a Composite Chart then pass in the parent composite chart instance.
  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart's group.
  • +Interaction with a chart will only trigger events and redraws within the chart’s group.

    Returns: A newly created bar chart instance

    -
    // create a bar chart under #chart-container1 element using the default global chart group
    -var chart1 = dc.barChart('#chart-container1');
    -// create a bar chart under #chart-container2 element using chart group A
    -var chart2 = dc.barChart('#chart-container2', 'chartGroupA');
    -// create a sub-chart under a composite parent chart
    -var chart3 = dc.barChart(compositeChart);
    +
    // create a bar chart under #chart-container1 element using the default global chart group
    +var chart1 = dc.barChart('#chart-container1');
    +// create a bar chart under #chart-container2 element using chart group A
    +var chart2 = dc.barChart('#chart-container2', 'chartGroupA');
    +// create a sub-chart under a composite parent chart
    +var chart3 = dc.barChart(compositeChart);
    +

    .centerBar(boolean)

    Whether the bar chart will render each bar centered around the data position on x axis. Default: false

    .barPadding([padding])

    @@ -925,10 +960,11 @@

    .alwaysUseRounding([boolean])

    Set or get whether rounding is enabled when bars are centered. Default: false. If false, using rounding with centered bars will result in a warning and rounding will be ignored. This flag has no effect if bars are not centered.

    -

    When using standard d3.js rounding methods, the brush often doesn't align correctly with +

    When using standard d3.js rounding methods, the brush often doesn’t align correctly with centered bars since the bars are offset. The rounding function must add an offset to compensate, such as in the following example.

    -
    chart.round(function(n) {return Math.floor(n)+0.5});
    +
    chart.round(function(n) {return Math.floor(n)+0.5});
    +

    Line Chart

    Includes Stack Mixin, Coordinate Grid Mixin

    Concrete line/area chart implementation.

    @@ -947,17 +983,18 @@

    Line Chart

    chart instance.

  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart's group.

    +Interaction with a chart will only trigger events and redraws within the chart’s group.

  • Returns: A newly created line chart instance

    -
    // create a line chart under #chart-container1 element using the default global chart group
    -var chart1 = dc.lineChart('#chart-container1');
    -// create a line chart under #chart-container2 element using chart group A
    -var chart2 = dc.lineChart('#chart-container2', 'chartGroupA');
    -// create a sub-chart under a composite parent chart
    -var chart3 = dc.lineChart(compositeChart);
    +
    // create a line chart under #chart-container1 element using the default global chart group
    +var chart1 = dc.lineChart('#chart-container1');
    +// create a line chart under #chart-container2 element using chart group A
    +var chart2 = dc.lineChart('#chart-container2', 'chartGroupA');
    +// create a sub-chart under a composite parent chart
    +var chart3 = dc.lineChart(compositeChart);
    +

    .interpolate([value])

    Gets or sets the interpolator to use for lines drawn, by string name, allowing e.g. step functions, splines, and cubic interpolation. This is passed to @@ -979,10 +1016,11 @@

    .defined([value])

    custom reduce functions to get this to work, depending on your data. See https://github.com/dc-js/dc.js/issues/615#issuecomment-49089248

    .dashStyle([array])

    -

    Set the line's d3 dashstyle. This value becomes the 'stroke-dasharray' of line. Defaults to empty +

    Set the line’s d3 dashstyle. This value becomes the ‘stroke-dasharray’ of line. Defaults to empty array (solid line).

    -
     // create a Dash Dot Dot Dot
    - chart.dashStyle([3,1,1,1]);
    +
     // create a Dash Dot Dot Dot
    + chart.dashStyle([3,1,1,1]);
    +

    .renderArea([boolean])

    Get or set render area flag. If the flag is set to true then the chart will render the area beneath each line and the line chart effectively becomes an area chart.

    @@ -999,15 +1037,15 @@

    .renderDataPoints([options])

    If options is falsy, it disables data point rendering.

    If no options are provided, the current options values are instead returned.

    Example:

    -
    chart.renderDataPoints({radius: 2, fillOpacity: 0.8, strokeOpacity: 0.8})
    -

    Data Count Widget

    +
    chart.renderDataPoints({radius: 2, fillOpacity: 0.8, strokeOpacity: 0.8})
    +

    Data Count Widget

    Includes: Base Mixin

    The data count widget is a simple widget designed to display the number of records selected by the current filters out of the total number of records in the data set. Once created the data count widget will automatically update the text content of the following elements under the parent element.

      -
    • '.total-count' - total number of records
    • -
    • '.filter-count' - number of records matched by the current filters
    • +
    • ‘.total-count’ - total number of records
    • +
    • ‘.filter-count’ - number of records matched by the current filters

    Examples:

      @@ -1028,12 +1066,13 @@

      .dimension(allData) - mandatoryFor the data count widget the only valid dimension is the entire data set.

      .group(groupAll) - mandatory

      For the data count widget the only valid group is the group returned by dimension.groupAll().

      -
      var ndx = crossfilter(data);
      -var all = ndx.groupAll();
      +
      var ndx = crossfilter(data);
      +var all = ndx.groupAll();
       
      -dc.dataCount('.dc-data-count')
      +dc.dataCount('.dc-data-count')
          .dimension(ndx)
      -   .group(all);
      + .group(all); +

      html([object])

      Gets or sets an optional object specifying HTML templates to use depending how many items are selected. The text %total-count will replaced with the total number of records, and the text @@ -1043,12 +1082,14 @@

      html([object])

    • some: HTML template to use if not all items are selected
    counter.html({
    -    some: '%filter-count out of %total-count records selected',
    -    all: 'All records selected. Click on charts to apply filters'
    -})
    + some: '%filter-count out of %total-count records selected', + all: 'All records selected. Click on charts to apply filters' +}) +

    formatNumber([formatter])

    Gets or sets an optional function to format the filter count and total count.

    -
    counter.formatNumber(d3.format('.2g'))
    +
    counter.formatNumber(d3.format('.2g'))
    +

    Data Table Widget

    Includes: Base Mixin

    The data table is a simple widget designed to list crossfilter focused data set (rows being @@ -1065,7 +1106,7 @@

    Data Table Widget

    a dom block element such as a div; or a dom element or d3 selection.

  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart's group.

    +Interaction with a chart will only trigger events and redraws within the chart’s group.

  • Returns: @@ -1079,23 +1120,24 @@

    .columns([columnFunctionArray])

    argument d which represents a row in the data set. The return value of these functions will be used directly to generate table content for each cell. However, this method requires the .html table entry to have a fixed set of column headers.

    -
        chart.columns([
    -        function(d) {
    -            return d.date;
    +
        chart.columns([
    +        function(d) {
    +            return d.date;
             },
    -        function(d) {
    -            return d.open;
    +        function(d) {
    +            return d.open;
             },
    -        function(d) {
    -            return d.close;
    +        function(d) {
    +            return d.close;
             },
    -        function(d) {
    -            return numberFormat(d.close - d.open);
    +        function(d) {
    +            return numberFormat(d.close - d.open);
             },
    -        function(d) {
    -            return d.volume;
    +        function(d) {
    +            return d.volume;
             }
    -    ]);
    + ]); +

    The next example shows you can simply list the data (d) content directly without specifying it as a function, except where necessary (ie, computed columns). Note the data element accessor name is capitalized when displayed in the table. You can @@ -1103,56 +1145,60 @@

    .columns([columnFunctionArray])

    Object = [Label, Fn] method as shown below. You may wish to override the following two functions, which are internally used to translate the column information or function into a displayed header. The first one -is used on the simple "string" column specifier, the second is used to transform the +is used on the simple “string” column specifier, the second is used to transform the String(fn) into something displayable. For the Stock example, the function for Change -becomes a header of 'd.close - d.open'. +becomes a header of ‘d.close - d.open’. _chart._doColumnHeaderCapitalize _chart._doColumnHeaderFnToString You may use your own Object definition, however you must then override _chart._doColumnHeaderFormat , _chart._doColumnValueFormat Be aware that fields without numberFormat specification will be displayed just as they are stored in the data, unformatted.

        chart.columns([
    -            "date",    // d["date"], ie, a field accessor; capitalized automatically
    -            "open",    // ...
    -            "close",   // ...
    -            ["Change", // Specify an Object = [Label, Fn]
    -                  function (d) {
    -                      return numberFormat(d.close - d.open);
    +            "date",    // d["date"], ie, a field accessor; capitalized automatically
    +            "open",    // ...
    +            "close",   // ...
    +            ["Change", // Specify an Object = [Label, Fn]
    +                  function (d) {
    +                      return numberFormat(d.close - d.open);
                       }],
    -            "volume"   // d["volume"], ie, a field accessor; capitalized automatically
    -    ]);
    + "volume" // d["volume"], ie, a field accessor; capitalized automatically + ]); +

    A third example, where all fields are specified using the Object = [Label, Fn] method.

        chart.columns([
    -        ["Date",   // Specify an Object = [Label, Fn]
    -         function (d) {
    -             return d.date;
    +        ["Date",   // Specify an Object = [Label, Fn]
    +         function (d) {
    +             return d.date;
              }],
    -        ["Open",
    -         function (d) {
    -             return numberFormat(d.open);
    +        ["Open",
    +         function (d) {
    +             return numberFormat(d.open);
              }],
    -        ["Close",
    -         function (d) {
    -             return numberFormat(d.close);
    +        ["Close",
    +         function (d) {
    +             return numberFormat(d.close);
              }],
    -        ["Change",
    -         function (d) {
    -             return numberFormat(d.close - d.open);
    +        ["Change",
    +         function (d) {
    +             return numberFormat(d.close - d.open);
              }],
    -        ["Volume",
    -         function (d) {
    -             return d.volume;
    +        ["Volume",
    +         function (d) {
    +             return d.volume;
              }]
    -    ]);
    + ]); +

    .sortBy([sortByFunction])

    Get or set sort-by function. This function works as a value accessor at row level and returns a particular field to be sorted by. Default value: identity function

    -
       chart.sortBy(function(d) {
    -        return d.date;
    -    });
    +
       chart.sortBy(function(d) {
    +        return d.date;
    +    });
    +

    .order([order])

    Get or set sort order. Default value: d3.ascending

    -
        chart.order(d3.descending);
    +
        chart.order(d3.descending);
    +

    Data Grid Widget

    Includes: Base Mixin

    Data grid is a simple widget designed to list the filtered records, providing @@ -1170,31 +1216,35 @@

    dc.dataGrid(parent[, chartGroup])

    a dom block element such as a div; or a dom element or d3 selection.

  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart's group.

    +Interaction with a chart will only trigger events and redraws within the chart’s group.

  • Returns: A newly created data grid widget instance

    .size([size])

    Get or set the grid size which determines the number of items displayed by the widget.

    -

    .html( function (data) { return ''; })

    +

    .html( function (data) { return ‘‘; })

    Get or set the function that formats an item. The data grid widget uses a function to generate dynamic html. Use your favourite templating engine or generate the string directly.

    -
    chart.html(function (d) { return '<div class='item '+data.exampleCategory+''>'+data.exampleString+'</div>';});
    -

    .htmlGroup( function (data) { return ''; })

    +
    chart.html(function (d) { return '<div class='item '+data.exampleCategory+''>'+data.exampleString+'</div>';});
    +
    +

    .htmlGroup( function (data) { return ‘‘; })

    Get or set the function that formats a group label.

    -
    chart.htmlGroup (function (d) { return '<h2>'.d.key . 'with ' . d.values.length .' items</h2>'});
    +
    chart.htmlGroup (function (d) { return '<h2>'.d.key . 'with ' . d.values.length .' items</h2>'});
    +

    .sortBy([sortByFunction])

    Get or set sort-by function. This function works as a value accessor at the item level and returns a particular field to be sorted. by. Default: identity function

    -
    chart.sortBy(function(d) {
    -    return d.date;
    -});
    +
    chart.sortBy(function(d) {
    +    return d.date;
    +});
    +

    .order([order])

    Get or set sort order function. Default value: d3.ascending

    -
    chart.order(d3.descending);
    +
    chart.order(d3.descending);
    +

    Bubble Chart

    Includes: Bubble Mixin, Coordinate Grid Mixin

    A concrete implementation of a general purpose bubble chart that allows data visualization using the @@ -1217,14 +1267,15 @@

    Bubble Chart

    d3 single selector specifying a dom block element such as a div; or a dom element or d3 selection.
  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart's group.
  • +Interaction with a chart will only trigger events and redraws within the chart’s group.

    Returns: A newly created bubble chart instance

    -
    // create a bubble chart under #chart-container1 element using the default global chart group
    -var bubbleChart1 = dc.bubbleChart('#chart-container1');
    -// create a bubble chart under #chart-container2 element using chart group A
    -var bubbleChart2 = dc.bubbleChart('#chart-container2', 'chartGroupA');
    +
    // create a bubble chart under #chart-container1 element using the default global chart group
    +var bubbleChart1 = dc.bubbleChart('#chart-container1');
    +// create a bubble chart under #chart-container2 element using chart group A
    +var bubbleChart2 = dc.bubbleChart('#chart-container2', 'chartGroupA');
    +

    .elasticRadius([boolean])

    Turn on or off the elastic bubble radius feature, or return the value of the flag. If this feature is turned on, then bubble radii will be automatically rescaled to fit the chart better.

    @@ -1241,14 +1292,15 @@

    dc.compositeChart(parent[, chartGr d3 single selector specifying a dom block element such as a div; or a dom element or d3 selection.
  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart's group.
  • +Interaction with a chart will only trigger events and redraws within the chart’s group.

    Returns: A newly created composite chart instance

    -
    // create a composite chart under #chart-container1 element using the default global chart group
    -var compositeChart1 = dc.compositeChart('#chart-container1');
    -// create a composite chart under #chart-container2 element using chart group A
    -var compositeChart2 = dc.compositeChart('#chart-container2', 'chartGroupA');
    +
    // create a composite chart under #chart-container1 element using the default global chart group
    +var compositeChart1 = dc.compositeChart('#chart-container1');
    +// create a composite chart under #chart-container2 element using chart group A
    +var compositeChart2 = dc.compositeChart('#chart-container2', 'chartGroupA');
    +

    .useRightAxisGridLines(bool)

    Get or set whether to draw gridlines from the right y axis. Drawing from the left y axis is the default behavior. This option is only respected when subcharts with both left and right y-axes @@ -1260,24 +1312,25 @@

    .rightYAxisLabel([labelText])

    Set or get the right y axis label.

    .compose(subChartArray)

    Combine the given charts into one single composite coordinate grid chart.

    -
    // compose the given charts in the array into one single composite chart
    +
    // compose the given charts in the array into one single composite chart
     moveChart.compose([
    -    // when creating sub-chart you need to pass in the parent chart
    +    // when creating sub-chart you need to pass in the parent chart
         dc.lineChart(moveChart)
    -        .group(indexAvgByMonthGroup) // if group is missing then parent's group will be used
    -        .valueAccessor(function (d){return d.value.avg;})
    -        // most of the normal functions will continue to work in a composed chart
    -        .renderArea(true)
    -        .stack(monthlyMoveGroup, function (d){return d.value;})
    -        .title(function (d){
    -            var value = d.value.avg?d.value.avg:d.value;
    -            if(isNaN(value)) value = 0;
    -            return dateFormat(d.key) + '\n' + numberFormat(value);
    -        }),
    -    dc.barChart(moveChart)
    -        .group(volumeByMonthGroup)
    -        .centerBar(true)
    -]);
    + .group(indexAvgByMonthGroup) // if group is missing then parent's group will be used + .valueAccessor(function (d){return d.value.avg;}) + // most of the normal functions will continue to work in a composed chart + .renderArea(true) + .stack(monthlyMoveGroup, function (d){return d.value;}) + .title(function (d){ + var value = d.value.avg?d.value.avg:d.value; + if(isNaN(value)) value = 0; + return dateFormat(d.key) + '\n' + numberFormat(value); + }), + dc.barChart(moveChart) + .group(volumeByMonthGroup) + .centerBar(true) +]); +

    .children()

    Returns the child charts which are composed into the composite chart.

    .shareColors([boolean])

    @@ -1297,10 +1350,11 @@

    .rightYAxis([yAxis])

    object therefore it supports any valid d3 axis manipulation. Caution: The y axis is usually generated internally by dc; resetting it may cause unexpected results.

    -
    // customize y axis tick format
    -chart.rightYAxis().tickFormat(function (v) {return v + '%';});
    -// customize y axis tick values
    -chart.rightYAxis().tickValues([0, 100, 200, 300]);
    +
    // customize y axis tick format
    +chart.rightYAxis().tickFormat(function (v) {return v + '%';});
    +// customize y axis tick values
    +chart.rightYAxis().tickValues([0, 100, 200, 300]);
    +

    Series Chart

    Includes: Composite Chart

    A series chart is a chart that shows multiple series of data overlaid on one chart, where the @@ -1315,29 +1369,30 @@

    dc.seriesChart(parent[, chartGroup])< a dom block element such as a div; or a dom element or d3 selection.

  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart's group.

    +Interaction with a chart will only trigger events and redraws within the chart’s group.

  • Returns: A newly created series chart instance

    -
    // create a series chart under #chart-container1 element using the default global chart group
    -var seriesChart1 = dc.seriesChart("#chart-container1");
    -// create a series chart under #chart-container2 element using chart group A
    -var seriesChart2 = dc.seriesChart("#chart-container2", "chartGroupA");
    +
    // create a series chart under #chart-container1 element using the default global chart group
    +var seriesChart1 = dc.seriesChart("#chart-container1");
    +// create a series chart under #chart-container2 element using chart group A
    +var seriesChart2 = dc.seriesChart("#chart-container2", "chartGroupA");
    +

    .chart([function])

    Get or set the chart function, which generates the child charts. Default: dc.lineChart

    -
    // put interpolation on the line charts used for the series
    -chart.chart(function(c) { return dc.lineChart(c).interpolate('basis'); })
    -// do a scatter series chart
    -chart.chart(dc.scatterPlot)
    -

    .seriesAccessor([accessor])

    +
    // put interpolation on the line charts used for the series
    +chart.chart(function(c) { return dc.lineChart(c).interpolate('basis'); })
    +// do a scatter series chart
    +chart.chart(dc.scatterPlot)
    +

    .seriesAccessor([accessor])

    Get or set accessor function for the displayed series. Given a datum, this function should return the series that datum belongs to.

    .seriesSort([sortFunction])

    Get or set a function to sort the list of series by, given series values.

    Example:

    -
    chart.seriesSort(d3.descending);
    -

    .valueSort([sortFunction])

    +
    chart.seriesSort(d3.descending);
    +

    .valueSort([sortFunction])

    Get or set a function to sort each series values by. By default this is the key accessor which, for example, will ensure a lineChart series connects its points in increasing key/x order, rather than haphazardly.

    @@ -1358,15 +1413,16 @@

    Geo Choropleth Chart

    a dom block element such as a div; or a dom element or d3 selection.

  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart's group.

    +Interaction with a chart will only trigger events and redraws within the chart’s group.

  • Returns: A newly created choropleth chart instance

    -
    // create a choropleth chart under '#us-chart' element using the default global chart group
    -var chart1 = dc.geoChoroplethChart('#us-chart');
    -// create a choropleth chart under '#us-chart2' element using chart group A
    -var chart2 = dc.compositeChart('#us-chart2', 'chartGroupA');
    +
    // create a choropleth chart under '#us-chart' element using the default global chart group
    +var chart1 = dc.geoChoroplethChart('#us-chart');
    +// create a choropleth chart under '#us-chart2' element using chart group A
    +var chart2 = dc.compositeChart('#us-chart2', 'chartGroupA');
    +

    .overlayGeoJson(json, name, keyAccessor) - mandatory

    Use this function to insert a new GeoJson map layer. This function can be invoked multiple times if you have multiple GeoJson data layers to render on top of each other. If you overlay multiple @@ -1375,20 +1431,21 @@

    .overlayGeoJson(json,
    • json - GeoJson feed
    • name - name of the layer
    • -
    • keyAccessor - accessor function used to extract 'key' from the GeoJson data. The key extracted by +
    • keyAccessor - accessor function used to extract ‘key’ from the GeoJson data. The key extracted by this function should match the keys returned by the crossfilter groups.
    -
    // insert a layer for rendering US states
    -chart.overlayGeoJson(statesJson.features, 'state', function(d) {
    -    return d.properties.name;
    -});
    +
    // insert a layer for rendering US states
    +chart.overlayGeoJson(statesJson.features, 'state', function(d) {
    +    return d.properties.name;
    +});
    +

    .projection(projection)

    Set custom geo projection function. See the available d3 geo projection functions. Default value: albersUsa.

    .geoJsons()

    Returns all GeoJson layers currently registered with this chart. The returned array is a -reference to this chart's internal data structure, so any modification to this array will also -modify this chart's internal registration.

    +reference to this chart’s internal data structure, so any modification to this array will also +modify this chart’s internal registration.

    Returns an array of objects containing fields {name, data, accessor}

    .geoPath()

    Returns the d3.geo.path object used to @@ -1414,22 +1471,24 @@

    Bubble Overlay Chart

    a dom block element such as a div; or a dom element or d3 selection. off-screen. Typically this element should also be the parent of the underlying image.
  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart's group.
  • +Interaction with a chart will only trigger events and redraws within the chart’s group.

    Returns: A newly created bubble overlay chart instance

    -
    // create a bubble overlay chart on top of the '#chart-container1 svg' element using the default global chart group
    -var bubbleChart1 = dc.bubbleOverlayChart('#chart-container1').svg(d3.select('#chart-container1 svg'));
    -// create a bubble overlay chart on top of the '#chart-container2 svg' element using chart group A
    -var bubbleChart2 = dc.compositeChart('#chart-container2', 'chartGroupA').svg(d3.select('#chart-container2 svg'));
    +
    // create a bubble overlay chart on top of the '#chart-container1 svg' element using the default global chart group
    +var bubbleChart1 = dc.bubbleOverlayChart('#chart-container1').svg(d3.select('#chart-container1 svg'));
    +// create a bubble overlay chart on top of the '#chart-container2 svg' element using chart group A
    +var bubbleChart2 = dc.compositeChart('#chart-container2', 'chartGroupA').svg(d3.select('#chart-container2 svg'));
    +

    .svg(imageElement) - mandatory

    Set the underlying svg image element. Unlike other dc charts this chart will not generate a svg element; therefore the bubble overlay chart will not work if this function is not invoked. If the underlying image is a bitmap, then an empty svg will need to be created on top of the image.

    -
    // set up underlying svg element
    -chart.svg(d3.select('#chart svg'));
    +
    // set up underlying svg element
    +chart.svg(d3.select('#chart svg'));
    +

    .point(name, x, y) - mandatory

    -

    Set up a data point on the overlay. The name of a data point should match a specific 'key' among +

    Set up a data point on the overlay. The name of a data point should match a specific ‘key’ among data groups generated using keyAccessor. If a match is found (point name <-> data group key) then a bubble will be generated at the position specified by the function. x and y value specified here are relative to the underlying svg.

    @@ -1445,33 +1504,36 @@

    dc.rowChart(parent[, chartGroup])

    a dom block element such as a div; or a dom element or d3 selection.

  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart's group.

    +Interaction with a chart will only trigger events and redraws within the chart’s group.

  • Returns: A newly created row chart instance

    -
    // create a row chart under #chart-container1 element using the default global chart group
    -var chart1 = dc.rowChart('#chart-container1');
    -// create a row chart under #chart-container2 element using chart group A
    -var chart2 = dc.rowChart('#chart-container2', 'chartGroupA');
    +
    // create a row chart under #chart-container1 element using the default global chart group
    +var chart1 = dc.rowChart('#chart-container1');
    +// create a row chart under #chart-container2 element using chart group A
    +var chart2 = dc.rowChart('#chart-container2', 'chartGroupA');
    +

    .x([scale])

    Gets or sets the x scale. The x scale can be any d3 quantitive scale

    .renderTitleLabel(boolean)

    -

    Turn on/off Title label rendering (values) using SVG style of text-anchor 'end'

    +

    Turn on/off Title label rendering (values) using SVG style of text-anchor ‘end’

    .xAxis()

    Get the x axis for the row chart instance. Note: not settable for row charts. See the d3 axis object documention for more information.

    -
    // customize x axis tick format
    -chart.xAxis().tickFormat(function (v) {return v + '%';});
    -// customize x axis tick values
    -chart.xAxis().tickValues([0, 100, 200, 300]);
    +
    // customize x axis tick format
    +chart.xAxis().tickFormat(function (v) {return v + '%';});
    +// customize x axis tick values
    +chart.xAxis().tickValues([0, 100, 200, 300]);
    +

    .fixedBarHeight([height])

    Get or set the fixed bar height. Default is [false] which will auto-scale bars. For example, if you want to fix the height for a specific number of bars (useful in TopN charts) you could fix height as follows (where count = total number of bars in your TopN and gap is your vertical gap space).

    -
     chart.fixedBarHeight( chartheight - (count + 1) * gap / count);
    +
     chart.fixedBarHeight( chartheight - (count + 1) * gap / count);
    +

    .gap([gap])

    Get or set the vertical gap space between rows on a particular row chart instance. Default gap is 5px;

    .elasticX([boolean])

    @@ -1489,7 +1551,8 @@

    .titleLabelOffsetx([x])

    Legend

    Legend is a attachable widget that can be added to other dc charts to render horizontal legend labels.

    -
    chart.legend(dc.legend().x(400).y(10).itemHeight(13).gap(5))
    +
    chart.legend(dc.legend().x(400).y(10).itemHeight(13).gap(5))
    +

    Examples:

    • Nasdaq 100 Index
    • @@ -1526,17 +1589,18 @@

      dc.scatterPlot(parent[, chartGroup])< chart instance.

    • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart's group.

      +Interaction with a chart will only trigger events and redraws within the chart’s group.

    Returns: A newly created scatter plot instance

    -
    // create a scatter plot under #chart-container1 element using the default global chart group
    -var chart1 = dc.scatterPlot('#chart-container1');
    -// create a scatter plot under #chart-container2 element using chart group A
    -var chart2 = dc.scatterPlot('#chart-container2', 'chartGroupA');
    -// create a sub-chart under a composite parent chart
    -var chart3 = dc.scatterPlot(compositeChart);
    +
    // create a scatter plot under #chart-container1 element using the default global chart group
    +var chart1 = dc.scatterPlot('#chart-container1');
    +// create a scatter plot under #chart-container2 element using chart group A
    +var chart2 = dc.scatterPlot('#chart-container2', 'chartGroupA');
    +// create a sub-chart under a composite parent chart
    +var chart3 = dc.scatterPlot(compositeChart);
    +

    .existenceAccessor([accessor])

    Get or set the existence accessor. If a point exists, it is drawn with symbolSize radius and opacity 1; if it does not exist, it is drawn with hiddenSize radius and opacity 0. By default, @@ -1571,8 +1635,9 @@

    Number Display Widget

    Returns: A newly created number display instance

    -
    // create a number display under #chart-container1 element using the default global chart group
    -var display1 = dc.numberDisplay('#chart-container1');
    +
    // create a number display under #chart-container1 element using the default global chart group
    +var display1 = dc.numberDisplay('#chart-container1');
    +

    .html([object])

    Gets or sets an optional object specifying HTML templates to use depending on the number displayed. The text %number will be replaced with the current value.

    @@ -1581,9 +1646,10 @@

    .html([object])

  • zero: HTML template to use if the number is 0
  • some: HTML template to use otherwise

    numberWidget.html({
    -  one:'%number record',
    -  some:'%number records',
    -  none:'no records'})
    + one:'%number record', + some:'%number records', + none:'no records'}) +
  • .value()

    @@ -1602,25 +1668,28 @@

    dc.heatMap(parent[, chartGroup])

    a dom block element such as a div; or a dom element or d3 selection.

  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart's group.

    +Interaction with a chart will only trigger events and redraws within the chart’s group.

  • Returns: A newly created heat map instance

    -
    // create a heat map under #chart-container1 element using the default global chart group
    -var heatMap1 = dc.heatMap('#chart-container1');
    -// create a heat map under #chart-container2 element using chart group A
    -var heatMap2 = dc.heatMap('#chart-container2', 'chartGroupA');
    +
    // create a heat map under #chart-container1 element using the default global chart group
    +var heatMap1 = dc.heatMap('#chart-container1');
    +// create a heat map under #chart-container2 element using chart group A
    +var heatMap2 = dc.heatMap('#chart-container2', 'chartGroupA');
    +

    .colsLabel([labelFunction])

    Set or get the column label function. The chart class uses this function to render column labels on the X axis. It is passed the column name.

    -
    // the default label function just returns the name
    -chart.colsLabel(function(d) { return d; });
    +
    // the default label function just returns the name
    +chart.colsLabel(function(d) { return d; });
    +

    .rowsLabel([labelFunction])

    Set or get the row label function. The chart class uses this function to render row labels on the Y axis. It is passed the row name.

    -
    // the default label function just returns the name
    -chart.rowsLabel(function(d) { return d; });
    +
    // the default label function just returns the name
    +chart.rowsLabel(function(d) { return d; });
    +

    .rows([values])

    Gets or sets the values used to create the rows of the heatmap, as an array. By default, all the values will be fetched from the data using the value accessor.

    @@ -1649,14 +1718,15 @@

    dc.boxPlot(parent[, chartGroup])

    d3 single selector representing a dom block element such as a div; or a dom element or d3 selection.
  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart's group.
  • +Interaction with a chart will only trigger events and redraws within the chart’s group.

    Returns: A newly created box plot instance

    -
    // create a box plot under #chart-container1 element using the default global chart group
    -var boxPlot1 = dc.boxPlot('#chart-container1');
    -// create a box plot under #chart-container2 element using chart group A
    -var boxPlot2 = dc.boxPlot('#chart-container2', 'chartGroupA');
    +
    // create a box plot under #chart-container1 element using the default global chart group
    +var boxPlot1 = dc.boxPlot('#chart-container1');
    +// create a box plot under #chart-container2 element using chart group A
    +var boxPlot2 = dc.boxPlot('#chart-container2', 'chartGroupA');
    +

    .boxPadding([padding])

    Get or set the spacing between boxes as a fraction of box size. Valid values are within 0-1. See the d3 docs @@ -1666,15 +1736,16 @@

    .outerPadding([padding])

    Get or set the outer padding on an ordinal box chart. This setting has no effect on non-ordinal charts or on charts with a custom .boxWidth. Will pad the width by padding * barWidth on each side of the chart.

    Default: 0.5

    -

    .boxWidth(width || function(innerChartWidth, xUnits) { ... })

    +

    .boxWidth(width || function(innerChartWidth, xUnits) { … })

    Get or set the numerical width of the boxplot box. The width may also be a function taking as parameters the chart width excluding the right and left margins, as well as the number of x units.

    .tickFormat()

    Set the numerical format of the boxplot median, whiskers and quartile labels. Defaults to integer formatting.

    -
    // format ticks to 2 decimal places
    -chart.tickFormat(d3.format('.2f'));
    +
    // format ticks to 2 decimal places
    +chart.tickFormat(d3.format('.2f'));
    +
    diff --git a/web/js/dc.js b/web/js/dc.js index f82085ec4..d7dc725e7 100644 --- a/web/js/dc.js +++ b/web/js/dc.js @@ -1,7 +1,8 @@ /*! * dc 2.1.0-dev * http://dc-js.github.io/dc.js/ - * Copyright 2012 Nick Zhu and other contributors + * Copyright 2012-2015 Nick Zhu & the dc.js Developers + * https://github.com/dc-js/dc.js/blob/master/AUTHORS * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,7 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - (function() { function _dc(d3, crossfilter) { 'use strict'; @@ -663,6 +663,7 @@ dc.baseMixin = function (_chart) { var _anchor; var _root; var _svg; + var _isChild; var _minWidth = 200; var _defaultWidth = function (element) { @@ -949,11 +950,13 @@ dc.baseMixin = function (_chart) { if (dc.instanceOfChart(a)) { _anchor = a.anchor(); _root = a.root(); + _isChild = true; } else { _anchor = a; _root = d3.select(_anchor); _root.classed(dc.constants.CHART_CLASS, true); dc.registerChart(_chart, chartGroup); + _isChild = false; } _chartGroup = chartGroup; return _chart; @@ -1658,7 +1661,13 @@ dc.baseMixin = function (_chart) { if (!arguments.length) { return _chartGroup; } + if (!_isChild) { + dc.deregisterChart(_chart, _chartGroup); + } _chartGroup = _; + if (!_isChild) { + dc.registerChart(_chart, _chartGroup); + } return _chart; }; @@ -8753,3 +8762,5 @@ return dc;} } } )(); + +//# sourceMappingURL=dc.js.map \ No newline at end of file diff --git a/web/js/dc.js.map b/web/js/dc.js.map index acaab9b7f..53ab290ba 100644 --- a/web/js/dc.js.map +++ b/web/js/dc.js.map @@ -1,35 +1 @@ -{ - "version": 3, - "file": "dc.js", - "sources": [ - "src/banner.js", - "src/core.js", - "src/errors.js", - "src/utils.js", - "src/events.js", - "src/cumulative.js", - "src/base-chart.js", - "src/marginable.js", - "src/coordinate-grid-chart.js", - "src/color-chart.js", - "src/stackable-chart.js", - "src/abstract-bubble-chart.js", - "src/pie-chart.js", - "src/bar-chart.js", - "src/line-chart.js", - "src/data-count.js", - "src/data-table.js", - "src/bubble-chart.js", - "src/composite-chart.js", - "src/geo-choropleth-chart.js", - "src/bubble-overlay.js", - "src/row-chart.js", - "src/legend.js", - "src/capped.js", - "src/scatter-plot.js", - "src/number-display.js", - "src/footer.js" - ], - "names": [], - "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACxOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC9MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC5HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACruBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC95BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AChQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC5WA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AClQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC/IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AChNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACjQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACrMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AClRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC5GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AChDA;A" -} \ No newline at end of file +{"version":3,"sources":["src/banner.js","src/core.js","src/errors.js","src/utils.js","src/logger.js","src/events.js","src/filters.js","src/base-mixin.js","src/margin-mixin.js","src/color-mixin.js","src/coordinate-grid-mixin.js","src/stack-mixin.js","src/cap-mixin.js","src/bubble-mixin.js","src/pie-chart.js","src/bar-chart.js","src/line-chart.js","src/data-count.js","src/data-table.js","src/data-grid.js","src/bubble-chart.js","src/composite-chart.js","src/series-chart.js","src/geo-choropleth-chart.js","src/bubble-overlay.js","src/row-chart.js","src/legend.js","src/scatter-plot.js","src/number-display.js","src/heatmap.js","src/d3.box.js","src/box-plot.js","src/footer.js"],"names":[],"mappings":"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","file":"dc.js","sourcesContent":["(function() { function _dc(d3, crossfilter) {\n'use strict';\n","/**\n#### Version 2.1.0-dev\nThe entire dc.js library is scoped under the **dc** name space. It does not introduce anything else\ninto the global name space.\n#### Function Chaining\nMost dc functions are designed to allow function chaining, meaning they return the current chart\ninstance whenever it is appropriate. This way chart configuration can be written in the following\nstyle:\n```js\nchart.width(300)\n .height(300)\n .filter('sunday')\n```\nThe getter forms of functions do not participate in function chaining because they necessarily\nreturn values that are not the chart. (Although some, such as `.svg` and `.xAxis`, return values\nthat are chainable d3 objects.)\n\n**/\n\n/*jshint -W062*/\n/*jshint -W079*/\nvar dc = {\n version: '2.1.0-dev',\n constants: {\n CHART_CLASS: 'dc-chart',\n DEBUG_GROUP_CLASS: 'debug',\n STACK_CLASS: 'stack',\n DESELECTED_CLASS: 'deselected',\n SELECTED_CLASS: 'selected',\n NODE_INDEX_NAME: '__index__',\n GROUP_INDEX_NAME: '__group_index__',\n DEFAULT_CHART_GROUP: '__default_chart_group__',\n EVENT_DELAY: 40,\n NEGLIGIBLE_NUMBER: 1e-10\n },\n _renderlet: null\n};\n\ndc.chartRegistry = function () {\n // chartGroup:string => charts:array\n var _chartMap = {};\n\n function initializeChartGroup(group) {\n if (!group) {\n group = dc.constants.DEFAULT_CHART_GROUP;\n }\n\n if (!_chartMap[group]) {\n _chartMap[group] = [];\n }\n\n return group;\n }\n\n return {\n has: function (chart) {\n for (var e in _chartMap) {\n if (_chartMap[e].indexOf(chart) >= 0) {\n return true;\n }\n }\n return false;\n },\n\n register: function (chart, group) {\n group = initializeChartGroup(group);\n _chartMap[group].push(chart);\n },\n\n deregister: function (chart, group) {\n group = initializeChartGroup(group);\n for (var i = 0; i < _chartMap[group].length; i++) {\n if (_chartMap[group][i].anchorName() === chart.anchorName()) {\n _chartMap[group].splice(i, 1);\n break;\n }\n }\n },\n\n clear: function (group) {\n if (group) {\n delete _chartMap[group];\n } else {\n _chartMap = {};\n }\n },\n\n list: function (group) {\n group = initializeChartGroup(group);\n return _chartMap[group];\n }\n };\n}();\n/*jshint +W062 */\n/*jshint +W079*/\n\ndc.registerChart = function (chart, group) {\n dc.chartRegistry.register(chart, group);\n};\n\ndc.deregisterChart = function (chart, group) {\n dc.chartRegistry.deregister(chart, group);\n};\n\ndc.hasChart = function (chart) {\n return dc.chartRegistry.has(chart);\n};\n\ndc.deregisterAllCharts = function (group) {\n dc.chartRegistry.clear(group);\n};\n\n/**\n## Utilities\n**/\n\n/**\n#### dc.filterAll([chartGroup])\nClear all filters on all charts within the given chart group. If the chart group is not given then\nonly charts that belong to the default chart group will be reset.\n**/\ndc.filterAll = function (group) {\n var charts = dc.chartRegistry.list(group);\n for (var i = 0; i < charts.length; ++i) {\n charts[i].filterAll();\n }\n};\n\n/**\n#### dc.refocusAll([chartGroup])\nReset zoom level / focus on all charts that belong to the given chart group. If the chart group is\nnot given then only charts that belong to the default chart group will be reset.\n**/\ndc.refocusAll = function (group) {\n var charts = dc.chartRegistry.list(group);\n for (var i = 0; i < charts.length; ++i) {\n if (charts[i].focus) {\n charts[i].focus();\n }\n }\n};\n\n/**\n#### dc.renderAll([chartGroup])\nRe-render all charts belong to the given chart group. If the chart group is not given then only\ncharts that belong to the default chart group will be re-rendered.\n**/\ndc.renderAll = function (group) {\n var charts = dc.chartRegistry.list(group);\n for (var i = 0; i < charts.length; ++i) {\n charts[i].render();\n }\n\n if (dc._renderlet !== null) {\n dc._renderlet(group);\n }\n};\n\n/**\n#### dc.redrawAll([chartGroup])\nRedraw all charts belong to the given chart group. If the chart group is not given then only charts\nthat belong to the default chart group will be re-drawn. Redraw is different from re-render since\nwhen redrawing dc tries to update the graphic incrementally, using transitions, instead of starting\nfrom scratch.\n**/\ndc.redrawAll = function (group) {\n var charts = dc.chartRegistry.list(group);\n for (var i = 0; i < charts.length; ++i) {\n charts[i].redraw();\n }\n\n if (dc._renderlet !== null) {\n dc._renderlet(group);\n }\n};\n\n/**\n#### dc.disableTransitions\nIf this boolean is set truthy, all transitions will be disabled, and changes to the charts will happen\nimmediately. Default: false\n**/\ndc.disableTransitions = false;\n\ndc.transition = function (selections, duration, callback) {\n if (duration <= 0 || duration === undefined || dc.disableTransitions) {\n return selections;\n }\n\n var s = selections\n .transition()\n .duration(duration);\n\n if (typeof(callback) === 'function') {\n callback(s);\n }\n\n return s;\n};\n\ndc.units = {};\n\n/**\n#### dc.units.integers\n`dc.units.integers` is the default value for `xUnits` for the [Coordinate Grid\nChart](#coordinate-grid-chart) and should be used when the x values are a sequence of integers.\n\nIt is a function that counts the number of integers in the range supplied in its start and end parameters.\n\n```js\nchart.xUnits(dc.units.integers) // already the default\n```\n\n**/\ndc.units.integers = function (s, e) {\n return Math.abs(e - s);\n};\n\n/**\n#### dc.units.ordinal\nThis argument can be passed to the `xUnits` function of the to specify ordinal units for the x\naxis. Usually this parameter is used in combination with passing `d3.scale.ordinal()` to `.x`.\n\nIt just returns the domain passed to it, which for ordinal charts is an array of all values.\n\n```js\nchart.xUnits(dc.units.ordinal)\n .x(d3.scale.ordinal())\n```\n\n**/\ndc.units.ordinal = function (s, e, domain) {\n return domain;\n};\n\n/**\n#### dc.units.fp.precision(precision)\nThis function generates an argument for the [Coordinate Grid Chart's](#coordinate-grid-chart)\n`xUnits` function specifying that the x values are floating-point numbers with the given\nprecision.\n\nThe returned function determines how many values at the given precision will fit into the range\nsupplied in its start and end parameters.\n\n```js\n// specify values (and ticks) every 0.1 units\nchart.xUnits(dc.units.fp.precision(0.1)\n// there are 500 units between 0.5 and 1 if the precision is 0.001\nvar thousandths = dc.units.fp.precision(0.001);\nthousandths(0.5, 1.0) // returns 500\n```\n**/\ndc.units.fp = {};\ndc.units.fp.precision = function (precision) {\n var _f = function (s, e) {\n var d = Math.abs((e - s) / _f.resolution);\n if (dc.utils.isNegligible(d - Math.floor(d))) {\n return Math.floor(d);\n } else {\n return Math.ceil(d);\n }\n };\n _f.resolution = precision;\n return _f;\n};\n\ndc.round = {};\ndc.round.floor = function (n) {\n return Math.floor(n);\n};\ndc.round.ceil = function (n) {\n return Math.ceil(n);\n};\ndc.round.round = function (n) {\n return Math.round(n);\n};\n\ndc.override = function (obj, functionName, newFunction) {\n var existingFunction = obj[functionName];\n obj['_' + functionName] = existingFunction;\n obj[functionName] = newFunction;\n};\n\ndc.renderlet = function (_) {\n if (!arguments.length) {\n return dc._renderlet;\n }\n dc._renderlet = _;\n return dc;\n};\n\ndc.instanceOfChart = function (o) {\n return o instanceof Object && o.__dcFlag__ && true;\n};\n","dc.errors = {};\n\ndc.errors.Exception = function (msg) {\n var _msg = msg || 'Unexpected internal error';\n\n this.message = _msg;\n\n this.toString = function () {\n return _msg;\n };\n};\n\ndc.errors.InvalidStateException = function () {\n dc.errors.Exception.apply(this, arguments);\n};\n","dc.dateFormat = d3.time.format('%m/%d/%Y');\n\ndc.printers = {};\n\ndc.printers.filters = function (filters) {\n var s = '';\n\n for (var i = 0; i < filters.length; ++i) {\n if (i > 0) {\n s += ', ';\n }\n s += dc.printers.filter(filters[i]);\n }\n\n return s;\n};\n\ndc.printers.filter = function (filter) {\n var s = '';\n\n if (typeof filter !== 'undefined' && filter !== null) {\n if (filter instanceof Array) {\n if (filter.length >= 2) {\n s = '[' + dc.utils.printSingleValue(filter[0]) + ' -> ' + dc.utils.printSingleValue(filter[1]) + ']';\n } else if (filter.length >= 1) {\n s = dc.utils.printSingleValue(filter[0]);\n }\n } else {\n s = dc.utils.printSingleValue(filter);\n }\n }\n\n return s;\n};\n\ndc.pluck = function (n, f) {\n if (!f) {\n return function (d) { return d[n]; };\n }\n return function (d, i) { return f.call(d, d[n], i); };\n};\n\ndc.utils = {};\n\ndc.utils.printSingleValue = function (filter) {\n var s = '' + filter;\n\n if (filter instanceof Date) {\n s = dc.dateFormat(filter);\n } else if (typeof(filter) === 'string') {\n s = filter;\n } else if (dc.utils.isFloat(filter)) {\n s = dc.utils.printSingleValue.fformat(filter);\n } else if (dc.utils.isInteger(filter)) {\n s = Math.round(filter);\n }\n\n return s;\n};\ndc.utils.printSingleValue.fformat = d3.format('.2f');\n\n// FIXME: these assume than any string r is a percentage (whether or not it\n// includes %). They also generate strange results if l is a string.\ndc.utils.add = function (l, r) {\n if (typeof r === 'string') {\n r = r.replace('%', '');\n }\n\n if (l instanceof Date) {\n if (typeof r === 'string') {\n r = +r;\n }\n var d = new Date();\n d.setTime(l.getTime());\n d.setDate(l.getDate() + r);\n return d;\n } else if (typeof r === 'string') {\n var percentage = (+r / 100);\n return l > 0 ? l * (1 + percentage) : l * (1 - percentage);\n } else {\n return l + r;\n }\n};\n\ndc.utils.subtract = function (l, r) {\n if (typeof r === 'string') {\n r = r.replace('%', '');\n }\n\n if (l instanceof Date) {\n if (typeof r === 'string') {\n r = +r;\n }\n var d = new Date();\n d.setTime(l.getTime());\n d.setDate(l.getDate() - r);\n return d;\n } else if (typeof r === 'string') {\n var percentage = (+r / 100);\n return l < 0 ? l * (1 + percentage) : l * (1 - percentage);\n } else {\n return l - r;\n }\n};\n\ndc.utils.isNumber = function (n) {\n return n === +n;\n};\n\ndc.utils.isFloat = function (n) {\n return n === +n && n !== (n | 0);\n};\n\ndc.utils.isInteger = function (n) {\n return n === +n && n === (n | 0);\n};\n\ndc.utils.isNegligible = function (n) {\n return !dc.utils.isNumber(n) || (n < dc.constants.NEGLIGIBLE_NUMBER && n > -dc.constants.NEGLIGIBLE_NUMBER);\n};\n\ndc.utils.clamp = function (val, min, max) {\n return val < min ? min : (val > max ? max : val);\n};\n\nvar _idCounter = 0;\ndc.utils.uniqueId = function () {\n return ++_idCounter;\n};\n\ndc.utils.nameToId = function (name) {\n return name.toLowerCase().replace(/[\\s]/g, '_').replace(/[\\.']/g, '');\n};\n\ndc.utils.appendOrSelect = function (parent, selector, tag) {\n tag = tag || selector;\n var element = parent.select(selector);\n if (element.empty()) {\n element = parent.append(tag);\n }\n return element;\n};\n\ndc.utils.safeNumber = function (n) { return dc.utils.isNumber(+n) ? +n : 0;};\n","dc.logger = {};\n\ndc.logger.enableDebugLog = false;\n\ndc.logger.warn = function (msg) {\n if (console) {\n if (console.warn) {\n console.warn(msg);\n } else if (console.log) {\n console.log(msg);\n }\n }\n\n return dc.logger;\n};\n\ndc.logger.debug = function (msg) {\n if (dc.logger.enableDebugLog && console) {\n if (console.debug) {\n console.debug(msg);\n } else if (console.log) {\n console.log(msg);\n }\n }\n\n return dc.logger;\n};\n\ndc.logger.deprecate = function (fn, msg) {\n // Allow logging of deprecation\n var warned = false;\n function deprecated() {\n if (!warned) {\n dc.logger.warn(msg);\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n};\n","dc.events = {\n current: null\n};\n\n/**\n#### dc.events.trigger(function[, delay])\nThis function triggers a throttled event function with a specified delay (in milli-seconds). Events\nthat are triggered repetitively due to user interaction such brush dragging might flood the library\nand invoke more renders than can be executed in time. Using this function to wrap your event\nfunction allows the library to smooth out the rendering by throttling events and only responding to\nthe most recent event.\n\n```js\n chart.renderlet(function(chart){\n // smooth the rendering through event throttling\n dc.events.trigger(function(){\n // focus some other chart to the range selected by user on this chart\n someOtherChart.focus(chart.filter());\n });\n })\n```\n**/\ndc.events.trigger = function (closure, delay) {\n if (!delay) {\n closure();\n return;\n }\n\n dc.events.current = closure;\n\n setTimeout(function () {\n if (closure === dc.events.current) {\n closure();\n }\n }, delay);\n};\n","dc.filters = {};\n\n/**\n## Filters\nThe dc.js filters are functions which are passed into crossfilter to chose which records will be\naccumulated to produce values for the charts. In the crossfilter model, any filters applied on one\ndimension will affect all the other dimensions but not that one. dc always applies a filter\nfunction to the dimension; the function combines multiple filters and if any of them accept a\nrecord, it is filtered in.\n\nThese filter constructors are used as appropriate by the various charts to implement brushing. We\nmention below which chart uses which filter. In some cases, many instances of a filter will be added.\n\n**/\n\n/**\n#### dc.filters.RangedFilter(low, high)\n RangedFilter is a filter which accepts keys between `low` and `high`. It is used to implement X\n axis brushing for the [coordinate grid charts](#coordinate-grid-mixin).\n**/\ndc.filters.RangedFilter = function (low, high) {\n var range = new Array(low, high);\n range.isFiltered = function (value) {\n return value >= this[0] && value < this[1];\n };\n\n return range;\n};\n\n/**\n#### dc.filters.TwoDimensionalFilter(array)\n TwoDimensionalFilter is a filter which accepts a single two-dimensional value. It is used by the\n [heat map chart](#heat-map) to include particular cells as they are clicked. (Rows and columns are\n filtered by filtering all the cells in the row or column.)\n**/\ndc.filters.TwoDimensionalFilter = function (array) {\n if (array === null) { return null; }\n\n var filter = array;\n filter.isFiltered = function (value) {\n return value.length && value.length === filter.length &&\n value[0] === filter[0] && value[1] === filter[1];\n };\n\n return filter;\n};\n\n/**\n#### dc.filters.RangedTwoDimensionalFilter(array)\n The RangedTwoDimensionalFilter allows filtering all values which fit within a rectangular\n region. It is used by the [scatter plot](#scatter-plot) to implement rectangular brushing.\n\n It takes two two-dimensional points in the form `[[x1,y1],[x2,y2]]`, and normalizes them so that\n `x1 <= x2` and `y1 <- y2`. It then returns a filter which accepts any points which are in the\n rectangular range including the lower values but excluding the higher values.\n\n If an array of two values are given to the RangedTwoDimensionalFilter, it interprets the values as\n two x coordinates `x1` and `x2` and returns a filter which accepts any points for which `x1 <= x <\n x2`.\n **/\ndc.filters.RangedTwoDimensionalFilter = function (array) {\n if (array === null) { return null; }\n\n var filter = array;\n var fromBottomLeft;\n\n if (filter[0] instanceof Array) {\n fromBottomLeft = [\n [Math.min(array[0][0], array[1][0]), Math.min(array[0][1], array[1][1])],\n [Math.max(array[0][0], array[1][0]), Math.max(array[0][1], array[1][1])]\n ];\n } else {\n fromBottomLeft = [[array[0], -Infinity], [array[1], Infinity]];\n }\n\n filter.isFiltered = function (value) {\n var x, y;\n\n if (value instanceof Array) {\n if (value.length !== 2) {\n return false;\n }\n x = value[0];\n y = value[1];\n } else {\n x = value;\n y = fromBottomLeft[0][1];\n }\n\n return x >= fromBottomLeft[0][0] && x < fromBottomLeft[1][0] &&\n y >= fromBottomLeft[0][1] && y < fromBottomLeft[1][1];\n };\n\n return filter;\n};\n","/**\n## Base Mixin\nBase Mixin is an abstract functional object representing a basic dc chart object\nfor all chart and widget implementations. Methods from the Base Mixin are inherited\nand available on all chart implementation in the DC library.\n**/\ndc.baseMixin = function (_chart) {\n _chart.__dcFlag__ = dc.utils.uniqueId();\n\n var _dimension;\n var _group;\n\n var _anchor;\n var _root;\n var _svg;\n var _isChild;\n\n var _minWidth = 200;\n var _defaultWidth = function (element) {\n var width = element && element.getBoundingClientRect && element.getBoundingClientRect().width;\n return (width && width > _minWidth) ? width : _minWidth;\n };\n var _width = _defaultWidth;\n\n var _minHeight = 200;\n var _defaultHeight = function (element) {\n var height = element && element.getBoundingClientRect && element.getBoundingClientRect().height;\n return (height && height > _minHeight) ? height : _minHeight;\n };\n var _height = _defaultHeight;\n\n var _keyAccessor = dc.pluck('key');\n var _valueAccessor = dc.pluck('value');\n var _label = dc.pluck('key');\n\n var _ordering = dc.pluck('key');\n var _orderSort;\n\n var _renderLabel = false;\n\n var _title = function (d) {\n return _chart.keyAccessor()(d) + ': ' + _chart.valueAccessor()(d);\n };\n var _renderTitle = true;\n\n var _transitionDuration = 750;\n\n var _filterPrinter = dc.printers.filters;\n\n var _mandatoryAttributes = ['dimension', 'group'];\n\n var _chartGroup = dc.constants.DEFAULT_CHART_GROUP;\n\n var _listeners = d3.dispatch(\n 'preRender',\n 'postRender',\n 'preRedraw',\n 'postRedraw',\n 'filtered',\n 'zoomed',\n 'renderlet');\n\n var _legend;\n\n var _filters = [];\n var _filterHandler = function (dimension, filters) {\n dimension.filter(null);\n\n if (filters.length === 0) {\n dimension.filter(null);\n } else {\n dimension.filterFunction(function (d) {\n for (var i = 0; i < filters.length; i++) {\n var filter = filters[i];\n if (filter.isFiltered && filter.isFiltered(d)) {\n return true;\n } else if (filter <= d && filter >= d) {\n return true;\n }\n }\n return false;\n });\n }\n return filters;\n };\n\n var _data = function (group) {\n return group.all();\n };\n\n /**\n #### .width([value])\n Set or get the width attribute of a chart. See `.height` below for further description of the\n behavior.\n\n **/\n _chart.width = function (w) {\n if (!arguments.length) {\n return _width(_root.node());\n }\n _width = d3.functor(w || _defaultWidth);\n return _chart;\n };\n\n /**\n #### .height([value])\n Set or get the height attribute of a chart. The height is applied to the SVG element generated by\n the chart when rendered (or rerendered). If a value is given, then it will be used to calculate\n the new height and the chart returned for method chaining. The value can either be a numeric, a\n function, or falsy. If no value is specified then the value of the current height attribute will\n be returned.\n\n By default, without an explicit height being given, the chart will select the width of its\n anchor element. If that isn't possible it defaults to 200. Setting the value falsy will return\n the chart to the default behavior\n\n Examples:\n\n ```js\n chart.height(250); // Set the chart's height to 250px;\n chart.height(function(anchor) { return doSomethingWith(anchor); }); // set the chart's height with a function\n chart.height(null); // reset the height to the default auto calculation\n ```\n\n **/\n _chart.height = function (h) {\n if (!arguments.length) {\n return _height(_root.node());\n }\n _height = d3.functor(h || _defaultHeight);\n return _chart;\n };\n\n /**\n #### .minWidth([value])\n Set or get the minimum width attribute of a chart. This only applicable if the width is\n calculated by dc.\n\n **/\n _chart.minWidth = function (w) {\n if (!arguments.length) {\n return _minWidth;\n }\n _minWidth = w;\n return _chart;\n };\n\n /**\n #### .minHeight([value])\n Set or get the minimum height attribute of a chart. This only applicable if the height is\n calculated by dc.\n\n **/\n _chart.minHeight = function (w) {\n if (!arguments.length) {\n return _minHeight;\n }\n _minHeight = w;\n return _chart;\n };\n\n /**\n #### .dimension([value]) - **mandatory**\n Set or get the dimension attribute of a chart. In dc a dimension can be any valid [crossfilter\n dimension](https://github.com/square/crossfilter/wiki/API-Reference#wiki-dimension).\n\n If a value is given, then it will be used as the new dimension. If no value is specified then\n the current dimension will be returned.\n\n **/\n _chart.dimension = function (d) {\n if (!arguments.length) {\n return _dimension;\n }\n _dimension = d;\n _chart.expireCache();\n return _chart;\n };\n\n /**\n #### .data([callback])\n Set the data callback or retrieve the chart's data set. The data callback is passed the chart's\n group and by default will return `group.all()`. This behavior may be modified to, for instance,\n return only the top 5 groups:\n ```\n chart.data(function(group) {\n return group.top(5);\n });\n ```\n **/\n _chart.data = function (d) {\n if (!arguments.length) {\n return _data.call(_chart, _group);\n }\n _data = d3.functor(d);\n _chart.expireCache();\n return _chart;\n };\n\n /**\n #### .group([value, [name]]) - **mandatory**\n Set or get the group attribute of a chart. In dc a group is a [crossfilter\n group](https://github.com/square/crossfilter/wiki/API-Reference#wiki-group). Usually the group\n should be created from the particular dimension associated with the same chart. If a value is\n given, then it will be used as the new group.\n\n If no value specified then the current group will be returned.\n If `name` is specified then it will be used to generate legend label.\n\n **/\n _chart.group = function (g, name) {\n if (!arguments.length) {\n return _group;\n }\n _group = g;\n _chart._groupName = name;\n _chart.expireCache();\n return _chart;\n };\n\n /**\n #### .ordering([orderFunction])\n Get or set an accessor to order ordinal charts\n **/\n _chart.ordering = function (o) {\n if (!arguments.length) {\n return _ordering;\n }\n _ordering = o;\n _orderSort = crossfilter.quicksort.by(_ordering);\n _chart.expireCache();\n return _chart;\n };\n\n _chart._computeOrderedGroups = function (data) {\n var dataCopy = data.slice(0);\n\n if (dataCopy.length <= 1) {\n return dataCopy;\n }\n\n if (!_orderSort) {\n _orderSort = crossfilter.quicksort.by(_ordering);\n }\n\n return _orderSort(dataCopy, 0, dataCopy.length);\n };\n\n /**\n #### .filterAll()\n Clear all filters associated with this chart.\n\n **/\n _chart.filterAll = function () {\n return _chart.filter(null);\n };\n\n /**\n #### .select(selector)\n Execute d3 single selection in the chart's scope using the given selector and return the d3\n selection. Roughly the same as:\n ```js\n d3.select('#chart-id').select(selector);\n ```\n This function is **not chainable** since it does not return a chart instance; however the d3\n selection result can be chained to d3 function calls.\n\n **/\n _chart.select = function (s) {\n return _root.select(s);\n };\n\n /**\n #### .selectAll(selector)\n Execute in scope d3 selectAll using the given selector and return d3 selection result. Roughly\n the same as:\n ```js\n d3.select('#chart-id').selectAll(selector);\n ```\n This function is **not chainable** since it does not return a chart instance; however the d3\n selection result can be chained to d3 function calls.\n\n **/\n _chart.selectAll = function (s) {\n return _root ? _root.selectAll(s) : null;\n };\n\n /**\n #### .anchor([anchorChart|anchorSelector|anchorNode], [chartGroup])\n Set the svg root to either be an existing chart's root; or any valid [d3 single\n selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying a dom\n block element such as a div; or a dom element or d3 selection. Optionally registers the chart\n within the chartGroup. This class is called internally on chart initialization, but be called\n again to relocate the chart. However, it will orphan any previously created SVG elements.\n **/\n _chart.anchor = function (a, chartGroup) {\n if (!arguments.length) {\n return _anchor;\n }\n if (dc.instanceOfChart(a)) {\n _anchor = a.anchor();\n _root = a.root();\n _isChild = true;\n } else {\n _anchor = a;\n _root = d3.select(_anchor);\n _root.classed(dc.constants.CHART_CLASS, true);\n dc.registerChart(_chart, chartGroup);\n _isChild = false;\n }\n _chartGroup = chartGroup;\n return _chart;\n };\n\n /**\n #### .anchorName()\n Returns the dom id for the chart's anchored location.\n\n **/\n _chart.anchorName = function () {\n var a = _chart.anchor();\n if (a && a.id) {\n return a.id;\n }\n if (a && a.replace) {\n return a.replace('#', '');\n }\n return 'dc-chart' + _chart.chartID();\n };\n\n /**\n #### .root([rootElement])\n Returns the root element where a chart resides. Usually it will be the parent div element where\n the svg was created. You can also pass in a new root element however this is usually handled by\n dc internally. Resetting the root element on a chart outside of dc internals may have\n unexpected consequences.\n\n **/\n _chart.root = function (r) {\n if (!arguments.length) {\n return _root;\n }\n _root = r;\n return _chart;\n };\n\n /**\n #### .svg([svgElement])\n Returns the top svg element for this specific chart. You can also pass in a new svg element,\n however this is usually handled by dc internally. Resetting the svg element on a chart outside\n of dc internals may have unexpected consequences.\n\n **/\n _chart.svg = function (_) {\n if (!arguments.length) {\n return _svg;\n }\n _svg = _;\n return _chart;\n };\n\n /**\n #### .resetSvg()\n Remove the chart's SVG elements from the dom and recreate the container SVG element.\n **/\n _chart.resetSvg = function () {\n _chart.select('svg').remove();\n return generateSvg();\n };\n\n function generateSvg() {\n _svg = _chart.root().append('svg')\n .attr('width', _chart.width())\n .attr('height', _chart.height());\n return _svg;\n }\n\n /**\n #### .filterPrinter([filterPrinterFunction])\n Set or get the filter printer function. The filter printer function is used to generate human\n friendly text for filter value(s) associated with the chart instance. By default dc charts use a\n default filter printer `dc.printers.filter` that provides simple printing support for both\n single value and ranged filters.\n\n **/\n _chart.filterPrinter = function (_) {\n if (!arguments.length) {\n return _filterPrinter;\n }\n _filterPrinter = _;\n return _chart;\n };\n\n /**\n #### .turnOnControls() & .turnOffControls()\n Turn on/off optional control elements within the root element. dc currently supports the\n following html control elements.\n\n * root.selectAll('.reset') - elements are turned on if the chart has an active filter. This type\n of control element is usually used to store a reset link to allow user to reset filter on a\n certain chart. This element will be turned off automatically if the filter is cleared.\n * root.selectAll('.filter') elements are turned on if the chart has an active filter. The text\n content of this element is then replaced with the current filter value using the filter printer\n function. This type of element will be turned off automatically if the filter is cleared.\n\n **/\n _chart.turnOnControls = function () {\n if (_root) {\n _chart.selectAll('.reset').style('display', null);\n _chart.selectAll('.filter').text(_filterPrinter(_chart.filters())).style('display', null);\n }\n return _chart;\n };\n\n _chart.turnOffControls = function () {\n if (_root) {\n _chart.selectAll('.reset').style('display', 'none');\n _chart.selectAll('.filter').style('display', 'none').text(_chart.filter());\n }\n return _chart;\n };\n\n /**\n #### .transitionDuration([duration])\n Set or get the animation transition duration(in milliseconds) for this chart instance. Default\n duration is 750ms.\n\n **/\n _chart.transitionDuration = function (d) {\n if (!arguments.length) {\n return _transitionDuration;\n }\n _transitionDuration = d;\n return _chart;\n };\n\n _chart._mandatoryAttributes = function (_) {\n if (!arguments.length) {\n return _mandatoryAttributes;\n }\n _mandatoryAttributes = _;\n return _chart;\n };\n\n function checkForMandatoryAttributes(a) {\n if (!_chart[a] || !_chart[a]()) {\n throw new dc.errors.InvalidStateException('Mandatory attribute chart.' + a +\n ' is missing on chart[#' + _chart.anchorName() + ']');\n }\n }\n\n /**\n #### .render()\n Invoking this method will force the chart to re-render everything from scratch. Generally it\n should only be used to render the chart for the first time on the page or if you want to make\n sure everything is redrawn from scratch instead of relying on the default incremental redrawing\n behaviour.\n\n **/\n _chart.render = function () {\n _listeners.preRender(_chart);\n\n if (_mandatoryAttributes) {\n _mandatoryAttributes.forEach(checkForMandatoryAttributes);\n }\n\n var result = _chart._doRender();\n\n if (_legend) {\n _legend.render();\n }\n\n _chart._activateRenderlets('postRender');\n\n return result;\n };\n\n _chart._activateRenderlets = function (event) {\n if (_chart.transitionDuration() > 0 && _svg) {\n _svg.transition().duration(_chart.transitionDuration())\n .each('end', function () {\n _listeners['renderlet'](_chart);\n if (event) {\n _listeners[event](_chart);\n }\n });\n } else {\n _listeners['renderlet'](_chart);\n if (event) {\n _listeners[event](_chart);\n }\n }\n };\n\n /**\n #### .redraw()\n Calling redraw will cause the chart to re-render data changes incrementally. If there is no\n change in the underlying data dimension then calling this method will have no effect on the\n chart. Most chart interaction in dc will automatically trigger this method through internal\n events (in particular [dc.redrawAll](#dcredrawallchartgroup)); therefore, you only need to\n manually invoke this function if data is manipulated outside of dc's control (for example if\n data is loaded in the background using `crossfilter.add()`).\n\n **/\n _chart.redraw = function () {\n _listeners.preRedraw(_chart);\n\n var result = _chart._doRedraw();\n\n if (_legend) {\n _legend.render();\n }\n\n _chart._activateRenderlets('postRedraw');\n\n return result;\n };\n\n _chart.redrawGroup = function () {\n dc.redrawAll(_chart.chartGroup());\n };\n\n _chart.renderGroup = function () {\n dc.renderAll(_chart.chartGroup());\n };\n\n _chart._invokeFilteredListener = function (f) {\n if (f !== undefined) {\n _listeners.filtered(_chart, f);\n }\n };\n\n _chart._invokeZoomedListener = function () {\n _listeners.zoomed(_chart);\n };\n\n var _hasFilterHandler = function (filters, filter) {\n if (filter === null || typeof(filter) === 'undefined') {\n return filters.length > 0;\n }\n return filters.some(function (f) {\n return filter <= f && filter >= f;\n });\n };\n\n /**\n #### .hasFilterHandler([function])\n Set or get the has filter handler. The has filter handler is a function that checks to see if\n the chart's current filters include a specific filter. Using a custom has filter handler allows\n you to change the way filters are checked for and replaced.\n\n ```js\n // default has filter handler\n function (filters, filter) {\n if (filter === null || typeof(filter) === 'undefined') {\n return filters.length > 0;\n }\n return filters.some(function (f) {\n return filter <= f && filter >= f;\n });\n }\n\n // custom filter handler (no-op)\n chart.hasFilterHandler(function(filters, filter) {\n return false;\n });\n ```\n **/\n _chart.hasFilterHandler = function (_) {\n if (!arguments.length) {\n return _hasFilterHandler;\n }\n _hasFilterHandler = _;\n return _chart;\n };\n\n /**\n #### .hasFilter([filter])\n Check whether any active filter or a specific filter is associated with particular chart instance.\n This function is **not chainable**.\n\n **/\n _chart.hasFilter = function (filter) {\n return _hasFilterHandler(_filters, filter);\n };\n\n var _removeFilterHandler = function (filters, filter) {\n for (var i = 0; i < filters.length; i++) {\n if (filters[i] <= filter && filters[i] >= filter) {\n filters.splice(i, 1);\n break;\n }\n }\n return filters;\n };\n\n /**\n #### .removeFilterHandler([function])\n Set or get the remove filter handler. The remove filter handler is a function that removes a\n filter from the chart's current filters. Using a custom remove filter handler allows you to\n change how filters are removed or perform additional work when removing a filter, e.g. when\n using a filter server other than crossfilter.\n\n Any changes should modify the `filters` array argument and return that array.\n\n ```js\n // default remove filter handler\n function (filters, filter) {\n for (var i = 0; i < filters.length; i++) {\n if (filters[i] <= filter && filters[i] >= filter) {\n filters.splice(i, 1);\n break;\n }\n }\n return filters;\n }\n\n // custom filter handler (no-op)\n chart.removeFilterHandler(function(filters, filter) {\n return filters;\n });\n ```\n **/\n _chart.removeFilterHandler = function (_) {\n if (!arguments.length) {\n return _removeFilterHandler;\n }\n _removeFilterHandler = _;\n return _chart;\n };\n\n var _addFilterHandler = function (filters, filter) {\n filters.push(filter);\n return filters;\n };\n\n /**\n #### .addFilterHandler([function])\n Set or get the add filter handler. The add filter handler is a function that adds a filter to\n the chart's filter list. Using a custom add filter handler allows you to change the way filters\n are added or perform additional work when adding a filter, e.g. when using a filter server other\n than crossfilter.\n\n Any changes should modify the `filters` array argument and return that array.\n\n ```js\n // default add filter handler\n function (filters, filter) {\n filters.push(filter);\n return filters;\n }\n\n // custom filter handler (no-op)\n chart.addFilterHandler(function(filters, filter) {\n return filters;\n });\n ```\n **/\n _chart.addFilterHandler = function (_) {\n if (!arguments.length) {\n return _addFilterHandler;\n }\n _addFilterHandler = _;\n return _chart;\n };\n\n var _resetFilterHandler = function (filters) {\n return [];\n };\n\n /**\n #### .resetFilterHandler([function])\n Set or get the reset filter handler. The reset filter handler is a function that resets the\n chart's filter list by returning a new list. Using a custom reset filter handler allows you to\n change the way filters are reset, or perform additional work when resetting the filters,\n e.g. when using a filter server other than crossfilter.\n\n This function should return an array.\n\n ```js\n // default remove filter handler\n function (filters) {\n return [];\n }\n\n // custom filter handler (no-op)\n chart.resetFilterHandler(function(filters) {\n return filters;\n });\n ```\n **/\n _chart.resetFilterHandler = function (_) {\n if (!arguments.length) {\n return _resetFilterHandler;\n }\n _resetFilterHandler = _;\n return _chart;\n };\n\n function applyFilters() {\n if (_chart.dimension() && _chart.dimension().filter) {\n var fs = _filterHandler(_chart.dimension(), _filters);\n _filters = fs ? fs : _filters;\n }\n }\n\n _chart.replaceFilter = function (_) {\n _filters = [];\n _chart.filter(_);\n };\n\n /**\n #### .filter([filterValue])\n Filter the chart by the given value or return the current filter if the input parameter is missing.\n ```js\n // filter by a single string\n chart.filter('Sunday');\n // filter by a single age\n chart.filter(18);\n ```\n **/\n _chart.filter = function (_) {\n if (!arguments.length) {\n return _filters.length > 0 ? _filters[0] : null;\n }\n if (_ instanceof Array && _[0] instanceof Array && !_.isFiltered) {\n _[0].forEach(function (d) {\n if (_chart.hasFilter(d)) {\n _removeFilterHandler(_filters, d);\n } else {\n _addFilterHandler(_filters, d);\n }\n });\n } else if (_ === null) {\n _filters = _resetFilterHandler(_filters);\n } else {\n if (_chart.hasFilter(_)) {\n _removeFilterHandler(_filters, _);\n } else {\n _addFilterHandler(_filters, _);\n }\n }\n applyFilters();\n _chart._invokeFilteredListener(_);\n\n if (_root !== null && _chart.hasFilter()) {\n _chart.turnOnControls();\n } else {\n _chart.turnOffControls();\n }\n\n return _chart;\n };\n\n /**\n #### .filters()\n Returns all current filters. This method does not perform defensive cloning of the internal\n filter array before returning, therefore any modification of the returned array will effect the\n chart's internal filter storage.\n\n **/\n _chart.filters = function () {\n return _filters;\n };\n\n _chart.highlightSelected = function (e) {\n d3.select(e).classed(dc.constants.SELECTED_CLASS, true);\n d3.select(e).classed(dc.constants.DESELECTED_CLASS, false);\n };\n\n _chart.fadeDeselected = function (e) {\n d3.select(e).classed(dc.constants.SELECTED_CLASS, false);\n d3.select(e).classed(dc.constants.DESELECTED_CLASS, true);\n };\n\n _chart.resetHighlight = function (e) {\n d3.select(e).classed(dc.constants.SELECTED_CLASS, false);\n d3.select(e).classed(dc.constants.DESELECTED_CLASS, false);\n };\n\n /**\n #### .onClick(datum)\n This function is passed to d3 as the onClick handler for each chart. The default behavior is to\n filter on the clicked datum (passed to the callback) and redraw the chart group.\n **/\n _chart.onClick = function (d) {\n var filter = _chart.keyAccessor()(d);\n dc.events.trigger(function () {\n _chart.filter(filter);\n _chart.redrawGroup();\n });\n };\n\n /**\n #### .filterHandler([function])\n Set or get the filter handler. The filter handler is a function that performs the filter action\n on a specific dimension. Using a custom filter handler allows you to perform additional logic\n before or after filtering.\n\n ```js\n // default filter handler\n function(dimension, filter){\n dimension.filter(filter); // perform filtering\n return filter; // return the actual filter value\n }\n\n // custom filter handler\n chart.filterHandler(function(dimension, filter){\n var newFilter = filter + 10;\n dimension.filter(newFilter);\n return newFilter; // set the actual filter value to the new value\n });\n ```\n\n **/\n _chart.filterHandler = function (_) {\n if (!arguments.length) {\n return _filterHandler;\n }\n _filterHandler = _;\n return _chart;\n };\n\n // abstract function stub\n _chart._doRender = function () {\n // do nothing in base, should be overridden by sub-function\n return _chart;\n };\n\n _chart._doRedraw = function () {\n // do nothing in base, should be overridden by sub-function\n return _chart;\n };\n\n _chart.legendables = function () {\n // do nothing in base, should be overridden by sub-function\n return [];\n };\n\n _chart.legendHighlight = function () {\n // do nothing in base, should be overridden by sub-function\n };\n\n _chart.legendReset = function () {\n // do nothing in base, should be overridden by sub-function\n };\n\n _chart.legendToggle = function () {\n // do nothing in base, should be overriden by sub-function\n };\n\n _chart.isLegendableHidden = function () {\n // do nothing in base, should be overridden by sub-function\n return false;\n };\n\n /**\n #### .keyAccessor([keyAccessorFunction])\n Set or get the key accessor function. The key accessor function is used to retrieve the key\n value from the crossfilter group. Key values are used differently in different charts, for\n example keys correspond to slices in a pie chart and x axis positions in a grid coordinate chart.\n ```js\n // default key accessor\n chart.keyAccessor(function(d) { return d.key; });\n // custom key accessor for a multi-value crossfilter reduction\n chart.keyAccessor(function(p) { return p.value.absGain; });\n ```\n\n **/\n _chart.keyAccessor = function (_) {\n if (!arguments.length) {\n return _keyAccessor;\n }\n _keyAccessor = _;\n return _chart;\n };\n\n /**\n #### .valueAccessor([valueAccessorFunction])\n Set or get the value accessor function. The value accessor function is used to retrieve the\n value from the crossfilter group. Group values are used differently in different charts, for\n example values correspond to slice sizes in a pie chart and y axis positions in a grid\n coordinate chart.\n ```js\n // default value accessor\n chart.valueAccessor(function(d) { return d.value; });\n // custom value accessor for a multi-value crossfilter reduction\n chart.valueAccessor(function(p) { return p.value.percentageGain; });\n ```\n\n **/\n _chart.valueAccessor = function (_) {\n if (!arguments.length) {\n return _valueAccessor;\n }\n _valueAccessor = _;\n return _chart;\n };\n\n /**\n #### .label([labelFunction])\n Set or get the label function. The chart class will use this function to render labels for each\n child element in the chart, e.g. slices in a pie chart or bubbles in a bubble chart. Not every\n chart supports the label function for example bar chart and line chart do not use this function\n at all.\n ```js\n // default label function just return the key\n chart.label(function(d) { return d.key; });\n // label function has access to the standard d3 data binding and can get quite complicated\n chart.label(function(d) { return d.data.key + '(' + Math.floor(d.data.value / all.value() * 100) + '%)'; });\n ```\n\n **/\n _chart.label = function (_) {\n if (!arguments.length) {\n return _label;\n }\n _label = _;\n _renderLabel = true;\n return _chart;\n };\n\n /**\n #### .renderLabel(boolean)\n Turn on/off label rendering\n\n **/\n _chart.renderLabel = function (_) {\n if (!arguments.length) {\n return _renderLabel;\n }\n _renderLabel = _;\n return _chart;\n };\n\n /**\n #### .title([titleFunction])\n Set or get the title function. The chart class will use this function to render the svg title\n (usually interpreted by browser as tooltips) for each child element in the chart, e.g. a slice\n in a pie chart or a bubble in a bubble chart. Almost every chart supports the title function;\n however in grid coordinate charts you need to turn off the brush in order to see titles, because\n otherwise the brush layer will block tooltip triggering.\n ```js\n // default title function just return the key\n chart.title(function(d) { return d.key + ': ' + d.value; });\n // title function has access to the standard d3 data binding and can get quite complicated\n chart.title(function(p) {\n return p.key.getFullYear()\n + '\\n'\n + 'Index Gain: ' + numberFormat(p.value.absGain) + '\\n'\n + 'Index Gain in Percentage: ' + numberFormat(p.value.percentageGain) + '%\\n'\n + 'Fluctuation / Index Ratio: ' + numberFormat(p.value.fluctuationPercentage) + '%';\n });\n ```\n\n **/\n _chart.title = function (_) {\n if (!arguments.length) {\n return _title;\n }\n _title = _;\n return _chart;\n };\n\n /**\n #### .renderTitle(boolean)\n Turn on/off title rendering, or return the state of the render title flag if no arguments are\n given.\n\n **/\n _chart.renderTitle = function (_) {\n if (!arguments.length) {\n return _renderTitle;\n }\n _renderTitle = _;\n return _chart;\n };\n\n /**\n #### .renderlet(renderletFunction)\n A renderlet is similar to an event listener on rendering event. Multiple renderlets can be added\n to an individual chart. Each time a chart is rerendered or redrawn the renderlets are invoked\n right after the chart finishes its own drawing routine, giving you a way to modify the svg\n elements. Renderlet functions take the chart instance as the only input parameter and you can\n use the dc API or use raw d3 to achieve pretty much any effect.\n\n @Deprecated - Use [Listeners](#Listeners) with a 'renderlet' prefix\n Generates a random key for the renderlet, which makes it hard for removal.\n ```js\n // renderlet function\n chart.renderlet(function(chart){\n // mix of dc API and d3 manipulation\n chart.select('g.y').style('display', 'none');\n // its a closure so you can also access other chart variable available in the closure scope\n moveChart.filter(chart.filter());\n });\n ```\n\n **/\n _chart.renderlet = dc.logger.deprecate(function (_) {\n _chart.on('renderlet.' + dc.utils.uniqueId(), _);\n return _chart;\n }, 'chart.renderlet has been deprecated. Please use chart.on(\"renderlet.\", renderletFunction)');\n\n /**\n #### .chartGroup([group])\n Get or set the chart group to which this chart belongs. Chart groups are rendered or redrawn\n together since it is expected they share the same underlying crossfilter data set.\n **/\n _chart.chartGroup = function (_) {\n if (!arguments.length) {\n return _chartGroup;\n }\n if (!_isChild) {\n dc.deregisterChart(_chart, _chartGroup);\n }\n _chartGroup = _;\n if (!_isChild) {\n dc.registerChart(_chart, _chartGroup);\n }\n return _chart;\n };\n\n /**\n #### .expireCache()\n Expire the internal chart cache. dc charts cache some data internally on a per chart basis to\n speed up rendering and avoid unnecessary calculation; however it might be useful to clear the\n cache if you have changed state which will affect rendering. For example if you invoke the\n `crossfilter.add` function or reset group or dimension after rendering it is a good idea to\n clear the cache to make sure charts are rendered properly.\n\n **/\n _chart.expireCache = function () {\n // do nothing in base, should be overridden by sub-function\n return _chart;\n };\n\n /**\n #### .legend([dc.legend])\n Attach a dc.legend widget to this chart. The legend widget will automatically draw legend labels\n based on the color setting and names associated with each group.\n\n ```js\n chart.legend(dc.legend().x(400).y(10).itemHeight(13).gap(5))\n ```\n\n **/\n _chart.legend = function (l) {\n if (!arguments.length) {\n return _legend;\n }\n _legend = l;\n _legend.parent(_chart);\n return _chart;\n };\n\n /**\n #### .chartID()\n Returns the internal numeric ID of the chart.\n **/\n _chart.chartID = function () {\n return _chart.__dcFlag__;\n };\n\n /**\n #### .options(optionsObject)\n Set chart options using a configuration object. Each key in the object will cause the method of\n the same name to be called with the value to set that attribute for the chart.\n\n Example:\n ```\n chart.options({dimension: myDimension, group: myGroup});\n ```\n **/\n _chart.options = function (opts) {\n for (var o in opts) {\n if (typeof(_chart[o]) === 'function') {\n _chart[o].call(_chart, opts[o]);\n } else {\n dc.logger.debug('Not a valid option setter name: ' + o);\n }\n }\n return _chart;\n };\n\n /**\n ## Listeners\n All dc chart instance supports the following listeners.\n\n #### .on('renderlet', function(chart, filter){...})\n This listener function will be invoked after transitions after redraw and render. Replaces the\n deprecated `.renderlet()` method.\n\n #### .on('preRender', function(chart){...})\n This listener function will be invoked before chart rendering.\n\n #### .on('postRender', function(chart){...})\n This listener function will be invoked after chart finish rendering including all renderlets' logic.\n\n #### .on('preRedraw', function(chart){...})\n This listener function will be invoked before chart redrawing.\n\n #### .on('postRedraw', function(chart){...})\n This listener function will be invoked after chart finish redrawing including all renderlets' logic.\n\n #### .on('filtered', function(chart, filter){...})\n This listener function will be invoked after a filter is applied, added or removed.\n\n #### .on('zoomed', function(chart, filter){...})\n This listener function will be invoked after a zoom is triggered.\n\n **/\n _chart.on = function (event, listener) {\n _listeners.on(event, listener);\n return _chart;\n };\n\n return _chart;\n};\n","/**\n## Margin Mixin\nMargin is a mixin that provides margin utility functions for both the Row Chart and Coordinate Grid\nCharts.\n\n**/\ndc.marginMixin = function (_chart) {\n var _margin = {top: 10, right: 50, bottom: 30, left: 30};\n\n /**\n #### .margins([margins])\n Get or set the margins for a particular coordinate grid chart instance. The margins is stored as\n an associative Javascript array. Default margins: {top: 10, right: 50, bottom: 30, left: 30}.\n\n The margins can be accessed directly from the getter.\n ```js\n var leftMargin = chart.margins().left; // 30 by default\n chart.margins().left = 50;\n leftMargin = chart.margins().left; // now 50\n ```\n\n **/\n _chart.margins = function (m) {\n if (!arguments.length) {\n return _margin;\n }\n _margin = m;\n return _chart;\n };\n\n _chart.effectiveWidth = function () {\n return _chart.width() - _chart.margins().left - _chart.margins().right;\n };\n\n _chart.effectiveHeight = function () {\n return _chart.height() - _chart.margins().top - _chart.margins().bottom;\n };\n\n return _chart;\n};\n","/**\n## Color Mixin\nThe Color Mixin is an abstract chart functional class providing universal coloring support\nas a mix-in for any concrete chart implementation.\n\n**/\n\ndc.colorMixin = function (_chart) {\n var _colors = d3.scale.category20c();\n var _defaultAccessor = true;\n\n var _colorAccessor = function (d) { return _chart.keyAccessor()(d); };\n\n /**\n #### .colors([colorScale])\n Retrieve current color scale or set a new color scale. This methods accepts any function that\n operates like a d3 scale. If not set the default is\n `d3.scale.category20c()`.\n ```js\n // alternate categorical scale\n chart.colors(d3.scale.category20b());\n\n // ordinal scale\n chart.colors(d3.scale.ordinal().range(['red','green','blue']));\n // convenience method, the same as above\n chart.ordinalColors(['red','green','blue']);\n\n // set a linear scale\n chart.linearColors([\"#4575b4\", \"#ffffbf\", \"#a50026\"]);\n ```\n **/\n _chart.colors = function (_) {\n if (!arguments.length) {\n return _colors;\n }\n if (_ instanceof Array) {\n _colors = d3.scale.quantize().range(_); // deprecated legacy support, note: this fails for ordinal domains\n } else {\n _colors = d3.functor(_);\n }\n return _chart;\n };\n\n /**\n #### .ordinalColors(r)\n Convenience method to set the color scale to d3.scale.ordinal with range `r`.\n\n **/\n _chart.ordinalColors = function (r) {\n return _chart.colors(d3.scale.ordinal().range(r));\n };\n\n /**\n #### .linearColors(r)\n Convenience method to set the color scale to an Hcl interpolated linear scale with range `r`.\n\n **/\n _chart.linearColors = function (r) {\n return _chart.colors(d3.scale.linear()\n .range(r)\n .interpolate(d3.interpolateHcl));\n };\n\n /**\n #### .colorAccessor([colorAccessorFunction])\n Set or the get color accessor function. This function will be used to map a data point in a\n crossfilter group to a color value on the color scale. The default function uses the key\n accessor.\n ```js\n // default index based color accessor\n .colorAccessor(function (d, i){return i;})\n // color accessor for a multi-value crossfilter reduction\n .colorAccessor(function (d){return d.value.absGain;})\n ```\n **/\n _chart.colorAccessor = function (_) {\n if (!arguments.length) {\n return _colorAccessor;\n }\n _colorAccessor = _;\n _defaultAccessor = false;\n return _chart;\n };\n\n // what is this?\n _chart.defaultColorAccessor = function () {\n return _defaultAccessor;\n };\n\n /**\n #### .colorDomain([domain])\n Set or get the current domain for the color mapping function. The domain must be supplied as an\n array.\n\n Note: previously this method accepted a callback function. Instead you may use a custom scale\n set by `.colors`.\n\n **/\n _chart.colorDomain = function (_) {\n if (!arguments.length) {\n return _colors.domain();\n }\n _colors.domain(_);\n return _chart;\n };\n\n /**\n #### .calculateColorDomain()\n Set the domain by determining the min and max values as retrieved by `.colorAccessor` over the\n chart's dataset.\n\n **/\n _chart.calculateColorDomain = function () {\n var newDomain = [d3.min(_chart.data(), _chart.colorAccessor()),\n d3.max(_chart.data(), _chart.colorAccessor())];\n _colors.domain(newDomain);\n return _chart;\n };\n\n /**\n #### .getColor(d [, i])\n Get the color for the datum d and counter i. This is used internally by charts to retrieve a color.\n\n **/\n _chart.getColor = function (d, i) {\n return _colors(_colorAccessor.call(this, d, i));\n };\n\n /**\n #### .colorCalculator([value])\n Gets or sets chart.getColor.\n **/\n _chart.colorCalculator = function (_) {\n if (!arguments.length) {\n return _chart.getColor;\n }\n _chart.getColor = _;\n return _chart;\n };\n\n return _chart;\n};\n","/**\n## Coordinate Grid Mixin\nIncludes: [Color Mixin](#color-mixin), [Margin Mixin](#margin-mixin), [Base Mixin](#base-mixin)\n\nCoordinate Grid is an abstract base chart designed to support a number of coordinate grid based\nconcrete chart types, e.g. bar chart, line chart, and bubble chart.\n\n**/\ndc.coordinateGridMixin = function (_chart) {\n var GRID_LINE_CLASS = 'grid-line';\n var HORIZONTAL_CLASS = 'horizontal';\n var VERTICAL_CLASS = 'vertical';\n var Y_AXIS_LABEL_CLASS = 'y-axis-label';\n var X_AXIS_LABEL_CLASS = 'x-axis-label';\n var DEFAULT_AXIS_LABEL_PADDING = 12;\n\n _chart = dc.colorMixin(dc.marginMixin(dc.baseMixin(_chart)));\n\n _chart.colors(d3.scale.category10());\n _chart._mandatoryAttributes().push('x');\n\n function zoomHandler () {\n _refocused = true;\n if (_zoomOutRestrict) {\n _chart.x().domain(constrainRange(_chart.x().domain(), _xOriginalDomain));\n if (_rangeChart) {\n _chart.x().domain(constrainRange(_chart.x().domain(), _rangeChart.x().domain()));\n }\n }\n\n var domain = _chart.x().domain();\n var domFilter = dc.filters.RangedFilter(domain[0], domain[1]);\n\n _chart.replaceFilter(domFilter);\n _chart.rescale();\n _chart.redraw();\n\n if (_rangeChart && !rangesEqual(_chart.filter(), _rangeChart.filter())) {\n dc.events.trigger(function () {\n _rangeChart.replaceFilter(domFilter);\n _rangeChart.redraw();\n });\n }\n\n _chart._invokeZoomedListener();\n\n dc.events.trigger(function () {\n _chart.redrawGroup();\n }, dc.constants.EVENT_DELAY);\n\n _refocused = !rangesEqual(domain, _xOriginalDomain);\n }\n\n var _parent;\n var _g;\n var _chartBodyG;\n\n var _x;\n var _xOriginalDomain;\n var _xAxis = d3.svg.axis().orient('bottom');\n var _xUnits = dc.units.integers;\n var _xAxisPadding = 0;\n var _xElasticity = false;\n var _xAxisLabel;\n var _xAxisLabelPadding = 0;\n var _lastXDomain;\n\n var _y;\n var _yAxis = d3.svg.axis().orient('left');\n var _yAxisPadding = 0;\n var _yElasticity = false;\n var _yAxisLabel;\n var _yAxisLabelPadding = 0;\n\n var _brush = d3.svg.brush();\n var _brushOn = true;\n var _round;\n\n var _renderHorizontalGridLine = false;\n var _renderVerticalGridLine = false;\n\n var _refocused = false;\n var _unitCount;\n\n var _zoomScale = [1, Infinity];\n var _zoomOutRestrict = true;\n\n var _zoom = d3.behavior.zoom().on('zoom', zoomHandler);\n var _nullZoom = d3.behavior.zoom().on('zoom', null);\n var _hasBeenMouseZoomable = false;\n\n var _rangeChart;\n var _focusChart;\n\n var _mouseZoomable = false;\n var _clipPadding = 0;\n\n var _outerRangeBandPadding = 0.5;\n var _rangeBandPadding = 0;\n\n var _useRightYAxis = false;\n\n _chart.rescale = function () {\n _unitCount = undefined;\n };\n\n /**\n #### .rangeChart([chart])\n Get or set the range selection chart associated with this instance. Setting the range selection\n chart using this function will automatically update its selection brush when the current chart\n zooms in. In return the given range chart will also automatically attach this chart as its focus\n chart hence zoom in when range brush updates. See the [Nasdaq 100\n Index](http://dc-js.github.com/dc.js/) example for this effect in action.\n\n **/\n _chart.rangeChart = function (_) {\n if (!arguments.length) {\n return _rangeChart;\n }\n _rangeChart = _;\n _rangeChart.focusChart(_chart);\n return _chart;\n };\n\n /**\n #### .zoomScale([extent])\n Get or set the scale extent for mouse zooms.\n\n **/\n _chart.zoomScale = function (_) {\n if (!arguments.length) {\n return _zoomScale;\n }\n _zoomScale = _;\n return _chart;\n };\n\n /**\n #### .zoomOutRestrict([true/false])\n Get or set the zoom restriction for the chart. If true limits the zoom to origional domain of the chart.\n **/\n _chart.zoomOutRestrict = function (r) {\n if (!arguments.length) {\n return _zoomOutRestrict;\n }\n _zoomScale[0] = r ? 1 : 0;\n _zoomOutRestrict = r;\n return _chart;\n };\n\n _chart._generateG = function (parent) {\n if (parent === undefined) {\n _parent = _chart.svg();\n } else {\n _parent = parent;\n }\n\n _g = _parent.append('g');\n\n _chartBodyG = _g.append('g').attr('class', 'chart-body')\n .attr('transform', 'translate(' + _chart.margins().left + ', ' + _chart.margins().top + ')')\n .attr('clip-path', 'url(#' + getClipPathId() + ')');\n\n return _g;\n };\n\n /**\n #### .g([gElement])\n Get or set the root g element. This method is usually used to retrieve the g element in order to\n overlay custom svg drawing programatically. **Caution**: The root g element is usually generated\n by dc.js internals, and resetting it might produce unpredictable result.\n\n **/\n _chart.g = function (_) {\n if (!arguments.length) {\n return _g;\n }\n _g = _;\n return _chart;\n };\n\n /**\n #### .mouseZoomable([boolean])\n Set or get mouse zoom capability flag (default: false). When turned on the chart will be\n zoomable using the mouse wheel. If the range selector chart is attached zooming will also update\n the range selection brush on the associated range selector chart.\n\n **/\n _chart.mouseZoomable = function (z) {\n if (!arguments.length) {\n return _mouseZoomable;\n }\n _mouseZoomable = z;\n return _chart;\n };\n\n /**\n #### .chartBodyG()\n Retrieve the svg group for the chart body.\n **/\n _chart.chartBodyG = function (_) {\n if (!arguments.length) {\n return _chartBodyG;\n }\n _chartBodyG = _;\n return _chart;\n };\n\n /**\n #### .x([xScale]) - **mandatory**\n Get or set the x scale. The x scale can be any d3\n [quantitive scale](https://github.com/mbostock/d3/wiki/Quantitative-Scales) or\n [ordinal scale](https://github.com/mbostock/d3/wiki/Ordinal-Scales).\n ```js\n // set x to a linear scale\n chart.x(d3.scale.linear().domain([-2500, 2500]))\n // set x to a time scale to generate histogram\n chart.x(d3.time.scale().domain([new Date(1985, 0, 1), new Date(2012, 11, 31)]))\n ```\n\n **/\n _chart.x = function (_) {\n if (!arguments.length) {\n return _x;\n }\n _x = _;\n _xOriginalDomain = _x.domain();\n return _chart;\n };\n\n _chart.xOriginalDomain = function () {\n return _xOriginalDomain;\n };\n\n /**\n #### .xUnits([xUnits function])\n Set or get the xUnits function. The coordinate grid chart uses the xUnits function to calculate\n the number of data projections on x axis such as the number of bars for a bar chart or the\n number of dots for a line chart. This function is expected to return a Javascript array of all\n data points on x axis, or the number of points on the axis. [d3 time range functions\n d3.time.days, d3.time.months, and\n d3.time.years](https://github.com/mbostock/d3/wiki/Time-Intervals#aliases) are all valid xUnits\n function. dc.js also provides a few units function, see the [Utilities](#utilities) section for\n a list of built-in units functions. The default xUnits function is dc.units.integers.\n ```js\n // set x units to count days\n chart.xUnits(d3.time.days);\n // set x units to count months\n chart.xUnits(d3.time.months);\n ```\n A custom xUnits function can be used as long as it follows the following interface:\n ```js\n // units in integer\n function(start, end, xDomain) {\n // simply calculates how many integers in the domain\n return Math.abs(end - start);\n };\n\n // fixed units\n function(start, end, xDomain) {\n // be aware using fixed units will disable the focus/zoom ability on the chart\n return 1000;\n };\n ```\n\n **/\n _chart.xUnits = function (_) {\n if (!arguments.length) {\n return _xUnits;\n }\n _xUnits = _;\n return _chart;\n };\n\n /**\n #### .xAxis([xAxis])\n Set or get the x axis used by a particular coordinate grid chart instance. This function is most\n useful when x axis customization is required. The x axis in dc.js is an instance of a [d3\n axis object](https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-axis); therefore it supports any\n valid d3 axis manipulation. **Caution**: The x axis is usually generated internally by dc;\n resetting it may cause unexpected results.\n ```js\n // customize x axis tick format\n chart.xAxis().tickFormat(function(v) {return v + '%';});\n // customize x axis tick values\n chart.xAxis().tickValues([0, 100, 200, 300]);\n ```\n\n **/\n _chart.xAxis = function (_) {\n if (!arguments.length) {\n return _xAxis;\n }\n _xAxis = _;\n return _chart;\n };\n\n /**\n #### .elasticX([boolean])\n Turn on/off elastic x axis behavior. If x axis elasticity is turned on, then the grid chart will\n attempt to recalculate the x axis range whenever a redraw event is triggered.\n\n **/\n _chart.elasticX = function (_) {\n if (!arguments.length) {\n return _xElasticity;\n }\n _xElasticity = _;\n return _chart;\n };\n\n /**\n #### .xAxisPadding([padding])\n Set or get x axis padding for the elastic x axis. The padding will be added to both end of the x\n axis if elasticX is turned on; otherwise it is ignored.\n\n * padding can be an integer or percentage in string (e.g. '10%'). Padding can be applied to\n number or date x axes. When padding a date axis, an integer represents number of days being padded\n and a percentage string will be treated the same as an integer.\n\n **/\n _chart.xAxisPadding = function (_) {\n if (!arguments.length) {\n return _xAxisPadding;\n }\n _xAxisPadding = _;\n return _chart;\n };\n\n /**\n #### .xUnitCount()\n Returns the number of units displayed on the x axis using the unit measure configured by\n .xUnits.\n **/\n _chart.xUnitCount = function () {\n if (_unitCount === undefined) {\n var units = _chart.xUnits()(_chart.x().domain()[0], _chart.x().domain()[1], _chart.x().domain());\n\n if (units instanceof Array) {\n _unitCount = units.length;\n } else {\n _unitCount = units;\n }\n }\n\n return _unitCount;\n };\n /**\n #### .useRightYAxis()\n Gets or sets whether the chart should be drawn with a right axis instead of a left axis. When\n used with a chart in a composite chart, allows both left and right Y axes to be shown on a\n chart.\n **/\n\n _chart.useRightYAxis = function (_) {\n if (!arguments.length) {\n return _useRightYAxis;\n }\n _useRightYAxis = _;\n return _chart;\n };\n\n /**\n #### isOrdinal()\n Returns true if the chart is using ordinal xUnits ([dc.units.ordinal](#dcunitsordinal)), or false\n otherwise. Most charts behave differently with ordinal data and use the result of this method to\n trigger the appropriate logic.\n **/\n _chart.isOrdinal = function () {\n return _chart.xUnits() === dc.units.ordinal;\n };\n\n _chart._useOuterPadding = function () {\n return true;\n };\n\n _chart._ordinalXDomain = function () {\n var groups = _chart._computeOrderedGroups(_chart.data());\n return groups.map(_chart.keyAccessor());\n };\n\n function prepareXAxis(g) {\n if (!_chart.isOrdinal()) {\n if (_chart.elasticX()) {\n _x.domain([_chart.xAxisMin(), _chart.xAxisMax()]);\n }\n }\n else { // _chart.isOrdinal()\n if (_chart.elasticX() || _x.domain().length === 0) {\n _x.domain(_chart._ordinalXDomain());\n }\n }\n\n // has the domain changed?\n var xdom = _x.domain();\n if (!_lastXDomain || xdom.some(function (elem, i) { return elem !== _lastXDomain[i]; })) {\n _chart.rescale();\n }\n _lastXDomain = xdom;\n\n // please can't we always use rangeBands for bar charts?\n if (_chart.isOrdinal()) {\n _x.rangeBands([0, _chart.xAxisLength()], _rangeBandPadding,\n _chart._useOuterPadding() ? _outerRangeBandPadding : 0);\n } else {\n _x.range([0, _chart.xAxisLength()]);\n }\n\n _xAxis = _xAxis.scale(_chart.x());\n\n renderVerticalGridLines(g);\n }\n\n _chart.renderXAxis = function (g) {\n var axisXG = g.selectAll('g.x');\n\n if (axisXG.empty()) {\n axisXG = g.append('g')\n .attr('class', 'axis x')\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart._xAxisY() + ')');\n }\n\n var axisXLab = g.selectAll('text.' + X_AXIS_LABEL_CLASS);\n if (axisXLab.empty() && _chart.xAxisLabel()) {\n axisXLab = g.append('text')\n .attr('transform', 'translate(' + (_chart.margins().left + _chart.xAxisLength() / 2) + ',' +\n (_chart.height() - _xAxisLabelPadding) + ')')\n .attr('class', X_AXIS_LABEL_CLASS)\n .attr('text-anchor', 'middle')\n .text(_chart.xAxisLabel());\n }\n if (_chart.xAxisLabel() && axisXLab.text() !== _chart.xAxisLabel()) {\n axisXLab.text(_chart.xAxisLabel());\n }\n\n dc.transition(axisXG, _chart.transitionDuration())\n .call(_xAxis);\n };\n\n function renderVerticalGridLines(g) {\n var gridLineG = g.selectAll('g.' + VERTICAL_CLASS);\n\n if (_renderVerticalGridLine) {\n if (gridLineG.empty()) {\n gridLineG = g.insert('g', ':first-child')\n .attr('class', GRID_LINE_CLASS + ' ' + VERTICAL_CLASS)\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')');\n }\n\n var ticks = _xAxis.tickValues() ? _xAxis.tickValues() :\n (typeof _x.ticks === 'function' ? _x.ticks(_xAxis.ticks()[0]) : _x.domain());\n\n var lines = gridLineG.selectAll('line')\n .data(ticks);\n\n // enter\n var linesGEnter = lines.enter()\n .append('line')\n .attr('x1', function (d) {\n return _x(d);\n })\n .attr('y1', _chart._xAxisY() - _chart.margins().top)\n .attr('x2', function (d) {\n return _x(d);\n })\n .attr('y2', 0)\n .attr('opacity', 0);\n dc.transition(linesGEnter, _chart.transitionDuration())\n .attr('opacity', 1);\n\n // update\n dc.transition(lines, _chart.transitionDuration())\n .attr('x1', function (d) {\n return _x(d);\n })\n .attr('y1', _chart._xAxisY() - _chart.margins().top)\n .attr('x2', function (d) {\n return _x(d);\n })\n .attr('y2', 0);\n\n // exit\n lines.exit().remove();\n }\n else {\n gridLineG.selectAll('line').remove();\n }\n }\n\n _chart._xAxisY = function () {\n return (_chart.height() - _chart.margins().bottom);\n };\n\n _chart.xAxisLength = function () {\n return _chart.effectiveWidth();\n };\n\n /**\n #### .xAxisLabel([labelText, [, padding]])\n Set or get the x axis label. If setting the label, you may optionally include additional padding to\n the margin to make room for the label. By default the padded is set to 12 to accomodate the text height.\n **/\n _chart.xAxisLabel = function (_, padding) {\n if (!arguments.length) {\n return _xAxisLabel;\n }\n _xAxisLabel = _;\n _chart.margins().bottom -= _xAxisLabelPadding;\n _xAxisLabelPadding = (padding === undefined) ? DEFAULT_AXIS_LABEL_PADDING : padding;\n _chart.margins().bottom += _xAxisLabelPadding;\n return _chart;\n };\n\n _chart._prepareYAxis = function (g) {\n if (_y === undefined || _chart.elasticY()) {\n _y = d3.scale.linear();\n var min = _chart.yAxisMin() || 0,\n max = _chart.yAxisMax() || 0;\n _y.domain([min, max]).rangeRound([_chart.yAxisHeight(), 0]);\n }\n\n _y.range([_chart.yAxisHeight(), 0]);\n _yAxis = _yAxis.scale(_y);\n\n if (_useRightYAxis) {\n _yAxis.orient('right');\n }\n\n _chart._renderHorizontalGridLinesForAxis(g, _y, _yAxis);\n };\n\n _chart.renderYAxisLabel = function (axisClass, text, rotation, labelXPosition) {\n labelXPosition = labelXPosition || _yAxisLabelPadding;\n\n var axisYLab = _chart.g().selectAll('text.' + Y_AXIS_LABEL_CLASS + '.' + axisClass + '-label');\n if (axisYLab.empty() && text) {\n\n var labelYPosition = (_chart.margins().top + _chart.yAxisHeight() / 2);\n axisYLab = _chart.g().append('text')\n .attr('transform', 'translate(' + labelXPosition + ',' + labelYPosition + '),rotate(' + rotation + ')')\n .attr('class', Y_AXIS_LABEL_CLASS + ' ' + axisClass + '-label')\n .attr('text-anchor', 'middle')\n .text(text);\n }\n if (text && axisYLab.text() !== text) {\n axisYLab.text(text);\n }\n };\n\n _chart.renderYAxisAt = function (axisClass, axis, position) {\n var axisYG = _chart.g().selectAll('g.' + axisClass);\n if (axisYG.empty()) {\n axisYG = _chart.g().append('g')\n .attr('class', 'axis ' + axisClass)\n .attr('transform', 'translate(' + position + ',' + _chart.margins().top + ')');\n }\n\n dc.transition(axisYG, _chart.transitionDuration()).call(axis);\n };\n\n _chart.renderYAxis = function () {\n var axisPosition = _useRightYAxis ? (_chart.width() - _chart.margins().right) : _chart._yAxisX();\n _chart.renderYAxisAt('y', _yAxis, axisPosition);\n var labelPosition = _useRightYAxis ? (_chart.width() - _yAxisLabelPadding) : _yAxisLabelPadding;\n var rotation = _useRightYAxis ? 90 : -90;\n _chart.renderYAxisLabel('y', _chart.yAxisLabel(), rotation, labelPosition);\n };\n\n _chart._renderHorizontalGridLinesForAxis = function (g, scale, axis) {\n var gridLineG = g.selectAll('g.' + HORIZONTAL_CLASS);\n\n if (_renderHorizontalGridLine) {\n var ticks = axis.tickValues() ? axis.tickValues() : scale.ticks(axis.ticks()[0]);\n\n if (gridLineG.empty()) {\n gridLineG = g.insert('g', ':first-child')\n .attr('class', GRID_LINE_CLASS + ' ' + HORIZONTAL_CLASS)\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')');\n }\n\n var lines = gridLineG.selectAll('line')\n .data(ticks);\n\n // enter\n var linesGEnter = lines.enter()\n .append('line')\n .attr('x1', 1)\n .attr('y1', function (d) {\n return scale(d);\n })\n .attr('x2', _chart.xAxisLength())\n .attr('y2', function (d) {\n return scale(d);\n })\n .attr('opacity', 0);\n dc.transition(linesGEnter, _chart.transitionDuration())\n .attr('opacity', 1);\n\n // update\n dc.transition(lines, _chart.transitionDuration())\n .attr('x1', 1)\n .attr('y1', function (d) {\n return scale(d);\n })\n .attr('x2', _chart.xAxisLength())\n .attr('y2', function (d) {\n return scale(d);\n });\n\n // exit\n lines.exit().remove();\n }\n else {\n gridLineG.selectAll('line').remove();\n }\n };\n\n _chart._yAxisX = function () {\n return _chart.useRightYAxis() ? _chart.width() - _chart.margins().right : _chart.margins().left;\n };\n\n /**\n #### .yAxisLabel([labelText, [, padding]])\n Set or get the y axis label. If setting the label, you may optionally include additional padding\n to the margin to make room for the label. By default the padded is set to 12 to accomodate the\n text height.\n **/\n _chart.yAxisLabel = function (_, padding) {\n if (!arguments.length) {\n return _yAxisLabel;\n }\n _yAxisLabel = _;\n _chart.margins().left -= _yAxisLabelPadding;\n _yAxisLabelPadding = (padding === undefined) ? DEFAULT_AXIS_LABEL_PADDING : padding;\n _chart.margins().left += _yAxisLabelPadding;\n return _chart;\n };\n\n /**\n #### .y([yScale])\n Get or set the y scale. The y scale is typically automatically determined by the chart implementation.\n\n **/\n _chart.y = function (_) {\n if (!arguments.length) {\n return _y;\n }\n _y = _;\n return _chart;\n };\n\n /**\n #### .yAxis([yAxis])\n Set or get the y axis used by the coordinate grid chart instance. This function is most useful\n when y axis customization is required. The y axis in dc.js is simply an instance of a [d3 axis\n object](https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-_axis); therefore it supports any\n valid d3 axis manipulation. **Caution**: The y axis is usually generated internally by dc;\n resetting it may cause unexpected results.\n ```js\n // customize y axis tick format\n chart.yAxis().tickFormat(function(v) {return v + '%';});\n // customize y axis tick values\n chart.yAxis().tickValues([0, 100, 200, 300]);\n ```\n\n **/\n _chart.yAxis = function (y) {\n if (!arguments.length) {\n return _yAxis;\n }\n _yAxis = y;\n return _chart;\n };\n\n /**\n #### .elasticY([boolean])\n Turn on/off elastic y axis behavior. If y axis elasticity is turned on, then the grid chart will\n attempt to recalculate the y axis range whenever a redraw event is triggered.\n\n **/\n _chart.elasticY = function (_) {\n if (!arguments.length) {\n return _yElasticity;\n }\n _yElasticity = _;\n return _chart;\n };\n\n /**\n #### .renderHorizontalGridLines([boolean])\n Turn on/off horizontal grid lines.\n\n **/\n _chart.renderHorizontalGridLines = function (_) {\n if (!arguments.length) {\n return _renderHorizontalGridLine;\n }\n _renderHorizontalGridLine = _;\n return _chart;\n };\n\n /**\n #### .renderVerticalGridLines([boolean])\n Turn on/off vertical grid lines.\n\n **/\n _chart.renderVerticalGridLines = function (_) {\n if (!arguments.length) {\n return _renderVerticalGridLine;\n }\n _renderVerticalGridLine = _;\n return _chart;\n };\n\n /**\n #### .xAxisMin()\n Calculates the minimum x value to display in the chart. Includes xAxisPadding if set.\n **/\n _chart.xAxisMin = function () {\n var min = d3.min(_chart.data(), function (e) {\n return _chart.keyAccessor()(e);\n });\n return dc.utils.subtract(min, _xAxisPadding);\n };\n\n /**\n #### .xAxisMax()\n Calculates the maximum x value to display in the chart. Includes xAxisPadding if set.\n **/\n _chart.xAxisMax = function () {\n var max = d3.max(_chart.data(), function (e) {\n return _chart.keyAccessor()(e);\n });\n return dc.utils.add(max, _xAxisPadding);\n };\n\n /**\n #### .yAxisMin()\n Calculates the minimum y value to display in the chart. Includes yAxisPadding if set.\n **/\n _chart.yAxisMin = function () {\n var min = d3.min(_chart.data(), function (e) {\n return _chart.valueAccessor()(e);\n });\n return dc.utils.subtract(min, _yAxisPadding);\n };\n\n /**\n #### .yAxisMax()\n Calculates the maximum y value to display in the chart. Includes yAxisPadding if set.\n **/\n _chart.yAxisMax = function () {\n var max = d3.max(_chart.data(), function (e) {\n return _chart.valueAccessor()(e);\n });\n return dc.utils.add(max, _yAxisPadding);\n };\n\n /**\n #### .yAxisPadding([padding])\n Set or get y axis padding for the elastic y axis. The padding will be added to the top of the y\n axis if elasticY is turned on; otherwise it is ignored.\n\n * padding can be an integer or percentage in string (e.g. '10%'). Padding can be applied to\n number or date axes. When padding a date axis, an integer represents number of days being padded\n and a percentage string will be treated the same as an integer.\n\n **/\n _chart.yAxisPadding = function (_) {\n if (!arguments.length) {\n return _yAxisPadding;\n }\n _yAxisPadding = _;\n return _chart;\n };\n\n _chart.yAxisHeight = function () {\n return _chart.effectiveHeight();\n };\n\n /**\n #### .round([rounding function])\n Set or get the rounding function used to quantize the selection when brushing is enabled.\n ```js\n // set x unit round to by month, this will make sure range selection brush will\n // select whole months\n chart.round(d3.time.month.round);\n ```\n\n **/\n _chart.round = function (_) {\n if (!arguments.length) {\n return _round;\n }\n _round = _;\n return _chart;\n };\n\n _chart._rangeBandPadding = function (_) {\n if (!arguments.length) {\n return _rangeBandPadding;\n }\n _rangeBandPadding = _;\n return _chart;\n };\n\n _chart._outerRangeBandPadding = function (_) {\n if (!arguments.length) {\n return _outerRangeBandPadding;\n }\n _outerRangeBandPadding = _;\n return _chart;\n };\n\n dc.override(_chart, 'filter', function (_) {\n if (!arguments.length) {\n return _chart._filter();\n }\n\n _chart._filter(_);\n\n if (_) {\n _chart.brush().extent(_);\n } else {\n _chart.brush().clear();\n }\n\n return _chart;\n });\n\n _chart.brush = function (_) {\n if (!arguments.length) {\n return _brush;\n }\n _brush = _;\n return _chart;\n };\n\n function brushHeight() {\n return _chart._xAxisY() - _chart.margins().top;\n }\n\n _chart.renderBrush = function (g) {\n if (_brushOn) {\n _brush.on('brush', _chart._brushing);\n _brush.on('brushstart', _chart._disableMouseZoom);\n _brush.on('brushend', configureMouseZoom);\n\n var gBrush = g.append('g')\n .attr('class', 'brush')\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')')\n .call(_brush.x(_chart.x()));\n _chart.setBrushY(gBrush);\n _chart.setHandlePaths(gBrush);\n\n if (_chart.hasFilter()) {\n _chart.redrawBrush(g);\n }\n }\n };\n\n _chart.setHandlePaths = function (gBrush) {\n gBrush.selectAll('.resize').append('path').attr('d', _chart.resizeHandlePath);\n };\n\n _chart.setBrushY = function (gBrush) {\n gBrush.selectAll('rect').attr('height', brushHeight());\n };\n\n _chart.extendBrush = function () {\n var extent = _brush.extent();\n if (_chart.round()) {\n extent[0] = extent.map(_chart.round())[0];\n extent[1] = extent.map(_chart.round())[1];\n\n _g.select('.brush')\n .call(_brush.extent(extent));\n }\n return extent;\n };\n\n _chart.brushIsEmpty = function (extent) {\n return _brush.empty() || !extent || extent[1] <= extent[0];\n };\n\n _chart._brushing = function () {\n var extent = _chart.extendBrush();\n\n _chart.redrawBrush(_g);\n\n if (_chart.brushIsEmpty(extent)) {\n dc.events.trigger(function () {\n _chart.filter(null);\n _chart.redrawGroup();\n }, dc.constants.EVENT_DELAY);\n } else {\n var rangedFilter = dc.filters.RangedFilter(extent[0], extent[1]);\n\n dc.events.trigger(function () {\n _chart.replaceFilter(rangedFilter);\n _chart.redrawGroup();\n }, dc.constants.EVENT_DELAY);\n }\n };\n\n _chart.redrawBrush = function (g) {\n if (_brushOn) {\n if (_chart.filter() && _chart.brush().empty()) {\n _chart.brush().extent(_chart.filter());\n }\n\n var gBrush = g.select('g.brush');\n gBrush.call(_chart.brush().x(_chart.x()));\n _chart.setBrushY(gBrush);\n }\n\n _chart.fadeDeselectedArea();\n };\n\n _chart.fadeDeselectedArea = function () {\n // do nothing, sub-chart should override this function\n };\n\n // borrowed from Crossfilter example\n _chart.resizeHandlePath = function (d) {\n var e = +(d === 'e'), x = e ? 1 : -1, y = brushHeight() / 3;\n return 'M' + (0.5 * x) + ',' + y +\n 'A6,6 0 0 ' + e + ' ' + (6.5 * x) + ',' + (y + 6) +\n 'V' + (2 * y - 6) +\n 'A6,6 0 0 ' + e + ' ' + (0.5 * x) + ',' + (2 * y) +\n 'Z' +\n 'M' + (2.5 * x) + ',' + (y + 8) +\n 'V' + (2 * y - 8) +\n 'M' + (4.5 * x) + ',' + (y + 8) +\n 'V' + (2 * y - 8);\n };\n\n function getClipPathId() {\n return _chart.anchorName().replace(/[ .#]/g, '-') + '-clip';\n }\n\n /**\n #### .clipPadding([padding])\n Get or set the padding in pixels for the clip path. Once set padding will be applied evenly to\n the top, left, right, and bottom when the clip path is generated. If set to zero, the clip area\n will be exactly the chart body area minus the margins. Default: 5\n\n **/\n _chart.clipPadding = function (p) {\n if (!arguments.length) {\n return _clipPadding;\n }\n _clipPadding = p;\n return _chart;\n };\n\n function generateClipPath() {\n var defs = dc.utils.appendOrSelect(_parent, 'defs');\n // cannot select elements; bug in WebKit, must select by id\n // https://groups.google.com/forum/#!topic/d3-js/6EpAzQ2gU9I\n var id = getClipPathId();\n var chartBodyClip = dc.utils.appendOrSelect(defs, '#' + id, 'clipPath').attr('id', id);\n\n var padding = _clipPadding * 2;\n\n dc.utils.appendOrSelect(chartBodyClip, 'rect')\n .attr('width', _chart.xAxisLength() + padding)\n .attr('height', _chart.yAxisHeight() + padding)\n .attr('transform', 'translate(-' + _clipPadding + ', -' + _clipPadding + ')');\n }\n\n _chart._preprocessData = function () {};\n\n _chart._doRender = function () {\n _chart.resetSvg();\n\n _chart._preprocessData();\n\n _chart._generateG();\n generateClipPath();\n\n drawChart(true);\n\n configureMouseZoom();\n\n return _chart;\n };\n\n _chart._doRedraw = function () {\n _chart._preprocessData();\n\n drawChart(false);\n generateClipPath();\n\n return _chart;\n };\n\n function drawChart (render) {\n if (_chart.isOrdinal()) {\n _brushOn = false;\n }\n\n prepareXAxis(_chart.g());\n _chart._prepareYAxis(_chart.g());\n\n _chart.plotData();\n\n if (_chart.elasticX() || _refocused || render) {\n _chart.renderXAxis(_chart.g());\n }\n\n if (_chart.elasticY() || render) {\n _chart.renderYAxis(_chart.g());\n }\n\n if (render) {\n _chart.renderBrush(_chart.g());\n } else {\n _chart.redrawBrush(_chart.g());\n }\n }\n\n function configureMouseZoom () {\n if (_mouseZoomable) {\n _chart._enableMouseZoom();\n }\n else if (_hasBeenMouseZoomable) {\n _chart._disableMouseZoom();\n }\n }\n\n _chart._enableMouseZoom = function () {\n _hasBeenMouseZoomable = true;\n _zoom.x(_chart.x())\n .scaleExtent(_zoomScale)\n .size([_chart.width(), _chart.height()])\n .duration(_chart.transitionDuration());\n _chart.root().call(_zoom);\n };\n\n _chart._disableMouseZoom = function () {\n _chart.root().call(_nullZoom);\n };\n\n function constrainRange(range, constraint) {\n var constrainedRange = [];\n constrainedRange[0] = d3.max([range[0], constraint[0]]);\n constrainedRange[1] = d3.min([range[1], constraint[1]]);\n return constrainedRange;\n }\n\n /**\n #### .focus([range])\n Zoom this chart to focus on the given range. The given range should be an array containing only\n 2 elements (`[start, end]`) defining a range in the x domain. If the range is not given or set\n to null, then the zoom will be reset. _For focus to work elasticX has to be turned off;\n otherwise focus will be ignored._\n ```js\n chart.renderlet(function(chart){\n // smooth the rendering through event throttling\n dc.events.trigger(function(){\n // focus some other chart to the range selected by user on this chart\n someOtherChart.focus(chart.filter());\n });\n })\n ```\n\n **/\n _chart.focus = function (range) {\n if (hasRangeSelected(range)) {\n _chart.x().domain(range);\n } else {\n _chart.x().domain(_xOriginalDomain);\n }\n\n _zoom.x(_chart.x());\n zoomHandler();\n };\n\n _chart.refocused = function () {\n return _refocused;\n };\n\n _chart.focusChart = function (c) {\n if (!arguments.length) {\n return _focusChart;\n }\n _focusChart = c;\n _chart.on('filtered', function (chart) {\n if (!chart.filter()) {\n dc.events.trigger(function () {\n _focusChart.x().domain(_focusChart.xOriginalDomain());\n });\n } else if (!rangesEqual(chart.filter(), _focusChart.filter())) {\n dc.events.trigger(function () {\n _focusChart.focus(chart.filter());\n });\n }\n });\n return _chart;\n };\n\n function rangesEqual(range1, range2) {\n if (!range1 && !range2) {\n return true;\n }\n else if (!range1 || !range2) {\n return false;\n }\n else if (range1.length === 0 && range2.length === 0) {\n return true;\n }\n else if (range1[0].valueOf() === range2[0].valueOf() &&\n range1[1].valueOf() === range2[1].valueOf()) {\n return true;\n }\n return false;\n }\n\n /**\n #### .brushOn([boolean])\n Turn on/off the brush-based range filter. When brushing is on then user can drag the mouse\n across a chart with a quantitative scale to perform range filtering based on the extent of the\n brush, or click on the bars of an ordinal bar chart or slices of a pie chart to filter and\n unfilter them. However turning on the brush filter will disable other interactive elements on\n the chart such as highlighting, tool tips, and reference lines. Zooming will still be possible\n if enabled, but only via scrolling (panning will be disabled.) Default: true\n\n **/\n _chart.brushOn = function (_) {\n if (!arguments.length) {\n return _brushOn;\n }\n _brushOn = _;\n return _chart;\n };\n\n function hasRangeSelected(range) {\n return range instanceof Array && range.length > 1;\n }\n\n return _chart;\n};\n","/**\n## Stack Mixin\nStack Mixin is an mixin that provides cross-chart support of stackability using d3.layout.stack.\n\n**/\ndc.stackMixin = function (_chart) {\n\n function prepareValues (layer, layerIdx) {\n var valAccessor = layer.accessor || _chart.valueAccessor();\n layer.name = String(layer.name || layerIdx);\n layer.values = layer.group.all().map(function (d, i) {\n return {\n x: _chart.keyAccessor()(d, i),\n y: layer.hidden ? null : valAccessor(d, i),\n data: d,\n layer: layer.name,\n hidden: layer.hidden\n };\n });\n\n layer.values = layer.values.filter(domainFilter());\n return layer.values;\n }\n\n var _stackLayout = d3.layout.stack()\n .values(prepareValues);\n\n var _stack = [];\n var _titles = {};\n\n var _hidableStacks = false;\n\n function domainFilter() {\n if (!_chart.x()) {\n return d3.functor(true);\n }\n var xDomain = _chart.x().domain();\n if (_chart.isOrdinal()) {\n // TODO #416\n //var domainSet = d3.set(xDomain);\n return function () {\n return true; //domainSet.has(p.x);\n };\n }\n if (_chart.elasticX()) {\n return function () { return true; };\n }\n return function (p) {\n //return true;\n return p.x >= xDomain[0] && p.x <= xDomain[xDomain.length - 1];\n };\n }\n\n /**\n #### .stack(group[, name, accessor])\n Stack a new crossfilter group onto this chart with an optional custom value accessor. All stacks\n in the same chart will share the same key accessor and therefore the same set of keys.\n\n For example, in a stacked bar chart, the bars of each stack will be positioned using the same set\n of keys on the x axis, while stacked vertically. If name is specified then it will be used to\n generate the legend label.\n ```js\n // stack group using default accessor\n chart.stack(valueSumGroup)\n // stack group using custom accessor\n .stack(avgByDayGroup, function(d){return d.value.avgByDay;});\n ```\n\n **/\n _chart.stack = function (group, name, accessor) {\n if (!arguments.length) {\n return _stack;\n }\n\n if (arguments.length <= 2) {\n accessor = name;\n }\n\n var layer = {group:group};\n if (typeof name === 'string') {\n layer.name = name;\n }\n if (typeof accessor === 'function') {\n layer.accessor = accessor;\n }\n _stack.push(layer);\n\n return _chart;\n };\n\n dc.override(_chart, 'group', function (g, n, f) {\n if (!arguments.length) {\n return _chart._group();\n }\n _stack = [];\n _titles = {};\n _chart.stack(g, n);\n if (f) {\n _chart.valueAccessor(f);\n }\n return _chart._group(g, n);\n });\n\n /**\n #### .hidableStacks([boolean])\n Allow named stacks to be hidden or shown by clicking on legend items.\n This does not affect the behavior of hideStack or showStack.\n\n **/\n _chart.hidableStacks = function (_) {\n if (!arguments.length) {\n return _hidableStacks;\n }\n _hidableStacks = _;\n return _chart;\n };\n\n function findLayerByName(n) {\n var i = _stack.map(dc.pluck('name')).indexOf(n);\n return _stack[i];\n }\n\n /**\n #### .hideStack(name)\n Hide all stacks on the chart with the given name.\n The chart must be re-rendered for this change to appear.\n\n **/\n _chart.hideStack = function (stackName) {\n var layer = findLayerByName(stackName);\n if (layer) {\n layer.hidden = true;\n }\n return _chart;\n };\n\n /**\n #### .showStack(name)\n Show all stacks on the chart with the given name.\n The chart must be re-rendered for this change to appear.\n\n **/\n _chart.showStack = function (stackName) {\n var layer = findLayerByName(stackName);\n if (layer) {\n layer.hidden = false;\n }\n return _chart;\n };\n\n _chart.getValueAccessorByIndex = function (index) {\n return _stack[index].accessor || _chart.valueAccessor();\n };\n\n _chart.yAxisMin = function () {\n var min = d3.min(flattenStack(), function (p) {\n return (p.y + p.y0 < p.y0) ? (p.y + p.y0) : p.y0;\n });\n\n return dc.utils.subtract(min, _chart.yAxisPadding());\n\n };\n\n _chart.yAxisMax = function () {\n var max = d3.max(flattenStack(), function (p) {\n return p.y + p.y0;\n });\n\n return dc.utils.add(max, _chart.yAxisPadding());\n };\n\n function flattenStack() {\n var valueses = _chart.data().map(function (layer) { return layer.values; });\n return Array.prototype.concat.apply([], valueses);\n }\n\n _chart.xAxisMin = function () {\n var min = d3.min(flattenStack(), dc.pluck('x'));\n return dc.utils.subtract(min, _chart.xAxisPadding());\n };\n\n _chart.xAxisMax = function () {\n var max = d3.max(flattenStack(), dc.pluck('x'));\n return dc.utils.add(max, _chart.xAxisPadding());\n };\n\n /**\n #### .title([stackName], [titleFunction])\n Set or get the title function. Chart class will use this function to render svg title (usually interpreted by\n browser as tooltips) for each child element in the chart, i.e. a slice in a pie chart or a bubble in a bubble chart.\n Almost every chart supports title function however in grid coordinate chart you need to turn off brush in order to\n use title otherwise the brush layer will block tooltip trigger.\n\n If the first argument is a stack name, the title function will get or set the title for that stack. If stackName\n is not provided, the first stack is implied.\n ```js\n // set a title function on 'first stack'\n chart.title('first stack', function(d) { return d.key + ': ' + d.value; });\n // get a title function from 'second stack'\n var secondTitleFunction = chart.title('second stack');\n );\n ```\n **/\n dc.override(_chart, 'title', function (stackName, titleAccessor) {\n if (!stackName) {\n return _chart._title();\n }\n\n if (typeof stackName === 'function') {\n return _chart._title(stackName);\n }\n if (stackName === _chart._groupName && typeof titleAccessor === 'function') {\n return _chart._title(titleAccessor);\n }\n\n if (typeof titleAccessor !== 'function') {\n return _titles[stackName] || _chart._title();\n }\n\n _titles[stackName] = titleAccessor;\n\n return _chart;\n });\n\n /**\n #### .stackLayout([layout])\n Gets or sets the stack layout algorithm, which computes a baseline for each stack and\n propagates it to the next. The default is\n [d3.layout.stack](https://github.com/mbostock/d3/wiki/Stack-Layout#stack).\n **/\n _chart.stackLayout = function (stack) {\n if (!arguments.length) {\n return _stackLayout;\n }\n _stackLayout = stack;\n return _chart;\n };\n\n function visability(l) {\n return !l.hidden;\n }\n\n _chart.data(function () {\n var layers = _stack.filter(visability);\n return layers.length ? _chart.stackLayout()(layers) : [];\n });\n\n _chart._ordinalXDomain = function () {\n var flat = flattenStack().map(dc.pluck('data'));\n var ordered = _chart._computeOrderedGroups(flat);\n return ordered.map(_chart.keyAccessor());\n };\n\n _chart.colorAccessor(function (d) {\n var layer = this.layer || this.name || d.name || d.layer;\n return layer;\n });\n\n _chart.legendables = function () {\n return _stack.map(function (layer, i) {\n return {\n chart:_chart,\n name:layer.name,\n hidden: layer.hidden || false,\n color:_chart.getColor.call(layer, layer.values, i)\n };\n });\n };\n\n _chart.isLegendableHidden = function (d) {\n var layer = findLayerByName(d.name);\n return layer ? layer.hidden : false;\n };\n\n _chart.legendToggle = function (d) {\n if (_hidableStacks) {\n if (_chart.isLegendableHidden(d)) {\n _chart.showStack(d.name);\n } else {\n _chart.hideStack(d.name);\n }\n //_chart.redraw();\n _chart.renderGroup();\n }\n };\n\n return _chart;\n};\n","/**\n## Cap Mixin\nCap is a mixin that groups small data elements below a _cap_ into an *others* grouping for both the\nRow and Pie Charts.\n\nThe top ordered elements in the group up to the cap amount will be kept in the chart, and the rest\nwill be replaced with an *others* element, with value equal to the sum of the replaced values. The\nkeys of the elements below the cap limit are recorded in order to filter by those keys when the\n*others* element is clicked.\n\n**/\ndc.capMixin = function (_chart) {\n\n var _cap = Infinity;\n\n var _othersLabel = 'Others';\n\n var _othersGrouper = function (topRows) {\n var topRowsSum = d3.sum(topRows, _chart.valueAccessor()),\n allRows = _chart.group().all(),\n allRowsSum = d3.sum(allRows, _chart.valueAccessor()),\n topKeys = topRows.map(_chart.keyAccessor()),\n allKeys = allRows.map(_chart.keyAccessor()),\n topSet = d3.set(topKeys),\n others = allKeys.filter(function (d) {return !topSet.has(d);});\n if (allRowsSum > topRowsSum) {\n return topRows.concat([{'others': others, 'key': _othersLabel, 'value': allRowsSum - topRowsSum}]);\n }\n return topRows;\n };\n\n _chart.cappedKeyAccessor = function (d, i) {\n if (d.others) {\n return d.key;\n }\n return _chart.keyAccessor()(d, i);\n };\n\n _chart.cappedValueAccessor = function (d, i) {\n if (d.others) {\n return d.value;\n }\n return _chart.valueAccessor()(d, i);\n };\n\n _chart.data(function (group) {\n if (_cap === Infinity) {\n return _chart._computeOrderedGroups(group.all());\n } else {\n var topRows = group.top(_cap); // ordered by crossfilter group order (default value)\n topRows = _chart._computeOrderedGroups(topRows); // re-order using ordering (default key)\n if (_othersGrouper) {\n return _othersGrouper(topRows);\n }\n return topRows;\n }\n });\n\n /**\n #### .cap([count])\n Get or set the count of elements to that will be included in the cap.\n **/\n _chart.cap = function (_) {\n if (!arguments.length) {\n return _cap;\n }\n _cap = _;\n return _chart;\n };\n\n /**\n #### .othersLabel([label])\n Get or set the label for *Others* slice when slices cap is specified. Default label is **Others**.\n **/\n _chart.othersLabel = function (_) {\n if (!arguments.length) {\n return _othersLabel;\n }\n _othersLabel = _;\n return _chart;\n };\n\n /**\n #### .othersGrouper([grouperFunction])\n Get or set the grouper function that will perform the insertion of data for the *Others* slice\n if the slices cap is specified. If set to a falsy value, no others will be added. By default the\n grouper function computes the sum of all values below the cap.\n ```js\n chart.othersGrouper(function (data) {\n // compute the value for others, presumably the sum of all values below the cap\n var othersSum = yourComputeOthersValueLogic(data)\n\n // the keys are needed to properly filter when the others element is clicked\n var othersKeys = yourComputeOthersKeysArrayLogic(data);\n\n // add the others row to the dataset\n data.push({'key': 'Others', 'value': othersSum, 'others': othersKeys });\n\n return data;\n });\n ```\n **/\n _chart.othersGrouper = function (_) {\n if (!arguments.length) {\n return _othersGrouper;\n }\n _othersGrouper = _;\n return _chart;\n };\n\n dc.override(_chart, 'onClick', function (d) {\n if (d.others) {\n _chart.filter([d.others]);\n }\n _chart._onClick(d);\n });\n\n return _chart;\n};\n","/**\n## Bubble Mixin\nIncludes: [Color Mixin](#color-mixin)\n\nThis Mixin provides reusable functionalities for any chart that needs to visualize data using bubbles.\n\n**/\ndc.bubbleMixin = function (_chart) {\n var _maxBubbleRelativeSize = 0.3;\n var _minRadiusWithLabel = 10;\n\n _chart.BUBBLE_NODE_CLASS = 'node';\n _chart.BUBBLE_CLASS = 'bubble';\n _chart.MIN_RADIUS = 10;\n\n _chart = dc.colorMixin(_chart);\n\n _chart.renderLabel(true);\n\n _chart.data(function (group) {\n return group.top(Infinity);\n });\n\n var _r = d3.scale.linear().domain([0, 100]);\n\n var _rValueAccessor = function (d) {\n return d.r;\n };\n\n /**\n #### .r([bubbleRadiusScale])\n Get or set the bubble radius scale. By default the bubble chart uses\n `d3.scale.linear().domain([0, 100])` as its r scale .\n\n **/\n _chart.r = function (_) {\n if (!arguments.length) {\n return _r;\n }\n _r = _;\n return _chart;\n };\n\n /**\n #### .radiusValueAccessor([radiusValueAccessor])\n Get or set the radius value accessor function. If set, the radius value accessor function will\n be used to retrieve a data value for each bubble. The data retrieved then will be mapped using\n the r scale to the actual bubble radius. This allows you to encode a data dimension using bubble\n size.\n\n **/\n _chart.radiusValueAccessor = function (_) {\n if (!arguments.length) {\n return _rValueAccessor;\n }\n _rValueAccessor = _;\n return _chart;\n };\n\n _chart.rMin = function () {\n var min = d3.min(_chart.data(), function (e) {\n return _chart.radiusValueAccessor()(e);\n });\n return min;\n };\n\n _chart.rMax = function () {\n var max = d3.max(_chart.data(), function (e) {\n return _chart.radiusValueAccessor()(e);\n });\n return max;\n };\n\n _chart.bubbleR = function (d) {\n var value = _chart.radiusValueAccessor()(d);\n var r = _chart.r()(value);\n if (isNaN(r) || value <= 0) {\n r = 0;\n }\n return r;\n };\n\n var labelFunction = function (d) {\n return _chart.label()(d);\n };\n\n var labelOpacity = function (d) {\n return (_chart.bubbleR(d) > _minRadiusWithLabel) ? 1 : 0;\n };\n\n _chart._doRenderLabel = function (bubbleGEnter) {\n if (_chart.renderLabel()) {\n var label = bubbleGEnter.select('text');\n\n if (label.empty()) {\n label = bubbleGEnter.append('text')\n .attr('text-anchor', 'middle')\n .attr('dy', '.3em')\n .on('click', _chart.onClick);\n }\n\n label\n .attr('opacity', 0)\n .text(labelFunction);\n dc.transition(label, _chart.transitionDuration())\n .attr('opacity', labelOpacity);\n }\n };\n\n _chart.doUpdateLabels = function (bubbleGEnter) {\n if (_chart.renderLabel()) {\n var labels = bubbleGEnter.selectAll('text')\n .text(labelFunction);\n dc.transition(labels, _chart.transitionDuration())\n .attr('opacity', labelOpacity);\n }\n };\n\n var titleFunction = function (d) {\n return _chart.title()(d);\n };\n\n _chart._doRenderTitles = function (g) {\n if (_chart.renderTitle()) {\n var title = g.select('title');\n\n if (title.empty()) {\n g.append('title').text(titleFunction);\n }\n }\n };\n\n _chart.doUpdateTitles = function (g) {\n if (_chart.renderTitle()) {\n g.selectAll('title').text(titleFunction);\n }\n };\n\n /**\n #### .minRadiusWithLabel([radius])\n Get or set the minimum radius for label rendering. If a bubble's radius is less than this value\n then no label will be rendered. Default: 10\n\n **/\n _chart.minRadiusWithLabel = function (_) {\n if (!arguments.length) {\n return _minRadiusWithLabel;\n }\n _minRadiusWithLabel = _;\n return _chart;\n };\n\n /**\n #### .maxBubbleRelativeSize([relativeSize])\n Get or set the maximum relative size of a bubble to the length of x axis. This value is useful\n when the difference in radius between bubbles is too great. Default: 0.3\n\n **/\n _chart.maxBubbleRelativeSize = function (_) {\n if (!arguments.length) {\n return _maxBubbleRelativeSize;\n }\n _maxBubbleRelativeSize = _;\n return _chart;\n };\n\n _chart.fadeDeselectedArea = function () {\n if (_chart.hasFilter()) {\n _chart.selectAll('g.' + _chart.BUBBLE_NODE_CLASS).each(function (d) {\n if (_chart.isSelectedNode(d)) {\n _chart.highlightSelected(this);\n } else {\n _chart.fadeDeselected(this);\n }\n });\n } else {\n _chart.selectAll('g.' + _chart.BUBBLE_NODE_CLASS).each(function () {\n _chart.resetHighlight(this);\n });\n }\n };\n\n _chart.isSelectedNode = function (d) {\n return _chart.hasFilter(d.key);\n };\n\n _chart.onClick = function (d) {\n var filter = d.key;\n dc.events.trigger(function () {\n _chart.filter(filter);\n _chart.redrawGroup();\n });\n };\n\n return _chart;\n};\n","/**\n## Pie Chart\nIncludes: [Cap Mixin](#cap-mixin), [Color Mixin](#color-mixin), [Base Mixin](#base-mixin)\n\nThe pie chart implementation is usually used to visualize a small categorical distribution. The pie\nchart uses keyAccessor to determine the slices, and valueAccessor to calculate the size of each\nslice relative to the sum of all values. Slices are ordered by `.ordering` which defaults to sorting\nby key.\n\nExamples:\n\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n#### dc.pieChart(parent[, chartGroup])\nCreate a pie chart instance and attaches it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created pie chart instance\n\n```js\n// create a pie chart under #chart-container1 element using the default global chart group\nvar chart1 = dc.pieChart('#chart-container1');\n// create a pie chart under #chart-container2 element using chart group A\nvar chart2 = dc.pieChart('#chart-container2', 'chartGroupA');\n```\n\n**/\ndc.pieChart = function (parent, chartGroup) {\n var DEFAULT_MIN_ANGLE_FOR_LABEL = 0.5;\n\n var _sliceCssClass = 'pie-slice';\n var _emptyCssClass = 'empty-chart';\n var _emptyTitle = 'empty';\n\n var _radius,\n _innerRadius = 0;\n\n var _g;\n var _cx;\n var _cy;\n var _minAngleForLabel = DEFAULT_MIN_ANGLE_FOR_LABEL;\n var _externalLabelRadius;\n var _chart = dc.capMixin(dc.colorMixin(dc.baseMixin({})));\n\n _chart.colorAccessor(_chart.cappedKeyAccessor);\n\n _chart.title(function (d) {\n return _chart.cappedKeyAccessor(d) + ': ' + _chart.cappedValueAccessor(d);\n });\n\n /**\n #### .slicesCap([cap])\n Get or set the maximum number of slices the pie chart will generate. The top slices are determined by\n value from high to low. Other slices exeeding the cap will be rolled up into one single *Others* slice.\n The resulting data will still be sorted by .ordering (default by key).\n\n **/\n _chart.slicesCap = _chart.cap;\n\n _chart.label(_chart.cappedKeyAccessor);\n _chart.renderLabel(true);\n\n _chart.transitionDuration(350);\n\n _chart._doRender = function () {\n _chart.resetSvg();\n\n _g = _chart.svg()\n .append('g')\n .attr('transform', 'translate(' + _chart.cx() + ',' + _chart.cy() + ')');\n\n drawChart();\n\n return _chart;\n };\n\n function drawChart() {\n // set radius on basis of chart dimension if missing\n _radius = _radius ? _radius : d3.min([_chart.width(), _chart.height()]) / 2;\n\n var arc = buildArcs();\n\n var pie = pieLayout();\n var pieData;\n // if we have data...\n if (d3.sum(_chart.data(), _chart.valueAccessor())) {\n pieData = pie(_chart.data());\n _g.classed(_emptyCssClass, false);\n } else {\n // otherwise we'd be getting NaNs, so override\n // note: abuse others for its ignoring the value accessor\n pieData = pie([{key:_emptyTitle, value:1, others: [_emptyTitle]}]);\n _g.classed(_emptyCssClass, true);\n }\n\n if (_g) {\n var slices = _g.selectAll('g.' + _sliceCssClass)\n .data(pieData);\n\n createElements(slices, arc, pieData);\n\n updateElements(pieData, arc);\n\n removeElements(slices);\n\n highlightFilter();\n }\n }\n\n function createElements(slices, arc, pieData) {\n var slicesEnter = createSliceNodes(slices);\n\n createSlicePath(slicesEnter, arc);\n\n createTitles(slicesEnter);\n\n createLabels(pieData, arc);\n }\n\n function createSliceNodes(slices) {\n var slicesEnter = slices\n .enter()\n .append('g')\n .attr('class', function (d, i) {\n return _sliceCssClass + ' _' + i;\n });\n return slicesEnter;\n }\n\n function createSlicePath(slicesEnter, arc) {\n var slicePath = slicesEnter.append('path')\n .attr('fill', fill)\n .on('click', onClick)\n .attr('d', function (d, i) {\n return safeArc(d, i, arc);\n });\n\n dc.transition(slicePath, _chart.transitionDuration(), function (s) {\n s.attrTween('d', tweenPie);\n });\n }\n\n function createTitles(slicesEnter) {\n if (_chart.renderTitle()) {\n slicesEnter.append('title').text(function (d) {\n return _chart.title()(d.data);\n });\n }\n }\n\n function positionLabels(labelsEnter, arc) {\n dc.transition(labelsEnter, _chart.transitionDuration())\n .attr('transform', function (d) {\n return labelPosition(d, arc);\n })\n .attr('text-anchor', 'middle')\n .text(function (d) {\n var data = d.data;\n if ((sliceHasNoData(data) || sliceTooSmall(d)) && !isSelectedSlice(d)) {\n return '';\n }\n return _chart.label()(d.data);\n });\n }\n\n function createLabels(pieData, arc) {\n if (_chart.renderLabel()) {\n var labels = _g.selectAll('text.' + _sliceCssClass)\n .data(pieData);\n\n labels.exit().remove();\n\n var labelsEnter = labels\n .enter()\n .append('text')\n .attr('class', function (d, i) {\n var classes = _sliceCssClass + ' _' + i;\n if (_externalLabelRadius) {\n classes += ' external';\n }\n return classes;\n })\n .on('click', onClick);\n positionLabels(labelsEnter, arc);\n }\n }\n\n function updateElements(pieData, arc) {\n updateSlicePaths(pieData, arc);\n updateLabels(pieData, arc);\n updateTitles(pieData);\n }\n\n function updateSlicePaths(pieData, arc) {\n var slicePaths = _g.selectAll('g.' + _sliceCssClass)\n .data(pieData)\n .select('path')\n .attr('d', function (d, i) {\n return safeArc(d, i, arc);\n });\n dc.transition(slicePaths, _chart.transitionDuration(),\n function (s) {\n s.attrTween('d', tweenPie);\n }).attr('fill', fill);\n }\n\n function updateLabels(pieData, arc) {\n if (_chart.renderLabel()) {\n var labels = _g.selectAll('text.' + _sliceCssClass)\n .data(pieData);\n positionLabels(labels, arc);\n }\n }\n\n function updateTitles(pieData) {\n if (_chart.renderTitle()) {\n _g.selectAll('g.' + _sliceCssClass)\n .data(pieData)\n .select('title')\n .text(function (d) {\n return _chart.title()(d.data);\n });\n }\n }\n\n function removeElements(slices) {\n slices.exit().remove();\n }\n\n function highlightFilter() {\n if (_chart.hasFilter()) {\n _chart.selectAll('g.' + _sliceCssClass).each(function (d) {\n if (isSelectedSlice(d)) {\n _chart.highlightSelected(this);\n } else {\n _chart.fadeDeselected(this);\n }\n });\n } else {\n _chart.selectAll('g.' + _sliceCssClass).each(function () {\n _chart.resetHighlight(this);\n });\n }\n }\n\n /**\n #### .innerRadius([innerRadius])\n Get or set the inner radius of the pie chart. If the inner radius is greater than 0px then the\n pie chart will be rendered as a doughnut chart. Default inner radius is 0px.\n\n **/\n _chart.innerRadius = function (r) {\n if (!arguments.length) {\n return _innerRadius;\n }\n _innerRadius = r;\n return _chart;\n };\n\n /**\n #### .radius([radius])\n Get or set the outer radius. If the radius is not set, it will be half of the minimum of the\n chart width and height.\n\n **/\n _chart.radius = function (r) {\n if (!arguments.length) {\n return _radius;\n }\n _radius = r;\n return _chart;\n };\n\n /**\n #### .cx([cx])\n Get or set center x coordinate position. Default is center of svg.\n\n **/\n _chart.cx = function (cx) {\n if (!arguments.length) {\n return (_cx || _chart.width() / 2);\n }\n _cx = cx;\n return _chart;\n };\n\n /**\n #### .cy([cy])\n Get or set center y coordinate position. Default is center of svg.\n\n **/\n _chart.cy = function (cy) {\n if (!arguments.length) {\n return (_cy || _chart.height() / 2);\n }\n _cy = cy;\n return _chart;\n };\n\n function buildArcs() {\n return d3.svg.arc().outerRadius(_radius).innerRadius(_innerRadius);\n }\n\n function isSelectedSlice(d) {\n return _chart.hasFilter(_chart.cappedKeyAccessor(d.data));\n }\n\n _chart._doRedraw = function () {\n drawChart();\n return _chart;\n };\n\n /**\n #### .minAngleForLabel([minAngle])\n Get or set the minimal slice angle for label rendering. Any slice with a smaller angle will not\n display a slice label. Default min angle is 0.5.\n **/\n _chart.minAngleForLabel = function (_) {\n if (!arguments.length) {\n return _minAngleForLabel;\n }\n _minAngleForLabel = _;\n return _chart;\n };\n\n function pieLayout() {\n return d3.layout.pie().sort(null).value(_chart.cappedValueAccessor);\n }\n\n function sliceTooSmall(d) {\n var angle = (d.endAngle - d.startAngle);\n return isNaN(angle) || angle < _minAngleForLabel;\n }\n\n function sliceHasNoData(d) {\n return _chart.cappedValueAccessor(d) === 0;\n }\n\n function tweenPie(b) {\n b.innerRadius = _innerRadius;\n var current = this._current;\n if (isOffCanvas(current)) {\n current = {startAngle: 0, endAngle: 0};\n }\n var i = d3.interpolate(current, b);\n this._current = i(0);\n return function (t) {\n return safeArc(i(t), 0, buildArcs());\n };\n }\n\n function isOffCanvas(current) {\n return !current || isNaN(current.startAngle) || isNaN(current.endAngle);\n }\n\n function fill(d, i) {\n return _chart.getColor(d.data, i);\n }\n\n function onClick(d, i) {\n if (_g.attr('class') !== _emptyCssClass) {\n _chart.onClick(d.data, i);\n }\n }\n\n function safeArc(d, i, arc) {\n var path = arc(d, i);\n if (path.indexOf('NaN') >= 0) {\n path = 'M0,0';\n }\n return path;\n }\n\n /**\n #### .emptyTitle([title])\n Title to use for the only slice when there is no data\n */\n _chart.emptyTitle = function (title) {\n if (arguments.length === 0) {\n return _emptyTitle;\n }\n _emptyTitle = title;\n return _chart;\n };\n\n /**\n #### .externalLabels([radius])\n Position slice labels offset from the outer edge of the chart\n\n The given argument sets the radial offset.\n */\n _chart.externalLabels = function (radius) {\n if (arguments.length === 0) {\n return _externalLabelRadius;\n } else if (radius) {\n _externalLabelRadius = radius;\n } else {\n _externalLabelRadius = undefined;\n }\n\n return _chart;\n };\n\n function labelPosition(d, arc) {\n var centroid;\n if (_externalLabelRadius) {\n centroid = d3.svg.arc()\n .outerRadius(_radius + _externalLabelRadius)\n .innerRadius(_radius + _externalLabelRadius)\n .centroid(d);\n } else {\n centroid = arc.centroid(d);\n }\n if (isNaN(centroid[0]) || isNaN(centroid[1])) {\n return 'translate(0,0)';\n } else {\n return 'translate(' + centroid + ')';\n }\n }\n\n _chart.legendables = function () {\n return _chart.data().map(function (d, i) {\n var legendable = {name: d.key, data: d.value, others: d.others, chart:_chart};\n legendable.color = _chart.getColor(d, i);\n return legendable;\n });\n };\n\n _chart.legendHighlight = function (d) {\n highlightSliceFromLegendable(d, true);\n };\n\n _chart.legendReset = function (d) {\n highlightSliceFromLegendable(d, false);\n };\n\n _chart.legendToggle = function (d) {\n _chart.onClick({key: d.name, others: d.others});\n };\n\n function highlightSliceFromLegendable(legendable, highlighted) {\n _chart.selectAll('g.pie-slice').each(function (d) {\n if (legendable.name === d.data.key) {\n d3.select(this).classed('highlight', highlighted);\n }\n });\n }\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Bar Chart\nIncludes: [Stack Mixin](#stack Mixin), [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nConcrete bar chart/histogram implementation.\n\nExamples:\n\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n* [Canadian City Crime Stats](http://dc-js.github.com/dc.js/crime/index.html)\n#### dc.barChart(parent[, chartGroup])\nCreate a bar chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection | compositeChart - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n If the bar chart is a sub-chart in a [Composite Chart](#composite-chart) then pass in the parent composite\n chart instance.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created bar chart instance\n\n```js\n// create a bar chart under #chart-container1 element using the default global chart group\nvar chart1 = dc.barChart('#chart-container1');\n// create a bar chart under #chart-container2 element using chart group A\nvar chart2 = dc.barChart('#chart-container2', 'chartGroupA');\n// create a sub-chart under a composite parent chart\nvar chart3 = dc.barChart(compositeChart);\n```\n\n**/\ndc.barChart = function (parent, chartGroup) {\n var MIN_BAR_WIDTH = 1;\n var DEFAULT_GAP_BETWEEN_BARS = 2;\n\n var _chart = dc.stackMixin(dc.coordinateGridMixin({}));\n\n var _gap = DEFAULT_GAP_BETWEEN_BARS;\n var _centerBar = false;\n var _alwaysUseRounding = false;\n\n var _barWidth;\n\n dc.override(_chart, 'rescale', function () {\n _chart._rescale();\n _barWidth = undefined;\n });\n\n dc.override(_chart, 'render', function () {\n if (_chart.round() && _centerBar && !_alwaysUseRounding) {\n dc.logger.warn('By default, brush rounding is disabled if bars are centered. ' +\n 'See dc.js bar chart API documentation for details.');\n }\n\n _chart._render();\n });\n\n _chart.plotData = function () {\n var layers = _chart.chartBodyG().selectAll('g.stack')\n .data(_chart.data());\n\n calculateBarWidth();\n\n layers\n .enter()\n .append('g')\n .attr('class', function (d, i) {\n return 'stack ' + '_' + i;\n });\n\n layers.each(function (d, i) {\n var layer = d3.select(this);\n\n renderBars(layer, i, d);\n });\n };\n\n function barHeight(d) {\n return dc.utils.safeNumber(Math.abs(_chart.y()(d.y + d.y0) - _chart.y()(d.y0)));\n }\n\n function renderBars(layer, layerIndex, d) {\n var bars = layer.selectAll('rect.bar')\n .data(d.values, dc.pluck('x'));\n\n var enter = bars.enter()\n .append('rect')\n .attr('class', 'bar')\n .attr('fill', dc.pluck('data', _chart.getColor))\n .attr('y', _chart.yAxisHeight())\n .attr('height', 0);\n\n if (_chart.renderTitle()) {\n enter.append('title').text(dc.pluck('data', _chart.title(d.name)));\n }\n\n if (_chart.isOrdinal()) {\n bars.on('click', _chart.onClick);\n }\n\n dc.transition(bars, _chart.transitionDuration())\n .attr('x', function (d) {\n var x = _chart.x()(d.x);\n if (_centerBar) {\n x -= _barWidth / 2;\n }\n if (_chart.isOrdinal() && _gap !== undefined) {\n x += _gap / 2;\n }\n return dc.utils.safeNumber(x);\n })\n .attr('y', function (d) {\n var y = _chart.y()(d.y + d.y0);\n\n if (d.y < 0) {\n y -= barHeight(d);\n }\n\n return dc.utils.safeNumber(y);\n })\n .attr('width', _barWidth)\n .attr('height', function (d) {\n return barHeight(d);\n })\n .attr('fill', dc.pluck('data', _chart.getColor))\n .select('title').text(dc.pluck('data', _chart.title(d.name)));\n\n dc.transition(bars.exit(), _chart.transitionDuration())\n .attr('height', 0)\n .remove();\n }\n\n function calculateBarWidth() {\n if (_barWidth === undefined) {\n var numberOfBars = _chart.xUnitCount();\n\n // please can't we always use rangeBands for bar charts?\n if (_chart.isOrdinal() && _gap === undefined) {\n _barWidth = Math.floor(_chart.x().rangeBand());\n } else if (_gap) {\n _barWidth = Math.floor((_chart.xAxisLength() - (numberOfBars - 1) * _gap) / numberOfBars);\n } else {\n _barWidth = Math.floor(_chart.xAxisLength() / (1 + _chart.barPadding()) / numberOfBars);\n }\n\n if (_barWidth === Infinity || isNaN(_barWidth) || _barWidth < MIN_BAR_WIDTH) {\n _barWidth = MIN_BAR_WIDTH;\n }\n }\n }\n\n _chart.fadeDeselectedArea = function () {\n var bars = _chart.chartBodyG().selectAll('rect.bar');\n var extent = _chart.brush().extent();\n\n if (_chart.isOrdinal()) {\n if (_chart.hasFilter()) {\n bars.classed(dc.constants.SELECTED_CLASS, function (d) {\n return _chart.hasFilter(d.x);\n });\n bars.classed(dc.constants.DESELECTED_CLASS, function (d) {\n return !_chart.hasFilter(d.x);\n });\n } else {\n bars.classed(dc.constants.SELECTED_CLASS, false);\n bars.classed(dc.constants.DESELECTED_CLASS, false);\n }\n } else {\n if (!_chart.brushIsEmpty(extent)) {\n var start = extent[0];\n var end = extent[1];\n\n bars.classed(dc.constants.DESELECTED_CLASS, function (d) {\n return d.x < start || d.x >= end;\n });\n } else {\n bars.classed(dc.constants.DESELECTED_CLASS, false);\n }\n }\n };\n\n /**\n #### .centerBar(boolean)\n Whether the bar chart will render each bar centered around the data position on x axis. Default: false\n\n **/\n _chart.centerBar = function (_) {\n if (!arguments.length) {\n return _centerBar;\n }\n _centerBar = _;\n return _chart;\n };\n\n dc.override(_chart, 'onClick', function (d) {\n _chart._onClick(d.data);\n });\n\n /**\n #### .barPadding([padding])\n Get or set the spacing between bars as a fraction of bar size. Valid values are between 0-1.\n Setting this value will also remove any previously set `gap`. See the\n [d3 docs](https://github.com/mbostock/d3/wiki/Ordinal-Scales#wiki-ordinal_rangeBands)\n for a visual description of how the padding is applied.\n **/\n _chart.barPadding = function (_) {\n if (!arguments.length) {\n return _chart._rangeBandPadding();\n }\n _chart._rangeBandPadding(_);\n _gap = undefined;\n return _chart;\n };\n\n _chart._useOuterPadding = function () {\n return _gap === undefined;\n };\n\n /**\n #### .outerPadding([padding])\n Get or set the outer padding on an ordinal bar chart. This setting has no effect on non-ordinal charts.\n Will pad the width by `padding * barWidth` on each side of the chart.\n\n Default: 0.5\n **/\n _chart.outerPadding = _chart._outerRangeBandPadding;\n\n /**\n #### .gap(gapBetweenBars)\n Manually set fixed gap (in px) between bars instead of relying on the default auto-generated\n gap. By default the bar chart implementation will calculate and set the gap automatically\n based on the number of data points and the length of the x axis.\n\n **/\n _chart.gap = function (_) {\n if (!arguments.length) {\n return _gap;\n }\n _gap = _;\n return _chart;\n };\n\n _chart.extendBrush = function () {\n var extent = _chart.brush().extent();\n if (_chart.round() && (!_centerBar || _alwaysUseRounding)) {\n extent[0] = extent.map(_chart.round())[0];\n extent[1] = extent.map(_chart.round())[1];\n\n _chart.chartBodyG().select('.brush')\n .call(_chart.brush().extent(extent));\n }\n\n return extent;\n };\n\n /**\n #### .alwaysUseRounding([boolean])\n Set or get whether rounding is enabled when bars are centered. Default: false. If false, using\n rounding with centered bars will result in a warning and rounding will be ignored. This flag\n has no effect if bars are not centered.\n\n When using standard d3.js rounding methods, the brush often doesn't align correctly with\n centered bars since the bars are offset. The rounding function must add an offset to\n compensate, such as in the following example.\n ```js\n chart.round(function(n) {return Math.floor(n)+0.5});\n ```\n **/\n _chart.alwaysUseRounding = function (_) {\n if (!arguments.length) {\n return _alwaysUseRounding;\n }\n _alwaysUseRounding = _;\n return _chart;\n };\n\n function colorFilter(color, inv) {\n return function () {\n var item = d3.select(this);\n var match = item.attr('fill') === color;\n return inv ? !match : match;\n };\n }\n\n _chart.legendHighlight = function (d) {\n if (!_chart.isLegendableHidden(d)) {\n _chart.g().selectAll('rect.bar')\n .classed('highlight', colorFilter(d.color))\n .classed('fadeout', colorFilter(d.color, true));\n }\n };\n\n _chart.legendReset = function () {\n _chart.g().selectAll('rect.bar')\n .classed('highlight', false)\n .classed('fadeout', false);\n };\n\n dc.override(_chart, 'xAxisMax', function () {\n var max = this._xAxisMax();\n if ('resolution' in _chart.xUnits()) {\n var res = _chart.xUnits().resolution;\n max += res;\n }\n return max;\n });\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Line Chart\nIncludes [Stack Mixin](#stack-mixin), [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nConcrete line/area chart implementation.\n\nExamples:\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n* [Canadian City Crime Stats](http://dc-js.github.com/dc.js/crime/index.html)\n#### dc.lineChart(parent[, chartGroup])\nCreate a line chart instance and attach it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection | compositeChart - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n If the line chart is a sub-chart in a [Composite Chart](#composite-chart) then pass in the parent composite\n chart instance.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created line chart instance\n\n```js\n// create a line chart under #chart-container1 element using the default global chart group\nvar chart1 = dc.lineChart('#chart-container1');\n// create a line chart under #chart-container2 element using chart group A\nvar chart2 = dc.lineChart('#chart-container2', 'chartGroupA');\n// create a sub-chart under a composite parent chart\nvar chart3 = dc.lineChart(compositeChart);\n```\n\n**/\ndc.lineChart = function (parent, chartGroup) {\n var DEFAULT_DOT_RADIUS = 5;\n var TOOLTIP_G_CLASS = 'dc-tooltip';\n var DOT_CIRCLE_CLASS = 'dot';\n var Y_AXIS_REF_LINE_CLASS = 'yRef';\n var X_AXIS_REF_LINE_CLASS = 'xRef';\n var DEFAULT_DOT_OPACITY = 1e-6;\n\n var _chart = dc.stackMixin(dc.coordinateGridMixin({}));\n var _renderArea = false;\n var _dotRadius = DEFAULT_DOT_RADIUS;\n var _dataPointRadius = null;\n var _dataPointFillOpacity = DEFAULT_DOT_OPACITY;\n var _dataPointStrokeOpacity = DEFAULT_DOT_OPACITY;\n var _interpolate = 'linear';\n var _tension = 0.7;\n var _defined;\n var _dashStyle;\n var _xyTipsOn = true;\n\n _chart.transitionDuration(500);\n _chart._rangeBandPadding(1);\n\n _chart.plotData = function () {\n var chartBody = _chart.chartBodyG();\n var layersList = chartBody.selectAll('g.stack-list');\n\n if (layersList.empty()) {\n layersList = chartBody.append('g').attr('class', 'stack-list');\n }\n\n var layers = layersList.selectAll('g.stack').data(_chart.data());\n\n var layersEnter = layers\n .enter()\n .append('g')\n .attr('class', function (d, i) {\n return 'stack ' + '_' + i;\n });\n\n drawLine(layersEnter, layers);\n\n drawArea(layersEnter, layers);\n\n drawDots(chartBody, layers);\n };\n\n /**\n #### .interpolate([value])\n Gets or sets the interpolator to use for lines drawn, by string name, allowing e.g. step\n functions, splines, and cubic interpolation. This is passed to\n [d3.svg.line.interpolate](https://github.com/mbostock/d3/wiki/SVG-Shapes#line_interpolate) and\n [d3.svg.area.interpolate](https://github.com/mbostock/d3/wiki/SVG-Shapes#area_interpolate),\n where you can find a complete list of valid arguments\n **/\n _chart.interpolate = function (_) {\n if (!arguments.length) {\n return _interpolate;\n }\n _interpolate = _;\n return _chart;\n };\n\n /**\n #### .tension([value])\n Gets or sets the tension to use for lines drawn, in the range 0 to 1.\n This parameter further customizes the interpolation behavior. It is passed to\n [d3.svg.line.tension](https://github.com/mbostock/d3/wiki/SVG-Shapes#line_tension) and\n [d3.svg.area.tension](https://github.com/mbostock/d3/wiki/SVG-Shapes#area_tension). Default:\n 0.7\n **/\n _chart.tension = function (_) {\n if (!arguments.length) {\n return _tension;\n }\n _tension = _;\n return _chart;\n };\n\n /**\n #### .defined([value])\n Gets or sets a function that will determine discontinuities in the line which should be\n skipped: the path will be broken into separate subpaths if some points are undefined.\n This function is passed to\n [d3.svg.line.defined](https://github.com/mbostock/d3/wiki/SVG-Shapes#line_defined)\n\n Note: crossfilter will sometimes coerce nulls to 0, so you may need to carefully write\n custom reduce functions to get this to work, depending on your data. See\n https://github.com/dc-js/dc.js/issues/615#issuecomment-49089248\n **/\n _chart.defined = function (_) {\n if (!arguments.length) {\n return _defined;\n }\n _defined = _;\n return _chart;\n };\n\n /**\n #### .dashStyle([array])\n Set the line's d3 dashstyle. This value becomes the 'stroke-dasharray' of line. Defaults to empty\n array (solid line).\n ```js\n // create a Dash Dot Dot Dot\n chart.dashStyle([3,1,1,1]);\n ```\n **/\n _chart.dashStyle = function (_) {\n if (!arguments.length) {\n return _dashStyle;\n }\n _dashStyle = _;\n return _chart;\n };\n\n /**\n #### .renderArea([boolean])\n Get or set render area flag. If the flag is set to true then the chart will render the area\n beneath each line and the line chart effectively becomes an area chart.\n\n **/\n _chart.renderArea = function (_) {\n if (!arguments.length) {\n return _renderArea;\n }\n _renderArea = _;\n return _chart;\n };\n\n function colors(d, i) {\n return _chart.getColor.call(d, d.values, i);\n }\n\n function drawLine(layersEnter, layers) {\n var line = d3.svg.line()\n .x(function (d) {\n return _chart.x()(d.x);\n })\n .y(function (d) {\n return _chart.y()(d.y + d.y0);\n })\n .interpolate(_interpolate)\n .tension(_tension);\n if (_defined) {\n line.defined(_defined);\n }\n\n var path = layersEnter.append('path')\n .attr('class', 'line')\n .attr('stroke', colors);\n if (_dashStyle) {\n path.attr('stroke-dasharray', _dashStyle);\n }\n\n dc.transition(layers.select('path.line'), _chart.transitionDuration())\n //.ease('linear')\n .attr('stroke', colors)\n .attr('d', function (d) {\n return safeD(line(d.values));\n });\n }\n\n function drawArea(layersEnter, layers) {\n if (_renderArea) {\n var area = d3.svg.area()\n .x(function (d) {\n return _chart.x()(d.x);\n })\n .y(function (d) {\n return _chart.y()(d.y + d.y0);\n })\n .y0(function (d) {\n return _chart.y()(d.y0);\n })\n .interpolate(_interpolate)\n .tension(_tension);\n if (_defined) {\n area.defined(_defined);\n }\n\n layersEnter.append('path')\n .attr('class', 'area')\n .attr('fill', colors)\n .attr('d', function (d) {\n return safeD(area(d.values));\n });\n\n dc.transition(layers.select('path.area'), _chart.transitionDuration())\n //.ease('linear')\n .attr('fill', colors)\n .attr('d', function (d) {\n return safeD(area(d.values));\n });\n }\n }\n\n function safeD (d) {\n return (!d || d.indexOf('NaN') >= 0) ? 'M0,0' : d;\n }\n\n function drawDots(chartBody, layers) {\n if (!_chart.brushOn() && _chart.xyTipsOn()) {\n var tooltipListClass = TOOLTIP_G_CLASS + '-list';\n var tooltips = chartBody.select('g.' + tooltipListClass);\n\n if (tooltips.empty()) {\n tooltips = chartBody.append('g').attr('class', tooltipListClass);\n }\n\n layers.each(function (d, layerIndex) {\n var points = d.values;\n if (_defined) {\n points = points.filter(_defined);\n }\n\n var g = tooltips.select('g.' + TOOLTIP_G_CLASS + '._' + layerIndex);\n if (g.empty()) {\n g = tooltips.append('g').attr('class', TOOLTIP_G_CLASS + ' _' + layerIndex);\n }\n\n createRefLines(g);\n\n var dots = g.selectAll('circle.' + DOT_CIRCLE_CLASS)\n .data(points, dc.pluck('x'));\n\n dots.enter()\n .append('circle')\n .attr('class', DOT_CIRCLE_CLASS)\n .attr('r', getDotRadius())\n .style('fill-opacity', _dataPointFillOpacity)\n .style('stroke-opacity', _dataPointStrokeOpacity)\n .on('mousemove', function () {\n var dot = d3.select(this);\n showDot(dot);\n showRefLines(dot, g);\n })\n .on('mouseout', function () {\n var dot = d3.select(this);\n hideDot(dot);\n hideRefLines(g);\n });\n\n dots\n .attr('cx', function (d) {\n return dc.utils.safeNumber(_chart.x()(d.x));\n })\n .attr('cy', function (d) {\n return dc.utils.safeNumber(_chart.y()(d.y + d.y0));\n })\n .attr('fill', _chart.getColor)\n .call(renderTitle, d);\n\n dots.exit().remove();\n });\n }\n }\n\n function createRefLines(g) {\n var yRefLine = g.select('path.' + Y_AXIS_REF_LINE_CLASS).empty() ?\n g.append('path').attr('class', Y_AXIS_REF_LINE_CLASS) : g.select('path.' + Y_AXIS_REF_LINE_CLASS);\n yRefLine.style('display', 'none').attr('stroke-dasharray', '5,5');\n\n var xRefLine = g.select('path.' + X_AXIS_REF_LINE_CLASS).empty() ?\n g.append('path').attr('class', X_AXIS_REF_LINE_CLASS) : g.select('path.' + X_AXIS_REF_LINE_CLASS);\n xRefLine.style('display', 'none').attr('stroke-dasharray', '5,5');\n }\n\n function showDot(dot) {\n dot.style('fill-opacity', 0.8);\n dot.style('stroke-opacity', 0.8);\n dot.attr('r', _dotRadius);\n return dot;\n }\n\n function showRefLines(dot, g) {\n var x = dot.attr('cx');\n var y = dot.attr('cy');\n var yAxisX = (_chart._yAxisX() - _chart.margins().left);\n var yAxisRefPathD = 'M' + yAxisX + ' ' + y + 'L' + (x) + ' ' + (y);\n var xAxisRefPathD = 'M' + x + ' ' + _chart.yAxisHeight() + 'L' + x + ' ' + y;\n g.select('path.' + Y_AXIS_REF_LINE_CLASS).style('display', '').attr('d', yAxisRefPathD);\n g.select('path.' + X_AXIS_REF_LINE_CLASS).style('display', '').attr('d', xAxisRefPathD);\n }\n\n function getDotRadius() {\n return _dataPointRadius || _dotRadius;\n }\n\n function hideDot(dot) {\n dot.style('fill-opacity', _dataPointFillOpacity)\n .style('stroke-opacity', _dataPointStrokeOpacity)\n .attr('r', getDotRadius());\n }\n\n function hideRefLines(g) {\n g.select('path.' + Y_AXIS_REF_LINE_CLASS).style('display', 'none');\n g.select('path.' + X_AXIS_REF_LINE_CLASS).style('display', 'none');\n }\n\n function renderTitle(dot, d) {\n if (_chart.renderTitle()) {\n dot.selectAll('title').remove();\n dot.append('title').text(dc.pluck('data', _chart.title(d.name)));\n }\n }\n\n /**\n #### .xyTipsOn([boolean])\n Turn on/off the mouseover behavior of an individual data point which renders a circle and x/y axis\n dashed lines back to each respective axis. This is ignored if the chart brush is on (`brushOn`)\n Default: true\n */\n _chart.xyTipsOn = function (_) {\n if (!arguments.length) {\n return _xyTipsOn;\n }\n _xyTipsOn = _;\n return _chart;\n };\n\n /**\n #### .dotRadius([dotRadius])\n Get or set the radius (in px) for dots displayed on the data points. Default dot radius is 5.\n **/\n _chart.dotRadius = function (_) {\n if (!arguments.length) {\n return _dotRadius;\n }\n _dotRadius = _;\n return _chart;\n };\n\n /**\n #### .renderDataPoints([options])\n Always show individual dots for each datapoint.\n\n Options, if given, is an object that can contain the following:\n\n * fillOpacity (default 0.8)\n * strokeOpacity (default 0.8)\n * radius (default 2)\n\n If `options` is falsy, it disables data point rendering.\n\n If no `options` are provided, the current `options` values are instead returned.\n\n Example:\n ```\n chart.renderDataPoints({radius: 2, fillOpacity: 0.8, strokeOpacity: 0.8})\n ```\n **/\n _chart.renderDataPoints = function (options) {\n if (!arguments.length) {\n return {\n fillOpacity: _dataPointFillOpacity,\n strokeOpacity: _dataPointStrokeOpacity,\n radius: _dataPointRadius\n };\n } else if (!options) {\n _dataPointFillOpacity = DEFAULT_DOT_OPACITY;\n _dataPointStrokeOpacity = DEFAULT_DOT_OPACITY;\n _dataPointRadius = null;\n } else {\n _dataPointFillOpacity = options.fillOpacity || 0.8;\n _dataPointStrokeOpacity = options.strokeOpacity || 0.8;\n _dataPointRadius = options.radius || 2;\n }\n return _chart;\n };\n\n function colorFilter(color, dashstyle, inv) {\n return function () {\n var item = d3.select(this);\n var match = (item.attr('stroke') === color &&\n item.attr('stroke-dasharray') === ((dashstyle instanceof Array) ?\n dashstyle.join(',') : null)) || item.attr('fill') === color;\n return inv ? !match : match;\n };\n }\n\n _chart.legendHighlight = function (d) {\n if (!_chart.isLegendableHidden(d)) {\n _chart.g().selectAll('path.line, path.area')\n .classed('highlight', colorFilter(d.color, d.dashstyle))\n .classed('fadeout', colorFilter(d.color, d.dashstyle, true));\n }\n };\n\n _chart.legendReset = function () {\n _chart.g().selectAll('path.line, path.area')\n .classed('highlight', false)\n .classed('fadeout', false);\n };\n\n dc.override(_chart, 'legendables', function () {\n var legendables = _chart._legendables();\n if (!_dashStyle) {\n return legendables;\n }\n return legendables.map(function (l) {\n l.dashstyle = _dashStyle;\n return l;\n });\n });\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Data Count Widget\nIncludes: [Base Mixin](#base-mixin)\n\nThe data count widget is a simple widget designed to display the number of records selected by the\ncurrent filters out of the total number of records in the data set. Once created the data count widget\nwill automatically update the text content of the following elements under the parent element.\n\n* '.total-count' - total number of records\n* '.filter-count' - number of records matched by the current filters\n\nExamples:\n\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n#### dc.dataCount(parent[, chartGroup])\nCreate a data count widget and attach it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this widget should be placed in.\n The data count widget will only react to filter changes in the chart group.\n\nReturns:\nA newly created data count widget instance\n#### .dimension(allData) - **mandatory**\nFor the data count widget the only valid dimension is the entire data set.\n#### .group(groupAll) - **mandatory**\nFor the data count widget the only valid group is the group returned by `dimension.groupAll()`.\n\n```js\nvar ndx = crossfilter(data);\nvar all = ndx.groupAll();\n\ndc.dataCount('.dc-data-count')\n .dimension(ndx)\n .group(all);\n```\n\n**/\ndc.dataCount = function (parent, chartGroup) {\n var _formatNumber = d3.format(',d');\n var _chart = dc.baseMixin({});\n var _html = {some:'', all:''};\n\n /**\n #### html([object])\n Gets or sets an optional object specifying HTML templates to use depending how many items are\n selected. The text `%total-count` will replaced with the total number of records, and the text\n `%filter-count` will be replaced with the number of selected records.\n - all: HTML template to use if all items are selected\n - some: HTML template to use if not all items are selected\n\n ```js\n counter.html({\n some: '%filter-count out of %total-count records selected',\n all: 'All records selected. Click on charts to apply filters'\n })\n ```\n **/\n _chart.html = function (s) {\n if (!arguments.length) {\n return _html;\n }\n if (s.all) {\n _html.all = s.all;\n }\n if (s.some) {\n _html.some = s.some;\n }\n return _chart;\n };\n\n /**\n #### formatNumber([formatter])\n Gets or sets an optional function to format the filter count and total count.\n\n ```js\n counter.formatNumber(d3.format('.2g'))\n ```\n **/\n _chart.formatNumber = function (s) {\n if (!arguments.length) {\n return _formatNumber;\n }\n _formatNumber = s;\n return _chart;\n };\n\n _chart._doRender = function () {\n var tot = _chart.dimension().size(),\n val = _chart.group().value();\n var all = _formatNumber(tot);\n var selected = _formatNumber(val);\n\n if ((tot === val) && (_html.all !== '')) {\n _chart.root().html(_html.all.replace('%total-count', all).replace('%filter-count', selected));\n } else if (_html.some !== '') {\n _chart.root().html(_html.some.replace('%total-count', all).replace('%filter-count', selected));\n } else {\n _chart.selectAll('.total-count').text(all);\n _chart.selectAll('.filter-count').text(selected);\n }\n return _chart;\n };\n\n _chart._doRedraw = function () {\n return _chart._doRender();\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Data Table Widget\nIncludes: [Base Mixin](#base-mixin)\n\nThe data table is a simple widget designed to list crossfilter focused data set (rows being\nfiltered) in a good old tabular fashion.\n\nExamples:\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n#### dc.dataTable(parent[, chartGroup])\nCreate a data table widget instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created data table widget instance\n\n**/\ndc.dataTable = function (parent, chartGroup) {\n var LABEL_CSS_CLASS = 'dc-table-label';\n var ROW_CSS_CLASS = 'dc-table-row';\n var COLUMN_CSS_CLASS = 'dc-table-column';\n var GROUP_CSS_CLASS = 'dc-table-group';\n var HEAD_CSS_CLASS = 'dc-table-head';\n\n var _chart = dc.baseMixin({});\n\n var _size = 25;\n var _columns = [];\n var _sortBy = function (d) {\n return d;\n };\n var _order = d3.ascending;\n\n _chart._doRender = function () {\n _chart.selectAll('tbody').remove();\n\n renderRows(renderGroups());\n\n return _chart;\n };\n\n _chart._doColumnValueFormat = function (v, d) {\n return ((typeof v === 'function') ?\n v(d) : // v as function\n ((typeof v === 'string') ?\n d[v] : // v is field name string\n v.format(d) // v is Object, use fn (element 2)\n )\n );\n };\n\n _chart._doColumnHeaderFormat = function (d) {\n // if 'function', convert to string representation\n // show a string capitalized\n // if an object then display it's label string as-is.\n return (typeof d === 'function') ?\n _chart._doColumnHeaderFnToString(d) :\n ((typeof d === 'string') ?\n _chart._doColumnHeaderCapitalize(d) : String(d.label));\n };\n\n _chart._doColumnHeaderCapitalize = function (s) {\n // capitalize\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n\n _chart._doColumnHeaderFnToString = function (f) {\n // columnString(f) {\n var s = String(f);\n var i1 = s.indexOf('return ');\n if (i1 >= 0) {\n var i2 = s.lastIndexOf(';');\n if (i2 >= 0) {\n s = s.substring(i1 + 7, i2);\n var i3 = s.indexOf('numberFormat');\n if (i3 >= 0) {\n s = s.replace('numberFormat', '');\n }\n }\n }\n return s;\n };\n\n function renderGroups() {\n // The 'original' example uses all 'functions'.\n\t// If all 'functions' are used, then don't remove/add a header, and leave\n\t// the html alone. This preserves the functionality of earlier releases.\n\t// A 2nd option is a string representing a field in the data.\n\t// A third option is to supply an Object such as an array of 'information', and\n\t// supply your own _doColumnHeaderFormat and _doColumnValueFormat functions to\n\t// create what you need.\n var bAllFunctions = true;\n _columns.forEach(function (f) {\n bAllFunctions = bAllFunctions & (typeof f === 'function');\n });\n\n if (!bAllFunctions) {\n _chart.selectAll('th').remove();\n var headcols = _chart.root().selectAll('th')\n .data(_columns);\n\n var headGroup = headcols\n .enter()\n .append('th');\n\n headGroup\n .attr('class', HEAD_CSS_CLASS)\n .html(function (d) {\n return (_chart._doColumnHeaderFormat(d));\n\n });\n }\n\n var groups = _chart.root().selectAll('tbody')\n .data(nestEntries(), function (d) {\n return _chart.keyAccessor()(d);\n });\n\n var rowGroup = groups\n .enter()\n .append('tbody');\n\n rowGroup\n .append('tr')\n .attr('class', GROUP_CSS_CLASS)\n .append('td')\n .attr('class', LABEL_CSS_CLASS)\n .attr('colspan', _columns.length)\n .html(function (d) {\n return _chart.keyAccessor()(d);\n });\n\n groups.exit().remove();\n\n return rowGroup;\n }\n\n function nestEntries() {\n var entries;\n if (_order === d3.ascending) {\n entries = _chart.dimension().bottom(_size);\n } else {\n entries = _chart.dimension().top(_size);\n }\n\n return d3.nest()\n .key(_chart.group())\n .sortKeys(_order)\n .entries(entries.sort(function (a, b) {\n return _order(_sortBy(a), _sortBy(b));\n }));\n }\n\n function renderRows(groups) {\n var rows = groups.order()\n .selectAll('tr.' + ROW_CSS_CLASS)\n .data(function (d) {\n return d.values;\n });\n\n var rowEnter = rows.enter()\n .append('tr')\n .attr('class', ROW_CSS_CLASS);\n\n _columns.forEach(function (v, i) {\n rowEnter.append('td')\n .attr('class', COLUMN_CSS_CLASS + ' _' + i)\n .html(function (d) {\n return _chart._doColumnValueFormat(v, d);\n });\n });\n\n rows.exit().remove();\n\n return rows;\n }\n\n _chart._doRedraw = function () {\n return _chart._doRender();\n };\n\n /**\n #### .size([size])\n Get or set the table size which determines the number of rows displayed by the widget.\n\n **/\n _chart.size = function (s) {\n if (!arguments.length) {\n return _size;\n }\n _size = s;\n return _chart;\n };\n\n /**\n #### .columns([columnFunctionArray])\n Get or set column functions. The data table widget now supports several methods of specifying\n the columns to display. The original method, first shown below, uses an array of functions to\n generate dynamic columns. Column functions are simple javascript functions with only one input\n argument `d` which represents a row in the data set. The return value of these functions will be\n used directly to generate table content for each cell. However, this method requires the .html\n table entry to have a fixed set of column headers.\n\n ```js\n chart.columns([\n function(d) {\n return d.date;\n },\n function(d) {\n return d.open;\n },\n function(d) {\n return d.close;\n },\n function(d) {\n return numberFormat(d.close - d.open);\n },\n function(d) {\n return d.volume;\n }\n ]);\n ```\n\n The next example shows you can simply list the data (d) content directly without\n specifying it as a function, except where necessary (ie, computed columns). Note\n the data element accessor name is capitalized when displayed in the table. You can\n also mix in functions as desired or necessary, but you must use the\n Object = [Label, Fn] method as shown below.\n You may wish to override the following two functions, which are internally used to\n translate the column information or function into a displayed header. The first one\n is used on the simple \"string\" column specifier, the second is used to transform the\n String(fn) into something displayable. For the Stock example, the function for Change\n becomes a header of 'd.close - d.open'.\n _chart._doColumnHeaderCapitalize _chart._doColumnHeaderFnToString\n You may use your own Object definition, however you must then override\n _chart._doColumnHeaderFormat , _chart._doColumnValueFormat\n Be aware that fields without numberFormat specification will be displayed just as\n they are stored in the data, unformatted.\n ```js\n chart.columns([\n \"date\", // d[\"date\"], ie, a field accessor; capitalized automatically\n \"open\", // ...\n \"close\", // ...\n [\"Change\", // Specify an Object = [Label, Fn]\n function (d) {\n return numberFormat(d.close - d.open);\n }],\n \"volume\" // d[\"volume\"], ie, a field accessor; capitalized automatically\n ]);\n ```\n\n A third example, where all fields are specified using the Object = [Label, Fn] method.\n\n ```js\n chart.columns([\n [\"Date\", // Specify an Object = [Label, Fn]\n function (d) {\n return d.date;\n }],\n [\"Open\",\n function (d) {\n return numberFormat(d.open);\n }],\n [\"Close\",\n function (d) {\n return numberFormat(d.close);\n }],\n [\"Change\",\n function (d) {\n return numberFormat(d.close - d.open);\n }],\n [\"Volume\",\n function (d) {\n return d.volume;\n }]\n ]);\n ```\n\n **/\n _chart.columns = function (_) {\n if (!arguments.length) {\n return _columns;\n }\n _columns = _;\n return _chart;\n };\n\n /**\n #### .sortBy([sortByFunction])\n Get or set sort-by function. This function works as a value accessor at row level and returns a\n particular field to be sorted by. Default value: identity function\n\n ```js\n chart.sortBy(function(d) {\n return d.date;\n });\n ```\n\n **/\n _chart.sortBy = function (_) {\n if (!arguments.length) {\n return _sortBy;\n }\n _sortBy = _;\n return _chart;\n };\n\n /**\n #### .order([order])\n Get or set sort order. Default value: ``` d3.ascending ```\n\n ```js\n chart.order(d3.descending);\n ```\n\n **/\n _chart.order = function (_) {\n if (!arguments.length) {\n return _order;\n }\n _order = _;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n ## Data Grid Widget\n\n Includes: [Base Mixin](#base-mixin)\n\n Data grid is a simple widget designed to list the filtered records, providing\n a simple way to define how the items are displayed.\n\n Examples:\n * [List of members of the european parliament](http://europarl.me/dc.js/web/ep/index.html)\n\n #### dc.dataGrid(parent[, chartGroup])\n Create a data grid widget instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created data grid widget instance\n\n **/\ndc.dataGrid = function (parent, chartGroup) {\n var LABEL_CSS_CLASS = 'dc-grid-label';\n var ITEM_CSS_CLASS = 'dc-grid-item';\n var GROUP_CSS_CLASS = 'dc-grid-group';\n var GRID_CSS_CLASS = 'dc-grid-top';\n\n var _chart = dc.baseMixin({});\n\n var _size = 999; // shouldn't be needed, but you might\n var _html = function (d) { return 'you need to provide an html() handling param: ' + JSON.stringify(d); };\n var _sortBy = function (d) {\n return d;\n };\n var _order = d3.ascending;\n\n var _htmlGroup = function (d) {\n return '

    ' +\n _chart.keyAccessor()(d) + '

    ';\n };\n\n _chart._doRender = function () {\n _chart.selectAll('div.' + GRID_CSS_CLASS).remove();\n\n renderItems(renderGroups());\n\n return _chart;\n };\n\n function renderGroups() {\n var groups = _chart.root().selectAll('div.' + GRID_CSS_CLASS)\n .data(nestEntries(), function (d) {\n return _chart.keyAccessor()(d);\n });\n\n var itemGroup = groups\n .enter()\n .append('div')\n .attr('class', GRID_CSS_CLASS);\n\n if (_htmlGroup) {\n itemGroup\n .html(function (d) {\n return _htmlGroup(d);\n });\n }\n\n groups.exit().remove();\n return itemGroup;\n }\n\n function nestEntries() {\n var entries = _chart.dimension().top(_size);\n\n return d3.nest()\n .key(_chart.group())\n .sortKeys(_order)\n .entries(entries.sort(function (a, b) {\n return _order(_sortBy(a), _sortBy(b));\n }));\n }\n\n function renderItems(groups) {\n var items = groups.order()\n .selectAll('div.' + ITEM_CSS_CLASS)\n .data(function (d) {\n return d.values;\n });\n\n items.enter()\n .append('div')\n .attr('class', ITEM_CSS_CLASS)\n .html(function (d) {\n return _html(d);\n });\n\n items.exit().remove();\n\n return items;\n }\n\n _chart._doRedraw = function () {\n return _chart._doRender();\n };\n\n /**\n #### .size([size])\n Get or set the grid size which determines the number of items displayed by the widget.\n\n **/\n _chart.size = function (s) {\n if (!arguments.length) {\n return _size;\n }\n _size = s;\n return _chart;\n };\n\n /**\n #### .html( function (data) { return ''; })\n Get or set the function that formats an item. The data grid widget uses a\n function to generate dynamic html. Use your favourite templating engine or\n generate the string directly.\n ```js\n chart.html(function (d) { return '
    '+data.exampleString+'
    ';});\n ```\n\n **/\n _chart.html = function (_) {\n if (!arguments.length) {\n return _html;\n }\n _html = _;\n return _chart;\n };\n\n /**\n #### .htmlGroup( function (data) { return ''; })\n Get or set the function that formats a group label.\n ```js\n chart.htmlGroup (function (d) { return '

    '.d.key . 'with ' . d.values.length .' items

    '});\n ```\n\n **/\n _chart.htmlGroup = function (_) {\n if (!arguments.length) {\n return _htmlGroup;\n }\n _htmlGroup = _;\n return _chart;\n };\n\n /**\n #### .sortBy([sortByFunction])\n Get or set sort-by function. This function works as a value accessor at the item\n level and returns a particular field to be sorted.\n by. Default: identity function\n\n ```js\n chart.sortBy(function(d) {\n return d.date;\n });\n ```\n\n **/\n _chart.sortBy = function (_) {\n if (!arguments.length) {\n return _sortBy;\n }\n _sortBy = _;\n return _chart;\n };\n\n /**\n #### .order([order])\n Get or set sort order function. Default value: ``` d3.ascending ```\n\n ```js\n chart.order(d3.descending);\n ```\n\n **/\n _chart.order = function (_) {\n if (!arguments.length) {\n return _order;\n }\n _order = _;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Bubble Chart\nIncludes: [Bubble Mixin](#bubble-mixin), [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nA concrete implementation of a general purpose bubble chart that allows data visualization using the\nfollowing dimensions:\n\n* x axis position\n* y axis position\n* bubble radius\n* color\n\nExamples:\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n* [US Venture Capital Landscape 2011](http://dc-js.github.com/dc.js/vc/index.html)\n#### dc.bubbleChart(parent[, chartGroup])\nCreate a bubble chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection | compositeChart - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created bubble chart instance\n\n```js\n// create a bubble chart under #chart-container1 element using the default global chart group\nvar bubbleChart1 = dc.bubbleChart('#chart-container1');\n// create a bubble chart under #chart-container2 element using chart group A\nvar bubbleChart2 = dc.bubbleChart('#chart-container2', 'chartGroupA');\n```\n\n**/\ndc.bubbleChart = function (parent, chartGroup) {\n var _chart = dc.bubbleMixin(dc.coordinateGridMixin({}));\n\n var _elasticRadius = false;\n\n _chart.transitionDuration(750);\n\n var bubbleLocator = function (d) {\n return 'translate(' + (bubbleX(d)) + ',' + (bubbleY(d)) + ')';\n };\n\n /**\n #### .elasticRadius([boolean])\n Turn on or off the elastic bubble radius feature, or return the value of the flag. If this\n feature is turned on, then bubble radii will be automatically rescaled to fit the chart better.\n\n **/\n _chart.elasticRadius = function (_) {\n if (!arguments.length) {\n return _elasticRadius;\n }\n _elasticRadius = _;\n return _chart;\n };\n\n _chart.plotData = function () {\n if (_elasticRadius) {\n _chart.r().domain([_chart.rMin(), _chart.rMax()]);\n }\n\n _chart.r().range([_chart.MIN_RADIUS, _chart.xAxisLength() * _chart.maxBubbleRelativeSize()]);\n\n var bubbleG = _chart.chartBodyG().selectAll('g.' + _chart.BUBBLE_NODE_CLASS)\n .data(_chart.data(), function (d) { return d.key; });\n\n renderNodes(bubbleG);\n\n updateNodes(bubbleG);\n\n removeNodes(bubbleG);\n\n _chart.fadeDeselectedArea();\n };\n\n function renderNodes(bubbleG) {\n var bubbleGEnter = bubbleG.enter().append('g');\n\n bubbleGEnter\n .attr('class', _chart.BUBBLE_NODE_CLASS)\n .attr('transform', bubbleLocator)\n .append('circle').attr('class', function (d, i) {\n return _chart.BUBBLE_CLASS + ' _' + i;\n })\n .on('click', _chart.onClick)\n .attr('fill', _chart.getColor)\n .attr('r', 0);\n dc.transition(bubbleG, _chart.transitionDuration())\n .selectAll('circle.' + _chart.BUBBLE_CLASS)\n .attr('r', function (d) {\n return _chart.bubbleR(d);\n })\n .attr('opacity', function (d) {\n return (_chart.bubbleR(d) > 0) ? 1 : 0;\n });\n\n _chart._doRenderLabel(bubbleGEnter);\n\n _chart._doRenderTitles(bubbleGEnter);\n }\n\n function updateNodes(bubbleG) {\n dc.transition(bubbleG, _chart.transitionDuration())\n .attr('transform', bubbleLocator)\n .selectAll('circle.' + _chart.BUBBLE_CLASS)\n .attr('fill', _chart.getColor)\n .attr('r', function (d) {\n return _chart.bubbleR(d);\n })\n .attr('opacity', function (d) {\n return (_chart.bubbleR(d) > 0) ? 1 : 0;\n });\n\n _chart.doUpdateLabels(bubbleG);\n _chart.doUpdateTitles(bubbleG);\n }\n\n function removeNodes(bubbleG) {\n bubbleG.exit().remove();\n }\n\n function bubbleX(d) {\n var x = _chart.x()(_chart.keyAccessor()(d));\n if (isNaN(x)) {\n x = 0;\n }\n return x;\n }\n\n function bubbleY(d) {\n var y = _chart.y()(_chart.valueAccessor()(d));\n if (isNaN(y)) {\n y = 0;\n }\n return y;\n }\n\n _chart.renderBrush = function () {\n // override default x axis brush from parent chart\n };\n\n _chart.redrawBrush = function () {\n // override default x axis brush from parent chart\n _chart.fadeDeselectedArea();\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Composite Chart\nIncludes: [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nComposite charts are a special kind of chart that render multiple charts on the same Coordinate\nGrid. You can overlay (compose) different bar/line/area charts in a single composite chart to\nachieve some quite flexible charting effects.\n#### dc.compositeChart(parent[, chartGroup])\nCreate a composite chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created composite chart instance\n\n```js\n// create a composite chart under #chart-container1 element using the default global chart group\nvar compositeChart1 = dc.compositeChart('#chart-container1');\n// create a composite chart under #chart-container2 element using chart group A\nvar compositeChart2 = dc.compositeChart('#chart-container2', 'chartGroupA');\n```\n\n**/\ndc.compositeChart = function (parent, chartGroup) {\n\n var SUB_CHART_CLASS = 'sub';\n var DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING = 12;\n\n var _chart = dc.coordinateGridMixin({});\n var _children = [];\n\n var _childOptions = {};\n\n var _shareColors = false,\n _shareTitle = true;\n\n var _rightYAxis = d3.svg.axis(),\n _rightYAxisLabel = 0,\n _rightYAxisLabelPadding = DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING,\n _rightY,\n _rightAxisGridLines = false;\n\n _chart._mandatoryAttributes([]);\n _chart.transitionDuration(500);\n\n dc.override(_chart, '_generateG', function () {\n var g = this.__generateG();\n\n for (var i = 0; i < _children.length; ++i) {\n var child = _children[i];\n\n generateChildG(child, i);\n\n if (!child.dimension()) {\n child.dimension(_chart.dimension());\n }\n if (!child.group()) {\n child.group(_chart.group());\n }\n\n child.chartGroup(_chart.chartGroup());\n child.svg(_chart.svg());\n child.xUnits(_chart.xUnits());\n child.transitionDuration(_chart.transitionDuration());\n child.brushOn(_chart.brushOn());\n child.renderTitle(_chart.renderTitle());\n }\n\n return g;\n });\n\n _chart._brushing = function () {\n var extent = _chart.extendBrush();\n var brushIsEmpty = _chart.brushIsEmpty(extent);\n\n for (var i = 0; i < _children.length; ++i) {\n _children[i].filter(null);\n if (!brushIsEmpty) {\n _children[i].filter(extent);\n }\n }\n };\n\n _chart._prepareYAxis = function () {\n if (leftYAxisChildren().length !== 0) { prepareLeftYAxis(); }\n if (rightYAxisChildren().length !== 0) { prepareRightYAxis(); }\n\n if (leftYAxisChildren().length > 0 && !_rightAxisGridLines) {\n _chart._renderHorizontalGridLinesForAxis(_chart.g(), _chart.y(), _chart.yAxis());\n }\n else if (rightYAxisChildren().length > 0) {\n _chart._renderHorizontalGridLinesForAxis(_chart.g(), _rightY, _rightYAxis);\n }\n };\n\n _chart.renderYAxis = function () {\n if (leftYAxisChildren().length !== 0) {\n _chart.renderYAxisAt('y', _chart.yAxis(), _chart.margins().left);\n _chart.renderYAxisLabel('y', _chart.yAxisLabel(), -90);\n }\n\n if (rightYAxisChildren().length !== 0) {\n _chart.renderYAxisAt('yr', _chart.rightYAxis(), _chart.width() - _chart.margins().right);\n _chart.renderYAxisLabel('yr', _chart.rightYAxisLabel(), 90, _chart.width() - _rightYAxisLabelPadding);\n }\n };\n\n function prepareRightYAxis() {\n if (_chart.rightY() === undefined || _chart.elasticY()) {\n _chart.rightY(d3.scale.linear());\n _chart.rightY().domain([rightYAxisMin(), rightYAxisMax()]).rangeRound([_chart.yAxisHeight(), 0]);\n }\n\n _chart.rightY().range([_chart.yAxisHeight(), 0]);\n _chart.rightYAxis(_chart.rightYAxis().scale(_chart.rightY()));\n\n _chart.rightYAxis().orient('right');\n }\n\n function prepareLeftYAxis() {\n if (_chart.y() === undefined || _chart.elasticY()) {\n _chart.y(d3.scale.linear());\n _chart.y().domain([yAxisMin(), yAxisMax()]).rangeRound([_chart.yAxisHeight(), 0]);\n }\n\n _chart.y().range([_chart.yAxisHeight(), 0]);\n _chart.yAxis(_chart.yAxis().scale(_chart.y()));\n\n _chart.yAxis().orient('left');\n }\n\n function generateChildG(child, i) {\n child._generateG(_chart.g());\n child.g().attr('class', SUB_CHART_CLASS + ' _' + i);\n }\n\n _chart.plotData = function () {\n for (var i = 0; i < _children.length; ++i) {\n var child = _children[i];\n\n if (!child.g()) {\n generateChildG(child, i);\n }\n\n if (_shareColors) {\n child.colors(_chart.colors());\n }\n\n child.x(_chart.x());\n\n child.xAxis(_chart.xAxis());\n\n if (child.useRightYAxis()) {\n child.y(_chart.rightY());\n child.yAxis(_chart.rightYAxis());\n }\n else {\n child.y(_chart.y());\n child.yAxis(_chart.yAxis());\n }\n\n child.plotData();\n\n child._activateRenderlets();\n }\n };\n\n /**\n #### .useRightAxisGridLines(bool)\n Get or set whether to draw gridlines from the right y axis. Drawing from the left y axis is the\n default behavior. This option is only respected when subcharts with both left and right y-axes\n are present.\n **/\n _chart.useRightAxisGridLines = function (_) {\n if (!arguments) {\n return _rightAxisGridLines;\n }\n\n _rightAxisGridLines = _;\n return _chart;\n };\n\n /**\n #### .childOptions({object})\n Get or set chart-specific options for all child charts. This is equivalent to calling `.options`\n on each child chart.\n **/\n _chart.childOptions = function (_) {\n if (!arguments.length) {\n return _childOptions;\n }\n _childOptions = _;\n _children.forEach(function (child) {\n child.options(_childOptions);\n });\n return _chart;\n };\n\n _chart.fadeDeselectedArea = function () {\n for (var i = 0; i < _children.length; ++i) {\n var child = _children[i];\n child.brush(_chart.brush());\n child.fadeDeselectedArea();\n }\n };\n\n /**\n #### .rightYAxisLabel([labelText])\n Set or get the right y axis label.\n **/\n _chart.rightYAxisLabel = function (_, padding) {\n if (!arguments.length) {\n return _rightYAxisLabel;\n }\n _rightYAxisLabel = _;\n _chart.margins().right -= _rightYAxisLabelPadding;\n _rightYAxisLabelPadding = (padding === undefined) ? DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING : padding;\n _chart.margins().right += _rightYAxisLabelPadding;\n return _chart;\n };\n\n /**\n #### .compose(subChartArray)\n Combine the given charts into one single composite coordinate grid chart.\n\n ```js\n // compose the given charts in the array into one single composite chart\n moveChart.compose([\n // when creating sub-chart you need to pass in the parent chart\n dc.lineChart(moveChart)\n .group(indexAvgByMonthGroup) // if group is missing then parent's group will be used\n .valueAccessor(function (d){return d.value.avg;})\n // most of the normal functions will continue to work in a composed chart\n .renderArea(true)\n .stack(monthlyMoveGroup, function (d){return d.value;})\n .title(function (d){\n var value = d.value.avg?d.value.avg:d.value;\n if(isNaN(value)) value = 0;\n return dateFormat(d.key) + '\\n' + numberFormat(value);\n }),\n dc.barChart(moveChart)\n .group(volumeByMonthGroup)\n .centerBar(true)\n ]);\n ```\n\n **/\n _chart.compose = function (charts) {\n _children = charts;\n _children.forEach(function (child) {\n child.height(_chart.height());\n child.width(_chart.width());\n child.margins(_chart.margins());\n\n if (_shareTitle) {\n child.title(_chart.title());\n }\n\n child.options(_childOptions);\n });\n return _chart;\n };\n\n /**\n #### .children()\n Returns the child charts which are composed into the composite chart.\n **/\n\n _chart.children = function () {\n return _children;\n };\n\n /**\n #### .shareColors([boolean])\n Get or set color sharing for the chart. If set, the `.colors()` value from this chart\n will be shared with composed children. Additionally if the child chart implements\n Stackable and has not set a custom .colorAccessor, then it will generate a color\n specific to its order in the composition.\n **/\n _chart.shareColors = function (_) {\n if (!arguments.length) {\n return _shareColors;\n }\n _shareColors = _;\n return _chart;\n };\n\n /**\n #### .shareTitle([[boolean])\n Get or set title sharing for the chart. If set, the `.title()` value from this chart will be\n shared with composed children. Default value is true.\n **/\n _chart.shareTitle = function (_) {\n if (!arguments.length) {\n return _shareTitle;\n }\n _shareTitle = _;\n return _chart;\n };\n\n /**\n #### .rightY([yScale])\n Get or set the y scale for the right axis. The right y scale is typically automatically\n generated by the chart implementation.\n\n **/\n _chart.rightY = function (_) {\n if (!arguments.length) {\n return _rightY;\n }\n _rightY = _;\n return _chart;\n };\n\n function leftYAxisChildren() {\n return _children.filter(function (child) {\n return !child.useRightYAxis();\n });\n }\n\n function rightYAxisChildren() {\n return _children.filter(function (child) {\n return child.useRightYAxis();\n });\n }\n\n function getYAxisMin(charts) {\n return charts.map(function (c) {\n return c.yAxisMin();\n });\n }\n\n delete _chart.yAxisMin;\n function yAxisMin() {\n return d3.min(getYAxisMin(leftYAxisChildren()));\n }\n\n function rightYAxisMin() {\n return d3.min(getYAxisMin(rightYAxisChildren()));\n }\n\n function getYAxisMax(charts) {\n return charts.map(function (c) {\n return c.yAxisMax();\n });\n }\n\n delete _chart.yAxisMax;\n function yAxisMax() {\n return dc.utils.add(d3.max(getYAxisMax(leftYAxisChildren())), _chart.yAxisPadding());\n }\n\n function rightYAxisMax() {\n return dc.utils.add(d3.max(getYAxisMax(rightYAxisChildren())), _chart.yAxisPadding());\n }\n\n function getAllXAxisMinFromChildCharts() {\n return _children.map(function (c) {\n return c.xAxisMin();\n });\n }\n\n dc.override(_chart, 'xAxisMin', function () {\n return dc.utils.subtract(d3.min(getAllXAxisMinFromChildCharts()), _chart.xAxisPadding());\n });\n\n function getAllXAxisMaxFromChildCharts() {\n return _children.map(function (c) {\n return c.xAxisMax();\n });\n }\n\n dc.override(_chart, 'xAxisMax', function () {\n return dc.utils.add(d3.max(getAllXAxisMaxFromChildCharts()), _chart.xAxisPadding());\n });\n\n _chart.legendables = function () {\n return _children.reduce(function (items, child) {\n if (_shareColors) {\n child.colors(_chart.colors());\n }\n items.push.apply(items, child.legendables());\n return items;\n }, []);\n };\n\n _chart.legendHighlight = function (d) {\n for (var j = 0; j < _children.length; ++j) {\n var child = _children[j];\n child.legendHighlight(d);\n }\n };\n\n _chart.legendReset = function (d) {\n for (var j = 0; j < _children.length; ++j) {\n var child = _children[j];\n child.legendReset(d);\n }\n };\n\n _chart.legendToggle = function () {\n console.log('composite should not be getting legendToggle itself');\n };\n\n /**\n #### .rightYAxis([yAxis])\n Set or get the right y axis used by the composite chart. This function is most useful when y\n axis customization is required. The y axis in dc.js is an instance of a [d3 axis\n object](https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-_axis) therefore it supports any valid\n d3 axis manipulation. **Caution**: The y axis is usually generated internally by dc;\n resetting it may cause unexpected results.\n ```jså\n // customize y axis tick format\n chart.rightYAxis().tickFormat(function (v) {return v + '%';});\n // customize y axis tick values\n chart.rightYAxis().tickValues([0, 100, 200, 300]);\n ```\n\n **/\n _chart.rightYAxis = function (rightYAxis) {\n if (!arguments.length) {\n return _rightYAxis;\n }\n _rightYAxis = rightYAxis;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n ## Series Chart\n\n Includes: [Composite Chart](#composite chart)\n\n A series chart is a chart that shows multiple series of data overlaid on one chart, where the\n series is specified in the data. It is a specialization of Composite Chart and inherits all\n composite features other than recomposing the chart.\n\n #### dc.seriesChart(parent[, chartGroup])\n Create a series chart instance and attach it to the given parent element.\n\n Parameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\n Returns:\n A newly created series chart instance\n\n ```js\n // create a series chart under #chart-container1 element using the default global chart group\n var seriesChart1 = dc.seriesChart(\"#chart-container1\");\n // create a series chart under #chart-container2 element using chart group A\n var seriesChart2 = dc.seriesChart(\"#chart-container2\", \"chartGroupA\");\n ```\n\n **/\ndc.seriesChart = function (parent, chartGroup) {\n var _chart = dc.compositeChart(parent, chartGroup);\n\n function keySort(a, b) {\n return d3.ascending(_chart.keyAccessor()(a), _chart.keyAccessor()(b));\n }\n\n var _charts = {};\n var _chartFunction = dc.lineChart;\n var _seriesAccessor;\n var _seriesSort = d3.ascending;\n var _valueSort = keySort;\n\n _chart._mandatoryAttributes().push('seriesAccessor', 'chart');\n _chart.shareColors(true);\n\n _chart._preprocessData = function () {\n var keep = [];\n var childrenChanged;\n var nester = d3.nest().key(_seriesAccessor);\n if (_seriesSort) {\n nester.sortKeys(_seriesSort);\n }\n if (_valueSort) {\n nester.sortValues(_valueSort);\n }\n var nesting = nester.entries(_chart.data());\n var children =\n nesting.map(function (sub, i) {\n var subChart = _charts[sub.key] || _chartFunction.call(_chart, _chart, chartGroup, sub.key, i);\n if (!_charts[sub.key]) {\n childrenChanged = true;\n }\n _charts[sub.key] = subChart;\n keep.push(sub.key);\n return subChart\n .dimension(_chart.dimension())\n .group({all:d3.functor(sub.values)}, sub.key)\n .keyAccessor(_chart.keyAccessor())\n .valueAccessor(_chart.valueAccessor())\n .brushOn(_chart.brushOn());\n });\n // this works around the fact compositeChart doesn't really\n // have a removal interface\n Object.keys(_charts)\n .filter(function (c) {return keep.indexOf(c) === -1;})\n .forEach(function (c) {\n clearChart(c);\n childrenChanged = true;\n });\n _chart._compose(children);\n if (childrenChanged && _chart.legend()) {\n _chart.legend().render();\n }\n };\n\n function clearChart(c) {\n if (_charts[c].g()) {\n _charts[c].g().remove();\n }\n delete _charts[c];\n }\n\n function resetChildren() {\n Object.keys(_charts).map(clearChart);\n _charts = {};\n }\n\n /**\n #### .chart([function])\n Get or set the chart function, which generates the child charts. Default: dc.lineChart\n\n ```\n // put interpolation on the line charts used for the series\n chart.chart(function(c) { return dc.lineChart(c).interpolate('basis'); })\n // do a scatter series chart\n chart.chart(dc.scatterPlot)\n ```\n\n **/\n _chart.chart = function (_) {\n if (!arguments.length) {\n return _chartFunction;\n }\n _chartFunction = _;\n resetChildren();\n return _chart;\n };\n\n /**\n #### .seriesAccessor([accessor])\n Get or set accessor function for the displayed series. Given a datum, this function\n should return the series that datum belongs to.\n **/\n _chart.seriesAccessor = function (_) {\n if (!arguments.length) {\n return _seriesAccessor;\n }\n _seriesAccessor = _;\n resetChildren();\n return _chart;\n };\n\n /**\n #### .seriesSort([sortFunction])\n Get or set a function to sort the list of series by, given series values.\n\n Example:\n ```\n chart.seriesSort(d3.descending);\n ```\n **/\n _chart.seriesSort = function (_) {\n if (!arguments.length) {\n return _seriesSort;\n }\n _seriesSort = _;\n resetChildren();\n return _chart;\n };\n\n /**\n #### .valueSort([sortFunction])\n Get or set a function to sort each series values by. By default this is the key accessor which,\n for example, will ensure a lineChart series connects its points in increasing key/x order,\n rather than haphazardly.\n **/\n _chart.valueSort = function (_) {\n if (!arguments.length) {\n return _valueSort;\n }\n _valueSort = _;\n resetChildren();\n return _chart;\n };\n\n // make compose private\n _chart._compose = _chart.compose;\n delete _chart.compose;\n\n return _chart;\n};\n","/**\n## Geo Choropleth Chart\nIncludes: [Color Mixin](#color-mixin), [Base Mixin](#base-mixin)\n\nThe geo choropleth chart is designed as an easy way to create a crossfilter driven choropleth map\nfrom GeoJson data. This chart implementation was inspired by [the great d3 choropleth\nexample](http://bl.ocks.org/4060606).\n\nExamples:\n* [US Venture Capital Landscape 2011](http://dc-js.github.com/dc.js/vc/index.html)\n#### dc.geoChoroplethChart(parent[, chartGroup])\nCreate a choropleth chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created choropleth chart instance\n\n```js\n// create a choropleth chart under '#us-chart' element using the default global chart group\nvar chart1 = dc.geoChoroplethChart('#us-chart');\n// create a choropleth chart under '#us-chart2' element using chart group A\nvar chart2 = dc.compositeChart('#us-chart2', 'chartGroupA');\n```\n\n**/\ndc.geoChoroplethChart = function (parent, chartGroup) {\n var _chart = dc.colorMixin(dc.baseMixin({}));\n\n _chart.colorAccessor(function (d) {\n return d || 0;\n });\n\n var _geoPath = d3.geo.path();\n var _projectionFlag;\n\n var _geoJsons = [];\n\n _chart._doRender = function () {\n _chart.resetSvg();\n for (var layerIndex = 0; layerIndex < _geoJsons.length; ++layerIndex) {\n var states = _chart.svg().append('g')\n .attr('class', 'layer' + layerIndex);\n\n var regionG = states.selectAll('g.' + geoJson(layerIndex).name)\n .data(geoJson(layerIndex).data)\n .enter()\n .append('g')\n .attr('class', geoJson(layerIndex).name);\n\n regionG\n .append('path')\n .attr('fill', 'white')\n .attr('d', _geoPath);\n\n regionG.append('title');\n\n plotData(layerIndex);\n }\n _projectionFlag = false;\n };\n\n function plotData(layerIndex) {\n var data = generateLayeredData();\n\n if (isDataLayer(layerIndex)) {\n var regionG = renderRegionG(layerIndex);\n\n renderPaths(regionG, layerIndex, data);\n\n renderTitle(regionG, layerIndex, data);\n }\n }\n\n function generateLayeredData() {\n var data = {};\n var groupAll = _chart.data();\n for (var i = 0; i < groupAll.length; ++i) {\n data[_chart.keyAccessor()(groupAll[i])] = _chart.valueAccessor()(groupAll[i]);\n }\n return data;\n }\n\n function isDataLayer(layerIndex) {\n return geoJson(layerIndex).keyAccessor;\n }\n\n function renderRegionG(layerIndex) {\n var regionG = _chart.svg()\n .selectAll(layerSelector(layerIndex))\n .classed('selected', function (d) {\n return isSelected(layerIndex, d);\n })\n .classed('deselected', function (d) {\n return isDeselected(layerIndex, d);\n })\n .attr('class', function (d) {\n var layerNameClass = geoJson(layerIndex).name;\n var regionClass = dc.utils.nameToId(geoJson(layerIndex).keyAccessor(d));\n var baseClasses = layerNameClass + ' ' + regionClass;\n if (isSelected(layerIndex, d)) {\n baseClasses += ' selected';\n }\n if (isDeselected(layerIndex, d)) {\n baseClasses += ' deselected';\n }\n return baseClasses;\n });\n return regionG;\n }\n\n function layerSelector(layerIndex) {\n return 'g.layer' + layerIndex + ' g.' + geoJson(layerIndex).name;\n }\n\n function isSelected(layerIndex, d) {\n return _chart.hasFilter() && _chart.hasFilter(getKey(layerIndex, d));\n }\n\n function isDeselected(layerIndex, d) {\n return _chart.hasFilter() && !_chart.hasFilter(getKey(layerIndex, d));\n }\n\n function getKey(layerIndex, d) {\n return geoJson(layerIndex).keyAccessor(d);\n }\n\n function geoJson(index) {\n return _geoJsons[index];\n }\n\n function renderPaths(regionG, layerIndex, data) {\n var paths = regionG\n .select('path')\n .attr('fill', function () {\n var currentFill = d3.select(this).attr('fill');\n if (currentFill) {\n return currentFill;\n }\n return 'none';\n })\n .on('click', function (d) {\n return _chart.onClick(d, layerIndex);\n });\n\n dc.transition(paths, _chart.transitionDuration()).attr('fill', function (d, i) {\n return _chart.getColor(data[geoJson(layerIndex).keyAccessor(d)], i);\n });\n }\n\n _chart.onClick = function (d, layerIndex) {\n var selectedRegion = geoJson(layerIndex).keyAccessor(d);\n dc.events.trigger(function () {\n _chart.filter(selectedRegion);\n _chart.redrawGroup();\n });\n };\n\n function renderTitle(regionG, layerIndex, data) {\n if (_chart.renderTitle()) {\n regionG.selectAll('title').text(function (d) {\n var key = getKey(layerIndex, d);\n var value = data[key];\n return _chart.title()({key: key, value: value});\n });\n }\n }\n\n _chart._doRedraw = function () {\n for (var layerIndex = 0; layerIndex < _geoJsons.length; ++layerIndex) {\n plotData(layerIndex);\n if (_projectionFlag) {\n _chart.svg().selectAll('g.' + geoJson(layerIndex).name + ' path').attr('d', _geoPath);\n }\n }\n _projectionFlag = false;\n };\n\n /**\n #### .overlayGeoJson(json, name, keyAccessor) - **mandatory**\n Use this function to insert a new GeoJson map layer. This function can be invoked multiple times\n if you have multiple GeoJson data layers to render on top of each other. If you overlay multiple\n layers with the same name the new overlay will override the existing one.\n\n Parameters:\n * json - GeoJson feed\n * name - name of the layer\n * keyAccessor - accessor function used to extract 'key' from the GeoJson data. The key extracted by\n this function should match the keys returned by the crossfilter groups.\n\n ```js\n // insert a layer for rendering US states\n chart.overlayGeoJson(statesJson.features, 'state', function(d) {\n return d.properties.name;\n });\n ```\n\n **/\n _chart.overlayGeoJson = function (json, name, keyAccessor) {\n for (var i = 0; i < _geoJsons.length; ++i) {\n if (_geoJsons[i].name === name) {\n _geoJsons[i].data = json;\n _geoJsons[i].keyAccessor = keyAccessor;\n return _chart;\n }\n }\n _geoJsons.push({name: name, data: json, keyAccessor: keyAccessor});\n return _chart;\n };\n\n /**\n #### .projection(projection)\n Set custom geo projection function. See the available [d3 geo projection\n functions](https://github.com/mbostock/d3/wiki/Geo-Projections). Default value: albersUsa.\n\n **/\n _chart.projection = function (projection) {\n _geoPath.projection(projection);\n _projectionFlag = true;\n return _chart;\n };\n\n /**\n #### .geoJsons()\n Returns all GeoJson layers currently registered with this chart. The returned array is a\n reference to this chart's internal data structure, so any modification to this array will also\n modify this chart's internal registration.\n\n Returns an array of objects containing fields {name, data, accessor}\n\n **/\n _chart.geoJsons = function () {\n return _geoJsons;\n };\n\n /**\n #### .geoPath()\n Returns the [d3.geo.path](https://github.com/mbostock/d3/wiki/Geo-Paths#path) object used to\n render the projection and features. Can be useful for figuring out the bounding box of the\n feature set and thus a way to calculate scale and translation for the projection.\n\n **/\n _chart.geoPath = function () {\n return _geoPath;\n };\n\n /**\n #### .removeGeoJson(name)\n Remove a GeoJson layer from this chart by name\n\n **/\n _chart.removeGeoJson = function (name) {\n var geoJsons = [];\n\n for (var i = 0; i < _geoJsons.length; ++i) {\n var layer = _geoJsons[i];\n if (layer.name !== name) {\n geoJsons.push(layer);\n }\n }\n\n _geoJsons = geoJsons;\n\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Bubble Overlay Chart\nIncludes: [Bubble Mixin](#bubble-mixin), [Base Mixin](#base-mixin)\n\nThe bubble overlay chart is quite different from the typical bubble chart. With the bubble overlay\nchart you can arbitrarily place bubbles on an existing svg or bitmap image, thus changing the\ntypical x and y positioning while retaining the capability to visualize data using bubble radius\nand coloring.\n\nExamples:\n* [Canadian City Crime Stats](http://dc-js.github.com/dc.js/crime/index.html)\n#### dc.bubbleOverlay(parent[, chartGroup])\nCreate a bubble overlay chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n off-screen. Typically this element should also be the parent of the underlying image.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created bubble overlay chart instance\n\n```js\n// create a bubble overlay chart on top of the '#chart-container1 svg' element using the default global chart group\nvar bubbleChart1 = dc.bubbleOverlayChart('#chart-container1').svg(d3.select('#chart-container1 svg'));\n// create a bubble overlay chart on top of the '#chart-container2 svg' element using chart group A\nvar bubbleChart2 = dc.compositeChart('#chart-container2', 'chartGroupA').svg(d3.select('#chart-container2 svg'));\n```\n#### .svg(imageElement) - **mandatory**\nSet the underlying svg image element. Unlike other dc charts this chart will not generate a svg\nelement; therefore the bubble overlay chart will not work if this function is not invoked. If the\nunderlying image is a bitmap, then an empty svg will need to be created on top of the image.\n\n```js\n// set up underlying svg element\nchart.svg(d3.select('#chart svg'));\n```\n\n**/\ndc.bubbleOverlay = function (root, chartGroup) {\n var BUBBLE_OVERLAY_CLASS = 'bubble-overlay';\n var BUBBLE_NODE_CLASS = 'node';\n var BUBBLE_CLASS = 'bubble';\n\n var _chart = dc.bubbleMixin(dc.baseMixin({}));\n var _g;\n var _points = [];\n\n _chart.transitionDuration(750);\n\n _chart.radiusValueAccessor(function (d) {\n return d.value;\n });\n\n /**\n #### .point(name, x, y) - **mandatory**\n Set up a data point on the overlay. The name of a data point should match a specific 'key' among\n data groups generated using keyAccessor. If a match is found (point name <-> data group key)\n then a bubble will be generated at the position specified by the function. x and y\n value specified here are relative to the underlying svg.\n\n **/\n _chart.point = function (name, x, y) {\n _points.push({name: name, x: x, y: y});\n return _chart;\n };\n\n _chart._doRender = function () {\n _g = initOverlayG();\n\n _chart.r().range([_chart.MIN_RADIUS, _chart.width() * _chart.maxBubbleRelativeSize()]);\n\n initializeBubbles();\n\n _chart.fadeDeselectedArea();\n\n return _chart;\n };\n\n function initOverlayG() {\n _g = _chart.select('g.' + BUBBLE_OVERLAY_CLASS);\n if (_g.empty()) {\n _g = _chart.svg().append('g').attr('class', BUBBLE_OVERLAY_CLASS);\n }\n return _g;\n }\n\n function initializeBubbles() {\n var data = mapData();\n\n _points.forEach(function (point) {\n var nodeG = getNodeG(point, data);\n\n var circle = nodeG.select('circle.' + BUBBLE_CLASS);\n\n if (circle.empty()) {\n circle = nodeG.append('circle')\n .attr('class', BUBBLE_CLASS)\n .attr('r', 0)\n .attr('fill', _chart.getColor)\n .on('click', _chart.onClick);\n }\n\n dc.transition(circle, _chart.transitionDuration())\n .attr('r', function (d) {\n return _chart.bubbleR(d);\n });\n\n _chart._doRenderLabel(nodeG);\n\n _chart._doRenderTitles(nodeG);\n });\n }\n\n function mapData() {\n var data = {};\n _chart.data().forEach(function (datum) {\n data[_chart.keyAccessor()(datum)] = datum;\n });\n return data;\n }\n\n function getNodeG(point, data) {\n var bubbleNodeClass = BUBBLE_NODE_CLASS + ' ' + dc.utils.nameToId(point.name);\n\n var nodeG = _g.select('g.' + dc.utils.nameToId(point.name));\n\n if (nodeG.empty()) {\n nodeG = _g.append('g')\n .attr('class', bubbleNodeClass)\n .attr('transform', 'translate(' + point.x + ',' + point.y + ')');\n }\n\n nodeG.datum(data[point.name]);\n\n return nodeG;\n }\n\n _chart._doRedraw = function () {\n updateBubbles();\n\n _chart.fadeDeselectedArea();\n\n return _chart;\n };\n\n function updateBubbles() {\n var data = mapData();\n\n _points.forEach(function (point) {\n var nodeG = getNodeG(point, data);\n\n var circle = nodeG.select('circle.' + BUBBLE_CLASS);\n\n dc.transition(circle, _chart.transitionDuration())\n .attr('r', function (d) {\n return _chart.bubbleR(d);\n })\n .attr('fill', _chart.getColor);\n\n _chart.doUpdateLabels(nodeG);\n\n _chart.doUpdateTitles(nodeG);\n });\n }\n\n _chart.debug = function (flag) {\n if (flag) {\n var debugG = _chart.select('g.' + dc.constants.DEBUG_GROUP_CLASS);\n\n if (debugG.empty()) {\n debugG = _chart.svg()\n .append('g')\n .attr('class', dc.constants.DEBUG_GROUP_CLASS);\n }\n\n var debugText = debugG.append('text')\n .attr('x', 10)\n .attr('y', 20);\n\n debugG\n .append('rect')\n .attr('width', _chart.width())\n .attr('height', _chart.height())\n .on('mousemove', function () {\n var position = d3.mouse(debugG.node());\n var msg = position[0] + ', ' + position[1];\n debugText.text(msg);\n });\n } else {\n _chart.selectAll('.debug').remove();\n }\n\n return _chart;\n };\n\n _chart.anchor(root, chartGroup);\n\n return _chart;\n};\n","/**\n## Row Chart\nIncludes: [Cap Mixin](#cap-mixin), [Margin Mixin](#margin-mixin), [Color Mixin](#color-mixin), [Base Mixin](#base-mixin)\n\nConcrete row chart implementation.\n#### dc.rowChart(parent[, chartGroup])\nCreate a row chart instance and attach it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created row chart instance\n\n```js\n// create a row chart under #chart-container1 element using the default global chart group\nvar chart1 = dc.rowChart('#chart-container1');\n// create a row chart under #chart-container2 element using chart group A\nvar chart2 = dc.rowChart('#chart-container2', 'chartGroupA');\n```\n\n**/\ndc.rowChart = function (parent, chartGroup) {\n\n var _g;\n\n var _labelOffsetX = 10;\n var _labelOffsetY = 15;\n var _hasLabelOffsetY = false;\n var _dyOffset = '0.35em'; // this helps center labels https://github.com/mbostock/d3/wiki/SVG-Shapes#svg_text\n var _titleLabelOffsetX = 2;\n\n var _gap = 5;\n\n var _fixedBarHeight = false;\n var _rowCssClass = 'row';\n var _titleRowCssClass = 'titlerow';\n var _renderTitleLabel = false;\n\n var _chart = dc.capMixin(dc.marginMixin(dc.colorMixin(dc.baseMixin({}))));\n\n var _x;\n\n var _elasticX;\n\n var _xAxis = d3.svg.axis().orient('bottom');\n\n var _rowData;\n\n _chart.rowsCap = _chart.cap;\n\n function calculateAxisScale() {\n if (!_x || _elasticX) {\n var extent = d3.extent(_rowData, _chart.cappedValueAccessor);\n if (extent[0] > 0) {\n extent[0] = 0;\n }\n _x = d3.scale.linear().domain(extent)\n .range([0, _chart.effectiveWidth()]);\n }\n _xAxis.scale(_x);\n }\n\n function drawAxis() {\n var axisG = _g.select('g.axis');\n\n calculateAxisScale();\n\n if (axisG.empty()) {\n axisG = _g.append('g').attr('class', 'axis')\n .attr('transform', 'translate(0, ' + _chart.effectiveHeight() + ')');\n }\n\n dc.transition(axisG, _chart.transitionDuration())\n .call(_xAxis);\n }\n\n _chart._doRender = function () {\n _chart.resetSvg();\n\n _g = _chart.svg()\n .append('g')\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')');\n\n drawChart();\n\n return _chart;\n };\n\n _chart.title(function (d) {\n return _chart.cappedKeyAccessor(d) + ': ' + _chart.cappedValueAccessor(d);\n });\n\n _chart.label(_chart.cappedKeyAccessor);\n\n /**\n #### .x([scale])\n Gets or sets the x scale. The x scale can be any d3\n [quantitive scale](https://github.com/mbostock/d3/wiki/Quantitative-Scales)\n **/\n _chart.x = function (x) {\n if (!arguments.length) {\n return _x;\n }\n _x = x;\n return _chart;\n };\n\n function drawGridLines() {\n _g.selectAll('g.tick')\n .select('line.grid-line')\n .remove();\n\n _g.selectAll('g.tick')\n .append('line')\n .attr('class', 'grid-line')\n .attr('x1', 0)\n .attr('y1', 0)\n .attr('x2', 0)\n .attr('y2', function () {\n return -_chart.effectiveHeight();\n });\n }\n\n function drawChart() {\n _rowData = _chart.data();\n\n drawAxis();\n drawGridLines();\n\n var rows = _g.selectAll('g.' + _rowCssClass)\n .data(_rowData);\n\n createElements(rows);\n removeElements(rows);\n updateElements(rows);\n }\n\n function createElements(rows) {\n var rowEnter = rows.enter()\n .append('g')\n .attr('class', function (d, i) {\n return _rowCssClass + ' _' + i;\n });\n\n rowEnter.append('rect').attr('width', 0);\n\n createLabels(rowEnter);\n updateLabels(rows);\n }\n\n function removeElements(rows) {\n rows.exit().remove();\n }\n\n function rootValue() {\n var root = _x(0);\n return (root === -Infinity || root !== root) ? _x(1) : root;\n }\n\n function updateElements(rows) {\n var n = _rowData.length;\n\n var height;\n if (!_fixedBarHeight) {\n height = (_chart.effectiveHeight() - (n + 1) * _gap) / n;\n } else {\n height = _fixedBarHeight;\n }\n\n // vertically align label in center unless they override the value via property setter\n if (!_hasLabelOffsetY) {\n _labelOffsetY = height / 2;\n }\n\n var rect = rows.attr('transform', function (d, i) {\n return 'translate(0,' + ((i + 1) * _gap + i * height) + ')';\n }).select('rect')\n .attr('height', height)\n .attr('fill', _chart.getColor)\n .on('click', onClick)\n .classed('deselected', function (d) {\n return (_chart.hasFilter()) ? !isSelectedRow(d) : false;\n })\n .classed('selected', function (d) {\n return (_chart.hasFilter()) ? isSelectedRow(d) : false;\n });\n\n dc.transition(rect, _chart.transitionDuration())\n .attr('width', function (d) {\n return Math.abs(rootValue() - _x(_chart.valueAccessor()(d)));\n })\n .attr('transform', translateX);\n\n createTitles(rows);\n updateLabels(rows);\n }\n\n function createTitles(rows) {\n if (_chart.renderTitle()) {\n rows.selectAll('title').remove();\n rows.append('title').text(_chart.title());\n }\n }\n\n function createLabels(rowEnter) {\n if (_chart.renderLabel()) {\n rowEnter.append('text')\n .on('click', onClick);\n }\n if (_chart.renderTitleLabel()) {\n rowEnter.append('text')\n .attr('class', _titleRowCssClass)\n .on('click', onClick);\n }\n }\n\n function updateLabels(rows) {\n if (_chart.renderLabel()) {\n var lab = rows.select('text')\n .attr('x', _labelOffsetX)\n .attr('y', _labelOffsetY)\n .attr('dy', _dyOffset)\n .on('click', onClick)\n .attr('class', function (d, i) {\n return _rowCssClass + ' _' + i;\n })\n .text(function (d) {\n return _chart.label()(d);\n });\n dc.transition(lab, _chart.transitionDuration())\n .attr('transform', translateX);\n }\n if (_chart.renderTitleLabel()) {\n var titlelab = rows.select('.' + _titleRowCssClass)\n .attr('x', _chart.effectiveWidth() - _titleLabelOffsetX)\n .attr('y', _labelOffsetY)\n .attr('text-anchor', 'end')\n .on('click', onClick)\n .attr('class', function (d, i) {\n return _titleRowCssClass + ' _' + i ;\n })\n .text(function (d) {\n return _chart.title()(d);\n });\n dc.transition(titlelab, _chart.transitionDuration())\n .attr('transform', translateX);\n }\n }\n\n /**\n #### .renderTitleLabel(boolean)\n Turn on/off Title label rendering (values) using SVG style of text-anchor 'end'\n\n **/\n _chart.renderTitleLabel = function (_) {\n if (!arguments.length) {\n return _renderTitleLabel;\n }\n _renderTitleLabel = _;\n return _chart;\n };\n\n function onClick(d) {\n _chart.onClick(d);\n }\n\n function translateX(d) {\n var x = _x(_chart.cappedValueAccessor(d)),\n x0 = rootValue(),\n s = x > x0 ? x0 : x;\n return 'translate(' + s + ',0)';\n }\n\n _chart._doRedraw = function () {\n drawChart();\n return _chart;\n };\n\n /**\n #### .xAxis()\n Get the x axis for the row chart instance. Note: not settable for row charts.\n See the [d3 axis object](https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-axis) documention for more information.\n ```js\n // customize x axis tick format\n chart.xAxis().tickFormat(function (v) {return v + '%';});\n // customize x axis tick values\n chart.xAxis().tickValues([0, 100, 200, 300]);\n ```\n\n **/\n _chart.xAxis = function () {\n return _xAxis;\n };\n\n /**\n #### .fixedBarHeight([height])\n Get or set the fixed bar height. Default is [false] which will auto-scale bars.\n For example, if you want to fix the height for a specific number of bars (useful in TopN charts)\n you could fix height as follows (where count = total number of bars in your TopN and gap is\n your vertical gap space).\n ```js\n chart.fixedBarHeight( chartheight - (count + 1) * gap / count);\n ```\n **/\n _chart.fixedBarHeight = function (g) {\n if (!arguments.length) {\n return _fixedBarHeight;\n }\n _fixedBarHeight = g;\n return _chart;\n };\n\n /**\n #### .gap([gap])\n Get or set the vertical gap space between rows on a particular row chart instance. Default gap is 5px;\n\n **/\n _chart.gap = function (g) {\n if (!arguments.length) {\n return _gap;\n }\n _gap = g;\n return _chart;\n };\n\n /**\n #### .elasticX([boolean])\n Get or set the elasticity on x axis. If this attribute is set to true, then the x axis will rescle to auto-fit the\n data range when filtered.\n\n **/\n _chart.elasticX = function (_) {\n if (!arguments.length) {\n return _elasticX;\n }\n _elasticX = _;\n return _chart;\n };\n\n /**\n #### .labelOffsetX([x])\n Get or set the x offset (horizontal space to the top left corner of a row) for labels on a particular row chart.\n Default x offset is 10px;\n\n **/\n _chart.labelOffsetX = function (o) {\n if (!arguments.length) {\n return _labelOffsetX;\n }\n _labelOffsetX = o;\n return _chart;\n };\n\n /**\n #### .labelOffsetY([y])\n Get or set the y offset (vertical space to the top left corner of a row) for labels on a particular row chart.\n Default y offset is 15px;\n\n **/\n _chart.labelOffsetY = function (o) {\n if (!arguments.length) {\n return _labelOffsetY;\n }\n _labelOffsetY = o;\n _hasLabelOffsetY = true;\n return _chart;\n };\n\n /**\n #### .titleLabelOffsetx([x])\n Get of set the x offset (horizontal space between right edge of row and right edge or text.\n Default x offset is 2px;\n\n **/\n _chart.titleLabelOffsetX = function (o) {\n if (!arguments.length) {\n return _titleLabelOffsetX;\n }\n _titleLabelOffsetX = o;\n return _chart;\n };\n\n function isSelectedRow (d) {\n return _chart.hasFilter(_chart.cappedKeyAccessor(d));\n }\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Legend\nLegend is a attachable widget that can be added to other dc charts to render horizontal legend\nlabels.\n\n```js\nchart.legend(dc.legend().x(400).y(10).itemHeight(13).gap(5))\n```\n\nExamples:\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n* [Canadian City Crime Stats](http://dc-js.github.com/dc.js/crime/index.html)\n\n**/\ndc.legend = function () {\n var LABEL_GAP = 2;\n\n var _legend = {},\n _parent,\n _x = 0,\n _y = 0,\n _itemHeight = 12,\n _gap = 5,\n _horizontal = false,\n _legendWidth = 560,\n _itemWidth = 70,\n _autoItemWidth = false;\n\n var _g;\n\n _legend.parent = function (p) {\n if (!arguments.length) {\n return _parent;\n }\n _parent = p;\n return _legend;\n };\n\n _legend.render = function () {\n _parent.svg().select('g.dc-legend').remove();\n _g = _parent.svg().append('g')\n .attr('class', 'dc-legend')\n .attr('transform', 'translate(' + _x + ',' + _y + ')');\n var legendables = _parent.legendables();\n\n var itemEnter = _g.selectAll('g.dc-legend-item')\n .data(legendables)\n .enter()\n .append('g')\n .attr('class', 'dc-legend-item')\n .on('mouseover', function (d) {\n _parent.legendHighlight(d);\n })\n .on('mouseout', function (d) {\n _parent.legendReset(d);\n })\n .on('click', function (d) {\n d.chart.legendToggle(d);\n });\n\n _g.selectAll('g.dc-legend-item')\n .classed('fadeout', function (d) {\n return d.chart.isLegendableHidden(d);\n });\n\n if (legendables.some(dc.pluck('dashstyle'))) {\n itemEnter\n .append('line')\n .attr('x1', 0)\n .attr('y1', _itemHeight / 2)\n .attr('x2', _itemHeight)\n .attr('y2', _itemHeight / 2)\n .attr('stroke-width', 2)\n .attr('stroke-dasharray', dc.pluck('dashstyle'))\n .attr('stroke', dc.pluck('color'));\n } else {\n itemEnter\n .append('rect')\n .attr('width', _itemHeight)\n .attr('height', _itemHeight)\n .attr('fill', function (d) {return d ? d.color : 'blue';});\n }\n\n itemEnter.append('text')\n .text(dc.pluck('name'))\n .attr('x', _itemHeight + LABEL_GAP)\n .attr('y', function () {\n return _itemHeight / 2 + (this.clientHeight ? this.clientHeight : 13) / 2 - 2;\n });\n\n var _cumulativeLegendTextWidth = 0;\n var row = 0;\n itemEnter.attr('transform', function (d, i) {\n if (_horizontal) {\n var translateBy = 'translate(' + _cumulativeLegendTextWidth + ',' + row * legendItemHeight() + ')';\n var itemWidth = _autoItemWidth === true ? this.getBBox().width + _gap : _itemWidth;\n\n if ((_cumulativeLegendTextWidth + itemWidth) >= _legendWidth) {\n ++row ;\n _cumulativeLegendTextWidth = 0 ;\n } else {\n _cumulativeLegendTextWidth += itemWidth;\n }\n return translateBy;\n }\n else {\n return 'translate(0,' + i * legendItemHeight() + ')';\n }\n });\n };\n\n function legendItemHeight() {\n return _gap + _itemHeight;\n }\n\n /**\n #### .x([value])\n Set or get x coordinate for legend widget. Default: 0.\n **/\n _legend.x = function (x) {\n if (!arguments.length) {\n return _x;\n }\n _x = x;\n return _legend;\n };\n\n /**\n #### .y([value])\n Set or get y coordinate for legend widget. Default: 0.\n **/\n _legend.y = function (y) {\n if (!arguments.length) {\n return _y;\n }\n _y = y;\n return _legend;\n };\n\n /**\n #### .gap([value])\n Set or get gap between legend items. Default: 5.\n **/\n _legend.gap = function (gap) {\n if (!arguments.length) {\n return _gap;\n }\n _gap = gap;\n return _legend;\n };\n\n /**\n #### .itemHeight([value])\n Set or get legend item height. Default: 12.\n **/\n _legend.itemHeight = function (h) {\n if (!arguments.length) {\n return _itemHeight;\n }\n _itemHeight = h;\n return _legend;\n };\n\n /**\n #### .horizontal([boolean])\n Position legend horizontally instead of vertically\n **/\n _legend.horizontal = function (_) {\n if (!arguments.length) {\n return _horizontal;\n }\n _horizontal = _;\n return _legend;\n };\n\n /**\n #### .legendWidth([value])\n Maximum width for horizontal legend. Default: 560.\n **/\n _legend.legendWidth = function (_) {\n if (!arguments.length) {\n return _legendWidth;\n }\n _legendWidth = _;\n return _legend;\n };\n\n /**\n #### .itemWidth([value])\n legendItem width for horizontal legend. Default: 70.\n **/\n _legend.itemWidth = function (_) {\n if (!arguments.length) {\n return _itemWidth;\n }\n _itemWidth = _;\n return _legend;\n };\n\n /**\n #### .autoItemWidth([value])\n Turn automatic width for legend items on or off. If true, itemWidth() is ignored.\n This setting takes into account gap(). Default: false.\n **/\n _legend.autoItemWidth = function (_) {\n if (!arguments.length) {\n return _autoItemWidth;\n }\n _autoItemWidth = _;\n return _legend;\n };\n\n return _legend;\n};\n","/**\n## Scatter Plot\nIncludes: [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nA scatter plot chart\n#### dc.scatterPlot(parent[, chartGroup])\nCreate a scatter plot instance and attach it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection | compositeChart - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n If the scatter plot is a sub-chart in a [Composite Chart](#composite-chart) then pass in the parent composite\n chart instance.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created scatter plot instance\n\n```js\n// create a scatter plot under #chart-container1 element using the default global chart group\nvar chart1 = dc.scatterPlot('#chart-container1');\n// create a scatter plot under #chart-container2 element using chart group A\nvar chart2 = dc.scatterPlot('#chart-container2', 'chartGroupA');\n// create a sub-chart under a composite parent chart\nvar chart3 = dc.scatterPlot(compositeChart);\n```\n\n **/\ndc.scatterPlot = function (parent, chartGroup) {\n var _chart = dc.coordinateGridMixin({});\n var _symbol = d3.svg.symbol();\n\n var _existenceAccessor = function (d) { return d.value; };\n\n var originalKeyAccessor = _chart.keyAccessor();\n _chart.keyAccessor(function (d) { return originalKeyAccessor(d)[0]; });\n _chart.valueAccessor(function (d) { return originalKeyAccessor(d)[1]; });\n _chart.colorAccessor(function () { return _chart._groupName; });\n\n var _locator = function (d) {\n return 'translate(' + _chart.x()(_chart.keyAccessor()(d)) + ',' +\n _chart.y()(_chart.valueAccessor()(d)) + ')';\n };\n\n var _symbolSize = 3;\n var _highlightedSize = 5;\n var _hiddenSize = 0;\n\n _symbol.size(function (d) {\n if (!_existenceAccessor(d)) {\n return _hiddenSize;\n } else if (this.filtered) {\n return Math.pow(_highlightedSize, 2);\n } else {\n return Math.pow(_symbolSize, 2);\n }\n });\n\n dc.override(_chart, '_filter', function (filter) {\n if (!arguments.length) {\n return _chart.__filter();\n }\n\n return _chart.__filter(dc.filters.RangedTwoDimensionalFilter(filter));\n });\n\n _chart.plotData = function () {\n var symbols = _chart.chartBodyG().selectAll('path.symbol')\n .data(_chart.data());\n\n symbols\n .enter()\n .append('path')\n .attr('class', 'symbol')\n .attr('opacity', 0)\n .attr('fill', _chart.getColor)\n .attr('transform', _locator);\n\n dc.transition(symbols, _chart.transitionDuration())\n .attr('opacity', function (d) { return _existenceAccessor(d) ? 1 : 0; })\n .attr('fill', _chart.getColor)\n .attr('transform', _locator)\n .attr('d', _symbol);\n\n dc.transition(symbols.exit(), _chart.transitionDuration())\n .attr('opacity', 0).remove();\n };\n\n /**\n #### .existenceAccessor([accessor])\n Get or set the existence accessor. If a point exists, it is drawn with symbolSize radius and\n opacity 1; if it does not exist, it is drawn with hiddenSize radius and opacity 0. By default,\n the existence accessor checks if the reduced value is truthy.\n **/\n\n _chart.existenceAccessor = function (acc) {\n if (!arguments.length) {\n return _existenceAccessor;\n }\n _existenceAccessor = acc;\n return this;\n };\n\n /**\n #### .symbol([type])\n Get or set the symbol type used for each point. By default the symbol is a circle. See the D3\n [docs](https://github.com/mbostock/d3/wiki/SVG-Shapes#wiki-symbol_type) for acceptable types.\n Type can be a constant or an accessor.\n\n **/\n _chart.symbol = function (type) {\n if (!arguments.length) {\n return _symbol.type();\n }\n _symbol.type(type);\n return _chart;\n };\n\n /**\n #### .symbolSize([radius])\n Set or get radius for symbols. Default: 3.\n\n **/\n _chart.symbolSize = function (s) {\n if (!arguments.length) {\n return _symbolSize;\n }\n _symbolSize = s;\n return _chart;\n };\n\n /**\n #### .highlightedSize([radius])\n Set or get radius for highlighted symbols. Default: 4.\n\n **/\n _chart.highlightedSize = function (s) {\n if (!arguments.length) {\n return _highlightedSize;\n }\n _highlightedSize = s;\n return _chart;\n };\n\n /**\n #### .hiddenSize([radius])\n Set or get radius for symbols when the group is empty. Default: 0.\n\n **/\n _chart.hiddenSize = function (s) {\n if (!arguments.length) {\n return _hiddenSize;\n }\n _hiddenSize = s;\n return _chart;\n };\n\n _chart.legendables = function () {\n return [{chart: _chart, name: _chart._groupName, color: _chart.getColor()}];\n };\n\n _chart.legendHighlight = function (d) {\n resizeSymbolsWhere(function (symbol) {\n return symbol.attr('fill') === d.color;\n }, _highlightedSize);\n _chart.selectAll('.chart-body path.symbol').filter(function () {\n return d3.select(this).attr('fill') !== d.color;\n }).classed('fadeout', true);\n };\n\n _chart.legendReset = function (d) {\n resizeSymbolsWhere(function (symbol) {\n return symbol.attr('fill') === d.color;\n }, _symbolSize);\n _chart.selectAll('.chart-body path.symbol').filter(function () {\n return d3.select(this).attr('fill') !== d.color;\n }).classed('fadeout', false);\n };\n\n function resizeSymbolsWhere(condition, size) {\n var symbols = _chart.selectAll('.chart-body path.symbol').filter(function () {\n return condition(d3.select(this));\n });\n var oldSize = _symbol.size();\n _symbol.size(Math.pow(size, 2));\n dc.transition(symbols, _chart.transitionDuration()).attr('d', _symbol);\n _symbol.size(oldSize);\n }\n\n _chart.setHandlePaths = function () {\n // no handle paths for poly-brushes\n };\n\n _chart.extendBrush = function () {\n var extent = _chart.brush().extent();\n if (_chart.round()) {\n extent[0] = extent[0].map(_chart.round());\n extent[1] = extent[1].map(_chart.round());\n\n _chart.g().select('.brush')\n .call(_chart.brush().extent(extent));\n }\n return extent;\n };\n\n _chart.brushIsEmpty = function (extent) {\n return _chart.brush().empty() || !extent || extent[0][0] >= extent[1][0] || extent[0][1] >= extent[1][1];\n };\n\n function resizeFiltered(filter) {\n var symbols = _chart.selectAll('.chart-body path.symbol').each(function (d) {\n this.filtered = filter && filter.isFiltered(d.key);\n });\n\n dc.transition(symbols, _chart.transitionDuration()).attr('d', _symbol);\n }\n\n _chart._brushing = function () {\n var extent = _chart.extendBrush();\n\n _chart.redrawBrush(_chart.g());\n\n if (_chart.brushIsEmpty(extent)) {\n dc.events.trigger(function () {\n _chart.filter(null);\n _chart.redrawGroup();\n });\n\n resizeFiltered(false);\n\n } else {\n var ranged2DFilter = dc.filters.RangedTwoDimensionalFilter(extent);\n dc.events.trigger(function () {\n _chart.filter(null);\n _chart.filter(ranged2DFilter);\n _chart.redrawGroup();\n }, dc.constants.EVENT_DELAY);\n\n resizeFiltered(ranged2DFilter);\n }\n };\n\n _chart.setBrushY = function (gBrush) {\n gBrush.call(_chart.brush().y(_chart.y()));\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Number Display Widget\nIncludes: [Base Mixin](#base-mixin)\n\nA display of a single numeric value.\n\nExamples:\n\n* [Test Example](http://dc-js.github.io/dc.js/examples/number.html)\n#### dc.numberDisplay(parent[, chartGroup])\nCreate a Number Display instance and attach it to the given parent element.\n\nUnlike other charts, you do not need to set a dimension. Instead a group object must be provided and\na valueAccessor that returns a single value.\n\nParameters:\n\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n The number display widget will only react to filter changes in the chart group.\n\nReturns:\nA newly created number display instance\n\n```js\n// create a number display under #chart-container1 element using the default global chart group\nvar display1 = dc.numberDisplay('#chart-container1');\n```\n\n**/\ndc.numberDisplay = function (parent, chartGroup) {\n var SPAN_CLASS = 'number-display';\n var _formatNumber = d3.format('.2s');\n var _chart = dc.baseMixin({});\n var _html = {one:'', some:'', none:''};\n\n // dimension not required\n _chart._mandatoryAttributes(['group']);\n\n /**\n #### .html([object])\n Gets or sets an optional object specifying HTML templates to use depending on the number\n displayed. The text `%number` will be replaced with the current value.\n - one: HTML template to use if the number is 1\n - zero: HTML template to use if the number is 0\n - some: HTML template to use otherwise\n\n ```js\n numberWidget.html({\n one:'%number record',\n some:'%number records',\n none:'no records'})\n ```\n **/\n\n _chart.html = function (s) {\n if (!arguments.length) {\n return _html;\n }\n if (s.none) {\n _html.none = s.none;//if none available\n } else if (s.one) {\n _html.none = s.one;//if none not available use one\n } else if (s.some) {\n _html.none = s.some;//if none and one not available use some\n }\n if (s.one) {\n _html.one = s.one;//if one available\n } else if (s.some) {\n _html.one = s.some;//if one not available use some\n }\n if (s.some) {\n _html.some = s.some;//if some available\n } else if (s.one) {\n _html.some = s.one;//if some not available use one\n }\n return _chart;\n };\n\n /**\n #### .value()\n Calculate and return the underlying value of the display\n **/\n\n _chart.value = function () {\n return _chart.data();\n };\n\n _chart.data(function (group) {\n var valObj = group.value ? group.value() : group.top(1)[0];\n return _chart.valueAccessor()(valObj);\n });\n\n _chart.transitionDuration(250); // good default\n\n _chart._doRender = function () {\n var newValue = _chart.value(),\n span = _chart.selectAll('.' + SPAN_CLASS);\n\n if (span.empty()) {\n span = span.data([0])\n .enter()\n .append('span')\n .attr('class', SPAN_CLASS);\n }\n\n span.transition()\n .duration(_chart.transitionDuration())\n .ease('quad-out-in')\n .tween('text', function () {\n var interp = d3.interpolateNumber(this.lastValue || 0, newValue);\n this.lastValue = newValue;\n return function (t) {\n var html = null, num = _chart.formatNumber()(interp(t));\n if (newValue === 0 && (_html.none !== '')) {\n html = _html.none;\n } else if (newValue === 1 && (_html.one !== '')) {\n html = _html.one;\n } else if (_html.some !== '') {\n html = _html.some;\n }\n this.innerHTML = html ? html.replace('%number', num) : num;\n };\n });\n };\n\n _chart._doRedraw = function () {\n return _chart._doRender();\n };\n\n /**\n #### .formatNumber([formatter])\n Get or set a function to format the value for the display. By default `d3.format('.2s');` is used.\n\n **/\n _chart.formatNumber = function (_) {\n if (!arguments.length) {\n return _formatNumber;\n }\n _formatNumber = _;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n ## Heat Map\n\n Includes: [Color Mixin](#color-mixin), [Margin Mixin](#margin-mixin), [Base Mixin](#base-mixin)\n\n A heat map is matrix that represents the values of two dimensions of data using colors.\n\n #### dc.heatMap(parent[, chartGroup])\n Create a heat map instance and attach it to the given parent element.\n\n Parameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\n Returns:\n A newly created heat map instance\n\n ```js\n // create a heat map under #chart-container1 element using the default global chart group\n var heatMap1 = dc.heatMap('#chart-container1');\n // create a heat map under #chart-container2 element using chart group A\n var heatMap2 = dc.heatMap('#chart-container2', 'chartGroupA');\n ```\n\n **/\ndc.heatMap = function (parent, chartGroup) {\n\n var DEFAULT_BORDER_RADIUS = 6.75;\n\n var _chartBody;\n\n var _cols;\n var _rows;\n var _colOrdering = d3.ascending;\n var _rowOrdering = d3.ascending;\n var _colScale = d3.scale.ordinal();\n var _rowScale = d3.scale.ordinal();\n\n var _xBorderRadius = DEFAULT_BORDER_RADIUS;\n var _yBorderRadius = DEFAULT_BORDER_RADIUS;\n\n var _chart = dc.colorMixin(dc.marginMixin(dc.baseMixin({})));\n _chart._mandatoryAttributes(['group']);\n _chart.title(_chart.colorAccessor());\n\n var _colsLabel = function (d) {\n return d;\n };\n var _rowsLabel = function (d) {\n return d;\n };\n\n /**\n #### .colsLabel([labelFunction])\n Set or get the column label function. The chart class uses this function to render\n column labels on the X axis. It is passed the column name.\n ```js\n // the default label function just returns the name\n chart.colsLabel(function(d) { return d; });\n ```\n **/\n _chart.colsLabel = function (_) {\n if (!arguments.length) {\n return _colsLabel;\n }\n _colsLabel = _;\n return _chart;\n };\n\n /**\n #### .rowsLabel([labelFunction])\n Set or get the row label function. The chart class uses this function to render\n row labels on the Y axis. It is passed the row name.\n ```js\n // the default label function just returns the name\n chart.rowsLabel(function(d) { return d; });\n ```\n **/\n _chart.rowsLabel = function (_) {\n if (!arguments.length) {\n return _rowsLabel;\n }\n _rowsLabel = _;\n return _chart;\n };\n\n var _xAxisOnClick = function (d) { filterAxis(0, d); };\n var _yAxisOnClick = function (d) { filterAxis(1, d); };\n var _boxOnClick = function (d) {\n var filter = d.key;\n dc.events.trigger(function () {\n _chart.filter(filter);\n _chart.redrawGroup();\n });\n };\n\n function filterAxis(axis, value) {\n var cellsOnAxis = _chart.selectAll('.box-group').filter(function (d) {\n return d.key[axis] === value;\n });\n var unfilteredCellsOnAxis = cellsOnAxis.filter(function (d) {\n return !_chart.hasFilter(d.key);\n });\n dc.events.trigger(function () {\n if (unfilteredCellsOnAxis.empty()) {\n cellsOnAxis.each(function (d) {\n _chart.filter(d.key);\n });\n } else {\n unfilteredCellsOnAxis.each(function (d) {\n _chart.filter(d.key);\n });\n }\n _chart.redrawGroup();\n });\n }\n\n dc.override(_chart, 'filter', function (filter) {\n if (!arguments.length) {\n return _chart._filter();\n }\n\n return _chart._filter(dc.filters.TwoDimensionalFilter(filter));\n });\n\n /**\n #### .rows([values])\n Gets or sets the values used to create the rows of the heatmap, as an array. By default, all\n the values will be fetched from the data using the value accessor.\n **/\n\n _chart.rows = function (_) {\n if (!arguments.length) {\n return _rows;\n }\n _rows = _;\n return _chart;\n };\n\n /**\n #### .rowOrdering([orderFunction])\n Get or set an accessor to order the rows. Default is d3.ascending.\n */\n _chart.rowOrdering = function (_) {\n if (!arguments.length) {\n return _rowOrdering;\n }\n _rowOrdering = _;\n return _chart;\n };\n\n /**\n #### .cols([keys])\n Gets or sets the keys used to create the columns of the heatmap, as an array. By default, all\n the values will be fetched from the data using the key accessor.\n **/\n _chart.cols = function (_) {\n if (!arguments.length) {\n return _cols;\n }\n _cols = _;\n return _chart;\n };\n\n /**\n #### .colOrdering([orderFunction])\n Get or set an accessor to order the cols. Default is ascending.\n */\n _chart.colOrdering = function (_) {\n if (!arguments.length) {\n return _colOrdering;\n }\n _colOrdering = _;\n return _chart;\n };\n\n _chart._doRender = function () {\n _chart.resetSvg();\n\n _chartBody = _chart.svg()\n .append('g')\n .attr('class', 'heatmap')\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')');\n\n return _chart._doRedraw();\n };\n\n _chart._doRedraw = function () {\n var data = _chart.data(),\n rows = _chart.rows() || data.map(_chart.valueAccessor()),\n cols = _chart.cols() || data.map(_chart.keyAccessor());\n if (_rowOrdering) {\n rows = rows.sort(_rowOrdering);\n }\n if (_colOrdering) {\n cols = cols.sort(_colOrdering);\n }\n rows = _rowScale.domain(rows);\n cols = _colScale.domain(cols);\n\n var rowCount = rows.domain().length,\n colCount = cols.domain().length,\n boxWidth = Math.floor(_chart.effectiveWidth() / colCount),\n boxHeight = Math.floor(_chart.effectiveHeight() / rowCount);\n\n cols.rangeRoundBands([0, _chart.effectiveWidth()]);\n rows.rangeRoundBands([_chart.effectiveHeight(), 0]);\n\n var boxes = _chartBody.selectAll('g.box-group').data(_chart.data(), function (d, i) {\n return _chart.keyAccessor()(d, i) + '\\0' + _chart.valueAccessor()(d, i);\n });\n var gEnter = boxes.enter().append('g')\n .attr('class', 'box-group');\n\n gEnter.append('rect')\n .attr('class', 'heat-box')\n .attr('fill', 'white')\n .on('click', _chart.boxOnClick());\n\n if (_chart.renderTitle()) {\n gEnter.append('title');\n boxes.selectAll('title').text(_chart.title());\n }\n\n dc.transition(boxes.selectAll('rect'), _chart.transitionDuration())\n .attr('x', function (d, i) { return cols(_chart.keyAccessor()(d, i)); })\n .attr('y', function (d, i) { return rows(_chart.valueAccessor()(d, i)); })\n .attr('rx', _xBorderRadius)\n .attr('ry', _yBorderRadius)\n .attr('fill', _chart.getColor)\n .attr('width', boxWidth)\n .attr('height', boxHeight);\n\n boxes.exit().remove();\n\n var gCols = _chartBody.selectAll('g.cols');\n if (gCols.empty()) {\n gCols = _chartBody.append('g').attr('class', 'cols axis');\n }\n var gColsText = gCols.selectAll('text').data(cols.domain());\n gColsText.enter().append('text')\n .attr('x', function (d) { return cols(d) + boxWidth / 2; })\n .style('text-anchor', 'middle')\n .attr('y', _chart.effectiveHeight())\n .attr('dy', 12)\n .on('click', _chart.xAxisOnClick())\n .text(_chart.colsLabel());\n dc.transition(gColsText, _chart.transitionDuration())\n .text(_chart.colsLabel())\n .attr('x', function (d) { return cols(d) + boxWidth / 2; });\n gColsText.exit().remove();\n var gRows = _chartBody.selectAll('g.rows');\n if (gRows.empty()) {\n gRows = _chartBody.append('g').attr('class', 'rows axis');\n }\n var gRowsText = gRows.selectAll('text').data(rows.domain());\n gRowsText.enter().append('text')\n .attr('dy', 6)\n .style('text-anchor', 'end')\n .attr('x', 0)\n .attr('dx', -2)\n .on('click', _chart.yAxisOnClick())\n .text(_chart.rowsLabel());\n dc.transition(gRowsText, _chart.transitionDuration())\n .text(_chart.rowsLabel())\n .attr('y', function (d) { return rows(d) + boxHeight / 2; });\n gRowsText.exit().remove();\n\n if (_chart.hasFilter()) {\n _chart.selectAll('g.box-group').each(function (d) {\n if (_chart.isSelectedNode(d)) {\n _chart.highlightSelected(this);\n } else {\n _chart.fadeDeselected(this);\n }\n });\n } else {\n _chart.selectAll('g.box-group').each(function () {\n _chart.resetHighlight(this);\n });\n }\n return _chart;\n };\n /**\n #### .boxOnClick([handler])\n Gets or sets the handler that fires when an individual cell is clicked in the heatmap.\n By default, filtering of the cell will be toggled.\n **/\n _chart.boxOnClick = function (f) {\n if (!arguments.length) {\n return _boxOnClick;\n }\n _boxOnClick = f;\n return _chart;\n };\n\n /**\n #### .xAxisOnClick([handler])\n Gets or sets the handler that fires when a column tick is clicked in the x axis.\n By default, if any cells in the column are unselected, the whole column will be selected,\n otherwise the whole column will be unselected.\n **/\n _chart.xAxisOnClick = function (f) {\n if (!arguments.length) {\n return _xAxisOnClick;\n }\n _xAxisOnClick = f;\n return _chart;\n };\n\n /**\n #### .yAxisOnClick([handler])\n Gets or sets the handler that fires when a row tick is clicked in the y axis.\n By default, if any cells in the row are unselected, the whole row will be selected,\n otherwise the whole row will be unselected.\n **/\n _chart.yAxisOnClick = function (f) {\n if (!arguments.length) {\n return _yAxisOnClick;\n }\n _yAxisOnClick = f;\n return _chart;\n };\n\n /**\n #### .xBorderRadius([value])\n Gets or sets the X border radius. Set to 0 to get full rectangles. Default: 6.75\n */\n _chart.xBorderRadius = function (d) {\n if (!arguments.length) {\n return _xBorderRadius;\n }\n _xBorderRadius = d;\n return _chart;\n };\n\n /**\n #### .xBorderRadius([value])\n Gets or sets the Y border radius. Set to 0 to get full rectangles. Default: 6.75\n */\n _chart.yBorderRadius = function (d) {\n if (!arguments.length) {\n return _yBorderRadius;\n }\n _yBorderRadius = d;\n return _chart;\n };\n\n _chart.isSelectedNode = function (d) {\n return _chart.hasFilter(d.key);\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","// https://github.com/d3/d3-plugins/blob/master/box/box.js\n(function () {\n\n // Inspired by http://informationandvisualization.de/blog/box-plot\n d3.box = function () {\n var width = 1,\n height = 1,\n duration = 0,\n domain = null,\n value = Number,\n whiskers = boxWhiskers,\n quartiles = boxQuartiles,\n tickFormat = null;\n\n // For each small multiple…\n function box(g) {\n g.each(function (d, i) {\n d = d.map(value).sort(d3.ascending);\n var g = d3.select(this),\n n = d.length,\n min = d[0],\n max = d[n - 1];\n\n // Compute quartiles. Must return exactly 3 elements.\n var quartileData = d.quartiles = quartiles(d);\n\n // Compute whiskers. Must return exactly 2 elements, or null.\n var whiskerIndices = whiskers && whiskers.call(this, d, i),\n whiskerData = whiskerIndices && whiskerIndices.map(function (i) { return d[i]; });\n\n // Compute outliers. If no whiskers are specified, all data are 'outliers'.\n // We compute the outliers as indices, so that we can join across transitions!\n var outlierIndices = whiskerIndices ?\n d3.range(0, whiskerIndices[0]).concat(d3.range(whiskerIndices[1] + 1, n)) : d3.range(n);\n\n // Compute the new x-scale.\n var x1 = d3.scale.linear()\n .domain(domain && domain.call(this, d, i) || [min, max])\n .range([height, 0]);\n\n // Retrieve the old x-scale, if this is an update.\n var x0 = this.__chart__ || d3.scale.linear()\n .domain([0, Infinity])\n .range(x1.range());\n\n // Stash the new scale.\n this.__chart__ = x1;\n\n // Note: the box, median, and box tick elements are fixed in number,\n // so we only have to handle enter and update. In contrast, the outliers\n // and other elements are variable, so we need to exit them! Variable\n // elements also fade in and out.\n\n // Update center line: the vertical line spanning the whiskers.\n var center = g.selectAll('line.center')\n .data(whiskerData ? [whiskerData] : []);\n\n center.enter().insert('line', 'rect')\n .attr('class', 'center')\n .attr('x1', width / 2)\n .attr('y1', function (d) { return x0(d[0]); })\n .attr('x2', width / 2)\n .attr('y2', function (d) { return x0(d[1]); })\n .style('opacity', 1e-6)\n .transition()\n .duration(duration)\n .style('opacity', 1)\n .attr('y1', function (d) { return x1(d[0]); })\n .attr('y2', function (d) { return x1(d[1]); });\n\n center.transition()\n .duration(duration)\n .style('opacity', 1)\n .attr('y1', function (d) { return x1(d[0]); })\n .attr('y2', function (d) { return x1(d[1]); });\n\n center.exit().transition()\n .duration(duration)\n .style('opacity', 1e-6)\n .attr('y1', function (d) { return x1(d[0]); })\n .attr('y2', function (d) { return x1(d[1]); })\n .remove();\n\n // Update innerquartile box.\n var box = g.selectAll('rect.box')\n .data([quartileData]);\n\n box.enter().append('rect')\n .attr('class', 'box')\n .attr('x', 0)\n .attr('y', function (d) { return x0(d[2]); })\n .attr('width', width)\n .attr('height', function (d) { return x0(d[0]) - x0(d[2]); })\n .transition()\n .duration(duration)\n .attr('y', function (d) { return x1(d[2]); })\n .attr('height', function (d) { return x1(d[0]) - x1(d[2]); });\n\n box.transition()\n .duration(duration)\n .attr('y', function (d) { return x1(d[2]); })\n .attr('height', function (d) { return x1(d[0]) - x1(d[2]); });\n\n // Update median line.\n var medianLine = g.selectAll('line.median')\n .data([quartileData[1]]);\n\n medianLine.enter().append('line')\n .attr('class', 'median')\n .attr('x1', 0)\n .attr('y1', x0)\n .attr('x2', width)\n .attr('y2', x0)\n .transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1);\n\n medianLine.transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1);\n\n // Update whiskers.\n var whisker = g.selectAll('line.whisker')\n .data(whiskerData || []);\n\n whisker.enter().insert('line', 'circle, text')\n .attr('class', 'whisker')\n .attr('x1', 0)\n .attr('y1', x0)\n .attr('x2', width)\n .attr('y2', x0)\n .style('opacity', 1e-6)\n .transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1)\n .style('opacity', 1);\n\n whisker.transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1)\n .style('opacity', 1);\n\n whisker.exit().transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1)\n .style('opacity', 1e-6)\n .remove();\n\n // Update outliers.\n var outlier = g.selectAll('circle.outlier')\n .data(outlierIndices, Number);\n\n outlier.enter().insert('circle', 'text')\n .attr('class', 'outlier')\n .attr('r', 5)\n .attr('cx', width / 2)\n .attr('cy', function (i) { return x0(d[i]); })\n .style('opacity', 1e-6)\n .transition()\n .duration(duration)\n .attr('cy', function (i) { return x1(d[i]); })\n .style('opacity', 1);\n\n outlier.transition()\n .duration(duration)\n .attr('cy', function (i) { return x1(d[i]); })\n .style('opacity', 1);\n\n outlier.exit().transition()\n .duration(duration)\n .attr('cy', function (i) { return x1(d[i]); })\n .style('opacity', 1e-6)\n .remove();\n\n // Compute the tick format.\n var format = tickFormat || x1.tickFormat(8);\n\n // Update box ticks.\n var boxTick = g.selectAll('text.box')\n .data(quartileData);\n\n boxTick.enter().append('text')\n .attr('class', 'box')\n .attr('dy', '.3em')\n .attr('dx', function (d, i) { return i & 1 ? 6 : -6; })\n .attr('x', function (d, i) { return i & 1 ? width : 0; })\n .attr('y', x0)\n .attr('text-anchor', function (d, i) { return i & 1 ? 'start' : 'end'; })\n .text(format)\n .transition()\n .duration(duration)\n .attr('y', x1);\n\n boxTick.transition()\n .duration(duration)\n .text(format)\n .attr('y', x1);\n\n // Update whisker ticks. These are handled separately from the box\n // ticks because they may or may not exist, and we want don't want\n // to join box ticks pre-transition with whisker ticks post-.\n var whiskerTick = g.selectAll('text.whisker')\n .data(whiskerData || []);\n\n whiskerTick.enter().append('text')\n .attr('class', 'whisker')\n .attr('dy', '.3em')\n .attr('dx', 6)\n .attr('x', width)\n .attr('y', x0)\n .text(format)\n .style('opacity', 1e-6)\n .transition()\n .duration(duration)\n .attr('y', x1)\n .style('opacity', 1);\n\n whiskerTick.transition()\n .duration(duration)\n .text(format)\n .attr('y', x1)\n .style('opacity', 1);\n\n whiskerTick.exit().transition()\n .duration(duration)\n .attr('y', x1)\n .style('opacity', 1e-6)\n .remove();\n });\n d3.timer.flush();\n }\n\n box.width = function (x) {\n if (!arguments.length) {\n return width;\n }\n width = x;\n return box;\n };\n\n box.height = function (x) {\n if (!arguments.length) {\n return height;\n }\n height = x;\n return box;\n };\n\n box.tickFormat = function (x) {\n if (!arguments.length) {\n return tickFormat;\n }\n tickFormat = x;\n return box;\n };\n\n box.duration = function (x) {\n if (!arguments.length) {\n return duration;\n }\n duration = x;\n return box;\n };\n\n box.domain = function (x) {\n if (!arguments.length) {\n return domain;\n }\n domain = x === null ? x : d3.functor(x);\n return box;\n };\n\n box.value = function (x) {\n if (!arguments.length) {\n return value;\n }\n value = x;\n return box;\n };\n\n box.whiskers = function (x) {\n if (!arguments.length) {\n return whiskers;\n }\n whiskers = x;\n return box;\n };\n\n box.quartiles = function (x) {\n if (!arguments.length) {\n return quartiles;\n }\n quartiles = x;\n return box;\n };\n\n return box;\n };\n\n function boxWhiskers(d) {\n return [0, d.length - 1];\n }\n\n function boxQuartiles(d) {\n return [\n d3.quantile(d, 0.25),\n d3.quantile(d, 0.5),\n d3.quantile(d, 0.75)\n ];\n }\n\n})();\n","/**\n ## Box Plot\n\n Includes: [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\n A box plot is a chart that depicts numerical data via their quartile ranges.\n\n #### dc.boxPlot(parent[, chartGroup])\n Create a box plot instance and attach it to the given parent element.\n\n Parameters:\n * parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) representing\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\n Returns:\n A newly created box plot instance\n\n ```js\n // create a box plot under #chart-container1 element using the default global chart group\n var boxPlot1 = dc.boxPlot('#chart-container1');\n // create a box plot under #chart-container2 element using chart group A\n var boxPlot2 = dc.boxPlot('#chart-container2', 'chartGroupA');\n ```\n\n **/\ndc.boxPlot = function (parent, chartGroup) {\n var _chart = dc.coordinateGridMixin({});\n\n // Returns a function to compute the interquartile range.\n function DEFAULT_WHISKERS_IQR (k) {\n return function (d) {\n var q1 = d.quartiles[0],\n q3 = d.quartiles[2],\n iqr = (q3 - q1) * k,\n i = -1,\n j = d.length;\n /*jshint -W116*/\n /*jshint -W035*/\n while (d[++i] < q1 - iqr) {}\n while (d[--j] > q3 + iqr) {}\n /*jshint +W116*/\n return [i, j];\n /*jshint +W035*/\n };\n }\n\n var _whiskerIqrFactor = 1.5;\n var _whiskersIqr = DEFAULT_WHISKERS_IQR;\n var _whiskers = _whiskersIqr(_whiskerIqrFactor);\n\n var _box = d3.box();\n var _tickFormat = null;\n\n var _boxWidth = function (innerChartWidth, xUnits) {\n if (_chart.isOrdinal()) {\n return _chart.x().rangeBand();\n } else {\n return innerChartWidth / (1 + _chart.boxPadding()) / xUnits;\n }\n };\n\n // default padding to handle min/max whisker text\n _chart.yAxisPadding(12);\n\n // default to ordinal\n _chart.x(d3.scale.ordinal());\n _chart.xUnits(dc.units.ordinal);\n\n // valueAccessor should return an array of values that can be coerced into numbers\n // or if data is overloaded for a static array of arrays, it should be `Number`.\n // Empty arrays are not included.\n _chart.data(function (group) {\n return group.all().map(function (d) {\n d.map = function (accessor) { return accessor.call(d, d); };\n return d;\n }).filter(function (d) {\n var values = _chart.valueAccessor()(d);\n return values.length !== 0;\n });\n });\n\n /**\n #### .boxPadding([padding])\n Get or set the spacing between boxes as a fraction of box size. Valid values are within 0-1.\n See the [d3 docs](https://github.com/mbostock/d3/wiki/Ordinal-Scales#wiki-ordinal_rangeBands)\n for a visual description of how the padding is applied.\n\n Default: 0.8\n **/\n _chart.boxPadding = _chart._rangeBandPadding;\n _chart.boxPadding(0.8);\n\n /**\n #### .outerPadding([padding])\n Get or set the outer padding on an ordinal box chart. This setting has no effect on non-ordinal charts\n or on charts with a custom `.boxWidth`. Will pad the width by `padding * barWidth` on each side of the chart.\n\n Default: 0.5\n **/\n _chart.outerPadding = _chart._outerRangeBandPadding;\n _chart.outerPadding(0.5);\n\n /**\n #### .boxWidth(width || function(innerChartWidth, xUnits) { ... })\n Get or set the numerical width of the boxplot box. The width may also be a function taking as\n parameters the chart width excluding the right and left margins, as well as the number of x\n units.\n **/\n _chart.boxWidth = function (_) {\n if (!arguments.length) {\n return _boxWidth;\n }\n _boxWidth = d3.functor(_);\n return _chart;\n };\n\n var boxTransform = function (d, i) {\n var xOffset = _chart.x()(_chart.keyAccessor()(d, i));\n return 'translate(' + xOffset + ', 0)';\n };\n\n _chart._preprocessData = function () {\n if (_chart.elasticX()) {\n _chart.x().domain([]);\n }\n };\n\n _chart.plotData = function () {\n var _calculatedBoxWidth = _boxWidth(_chart.effectiveWidth(), _chart.xUnitCount());\n\n _box.whiskers(_whiskers)\n .width(_calculatedBoxWidth)\n .height(_chart.effectiveHeight())\n .value(_chart.valueAccessor())\n .domain(_chart.y().domain())\n .duration(_chart.transitionDuration())\n .tickFormat(_tickFormat);\n\n var boxesG = _chart.chartBodyG().selectAll('g.box').data(_chart.data(), function (d) { return d.key; });\n\n renderBoxes(boxesG);\n updateBoxes(boxesG);\n removeBoxes(boxesG);\n\n _chart.fadeDeselectedArea();\n };\n\n function renderBoxes(boxesG) {\n var boxesGEnter = boxesG.enter().append('g');\n\n boxesGEnter\n .attr('class', 'box')\n .attr('transform', boxTransform)\n .call(_box)\n .on('click', function (d) {\n _chart.filter(d.key);\n _chart.redrawGroup();\n });\n }\n\n function updateBoxes(boxesG) {\n dc.transition(boxesG, _chart.transitionDuration())\n .attr('transform', boxTransform)\n .call(_box)\n .each(function () {\n d3.select(this).select('rect.box').attr('fill', _chart.getColor);\n });\n }\n\n function removeBoxes(boxesG) {\n boxesG.exit().remove().call(_box);\n }\n\n _chart.fadeDeselectedArea = function () {\n if (_chart.hasFilter()) {\n _chart.g().selectAll('g.box').each(function (d) {\n if (_chart.isSelectedNode(d)) {\n _chart.highlightSelected(this);\n } else {\n _chart.fadeDeselected(this);\n }\n });\n } else {\n _chart.g().selectAll('g.box').each(function () {\n _chart.resetHighlight(this);\n });\n }\n };\n\n _chart.isSelectedNode = function (d) {\n return _chart.hasFilter(d.key);\n };\n\n _chart.yAxisMin = function () {\n var min = d3.min(_chart.data(), function (e) {\n return d3.min(_chart.valueAccessor()(e));\n });\n return dc.utils.subtract(min, _chart.yAxisPadding());\n };\n\n _chart.yAxisMax = function () {\n var max = d3.max(_chart.data(), function (e) {\n return d3.max(_chart.valueAccessor()(e));\n });\n return dc.utils.add(max, _chart.yAxisPadding());\n };\n\n /**\n #### .tickFormat()\n Set the numerical format of the boxplot median, whiskers and quartile labels. Defaults to\n integer formatting.\n ```js\n // format ticks to 2 decimal places\n chart.tickFormat(d3.format('.2f'));\n ```\n **/\n _chart.tickFormat = function (x) {\n if (!arguments.length) {\n return _tickFormat;\n }\n _tickFormat = x;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","// Renamed functions\n\ndc.abstractBubbleChart = dc.bubbleMixin;\ndc.baseChart = dc.baseMixin;\ndc.capped = dc.capMixin;\ndc.colorChart = dc.colorMixin;\ndc.coordinateGridChart = dc.coordinateGridMixin;\ndc.marginable = dc.marginMixin;\ndc.stackableChart = dc.stackMixin;\n\n// Expose d3 and crossfilter, so that clients in browserify\n// case can obtain them if they need them.\ndc.d3 = d3;\ndc.crossfilter = crossfilter;\n\nreturn dc;}\n if(typeof define === \"function\" && define.amd) {\n define([\"d3\", \"crossfilter\"], _dc);\n } else if(typeof module === \"object\" && module.exports) {\n var _d3 = require('d3');\n var _crossfilter = require('crossfilter');\n // When using npm + browserify, 'crossfilter' is a function,\n // since package.json specifies index.js as main function, and it\n // does special handling. When using bower + browserify,\n // there's no main in bower.json (in fact, there's no bower.json),\n // so we need to fix it.\n if (typeof _crossfilter !== \"function\") {\n _crossfilter = _crossfilter.crossfilter;\n }\n module.exports = _dc(_d3, _crossfilter);\n } else {\n this.dc = _dc(d3, crossfilter);\n }\n}\n)();\n"]} \ No newline at end of file diff --git a/web/js/dc.min.js b/web/js/dc.min.js index cc05a5b90..39f9a70af 100644 --- a/web/js/dc.min.js +++ b/web/js/dc.min.js @@ -1,4 +1,24 @@ -!function(){function a(a){"use strict";var b={version:"2.0.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};b.chartRegistry=function(){function a(a){return a||(a=b.constants.DEFAULT_CHART_GROUP),c[a]||(c[a]=[]),a}var c={};return{has:function(a){for(var b in c)if(c[b].indexOf(a)>=0)return!0;return!1},register:function(b,d){d=a(d),c[d].push(b)},deregister:function(b,d){d=a(d);for(var e=0;e=c||void 0===c||b.disableTransitions)return a;var e=a.transition().duration(c);return"function"==typeof d&&d(e),e},b.units={},b.units.integers=function(a,b){return Math.abs(b-a)},b.units.ordinal=function(a,b,c){return c},b.units.fp={},b.units.fp.precision=function(a){var c=function(a,d){var e=Math.abs((d-a)/c.resolution);return b.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return c.resolution=a,c},b.round={},b.round.floor=function(a){return Math.floor(a)},b.round.ceil=function(a){return Math.ceil(a)},b.round.round=function(a){return Math.round(a)},b.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},b.renderlet=function(a){return arguments.length?(b._renderlet=a,b):b._renderlet},b.instanceOfChart=function(a){return a instanceof Object&&a.__dc_flag__&&!0},b.errors={},b.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},b.errors.InvalidStateException=function(){b.errors.Exception.apply(this,arguments)},b.dateFormat=a.time.format("%m/%d/%Y"),b.printers={},b.printers.filters=function(a){for(var c="",d=0;d0&&(c+=", "),c+=b.printers.filter(a[d]);return c},b.printers.filter=function(a){var c="";return a&&(a instanceof Array?a.length>=2?c="["+b.utils.printSingleValue(a[0])+" -> "+b.utils.printSingleValue(a[1])+"]":a.length>=1&&(c=b.utils.printSingleValue(a[0])):c=b.utils.printSingleValue(a)),c},b.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},b.utils={},b.utils.printSingleValue=function(a){var c=""+a;return a instanceof Date?c=b.dateFormat(a):"string"==typeof a?c=a:b.utils.isFloat(a)?c=b.utils.printSingleValue.fformat(a):b.utils.isInteger(a)&&(c=Math.round(a)),c},b.utils.printSingleValue.fformat=a.format(".2f"),b.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},b.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},b.utils.isNumber=function(a){return a===+a},b.utils.isFloat=function(a){return a===+a&&a!==(0|a)},b.utils.isInteger=function(a){return a===+a&&a===(0|a)},b.utils.isNegligible=function(a){return!b.utils.isNumber(a)||a-b.constants.NEGLIGIBLE_NUMBER},b.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var c=0;return b.utils.uniqueId=function(){return++c},b.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},b.utils.appendOrSelect=function(a,b){var c=a.select(b);return c.empty()&&(c=a.append(b)),c},b.utils.safeNumber=function(a){return b.utils.isNumber(+a)?+a:0},b.logger={},b.logger.enableDebugLog=!1,b.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),b.logger},b.logger.debug=function(a){return b.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),b.logger},b.events={current:null},b.events.trigger=function(a,c){return c?(b.events.current=a,void setTimeout(function(){a==b.events.current&&a()},c)):void a()},b.filters={},b.filters.RangedFilter=function(a,b){var c=Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&dr?b:r},t=s,u=200,v=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>u?b:u},w=v,x=b.pluck("key"),y=b.pluck("value"),z=b.pluck("key"),A=b.pluck("key"),B=!1,C=function(a){return c.keyAccessor()(a)+": "+c.valueAccessor()(a)},D=!1,E=750,F=b.printers.filters,G=[],H=["dimension","group"],I=b.constants.DEFAULT_CHART_GROUP,J=function(){},K={preRender:J,postRender:J,preRedraw:J,postRedraw:J,filtered:J,zoomed:J},L=[],M=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c0&&o?o.transition().duration(c.transitionDuration()).each("end",function(){j(),a&&K[a](c)}):(j(),a&&K[a](c))},c.redraw=function(){K.preRedraw(c);var a=c._doRedraw();return q&&q.render(),c._activateRenderlets("postRedraw"),a},c.redrawGroup=function(){b.redrawAll(c.chartGroup())},c._invokeFilteredListener=function(a){void 0!==a&&K.filtered(c,a)},c._invokeZoomedListener=function(){K.zoomed(c)},c.hasFilter=function(a){return arguments.length?L.indexOf(a)>=0:L.length>0},c.replaceFilter=function(a){L=[],c.filter(a)},c.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?(a[0].forEach(function(a){c.hasFilter(a)?L.splice(L.indexOf(a),1):L.push(a)}),i(),c._invokeFilteredListener(a)):null===a?h():c.hasFilter(a)?f(a):g(a),null!==n&&c.hasFilter()?c.turnOnControls():c.turnOffControls(),c):L.length>0?L[0]:null},c.filters=function(){return L},c.highlightSelected=function(c){a.select(c).classed(b.constants.SELECTED_CLASS,!0),a.select(c).classed(b.constants.DESELECTED_CLASS,!1)},c.fadeDeselected=function(c){a.select(c).classed(b.constants.SELECTED_CLASS,!1),a.select(c).classed(b.constants.DESELECTED_CLASS,!0)},c.resetHighlight=function(c){a.select(c).classed(b.constants.SELECTED_CLASS,!1),a.select(c).classed(b.constants.DESELECTED_CLASS,!1)},c.onClick=function(a){var d=c.keyAccessor()(a);b.events.trigger(function(){c.filter(d),c.redrawGroup()})},c.filterHandler=function(a){return arguments.length?(M=a,c):M},c._doRender=function(){return c},c._doRedraw=function(){return c},c.legendables=function(){return[]},c.legendHighlight=function(){},c.legendReset=function(){},c.legendToggle=function(){},c.isLegendableHidden=function(){return!1},c.keyAccessor=function(a){return arguments.length?(x=a,c):x},c.valueAccessor=function(a){return arguments.length?(y=a,c):y},c.label=function(a){return arguments.length?(z=a,B=!0,c):z},c.renderLabel=function(a){return arguments.length?(B=a,c):B},c.title=function(a){return arguments.length?(C=a,D=!0,c):C},c.renderTitle=function(a){return arguments.length?(D=a,c):D},c.renderlet=function(a){return G.push(a),c},c.chartGroup=function(a){return arguments.length?(I=a,c):I},c.expireCache=function(){return c},c.legend=function(a){return arguments.length?(q=a,q.parent(c),c):q},c.chartID=function(){return c.__dc_flag__},c.options=function(a){for(var d in a)"function"==typeof c[d]?c[d].call(c,a[d]):b.logger.debug("Not a valid option setter name: "+d);return c},c.on=function(a,b){return K[a]=b,c},c},b.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},b.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];c.domain(d)},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},b.coordinateGridMixin=function(c){function d(a){c.elasticX()&&!c.isOrdinal()?x.domain([c.xAxisMin(),c.xAxisMax()]):c.isOrdinal()&&0===x.domain().length&&x.domain(c._ordinalXDomain()),c.isOrdinal()?x.rangeBands([0,c.xAxisLength()],ab,_):x.range([0,c.xAxisLength()]),G=G.scale(c.x()),e(a)}function e(a){var d=a.selectAll("g."+q);if(S){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+c.margins().left+","+c.margins().top+")"));var e=G.tickValues()?G.tickValues():x.ticks(G.ticks()[0]),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",c._xAxisY()-c.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);b.transition(g,c.transitionDuration()).attr("opacity",1),b.transition(f,c.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",c._xAxisY()-c.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function f(){return c._xAxisY()-c.margins().top}function g(){return c.anchorName()+"-clip"}function h(){var a=b.utils.appendOrSelect(u,"defs"),d=b.utils.appendOrSelect(a,"clipPath").attr("id",g()),e=2*$;b.utils.appendOrSelect(d,"rect").attr("width",c.xAxisLength()+e).attr("height",c.yAxisHeight()+e)}function i(a){c.isOrdinal()&&(Q=!1),d(c.g()),c._prepareYAxis(c.g()),c.plotData(),(c.elasticX()||T||a)&&c.renderXAxis(c.g()),(c.elasticY()||a)&&c.renderYAxis(c.g()),a?c.renderBrush(c.g()):c.redrawBrush(c.g())}function j(){Z?c._enableMouseZoom():Y&&c._disableMouseZoom()}function k(){T=!0,V&&(c.x().domain(l(c.x().domain(),y)),E&&c.x().domain(l(c.x().domain(),E.x().domain())));var a=c.x().domain(),d=b.filters.RangedFilter(a[0],a[1]);c.replaceFilter(d),c.rescale(),c.redraw(),E&&!m(c.filter(),E.filter())&&b.events.trigger(function(){E.replaceFilter(d),E.redraw()}),c._invokeZoomedListener(),b.events.trigger(function(){c.redrawGroup()},b.constants.EVENT_DELAY),T=!m(a,y)}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;c=b.colorMixin(b.marginMixin(b.baseMixin(c))),c.colors(a.scale.category10()),c._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G=a.svg.axis().orient("bottom"),H=b.units.integers,I=0,J=!1,K=0,L=a.svg.axis().orient("left"),M=0,N=!1,O=0,P=a.svg.brush(),Q=!0,R=!1,S=!1,T=!1,U=[1,1/0],V=!0,W=a.behavior.zoom().on("zoom",k),X=a.behavior.zoom().on("zoom",null),Y=!1,Z=!1,$=0,_=.5,ab=0,bb=!1;return c.rescale=function(){D=void 0},c.rangeChart=function(a){return arguments.length?(E=a,E.focusChart(c),c):E},c.zoomScale=function(a){return arguments.length?(U=a,c):U},c.zoomOutRestrict=function(a){return arguments.length?(U[0]=a?1:0,V=a,c):V},c._generateG=function(a){return u=void 0===a?c.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+c.margins().left+", "+c.margins().top+")").attr("clip-path","url(#"+g()+")"),v},c.g=function(a){return arguments.length?(v=a,c):v},c.mouseZoomable=function(a){return arguments.length?(Z=a,c):Z},c.chartBodyG=function(a){return arguments.length?(w=a,c):w},c.x=function(a){return arguments.length?(x=a,y=x.domain(),c):x},c.xOriginalDomain=function(){return y},c.xUnits=function(a){return arguments.length?(H=a,c):H},c.xAxis=function(a){return arguments.length?(G=a,c):G},c.elasticX=function(a){return arguments.length?(J=a,c):J},c.xAxisPadding=function(a){return arguments.length?(I=a,c):I},c.xUnitCount=function(){if(void 0===D){var a=c.xUnits()(c.x().domain()[0],c.x().domain()[1],c.x().domain());D=a instanceof Array?a.length:a}return D},c.useRightYAxis=function(a){return arguments.length?(bb=a,c):bb},c.isOrdinal=function(){return c.xUnits()===b.units.ordinal},c._ordinalXDomain=function(){var a=c._computeOrderedGroups(c.data());return a.map(c.keyAccessor())},c.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+c.margins().left+","+c._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&c.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(c.margins().left+c.xAxisLength()/2)+","+(c.height()-K)+")").attr("class",s).attr("text-anchor","middle").text(c.xAxisLabel())),c.xAxisLabel()&&e.text()!=c.xAxisLabel()&&e.text(c.xAxisLabel()),b.transition(d,c.transitionDuration()).call(G)},c._xAxisY=function(){return c.height()-c.margins().bottom},c.xAxisLength=function(){return c.effectiveWidth()},c.xAxisLabel=function(a,b){return arguments.length?(z=a,c.margins().bottom-=K,K=void 0===b?t:b,c.margins().bottom+=K,c):z},c._prepareYAxis=function(b){(void 0===A||c.elasticY())&&(A=a.scale.linear(),A.domain([c.yAxisMin(),c.yAxisMax()]).rangeRound([c.yAxisHeight(),0])),A.range([c.yAxisHeight(),0]),L=L.scale(A),bb&&L.orient("right"),c._renderHorizontalGridLinesForAxis(b,A,L)},c.renderYAxisLabel=function(a,b,d,e){e=e||O;var f=c.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&b){var g=c.margins().top+c.yAxisHeight()/2;f=c.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(b)}b&&f.text()!=b&&f.text(b)},c.renderYAxisAt=function(a,d,e){var f=c.g().selectAll("g."+a);f.empty()&&(f=c.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+c.margins().top+")")),b.transition(f,c.transitionDuration()).call(d)},c.renderYAxis=function(){var a=bb?c.width()-c.margins().right:c._yAxisX();c.renderYAxisAt("y",L,a);var b=bb?c.width()-O:O,d=bb?90:-90;c.renderYAxisLabel("y",c.yAxisLabel(),d,b)},c._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(R){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+c.margins().left+","+c.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",c.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);b.transition(i,c.transitionDuration()).attr("opacity",1),b.transition(h,c.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",c.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},c._yAxisX=function(){return c.useRightYAxis()?c.width()-c.margins().right:c.margins().left},c.yAxisLabel=function(a,b){return arguments.length?(B=a,c.margins().left-=O,O=void 0===b?t:b,c.margins().left+=O,c):B},c.y=function(a){return arguments.length?(A=a,c):A},c.yAxis=function(a){return arguments.length?(L=a,c):L},c.elasticY=function(a){return arguments.length?(N=a,c):N},c.renderHorizontalGridLines=function(a){return arguments.length?(R=a,c):R},c.renderVerticalGridLines=function(a){return arguments.length?(S=a,c):S},c.xAxisMin=function(){var d=a.min(c.data(),function(a){return c.keyAccessor()(a)});return b.utils.subtract(d,I)},c.xAxisMax=function(){var d=a.max(c.data(),function(a){return c.keyAccessor()(a)});return b.utils.add(d,I)},c.yAxisMin=function(){var d=a.min(c.data(),function(a){return c.valueAccessor()(a)});return b.utils.subtract(d,M)},c.yAxisMax=function(){var d=a.max(c.data(),function(a){return c.valueAccessor()(a)});return b.utils.add(d,M)},c.yAxisPadding=function(a){return arguments.length?(M=a,c):M},c.yAxisHeight=function(){return c.effectiveHeight()},c.round=function(a){return arguments.length?(C=a,c):C},c._rangeBandPadding=function(a){return arguments.length?(ab=a,c):ab},c._outerRangeBandPadding=function(a){return arguments.length?(_=a,c):_},b.override(c,"filter",function(a){return arguments.length?(c._filter(a),a?c.brush().extent(a):c.brush().clear(),c):c._filter()}),c.brush=function(a){return arguments.length?(P=a,c):P},c.renderBrush=function(a){if(Q){P.on("brush",c._brushing),P.on("brushstart",c._disableMouseZoom),P.on("brushend",j);var b=a.append("g").attr("class","brush").attr("transform","translate("+c.margins().left+","+c.margins().top+")").call(P.x(c.x()));c.setBrushY(b),c.setHandlePaths(b),c.hasFilter()&&c.redrawBrush(a)}},c.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",c.resizeHandlePath)},c.setBrushY=function(a){a.selectAll("rect").attr("height",f())},c.extendBrush=function(){var a=P.extent();return c.round()&&(a[0]=a.map(c.round())[0],a[1]=a.map(c.round())[1],v.select(".brush").call(P.extent(a))),a},c.brushIsEmpty=function(a){return P.empty()||!a||a[1]<=a[0]},c._brushing=function(){var a=c.extendBrush();if(c.redrawBrush(v),c.brushIsEmpty(a))b.events.trigger(function(){c.filter(null),c.redrawGroup()},b.constants.EVENT_DELAY);else{var d=b.filters.RangedFilter(a[0],a[1]);b.events.trigger(function(){c.replaceFilter(d),c.redrawGroup()},b.constants.EVENT_DELAY)}},c.redrawBrush=function(a){if(Q){c.filter()&&c.brush().empty()&&c.brush().extent(c.filter());var b=a.select("g.brush");b.call(c.brush().x(c.x())),c.setBrushY(b)}c.fadeDeselectedArea()},c.fadeDeselectedArea=function(){},c.resizeHandlePath=function(a){var b=+("e"==a),c=b?1:-1,d=f()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},c.clipPadding=function(a){return arguments.length?($=a,c):$},c._preprocessData=function(){},c._doRender=function(){return c.resetSvg(),c._preprocessData(),c._generateG(),h(),i(!0),j(),c},c._doRedraw=function(){return c._preprocessData(),i(!1),c},c._enableMouseZoom=function(){Y=!0,W.x(c.x()).scaleExtent(U).size([c.width(),c.height()]),c.root().call(W)},c._disableMouseZoom=function(){c.root().call(X)},c.focus=function(a){c.x().domain(n(a)?a:y),W.x(c.x()),k()},c.refocused=function(){return T},c.focusChart=function(a){return arguments.length?(F=a,c.on("filtered",function(a){a.filter()?m(a.filter(),F.filter())||b.events.trigger(function(){F.focus(a.filter())}):b.events.trigger(function(){F.x().domain(F.xOriginalDomain())})}),c):F},c.brushOn=function(a){return arguments.length?(Q=a,c):Q},c},b.stackMixin=function(c){function d(a,b){var d=a.accessor||c.valueAccessor();return a.name=String(a.name||b),a.values=a.group.all().map(function(b,e){return{x:c.keyAccessor()(b,e),y:a.hidden?null:d(b,e),data:b,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!c.x())return a.functor(!0);var b=c.x().domain();return c.isOrdinal()?function(){return!0}:function(a){return a.x>=b[0]&&a.x<=b[b.length-1]}}function f(a){var c=j.map(b.pluck("name")).indexOf(a);return j[c]}function g(){return c.data().reduce(function(a,b){return a.concat(b.values)},[])}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return c.stack=function(a,b,d){if(!arguments.length)return j;arguments.length<=2&&(d=b);var e={group:a};return"string"==typeof b&&(e.name=b),"function"==typeof d&&(e.accessor=d),j.push(e),c},b.override(c,"group",function(a,b,d){return arguments.length?(j=[],k={},c.stack(a,b),d&&c.valueAccessor(d),c._group(a,b)):c._group()}),c.hidableStacks=function(a){return arguments.length?(l=a,c):l},c.hideStack=function(a){var b=f(a);return b&&(b.hidden=!0),c},c.showStack=function(a){var b=f(a);return b&&(b.hidden=!1),c},c.getValueAccessorByIndex=function(a){return j[a].accessor||c.valueAccessor()},c.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?b.concat([{others:k,key:e,value:g-d}]):b};return c.cappedKeyAccessor=function(a,b){return a.others?a.key:c.keyAccessor()(a,b)},c.cappedValueAccessor=function(a,b){return a.others?a.value:c.valueAccessor()(a,b)},c.data(function(a){if(1/0==d)return c._computeOrderedGroups(a.all());var b=a.top(d);return b=c._computeOrderedGroups(b),f?f(b):b}),c.cap=function(a){return arguments.length?(d=a,c):d},c.othersLabel=function(a){return arguments.length?(e=a,c):e},c.othersGrouper=function(a){return arguments.length?(f=a,c):f},b.override(c,"onClick",function(a){a.others&&c.filter([a.others]),c._onClick(a)}),c},b.bubbleMixin=function(c){var d=.3,e=10;c.BUBBLE_NODE_CLASS="node",c.BUBBLE_CLASS="bubble",c.MIN_RADIUS=10,c=b.colorMixin(c),c.renderLabel(!0),c.renderTitle(!1),c.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};c.r=function(a){return arguments.length?(f=a,c):f},c.radiusValueAccessor=function(a){return arguments.length?(g=a,c):g},c.rMin=function(){var b=a.min(c.data(),function(a){return c.radiusValueAccessor()(a)});return b},c.rMax=function(){var b=a.max(c.data(),function(a){return c.radiusValueAccessor()(a)});return b},c.bubbleR=function(a){var b=c.radiusValueAccessor()(a),d=c.r()(b);return(isNaN(d)||0>=b)&&(d=0),d};var h=function(a){return c.label()(a)},i=function(a){return c.bubbleR(a)>e?1:0};c._doRenderLabel=function(a){if(c.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",c.onClick)),d.attr("opacity",0).text(h),b.transition(d,c.transitionDuration()).attr("opacity",i)}},c.doUpdateLabels=function(a){if(c.renderLabel()){var d=a.selectAll("text").text(h);b.transition(d,c.transitionDuration()).attr("opacity",i)}};var j=function(a){return c.title()(a)};return c._doRenderTitles=function(a){if(c.renderTitle()){var b=a.select("title");b.empty()&&a.append("title").text(j)}},c.doUpdateTitles=function(a){c.renderTitle()&&a.selectAll("title").text(j)},c.minRadiusWithLabel=function(a){return arguments.length?(e=a,c):e},c.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,c):d},c.fadeDeselectedArea=function(){c.selectAll("g."+c.BUBBLE_NODE_CLASS).each(c.hasFilter()?function(a){c.isSelectedNode(a)?c.highlightSelected(this):c.fadeDeselected(this)}:function(){c.resetHighlight(this)})},c.isSelectedNode=function(a){return c.hasFilter(a.key)},c.onClick=function(a){var d=a.key;b.events.trigger(function(){c.filter(d),b.redrawAll(c.chartGroup())})},c},b.pieChart=function(c,d){function e(){D=D?D:a.min([K.width(),K.height()])/2;var b=r(),c=t(),d=c(K.data());if(E){var e=E.selectAll("g."+H).data(d);f(e,b,d),l(d,b),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return H+" _"+b});return b}function h(a,c){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,b){return A(a,b,c)});b.transition(d,K.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){K.renderTitle()&&a.append("title").text(function(a){return K.title()(a)})}function j(a,c){b.transition(a,K.transitionDuration()).attr("transform",function(a){return B(a,c)}).attr("text-anchor","middle").text(function(a){var b=a.data;return v(b)||u(a)?"":K.label()(a.data)})}function k(a,b){if(K.renderLabel()){var c=E.selectAll("text."+H).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=H+" _"+b;return F&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,c){var d=E.selectAll("g."+H).data(a).select("path").attr("d",function(a,b){return A(a,b,c)});b.transition(d,K.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(K.renderLabel()){var c=E.selectAll("text."+H).data(a);j(c,b)}}function o(a){K.renderTitle()&&E.selectAll("g."+H).data(a).select("title").text(function(a){return K.title()(a.data)})}function p(a){a.exit().remove()}function q(){K.selectAll("g."+H).each(K.hasFilter()?function(a){s(a)?K.highlightSelected(this):K.fadeDeselected(this)}:function(){K.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(I)}function s(a){return K.hasFilter(K.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(K.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||J>b}function v(a){return 0===K.cappedValueAccessor(a)}function w(b){b.innerRadius=I;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return K.getColor(a.data,b)}function z(a,b){K.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=F?a.svg.arc().outerRadius(D+F).innerRadius(D+F).centroid(b):c.centroid(b),isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"}function C(b,c){K.selectAll("g.pie-slice").each(function(d){b.name==d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G=.5,H="pie-slice",I=0,J=G,K=b.capMixin(b.colorMixin(b.baseMixin({})));return K.colorAccessor(K.cappedKeyAccessor),K.title(function(a){return K.cappedKeyAccessor(a)+": "+K.cappedValueAccessor(a)}),K.slicesCap=K.cap,K.label(K.cappedKeyAccessor),K.renderLabel(!0),K.transitionDuration(350),K._doRender=function(){return K.resetSvg(),E=K.svg().append("g").attr("transform","translate("+K.cx()+","+K.cy()+")"),e(),K},K.innerRadius=function(a){return arguments.length?(I=a,K):I},K.radius=function(a){return arguments.length?(D=a,K):D},K.cx=function(){return K.width()/2},K.cy=function(){return K.height()/2},K._doRedraw=function(){return e(),K},K.minAngleForLabel=function(a){return arguments.length?(J=a,K):J},K.externalLabels=function(a){return 0===arguments.length?F:(F=a?a:void 0,K)},K.legendables=function(){return K.data().map(function(a,b){var c={name:a.key,data:a.value,others:a.others,chart:K};return c.color=K.getColor(a,b),c})},K.legendHighlight=function(a){C(a,!0)},K.legendReset=function(a){C(a,!1)},K.legendToggle=function(a){K.onClick({key:a.name,others:a.others})},K.anchor(c,d) -},b.barChart=function(c,d){function e(a){return b.utils.safeNumber(Math.abs(m.y()(a.y+a.y0)-m.y()(a.y0)))}function f(a,c,d){var f=a.selectAll("rect.bar").data(d.values,b.pluck("x"));f.enter().append("rect").attr("class","bar").attr("fill",b.pluck("data",m.getColor)).attr("height",0),m.renderTitle()&&f.append("title").text(b.pluck("data",m.title(d.name))),m.isOrdinal()&&f.on("click",h),b.transition(f,m.transitionDuration()).attr("x",function(a){var c=m.x()(a.x);return o&&(c-=j/2),m.isOrdinal()&&(c+=n/2),b.utils.safeNumber(c)}).attr("y",function(a){var c=m.y()(a.y+a.y0);return a.y<0&&(c-=e(a)),b.utils.safeNumber(c)}).attr("width",j).attr("height",function(a){return e(a)}).attr("fill",b.pluck("data",m.getColor)).select("title").text(b.pluck("data",m.title(d.name))),b.transition(f.exit(),m.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===j){var a=m.xUnitCount();j=Math.floor(m.isOrdinal()&&!n?m.x().rangeBand():n?(m.xAxisLength()-(a-1)*n)/a:m.xAxisLength()/(1+m.barPadding())/a),(1/0==j||isNaN(j)||k>j)&&(j=k)}}function h(a){m.onClick(a.data)}function i(b,c){return function(){var d=a.select(this),e=d.attr("fill")==b;return c?!e:e}}var j,k=1,l=2,m=b.stackMixin(b.coordinateGridMixin({})),n=l,o=!1,p=!1;return b.override(m,"rescale",function(){m._rescale(),j=void 0}),b.override(m,"render",function(){m.round()&&o&&!p&&b.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),m._render()}),m.plotData=function(){var b=m.chartBodyG().selectAll("g.stack").data(m.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},m.fadeDeselectedArea=function(){var a=m.chartBodyG().selectAll("rect.bar"),c=m.brush().extent();if(m.isOrdinal())m.hasFilter()?(a.classed(b.constants.SELECTED_CLASS,function(a){return m.hasFilter(a.x)}),a.classed(b.constants.DESELECTED_CLASS,function(a){return!m.hasFilter(a.x)})):(a.classed(b.constants.SELECTED_CLASS,!1),a.classed(b.constants.DESELECTED_CLASS,!1));else if(m.brushIsEmpty(c))a.classed(b.constants.DESELECTED_CLASS,!1);else{var d=c[0],e=c[1];a.classed(b.constants.DESELECTED_CLASS,function(a){return a.x=e})}},m.centerBar=function(a){return arguments.length?(o=a,m):o},m.barPadding=function(a){return arguments.length?(m._rangeBandPadding(a),n=0,m):m._rangeBandPadding()},m.outerPadding=m._outerRangeBandPadding,m.gap=function(a){return arguments.length?(n=a,m):n},m.extendBrush=function(){var a=m.brush().extent();return!m.round()||o&&!p||(a[0]=a.map(m.round())[0],a[1]=a.map(m.round())[1],m.chartBodyG().select(".brush").call(m.brush().extent(a))),a},m.alwaysUseRounding=function(a){return arguments.length?(p=a,m):p},m.legendHighlight=function(a){m.isLegendableHidden(a)||m.g().selectAll("rect.bar").classed("highlight",i(a.color)).classed("fadeout",i(a.color,!0))},m.legendReset=function(){m.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},b.override(m,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in m.xUnits()){var b=m.xUnits().resolution;a+=b}return a}),m.anchor(c,d)},b.lineChart=function(c,d){function e(a,b){return y.getColor.call(a,a.values,b)}function f(c,d){var f=a.svg.line().x(function(a){return y.x()(a.x)}).y(function(a){return y.y()(a.y+a.y0)}).interpolate(E).tension(F);q&&f.defined(q);var g=c.append("path").attr("class","line").attr("stroke",e);r&&g.attr("stroke-dasharray",r),b.transition(d.select("path.line"),y.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(c,d){if(z){var f=a.svg.area().x(function(a){return y.x()(a.x)}).y(function(a){return y.y()(a.y+a.y0)}).y0(function(a){return y.y()(a.y0)}).interpolate(E).tension(F);q&&f.defined(q),c.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),b.transition(d.select("path.area"),y.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(c,d){if(!y.brushOn()){var e=t+"-list",f=c.select("g."+e);f.empty()&&(f=c.append("g").attr("class",e)),d.each(function(c,d){var e=c.values;q&&(e=e.filter(q));var g=f.select("g."+t+"._"+d);g.empty()&&(g=f.append("g").attr("class",t+" _"+d)),j(g);var h=g.selectAll("circle."+u).data(e,b.pluck("x"));h.enter().append("circle").attr("class",u).attr("r",m()).attr("fill",y.getColor).style("fill-opacity",C).style("stroke-opacity",D).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}).append("title").text(b.pluck("data",y.title(c.name))),h.attr("cx",function(a){return b.utils.safeNumber(y.x()(a.x))}).attr("cy",function(a){return b.utils.safeNumber(y.y()(a.y+a.y0))}).attr("fill",y.getColor).select("title").text(b.pluck("data",y.title(c.name))),h.exit().remove()})}}function j(a){var b=a.select("path."+v).empty()?a.append("path").attr("class",v):a.select("path."+v);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",A),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=y._yAxisX()-y.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+y.yAxisHeight()+"L"+c+" "+d;b.select("path."+v).style("display","").attr("d",f),b.select("path."+w).style("display","").attr("d",g)}function m(){return B||A}function n(a){a.style("fill-opacity",C).style("stroke-opacity",D).attr("r",m())}function o(a){a.select("path."+v).style("display","none"),a.select("path."+w).style("display","none")}function p(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")==b&&e.attr("stroke-dasharray")==(c instanceof Array?c.join(","):null)||e.attr("fill")==b;return d?!f:f}}var q,r,s=5,t="dc-tooltip",u="dot",v="yRef",w="xRef",x=1e-6,y=b.stackMixin(b.coordinateGridMixin({})),z=!1,A=s,B=null,C=x,D=x,E="linear",F=.7;return y.transitionDuration(500),y._rangeBandPadding(1),y.plotData=function(){var a=y.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(y.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},y.interpolate=function(a){return arguments.length?(E=a,y):E},y.tension=function(a){return arguments.length?(F=a,y):F},y.defined=function(a){return arguments.length?(q=a,y):q},y.dashStyle=function(a){return arguments.length?(r=a,y):r},y.renderArea=function(a){return arguments.length?(z=a,y):z},y.dotRadius=function(a){return arguments.length?(A=a,y):A},y.renderDataPoints=function(a){return arguments.length?(a?(C=a.fillOpacity||.8,D=a.strokeOpacity||.8,B=a.radius||2):(C=x,D=x,B=null),y):{fillOpacity:C,strokeOpacity:D,radius:B}},y.legendHighlight=function(a){y.isLegendableHidden(a)||y.g().selectAll("path.line, path.area").classed("highlight",p(a.color,a.dashstyle)).classed("fadeout",p(a.color,a.dashstyle,!0))},y.legendReset=function(){y.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},b.override(y,"legendables",function(){var a=y._legendables();return r?a.map(function(a){return a.dashstyle=r,a}):a}),y.anchor(c,d)},b.dataCount=function(c,d){var e=a.format(",d"),f=b.baseMixin({});return f._doRender=function(){return f.selectAll(".total-count").text(e(f.dimension().size())),f.selectAll(".filter-count").text(e(f.group().value())),f},f._doRedraw=function(){return f._doRender()},f.anchor(c,d)},b.dataTable=function(c,d){function e(){var a=l.root().selectAll("tbody").data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("tbody");return b.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",n.length).html(function(a){return l.keyAccessor()(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return n.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(a)}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l=b.baseMixin({}),m=25,n=[],o=function(a){return a},p=a.ascending;return l._doRender=function(){return l.selectAll("tbody").remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.columns=function(a){return arguments.length?(n=a,l):n},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(c,d)},b.dataGrid=function(c,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=b.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

    "+l.keyAccessor()(a)+"

    "};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(c,d)},b.bubbleChart=function(a,c){function d(a){var c=a.enter().append("g");c.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),b.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(c),i._doRenderTitles(c)}function e(a){b.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=b.bubbleMixin(b.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,c)},b.compositeChart=function(c,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return b.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return b.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=b.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),b.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),s=a.scale.linear().domain(b).range([0,D.effectiveWidth()])}E.scale(s)}function f(){var a=r.select("g.axis");e(),a.empty()&&(a=r.append("g").attr("class","axis").attr("transform","translate(0, "+D.effectiveHeight()+")")),b.transition(a,D.transitionDuration()).call(E)}function g(){r.selectAll("g.tick").select("line.grid-line").remove(),r.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-D.effectiveHeight()})}function h(){u=D.data(),f(),g();var a=r.selectAll("g."+A).data(u);i(a),j(a),k(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return A+" _"+b});b.append("rect").attr("width",0),m(b),n(a)}function j(a){a.exit().remove()}function k(a){var c,d=u.length;c=z?z:(D.effectiveHeight()-(d+1)*y)/d;var e=a.attr("transform",function(a,b){return"translate(0,"+((b+1)*y+b*c)+")"}).select("rect").attr("height",c).attr("fill",D.getColor).on("click",o).classed("deselected",function(a){return D.hasFilter()?!q(a):!1}).classed("selected",function(a){return D.hasFilter()?q(a):!1});b.transition(e,D.transitionDuration()).attr("width",function(a){var b=s(s(0)==-1/0?1:0);return Math.abs(b-s(D.valueAccessor()(a)))}).attr("transform",p),l(a),n(a)}function l(a){D.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(D.title()))}function m(a){D.renderLabel()&&a.append("text").on("click",o),D.renderTitleLabel()&&a.append("text").attr("class",B).on("click",o)}function n(a){if(D.renderLabel()){var c=a.select("text").attr("x",v).attr("y",w).on("click",o).attr("class",function(a,b){return A+" _"+b}).text(function(a){return D.label()(a)});b.transition(c,D.transitionDuration()).attr("transform",p)}if(D.renderTitleLabel()){var d=a.select("."+B).attr("x",D.effectiveWidth()-x).attr("y",w).attr("text-anchor","end").on("click",o).attr("class",function(a,b){return B+" _"+b}).text(function(a){return D.title()(a)});b.transition(d,D.transitionDuration()).attr("transform",p)}}function o(a){D.onClick(a)}function p(a){var b=s(D.cappedValueAccessor(a)),c=s(0),d=b>c?c:b;return"translate("+d+",0)"}function q(a){return D.hasFilter(D.cappedKeyAccessor(a))}var r,s,t,u,v=10,w=15,x=2,y=5,z=!1,A="row",B="titlerow",C=!1,D=b.capMixin(b.marginMixin(b.colorMixin(b.baseMixin({})))),E=a.svg.axis().orient("bottom");return D.rowsCap=D.cap,D._doRender=function(){return D.resetSvg(),r=D.svg().append("g").attr("transform","translate("+D.margins().left+","+D.margins().top+")"),h(),D},D.title(function(a){return D.cappedKeyAccessor(a)+": "+D.cappedValueAccessor(a)}),D.label(D.cappedKeyAccessor),D.x=function(a){return arguments.length?(s=a,D):s},D.renderTitleLabel=function(a){return arguments.length?(C=a,D):C},D._doRedraw=function(){return h(),D},D.xAxis=function(){return E},D.fixedBarHeight=function(a){return arguments.length?(z=a,D):z},D.gap=function(a){return arguments.length?(y=a,D):y},D.elasticX=function(a){return arguments.length?(t=a,D):t},D.labelOffsetX=function(a){return arguments.length?(v=a,D):v},D.labelOffsetY=function(a){return arguments.length?(w=a,D):w},D.titleLabelOffsetX=function(a){return arguments.length?(x=a,D):x},D.anchor(c,d)},b.legend=function(){function a(){return j+i}var c,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70;return f.parent=function(a){return arguments.length?(c=a,f):c},f.render=function(){c.svg().select("g.dc-legend").remove(),d=c.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=c.legendables(),j=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){c.legendHighlight(a)}).on("mouseout",function(a){c.legendReset(a)}).on("click",function(a){c.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(b.pluck("dashstyle"))?j.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",b.pluck("dashstyle")).attr("stroke",b.pluck("color")):j.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),j.append("text").text(b.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var n=0,o=0;j.attr("transform",function(b,c){if(k){var d="translate("+n+","+o*a()+")";return n+m>=l?(++o,n=0):n+=m,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f},b.scatterPlot=function(c,d){function e(c,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return c(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),b.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var c=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});b.transition(c,g.transitionDuration()).attr("d",h)}var g=b.coordinateGridMixin({}),h=a.svg.symbol(),i=g.keyAccessor();g.keyAccessor(function(a){return i(a)[0]}),g.valueAccessor(function(a){return i(a)[1]}),g.colorAccessor(function(){return g._groupName});var j=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},k=3,l=5,m=0;return h.size(function(a){return 0===a.value?m:this.filtered?Math.pow(l,2):Math.pow(k,2)}),b.override(g,"_filter",function(a){return arguments.length?g.__filter(b.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",j),b.transition(a,g.transitionDuration()).attr("opacity",function(a){return a.value?1:0}).attr("fill",g.getColor).attr("transform",j).attr("d",h),b.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(k=a,g):k},g.highlightedSize=function(a){return arguments.length?(l=a,g):l},g.hiddenSize=function(a){return arguments.length?(m=a,g):m},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")==b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!=b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")==b.color},k),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!=b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))b.events.trigger(function(){g.filter(null),b.redrawAll(g.chartGroup())}),f(!1);else{var c=b.filters.RangedTwoDimensionalFilter(a);b.events.trigger(function(){g.filter(null),g.filter(c),b.redrawAll(g.chartGroup())},b.constants.EVENT_DELAY),f(c)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(c,d)},b.numberDisplay=function(c,d){var e="number-display",f=a.format(".2s"),g=b.baseMixin({});return g._mandatoryAttributes(["group"]),g.value=function(){return g.data()},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250),g._doRender=function(){var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);return this.lastValue=b,function(a){this.textContent=g.formatNumber()(c(a))}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(c,d)},b.heatMap=function(c,d){function e(a,c){var d=m.selectAll(".box-group").filter(function(b){return b.key[a]==c}),e=d.filter(function(a){return!m.hasFilter(a.key)});b.events.trigger(function(){e.empty()?d.each(function(a){m.filter(a.key)}):e.each(function(a){m.filter(a.key)}),m.redrawGroup()})}function f(a,b,c){return!b||c[b-1]!=a}var g,h,i,j=6.75,k=j,l=j,m=b.colorMixin(b.marginMixin(b.baseMixin({})));m._mandatoryAttributes(["group"]),m.title(m.colorAccessor());var n=function(a){e(0,a)},o=function(a){e(1,a)},p=function(a){var c=a.key;b.events.trigger(function(){m.filter(c),m.redrawGroup()})};return b.override(m,"filter",function(a){return arguments.length?m._filter(b.filters.TwoDimensionalFilter(a)):m._filter()}),m.rows=function(b){if(arguments.length)return i=b,m;if(i)return i;var c=m.data().map(m.valueAccessor());return c.sort(a.ascending),a.scale.ordinal().domain(c.filter(f))},m.cols=function(b){if(arguments.length)return h=b,m;if(h)return h;var c=m.data().map(m.keyAccessor());return c.sort(a.ascending),a.scale.ordinal().domain(c.filter(f))},m._doRender=function(){return m.resetSvg(),g=m.svg().append("g").attr("class","heatmap").attr("transform","translate("+m.margins().left+","+m.margins().top+")"),m._doRedraw()},m._doRedraw=function(){var a=m.rows(),c=m.cols(),d=a.domain().length,e=c.domain().length,f=Math.floor(m.effectiveWidth()/e),h=Math.floor(m.effectiveHeight()/d);c.rangeRoundBands([0,m.effectiveWidth()]),a.rangeRoundBands([m.effectiveHeight(),0]);var i=g.selectAll("g.box-group").data(m.data(),function(a,b){return m.keyAccessor()(a,b)+"\x00"+m.valueAccessor()(a,b)}),j=i.enter().append("g").attr("class","box-group");j.append("rect").attr("class","heat-box").attr("fill","white").on("click",m.boxOnClick()),j.append("title").text(m.title()),b.transition(i.selectAll("rect"),m.transitionDuration()).attr("x",function(a,b){return c(m.keyAccessor()(a,b))}).attr("y",function(b,c){return a(m.valueAccessor()(b,c))}).attr("rx",k).attr("ry",l).attr("fill",m.getColor).attr("width",f).attr("height",h),i.exit().remove();var n=g.selectAll("g.cols");n.empty()&&(n=g.append("g").attr("class","cols axis")),n.selectAll("text").data(c.domain()).enter().append("text").attr("x",function(a){return c(a)+f/2}).style("text-anchor","middle").attr("y",m.effectiveHeight()).attr("dy",12).on("click",m.xAxisOnClick()).text(function(a){return a});var o=g.selectAll("g.rows");return o.empty()&&(o=g.append("g").attr("class","rows axis")),o.selectAll("text").data(a.domain()).enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",m.yAxisOnClick()).text(function(a){return a}),b.transition(o.selectAll("text"),m.transitionDuration()).text(function(a){return a}).attr("y",function(b){return a(b)+h/2}),m.selectAll("g.box-group").each(m.hasFilter()?function(a){m.isSelectedNode(a)?m.highlightSelected(this):m.fadeDeselected(this)}:function(){m.resetHighlight(this)}),m},m.boxOnClick=function(a){return arguments.length?(p=a,m):p -},m.xAxisOnClick=function(a){return arguments.length?(n=a,m):n},m.yAxisOnClick=function(a){return arguments.length?(o=a,m):o},m.xBorderRadius=function(a){return arguments.length&&(k=a),k},m.yBorderRadius=function(a){return arguments.length&&(l=a),l},m.isSelectedNode=function(a){return m.hasFilter(a.key)},m.anchor(c,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null==b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),b.boxPlot=function(c,d){function e(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function f(c){b.transition(c,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function g(a){a.exit().remove().call(m)}function h(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}var i=b.coordinateGridMixin({}),j=1.5,k=h,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(b.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+",0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});e(b),f(b),g(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var c=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return b.utils.subtract(c,i.yAxisPadding())},i.yAxisMax=function(){var c=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return b.utils.add(c,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(c,d)},b.abstractBubbleChart=b.bubbleMixin,b.baseChart=b.baseMixin,b.capped=b.capMixin,b.colorChart=b.colorMixin,b.coordinateGridChart=b.coordinateGridMixin,b.marginable=b.marginMixin,b.stackableChart=b.stackMixin,b}"function"==typeof define&&define.amd?define(["d3"],a):"object"==typeof module&&module.exports?module.exports=a(d3):this.dc=a(d3)}(); +/*! + * dc 2.1.0-dev + * http://dc-js.github.io/dc.js/ + * Copyright 2012-2015 Nick Zhu & the dc.js Developers + * https://github.com/dc-js/dc.js/blob/master/AUTHORS + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +!function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&dp?b:p},r=q,s=200,t=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>s?b:s},u=t,v=c.pluck("key"),w=c.pluck("value"),x=c.pluck("key"),y=c.pluck("key"),z=!1,A=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},B=!0,C=750,D=c.printers.filters,E=["dimension","group"],F=c.constants.DEFAULT_CHART_GROUP,G=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),H=[],I=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c=d&&d>=a)return!0}return!1}),b},J=function(a){return a.all()};d.width=function(b){return arguments.length?(r=a.functor(b||q),d):r(k.node())},d.height=function(b){return arguments.length?(u=a.functor(b||t),d):u(k.node())},d.minWidth=function(a){return arguments.length?(p=a,d):p},d.minHeight=function(a){return arguments.length?(s=a,d):s},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(J=a.functor(b),d.expireCache(),d):J.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(y=a,n=b.quicksort.by(y),d.expireCache(),d):y},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(n||(n=b.quicksort.by(y)),n(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root(),m=!0):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e),m=!1),F=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(D=a,d):D},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(D(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(C=a,d):C},d._mandatoryAttributes=function(a){return arguments.length?(E=a,d):E},d.render=function(){G.preRender(d),E&&E.forEach(f);var a=d._doRender();return o&&o.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){G.renderlet(d),a&&G[a](d)}):(G.renderlet(d),a&&G[a](d))},d.redraw=function(){G.preRedraw(d);var a=d._doRedraw();return o&&o.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&G.filtered(d,a)},d._invokeZoomedListener=function(){G.zoomed(d)};var K=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(K=a,d):K},d.hasFilter=function(a){return K(H,a)};var L=function(a,b){for(var c=0;c=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(L=a,d):L};var M=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(M=a,d):M};var N=function(){return[]};return d.resetFilterHandler=function(a){return arguments.length?(N=a,d):N},d.replaceFilter=function(a){H=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?L(H,a):M(H,a)}):null===a?H=N(H):d.hasFilter(a)?L(H,a):M(H,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):H.length>0?H[0]:null},d.filters=function(){return H},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(I=a,d):I},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(v=a,d):v},d.valueAccessor=function(a){return arguments.length?(w=a,d):w},d.label=function(a){return arguments.length?(x=a,z=!0,d):x},d.renderLabel=function(a){return arguments.length?(z=a,d):z},d.title=function(a){return arguments.length?(A=a,d):A},d.renderTitle=function(a){return arguments.length?(B=a,d):B},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(m||c.deregisterChart(d,F),F=a,m||c.registerChart(d,F),d):F},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(o=a,o.parent(d),d):o},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return G.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],ba,b._useOuterPadding()?aa:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,aa=.5,ba=0,ca=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(ca=a,b):ca},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),ca&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=ca?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=ca?b.width()-P:P,d=ca?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(ba=a,b):ba},b._outerRangeBandPadding=function(a){return arguments.length?(aa=a,b):aa},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(d===1/0)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b),isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"; + +}function C(b,c){O.selectAll("g.pie-slice").each(function(d){b.name===d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G,H,I=.5,J="pie-slice",K="empty-chart",L="empty",M=0,N=I,O=c.capMixin(c.colorMixin(c.baseMixin({})));return O.colorAccessor(O.cappedKeyAccessor),O.title(function(a){return O.cappedKeyAccessor(a)+": "+O.cappedValueAccessor(a)}),O.slicesCap=O.cap,O.label(O.cappedKeyAccessor),O.renderLabel(!0),O.transitionDuration(350),O._doRender=function(){return O.resetSvg(),E=O.svg().append("g").attr("transform","translate("+O.cx()+","+O.cy()+")"),e(),O},O.innerRadius=function(a){return arguments.length?(M=a,O):M},O.radius=function(a){return arguments.length?(D=a,O):D},O.cx=function(a){return arguments.length?(F=a,O):F||O.width()/2},O.cy=function(a){return arguments.length?(G=a,O):G||O.height()/2},O._doRedraw=function(){return e(),O},O.minAngleForLabel=function(a){return arguments.length?(N=a,O):N},O.emptyTitle=function(a){return 0===arguments.length?L:(L=a,O)},O.externalLabels=function(a){return 0===arguments.length?H:(H=a?a:void 0,O)},O.legendables=function(){return O.data().map(function(a,b){var c={name:a.key,data:a.value,others:a.others,chart:O};return c.color=O.getColor(a,b),c})},O.legendHighlight=function(a){C(a,!0)},O.legendReset=function(a){C(a,!1)},O.legendToggle=function(a){O.onClick({key:a.name,others:a.others})},O.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(l.y()(a.y+a.y0)-l.y()(a.y0)))}function f(a,b,d){var f=a.selectAll("rect.bar").data(d.values,c.pluck("x")),g=f.enter().append("rect").attr("class","bar").attr("fill",c.pluck("data",l.getColor)).attr("y",l.yAxisHeight()).attr("height",0);l.renderTitle()&&g.append("title").text(c.pluck("data",l.title(d.name))),l.isOrdinal()&&f.on("click",l.onClick),c.transition(f,l.transitionDuration()).attr("x",function(a){var b=l.x()(a.x);return n&&(b-=i/2),l.isOrdinal()&&void 0!==m&&(b+=m/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=l.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",i).attr("height",function(a){return e(a)}).attr("fill",c.pluck("data",l.getColor)).select("title").text(c.pluck("data",l.title(d.name))),c.transition(f.exit(),l.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===i){var a=l.xUnitCount();i=Math.floor(l.isOrdinal()&&void 0===m?l.x().rangeBand():m?(l.xAxisLength()-(a-1)*m)/a:l.xAxisLength()/(1+l.barPadding())/a),(i===1/0||isNaN(i)||j>i)&&(i=j)}}function h(b,c){return function(){var d=a.select(this),e=d.attr("fill")===b;return c?!e:e}}var i,j=1,k=2,l=c.stackMixin(c.coordinateGridMixin({})),m=k,n=!1,o=!1;return c.override(l,"rescale",function(){l._rescale(),i=void 0}),c.override(l,"render",function(){l.round()&&n&&!o&&c.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),l._render()}),l.plotData=function(){var b=l.chartBodyG().selectAll("g.stack").data(l.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},l.fadeDeselectedArea=function(){var a=l.chartBodyG().selectAll("rect.bar"),b=l.brush().extent();if(l.isOrdinal())l.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return l.hasFilter(a.x)}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!l.hasFilter(a.x)})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(l.brushIsEmpty(b))a.classed(c.constants.DESELECTED_CLASS,!1);else{var d=b[0],e=b[1];a.classed(c.constants.DESELECTED_CLASS,function(a){return a.x=e})}},l.centerBar=function(a){return arguments.length?(n=a,l):n},c.override(l,"onClick",function(a){l._onClick(a.data)}),l.barPadding=function(a){return arguments.length?(l._rangeBandPadding(a),m=void 0,l):l._rangeBandPadding()},l._useOuterPadding=function(){return void 0===m},l.outerPadding=l._outerRangeBandPadding,l.gap=function(a){return arguments.length?(m=a,l):m},l.extendBrush=function(){var a=l.brush().extent();return!l.round()||n&&!o||(a[0]=a.map(l.round())[0],a[1]=a.map(l.round())[1],l.chartBodyG().select(".brush").call(l.brush().extent(a))),a},l.alwaysUseRounding=function(a){return arguments.length?(o=a,l):o},l.legendHighlight=function(a){l.isLegendableHidden(a)||l.g().selectAll("rect.bar").classed("highlight",h(a.color)).classed("fadeout",h(a.color,!0))},l.legendReset=function(){l.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},c.override(l,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in l.xUnits()){var b=l.xUnits().resolution;a+=b}return a}),l.anchor(b,d)},c.lineChart=function(b,d){function e(a,b){return z.getColor.call(a,a.values,b)}function f(b,d){var f=a.svg.line().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).interpolate(F).tension(G);r&&f.defined(r);var g=b.append("path").attr("class","line").attr("stroke",e);s&&g.attr("stroke-dasharray",s),c.transition(d.select("path.line"),z.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(b,d){if(A){var f=a.svg.area().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).y0(function(a){return z.y()(a.y0)}).interpolate(F).tension(G);r&&f.defined(r),b.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),c.transition(d.select("path.area"),z.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(b,d){if(!z.brushOn()&&z.xyTipsOn()){var e=u+"-list",f=b.select("g."+e);f.empty()&&(f=b.append("g").attr("class",e)),d.each(function(b,d){var e=b.values;r&&(e=e.filter(r));var g=f.select("g."+u+"._"+d);g.empty()&&(g=f.append("g").attr("class",u+" _"+d)),j(g);var h=g.selectAll("circle."+v).data(e,c.pluck("x"));h.enter().append("circle").attr("class",v).attr("r",m()).style("fill-opacity",D).style("stroke-opacity",E).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}),h.attr("cx",function(a){return c.utils.safeNumber(z.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(z.y()(a.y+a.y0))}).attr("fill",z.getColor).call(p,b),h.exit().remove()})}}function j(a){var b=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+x).empty()?a.append("path").attr("class",x):a.select("path."+x);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",B),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=z._yAxisX()-z.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+z.yAxisHeight()+"L"+c+" "+d;b.select("path."+w).style("display","").attr("d",f),b.select("path."+x).style("display","").attr("d",g)}function m(){return C||B}function n(a){a.style("fill-opacity",D).style("stroke-opacity",E).attr("r",m())}function o(a){a.select("path."+w).style("display","none"),a.select("path."+x).style("display","none")}function p(a,b){z.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(c.pluck("data",z.title(b.name))))}function q(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")===b&&e.attr("stroke-dasharray")===(c instanceof Array?c.join(","):null)||e.attr("fill")===b;return d?!f:f}}var r,s,t=5,u="dc-tooltip",v="dot",w="yRef",x="xRef",y=1e-6,z=c.stackMixin(c.coordinateGridMixin({})),A=!1,B=t,C=null,D=y,E=y,F="linear",G=.7,H=!0;return z.transitionDuration(500),z._rangeBandPadding(1),z.plotData=function(){var a=z.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(z.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},z.interpolate=function(a){return arguments.length?(F=a,z):F},z.tension=function(a){return arguments.length?(G=a,z):G},z.defined=function(a){return arguments.length?(r=a,z):r},z.dashStyle=function(a){return arguments.length?(s=a,z):s},z.renderArea=function(a){return arguments.length?(A=a,z):A},z.xyTipsOn=function(a){return arguments.length?(H=a,z):H},z.dotRadius=function(a){return arguments.length?(B=a,z):B},z.renderDataPoints=function(a){return arguments.length?(a?(D=a.fillOpacity||.8,E=a.strokeOpacity||.8,C=a.radius||2):(D=y,E=y,C=null),z):{fillOpacity:D,strokeOpacity:E,radius:C}},z.legendHighlight=function(a){z.isLegendableHidden(a)||z.g().selectAll("path.line, path.area").classed("highlight",q(a.color,a.dashstyle)).classed("fadeout",q(a.color,a.dashstyle,!0))},z.legendReset=function(){z.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},c.override(z,"legendables",function(){var a=z._legendables();return s?a.map(function(a){return a.dashstyle=s,a}):a}),z.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseMixin({}),g={some:"",all:""};return f.html=function(a){return arguments.length?(a.all&&(g.all=a.all),a.some&&(g.some=a.some),f):g},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f._doRender=function(){var a=f.dimension().size(),b=f.group().value(),c=e(a),d=e(b);return a===b&&""!==g.all?f.root().html(g.all.replace("%total-count",c).replace("%filter-count",d)):""!==g.some?f.root().html(g.some.replace("%total-count",c).replace("%filter-count",d)):(f.selectAll(".total-count").text(c),f.selectAll(".filter-count").text(d)),f},f._doRedraw=function(){return f._doRender()},f.anchor(b,d)},c.dataTable=function(b,d){function e(){var a=!0;if(o.forEach(function(b){a&="function"==typeof b}),!a){m.selectAll("th").remove();var b=m.root().selectAll("th").data(o),c=b.enter().append("th");c.attr("class",l).html(function(a){return m._doColumnHeaderFormat(a)})}var d=m.root().selectAll("tbody").data(f(),function(a){return m.keyAccessor()(a)}),e=d.enter().append("tbody");return e.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",o.length).html(function(a){return m.keyAccessor()(a)}),d.exit().remove(),e}function f(){var b;return b=q===a.ascending?m.dimension().bottom(n):m.dimension().top(n),a.nest().key(m.group()).sortKeys(q).entries(b.sort(function(a,b){return q(p(a),p(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return o.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(function(b){return m._doColumnValueFormat(a,b)})}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l="dc-table-head",m=c.baseMixin({}),n=25,o=[],p=function(a){return a},q=a.ascending;return m._doRender=function(){return m.selectAll("tbody").remove(),g(e()),m},m._doColumnValueFormat=function(a,b){return"function"==typeof a?a(b):"string"==typeof a?b[a]:a.format(b)},m._doColumnHeaderFormat=function(a){return"function"==typeof a?m._doColumnHeaderFnToString(a):"string"==typeof a?m._doColumnHeaderCapitalize(a):String(a.label)},m._doColumnHeaderCapitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},m._doColumnHeaderFnToString=function(a){var b=String(a),c=b.indexOf("return ");if(c>=0){var d=b.lastIndexOf(";");if(d>=0){b=b.substring(c+7,d);var e=b.indexOf("numberFormat");e>=0&&(b=b.replace("numberFormat",""))}}return b},m._doRedraw=function(){return m._doRender()},m.size=function(a){return arguments.length?(n=a,m):n},m.columns=function(a){return arguments.length?(o=a,m):o},m.sortBy=function(a){return arguments.length?(p=a,m):p},m.order=function(a){return arguments.length?(q=a,m):q},m.anchor(b,d)},c.dataGrid=function(b,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=c.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

    "+l.keyAccessor()(a)+"

    "};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,d)},c.bubbleChart=function(a,b){function d(a){var b=a.enter().append("g");b.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),c.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(b),i._doRenderTitles(b)}function e(a){c.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=c.bubbleMixin(c.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,b)},c.compositeChart=function(b,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return c.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return c.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=c.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),c.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),t=a.scale.linear().domain(b).range([0,G.effectiveWidth()])}H.scale(t)}function f(){var a=s.select("g.axis");e(),a.empty()&&(a=s.append("g").attr("class","axis").attr("transform","translate(0, "+G.effectiveHeight()+")")),c.transition(a,G.transitionDuration()).call(H)}function g(){s.selectAll("g.tick").select("line.grid-line").remove(),s.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-G.effectiveHeight()})}function h(){v=G.data(),f(),g();var a=s.selectAll("g."+D).data(v);i(a),j(a),l(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return D+" _"+b});b.append("rect").attr("width",0),n(b),o(a)}function j(a){a.exit().remove()}function k(){var a=t(0);return a===-(1/0)||a!==a?t(1):a}function l(a){var b,d=v.length;b=C?C:(G.effectiveHeight()-(d+1)*B)/d,y||(x=b/2);var e=a.attr("transform",function(a,c){return"translate(0,"+((c+1)*B+c*b)+")"}).select("rect").attr("height",b).attr("fill",G.getColor).on("click",p).classed("deselected",function(a){return G.hasFilter()?!r(a):!1}).classed("selected",function(a){return G.hasFilter()?r(a):!1});c.transition(e,G.transitionDuration()).attr("width",function(a){return Math.abs(k()-t(G.valueAccessor()(a)))}).attr("transform",q),m(a),o(a)}function m(a){G.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(G.title()))}function n(a){G.renderLabel()&&a.append("text").on("click",p),G.renderTitleLabel()&&a.append("text").attr("class",E).on("click",p)}function o(a){if(G.renderLabel()){var b=a.select("text").attr("x",w).attr("y",x).attr("dy",z).on("click",p).attr("class",function(a,b){return D+" _"+b}).text(function(a){return G.label()(a)});c.transition(b,G.transitionDuration()).attr("transform",q)}if(G.renderTitleLabel()){var d=a.select("."+E).attr("x",G.effectiveWidth()-A).attr("y",x).attr("text-anchor","end").on("click",p).attr("class",function(a,b){return E+" _"+b}).text(function(a){return G.title()(a)});c.transition(d,G.transitionDuration()).attr("transform",q)}}function p(a){G.onClick(a)}function q(a){var b=t(G.cappedValueAccessor(a)),c=k(),d=b>c?c:b;return"translate("+d+",0)"}function r(a){return G.hasFilter(G.cappedKeyAccessor(a))}var s,t,u,v,w=10,x=15,y=!1,z="0.35em",A=2,B=5,C=!1,D="row",E="titlerow",F=!1,G=c.capMixin(c.marginMixin(c.colorMixin(c.baseMixin({})))),H=a.svg.axis().orient("bottom");return G.rowsCap=G.cap,G._doRender=function(){return G.resetSvg(),s=G.svg().append("g").attr("transform","translate("+G.margins().left+","+G.margins().top+")"),h(),G},G.title(function(a){return G.cappedKeyAccessor(a)+": "+G.cappedValueAccessor(a)}),G.label(G.cappedKeyAccessor),G.x=function(a){return arguments.length?(t=a,G):t},G.renderTitleLabel=function(a){return arguments.length?(F=a,G):F},G._doRedraw=function(){return h(),G},G.xAxis=function(){return H},G.fixedBarHeight=function(a){return arguments.length?(C=a,G):C},G.gap=function(a){return arguments.length?(B=a,G):B},G.elasticX=function(a){return arguments.length?(u=a,G):u},G.labelOffsetX=function(a){return arguments.length?(w=a,G):w},G.labelOffsetY=function(a){return arguments.length?(x=a,y=!0,G):x},G.titleLabelOffsetX=function(a){return arguments.length?(A=a,G):A},G.anchor(b,d)},c.legend=function(){function a(){return j+i}var b,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70,n=!1;return f.parent=function(a){return arguments.length?(b=a,f):b},f.render=function(){b.svg().select("g.dc-legend").remove(),d=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=b.legendables(),o=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)}).on("click",function(a){a.chart.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(c.pluck("dashstyle"))?o.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",c.pluck("dashstyle")).attr("stroke",c.pluck("color")):o.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),o.append("text").text(c.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var p=0,q=0;o.attr("transform",function(b,c){if(k){var d="translate("+p+","+q*a()+")",e=n===!0?this.getBBox().width+j:m;return p+e>=l?(++q,p=0):p+=e,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f.autoItemWidth=function(a){return arguments.length?(n=a,f):n},f},c.scatterPlot=function(b,d){function e(b,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return b(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),c.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var b=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});c.transition(b,g.transitionDuration()).attr("d",h)}var g=c.coordinateGridMixin({}),h=a.svg.symbol(),i=function(a){return a.value},j=g.keyAccessor();g.keyAccessor(function(a){return j(a)[0]}),g.valueAccessor(function(a){return j(a)[1]}),g.colorAccessor(function(){return g._groupName});var k=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},l=3,m=5,n=0;return h.size(function(a){return i(a)?this.filtered?Math.pow(m,2):Math.pow(l,2):n}),c.override(g,"_filter",function(a){return arguments.length?g.__filter(c.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",k),c.transition(a,g.transitionDuration()).attr("opacity",function(a){return i(a)?1:0}).attr("fill",g.getColor).attr("transform",k).attr("d",h),c.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.existenceAccessor=function(a){return arguments.length?(i=a,this):i},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(l=a,g):l},g.highlightedSize=function(a){return arguments.length?(m=a,g):m},g.hiddenSize=function(a){return arguments.length?(n=a,g):n},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")===b.color},m),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")===b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))c.events.trigger(function(){g.filter(null),g.redrawGroup()}),f(!1);else{var b=c.filters.RangedTwoDimensionalFilter(a);c.events.trigger(function(){g.filter(null),g.filter(b),g.redrawGroup()},c.constants.EVENT_DELAY),f(b)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(b,d)},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseMixin({}),h={one:"",some:"",none:""};return g._mandatoryAttributes(["group"]),g.html=function(a){return arguments.length?(a.none?h.none=a.none:a.one?h.none=a.one:a.some&&(h.none=a.some),a.one?h.one=a.one:a.some&&(h.one=a.some),a.some?h.some=a.some:a.one&&(h.some=a.one),g):h},g.value=function(){return g.data()},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250), +g._doRender=function(){var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);return this.lastValue=b,function(a){var d=null,e=g.formatNumber()(c(a));0===b&&""!==h.none?d=h.none:1===b&&""!==h.one?d=h.one:""!==h.some&&(d=h.some),this.innerHTML=d?d.replace("%number",e):e}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},c.heatMap=function(b,d){function e(a,b){var d=p.selectAll(".box-group").filter(function(c){return c.key[a]===b}),e=d.filter(function(a){return!p.hasFilter(a.key)});c.events.trigger(function(){e.empty()?d.each(function(a){p.filter(a.key)}):e.each(function(a){p.filter(a.key)}),p.redrawGroup()})}var f,g,h,i=6.75,j=a.ascending,k=a.ascending,l=a.scale.ordinal(),m=a.scale.ordinal(),n=i,o=i,p=c.colorMixin(c.marginMixin(c.baseMixin({})));p._mandatoryAttributes(["group"]),p.title(p.colorAccessor());var q=function(a){return a},r=function(a){return a};p.colsLabel=function(a){return arguments.length?(q=a,p):q},p.rowsLabel=function(a){return arguments.length?(r=a,p):r};var s=function(a){e(0,a)},t=function(a){e(1,a)},u=function(a){var b=a.key;c.events.trigger(function(){p.filter(b),p.redrawGroup()})};return c.override(p,"filter",function(a){return arguments.length?p._filter(c.filters.TwoDimensionalFilter(a)):p._filter()}),p.rows=function(a){return arguments.length?(h=a,p):h},p.rowOrdering=function(a){return arguments.length?(k=a,p):k},p.cols=function(a){return arguments.length?(g=a,p):g},p.colOrdering=function(a){return arguments.length?(j=a,p):j},p._doRender=function(){return p.resetSvg(),f=p.svg().append("g").attr("class","heatmap").attr("transform","translate("+p.margins().left+","+p.margins().top+")"),p._doRedraw()},p._doRedraw=function(){var a=p.data(),b=p.rows()||a.map(p.valueAccessor()),d=p.cols()||a.map(p.keyAccessor());k&&(b=b.sort(k)),j&&(d=d.sort(j)),b=m.domain(b),d=l.domain(d);var e=b.domain().length,g=d.domain().length,h=Math.floor(p.effectiveWidth()/g),i=Math.floor(p.effectiveHeight()/e);d.rangeRoundBands([0,p.effectiveWidth()]),b.rangeRoundBands([p.effectiveHeight(),0]);var q=f.selectAll("g.box-group").data(p.data(),function(a,b){return p.keyAccessor()(a,b)+"\x00"+p.valueAccessor()(a,b)}),r=q.enter().append("g").attr("class","box-group");r.append("rect").attr("class","heat-box").attr("fill","white").on("click",p.boxOnClick()),p.renderTitle()&&(r.append("title"),q.selectAll("title").text(p.title())),c.transition(q.selectAll("rect"),p.transitionDuration()).attr("x",function(a,b){return d(p.keyAccessor()(a,b))}).attr("y",function(a,c){return b(p.valueAccessor()(a,c))}).attr("rx",n).attr("ry",o).attr("fill",p.getColor).attr("width",h).attr("height",i),q.exit().remove();var s=f.selectAll("g.cols");s.empty()&&(s=f.append("g").attr("class","cols axis"));var t=s.selectAll("text").data(d.domain());t.enter().append("text").attr("x",function(a){return d(a)+h/2}).style("text-anchor","middle").attr("y",p.effectiveHeight()).attr("dy",12).on("click",p.xAxisOnClick()).text(p.colsLabel()),c.transition(t,p.transitionDuration()).text(p.colsLabel()).attr("x",function(a){return d(a)+h/2}),t.exit().remove();var u=f.selectAll("g.rows");u.empty()&&(u=f.append("g").attr("class","rows axis"));var v=u.selectAll("text").data(b.domain());return v.enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",p.yAxisOnClick()).text(p.rowsLabel()),c.transition(v,p.transitionDuration()).text(p.rowsLabel()).attr("y",function(a){return b(a)+i/2}),v.exit().remove(),p.selectAll("g.box-group").each(p.hasFilter()?function(a){p.isSelectedNode(a)?p.highlightSelected(this):p.fadeDeselected(this)}:function(){p.resetHighlight(this)}),p},p.boxOnClick=function(a){return arguments.length?(u=a,p):u},p.xAxisOnClick=function(a){return arguments.length?(s=a,p):s},p.yAxisOnClick=function(a){return arguments.length?(t=a,p):t},p.xBorderRadius=function(a){return arguments.length?(n=a,p):n},p.yBorderRadius=function(a){return arguments.length?(o=a,p):o},p.isSelectedNode=function(a){return p.hasFilter(a.key)},p.anchor(b,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null===b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),c.boxPlot=function(b,d){function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}function f(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function g(b){c.transition(b,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function h(a){a.exit().remove().call(m)}var i=c.coordinateGridMixin({}),j=1.5,k=e,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(c.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+", 0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});f(b),g(b),h(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var b=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return c.utils.subtract(b,i.yAxisPadding())},i.yAxisMax=function(){var b=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return c.utils.add(b,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(b,d)},c.abstractBubbleChart=c.bubbleMixin,c.baseChart=c.baseMixin,c.capped=c.capMixin,c.colorChart=c.colorMixin,c.coordinateGridChart=c.coordinateGridMixin,c.marginable=c.marginMixin,c.stackableChart=c.stackMixin,c.d3=a,c.crossfilter=b,c}if("function"==typeof define&&define.amd)define(["d3","crossfilter"],a);else if("object"==typeof module&&module.exports){var b=require("d3"),c=require("crossfilter");"function"!=typeof c&&(c=c.crossfilter),module.exports=a(b,c)}else this.dc=a(d3,crossfilter)}(); //# sourceMappingURL=dc.min.js.map \ No newline at end of file diff --git a/web/js/dc.min.js.map b/web/js/dc.min.js.map index fb7ad0083..8ea23f719 100644 --- a/web/js/dc.min.js.map +++ b/web/js/dc.min.js.map @@ -1 +1 @@ -{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dc_flag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","removeFilter","_filters","applyFilters","_invokeFilteredListener","addFilter","resetFilters","dimension","fs","_filterHandler","runAllRenderlets","_renderlets","_dimension","_group","_anchor","_root","_orderSort","_legend","_minWidth","_default_width","getBoundingClientRect","_width","_minHeight","_default_height","_height","_keyAccessor","_valueAccessor","_label","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","NULL_LISTENER","_listeners","preRender","postRender","preRedraw","postRedraw","filtered","zoomed","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","crossfilter","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","forEach","result","_doRender","_activateRenderlets","event","each","_doRedraw","redrawGroup","_invokeZoomedListener","hasFilter","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","label","renderLabel","title","renderTitle","legend","options","opts","on","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","prepareXAxis","elasticX","isOrdinal","_x","xAxisMin","xAxisMax","_ordinalXDomain","rangeBands","xAxisLength","_rangeBandPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","_refocused","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","zoomHandler","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","reduce","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","arc","buildArcs","pie","pieLayout","pieData","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","isSelectedSlice","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","dataTable","renderGroups","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","_columns","html","entries","_size","nest","sortKeys","_order","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","COLUMN_CSS_CLASS","ascending","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","_html","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","children_changed","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","_fixedBarHeight","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_labelOffsetY","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","itemEnter","some","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemHeight","horizontal","legendWidth","itemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","textContent","formatNumber","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","uniq","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_xBorderRadius","_yBorderRadius","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowValues","cols","colValues","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","xAxisOnClick","gRows","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","default_whiskers_iqr","k","q1","q3","iqr","_whisker_iqr_factor","_whiskers_iqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_isChild","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","label","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"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"} \ No newline at end of file From a2e508d659e36106418534ff4541e1cdc3bc7e19 Mon Sep 17 00:00:00 2001 From: Antonio Grass Date: Tue, 28 Apr 2015 09:49:51 -0300 Subject: [PATCH 11/11] Revert "sync with origin" This reverts commit 897837d5346cf3a2e180f2ba82ac79b018043026. --- CONTRIBUTING.md | 11 +- Changelog.md | 4 - Gruntfile.js | 141 +++--- LICENSE_BANNER | 18 - dc.js | 18 +- dc.js.map | 1 - dc.min.js | 21 +- dc.min.js.map | 2 +- package.json | 30 +- spec/composite-chart-spec.js | 2 +- spec/core-spec.js | 14 - src/banner.js | 18 + src/base-mixin.js | 9 - src/core.js | 4 +- web/docs/index.html | 855 ++++++++++++++++------------------- web/js/dc.js | 15 +- web/js/dc.js.map | 36 +- web/js/dc.min.js | 26 +- web/js/dc.min.js.map | 2 +- 19 files changed, 551 insertions(+), 676 deletions(-) delete mode 100644 LICENSE_BANNER delete mode 100644 dc.js.map diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5f5abc035..f46cdc232 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,18 +10,17 @@ ## Pull Request Guidelines -* Fork the repository. -* As with all pull requests, put your changes in a branch. For contributions that change the dc.js API, create your branch off of `develop`. If your contribution does not change the API, branch off of `master` instead. +* Fork the repository * Make changes to the files in `src/` not dc.js * Add tests to `spec/`. Feel free to create a new file if needed. * Run `grunt server` and go to http://localhost:8888/spec to develop your tests. * Run `grunt lint` to confirm that your code meets the dc.js style guidelines. * Run `grunt test` to confirm that all tests will pass on phantomjs. * Commit your changes to `src/*` and `spec/*` but not any build artifacts. (Build artifacts include `dc.*js*`, `web/docs/*`, `web/js/*`) -* Submit a pull request. -* If you merge `develop` or `master` into your patchset, please rebase against develop. (It's okay to rewrite history for PRs, because these branches are temporary and it's unlikely that anyone is tracking your feature branch.) -* The DC maintainer team will review and build the artifacts when merging. -* If you continue making changes to your fork of `dc.js`, create a separate branch for each pull request and keep the changes separate. +* Submit a pull request +* If you merge master or another branch into your patchset, please rebase against master. +* The DC maintainer team will review and build the artifacts when merging +* If you continue making changes to your fork of `dc.js`, create a branch for each pull request #### Coding Conventions diff --git a/Changelog.md b/Changelog.md index 47c4f80d1..fdc62dd5e 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,10 +3,6 @@ * Front page stable version automatically read from GitHub, by Enrico Spinielli ([#865](https://github.com/dc-js/dc.js/pull/865)) # 2.0 Series -## 2.0.0 beta 8 - * simplify Gruntfile and further update dependencies, by Matt Traynham ([#849](https://github.com/dc-js/dc.js/pull/849)) - * setting the chart group should automatically put the chart in that group, by Matt Traynham ([#834](https://github.com/dc-js/dc.js/pull/834) / [#775](https://github.com/dc-js/dc.js/issues/775)) - ## 2.0.0 beta 7 * fixes a bug introduced in the last release where the ordering function was defined inconsistently, causing the default ordering function to be incorrect and causing crashes with largish data in crossfilter's quicksort on IE. ([#909](https://github.com/dc-js/dc.js/issues/909)) diff --git a/Gruntfile.js b/Gruntfile.js index 18c8ffefe..2f356dba1 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,32 +1,21 @@ module.exports = function (grunt) { 'use strict'; - require('load-grunt-tasks')(grunt, { - pattern: ['grunt-*', '!grunt-lib-phantomjs', '!grunt-template-jasmine-istanbul'] - }); - require('time-grunt')(grunt); + var jsFiles = module.exports.jsFiles; - var config = { - src: 'src', - spec: 'spec', - web: 'web', - pkg: require('./package.json'), - banner: grunt.file.read('./LICENSE_BANNER'), - jsFiles: module.exports.jsFiles + var output = { + js: '<%= pkg.name %>.js', + jsmin: '<%= pkg.name %>.min.js', + map: '<%= pkg.name %>.min.js.map' }; grunt.initConfig({ - conf: config, + pkg: grunt.file.readJSON('package.json'), concat: { - options : { - process: true, - sourceMap: true, - banner : '<%= conf.banner %>' - }, js: { - src: '<%= conf.jsFiles %>', - dest: '<%= conf.pkg.name %>.js' + src: jsFiles, + dest: output.js } }, uglify: { @@ -34,23 +23,28 @@ module.exports = function (grunt) { options: { mangle: true, compress: true, - sourceMap: true, - banner : '<%= conf.banner %>' + sourceMap: output.map }, - src: '<%= conf.pkg.name %>.js', - dest: '<%= conf.pkg.name %>.min.js' + src: output.js, + dest: output.jsmin + } + }, + sed: { + version: { + pattern: '%VERSION%', + replacement: '<%= pkg.version %>', + path: [output.js, output.jsmin] } }, jscs: { old: { - src: ['<%= conf.spec %>/**/*.js'], + src: ['spec/**/*.js'], options: { validateIndentation: 4 } }, source: { - src: ['<%= conf.src %>/**/*.js', '!<%= conf.src %>/{banner,footer}.js', 'Gruntfile.js', - '<%= conf.web %>/stock.js'], + src: ['src/**/*.js', '!src/{banner,footer}.js', 'Gruntfile.js', 'web/stock.js'], options: { config: '.jscsrc' } @@ -58,32 +52,28 @@ module.exports = function (grunt) { }, jshint: { source: { - src: ['<%= conf.src %>/**/*.js', 'Gruntfile.js', '<%= conf.web %>/stock.js'], + src: ['src/**/*.js', 'Gruntfile.js', 'web/stock.js'], options: { jshintrc: '.jshintrc', - ignores: ['<%= conf.src %>/banner.js', '<%= conf.src %>/footer.js'] + ignores: ['src/banner.js', 'src/footer.js'] } } }, watch: { scripts: { - files: ['<%= conf.src %>/**/*.js'], + files: ['src/**/*.js'], tasks: ['build', 'copy'] }, jasmineRunner: { - files: ['<%= conf.spec %>/**/*.js'], + files: ['spec/**/*.js'], tasks: ['jasmine:specs:build'] }, tests: { - files: ['<%= conf.src %>/**/*.js', '<%= conf.spec %>/**/*.js'], + files: ['src/**/*.js', 'spec/**/*.js'], tasks: ['test'] }, reload: { - files: ['<%= conf.pkg.name %>.js', - '<%= conf.pkg.name %>css', - '<%= conf.web %>/js/<%= conf.pkg.name %>.js', - '<%= conf.web %>/css/<%= conf.pkg.name %>.css', - '<%= conf.pkg.name %>.min.js'], + files: ['dc.js', 'dc.css', 'web/js/dc.js', 'web/css/dc.css', 'dc.min.js'], options: { livereload: true } @@ -102,17 +92,17 @@ module.exports = function (grunt) { options: { display: 'short', summary: true, - specs: '<%= conf.spec %>/*-spec.js', - helpers: '<%= conf.spec %>/helpers/*.js', + specs: 'spec/*-spec.js', + helpers: 'spec/helpers/*.js', version: '2.0.0', - outfile: '<%= conf.spec %>/index.html', + outfile: 'spec/index.html', keepRunner: true }, src: [ - '<%= conf.web %>/js/d3.js', - '<%= conf.web %>/js/crossfilter.js', - '<%= conf.web %>/js/colorbrewer.js', - '<%= conf.pkg.name %>.js' + 'web/js/d3.js', + 'web/js/crossfilter.js', + 'web/js/colorbrewer.js', + 'dc.js' ] }, coverage:{ @@ -139,10 +129,10 @@ module.exports = function (grunt) { options: { display: 'short', summary: true, - specs: '<%= conf.spec %>/*-spec.js', - helpers: '<%= conf.spec %>/helpers/*.js', + specs: 'spec/*-spec.js', + helpers: 'spec/helpers/*.js', version: '2.0.0', - outfile: '<%= conf.spec %>/index-browserify.html', + outfile: 'spec/index-browserify.html', keepRunner: true }, src: [ @@ -174,14 +164,14 @@ module.exports = function (grunt) { platform: 'WIN8' } ], - testname: '<%= conf.pkg.name %>.js' + testname: 'dc.js' } } }, emu: { api: { - src: '<%= conf.pkg.name %>.js', - dest: '<%= conf.web %>/docs/api-latest.md' + src: output.js, + dest: 'web/docs/api-latest.md' } }, toc: { @@ -193,19 +183,19 @@ module.exports = function (grunt) { markdown: { html: { src: '<%= emu.api.dest %>', - dest: '<%= conf.web %>/docs/index.html' + dest: 'web/docs/index.html' }, options: {markdownOptions: {highlight: 'manual'}} }, docco: { options: { - dst: '<%= conf.web %>/docs', - basepath:'<%= conf.web %>' + dst: 'web/docs', + basepath:'web' }, howto: { files: [ { - src: ['<%= conf.web %>/stock.js'] + src: ['web/stock.js'] } ] } @@ -213,20 +203,18 @@ module.exports = function (grunt) { copy: { 'dc-to-gh': { files: [ - {expand: true, flatten: true, src: '<%= conf.pkg.name %>.css', dest: '<%= conf.web %>/css/'}, + {expand: true, flatten: true, src: 'dc.css', dest: 'web/css/'}, { expand: true, flatten: true, src: [ - '<%= conf.pkg.name %>.js', - '<%= conf.pkg.name %>.js.map', - '<%= conf.pkg.name %>.min.js', - '<%= conf.pkg.name %>.min.js.map', + output.js, + output.js + '.map', 'node_modules/d3/d3.js', 'node_modules/crossfilter/crossfilter.js', 'test/env-data.js' ], - dest: '<%= conf.web %>/js/' + dest: 'web/js/' } ] } @@ -259,7 +247,7 @@ module.exports = function (grunt) { '

    An attempt to present a simple example of each chart type.', '', 'Contributions welcome.

    ', - '

    Source ', + '

    Source ', 'here.

    ', body, '' @@ -268,14 +256,14 @@ module.exports = function (grunt) { absolute: true }, files: [ - {dest: '<%= conf.web %>/examples/index.html', src: ['<%= conf.web %>/examples/*.html']} + {dest: 'web/examples/index.html', src: ['web/examples/*.html']} ] } }, 'gh-pages': { options: { - base: '<%= conf.web %>', + base: 'web', message: 'Synced from from master branch.' }, src: ['**'] @@ -310,17 +298,36 @@ module.exports = function (grunt) { }, browserify: { dev: { - src: '<%= conf.pkg.name %>.js', + src: 'dc.js', dest: 'bundle.js', options: { browserifyOptions: { standalone: 'dc' } } - } + }, } }); + // These plugins provide necessary tasks. + grunt.loadNpmTasks('grunt-contrib-concat'); + grunt.loadNpmTasks('grunt-contrib-connect'); + grunt.loadNpmTasks('grunt-contrib-copy'); + grunt.loadNpmTasks('grunt-contrib-jasmine'); + grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-contrib-watch'); + grunt.loadNpmTasks('grunt-docco2'); + grunt.loadNpmTasks('grunt-gh-pages'); + grunt.loadNpmTasks('grunt-jscs'); + grunt.loadNpmTasks('grunt-saucelabs'); + grunt.loadNpmTasks('grunt-markdown'); + grunt.loadNpmTasks('grunt-sed'); + grunt.loadNpmTasks('grunt-shell'); + grunt.loadNpmTasks('grunt-debug-task'); + grunt.loadNpmTasks('grunt-fileindex'); + grunt.loadNpmTasks('grunt-browserify'); + // custom tasks grunt.registerMultiTask('emu', 'Documentation extraction by emu.', function () { var emu = require('emu'), @@ -369,11 +376,11 @@ module.exports = function (grunt) { }); // task aliases - grunt.registerTask('build', ['concat', 'uglify']); + grunt.registerTask('build', ['concat', 'uglify', 'sed']); grunt.registerTask('docs', ['build', 'copy', 'emu', 'toc', 'markdown', 'docco']); grunt.registerTask('web', ['docs', 'gh-pages']); grunt.registerTask('server', ['docs', 'fileindex', 'jasmine:specs:build', 'connect:server', 'watch:jasmine']); - grunt.registerTask('test', ['build', 'jasmine:specs', 'shell:hooks']); + grunt.registerTask('test', ['build', 'jasmine:specs', 'test-stock-example', 'shell:hooks']); grunt.registerTask('test-browserify', ['build', 'browserify', 'jasmine:browserify']); grunt.registerTask('coverage', ['build', 'jasmine:coverage']); grunt.registerTask('ci', ['test', 'jasmine:specs:build', 'connect:server', 'saucelabs-jasmine']); @@ -383,7 +390,7 @@ module.exports = function (grunt) { }; module.exports.jsFiles = [ - 'src/banner.js', // NOTE: keep this first + 'src/banner.js', 'src/core.js', 'src/errors.js', 'src/utils.js', diff --git a/LICENSE_BANNER b/LICENSE_BANNER deleted file mode 100644 index 8e7eb0981..000000000 --- a/LICENSE_BANNER +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * dc <%= conf.pkg.version %> - * http://dc-js.github.io/dc.js/ - * Copyright 2012-2015 Nick Zhu & the dc.js Developers - * https://github.com/dc-js/dc.js/blob/master/AUTHORS - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ diff --git a/dc.js b/dc.js index 05d973a40..b05e80358 100644 --- a/dc.js +++ b/dc.js @@ -1,8 +1,7 @@ /*! * dc 2.1.0-dev * http://dc-js.github.io/dc.js/ - * Copyright 2012-2015 Nick Zhu & the dc.js Developers - * https://github.com/dc-js/dc.js/blob/master/AUTHORS + * Copyright 2012 Nick Zhu and other contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + (function() { function _dc(d3, crossfilter) { 'use strict'; @@ -663,7 +663,6 @@ dc.baseMixin = function (_chart) { var _anchor; var _root; var _svg; - var _isChild; var _minWidth = 200; var _defaultWidth = function (element) { @@ -951,13 +950,11 @@ dc.baseMixin = function (_chart) { if (dc.instanceOfChart(a)) { _anchor = a.anchor(); _root = a.root(); - _isChild = true; } else { _anchor = a; _root = d3.select(_anchor); _root.classed(dc.constants.CHART_CLASS, true); dc.registerChart(_chart, chartGroup); - _isChild = false; } _chartGroup = chartGroup; return _chart; @@ -1683,13 +1680,7 @@ dc.baseMixin = function (_chart) { if (!arguments.length) { return _chartGroup; } - if (!_isChild) { - dc.deregisterChart(_chart, _chartGroup); - } _chartGroup = _; - if (!_isChild) { - dc.registerChart(_chart, _chartGroup); - } return _chart; }; @@ -4155,8 +4146,7 @@ dc.pieChart = function (parent, chartGroup) { _chart.legendables = function () { return _chart.data().map(function (d, i) { - var legendable = { name: _chart.legendLabelAccessor().call(this, d, i), - data: d.value, others: d.others, chart:_chart }; + var legendable = {name: _chart.legendLabelAccessor().call(this, d, i), data: d.value, others: d.others, chart:_chart}; legendable.color = _chart.getColor(d, i); return legendable; }); @@ -8786,5 +8776,3 @@ return dc;} } } )(); - -//# sourceMappingURL=dc.js.map \ No newline at end of file diff --git a/dc.js.map b/dc.js.map deleted file mode 100644 index 8eff7fac4..000000000 --- a/dc.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["src/banner.js","src/core.js","src/errors.js","src/utils.js","src/logger.js","src/events.js","src/filters.js","src/base-mixin.js","src/margin-mixin.js","src/color-mixin.js","src/coordinate-grid-mixin.js","src/stack-mixin.js","src/cap-mixin.js","src/bubble-mixin.js","src/pie-chart.js","src/bar-chart.js","src/line-chart.js","src/data-count.js","src/data-table.js","src/data-grid.js","src/bubble-chart.js","src/composite-chart.js","src/series-chart.js","src/geo-choropleth-chart.js","src/bubble-overlay.js","src/row-chart.js","src/legend.js","src/scatter-plot.js","src/number-display.js","src/heatmap.js","src/d3.box.js","src/box-plot.js","src/footer.js"],"names":[],"mappings":"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","file":"dc.js","sourcesContent":["(function() { function _dc(d3, crossfilter) {\n'use strict';\n","/**\n#### Version 2.1.0-dev\nThe entire dc.js library is scoped under the **dc** name space. It does not introduce anything else\ninto the global name space.\n#### Function Chaining\nMost dc functions are designed to allow function chaining, meaning they return the current chart\ninstance whenever it is appropriate. This way chart configuration can be written in the following\nstyle:\n```js\nchart.width(300)\n .height(300)\n .filter('sunday')\n```\nThe getter forms of functions do not participate in function chaining because they necessarily\nreturn values that are not the chart. (Although some, such as `.svg` and `.xAxis`, return values\nthat are chainable d3 objects.)\n\n**/\n\n/*jshint -W062*/\n/*jshint -W079*/\nvar dc = {\n version: '2.1.0-dev',\n constants: {\n CHART_CLASS: 'dc-chart',\n DEBUG_GROUP_CLASS: 'debug',\n STACK_CLASS: 'stack',\n DESELECTED_CLASS: 'deselected',\n SELECTED_CLASS: 'selected',\n NODE_INDEX_NAME: '__index__',\n GROUP_INDEX_NAME: '__group_index__',\n DEFAULT_CHART_GROUP: '__default_chart_group__',\n EVENT_DELAY: 40,\n NEGLIGIBLE_NUMBER: 1e-10\n },\n _renderlet: null\n};\n\ndc.chartRegistry = function () {\n // chartGroup:string => charts:array\n var _chartMap = {};\n\n function initializeChartGroup(group) {\n if (!group) {\n group = dc.constants.DEFAULT_CHART_GROUP;\n }\n\n if (!_chartMap[group]) {\n _chartMap[group] = [];\n }\n\n return group;\n }\n\n return {\n has: function (chart) {\n for (var e in _chartMap) {\n if (_chartMap[e].indexOf(chart) >= 0) {\n return true;\n }\n }\n return false;\n },\n\n register: function (chart, group) {\n group = initializeChartGroup(group);\n _chartMap[group].push(chart);\n },\n\n deregister: function (chart, group) {\n group = initializeChartGroup(group);\n for (var i = 0; i < _chartMap[group].length; i++) {\n if (_chartMap[group][i].anchorName() === chart.anchorName()) {\n _chartMap[group].splice(i, 1);\n break;\n }\n }\n },\n\n clear: function (group) {\n if (group) {\n delete _chartMap[group];\n } else {\n _chartMap = {};\n }\n },\n\n list: function (group) {\n group = initializeChartGroup(group);\n return _chartMap[group];\n }\n };\n}();\n/*jshint +W062 */\n/*jshint +W079*/\n\ndc.registerChart = function (chart, group) {\n dc.chartRegistry.register(chart, group);\n};\n\ndc.deregisterChart = function (chart, group) {\n dc.chartRegistry.deregister(chart, group);\n};\n\ndc.hasChart = function (chart) {\n return dc.chartRegistry.has(chart);\n};\n\ndc.deregisterAllCharts = function (group) {\n dc.chartRegistry.clear(group);\n};\n\n/**\n## Utilities\n**/\n\n/**\n#### dc.filterAll([chartGroup])\nClear all filters on all charts within the given chart group. If the chart group is not given then\nonly charts that belong to the default chart group will be reset.\n**/\ndc.filterAll = function (group) {\n var charts = dc.chartRegistry.list(group);\n for (var i = 0; i < charts.length; ++i) {\n charts[i].filterAll();\n }\n};\n\n/**\n#### dc.refocusAll([chartGroup])\nReset zoom level / focus on all charts that belong to the given chart group. If the chart group is\nnot given then only charts that belong to the default chart group will be reset.\n**/\ndc.refocusAll = function (group) {\n var charts = dc.chartRegistry.list(group);\n for (var i = 0; i < charts.length; ++i) {\n if (charts[i].focus) {\n charts[i].focus();\n }\n }\n};\n\n/**\n#### dc.renderAll([chartGroup])\nRe-render all charts belong to the given chart group. If the chart group is not given then only\ncharts that belong to the default chart group will be re-rendered.\n**/\ndc.renderAll = function (group) {\n var charts = dc.chartRegistry.list(group);\n for (var i = 0; i < charts.length; ++i) {\n charts[i].render();\n }\n\n if (dc._renderlet !== null) {\n dc._renderlet(group);\n }\n};\n\n/**\n#### dc.redrawAll([chartGroup])\nRedraw all charts belong to the given chart group. If the chart group is not given then only charts\nthat belong to the default chart group will be re-drawn. Redraw is different from re-render since\nwhen redrawing dc tries to update the graphic incrementally, using transitions, instead of starting\nfrom scratch.\n**/\ndc.redrawAll = function (group) {\n var charts = dc.chartRegistry.list(group);\n for (var i = 0; i < charts.length; ++i) {\n charts[i].redraw();\n }\n\n if (dc._renderlet !== null) {\n dc._renderlet(group);\n }\n};\n\n/**\n#### dc.disableTransitions\nIf this boolean is set truthy, all transitions will be disabled, and changes to the charts will happen\nimmediately. Default: false\n**/\ndc.disableTransitions = false;\n\ndc.transition = function (selections, duration, callback) {\n if (duration <= 0 || duration === undefined || dc.disableTransitions) {\n return selections;\n }\n\n var s = selections\n .transition()\n .duration(duration);\n\n if (typeof(callback) === 'function') {\n callback(s);\n }\n\n return s;\n};\n\ndc.units = {};\n\n/**\n#### dc.units.integers\n`dc.units.integers` is the default value for `xUnits` for the [Coordinate Grid\nChart](#coordinate-grid-chart) and should be used when the x values are a sequence of integers.\n\nIt is a function that counts the number of integers in the range supplied in its start and end parameters.\n\n```js\nchart.xUnits(dc.units.integers) // already the default\n```\n\n**/\ndc.units.integers = function (s, e) {\n return Math.abs(e - s);\n};\n\n/**\n#### dc.units.ordinal\nThis argument can be passed to the `xUnits` function of the to specify ordinal units for the x\naxis. Usually this parameter is used in combination with passing `d3.scale.ordinal()` to `.x`.\n\nIt just returns the domain passed to it, which for ordinal charts is an array of all values.\n\n```js\nchart.xUnits(dc.units.ordinal)\n .x(d3.scale.ordinal())\n```\n\n**/\ndc.units.ordinal = function (s, e, domain) {\n return domain;\n};\n\n/**\n#### dc.units.fp.precision(precision)\nThis function generates an argument for the [Coordinate Grid Chart's](#coordinate-grid-chart)\n`xUnits` function specifying that the x values are floating-point numbers with the given\nprecision.\n\nThe returned function determines how many values at the given precision will fit into the range\nsupplied in its start and end parameters.\n\n```js\n// specify values (and ticks) every 0.1 units\nchart.xUnits(dc.units.fp.precision(0.1)\n// there are 500 units between 0.5 and 1 if the precision is 0.001\nvar thousandths = dc.units.fp.precision(0.001);\nthousandths(0.5, 1.0) // returns 500\n```\n**/\ndc.units.fp = {};\ndc.units.fp.precision = function (precision) {\n var _f = function (s, e) {\n var d = Math.abs((e - s) / _f.resolution);\n if (dc.utils.isNegligible(d - Math.floor(d))) {\n return Math.floor(d);\n } else {\n return Math.ceil(d);\n }\n };\n _f.resolution = precision;\n return _f;\n};\n\ndc.round = {};\ndc.round.floor = function (n) {\n return Math.floor(n);\n};\ndc.round.ceil = function (n) {\n return Math.ceil(n);\n};\ndc.round.round = function (n) {\n return Math.round(n);\n};\n\ndc.override = function (obj, functionName, newFunction) {\n var existingFunction = obj[functionName];\n obj['_' + functionName] = existingFunction;\n obj[functionName] = newFunction;\n};\n\ndc.renderlet = function (_) {\n if (!arguments.length) {\n return dc._renderlet;\n }\n dc._renderlet = _;\n return dc;\n};\n\ndc.instanceOfChart = function (o) {\n return o instanceof Object && o.__dcFlag__ && true;\n};\n","dc.errors = {};\n\ndc.errors.Exception = function (msg) {\n var _msg = msg || 'Unexpected internal error';\n\n this.message = _msg;\n\n this.toString = function () {\n return _msg;\n };\n};\n\ndc.errors.InvalidStateException = function () {\n dc.errors.Exception.apply(this, arguments);\n};\n","dc.dateFormat = d3.time.format('%m/%d/%Y');\n\ndc.printers = {};\n\ndc.printers.filters = function (filters) {\n var s = '';\n\n for (var i = 0; i < filters.length; ++i) {\n if (i > 0) {\n s += ', ';\n }\n s += dc.printers.filter(filters[i]);\n }\n\n return s;\n};\n\ndc.printers.filter = function (filter) {\n var s = '';\n\n if (typeof filter !== 'undefined' && filter !== null) {\n if (filter instanceof Array) {\n if (filter.length >= 2) {\n s = '[' + dc.utils.printSingleValue(filter[0]) + ' -> ' + dc.utils.printSingleValue(filter[1]) + ']';\n } else if (filter.length >= 1) {\n s = dc.utils.printSingleValue(filter[0]);\n }\n } else {\n s = dc.utils.printSingleValue(filter);\n }\n }\n\n return s;\n};\n\ndc.pluck = function (n, f) {\n if (!f) {\n return function (d) { return d[n]; };\n }\n return function (d, i) { return f.call(d, d[n], i); };\n};\n\ndc.utils = {};\n\ndc.utils.printSingleValue = function (filter) {\n var s = '' + filter;\n\n if (filter instanceof Date) {\n s = dc.dateFormat(filter);\n } else if (typeof(filter) === 'string') {\n s = filter;\n } else if (dc.utils.isFloat(filter)) {\n s = dc.utils.printSingleValue.fformat(filter);\n } else if (dc.utils.isInteger(filter)) {\n s = Math.round(filter);\n }\n\n return s;\n};\ndc.utils.printSingleValue.fformat = d3.format('.2f');\n\n// FIXME: these assume than any string r is a percentage (whether or not it\n// includes %). They also generate strange results if l is a string.\ndc.utils.add = function (l, r) {\n if (typeof r === 'string') {\n r = r.replace('%', '');\n }\n\n if (l instanceof Date) {\n if (typeof r === 'string') {\n r = +r;\n }\n var d = new Date();\n d.setTime(l.getTime());\n d.setDate(l.getDate() + r);\n return d;\n } else if (typeof r === 'string') {\n var percentage = (+r / 100);\n return l > 0 ? l * (1 + percentage) : l * (1 - percentage);\n } else {\n return l + r;\n }\n};\n\ndc.utils.subtract = function (l, r) {\n if (typeof r === 'string') {\n r = r.replace('%', '');\n }\n\n if (l instanceof Date) {\n if (typeof r === 'string') {\n r = +r;\n }\n var d = new Date();\n d.setTime(l.getTime());\n d.setDate(l.getDate() - r);\n return d;\n } else if (typeof r === 'string') {\n var percentage = (+r / 100);\n return l < 0 ? l * (1 + percentage) : l * (1 - percentage);\n } else {\n return l - r;\n }\n};\n\ndc.utils.isNumber = function (n) {\n return n === +n;\n};\n\ndc.utils.isFloat = function (n) {\n return n === +n && n !== (n | 0);\n};\n\ndc.utils.isInteger = function (n) {\n return n === +n && n === (n | 0);\n};\n\ndc.utils.isNegligible = function (n) {\n return !dc.utils.isNumber(n) || (n < dc.constants.NEGLIGIBLE_NUMBER && n > -dc.constants.NEGLIGIBLE_NUMBER);\n};\n\ndc.utils.clamp = function (val, min, max) {\n return val < min ? min : (val > max ? max : val);\n};\n\nvar _idCounter = 0;\ndc.utils.uniqueId = function () {\n return ++_idCounter;\n};\n\ndc.utils.nameToId = function (name) {\n return name.toLowerCase().replace(/[\\s]/g, '_').replace(/[\\.']/g, '');\n};\n\ndc.utils.appendOrSelect = function (parent, selector, tag) {\n tag = tag || selector;\n var element = parent.select(selector);\n if (element.empty()) {\n element = parent.append(tag);\n }\n return element;\n};\n\ndc.utils.safeNumber = function (n) { return dc.utils.isNumber(+n) ? +n : 0;};\n","dc.logger = {};\n\ndc.logger.enableDebugLog = false;\n\ndc.logger.warn = function (msg) {\n if (console) {\n if (console.warn) {\n console.warn(msg);\n } else if (console.log) {\n console.log(msg);\n }\n }\n\n return dc.logger;\n};\n\ndc.logger.debug = function (msg) {\n if (dc.logger.enableDebugLog && console) {\n if (console.debug) {\n console.debug(msg);\n } else if (console.log) {\n console.log(msg);\n }\n }\n\n return dc.logger;\n};\n\ndc.logger.deprecate = function (fn, msg) {\n // Allow logging of deprecation\n var warned = false;\n function deprecated() {\n if (!warned) {\n dc.logger.warn(msg);\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n};\n","dc.events = {\n current: null\n};\n\n/**\n#### dc.events.trigger(function[, delay])\nThis function triggers a throttled event function with a specified delay (in milli-seconds). Events\nthat are triggered repetitively due to user interaction such brush dragging might flood the library\nand invoke more renders than can be executed in time. Using this function to wrap your event\nfunction allows the library to smooth out the rendering by throttling events and only responding to\nthe most recent event.\n\n```js\n chart.renderlet(function(chart){\n // smooth the rendering through event throttling\n dc.events.trigger(function(){\n // focus some other chart to the range selected by user on this chart\n someOtherChart.focus(chart.filter());\n });\n })\n```\n**/\ndc.events.trigger = function (closure, delay) {\n if (!delay) {\n closure();\n return;\n }\n\n dc.events.current = closure;\n\n setTimeout(function () {\n if (closure === dc.events.current) {\n closure();\n }\n }, delay);\n};\n","dc.filters = {};\n\n/**\n## Filters\nThe dc.js filters are functions which are passed into crossfilter to chose which records will be\naccumulated to produce values for the charts. In the crossfilter model, any filters applied on one\ndimension will affect all the other dimensions but not that one. dc always applies a filter\nfunction to the dimension; the function combines multiple filters and if any of them accept a\nrecord, it is filtered in.\n\nThese filter constructors are used as appropriate by the various charts to implement brushing. We\nmention below which chart uses which filter. In some cases, many instances of a filter will be added.\n\n**/\n\n/**\n#### dc.filters.RangedFilter(low, high)\n RangedFilter is a filter which accepts keys between `low` and `high`. It is used to implement X\n axis brushing for the [coordinate grid charts](#coordinate-grid-mixin).\n**/\ndc.filters.RangedFilter = function (low, high) {\n var range = new Array(low, high);\n range.isFiltered = function (value) {\n return value >= this[0] && value < this[1];\n };\n\n return range;\n};\n\n/**\n#### dc.filters.TwoDimensionalFilter(array)\n TwoDimensionalFilter is a filter which accepts a single two-dimensional value. It is used by the\n [heat map chart](#heat-map) to include particular cells as they are clicked. (Rows and columns are\n filtered by filtering all the cells in the row or column.)\n**/\ndc.filters.TwoDimensionalFilter = function (array) {\n if (array === null) { return null; }\n\n var filter = array;\n filter.isFiltered = function (value) {\n return value.length && value.length === filter.length &&\n value[0] === filter[0] && value[1] === filter[1];\n };\n\n return filter;\n};\n\n/**\n#### dc.filters.RangedTwoDimensionalFilter(array)\n The RangedTwoDimensionalFilter allows filtering all values which fit within a rectangular\n region. It is used by the [scatter plot](#scatter-plot) to implement rectangular brushing.\n\n It takes two two-dimensional points in the form `[[x1,y1],[x2,y2]]`, and normalizes them so that\n `x1 <= x2` and `y1 <- y2`. It then returns a filter which accepts any points which are in the\n rectangular range including the lower values but excluding the higher values.\n\n If an array of two values are given to the RangedTwoDimensionalFilter, it interprets the values as\n two x coordinates `x1` and `x2` and returns a filter which accepts any points for which `x1 <= x <\n x2`.\n **/\ndc.filters.RangedTwoDimensionalFilter = function (array) {\n if (array === null) { return null; }\n\n var filter = array;\n var fromBottomLeft;\n\n if (filter[0] instanceof Array) {\n fromBottomLeft = [\n [Math.min(array[0][0], array[1][0]), Math.min(array[0][1], array[1][1])],\n [Math.max(array[0][0], array[1][0]), Math.max(array[0][1], array[1][1])]\n ];\n } else {\n fromBottomLeft = [[array[0], -Infinity], [array[1], Infinity]];\n }\n\n filter.isFiltered = function (value) {\n var x, y;\n\n if (value instanceof Array) {\n if (value.length !== 2) {\n return false;\n }\n x = value[0];\n y = value[1];\n } else {\n x = value;\n y = fromBottomLeft[0][1];\n }\n\n return x >= fromBottomLeft[0][0] && x < fromBottomLeft[1][0] &&\n y >= fromBottomLeft[0][1] && y < fromBottomLeft[1][1];\n };\n\n return filter;\n};\n","/**\n## Base Mixin\nBase Mixin is an abstract functional object representing a basic dc chart object\nfor all chart and widget implementations. Methods from the Base Mixin are inherited\nand available on all chart implementation in the DC library.\n**/\ndc.baseMixin = function (_chart) {\n _chart.__dcFlag__ = dc.utils.uniqueId();\n\n var _dimension;\n var _group;\n\n var _anchor;\n var _root;\n var _svg;\n var _isChild;\n\n var _minWidth = 200;\n var _defaultWidth = function (element) {\n var width = element && element.getBoundingClientRect && element.getBoundingClientRect().width;\n return (width && width > _minWidth) ? width : _minWidth;\n };\n var _width = _defaultWidth;\n\n var _minHeight = 200;\n var _defaultHeight = function (element) {\n var height = element && element.getBoundingClientRect && element.getBoundingClientRect().height;\n return (height && height > _minHeight) ? height : _minHeight;\n };\n var _height = _defaultHeight;\n\n var _keyAccessor = dc.pluck('key');\n var _valueAccessor = dc.pluck('value');\n var _label = dc.pluck('key');\n var _legendLabelAccessor = dc.pluck('key');\n\n var _ordering = dc.pluck('key');\n var _orderSort;\n\n var _renderLabel = false;\n\n var _title = function (d) {\n return _chart.keyAccessor()(d) + ': ' + _chart.valueAccessor()(d);\n };\n var _renderTitle = true;\n\n var _transitionDuration = 750;\n\n var _filterPrinter = dc.printers.filters;\n\n var _mandatoryAttributes = ['dimension', 'group'];\n\n var _chartGroup = dc.constants.DEFAULT_CHART_GROUP;\n\n var _listeners = d3.dispatch(\n 'preRender',\n 'postRender',\n 'preRedraw',\n 'postRedraw',\n 'filtered',\n 'zoomed',\n 'renderlet');\n\n var _legend;\n\n var _filters = [];\n var _filterHandler = function (dimension, filters) {\n dimension.filter(null);\n\n if (filters.length === 0) {\n dimension.filter(null);\n } else {\n dimension.filterFunction(function (d) {\n for (var i = 0; i < filters.length; i++) {\n var filter = filters[i];\n if (filter.isFiltered && filter.isFiltered(d)) {\n return true;\n } else if (filter <= d && filter >= d) {\n return true;\n }\n }\n return false;\n });\n }\n return filters;\n };\n\n var _data = function (group) {\n return group.all();\n };\n\n /**\n #### .width([value])\n Set or get the width attribute of a chart. See `.height` below for further description of the\n behavior.\n\n **/\n _chart.width = function (w) {\n if (!arguments.length) {\n return _width(_root.node());\n }\n _width = d3.functor(w || _defaultWidth);\n return _chart;\n };\n\n /**\n #### .height([value])\n Set or get the height attribute of a chart. The height is applied to the SVG element generated by\n the chart when rendered (or rerendered). If a value is given, then it will be used to calculate\n the new height and the chart returned for method chaining. The value can either be a numeric, a\n function, or falsy. If no value is specified then the value of the current height attribute will\n be returned.\n\n By default, without an explicit height being given, the chart will select the width of its\n anchor element. If that isn't possible it defaults to 200. Setting the value falsy will return\n the chart to the default behavior\n\n Examples:\n\n ```js\n chart.height(250); // Set the chart's height to 250px;\n chart.height(function(anchor) { return doSomethingWith(anchor); }); // set the chart's height with a function\n chart.height(null); // reset the height to the default auto calculation\n ```\n\n **/\n _chart.height = function (h) {\n if (!arguments.length) {\n return _height(_root.node());\n }\n _height = d3.functor(h || _defaultHeight);\n return _chart;\n };\n\n /**\n #### .minWidth([value])\n Set or get the minimum width attribute of a chart. This only applicable if the width is\n calculated by dc.\n\n **/\n _chart.minWidth = function (w) {\n if (!arguments.length) {\n return _minWidth;\n }\n _minWidth = w;\n return _chart;\n };\n\n /**\n #### .minHeight([value])\n Set or get the minimum height attribute of a chart. This only applicable if the height is\n calculated by dc.\n\n **/\n _chart.minHeight = function (w) {\n if (!arguments.length) {\n return _minHeight;\n }\n _minHeight = w;\n return _chart;\n };\n\n /**\n #### .dimension([value]) - **mandatory**\n Set or get the dimension attribute of a chart. In dc a dimension can be any valid [crossfilter\n dimension](https://github.com/square/crossfilter/wiki/API-Reference#wiki-dimension).\n\n If a value is given, then it will be used as the new dimension. If no value is specified then\n the current dimension will be returned.\n\n **/\n _chart.dimension = function (d) {\n if (!arguments.length) {\n return _dimension;\n }\n _dimension = d;\n _chart.expireCache();\n return _chart;\n };\n\n /**\n #### .data([callback])\n Set the data callback or retrieve the chart's data set. The data callback is passed the chart's\n group and by default will return `group.all()`. This behavior may be modified to, for instance,\n return only the top 5 groups:\n ```\n chart.data(function(group) {\n return group.top(5);\n });\n ```\n **/\n _chart.data = function (d) {\n if (!arguments.length) {\n return _data.call(_chart, _group);\n }\n _data = d3.functor(d);\n _chart.expireCache();\n return _chart;\n };\n\n /**\n #### .group([value, [name]]) - **mandatory**\n Set or get the group attribute of a chart. In dc a group is a [crossfilter\n group](https://github.com/square/crossfilter/wiki/API-Reference#wiki-group). Usually the group\n should be created from the particular dimension associated with the same chart. If a value is\n given, then it will be used as the new group.\n\n If no value specified then the current group will be returned.\n If `name` is specified then it will be used to generate legend label.\n\n **/\n _chart.group = function (g, name) {\n if (!arguments.length) {\n return _group;\n }\n _group = g;\n _chart._groupName = name;\n _chart.expireCache();\n return _chart;\n };\n\n /**\n #### .ordering([orderFunction])\n Get or set an accessor to order ordinal charts\n **/\n _chart.ordering = function (o) {\n if (!arguments.length) {\n return _ordering;\n }\n _ordering = o;\n _orderSort = crossfilter.quicksort.by(_ordering);\n _chart.expireCache();\n return _chart;\n };\n\n _chart._computeOrderedGroups = function (data) {\n var dataCopy = data.slice(0);\n\n if (dataCopy.length <= 1) {\n return dataCopy;\n }\n\n if (!_orderSort) {\n _orderSort = crossfilter.quicksort.by(_ordering);\n }\n\n return _orderSort(dataCopy, 0, dataCopy.length);\n };\n\n /**\n #### .filterAll()\n Clear all filters associated with this chart.\n\n **/\n _chart.filterAll = function () {\n return _chart.filter(null);\n };\n\n /**\n #### .select(selector)\n Execute d3 single selection in the chart's scope using the given selector and return the d3\n selection. Roughly the same as:\n ```js\n d3.select('#chart-id').select(selector);\n ```\n This function is **not chainable** since it does not return a chart instance; however the d3\n selection result can be chained to d3 function calls.\n\n **/\n _chart.select = function (s) {\n return _root.select(s);\n };\n\n /**\n #### .selectAll(selector)\n Execute in scope d3 selectAll using the given selector and return d3 selection result. Roughly\n the same as:\n ```js\n d3.select('#chart-id').selectAll(selector);\n ```\n This function is **not chainable** since it does not return a chart instance; however the d3\n selection result can be chained to d3 function calls.\n\n **/\n _chart.selectAll = function (s) {\n return _root ? _root.selectAll(s) : null;\n };\n\n /**\n #### .anchor([anchorChart|anchorSelector|anchorNode], [chartGroup])\n Set the svg root to either be an existing chart's root; or any valid [d3 single\n selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying a dom\n block element such as a div; or a dom element or d3 selection. Optionally registers the chart\n within the chartGroup. This class is called internally on chart initialization, but be called\n again to relocate the chart. However, it will orphan any previously created SVG elements.\n **/\n _chart.anchor = function (a, chartGroup) {\n if (!arguments.length) {\n return _anchor;\n }\n if (dc.instanceOfChart(a)) {\n _anchor = a.anchor();\n _root = a.root();\n _isChild = true;\n } else {\n _anchor = a;\n _root = d3.select(_anchor);\n _root.classed(dc.constants.CHART_CLASS, true);\n dc.registerChart(_chart, chartGroup);\n _isChild = false;\n }\n _chartGroup = chartGroup;\n return _chart;\n };\n\n /**\n #### .anchorName()\n Returns the dom id for the chart's anchored location.\n\n **/\n _chart.anchorName = function () {\n var a = _chart.anchor();\n if (a && a.id) {\n return a.id;\n }\n if (a && a.replace) {\n return a.replace('#', '');\n }\n return 'dc-chart' + _chart.chartID();\n };\n\n /**\n #### .root([rootElement])\n Returns the root element where a chart resides. Usually it will be the parent div element where\n the svg was created. You can also pass in a new root element however this is usually handled by\n dc internally. Resetting the root element on a chart outside of dc internals may have\n unexpected consequences.\n\n **/\n _chart.root = function (r) {\n if (!arguments.length) {\n return _root;\n }\n _root = r;\n return _chart;\n };\n\n /**\n #### .svg([svgElement])\n Returns the top svg element for this specific chart. You can also pass in a new svg element,\n however this is usually handled by dc internally. Resetting the svg element on a chart outside\n of dc internals may have unexpected consequences.\n\n **/\n _chart.svg = function (_) {\n if (!arguments.length) {\n return _svg;\n }\n _svg = _;\n return _chart;\n };\n\n /**\n #### .resetSvg()\n Remove the chart's SVG elements from the dom and recreate the container SVG element.\n **/\n _chart.resetSvg = function () {\n _chart.select('svg').remove();\n return generateSvg();\n };\n\n function generateSvg() {\n _svg = _chart.root().append('svg')\n .attr('width', _chart.width())\n .attr('height', _chart.height());\n return _svg;\n }\n\n /**\n #### .filterPrinter([filterPrinterFunction])\n Set or get the filter printer function. The filter printer function is used to generate human\n friendly text for filter value(s) associated with the chart instance. By default dc charts use a\n default filter printer `dc.printers.filter` that provides simple printing support for both\n single value and ranged filters.\n\n **/\n _chart.filterPrinter = function (_) {\n if (!arguments.length) {\n return _filterPrinter;\n }\n _filterPrinter = _;\n return _chart;\n };\n\n /**\n #### .turnOnControls() & .turnOffControls()\n Turn on/off optional control elements within the root element. dc currently supports the\n following html control elements.\n\n * root.selectAll('.reset') - elements are turned on if the chart has an active filter. This type\n of control element is usually used to store a reset link to allow user to reset filter on a\n certain chart. This element will be turned off automatically if the filter is cleared.\n * root.selectAll('.filter') elements are turned on if the chart has an active filter. The text\n content of this element is then replaced with the current filter value using the filter printer\n function. This type of element will be turned off automatically if the filter is cleared.\n\n **/\n _chart.turnOnControls = function () {\n if (_root) {\n _chart.selectAll('.reset').style('display', null);\n _chart.selectAll('.filter').text(_filterPrinter(_chart.filters())).style('display', null);\n }\n return _chart;\n };\n\n _chart.turnOffControls = function () {\n if (_root) {\n _chart.selectAll('.reset').style('display', 'none');\n _chart.selectAll('.filter').style('display', 'none').text(_chart.filter());\n }\n return _chart;\n };\n\n /**\n #### .transitionDuration([duration])\n Set or get the animation transition duration(in milliseconds) for this chart instance. Default\n duration is 750ms.\n\n **/\n _chart.transitionDuration = function (d) {\n if (!arguments.length) {\n return _transitionDuration;\n }\n _transitionDuration = d;\n return _chart;\n };\n\n _chart._mandatoryAttributes = function (_) {\n if (!arguments.length) {\n return _mandatoryAttributes;\n }\n _mandatoryAttributes = _;\n return _chart;\n };\n\n function checkForMandatoryAttributes(a) {\n if (!_chart[a] || !_chart[a]()) {\n throw new dc.errors.InvalidStateException('Mandatory attribute chart.' + a +\n ' is missing on chart[#' + _chart.anchorName() + ']');\n }\n }\n\n /**\n #### .render()\n Invoking this method will force the chart to re-render everything from scratch. Generally it\n should only be used to render the chart for the first time on the page or if you want to make\n sure everything is redrawn from scratch instead of relying on the default incremental redrawing\n behaviour.\n\n **/\n _chart.render = function () {\n _listeners.preRender(_chart);\n\n if (_mandatoryAttributes) {\n _mandatoryAttributes.forEach(checkForMandatoryAttributes);\n }\n\n var result = _chart._doRender();\n\n if (_legend) {\n _legend.render();\n }\n\n _chart._activateRenderlets('postRender');\n\n return result;\n };\n\n _chart._activateRenderlets = function (event) {\n if (_chart.transitionDuration() > 0 && _svg) {\n _svg.transition().duration(_chart.transitionDuration())\n .each('end', function () {\n _listeners['renderlet'](_chart);\n if (event) {\n _listeners[event](_chart);\n }\n });\n } else {\n _listeners['renderlet'](_chart);\n if (event) {\n _listeners[event](_chart);\n }\n }\n };\n\n /**\n #### .redraw()\n Calling redraw will cause the chart to re-render data changes incrementally. If there is no\n change in the underlying data dimension then calling this method will have no effect on the\n chart. Most chart interaction in dc will automatically trigger this method through internal\n events (in particular [dc.redrawAll](#dcredrawallchartgroup)); therefore, you only need to\n manually invoke this function if data is manipulated outside of dc's control (for example if\n data is loaded in the background using `crossfilter.add()`).\n\n **/\n _chart.redraw = function () {\n _listeners.preRedraw(_chart);\n\n var result = _chart._doRedraw();\n\n if (_legend) {\n _legend.render();\n }\n\n _chart._activateRenderlets('postRedraw');\n\n return result;\n };\n\n _chart.redrawGroup = function () {\n dc.redrawAll(_chart.chartGroup());\n };\n\n _chart.renderGroup = function () {\n dc.renderAll(_chart.chartGroup());\n };\n\n _chart._invokeFilteredListener = function (f) {\n if (f !== undefined) {\n _listeners.filtered(_chart, f);\n }\n };\n\n _chart._invokeZoomedListener = function () {\n _listeners.zoomed(_chart);\n };\n\n var _hasFilterHandler = function (filters, filter) {\n if (filter === null || typeof(filter) === 'undefined') {\n return filters.length > 0;\n }\n return filters.some(function (f) {\n return filter <= f && filter >= f;\n });\n };\n\n /**\n #### .hasFilterHandler([function])\n Set or get the has filter handler. The has filter handler is a function that checks to see if\n the chart's current filters include a specific filter. Using a custom has filter handler allows\n you to change the way filters are checked for and replaced.\n\n ```js\n // default has filter handler\n function (filters, filter) {\n if (filter === null || typeof(filter) === 'undefined') {\n return filters.length > 0;\n }\n return filters.some(function (f) {\n return filter <= f && filter >= f;\n });\n }\n\n // custom filter handler (no-op)\n chart.hasFilterHandler(function(filters, filter) {\n return false;\n });\n ```\n **/\n _chart.hasFilterHandler = function (_) {\n if (!arguments.length) {\n return _hasFilterHandler;\n }\n _hasFilterHandler = _;\n return _chart;\n };\n\n /**\n #### .hasFilter([filter])\n Check whether any active filter or a specific filter is associated with particular chart instance.\n This function is **not chainable**.\n\n **/\n _chart.hasFilter = function (filter) {\n return _hasFilterHandler(_filters, filter);\n };\n\n var _removeFilterHandler = function (filters, filter) {\n for (var i = 0; i < filters.length; i++) {\n if (filters[i] <= filter && filters[i] >= filter) {\n filters.splice(i, 1);\n break;\n }\n }\n return filters;\n };\n\n /**\n #### .removeFilterHandler([function])\n Set or get the remove filter handler. The remove filter handler is a function that removes a\n filter from the chart's current filters. Using a custom remove filter handler allows you to\n change how filters are removed or perform additional work when removing a filter, e.g. when\n using a filter server other than crossfilter.\n\n Any changes should modify the `filters` array argument and return that array.\n\n ```js\n // default remove filter handler\n function (filters, filter) {\n for (var i = 0; i < filters.length; i++) {\n if (filters[i] <= filter && filters[i] >= filter) {\n filters.splice(i, 1);\n break;\n }\n }\n return filters;\n }\n\n // custom filter handler (no-op)\n chart.removeFilterHandler(function(filters, filter) {\n return filters;\n });\n ```\n **/\n _chart.removeFilterHandler = function (_) {\n if (!arguments.length) {\n return _removeFilterHandler;\n }\n _removeFilterHandler = _;\n return _chart;\n };\n\n var _addFilterHandler = function (filters, filter) {\n filters.push(filter);\n return filters;\n };\n\n /**\n #### .addFilterHandler([function])\n Set or get the add filter handler. The add filter handler is a function that adds a filter to\n the chart's filter list. Using a custom add filter handler allows you to change the way filters\n are added or perform additional work when adding a filter, e.g. when using a filter server other\n than crossfilter.\n\n Any changes should modify the `filters` array argument and return that array.\n\n ```js\n // default add filter handler\n function (filters, filter) {\n filters.push(filter);\n return filters;\n }\n\n // custom filter handler (no-op)\n chart.addFilterHandler(function(filters, filter) {\n return filters;\n });\n ```\n **/\n _chart.addFilterHandler = function (_) {\n if (!arguments.length) {\n return _addFilterHandler;\n }\n _addFilterHandler = _;\n return _chart;\n };\n\n var _resetFilterHandler = function (filters) {\n return [];\n };\n\n /**\n #### .resetFilterHandler([function])\n Set or get the reset filter handler. The reset filter handler is a function that resets the\n chart's filter list by returning a new list. Using a custom reset filter handler allows you to\n change the way filters are reset, or perform additional work when resetting the filters,\n e.g. when using a filter server other than crossfilter.\n\n This function should return an array.\n\n ```js\n // default remove filter handler\n function (filters) {\n return [];\n }\n\n // custom filter handler (no-op)\n chart.resetFilterHandler(function(filters) {\n return filters;\n });\n ```\n **/\n _chart.resetFilterHandler = function (_) {\n if (!arguments.length) {\n return _resetFilterHandler;\n }\n _resetFilterHandler = _;\n return _chart;\n };\n\n function applyFilters() {\n if (_chart.dimension() && _chart.dimension().filter) {\n var fs = _filterHandler(_chart.dimension(), _filters);\n _filters = fs ? fs : _filters;\n }\n }\n\n _chart.replaceFilter = function (_) {\n _filters = [];\n _chart.filter(_);\n };\n\n /**\n #### .filter([filterValue])\n Filter the chart by the given value or return the current filter if the input parameter is missing.\n ```js\n // filter by a single string\n chart.filter('Sunday');\n // filter by a single age\n chart.filter(18);\n ```\n **/\n _chart.filter = function (_) {\n if (!arguments.length) {\n return _filters.length > 0 ? _filters[0] : null;\n }\n if (_ instanceof Array && _[0] instanceof Array && !_.isFiltered) {\n _[0].forEach(function (d) {\n if (_chart.hasFilter(d)) {\n _removeFilterHandler(_filters, d);\n } else {\n _addFilterHandler(_filters, d);\n }\n });\n } else if (_ === null) {\n _filters = _resetFilterHandler(_filters);\n } else {\n if (_chart.hasFilter(_)) {\n _removeFilterHandler(_filters, _);\n } else {\n _addFilterHandler(_filters, _);\n }\n }\n applyFilters();\n _chart._invokeFilteredListener(_);\n\n if (_root !== null && _chart.hasFilter()) {\n _chart.turnOnControls();\n } else {\n _chart.turnOffControls();\n }\n\n return _chart;\n };\n\n /**\n #### .filters()\n Returns all current filters. This method does not perform defensive cloning of the internal\n filter array before returning, therefore any modification of the returned array will effect the\n chart's internal filter storage.\n\n **/\n _chart.filters = function () {\n return _filters;\n };\n\n _chart.highlightSelected = function (e) {\n d3.select(e).classed(dc.constants.SELECTED_CLASS, true);\n d3.select(e).classed(dc.constants.DESELECTED_CLASS, false);\n };\n\n _chart.fadeDeselected = function (e) {\n d3.select(e).classed(dc.constants.SELECTED_CLASS, false);\n d3.select(e).classed(dc.constants.DESELECTED_CLASS, true);\n };\n\n _chart.resetHighlight = function (e) {\n d3.select(e).classed(dc.constants.SELECTED_CLASS, false);\n d3.select(e).classed(dc.constants.DESELECTED_CLASS, false);\n };\n\n /**\n #### .onClick(datum)\n This function is passed to d3 as the onClick handler for each chart. The default behavior is to\n filter on the clicked datum (passed to the callback) and redraw the chart group.\n **/\n _chart.onClick = function (d) {\n var filter = _chart.keyAccessor()(d);\n dc.events.trigger(function () {\n _chart.filter(filter);\n _chart.redrawGroup();\n });\n };\n\n /**\n #### .filterHandler([function])\n Set or get the filter handler. The filter handler is a function that performs the filter action\n on a specific dimension. Using a custom filter handler allows you to perform additional logic\n before or after filtering.\n\n ```js\n // default filter handler\n function(dimension, filter){\n dimension.filter(filter); // perform filtering\n return filter; // return the actual filter value\n }\n\n // custom filter handler\n chart.filterHandler(function(dimension, filter){\n var newFilter = filter + 10;\n dimension.filter(newFilter);\n return newFilter; // set the actual filter value to the new value\n });\n ```\n\n **/\n _chart.filterHandler = function (_) {\n if (!arguments.length) {\n return _filterHandler;\n }\n _filterHandler = _;\n return _chart;\n };\n\n // abstract function stub\n _chart._doRender = function () {\n // do nothing in base, should be overridden by sub-function\n return _chart;\n };\n\n _chart._doRedraw = function () {\n // do nothing in base, should be overridden by sub-function\n return _chart;\n };\n\n _chart.legendables = function () {\n // do nothing in base, should be overridden by sub-function\n return [];\n };\n\n _chart.legendHighlight = function () {\n // do nothing in base, should be overridden by sub-function\n };\n\n _chart.legendReset = function () {\n // do nothing in base, should be overridden by sub-function\n };\n\n _chart.legendToggle = function () {\n // do nothing in base, should be overriden by sub-function\n };\n\n _chart.isLegendableHidden = function () {\n // do nothing in base, should be overridden by sub-function\n return false;\n };\n\n /**\n #### .keyAccessor([keyAccessorFunction])\n Set or get the key accessor function. The key accessor function is used to retrieve the key\n value from the crossfilter group. Key values are used differently in different charts, for\n example keys correspond to slices in a pie chart and x axis positions in a grid coordinate chart.\n ```js\n // default key accessor\n chart.keyAccessor(function(d) { return d.key; });\n // custom key accessor for a multi-value crossfilter reduction\n chart.keyAccessor(function(p) { return p.value.absGain; });\n ```\n\n **/\n _chart.keyAccessor = function (_) {\n if (!arguments.length) {\n return _keyAccessor;\n }\n _keyAccessor = _;\n return _chart;\n };\n\n /**\n #### .valueAccessor([valueAccessorFunction])\n Set or get the value accessor function. The value accessor function is used to retrieve the\n value from the crossfilter group. Group values are used differently in different charts, for\n example values correspond to slice sizes in a pie chart and y axis positions in a grid\n coordinate chart.\n ```js\n // default value accessor\n chart.valueAccessor(function(d) { return d.value; });\n // custom value accessor for a multi-value crossfilter reduction\n chart.valueAccessor(function(p) { return p.value.percentageGain; });\n ```\n\n **/\n _chart.valueAccessor = function (_) {\n if (!arguments.length) {\n return _valueAccessor;\n }\n _valueAccessor = _;\n return _chart;\n };\n\n\n /**\n #### .legendLabelAccessor([legendLabelAccessorFunction])\n Set or get the legend label accessor function. The legend label accessor function is used to retrieve the\n value from the legend label for the crossfilter group.\n ```js\n // default legenLabel accessor\n chart.legendLabelAccessor(function(d) { return d.key; });\n // custom legen label accessor for a multi-value crossfilter reduction\n chart.legendLabelAccessor(function(p) { return \"Custom Legend:\" + p.key; });\n ```\n\n **/\n _chart.legendLabelAccessor = function (_) {\n if (!arguments.length) {\n return _legendLabelAccessor;\n }\n _legendLabelAccessor = _;\n return _chart;\n };\n\n /**\n #### .label([labelFunction])\n Set or get the label function. The chart class will use this function to render labels for each\n child element in the chart, e.g. slices in a pie chart or bubbles in a bubble chart. Not every\n chart supports the label function for example bar chart and line chart do not use this function\n at all.\n ```js\n // default label function just return the key\n chart.label(function(d) { return d.key; });\n // label function has access to the standard d3 data binding and can get quite complicated\n chart.label(function(d) { return d.data.key + '(' + Math.floor(d.data.value / all.value() * 100) + '%)'; });\n ```\n\n **/\n _chart.label = function (_) {\n if (!arguments.length) {\n return _label;\n }\n _label = _;\n _renderLabel = true;\n return _chart;\n };\n\n /**\n #### .renderLabel(boolean)\n Turn on/off label rendering\n\n **/\n _chart.renderLabel = function (_) {\n if (!arguments.length) {\n return _renderLabel;\n }\n _renderLabel = _;\n return _chart;\n };\n\n /**\n #### .title([titleFunction])\n Set or get the title function. The chart class will use this function to render the svg title\n (usually interpreted by browser as tooltips) for each child element in the chart, e.g. a slice\n in a pie chart or a bubble in a bubble chart. Almost every chart supports the title function;\n however in grid coordinate charts you need to turn off the brush in order to see titles, because\n otherwise the brush layer will block tooltip triggering.\n ```js\n // default title function just return the key\n chart.title(function(d) { return d.key + ': ' + d.value; });\n // title function has access to the standard d3 data binding and can get quite complicated\n chart.title(function(p) {\n return p.key.getFullYear()\n + '\\n'\n + 'Index Gain: ' + numberFormat(p.value.absGain) + '\\n'\n + 'Index Gain in Percentage: ' + numberFormat(p.value.percentageGain) + '%\\n'\n + 'Fluctuation / Index Ratio: ' + numberFormat(p.value.fluctuationPercentage) + '%';\n });\n ```\n\n **/\n _chart.title = function (_) {\n if (!arguments.length) {\n return _title;\n }\n _title = _;\n return _chart;\n };\n\n /**\n #### .renderTitle(boolean)\n Turn on/off title rendering, or return the state of the render title flag if no arguments are\n given.\n\n **/\n _chart.renderTitle = function (_) {\n if (!arguments.length) {\n return _renderTitle;\n }\n _renderTitle = _;\n return _chart;\n };\n\n /**\n #### .renderlet(renderletFunction)\n A renderlet is similar to an event listener on rendering event. Multiple renderlets can be added\n to an individual chart. Each time a chart is rerendered or redrawn the renderlets are invoked\n right after the chart finishes its own drawing routine, giving you a way to modify the svg\n elements. Renderlet functions take the chart instance as the only input parameter and you can\n use the dc API or use raw d3 to achieve pretty much any effect.\n\n @Deprecated - Use [Listeners](#Listeners) with a 'renderlet' prefix\n Generates a random key for the renderlet, which makes it hard for removal.\n ```js\n // renderlet function\n chart.renderlet(function(chart){\n // mix of dc API and d3 manipulation\n chart.select('g.y').style('display', 'none');\n // its a closure so you can also access other chart variable available in the closure scope\n moveChart.filter(chart.filter());\n });\n ```\n\n **/\n _chart.renderlet = dc.logger.deprecate(function (_) {\n _chart.on('renderlet.' + dc.utils.uniqueId(), _);\n return _chart;\n }, 'chart.renderlet has been deprecated. Please use chart.on(\"renderlet.\", renderletFunction)');\n\n /**\n #### .chartGroup([group])\n Get or set the chart group to which this chart belongs. Chart groups are rendered or redrawn\n together since it is expected they share the same underlying crossfilter data set.\n **/\n _chart.chartGroup = function (_) {\n if (!arguments.length) {\n return _chartGroup;\n }\n if (!_isChild) {\n dc.deregisterChart(_chart, _chartGroup);\n }\n _chartGroup = _;\n if (!_isChild) {\n dc.registerChart(_chart, _chartGroup);\n }\n return _chart;\n };\n\n /**\n #### .expireCache()\n Expire the internal chart cache. dc charts cache some data internally on a per chart basis to\n speed up rendering and avoid unnecessary calculation; however it might be useful to clear the\n cache if you have changed state which will affect rendering. For example if you invoke the\n `crossfilter.add` function or reset group or dimension after rendering it is a good idea to\n clear the cache to make sure charts are rendered properly.\n\n **/\n _chart.expireCache = function () {\n // do nothing in base, should be overridden by sub-function\n return _chart;\n };\n\n /**\n #### .legend([dc.legend])\n Attach a dc.legend widget to this chart. The legend widget will automatically draw legend labels\n based on the color setting and names associated with each group.\n\n ```js\n chart.legend(dc.legend().x(400).y(10).itemHeight(13).gap(5))\n ```\n\n **/\n _chart.legend = function (l) {\n if (!arguments.length) {\n return _legend;\n }\n _legend = l;\n _legend.parent(_chart);\n return _chart;\n };\n\n /**\n #### .chartID()\n Returns the internal numeric ID of the chart.\n **/\n _chart.chartID = function () {\n return _chart.__dcFlag__;\n };\n\n /**\n #### .options(optionsObject)\n Set chart options using a configuration object. Each key in the object will cause the method of\n the same name to be called with the value to set that attribute for the chart.\n\n Example:\n ```\n chart.options({dimension: myDimension, group: myGroup});\n ```\n **/\n _chart.options = function (opts) {\n for (var o in opts) {\n if (typeof(_chart[o]) === 'function') {\n _chart[o].call(_chart, opts[o]);\n } else {\n dc.logger.debug('Not a valid option setter name: ' + o);\n }\n }\n return _chart;\n };\n\n /**\n ## Listeners\n All dc chart instance supports the following listeners.\n\n #### .on('renderlet', function(chart, filter){...})\n This listener function will be invoked after transitions after redraw and render. Replaces the\n deprecated `.renderlet()` method.\n\n #### .on('preRender', function(chart){...})\n This listener function will be invoked before chart rendering.\n\n #### .on('postRender', function(chart){...})\n This listener function will be invoked after chart finish rendering including all renderlets' logic.\n\n #### .on('preRedraw', function(chart){...})\n This listener function will be invoked before chart redrawing.\n\n #### .on('postRedraw', function(chart){...})\n This listener function will be invoked after chart finish redrawing including all renderlets' logic.\n\n #### .on('filtered', function(chart, filter){...})\n This listener function will be invoked after a filter is applied, added or removed.\n\n #### .on('zoomed', function(chart, filter){...})\n This listener function will be invoked after a zoom is triggered.\n\n **/\n _chart.on = function (event, listener) {\n _listeners.on(event, listener);\n return _chart;\n };\n\n return _chart;\n};\n","/**\n## Margin Mixin\nMargin is a mixin that provides margin utility functions for both the Row Chart and Coordinate Grid\nCharts.\n\n**/\ndc.marginMixin = function (_chart) {\n var _margin = {top: 10, right: 50, bottom: 30, left: 30};\n\n /**\n #### .margins([margins])\n Get or set the margins for a particular coordinate grid chart instance. The margins is stored as\n an associative Javascript array. Default margins: {top: 10, right: 50, bottom: 30, left: 30}.\n\n The margins can be accessed directly from the getter.\n ```js\n var leftMargin = chart.margins().left; // 30 by default\n chart.margins().left = 50;\n leftMargin = chart.margins().left; // now 50\n ```\n\n **/\n _chart.margins = function (m) {\n if (!arguments.length) {\n return _margin;\n }\n _margin = m;\n return _chart;\n };\n\n _chart.effectiveWidth = function () {\n return _chart.width() - _chart.margins().left - _chart.margins().right;\n };\n\n _chart.effectiveHeight = function () {\n return _chart.height() - _chart.margins().top - _chart.margins().bottom;\n };\n\n return _chart;\n};\n","/**\n## Color Mixin\nThe Color Mixin is an abstract chart functional class providing universal coloring support\nas a mix-in for any concrete chart implementation.\n\n**/\n\ndc.colorMixin = function (_chart) {\n var _colors = d3.scale.category20c();\n var _defaultAccessor = true;\n\n var _colorAccessor = function (d) { return _chart.keyAccessor()(d); };\n\n /**\n #### .colors([colorScale])\n Retrieve current color scale or set a new color scale. This methods accepts any function that\n operates like a d3 scale. If not set the default is\n `d3.scale.category20c()`.\n ```js\n // alternate categorical scale\n chart.colors(d3.scale.category20b());\n\n // ordinal scale\n chart.colors(d3.scale.ordinal().range(['red','green','blue']));\n // convenience method, the same as above\n chart.ordinalColors(['red','green','blue']);\n\n // set a linear scale\n chart.linearColors([\"#4575b4\", \"#ffffbf\", \"#a50026\"]);\n ```\n **/\n _chart.colors = function (_) {\n if (!arguments.length) {\n return _colors;\n }\n if (_ instanceof Array) {\n _colors = d3.scale.quantize().range(_); // deprecated legacy support, note: this fails for ordinal domains\n } else {\n _colors = d3.functor(_);\n }\n return _chart;\n };\n\n /**\n #### .ordinalColors(r)\n Convenience method to set the color scale to d3.scale.ordinal with range `r`.\n\n **/\n _chart.ordinalColors = function (r) {\n return _chart.colors(d3.scale.ordinal().range(r));\n };\n\n /**\n #### .linearColors(r)\n Convenience method to set the color scale to an Hcl interpolated linear scale with range `r`.\n\n **/\n _chart.linearColors = function (r) {\n return _chart.colors(d3.scale.linear()\n .range(r)\n .interpolate(d3.interpolateHcl));\n };\n\n /**\n #### .colorAccessor([colorAccessorFunction])\n Set or the get color accessor function. This function will be used to map a data point in a\n crossfilter group to a color value on the color scale. The default function uses the key\n accessor.\n ```js\n // default index based color accessor\n .colorAccessor(function (d, i){return i;})\n // color accessor for a multi-value crossfilter reduction\n .colorAccessor(function (d){return d.value.absGain;})\n ```\n **/\n _chart.colorAccessor = function (_) {\n if (!arguments.length) {\n return _colorAccessor;\n }\n _colorAccessor = _;\n _defaultAccessor = false;\n return _chart;\n };\n\n // what is this?\n _chart.defaultColorAccessor = function () {\n return _defaultAccessor;\n };\n\n /**\n #### .colorDomain([domain])\n Set or get the current domain for the color mapping function. The domain must be supplied as an\n array.\n\n Note: previously this method accepted a callback function. Instead you may use a custom scale\n set by `.colors`.\n\n **/\n _chart.colorDomain = function (_) {\n if (!arguments.length) {\n return _colors.domain();\n }\n _colors.domain(_);\n return _chart;\n };\n\n /**\n #### .calculateColorDomain()\n Set the domain by determining the min and max values as retrieved by `.colorAccessor` over the\n chart's dataset.\n\n **/\n _chart.calculateColorDomain = function () {\n var newDomain = [d3.min(_chart.data(), _chart.colorAccessor()),\n d3.max(_chart.data(), _chart.colorAccessor())];\n _colors.domain(newDomain);\n return _chart;\n };\n\n /**\n #### .getColor(d [, i])\n Get the color for the datum d and counter i. This is used internally by charts to retrieve a color.\n\n **/\n _chart.getColor = function (d, i) {\n return _colors(_colorAccessor.call(this, d, i));\n };\n\n /**\n #### .colorCalculator([value])\n Gets or sets chart.getColor.\n **/\n _chart.colorCalculator = function (_) {\n if (!arguments.length) {\n return _chart.getColor;\n }\n _chart.getColor = _;\n return _chart;\n };\n\n return _chart;\n};\n","/**\n## Coordinate Grid Mixin\nIncludes: [Color Mixin](#color-mixin), [Margin Mixin](#margin-mixin), [Base Mixin](#base-mixin)\n\nCoordinate Grid is an abstract base chart designed to support a number of coordinate grid based\nconcrete chart types, e.g. bar chart, line chart, and bubble chart.\n\n**/\ndc.coordinateGridMixin = function (_chart) {\n var GRID_LINE_CLASS = 'grid-line';\n var HORIZONTAL_CLASS = 'horizontal';\n var VERTICAL_CLASS = 'vertical';\n var Y_AXIS_LABEL_CLASS = 'y-axis-label';\n var X_AXIS_LABEL_CLASS = 'x-axis-label';\n var DEFAULT_AXIS_LABEL_PADDING = 12;\n\n _chart = dc.colorMixin(dc.marginMixin(dc.baseMixin(_chart)));\n\n _chart.colors(d3.scale.category10());\n _chart._mandatoryAttributes().push('x');\n\n function zoomHandler () {\n _refocused = true;\n if (_zoomOutRestrict) {\n _chart.x().domain(constrainRange(_chart.x().domain(), _xOriginalDomain));\n if (_rangeChart) {\n _chart.x().domain(constrainRange(_chart.x().domain(), _rangeChart.x().domain()));\n }\n }\n\n var domain = _chart.x().domain();\n var domFilter = dc.filters.RangedFilter(domain[0], domain[1]);\n\n _chart.replaceFilter(domFilter);\n _chart.rescale();\n _chart.redraw();\n\n if (_rangeChart && !rangesEqual(_chart.filter(), _rangeChart.filter())) {\n dc.events.trigger(function () {\n _rangeChart.replaceFilter(domFilter);\n _rangeChart.redraw();\n });\n }\n\n _chart._invokeZoomedListener();\n\n dc.events.trigger(function () {\n _chart.redrawGroup();\n }, dc.constants.EVENT_DELAY);\n\n _refocused = !rangesEqual(domain, _xOriginalDomain);\n }\n\n var _parent;\n var _g;\n var _chartBodyG;\n\n var _x;\n var _xOriginalDomain;\n var _xAxis = d3.svg.axis().orient('bottom');\n var _xUnits = dc.units.integers;\n var _xAxisPadding = 0;\n var _xElasticity = false;\n var _xAxisLabel;\n var _xAxisLabelPadding = 0;\n var _lastXDomain;\n\n var _y;\n var _yAxis = d3.svg.axis().orient('left');\n var _yAxisPadding = 0;\n var _yElasticity = false;\n var _yAxisLabel;\n var _yAxisLabelPadding = 0;\n\n var _brush = d3.svg.brush();\n var _brushOn = true;\n var _round;\n\n var _renderHorizontalGridLine = false;\n var _renderVerticalGridLine = false;\n\n var _refocused = false;\n var _unitCount;\n\n var _zoomScale = [1, Infinity];\n var _zoomOutRestrict = true;\n\n var _zoom = d3.behavior.zoom().on('zoom', zoomHandler);\n var _nullZoom = d3.behavior.zoom().on('zoom', null);\n var _hasBeenMouseZoomable = false;\n\n var _rangeChart;\n var _focusChart;\n\n var _mouseZoomable = false;\n var _clipPadding = 0;\n\n var _outerRangeBandPadding = 0.5;\n var _rangeBandPadding = 0;\n\n var _useRightYAxis = false;\n\n _chart.rescale = function () {\n _unitCount = undefined;\n };\n\n /**\n #### .rangeChart([chart])\n Get or set the range selection chart associated with this instance. Setting the range selection\n chart using this function will automatically update its selection brush when the current chart\n zooms in. In return the given range chart will also automatically attach this chart as its focus\n chart hence zoom in when range brush updates. See the [Nasdaq 100\n Index](http://dc-js.github.com/dc.js/) example for this effect in action.\n\n **/\n _chart.rangeChart = function (_) {\n if (!arguments.length) {\n return _rangeChart;\n }\n _rangeChart = _;\n _rangeChart.focusChart(_chart);\n return _chart;\n };\n\n /**\n #### .zoomScale([extent])\n Get or set the scale extent for mouse zooms.\n\n **/\n _chart.zoomScale = function (_) {\n if (!arguments.length) {\n return _zoomScale;\n }\n _zoomScale = _;\n return _chart;\n };\n\n /**\n #### .zoomOutRestrict([true/false])\n Get or set the zoom restriction for the chart. If true limits the zoom to origional domain of the chart.\n **/\n _chart.zoomOutRestrict = function (r) {\n if (!arguments.length) {\n return _zoomOutRestrict;\n }\n _zoomScale[0] = r ? 1 : 0;\n _zoomOutRestrict = r;\n return _chart;\n };\n\n _chart._generateG = function (parent) {\n if (parent === undefined) {\n _parent = _chart.svg();\n } else {\n _parent = parent;\n }\n\n _g = _parent.append('g');\n\n _chartBodyG = _g.append('g').attr('class', 'chart-body')\n .attr('transform', 'translate(' + _chart.margins().left + ', ' + _chart.margins().top + ')')\n .attr('clip-path', 'url(#' + getClipPathId() + ')');\n\n return _g;\n };\n\n /**\n #### .g([gElement])\n Get or set the root g element. This method is usually used to retrieve the g element in order to\n overlay custom svg drawing programatically. **Caution**: The root g element is usually generated\n by dc.js internals, and resetting it might produce unpredictable result.\n\n **/\n _chart.g = function (_) {\n if (!arguments.length) {\n return _g;\n }\n _g = _;\n return _chart;\n };\n\n /**\n #### .mouseZoomable([boolean])\n Set or get mouse zoom capability flag (default: false). When turned on the chart will be\n zoomable using the mouse wheel. If the range selector chart is attached zooming will also update\n the range selection brush on the associated range selector chart.\n\n **/\n _chart.mouseZoomable = function (z) {\n if (!arguments.length) {\n return _mouseZoomable;\n }\n _mouseZoomable = z;\n return _chart;\n };\n\n /**\n #### .chartBodyG()\n Retrieve the svg group for the chart body.\n **/\n _chart.chartBodyG = function (_) {\n if (!arguments.length) {\n return _chartBodyG;\n }\n _chartBodyG = _;\n return _chart;\n };\n\n /**\n #### .x([xScale]) - **mandatory**\n Get or set the x scale. The x scale can be any d3\n [quantitive scale](https://github.com/mbostock/d3/wiki/Quantitative-Scales) or\n [ordinal scale](https://github.com/mbostock/d3/wiki/Ordinal-Scales).\n ```js\n // set x to a linear scale\n chart.x(d3.scale.linear().domain([-2500, 2500]))\n // set x to a time scale to generate histogram\n chart.x(d3.time.scale().domain([new Date(1985, 0, 1), new Date(2012, 11, 31)]))\n ```\n\n **/\n _chart.x = function (_) {\n if (!arguments.length) {\n return _x;\n }\n _x = _;\n _xOriginalDomain = _x.domain();\n return _chart;\n };\n\n _chart.xOriginalDomain = function () {\n return _xOriginalDomain;\n };\n\n /**\n #### .xUnits([xUnits function])\n Set or get the xUnits function. The coordinate grid chart uses the xUnits function to calculate\n the number of data projections on x axis such as the number of bars for a bar chart or the\n number of dots for a line chart. This function is expected to return a Javascript array of all\n data points on x axis, or the number of points on the axis. [d3 time range functions\n d3.time.days, d3.time.months, and\n d3.time.years](https://github.com/mbostock/d3/wiki/Time-Intervals#aliases) are all valid xUnits\n function. dc.js also provides a few units function, see the [Utilities](#utilities) section for\n a list of built-in units functions. The default xUnits function is dc.units.integers.\n ```js\n // set x units to count days\n chart.xUnits(d3.time.days);\n // set x units to count months\n chart.xUnits(d3.time.months);\n ```\n A custom xUnits function can be used as long as it follows the following interface:\n ```js\n // units in integer\n function(start, end, xDomain) {\n // simply calculates how many integers in the domain\n return Math.abs(end - start);\n };\n\n // fixed units\n function(start, end, xDomain) {\n // be aware using fixed units will disable the focus/zoom ability on the chart\n return 1000;\n };\n ```\n\n **/\n _chart.xUnits = function (_) {\n if (!arguments.length) {\n return _xUnits;\n }\n _xUnits = _;\n return _chart;\n };\n\n /**\n #### .xAxis([xAxis])\n Set or get the x axis used by a particular coordinate grid chart instance. This function is most\n useful when x axis customization is required. The x axis in dc.js is an instance of a [d3\n axis object](https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-axis); therefore it supports any\n valid d3 axis manipulation. **Caution**: The x axis is usually generated internally by dc;\n resetting it may cause unexpected results.\n ```js\n // customize x axis tick format\n chart.xAxis().tickFormat(function(v) {return v + '%';});\n // customize x axis tick values\n chart.xAxis().tickValues([0, 100, 200, 300]);\n ```\n\n **/\n _chart.xAxis = function (_) {\n if (!arguments.length) {\n return _xAxis;\n }\n _xAxis = _;\n return _chart;\n };\n\n /**\n #### .elasticX([boolean])\n Turn on/off elastic x axis behavior. If x axis elasticity is turned on, then the grid chart will\n attempt to recalculate the x axis range whenever a redraw event is triggered.\n\n **/\n _chart.elasticX = function (_) {\n if (!arguments.length) {\n return _xElasticity;\n }\n _xElasticity = _;\n return _chart;\n };\n\n /**\n #### .xAxisPadding([padding])\n Set or get x axis padding for the elastic x axis. The padding will be added to both end of the x\n axis if elasticX is turned on; otherwise it is ignored.\n\n * padding can be an integer or percentage in string (e.g. '10%'). Padding can be applied to\n number or date x axes. When padding a date axis, an integer represents number of days being padded\n and a percentage string will be treated the same as an integer.\n\n **/\n _chart.xAxisPadding = function (_) {\n if (!arguments.length) {\n return _xAxisPadding;\n }\n _xAxisPadding = _;\n return _chart;\n };\n\n /**\n #### .xUnitCount()\n Returns the number of units displayed on the x axis using the unit measure configured by\n .xUnits.\n **/\n _chart.xUnitCount = function () {\n if (_unitCount === undefined) {\n var units = _chart.xUnits()(_chart.x().domain()[0], _chart.x().domain()[1], _chart.x().domain());\n\n if (units instanceof Array) {\n _unitCount = units.length;\n } else {\n _unitCount = units;\n }\n }\n\n return _unitCount;\n };\n /**\n #### .useRightYAxis()\n Gets or sets whether the chart should be drawn with a right axis instead of a left axis. When\n used with a chart in a composite chart, allows both left and right Y axes to be shown on a\n chart.\n **/\n\n _chart.useRightYAxis = function (_) {\n if (!arguments.length) {\n return _useRightYAxis;\n }\n _useRightYAxis = _;\n return _chart;\n };\n\n /**\n #### isOrdinal()\n Returns true if the chart is using ordinal xUnits ([dc.units.ordinal](#dcunitsordinal)), or false\n otherwise. Most charts behave differently with ordinal data and use the result of this method to\n trigger the appropriate logic.\n **/\n _chart.isOrdinal = function () {\n return _chart.xUnits() === dc.units.ordinal;\n };\n\n _chart._useOuterPadding = function () {\n return true;\n };\n\n _chart._ordinalXDomain = function () {\n var groups = _chart._computeOrderedGroups(_chart.data());\n return groups.map(_chart.keyAccessor());\n };\n\n function prepareXAxis(g) {\n if (!_chart.isOrdinal()) {\n if (_chart.elasticX()) {\n _x.domain([_chart.xAxisMin(), _chart.xAxisMax()]);\n }\n }\n else { // _chart.isOrdinal()\n if (_chart.elasticX() || _x.domain().length === 0) {\n _x.domain(_chart._ordinalXDomain());\n }\n }\n\n // has the domain changed?\n var xdom = _x.domain();\n if (!_lastXDomain || xdom.some(function (elem, i) { return elem !== _lastXDomain[i]; })) {\n _chart.rescale();\n }\n _lastXDomain = xdom;\n\n // please can't we always use rangeBands for bar charts?\n if (_chart.isOrdinal()) {\n _x.rangeBands([0, _chart.xAxisLength()], _rangeBandPadding,\n _chart._useOuterPadding() ? _outerRangeBandPadding : 0);\n } else {\n _x.range([0, _chart.xAxisLength()]);\n }\n\n _xAxis = _xAxis.scale(_chart.x());\n\n renderVerticalGridLines(g);\n }\n\n _chart.renderXAxis = function (g) {\n var axisXG = g.selectAll('g.x');\n\n if (axisXG.empty()) {\n axisXG = g.append('g')\n .attr('class', 'axis x')\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart._xAxisY() + ')');\n }\n\n var axisXLab = g.selectAll('text.' + X_AXIS_LABEL_CLASS);\n if (axisXLab.empty() && _chart.xAxisLabel()) {\n axisXLab = g.append('text')\n .attr('transform', 'translate(' + (_chart.margins().left + _chart.xAxisLength() / 2) + ',' +\n (_chart.height() - _xAxisLabelPadding) + ')')\n .attr('class', X_AXIS_LABEL_CLASS)\n .attr('text-anchor', 'middle')\n .text(_chart.xAxisLabel());\n }\n if (_chart.xAxisLabel() && axisXLab.text() !== _chart.xAxisLabel()) {\n axisXLab.text(_chart.xAxisLabel());\n }\n\n dc.transition(axisXG, _chart.transitionDuration())\n .call(_xAxis);\n };\n\n function renderVerticalGridLines(g) {\n var gridLineG = g.selectAll('g.' + VERTICAL_CLASS);\n\n if (_renderVerticalGridLine) {\n if (gridLineG.empty()) {\n gridLineG = g.insert('g', ':first-child')\n .attr('class', GRID_LINE_CLASS + ' ' + VERTICAL_CLASS)\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')');\n }\n\n var ticks = _xAxis.tickValues() ? _xAxis.tickValues() :\n (typeof _x.ticks === 'function' ? _x.ticks(_xAxis.ticks()[0]) : _x.domain());\n\n var lines = gridLineG.selectAll('line')\n .data(ticks);\n\n // enter\n var linesGEnter = lines.enter()\n .append('line')\n .attr('x1', function (d) {\n return _x(d);\n })\n .attr('y1', _chart._xAxisY() - _chart.margins().top)\n .attr('x2', function (d) {\n return _x(d);\n })\n .attr('y2', 0)\n .attr('opacity', 0);\n dc.transition(linesGEnter, _chart.transitionDuration())\n .attr('opacity', 1);\n\n // update\n dc.transition(lines, _chart.transitionDuration())\n .attr('x1', function (d) {\n return _x(d);\n })\n .attr('y1', _chart._xAxisY() - _chart.margins().top)\n .attr('x2', function (d) {\n return _x(d);\n })\n .attr('y2', 0);\n\n // exit\n lines.exit().remove();\n }\n else {\n gridLineG.selectAll('line').remove();\n }\n }\n\n _chart._xAxisY = function () {\n return (_chart.height() - _chart.margins().bottom);\n };\n\n _chart.xAxisLength = function () {\n return _chart.effectiveWidth();\n };\n\n /**\n #### .xAxisLabel([labelText, [, padding]])\n Set or get the x axis label. If setting the label, you may optionally include additional padding to\n the margin to make room for the label. By default the padded is set to 12 to accomodate the text height.\n **/\n _chart.xAxisLabel = function (_, padding) {\n if (!arguments.length) {\n return _xAxisLabel;\n }\n _xAxisLabel = _;\n _chart.margins().bottom -= _xAxisLabelPadding;\n _xAxisLabelPadding = (padding === undefined) ? DEFAULT_AXIS_LABEL_PADDING : padding;\n _chart.margins().bottom += _xAxisLabelPadding;\n return _chart;\n };\n\n _chart._prepareYAxis = function (g) {\n if (_y === undefined || _chart.elasticY()) {\n _y = d3.scale.linear();\n var min = _chart.yAxisMin() || 0,\n max = _chart.yAxisMax() || 0;\n _y.domain([min, max]).rangeRound([_chart.yAxisHeight(), 0]);\n }\n\n _y.range([_chart.yAxisHeight(), 0]);\n _yAxis = _yAxis.scale(_y);\n\n if (_useRightYAxis) {\n _yAxis.orient('right');\n }\n\n _chart._renderHorizontalGridLinesForAxis(g, _y, _yAxis);\n };\n\n _chart.renderYAxisLabel = function (axisClass, text, rotation, labelXPosition) {\n labelXPosition = labelXPosition || _yAxisLabelPadding;\n\n var axisYLab = _chart.g().selectAll('text.' + Y_AXIS_LABEL_CLASS + '.' + axisClass + '-label');\n if (axisYLab.empty() && text) {\n\n var labelYPosition = (_chart.margins().top + _chart.yAxisHeight() / 2);\n axisYLab = _chart.g().append('text')\n .attr('transform', 'translate(' + labelXPosition + ',' + labelYPosition + '),rotate(' + rotation + ')')\n .attr('class', Y_AXIS_LABEL_CLASS + ' ' + axisClass + '-label')\n .attr('text-anchor', 'middle')\n .text(text);\n }\n if (text && axisYLab.text() !== text) {\n axisYLab.text(text);\n }\n };\n\n _chart.renderYAxisAt = function (axisClass, axis, position) {\n var axisYG = _chart.g().selectAll('g.' + axisClass);\n if (axisYG.empty()) {\n axisYG = _chart.g().append('g')\n .attr('class', 'axis ' + axisClass)\n .attr('transform', 'translate(' + position + ',' + _chart.margins().top + ')');\n }\n\n dc.transition(axisYG, _chart.transitionDuration()).call(axis);\n };\n\n _chart.renderYAxis = function () {\n var axisPosition = _useRightYAxis ? (_chart.width() - _chart.margins().right) : _chart._yAxisX();\n _chart.renderYAxisAt('y', _yAxis, axisPosition);\n var labelPosition = _useRightYAxis ? (_chart.width() - _yAxisLabelPadding) : _yAxisLabelPadding;\n var rotation = _useRightYAxis ? 90 : -90;\n _chart.renderYAxisLabel('y', _chart.yAxisLabel(), rotation, labelPosition);\n };\n\n _chart._renderHorizontalGridLinesForAxis = function (g, scale, axis) {\n var gridLineG = g.selectAll('g.' + HORIZONTAL_CLASS);\n\n if (_renderHorizontalGridLine) {\n var ticks = axis.tickValues() ? axis.tickValues() : scale.ticks(axis.ticks()[0]);\n\n if (gridLineG.empty()) {\n gridLineG = g.insert('g', ':first-child')\n .attr('class', GRID_LINE_CLASS + ' ' + HORIZONTAL_CLASS)\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')');\n }\n\n var lines = gridLineG.selectAll('line')\n .data(ticks);\n\n // enter\n var linesGEnter = lines.enter()\n .append('line')\n .attr('x1', 1)\n .attr('y1', function (d) {\n return scale(d);\n })\n .attr('x2', _chart.xAxisLength())\n .attr('y2', function (d) {\n return scale(d);\n })\n .attr('opacity', 0);\n dc.transition(linesGEnter, _chart.transitionDuration())\n .attr('opacity', 1);\n\n // update\n dc.transition(lines, _chart.transitionDuration())\n .attr('x1', 1)\n .attr('y1', function (d) {\n return scale(d);\n })\n .attr('x2', _chart.xAxisLength())\n .attr('y2', function (d) {\n return scale(d);\n });\n\n // exit\n lines.exit().remove();\n }\n else {\n gridLineG.selectAll('line').remove();\n }\n };\n\n _chart._yAxisX = function () {\n return _chart.useRightYAxis() ? _chart.width() - _chart.margins().right : _chart.margins().left;\n };\n\n /**\n #### .yAxisLabel([labelText, [, padding]])\n Set or get the y axis label. If setting the label, you may optionally include additional padding\n to the margin to make room for the label. By default the padded is set to 12 to accomodate the\n text height.\n **/\n _chart.yAxisLabel = function (_, padding) {\n if (!arguments.length) {\n return _yAxisLabel;\n }\n _yAxisLabel = _;\n _chart.margins().left -= _yAxisLabelPadding;\n _yAxisLabelPadding = (padding === undefined) ? DEFAULT_AXIS_LABEL_PADDING : padding;\n _chart.margins().left += _yAxisLabelPadding;\n return _chart;\n };\n\n /**\n #### .y([yScale])\n Get or set the y scale. The y scale is typically automatically determined by the chart implementation.\n\n **/\n _chart.y = function (_) {\n if (!arguments.length) {\n return _y;\n }\n _y = _;\n return _chart;\n };\n\n /**\n #### .yAxis([yAxis])\n Set or get the y axis used by the coordinate grid chart instance. This function is most useful\n when y axis customization is required. The y axis in dc.js is simply an instance of a [d3 axis\n object](https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-_axis); therefore it supports any\n valid d3 axis manipulation. **Caution**: The y axis is usually generated internally by dc;\n resetting it may cause unexpected results.\n ```js\n // customize y axis tick format\n chart.yAxis().tickFormat(function(v) {return v + '%';});\n // customize y axis tick values\n chart.yAxis().tickValues([0, 100, 200, 300]);\n ```\n\n **/\n _chart.yAxis = function (y) {\n if (!arguments.length) {\n return _yAxis;\n }\n _yAxis = y;\n return _chart;\n };\n\n /**\n #### .elasticY([boolean])\n Turn on/off elastic y axis behavior. If y axis elasticity is turned on, then the grid chart will\n attempt to recalculate the y axis range whenever a redraw event is triggered.\n\n **/\n _chart.elasticY = function (_) {\n if (!arguments.length) {\n return _yElasticity;\n }\n _yElasticity = _;\n return _chart;\n };\n\n /**\n #### .renderHorizontalGridLines([boolean])\n Turn on/off horizontal grid lines.\n\n **/\n _chart.renderHorizontalGridLines = function (_) {\n if (!arguments.length) {\n return _renderHorizontalGridLine;\n }\n _renderHorizontalGridLine = _;\n return _chart;\n };\n\n /**\n #### .renderVerticalGridLines([boolean])\n Turn on/off vertical grid lines.\n\n **/\n _chart.renderVerticalGridLines = function (_) {\n if (!arguments.length) {\n return _renderVerticalGridLine;\n }\n _renderVerticalGridLine = _;\n return _chart;\n };\n\n /**\n #### .xAxisMin()\n Calculates the minimum x value to display in the chart. Includes xAxisPadding if set.\n **/\n _chart.xAxisMin = function () {\n var min = d3.min(_chart.data(), function (e) {\n return _chart.keyAccessor()(e);\n });\n return dc.utils.subtract(min, _xAxisPadding);\n };\n\n /**\n #### .xAxisMax()\n Calculates the maximum x value to display in the chart. Includes xAxisPadding if set.\n **/\n _chart.xAxisMax = function () {\n var max = d3.max(_chart.data(), function (e) {\n return _chart.keyAccessor()(e);\n });\n return dc.utils.add(max, _xAxisPadding);\n };\n\n /**\n #### .yAxisMin()\n Calculates the minimum y value to display in the chart. Includes yAxisPadding if set.\n **/\n _chart.yAxisMin = function () {\n var min = d3.min(_chart.data(), function (e) {\n return _chart.valueAccessor()(e);\n });\n return dc.utils.subtract(min, _yAxisPadding);\n };\n\n /**\n #### .yAxisMax()\n Calculates the maximum y value to display in the chart. Includes yAxisPadding if set.\n **/\n _chart.yAxisMax = function () {\n var max = d3.max(_chart.data(), function (e) {\n return _chart.valueAccessor()(e);\n });\n return dc.utils.add(max, _yAxisPadding);\n };\n\n /**\n #### .yAxisPadding([padding])\n Set or get y axis padding for the elastic y axis. The padding will be added to the top of the y\n axis if elasticY is turned on; otherwise it is ignored.\n\n * padding can be an integer or percentage in string (e.g. '10%'). Padding can be applied to\n number or date axes. When padding a date axis, an integer represents number of days being padded\n and a percentage string will be treated the same as an integer.\n\n **/\n _chart.yAxisPadding = function (_) {\n if (!arguments.length) {\n return _yAxisPadding;\n }\n _yAxisPadding = _;\n return _chart;\n };\n\n _chart.yAxisHeight = function () {\n return _chart.effectiveHeight();\n };\n\n /**\n #### .round([rounding function])\n Set or get the rounding function used to quantize the selection when brushing is enabled.\n ```js\n // set x unit round to by month, this will make sure range selection brush will\n // select whole months\n chart.round(d3.time.month.round);\n ```\n\n **/\n _chart.round = function (_) {\n if (!arguments.length) {\n return _round;\n }\n _round = _;\n return _chart;\n };\n\n _chart._rangeBandPadding = function (_) {\n if (!arguments.length) {\n return _rangeBandPadding;\n }\n _rangeBandPadding = _;\n return _chart;\n };\n\n _chart._outerRangeBandPadding = function (_) {\n if (!arguments.length) {\n return _outerRangeBandPadding;\n }\n _outerRangeBandPadding = _;\n return _chart;\n };\n\n dc.override(_chart, 'filter', function (_) {\n if (!arguments.length) {\n return _chart._filter();\n }\n\n _chart._filter(_);\n\n if (_) {\n _chart.brush().extent(_);\n } else {\n _chart.brush().clear();\n }\n\n return _chart;\n });\n\n _chart.brush = function (_) {\n if (!arguments.length) {\n return _brush;\n }\n _brush = _;\n return _chart;\n };\n\n function brushHeight() {\n return _chart._xAxisY() - _chart.margins().top;\n }\n\n _chart.renderBrush = function (g) {\n if (_brushOn) {\n _brush.on('brush', _chart._brushing);\n _brush.on('brushstart', _chart._disableMouseZoom);\n _brush.on('brushend', configureMouseZoom);\n\n var gBrush = g.append('g')\n .attr('class', 'brush')\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')')\n .call(_brush.x(_chart.x()));\n _chart.setBrushY(gBrush);\n _chart.setHandlePaths(gBrush);\n\n if (_chart.hasFilter()) {\n _chart.redrawBrush(g);\n }\n }\n };\n\n _chart.setHandlePaths = function (gBrush) {\n gBrush.selectAll('.resize').append('path').attr('d', _chart.resizeHandlePath);\n };\n\n _chart.setBrushY = function (gBrush) {\n gBrush.selectAll('rect').attr('height', brushHeight());\n };\n\n _chart.extendBrush = function () {\n var extent = _brush.extent();\n if (_chart.round()) {\n extent[0] = extent.map(_chart.round())[0];\n extent[1] = extent.map(_chart.round())[1];\n\n _g.select('.brush')\n .call(_brush.extent(extent));\n }\n return extent;\n };\n\n _chart.brushIsEmpty = function (extent) {\n return _brush.empty() || !extent || extent[1] <= extent[0];\n };\n\n _chart._brushing = function () {\n var extent = _chart.extendBrush();\n\n _chart.redrawBrush(_g);\n\n if (_chart.brushIsEmpty(extent)) {\n dc.events.trigger(function () {\n _chart.filter(null);\n _chart.redrawGroup();\n }, dc.constants.EVENT_DELAY);\n } else {\n var rangedFilter = dc.filters.RangedFilter(extent[0], extent[1]);\n\n dc.events.trigger(function () {\n _chart.replaceFilter(rangedFilter);\n _chart.redrawGroup();\n }, dc.constants.EVENT_DELAY);\n }\n };\n\n _chart.redrawBrush = function (g) {\n if (_brushOn) {\n if (_chart.filter() && _chart.brush().empty()) {\n _chart.brush().extent(_chart.filter());\n }\n\n var gBrush = g.select('g.brush');\n gBrush.call(_chart.brush().x(_chart.x()));\n _chart.setBrushY(gBrush);\n }\n\n _chart.fadeDeselectedArea();\n };\n\n _chart.fadeDeselectedArea = function () {\n // do nothing, sub-chart should override this function\n };\n\n // borrowed from Crossfilter example\n _chart.resizeHandlePath = function (d) {\n var e = +(d === 'e'), x = e ? 1 : -1, y = brushHeight() / 3;\n return 'M' + (0.5 * x) + ',' + y +\n 'A6,6 0 0 ' + e + ' ' + (6.5 * x) + ',' + (y + 6) +\n 'V' + (2 * y - 6) +\n 'A6,6 0 0 ' + e + ' ' + (0.5 * x) + ',' + (2 * y) +\n 'Z' +\n 'M' + (2.5 * x) + ',' + (y + 8) +\n 'V' + (2 * y - 8) +\n 'M' + (4.5 * x) + ',' + (y + 8) +\n 'V' + (2 * y - 8);\n };\n\n function getClipPathId() {\n return _chart.anchorName().replace(/[ .#]/g, '-') + '-clip';\n }\n\n /**\n #### .clipPadding([padding])\n Get or set the padding in pixels for the clip path. Once set padding will be applied evenly to\n the top, left, right, and bottom when the clip path is generated. If set to zero, the clip area\n will be exactly the chart body area minus the margins. Default: 5\n\n **/\n _chart.clipPadding = function (p) {\n if (!arguments.length) {\n return _clipPadding;\n }\n _clipPadding = p;\n return _chart;\n };\n\n function generateClipPath() {\n var defs = dc.utils.appendOrSelect(_parent, 'defs');\n // cannot select elements; bug in WebKit, must select by id\n // https://groups.google.com/forum/#!topic/d3-js/6EpAzQ2gU9I\n var id = getClipPathId();\n var chartBodyClip = dc.utils.appendOrSelect(defs, '#' + id, 'clipPath').attr('id', id);\n\n var padding = _clipPadding * 2;\n\n dc.utils.appendOrSelect(chartBodyClip, 'rect')\n .attr('width', _chart.xAxisLength() + padding)\n .attr('height', _chart.yAxisHeight() + padding)\n .attr('transform', 'translate(-' + _clipPadding + ', -' + _clipPadding + ')');\n }\n\n _chart._preprocessData = function () {};\n\n _chart._doRender = function () {\n _chart.resetSvg();\n\n _chart._preprocessData();\n\n _chart._generateG();\n generateClipPath();\n\n drawChart(true);\n\n configureMouseZoom();\n\n return _chart;\n };\n\n _chart._doRedraw = function () {\n _chart._preprocessData();\n\n drawChart(false);\n generateClipPath();\n\n return _chart;\n };\n\n function drawChart (render) {\n if (_chart.isOrdinal()) {\n _brushOn = false;\n }\n\n prepareXAxis(_chart.g());\n _chart._prepareYAxis(_chart.g());\n\n _chart.plotData();\n\n if (_chart.elasticX() || _refocused || render) {\n _chart.renderXAxis(_chart.g());\n }\n\n if (_chart.elasticY() || render) {\n _chart.renderYAxis(_chart.g());\n }\n\n if (render) {\n _chart.renderBrush(_chart.g());\n } else {\n _chart.redrawBrush(_chart.g());\n }\n }\n\n function configureMouseZoom () {\n if (_mouseZoomable) {\n _chart._enableMouseZoom();\n }\n else if (_hasBeenMouseZoomable) {\n _chart._disableMouseZoom();\n }\n }\n\n _chart._enableMouseZoom = function () {\n _hasBeenMouseZoomable = true;\n _zoom.x(_chart.x())\n .scaleExtent(_zoomScale)\n .size([_chart.width(), _chart.height()])\n .duration(_chart.transitionDuration());\n _chart.root().call(_zoom);\n };\n\n _chart._disableMouseZoom = function () {\n _chart.root().call(_nullZoom);\n };\n\n function constrainRange(range, constraint) {\n var constrainedRange = [];\n constrainedRange[0] = d3.max([range[0], constraint[0]]);\n constrainedRange[1] = d3.min([range[1], constraint[1]]);\n return constrainedRange;\n }\n\n /**\n #### .focus([range])\n Zoom this chart to focus on the given range. The given range should be an array containing only\n 2 elements (`[start, end]`) defining a range in the x domain. If the range is not given or set\n to null, then the zoom will be reset. _For focus to work elasticX has to be turned off;\n otherwise focus will be ignored._\n ```js\n chart.renderlet(function(chart){\n // smooth the rendering through event throttling\n dc.events.trigger(function(){\n // focus some other chart to the range selected by user on this chart\n someOtherChart.focus(chart.filter());\n });\n })\n ```\n\n **/\n _chart.focus = function (range) {\n if (hasRangeSelected(range)) {\n _chart.x().domain(range);\n } else {\n _chart.x().domain(_xOriginalDomain);\n }\n\n _zoom.x(_chart.x());\n zoomHandler();\n };\n\n _chart.refocused = function () {\n return _refocused;\n };\n\n _chart.focusChart = function (c) {\n if (!arguments.length) {\n return _focusChart;\n }\n _focusChart = c;\n _chart.on('filtered', function (chart) {\n if (!chart.filter()) {\n dc.events.trigger(function () {\n _focusChart.x().domain(_focusChart.xOriginalDomain());\n });\n } else if (!rangesEqual(chart.filter(), _focusChart.filter())) {\n dc.events.trigger(function () {\n _focusChart.focus(chart.filter());\n });\n }\n });\n return _chart;\n };\n\n function rangesEqual(range1, range2) {\n if (!range1 && !range2) {\n return true;\n }\n else if (!range1 || !range2) {\n return false;\n }\n else if (range1.length === 0 && range2.length === 0) {\n return true;\n }\n else if (range1[0].valueOf() === range2[0].valueOf() &&\n range1[1].valueOf() === range2[1].valueOf()) {\n return true;\n }\n return false;\n }\n\n /**\n #### .brushOn([boolean])\n Turn on/off the brush-based range filter. When brushing is on then user can drag the mouse\n across a chart with a quantitative scale to perform range filtering based on the extent of the\n brush, or click on the bars of an ordinal bar chart or slices of a pie chart to filter and\n unfilter them. However turning on the brush filter will disable other interactive elements on\n the chart such as highlighting, tool tips, and reference lines. Zooming will still be possible\n if enabled, but only via scrolling (panning will be disabled.) Default: true\n\n **/\n _chart.brushOn = function (_) {\n if (!arguments.length) {\n return _brushOn;\n }\n _brushOn = _;\n return _chart;\n };\n\n function hasRangeSelected(range) {\n return range instanceof Array && range.length > 1;\n }\n\n return _chart;\n};\n","/**\n## Stack Mixin\nStack Mixin is an mixin that provides cross-chart support of stackability using d3.layout.stack.\n\n**/\ndc.stackMixin = function (_chart) {\n\n function prepareValues (layer, layerIdx) {\n var valAccessor = layer.accessor || _chart.valueAccessor();\n layer.name = String(layer.name || layerIdx);\n layer.values = layer.group.all().map(function (d, i) {\n return {\n x: _chart.keyAccessor()(d, i),\n y: layer.hidden ? null : valAccessor(d, i),\n data: d,\n layer: layer.name,\n hidden: layer.hidden\n };\n });\n\n layer.values = layer.values.filter(domainFilter());\n return layer.values;\n }\n\n var _stackLayout = d3.layout.stack()\n .values(prepareValues);\n\n var _stack = [];\n var _titles = {};\n\n var _hidableStacks = false;\n\n function domainFilter() {\n if (!_chart.x()) {\n return d3.functor(true);\n }\n var xDomain = _chart.x().domain();\n if (_chart.isOrdinal()) {\n // TODO #416\n //var domainSet = d3.set(xDomain);\n return function () {\n return true; //domainSet.has(p.x);\n };\n }\n if (_chart.elasticX()) {\n return function () { return true; };\n }\n return function (p) {\n //return true;\n return p.x >= xDomain[0] && p.x <= xDomain[xDomain.length - 1];\n };\n }\n\n /**\n #### .stack(group[, name, accessor])\n Stack a new crossfilter group onto this chart with an optional custom value accessor. All stacks\n in the same chart will share the same key accessor and therefore the same set of keys.\n\n For example, in a stacked bar chart, the bars of each stack will be positioned using the same set\n of keys on the x axis, while stacked vertically. If name is specified then it will be used to\n generate the legend label.\n ```js\n // stack group using default accessor\n chart.stack(valueSumGroup)\n // stack group using custom accessor\n .stack(avgByDayGroup, function(d){return d.value.avgByDay;});\n ```\n\n **/\n _chart.stack = function (group, name, accessor) {\n if (!arguments.length) {\n return _stack;\n }\n\n if (arguments.length <= 2) {\n accessor = name;\n }\n\n var layer = {group:group};\n if (typeof name === 'string') {\n layer.name = name;\n }\n if (typeof accessor === 'function') {\n layer.accessor = accessor;\n }\n _stack.push(layer);\n\n return _chart;\n };\n\n dc.override(_chart, 'group', function (g, n, f) {\n if (!arguments.length) {\n return _chart._group();\n }\n _stack = [];\n _titles = {};\n _chart.stack(g, n);\n if (f) {\n _chart.valueAccessor(f);\n }\n return _chart._group(g, n);\n });\n\n /**\n #### .hidableStacks([boolean])\n Allow named stacks to be hidden or shown by clicking on legend items.\n This does not affect the behavior of hideStack or showStack.\n\n **/\n _chart.hidableStacks = function (_) {\n if (!arguments.length) {\n return _hidableStacks;\n }\n _hidableStacks = _;\n return _chart;\n };\n\n function findLayerByName(n) {\n var i = _stack.map(dc.pluck('name')).indexOf(n);\n return _stack[i];\n }\n\n /**\n #### .hideStack(name)\n Hide all stacks on the chart with the given name.\n The chart must be re-rendered for this change to appear.\n\n **/\n _chart.hideStack = function (stackName) {\n var layer = findLayerByName(stackName);\n if (layer) {\n layer.hidden = true;\n }\n return _chart;\n };\n\n /**\n #### .showStack(name)\n Show all stacks on the chart with the given name.\n The chart must be re-rendered for this change to appear.\n\n **/\n _chart.showStack = function (stackName) {\n var layer = findLayerByName(stackName);\n if (layer) {\n layer.hidden = false;\n }\n return _chart;\n };\n\n _chart.getValueAccessorByIndex = function (index) {\n return _stack[index].accessor || _chart.valueAccessor();\n };\n\n _chart.yAxisMin = function () {\n var min = d3.min(flattenStack(), function (p) {\n return (p.y + p.y0 < p.y0) ? (p.y + p.y0) : p.y0;\n });\n\n return dc.utils.subtract(min, _chart.yAxisPadding());\n\n };\n\n _chart.yAxisMax = function () {\n var max = d3.max(flattenStack(), function (p) {\n return p.y + p.y0;\n });\n\n return dc.utils.add(max, _chart.yAxisPadding());\n };\n\n function flattenStack() {\n var valueses = _chart.data().map(function (layer) { return layer.values; });\n return Array.prototype.concat.apply([], valueses);\n }\n\n _chart.xAxisMin = function () {\n var min = d3.min(flattenStack(), dc.pluck('x'));\n return dc.utils.subtract(min, _chart.xAxisPadding());\n };\n\n _chart.xAxisMax = function () {\n var max = d3.max(flattenStack(), dc.pluck('x'));\n return dc.utils.add(max, _chart.xAxisPadding());\n };\n\n /**\n #### .title([stackName], [titleFunction])\n Set or get the title function. Chart class will use this function to render svg title (usually interpreted by\n browser as tooltips) for each child element in the chart, i.e. a slice in a pie chart or a bubble in a bubble chart.\n Almost every chart supports title function however in grid coordinate chart you need to turn off brush in order to\n use title otherwise the brush layer will block tooltip trigger.\n\n If the first argument is a stack name, the title function will get or set the title for that stack. If stackName\n is not provided, the first stack is implied.\n ```js\n // set a title function on 'first stack'\n chart.title('first stack', function(d) { return d.key + ': ' + d.value; });\n // get a title function from 'second stack'\n var secondTitleFunction = chart.title('second stack');\n );\n ```\n **/\n dc.override(_chart, 'title', function (stackName, titleAccessor) {\n if (!stackName) {\n return _chart._title();\n }\n\n if (typeof stackName === 'function') {\n return _chart._title(stackName);\n }\n if (stackName === _chart._groupName && typeof titleAccessor === 'function') {\n return _chart._title(titleAccessor);\n }\n\n if (typeof titleAccessor !== 'function') {\n return _titles[stackName] || _chart._title();\n }\n\n _titles[stackName] = titleAccessor;\n\n return _chart;\n });\n\n /**\n #### .stackLayout([layout])\n Gets or sets the stack layout algorithm, which computes a baseline for each stack and\n propagates it to the next. The default is\n [d3.layout.stack](https://github.com/mbostock/d3/wiki/Stack-Layout#stack).\n **/\n _chart.stackLayout = function (stack) {\n if (!arguments.length) {\n return _stackLayout;\n }\n _stackLayout = stack;\n return _chart;\n };\n\n function visability(l) {\n return !l.hidden;\n }\n\n _chart.data(function () {\n var layers = _stack.filter(visability);\n return layers.length ? _chart.stackLayout()(layers) : [];\n });\n\n _chart._ordinalXDomain = function () {\n var flat = flattenStack().map(dc.pluck('data'));\n var ordered = _chart._computeOrderedGroups(flat);\n return ordered.map(_chart.keyAccessor());\n };\n\n _chart.colorAccessor(function (d) {\n var layer = this.layer || this.name || d.name || d.layer;\n return layer;\n });\n\n _chart.legendables = function () {\n return _stack.map(function (layer, i) {\n return {\n chart:_chart,\n name:layer.name,\n hidden: layer.hidden || false,\n color:_chart.getColor.call(layer, layer.values, i)\n };\n });\n };\n\n _chart.isLegendableHidden = function (d) {\n var layer = findLayerByName(d.name);\n return layer ? layer.hidden : false;\n };\n\n _chart.legendToggle = function (d) {\n if (_hidableStacks) {\n if (_chart.isLegendableHidden(d)) {\n _chart.showStack(d.name);\n } else {\n _chart.hideStack(d.name);\n }\n //_chart.redraw();\n _chart.renderGroup();\n }\n };\n\n return _chart;\n};\n","/**\n## Cap Mixin\nCap is a mixin that groups small data elements below a _cap_ into an *others* grouping for both the\nRow and Pie Charts.\n\nThe top ordered elements in the group up to the cap amount will be kept in the chart, and the rest\nwill be replaced with an *others* element, with value equal to the sum of the replaced values. The\nkeys of the elements below the cap limit are recorded in order to filter by those keys when the\n*others* element is clicked.\n\n**/\ndc.capMixin = function (_chart) {\n\n var _cap = Infinity;\n\n var _othersLabel = 'Others';\n\n var _othersGrouper = function (topRows) {\n var topRowsSum = d3.sum(topRows, _chart.valueAccessor()),\n allRows = _chart.group().all(),\n allRowsSum = d3.sum(allRows, _chart.valueAccessor()),\n topKeys = topRows.map(_chart.keyAccessor()),\n allKeys = allRows.map(_chart.keyAccessor()),\n topSet = d3.set(topKeys),\n others = allKeys.filter(function (d) {return !topSet.has(d);});\n if (allRowsSum > topRowsSum) {\n return topRows.concat([{'others': others, 'key': _othersLabel, 'value': allRowsSum - topRowsSum}]);\n }\n return topRows;\n };\n\n _chart.cappedKeyAccessor = function (d, i) {\n if (d.others) {\n return d.key;\n }\n return _chart.keyAccessor()(d, i);\n };\n\n _chart.cappedValueAccessor = function (d, i) {\n if (d.others) {\n return d.value;\n }\n return _chart.valueAccessor()(d, i);\n };\n\n _chart.data(function (group) {\n if (_cap === Infinity) {\n return _chart._computeOrderedGroups(group.all());\n } else {\n var topRows = group.top(_cap); // ordered by crossfilter group order (default value)\n topRows = _chart._computeOrderedGroups(topRows); // re-order using ordering (default key)\n if (_othersGrouper) {\n return _othersGrouper(topRows);\n }\n return topRows;\n }\n });\n\n /**\n #### .cap([count])\n Get or set the count of elements to that will be included in the cap.\n **/\n _chart.cap = function (_) {\n if (!arguments.length) {\n return _cap;\n }\n _cap = _;\n return _chart;\n };\n\n /**\n #### .othersLabel([label])\n Get or set the label for *Others* slice when slices cap is specified. Default label is **Others**.\n **/\n _chart.othersLabel = function (_) {\n if (!arguments.length) {\n return _othersLabel;\n }\n _othersLabel = _;\n return _chart;\n };\n\n /**\n #### .othersGrouper([grouperFunction])\n Get or set the grouper function that will perform the insertion of data for the *Others* slice\n if the slices cap is specified. If set to a falsy value, no others will be added. By default the\n grouper function computes the sum of all values below the cap.\n ```js\n chart.othersGrouper(function (data) {\n // compute the value for others, presumably the sum of all values below the cap\n var othersSum = yourComputeOthersValueLogic(data)\n\n // the keys are needed to properly filter when the others element is clicked\n var othersKeys = yourComputeOthersKeysArrayLogic(data);\n\n // add the others row to the dataset\n data.push({'key': 'Others', 'value': othersSum, 'others': othersKeys });\n\n return data;\n });\n ```\n **/\n _chart.othersGrouper = function (_) {\n if (!arguments.length) {\n return _othersGrouper;\n }\n _othersGrouper = _;\n return _chart;\n };\n\n dc.override(_chart, 'onClick', function (d) {\n if (d.others) {\n _chart.filter([d.others]);\n }\n _chart._onClick(d);\n });\n\n return _chart;\n};\n","/**\n## Bubble Mixin\nIncludes: [Color Mixin](#color-mixin)\n\nThis Mixin provides reusable functionalities for any chart that needs to visualize data using bubbles.\n\n**/\ndc.bubbleMixin = function (_chart) {\n var _maxBubbleRelativeSize = 0.3;\n var _minRadiusWithLabel = 10;\n\n _chart.BUBBLE_NODE_CLASS = 'node';\n _chart.BUBBLE_CLASS = 'bubble';\n _chart.MIN_RADIUS = 10;\n\n _chart = dc.colorMixin(_chart);\n\n _chart.renderLabel(true);\n\n _chart.data(function (group) {\n return group.top(Infinity);\n });\n\n var _r = d3.scale.linear().domain([0, 100]);\n\n var _rValueAccessor = function (d) {\n return d.r;\n };\n\n /**\n #### .r([bubbleRadiusScale])\n Get or set the bubble radius scale. By default the bubble chart uses\n `d3.scale.linear().domain([0, 100])` as its r scale .\n\n **/\n _chart.r = function (_) {\n if (!arguments.length) {\n return _r;\n }\n _r = _;\n return _chart;\n };\n\n /**\n #### .radiusValueAccessor([radiusValueAccessor])\n Get or set the radius value accessor function. If set, the radius value accessor function will\n be used to retrieve a data value for each bubble. The data retrieved then will be mapped using\n the r scale to the actual bubble radius. This allows you to encode a data dimension using bubble\n size.\n\n **/\n _chart.radiusValueAccessor = function (_) {\n if (!arguments.length) {\n return _rValueAccessor;\n }\n _rValueAccessor = _;\n return _chart;\n };\n\n _chart.rMin = function () {\n var min = d3.min(_chart.data(), function (e) {\n return _chart.radiusValueAccessor()(e);\n });\n return min;\n };\n\n _chart.rMax = function () {\n var max = d3.max(_chart.data(), function (e) {\n return _chart.radiusValueAccessor()(e);\n });\n return max;\n };\n\n _chart.bubbleR = function (d) {\n var value = _chart.radiusValueAccessor()(d);\n var r = _chart.r()(value);\n if (isNaN(r) || value <= 0) {\n r = 0;\n }\n return r;\n };\n\n var labelFunction = function (d) {\n return _chart.label()(d);\n };\n\n var labelOpacity = function (d) {\n return (_chart.bubbleR(d) > _minRadiusWithLabel) ? 1 : 0;\n };\n\n _chart._doRenderLabel = function (bubbleGEnter) {\n if (_chart.renderLabel()) {\n var label = bubbleGEnter.select('text');\n\n if (label.empty()) {\n label = bubbleGEnter.append('text')\n .attr('text-anchor', 'middle')\n .attr('dy', '.3em')\n .on('click', _chart.onClick);\n }\n\n label\n .attr('opacity', 0)\n .text(labelFunction);\n dc.transition(label, _chart.transitionDuration())\n .attr('opacity', labelOpacity);\n }\n };\n\n _chart.doUpdateLabels = function (bubbleGEnter) {\n if (_chart.renderLabel()) {\n var labels = bubbleGEnter.selectAll('text')\n .text(labelFunction);\n dc.transition(labels, _chart.transitionDuration())\n .attr('opacity', labelOpacity);\n }\n };\n\n var titleFunction = function (d) {\n return _chart.title()(d);\n };\n\n _chart._doRenderTitles = function (g) {\n if (_chart.renderTitle()) {\n var title = g.select('title');\n\n if (title.empty()) {\n g.append('title').text(titleFunction);\n }\n }\n };\n\n _chart.doUpdateTitles = function (g) {\n if (_chart.renderTitle()) {\n g.selectAll('title').text(titleFunction);\n }\n };\n\n /**\n #### .minRadiusWithLabel([radius])\n Get or set the minimum radius for label rendering. If a bubble's radius is less than this value\n then no label will be rendered. Default: 10\n\n **/\n _chart.minRadiusWithLabel = function (_) {\n if (!arguments.length) {\n return _minRadiusWithLabel;\n }\n _minRadiusWithLabel = _;\n return _chart;\n };\n\n /**\n #### .maxBubbleRelativeSize([relativeSize])\n Get or set the maximum relative size of a bubble to the length of x axis. This value is useful\n when the difference in radius between bubbles is too great. Default: 0.3\n\n **/\n _chart.maxBubbleRelativeSize = function (_) {\n if (!arguments.length) {\n return _maxBubbleRelativeSize;\n }\n _maxBubbleRelativeSize = _;\n return _chart;\n };\n\n _chart.fadeDeselectedArea = function () {\n if (_chart.hasFilter()) {\n _chart.selectAll('g.' + _chart.BUBBLE_NODE_CLASS).each(function (d) {\n if (_chart.isSelectedNode(d)) {\n _chart.highlightSelected(this);\n } else {\n _chart.fadeDeselected(this);\n }\n });\n } else {\n _chart.selectAll('g.' + _chart.BUBBLE_NODE_CLASS).each(function () {\n _chart.resetHighlight(this);\n });\n }\n };\n\n _chart.isSelectedNode = function (d) {\n return _chart.hasFilter(d.key);\n };\n\n _chart.onClick = function (d) {\n var filter = d.key;\n dc.events.trigger(function () {\n _chart.filter(filter);\n _chart.redrawGroup();\n });\n };\n\n return _chart;\n};\n","/**\n## Pie Chart\nIncludes: [Cap Mixin](#cap-mixin), [Color Mixin](#color-mixin), [Base Mixin](#base-mixin)\n\nThe pie chart implementation is usually used to visualize a small categorical distribution. The pie\nchart uses keyAccessor to determine the slices, and valueAccessor to calculate the size of each\nslice relative to the sum of all values. Slices are ordered by `.ordering` which defaults to sorting\nby key.\n\nExamples:\n\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n#### dc.pieChart(parent[, chartGroup])\nCreate a pie chart instance and attaches it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created pie chart instance\n\n```js\n// create a pie chart under #chart-container1 element using the default global chart group\nvar chart1 = dc.pieChart('#chart-container1');\n// create a pie chart under #chart-container2 element using chart group A\nvar chart2 = dc.pieChart('#chart-container2', 'chartGroupA');\n```\n\n**/\ndc.pieChart = function (parent, chartGroup) {\n var DEFAULT_MIN_ANGLE_FOR_LABEL = 0.5;\n\n var _sliceCssClass = 'pie-slice';\n var _emptyCssClass = 'empty-chart';\n var _emptyTitle = 'empty';\n\n var _radius,\n _innerRadius = 0;\n\n var _g;\n var _cx;\n var _cy;\n var _minAngleForLabel = DEFAULT_MIN_ANGLE_FOR_LABEL;\n var _externalLabelRadius;\n var _chart = dc.capMixin(dc.colorMixin(dc.baseMixin({})));\n\n _chart.colorAccessor(_chart.cappedKeyAccessor);\n _chart.legendLabelAccessor(_chart.cappedKeyAccessor);\n\n _chart.title(function (d) {\n return _chart.cappedKeyAccessor(d) + ': ' + _chart.cappedValueAccessor(d);\n });\n\n /**\n #### .slicesCap([cap])\n Get or set the maximum number of slices the pie chart will generate. The top slices are determined by\n value from high to low. Other slices exeeding the cap will be rolled up into one single *Others* slice.\n The resulting data will still be sorted by .ordering (default by key).\n\n **/\n _chart.slicesCap = _chart.cap;\n\n _chart.label(_chart.cappedKeyAccessor);\n _chart.renderLabel(true);\n\n _chart.transitionDuration(350);\n\n _chart._doRender = function () {\n _chart.resetSvg();\n\n _g = _chart.svg()\n .append('g')\n .attr('transform', 'translate(' + _chart.cx() + ',' + _chart.cy() + ')');\n\n drawChart();\n\n return _chart;\n };\n\n function drawChart() {\n // set radius on basis of chart dimension if missing\n _radius = _radius ? _radius : d3.min([_chart.width(), _chart.height()]) / 2;\n\n var arc = buildArcs();\n\n var pie = pieLayout();\n var pieData;\n // if we have data...\n if (d3.sum(_chart.data(), _chart.valueAccessor())) {\n pieData = pie(_chart.data());\n _g.classed(_emptyCssClass, false);\n } else {\n // otherwise we'd be getting NaNs, so override\n // note: abuse others for its ignoring the value accessor\n pieData = pie([{key:_emptyTitle, value:1, others: [_emptyTitle]}]);\n _g.classed(_emptyCssClass, true);\n }\n\n if (_g) {\n var slices = _g.selectAll('g.' + _sliceCssClass)\n .data(pieData);\n\n createElements(slices, arc, pieData);\n\n updateElements(pieData, arc);\n\n removeElements(slices);\n\n highlightFilter();\n }\n }\n\n function createElements(slices, arc, pieData) {\n var slicesEnter = createSliceNodes(slices);\n\n createSlicePath(slicesEnter, arc);\n\n createTitles(slicesEnter);\n\n createLabels(pieData, arc);\n }\n\n function createSliceNodes(slices) {\n var slicesEnter = slices\n .enter()\n .append('g')\n .attr('class', function (d, i) {\n return _sliceCssClass + ' _' + i;\n });\n return slicesEnter;\n }\n\n function createSlicePath(slicesEnter, arc) {\n var slicePath = slicesEnter.append('path')\n .attr('fill', fill)\n .on('click', onClick)\n .attr('d', function (d, i) {\n return safeArc(d, i, arc);\n });\n\n dc.transition(slicePath, _chart.transitionDuration(), function (s) {\n s.attrTween('d', tweenPie);\n });\n }\n\n function createTitles(slicesEnter) {\n if (_chart.renderTitle()) {\n slicesEnter.append('title').text(function (d) {\n return _chart.title()(d.data);\n });\n }\n }\n\n function positionLabels(labelsEnter, arc) {\n dc.transition(labelsEnter, _chart.transitionDuration())\n .attr('transform', function (d) {\n return labelPosition(d, arc);\n })\n .attr('text-anchor', 'middle')\n .text(function (d) {\n var data = d.data;\n if ((sliceHasNoData(data) || sliceTooSmall(d)) && !isSelectedSlice(d)) {\n return '';\n }\n return _chart.label()(d.data);\n });\n }\n\n function createLabels(pieData, arc) {\n if (_chart.renderLabel()) {\n var labels = _g.selectAll('text.' + _sliceCssClass)\n .data(pieData);\n\n labels.exit().remove();\n\n var labelsEnter = labels\n .enter()\n .append('text')\n .attr('class', function (d, i) {\n var classes = _sliceCssClass + ' _' + i;\n if (_externalLabelRadius) {\n classes += ' external';\n }\n return classes;\n })\n .on('click', onClick);\n positionLabels(labelsEnter, arc);\n }\n }\n\n function updateElements(pieData, arc) {\n updateSlicePaths(pieData, arc);\n updateLabels(pieData, arc);\n updateTitles(pieData);\n }\n\n function updateSlicePaths(pieData, arc) {\n var slicePaths = _g.selectAll('g.' + _sliceCssClass)\n .data(pieData)\n .select('path')\n .attr('d', function (d, i) {\n return safeArc(d, i, arc);\n });\n dc.transition(slicePaths, _chart.transitionDuration(),\n function (s) {\n s.attrTween('d', tweenPie);\n }).attr('fill', fill);\n }\n\n function updateLabels(pieData, arc) {\n if (_chart.renderLabel()) {\n var labels = _g.selectAll('text.' + _sliceCssClass)\n .data(pieData);\n positionLabels(labels, arc);\n }\n }\n\n function updateTitles(pieData) {\n if (_chart.renderTitle()) {\n _g.selectAll('g.' + _sliceCssClass)\n .data(pieData)\n .select('title')\n .text(function (d) {\n return _chart.title()(d.data);\n });\n }\n }\n\n function removeElements(slices) {\n slices.exit().remove();\n }\n\n function highlightFilter() {\n if (_chart.hasFilter()) {\n _chart.selectAll('g.' + _sliceCssClass).each(function (d) {\n if (isSelectedSlice(d)) {\n _chart.highlightSelected(this);\n } else {\n _chart.fadeDeselected(this);\n }\n });\n } else {\n _chart.selectAll('g.' + _sliceCssClass).each(function () {\n _chart.resetHighlight(this);\n });\n }\n }\n\n /**\n #### .innerRadius([innerRadius])\n Get or set the inner radius of the pie chart. If the inner radius is greater than 0px then the\n pie chart will be rendered as a doughnut chart. Default inner radius is 0px.\n\n **/\n _chart.innerRadius = function (r) {\n if (!arguments.length) {\n return _innerRadius;\n }\n _innerRadius = r;\n return _chart;\n };\n\n /**\n #### .radius([radius])\n Get or set the outer radius. If the radius is not set, it will be half of the minimum of the\n chart width and height.\n\n **/\n _chart.radius = function (r) {\n if (!arguments.length) {\n return _radius;\n }\n _radius = r;\n return _chart;\n };\n\n /**\n #### .cx([cx])\n Get or set center x coordinate position. Default is center of svg.\n\n **/\n _chart.cx = function (cx) {\n if (!arguments.length) {\n return (_cx || _chart.width() / 2);\n }\n _cx = cx;\n return _chart;\n };\n\n /**\n #### .cy([cy])\n Get or set center y coordinate position. Default is center of svg.\n\n **/\n _chart.cy = function (cy) {\n if (!arguments.length) {\n return (_cy || _chart.height() / 2);\n }\n _cy = cy;\n return _chart;\n };\n\n function buildArcs() {\n return d3.svg.arc().outerRadius(_radius).innerRadius(_innerRadius);\n }\n\n function isSelectedSlice(d) {\n return _chart.hasFilter(_chart.cappedKeyAccessor(d.data));\n }\n\n _chart._doRedraw = function () {\n drawChart();\n return _chart;\n };\n\n /**\n #### .minAngleForLabel([minAngle])\n Get or set the minimal slice angle for label rendering. Any slice with a smaller angle will not\n display a slice label. Default min angle is 0.5.\n **/\n _chart.minAngleForLabel = function (_) {\n if (!arguments.length) {\n return _minAngleForLabel;\n }\n _minAngleForLabel = _;\n return _chart;\n };\n\n function pieLayout() {\n return d3.layout.pie().sort(null).value(_chart.cappedValueAccessor);\n }\n\n function sliceTooSmall(d) {\n var angle = (d.endAngle - d.startAngle);\n return isNaN(angle) || angle < _minAngleForLabel;\n }\n\n function sliceHasNoData(d) {\n return _chart.cappedValueAccessor(d) === 0;\n }\n\n function tweenPie(b) {\n b.innerRadius = _innerRadius;\n var current = this._current;\n if (isOffCanvas(current)) {\n current = {startAngle: 0, endAngle: 0};\n }\n var i = d3.interpolate(current, b);\n this._current = i(0);\n return function (t) {\n return safeArc(i(t), 0, buildArcs());\n };\n }\n\n function isOffCanvas(current) {\n return !current || isNaN(current.startAngle) || isNaN(current.endAngle);\n }\n\n function fill(d, i) {\n return _chart.getColor(d.data, i);\n }\n\n function onClick(d, i) {\n if (_g.attr('class') !== _emptyCssClass) {\n _chart.onClick(d.data, i);\n }\n }\n\n function safeArc(d, i, arc) {\n var path = arc(d, i);\n if (path.indexOf('NaN') >= 0) {\n path = 'M0,0';\n }\n return path;\n }\n\n /**\n #### .emptyTitle([title])\n Title to use for the only slice when there is no data\n */\n _chart.emptyTitle = function (title) {\n if (arguments.length === 0) {\n return _emptyTitle;\n }\n _emptyTitle = title;\n return _chart;\n };\n\n /**\n #### .externalLabels([radius])\n Position slice labels offset from the outer edge of the chart\n\n The given argument sets the radial offset.\n */\n _chart.externalLabels = function (radius) {\n if (arguments.length === 0) {\n return _externalLabelRadius;\n } else if (radius) {\n _externalLabelRadius = radius;\n } else {\n _externalLabelRadius = undefined;\n }\n\n return _chart;\n };\n\n function labelPosition(d, arc) {\n var centroid;\n if (_externalLabelRadius) {\n centroid = d3.svg.arc()\n .outerRadius(_radius + _externalLabelRadius)\n .innerRadius(_radius + _externalLabelRadius)\n .centroid(d);\n } else {\n centroid = arc.centroid(d);\n }\n if (isNaN(centroid[0]) || isNaN(centroid[1])) {\n return 'translate(0,0)';\n } else {\n return 'translate(' + centroid + ')';\n }\n }\n\n _chart.legendables = function () {\n return _chart.data().map(function (d, i) {\n var legendable = { name: _chart.legendLabelAccessor().call(this, d, i),\n data: d.value, others: d.others, chart:_chart };\n legendable.color = _chart.getColor(d, i);\n return legendable;\n });\n };\n\n _chart.legendHighlight = function (d) {\n highlightSliceFromLegendable(d, true);\n };\n\n _chart.legendReset = function (d) {\n highlightSliceFromLegendable(d, false);\n };\n\n _chart.legendToggle = function (d) {\n _chart.onClick({key: d.name, others: d.others});\n };\n\n function highlightSliceFromLegendable(legendable, highlighted) {\n _chart.selectAll('g.pie-slice').each(function (d) {\n if (legendable.name === d.data.key) {\n d3.select(this).classed('highlight', highlighted);\n }\n });\n }\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Bar Chart\nIncludes: [Stack Mixin](#stack Mixin), [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nConcrete bar chart/histogram implementation.\n\nExamples:\n\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n* [Canadian City Crime Stats](http://dc-js.github.com/dc.js/crime/index.html)\n#### dc.barChart(parent[, chartGroup])\nCreate a bar chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection | compositeChart - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n If the bar chart is a sub-chart in a [Composite Chart](#composite-chart) then pass in the parent composite\n chart instance.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created bar chart instance\n\n```js\n// create a bar chart under #chart-container1 element using the default global chart group\nvar chart1 = dc.barChart('#chart-container1');\n// create a bar chart under #chart-container2 element using chart group A\nvar chart2 = dc.barChart('#chart-container2', 'chartGroupA');\n// create a sub-chart under a composite parent chart\nvar chart3 = dc.barChart(compositeChart);\n```\n\n**/\ndc.barChart = function (parent, chartGroup) {\n var MIN_BAR_WIDTH = 1;\n var DEFAULT_GAP_BETWEEN_BARS = 2;\n\n var _chart = dc.stackMixin(dc.coordinateGridMixin({}));\n\n var _gap = DEFAULT_GAP_BETWEEN_BARS;\n var _centerBar = false;\n var _alwaysUseRounding = false;\n\n var _barWidth;\n\n dc.override(_chart, 'rescale', function () {\n _chart._rescale();\n _barWidth = undefined;\n });\n\n dc.override(_chart, 'render', function () {\n if (_chart.round() && _centerBar && !_alwaysUseRounding) {\n dc.logger.warn('By default, brush rounding is disabled if bars are centered. ' +\n 'See dc.js bar chart API documentation for details.');\n }\n\n _chart._render();\n });\n\n _chart.plotData = function () {\n var layers = _chart.chartBodyG().selectAll('g.stack')\n .data(_chart.data());\n\n calculateBarWidth();\n\n layers\n .enter()\n .append('g')\n .attr('class', function (d, i) {\n return 'stack ' + '_' + i;\n });\n\n layers.each(function (d, i) {\n var layer = d3.select(this);\n\n renderBars(layer, i, d);\n });\n };\n\n function barHeight(d) {\n return dc.utils.safeNumber(Math.abs(_chart.y()(d.y + d.y0) - _chart.y()(d.y0)));\n }\n\n function renderBars(layer, layerIndex, d) {\n var bars = layer.selectAll('rect.bar')\n .data(d.values, dc.pluck('x'));\n\n var enter = bars.enter()\n .append('rect')\n .attr('class', 'bar')\n .attr('fill', dc.pluck('data', _chart.getColor))\n .attr('y', _chart.yAxisHeight())\n .attr('height', 0);\n\n if (_chart.renderTitle()) {\n enter.append('title').text(dc.pluck('data', _chart.title(d.name)));\n }\n\n if (_chart.isOrdinal()) {\n bars.on('click', _chart.onClick);\n }\n\n dc.transition(bars, _chart.transitionDuration())\n .attr('x', function (d) {\n var x = _chart.x()(d.x);\n if (_centerBar) {\n x -= _barWidth / 2;\n }\n if (_chart.isOrdinal() && _gap !== undefined) {\n x += _gap / 2;\n }\n return dc.utils.safeNumber(x);\n })\n .attr('y', function (d) {\n var y = _chart.y()(d.y + d.y0);\n\n if (d.y < 0) {\n y -= barHeight(d);\n }\n\n return dc.utils.safeNumber(y);\n })\n .attr('width', _barWidth)\n .attr('height', function (d) {\n return barHeight(d);\n })\n .attr('fill', dc.pluck('data', _chart.getColor))\n .select('title').text(dc.pluck('data', _chart.title(d.name)));\n\n dc.transition(bars.exit(), _chart.transitionDuration())\n .attr('height', 0)\n .remove();\n }\n\n function calculateBarWidth() {\n if (_barWidth === undefined) {\n var numberOfBars = _chart.xUnitCount();\n\n // please can't we always use rangeBands for bar charts?\n if (_chart.isOrdinal() && _gap === undefined) {\n _barWidth = Math.floor(_chart.x().rangeBand());\n } else if (_gap) {\n _barWidth = Math.floor((_chart.xAxisLength() - (numberOfBars - 1) * _gap) / numberOfBars);\n } else {\n _barWidth = Math.floor(_chart.xAxisLength() / (1 + _chart.barPadding()) / numberOfBars);\n }\n\n if (_barWidth === Infinity || isNaN(_barWidth) || _barWidth < MIN_BAR_WIDTH) {\n _barWidth = MIN_BAR_WIDTH;\n }\n }\n }\n\n _chart.fadeDeselectedArea = function () {\n var bars = _chart.chartBodyG().selectAll('rect.bar');\n var extent = _chart.brush().extent();\n\n if (_chart.isOrdinal()) {\n if (_chart.hasFilter()) {\n bars.classed(dc.constants.SELECTED_CLASS, function (d) {\n return _chart.hasFilter(d.x);\n });\n bars.classed(dc.constants.DESELECTED_CLASS, function (d) {\n return !_chart.hasFilter(d.x);\n });\n } else {\n bars.classed(dc.constants.SELECTED_CLASS, false);\n bars.classed(dc.constants.DESELECTED_CLASS, false);\n }\n } else {\n if (!_chart.brushIsEmpty(extent)) {\n var start = extent[0];\n var end = extent[1];\n\n bars.classed(dc.constants.DESELECTED_CLASS, function (d) {\n return d.x < start || d.x >= end;\n });\n } else {\n bars.classed(dc.constants.DESELECTED_CLASS, false);\n }\n }\n };\n\n /**\n #### .centerBar(boolean)\n Whether the bar chart will render each bar centered around the data position on x axis. Default: false\n\n **/\n _chart.centerBar = function (_) {\n if (!arguments.length) {\n return _centerBar;\n }\n _centerBar = _;\n return _chart;\n };\n\n dc.override(_chart, 'onClick', function (d) {\n _chart._onClick(d.data);\n });\n\n /**\n #### .barPadding([padding])\n Get or set the spacing between bars as a fraction of bar size. Valid values are between 0-1.\n Setting this value will also remove any previously set `gap`. See the\n [d3 docs](https://github.com/mbostock/d3/wiki/Ordinal-Scales#wiki-ordinal_rangeBands)\n for a visual description of how the padding is applied.\n **/\n _chart.barPadding = function (_) {\n if (!arguments.length) {\n return _chart._rangeBandPadding();\n }\n _chart._rangeBandPadding(_);\n _gap = undefined;\n return _chart;\n };\n\n _chart._useOuterPadding = function () {\n return _gap === undefined;\n };\n\n /**\n #### .outerPadding([padding])\n Get or set the outer padding on an ordinal bar chart. This setting has no effect on non-ordinal charts.\n Will pad the width by `padding * barWidth` on each side of the chart.\n\n Default: 0.5\n **/\n _chart.outerPadding = _chart._outerRangeBandPadding;\n\n /**\n #### .gap(gapBetweenBars)\n Manually set fixed gap (in px) between bars instead of relying on the default auto-generated\n gap. By default the bar chart implementation will calculate and set the gap automatically\n based on the number of data points and the length of the x axis.\n\n **/\n _chart.gap = function (_) {\n if (!arguments.length) {\n return _gap;\n }\n _gap = _;\n return _chart;\n };\n\n _chart.extendBrush = function () {\n var extent = _chart.brush().extent();\n if (_chart.round() && (!_centerBar || _alwaysUseRounding)) {\n extent[0] = extent.map(_chart.round())[0];\n extent[1] = extent.map(_chart.round())[1];\n\n _chart.chartBodyG().select('.brush')\n .call(_chart.brush().extent(extent));\n }\n\n return extent;\n };\n\n /**\n #### .alwaysUseRounding([boolean])\n Set or get whether rounding is enabled when bars are centered. Default: false. If false, using\n rounding with centered bars will result in a warning and rounding will be ignored. This flag\n has no effect if bars are not centered.\n\n When using standard d3.js rounding methods, the brush often doesn't align correctly with\n centered bars since the bars are offset. The rounding function must add an offset to\n compensate, such as in the following example.\n ```js\n chart.round(function(n) {return Math.floor(n)+0.5});\n ```\n **/\n _chart.alwaysUseRounding = function (_) {\n if (!arguments.length) {\n return _alwaysUseRounding;\n }\n _alwaysUseRounding = _;\n return _chart;\n };\n\n function colorFilter(color, inv) {\n return function () {\n var item = d3.select(this);\n var match = item.attr('fill') === color;\n return inv ? !match : match;\n };\n }\n\n _chart.legendHighlight = function (d) {\n if (!_chart.isLegendableHidden(d)) {\n _chart.g().selectAll('rect.bar')\n .classed('highlight', colorFilter(d.color))\n .classed('fadeout', colorFilter(d.color, true));\n }\n };\n\n _chart.legendReset = function () {\n _chart.g().selectAll('rect.bar')\n .classed('highlight', false)\n .classed('fadeout', false);\n };\n\n dc.override(_chart, 'xAxisMax', function () {\n var max = this._xAxisMax();\n if ('resolution' in _chart.xUnits()) {\n var res = _chart.xUnits().resolution;\n max += res;\n }\n return max;\n });\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Line Chart\nIncludes [Stack Mixin](#stack-mixin), [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nConcrete line/area chart implementation.\n\nExamples:\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n* [Canadian City Crime Stats](http://dc-js.github.com/dc.js/crime/index.html)\n#### dc.lineChart(parent[, chartGroup])\nCreate a line chart instance and attach it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection | compositeChart - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n If the line chart is a sub-chart in a [Composite Chart](#composite-chart) then pass in the parent composite\n chart instance.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created line chart instance\n\n```js\n// create a line chart under #chart-container1 element using the default global chart group\nvar chart1 = dc.lineChart('#chart-container1');\n// create a line chart under #chart-container2 element using chart group A\nvar chart2 = dc.lineChart('#chart-container2', 'chartGroupA');\n// create a sub-chart under a composite parent chart\nvar chart3 = dc.lineChart(compositeChart);\n```\n\n**/\ndc.lineChart = function (parent, chartGroup) {\n var DEFAULT_DOT_RADIUS = 5;\n var TOOLTIP_G_CLASS = 'dc-tooltip';\n var DOT_CIRCLE_CLASS = 'dot';\n var Y_AXIS_REF_LINE_CLASS = 'yRef';\n var X_AXIS_REF_LINE_CLASS = 'xRef';\n var DEFAULT_DOT_OPACITY = 1e-6;\n\n var _chart = dc.stackMixin(dc.coordinateGridMixin({}));\n var _renderArea = false;\n var _dotRadius = DEFAULT_DOT_RADIUS;\n var _dataPointRadius = null;\n var _dataPointFillOpacity = DEFAULT_DOT_OPACITY;\n var _dataPointStrokeOpacity = DEFAULT_DOT_OPACITY;\n var _interpolate = 'linear';\n var _tension = 0.7;\n var _defined;\n var _dashStyle;\n var _xyTipsOn = true;\n\n _chart.transitionDuration(500);\n _chart._rangeBandPadding(1);\n\n _chart.plotData = function () {\n var chartBody = _chart.chartBodyG();\n var layersList = chartBody.selectAll('g.stack-list');\n\n if (layersList.empty()) {\n layersList = chartBody.append('g').attr('class', 'stack-list');\n }\n\n var layers = layersList.selectAll('g.stack').data(_chart.data());\n\n var layersEnter = layers\n .enter()\n .append('g')\n .attr('class', function (d, i) {\n return 'stack ' + '_' + i;\n });\n\n drawLine(layersEnter, layers);\n\n drawArea(layersEnter, layers);\n\n drawDots(chartBody, layers);\n };\n\n /**\n #### .interpolate([value])\n Gets or sets the interpolator to use for lines drawn, by string name, allowing e.g. step\n functions, splines, and cubic interpolation. This is passed to\n [d3.svg.line.interpolate](https://github.com/mbostock/d3/wiki/SVG-Shapes#line_interpolate) and\n [d3.svg.area.interpolate](https://github.com/mbostock/d3/wiki/SVG-Shapes#area_interpolate),\n where you can find a complete list of valid arguments\n **/\n _chart.interpolate = function (_) {\n if (!arguments.length) {\n return _interpolate;\n }\n _interpolate = _;\n return _chart;\n };\n\n /**\n #### .tension([value])\n Gets or sets the tension to use for lines drawn, in the range 0 to 1.\n This parameter further customizes the interpolation behavior. It is passed to\n [d3.svg.line.tension](https://github.com/mbostock/d3/wiki/SVG-Shapes#line_tension) and\n [d3.svg.area.tension](https://github.com/mbostock/d3/wiki/SVG-Shapes#area_tension). Default:\n 0.7\n **/\n _chart.tension = function (_) {\n if (!arguments.length) {\n return _tension;\n }\n _tension = _;\n return _chart;\n };\n\n /**\n #### .defined([value])\n Gets or sets a function that will determine discontinuities in the line which should be\n skipped: the path will be broken into separate subpaths if some points are undefined.\n This function is passed to\n [d3.svg.line.defined](https://github.com/mbostock/d3/wiki/SVG-Shapes#line_defined)\n\n Note: crossfilter will sometimes coerce nulls to 0, so you may need to carefully write\n custom reduce functions to get this to work, depending on your data. See\n https://github.com/dc-js/dc.js/issues/615#issuecomment-49089248\n **/\n _chart.defined = function (_) {\n if (!arguments.length) {\n return _defined;\n }\n _defined = _;\n return _chart;\n };\n\n /**\n #### .dashStyle([array])\n Set the line's d3 dashstyle. This value becomes the 'stroke-dasharray' of line. Defaults to empty\n array (solid line).\n ```js\n // create a Dash Dot Dot Dot\n chart.dashStyle([3,1,1,1]);\n ```\n **/\n _chart.dashStyle = function (_) {\n if (!arguments.length) {\n return _dashStyle;\n }\n _dashStyle = _;\n return _chart;\n };\n\n /**\n #### .renderArea([boolean])\n Get or set render area flag. If the flag is set to true then the chart will render the area\n beneath each line and the line chart effectively becomes an area chart.\n\n **/\n _chart.renderArea = function (_) {\n if (!arguments.length) {\n return _renderArea;\n }\n _renderArea = _;\n return _chart;\n };\n\n function colors(d, i) {\n return _chart.getColor.call(d, d.values, i);\n }\n\n function drawLine(layersEnter, layers) {\n var line = d3.svg.line()\n .x(function (d) {\n return _chart.x()(d.x);\n })\n .y(function (d) {\n return _chart.y()(d.y + d.y0);\n })\n .interpolate(_interpolate)\n .tension(_tension);\n if (_defined) {\n line.defined(_defined);\n }\n\n var path = layersEnter.append('path')\n .attr('class', 'line')\n .attr('stroke', colors);\n if (_dashStyle) {\n path.attr('stroke-dasharray', _dashStyle);\n }\n\n dc.transition(layers.select('path.line'), _chart.transitionDuration())\n //.ease('linear')\n .attr('stroke', colors)\n .attr('d', function (d) {\n return safeD(line(d.values));\n });\n }\n\n function drawArea(layersEnter, layers) {\n if (_renderArea) {\n var area = d3.svg.area()\n .x(function (d) {\n return _chart.x()(d.x);\n })\n .y(function (d) {\n return _chart.y()(d.y + d.y0);\n })\n .y0(function (d) {\n return _chart.y()(d.y0);\n })\n .interpolate(_interpolate)\n .tension(_tension);\n if (_defined) {\n area.defined(_defined);\n }\n\n layersEnter.append('path')\n .attr('class', 'area')\n .attr('fill', colors)\n .attr('d', function (d) {\n return safeD(area(d.values));\n });\n\n dc.transition(layers.select('path.area'), _chart.transitionDuration())\n //.ease('linear')\n .attr('fill', colors)\n .attr('d', function (d) {\n return safeD(area(d.values));\n });\n }\n }\n\n function safeD (d) {\n return (!d || d.indexOf('NaN') >= 0) ? 'M0,0' : d;\n }\n\n function drawDots(chartBody, layers) {\n if (!_chart.brushOn() && _chart.xyTipsOn()) {\n var tooltipListClass = TOOLTIP_G_CLASS + '-list';\n var tooltips = chartBody.select('g.' + tooltipListClass);\n\n if (tooltips.empty()) {\n tooltips = chartBody.append('g').attr('class', tooltipListClass);\n }\n\n layers.each(function (d, layerIndex) {\n var points = d.values;\n if (_defined) {\n points = points.filter(_defined);\n }\n\n var g = tooltips.select('g.' + TOOLTIP_G_CLASS + '._' + layerIndex);\n if (g.empty()) {\n g = tooltips.append('g').attr('class', TOOLTIP_G_CLASS + ' _' + layerIndex);\n }\n\n createRefLines(g);\n\n var dots = g.selectAll('circle.' + DOT_CIRCLE_CLASS)\n .data(points, dc.pluck('x'));\n\n dots.enter()\n .append('circle')\n .attr('class', DOT_CIRCLE_CLASS)\n .attr('r', getDotRadius())\n .style('fill-opacity', _dataPointFillOpacity)\n .style('stroke-opacity', _dataPointStrokeOpacity)\n .on('mousemove', function () {\n var dot = d3.select(this);\n showDot(dot);\n showRefLines(dot, g);\n })\n .on('mouseout', function () {\n var dot = d3.select(this);\n hideDot(dot);\n hideRefLines(g);\n });\n\n dots\n .attr('cx', function (d) {\n return dc.utils.safeNumber(_chart.x()(d.x));\n })\n .attr('cy', function (d) {\n return dc.utils.safeNumber(_chart.y()(d.y + d.y0));\n })\n .attr('fill', _chart.getColor)\n .call(renderTitle, d);\n\n dots.exit().remove();\n });\n }\n }\n\n function createRefLines(g) {\n var yRefLine = g.select('path.' + Y_AXIS_REF_LINE_CLASS).empty() ?\n g.append('path').attr('class', Y_AXIS_REF_LINE_CLASS) : g.select('path.' + Y_AXIS_REF_LINE_CLASS);\n yRefLine.style('display', 'none').attr('stroke-dasharray', '5,5');\n\n var xRefLine = g.select('path.' + X_AXIS_REF_LINE_CLASS).empty() ?\n g.append('path').attr('class', X_AXIS_REF_LINE_CLASS) : g.select('path.' + X_AXIS_REF_LINE_CLASS);\n xRefLine.style('display', 'none').attr('stroke-dasharray', '5,5');\n }\n\n function showDot(dot) {\n dot.style('fill-opacity', 0.8);\n dot.style('stroke-opacity', 0.8);\n dot.attr('r', _dotRadius);\n return dot;\n }\n\n function showRefLines(dot, g) {\n var x = dot.attr('cx');\n var y = dot.attr('cy');\n var yAxisX = (_chart._yAxisX() - _chart.margins().left);\n var yAxisRefPathD = 'M' + yAxisX + ' ' + y + 'L' + (x) + ' ' + (y);\n var xAxisRefPathD = 'M' + x + ' ' + _chart.yAxisHeight() + 'L' + x + ' ' + y;\n g.select('path.' + Y_AXIS_REF_LINE_CLASS).style('display', '').attr('d', yAxisRefPathD);\n g.select('path.' + X_AXIS_REF_LINE_CLASS).style('display', '').attr('d', xAxisRefPathD);\n }\n\n function getDotRadius() {\n return _dataPointRadius || _dotRadius;\n }\n\n function hideDot(dot) {\n dot.style('fill-opacity', _dataPointFillOpacity)\n .style('stroke-opacity', _dataPointStrokeOpacity)\n .attr('r', getDotRadius());\n }\n\n function hideRefLines(g) {\n g.select('path.' + Y_AXIS_REF_LINE_CLASS).style('display', 'none');\n g.select('path.' + X_AXIS_REF_LINE_CLASS).style('display', 'none');\n }\n\n function renderTitle(dot, d) {\n if (_chart.renderTitle()) {\n dot.selectAll('title').remove();\n dot.append('title').text(dc.pluck('data', _chart.title(d.name)));\n }\n }\n\n /**\n #### .xyTipsOn([boolean])\n Turn on/off the mouseover behavior of an individual data point which renders a circle and x/y axis\n dashed lines back to each respective axis. This is ignored if the chart brush is on (`brushOn`)\n Default: true\n */\n _chart.xyTipsOn = function (_) {\n if (!arguments.length) {\n return _xyTipsOn;\n }\n _xyTipsOn = _;\n return _chart;\n };\n\n /**\n #### .dotRadius([dotRadius])\n Get or set the radius (in px) for dots displayed on the data points. Default dot radius is 5.\n **/\n _chart.dotRadius = function (_) {\n if (!arguments.length) {\n return _dotRadius;\n }\n _dotRadius = _;\n return _chart;\n };\n\n /**\n #### .renderDataPoints([options])\n Always show individual dots for each datapoint.\n\n Options, if given, is an object that can contain the following:\n\n * fillOpacity (default 0.8)\n * strokeOpacity (default 0.8)\n * radius (default 2)\n\n If `options` is falsy, it disables data point rendering.\n\n If no `options` are provided, the current `options` values are instead returned.\n\n Example:\n ```\n chart.renderDataPoints({radius: 2, fillOpacity: 0.8, strokeOpacity: 0.8})\n ```\n **/\n _chart.renderDataPoints = function (options) {\n if (!arguments.length) {\n return {\n fillOpacity: _dataPointFillOpacity,\n strokeOpacity: _dataPointStrokeOpacity,\n radius: _dataPointRadius\n };\n } else if (!options) {\n _dataPointFillOpacity = DEFAULT_DOT_OPACITY;\n _dataPointStrokeOpacity = DEFAULT_DOT_OPACITY;\n _dataPointRadius = null;\n } else {\n _dataPointFillOpacity = options.fillOpacity || 0.8;\n _dataPointStrokeOpacity = options.strokeOpacity || 0.8;\n _dataPointRadius = options.radius || 2;\n }\n return _chart;\n };\n\n function colorFilter(color, dashstyle, inv) {\n return function () {\n var item = d3.select(this);\n var match = (item.attr('stroke') === color &&\n item.attr('stroke-dasharray') === ((dashstyle instanceof Array) ?\n dashstyle.join(',') : null)) || item.attr('fill') === color;\n return inv ? !match : match;\n };\n }\n\n _chart.legendHighlight = function (d) {\n if (!_chart.isLegendableHidden(d)) {\n _chart.g().selectAll('path.line, path.area')\n .classed('highlight', colorFilter(d.color, d.dashstyle))\n .classed('fadeout', colorFilter(d.color, d.dashstyle, true));\n }\n };\n\n _chart.legendReset = function () {\n _chart.g().selectAll('path.line, path.area')\n .classed('highlight', false)\n .classed('fadeout', false);\n };\n\n dc.override(_chart, 'legendables', function () {\n var legendables = _chart._legendables();\n if (!_dashStyle) {\n return legendables;\n }\n return legendables.map(function (l) {\n l.dashstyle = _dashStyle;\n return l;\n });\n });\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Data Count Widget\nIncludes: [Base Mixin](#base-mixin)\n\nThe data count widget is a simple widget designed to display the number of records selected by the\ncurrent filters out of the total number of records in the data set. Once created the data count widget\nwill automatically update the text content of the following elements under the parent element.\n\n* '.total-count' - total number of records\n* '.filter-count' - number of records matched by the current filters\n\nExamples:\n\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n#### dc.dataCount(parent[, chartGroup])\nCreate a data count widget and attach it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this widget should be placed in.\n The data count widget will only react to filter changes in the chart group.\n\nReturns:\nA newly created data count widget instance\n#### .dimension(allData) - **mandatory**\nFor the data count widget the only valid dimension is the entire data set.\n#### .group(groupAll) - **mandatory**\nFor the data count widget the only valid group is the group returned by `dimension.groupAll()`.\n\n```js\nvar ndx = crossfilter(data);\nvar all = ndx.groupAll();\n\ndc.dataCount('.dc-data-count')\n .dimension(ndx)\n .group(all);\n```\n\n**/\ndc.dataCount = function (parent, chartGroup) {\n var _formatNumber = d3.format(',d');\n var _chart = dc.baseMixin({});\n var _html = {some:'', all:''};\n\n /**\n #### html([object])\n Gets or sets an optional object specifying HTML templates to use depending how many items are\n selected. The text `%total-count` will replaced with the total number of records, and the text\n `%filter-count` will be replaced with the number of selected records.\n - all: HTML template to use if all items are selected\n - some: HTML template to use if not all items are selected\n\n ```js\n counter.html({\n some: '%filter-count out of %total-count records selected',\n all: 'All records selected. Click on charts to apply filters'\n })\n ```\n **/\n _chart.html = function (s) {\n if (!arguments.length) {\n return _html;\n }\n if (s.all) {\n _html.all = s.all;\n }\n if (s.some) {\n _html.some = s.some;\n }\n return _chart;\n };\n\n /**\n #### formatNumber([formatter])\n Gets or sets an optional function to format the filter count and total count.\n\n ```js\n counter.formatNumber(d3.format('.2g'))\n ```\n **/\n _chart.formatNumber = function (s) {\n if (!arguments.length) {\n return _formatNumber;\n }\n _formatNumber = s;\n return _chart;\n };\n\n _chart._doRender = function () {\n var tot = _chart.dimension().size(),\n val = _chart.group().value();\n var all = _formatNumber(tot);\n var selected = _formatNumber(val);\n\n if ((tot === val) && (_html.all !== '')) {\n _chart.root().html(_html.all.replace('%total-count', all).replace('%filter-count', selected));\n } else if (_html.some !== '') {\n _chart.root().html(_html.some.replace('%total-count', all).replace('%filter-count', selected));\n } else {\n _chart.selectAll('.total-count').text(all);\n _chart.selectAll('.filter-count').text(selected);\n }\n return _chart;\n };\n\n _chart._doRedraw = function () {\n return _chart._doRender();\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Data Table Widget\nIncludes: [Base Mixin](#base-mixin)\n\nThe data table is a simple widget designed to list crossfilter focused data set (rows being\nfiltered) in a good old tabular fashion.\n\nExamples:\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n#### dc.dataTable(parent[, chartGroup])\nCreate a data table widget instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created data table widget instance\n\n**/\ndc.dataTable = function (parent, chartGroup) {\n var LABEL_CSS_CLASS = 'dc-table-label';\n var ROW_CSS_CLASS = 'dc-table-row';\n var COLUMN_CSS_CLASS = 'dc-table-column';\n var GROUP_CSS_CLASS = 'dc-table-group';\n var HEAD_CSS_CLASS = 'dc-table-head';\n\n var _chart = dc.baseMixin({});\n\n var _size = 25;\n var _columns = [];\n var _sortBy = function (d) {\n return d;\n };\n var _order = d3.ascending;\n\n _chart._doRender = function () {\n _chart.selectAll('tbody').remove();\n\n renderRows(renderGroups());\n\n return _chart;\n };\n\n _chart._doColumnValueFormat = function (v, d) {\n return ((typeof v === 'function') ?\n v(d) : // v as function\n ((typeof v === 'string') ?\n d[v] : // v is field name string\n v.format(d) // v is Object, use fn (element 2)\n )\n );\n };\n\n _chart._doColumnHeaderFormat = function (d) {\n // if 'function', convert to string representation\n // show a string capitalized\n // if an object then display it's label string as-is.\n return (typeof d === 'function') ?\n _chart._doColumnHeaderFnToString(d) :\n ((typeof d === 'string') ?\n _chart._doColumnHeaderCapitalize(d) : String(d.label));\n };\n\n _chart._doColumnHeaderCapitalize = function (s) {\n // capitalize\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n\n _chart._doColumnHeaderFnToString = function (f) {\n // columnString(f) {\n var s = String(f);\n var i1 = s.indexOf('return ');\n if (i1 >= 0) {\n var i2 = s.lastIndexOf(';');\n if (i2 >= 0) {\n s = s.substring(i1 + 7, i2);\n var i3 = s.indexOf('numberFormat');\n if (i3 >= 0) {\n s = s.replace('numberFormat', '');\n }\n }\n }\n return s;\n };\n\n function renderGroups() {\n // The 'original' example uses all 'functions'.\n\t// If all 'functions' are used, then don't remove/add a header, and leave\n\t// the html alone. This preserves the functionality of earlier releases.\n\t// A 2nd option is a string representing a field in the data.\n\t// A third option is to supply an Object such as an array of 'information', and\n\t// supply your own _doColumnHeaderFormat and _doColumnValueFormat functions to\n\t// create what you need.\n var bAllFunctions = true;\n _columns.forEach(function (f) {\n bAllFunctions = bAllFunctions & (typeof f === 'function');\n });\n\n if (!bAllFunctions) {\n _chart.selectAll('th').remove();\n var headcols = _chart.root().selectAll('th')\n .data(_columns);\n\n var headGroup = headcols\n .enter()\n .append('th');\n\n headGroup\n .attr('class', HEAD_CSS_CLASS)\n .html(function (d) {\n return (_chart._doColumnHeaderFormat(d));\n\n });\n }\n\n var groups = _chart.root().selectAll('tbody')\n .data(nestEntries(), function (d) {\n return _chart.keyAccessor()(d);\n });\n\n var rowGroup = groups\n .enter()\n .append('tbody');\n\n rowGroup\n .append('tr')\n .attr('class', GROUP_CSS_CLASS)\n .append('td')\n .attr('class', LABEL_CSS_CLASS)\n .attr('colspan', _columns.length)\n .html(function (d) {\n return _chart.keyAccessor()(d);\n });\n\n groups.exit().remove();\n\n return rowGroup;\n }\n\n function nestEntries() {\n var entries;\n if (_order === d3.ascending) {\n entries = _chart.dimension().bottom(_size);\n } else {\n entries = _chart.dimension().top(_size);\n }\n\n return d3.nest()\n .key(_chart.group())\n .sortKeys(_order)\n .entries(entries.sort(function (a, b) {\n return _order(_sortBy(a), _sortBy(b));\n }));\n }\n\n function renderRows(groups) {\n var rows = groups.order()\n .selectAll('tr.' + ROW_CSS_CLASS)\n .data(function (d) {\n return d.values;\n });\n\n var rowEnter = rows.enter()\n .append('tr')\n .attr('class', ROW_CSS_CLASS);\n\n _columns.forEach(function (v, i) {\n rowEnter.append('td')\n .attr('class', COLUMN_CSS_CLASS + ' _' + i)\n .html(function (d) {\n return _chart._doColumnValueFormat(v, d);\n });\n });\n\n rows.exit().remove();\n\n return rows;\n }\n\n _chart._doRedraw = function () {\n return _chart._doRender();\n };\n\n /**\n #### .size([size])\n Get or set the table size which determines the number of rows displayed by the widget.\n\n **/\n _chart.size = function (s) {\n if (!arguments.length) {\n return _size;\n }\n _size = s;\n return _chart;\n };\n\n /**\n #### .columns([columnFunctionArray])\n Get or set column functions. The data table widget now supports several methods of specifying\n the columns to display. The original method, first shown below, uses an array of functions to\n generate dynamic columns. Column functions are simple javascript functions with only one input\n argument `d` which represents a row in the data set. The return value of these functions will be\n used directly to generate table content for each cell. However, this method requires the .html\n table entry to have a fixed set of column headers.\n\n ```js\n chart.columns([\n function(d) {\n return d.date;\n },\n function(d) {\n return d.open;\n },\n function(d) {\n return d.close;\n },\n function(d) {\n return numberFormat(d.close - d.open);\n },\n function(d) {\n return d.volume;\n }\n ]);\n ```\n\n The next example shows you can simply list the data (d) content directly without\n specifying it as a function, except where necessary (ie, computed columns). Note\n the data element accessor name is capitalized when displayed in the table. You can\n also mix in functions as desired or necessary, but you must use the\n Object = [Label, Fn] method as shown below.\n You may wish to override the following two functions, which are internally used to\n translate the column information or function into a displayed header. The first one\n is used on the simple \"string\" column specifier, the second is used to transform the\n String(fn) into something displayable. For the Stock example, the function for Change\n becomes a header of 'd.close - d.open'.\n _chart._doColumnHeaderCapitalize _chart._doColumnHeaderFnToString\n You may use your own Object definition, however you must then override\n _chart._doColumnHeaderFormat , _chart._doColumnValueFormat\n Be aware that fields without numberFormat specification will be displayed just as\n they are stored in the data, unformatted.\n ```js\n chart.columns([\n \"date\", // d[\"date\"], ie, a field accessor; capitalized automatically\n \"open\", // ...\n \"close\", // ...\n [\"Change\", // Specify an Object = [Label, Fn]\n function (d) {\n return numberFormat(d.close - d.open);\n }],\n \"volume\" // d[\"volume\"], ie, a field accessor; capitalized automatically\n ]);\n ```\n\n A third example, where all fields are specified using the Object = [Label, Fn] method.\n\n ```js\n chart.columns([\n [\"Date\", // Specify an Object = [Label, Fn]\n function (d) {\n return d.date;\n }],\n [\"Open\",\n function (d) {\n return numberFormat(d.open);\n }],\n [\"Close\",\n function (d) {\n return numberFormat(d.close);\n }],\n [\"Change\",\n function (d) {\n return numberFormat(d.close - d.open);\n }],\n [\"Volume\",\n function (d) {\n return d.volume;\n }]\n ]);\n ```\n\n **/\n _chart.columns = function (_) {\n if (!arguments.length) {\n return _columns;\n }\n _columns = _;\n return _chart;\n };\n\n /**\n #### .sortBy([sortByFunction])\n Get or set sort-by function. This function works as a value accessor at row level and returns a\n particular field to be sorted by. Default value: identity function\n\n ```js\n chart.sortBy(function(d) {\n return d.date;\n });\n ```\n\n **/\n _chart.sortBy = function (_) {\n if (!arguments.length) {\n return _sortBy;\n }\n _sortBy = _;\n return _chart;\n };\n\n /**\n #### .order([order])\n Get or set sort order. Default value: ``` d3.ascending ```\n\n ```js\n chart.order(d3.descending);\n ```\n\n **/\n _chart.order = function (_) {\n if (!arguments.length) {\n return _order;\n }\n _order = _;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n ## Data Grid Widget\n\n Includes: [Base Mixin](#base-mixin)\n\n Data grid is a simple widget designed to list the filtered records, providing\n a simple way to define how the items are displayed.\n\n Examples:\n * [List of members of the european parliament](http://europarl.me/dc.js/web/ep/index.html)\n\n #### dc.dataGrid(parent[, chartGroup])\n Create a data grid widget instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created data grid widget instance\n\n **/\ndc.dataGrid = function (parent, chartGroup) {\n var LABEL_CSS_CLASS = 'dc-grid-label';\n var ITEM_CSS_CLASS = 'dc-grid-item';\n var GROUP_CSS_CLASS = 'dc-grid-group';\n var GRID_CSS_CLASS = 'dc-grid-top';\n\n var _chart = dc.baseMixin({});\n\n var _size = 999; // shouldn't be needed, but you might\n var _html = function (d) { return 'you need to provide an html() handling param: ' + JSON.stringify(d); };\n var _sortBy = function (d) {\n return d;\n };\n var _order = d3.ascending;\n\n var _htmlGroup = function (d) {\n return '

    ' +\n _chart.keyAccessor()(d) + '

    ';\n };\n\n _chart._doRender = function () {\n _chart.selectAll('div.' + GRID_CSS_CLASS).remove();\n\n renderItems(renderGroups());\n\n return _chart;\n };\n\n function renderGroups() {\n var groups = _chart.root().selectAll('div.' + GRID_CSS_CLASS)\n .data(nestEntries(), function (d) {\n return _chart.keyAccessor()(d);\n });\n\n var itemGroup = groups\n .enter()\n .append('div')\n .attr('class', GRID_CSS_CLASS);\n\n if (_htmlGroup) {\n itemGroup\n .html(function (d) {\n return _htmlGroup(d);\n });\n }\n\n groups.exit().remove();\n return itemGroup;\n }\n\n function nestEntries() {\n var entries = _chart.dimension().top(_size);\n\n return d3.nest()\n .key(_chart.group())\n .sortKeys(_order)\n .entries(entries.sort(function (a, b) {\n return _order(_sortBy(a), _sortBy(b));\n }));\n }\n\n function renderItems(groups) {\n var items = groups.order()\n .selectAll('div.' + ITEM_CSS_CLASS)\n .data(function (d) {\n return d.values;\n });\n\n items.enter()\n .append('div')\n .attr('class', ITEM_CSS_CLASS)\n .html(function (d) {\n return _html(d);\n });\n\n items.exit().remove();\n\n return items;\n }\n\n _chart._doRedraw = function () {\n return _chart._doRender();\n };\n\n /**\n #### .size([size])\n Get or set the grid size which determines the number of items displayed by the widget.\n\n **/\n _chart.size = function (s) {\n if (!arguments.length) {\n return _size;\n }\n _size = s;\n return _chart;\n };\n\n /**\n #### .html( function (data) { return ''; })\n Get or set the function that formats an item. The data grid widget uses a\n function to generate dynamic html. Use your favourite templating engine or\n generate the string directly.\n ```js\n chart.html(function (d) { return '
    '+data.exampleString+'
    ';});\n ```\n\n **/\n _chart.html = function (_) {\n if (!arguments.length) {\n return _html;\n }\n _html = _;\n return _chart;\n };\n\n /**\n #### .htmlGroup( function (data) { return ''; })\n Get or set the function that formats a group label.\n ```js\n chart.htmlGroup (function (d) { return '

    '.d.key . 'with ' . d.values.length .' items

    '});\n ```\n\n **/\n _chart.htmlGroup = function (_) {\n if (!arguments.length) {\n return _htmlGroup;\n }\n _htmlGroup = _;\n return _chart;\n };\n\n /**\n #### .sortBy([sortByFunction])\n Get or set sort-by function. This function works as a value accessor at the item\n level and returns a particular field to be sorted.\n by. Default: identity function\n\n ```js\n chart.sortBy(function(d) {\n return d.date;\n });\n ```\n\n **/\n _chart.sortBy = function (_) {\n if (!arguments.length) {\n return _sortBy;\n }\n _sortBy = _;\n return _chart;\n };\n\n /**\n #### .order([order])\n Get or set sort order function. Default value: ``` d3.ascending ```\n\n ```js\n chart.order(d3.descending);\n ```\n\n **/\n _chart.order = function (_) {\n if (!arguments.length) {\n return _order;\n }\n _order = _;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Bubble Chart\nIncludes: [Bubble Mixin](#bubble-mixin), [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nA concrete implementation of a general purpose bubble chart that allows data visualization using the\nfollowing dimensions:\n\n* x axis position\n* y axis position\n* bubble radius\n* color\n\nExamples:\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n* [US Venture Capital Landscape 2011](http://dc-js.github.com/dc.js/vc/index.html)\n#### dc.bubbleChart(parent[, chartGroup])\nCreate a bubble chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection | compositeChart - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created bubble chart instance\n\n```js\n// create a bubble chart under #chart-container1 element using the default global chart group\nvar bubbleChart1 = dc.bubbleChart('#chart-container1');\n// create a bubble chart under #chart-container2 element using chart group A\nvar bubbleChart2 = dc.bubbleChart('#chart-container2', 'chartGroupA');\n```\n\n**/\ndc.bubbleChart = function (parent, chartGroup) {\n var _chart = dc.bubbleMixin(dc.coordinateGridMixin({}));\n\n var _elasticRadius = false;\n\n _chart.transitionDuration(750);\n\n var bubbleLocator = function (d) {\n return 'translate(' + (bubbleX(d)) + ',' + (bubbleY(d)) + ')';\n };\n\n /**\n #### .elasticRadius([boolean])\n Turn on or off the elastic bubble radius feature, or return the value of the flag. If this\n feature is turned on, then bubble radii will be automatically rescaled to fit the chart better.\n\n **/\n _chart.elasticRadius = function (_) {\n if (!arguments.length) {\n return _elasticRadius;\n }\n _elasticRadius = _;\n return _chart;\n };\n\n _chart.plotData = function () {\n if (_elasticRadius) {\n _chart.r().domain([_chart.rMin(), _chart.rMax()]);\n }\n\n _chart.r().range([_chart.MIN_RADIUS, _chart.xAxisLength() * _chart.maxBubbleRelativeSize()]);\n\n var bubbleG = _chart.chartBodyG().selectAll('g.' + _chart.BUBBLE_NODE_CLASS)\n .data(_chart.data(), function (d) { return d.key; });\n\n renderNodes(bubbleG);\n\n updateNodes(bubbleG);\n\n removeNodes(bubbleG);\n\n _chart.fadeDeselectedArea();\n };\n\n function renderNodes(bubbleG) {\n var bubbleGEnter = bubbleG.enter().append('g');\n\n bubbleGEnter\n .attr('class', _chart.BUBBLE_NODE_CLASS)\n .attr('transform', bubbleLocator)\n .append('circle').attr('class', function (d, i) {\n return _chart.BUBBLE_CLASS + ' _' + i;\n })\n .on('click', _chart.onClick)\n .attr('fill', _chart.getColor)\n .attr('r', 0);\n dc.transition(bubbleG, _chart.transitionDuration())\n .selectAll('circle.' + _chart.BUBBLE_CLASS)\n .attr('r', function (d) {\n return _chart.bubbleR(d);\n })\n .attr('opacity', function (d) {\n return (_chart.bubbleR(d) > 0) ? 1 : 0;\n });\n\n _chart._doRenderLabel(bubbleGEnter);\n\n _chart._doRenderTitles(bubbleGEnter);\n }\n\n function updateNodes(bubbleG) {\n dc.transition(bubbleG, _chart.transitionDuration())\n .attr('transform', bubbleLocator)\n .selectAll('circle.' + _chart.BUBBLE_CLASS)\n .attr('fill', _chart.getColor)\n .attr('r', function (d) {\n return _chart.bubbleR(d);\n })\n .attr('opacity', function (d) {\n return (_chart.bubbleR(d) > 0) ? 1 : 0;\n });\n\n _chart.doUpdateLabels(bubbleG);\n _chart.doUpdateTitles(bubbleG);\n }\n\n function removeNodes(bubbleG) {\n bubbleG.exit().remove();\n }\n\n function bubbleX(d) {\n var x = _chart.x()(_chart.keyAccessor()(d));\n if (isNaN(x)) {\n x = 0;\n }\n return x;\n }\n\n function bubbleY(d) {\n var y = _chart.y()(_chart.valueAccessor()(d));\n if (isNaN(y)) {\n y = 0;\n }\n return y;\n }\n\n _chart.renderBrush = function () {\n // override default x axis brush from parent chart\n };\n\n _chart.redrawBrush = function () {\n // override default x axis brush from parent chart\n _chart.fadeDeselectedArea();\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Composite Chart\nIncludes: [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nComposite charts are a special kind of chart that render multiple charts on the same Coordinate\nGrid. You can overlay (compose) different bar/line/area charts in a single composite chart to\nachieve some quite flexible charting effects.\n#### dc.compositeChart(parent[, chartGroup])\nCreate a composite chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created composite chart instance\n\n```js\n// create a composite chart under #chart-container1 element using the default global chart group\nvar compositeChart1 = dc.compositeChart('#chart-container1');\n// create a composite chart under #chart-container2 element using chart group A\nvar compositeChart2 = dc.compositeChart('#chart-container2', 'chartGroupA');\n```\n\n**/\ndc.compositeChart = function (parent, chartGroup) {\n\n var SUB_CHART_CLASS = 'sub';\n var DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING = 12;\n\n var _chart = dc.coordinateGridMixin({});\n var _children = [];\n\n var _childOptions = {};\n\n var _shareColors = false,\n _shareTitle = true;\n\n var _rightYAxis = d3.svg.axis(),\n _rightYAxisLabel = 0,\n _rightYAxisLabelPadding = DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING,\n _rightY,\n _rightAxisGridLines = false;\n\n _chart._mandatoryAttributes([]);\n _chart.transitionDuration(500);\n\n dc.override(_chart, '_generateG', function () {\n var g = this.__generateG();\n\n for (var i = 0; i < _children.length; ++i) {\n var child = _children[i];\n\n generateChildG(child, i);\n\n if (!child.dimension()) {\n child.dimension(_chart.dimension());\n }\n if (!child.group()) {\n child.group(_chart.group());\n }\n\n child.chartGroup(_chart.chartGroup());\n child.svg(_chart.svg());\n child.xUnits(_chart.xUnits());\n child.transitionDuration(_chart.transitionDuration());\n child.brushOn(_chart.brushOn());\n child.renderTitle(_chart.renderTitle());\n }\n\n return g;\n });\n\n _chart._brushing = function () {\n var extent = _chart.extendBrush();\n var brushIsEmpty = _chart.brushIsEmpty(extent);\n\n for (var i = 0; i < _children.length; ++i) {\n _children[i].filter(null);\n if (!brushIsEmpty) {\n _children[i].filter(extent);\n }\n }\n };\n\n _chart._prepareYAxis = function () {\n if (leftYAxisChildren().length !== 0) { prepareLeftYAxis(); }\n if (rightYAxisChildren().length !== 0) { prepareRightYAxis(); }\n\n if (leftYAxisChildren().length > 0 && !_rightAxisGridLines) {\n _chart._renderHorizontalGridLinesForAxis(_chart.g(), _chart.y(), _chart.yAxis());\n }\n else if (rightYAxisChildren().length > 0) {\n _chart._renderHorizontalGridLinesForAxis(_chart.g(), _rightY, _rightYAxis);\n }\n };\n\n _chart.renderYAxis = function () {\n if (leftYAxisChildren().length !== 0) {\n _chart.renderYAxisAt('y', _chart.yAxis(), _chart.margins().left);\n _chart.renderYAxisLabel('y', _chart.yAxisLabel(), -90);\n }\n\n if (rightYAxisChildren().length !== 0) {\n _chart.renderYAxisAt('yr', _chart.rightYAxis(), _chart.width() - _chart.margins().right);\n _chart.renderYAxisLabel('yr', _chart.rightYAxisLabel(), 90, _chart.width() - _rightYAxisLabelPadding);\n }\n };\n\n function prepareRightYAxis() {\n if (_chart.rightY() === undefined || _chart.elasticY()) {\n _chart.rightY(d3.scale.linear());\n _chart.rightY().domain([rightYAxisMin(), rightYAxisMax()]).rangeRound([_chart.yAxisHeight(), 0]);\n }\n\n _chart.rightY().range([_chart.yAxisHeight(), 0]);\n _chart.rightYAxis(_chart.rightYAxis().scale(_chart.rightY()));\n\n _chart.rightYAxis().orient('right');\n }\n\n function prepareLeftYAxis() {\n if (_chart.y() === undefined || _chart.elasticY()) {\n _chart.y(d3.scale.linear());\n _chart.y().domain([yAxisMin(), yAxisMax()]).rangeRound([_chart.yAxisHeight(), 0]);\n }\n\n _chart.y().range([_chart.yAxisHeight(), 0]);\n _chart.yAxis(_chart.yAxis().scale(_chart.y()));\n\n _chart.yAxis().orient('left');\n }\n\n function generateChildG(child, i) {\n child._generateG(_chart.g());\n child.g().attr('class', SUB_CHART_CLASS + ' _' + i);\n }\n\n _chart.plotData = function () {\n for (var i = 0; i < _children.length; ++i) {\n var child = _children[i];\n\n if (!child.g()) {\n generateChildG(child, i);\n }\n\n if (_shareColors) {\n child.colors(_chart.colors());\n }\n\n child.x(_chart.x());\n\n child.xAxis(_chart.xAxis());\n\n if (child.useRightYAxis()) {\n child.y(_chart.rightY());\n child.yAxis(_chart.rightYAxis());\n }\n else {\n child.y(_chart.y());\n child.yAxis(_chart.yAxis());\n }\n\n child.plotData();\n\n child._activateRenderlets();\n }\n };\n\n /**\n #### .useRightAxisGridLines(bool)\n Get or set whether to draw gridlines from the right y axis. Drawing from the left y axis is the\n default behavior. This option is only respected when subcharts with both left and right y-axes\n are present.\n **/\n _chart.useRightAxisGridLines = function (_) {\n if (!arguments) {\n return _rightAxisGridLines;\n }\n\n _rightAxisGridLines = _;\n return _chart;\n };\n\n /**\n #### .childOptions({object})\n Get or set chart-specific options for all child charts. This is equivalent to calling `.options`\n on each child chart.\n **/\n _chart.childOptions = function (_) {\n if (!arguments.length) {\n return _childOptions;\n }\n _childOptions = _;\n _children.forEach(function (child) {\n child.options(_childOptions);\n });\n return _chart;\n };\n\n _chart.fadeDeselectedArea = function () {\n for (var i = 0; i < _children.length; ++i) {\n var child = _children[i];\n child.brush(_chart.brush());\n child.fadeDeselectedArea();\n }\n };\n\n /**\n #### .rightYAxisLabel([labelText])\n Set or get the right y axis label.\n **/\n _chart.rightYAxisLabel = function (_, padding) {\n if (!arguments.length) {\n return _rightYAxisLabel;\n }\n _rightYAxisLabel = _;\n _chart.margins().right -= _rightYAxisLabelPadding;\n _rightYAxisLabelPadding = (padding === undefined) ? DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING : padding;\n _chart.margins().right += _rightYAxisLabelPadding;\n return _chart;\n };\n\n /**\n #### .compose(subChartArray)\n Combine the given charts into one single composite coordinate grid chart.\n\n ```js\n // compose the given charts in the array into one single composite chart\n moveChart.compose([\n // when creating sub-chart you need to pass in the parent chart\n dc.lineChart(moveChart)\n .group(indexAvgByMonthGroup) // if group is missing then parent's group will be used\n .valueAccessor(function (d){return d.value.avg;})\n // most of the normal functions will continue to work in a composed chart\n .renderArea(true)\n .stack(monthlyMoveGroup, function (d){return d.value;})\n .title(function (d){\n var value = d.value.avg?d.value.avg:d.value;\n if(isNaN(value)) value = 0;\n return dateFormat(d.key) + '\\n' + numberFormat(value);\n }),\n dc.barChart(moveChart)\n .group(volumeByMonthGroup)\n .centerBar(true)\n ]);\n ```\n\n **/\n _chart.compose = function (charts) {\n _children = charts;\n _children.forEach(function (child) {\n child.height(_chart.height());\n child.width(_chart.width());\n child.margins(_chart.margins());\n\n if (_shareTitle) {\n child.title(_chart.title());\n }\n\n child.options(_childOptions);\n });\n return _chart;\n };\n\n /**\n #### .children()\n Returns the child charts which are composed into the composite chart.\n **/\n\n _chart.children = function () {\n return _children;\n };\n\n /**\n #### .shareColors([boolean])\n Get or set color sharing for the chart. If set, the `.colors()` value from this chart\n will be shared with composed children. Additionally if the child chart implements\n Stackable and has not set a custom .colorAccessor, then it will generate a color\n specific to its order in the composition.\n **/\n _chart.shareColors = function (_) {\n if (!arguments.length) {\n return _shareColors;\n }\n _shareColors = _;\n return _chart;\n };\n\n /**\n #### .shareTitle([[boolean])\n Get or set title sharing for the chart. If set, the `.title()` value from this chart will be\n shared with composed children. Default value is true.\n **/\n _chart.shareTitle = function (_) {\n if (!arguments.length) {\n return _shareTitle;\n }\n _shareTitle = _;\n return _chart;\n };\n\n /**\n #### .rightY([yScale])\n Get or set the y scale for the right axis. The right y scale is typically automatically\n generated by the chart implementation.\n\n **/\n _chart.rightY = function (_) {\n if (!arguments.length) {\n return _rightY;\n }\n _rightY = _;\n return _chart;\n };\n\n function leftYAxisChildren() {\n return _children.filter(function (child) {\n return !child.useRightYAxis();\n });\n }\n\n function rightYAxisChildren() {\n return _children.filter(function (child) {\n return child.useRightYAxis();\n });\n }\n\n function getYAxisMin(charts) {\n return charts.map(function (c) {\n return c.yAxisMin();\n });\n }\n\n delete _chart.yAxisMin;\n function yAxisMin() {\n return d3.min(getYAxisMin(leftYAxisChildren()));\n }\n\n function rightYAxisMin() {\n return d3.min(getYAxisMin(rightYAxisChildren()));\n }\n\n function getYAxisMax(charts) {\n return charts.map(function (c) {\n return c.yAxisMax();\n });\n }\n\n delete _chart.yAxisMax;\n function yAxisMax() {\n return dc.utils.add(d3.max(getYAxisMax(leftYAxisChildren())), _chart.yAxisPadding());\n }\n\n function rightYAxisMax() {\n return dc.utils.add(d3.max(getYAxisMax(rightYAxisChildren())), _chart.yAxisPadding());\n }\n\n function getAllXAxisMinFromChildCharts() {\n return _children.map(function (c) {\n return c.xAxisMin();\n });\n }\n\n dc.override(_chart, 'xAxisMin', function () {\n return dc.utils.subtract(d3.min(getAllXAxisMinFromChildCharts()), _chart.xAxisPadding());\n });\n\n function getAllXAxisMaxFromChildCharts() {\n return _children.map(function (c) {\n return c.xAxisMax();\n });\n }\n\n dc.override(_chart, 'xAxisMax', function () {\n return dc.utils.add(d3.max(getAllXAxisMaxFromChildCharts()), _chart.xAxisPadding());\n });\n\n _chart.legendables = function () {\n return _children.reduce(function (items, child) {\n if (_shareColors) {\n child.colors(_chart.colors());\n }\n items.push.apply(items, child.legendables());\n return items;\n }, []);\n };\n\n _chart.legendHighlight = function (d) {\n for (var j = 0; j < _children.length; ++j) {\n var child = _children[j];\n child.legendHighlight(d);\n }\n };\n\n _chart.legendReset = function (d) {\n for (var j = 0; j < _children.length; ++j) {\n var child = _children[j];\n child.legendReset(d);\n }\n };\n\n _chart.legendToggle = function () {\n console.log('composite should not be getting legendToggle itself');\n };\n\n /**\n #### .rightYAxis([yAxis])\n Set or get the right y axis used by the composite chart. This function is most useful when y\n axis customization is required. The y axis in dc.js is an instance of a [d3 axis\n object](https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-_axis) therefore it supports any valid\n d3 axis manipulation. **Caution**: The y axis is usually generated internally by dc;\n resetting it may cause unexpected results.\n ```jså\n // customize y axis tick format\n chart.rightYAxis().tickFormat(function (v) {return v + '%';});\n // customize y axis tick values\n chart.rightYAxis().tickValues([0, 100, 200, 300]);\n ```\n\n **/\n _chart.rightYAxis = function (rightYAxis) {\n if (!arguments.length) {\n return _rightYAxis;\n }\n _rightYAxis = rightYAxis;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n ## Series Chart\n\n Includes: [Composite Chart](#composite chart)\n\n A series chart is a chart that shows multiple series of data overlaid on one chart, where the\n series is specified in the data. It is a specialization of Composite Chart and inherits all\n composite features other than recomposing the chart.\n\n #### dc.seriesChart(parent[, chartGroup])\n Create a series chart instance and attach it to the given parent element.\n\n Parameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\n Returns:\n A newly created series chart instance\n\n ```js\n // create a series chart under #chart-container1 element using the default global chart group\n var seriesChart1 = dc.seriesChart(\"#chart-container1\");\n // create a series chart under #chart-container2 element using chart group A\n var seriesChart2 = dc.seriesChart(\"#chart-container2\", \"chartGroupA\");\n ```\n\n **/\ndc.seriesChart = function (parent, chartGroup) {\n var _chart = dc.compositeChart(parent, chartGroup);\n\n function keySort(a, b) {\n return d3.ascending(_chart.keyAccessor()(a), _chart.keyAccessor()(b));\n }\n\n var _charts = {};\n var _chartFunction = dc.lineChart;\n var _seriesAccessor;\n var _seriesSort = d3.ascending;\n var _valueSort = keySort;\n\n _chart._mandatoryAttributes().push('seriesAccessor', 'chart');\n _chart.shareColors(true);\n\n _chart._preprocessData = function () {\n var keep = [];\n var childrenChanged;\n var nester = d3.nest().key(_seriesAccessor);\n if (_seriesSort) {\n nester.sortKeys(_seriesSort);\n }\n if (_valueSort) {\n nester.sortValues(_valueSort);\n }\n var nesting = nester.entries(_chart.data());\n var children =\n nesting.map(function (sub, i) {\n var subChart = _charts[sub.key] || _chartFunction.call(_chart, _chart, chartGroup, sub.key, i);\n if (!_charts[sub.key]) {\n childrenChanged = true;\n }\n _charts[sub.key] = subChart;\n keep.push(sub.key);\n return subChart\n .dimension(_chart.dimension())\n .group({all:d3.functor(sub.values)}, sub.key)\n .keyAccessor(_chart.keyAccessor())\n .valueAccessor(_chart.valueAccessor())\n .brushOn(_chart.brushOn());\n });\n // this works around the fact compositeChart doesn't really\n // have a removal interface\n Object.keys(_charts)\n .filter(function (c) {return keep.indexOf(c) === -1;})\n .forEach(function (c) {\n clearChart(c);\n childrenChanged = true;\n });\n _chart._compose(children);\n if (childrenChanged && _chart.legend()) {\n _chart.legend().render();\n }\n };\n\n function clearChart(c) {\n if (_charts[c].g()) {\n _charts[c].g().remove();\n }\n delete _charts[c];\n }\n\n function resetChildren() {\n Object.keys(_charts).map(clearChart);\n _charts = {};\n }\n\n /**\n #### .chart([function])\n Get or set the chart function, which generates the child charts. Default: dc.lineChart\n\n ```\n // put interpolation on the line charts used for the series\n chart.chart(function(c) { return dc.lineChart(c).interpolate('basis'); })\n // do a scatter series chart\n chart.chart(dc.scatterPlot)\n ```\n\n **/\n _chart.chart = function (_) {\n if (!arguments.length) {\n return _chartFunction;\n }\n _chartFunction = _;\n resetChildren();\n return _chart;\n };\n\n /**\n #### .seriesAccessor([accessor])\n Get or set accessor function for the displayed series. Given a datum, this function\n should return the series that datum belongs to.\n **/\n _chart.seriesAccessor = function (_) {\n if (!arguments.length) {\n return _seriesAccessor;\n }\n _seriesAccessor = _;\n resetChildren();\n return _chart;\n };\n\n /**\n #### .seriesSort([sortFunction])\n Get or set a function to sort the list of series by, given series values.\n\n Example:\n ```\n chart.seriesSort(d3.descending);\n ```\n **/\n _chart.seriesSort = function (_) {\n if (!arguments.length) {\n return _seriesSort;\n }\n _seriesSort = _;\n resetChildren();\n return _chart;\n };\n\n /**\n #### .valueSort([sortFunction])\n Get or set a function to sort each series values by. By default this is the key accessor which,\n for example, will ensure a lineChart series connects its points in increasing key/x order,\n rather than haphazardly.\n **/\n _chart.valueSort = function (_) {\n if (!arguments.length) {\n return _valueSort;\n }\n _valueSort = _;\n resetChildren();\n return _chart;\n };\n\n // make compose private\n _chart._compose = _chart.compose;\n delete _chart.compose;\n\n return _chart;\n};\n","/**\n## Geo Choropleth Chart\nIncludes: [Color Mixin](#color-mixin), [Base Mixin](#base-mixin)\n\nThe geo choropleth chart is designed as an easy way to create a crossfilter driven choropleth map\nfrom GeoJson data. This chart implementation was inspired by [the great d3 choropleth\nexample](http://bl.ocks.org/4060606).\n\nExamples:\n* [US Venture Capital Landscape 2011](http://dc-js.github.com/dc.js/vc/index.html)\n#### dc.geoChoroplethChart(parent[, chartGroup])\nCreate a choropleth chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created choropleth chart instance\n\n```js\n// create a choropleth chart under '#us-chart' element using the default global chart group\nvar chart1 = dc.geoChoroplethChart('#us-chart');\n// create a choropleth chart under '#us-chart2' element using chart group A\nvar chart2 = dc.compositeChart('#us-chart2', 'chartGroupA');\n```\n\n**/\ndc.geoChoroplethChart = function (parent, chartGroup) {\n var _chart = dc.colorMixin(dc.baseMixin({}));\n\n _chart.colorAccessor(function (d) {\n return d || 0;\n });\n\n var _geoPath = d3.geo.path();\n var _projectionFlag;\n\n var _geoJsons = [];\n\n _chart._doRender = function () {\n _chart.resetSvg();\n for (var layerIndex = 0; layerIndex < _geoJsons.length; ++layerIndex) {\n var states = _chart.svg().append('g')\n .attr('class', 'layer' + layerIndex);\n\n var regionG = states.selectAll('g.' + geoJson(layerIndex).name)\n .data(geoJson(layerIndex).data)\n .enter()\n .append('g')\n .attr('class', geoJson(layerIndex).name);\n\n regionG\n .append('path')\n .attr('fill', 'white')\n .attr('d', _geoPath);\n\n regionG.append('title');\n\n plotData(layerIndex);\n }\n _projectionFlag = false;\n };\n\n function plotData(layerIndex) {\n var data = generateLayeredData();\n\n if (isDataLayer(layerIndex)) {\n var regionG = renderRegionG(layerIndex);\n\n renderPaths(regionG, layerIndex, data);\n\n renderTitle(regionG, layerIndex, data);\n }\n }\n\n function generateLayeredData() {\n var data = {};\n var groupAll = _chart.data();\n for (var i = 0; i < groupAll.length; ++i) {\n data[_chart.keyAccessor()(groupAll[i])] = _chart.valueAccessor()(groupAll[i]);\n }\n return data;\n }\n\n function isDataLayer(layerIndex) {\n return geoJson(layerIndex).keyAccessor;\n }\n\n function renderRegionG(layerIndex) {\n var regionG = _chart.svg()\n .selectAll(layerSelector(layerIndex))\n .classed('selected', function (d) {\n return isSelected(layerIndex, d);\n })\n .classed('deselected', function (d) {\n return isDeselected(layerIndex, d);\n })\n .attr('class', function (d) {\n var layerNameClass = geoJson(layerIndex).name;\n var regionClass = dc.utils.nameToId(geoJson(layerIndex).keyAccessor(d));\n var baseClasses = layerNameClass + ' ' + regionClass;\n if (isSelected(layerIndex, d)) {\n baseClasses += ' selected';\n }\n if (isDeselected(layerIndex, d)) {\n baseClasses += ' deselected';\n }\n return baseClasses;\n });\n return regionG;\n }\n\n function layerSelector(layerIndex) {\n return 'g.layer' + layerIndex + ' g.' + geoJson(layerIndex).name;\n }\n\n function isSelected(layerIndex, d) {\n return _chart.hasFilter() && _chart.hasFilter(getKey(layerIndex, d));\n }\n\n function isDeselected(layerIndex, d) {\n return _chart.hasFilter() && !_chart.hasFilter(getKey(layerIndex, d));\n }\n\n function getKey(layerIndex, d) {\n return geoJson(layerIndex).keyAccessor(d);\n }\n\n function geoJson(index) {\n return _geoJsons[index];\n }\n\n function renderPaths(regionG, layerIndex, data) {\n var paths = regionG\n .select('path')\n .attr('fill', function () {\n var currentFill = d3.select(this).attr('fill');\n if (currentFill) {\n return currentFill;\n }\n return 'none';\n })\n .on('click', function (d) {\n return _chart.onClick(d, layerIndex);\n });\n\n dc.transition(paths, _chart.transitionDuration()).attr('fill', function (d, i) {\n return _chart.getColor(data[geoJson(layerIndex).keyAccessor(d)], i);\n });\n }\n\n _chart.onClick = function (d, layerIndex) {\n var selectedRegion = geoJson(layerIndex).keyAccessor(d);\n dc.events.trigger(function () {\n _chart.filter(selectedRegion);\n _chart.redrawGroup();\n });\n };\n\n function renderTitle(regionG, layerIndex, data) {\n if (_chart.renderTitle()) {\n regionG.selectAll('title').text(function (d) {\n var key = getKey(layerIndex, d);\n var value = data[key];\n return _chart.title()({key: key, value: value});\n });\n }\n }\n\n _chart._doRedraw = function () {\n for (var layerIndex = 0; layerIndex < _geoJsons.length; ++layerIndex) {\n plotData(layerIndex);\n if (_projectionFlag) {\n _chart.svg().selectAll('g.' + geoJson(layerIndex).name + ' path').attr('d', _geoPath);\n }\n }\n _projectionFlag = false;\n };\n\n /**\n #### .overlayGeoJson(json, name, keyAccessor) - **mandatory**\n Use this function to insert a new GeoJson map layer. This function can be invoked multiple times\n if you have multiple GeoJson data layers to render on top of each other. If you overlay multiple\n layers with the same name the new overlay will override the existing one.\n\n Parameters:\n * json - GeoJson feed\n * name - name of the layer\n * keyAccessor - accessor function used to extract 'key' from the GeoJson data. The key extracted by\n this function should match the keys returned by the crossfilter groups.\n\n ```js\n // insert a layer for rendering US states\n chart.overlayGeoJson(statesJson.features, 'state', function(d) {\n return d.properties.name;\n });\n ```\n\n **/\n _chart.overlayGeoJson = function (json, name, keyAccessor) {\n for (var i = 0; i < _geoJsons.length; ++i) {\n if (_geoJsons[i].name === name) {\n _geoJsons[i].data = json;\n _geoJsons[i].keyAccessor = keyAccessor;\n return _chart;\n }\n }\n _geoJsons.push({name: name, data: json, keyAccessor: keyAccessor});\n return _chart;\n };\n\n /**\n #### .projection(projection)\n Set custom geo projection function. See the available [d3 geo projection\n functions](https://github.com/mbostock/d3/wiki/Geo-Projections). Default value: albersUsa.\n\n **/\n _chart.projection = function (projection) {\n _geoPath.projection(projection);\n _projectionFlag = true;\n return _chart;\n };\n\n /**\n #### .geoJsons()\n Returns all GeoJson layers currently registered with this chart. The returned array is a\n reference to this chart's internal data structure, so any modification to this array will also\n modify this chart's internal registration.\n\n Returns an array of objects containing fields {name, data, accessor}\n\n **/\n _chart.geoJsons = function () {\n return _geoJsons;\n };\n\n /**\n #### .geoPath()\n Returns the [d3.geo.path](https://github.com/mbostock/d3/wiki/Geo-Paths#path) object used to\n render the projection and features. Can be useful for figuring out the bounding box of the\n feature set and thus a way to calculate scale and translation for the projection.\n\n **/\n _chart.geoPath = function () {\n return _geoPath;\n };\n\n /**\n #### .removeGeoJson(name)\n Remove a GeoJson layer from this chart by name\n\n **/\n _chart.removeGeoJson = function (name) {\n var geoJsons = [];\n\n for (var i = 0; i < _geoJsons.length; ++i) {\n var layer = _geoJsons[i];\n if (layer.name !== name) {\n geoJsons.push(layer);\n }\n }\n\n _geoJsons = geoJsons;\n\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Bubble Overlay Chart\nIncludes: [Bubble Mixin](#bubble-mixin), [Base Mixin](#base-mixin)\n\nThe bubble overlay chart is quite different from the typical bubble chart. With the bubble overlay\nchart you can arbitrarily place bubbles on an existing svg or bitmap image, thus changing the\ntypical x and y positioning while retaining the capability to visualize data using bubble radius\nand coloring.\n\nExamples:\n* [Canadian City Crime Stats](http://dc-js.github.com/dc.js/crime/index.html)\n#### dc.bubbleOverlay(parent[, chartGroup])\nCreate a bubble overlay chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n off-screen. Typically this element should also be the parent of the underlying image.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created bubble overlay chart instance\n\n```js\n// create a bubble overlay chart on top of the '#chart-container1 svg' element using the default global chart group\nvar bubbleChart1 = dc.bubbleOverlayChart('#chart-container1').svg(d3.select('#chart-container1 svg'));\n// create a bubble overlay chart on top of the '#chart-container2 svg' element using chart group A\nvar bubbleChart2 = dc.compositeChart('#chart-container2', 'chartGroupA').svg(d3.select('#chart-container2 svg'));\n```\n#### .svg(imageElement) - **mandatory**\nSet the underlying svg image element. Unlike other dc charts this chart will not generate a svg\nelement; therefore the bubble overlay chart will not work if this function is not invoked. If the\nunderlying image is a bitmap, then an empty svg will need to be created on top of the image.\n\n```js\n// set up underlying svg element\nchart.svg(d3.select('#chart svg'));\n```\n\n**/\ndc.bubbleOverlay = function (root, chartGroup) {\n var BUBBLE_OVERLAY_CLASS = 'bubble-overlay';\n var BUBBLE_NODE_CLASS = 'node';\n var BUBBLE_CLASS = 'bubble';\n\n var _chart = dc.bubbleMixin(dc.baseMixin({}));\n var _g;\n var _points = [];\n\n _chart.transitionDuration(750);\n\n _chart.radiusValueAccessor(function (d) {\n return d.value;\n });\n\n /**\n #### .point(name, x, y) - **mandatory**\n Set up a data point on the overlay. The name of a data point should match a specific 'key' among\n data groups generated using keyAccessor. If a match is found (point name <-> data group key)\n then a bubble will be generated at the position specified by the function. x and y\n value specified here are relative to the underlying svg.\n\n **/\n _chart.point = function (name, x, y) {\n _points.push({name: name, x: x, y: y});\n return _chart;\n };\n\n _chart._doRender = function () {\n _g = initOverlayG();\n\n _chart.r().range([_chart.MIN_RADIUS, _chart.width() * _chart.maxBubbleRelativeSize()]);\n\n initializeBubbles();\n\n _chart.fadeDeselectedArea();\n\n return _chart;\n };\n\n function initOverlayG() {\n _g = _chart.select('g.' + BUBBLE_OVERLAY_CLASS);\n if (_g.empty()) {\n _g = _chart.svg().append('g').attr('class', BUBBLE_OVERLAY_CLASS);\n }\n return _g;\n }\n\n function initializeBubbles() {\n var data = mapData();\n\n _points.forEach(function (point) {\n var nodeG = getNodeG(point, data);\n\n var circle = nodeG.select('circle.' + BUBBLE_CLASS);\n\n if (circle.empty()) {\n circle = nodeG.append('circle')\n .attr('class', BUBBLE_CLASS)\n .attr('r', 0)\n .attr('fill', _chart.getColor)\n .on('click', _chart.onClick);\n }\n\n dc.transition(circle, _chart.transitionDuration())\n .attr('r', function (d) {\n return _chart.bubbleR(d);\n });\n\n _chart._doRenderLabel(nodeG);\n\n _chart._doRenderTitles(nodeG);\n });\n }\n\n function mapData() {\n var data = {};\n _chart.data().forEach(function (datum) {\n data[_chart.keyAccessor()(datum)] = datum;\n });\n return data;\n }\n\n function getNodeG(point, data) {\n var bubbleNodeClass = BUBBLE_NODE_CLASS + ' ' + dc.utils.nameToId(point.name);\n\n var nodeG = _g.select('g.' + dc.utils.nameToId(point.name));\n\n if (nodeG.empty()) {\n nodeG = _g.append('g')\n .attr('class', bubbleNodeClass)\n .attr('transform', 'translate(' + point.x + ',' + point.y + ')');\n }\n\n nodeG.datum(data[point.name]);\n\n return nodeG;\n }\n\n _chart._doRedraw = function () {\n updateBubbles();\n\n _chart.fadeDeselectedArea();\n\n return _chart;\n };\n\n function updateBubbles() {\n var data = mapData();\n\n _points.forEach(function (point) {\n var nodeG = getNodeG(point, data);\n\n var circle = nodeG.select('circle.' + BUBBLE_CLASS);\n\n dc.transition(circle, _chart.transitionDuration())\n .attr('r', function (d) {\n return _chart.bubbleR(d);\n })\n .attr('fill', _chart.getColor);\n\n _chart.doUpdateLabels(nodeG);\n\n _chart.doUpdateTitles(nodeG);\n });\n }\n\n _chart.debug = function (flag) {\n if (flag) {\n var debugG = _chart.select('g.' + dc.constants.DEBUG_GROUP_CLASS);\n\n if (debugG.empty()) {\n debugG = _chart.svg()\n .append('g')\n .attr('class', dc.constants.DEBUG_GROUP_CLASS);\n }\n\n var debugText = debugG.append('text')\n .attr('x', 10)\n .attr('y', 20);\n\n debugG\n .append('rect')\n .attr('width', _chart.width())\n .attr('height', _chart.height())\n .on('mousemove', function () {\n var position = d3.mouse(debugG.node());\n var msg = position[0] + ', ' + position[1];\n debugText.text(msg);\n });\n } else {\n _chart.selectAll('.debug').remove();\n }\n\n return _chart;\n };\n\n _chart.anchor(root, chartGroup);\n\n return _chart;\n};\n","/**\n## Row Chart\nIncludes: [Cap Mixin](#cap-mixin), [Margin Mixin](#margin-mixin), [Color Mixin](#color-mixin), [Base Mixin](#base-mixin)\n\nConcrete row chart implementation.\n#### dc.rowChart(parent[, chartGroup])\nCreate a row chart instance and attach it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created row chart instance\n\n```js\n// create a row chart under #chart-container1 element using the default global chart group\nvar chart1 = dc.rowChart('#chart-container1');\n// create a row chart under #chart-container2 element using chart group A\nvar chart2 = dc.rowChart('#chart-container2', 'chartGroupA');\n```\n\n**/\ndc.rowChart = function (parent, chartGroup) {\n\n var _g;\n\n var _labelOffsetX = 10;\n var _labelOffsetY = 15;\n var _hasLabelOffsetY = false;\n var _dyOffset = '0.35em'; // this helps center labels https://github.com/mbostock/d3/wiki/SVG-Shapes#svg_text\n var _titleLabelOffsetX = 2;\n\n var _gap = 5;\n\n var _fixedBarHeight = false;\n var _rowCssClass = 'row';\n var _titleRowCssClass = 'titlerow';\n var _renderTitleLabel = false;\n\n var _chart = dc.capMixin(dc.marginMixin(dc.colorMixin(dc.baseMixin({}))));\n\n var _x;\n\n var _elasticX;\n\n var _xAxis = d3.svg.axis().orient('bottom');\n\n var _rowData;\n\n _chart.rowsCap = _chart.cap;\n\n function calculateAxisScale() {\n if (!_x || _elasticX) {\n var extent = d3.extent(_rowData, _chart.cappedValueAccessor);\n if (extent[0] > 0) {\n extent[0] = 0;\n }\n _x = d3.scale.linear().domain(extent)\n .range([0, _chart.effectiveWidth()]);\n }\n _xAxis.scale(_x);\n }\n\n function drawAxis() {\n var axisG = _g.select('g.axis');\n\n calculateAxisScale();\n\n if (axisG.empty()) {\n axisG = _g.append('g').attr('class', 'axis')\n .attr('transform', 'translate(0, ' + _chart.effectiveHeight() + ')');\n }\n\n dc.transition(axisG, _chart.transitionDuration())\n .call(_xAxis);\n }\n\n _chart._doRender = function () {\n _chart.resetSvg();\n\n _g = _chart.svg()\n .append('g')\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')');\n\n drawChart();\n\n return _chart;\n };\n\n _chart.title(function (d) {\n return _chart.cappedKeyAccessor(d) + ': ' + _chart.cappedValueAccessor(d);\n });\n\n _chart.label(_chart.cappedKeyAccessor);\n\n /**\n #### .x([scale])\n Gets or sets the x scale. The x scale can be any d3\n [quantitive scale](https://github.com/mbostock/d3/wiki/Quantitative-Scales)\n **/\n _chart.x = function (x) {\n if (!arguments.length) {\n return _x;\n }\n _x = x;\n return _chart;\n };\n\n function drawGridLines() {\n _g.selectAll('g.tick')\n .select('line.grid-line')\n .remove();\n\n _g.selectAll('g.tick')\n .append('line')\n .attr('class', 'grid-line')\n .attr('x1', 0)\n .attr('y1', 0)\n .attr('x2', 0)\n .attr('y2', function () {\n return -_chart.effectiveHeight();\n });\n }\n\n function drawChart() {\n _rowData = _chart.data();\n\n drawAxis();\n drawGridLines();\n\n var rows = _g.selectAll('g.' + _rowCssClass)\n .data(_rowData);\n\n createElements(rows);\n removeElements(rows);\n updateElements(rows);\n }\n\n function createElements(rows) {\n var rowEnter = rows.enter()\n .append('g')\n .attr('class', function (d, i) {\n return _rowCssClass + ' _' + i;\n });\n\n rowEnter.append('rect').attr('width', 0);\n\n createLabels(rowEnter);\n updateLabels(rows);\n }\n\n function removeElements(rows) {\n rows.exit().remove();\n }\n\n function rootValue() {\n var root = _x(0);\n return (root === -Infinity || root !== root) ? _x(1) : root;\n }\n\n function updateElements(rows) {\n var n = _rowData.length;\n\n var height;\n if (!_fixedBarHeight) {\n height = (_chart.effectiveHeight() - (n + 1) * _gap) / n;\n } else {\n height = _fixedBarHeight;\n }\n\n // vertically align label in center unless they override the value via property setter\n if (!_hasLabelOffsetY) {\n _labelOffsetY = height / 2;\n }\n\n var rect = rows.attr('transform', function (d, i) {\n return 'translate(0,' + ((i + 1) * _gap + i * height) + ')';\n }).select('rect')\n .attr('height', height)\n .attr('fill', _chart.getColor)\n .on('click', onClick)\n .classed('deselected', function (d) {\n return (_chart.hasFilter()) ? !isSelectedRow(d) : false;\n })\n .classed('selected', function (d) {\n return (_chart.hasFilter()) ? isSelectedRow(d) : false;\n });\n\n dc.transition(rect, _chart.transitionDuration())\n .attr('width', function (d) {\n return Math.abs(rootValue() - _x(_chart.valueAccessor()(d)));\n })\n .attr('transform', translateX);\n\n createTitles(rows);\n updateLabels(rows);\n }\n\n function createTitles(rows) {\n if (_chart.renderTitle()) {\n rows.selectAll('title').remove();\n rows.append('title').text(_chart.title());\n }\n }\n\n function createLabels(rowEnter) {\n if (_chart.renderLabel()) {\n rowEnter.append('text')\n .on('click', onClick);\n }\n if (_chart.renderTitleLabel()) {\n rowEnter.append('text')\n .attr('class', _titleRowCssClass)\n .on('click', onClick);\n }\n }\n\n function updateLabels(rows) {\n if (_chart.renderLabel()) {\n var lab = rows.select('text')\n .attr('x', _labelOffsetX)\n .attr('y', _labelOffsetY)\n .attr('dy', _dyOffset)\n .on('click', onClick)\n .attr('class', function (d, i) {\n return _rowCssClass + ' _' + i;\n })\n .text(function (d) {\n return _chart.label()(d);\n });\n dc.transition(lab, _chart.transitionDuration())\n .attr('transform', translateX);\n }\n if (_chart.renderTitleLabel()) {\n var titlelab = rows.select('.' + _titleRowCssClass)\n .attr('x', _chart.effectiveWidth() - _titleLabelOffsetX)\n .attr('y', _labelOffsetY)\n .attr('text-anchor', 'end')\n .on('click', onClick)\n .attr('class', function (d, i) {\n return _titleRowCssClass + ' _' + i ;\n })\n .text(function (d) {\n return _chart.title()(d);\n });\n dc.transition(titlelab, _chart.transitionDuration())\n .attr('transform', translateX);\n }\n }\n\n /**\n #### .renderTitleLabel(boolean)\n Turn on/off Title label rendering (values) using SVG style of text-anchor 'end'\n\n **/\n _chart.renderTitleLabel = function (_) {\n if (!arguments.length) {\n return _renderTitleLabel;\n }\n _renderTitleLabel = _;\n return _chart;\n };\n\n function onClick(d) {\n _chart.onClick(d);\n }\n\n function translateX(d) {\n var x = _x(_chart.cappedValueAccessor(d)),\n x0 = rootValue(),\n s = x > x0 ? x0 : x;\n return 'translate(' + s + ',0)';\n }\n\n _chart._doRedraw = function () {\n drawChart();\n return _chart;\n };\n\n /**\n #### .xAxis()\n Get the x axis for the row chart instance. Note: not settable for row charts.\n See the [d3 axis object](https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-axis) documention for more information.\n ```js\n // customize x axis tick format\n chart.xAxis().tickFormat(function (v) {return v + '%';});\n // customize x axis tick values\n chart.xAxis().tickValues([0, 100, 200, 300]);\n ```\n\n **/\n _chart.xAxis = function () {\n return _xAxis;\n };\n\n /**\n #### .fixedBarHeight([height])\n Get or set the fixed bar height. Default is [false] which will auto-scale bars.\n For example, if you want to fix the height for a specific number of bars (useful in TopN charts)\n you could fix height as follows (where count = total number of bars in your TopN and gap is\n your vertical gap space).\n ```js\n chart.fixedBarHeight( chartheight - (count + 1) * gap / count);\n ```\n **/\n _chart.fixedBarHeight = function (g) {\n if (!arguments.length) {\n return _fixedBarHeight;\n }\n _fixedBarHeight = g;\n return _chart;\n };\n\n /**\n #### .gap([gap])\n Get or set the vertical gap space between rows on a particular row chart instance. Default gap is 5px;\n\n **/\n _chart.gap = function (g) {\n if (!arguments.length) {\n return _gap;\n }\n _gap = g;\n return _chart;\n };\n\n /**\n #### .elasticX([boolean])\n Get or set the elasticity on x axis. If this attribute is set to true, then the x axis will rescle to auto-fit the\n data range when filtered.\n\n **/\n _chart.elasticX = function (_) {\n if (!arguments.length) {\n return _elasticX;\n }\n _elasticX = _;\n return _chart;\n };\n\n /**\n #### .labelOffsetX([x])\n Get or set the x offset (horizontal space to the top left corner of a row) for labels on a particular row chart.\n Default x offset is 10px;\n\n **/\n _chart.labelOffsetX = function (o) {\n if (!arguments.length) {\n return _labelOffsetX;\n }\n _labelOffsetX = o;\n return _chart;\n };\n\n /**\n #### .labelOffsetY([y])\n Get or set the y offset (vertical space to the top left corner of a row) for labels on a particular row chart.\n Default y offset is 15px;\n\n **/\n _chart.labelOffsetY = function (o) {\n if (!arguments.length) {\n return _labelOffsetY;\n }\n _labelOffsetY = o;\n _hasLabelOffsetY = true;\n return _chart;\n };\n\n /**\n #### .titleLabelOffsetx([x])\n Get of set the x offset (horizontal space between right edge of row and right edge or text.\n Default x offset is 2px;\n\n **/\n _chart.titleLabelOffsetX = function (o) {\n if (!arguments.length) {\n return _titleLabelOffsetX;\n }\n _titleLabelOffsetX = o;\n return _chart;\n };\n\n function isSelectedRow (d) {\n return _chart.hasFilter(_chart.cappedKeyAccessor(d));\n }\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Legend\nLegend is a attachable widget that can be added to other dc charts to render horizontal legend\nlabels.\n\n```js\nchart.legend(dc.legend().x(400).y(10).itemHeight(13).gap(5))\n```\n\nExamples:\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n* [Canadian City Crime Stats](http://dc-js.github.com/dc.js/crime/index.html)\n\n**/\ndc.legend = function () {\n var LABEL_GAP = 2;\n\n var _legend = {},\n _parent,\n _x = 0,\n _y = 0,\n _itemHeight = 12,\n _gap = 5,\n _horizontal = false,\n _legendWidth = 560,\n _itemWidth = 70,\n _autoItemWidth = false;\n\n var _g;\n\n _legend.parent = function (p) {\n if (!arguments.length) {\n return _parent;\n }\n _parent = p;\n return _legend;\n };\n\n _legend.render = function () {\n _parent.svg().select('g.dc-legend').remove();\n _g = _parent.svg().append('g')\n .attr('class', 'dc-legend')\n .attr('transform', 'translate(' + _x + ',' + _y + ')');\n var legendables = _parent.legendables();\n\n var itemEnter = _g.selectAll('g.dc-legend-item')\n .data(legendables)\n .enter()\n .append('g')\n .attr('class', 'dc-legend-item')\n .on('mouseover', function (d) {\n _parent.legendHighlight(d);\n })\n .on('mouseout', function (d) {\n _parent.legendReset(d);\n })\n .on('click', function (d) {\n d.chart.legendToggle(d);\n });\n\n _g.selectAll('g.dc-legend-item')\n .classed('fadeout', function (d) {\n return d.chart.isLegendableHidden(d);\n });\n\n if (legendables.some(dc.pluck('dashstyle'))) {\n itemEnter\n .append('line')\n .attr('x1', 0)\n .attr('y1', _itemHeight / 2)\n .attr('x2', _itemHeight)\n .attr('y2', _itemHeight / 2)\n .attr('stroke-width', 2)\n .attr('stroke-dasharray', dc.pluck('dashstyle'))\n .attr('stroke', dc.pluck('color'));\n } else {\n itemEnter\n .append('rect')\n .attr('width', _itemHeight)\n .attr('height', _itemHeight)\n .attr('fill', function (d) {return d ? d.color : 'blue';});\n }\n\n itemEnter.append('text')\n .text(dc.pluck('name'))\n .attr('x', _itemHeight + LABEL_GAP)\n .attr('y', function () {\n return _itemHeight / 2 + (this.clientHeight ? this.clientHeight : 13) / 2 - 2;\n });\n\n var _cumulativeLegendTextWidth = 0;\n var row = 0;\n itemEnter.attr('transform', function (d, i) {\n if (_horizontal) {\n var translateBy = 'translate(' + _cumulativeLegendTextWidth + ',' + row * legendItemHeight() + ')';\n var itemWidth = _autoItemWidth === true ? this.getBBox().width + _gap : _itemWidth;\n\n if ((_cumulativeLegendTextWidth + itemWidth) >= _legendWidth) {\n ++row ;\n _cumulativeLegendTextWidth = 0 ;\n } else {\n _cumulativeLegendTextWidth += itemWidth;\n }\n return translateBy;\n }\n else {\n return 'translate(0,' + i * legendItemHeight() + ')';\n }\n });\n };\n\n function legendItemHeight() {\n return _gap + _itemHeight;\n }\n\n /**\n #### .x([value])\n Set or get x coordinate for legend widget. Default: 0.\n **/\n _legend.x = function (x) {\n if (!arguments.length) {\n return _x;\n }\n _x = x;\n return _legend;\n };\n\n /**\n #### .y([value])\n Set or get y coordinate for legend widget. Default: 0.\n **/\n _legend.y = function (y) {\n if (!arguments.length) {\n return _y;\n }\n _y = y;\n return _legend;\n };\n\n /**\n #### .gap([value])\n Set or get gap between legend items. Default: 5.\n **/\n _legend.gap = function (gap) {\n if (!arguments.length) {\n return _gap;\n }\n _gap = gap;\n return _legend;\n };\n\n /**\n #### .itemHeight([value])\n Set or get legend item height. Default: 12.\n **/\n _legend.itemHeight = function (h) {\n if (!arguments.length) {\n return _itemHeight;\n }\n _itemHeight = h;\n return _legend;\n };\n\n /**\n #### .horizontal([boolean])\n Position legend horizontally instead of vertically\n **/\n _legend.horizontal = function (_) {\n if (!arguments.length) {\n return _horizontal;\n }\n _horizontal = _;\n return _legend;\n };\n\n /**\n #### .legendWidth([value])\n Maximum width for horizontal legend. Default: 560.\n **/\n _legend.legendWidth = function (_) {\n if (!arguments.length) {\n return _legendWidth;\n }\n _legendWidth = _;\n return _legend;\n };\n\n /**\n #### .itemWidth([value])\n legendItem width for horizontal legend. Default: 70.\n **/\n _legend.itemWidth = function (_) {\n if (!arguments.length) {\n return _itemWidth;\n }\n _itemWidth = _;\n return _legend;\n };\n\n /**\n #### .autoItemWidth([value])\n Turn automatic width for legend items on or off. If true, itemWidth() is ignored.\n This setting takes into account gap(). Default: false.\n **/\n _legend.autoItemWidth = function (_) {\n if (!arguments.length) {\n return _autoItemWidth;\n }\n _autoItemWidth = _;\n return _legend;\n };\n\n return _legend;\n};\n","/**\n## Scatter Plot\nIncludes: [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nA scatter plot chart\n#### dc.scatterPlot(parent[, chartGroup])\nCreate a scatter plot instance and attach it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection | compositeChart - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n If the scatter plot is a sub-chart in a [Composite Chart](#composite-chart) then pass in the parent composite\n chart instance.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created scatter plot instance\n\n```js\n// create a scatter plot under #chart-container1 element using the default global chart group\nvar chart1 = dc.scatterPlot('#chart-container1');\n// create a scatter plot under #chart-container2 element using chart group A\nvar chart2 = dc.scatterPlot('#chart-container2', 'chartGroupA');\n// create a sub-chart under a composite parent chart\nvar chart3 = dc.scatterPlot(compositeChart);\n```\n\n **/\ndc.scatterPlot = function (parent, chartGroup) {\n var _chart = dc.coordinateGridMixin({});\n var _symbol = d3.svg.symbol();\n\n var _existenceAccessor = function (d) { return d.value; };\n\n var originalKeyAccessor = _chart.keyAccessor();\n _chart.keyAccessor(function (d) { return originalKeyAccessor(d)[0]; });\n _chart.valueAccessor(function (d) { return originalKeyAccessor(d)[1]; });\n _chart.colorAccessor(function () { return _chart._groupName; });\n\n var _locator = function (d) {\n return 'translate(' + _chart.x()(_chart.keyAccessor()(d)) + ',' +\n _chart.y()(_chart.valueAccessor()(d)) + ')';\n };\n\n var _symbolSize = 3;\n var _highlightedSize = 5;\n var _hiddenSize = 0;\n\n _symbol.size(function (d) {\n if (!_existenceAccessor(d)) {\n return _hiddenSize;\n } else if (this.filtered) {\n return Math.pow(_highlightedSize, 2);\n } else {\n return Math.pow(_symbolSize, 2);\n }\n });\n\n dc.override(_chart, '_filter', function (filter) {\n if (!arguments.length) {\n return _chart.__filter();\n }\n\n return _chart.__filter(dc.filters.RangedTwoDimensionalFilter(filter));\n });\n\n _chart.plotData = function () {\n var symbols = _chart.chartBodyG().selectAll('path.symbol')\n .data(_chart.data());\n\n symbols\n .enter()\n .append('path')\n .attr('class', 'symbol')\n .attr('opacity', 0)\n .attr('fill', _chart.getColor)\n .attr('transform', _locator);\n\n dc.transition(symbols, _chart.transitionDuration())\n .attr('opacity', function (d) { return _existenceAccessor(d) ? 1 : 0; })\n .attr('fill', _chart.getColor)\n .attr('transform', _locator)\n .attr('d', _symbol);\n\n dc.transition(symbols.exit(), _chart.transitionDuration())\n .attr('opacity', 0).remove();\n };\n\n /**\n #### .existenceAccessor([accessor])\n Get or set the existence accessor. If a point exists, it is drawn with symbolSize radius and\n opacity 1; if it does not exist, it is drawn with hiddenSize radius and opacity 0. By default,\n the existence accessor checks if the reduced value is truthy.\n **/\n\n _chart.existenceAccessor = function (acc) {\n if (!arguments.length) {\n return _existenceAccessor;\n }\n _existenceAccessor = acc;\n return this;\n };\n\n /**\n #### .symbol([type])\n Get or set the symbol type used for each point. By default the symbol is a circle. See the D3\n [docs](https://github.com/mbostock/d3/wiki/SVG-Shapes#wiki-symbol_type) for acceptable types.\n Type can be a constant or an accessor.\n\n **/\n _chart.symbol = function (type) {\n if (!arguments.length) {\n return _symbol.type();\n }\n _symbol.type(type);\n return _chart;\n };\n\n /**\n #### .symbolSize([radius])\n Set or get radius for symbols. Default: 3.\n\n **/\n _chart.symbolSize = function (s) {\n if (!arguments.length) {\n return _symbolSize;\n }\n _symbolSize = s;\n return _chart;\n };\n\n /**\n #### .highlightedSize([radius])\n Set or get radius for highlighted symbols. Default: 4.\n\n **/\n _chart.highlightedSize = function (s) {\n if (!arguments.length) {\n return _highlightedSize;\n }\n _highlightedSize = s;\n return _chart;\n };\n\n /**\n #### .hiddenSize([radius])\n Set or get radius for symbols when the group is empty. Default: 0.\n\n **/\n _chart.hiddenSize = function (s) {\n if (!arguments.length) {\n return _hiddenSize;\n }\n _hiddenSize = s;\n return _chart;\n };\n\n _chart.legendables = function () {\n return [{chart: _chart, name: _chart._groupName, color: _chart.getColor()}];\n };\n\n _chart.legendHighlight = function (d) {\n resizeSymbolsWhere(function (symbol) {\n return symbol.attr('fill') === d.color;\n }, _highlightedSize);\n _chart.selectAll('.chart-body path.symbol').filter(function () {\n return d3.select(this).attr('fill') !== d.color;\n }).classed('fadeout', true);\n };\n\n _chart.legendReset = function (d) {\n resizeSymbolsWhere(function (symbol) {\n return symbol.attr('fill') === d.color;\n }, _symbolSize);\n _chart.selectAll('.chart-body path.symbol').filter(function () {\n return d3.select(this).attr('fill') !== d.color;\n }).classed('fadeout', false);\n };\n\n function resizeSymbolsWhere(condition, size) {\n var symbols = _chart.selectAll('.chart-body path.symbol').filter(function () {\n return condition(d3.select(this));\n });\n var oldSize = _symbol.size();\n _symbol.size(Math.pow(size, 2));\n dc.transition(symbols, _chart.transitionDuration()).attr('d', _symbol);\n _symbol.size(oldSize);\n }\n\n _chart.setHandlePaths = function () {\n // no handle paths for poly-brushes\n };\n\n _chart.extendBrush = function () {\n var extent = _chart.brush().extent();\n if (_chart.round()) {\n extent[0] = extent[0].map(_chart.round());\n extent[1] = extent[1].map(_chart.round());\n\n _chart.g().select('.brush')\n .call(_chart.brush().extent(extent));\n }\n return extent;\n };\n\n _chart.brushIsEmpty = function (extent) {\n return _chart.brush().empty() || !extent || extent[0][0] >= extent[1][0] || extent[0][1] >= extent[1][1];\n };\n\n function resizeFiltered(filter) {\n var symbols = _chart.selectAll('.chart-body path.symbol').each(function (d) {\n this.filtered = filter && filter.isFiltered(d.key);\n });\n\n dc.transition(symbols, _chart.transitionDuration()).attr('d', _symbol);\n }\n\n _chart._brushing = function () {\n var extent = _chart.extendBrush();\n\n _chart.redrawBrush(_chart.g());\n\n if (_chart.brushIsEmpty(extent)) {\n dc.events.trigger(function () {\n _chart.filter(null);\n _chart.redrawGroup();\n });\n\n resizeFiltered(false);\n\n } else {\n var ranged2DFilter = dc.filters.RangedTwoDimensionalFilter(extent);\n dc.events.trigger(function () {\n _chart.filter(null);\n _chart.filter(ranged2DFilter);\n _chart.redrawGroup();\n }, dc.constants.EVENT_DELAY);\n\n resizeFiltered(ranged2DFilter);\n }\n };\n\n _chart.setBrushY = function (gBrush) {\n gBrush.call(_chart.brush().y(_chart.y()));\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Number Display Widget\nIncludes: [Base Mixin](#base-mixin)\n\nA display of a single numeric value.\n\nExamples:\n\n* [Test Example](http://dc-js.github.io/dc.js/examples/number.html)\n#### dc.numberDisplay(parent[, chartGroup])\nCreate a Number Display instance and attach it to the given parent element.\n\nUnlike other charts, you do not need to set a dimension. Instead a group object must be provided and\na valueAccessor that returns a single value.\n\nParameters:\n\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n The number display widget will only react to filter changes in the chart group.\n\nReturns:\nA newly created number display instance\n\n```js\n// create a number display under #chart-container1 element using the default global chart group\nvar display1 = dc.numberDisplay('#chart-container1');\n```\n\n**/\ndc.numberDisplay = function (parent, chartGroup) {\n var SPAN_CLASS = 'number-display';\n var _formatNumber = d3.format('.2s');\n var _chart = dc.baseMixin({});\n var _html = {one:'', some:'', none:''};\n\n // dimension not required\n _chart._mandatoryAttributes(['group']);\n\n /**\n #### .html([object])\n Gets or sets an optional object specifying HTML templates to use depending on the number\n displayed. The text `%number` will be replaced with the current value.\n - one: HTML template to use if the number is 1\n - zero: HTML template to use if the number is 0\n - some: HTML template to use otherwise\n\n ```js\n numberWidget.html({\n one:'%number record',\n some:'%number records',\n none:'no records'})\n ```\n **/\n\n _chart.html = function (s) {\n if (!arguments.length) {\n return _html;\n }\n if (s.none) {\n _html.none = s.none;//if none available\n } else if (s.one) {\n _html.none = s.one;//if none not available use one\n } else if (s.some) {\n _html.none = s.some;//if none and one not available use some\n }\n if (s.one) {\n _html.one = s.one;//if one available\n } else if (s.some) {\n _html.one = s.some;//if one not available use some\n }\n if (s.some) {\n _html.some = s.some;//if some available\n } else if (s.one) {\n _html.some = s.one;//if some not available use one\n }\n return _chart;\n };\n\n /**\n #### .value()\n Calculate and return the underlying value of the display\n **/\n\n _chart.value = function () {\n return _chart.data();\n };\n\n _chart.data(function (group) {\n var valObj = group.value ? group.value() : group.top(1)[0];\n return _chart.valueAccessor()(valObj);\n });\n\n _chart.transitionDuration(250); // good default\n\n _chart._doRender = function () {\n var newValue = _chart.value(),\n span = _chart.selectAll('.' + SPAN_CLASS);\n\n if (span.empty()) {\n span = span.data([0])\n .enter()\n .append('span')\n .attr('class', SPAN_CLASS);\n }\n\n span.transition()\n .duration(_chart.transitionDuration())\n .ease('quad-out-in')\n .tween('text', function () {\n var interp = d3.interpolateNumber(this.lastValue || 0, newValue);\n this.lastValue = newValue;\n return function (t) {\n var html = null, num = _chart.formatNumber()(interp(t));\n if (newValue === 0 && (_html.none !== '')) {\n html = _html.none;\n } else if (newValue === 1 && (_html.one !== '')) {\n html = _html.one;\n } else if (_html.some !== '') {\n html = _html.some;\n }\n this.innerHTML = html ? html.replace('%number', num) : num;\n };\n });\n };\n\n _chart._doRedraw = function () {\n return _chart._doRender();\n };\n\n /**\n #### .formatNumber([formatter])\n Get or set a function to format the value for the display. By default `d3.format('.2s');` is used.\n\n **/\n _chart.formatNumber = function (_) {\n if (!arguments.length) {\n return _formatNumber;\n }\n _formatNumber = _;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n ## Heat Map\n\n Includes: [Color Mixin](#color-mixin), [Margin Mixin](#margin-mixin), [Base Mixin](#base-mixin)\n\n A heat map is matrix that represents the values of two dimensions of data using colors.\n\n #### dc.heatMap(parent[, chartGroup])\n Create a heat map instance and attach it to the given parent element.\n\n Parameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\n Returns:\n A newly created heat map instance\n\n ```js\n // create a heat map under #chart-container1 element using the default global chart group\n var heatMap1 = dc.heatMap('#chart-container1');\n // create a heat map under #chart-container2 element using chart group A\n var heatMap2 = dc.heatMap('#chart-container2', 'chartGroupA');\n ```\n\n **/\ndc.heatMap = function (parent, chartGroup) {\n\n var DEFAULT_BORDER_RADIUS = 6.75;\n\n var _chartBody;\n\n var _cols;\n var _rows;\n var _colOrdering = d3.ascending;\n var _rowOrdering = d3.ascending;\n var _colScale = d3.scale.ordinal();\n var _rowScale = d3.scale.ordinal();\n\n var _xBorderRadius = DEFAULT_BORDER_RADIUS;\n var _yBorderRadius = DEFAULT_BORDER_RADIUS;\n\n var _chart = dc.colorMixin(dc.marginMixin(dc.baseMixin({})));\n _chart._mandatoryAttributes(['group']);\n _chart.title(_chart.colorAccessor());\n\n var _colsLabel = function (d) {\n return d;\n };\n var _rowsLabel = function (d) {\n return d;\n };\n\n /**\n #### .colsLabel([labelFunction])\n Set or get the column label function. The chart class uses this function to render\n column labels on the X axis. It is passed the column name.\n ```js\n // the default label function just returns the name\n chart.colsLabel(function(d) { return d; });\n ```\n **/\n _chart.colsLabel = function (_) {\n if (!arguments.length) {\n return _colsLabel;\n }\n _colsLabel = _;\n return _chart;\n };\n\n /**\n #### .rowsLabel([labelFunction])\n Set or get the row label function. The chart class uses this function to render\n row labels on the Y axis. It is passed the row name.\n ```js\n // the default label function just returns the name\n chart.rowsLabel(function(d) { return d; });\n ```\n **/\n _chart.rowsLabel = function (_) {\n if (!arguments.length) {\n return _rowsLabel;\n }\n _rowsLabel = _;\n return _chart;\n };\n\n var _xAxisOnClick = function (d) { filterAxis(0, d); };\n var _yAxisOnClick = function (d) { filterAxis(1, d); };\n var _boxOnClick = function (d) {\n var filter = d.key;\n dc.events.trigger(function () {\n _chart.filter(filter);\n _chart.redrawGroup();\n });\n };\n\n function filterAxis(axis, value) {\n var cellsOnAxis = _chart.selectAll('.box-group').filter(function (d) {\n return d.key[axis] === value;\n });\n var unfilteredCellsOnAxis = cellsOnAxis.filter(function (d) {\n return !_chart.hasFilter(d.key);\n });\n dc.events.trigger(function () {\n if (unfilteredCellsOnAxis.empty()) {\n cellsOnAxis.each(function (d) {\n _chart.filter(d.key);\n });\n } else {\n unfilteredCellsOnAxis.each(function (d) {\n _chart.filter(d.key);\n });\n }\n _chart.redrawGroup();\n });\n }\n\n dc.override(_chart, 'filter', function (filter) {\n if (!arguments.length) {\n return _chart._filter();\n }\n\n return _chart._filter(dc.filters.TwoDimensionalFilter(filter));\n });\n\n /**\n #### .rows([values])\n Gets or sets the values used to create the rows of the heatmap, as an array. By default, all\n the values will be fetched from the data using the value accessor.\n **/\n\n _chart.rows = function (_) {\n if (!arguments.length) {\n return _rows;\n }\n _rows = _;\n return _chart;\n };\n\n /**\n #### .rowOrdering([orderFunction])\n Get or set an accessor to order the rows. Default is d3.ascending.\n */\n _chart.rowOrdering = function (_) {\n if (!arguments.length) {\n return _rowOrdering;\n }\n _rowOrdering = _;\n return _chart;\n };\n\n /**\n #### .cols([keys])\n Gets or sets the keys used to create the columns of the heatmap, as an array. By default, all\n the values will be fetched from the data using the key accessor.\n **/\n _chart.cols = function (_) {\n if (!arguments.length) {\n return _cols;\n }\n _cols = _;\n return _chart;\n };\n\n /**\n #### .colOrdering([orderFunction])\n Get or set an accessor to order the cols. Default is ascending.\n */\n _chart.colOrdering = function (_) {\n if (!arguments.length) {\n return _colOrdering;\n }\n _colOrdering = _;\n return _chart;\n };\n\n _chart._doRender = function () {\n _chart.resetSvg();\n\n _chartBody = _chart.svg()\n .append('g')\n .attr('class', 'heatmap')\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')');\n\n return _chart._doRedraw();\n };\n\n _chart._doRedraw = function () {\n var data = _chart.data(),\n rows = _chart.rows() || data.map(_chart.valueAccessor()),\n cols = _chart.cols() || data.map(_chart.keyAccessor());\n if (_rowOrdering) {\n rows = rows.sort(_rowOrdering);\n }\n if (_colOrdering) {\n cols = cols.sort(_colOrdering);\n }\n rows = _rowScale.domain(rows);\n cols = _colScale.domain(cols);\n\n var rowCount = rows.domain().length,\n colCount = cols.domain().length,\n boxWidth = Math.floor(_chart.effectiveWidth() / colCount),\n boxHeight = Math.floor(_chart.effectiveHeight() / rowCount);\n\n cols.rangeRoundBands([0, _chart.effectiveWidth()]);\n rows.rangeRoundBands([_chart.effectiveHeight(), 0]);\n\n var boxes = _chartBody.selectAll('g.box-group').data(_chart.data(), function (d, i) {\n return _chart.keyAccessor()(d, i) + '\\0' + _chart.valueAccessor()(d, i);\n });\n var gEnter = boxes.enter().append('g')\n .attr('class', 'box-group');\n\n gEnter.append('rect')\n .attr('class', 'heat-box')\n .attr('fill', 'white')\n .on('click', _chart.boxOnClick());\n\n if (_chart.renderTitle()) {\n gEnter.append('title');\n boxes.selectAll('title').text(_chart.title());\n }\n\n dc.transition(boxes.selectAll('rect'), _chart.transitionDuration())\n .attr('x', function (d, i) { return cols(_chart.keyAccessor()(d, i)); })\n .attr('y', function (d, i) { return rows(_chart.valueAccessor()(d, i)); })\n .attr('rx', _xBorderRadius)\n .attr('ry', _yBorderRadius)\n .attr('fill', _chart.getColor)\n .attr('width', boxWidth)\n .attr('height', boxHeight);\n\n boxes.exit().remove();\n\n var gCols = _chartBody.selectAll('g.cols');\n if (gCols.empty()) {\n gCols = _chartBody.append('g').attr('class', 'cols axis');\n }\n var gColsText = gCols.selectAll('text').data(cols.domain());\n gColsText.enter().append('text')\n .attr('x', function (d) { return cols(d) + boxWidth / 2; })\n .style('text-anchor', 'middle')\n .attr('y', _chart.effectiveHeight())\n .attr('dy', 12)\n .on('click', _chart.xAxisOnClick())\n .text(_chart.colsLabel());\n dc.transition(gColsText, _chart.transitionDuration())\n .text(_chart.colsLabel())\n .attr('x', function (d) { return cols(d) + boxWidth / 2; });\n gColsText.exit().remove();\n var gRows = _chartBody.selectAll('g.rows');\n if (gRows.empty()) {\n gRows = _chartBody.append('g').attr('class', 'rows axis');\n }\n var gRowsText = gRows.selectAll('text').data(rows.domain());\n gRowsText.enter().append('text')\n .attr('dy', 6)\n .style('text-anchor', 'end')\n .attr('x', 0)\n .attr('dx', -2)\n .on('click', _chart.yAxisOnClick())\n .text(_chart.rowsLabel());\n dc.transition(gRowsText, _chart.transitionDuration())\n .text(_chart.rowsLabel())\n .attr('y', function (d) { return rows(d) + boxHeight / 2; });\n gRowsText.exit().remove();\n\n if (_chart.hasFilter()) {\n _chart.selectAll('g.box-group').each(function (d) {\n if (_chart.isSelectedNode(d)) {\n _chart.highlightSelected(this);\n } else {\n _chart.fadeDeselected(this);\n }\n });\n } else {\n _chart.selectAll('g.box-group').each(function () {\n _chart.resetHighlight(this);\n });\n }\n return _chart;\n };\n /**\n #### .boxOnClick([handler])\n Gets or sets the handler that fires when an individual cell is clicked in the heatmap.\n By default, filtering of the cell will be toggled.\n **/\n _chart.boxOnClick = function (f) {\n if (!arguments.length) {\n return _boxOnClick;\n }\n _boxOnClick = f;\n return _chart;\n };\n\n /**\n #### .xAxisOnClick([handler])\n Gets or sets the handler that fires when a column tick is clicked in the x axis.\n By default, if any cells in the column are unselected, the whole column will be selected,\n otherwise the whole column will be unselected.\n **/\n _chart.xAxisOnClick = function (f) {\n if (!arguments.length) {\n return _xAxisOnClick;\n }\n _xAxisOnClick = f;\n return _chart;\n };\n\n /**\n #### .yAxisOnClick([handler])\n Gets or sets the handler that fires when a row tick is clicked in the y axis.\n By default, if any cells in the row are unselected, the whole row will be selected,\n otherwise the whole row will be unselected.\n **/\n _chart.yAxisOnClick = function (f) {\n if (!arguments.length) {\n return _yAxisOnClick;\n }\n _yAxisOnClick = f;\n return _chart;\n };\n\n /**\n #### .xBorderRadius([value])\n Gets or sets the X border radius. Set to 0 to get full rectangles. Default: 6.75\n */\n _chart.xBorderRadius = function (d) {\n if (!arguments.length) {\n return _xBorderRadius;\n }\n _xBorderRadius = d;\n return _chart;\n };\n\n /**\n #### .xBorderRadius([value])\n Gets or sets the Y border radius. Set to 0 to get full rectangles. Default: 6.75\n */\n _chart.yBorderRadius = function (d) {\n if (!arguments.length) {\n return _yBorderRadius;\n }\n _yBorderRadius = d;\n return _chart;\n };\n\n _chart.isSelectedNode = function (d) {\n return _chart.hasFilter(d.key);\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","// https://github.com/d3/d3-plugins/blob/master/box/box.js\n(function () {\n\n // Inspired by http://informationandvisualization.de/blog/box-plot\n d3.box = function () {\n var width = 1,\n height = 1,\n duration = 0,\n domain = null,\n value = Number,\n whiskers = boxWhiskers,\n quartiles = boxQuartiles,\n tickFormat = null;\n\n // For each small multiple…\n function box(g) {\n g.each(function (d, i) {\n d = d.map(value).sort(d3.ascending);\n var g = d3.select(this),\n n = d.length,\n min = d[0],\n max = d[n - 1];\n\n // Compute quartiles. Must return exactly 3 elements.\n var quartileData = d.quartiles = quartiles(d);\n\n // Compute whiskers. Must return exactly 2 elements, or null.\n var whiskerIndices = whiskers && whiskers.call(this, d, i),\n whiskerData = whiskerIndices && whiskerIndices.map(function (i) { return d[i]; });\n\n // Compute outliers. If no whiskers are specified, all data are 'outliers'.\n // We compute the outliers as indices, so that we can join across transitions!\n var outlierIndices = whiskerIndices ?\n d3.range(0, whiskerIndices[0]).concat(d3.range(whiskerIndices[1] + 1, n)) : d3.range(n);\n\n // Compute the new x-scale.\n var x1 = d3.scale.linear()\n .domain(domain && domain.call(this, d, i) || [min, max])\n .range([height, 0]);\n\n // Retrieve the old x-scale, if this is an update.\n var x0 = this.__chart__ || d3.scale.linear()\n .domain([0, Infinity])\n .range(x1.range());\n\n // Stash the new scale.\n this.__chart__ = x1;\n\n // Note: the box, median, and box tick elements are fixed in number,\n // so we only have to handle enter and update. In contrast, the outliers\n // and other elements are variable, so we need to exit them! Variable\n // elements also fade in and out.\n\n // Update center line: the vertical line spanning the whiskers.\n var center = g.selectAll('line.center')\n .data(whiskerData ? [whiskerData] : []);\n\n center.enter().insert('line', 'rect')\n .attr('class', 'center')\n .attr('x1', width / 2)\n .attr('y1', function (d) { return x0(d[0]); })\n .attr('x2', width / 2)\n .attr('y2', function (d) { return x0(d[1]); })\n .style('opacity', 1e-6)\n .transition()\n .duration(duration)\n .style('opacity', 1)\n .attr('y1', function (d) { return x1(d[0]); })\n .attr('y2', function (d) { return x1(d[1]); });\n\n center.transition()\n .duration(duration)\n .style('opacity', 1)\n .attr('y1', function (d) { return x1(d[0]); })\n .attr('y2', function (d) { return x1(d[1]); });\n\n center.exit().transition()\n .duration(duration)\n .style('opacity', 1e-6)\n .attr('y1', function (d) { return x1(d[0]); })\n .attr('y2', function (d) { return x1(d[1]); })\n .remove();\n\n // Update innerquartile box.\n var box = g.selectAll('rect.box')\n .data([quartileData]);\n\n box.enter().append('rect')\n .attr('class', 'box')\n .attr('x', 0)\n .attr('y', function (d) { return x0(d[2]); })\n .attr('width', width)\n .attr('height', function (d) { return x0(d[0]) - x0(d[2]); })\n .transition()\n .duration(duration)\n .attr('y', function (d) { return x1(d[2]); })\n .attr('height', function (d) { return x1(d[0]) - x1(d[2]); });\n\n box.transition()\n .duration(duration)\n .attr('y', function (d) { return x1(d[2]); })\n .attr('height', function (d) { return x1(d[0]) - x1(d[2]); });\n\n // Update median line.\n var medianLine = g.selectAll('line.median')\n .data([quartileData[1]]);\n\n medianLine.enter().append('line')\n .attr('class', 'median')\n .attr('x1', 0)\n .attr('y1', x0)\n .attr('x2', width)\n .attr('y2', x0)\n .transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1);\n\n medianLine.transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1);\n\n // Update whiskers.\n var whisker = g.selectAll('line.whisker')\n .data(whiskerData || []);\n\n whisker.enter().insert('line', 'circle, text')\n .attr('class', 'whisker')\n .attr('x1', 0)\n .attr('y1', x0)\n .attr('x2', width)\n .attr('y2', x0)\n .style('opacity', 1e-6)\n .transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1)\n .style('opacity', 1);\n\n whisker.transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1)\n .style('opacity', 1);\n\n whisker.exit().transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1)\n .style('opacity', 1e-6)\n .remove();\n\n // Update outliers.\n var outlier = g.selectAll('circle.outlier')\n .data(outlierIndices, Number);\n\n outlier.enter().insert('circle', 'text')\n .attr('class', 'outlier')\n .attr('r', 5)\n .attr('cx', width / 2)\n .attr('cy', function (i) { return x0(d[i]); })\n .style('opacity', 1e-6)\n .transition()\n .duration(duration)\n .attr('cy', function (i) { return x1(d[i]); })\n .style('opacity', 1);\n\n outlier.transition()\n .duration(duration)\n .attr('cy', function (i) { return x1(d[i]); })\n .style('opacity', 1);\n\n outlier.exit().transition()\n .duration(duration)\n .attr('cy', function (i) { return x1(d[i]); })\n .style('opacity', 1e-6)\n .remove();\n\n // Compute the tick format.\n var format = tickFormat || x1.tickFormat(8);\n\n // Update box ticks.\n var boxTick = g.selectAll('text.box')\n .data(quartileData);\n\n boxTick.enter().append('text')\n .attr('class', 'box')\n .attr('dy', '.3em')\n .attr('dx', function (d, i) { return i & 1 ? 6 : -6; })\n .attr('x', function (d, i) { return i & 1 ? width : 0; })\n .attr('y', x0)\n .attr('text-anchor', function (d, i) { return i & 1 ? 'start' : 'end'; })\n .text(format)\n .transition()\n .duration(duration)\n .attr('y', x1);\n\n boxTick.transition()\n .duration(duration)\n .text(format)\n .attr('y', x1);\n\n // Update whisker ticks. These are handled separately from the box\n // ticks because they may or may not exist, and we want don't want\n // to join box ticks pre-transition with whisker ticks post-.\n var whiskerTick = g.selectAll('text.whisker')\n .data(whiskerData || []);\n\n whiskerTick.enter().append('text')\n .attr('class', 'whisker')\n .attr('dy', '.3em')\n .attr('dx', 6)\n .attr('x', width)\n .attr('y', x0)\n .text(format)\n .style('opacity', 1e-6)\n .transition()\n .duration(duration)\n .attr('y', x1)\n .style('opacity', 1);\n\n whiskerTick.transition()\n .duration(duration)\n .text(format)\n .attr('y', x1)\n .style('opacity', 1);\n\n whiskerTick.exit().transition()\n .duration(duration)\n .attr('y', x1)\n .style('opacity', 1e-6)\n .remove();\n });\n d3.timer.flush();\n }\n\n box.width = function (x) {\n if (!arguments.length) {\n return width;\n }\n width = x;\n return box;\n };\n\n box.height = function (x) {\n if (!arguments.length) {\n return height;\n }\n height = x;\n return box;\n };\n\n box.tickFormat = function (x) {\n if (!arguments.length) {\n return tickFormat;\n }\n tickFormat = x;\n return box;\n };\n\n box.duration = function (x) {\n if (!arguments.length) {\n return duration;\n }\n duration = x;\n return box;\n };\n\n box.domain = function (x) {\n if (!arguments.length) {\n return domain;\n }\n domain = x === null ? x : d3.functor(x);\n return box;\n };\n\n box.value = function (x) {\n if (!arguments.length) {\n return value;\n }\n value = x;\n return box;\n };\n\n box.whiskers = function (x) {\n if (!arguments.length) {\n return whiskers;\n }\n whiskers = x;\n return box;\n };\n\n box.quartiles = function (x) {\n if (!arguments.length) {\n return quartiles;\n }\n quartiles = x;\n return box;\n };\n\n return box;\n };\n\n function boxWhiskers(d) {\n return [0, d.length - 1];\n }\n\n function boxQuartiles(d) {\n return [\n d3.quantile(d, 0.25),\n d3.quantile(d, 0.5),\n d3.quantile(d, 0.75)\n ];\n }\n\n})();\n","/**\n ## Box Plot\n\n Includes: [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\n A box plot is a chart that depicts numerical data via their quartile ranges.\n\n #### dc.boxPlot(parent[, chartGroup])\n Create a box plot instance and attach it to the given parent element.\n\n Parameters:\n * parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) representing\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\n Returns:\n A newly created box plot instance\n\n ```js\n // create a box plot under #chart-container1 element using the default global chart group\n var boxPlot1 = dc.boxPlot('#chart-container1');\n // create a box plot under #chart-container2 element using chart group A\n var boxPlot2 = dc.boxPlot('#chart-container2', 'chartGroupA');\n ```\n\n **/\ndc.boxPlot = function (parent, chartGroup) {\n var _chart = dc.coordinateGridMixin({});\n\n // Returns a function to compute the interquartile range.\n function DEFAULT_WHISKERS_IQR (k) {\n return function (d) {\n var q1 = d.quartiles[0],\n q3 = d.quartiles[2],\n iqr = (q3 - q1) * k,\n i = -1,\n j = d.length;\n /*jshint -W116*/\n /*jshint -W035*/\n while (d[++i] < q1 - iqr) {}\n while (d[--j] > q3 + iqr) {}\n /*jshint +W116*/\n return [i, j];\n /*jshint +W035*/\n };\n }\n\n var _whiskerIqrFactor = 1.5;\n var _whiskersIqr = DEFAULT_WHISKERS_IQR;\n var _whiskers = _whiskersIqr(_whiskerIqrFactor);\n\n var _box = d3.box();\n var _tickFormat = null;\n\n var _boxWidth = function (innerChartWidth, xUnits) {\n if (_chart.isOrdinal()) {\n return _chart.x().rangeBand();\n } else {\n return innerChartWidth / (1 + _chart.boxPadding()) / xUnits;\n }\n };\n\n // default padding to handle min/max whisker text\n _chart.yAxisPadding(12);\n\n // default to ordinal\n _chart.x(d3.scale.ordinal());\n _chart.xUnits(dc.units.ordinal);\n\n // valueAccessor should return an array of values that can be coerced into numbers\n // or if data is overloaded for a static array of arrays, it should be `Number`.\n // Empty arrays are not included.\n _chart.data(function (group) {\n return group.all().map(function (d) {\n d.map = function (accessor) { return accessor.call(d, d); };\n return d;\n }).filter(function (d) {\n var values = _chart.valueAccessor()(d);\n return values.length !== 0;\n });\n });\n\n /**\n #### .boxPadding([padding])\n Get or set the spacing between boxes as a fraction of box size. Valid values are within 0-1.\n See the [d3 docs](https://github.com/mbostock/d3/wiki/Ordinal-Scales#wiki-ordinal_rangeBands)\n for a visual description of how the padding is applied.\n\n Default: 0.8\n **/\n _chart.boxPadding = _chart._rangeBandPadding;\n _chart.boxPadding(0.8);\n\n /**\n #### .outerPadding([padding])\n Get or set the outer padding on an ordinal box chart. This setting has no effect on non-ordinal charts\n or on charts with a custom `.boxWidth`. Will pad the width by `padding * barWidth` on each side of the chart.\n\n Default: 0.5\n **/\n _chart.outerPadding = _chart._outerRangeBandPadding;\n _chart.outerPadding(0.5);\n\n /**\n #### .boxWidth(width || function(innerChartWidth, xUnits) { ... })\n Get or set the numerical width of the boxplot box. The width may also be a function taking as\n parameters the chart width excluding the right and left margins, as well as the number of x\n units.\n **/\n _chart.boxWidth = function (_) {\n if (!arguments.length) {\n return _boxWidth;\n }\n _boxWidth = d3.functor(_);\n return _chart;\n };\n\n var boxTransform = function (d, i) {\n var xOffset = _chart.x()(_chart.keyAccessor()(d, i));\n return 'translate(' + xOffset + ', 0)';\n };\n\n _chart._preprocessData = function () {\n if (_chart.elasticX()) {\n _chart.x().domain([]);\n }\n };\n\n _chart.plotData = function () {\n var _calculatedBoxWidth = _boxWidth(_chart.effectiveWidth(), _chart.xUnitCount());\n\n _box.whiskers(_whiskers)\n .width(_calculatedBoxWidth)\n .height(_chart.effectiveHeight())\n .value(_chart.valueAccessor())\n .domain(_chart.y().domain())\n .duration(_chart.transitionDuration())\n .tickFormat(_tickFormat);\n\n var boxesG = _chart.chartBodyG().selectAll('g.box').data(_chart.data(), function (d) { return d.key; });\n\n renderBoxes(boxesG);\n updateBoxes(boxesG);\n removeBoxes(boxesG);\n\n _chart.fadeDeselectedArea();\n };\n\n function renderBoxes(boxesG) {\n var boxesGEnter = boxesG.enter().append('g');\n\n boxesGEnter\n .attr('class', 'box')\n .attr('transform', boxTransform)\n .call(_box)\n .on('click', function (d) {\n _chart.filter(d.key);\n _chart.redrawGroup();\n });\n }\n\n function updateBoxes(boxesG) {\n dc.transition(boxesG, _chart.transitionDuration())\n .attr('transform', boxTransform)\n .call(_box)\n .each(function () {\n d3.select(this).select('rect.box').attr('fill', _chart.getColor);\n });\n }\n\n function removeBoxes(boxesG) {\n boxesG.exit().remove().call(_box);\n }\n\n _chart.fadeDeselectedArea = function () {\n if (_chart.hasFilter()) {\n _chart.g().selectAll('g.box').each(function (d) {\n if (_chart.isSelectedNode(d)) {\n _chart.highlightSelected(this);\n } else {\n _chart.fadeDeselected(this);\n }\n });\n } else {\n _chart.g().selectAll('g.box').each(function () {\n _chart.resetHighlight(this);\n });\n }\n };\n\n _chart.isSelectedNode = function (d) {\n return _chart.hasFilter(d.key);\n };\n\n _chart.yAxisMin = function () {\n var min = d3.min(_chart.data(), function (e) {\n return d3.min(_chart.valueAccessor()(e));\n });\n return dc.utils.subtract(min, _chart.yAxisPadding());\n };\n\n _chart.yAxisMax = function () {\n var max = d3.max(_chart.data(), function (e) {\n return d3.max(_chart.valueAccessor()(e));\n });\n return dc.utils.add(max, _chart.yAxisPadding());\n };\n\n /**\n #### .tickFormat()\n Set the numerical format of the boxplot median, whiskers and quartile labels. Defaults to\n integer formatting.\n ```js\n // format ticks to 2 decimal places\n chart.tickFormat(d3.format('.2f'));\n ```\n **/\n _chart.tickFormat = function (x) {\n if (!arguments.length) {\n return _tickFormat;\n }\n _tickFormat = x;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","// Renamed functions\n\ndc.abstractBubbleChart = dc.bubbleMixin;\ndc.baseChart = dc.baseMixin;\ndc.capped = dc.capMixin;\ndc.colorChart = dc.colorMixin;\ndc.coordinateGridChart = dc.coordinateGridMixin;\ndc.marginable = dc.marginMixin;\ndc.stackableChart = dc.stackMixin;\n\n// Expose d3 and crossfilter, so that clients in browserify\n// case can obtain them if they need them.\ndc.d3 = d3;\ndc.crossfilter = crossfilter;\n\nreturn dc;}\n if(typeof define === \"function\" && define.amd) {\n define([\"d3\", \"crossfilter\"], _dc);\n } else if(typeof module === \"object\" && module.exports) {\n var _d3 = require('d3');\n var _crossfilter = require('crossfilter');\n // When using npm + browserify, 'crossfilter' is a function,\n // since package.json specifies index.js as main function, and it\n // does special handling. When using bower + browserify,\n // there's no main in bower.json (in fact, there's no bower.json),\n // so we need to fix it.\n if (typeof _crossfilter !== \"function\") {\n _crossfilter = _crossfilter.crossfilter;\n }\n module.exports = _dc(_d3, _crossfilter);\n } else {\n this.dc = _dc(d3, crossfilter);\n }\n}\n)();\n"]} \ No newline at end of file diff --git a/dc.min.js b/dc.min.js index de924b1e0..22b1b9f6d 100644 --- a/dc.min.js +++ b/dc.min.js @@ -1,23 +1,4 @@ -/*! - * dc 2.1.0-dev - * http://dc-js.github.io/dc.js/ - * Copyright 2012-2015 Nick Zhu & the dc.js Developers - * https://github.com/dc-js/dc.js/blob/master/AUTHORS - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -!function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&dp?b:p},r=q,s=200,t=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>s?b:s},u=t,v=c.pluck("key"),w=c.pluck("value"),x=c.pluck("key"),y=c.pluck("key"),z=c.pluck("key"),A=!1,B=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},C=!0,D=750,E=c.printers.filters,F=["dimension","group"],G=c.constants.DEFAULT_CHART_GROUP,H=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),I=[],J=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c=d&&d>=a)return!0}return!1}),b},K=function(a){return a.all()};d.width=function(b){return arguments.length?(r=a.functor(b||q),d):r(k.node())},d.height=function(b){return arguments.length?(u=a.functor(b||t),d):u(k.node())},d.minWidth=function(a){return arguments.length?(p=a,d):p},d.minHeight=function(a){return arguments.length?(s=a,d):s},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(K=a.functor(b),d.expireCache(),d):K.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(z=a,n=b.quicksort.by(z),d.expireCache(),d):z},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(n||(n=b.quicksort.by(z)),n(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root(),m=!0):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e),m=!1),G=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(E=a,d):E},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(E(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(D=a,d):D},d._mandatoryAttributes=function(a){return arguments.length?(F=a,d):F},d.render=function(){H.preRender(d),F&&F.forEach(f);var a=d._doRender();return o&&o.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){H.renderlet(d),a&&H[a](d)}):(H.renderlet(d),a&&H[a](d))},d.redraw=function(){H.preRedraw(d);var a=d._doRedraw();return o&&o.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&H.filtered(d,a)},d._invokeZoomedListener=function(){H.zoomed(d)};var L=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(L=a,d):L},d.hasFilter=function(a){return L(I,a)};var M=function(a,b){for(var c=0;c=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(M=a,d):M};var N=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(N=a,d):N};var O=function(a){return[]};return d.resetFilterHandler=function(a){return arguments.length?(O=a,d):O},d.replaceFilter=function(a){I=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?M(I,a):N(I,a)}):null===a?I=O(I):d.hasFilter(a)?M(I,a):N(I,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):I.length>0?I[0]:null},d.filters=function(){return I},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(J=a,d):J},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(v=a,d):v},d.valueAccessor=function(a){return arguments.length?(w=a,d):w},d.legendLabelAccessor=function(a){return arguments.length?(y=a,d):y},d.label=function(a){return arguments.length?(x=a,A=!0,d):x},d.renderLabel=function(a){return arguments.length?(A=a,d):A},d.title=function(a){return arguments.length?(B=a,d):B},d.renderTitle=function(a){return arguments.length?(C=a,d):C},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(m||c.deregisterChart(d,G),G=a,m||c.registerChart(d,G),d):G},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(o=a,o.parent(d),d):o},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return H.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],ba,b._useOuterPadding()?aa:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,aa=.5,ba=0,ca=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(ca=a,b):ca},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),ca&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=ca?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=ca?b.width()-P:P,d=ca?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(ba=a,b):ba},b._outerRangeBandPadding=function(a){return arguments.length?(aa=a,b):aa},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(d===1/0)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b), +!function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&do?b:o},q=p,r=200,s=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>r?b:r},t=s,u=c.pluck("key"),v=c.pluck("value"),w=c.pluck("key"),x=c.pluck("key"),y=c.pluck("key"),z=!1,A=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},B=!0,C=750,D=c.printers.filters,E=["dimension","group"],F=c.constants.DEFAULT_CHART_GROUP,G=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),H=[],I=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c=d&&d>=a)return!0}return!1}),b},J=function(a){return a.all()};d.width=function(b){return arguments.length?(q=a.functor(b||p),d):q(k.node())},d.height=function(b){return arguments.length?(t=a.functor(b||s),d):t(k.node())},d.minWidth=function(a){return arguments.length?(o=a,d):o},d.minHeight=function(a){return arguments.length?(r=a,d):r},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(J=a.functor(b),d.expireCache(),d):J.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(y=a,m=b.quicksort.by(y),d.expireCache(),d):y},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(m||(m=b.quicksort.by(y)),m(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root()):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e)),F=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(D=a,d):D},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(D(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(C=a,d):C},d._mandatoryAttributes=function(a){return arguments.length?(E=a,d):E},d.render=function(){G.preRender(d),E&&E.forEach(f);var a=d._doRender();return n&&n.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){G.renderlet(d),a&&G[a](d)}):(G.renderlet(d),a&&G[a](d))},d.redraw=function(){G.preRedraw(d);var a=d._doRedraw();return n&&n.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&G.filtered(d,a)},d._invokeZoomedListener=function(){G.zoomed(d)};var K=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(K=a,d):K},d.hasFilter=function(a){return K(H,a)};var L=function(a,b){for(var c=0;c=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(L=a,d):L};var M=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(M=a,d):M};var N=function(a){return[]};return d.resetFilterHandler=function(a){return arguments.length?(N=a,d):N},d.replaceFilter=function(a){H=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?L(H,a):M(H,a)}):null===a?H=N(H):d.hasFilter(a)?L(H,a):M(H,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):H.length>0?H[0]:null},d.filters=function(){return H},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(I=a,d):I},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(u=a,d):u},d.valueAccessor=function(a){return arguments.length?(v=a,d):v},d.legendLabelAccessor=function(a){return arguments.length?(x=a,d):x},d.label=function(a){return arguments.length?(w=a,z=!0,d):w},d.renderLabel=function(a){return arguments.length?(z=a,d):z},d.title=function(a){return arguments.length?(A=a,d):A},d.renderTitle=function(a){return arguments.length?(B=a,d):B},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(F=a,d):F},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(n=a,n.parent(d),d):n},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return G.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],ba,b._useOuterPadding()?aa:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,aa=.5,ba=0,ca=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(ca=a,b):ca},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),ca&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=ca?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=ca?b.width()-P:P,d=ca?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(ba=a,b):ba},b._outerRangeBandPadding=function(a){return arguments.length?(aa=a,b):aa},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(d===1/0)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b), isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"}function C(b,c){O.selectAll("g.pie-slice").each(function(d){b.name===d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G,H,I=.5,J="pie-slice",K="empty-chart",L="empty",M=0,N=I,O=c.capMixin(c.colorMixin(c.baseMixin({})));return O.colorAccessor(O.cappedKeyAccessor),O.legendLabelAccessor(O.cappedKeyAccessor),O.title(function(a){return O.cappedKeyAccessor(a)+": "+O.cappedValueAccessor(a)}),O.slicesCap=O.cap,O.label(O.cappedKeyAccessor),O.renderLabel(!0),O.transitionDuration(350),O._doRender=function(){return O.resetSvg(),E=O.svg().append("g").attr("transform","translate("+O.cx()+","+O.cy()+")"),e(),O},O.innerRadius=function(a){return arguments.length?(M=a,O):M},O.radius=function(a){return arguments.length?(D=a,O):D},O.cx=function(a){return arguments.length?(F=a,O):F||O.width()/2},O.cy=function(a){return arguments.length?(G=a,O):G||O.height()/2},O._doRedraw=function(){return e(),O},O.minAngleForLabel=function(a){return arguments.length?(N=a,O):N},O.emptyTitle=function(a){return 0===arguments.length?L:(L=a,O)},O.externalLabels=function(a){return 0===arguments.length?H:(H=a?a:void 0,O)},O.legendables=function(){return O.data().map(function(a,b){var c={name:O.legendLabelAccessor().call(this,a,b),data:a.value,others:a.others,chart:O};return c.color=O.getColor(a,b),c})},O.legendHighlight=function(a){C(a,!0)},O.legendReset=function(a){C(a,!1)},O.legendToggle=function(a){O.onClick({key:a.name,others:a.others})},O.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(l.y()(a.y+a.y0)-l.y()(a.y0)))}function f(a,b,d){var f=a.selectAll("rect.bar").data(d.values,c.pluck("x")),g=f.enter().append("rect").attr("class","bar").attr("fill",c.pluck("data",l.getColor)).attr("y",l.yAxisHeight()).attr("height",0);l.renderTitle()&&g.append("title").text(c.pluck("data",l.title(d.name))),l.isOrdinal()&&f.on("click",l.onClick),c.transition(f,l.transitionDuration()).attr("x",function(a){var b=l.x()(a.x);return n&&(b-=i/2),l.isOrdinal()&&void 0!==m&&(b+=m/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=l.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",i).attr("height",function(a){return e(a)}).attr("fill",c.pluck("data",l.getColor)).select("title").text(c.pluck("data",l.title(d.name))),c.transition(f.exit(),l.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===i){var a=l.xUnitCount();i=Math.floor(l.isOrdinal()&&void 0===m?l.x().rangeBand():m?(l.xAxisLength()-(a-1)*m)/a:l.xAxisLength()/(1+l.barPadding())/a),(i===1/0||isNaN(i)||j>i)&&(i=j)}}function h(b,c){return function(){var d=a.select(this),e=d.attr("fill")===b;return c?!e:e}}var i,j=1,k=2,l=c.stackMixin(c.coordinateGridMixin({})),m=k,n=!1,o=!1;return c.override(l,"rescale",function(){l._rescale(),i=void 0}),c.override(l,"render",function(){l.round()&&n&&!o&&c.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),l._render()}),l.plotData=function(){var b=l.chartBodyG().selectAll("g.stack").data(l.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},l.fadeDeselectedArea=function(){var a=l.chartBodyG().selectAll("rect.bar"),b=l.brush().extent();if(l.isOrdinal())l.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return l.hasFilter(a.x)}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!l.hasFilter(a.x)})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(l.brushIsEmpty(b))a.classed(c.constants.DESELECTED_CLASS,!1);else{var d=b[0],e=b[1];a.classed(c.constants.DESELECTED_CLASS,function(a){return a.x=e})}},l.centerBar=function(a){return arguments.length?(n=a,l):n},c.override(l,"onClick",function(a){l._onClick(a.data)}),l.barPadding=function(a){return arguments.length?(l._rangeBandPadding(a),m=void 0,l):l._rangeBandPadding()},l._useOuterPadding=function(){return void 0===m},l.outerPadding=l._outerRangeBandPadding,l.gap=function(a){return arguments.length?(m=a,l):m},l.extendBrush=function(){var a=l.brush().extent();return!l.round()||n&&!o||(a[0]=a.map(l.round())[0],a[1]=a.map(l.round())[1],l.chartBodyG().select(".brush").call(l.brush().extent(a))),a},l.alwaysUseRounding=function(a){return arguments.length?(o=a,l):o},l.legendHighlight=function(a){l.isLegendableHidden(a)||l.g().selectAll("rect.bar").classed("highlight",h(a.color)).classed("fadeout",h(a.color,!0))},l.legendReset=function(){l.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},c.override(l,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in l.xUnits()){var b=l.xUnits().resolution;a+=b}return a}),l.anchor(b,d)},c.lineChart=function(b,d){function e(a,b){return z.getColor.call(a,a.values,b)}function f(b,d){var f=a.svg.line().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).interpolate(F).tension(G);r&&f.defined(r);var g=b.append("path").attr("class","line").attr("stroke",e);s&&g.attr("stroke-dasharray",s),c.transition(d.select("path.line"),z.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(b,d){if(A){var f=a.svg.area().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).y0(function(a){return z.y()(a.y0)}).interpolate(F).tension(G);r&&f.defined(r),b.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),c.transition(d.select("path.area"),z.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(b,d){if(!z.brushOn()&&z.xyTipsOn()){var e=u+"-list",f=b.select("g."+e);f.empty()&&(f=b.append("g").attr("class",e)),d.each(function(b,d){var e=b.values;r&&(e=e.filter(r));var g=f.select("g."+u+"._"+d);g.empty()&&(g=f.append("g").attr("class",u+" _"+d)),j(g);var h=g.selectAll("circle."+v).data(e,c.pluck("x"));h.enter().append("circle").attr("class",v).attr("r",m()).style("fill-opacity",D).style("stroke-opacity",E).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}),h.attr("cx",function(a){return c.utils.safeNumber(z.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(z.y()(a.y+a.y0))}).attr("fill",z.getColor).call(p,b),h.exit().remove()})}}function j(a){var b=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+x).empty()?a.append("path").attr("class",x):a.select("path."+x);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",B),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=z._yAxisX()-z.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+z.yAxisHeight()+"L"+c+" "+d;b.select("path."+w).style("display","").attr("d",f),b.select("path."+x).style("display","").attr("d",g)}function m(){return C||B}function n(a){a.style("fill-opacity",D).style("stroke-opacity",E).attr("r",m())}function o(a){a.select("path."+w).style("display","none"),a.select("path."+x).style("display","none")}function p(a,b){z.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(c.pluck("data",z.title(b.name))))}function q(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")===b&&e.attr("stroke-dasharray")===(c instanceof Array?c.join(","):null)||e.attr("fill")===b;return d?!f:f}}var r,s,t=5,u="dc-tooltip",v="dot",w="yRef",x="xRef",y=1e-6,z=c.stackMixin(c.coordinateGridMixin({})),A=!1,B=t,C=null,D=y,E=y,F="linear",G=.7,H=!0;return z.transitionDuration(500),z._rangeBandPadding(1),z.plotData=function(){var a=z.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(z.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},z.interpolate=function(a){return arguments.length?(F=a,z):F},z.tension=function(a){return arguments.length?(G=a,z):G},z.defined=function(a){return arguments.length?(r=a,z):r},z.dashStyle=function(a){return arguments.length?(s=a,z):s},z.renderArea=function(a){return arguments.length?(A=a,z):A},z.xyTipsOn=function(a){return arguments.length?(H=a,z):H},z.dotRadius=function(a){return arguments.length?(B=a,z):B},z.renderDataPoints=function(a){return arguments.length?(a?(D=a.fillOpacity||.8,E=a.strokeOpacity||.8,C=a.radius||2):(D=y,E=y,C=null),z):{fillOpacity:D,strokeOpacity:E,radius:C}},z.legendHighlight=function(a){z.isLegendableHidden(a)||z.g().selectAll("path.line, path.area").classed("highlight",q(a.color,a.dashstyle)).classed("fadeout",q(a.color,a.dashstyle,!0))},z.legendReset=function(){z.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},c.override(z,"legendables",function(){var a=z._legendables();return s?a.map(function(a){return a.dashstyle=s,a}):a}),z.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseMixin({}),g={some:"",all:""};return f.html=function(a){return arguments.length?(a.all&&(g.all=a.all),a.some&&(g.some=a.some),f):g},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f._doRender=function(){var a=f.dimension().size(),b=f.group().value(),c=e(a),d=e(b);return a===b&&""!==g.all?f.root().html(g.all.replace("%total-count",c).replace("%filter-count",d)):""!==g.some?f.root().html(g.some.replace("%total-count",c).replace("%filter-count",d)):(f.selectAll(".total-count").text(c),f.selectAll(".filter-count").text(d)),f},f._doRedraw=function(){return f._doRender()},f.anchor(b,d)},c.dataTable=function(b,d){function e(){var a=!0;if(o.forEach(function(b){a&="function"==typeof b}),!a){m.selectAll("th").remove();var b=m.root().selectAll("th").data(o),c=b.enter().append("th");c.attr("class",l).html(function(a){return m._doColumnHeaderFormat(a)})}var d=m.root().selectAll("tbody").data(f(),function(a){return m.keyAccessor()(a)}),e=d.enter().append("tbody");return e.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",o.length).html(function(a){return m.keyAccessor()(a)}),d.exit().remove(),e}function f(){var b;return b=q===a.ascending?m.dimension().bottom(n):m.dimension().top(n),a.nest().key(m.group()).sortKeys(q).entries(b.sort(function(a,b){return q(p(a),p(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return o.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(function(b){return m._doColumnValueFormat(a,b)})}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l="dc-table-head",m=c.baseMixin({}),n=25,o=[],p=function(a){return a},q=a.ascending;return m._doRender=function(){return m.selectAll("tbody").remove(),g(e()),m},m._doColumnValueFormat=function(a,b){return"function"==typeof a?a(b):"string"==typeof a?b[a]:a.format(b)},m._doColumnHeaderFormat=function(a){return"function"==typeof a?m._doColumnHeaderFnToString(a):"string"==typeof a?m._doColumnHeaderCapitalize(a):String(a.label)},m._doColumnHeaderCapitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},m._doColumnHeaderFnToString=function(a){var b=String(a),c=b.indexOf("return ");if(c>=0){var d=b.lastIndexOf(";");if(d>=0){b=b.substring(c+7,d);var e=b.indexOf("numberFormat");e>=0&&(b=b.replace("numberFormat",""))}}return b},m._doRedraw=function(){return m._doRender()},m.size=function(a){return arguments.length?(n=a,m):n},m.columns=function(a){return arguments.length?(o=a,m):o},m.sortBy=function(a){return arguments.length?(p=a,m):p},m.order=function(a){return arguments.length?(q=a,m):q},m.anchor(b,d)},c.dataGrid=function(b,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=c.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

    "+l.keyAccessor()(a)+"

    "};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,d)},c.bubbleChart=function(a,b){function d(a){var b=a.enter().append("g");b.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),c.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(b),i._doRenderTitles(b)}function e(a){c.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=c.bubbleMixin(c.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,b)},c.compositeChart=function(b,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return c.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return c.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=c.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),c.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),t=a.scale.linear().domain(b).range([0,G.effectiveWidth()])}H.scale(t)}function f(){var a=s.select("g.axis");e(),a.empty()&&(a=s.append("g").attr("class","axis").attr("transform","translate(0, "+G.effectiveHeight()+")")),c.transition(a,G.transitionDuration()).call(H)}function g(){s.selectAll("g.tick").select("line.grid-line").remove(),s.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-G.effectiveHeight()})}function h(){v=G.data(),f(),g();var a=s.selectAll("g."+D).data(v);i(a),j(a),l(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return D+" _"+b});b.append("rect").attr("width",0),n(b),o(a)}function j(a){a.exit().remove()}function k(){var a=t(0);return a===-(1/0)||a!==a?t(1):a}function l(a){var b,d=v.length;b=C?C:(G.effectiveHeight()-(d+1)*B)/d,y||(x=b/2);var e=a.attr("transform",function(a,c){return"translate(0,"+((c+1)*B+c*b)+")"}).select("rect").attr("height",b).attr("fill",G.getColor).on("click",p).classed("deselected",function(a){return G.hasFilter()?!r(a):!1}).classed("selected",function(a){return G.hasFilter()?r(a):!1});c.transition(e,G.transitionDuration()).attr("width",function(a){return Math.abs(k()-t(G.valueAccessor()(a)))}).attr("transform",q),m(a),o(a)}function m(a){G.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(G.title()))}function n(a){G.renderLabel()&&a.append("text").on("click",p),G.renderTitleLabel()&&a.append("text").attr("class",E).on("click",p)}function o(a){if(G.renderLabel()){var b=a.select("text").attr("x",w).attr("y",x).attr("dy",z).on("click",p).attr("class",function(a,b){return D+" _"+b}).text(function(a){return G.label()(a)});c.transition(b,G.transitionDuration()).attr("transform",q)}if(G.renderTitleLabel()){var d=a.select("."+E).attr("x",G.effectiveWidth()-A).attr("y",x).attr("text-anchor","end").on("click",p).attr("class",function(a,b){return E+" _"+b}).text(function(a){return G.title()(a)});c.transition(d,G.transitionDuration()).attr("transform",q)}}function p(a){G.onClick(a)}function q(a){var b=t(G.cappedValueAccessor(a)),c=k(),d=b>c?c:b;return"translate("+d+",0)"}function r(a){return G.hasFilter(G.cappedKeyAccessor(a))}var s,t,u,v,w=10,x=15,y=!1,z="0.35em",A=2,B=5,C=!1,D="row",E="titlerow",F=!1,G=c.capMixin(c.marginMixin(c.colorMixin(c.baseMixin({})))),H=a.svg.axis().orient("bottom");return G.rowsCap=G.cap,G._doRender=function(){return G.resetSvg(),s=G.svg().append("g").attr("transform","translate("+G.margins().left+","+G.margins().top+")"),h(),G},G.title(function(a){return G.cappedKeyAccessor(a)+": "+G.cappedValueAccessor(a)}),G.label(G.cappedKeyAccessor),G.x=function(a){return arguments.length?(t=a,G):t},G.renderTitleLabel=function(a){return arguments.length?(F=a,G):F},G._doRedraw=function(){return h(),G},G.xAxis=function(){return H},G.fixedBarHeight=function(a){return arguments.length?(C=a,G):C},G.gap=function(a){return arguments.length?(B=a,G):B},G.elasticX=function(a){return arguments.length?(u=a,G):u},G.labelOffsetX=function(a){return arguments.length?(w=a,G):w},G.labelOffsetY=function(a){return arguments.length?(x=a,y=!0,G):x},G.titleLabelOffsetX=function(a){return arguments.length?(A=a,G):A},G.anchor(b,d)},c.legend=function(){function a(){return j+i}var b,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70,n=!1;return f.parent=function(a){return arguments.length?(b=a,f):b},f.render=function(){b.svg().select("g.dc-legend").remove(),d=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=b.legendables(),o=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)}).on("click",function(a){a.chart.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(c.pluck("dashstyle"))?o.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",c.pluck("dashstyle")).attr("stroke",c.pluck("color")):o.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),o.append("text").text(c.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var p=0,q=0;o.attr("transform",function(b,c){if(k){var d="translate("+p+","+q*a()+")",e=n===!0?this.getBBox().width+j:m;return p+e>=l?(++q,p=0):p+=e,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f.autoItemWidth=function(a){return arguments.length?(n=a,f):n},f},c.scatterPlot=function(b,d){function e(b,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return b(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),c.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var b=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});c.transition(b,g.transitionDuration()).attr("d",h)}var g=c.coordinateGridMixin({}),h=a.svg.symbol(),i=function(a){return a.value},j=g.keyAccessor();g.keyAccessor(function(a){return j(a)[0]}),g.valueAccessor(function(a){return j(a)[1]}),g.colorAccessor(function(){return g._groupName});var k=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},l=3,m=5,n=0;return h.size(function(a){return i(a)?this.filtered?Math.pow(m,2):Math.pow(l,2):n}),c.override(g,"_filter",function(a){return arguments.length?g.__filter(c.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",k),c.transition(a,g.transitionDuration()).attr("opacity",function(a){return i(a)?1:0}).attr("fill",g.getColor).attr("transform",k).attr("d",h),c.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.existenceAccessor=function(a){return arguments.length?(i=a,this):i},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(l=a,g):l},g.highlightedSize=function(a){return arguments.length?(m=a,g):m},g.hiddenSize=function(a){return arguments.length?(n=a,g):n},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")===b.color},m),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")===b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))c.events.trigger(function(){g.filter(null),g.redrawGroup()}),f(!1);else{var b=c.filters.RangedTwoDimensionalFilter(a);c.events.trigger(function(){g.filter(null),g.filter(b),g.redrawGroup()},c.constants.EVENT_DELAY),f(b)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(b,d)},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseMixin({}),h={one:"",some:"",none:""};return g._mandatoryAttributes(["group"]),g.html=function(a){return arguments.length?(a.none?h.none=a.none:a.one?h.none=a.one:a.some&&(h.none=a.some),a.one?h.one=a.one:a.some&&(h.one=a.some),a.some?h.some=a.some:a.one&&(h.some=a.one),g):h},g.value=function(){ return g.data()},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250),g._doRender=function(){var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);return this.lastValue=b,function(a){var d=null,e=g.formatNumber()(c(a));0===b&&""!==h.none?d=h.none:1===b&&""!==h.one?d=h.one:""!==h.some&&(d=h.some),this.innerHTML=d?d.replace("%number",e):e}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},c.heatMap=function(b,d){function e(a,b){var d=p.selectAll(".box-group").filter(function(c){return c.key[a]===b}),e=d.filter(function(a){return!p.hasFilter(a.key)});c.events.trigger(function(){e.empty()?d.each(function(a){p.filter(a.key)}):e.each(function(a){p.filter(a.key)}),p.redrawGroup()})}var f,g,h,i=6.75,j=a.ascending,k=a.ascending,l=a.scale.ordinal(),m=a.scale.ordinal(),n=i,o=i,p=c.colorMixin(c.marginMixin(c.baseMixin({})));p._mandatoryAttributes(["group"]),p.title(p.colorAccessor());var q=function(a){return a},r=function(a){return a};p.colsLabel=function(a){return arguments.length?(q=a,p):q},p.rowsLabel=function(a){return arguments.length?(r=a,p):r};var s=function(a){e(0,a)},t=function(a){e(1,a)},u=function(a){var b=a.key;c.events.trigger(function(){p.filter(b),p.redrawGroup()})};return c.override(p,"filter",function(a){return arguments.length?p._filter(c.filters.TwoDimensionalFilter(a)):p._filter()}),p.rows=function(a){return arguments.length?(h=a,p):h},p.rowOrdering=function(a){return arguments.length?(k=a,p):k},p.cols=function(a){return arguments.length?(g=a,p):g},p.colOrdering=function(a){return arguments.length?(j=a,p):j},p._doRender=function(){return p.resetSvg(),f=p.svg().append("g").attr("class","heatmap").attr("transform","translate("+p.margins().left+","+p.margins().top+")"),p._doRedraw()},p._doRedraw=function(){var a=p.data(),b=p.rows()||a.map(p.valueAccessor()),d=p.cols()||a.map(p.keyAccessor());k&&(b=b.sort(k)),j&&(d=d.sort(j)),b=m.domain(b),d=l.domain(d);var e=b.domain().length,g=d.domain().length,h=Math.floor(p.effectiveWidth()/g),i=Math.floor(p.effectiveHeight()/e);d.rangeRoundBands([0,p.effectiveWidth()]),b.rangeRoundBands([p.effectiveHeight(),0]);var q=f.selectAll("g.box-group").data(p.data(),function(a,b){return p.keyAccessor()(a,b)+"\x00"+p.valueAccessor()(a,b)}),r=q.enter().append("g").attr("class","box-group");r.append("rect").attr("class","heat-box").attr("fill","white").on("click",p.boxOnClick()),p.renderTitle()&&(r.append("title"),q.selectAll("title").text(p.title())),c.transition(q.selectAll("rect"),p.transitionDuration()).attr("x",function(a,b){return d(p.keyAccessor()(a,b))}).attr("y",function(a,c){return b(p.valueAccessor()(a,c))}).attr("rx",n).attr("ry",o).attr("fill",p.getColor).attr("width",h).attr("height",i),q.exit().remove();var s=f.selectAll("g.cols");s.empty()&&(s=f.append("g").attr("class","cols axis"));var t=s.selectAll("text").data(d.domain());t.enter().append("text").attr("x",function(a){return d(a)+h/2}).style("text-anchor","middle").attr("y",p.effectiveHeight()).attr("dy",12).on("click",p.xAxisOnClick()).text(p.colsLabel()),c.transition(t,p.transitionDuration()).text(p.colsLabel()).attr("x",function(a){return d(a)+h/2}),t.exit().remove();var u=f.selectAll("g.rows");u.empty()&&(u=f.append("g").attr("class","rows axis"));var v=u.selectAll("text").data(b.domain());return v.enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",p.yAxisOnClick()).text(p.rowsLabel()),c.transition(v,p.transitionDuration()).text(p.rowsLabel()).attr("y",function(a){return b(a)+i/2}),v.exit().remove(),p.selectAll("g.box-group").each(p.hasFilter()?function(a){p.isSelectedNode(a)?p.highlightSelected(this):p.fadeDeselected(this)}:function(){p.resetHighlight(this)}),p},p.boxOnClick=function(a){return arguments.length?(u=a,p):u},p.xAxisOnClick=function(a){return arguments.length?(s=a,p):s},p.yAxisOnClick=function(a){return arguments.length?(t=a,p):t},p.xBorderRadius=function(a){return arguments.length?(n=a,p):n},p.yBorderRadius=function(a){return arguments.length?(o=a,p):o},p.isSelectedNode=function(a){return p.hasFilter(a.key)},p.anchor(b,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null===b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),c.boxPlot=function(b,d){function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}function f(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function g(b){c.transition(b,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function h(a){a.exit().remove().call(m)}var i=c.coordinateGridMixin({}),j=1.5,k=e,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(c.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+", 0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});f(b),g(b),h(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var b=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return c.utils.subtract(b,i.yAxisPadding())},i.yAxisMax=function(){var b=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return c.utils.add(b,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(b,d)},c.abstractBubbleChart=c.bubbleMixin,c.baseChart=c.baseMixin,c.capped=c.capMixin,c.colorChart=c.colorMixin,c.coordinateGridChart=c.coordinateGridMixin,c.marginable=c.marginMixin,c.stackableChart=c.stackMixin,c.d3=a,c.crossfilter=b,c}if("function"==typeof define&&define.amd)define(["d3","crossfilter"],a);else if("object"==typeof module&&module.exports){var b=require("d3"),c=require("crossfilter");"function"!=typeof c&&(c=c.crossfilter),module.exports=a(b,c)}else this.dc=a(d3,crossfilter)}(); //# sourceMappingURL=dc.min.js.map \ No newline at end of file diff --git a/dc.min.js.map b/dc.min.js.map index f85179803..395e27c71 100644 --- a/dc.min.js.map +++ b/dc.min.js.map @@ -1 +1 @@ -{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_isChild","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_legendLabelAccessor","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","legendLabelAccessor","label","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":";;;;;;;;;;;;;;;;;;;CAkBA,WAAc,QAASA,GAAIC,EAAIC,GAC/B,YAuBA,IAAIC,IACAC,QAAS,YACTC,WACIC,YAAa,WACbC,kBAAmB,QACnBC,YAAa,QACbC,iBAAkB,aAClBC,eAAgB,WAChBC,gBAAiB,YACjBC,iBAAkB,kBAClBC,oBAAqB,0BACrBC,YAAa,GACbC,kBAAmB,OAEvBC,WAAY,KAGhBb,GAAGc,cAAgB,WAIf,QAASC,GAAqBC,GAS1B,MARKA,KACDA,EAAQhB,EAAGE,UAAUQ,qBAGpBO,EAAUD,KACXC,EAAUD,OAGPA,EAXX,GAAIC,KAcJ,QACIC,IAAK,SAAUC,GACX,IAAK,GAAIC,KAAKH,GACV,GAAIA,EAAUG,GAAGC,QAAQF,IAAU,EAC/B,OAAO,CAGf,QAAO,GAGXG,SAAU,SAAUH,EAAOH,GACvBA,EAAQD,EAAqBC,GAC7BC,EAAUD,GAAOO,KAAKJ,IAG1BK,WAAY,SAAUL,EAAOH,GACzBA,EAAQD,EAAqBC,EAC7B,KAAK,GAAIS,GAAI,EAAGA,EAAIR,EAAUD,GAAOU,OAAQD,IACzC,GAAIR,EAAUD,GAAOS,GAAGE,eAAiBR,EAAMQ,aAAc,CACzDV,EAAUD,GAAOY,OAAOH,EAAG,EAC3B,SAKZI,MAAO,SAAUb,GACTA,QACOC,GAAUD,GAEjBC,MAIRa,KAAM,SAAUd,GAEZ,MADAA,GAAQD,EAAqBC,GACtBC,EAAUD,QAO7BhB,EAAG+B,cAAgB,SAAUZ,EAAOH,GAChChB,EAAGc,cAAcQ,SAASH,EAAOH,IAGrChB,EAAGgC,gBAAkB,SAAUb,EAAOH,GAClChB,EAAGc,cAAcU,WAAWL,EAAOH,IAGvChB,EAAGiC,SAAW,SAAUd,GACpB,MAAOnB,GAAGc,cAAcI,IAAIC,IAGhCnB,EAAGkC,oBAAsB,SAAUlB,GAC/BhB,EAAGc,cAAce,MAAMb,IAY3BhB,EAAGmC,UAAY,SAAUnB,GAErB,IAAK,GADDoB,GAASpC,EAAGc,cAAcgB,KAAKd,GAC1BS,EAAI,EAAGA,EAAIW,EAAOV,SAAUD,EACjCW,EAAOX,GAAGU,aASlBnC,EAAGqC,WAAa,SAAUrB,GAEtB,IAAK,GADDoB,GAASpC,EAAGc,cAAcgB,KAAKd,GAC1BS,EAAI,EAAGA,EAAIW,EAAOV,SAAUD,EAC7BW,EAAOX,GAAGa,OACVF,EAAOX,GAAGa,SAUtBtC,EAAGuC,UAAY,SAAUvB,GAErB,IAAK,GADDoB,GAASpC,EAAGc,cAAcgB,KAAKd,GAC1BS,EAAI,EAAGA,EAAIW,EAAOV,SAAUD,EACjCW,EAAOX,GAAGe,QAGQ,QAAlBxC,EAAGa,YACHb,EAAGa,WAAWG,IAWtBhB,EAAGyC,UAAY,SAAUzB,GAErB,IAAK,GADDoB,GAASpC,EAAGc,cAAcgB,KAAKd,GAC1BS,EAAI,EAAGA,EAAIW,EAAOV,SAAUD,EACjCW,EAAOX,GAAGiB,QAGQ,QAAlB1C,EAAGa,YACHb,EAAGa,WAAWG,IAStBhB,EAAG2C,oBAAqB,EAExB3C,EAAG4C,WAAa,SAAUC,EAAYC,EAAUC,GAC5C,GAAgB,GAAZD,GAA8BE,SAAbF,GAA0B9C,EAAG2C,mBAC9C,MAAOE,EAGX,IAAII,GAAIJ,EACHD,aACAE,SAASA,EAMd,OAJyB,kBAAf,IACNC,EAASE,GAGNA,GAGXjD,EAAGkD,SAcHlD,EAAGkD,MAAMC,SAAW,SAAUF,EAAG7B,GAC7B,MAAOgC,MAAKC,IAAIjC,EAAI6B,IAgBxBjD,EAAGkD,MAAMI,QAAU,SAAUL,EAAG7B,EAAGmC,GAC/B,MAAOA,IAoBXvD,EAAGkD,MAAMM,MACTxD,EAAGkD,MAAMM,GAAGC,UAAY,SAAUA,GAC9B,GAAIC,GAAK,SAAUT,EAAG7B,GAClB,GAAIuC,GAAIP,KAAKC,KAAKjC,EAAI6B,GAAKS,EAAGE,WAC9B,OAAI5D,GAAG6D,MAAMC,aAAaH,EAAIP,KAAKW,MAAMJ,IAC9BP,KAAKW,MAAMJ,GAEXP,KAAKY,KAAKL,GAIzB,OADAD,GAAGE,WAAaH,EACTC,GAGX1D,EAAGiE,SACHjE,EAAGiE,MAAMF,MAAQ,SAAUG,GACvB,MAAOd,MAAKW,MAAMG,IAEtBlE,EAAGiE,MAAMD,KAAO,SAAUE,GACtB,MAAOd,MAAKY,KAAKE,IAErBlE,EAAGiE,MAAMA,MAAQ,SAAUC,GACvB,MAAOd,MAAKa,MAAMC,IAGtBlE,EAAGmE,SAAW,SAAUC,EAAKC,EAAcC,GACvC,GAAIC,GAAmBH,EAAIC,EAC3BD,GAAI,IAAMC,GAAgBE,EAC1BH,EAAIC,GAAgBC,GAGxBtE,EAAGwE,UAAY,SAAUC,GACrB,MAAKC,WAAUhD,QAGf1B,EAAGa,WAAa4D,EACTzE,GAHIA,EAAGa,YAMlBb,EAAG2E,gBAAkB,SAAUC,GAC3B,MAAOA,aAAaC,SAAUD,EAAEE,aAAc,GAGlD9E,EAAG+E,UAEH/E,EAAG+E,OAAOC,UAAY,SAAUC,GAC5B,GAAIC,GAAOD,GAAO,2BAElBE,MAAKC,QAAUF,EAEfC,KAAKE,SAAW,WACZ,MAAOH,KAIflF,EAAG+E,OAAOO,sBAAwB,WAC9BtF,EAAG+E,OAAOC,UAAUO,MAAMJ,KAAMT,YAGpC1E,EAAGwF,WAAa1F,EAAG2F,KAAKC,OAAO,YAE/B1F,EAAG2F,YAEH3F,EAAG2F,SAASC,QAAU,SAAUA,GAG5B,IAAK,GAFD3C,GAAI,GAECxB,EAAI,EAAGA,EAAImE,EAAQlE,SAAUD,EAC9BA,EAAI,IACJwB,GAAK,MAETA,GAAKjD,EAAG2F,SAASE,OAAOD,EAAQnE,GAGpC,OAAOwB,IAGXjD,EAAG2F,SAASE,OAAS,SAAUA,GAC3B,GAAI5C,GAAI,EAcR,OAZsB,mBAAX4C,IAAqC,OAAXA,IAC7BA,YAAkBC,OACdD,EAAOnE,QAAU,EACjBuB,EAAI,IAAMjD,EAAG6D,MAAMkC,iBAAiBF,EAAO,IAAM,OAAS7F,EAAG6D,MAAMkC,iBAAiBF,EAAO,IAAM,IAC1FA,EAAOnE,QAAU,IACxBuB,EAAIjD,EAAG6D,MAAMkC,iBAAiBF,EAAO,KAGzC5C,EAAIjD,EAAG6D,MAAMkC,iBAAiBF,IAI/B5C,GAGXjD,EAAGgG,MAAQ,SAAU9B,EAAG+B,GACpB,MAAKA,GAGE,SAAUtC,EAAGlC,GAAK,MAAOwE,GAAEC,KAAKvC,EAAGA,EAAEO,GAAIzC,IAFrC,SAAUkC,GAAK,MAAOA,GAAEO,KAKvClE,EAAG6D,SAEH7D,EAAG6D,MAAMkC,iBAAmB,SAAUF,GAClC,GAAI5C,GAAI,GAAK4C,CAYb,OAVIA,aAAkBM,MAClBlD,EAAIjD,EAAGwF,WAAWK,GACQ,gBAAb,GACb5C,EAAI4C,EACG7F,EAAG6D,MAAMuC,QAAQP,GACxB5C,EAAIjD,EAAG6D,MAAMkC,iBAAiBM,QAAQR,GAC/B7F,EAAG6D,MAAMyC,UAAUT,KAC1B5C,EAAIG,KAAKa,MAAM4B,IAGZ5C,GAEXjD,EAAG6D,MAAMkC,iBAAiBM,QAAUvG,EAAG4F,OAAO,OAI9C1F,EAAG6D,MAAM0C,IAAM,SAAUC,EAAGC,GAKxB,GAJiB,gBAANA,KACPA,EAAIA,EAAEC,QAAQ,IAAK,KAGnBF,YAAaL,MAAM,CACF,gBAANM,KACPA,GAAKA,EAET,IAAI9C,GAAI,GAAIwC,KAGZ,OAFAxC,GAAEgD,QAAQH,EAAEI,WACZjD,EAAEkD,QAAQL,EAAEM,UAAYL,GACjB9C,EACJ,GAAiB,gBAAN8C,GAAgB,CAC9B,GAAIM,IAAeN,EAAI,GACvB,OAAOD,GAAI,EAAIA,GAAK,EAAIO,GAAcP,GAAK,EAAIO,GAE/C,MAAOP,GAAIC,GAInBzG,EAAG6D,MAAMmD,SAAW,SAAUR,EAAGC,GAK7B,GAJiB,gBAANA,KACPA,EAAIA,EAAEC,QAAQ,IAAK,KAGnBF,YAAaL,MAAM,CACF,gBAANM,KACPA,GAAKA,EAET,IAAI9C,GAAI,GAAIwC,KAGZ,OAFAxC,GAAEgD,QAAQH,EAAEI,WACZjD,EAAEkD,QAAQL,EAAEM,UAAYL,GACjB9C,EACJ,GAAiB,gBAAN8C,GAAgB,CAC9B,GAAIM,IAAeN,EAAI,GACvB,OAAW,GAAJD,EAAQA,GAAK,EAAIO,GAAcP,GAAK,EAAIO,GAE/C,MAAOP,GAAIC,GAInBzG,EAAG6D,MAAMoD,SAAW,SAAU/C,GAC1B,MAAOA,MAAOA,GAGlBlE,EAAG6D,MAAMuC,QAAU,SAAUlC,GACzB,MAAOA,MAAOA,GAAKA,KAAW,EAAJA,IAG9BlE,EAAG6D,MAAMyC,UAAY,SAAUpC,GAC3B,MAAOA,MAAOA,GAAKA,KAAW,EAAJA,IAG9BlE,EAAG6D,MAAMC,aAAe,SAAUI,GAC9B,OAAQlE,EAAG6D,MAAMoD,SAAS/C,IAAOA,EAAIlE,EAAGE,UAAUU,mBAAqBsD,GAAKlE,EAAGE,UAAUU,mBAG7FZ,EAAG6D,MAAMqD,MAAQ,SAAUC,EAAKC,EAAKC,GACjC,MAAaD,GAAND,EAAYC,EAAOD,EAAME,EAAMA,EAAMF,EAGhD,IAAIG,GAAa,CAwnQjB,OAvnQAtH,GAAG6D,MAAM0D,SAAW,WAChB,QAASD,GAGbtH,EAAG6D,MAAM2D,SAAW,SAAUC,GAC1B,MAAOA,GAAKC,cAAchB,QAAQ,QAAS,KAAKA,QAAQ,SAAU,KAGtE1G,EAAG6D,MAAM8D,eAAiB,SAAUC,EAAQC,EAAUC,GAClDA,EAAMA,GAAOD,CACb,IAAIE,GAAUH,EAAOI,OAAOH,EAI5B,OAHIE,GAAQE,UACRF,EAAUH,EAAOM,OAAOJ,IAErBC,GAGX/H,EAAG6D,MAAMsE,WAAa,SAAUjE,GAAK,MAAOlE,GAAG6D,MAAMoD,UAAU/C,IAAMA,EAAI,GAEzElE,EAAGoI,UAEHpI,EAAGoI,OAAOC,gBAAiB,EAE3BrI,EAAGoI,OAAOE,KAAO,SAAUrD,GASvB,MARIsD,WACIA,QAAQD,KACRC,QAAQD,KAAKrD,GACNsD,QAAQC,KACfD,QAAQC,IAAIvD,IAIbjF,EAAGoI,QAGdpI,EAAGoI,OAAOK,MAAQ,SAAUxD,GASxB,MARIjF,GAAGoI,OAAOC,gBAAkBE,UACxBA,QAAQE,MACRF,QAAQE,MAAMxD,GACPsD,QAAQC,KACfD,QAAQC,IAAIvD,IAIbjF,EAAGoI,QAGdpI,EAAGoI,OAAOM,UAAY,SAAUC,EAAI1D,GAGhC,QAAS2D,KAKL,MAJKC,KACD7I,EAAGoI,OAAOE,KAAKrD,GACf4D,GAAS,GAENF,EAAGpD,MAAMJ,KAAMT,WAN1B,GAAImE,IAAS,CAQb,OAAOD,IAGX5I,EAAG8I,QACCC,QAAS,MAqBb/I,EAAG8I,OAAOE,QAAU,SAAUC,EAASC,GACnC,MAAKA,IAKLlJ,EAAG8I,OAAOC,QAAUE,MAEpBE,YAAW,WACHF,IAAYjJ,EAAG8I,OAAOC,SACtBE,KAELC,QAVCD,MAaRjJ,EAAG4F,WAoBH5F,EAAG4F,QAAQwD,aAAe,SAAUC,EAAKC,GACrC,GAAIC,GAAQ,GAAIzD,OAAMuD,EAAKC,EAK3B,OAJAC,GAAMC,WAAa,SAAUC,GACzB,MAAOA,IAAStE,KAAK,IAAMsE,EAAQtE,KAAK,IAGrCoE,GASXvJ,EAAG4F,QAAQ8D,qBAAuB,SAAUC,GACxC,GAAc,OAAVA,EAAkB,MAAO,KAE7B,IAAI9D,GAAS8D,CAMb,OALA9D,GAAO2D,WAAa,SAAUC,GAC1B,MAAOA,GAAM/H,QAAU+H,EAAM/H,SAAWmE,EAAOnE,QACxC+H,EAAM,KAAO5D,EAAO,IAAM4D,EAAM,KAAO5D,EAAO,IAGlDA,GAgBX7F,EAAG4F,QAAQgE,2BAA6B,SAAUD,GAC9C,GAAc,OAAVA,EAAkB,MAAO,KAE7B,IACIE,GADAhE,EAAS8D,CA8Bb,OA1BIE,GADAhE,EAAO,YAAcC,SAEhB1C,KAAKgE,IAAIuC,EAAM,GAAG,GAAIA,EAAM,GAAG,IAAKvG,KAAKgE,IAAIuC,EAAM,GAAG,GAAIA,EAAM,GAAG,MACnEvG,KAAKiE,IAAIsC,EAAM,GAAG,GAAIA,EAAM,GAAG,IAAKvG,KAAKiE,IAAIsC,EAAM,GAAG,GAAIA,EAAM,GAAG,QAGrDA,EAAM,KAAKG,EAAAA,KAAYH,EAAM,GAAIG,EAAAA,IAGxDjE,EAAO2D,WAAa,SAAUC,GAC1B,GAAIM,GAAGC,CAEP,IAAIP,YAAiB3D,OAAO,CACxB,GAAqB,IAAjB2D,EAAM/H,OACN,OAAO,CAEXqI,GAAIN,EAAM,GACVO,EAAIP,EAAM,OAEVM,GAAIN,EACJO,EAAIH,EAAe,GAAG,EAG1B,OAAOE,IAAKF,EAAe,GAAG,IAAME,EAAIF,EAAe,GAAG,IACnDG,GAAKH,EAAe,GAAG,IAAMG,EAAIH,EAAe,GAAG,IAGvDhE,GASX7F,EAAGiK,UAAY,SAAUC,GA6WrB,QAASC,KAIL,MAHAC,GAAOF,EAAOG,OAAOnC,OAAO,OACvBoC,KAAK,QAASJ,EAAOK,SACrBD,KAAK,SAAUJ,EAAOM,UAuE/B,QAASC,GAA4BC,GACjC,IAAKR,EAAOQ,KAAOR,EAAOQ,KACtB,KAAM,IAAI1K,GAAG+E,OAAOO,sBAAsB,6BAA+BoF,EAC/B,yBAA2BR,EAAOvI,aAAe,KA4PnG,QAASgJ,KACL,GAAIT,EAAOU,aAAeV,EAAOU,YAAY/E,OAAQ,CACjD,GAAIgF,GAAKC,EAAeZ,EAAOU,YAAaG,EAC5CA,GAAWF,EAAKA,EAAKE,GAxrB7Bb,EAAOpF,WAAa9E,EAAG6D,MAAM0D,UAE7B,IAAIyD,GACAC,EAEAC,EACAC,EACAf,EACAgB,EAsBAC,EA0BAC,EA9CAC,EAAY,IACZC,EAAgB,SAAUzD,GAC1B,GAAIwC,GAAQxC,GAAWA,EAAQ0D,uBAAyB1D,EAAQ0D,wBAAwBlB,KACxF,OAAQA,IAASA,EAAQgB,EAAahB,EAAQgB,GAE9CG,EAASF,EAETG,EAAa,IACbC,EAAiB,SAAU7D,GAC3B,GAAIyC,GAASzC,GAAWA,EAAQ0D,uBAAyB1D,EAAQ0D,wBAAwBjB,MACzF,OAAQA,IAAUA,EAASmB,EAAcnB,EAASmB,GAElDE,EAAUD,EAEVE,EAAe9L,EAAGgG,MAAM,OACxB+F,EAAiB/L,EAAGgG,MAAM,SAC1BgG,EAAShM,EAAGgG,MAAM,OAClBiG,EAAuBjM,EAAGgG,MAAM,OAEhCkG,EAAYlM,EAAGgG,MAAM,OAGrBmG,GAAe,EAEfC,EAAS,SAAUzI,GACnB,MAAOuG,GAAOmC,cAAc1I,GAAK,KAAOuG,EAAOoC,gBAAgB3I,IAE/D4I,GAAe,EAEfC,EAAsB,IAEtBC,EAAiBzM,EAAG2F,SAASC,QAE7B8G,GAAwB,YAAa,SAErCC,EAAc3M,EAAGE,UAAUQ,oBAE3BkM,EAAa9M,EAAG+M,SAChB,YACA,aACA,YACA,aACA,WACA,SACA,aAIA9B,KACAD,EAAiB,SAAUF,EAAWhF,GAkBtC,MAjBAgF,GAAU/E,OAAO,MAEM,IAAnBD,EAAQlE,OACRkJ,EAAU/E,OAAO,MAEjB+E,EAAUkC,eAAe,SAAUnJ,GAC/B,IAAK,GAAIlC,GAAI,EAAGA,EAAImE,EAAQlE,OAAQD,IAAK,CACrC,GAAIoE,GAASD,EAAQnE,EACrB,IAAIoE,EAAO2D,YAAc3D,EAAO2D,WAAW7F,GACvC,OAAO,CACJ,IAAcA,GAAVkC,GAAeA,GAAUlC,EAChC,OAAO,EAGf,OAAO,IAGRiC,GAGPmH,EAAQ,SAAU/L,GAClB,MAAOA,GAAMgM,MASjB9C,GAAOK,MAAQ,SAAU0C,GACrB,MAAKvI,WAAUhD,QAGfgK,EAAS5L,EAAGoN,QAAQD,GAAKzB,GAClBtB,GAHIwB,EAAOP,EAAMgC,SA2B5BjD,EAAOM,OAAS,SAAU4C,GACtB,MAAK1I,WAAUhD,QAGfmK,EAAU/L,EAAGoN,QAAQE,GAAKxB,GACnB1B,GAHI2B,EAAQV,EAAMgC,SAY7BjD,EAAOmD,SAAW,SAAUJ,GACxB,MAAKvI,WAAUhD,QAGf6J,EAAY0B,EACL/C,GAHIqB,GAYfrB,EAAOoD,UAAY,SAAUL,GACzB,MAAKvI,WAAUhD,QAGfiK,EAAasB,EACN/C,GAHIyB,GAefzB,EAAOU,UAAY,SAAUjH,GACzB,MAAKe,WAAUhD,QAGfsJ,EAAarH,EACbuG,EAAOqD,cACArD,GAJIc,GAkBfd,EAAOsD,KAAO,SAAU7J,GACpB,MAAKe,WAAUhD,QAGfqL,EAAQjN,EAAGoN,QAAQvJ,GACnBuG,EAAOqD,cACArD,GAJI6C,EAAM7G,KAAKgE,EAAQe,IAkBlCf,EAAOlJ,MAAQ,SAAUyM,EAAGhG,GACxB,MAAK/C,WAAUhD,QAGfuJ,EAASwC,EACTvD,EAAOwD,WAAajG,EACpByC,EAAOqD,cACArD,GALIe,GAYff,EAAOyD,SAAW,SAAU/I,GACxB,MAAKF,WAAUhD,QAGfwK,EAAYtH,EACZyG,EAAatL,EAAY6N,UAAUC,GAAG3B,GACtChC,EAAOqD,cACArD,GALIgC,GAQfhC,EAAO4D,sBAAwB,SAAUN,GACrC,GAAIO,GAAWP,EAAKQ,MAAM,EAE1B,OAAID,GAASrM,QAAU,EACZqM,GAGN1C,IACDA,EAAatL,EAAY6N,UAAUC,GAAG3B,IAGnCb,EAAW0C,EAAU,EAAGA,EAASrM,UAQ5CwI,EAAO/H,UAAY,WACf,MAAO+H,GAAOrE,OAAO,OAczBqE,EAAOlC,OAAS,SAAU/E,GACtB,MAAOkI,GAAMnD,OAAO/E,IAcxBiH,EAAO+D,UAAY,SAAUhL,GACzB,MAAOkI,GAAQA,EAAM8C,UAAUhL,GAAK,MAWxCiH,EAAOgE,OAAS,SAAUxD,EAAGyD,GACzB,MAAKzJ,WAAUhD,QAGX1B,EAAG2E,gBAAgB+F,IACnBQ,EAAUR,EAAEwD,SACZ/C,EAAQT,EAAEL,OACVe,GAAW,IAEXF,EAAUR,EACVS,EAAQrL,EAAGkI,OAAOkD,GAClBC,EAAMiD,QAAQpO,EAAGE,UAAUC,aAAa,GACxCH,EAAG+B,cAAcmI,EAAQiE,GACzB/C,GAAW,GAEfuB,EAAcwB,EACPjE,GAdIgB,GAsBfhB,EAAOvI,WAAa,WAChB,GAAI+I,GAAIR,EAAOgE,QACf,OAAIxD,IAAKA,EAAE2D,GACA3D,EAAE2D,GAET3D,GAAKA,EAAEhE,QACAgE,EAAEhE,QAAQ,IAAK,IAEnB,WAAawD,EAAOoE,WAW/BpE,EAAOG,KAAO,SAAU5D,GACpB,MAAK/B,WAAUhD,QAGfyJ,EAAQ1E,EACDyD,GAHIiB,GAafjB,EAAOqE,IAAM,SAAU9J,GACnB,MAAKC,WAAUhD,QAGf0I,EAAO3F,EACAyF,GAHIE,GAUfF,EAAOsE,SAAW,WAEd,MADAtE,GAAOlC,OAAO,OAAOyG,SACdtE,KAkBXD,EAAOwE,cAAgB,SAAUjK,GAC7B,MAAKC,WAAUhD,QAGf+K,EAAiBhI,EACVyF,GAHIuC,GAmBfvC,EAAOyE,eAAiB,WAKpB,MAJIxD,KACAjB,EAAO+D,UAAU,UAAUW,MAAM,UAAW,MAC5C1E,EAAO+D,UAAU,WAAWY,KAAKpC,EAAevC,EAAOtE,YAAYgJ,MAAM,UAAW,OAEjF1E,GAGXA,EAAO4E,gBAAkB,WAKrB,MAJI3D,KACAjB,EAAO+D,UAAU,UAAUW,MAAM,UAAW,QAC5C1E,EAAO+D,UAAU,WAAWW,MAAM,UAAW,QAAQC,KAAK3E,EAAOrE,WAE9DqE,GASXA,EAAO6E,mBAAqB,SAAUpL,GAClC,MAAKe,WAAUhD,QAGf8K,EAAsB7I,EACfuG,GAHIsC,GAMftC,EAAOwC,qBAAuB,SAAUjI,GACpC,MAAKC,WAAUhD,QAGfgL,EAAuBjI,EAChByF,GAHIwC,GAqBfxC,EAAO1H,OAAS,WACZoK,EAAWoC,UAAU9E,GAEjBwC,GACAA,EAAqBuC,QAAQxE,EAGjC,IAAIyE,GAAShF,EAAOiF,WAQpB,OANI7D,IACAA,EAAQ9I,SAGZ0H,EAAOkF,oBAAoB,cAEpBF,GAGXhF,EAAOkF,oBAAsB,SAAUC,GAC/BnF,EAAO6E,qBAAuB,GAAK3E,EACnCA,EAAKxH,aAAaE,SAASoH,EAAO6E,sBAC7BO,KAAK,MAAO,WACT1C,EAAsB,UAAE1C,GACpBmF,GACAzC,EAAWyC,GAAOnF,MAI9B0C,EAAsB,UAAE1C,GACpBmF,GACAzC,EAAWyC,GAAOnF,KAe9BA,EAAOxH,OAAS,WACZkK,EAAW2C,UAAUrF,EAErB,IAAIgF,GAAShF,EAAOsF,WAQpB,OANIlE,IACAA,EAAQ9I,SAGZ0H,EAAOkF,oBAAoB,cAEpBF,GAGXhF,EAAOuF,YAAc,WACjBzP,EAAGyC,UAAUyH,EAAOiE,eAGxBjE,EAAOwF,YAAc,WACjB1P,EAAGuC,UAAU2H,EAAOiE,eAGxBjE,EAAOyF,wBAA0B,SAAU1J,GAC7BjD,SAANiD,GACA2G,EAAWgD,SAAS1F,EAAQjE,IAIpCiE,EAAO2F,sBAAwB,WAC3BjD,EAAWkD,OAAO5F,GAGtB,IAAI6F,GAAoB,SAAUnK,EAASC,GACvC,MAAe,QAAXA,GAAsC,mBAAb,GAClBD,EAAQlE,OAAS,EAErBkE,EAAQoK,KAAK,SAAU/J,GAC1B,MAAiBA,IAAVJ,GAAeA,GAAUI,IA2BxCiE,GAAO+F,iBAAmB,SAAUxL,GAChC,MAAKC,WAAUhD,QAGfqO,EAAoBtL,EACbyF,GAHI6F,GAYf7F,EAAOgG,UAAY,SAAUrK,GACzB,MAAOkK,GAAkBhF,EAAUlF,GAGvC,IAAIsK,GAAuB,SAAUvK,EAASC,GAC1C,IAAK,GAAIpE,GAAI,EAAGA,EAAImE,EAAQlE,OAAQD,IAChC,GAAImE,EAAQnE,IAAMoE,GAAUD,EAAQnE,IAAMoE,EAAQ,CAC9CD,EAAQhE,OAAOH,EAAG,EAClB,OAGR,MAAOmE,GA8BXsE,GAAOkG,oBAAsB,SAAU3L,GACnC,MAAKC,WAAUhD,QAGfyO,EAAuB1L,EAChByF,GAHIiG,EAMf,IAAIE,GAAoB,SAAUzK,EAASC,GAEvC,MADAD,GAAQrE,KAAKsE,GACND,EAyBXsE,GAAOoG,iBAAmB,SAAU7L,GAChC,MAAKC,WAAUhD,QAGf2O,EAAoB5L,EACbyF,GAHImG,EAMf,IAAIE,GAAsB,SAAU3K,GAChC,SAudJ,OA/bAsE,GAAOsG,mBAAqB,SAAU/L,GAClC,MAAKC,WAAUhD,QAGf6O,EAAsB9L,EACfyF,GAHIqG,GAafrG,EAAOuG,cAAgB,SAAUhM,GAC7BsG,KACAb,EAAOrE,OAAOpB,IAalByF,EAAOrE,OAAS,SAAUpB,GACtB,MAAKC,WAAUhD,QAGX+C,YAAaqB,QAASrB,EAAE,YAAcqB,SAAUrB,EAAE+E,WAClD/E,EAAE,GAAGwK,QAAQ,SAAUtL,GACfuG,EAAOgG,UAAUvM,GACjBwM,EAAqBpF,EAAUpH,GAE/B0M,EAAkBtF,EAAUpH,KAGvB,OAANc,EACPsG,EAAWwF,EAAoBxF,GAE3Bb,EAAOgG,UAAUzL,GACjB0L,EAAqBpF,EAAUtG,GAE/B4L,EAAkBtF,EAAUtG,GAGpCkG,IACAT,EAAOyF,wBAAwBlL,GAEjB,OAAV0G,GAAkBjB,EAAOgG,YACzBhG,EAAOyE,iBAEPzE,EAAO4E,kBAGJ5E,GA5BIa,EAASrJ,OAAS,EAAIqJ,EAAS,GAAK,MAsCnDb,EAAOtE,QAAU,WACb,MAAOmF,IAGXb,EAAOwG,kBAAoB,SAAUtP,GACjCtB,EAAGkI,OAAO5G,GAAGgN,QAAQpO,EAAGE,UAAUK,gBAAgB,GAClDT,EAAGkI,OAAO5G,GAAGgN,QAAQpO,EAAGE,UAAUI,kBAAkB,IAGxD4J,EAAOyG,eAAiB,SAAUvP,GAC9BtB,EAAGkI,OAAO5G,GAAGgN,QAAQpO,EAAGE,UAAUK,gBAAgB,GAClDT,EAAGkI,OAAO5G,GAAGgN,QAAQpO,EAAGE,UAAUI,kBAAkB,IAGxD4J,EAAO0G,eAAiB,SAAUxP,GAC9BtB,EAAGkI,OAAO5G,GAAGgN,QAAQpO,EAAGE,UAAUK,gBAAgB,GAClDT,EAAGkI,OAAO5G,GAAGgN,QAAQpO,EAAGE,UAAUI,kBAAkB,IAQxD4J,EAAO2G,QAAU,SAAUlN,GACvB,GAAIkC,GAASqE,EAAOmC,cAAc1I,EAClC3D,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAOA,GACdqE,EAAOuF,iBA0BfvF,EAAO4G,cAAgB,SAAUrM,GAC7B,MAAKC,WAAUhD,QAGfoJ,EAAiBrG,EACVyF,GAHIY,GAOfZ,EAAOiF,UAAY,WAEf,MAAOjF,IAGXA,EAAOsF,UAAY,WAEf,MAAOtF,IAGXA,EAAO6G,YAAc,WAEjB,UAGJ7G,EAAO8G,gBAAkB,aAIzB9G,EAAO+G,YAAc,aAIrB/G,EAAOgH,aAAe,aAItBhH,EAAOiH,mBAAqB,WAExB,OAAO,GAgBXjH,EAAOmC,YAAc,SAAU5H,GAC3B,MAAKC,WAAUhD,QAGfoK,EAAerH,EACRyF,GAHI4B,GAoBf5B,EAAOoC,cAAgB,SAAU7H,GAC7B,MAAKC,WAAUhD,QAGfqK,EAAiBtH,EACVyF,GAHI6B,GAmBf7B,EAAOkH,oBAAsB,SAAU3M,GACnC,MAAKC,WAAUhD,QAGfuK,EAAuBxH,EAChByF,GAHI+B,GAoBf/B,EAAOmH,MAAQ,SAAU5M,GACrB,MAAKC,WAAUhD,QAGfsK,EAASvH,EACT0H,GAAe,EACRjC,GAJI8B,GAYf9B,EAAOoH,YAAc,SAAU7M,GAC3B,MAAKC,WAAUhD,QAGfyK,EAAe1H,EACRyF,GAHIiC,GA2BfjC,EAAOqH,MAAQ,SAAU9M,GACrB,MAAKC,WAAUhD,QAGf0K,EAAS3H,EACFyF,GAHIkC,GAYflC,EAAOsH,YAAc,SAAU/M,GAC3B,MAAKC,WAAUhD,QAGf6K,EAAe9H,EACRyF,GAHIqC,GA2BfrC,EAAO1F,UAAYxE,EAAGoI,OAAOM,UAAU,SAAUjE,GAE7C,MADAyF,GAAOuH,GAAG,aAAezR,EAAG6D,MAAM0D,WAAY9C,GACvCyF,GACR,4GAOHA,EAAOiE,WAAa,SAAU1J,GAC1B,MAAKC,WAAUhD,QAGV0J,GACDpL,EAAGgC,gBAAgBkI,EAAQyC,GAE/BA,EAAclI,EACT2G,GACDpL,EAAG+B,cAAcmI,EAAQyC,GAEtBzC,GATIyC,GAqBfzC,EAAOqD,YAAc,WAEjB,MAAOrD,IAaXA,EAAOwH,OAAS,SAAUlL,GACtB,MAAK9B,WAAUhD,QAGf4J,EAAU9E,EACV8E,EAAQ1D,OAAOsC,GACRA,GAJIoB,GAWfpB,EAAOoE,QAAU,WACb,MAAOpE,GAAOpF,YAalBoF,EAAOyH,QAAU,SAAUC,GACvB,IAAK,GAAIhN,KAAKgN,GACgB,kBAAf1H,GAAOtF,GACdsF,EAAOtF,GAAGsB,KAAKgE,EAAQ0H,EAAKhN,IAE5B5E,EAAGoI,OAAOK,MAAM,mCAAqC7D,EAG7D,OAAOsF,IA8BXA,EAAOuH,GAAK,SAAUpC,EAAOwC,GAEzB,MADAjF,GAAW6E,GAAGpC,EAAOwC,GACd3H,GAGJA,GASXlK,EAAG8R,YAAc,SAAU5H,GACvB,GAAI6H,IAAWC,IAAK,GAAIC,MAAO,GAAIC,OAAQ,GAAIC,KAAM,GA+BrD,OAhBAjI,GAAOkI,QAAU,SAAUC,GACvB,MAAK3N,WAAUhD,QAGfqQ,EAAUM,EACHnI,GAHI6H,GAMf7H,EAAOoI,eAAiB,WACpB,MAAOpI,GAAOK,QAAUL,EAAOkI,UAAUD,KAAOjI,EAAOkI,UAAUH,OAGrE/H,EAAOqI,gBAAkB,WACrB,MAAOrI,GAAOM,SAAWN,EAAOkI,UAAUJ,IAAM9H,EAAOkI,UAAUF,QAG9DhI,GAUXlK,EAAGwS,WAAa,SAAUtI,GACtB,GAAIuI,GAAU3S,EAAG4S,MAAMC,cACnBC,GAAmB,EAEnBC,EAAiB,SAAUlP,GAAK,MAAOuG,GAAOmC,cAAc1I,GAiIhE,OA7GAuG,GAAO4I,OAAS,SAAUrO,GACtB,MAAKC,WAAUhD,QAIX+Q,EADAhO,YAAaqB,OACHhG,EAAG4S,MAAMK,WAAWxJ,MAAM9E,GAE1B3E,EAAGoN,QAAQzI,GAElByF,GAPIuI,GAefvI,EAAO8I,cAAgB,SAAUvM,GAC7B,MAAOyD,GAAO4I,OAAOhT,EAAG4S,MAAMpP,UAAUiG,MAAM9C,KAQlDyD,EAAO+I,aAAe,SAAUxM,GAC5B,MAAOyD,GAAO4I,OAAOhT,EAAG4S,MAAMQ,SACR3J,MAAM9C,GACN0M,YAAYrT,EAAGsT,kBAezClJ,EAAOmJ,cAAgB,SAAU5O,GAC7B,MAAKC,WAAUhD,QAGfmR,EAAiBpO,EACjBmO,GAAmB,EACZ1I,GAJI2I,GAQf3I,EAAOoJ,qBAAuB,WAC1B,MAAOV,IAYX1I,EAAOqJ,YAAc,SAAU9O,GAC3B,MAAKC,WAAUhD,QAGf+Q,EAAQlP,OAAOkB,GACRyF,GAHIuI,EAAQlP,UAYvB2G,EAAOsJ,qBAAuB,WAC1B,GAAIC,IAAa3T,EAAGsH,IAAI8C,EAAOsD,OAAQtD,EAAOmJ,iBAC7BvT,EAAGuH,IAAI6C,EAAOsD,OAAQtD,EAAOmJ,iBAE9C,OADAZ,GAAQlP,OAAOkQ,GACRvJ,GAQXA,EAAOwJ,SAAW,SAAU/P,EAAGlC,GAC3B,MAAOgR,GAAQI,EAAe3M,KAAKf,KAAMxB,EAAGlC,KAOhDyI,EAAOyJ,gBAAkB,SAAUlP,GAC/B,MAAKC,WAAUhD,QAGfwI,EAAOwJ,SAAWjP,EACXyF,GAHIA,EAAOwJ,UAMfxJ,GAWXlK,EAAG4T,oBAAsB,SAAU1J,GAa/B,QAAS2J,KACLC,GAAa,EACTC,IACA7J,EAAOH,IAAIxG,OAAOyQ,EAAe9J,EAAOH,IAAIxG,SAAU0Q,IAClDC,GACAhK,EAAOH,IAAIxG,OAAOyQ,EAAe9J,EAAOH,IAAIxG,SAAU2Q,EAAYnK,IAAIxG,WAI9E,IAAIA,GAAS2G,EAAOH,IAAIxG,SACpB4Q,EAAYnU,EAAG4F,QAAQwD,aAAa7F,EAAO,GAAIA,EAAO,GAE1D2G,GAAOuG,cAAc0D,GACrBjK,EAAOkK,UACPlK,EAAOxH,SAEHwR,IAAgBG,EAAYnK,EAAOrE,SAAUqO,EAAYrO,WACzD7F,EAAG8I,OAAOE,QAAQ,WACdkL,EAAYzD,cAAc0D,GAC1BD,EAAYxR,WAIpBwH,EAAO2F,wBAEP7P,EAAG8I,OAAOE,QAAQ,WACdkB,EAAOuF,eACRzP,EAAGE,UAAUS,aAEhBmT,GAAcO,EAAY9Q,EAAQ0Q,GA2UtC,QAASK,GAAa7G,GACbvD,EAAOqK,aAMJrK,EAAOsK,YAAqC,IAAvBC,EAAGlR,SAAS7B,SACjC+S,EAAGlR,OAAO2G,EAAOwK,mBANjBxK,EAAOsK,YACPC,EAAGlR,QAAQ2G,EAAOyK,WAAYzK,EAAO0K,YAU7C,IAAIC,GAAOJ,EAAGlR,WACTuR,GAAgBD,EAAK7E,KAAK,SAAU+E,EAAMtT,GAAK,MAAOsT,KAASD,EAAarT,OAC7EyI,EAAOkK,UAEXU,EAAeD,EAGX3K,EAAOqK,YACPE,EAAGO,YAAY,EAAG9K,EAAO+K,eAAgBC,GAC3BhL,EAAOiL,mBAAqBC,GAAyB,GAEnEX,EAAGlL,OAAO,EAAGW,EAAO+K,gBAGxBI,EAASA,EAAO3C,MAAMxI,EAAOH,KAE7BuL,EAAwB7H,GA6B5B,QAAS6H,GAAwB7H,GAC7B,GAAI8H,GAAY9H,EAAEQ,UAAU,KAAOuH,EAEnC,IAAIC,EAAyB,CACrBF,EAAUtN,UACVsN,EAAY9H,EAAEiI,OAAO,IAAK,gBACrBpL,KAAK,QAASqL,EAAkB,IAAMH,GACtClL,KAAK,YAAa,aAAeJ,EAAOkI,UAAUD,KAAO,IAAMjI,EAAOkI,UAAUJ,IAAM,KAG/F,IAAI4D,GAAQP,EAAOQ,aAAeR,EAAOQ,aACZ,kBAAbpB,GAAGmB,MAAuBnB,EAAGmB,MAAMP,EAAOO,QAAQ,IAAMnB,EAAGlR,SAEvEuS,EAAQP,EAAUtH,UAAU,QAC3BT,KAAKoI,GAGNG,EAAcD,EAAME,QACnB9N,OAAO,QACPoC,KAAK,KAAM,SAAU3G,GAClB,MAAO8Q,GAAG9Q,KAEb2G,KAAK,KAAMJ,EAAO+L,UAAY/L,EAAOkI,UAAUJ,KAC/C1H,KAAK,KAAM,SAAU3G,GAClB,MAAO8Q,GAAG9Q,KAEb2G,KAAK,KAAM,GACXA,KAAK,UAAW,EACrBtK,GAAG4C,WAAWmT,EAAa7L,EAAO6E,sBAC7BzE,KAAK,UAAW,GAGrBtK,EAAG4C,WAAWkT,EAAO5L,EAAO6E,sBACvBzE,KAAK,KAAM,SAAU3G,GAClB,MAAO8Q,GAAG9Q,KAEb2G,KAAK,KAAMJ,EAAO+L,UAAY/L,EAAOkI,UAAUJ,KAC/C1H,KAAK,KAAM,SAAU3G,GAClB,MAAO8Q,GAAG9Q,KAEb2G,KAAK,KAAM,GAGhBwL,EAAMI,OAAOzH,aAGb8G,GAAUtH,UAAU,QAAQQ,SAiWpC,QAAS0H,KACL,MAAOjM,GAAO+L,UAAY/L,EAAOkI,UAAUJ,IAkG/C,QAASoE,KACL,MAAOlM,GAAOvI,aAAa+E,QAAQ,SAAU,KAAO,QAkBxD,QAAS2P,KACL,GAAIC,GAAOtW,EAAG6D,MAAM8D,eAAe4O,EAAS,QAGxClI,EAAK+H,IACLI,EAAgBxW,EAAG6D,MAAM8D,eAAe2O,EAAM,IAAMjI,EAAI,YAAY/D,KAAK,KAAM+D,GAE/EoI,EAAyB,EAAfC,CAEd1W,GAAG6D,MAAM8D,eAAe6O,EAAe,QAClClM,KAAK,QAASJ,EAAO+K,cAAgBwB,GACrCnM,KAAK,SAAUJ,EAAOyM,cAAgBF,GACtCnM,KAAK,YAAa,cAAgBoM,EAAe,MAAQA,EAAe,KA6BjF,QAASE,GAAWpU,GACZ0H,EAAOqK,cACPsC,GAAW,GAGfvC,EAAapK,EAAOuD,KACpBvD,EAAO4M,cAAc5M,EAAOuD,KAE5BvD,EAAO6M,YAEH7M,EAAOsK,YAAcV,GAActR,IACnC0H,EAAO8M,YAAY9M,EAAOuD,MAG1BvD,EAAO+M,YAAczU,IACrB0H,EAAOgN,YAAYhN,EAAOuD,KAG1BjL,EACA0H,EAAOiN,YAAYjN,EAAOuD,KAE1BvD,EAAOkN,YAAYlN,EAAOuD,KAIlC,QAAS4J,KACDC,EACApN,EAAOqN,mBAEFC,GACLtN,EAAOuN,oBAiBf,QAASzD,GAAezK,EAAOmO,GAC3B,GAAIC,KAGJ,OAFAA,GAAiB,GAAK7X,EAAGuH,KAAKkC,EAAM,GAAImO,EAAW,KACnDC,EAAiB,GAAK7X,EAAGsH,KAAKmC,EAAM,GAAImO,EAAW,KAC5CC,EAsDX,QAAStD,GAAYuD,EAAQC,GACzB,MAAKD,IAAWC,EAGND,GAAWC,EAGM,IAAlBD,EAAOlW,QAAkC,IAAlBmW,EAAOnW,QAC5B,EAEFkW,EAAO,GAAGE,YAAcD,EAAO,GAAGC,WACvCF,EAAO,GAAGE,YAAcD,EAAO,GAAGC,WAC3B,GAEJ,GATI,GAHA,EAiCf,QAASC,GAAiBxO,GACtB,MAAOA,aAAiBzD,QAASyD,EAAM7H,OAAS,EAzmCpD,GAAIiU,GAAkB,YAClBqC,EAAmB,aACnBxC,EAAiB,WACjByC,EAAqB,eACrBC,EAAqB,eACrBC,EAA6B,EAEjCjO,GAASlK,EAAGwS,WAAWxS,EAAG8R,YAAY9R,EAAGiK,UAAUC,KAEnDA,EAAO4I,OAAOhT,EAAG4S,MAAM0F,cACvBlO,EAAOwC,uBAAuBnL,KAAK,IAkCnC,IAAIgV,GACA8B,EACAC,EAEA7D,EACAR,EAKAsE,EAEAzD,EAEA0D,EAIAC,EAKAC,EAMAC,EASAzE,EACA0E,EAjCAvD,EAASvV,EAAGyO,IAAIsK,OAAOC,OAAO,UAC9BC,EAAU/Y,EAAGkD,MAAMC,SACnB6V,EAAgB,EAChBC,GAAe,EAEfC,EAAqB,EAIrBC,EAASrZ,EAAGyO,IAAIsK,OAAOC,OAAO,QAC9BM,EAAgB,EAChBC,GAAe,EAEfC,EAAqB,EAErBC,EAASzZ,EAAGyO,IAAIiL,QAChB3C,GAAW,EAGX4C,GAA4B,EAC5BhE,GAA0B,EAE1B3B,GAAa,EAGb4F,GAAc,EAAG5P,EAAAA,GACjBiK,GAAmB,EAEnB4F,EAAQ7Z,EAAG8Z,SAASC,OAAOpI,GAAG,OAAQoC,GACtCiG,EAAYha,EAAG8Z,SAASC,OAAOpI,GAAG,OAAQ,MAC1C+F,GAAwB,EAKxBF,GAAiB,EACjBZ,EAAe,EAEftB,GAAyB,GACzBF,GAAoB,EAEpB6E,IAAiB,CAihCrB,OA/gCA7P,GAAOkK,QAAU,WACbuE,EAAa3V,QAYjBkH,EAAO8P,WAAa,SAAUvV,GAC1B,MAAKC,WAAUhD,QAGfwS,EAAczP,EACdyP,EAAY+F,WAAW/P,GAChBA,GAJIgK,GAYfhK,EAAOgQ,UAAY,SAAUzV,GACzB,MAAKC,WAAUhD,QAGfgY,EAAajV,EACNyF,GAHIwP,GAUfxP,EAAOiQ,gBAAkB,SAAU1T,GAC/B,MAAK/B,WAAUhD,QAGfgY,EAAW,GAAKjT,EAAI,EAAI,EACxBsN,EAAmBtN,EACZyD,GAJI6J,GAOf7J,EAAOkQ,WAAa,SAAUxS,GAa1B,MAXI2O,GADWvT,SAAX4E,EACUsC,EAAOqE,MAEP3G,EAGdyQ,EAAK9B,EAAQrO,OAAO,KAEpBoQ,EAAcD,EAAGnQ,OAAO,KAAKoC,KAAK,QAAS,cACtCA,KAAK,YAAa,aAAeJ,EAAOkI,UAAUD,KAAO,KAAOjI,EAAOkI,UAAUJ,IAAM,KACvF1H,KAAK,YAAa,QAAU8L,IAAkB,KAE5CiC,GAUXnO,EAAOuD,EAAI,SAAUhJ,GACjB,MAAKC,WAAUhD,QAGf2W,EAAK5T,EACEyF,GAHImO,GAafnO,EAAOmQ,cAAgB,SAAUC,GAC7B,MAAK5V,WAAUhD,QAGf4V,EAAiBgD,EACVpQ,GAHIoN,GAUfpN,EAAOqQ,WAAa,SAAU9V,GAC1B,MAAKC,WAAUhD,QAGf4W,EAAc7T,EACPyF,GAHIoO,GAmBfpO,EAAOH,EAAI,SAAUtF,GACjB,MAAKC,WAAUhD,QAGf+S,EAAKhQ,EACLwP,EAAmBQ,EAAGlR,SACf2G,GAJIuK,GAOfvK,EAAOsQ,gBAAkB,WACrB,MAAOvG,IAmCX/J,EAAOuQ,OAAS,SAAUhW,GACtB,MAAKC,WAAUhD,QAGfqX,EAAUtU,EACHyF,GAHI6O,GAqBf7O,EAAOwQ,MAAQ,SAAUjW,GACrB,MAAKC,WAAUhD,QAGf2T,EAAS5Q,EACFyF,GAHImL,GAYfnL,EAAOsK,SAAW,SAAU/P,GACxB,MAAKC,WAAUhD,QAGfuX,EAAexU,EACRyF,GAHI+O,GAgBf/O,EAAOyQ,aAAe,SAAUlW,GAC5B,MAAKC,WAAUhD,QAGfsX,EAAgBvU,EACTyF,GAHI8O,GAWf9O,EAAO0Q,WAAa,WAChB,GAAmB5X,SAAf2V,EAA0B,CAC1B,GAAIzV,GAAQgH,EAAOuQ,SAASvQ,EAAOH,IAAIxG,SAAS,GAAI2G,EAAOH,IAAIxG,SAAS,GAAI2G,EAAOH,IAAIxG,SAGnFoV,GADAzV,YAAiB4C,OACJ5C,EAAMxB,OAENwB,EAIrB,MAAOyV,IASXzO,EAAO2Q,cAAgB,SAAUpW,GAC7B,MAAKC,WAAUhD,QAGfqY,GAAiBtV,EACVyF,GAHI6P,IAYf7P,EAAOqK,UAAY,WACf,MAAOrK,GAAOuQ,WAAaza,EAAGkD,MAAMI,SAGxC4G,EAAOiL,iBAAmB,WACtB,OAAO,GAGXjL,EAAOwK,gBAAkB,WACrB,GAAIoG,GAAS5Q,EAAO4D,sBAAsB5D,EAAOsD,OACjD,OAAOsN,GAAOC,IAAI7Q,EAAOmC,gBAmC7BnC,EAAO8M,YAAc,SAAUvJ,GAC3B,GAAIuN,GAASvN,EAAEQ,UAAU,MAErB+M,GAAO/S,UACP+S,EAASvN,EAAEvF,OAAO,KACboC,KAAK,QAAS,UACdA,KAAK,YAAa,aAAeJ,EAAOkI,UAAUD,KAAO,IAAMjI,EAAO+L,UAAY,KAG3F,IAAIgF,GAAWxN,EAAEQ,UAAU,QAAUiK,EACjC+C,GAAShT,SAAWiC,EAAOgR,eAC3BD,EAAWxN,EAAEvF,OAAO,QACfoC,KAAK,YAAa,cAAgBJ,EAAOkI,UAAUD,KAAOjI,EAAO+K,cAAgB,GAAK,KAClF/K,EAAOM,SAAW0O,GAAsB,KAC5C5O,KAAK,QAAS4N,GACd5N,KAAK,cAAe,UACpBuE,KAAK3E,EAAOgR,eAEjBhR,EAAOgR,cAAgBD,EAASpM,SAAW3E,EAAOgR,cAClDD,EAASpM,KAAK3E,EAAOgR,cAGzBlb,EAAG4C,WAAWoY,EAAQ9Q,EAAO6E,sBACxB7I,KAAKmP,IAqDdnL,EAAO+L,QAAU,WACb,MAAQ/L,GAAOM,SAAWN,EAAOkI,UAAUF,QAG/ChI,EAAO+K,YAAc,WACjB,MAAO/K,GAAOoI,kBAQlBpI,EAAOgR,WAAa,SAAUzW,EAAGgS,GAC7B,MAAK/R,WAAUhD,QAGf6W,EAAc9T,EACdyF,EAAOkI,UAAUF,QAAUgH,EAC3BA,EAAkClW,SAAZyT,EAAyB0B,EAA6B1B,EAC5EvM,EAAOkI,UAAUF,QAAUgH,EACpBhP,GANIqO,GASfrO,EAAO4M,cAAgB,SAAUrJ,GAC7B,GAAWzK,SAAPwV,GAAoBtO,EAAO+M,WAAY,CACvCuB,EAAK1Y,EAAG4S,MAAMQ,QACd,IAAI9L,GAAM8C,EAAOiR,YAAc,EAC3B9T,EAAM6C,EAAOkR,YAAc,CAC/B5C,GAAGjV,QAAQ6D,EAAKC,IAAMgU,YAAYnR,EAAOyM,cAAe,IAG5D6B,EAAGjP,OAAOW,EAAOyM,cAAe,IAChCwC,EAASA,EAAOzG,MAAM8F,GAElBuB,IACAZ,EAAOL,OAAO,SAGlB5O,EAAOoR,kCAAkC7N,EAAG+K,EAAIW,IAGpDjP,EAAOqR,iBAAmB,SAAUC,EAAW3M,EAAM4M,EAAUC,GAC3DA,EAAiBA,GAAkBpC,CAEnC,IAAIqC,GAAWzR,EAAOuD,IAAIQ,UAAU,QAAUgK,EAAqB,IAAMuD,EAAY,SACrF,IAAIG,EAAS1T,SAAW4G,EAAM,CAE1B,GAAI+M,GAAkB1R,EAAOkI,UAAUJ,IAAM9H,EAAOyM,cAAgB,CACpEgF,GAAWzR,EAAOuD,IAAIvF,OAAO,QACxBoC,KAAK,YAAa,aAAeoR,EAAiB,IAAME,EAAiB,YAAcH,EAAW,KAClGnR,KAAK,QAAS2N,EAAqB,IAAMuD,EAAY,UACrDlR,KAAK,cAAe,UACpBuE,KAAKA,GAEVA,GAAQ8M,EAAS9M,SAAWA,GAC5B8M,EAAS9M,KAAKA,IAItB3E,EAAO2R,cAAgB,SAAUL,EAAW3C,EAAMiD,GAC9C,GAAIC,GAAS7R,EAAOuD,IAAIQ,UAAU,KAAOuN,EACrCO,GAAO9T,UACP8T,EAAS7R,EAAOuD,IAAIvF,OAAO,KACtBoC,KAAK,QAAS,QAAUkR,GACxBlR,KAAK,YAAa,aAAewR,EAAW,IAAM5R,EAAOkI,UAAUJ,IAAM,MAGlFhS,EAAG4C,WAAWmZ,EAAQ7R,EAAO6E,sBAAsB7I,KAAK2S,IAG5D3O,EAAOgN,YAAc,WACjB,GAAI8E,GAAejC,GAAkB7P,EAAOK,QAAUL,EAAOkI,UAAUH,MAAS/H,EAAO+R,SACvF/R,GAAO2R,cAAc,IAAK1C,EAAQ6C,EAClC,IAAIE,GAAgBnC,GAAkB7P,EAAOK,QAAU+O,EAAsBA,EACzEmC,EAAW1B,GAAiB,GAAK,GACrC7P,GAAOqR,iBAAiB,IAAKrR,EAAOiS,aAAcV,EAAUS,IAGhEhS,EAAOoR,kCAAoC,SAAU7N,EAAGiF,EAAOmG,GAC3D,GAAItD,GAAY9H,EAAEQ,UAAU,KAAO+J,EAEnC,IAAIyB,EAA2B,CAC3B,GAAI7D,GAAQiD,EAAKhD,aAAegD,EAAKhD,aAAenD,EAAMkD,MAAMiD,EAAKjD,QAAQ,GAEzEL,GAAUtN,UACVsN,EAAY9H,EAAEiI,OAAO,IAAK,gBACrBpL,KAAK,QAASqL,EAAkB,IAAMqC,GACtC1N,KAAK,YAAa,aAAeJ,EAAOkI,UAAUD,KAAO,IAAMjI,EAAOkI,UAAUJ,IAAM,KAG/F,IAAI8D,GAAQP,EAAUtH,UAAU,QAC3BT,KAAKoI,GAGNG,EAAcD,EAAME,QACnB9N,OAAO,QACPoC,KAAK,KAAM,GACXA,KAAK,KAAM,SAAU3G,GAClB,MAAO+O,GAAM/O,KAEhB2G,KAAK,KAAMJ,EAAO+K,eAClB3K,KAAK,KAAM,SAAU3G,GAClB,MAAO+O,GAAM/O,KAEhB2G,KAAK,UAAW,EACrBtK,GAAG4C,WAAWmT,EAAa7L,EAAO6E,sBAC7BzE,KAAK,UAAW,GAGrBtK,EAAG4C,WAAWkT,EAAO5L,EAAO6E,sBACvBzE,KAAK,KAAM,GACXA,KAAK,KAAM,SAAU3G,GAClB,MAAO+O,GAAM/O,KAEhB2G,KAAK,KAAMJ,EAAO+K,eAClB3K,KAAK,KAAM,SAAU3G,GAClB,MAAO+O,GAAM/O,KAIrBmS,EAAMI,OAAOzH,aAGb8G,GAAUtH,UAAU,QAAQQ,UAIpCvE,EAAO+R,QAAU,WACb,MAAO/R,GAAO2Q,gBAAkB3Q,EAAOK,QAAUL,EAAOkI,UAAUH,MAAQ/H,EAAOkI,UAAUD,MAS/FjI,EAAOiS,WAAa,SAAU1X,EAAGgS,GAC7B,MAAK/R,WAAUhD,QAGf+W,EAAchU,EACdyF,EAAOkI,UAAUD,MAAQmH,EACzBA,EAAkCtW,SAAZyT,EAAyB0B,EAA6B1B,EAC5EvM,EAAOkI,UAAUD,MAAQmH,EAClBpP,GANIuO,GAcfvO,EAAOF,EAAI,SAAUvF,GACjB,MAAKC,WAAUhD,QAGf8W,EAAK/T,EACEyF,GAHIsO,GAqBftO,EAAOkS,MAAQ,SAAUpS,GACrB,MAAKtF,WAAUhD,QAGfyX,EAASnP,EACFE,GAHIiP,GAYfjP,EAAO+M,SAAW,SAAUxS,GACxB,MAAKC,WAAUhD,QAGf2X,EAAe5U,EACRyF,GAHImP,GAWfnP,EAAOmS,0BAA4B,SAAU5X,GACzC,MAAKC,WAAUhD,QAGf+X,EAA4BhV,EACrByF,GAHIuP,GAWfvP,EAAOoL,wBAA0B,SAAU7Q,GACvC,MAAKC,WAAUhD,QAGf+T,EAA0BhR,EACnByF,GAHIuL,GAUfvL,EAAOyK,SAAW,WACd,GAAIvN,GAAMtH,EAAGsH,IAAI8C,EAAOsD,OAAQ,SAAUpM,GACtC,MAAO8I,GAAOmC,cAAcjL,IAEhC,OAAOpB,GAAG6D,MAAMmD,SAASI,EAAK4R,IAOlC9O,EAAO0K,SAAW,WACd,GAAIvN,GAAMvH,EAAGuH,IAAI6C,EAAOsD,OAAQ,SAAUpM,GACtC,MAAO8I,GAAOmC,cAAcjL,IAEhC,OAAOpB,GAAG6D,MAAM0C,IAAIc,EAAK2R,IAO7B9O,EAAOiR,SAAW,WACd,GAAI/T,GAAMtH,EAAGsH,IAAI8C,EAAOsD,OAAQ,SAAUpM,GACtC,MAAO8I,GAAOoC,gBAAgBlL,IAElC,OAAOpB,GAAG6D,MAAMmD,SAASI,EAAKgS,IAOlClP,EAAOkR,SAAW,WACd,GAAI/T,GAAMvH,EAAGuH,IAAI6C,EAAOsD,OAAQ,SAAUpM,GACtC,MAAO8I,GAAOoC,gBAAgBlL,IAElC,OAAOpB,GAAG6D,MAAM0C,IAAIc,EAAK+R,IAa7BlP,EAAOoS,aAAe,SAAU7X,GAC5B,MAAKC,WAAUhD,QAGf0X,EAAgB3U,EACTyF,GAHIkP,GAMflP,EAAOyM,YAAc,WACjB,MAAOzM,GAAOqI,mBAalBrI,EAAOjG,MAAQ,SAAUQ,GACrB,MAAKC,WAAUhD,QAGfgX,EAASjU,EACFyF,GAHIwO,GAMfxO,EAAOgL,kBAAoB,SAAUzQ,GACjC,MAAKC,WAAUhD,QAGfwT,GAAoBzQ,EACbyF,GAHIgL,IAMfhL,EAAOkL,uBAAyB,SAAU3Q,GACtC,MAAKC,WAAUhD,QAGf0T,GAAyB3Q,EAClByF,GAHIkL,IAMfpV,EAAGmE,SAAS+F,EAAQ,SAAU,SAAUzF,GACpC,MAAKC,WAAUhD,QAIfwI,EAAOqS,QAAQ9X,GAEXA,EACAyF,EAAOsP,QAAQgD,OAAO/X,GAEtByF,EAAOsP,QAAQ3X,QAGZqI,GAXIA,EAAOqS,YActBrS,EAAOsP,MAAQ,SAAU/U,GACrB,MAAKC,WAAUhD,QAGf6X,EAAS9U,EACFyF,GAHIqP,GAUfrP,EAAOiN,YAAc,SAAU1J,GAC3B,GAAIoJ,EAAU,CACV0C,EAAO9H,GAAG,QAASvH,EAAOuS,WAC1BlD,EAAO9H,GAAG,aAAcvH,EAAOuN,mBAC/B8B,EAAO9H,GAAG,WAAY4F,EAEtB,IAAIqF,GAASjP,EAAEvF,OAAO,KACjBoC,KAAK,QAAS,SACdA,KAAK,YAAa,aAAeJ,EAAOkI,UAAUD,KAAO,IAAMjI,EAAOkI,UAAUJ,IAAM,KACtF9L,KAAKqT,EAAOxP,EAAEG,EAAOH,KAC1BG,GAAOyS,UAAUD,GACjBxS,EAAO0S,eAAeF,GAElBxS,EAAOgG,aACPhG,EAAOkN,YAAY3J,KAK/BvD,EAAO0S,eAAiB,SAAUF,GAC9BA,EAAOzO,UAAU,WAAW/F,OAAO,QAAQoC,KAAK,IAAKJ,EAAO2S,mBAGhE3S,EAAOyS,UAAY,SAAUD,GACzBA,EAAOzO,UAAU,QAAQ3D,KAAK,SAAU6L,MAG5CjM,EAAO4S,YAAc,WACjB,GAAIN,GAASjD,EAAOiD,QAQpB,OAPItS,GAAOjG,UACPuY,EAAO,GAAKA,EAAOzB,IAAI7Q,EAAOjG,SAAS,GACvCuY,EAAO,GAAKA,EAAOzB,IAAI7Q,EAAOjG,SAAS,GAEvCoU,EAAGrQ,OAAO,UACL9B,KAAKqT,EAAOiD,OAAOA,KAErBA,GAGXtS,EAAO6S,aAAe,SAAUP,GAC5B,MAAOjD,GAAOtR,UAAYuU,GAAUA,EAAO,IAAMA,EAAO,IAG5DtS,EAAOuS,UAAY,WACf,GAAID,GAAStS,EAAO4S,aAIpB,IAFA5S,EAAOkN,YAAYiB,GAEfnO,EAAO6S,aAAaP,GACpBxc,EAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAO,MACdqE,EAAOuF,eACRzP,EAAGE,UAAUS,iBACb,CACH,GAAIqc,GAAehd,EAAG4F,QAAQwD,aAAaoT,EAAO,GAAIA,EAAO,GAE7Dxc,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOuG,cAAcuM,GACrB9S,EAAOuF,eACRzP,EAAGE,UAAUS,eAIxBuJ,EAAOkN,YAAc,SAAU3J,GAC3B,GAAIoJ,EAAU,CACN3M,EAAOrE,UAAYqE,EAAOsP,QAAQvR,SAClCiC,EAAOsP,QAAQgD,OAAOtS,EAAOrE,SAGjC,IAAI6W,GAASjP,EAAEzF,OAAO,UACtB0U,GAAOxW,KAAKgE,EAAOsP,QAAQzP,EAAEG,EAAOH,MACpCG,EAAOyS,UAAUD,GAGrBxS,EAAO+S,sBAGX/S,EAAO+S,mBAAqB,aAK5B/S,EAAO2S,iBAAmB,SAAUlZ,GAChC,GAAIvC,KAAY,MAANuC,GAAYoG,EAAI3I,EAAI,EAAI,GAAI4I,EAAImM,IAAgB,CAC1D,OAAO,IAAO,GAAMpM,EAAK,IAAMC,EAC3B,YAAc5I,EAAI,IAAO,IAAM2I,EAAK,KAAOC,EAAI,GAC/C,KAAO,EAAIA,EAAI,GACf,YAAc5I,EAAI,IAAO,GAAM2I,EAAK,IAAO,EAAIC,EAC/C,KACO,IAAMD,EAAK,KAAOC,EAAI,GAC7B,KAAO,EAAIA,EAAI,GACf,IAAO,IAAMD,EAAK,KAAOC,EAAI,GAC7B,KAAO,EAAIA,EAAI,IAcvBE,EAAOgT,YAAc,SAAUC,GAC3B,MAAKzY,WAAUhD,QAGfgV,EAAeyG,EACRjT,GAHIwM,GAqBfxM,EAAOkT,gBAAkB,aAEzBlT,EAAOiF,UAAY,WAYf,MAXAjF,GAAOsE,WAEPtE,EAAOkT,kBAEPlT,EAAOkQ,aACP/D,IAEAO,GAAU,GAEVS,IAEOnN,GAGXA,EAAOsF,UAAY,WAMf,MALAtF,GAAOkT,kBAEPxG,GAAU,GACVP,IAEOnM,GAqCXA,EAAOqN,iBAAmB,WACtBC,GAAwB,EACxBmC,EAAM5P,EAAEG,EAAOH,KACVsT,YAAY3D,GACZ4D,MAAMpT,EAAOK,QAASL,EAAOM,WAC7B1H,SAASoH,EAAO6E,sBACrB7E,EAAOG,OAAOnE,KAAKyT,IAGvBzP,EAAOuN,kBAAoB,WACvBvN,EAAOG,OAAOnE,KAAK4T,IA2BvB5P,EAAO5H,MAAQ,SAAUiH,GAEjBW,EAAOH,IAAIxG,OADXwU,EAAiBxO,GACCA,EAEA0K,GAGtB0F,EAAM5P,EAAEG,EAAOH,KACf8J,KAGJ3J,EAAOqT,UAAY,WACf,MAAOzJ,IAGX5J,EAAO+P,WAAa,SAAUuD,GAC1B,MAAK9Y,WAAUhD,QAGfkX,EAAc4E,EACdtT,EAAOuH,GAAG,WAAY,SAAUtQ,GACvBA,EAAM0E,SAICwO,EAAYlT,EAAM0E,SAAU+S,EAAY/S,WAChD7F,EAAG8I,OAAOE,QAAQ,WACd4P,EAAYtW,MAAMnB,EAAM0E,YAL5B7F,EAAG8I,OAAOE,QAAQ,WACd4P,EAAY7O,IAAIxG,OAAOqV,EAAY4B,uBAQxCtQ,GAdI0O,GA4Cf1O,EAAOuT,QAAU,SAAUhZ,GACvB,MAAKC,WAAUhD,QAGfmV,EAAWpS,EACJyF,GAHI2M,GAUR3M,GAQXlK,EAAG0d,WAAa,SAAUxT,GAEtB,QAASyT,GAAeC,EAAOC,GAC3B,GAAIC,GAAcF,EAAMG,UAAY7T,EAAOoC,eAa3C,OAZAsR,GAAMnW,KAAOuW,OAAOJ,EAAMnW,MAAQoW,GAClCD,EAAMK,OAASL,EAAM5c,MAAMgM,MAAM+N,IAAI,SAAUpX,EAAGlC,GAC9C,OACIsI,EAAGG,EAAOmC,cAAc1I,EAAGlC,GAC3BuI,EAAG4T,EAAMM,OAAS,KAAOJ,EAAYna,EAAGlC,GACxC+L,KAAM7J,EACNia,MAAOA,EAAMnW,KACbyW,OAAQN,EAAMM,UAItBN,EAAMK,OAASL,EAAMK,OAAOpY,OAAOsY,KAC5BP,EAAMK,OAWjB,QAASE,KACL,IAAKjU,EAAOH,IACR,MAAOjK,GAAGoN,SAAQ,EAEtB,IAAIkR,GAAUlU,EAAOH,IAAIxG,QACzB,OAAI2G,GAAOqK,YAGA,WACH,OAAO,GAGXrK,EAAOsK,WACA,WAAc,OAAO,GAEzB,SAAU2I,GAEb,MAAOA,GAAEpT,GAAKqU,EAAQ,IAAMjB,EAAEpT,GAAKqU,EAAQA,EAAQ1c,OAAS,IAoEpE,QAAS2c,GAAgBna,GACrB,GAAIzC,GAAI6c,EAAOvD,IAAI/a,EAAGgG,MAAM,SAAS3E,QAAQ6C,EAC7C,OAAOoa,GAAO7c,GAoDlB,QAAS8c,KACL,GAAIC,GAAWtU,EAAOsD,OAAOuN,IAAI,SAAU6C,GAAS,MAAOA,GAAMK,QACjE,OAAOnY,OAAM2Y,UAAUC,OAAOnZ,SAAUiZ,GAiE5C,QAASG,GAAWnY,GAChB,OAAQA,EAAE0X,OAvNd,GAAIU,GAAe9e,EAAG+e,OAAOC,QACxBb,OAAON,GAERW,KACAS,KAEAC,GAAiB,CAgQrB,OAzNA9U,GAAO4U,MAAQ,SAAU9d,EAAOyG,EAAMsW,GAClC,IAAKrZ,UAAUhD,OACX,MAAO4c,EAGP5Z,WAAUhD,QAAU,IACpBqc,EAAWtW,EAGf,IAAImW,IAAS5c,MAAMA,EASnB,OARoB,gBAATyG,KACPmW,EAAMnW,KAAOA,GAEO,kBAAbsW,KACPH,EAAMG,SAAWA,GAErBO,EAAO/c,KAAKqc,GAEL1T,GAGXlK,EAAGmE,SAAS+F,EAAQ,QAAS,SAAUuD,EAAGvJ,EAAG+B,GACzC,MAAKvB,WAAUhD,QAGf4c,KACAS,KACA7U,EAAO4U,MAAMrR,EAAGvJ,GACZ+B,GACAiE,EAAOoC,cAAcrG,GAElBiE,EAAOe,OAAOwC,EAAGvJ,IARbgG,EAAOe,WAiBtBf,EAAO+U,cAAgB,SAAUxa,GAC7B,MAAKC,WAAUhD,QAGfsd,EAAiBva,EACVyF,GAHI8U,GAiBf9U,EAAOgV,UAAY,SAAUC,GACzB,GAAIvB,GAAQS,EAAgBc,EAI5B,OAHIvB,KACAA,EAAMM,QAAS,GAEZhU,GASXA,EAAOkV,UAAY,SAAUD,GACzB,GAAIvB,GAAQS,EAAgBc,EAI5B,OAHIvB,KACAA,EAAMM,QAAS,GAEZhU,GAGXA,EAAOmV,wBAA0B,SAAUC,GACvC,MAAOhB,GAAOgB,GAAOvB,UAAY7T,EAAOoC,iBAG5CpC,EAAOiR,SAAW,WACd,GAAI/T,GAAMtH,EAAGsH,IAAImX,IAAgB,SAAUpB,GACvC,MAAQA,GAAEnT,EAAImT,EAAEoC,GAAKpC,EAAEoC,GAAOpC,EAAEnT,EAAImT,EAAEoC,GAAMpC,EAAEoC,IAGlD,OAAOvf,GAAG6D,MAAMmD,SAASI,EAAK8C,EAAOoS,iBAIzCpS,EAAOkR,SAAW,WACd,GAAI/T,GAAMvH,EAAGuH,IAAIkX,IAAgB,SAAUpB,GACvC,MAAOA,GAAEnT,EAAImT,EAAEoC,IAGnB,OAAOvf,GAAG6D,MAAM0C,IAAIc,EAAK6C,EAAOoS,iBAQpCpS,EAAOyK,SAAW,WACd,GAAIvN,GAAMtH,EAAGsH,IAAImX,IAAgBve,EAAGgG,MAAM,KAC1C,OAAOhG,GAAG6D,MAAMmD,SAASI,EAAK8C,EAAOyQ,iBAGzCzQ,EAAO0K,SAAW,WACd,GAAIvN,GAAMvH,EAAGuH,IAAIkX,IAAgBve,EAAGgG,MAAM,KAC1C,OAAOhG,GAAG6D,MAAM0C,IAAIc,EAAK6C,EAAOyQ,iBAoBpC3a,EAAGmE,SAAS+F,EAAQ,QAAS,SAAUiV,EAAWK,GAC9C,MAAKL,GAIoB,kBAAdA,GACAjV,EAAOkC,OAAO+S,GAErBA,IAAcjV,EAAOwD,YAAuC,kBAAlB8R,GACnCtV,EAAOkC,OAAOoT,GAGI,kBAAlBA,GACAT,EAAQI,IAAcjV,EAAOkC,UAGxC2S,EAAQI,GAAaK,EAEdtV,GAhBIA,EAAOkC,WAyBtBlC,EAAOuV,YAAc,SAAUX,GAC3B,MAAKpa,WAAUhD,QAGfkd,EAAeE,EACR5U,GAHI0U,GAUf1U,EAAOsD,KAAK,WACR,GAAIkS,GAASpB,EAAOzY,OAAO8Y,EAC3B,OAAOe,GAAOhe,OAASwI,EAAOuV,cAAcC,QAGhDxV,EAAOwK,gBAAkB,WACrB,GAAIiL,GAAOpB,IAAexD,IAAI/a,EAAGgG,MAAM,SACnC4Z,EAAU1V,EAAO4D,sBAAsB6R,EAC3C,OAAOC,GAAQ7E,IAAI7Q,EAAOmC,gBAG9BnC,EAAOmJ,cAAc,SAAU1P,GAC3B,GAAIia,GAAQzY,KAAKyY,OAASzY,KAAKsC,MAAQ9D,EAAE8D,MAAQ9D,EAAEia,KACnD,OAAOA,KAGX1T,EAAO6G,YAAc,WACjB,MAAOuN,GAAOvD,IAAI,SAAU6C,EAAOnc,GAC/B,OACIN,MAAM+I,EACNzC,KAAKmW,EAAMnW,KACXyW,OAAQN,EAAMM,SAAU,EACxB2B,MAAM3V,EAAOwJ,SAASxN,KAAK0X,EAAOA,EAAMK,OAAQxc,OAK5DyI,EAAOiH,mBAAqB,SAAUxN,GAClC,GAAIia,GAAQS,EAAgB1a,EAAE8D,KAC9B,OAAOmW,GAAQA,EAAMM,QAAS,GAGlChU,EAAOgH,aAAe,SAAUvN,GACxBqb,IACI9U,EAAOiH,mBAAmBxN,GAC1BuG,EAAOkV,UAAUzb,EAAE8D,MAEnByC,EAAOgV,UAAUvb,EAAE8D,MAGvByC,EAAOwF,gBAIRxF,GAcXlK,EAAG8f,SAAW,SAAU5V,GAEpB,GAAI6V,GAAOjW,EAAAA,EAEPkW,EAAe,SAEfC,EAAiB,SAAUC,GAC3B,GAAIC,GAAargB,EAAGsgB,IAAIF,EAAShW,EAAOoC,iBACpC+T,EAAUnW,EAAOlJ,QAAQgM,MACzBsT,EAAaxgB,EAAGsgB,IAAIC,EAASnW,EAAOoC,iBACpCiU,EAAUL,EAAQnF,IAAI7Q,EAAOmC,eAC7BmU,EAAUH,EAAQtF,IAAI7Q,EAAOmC,eAC7BoU,EAAS3gB,EAAG4gB,IAAIH,GAChBI,EAASH,EAAQ3a,OAAO,SAAUlC,GAAI,OAAQ8c,EAAOvf,IAAIyC,IAC7D,OAAI2c,GAAaH,EACND,EAAQxB,SAASiC,OAAUA,EAAQC,IAAOZ,EAAcvW,MAAS6W,EAAaH,KAElFD,EAyFX,OAtFAhW,GAAO2W,kBAAoB,SAAUld,EAAGlC,GACpC,MAAIkC,GAAEgd,OACKhd,EAAEid,IAEN1W,EAAOmC,cAAc1I,EAAGlC,IAGnCyI,EAAO4W,oBAAsB,SAAUnd,EAAGlC,GACtC,MAAIkC,GAAEgd,OACKhd,EAAE8F,MAENS,EAAOoC,gBAAgB3I,EAAGlC,IAGrCyI,EAAOsD,KAAK,SAAUxM,GAClB,GAAI+e,IAASjW,EAAAA,EACT,MAAOI,GAAO4D,sBAAsB9M,EAAMgM,MAE1C,IAAIkT,GAAUlf,EAAMgR,IAAI+N,EAExB,OADAG,GAAUhW,EAAO4D,sBAAsBoS,GACnCD,EACOA,EAAeC,GAEnBA,IAQfhW,EAAO6W,IAAM,SAAUtc,GACnB,MAAKC,WAAUhD,QAGfqe,EAAOtb,EACAyF,GAHI6V,GAUf7V,EAAO8W,YAAc,SAAUvc,GAC3B,MAAKC,WAAUhD,QAGfse,EAAevb,EACRyF,GAHI8V,GA0Bf9V,EAAO+W,cAAgB,SAAUxc,GAC7B,MAAKC,WAAUhD,QAGfue,EAAiBxb,EACVyF,GAHI+V,GAMfjgB,EAAGmE,SAAS+F,EAAQ,UAAW,SAAUvG,GACjCA,EAAEgd,QACFzW,EAAOrE,QAAQlC,EAAEgd,SAErBzW,EAAOgX,SAASvd,KAGbuG,GAUXlK,EAAGmhB,YAAc,SAAUjX,GACvB,GAAIkX,GAAyB,GACzBC,EAAsB,EAE1BnX,GAAOoX,kBAAoB,OAC3BpX,EAAOqX,aAAe,SACtBrX,EAAOsX,WAAa,GAEpBtX,EAASlK,EAAGwS,WAAWtI,GAEvBA,EAAOoH,aAAY,GAEnBpH,EAAOsD,KAAK,SAAUxM,GAClB,MAAOA,GAAMgR,IAAIlI,EAAAA,IAGrB,IAAI2X,GAAK3hB,EAAG4S,MAAMQ,SAAS3P,QAAQ,EAAG,MAElCme,EAAkB,SAAU/d,GAC5B,MAAOA,GAAE8C,EASbyD,GAAOzD,EAAI,SAAUhC,GACjB,MAAKC,WAAUhD,QAGf+f,EAAKhd,EACEyF,GAHIuX,GAcfvX,EAAOyX,oBAAsB,SAAUld,GACnC,MAAKC,WAAUhD,QAGfggB,EAAkBjd,EACXyF,GAHIwX,GAMfxX,EAAO0X,KAAO,WACV,GAAIxa,GAAMtH,EAAGsH,IAAI8C,EAAOsD,OAAQ,SAAUpM,GACtC,MAAO8I,GAAOyX,sBAAsBvgB,IAExC,OAAOgG,IAGX8C,EAAO2X,KAAO,WACV,GAAIxa,GAAMvH,EAAGuH,IAAI6C,EAAOsD,OAAQ,SAAUpM,GACtC,MAAO8I,GAAOyX,sBAAsBvgB,IAExC,OAAOiG,IAGX6C,EAAO4X,QAAU,SAAUne,GACvB,GAAI8F,GAAQS,EAAOyX,sBAAsBhe,GACrC8C,EAAIyD,EAAOzD,IAAIgD,EAInB,QAHIsY,MAAMtb,IAAe,GAATgD,KACZhD,EAAI,GAEDA,EAGX,IAAIub,GAAgB,SAAUre,GAC1B,MAAOuG,GAAOmH,QAAQ1N,IAGtBse,EAAe,SAAUte,GACzB,MAAQuG,GAAO4X,QAAQne,GAAK0d,EAAuB,EAAI,EAG3DnX,GAAOgY,eAAiB,SAAUC,GAC9B,GAAIjY,EAAOoH,cAAe,CACtB,GAAID,GAAQ8Q,EAAana,OAAO,OAE5BqJ,GAAMpJ,UACNoJ,EAAQ8Q,EAAaja,OAAO,QACvBoC,KAAK,cAAe,UACpBA,KAAK,KAAM,QACXmH,GAAG,QAASvH,EAAO2G,UAG5BQ,EACK/G,KAAK,UAAW,GAChBuE,KAAKmT,GACVhiB,EAAG4C,WAAWyO,EAAOnH,EAAO6E,sBACvBzE,KAAK,UAAW2X,KAI7B/X,EAAOkY,eAAiB,SAAUD,GAC9B,GAAIjY,EAAOoH,cAAe,CACtB,GAAI+Q,GAASF,EAAalU,UAAU,QAC/BY,KAAKmT,EACVhiB,GAAG4C,WAAWyf,EAAQnY,EAAO6E,sBACxBzE,KAAK,UAAW2X,IAI7B,IAAIK,GAAgB,SAAU3e,GAC1B,MAAOuG,GAAOqH,QAAQ5N,GA2E1B,OAxEAuG,GAAOqY,gBAAkB,SAAU9U,GAC/B,GAAIvD,EAAOsH,cAAe,CACtB,GAAID,GAAQ9D,EAAEzF,OAAO,QAEjBuJ,GAAMtJ,SACNwF,EAAEvF,OAAO,SAAS2G,KAAKyT,KAKnCpY,EAAOsY,eAAiB,SAAU/U,GAC1BvD,EAAOsH,eACP/D,EAAEQ,UAAU,SAASY,KAAKyT,IAUlCpY,EAAOuY,mBAAqB,SAAUhe,GAClC,MAAKC,WAAUhD,QAGf2f,EAAsB5c,EACfyF,GAHImX,GAYfnX,EAAOwY,sBAAwB,SAAUje,GACrC,MAAKC,WAAUhD,QAGf0f,EAAyB3c,EAClByF,GAHIkX,GAMflX,EAAO+S,mBAAqB,WAEpB/S,EAAO+D,UAAU,KAAO/D,EAAOoX,mBAAmBhS,KADlDpF,EAAOgG,YACgD,SAAUvM,GACzDuG,EAAOyY,eAAehf,GACtBuG,EAAOwG,kBAAkBvL,MAEzB+E,EAAOyG,eAAexL,OAIyB,WACnD+E,EAAO0G,eAAezL,SAKlC+E,EAAOyY,eAAiB,SAAUhf,GAC9B,MAAOuG,GAAOgG,UAAUvM,EAAEid,MAG9B1W,EAAO2G,QAAU,SAAUlN,GACvB,GAAIkC,GAASlC,EAAEid,GACf5gB,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAOA,GACdqE,EAAOuF,iBAIRvF,GAsCXlK,EAAG4iB,SAAW,SAAUhb,EAAQuG,GAkD5B,QAASyI,KAELiM,EAAUA,EAAUA,EAAU/iB,EAAGsH,KAAK8C,EAAOK,QAASL,EAAOM,WAAa,CAE1E,IAGIsY,GAHAC,EAAMC,IAENC,EAAMC,GAaV,IAVIpjB,EAAGsgB,IAAIlW,EAAOsD,OAAQtD,EAAOoC,kBAC7BwW,EAAUG,EAAI/Y,EAAOsD,QACrB6K,EAAGjK,QAAQ+U,GAAgB,KAI3BL,EAAUG,IAAMrC,IAAIwC,EAAa3Z,MAAM,EAAGkX,QAASyC,MACnD/K,EAAGjK,QAAQ+U,GAAgB,IAG3B9K,EAAI,CACJ,GAAIgL,GAAShL,EAAGpK,UAAU,KAAOqV,GAC5B9V,KAAKsV,EAEVS,GAAeF,EAAQN,EAAKD,GAE5BU,EAAeV,EAASC,GAExBU,EAAeJ,GAEfK,KAIR,QAASH,GAAeF,EAAQN,EAAKD,GACjC,GAAIa,GAAcC,EAAiBP,EAEnCQ,GAAgBF,EAAaZ,GAE7Be,EAAaH,GAEbI,EAAajB,EAASC,GAG1B,QAASa,GAAiBP,GACtB,GAAIM,GAAcN,EACbrN,QACA9N,OAAO,KACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAO6hB,GAAiB,KAAO7hB,GAEvC,OAAOkiB,GAGX,QAASE,GAAgBF,EAAaZ,GAClC,GAAIiB,GAAYL,EAAYzb,OAAO,QAC9BoC,KAAK,OAAQ2Z,GACbxS,GAAG,QAASZ,GACZvG,KAAK,IAAK,SAAU3G,EAAGlC,GACpB,MAAOyiB,GAAQvgB,EAAGlC,EAAGshB,IAG7B/iB,GAAG4C,WAAWohB,EAAW9Z,EAAO6E,qBAAsB,SAAU9L,GAC5DA,EAAEkhB,UAAU,IAAKC,KAIzB,QAASN,GAAaH,GACdzZ,EAAOsH,eACPmS,EAAYzb,OAAO,SAAS2G,KAAK,SAAUlL,GACvC,MAAOuG,GAAOqH,QAAQ5N,EAAE6J,QAKpC,QAAS6W,GAAeC,EAAavB,GACjC/iB,EAAG4C,WAAW0hB,EAAapa,EAAO6E,sBAC7BzE,KAAK,YAAa,SAAU3G,GACzB,MAAOuY,GAAcvY,EAAGof,KAE3BzY,KAAK,cAAe,UACpBuE,KAAK,SAAUlL,GACZ,GAAI6J,GAAO7J,EAAE6J,IACb,QAAK+W,EAAe/W,KAASgX,EAAc7gB,IAAQ8gB,EAAgB9gB,GAG5DuG,EAAOmH,QAAQ1N,EAAE6J,MAFb,KAMvB,QAASuW,GAAajB,EAASC,GAC3B,GAAI7Y,EAAOoH,cAAe,CACtB,GAAI+Q,GAAShK,EAAGpK,UAAU,QAAUqV,GAC/B9V,KAAKsV,EAEVT,GAAOnM,OAAOzH,QAEd,IAAI6V,GAAcjC,EACbrM,QACA9N,OAAO,QACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,GAAIijB,GAAUpB,EAAiB,KAAO7hB,CAItC,OAHIkjB,KACAD,GAAW,aAERA,IAEVjT,GAAG,QAASZ,EACjBwT,GAAeC,EAAavB,IAIpC,QAASS,GAAeV,EAASC,GAC7B6B,EAAiB9B,EAASC,GAC1B8B,EAAa/B,EAASC,GACtB+B,EAAahC,GAGjB,QAAS8B,GAAiB9B,EAASC,GAC/B,GAAIgC,GAAa1M,EAAGpK,UAAU,KAAOqV,GAChC9V,KAAKsV,GACL9a,OAAO,QACPsC,KAAK,IAAK,SAAU3G,EAAGlC,GACpB,MAAOyiB,GAAQvgB,EAAGlC,EAAGshB,IAE7B/iB,GAAG4C,WAAWmiB,EAAY7a,EAAO6E,qBAC7B,SAAU9L,GACNA,EAAEkhB,UAAU,IAAKC,KAClB9Z,KAAK,OAAQ2Z,GAGxB,QAASY,GAAa/B,EAASC,GAC3B,GAAI7Y,EAAOoH,cAAe,CACtB,GAAI+Q,GAAShK,EAAGpK,UAAU,QAAUqV,GAC/B9V,KAAKsV,EACVuB,GAAehC,EAAQU,IAI/B,QAAS+B,GAAahC,GACd5Y,EAAOsH,eACP6G,EAAGpK,UAAU,KAAOqV,GACf9V,KAAKsV,GACL9a,OAAO,SACP6G,KAAK,SAAUlL,GACZ,MAAOuG,GAAOqH,QAAQ5N,EAAE6J,QAKxC,QAASiW,GAAeJ,GACpBA,EAAOnN,OAAOzH,SAGlB,QAASiV,KAEDxZ,EAAO+D,UAAU,KAAOqV,GAAgBhU,KADxCpF,EAAOgG,YACsC,SAAUvM,GAC/C8gB,EAAgB9gB,GAChBuG,EAAOwG,kBAAkBvL,MAEzB+E,EAAOyG,eAAexL,OAIe,WACzC+E,EAAO0G,eAAezL,QA2DlC,QAAS6d,KACL,MAAOljB,GAAGyO,IAAIwU,MAAMiC,YAAYnC,GAASoC,YAAYC,GAGzD,QAAST,GAAgB9gB,GACrB,MAAOuG,GAAOgG,UAAUhG,EAAO2W,kBAAkBld,EAAE6J,OAqBvD,QAAS0V,KACL,MAAOpjB,GAAG+e,OAAOoE,MAAMkC,KAAK,MAAM1b,MAAMS,EAAO4W,qBAGnD,QAAS0D,GAAc7gB,GACnB,GAAIyhB,GAASzhB,EAAE0hB,SAAW1hB,EAAE2hB,UAC5B,OAAOvD,OAAMqD,IAAkBG,EAARH,EAG3B,QAASb,GAAe5gB,GACpB,MAAyC,KAAlCuG,EAAO4W,oBAAoBnd,GAGtC,QAASygB,GAASoB,GACdA,EAAEP,YAAcC,CAChB,IAAInc,GAAU5D,KAAKsgB,QACfC,GAAY3c,KACZA,GAAWuc,WAAY,EAAGD,SAAU,GAExC,IAAI5jB,GAAI3B,EAAGqT,YAAYpK,EAASyc,EAEhC,OADArgB,MAAKsgB,SAAWhkB,EAAE,GACX,SAAUkkB,GACb,MAAOzB,GAAQziB,EAAEkkB,GAAI,EAAG3C,MAIhC,QAAS0C,GAAY3c,GACjB,OAAQA,GAAWgZ,MAAMhZ,EAAQuc,aAAevD,MAAMhZ,EAAQsc,UAGlE,QAASpB,GAAKtgB,EAAGlC,GACb,MAAOyI,GAAOwJ,SAAS/P,EAAE6J,KAAM/L,GAGnC,QAASoP,GAAQlN,EAAGlC,GACZ4W,EAAG/N,KAAK,WAAa6Y,GACrBjZ,EAAO2G,QAAQlN,EAAE6J,KAAM/L,GAI/B,QAASyiB,GAAQvgB,EAAGlC,EAAGshB,GACnB,GAAI6C,GAAO7C,EAAIpf,EAAGlC,EAIlB,OAHImkB,GAAKvkB,QAAQ,QAAU,IACvBukB,EAAO,QAEJA,EAiCX,QAAS1J,GAAcvY,EAAGof,GACtB,GAAI8C,EASJ,OAPIA,GADAlB,EACW7kB,EAAGyO,IAAIwU,MACbiC,YAAYnC,EAAU8B,GACtBM,YAAYpC,EAAU8B,GACtBkB,SAASliB,GAEHof,EAAI8C,SAASliB;AAExBoe,MAAM8D,EAAS,KAAO9D,MAAM8D,EAAS,IAC9B,iBAEA,aAAeA,EAAW,IAyBzC,QAASC,GAA6BC,EAAYC,GAC9C9b,EAAO+D,UAAU,eAAeqB,KAAK,SAAU3L,GACvCoiB,EAAWte,OAAS9D,EAAE6J,KAAKoT,KAC3B9gB,EAAGkI,OAAO7C,MAAMiJ,QAAQ,YAAa4X,KAjajD,GAMInD,GAGAxK,EACA4N,EACAC,EAEAvB,EAbAwB,EAA8B,GAE9B7C,EAAiB,YACjBH,EAAiB,cACjBC,EAAc,QAGd8B,EAAe,EAKfK,EAAoBY,EAEpBjc,EAASlK,EAAG8f,SAAS9f,EAAGwS,WAAWxS,EAAGiK,eAwZ1C,OAtZAC,GAAOmJ,cAAcnJ,EAAO2W,mBAC5B3W,EAAOkH,oBAAoBlH,EAAO2W,mBAElC3W,EAAOqH,MAAM,SAAU5N,GACnB,MAAOuG,GAAO2W,kBAAkBld,GAAK,KAAOuG,EAAO4W,oBAAoBnd,KAU3EuG,EAAOkc,UAAYlc,EAAO6W,IAE1B7W,EAAOmH,MAAMnH,EAAO2W,mBACpB3W,EAAOoH,aAAY,GAEnBpH,EAAO6E,mBAAmB,KAE1B7E,EAAOiF,UAAY,WASf,MARAjF,GAAOsE,WAEP6J,EAAKnO,EAAOqE,MACPrG,OAAO,KACPoC,KAAK,YAAa,aAAeJ,EAAOmc,KAAO,IAAMnc,EAAOoc,KAAO,KAExE1P,IAEO1M,GAkLXA,EAAO+a,YAAc,SAAUxe,GAC3B,MAAK/B,WAAUhD,QAGfwjB,EAAeze,EACRyD,GAHIgb,GAYfhb,EAAOqc,OAAS,SAAU9f,GACtB,MAAK/B,WAAUhD,QAGfmhB,EAAUpc,EACHyD,GAHI2Y,GAWf3Y,EAAOmc,GAAK,SAAUA,GAClB,MAAK3hB,WAAUhD,QAGfukB,EAAMI,EACCnc,GAHK+b,GAAQ/b,EAAOK,QAAU,GAWzCL,EAAOoc,GAAK,SAAUA,GAClB,MAAK5hB,WAAUhD,QAGfwkB,EAAMI,EACCpc,GAHKgc,GAAQhc,EAAOM,SAAW,GAc1CN,EAAOsF,UAAY,WAEf,MADAoH,KACO1M,GAQXA,EAAOsc,iBAAmB,SAAU/hB,GAChC,MAAKC,WAAUhD,QAGf6jB,EAAoB9gB,EACbyF,GAHIqb,GA0Dfrb,EAAOuc,WAAa,SAAUlV,GAC1B,MAAyB,KAArB7M,UAAUhD,OACH0hB,GAEXA,EAAc7R,EACPrH,IASXA,EAAOwc,eAAiB,SAAUH,GAC9B,MAAyB,KAArB7hB,UAAUhD,OACHijB,GAEPA,EADO4B,EACgBA,EAEAvjB,OAGpBkH,IAoBXA,EAAO6G,YAAc,WACjB,MAAO7G,GAAOsD,OAAOuN,IAAI,SAAUpX,EAAGlC,GAClC,GAAIskB,IAAgBte,KAAMyC,EAAOkH,sBAAsBlL,KAAKf,KAAMxB,EAAGlC,GACjD+L,KAAM7J,EAAE8F,MAAOkX,OAAQhd,EAAEgd,OAAQxf,MAAM+I,EAE3D,OADA6b,GAAWlG,MAAQ3V,EAAOwJ,SAAS/P,EAAGlC,GAC/BskB,KAIf7b,EAAO8G,gBAAkB,SAAUrN,GAC/BmiB,EAA6BniB,GAAG,IAGpCuG,EAAO+G,YAAc,SAAUtN,GAC3BmiB,EAA6BniB,GAAG,IAGpCuG,EAAOgH,aAAe,SAAUvN,GAC5BuG,EAAO2G,SAAS+P,IAAKjd,EAAE8D,KAAMkZ,OAAQhd,EAAEgd,UAWpCzW,EAAOgE,OAAOtG,EAAQuG,IAsCjCnO,EAAG2mB,SAAW,SAAU/e,EAAQuG,GA8C5B,QAASyY,GAAUjjB,GACf,MAAO3D,GAAG6D,MAAMsE,WAAW/E,KAAKC,IAAI6G,EAAOF,IAAIrG,EAAEqG,EAAIrG,EAAE4b,IAAMrV,EAAOF,IAAIrG,EAAE4b,MAG9E,QAASsH,GAAWjJ,EAAOkJ,EAAYnjB,GACnC,GAAIojB,GAAOnJ,EAAM3P,UAAU,YACtBT,KAAK7J,EAAEsa,OAAQje,EAAGgG,MAAM,MAEzBgQ,EAAQ+Q,EAAK/Q,QACZ9N,OAAO,QACPoC,KAAK,QAAS,OACdA,KAAK,OAAQtK,EAAGgG,MAAM,OAAQkE,EAAOwJ,WACrCpJ,KAAK,IAAKJ,EAAOyM,eACjBrM,KAAK,SAAU,EAEhBJ,GAAOsH,eACPwE,EAAM9N,OAAO,SAAS2G,KAAK7O,EAAGgG,MAAM,OAAQkE,EAAOqH,MAAM5N,EAAE8D,QAG3DyC,EAAOqK,aACPwS,EAAKtV,GAAG,QAASvH,EAAO2G,SAG5B7Q,EAAG4C,WAAWmkB,EAAM7c,EAAO6E,sBACtBzE,KAAK,IAAK,SAAU3G,GACjB,GAAIoG,GAAIG,EAAOH,IAAIpG,EAAEoG,EAOrB,OANIid,KACAjd,GAAKkd,EAAY,GAEjB/c,EAAOqK,aAAwBvR,SAATkkB,IACtBnd,GAAKmd,EAAO,GAETlnB,EAAG6D,MAAMsE,WAAW4B,KAE9BO,KAAK,IAAK,SAAU3G,GACjB,GAAIqG,GAAIE,EAAOF,IAAIrG,EAAEqG,EAAIrG,EAAE4b,GAM3B,OAJI5b,GAAEqG,EAAI,IACNA,GAAK4c,EAAUjjB,IAGZ3D,EAAG6D,MAAMsE,WAAW6B,KAE9BM,KAAK,QAAS2c,GACd3c,KAAK,SAAU,SAAU3G,GACtB,MAAOijB,GAAUjjB,KAEpB2G,KAAK,OAAQtK,EAAGgG,MAAM,OAAQkE,EAAOwJ,WACrC1L,OAAO,SAAS6G,KAAK7O,EAAGgG,MAAM,OAAQkE,EAAOqH,MAAM5N,EAAE8D,QAE1DzH,EAAG4C,WAAWmkB,EAAK7Q,OAAQhM,EAAO6E,sBAC7BzE,KAAK,SAAU,GACfmE,SAGT,QAAS0Y,KACL,GAAkBnkB,SAAdikB,EAAyB,CACzB,GAAIG,GAAeld,EAAO0Q,YAItBqM,GAAY7jB,KAAKW,MADjBmG,EAAOqK,aAAwBvR,SAATkkB,EACChd,EAAOH,IAAIsd,YAC3BH,GACiBhd,EAAO+K,eAAiBmS,EAAe,GAAKF,GAAQE,EAErDld,EAAO+K,eAAiB,EAAI/K,EAAOod,cAAgBF,IAG1EH,IAAcnd,EAAAA,GAAYiY,MAAMkF,IAA0BM,EAAZN,KAC9CA,EAAYM,IAkIxB,QAASC,GAAY3H,EAAO4H,GACxB,MAAO,YACH,GAAIC,GAAO5nB,EAAGkI,OAAO7C,MACjBwiB,EAAQD,EAAKpd,KAAK,UAAYuV,CAClC,OAAO4H,IAAOE,EAAQA,GAxP9B,GASIV,GATAM,EAAgB,EAChBK,EAA2B,EAE3B1d,EAASlK,EAAG0d,WAAW1d,EAAG4T,yBAE1BsT,EAAOU,EACPZ,GAAa,EACba,GAAqB,CA4QzB,OAxQA7nB,GAAGmE,SAAS+F,EAAQ,UAAW,WAC3BA,EAAO4d,WACPb,EAAYjkB,SAGhBhD,EAAGmE,SAAS+F,EAAQ,SAAU,WACtBA,EAAOjG,SAAW+iB,IAAea,GACjC7nB,EAAGoI,OAAOE,KAAK,mHAInB4B,EAAO6d,YAGX7d,EAAO6M,SAAW,WACd,GAAI2I,GAASxV,EAAOqQ,aAAatM,UAAU,WACtCT,KAAKtD,EAAOsD,OAEjB2Z,KAEAzH,EACK1J,QACA9N,OAAO,KACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAO,UAAiBA,IAGhCie,EAAOpQ,KAAK,SAAU3L,EAAGlC,GACrB,GAAImc,GAAQ9d,EAAGkI,OAAO7C,KAEtB0hB,GAAWjJ,EAAOnc,EAAGkC,MA8E7BuG,EAAO+S,mBAAqB,WACxB,GAAI8J,GAAO7c,EAAOqQ,aAAatM,UAAU,YACrCuO,EAAStS,EAAOsP,QAAQgD,QAE5B,IAAItS,EAAOqK,YACHrK,EAAOgG,aACP6W,EAAK3Y,QAAQpO,EAAGE,UAAUK,eAAgB,SAAUoD,GAChD,MAAOuG,GAAOgG,UAAUvM,EAAEoG,KAE9Bgd,EAAK3Y,QAAQpO,EAAGE,UAAUI,iBAAkB,SAAUqD,GAClD,OAAQuG,EAAOgG,UAAUvM,EAAEoG,OAG/Bgd,EAAK3Y,QAAQpO,EAAGE,UAAUK,gBAAgB,GAC1CwmB,EAAK3Y,QAAQpO,EAAGE,UAAUI,kBAAkB,QAGhD,IAAK4J,EAAO6S,aAAaP,GAQrBuK,EAAK3Y,QAAQpO,EAAGE,UAAUI,kBAAkB,OARd,CAC9B,GAAI0nB,GAAQxL,EAAO,GACfyL,EAAMzL,EAAO,EAEjBuK,GAAK3Y,QAAQpO,EAAGE,UAAUI,iBAAkB,SAAUqD,GAClD,MAAOA,GAAEoG,EAAIie,GAASrkB,EAAEoG,GAAKke,MAa7C/d,EAAOge,UAAY,SAAUzjB,GACzB,MAAKC,WAAUhD,QAGfslB,EAAaviB,EACNyF,GAHI8c,GAMfhnB,EAAGmE,SAAS+F,EAAQ,UAAW,SAAUvG,GACrCuG,EAAOgX,SAASvd,EAAE6J,QAUtBtD,EAAOod,WAAa,SAAU7iB,GAC1B,MAAKC,WAAUhD,QAGfwI,EAAOgL,kBAAkBzQ,GACzByiB,EAAOlkB,OACAkH,GAJIA,EAAOgL,qBAOtBhL,EAAOiL,iBAAmB,WACtB,MAAgBnS,UAATkkB,GAUXhd,EAAOie,aAAeje,EAAOkL,uBAS7BlL,EAAOke,IAAM,SAAU3jB,GACnB,MAAKC,WAAUhD,QAGfwlB,EAAOziB,EACAyF,GAHIgd,GAMfhd,EAAO4S,YAAc,WACjB,GAAIN,GAAStS,EAAOsP,QAAQgD,QAS5B,QARItS,EAAOjG,SAAa+iB,IAAca,IAClCrL,EAAO,GAAKA,EAAOzB,IAAI7Q,EAAOjG,SAAS,GACvCuY,EAAO,GAAKA,EAAOzB,IAAI7Q,EAAOjG,SAAS,GAEvCiG,EAAOqQ,aAAavS,OAAO,UACtB9B,KAAKgE,EAAOsP,QAAQgD,OAAOA,KAG7BA,GAgBXtS,EAAOme,kBAAoB,SAAU5jB,GACjC,MAAKC,WAAUhD,QAGfmmB,EAAqBpjB,EACdyF,GAHI2d,GAcf3d,EAAO8G,gBAAkB,SAAUrN,GAC1BuG,EAAOiH,mBAAmBxN,IAC3BuG,EAAOuD,IAAIQ,UAAU,YAChBG,QAAQ,YAAaoZ,EAAY7jB,EAAEkc,QACnCzR,QAAQ,UAAWoZ,EAAY7jB,EAAEkc,OAAO,KAIrD3V,EAAO+G,YAAc,WACjB/G,EAAOuD,IAAIQ,UAAU,YAChBG,QAAQ,aAAa,GACrBA,QAAQ,WAAW,IAG5BpO,EAAGmE,SAAS+F,EAAQ,WAAY,WAC5B,GAAI7C,GAAMlC,KAAKmjB,WACf,IAAI,cAAgBpe,GAAOuQ,SAAU,CACjC,GAAI8N,GAAMre,EAAOuQ,SAAS7W,UAC1ByD,IAAOkhB,EAEX,MAAOlhB,KAGJ6C,EAAOgE,OAAOtG,EAAQuG,IAuCjCnO,EAAGwoB,UAAY,SAAU5gB,EAAQuG,GAiI7B,QAAS2E,GAAOnP,EAAGlC,GACf,MAAOyI,GAAOwJ,SAASxN,KAAKvC,EAAGA,EAAEsa,OAAQxc,GAG7C,QAASgnB,GAASC,EAAahJ,GAC3B,GAAIiJ,GAAO7oB,EAAGyO,IAAIoa,OACb5e,EAAE,SAAUpG,GACT,MAAOuG,GAAOH,IAAIpG,EAAEoG,KAEvBC,EAAE,SAAUrG,GACT,MAAOuG,GAAOF,IAAIrG,EAAEqG,EAAIrG,EAAE4b,MAE7BpM,YAAYyV,GACZC,QAAQC,EACTC,IACAJ,EAAKK,QAAQD,EAGjB,IAAInD,GAAO8C,EAAYxgB,OAAO,QACzBoC,KAAK,QAAS,QACdA,KAAK,SAAUwI,EAChBmW,IACArD,EAAKtb,KAAK,mBAAoB2e,GAGlCjpB,EAAG4C,WAAW8c,EAAO1X,OAAO,aAAckC,EAAO6E,sBAE5CzE,KAAK,SAAUwI,GACfxI,KAAK,IAAK,SAAU3G,GACjB,MAAOulB,GAAMP,EAAKhlB,EAAEsa,WAIhC,QAASkL,GAAST,EAAahJ,GAC3B,GAAI0J,EAAa,CACb,GAAIC,GAAOvpB,EAAGyO,IAAI8a,OACbtf,EAAE,SAAUpG,GACT,MAAOuG,GAAOH,IAAIpG,EAAEoG,KAEvBC,EAAE,SAAUrG,GACT,MAAOuG,GAAOF,IAAIrG,EAAEqG,EAAIrG,EAAE4b,MAE7BA,GAAG,SAAU5b,GACV,MAAOuG,GAAOF,IAAIrG,EAAE4b,MAEvBpM,YAAYyV,GACZC,QAAQC,EACTC,IACAM,EAAKL,QAAQD,GAGjBL,EAAYxgB,OAAO,QACdoC,KAAK,QAAS,QACdA,KAAK,OAAQwI,GACbxI,KAAK,IAAK,SAAU3G,GACjB,MAAOulB,GAAMG,EAAK1lB,EAAEsa,WAG5Bje,EAAG4C,WAAW8c,EAAO1X,OAAO,aAAckC,EAAO6E,sBAE5CzE,KAAK,OAAQwI,GACbxI,KAAK,IAAK,SAAU3G,GACjB,MAAOulB,GAAMG,EAAK1lB,EAAEsa,YAKpC,QAASiL,GAAOvlB,GACZ,OAASA,GAAKA,EAAEtC,QAAQ,QAAU,EAAK,OAASsC,EAGpD,QAAS2lB,GAASC,EAAW7J,GACzB,IAAKxV,EAAOuT,WAAavT,EAAOsf,WAAY,CACxC,GAAIC,GAAmBC,EAAkB,QACrCC,EAAWJ,EAAUvhB,OAAO,KAAOyhB,EAEnCE,GAAS1hB,UACT0hB,EAAWJ,EAAUrhB,OAAO,KAAKoC,KAAK,QAASmf,IAGnD/J,EAAOpQ,KAAK,SAAU3L,EAAGmjB,GACrB,GAAI8C,GAASjmB,EAAEsa,MACX8K,KACAa,EAASA,EAAO/jB,OAAOkjB,GAG3B,IAAItb,GAAIkc,EAAS3hB,OAAO,KAAO0hB,EAAkB,KAAO5C,EACpDrZ,GAAExF,UACFwF,EAAIkc,EAASzhB,OAAO,KAAKoC,KAAK,QAASof,EAAkB,KAAO5C,IAGpE+C,EAAepc,EAEf,IAAIqc,GAAOrc,EAAEQ,UAAU,UAAY8b,GAC9Bvc,KAAKoc,EAAQ5pB,EAAGgG,MAAM,KAE3B8jB,GAAK9T,QACA9N,OAAO,UACPoC,KAAK,QAASyf,GACdzf,KAAK,IAAK0f,KACVpb,MAAM,eAAgBqb,GACtBrb,MAAM,iBAAkBsb,GACxBzY,GAAG,YAAa,WACb,GAAI0Y,GAAMrqB,EAAGkI,OAAO7C,KACpBilB,GAAQD,GACRE,EAAaF,EAAK1c,KAErBgE,GAAG,WAAY,WACZ,GAAI0Y,GAAMrqB,EAAGkI,OAAO7C,KACpBmlB,GAAQH,GACRI,EAAa9c,KAGrBqc,EACKxf,KAAK,KAAM,SAAU3G,GAClB,MAAO3D,GAAG6D,MAAMsE,WAAW+B,EAAOH,IAAIpG,EAAEoG,MAE3CO,KAAK,KAAM,SAAU3G,GAClB,MAAO3D,GAAG6D,MAAMsE,WAAW+B,EAAOF,IAAIrG,EAAEqG,EAAIrG,EAAE4b,OAEjDjV,KAAK,OAAQJ,EAAOwJ,UACpBxN,KAAKsL,EAAa7N,GAEvBmmB,EAAK5T,OAAOzH,YAKxB,QAASob,GAAepc,GACpB,GAAI+c,GAAW/c,EAAEzF,OAAO,QAAUyiB,GAAuBxiB,QACrDwF,EAAEvF,OAAO,QAAQoC,KAAK,QAASmgB,GAAyBhd,EAAEzF,OAAO,QAAUyiB,EAC/ED,GAAS5b,MAAM,UAAW,QAAQtE,KAAK,mBAAoB,MAE3D,IAAIogB,GAAWjd,EAAEzF,OAAO,QAAU2iB,GAAuB1iB,QACrDwF,EAAEvF,OAAO,QAAQoC,KAAK,QAASqgB,GAAyBld,EAAEzF,OAAO,QAAU2iB,EAC/ED,GAAS9b,MAAM,UAAW,QAAQtE,KAAK,mBAAoB,OAG/D,QAAS8f,GAAQD,GAIb,MAHAA,GAAIvb,MAAM,eAAgB,IAC1Bub,EAAIvb,MAAM,iBAAkB,IAC5Bub,EAAI7f,KAAK,IAAKsgB,GACPT,EAGX,QAASE,GAAaF,EAAK1c,GACvB,GAAI1D,GAAIogB,EAAI7f,KAAK,MACbN,EAAImgB,EAAI7f,KAAK,MACbugB,EAAU3gB,EAAO+R,UAAY/R,EAAOkI,UAAUD,KAC9C2Y,EAAgB,IAAMD,EAAS,IAAM7gB,EAAI,IAAM,EAAM,IAAM,EAC3D+gB,EAAgB,IAAMhhB,EAAI,IAAMG,EAAOyM,cAAgB,IAAM5M,EAAI,IAAMC,CAC3EyD,GAAEzF,OAAO,QAAUyiB,GAAuB7b,MAAM,UAAW,IAAItE,KAAK,IAAKwgB,GACzErd,EAAEzF,OAAO,QAAU2iB,GAAuB/b,MAAM,UAAW,IAAItE,KAAK,IAAKygB,GAG7E,QAASf,KACL,MAAOgB,IAAoBJ,EAG/B,QAASN,GAAQH,GACbA,EAAIvb,MAAM,eAAgBqb,GACrBrb,MAAM,iBAAkBsb,GACxB5f,KAAK,IAAK0f,KAGnB,QAASO,GAAa9c,GAClBA,EAAEzF,OAAO,QAAUyiB,GAAuB7b,MAAM,UAAW,QAC3DnB,EAAEzF,OAAO,QAAU2iB,GAAuB/b,MAAM,UAAW,QAG/D,QAAS4C,GAAY2Y,EAAKxmB,GAClBuG,EAAOsH,gBACP2Y,EAAIlc,UAAU,SAASQ,SACvB0b,EAAIjiB,OAAO,SAAS2G,KAAK7O,EAAGgG,MAAM,OAAQkE,EAAOqH,MAAM5N,EAAE8D,SAoEjE,QAAS+f,GAAY3H,EAAOoL,EAAWxD,GACnC,MAAO,YACH,GAAIC,GAAO5nB,EAAGkI,OAAO7C,MACjBwiB,EAASD,EAAKpd,KAAK,YAAcuV,GACjC6H,EAAKpd,KAAK,uBAA0B2gB,YAAqBnlB,OACrDmlB,EAAUC,KAAK,KAAO,OAAUxD,EAAKpd,KAAK,UAAYuV,CAC9D,OAAO4H,IAAOE,EAAQA,GAvX9B,GAeIoB,GACAE,EAhBAkC,EAAqB,EACrBzB,EAAkB,aAClBK,EAAmB,MACnBU,EAAwB,OACxBE,EAAwB,OACxBS,EAAsB,KAEtBlhB,EAASlK,EAAG0d,WAAW1d,EAAG4T,yBAC1BwV,GAAc,EACdwB,EAAaO,EACbH,EAAmB,KACnBf,EAAwBmB,EACxBlB,EAA0BkB,EAC1BxC,EAAe,SACfE,EAAW,GAGXuC,GAAY,CAmYhB,OAjYAnhB,GAAO6E,mBAAmB,KAC1B7E,EAAOgL,kBAAkB,GAEzBhL,EAAO6M,SAAW,WACd,GAAIwS,GAAYrf,EAAOqQ,aACnB+Q,EAAa/B,EAAUtb,UAAU,eAEjCqd,GAAWrjB,UACXqjB,EAAa/B,EAAUrhB,OAAO,KAAKoC,KAAK,QAAS,cAGrD,IAAIoV,GAAS4L,EAAWrd,UAAU,WAAWT,KAAKtD,EAAOsD,QAErDkb,EAAchJ,EACb1J,QACA9N,OAAO,KACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAO,UAAiBA,GAGhCgnB,GAASC,EAAahJ,GAEtByJ,EAAST,EAAahJ,GAEtB4J,EAASC,EAAW7J,IAWxBxV,EAAOiJ,YAAc,SAAU1O,GAC3B,MAAKC,WAAUhD,QAGfknB,EAAenkB,EACRyF,GAHI0e,GAcf1e,EAAO2e,QAAU,SAAUpkB,GACvB,MAAKC,WAAUhD,QAGfonB,EAAWrkB,EACJyF,GAHI4e,GAiBf5e,EAAO8e,QAAU,SAAUvkB,GACvB,MAAKC,WAAUhD,QAGfqnB,EAAWtkB,EACJyF,GAHI6e,GAef7e,EAAOqhB,UAAY,SAAU9mB,GACzB,MAAKC,WAAUhD,QAGfunB,EAAaxkB,EACNyF,GAHI+e,GAYf/e,EAAOshB,WAAa,SAAU/mB,GAC1B,MAAKC,WAAUhD,QAGf0nB,EAAc3kB,EACPyF,GAHIkf,GA6Lflf,EAAOsf,SAAW,SAAU/kB,GACxB,MAAKC,WAAUhD,QAGf2pB,EAAY5mB,EACLyF,GAHImhB,GAUfnhB,EAAOuhB,UAAY,SAAUhnB,GACzB,MAAKC,WAAUhD,QAGfkpB,EAAanmB,EACNyF,GAHI0gB,GAyBf1gB,EAAOwhB,iBAAmB,SAAU/Z,GAChC,MAAKjN,WAAUhD,QAMHiQ,GAKRsY,EAAwBtY,EAAQga,aAAe,GAC/CzB,EAA0BvY,EAAQia,eAAiB,GACnDZ,EAAmBrZ,EAAQ4U,QAAU,IANrC0D,EAAwBmB,EACxBlB,EAA0BkB,EAC1BJ,EAAmB,MAMhB9gB,IAbCyhB,YAAa1B,EACb2B,cAAe1B,EACf3D,OAAQyE,IAwBpB9gB,EAAO8G,gBAAkB,SAAUrN,GAC1BuG,EAAOiH,mBAAmBxN,IAC3BuG,EAAOuD,IAAIQ,UAAU,wBAChBG,QAAQ,YAAaoZ,EAAY7jB,EAAEkc,MAAOlc,EAAEsnB,YAC5C7c,QAAQ,UAAWoZ,EAAY7jB,EAAEkc,MAAOlc,EAAEsnB,WAAW,KAIlE/gB,EAAO+G,YAAc,WACjB/G,EAAOuD,IAAIQ,UAAU,wBAChBG,QAAQ,aAAa,GACrBA,QAAQ,WAAW,IAG5BpO,EAAGmE,SAAS+F,EAAQ,cAAe,WAC/B,GAAI6G,GAAc7G,EAAO2hB,cACzB,OAAK5C,GAGElY,EAAYgK,IAAI,SAAUvU,GAE7B,MADAA,GAAEykB,UAAYhC,EACPziB,IAJAuK,IAQR7G,EAAOgE,OAAOtG,EAAQuG,IA6CjCnO,EAAG8rB,UAAY,SAAUlkB,EAAQuG,GAC7B,GAAI4d,GAAgBjsB,EAAG4F,OAAO,MAC1BwE,EAASlK,EAAGiK,cACZ+hB,GAAShc,KAAK,GAAIhD,IAAI,GAmE1B,OAlDA9C,GAAO+hB,KAAO,SAAUhpB,GACpB,MAAKyB,WAAUhD,QAGXuB,EAAE+J,MACFgf,EAAMhf,IAAM/J,EAAE+J,KAEd/J,EAAE+M,OACFgc,EAAMhc,KAAO/M,EAAE+M,MAEZ9F,GARI8hB,GAmBf9hB,EAAOgiB,aAAe,SAAUjpB,GAC5B,MAAKyB,WAAUhD,QAGfqqB,EAAgB9oB,EACTiH,GAHI6hB,GAMf7hB,EAAOiF,UAAY,WACf,GAAIgd,GAAMjiB,EAAOU,YAAY0S,OACzBnW,EAAM+C,EAAOlJ,QAAQyI,QACrBuD,EAAM+e,EAAcI,GACpBC,EAAWL,EAAc5kB,EAU7B,OARKglB,KAAQhlB,GAAuB,KAAd6kB,EAAMhf,IACxB9C,EAAOG,OAAO4hB,KAAKD,EAAMhf,IAAItG,QAAQ,eAAgBsG,GAAKtG,QAAQ,gBAAiB0lB,IAC7D,KAAfJ,EAAMhc,KACb9F,EAAOG,OAAO4hB,KAAKD,EAAMhc,KAAKtJ,QAAQ,eAAgBsG,GAAKtG,QAAQ,gBAAiB0lB,KAEpFliB,EAAO+D,UAAU,gBAAgBY,KAAK7B,GACtC9C,EAAO+D,UAAU,iBAAiBY,KAAKud,IAEpCliB,GAGXA,EAAOsF,UAAY,WACf,MAAOtF,GAAOiF,aAGXjF,EAAOgE,OAAOtG,EAAQuG,IA2BjCnO,EAAGqsB,UAAY,SAAUzkB,EAAQuG,GAkE7B,QAASme,KAQL,GAAIC,IAAgB,CAKpB,IAJAC,EAASvd,QAAQ,SAAUhJ,GACvBsmB,GAA8C,kBAANtmB,MAGvCsmB,EAAe,CAChBriB,EAAO+D,UAAU,MAAMQ,QACvB,IAAIge,GAAWviB,EAAOG,OAAO4D,UAAU,MAClCT,KAAKgf,GAENE,EAAYD,EACXzW,QACA9N,OAAO,KAEZwkB,GACKpiB,KAAK,QAASqiB,GACVV,KAAK,SAAUtoB,GACZ,MAAQuG,GAAO0iB,sBAAsBjpB,KAKrD,GAAImX,GAAS5Q,EAAOG,OAAO4D,UAAU,SAChCT,KAAKqf,IAAe,SAAUlpB,GAC3B,MAAOuG,GAAOmC,cAAc1I,KAGhCmpB,EAAWhS,EACV9E,QACA9N,OAAO,QAcZ,OAZA4kB,GACK5kB,OAAO,MACPoC,KAAK,QAASyiB,GACV7kB,OAAO,MACPoC,KAAK,QAAS0iB,GACd1iB,KAAK,UAAWkiB,EAAS9qB,QACzBuqB,KAAK,SAAUtoB,GACZ,MAAOuG,GAAOmC,cAAc1I,KAGxCmX,EAAO5E,OAAOzH,SAEPqe,EAGX,QAASD,KACL,GAAII,EAOJ,OALIA,GADAC,IAAWptB,EAAGqtB,UACJjjB,EAAOU,YAAYsH,OAAOkb,GAE1BljB,EAAOU,YAAYoH,IAAIob,GAG9BttB,EAAGutB,OACLzM,IAAI1W,EAAOlJ,SACXssB,SAASJ,GACTD,QAAQA,EAAQ9H,KAAK,SAAUza,EAAG8a,GAC/B,MAAO0H,GAAOK,EAAQ7iB,GAAI6iB,EAAQ/H,OAI9C,QAASgI,GAAW1S,GAChB,GAAI2S,GAAO3S,EAAO4S,QACbzf,UAAU,MAAQ0f,GAClBngB,KAAK,SAAU7J,GACZ,MAAOA,GAAEsa,SAGb2P,EAAWH,EAAKzX,QACf9N,OAAO,MACPoC,KAAK,QAASqjB,EAYnB,OAVAnB,GAASvd,QAAQ,SAAU4e,EAAGpsB,GAC1BmsB,EAAS1lB,OAAO,MACXoC,KAAK,QAASwjB,EAAmB,KAAOrsB,GACxCwqB,KAAK,SAAUtoB,GACZ,MAAOuG,GAAO6jB,qBAAqBF,EAAGlqB,OAIlD8pB,EAAKvX,OAAOzH,SAELgf,EA5JX,GAAIT,GAAkB,iBAClBW,EAAgB,eAChBG,EAAmB,kBACnBf,EAAkB,iBAClBJ,EAAiB,gBAEjBziB,EAASlK,EAAGiK,cAEZmjB,EAAQ,GACRZ,KACAe,EAAU,SAAU5pB,GACpB,MAAOA,IAEPupB,EAASptB,EAAGqtB,SAqShB,OAnSAjjB,GAAOiF,UAAY,WAKf,MAJAjF,GAAO+D,UAAU,SAASQ,SAE1B+e,EAAWlB,KAEJpiB,GAGXA,EAAO6jB,qBAAuB,SAAUF,EAAGlqB,GACvC,MAAsB,kBAANkqB,GACRA,EAAElqB,GACa,gBAANkqB,GACRlqB,EAAEkqB,GACFA,EAAEnoB,OAAO/B,IAKtBuG,EAAO0iB,sBAAwB,SAAUjpB,GAIrC,MAAqB,kBAANA,GACPuG,EAAO8jB,0BAA0BrqB,GAClB,gBAANA,GACRuG,EAAO+jB,0BAA0BtqB,GAAKqa,OAAOra,EAAE0N,QAG5DnH,EAAO+jB,0BAA4B,SAAUhrB,GAEzC,MAAOA,GAAEirB,OAAO,GAAGC,cAAgBlrB,EAAE+K,MAAM,IAG/C9D,EAAO8jB,0BAA4B,SAAU/nB,GAEzC,GAAIhD,GAAI+a,OAAO/X,GACXmoB,EAAKnrB,EAAE5B,QAAQ,UACnB,IAAI+sB,GAAM,EAAG,CACT,GAAIC,GAAKprB,EAAEqrB,YAAY,IACvB,IAAID,GAAM,EAAG,CACTprB,EAAIA,EAAEsrB,UAAUH,EAAK,EAAGC,EACxB,IAAIG,GAAKvrB,EAAE5B,QAAQ,eACfmtB,IAAM,IACNvrB,EAAIA,EAAEyD,QAAQ,eAAgB,MAI1C,MAAOzD,IAiGXiH,EAAOsF,UAAY,WACf,MAAOtF,GAAOiF,aAQlBjF,EAAOoT,KAAO,SAAUra,GACpB,MAAKyB,WAAUhD,QAGf0rB,EAAQnqB,EACDiH,GAHIkjB,GA2FfljB,EAAOukB,QAAU,SAAUhqB,GACvB,MAAKC,WAAUhD,QAGf8qB,EAAW/nB,EACJyF,GAHIsiB,GAkBftiB,EAAOwkB,OAAS,SAAUjqB,GACtB,MAAKC,WAAUhD,QAGf6rB,EAAU9oB,EACHyF,GAHIqjB,GAefrjB,EAAOwjB,MAAQ,SAAUjpB,GACrB,MAAKC,WAAUhD,QAGfwrB,EAASzoB,EACFyF,GAHIgjB,GAMRhjB,EAAOgE,OAAOtG,EAAQuG,IA6BjCnO,EAAG2uB,SAAW,SAAU/mB,EAAQuG,GA4B5B,QAASme,KACL,GAAIxR,GAAS5Q,EAAOG,OAAO4D,UAAU,OAAS2gB,GACrCphB,KAAKqf,IAAe,SAAUlpB,GAC3B,MAAOuG,GAAOmC,cAAc1I,KAGpCkrB,EAAY/T,EACP9E,QACA9N,OAAO,OACPoC,KAAK,QAASskB,EAUvB,OARIE,IACAD,EACK5C,KAAK,SAAUtoB,GACZ,MAAOmrB,GAAWnrB,KAI9BmX,EAAO5E,OAAOzH,SACPogB,EAGX,QAAShC,KACL,GAAII,GAAU/iB,EAAOU,YAAYoH,IAAIob,EAErC,OAAOttB,GAAGutB,OACLzM,IAAI1W,EAAOlJ,SACXssB,SAASJ,GACTD,QAAQA,EAAQ9H,KAAK,SAAUza,EAAG8a,GAC/B,MAAO0H,GAAOK,EAAQ7iB,GAAI6iB,EAAQ/H,OAI9C,QAASuJ,GAAYjU,GACjB,GAAIkU,GAAQlU,EAAO4S,QACVzf,UAAU,OAASghB,GACnBzhB,KAAK,SAAU7J,GACZ,MAAOA,GAAEsa,QAYrB,OATA+Q,GAAMhZ,QACD9N,OAAO,OACPoC,KAAK,QAAS2kB,GACdhD,KAAK,SAAUtoB,GACZ,MAAOqoB,GAAMroB,KAGrBqrB,EAAM9Y,OAAOzH,SAENugB,EA5EX,GAAIhC,GAAkB,gBAClBiC,EAAiB,eACjBlC,EAAkB,gBAClB6B,EAAiB,cAEjB1kB,EAASlK,EAAGiK,cAEZmjB,EAAQ,IACRpB,EAAQ,SAAUroB,GAAK,MAAO,kDAAoDurB,KAAKC,UAAUxrB,IACjG4pB,EAAU,SAAU5pB,GACpB,MAAOA,IAEPupB,EAASptB,EAAGqtB,UAEZ2B,EAAa,SAAUnrB,GACvB,MAAO,eAAkBopB,EAAkB,gBAAoBC,EAAkB,KAC7E9iB,EAAOmC,cAAc1I,GAAK,cAwJlC,OArJAuG,GAAOiF,UAAY,WAKf,MAJAjF,GAAO+D,UAAU,OAAS2gB,GAAgBngB,SAE1CsgB,EAAYzC,KAELpiB,GAuDXA,EAAOsF,UAAY,WACf,MAAOtF,GAAOiF,aAQlBjF,EAAOoT,KAAO,SAAUra,GACpB,MAAKyB,WAAUhD,QAGf0rB,EAAQnqB,EACDiH,GAHIkjB,GAgBfljB,EAAO+hB,KAAO,SAAUxnB,GACpB,MAAKC,WAAUhD,QAGfsqB,EAAQvnB,EACDyF,GAHI8hB,GAcf9hB,EAAOklB,UAAY,SAAU3qB,GACzB,MAAKC,WAAUhD,QAGfotB,EAAarqB,EACNyF,GAHI4kB,GAmBf5kB,EAAOwkB,OAAS,SAAUjqB,GACtB,MAAKC,WAAUhD,QAGf6rB,EAAU9oB,EACHyF,GAHIqjB,GAefrjB,EAAOwjB,MAAQ,SAAUjpB,GACrB,MAAKC,WAAUhD,QAGfwrB,EAASzoB,EACFyF,GAHIgjB,GAMRhjB,EAAOgE,OAAOtG,EAAQuG,IAuCjCnO,EAAGqvB,YAAc,SAAUznB,EAAQuG,GA4C/B,QAASmhB,GAAYC,GACjB,GAAIpN,GAAeoN,EAAQvZ,QAAQ9N,OAAO,IAE1Cia,GACK7X,KAAK,QAASJ,EAAOoX,mBACrBhX,KAAK,YAAaklB,GAClBtnB,OAAO,UAAUoC,KAAK,QAAS,SAAU3G,EAAGlC,GACzC,MAAOyI,GAAOqX,aAAe,KAAO9f,IAEvCgQ,GAAG,QAASvH,EAAO2G,SACnBvG,KAAK,OAAQJ,EAAOwJ,UACpBpJ,KAAK,IAAK,GACftK,EAAG4C,WAAW2sB,EAASrlB,EAAO6E,sBACzBd,UAAU,UAAY/D,EAAOqX,cAC7BjX,KAAK,IAAK,SAAU3G,GACjB,MAAOuG,GAAO4X,QAAQne,KAEzB2G,KAAK,UAAW,SAAU3G,GACvB,MAAQuG,GAAO4X,QAAQne,GAAK,EAAK,EAAI,IAG7CuG,EAAOgY,eAAeC,GAEtBjY,EAAOqY,gBAAgBJ,GAG3B,QAASsN,GAAYF,GACjBvvB,EAAG4C,WAAW2sB,EAASrlB,EAAO6E,sBACzBzE,KAAK,YAAaklB,GAClBvhB,UAAU,UAAY/D,EAAOqX,cAC7BjX,KAAK,OAAQJ,EAAOwJ,UACpBpJ,KAAK,IAAK,SAAU3G,GACjB,MAAOuG,GAAO4X,QAAQne,KAEzB2G,KAAK,UAAW,SAAU3G,GACvB,MAAQuG,GAAO4X,QAAQne,GAAK,EAAK,EAAI,IAG7CuG,EAAOkY,eAAemN,GACtBrlB,EAAOsY,eAAe+M,GAG1B,QAASG,GAAYH,GACjBA,EAAQrZ,OAAOzH,SAGnB,QAASkhB,GAAQhsB,GACb,GAAIoG,GAAIG,EAAOH,IAAIG,EAAOmC,cAAc1I,GAIxC,OAHIoe,OAAMhY,KACNA,EAAI,GAEDA,EAGX,QAAS6lB,GAAQjsB,GACb,GAAIqG,GAAIE,EAAOF,IAAIE,EAAOoC,gBAAgB3I,GAI1C,OAHIoe,OAAM/X,KACNA,EAAI,GAEDA,EAtGX,GAAIE,GAASlK,EAAGmhB,YAAYnhB,EAAG4T,yBAE3Bic,GAAiB,CAErB3lB,GAAO6E,mBAAmB,IAE1B,IAAIygB,GAAgB,SAAU7rB,GAC1B,MAAO,aAAgBgsB,EAAQhsB,GAAM,IAAOisB,EAAQjsB,GAAM,IA2G9D,OAlGAuG,GAAO4lB,cAAgB,SAAUrrB,GAC7B,MAAKC,WAAUhD,QAGfmuB,EAAiBprB,EACVyF,GAHI2lB,GAMf3lB,EAAO6M,SAAW,WACV8Y,GACA3lB,EAAOzD,IAAIlD,QAAQ2G,EAAO0X,OAAQ1X,EAAO2X,SAG7C3X,EAAOzD,IAAI8C,OAAOW,EAAOsX,WAAYtX,EAAO+K,cAAgB/K,EAAOwY,yBAEnE,IAAI6M,GAAUrlB,EAAOqQ,aAAatM,UAAU,KAAO/D,EAAOoX,mBACrD9T,KAAKtD,EAAOsD,OAAQ,SAAU7J,GAAK,MAAOA,GAAEid,KAEjD0O,GAAYC,GAEZE,EAAYF,GAEZG,EAAYH,GAEZrlB,EAAO+S,sBAiEX/S,EAAOiN,YAAc,aAIrBjN,EAAOkN,YAAc,WAEjBlN,EAAO+S,sBAGJ/S,EAAOgE,OAAOtG,EAAQuG,IA+BjCnO,EAAG+vB,eAAiB,SAAUnoB,EAAQuG,GAoFlC,QAAS6hB,MACmBhtB,SAApBkH,EAAO+lB,UAA0B/lB,EAAO+M,cACxC/M,EAAO+lB,OAAOnwB,EAAG4S,MAAMQ,UACvBhJ,EAAO+lB,SAAS1sB,QAAQ2sB,IAAiBC,MAAkB9U,YAAYnR,EAAOyM,cAAe,KAGjGzM,EAAO+lB,SAAS1mB,OAAOW,EAAOyM,cAAe,IAC7CzM,EAAOkmB,WAAWlmB,EAAOkmB,aAAa1d,MAAMxI,EAAO+lB,WAEnD/lB,EAAOkmB,aAAatX,OAAO,SAG/B,QAASuX,MACcrtB,SAAfkH,EAAOF,KAAqBE,EAAO+M,cACnC/M,EAAOF,EAAElK,EAAG4S,MAAMQ,UAClBhJ,EAAOF,IAAIzG,QAAQ4X,IAAYC,MAAaC,YAAYnR,EAAOyM,cAAe,KAGlFzM,EAAOF,IAAIT,OAAOW,EAAOyM,cAAe,IACxCzM,EAAOkS,MAAMlS,EAAOkS,QAAQ1J,MAAMxI,EAAOF,MAEzCE,EAAOkS,QAAQtD,OAAO,QAG1B,QAASwX,GAAeC,EAAO9uB,GAC3B8uB,EAAMnW,WAAWlQ,EAAOuD,KACxB8iB,EAAM9iB,IAAInD,KAAK,QAASkmB,EAAkB,KAAO/uB,GAqLrD,QAASgvB,KACL,MAAOC,GAAU7qB,OAAO,SAAU0qB,GAC9B,OAAQA,EAAM1V,kBAItB,QAAS8V,KACL,MAAOD,GAAU7qB,OAAO,SAAU0qB,GAC9B,MAAOA,GAAM1V,kBAIrB,QAAS+V,GAAYxuB,GACjB,MAAOA,GAAO2Y,IAAI,SAAUyC,GACxB,MAAOA,GAAErC,aAKjB,QAASA,KACL,MAAOrb,GAAGsH,IAAIwpB,EAAYH,MAG9B,QAASP,KACL,MAAOpwB,GAAGsH,IAAIwpB,EAAYD,MAG9B,QAASE,GAAYzuB,GACjB,MAAOA,GAAO2Y,IAAI,SAAUyC,GACxB,MAAOA,GAAEpC,aAKjB,QAASA,KACL,MAAOpb,GAAG6D,MAAM0C,IAAIzG,EAAGuH,IAAIwpB,EAAYJ,MAAuBvmB,EAAOoS,gBAGzE,QAAS6T,KACL,MAAOnwB,GAAG6D,MAAM0C,IAAIzG,EAAGuH,IAAIwpB,EAAYF,MAAwBzmB,EAAOoS,gBAG1E,QAASwU,KACL,MAAOJ,GAAU3V,IAAI,SAAUyC,GAC3B,MAAOA,GAAE7I,aAQjB,QAASoc,KACL,MAAOL,GAAU3V,IAAI,SAAUyC,GAC3B,MAAOA,GAAE5I,aAvVjB,GAcIoc,GAdAR,EAAkB,MAClBS,EAAqC,GAErC/mB,EAASlK,EAAG4T,wBACZ8c,KAEAQ,KAEAC,GAAe,EACfC,GAAc,EAEdC,EAAcvxB,EAAGyO,IAAIsK,OACrByY,EAAmB,EACnBC,EAA0BN,EAE1BO,GAAsB,CAmY1B,OAjYAtnB,GAAOwC,yBACPxC,EAAO6E,mBAAmB,KAE1B/O,EAAGmE,SAAS+F,EAAQ,aAAc,WAG9B,IAAK,GAFDuD,GAAItI,KAAKssB,cAEJhwB,EAAI,EAAGA,EAAIivB,EAAUhvB,SAAUD,EAAG,CACvC,GAAI8uB,GAAQG,EAAUjvB,EAEtB6uB,GAAeC,EAAO9uB,GAEjB8uB,EAAM3lB,aACP2lB,EAAM3lB,UAAUV,EAAOU,aAEtB2lB,EAAMvvB,SACPuvB,EAAMvvB,MAAMkJ,EAAOlJ,SAGvBuvB,EAAMpiB,WAAWjE,EAAOiE,cACxBoiB,EAAMhiB,IAAIrE,EAAOqE,OACjBgiB,EAAM9V,OAAOvQ,EAAOuQ,UACpB8V,EAAMxhB,mBAAmB7E,EAAO6E,sBAChCwhB,EAAM9S,QAAQvT,EAAOuT,WACrB8S,EAAM/e,YAAYtH,EAAOsH,eAG7B,MAAO/D,KAGXvD,EAAOuS,UAAY,WAIf,IAAK,GAHDD,GAAStS,EAAO4S,cAChBC,EAAe7S,EAAO6S,aAAaP,GAE9B/a,EAAI,EAAGA,EAAIivB,EAAUhvB,SAAUD,EACpCivB,EAAUjvB,GAAGoE,OAAO,MACfkX,GACD2T,EAAUjvB,GAAGoE,OAAO2W,IAKhCtS,EAAO4M,cAAgB,WACgB,IAA/B2Z,IAAoB/uB,QAAgB2uB,IACJ,IAAhCM,IAAqBjvB,QAAgBsuB,IAErCS,IAAoB/uB,OAAS,IAAM8vB,EACnCtnB,EAAOoR,kCAAkCpR,EAAOuD,IAAKvD,EAAOF,IAAKE,EAAOkS,SAEnEuU,IAAqBjvB,OAAS,GACnCwI,EAAOoR,kCAAkCpR,EAAOuD,IAAKujB,EAASK,IAItEnnB,EAAOgN,YAAc,WACkB,IAA/BuZ,IAAoB/uB,SACpBwI,EAAO2R,cAAc,IAAK3R,EAAOkS,QAASlS,EAAOkI,UAAUD,MAC3DjI,EAAOqR,iBAAiB,IAAKrR,EAAOiS,aAAc,MAGlB,IAAhCwU,IAAqBjvB,SACrBwI,EAAO2R,cAAc,KAAM3R,EAAOkmB,aAAclmB,EAAOK,QAAUL,EAAOkI,UAAUH,OAClF/H,EAAOqR,iBAAiB,KAAMrR,EAAOwnB,kBAAmB,GAAIxnB,EAAOK,QAAUgnB,KAiCrFrnB,EAAO6M,SAAW,WACd,IAAK,GAAItV,GAAI,EAAGA,EAAIivB,EAAUhvB,SAAUD,EAAG,CACvC,GAAI8uB,GAAQG,EAAUjvB,EAEjB8uB,GAAM9iB,KACP6iB,EAAeC,EAAO9uB,GAGtB0vB,GACAZ,EAAMzd,OAAO5I,EAAO4I,UAGxByd,EAAMxmB,EAAEG,EAAOH,KAEfwmB,EAAM7V,MAAMxQ,EAAOwQ,SAEf6V,EAAM1V,iBACN0V,EAAMvmB,EAAEE,EAAO+lB,UACfM,EAAMnU,MAAMlS,EAAOkmB,gBAGnBG,EAAMvmB,EAAEE,EAAOF,KACfumB,EAAMnU,MAAMlS,EAAOkS,UAGvBmU,EAAMxZ,WAENwZ,EAAMnhB,wBAUdlF,EAAOynB,sBAAwB,SAAUltB,GACrC,MAAKC,YAIL8sB,EAAsB/sB,EACfyF,GAJIsnB,GAYftnB,EAAO0nB,aAAe,SAAUntB,GAC5B,MAAKC,WAAUhD,QAGfwvB,EAAgBzsB,EAChBisB,EAAUzhB,QAAQ,SAAUshB,GACxBA,EAAM5e,QAAQuf,KAEXhnB,GANIgnB,GASfhnB,EAAO+S,mBAAqB,WACxB,IAAK,GAAIxb,GAAI,EAAGA,EAAIivB,EAAUhvB,SAAUD,EAAG,CACvC,GAAI8uB,GAAQG,EAAUjvB,EACtB8uB,GAAM/W,MAAMtP,EAAOsP,SACnB+W,EAAMtT,uBAQd/S,EAAOwnB,gBAAkB,SAAUjtB,EAAGgS,GAClC,MAAK/R,WAAUhD,QAGf4vB,EAAmB7sB,EACnByF,EAAOkI,UAAUH,OAASsf,EAC1BA,EAAuCvuB,SAAZyT,EAAyBwa,EAAqCxa,EACzFvM,EAAOkI,UAAUH,OAASsf,EACnBrnB,GANIonB,GAmCfpnB,EAAO2nB,QAAU,SAAUzvB,GAavB,MAZAsuB,GAAYtuB,EACZsuB,EAAUzhB,QAAQ,SAAUshB,GACxBA,EAAM/lB,OAAON,EAAOM,UACpB+lB,EAAMhmB,MAAML,EAAOK,SACnBgmB,EAAMne,QAAQlI,EAAOkI,WAEjBgf,GACAb,EAAMhf,MAAMrH,EAAOqH,SAGvBgf,EAAM5e,QAAQuf,KAEXhnB,GAQXA,EAAO4nB,SAAW,WACd,MAAOpB,IAUXxmB,EAAO6nB,YAAc,SAAUttB,GAC3B,MAAKC,WAAUhD,QAGfyvB,EAAe1sB,EACRyF,GAHIinB,GAWfjnB,EAAO8nB,WAAa,SAAUvtB,GAC1B,MAAKC,WAAUhD,QAGf0vB,EAAc3sB,EACPyF,GAHIknB,GAYflnB,EAAO+lB,OAAS,SAAUxrB,GACtB,MAAKC,WAAUhD,QAGfsvB,EAAUvsB,EACHyF,GAHI8mB,SAwBR9mB,GAAOiR,eAePjR,GAAOkR,SAedpb,EAAGmE,SAAS+F,EAAQ,WAAY,WAC5B,MAAOlK,GAAG6D,MAAMmD,SAASlH,EAAGsH,IAAI0pB,KAAkC5mB,EAAOyQ,kBAS7E3a,EAAGmE,SAAS+F,EAAQ,WAAY,WAC5B,MAAOlK,GAAG6D,MAAM0C,IAAIzG,EAAGuH,IAAI0pB,KAAkC7mB,EAAOyQ,kBAGxEzQ,EAAO6G,YAAc,WACjB,MAAO2f,GAAUuB,OAAO,SAAUjD,EAAOuB,GAKrC,MAJIY,IACAZ,EAAMzd,OAAO5I,EAAO4I,UAExBkc,EAAMztB,KAAKgE,MAAMypB,EAAOuB,EAAMxf,eACvBie,QAIf9kB,EAAO8G,gBAAkB,SAAUrN,GAC/B,IAAK,GAAIuuB,GAAI,EAAGA,EAAIxB,EAAUhvB,SAAUwwB,EAAG,CACvC,GAAI3B,GAAQG,EAAUwB,EACtB3B,GAAMvf,gBAAgBrN,KAI9BuG,EAAO+G,YAAc,SAAUtN,GAC3B,IAAK,GAAIuuB,GAAI,EAAGA,EAAIxB,EAAUhvB,SAAUwwB,EAAG,CACvC,GAAI3B,GAAQG,EAAUwB,EACtB3B,GAAMtf,YAAYtN,KAI1BuG,EAAOgH,aAAe,WAClB3I,QAAQC,IAAI,wDAkBhB0B,EAAOkmB,WAAa,SAAUA,GAC1B,MAAK1rB,WAAUhD,QAGf2vB,EAAcjB,EACPlmB,GAHImnB,GAMRnnB,EAAOgE,OAAOtG,EAAQuG,IAkCjCnO,EAAGmyB,YAAc,SAAUvqB,EAAQuG,GAG/B,QAASikB,GAAQ1nB,EAAG8a,GAChB,MAAO1lB,GAAGqtB,UAAUjjB,EAAOmC,cAAc3B,GAAIR,EAAOmC,cAAcmZ,IAoDtE,QAAS6M,GAAW7U,GACZ8U,EAAQ9U,GAAG/P,KACX6kB,EAAQ9U,GAAG/P,IAAIgB,eAEZ6jB,GAAQ9U,GAGnB,QAAS+U,KACL1tB,OAAO2tB,KAAKF,GAASvX,IAAIsX,GACzBC,KAhEJ,GAQIG,GARAvoB,EAASlK,EAAG+vB,eAAenoB,EAAQuG,GAMnCmkB,KACAI,EAAiB1yB,EAAGwoB,UAEpBmK,EAAc7yB,EAAGqtB,UACjByF,EAAaR,CAiIjB,OA/HAloB,GAAOwC,uBAAuBnL,KAAK,iBAAkB,SACrD2I,EAAO6nB,aAAY,GAEnB7nB,EAAOkT,gBAAkB,WACrB,GACIyV,GADAC,KAEAC,EAASjzB,EAAGutB,OAAOzM,IAAI6R,EACvBE,IACAI,EAAOzF,SAASqF,GAEhBC,GACAG,EAAOC,WAAWJ,EAEtB,IAAIK,GAAUF,EAAO9F,QAAQ/iB,EAAOsD,QAChCskB,EACAmB,EAAQlY,IAAI,SAAUmY,EAAKzxB,GACvB,GAAI0xB,GAAWb,EAAQY,EAAItS,MAAQ8R,EAAexsB,KAAKgE,EAAQA,EAAQiE,EAAY+kB,EAAItS,IAAKnf,EAM5F,OALK6wB,GAAQY,EAAItS,OACbiS,GAAkB,GAEtBP,EAAQY,EAAItS,KAAOuS,EACnBL,EAAKvxB,KAAK2xB,EAAItS,KACPuS,EACFvoB,UAAUV,EAAOU,aACjB5J,OAAOgM,IAAIlN,EAAGoN,QAAQgmB,EAAIjV,SAAUiV,EAAItS,KACxCvU,YAAYnC,EAAOmC,eACnBC,cAAcpC,EAAOoC,iBACrBmR,QAAQvT,EAAOuT,YAI5B5Y,QAAO2tB,KAAKF,GACPzsB,OAAO,SAAU2X,GAAI,MAA2B,KAApBsV,EAAKzxB,QAAQmc,KACzCvO,QAAQ,SAAUuO,GACf6U,EAAW7U,GACXqV,GAAkB,IAE1B3oB,EAAOkpB,SAAStB,GACZe,GAAmB3oB,EAAOwH,UAC1BxH,EAAOwH,SAASlP,UA4BxB0H,EAAO/I,MAAQ,SAAUsD,GACrB,MAAKC,WAAUhD,QAGfgxB,EAAiBjuB,EACjB8tB,IACOroB,GAJIwoB,GAYfxoB,EAAOmpB,eAAiB,SAAU5uB,GAC9B,MAAKC,WAAUhD,QAGf+wB,EAAkBhuB,EAClB8tB,IACOroB,GAJIuoB,GAgBfvoB,EAAOopB,WAAa,SAAU7uB,GAC1B,MAAKC,WAAUhD,QAGfixB,EAAcluB,EACd8tB,IACOroB,GAJIyoB,GAafzoB,EAAOqpB,UAAY,SAAU9uB,GACzB,MAAKC,WAAUhD,QAGfkxB,EAAanuB,EACb8tB,IACOroB,GAJI0oB,GAQf1oB,EAAOkpB,SAAWlpB,EAAO2nB,cAClB3nB,GAAO2nB,QAEP3nB,GAmCXlK,EAAGwzB,mBAAqB,SAAU5rB,EAAQuG,GAoCtC,QAAS4I,GAAS+P,GACd,GAAItZ,GAAOimB,GAEX,IAAIC,EAAY5M,GAAa,CACzB,GAAI6M,GAAUC,EAAc9M,EAE5B+M,GAAYF,EAAS7M,EAAYtZ,GAEjCgE,EAAYmiB,EAAS7M,EAAYtZ,IAIzC,QAASimB,KAGL,IAAK,GAFDjmB,MACAsmB,EAAW5pB,EAAOsD,OACb/L,EAAI,EAAGA,EAAIqyB,EAASpyB,SAAUD,EACnC+L,EAAKtD,EAAOmC,cAAcynB,EAASryB,KAAOyI,EAAOoC,gBAAgBwnB,EAASryB,GAE9E,OAAO+L,GAGX,QAASkmB,GAAY5M,GACjB,MAAOiN,GAAQjN,GAAYza,YAG/B,QAASunB,GAAc9M,GACnB,GAAI6M,GAAUzpB,EAAOqE,MAChBN,UAAU+lB,EAAclN,IACxB1Y,QAAQ,WAAY,SAAUzK,GAC3B,MAAOswB,GAAWnN,EAAYnjB,KAEjCyK,QAAQ,aAAc,SAAUzK,GAC7B,MAAOuwB,GAAapN,EAAYnjB,KAEnC2G,KAAK,QAAS,SAAU3G,GACrB,GAAIwwB,GAAiBJ,EAAQjN,GAAYrf,KACrC2sB,EAAcp0B,EAAG6D,MAAM2D,SAASusB,EAAQjN,GAAYza,YAAY1I,IAChE0wB,EAAcF,EAAiB,IAAMC,CAOzC,OANIH,GAAWnN,EAAYnjB,KACvB0wB,GAAe,aAEfH,EAAapN,EAAYnjB,KACzB0wB,GAAe,eAEZA,GAEf,OAAOV,GAGX,QAASK,GAAclN,GACnB,MAAO,UAAYA,EAAa,MAAQiN,EAAQjN,GAAYrf,KAGhE,QAASwsB,GAAWnN,EAAYnjB,GAC5B,MAAOuG,GAAOgG,aAAehG,EAAOgG,UAAUokB,EAAOxN,EAAYnjB,IAGrE,QAASuwB,GAAapN,EAAYnjB,GAC9B,MAAOuG,GAAOgG,cAAgBhG,EAAOgG,UAAUokB,EAAOxN,EAAYnjB,IAGtE,QAAS2wB,GAAOxN,EAAYnjB,GACxB,MAAOowB,GAAQjN,GAAYza,YAAY1I,GAG3C,QAASowB,GAAQzU,GACb,MAAOiV,GAAUjV,GAGrB,QAASuU,GAAYF,EAAS7M,EAAYtZ,GACtC,GAAIgnB,GAAQb,EACP3rB,OAAO,QACPsC,KAAK,OAAQ,WACV,GAAImqB,GAAc30B,EAAGkI,OAAO7C,MAAMmF,KAAK,OACvC,OAAImqB,GACOA,EAEJ,SAEVhjB,GAAG,QAAS,SAAU9N,GACnB,MAAOuG,GAAO2G,QAAQlN,EAAGmjB,IAGjC9mB,GAAG4C,WAAW4xB,EAAOtqB,EAAO6E,sBAAsBzE,KAAK,OAAQ,SAAU3G,EAAGlC,GACxE,MAAOyI,GAAOwJ,SAASlG,EAAKumB,EAAQjN,GAAYza,YAAY1I,IAAKlC,KAYzE,QAAS+P,GAAYmiB,EAAS7M,EAAYtZ,GAClCtD,EAAOsH,eACPmiB,EAAQ1lB,UAAU,SAASY,KAAK,SAAUlL,GACtC,GAAIid,GAAM0T,EAAOxN,EAAYnjB,GACzB8F,EAAQ+D,EAAKoT,EACjB,OAAO1W,GAAOqH,SAASqP,IAAKA,EAAKnX,MAAOA,MAxIpD,GAAIS,GAASlK,EAAGwS,WAAWxS,EAAGiK,cAE9BC,GAAOmJ,cAAc,SAAU1P,GAC3B,MAAOA,IAAK,GAGhB,IACI+wB,GADAC,EAAW70B,EAAG80B,IAAIhP,OAGlB2O,IAsOJ,OApOArqB,GAAOiF,UAAY,WACfjF,EAAOsE,UACP,KAAK,GAAIsY,GAAa,EAAGA,EAAayN,EAAU7yB,SAAUolB,EAAY,CAClE,GAAI+N,GAAS3qB,EAAOqE,MAAMrG,OAAO,KAC5BoC,KAAK,QAAS,QAAUwc,GAEzB6M,EAAUkB,EAAO5mB,UAAU,KAAO8lB,EAAQjN,GAAYrf,MACrD+F,KAAKumB,EAAQjN,GAAYtZ,MACzBwI,QACA9N,OAAO,KACPoC,KAAK,QAASypB,EAAQjN,GAAYrf,KAEvCksB,GACKzrB,OAAO,QACPoC,KAAK,OAAQ,SACbA,KAAK,IAAKqqB,GAEfhB,EAAQzrB,OAAO,SAEf6O,EAAS+P,GAEb4N,GAAkB,GA2FtBxqB,EAAO2G,QAAU,SAAUlN,EAAGmjB,GAC1B,GAAIgO,GAAiBf,EAAQjN,GAAYza,YAAY1I,EACrD3D,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAOivB,GACd5qB,EAAOuF,iBAcfvF,EAAOsF,UAAY,WACf,IAAK,GAAIsX,GAAa,EAAGA,EAAayN,EAAU7yB,SAAUolB,EACtD/P,EAAS+P,GACL4N,GACAxqB,EAAOqE,MAAMN,UAAU,KAAO8lB,EAAQjN,GAAYrf,KAAO,SAAS6C,KAAK,IAAKqqB,EAGpFD,IAAkB,GAuBtBxqB,EAAO6qB,eAAiB,SAAUC,EAAMvtB,EAAM4E,GAC1C,IAAK,GAAI5K,GAAI,EAAGA,EAAI8yB,EAAU7yB,SAAUD,EACpC,GAAI8yB,EAAU9yB,GAAGgG,OAASA,EAGtB,MAFA8sB,GAAU9yB,GAAG+L,KAAOwnB,EACpBT,EAAU9yB,GAAG4K,YAAcA,EACpBnC,CAIf,OADAqqB,GAAUhzB,MAAMkG,KAAMA,EAAM+F,KAAMwnB,EAAM3oB,YAAaA,IAC9CnC,GASXA,EAAO+qB,WAAa,SAAUA,GAG1B,MAFAN,GAASM,WAAWA,GACpBP,GAAkB,EACXxqB,GAYXA,EAAOgrB,SAAW,WACd,MAAOX,IAUXrqB,EAAOirB,QAAU,WACb,MAAOR,IAQXzqB,EAAOkrB,cAAgB,SAAU3tB,GAG7B,IAAK,GAFDytB,MAEKzzB,EAAI,EAAGA,EAAI8yB,EAAU7yB,SAAUD,EAAG,CACvC,GAAImc,GAAQ2W,EAAU9yB,EAClBmc,GAAMnW,OAASA,GACfytB,EAAS3zB,KAAKqc,GAMtB,MAFA2W,GAAYW,EAELhrB,GAGJA,EAAOgE,OAAOtG,EAAQuG,IA6CjCnO,EAAGq1B,cAAgB,SAAUhrB,EAAM8D,GAwC/B,QAASmnB,KAKL,MAJAjd,GAAKnO,EAAOlC,OAAO,KAAOutB,GACtBld,EAAGpQ,UACHoQ,EAAKnO,EAAOqE,MAAMrG,OAAO,KAAKoC,KAAK,QAASirB,IAEzCld,EAGX,QAASmd,KACL,GAAIhoB,GAAOioB,GAEXC,GAAQzmB,QAAQ,SAAU0mB,GACtB,GAAIC,GAAQC,EAASF,EAAOnoB,GAExBsoB,EAASF,EAAM5tB,OAAO,UAAYuZ,EAElCuU,GAAO7tB,UACP6tB,EAASF,EAAM1tB,OAAO,UACjBoC,KAAK,QAASiX,GACdjX,KAAK,IAAK,GACVA,KAAK,OAAQJ,EAAOwJ,UACpBjC,GAAG,QAASvH,EAAO2G,UAG5B7Q,EAAG4C,WAAWkzB,EAAQ5rB,EAAO6E,sBACxBzE,KAAK,IAAK,SAAU3G,GACjB,MAAOuG,GAAO4X,QAAQne,KAG9BuG,EAAOgY,eAAe0T,GAEtB1rB,EAAOqY,gBAAgBqT,KAI/B,QAASH,KACL,GAAIjoB,KAIJ,OAHAtD,GAAOsD,OAAOyB,QAAQ,SAAU8mB,GAC5BvoB,EAAKtD,EAAOmC,cAAc0pB,IAAUA,IAEjCvoB,EAGX,QAASqoB,GAASF,EAAOnoB,GACrB,GAAIwoB,GAAkB1U,EAAoB,IAAMthB,EAAG6D,MAAM2D,SAASmuB,EAAMluB,MAEpEmuB,EAAQvd,EAAGrQ,OAAO,KAAOhI,EAAG6D,MAAM2D,SAASmuB,EAAMluB,MAUrD,OARImuB,GAAM3tB,UACN2tB,EAAQvd,EAAGnQ,OAAO,KACboC,KAAK,QAAS0rB,GACd1rB,KAAK,YAAa,aAAeqrB,EAAM5rB,EAAI,IAAM4rB,EAAM3rB,EAAI,MAGpE4rB,EAAMG,MAAMvoB,EAAKmoB,EAAMluB,OAEhBmuB,EAWX,QAASK,KACL,GAAIzoB,GAAOioB,GAEXC,GAAQzmB,QAAQ,SAAU0mB,GACtB,GAAIC,GAAQC,EAASF,EAAOnoB,GAExBsoB,EAASF,EAAM5tB,OAAO,UAAYuZ,EAEtCvhB,GAAG4C,WAAWkzB,EAAQ5rB,EAAO6E,sBACxBzE,KAAK,IAAK,SAAU3G,GACjB,MAAOuG,GAAO4X,QAAQne,KAEzB2G,KAAK,OAAQJ,EAAOwJ,UAEzBxJ,EAAOkY,eAAewT,GAEtB1rB,EAAOsY,eAAeoT,KA1H9B,GAKIvd,GALAkd,EAAuB,iBACvBjU,EAAoB,OACpBC,EAAe,SAEfrX,EAASlK,EAAGmhB,YAAYnhB,EAAGiK,eAE3ByrB,IAwJJ,OAtJAxrB,GAAO6E,mBAAmB,KAE1B7E,EAAOyX,oBAAoB,SAAUhe,GACjC,MAAOA,GAAE8F,QAWbS,EAAOyrB,MAAQ,SAAUluB,EAAMsC,EAAGC,GAE9B,MADA0rB,GAAQn0B,MAAMkG,KAAMA,EAAMsC,EAAGA,EAAGC,EAAGA,IAC5BE,GAGXA,EAAOiF,UAAY,WASf,MARAkJ,GAAKid,IAELprB,EAAOzD,IAAI8C,OAAOW,EAAOsX,WAAYtX,EAAOK,QAAUL,EAAOwY,0BAE7D8S,IAEAtrB,EAAO+S,qBAEA/S,GA8DXA,EAAOsF,UAAY,WAKf,MAJAymB,KAEA/rB,EAAO+S,qBAEA/S,GAuBXA,EAAOzB,MAAQ,SAAUytB,GACrB,GAAIA,EAAM,CACN,GAAIC,GAASjsB,EAAOlC,OAAO,KAAOhI,EAAGE,UAAUE,kBAE3C+1B,GAAOluB,UACPkuB,EAASjsB,EAAOqE,MACXrG,OAAO,KACPoC,KAAK,QAAStK,EAAGE,UAAUE,mBAGpC,IAAIg2B,GAAYD,EAAOjuB,OAAO,QACzBoC,KAAK,IAAK,IACVA,KAAK,IAAK,GAEf6rB,GACKjuB,OAAO,QACPoC,KAAK,QAASJ,EAAOK,SACrBD,KAAK,SAAUJ,EAAOM,UACtBiH,GAAG,YAAa,WACb,GAAIqK,GAAWhc,EAAGu2B,MAAMF,EAAOhpB,QAC3BlI,EAAM6W,EAAS,GAAK,KAAOA,EAAS,EACxCsa,GAAUvnB,KAAK5J,SAGvBiF,GAAO+D,UAAU,UAAUQ,QAG/B,OAAOvE,IAGXA,EAAOgE,OAAO7D,EAAM8D,GAEbjE,GA+BXlK,EAAGs2B,SAAW,SAAU1uB,EAAQuG,GA6B5B,QAASooB,KACL,IAAK9hB,GAAM+hB,EAAW,CAClB,GAAIha,GAAS1c,EAAG0c,OAAOia,EAAUvsB,EAAO4W,oBACpCtE,GAAO,GAAK,IACZA,EAAO,GAAK,GAEhB/H,EAAK3U,EAAG4S,MAAMQ,SAAS3P,OAAOiZ,GACzBjT,OAAO,EAAGW,EAAOoI,mBAE1B+C,EAAO3C,MAAM+B,GAGjB,QAASiiB,KACL,GAAIC,GAAQte,EAAGrQ,OAAO,SAEtBuuB,KAEII,EAAM1uB,UACN0uB,EAAQte,EAAGnQ,OAAO,KAAKoC,KAAK,QAAS,QAChCA,KAAK,YAAa,gBAAkBJ,EAAOqI,kBAAoB,MAGxEvS,EAAG4C,WAAW+zB,EAAOzsB,EAAO6E,sBACvB7I,KAAKmP,GAkCd,QAASuhB,KACLve,EAAGpK,UAAU,UACRjG,OAAO,kBACPyG,SAEL4J,EAAGpK,UAAU,UACR/F,OAAO,QACPoC,KAAK,QAAS,aACdA,KAAK,KAAM,GACXA,KAAK,KAAM,GACXA,KAAK,KAAM,GACXA,KAAK,KAAM,WACR,OAAQJ,EAAOqI,oBAI3B,QAASqE,KACL6f,EAAWvsB,EAAOsD,OAElBkpB,IACAE,GAEA,IAAInJ,GAAOpV,EAAGpK,UAAU,KAAO4oB,GAC1BrpB,KAAKipB,EAEVlT,GAAekK,GACfhK,EAAegK,GACfjK,EAAeiK,GAGnB,QAASlK,GAAekK,GACpB,GAAIG,GAAWH,EAAKzX,QACf9N,OAAO,KACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAOo1B,GAAe,KAAOp1B,GAGrCmsB,GAAS1lB,OAAO,QAAQoC,KAAK,QAAS,GAEtCyZ,EAAa6J,GACb/I,EAAa4I,GAGjB,QAAShK,GAAegK,GACpBA,EAAKvX,OAAOzH,SAGhB,QAASqoB,KACL,GAAIzsB,GAAOoK,EAAG,EACd,OAAQpK,OAAUP,EAAAA,IAAYO,IAASA,EAAQoK,EAAG,GAAKpK,EAG3D,QAASmZ,GAAeiK,GACpB,GAEIjjB,GAFAtG,EAAIuyB,EAAS/0B,MAMb8I,GAHCusB,EAGQA,GAFC7sB,EAAOqI,mBAAqBrO,EAAI,GAAKgjB,GAAQhjB,EAMtD8yB,IACDC,EAAgBzsB,EAAS,EAG7B,IAAI0sB,GAAOzJ,EAAKnjB,KAAK,YAAa,SAAU3G,EAAGlC,GACvC,MAAO,iBAAmBA,EAAI,GAAKylB,EAAOzlB,EAAI+I,GAAU,MACzDxC,OAAO,QACTsC,KAAK,SAAUE,GACfF,KAAK,OAAQJ,EAAOwJ,UACpBjC,GAAG,QAASZ,GACZzC,QAAQ,aAAc,SAAUzK,GAC7B,MAAQuG,GAAOgG,aAAgBinB,EAAcxzB,IAAK,IAErDyK,QAAQ,WAAY,SAAUzK,GAC3B,MAAQuG,GAAOgG,YAAeinB,EAAcxzB,IAAK,GAGzD3D,GAAG4C,WAAWs0B,EAAMhtB,EAAO6E,sBACtBzE,KAAK,QAAS,SAAU3G,GACrB,MAAOP,MAAKC,IAAIyzB,IAAcriB,EAAGvK,EAAOoC,gBAAgB3I,OAE3D2G,KAAK,YAAa8sB,GAEvBtT,EAAa2J,GACb5I,EAAa4I,GAGjB,QAAS3J,GAAa2J,GACdvjB,EAAOsH,gBACPic,EAAKxf,UAAU,SAASQ,SACxBgf,EAAKvlB,OAAO,SAAS2G,KAAK3E,EAAOqH,UAIzC,QAASwS,GAAa6J,GACd1jB,EAAOoH,eACPsc,EAAS1lB,OAAO,QACXuJ,GAAG,QAASZ,GAEjB3G,EAAOmtB,oBACPzJ,EAAS1lB,OAAO,QACXoC,KAAK,QAASgtB,GACd7lB,GAAG,QAASZ,GAIzB,QAASgU,GAAa4I,GAClB,GAAIvjB,EAAOoH,cAAe,CACtB,GAAIimB,GAAM9J,EAAKzlB,OAAO,QACjBsC,KAAK,IAAKktB,GACVltB,KAAK,IAAK2sB,GACV3sB,KAAK,KAAMmtB,GACXhmB,GAAG,QAASZ,GACZvG,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAOo1B,GAAe,KAAOp1B,IAEhCoN,KAAK,SAAUlL,GACZ,MAAOuG,GAAOmH,QAAQ1N,IAE9B3D,GAAG4C,WAAW20B,EAAKrtB,EAAO6E,sBACrBzE,KAAK,YAAa8sB,GAE3B,GAAIltB,EAAOmtB,mBAAoB,CAC3B,GAAIK,GAAWjK,EAAKzlB,OAAO,IAAMsvB,GACxBhtB,KAAK,IAAKJ,EAAOoI,iBAAmBqlB,GACpCrtB,KAAK,IAAK2sB,GACV3sB,KAAK,cAAe,OACpBmH,GAAG,QAASZ,GACZvG,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAO61B,GAAoB,KAAO71B,IAErCoN,KAAK,SAAUlL,GACZ,MAAOuG,GAAOqH,QAAQ5N,IAElC3D,GAAG4C,WAAW80B,EAAUxtB,EAAO6E,sBAC1BzE,KAAK,YAAa8sB,IAiB/B,QAASvmB,GAAQlN,GACbuG,EAAO2G,QAAQlN,GAGnB,QAASyzB,GAAWzzB,GAChB,GAAIoG,GAAI0K,EAAGvK,EAAO4W,oBAAoBnd,IAClCi0B,EAAKd,IACL7zB,EAAI8G,EAAI6tB,EAAKA,EAAK7tB,CACtB,OAAO,aAAe9G,EAAI,MAgH9B,QAASk0B,GAAexzB,GACpB,MAAOuG,GAAOgG,UAAUhG,EAAO2W,kBAAkBld,IAxWrD,GAAI0U,GAiBA5D,EAEA+hB,EAIAC,EArBAe,EAAgB,GAChBP,EAAgB,GAChBD,GAAmB,EACnBS,EAAY,SACZE,EAAqB,EAErBzQ,EAAO,EAEP6P,GAAkB,EAClBF,EAAe,MACfS,EAAoB,WACpBO,GAAoB,EAEpB3tB,EAASlK,EAAG8f,SAAS9f,EAAG8R,YAAY9R,EAAGwS,WAAWxS,EAAGiK,iBAMrDoL,EAASvV,EAAGyO,IAAIsK,OAAOC,OAAO,SAsVlC,OAlVA5O,GAAO4tB,QAAU5tB,EAAO6W,IA4BxB7W,EAAOiF,UAAY,WASf,MARAjF,GAAOsE,WAEP6J,EAAKnO,EAAOqE,MACPrG,OAAO,KACPoC,KAAK,YAAa,aAAeJ,EAAOkI,UAAUD,KAAO,IAAMjI,EAAOkI,UAAUJ,IAAM,KAE3F4E,IAEO1M,GAGXA,EAAOqH,MAAM,SAAU5N,GACnB,MAAOuG,GAAO2W,kBAAkBld,GAAK,KAAOuG,EAAO4W,oBAAoBnd,KAG3EuG,EAAOmH,MAAMnH,EAAO2W,mBAOpB3W,EAAOH,EAAI,SAAUA,GACjB,MAAKrF,WAAUhD,QAGf+S,EAAK1K,EACEG,GAHIuK,GAyJfvK,EAAOmtB,iBAAmB,SAAU5yB,GAChC,MAAKC,WAAUhD,QAGfm2B,EAAoBpzB,EACbyF,GAHI2tB,GAiBf3tB,EAAOsF,UAAY,WAEf,MADAoH,KACO1M,GAeXA,EAAOwQ,MAAQ,WACX,MAAOrF,IAaXnL,EAAO6tB,eAAiB,SAAUtqB,GAC9B,MAAK/I,WAAUhD,QAGfq1B,EAAkBtpB,EACXvD,GAHI6sB,GAWf7sB,EAAOke,IAAM,SAAU3a,GACnB,MAAK/I,WAAUhD,QAGfwlB,EAAOzZ,EACAvD,GAHIgd,GAYfhd,EAAOsK,SAAW,SAAU/P,GACxB,MAAKC,WAAUhD,QAGf80B,EAAY/xB,EACLyF,GAHIssB,GAYftsB,EAAO8tB,aAAe,SAAUpzB,GAC5B,MAAKF,WAAUhD,QAGf81B,EAAgB5yB,EACTsF,GAHIstB,GAYfttB,EAAO+tB,aAAe,SAAUrzB,GAC5B,MAAKF,WAAUhD,QAGfu1B,EAAgBryB,EAChBoyB,GAAmB,EACZ9sB,GAJI+sB,GAaf/sB,EAAOguB,kBAAoB,SAAUtzB,GACjC,MAAKF,WAAUhD,QAGfi2B,EAAqB/yB,EACdsF,GAHIytB,GAURztB,EAAOgE,OAAOtG,EAAQuG,IAiBjCnO,EAAG0R,OAAS,WAiGR,QAASymB,KACL,MAAOjR,GAAOkR,EAjGlB,GAGI7hB,GAUA8B,EAbAggB,EAAY,EAEZ/sB,KAEAmJ,EAAK,EACL+D,EAAK,EACL4f,EAAc,GACdlR,EAAO,EACPoR,GAAc,EACdC,EAAe,IACfC,EAAa,GACbC,GAAiB,CA0LrB,OAtLAntB,GAAQ1D,OAAS,SAAUuV,GACvB,MAAKzY,WAAUhD,QAGf6U,EAAU4G,EACH7R,GAHIiL,GAMfjL,EAAQ9I,OAAS,WACb+T,EAAQhI,MAAMvG,OAAO,eAAeyG,SACpC4J,EAAK9B,EAAQhI,MAAMrG,OAAO,KACrBoC,KAAK,QAAS,aACdA,KAAK,YAAa,aAAemK,EAAK,IAAM+D,EAAK,IACtD,IAAIzH,GAAcwF,EAAQxF,cAEtB2nB,EAAYrgB,EAAGpK,UAAU,oBACxBT,KAAKuD,GACLiF,QACA9N,OAAO,KACPoC,KAAK,QAAS,kBACdmH,GAAG,YAAa,SAAU9N,GACvB4S,EAAQvF,gBAAgBrN,KAE3B8N,GAAG,WAAY,SAAU9N,GACtB4S,EAAQtF,YAAYtN,KAEvB8N,GAAG,QAAS,SAAU9N,GACnBA,EAAExC,MAAM+P,aAAavN,IAG7B0U,GAAGpK,UAAU,oBACRG,QAAQ,UAAW,SAAUzK,GAC1B,MAAOA,GAAExC,MAAMgQ,mBAAmBxN,KAGtCoN,EAAYf,KAAKhQ,EAAGgG,MAAM,cAC1B0yB,EACKxwB,OAAO,QACPoC,KAAK,KAAM,GACXA,KAAK,KAAM8tB,EAAc,GACzB9tB,KAAK,KAAM8tB,GACX9tB,KAAK,KAAM8tB,EAAc,GACzB9tB,KAAK,eAAgB,GACrBA,KAAK,mBAAoBtK,EAAGgG,MAAM,cAClCsE,KAAK,SAAUtK,EAAGgG,MAAM,UAE7B0yB,EACKxwB,OAAO,QACPoC,KAAK,QAAS8tB,GACd9tB,KAAK,SAAU8tB,GACf9tB,KAAK,OAAQ,SAAU3G,GAAI,MAAOA,GAAIA,EAAEkc,MAAQ,SAGzD6Y,EAAUxwB,OAAO,QACR2G,KAAK7O,EAAGgG,MAAM,SACdsE,KAAK,IAAK8tB,EAAcC,GACxB/tB,KAAK,IAAK,WACP,MAAO8tB,GAAc,GAAKjzB,KAAKwzB,aAAexzB,KAAKwzB,aAAe,IAAM,EAAI,GAGxF,IAAIC,GAA6B,EAC7BC,EAAM,CACVH,GAAUpuB,KAAK,YAAa,SAAU3G,EAAGlC,GACrC,GAAI62B,EAAa,CACb,GAAIQ,GAAc,aAAeF,EAA6B,IAAMC,EAAMV,IAAqB,IAC3FY,EAAcN,KAAmB,EAAOtzB,KAAK6zB,UAAUzuB,MAAQ2c,EAAOsR,CAQ1E,OANKI,GAA6BG,GAAcR,KAC1CM,EACFD,EAA6B,GAE7BA,GAA8BG,EAE3BD,EAGP,MAAO,eAAiBr3B,EAAI02B,IAAqB,OAa7D7sB,EAAQvB,EAAI,SAAUA,GAClB,MAAKrF,WAAUhD,QAGf+S,EAAK1K,EACEuB,GAHImJ,GAUfnJ,EAAQtB,EAAI,SAAUA,GAClB,MAAKtF,WAAUhD,QAGf8W,EAAKxO,EACEsB,GAHIkN,GAUflN,EAAQ8c,IAAM,SAAUA,GACpB,MAAK1jB,WAAUhD,QAGfwlB,EAAOkB,EACA9c,GAHI4b,GAUf5b,EAAQ2tB,WAAa,SAAU7rB,GAC3B,MAAK1I,WAAUhD,QAGf02B,EAAchrB,EACP9B,GAHI8sB,GAUf9sB,EAAQ4tB,WAAa,SAAUz0B,GAC3B,MAAKC,WAAUhD,QAGf42B,EAAc7zB,EACP6G,GAHIgtB,GAUfhtB,EAAQ6tB,YAAc,SAAU10B,GAC5B,MAAKC,WAAUhD,QAGf62B,EAAe9zB,EACR6G,GAHIitB,GAUfjtB,EAAQytB,UAAY,SAAUt0B,GAC1B,MAAKC,WAAUhD,QAGf82B,EAAa/zB,EACN6G,GAHIktB,GAWfltB,EAAQ8tB,cAAgB,SAAU30B,GAC9B,MAAKC,WAAUhD,QAGf+2B,EAAiBh0B,EACV6G,GAHImtB,GAMRntB,GAmCXtL,EAAGq5B,YAAc,SAAUzxB,EAAQuG,GAuJ/B,QAASmrB,GAAmBC,EAAWjc,GACnC,GAAIkc,GAAUtvB,EAAO+D,UAAU,2BAA2BpI,OAAO,WAC7D,MAAO0zB,GAAUz5B,EAAGkI,OAAO7C,SAE3Bs0B,EAAUC,EAAQpc,MACtBoc,GAAQpc,KAAKla,KAAKu2B,IAAIrc,EAAM,IAC5Btd,EAAG4C,WAAW42B,EAAStvB,EAAO6E,sBAAsBzE,KAAK,IAAKovB,GAC9DA,EAAQpc,KAAKmc,GAuBjB,QAASG,GAAe/zB,GACpB,GAAI2zB,GAAUtvB,EAAO+D,UAAU,2BAA2BqB,KAAK,SAAU3L,GACrEwB,KAAKyK,SAAW/J,GAAUA,EAAO2D,WAAW7F,EAAEid,MAGlD5gB,GAAG4C,WAAW42B,EAAStvB,EAAO6E,sBAAsBzE,KAAK,IAAKovB,GAzLlE,GAAIxvB,GAASlK,EAAG4T,wBACZ8lB,EAAU55B,EAAGyO,IAAIsrB,SAEjBC,EAAqB,SAAUn2B,GAAK,MAAOA,GAAE8F,OAE7CswB,EAAsB7vB,EAAOmC,aACjCnC,GAAOmC,YAAY,SAAU1I,GAAK,MAAOo2B,GAAoBp2B,GAAG,KAChEuG,EAAOoC,cAAc,SAAU3I,GAAK,MAAOo2B,GAAoBp2B,GAAG,KAClEuG,EAAOmJ,cAAc,WAAc,MAAOnJ,GAAOwD,YAEjD,IAAIssB,GAAW,SAAUr2B,GACrB,MAAO,aAAeuG,EAAOH,IAAIG,EAAOmC,cAAc1I,IAAM,IACtCuG,EAAOF,IAAIE,EAAOoC,gBAAgB3I,IAAM,KAG9Ds2B,EAAc,EACdC,EAAmB,EACnBC,EAAc,CAwMlB,OAtMAT,GAAQpc,KAAK,SAAU3Z,GACnB,MAAKm2B,GAAmBn2B,GAEbwB,KAAKyK,SACLxM,KAAKu2B,IAAIO,EAAkB,GAE3B92B,KAAKu2B,IAAIM,EAAa,GAJtBE,IAQfn6B,EAAGmE,SAAS+F,EAAQ,UAAW,SAAUrE,GACrC,MAAKnB,WAAUhD,OAIRwI,EAAOkwB,SAASp6B,EAAG4F,QAAQgE,2BAA2B/D,IAHlDqE,EAAOkwB,aAMtBlwB,EAAO6M,SAAW,WACd,GAAIyiB,GAAUtvB,EAAOqQ,aAAatM,UAAU,eACvCT,KAAKtD,EAAOsD,OAEjBgsB,GACKxjB,QACJ9N,OAAO,QACHoC,KAAK,QAAS,UACdA,KAAK,UAAW,GAChBA,KAAK,OAAQJ,EAAOwJ,UACpBpJ,KAAK,YAAa0vB,GAEvBh6B,EAAG4C,WAAW42B,EAAStvB,EAAO6E,sBACzBzE,KAAK,UAAW,SAAU3G,GAAK,MAAOm2B,GAAmBn2B,GAAK,EAAI,IAClE2G,KAAK,OAAQJ,EAAOwJ,UACpBpJ,KAAK,YAAa0vB,GAClB1vB,KAAK,IAAKovB,GAEf15B,EAAG4C,WAAW42B,EAAQtjB,OAAQhM,EAAO6E,sBAChCzE,KAAK,UAAW,GAAGmE,UAU5BvE,EAAOmwB,kBAAoB,SAAUC,GACjC,MAAK51B,WAAUhD,QAGfo4B,EAAqBQ,EACdn1B,MAHI20B,GAaf5vB,EAAO2vB,OAAS,SAAUU,GACtB,MAAK71B,WAAUhD,QAGfg4B,EAAQa,KAAKA,GACNrwB,GAHIwvB,EAAQa,QAWvBrwB,EAAOswB,WAAa,SAAUv3B,GAC1B,MAAKyB,WAAUhD,QAGfu4B,EAAch3B,EACPiH,GAHI+vB,GAWf/vB,EAAOuwB,gBAAkB,SAAUx3B,GAC/B,MAAKyB,WAAUhD,QAGfw4B,EAAmBj3B,EACZiH,GAHIgwB,GAWfhwB,EAAOwwB,WAAa,SAAUz3B,GAC1B,MAAKyB,WAAUhD,QAGfy4B,EAAcl3B,EACPiH,GAHIiwB,GAMfjwB,EAAO6G,YAAc,WACjB,QAAS5P,MAAO+I,EAAQzC,KAAMyC,EAAOwD,WAAYmS,MAAO3V,EAAOwJ,cAGnExJ,EAAO8G,gBAAkB,SAAUrN,GAC/B21B,EAAmB,SAAUO,GACzB,MAAOA,GAAOvvB,KAAK,UAAY3G,EAAEkc,OAClCqa,GACHhwB,EAAO+D,UAAU,2BAA2BpI,OAAO,WAC/C,MAAO/F,GAAGkI,OAAO7C,MAAMmF,KAAK,UAAY3G,EAAEkc,QAC3CzR,QAAQ,WAAW,IAG1BlE,EAAO+G,YAAc,SAAUtN,GAC3B21B,EAAmB,SAAUO,GACzB,MAAOA,GAAOvvB,KAAK,UAAY3G,EAAEkc,OAClCoa,GACH/vB,EAAO+D,UAAU,2BAA2BpI,OAAO,WAC/C,MAAO/F,GAAGkI,OAAO7C,MAAMmF,KAAK,UAAY3G,EAAEkc,QAC3CzR,QAAQ,WAAW,IAa1BlE,EAAO0S,eAAiB,aAIxB1S,EAAO4S,YAAc,WACjB,GAAIN,GAAStS,EAAOsP,QAAQgD,QAQ5B,OAPItS,GAAOjG,UACPuY,EAAO,GAAKA,EAAO,GAAGzB,IAAI7Q,EAAOjG,SACjCuY,EAAO,GAAKA,EAAO,GAAGzB,IAAI7Q,EAAOjG,SAEjCiG,EAAOuD,IAAIzF,OAAO,UACb9B,KAAKgE,EAAOsP,QAAQgD,OAAOA,KAE7BA,GAGXtS,EAAO6S,aAAe,SAAUP,GAC5B,MAAOtS,GAAOsP,QAAQvR,UAAYuU,GAAUA,EAAO,GAAG,IAAMA,EAAO,GAAG,IAAMA,EAAO,GAAG,IAAMA,EAAO,GAAG,IAW1GtS,EAAOuS,UAAY,WACf,GAAID,GAAStS,EAAO4S,aAIpB,IAFA5S,EAAOkN,YAAYlN,EAAOuD,KAEtBvD,EAAO6S,aAAaP,GACpBxc,EAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAO,MACdqE,EAAOuF,gBAGXmqB,GAAe,OAEZ,CACH,GAAIe,GAAiB36B,EAAG4F,QAAQgE,2BAA2B4S,EAC3Dxc,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAO,MACdqE,EAAOrE,OAAO80B,GACdzwB,EAAOuF,eACRzP,EAAGE,UAAUS,aAEhBi5B,EAAee,KAIvBzwB,EAAOyS,UAAY,SAAUD,GACzBA,EAAOxW,KAAKgE,EAAOsP,QAAQxP,EAAEE,EAAOF,OAGjCE,EAAOgE,OAAOtG,EAAQuG,IAmCjCnO,EAAG46B,cAAgB,SAAUhzB,EAAQuG,GACjC,GAAI0sB,GAAa,iBACb9O,EAAgBjsB,EAAG4F,OAAO,OAC1BwE,EAASlK,EAAGiK,cACZ+hB,GAAS8O,IAAI,GAAI9qB,KAAK,GAAI+qB,KAAK,GA6GnC,OA1GA7wB,GAAOwC,sBAAsB,UAkB7BxC,EAAO+hB,KAAO,SAAUhpB,GACpB,MAAKyB,WAAUhD,QAGXuB,EAAE83B,KACF/O,EAAM+O,KAAO93B,EAAE83B,KACR93B,EAAE63B,IACT9O,EAAM+O,KAAO93B,EAAE63B,IACR73B,EAAE+M,OACTgc,EAAM+O,KAAO93B,EAAE+M,MAEf/M,EAAE63B,IACF9O,EAAM8O,IAAM73B,EAAE63B,IACP73B,EAAE+M,OACTgc,EAAM8O,IAAM73B,EAAE+M,MAEd/M,EAAE+M,KACFgc,EAAMhc,KAAO/M,EAAE+M,KACR/M,EAAE63B,MACT9O,EAAMhc,KAAO/M,EAAE63B,KAEZ5wB,GAnBI8hB,GA2Bf9hB,EAAOT,MAAQ;AACX,MAAOS,GAAOsD,QAGlBtD,EAAOsD,KAAK,SAAUxM,GAClB,GAAIg6B,GAASh6B,EAAMyI,MAAQzI,EAAMyI,QAAUzI,EAAMgR,IAAI,GAAG,EACxD,OAAO9H,GAAOoC,gBAAgB0uB,KAGlC9wB,EAAO6E,mBAAmB,KAE1B7E,EAAOiF,UAAY,WACf,GAAI8rB,GAAW/wB,EAAOT,QAClByxB,EAAOhxB,EAAO+D,UAAU,IAAM4sB,EAE9BK,GAAKjzB,UACLizB,EAAOA,EAAK1tB,MAAM,IACbwI,QACA9N,OAAO,QACPoC,KAAK,QAASuwB,IAGvBK,EAAKt4B,aACAE,SAASoH,EAAO6E,sBAChBosB,KAAK,eACLC,MAAM,OAAQ,WACX,GAAIC,GAASv7B,EAAGw7B,kBAAkBn2B,KAAKo2B,WAAa,EAAGN,EAEvD,OADA91B,MAAKo2B,UAAYN,EACV,SAAUtV,GACb,GAAIsG,GAAO,KAAMuP,EAAMtxB,EAAOgiB,eAAemP,EAAO1V,GACnC,KAAbsV,GAAkC,KAAfjP,EAAM+O,KACzB9O,EAAOD,EAAM+O,KACO,IAAbE,GAAiC,KAAdjP,EAAM8O,IAChC7O,EAAOD,EAAM8O,IACS,KAAf9O,EAAMhc,OACbic,EAAOD,EAAMhc,MAEjB7K,KAAKs2B,UAAYxP,EAAOA,EAAKvlB,QAAQ,UAAW80B,GAAOA,MAKvEtxB,EAAOsF,UAAY,WACf,MAAOtF,GAAOiF,aAQlBjF,EAAOgiB,aAAe,SAAUznB,GAC5B,MAAKC,WAAUhD,QAGfqqB,EAAgBtnB,EACTyF,GAHI6hB,GAMR7hB,EAAOgE,OAAOtG,EAAQuG,IAgCjCnO,EAAG07B,QAAU,SAAU9zB,EAAQuG,GAuE3B,QAASwtB,GAAW9iB,EAAMpP,GACtB,GAAImyB,GAAc1xB,EAAO+D,UAAU,cAAcpI,OAAO,SAAUlC,GAC9D,MAAOA,GAAEid,IAAI/H,KAAUpP,IAEvBoyB,EAAwBD,EAAY/1B,OAAO,SAAUlC,GACrD,OAAQuG,EAAOgG,UAAUvM,EAAEid,MAE/B5gB,GAAG8I,OAAOE,QAAQ,WACV6yB,EAAsB5zB,QACtB2zB,EAAYtsB,KAAK,SAAU3L,GACvBuG,EAAOrE,OAAOlC,EAAEid,OAGpBib,EAAsBvsB,KAAK,SAAU3L,GACjCuG,EAAOrE,OAAOlC,EAAEid,OAGxB1W,EAAOuF,gBAtFf,GAEIqsB,GAEAC,EACAC,EALAC,EAAwB,KAMxBC,EAAep8B,EAAGqtB,UAClBgP,EAAer8B,EAAGqtB,UAClBiP,EAAYt8B,EAAG4S,MAAMpP,UACrB+4B,EAAYv8B,EAAG4S,MAAMpP,UAErBg5B,EAAiBL,EACjBM,EAAiBN,EAEjB/xB,EAASlK,EAAGwS,WAAWxS,EAAG8R,YAAY9R,EAAGiK,eAC7CC,GAAOwC,sBAAsB,UAC7BxC,EAAOqH,MAAMrH,EAAOmJ,gBAEpB,IAAImpB,GAAa,SAAU74B,GACvB,MAAOA,IAEP84B,EAAa,SAAU94B,GACvB,MAAOA,GAYXuG,GAAOwyB,UAAY,SAAUj4B,GACzB,MAAKC,WAAUhD,QAGf86B,EAAa/3B,EACNyF,GAHIsyB,GAeftyB,EAAOyyB,UAAY,SAAUl4B,GACzB,MAAKC,WAAUhD,QAGf+6B,EAAah4B,EACNyF,GAHIuyB,EAMf,IAAIG,GAAgB,SAAUj5B,GAAKg4B,EAAW,EAAGh4B,IAC7Ck5B,EAAgB,SAAUl5B,GAAKg4B,EAAW,EAAGh4B,IAC7Cm5B,EAAc,SAAUn5B,GACxB,GAAIkC,GAASlC,EAAEid,GACf5gB,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAOA,GACdqE,EAAOuF,gBAoQf,OA3OAzP,GAAGmE,SAAS+F,EAAQ,SAAU,SAAUrE,GACpC,MAAKnB,WAAUhD,OAIRwI,EAAOqS,QAAQvc,EAAG4F,QAAQ8D,qBAAqB7D,IAH3CqE,EAAOqS,YAYtBrS,EAAOujB,KAAO,SAAUhpB,GACpB,MAAKC,WAAUhD,QAGfs6B,EAAQv3B,EACDyF,GAHI8xB,GAUf9xB,EAAO6yB,YAAc,SAAUt4B,GAC3B,MAAKC,WAAUhD,QAGfy6B,EAAe13B,EACRyF,GAHIiyB,GAWfjyB,EAAO8yB,KAAO,SAAUv4B,GACpB,MAAKC,WAAUhD,QAGfq6B,EAAQt3B,EACDyF,GAHI6xB,GAUf7xB,EAAO+yB,YAAc,SAAUx4B,GAC3B,MAAKC,WAAUhD,QAGfw6B,EAAez3B,EACRyF,GAHIgyB,GAMfhyB,EAAOiF,UAAY,WAQf,MAPAjF,GAAOsE,WAEPstB,EAAa5xB,EAAOqE,MACfrG,OAAO,KACPoC,KAAK,QAAS,WACdA,KAAK,YAAa,aAAeJ,EAAOkI,UAAUD,KAAO,IAAMjI,EAAOkI,UAAUJ,IAAM,KAEpF9H,EAAOsF,aAGlBtF,EAAOsF,UAAY,WACf,GAAIhC,GAAOtD,EAAOsD,OACdigB,EAAOvjB,EAAOujB,QAAUjgB,EAAKuN,IAAI7Q,EAAOoC,iBACxC0wB,EAAO9yB,EAAO8yB,QAAUxvB,EAAKuN,IAAI7Q,EAAOmC,cACxC8vB,KACA1O,EAAOA,EAAKtI,KAAKgX,IAEjBD,IACAc,EAAOA,EAAK7X,KAAK+W,IAErBzO,EAAO4O,EAAU94B,OAAOkqB,GACxBuP,EAAOZ,EAAU74B,OAAOy5B,EAExB,IAAIE,GAAWzP,EAAKlqB,SAAS7B,OACzBy7B,EAAWH,EAAKz5B,SAAS7B,OACzB07B,EAAWh6B,KAAKW,MAAMmG,EAAOoI,iBAAmB6qB,GAChDE,EAAYj6B,KAAKW,MAAMmG,EAAOqI,kBAAoB2qB,EAEtDF,GAAKM,iBAAiB,EAAGpzB,EAAOoI,mBAChCmb,EAAK6P,iBAAiBpzB,EAAOqI,kBAAmB,GAEhD,IAAIgrB,GAAQzB,EAAW7tB,UAAU,eAAeT,KAAKtD,EAAOsD,OAAQ,SAAU7J,EAAGlC,GAC7E,MAAOyI,GAAOmC,cAAc1I,EAAGlC,GAAK,OAAOyI,EAAOoC,gBAAgB3I,EAAGlC,KAErE+7B,EAASD,EAAMvnB,QAAQ9N,OAAO,KAC7BoC,KAAK,QAAS,YAEnBkzB,GAAOt1B,OAAO,QACToC,KAAK,QAAS,YACdA,KAAK,OAAQ,SACbmH,GAAG,QAASvH,EAAOuzB,cAEpBvzB,EAAOsH,gBACPgsB,EAAOt1B,OAAO,SACdq1B,EAAMtvB,UAAU,SAASY,KAAK3E,EAAOqH,UAGzCvR,EAAG4C,WAAW26B,EAAMtvB,UAAU,QAAS/D,EAAO6E,sBACzCzE,KAAK,IAAK,SAAU3G,EAAGlC,GAAK,MAAOu7B,GAAK9yB,EAAOmC,cAAc1I,EAAGlC,MAChE6I,KAAK,IAAK,SAAU3G,EAAGlC,GAAK,MAAOgsB,GAAKvjB,EAAOoC,gBAAgB3I,EAAGlC,MAClE6I,KAAK,KAAMgyB,GACXhyB,KAAK,KAAMiyB,GACXjyB,KAAK,OAAQJ,EAAOwJ,UACpBpJ,KAAK,QAAS8yB,GACd9yB,KAAK,SAAU+yB,GAEpBE,EAAMrnB,OAAOzH,QAEb,IAAIivB,GAAQ5B,EAAW7tB,UAAU,SAC7ByvB,GAAMz1B,UACNy1B,EAAQ5B,EAAW5zB,OAAO,KAAKoC,KAAK,QAAS,aAEjD,IAAIqzB,GAAYD,EAAMzvB,UAAU,QAAQT,KAAKwvB,EAAKz5B,SAClDo6B,GAAU3nB,QAAQ9N,OAAO,QAClBoC,KAAK,IAAK,SAAU3G,GAAK,MAAOq5B,GAAKr5B,GAAKy5B,EAAW,IACrDxuB,MAAM,cAAe,UACrBtE,KAAK,IAAKJ,EAAOqI,mBACjBjI,KAAK,KAAM,IACXmH,GAAG,QAASvH,EAAO0zB,gBACnB/uB,KAAK3E,EAAOwyB,aACnB18B,EAAG4C,WAAW+6B,EAAWzzB,EAAO6E,sBACxBF,KAAK3E,EAAOwyB,aACZpyB,KAAK,IAAK,SAAU3G,GAAK,MAAOq5B,GAAKr5B,GAAKy5B,EAAW,IAC7DO,EAAUznB,OAAOzH,QACjB,IAAIovB,GAAQ/B,EAAW7tB,UAAU,SAC7B4vB,GAAM51B,UACN41B,EAAQ/B,EAAW5zB,OAAO,KAAKoC,KAAK,QAAS,aAEjD,IAAIwzB,GAAYD,EAAM5vB,UAAU,QAAQT,KAAKigB,EAAKlqB,SA0BlD,OAzBAu6B,GAAU9nB,QAAQ9N,OAAO,QAClBoC,KAAK,KAAM,GACXsE,MAAM,cAAe,OACrBtE,KAAK,IAAK,GACVA,KAAK,KAAM,IACXmH,GAAG,QAASvH,EAAO6zB,gBACnBlvB,KAAK3E,EAAOyyB,aACnB38B,EAAG4C,WAAWk7B,EAAW5zB,EAAO6E,sBACzBF,KAAK3E,EAAOyyB,aACZryB,KAAK,IAAK,SAAU3G,GAAK,MAAO8pB,GAAK9pB,GAAK05B,EAAY,IAC7DS,EAAU5nB,OAAOzH,SAGbvE,EAAO+D,UAAU,eAAeqB,KADhCpF,EAAOgG,YAC8B,SAAUvM,GACvCuG,EAAOyY,eAAehf,GACtBuG,EAAOwG,kBAAkBvL,MAEzB+E,EAAOyG,eAAexL,OAIO,WACjC+E,EAAO0G,eAAezL,QAGvB+E,GAOXA,EAAOuzB,WAAa,SAAUx3B,GAC1B,MAAKvB,WAAUhD,QAGfo7B,EAAc72B,EACPiE,GAHI4yB,GAYf5yB,EAAO0zB,aAAe,SAAU33B,GAC5B,MAAKvB,WAAUhD,QAGfk7B,EAAgB32B,EACTiE,GAHI0yB,GAYf1yB,EAAO6zB,aAAe,SAAU93B,GAC5B,MAAKvB,WAAUhD,QAGfm7B,EAAgB52B,EACTiE,GAHI2yB,GAUf3yB,EAAO8zB,cAAgB,SAAUr6B,GAC7B,MAAKe,WAAUhD,QAGf46B,EAAiB34B,EACVuG,GAHIoyB,GAUfpyB,EAAO+zB,cAAgB,SAAUt6B,GAC7B,MAAKe,WAAUhD,QAGf66B,EAAiB54B,EACVuG,GAHIqyB,GAMfryB,EAAOyY,eAAiB,SAAUhf,GAC9B,MAAOuG,GAAOgG,UAAUvM,EAAEid,MAGvB1W,EAAOgE,OAAOtG,EAAQuG,IAIjC,WA+SI,QAAS+vB,GAAYv6B,GACjB,OAAQ,EAAGA,EAAEjC,OAAS,GAG1B,QAASy8B,GAAax6B,GAClB,OACI7D,EAAGs+B,SAASz6B,EAAG,KACf7D,EAAGs+B,SAASz6B,EAAG,IACf7D,EAAGs+B,SAASz6B,EAAG,MApTvB7D,EAAGu+B,IAAM,WAWL,QAASA,GAAI5wB,GACTA,EAAE6B,KAAK,SAAU3L,EAAGlC,GAChBkC,EAAIA,EAAEoX,IAAItR,GAAO0b,KAAKrlB,EAAGqtB,UACzB,IAAI1f,GAAI3N,EAAGkI,OAAO7C,MACdjB,EAAIP,EAAEjC,OACN0F,EAAMzD,EAAE,GACR0D,EAAM1D,EAAEO,EAAI,GAGZo6B,EAAe36B,EAAE46B,UAAYA,EAAU56B,GAGvC66B,EAAiBC,GAAYA,EAASv4B,KAAKf,KAAMxB,EAAGlC,GACpDi9B,EAAcF,GAAkBA,EAAezjB,IAAI,SAAUtZ,GAAK,MAAOkC,GAAElC,KAI3Ek9B,EAAiBH,EACjB1+B,EAAGyJ,MAAM,EAAGi1B,EAAe,IAAI9f,OAAO5e,EAAGyJ,MAAMi1B,EAAe,GAAK,EAAGt6B,IAAMpE,EAAGyJ,MAAMrF,GAGrF06B,EAAK9+B,EAAG4S,MAAMQ,SACb3P,OAAOA,GAAUA,EAAO2C,KAAKf,KAAMxB,EAAGlC,KAAO2F,EAAKC,IAClDkC,OAAOiB,EAAQ,IAGhBotB,EAAKzyB,KAAK05B,WAAa/+B,EAAG4S,MAAMQ,SAC/B3P,QAAQ,EAAGuG,EAAAA,IACXP,MAAMq1B,EAAGr1B,QAGdpE,MAAK05B,UAAYD,CAQjB,IAAIE,GAASrxB,EAAEQ,UAAU,eACpBT,KAAKkxB,GAAeA,MAEzBI,GAAO9oB,QAAQN,OAAO,OAAQ,QACzBpL,KAAK,QAAS,UACdA,KAAK,KAAMC,EAAQ,GACnBD,KAAK,KAAM,SAAU3G,GAAK,MAAOi0B,GAAGj0B,EAAE,MACtC2G,KAAK,KAAMC,EAAQ,GACnBD,KAAK,KAAM,SAAU3G,GAAK,MAAOi0B,GAAGj0B,EAAE,MACtCiL,MAAM,UAAW,MACnBhM,aACEE,SAASA,GACT8L,MAAM,UAAW,GACjBtE,KAAK,KAAM,SAAU3G,GAAK,MAAOi7B,GAAGj7B,EAAE,MACtC2G,KAAK,KAAM,SAAU3G,GAAK,MAAOi7B,GAAGj7B,EAAE,MAE3Cm7B,EAAOl8B,aACFE,SAASA,GACT8L,MAAM,UAAW,GACjBtE,KAAK,KAAM,SAAU3G,GAAK,MAAOi7B,GAAGj7B,EAAE,MACtC2G,KAAK,KAAM,SAAU3G,GAAK,MAAOi7B,GAAGj7B,EAAE,MAE3Cm7B,EAAO5oB,OAAOtT,aACTE,SAASA,GACT8L,MAAM,UAAW,MACjBtE,KAAK,KAAM,SAAU3G,GAAK,MAAOi7B,GAAGj7B,EAAE,MACtC2G,KAAK,KAAM,SAAU3G,GAAK,MAAOi7B,GAAGj7B,EAAE,MACtC8K,QAGL,IAAI4vB,GAAM5wB,EAAEQ,UAAU,YACjBT,MAAM8wB,GAEXD,GAAIroB,QAAQ9N,OAAO,QACdoC,KAAK,QAAS,OACdA,KAAK,IAAK,GACVA,KAAK,IAAK,SAAU3G,GAAK,MAAOi0B,GAAGj0B,EAAE,MACrC2G,KAAK,QAASC,GACdD,KAAK,SAAU,SAAU3G,GAAK,MAAOi0B,GAAGj0B,EAAE,IAAMi0B,EAAGj0B,EAAE,MACvDf,aACEE,SAASA,GACTwH,KAAK,IAAK,SAAU3G,GAAK,MAAOi7B,GAAGj7B,EAAE,MACrC2G,KAAK,SAAU,SAAU3G,GAAK,MAAOi7B,GAAGj7B,EAAE,IAAMi7B,EAAGj7B,EAAE,MAE1D06B,EAAIz7B,aACCE,SAASA,GACTwH,KAAK,IAAK,SAAU3G,GAAK,MAAOi7B,GAAGj7B,EAAE,MACrC2G,KAAK,SAAU,SAAU3G,GAAK,MAAOi7B,GAAGj7B,EAAE,IAAMi7B,EAAGj7B,EAAE,KAG1D,IAAIo7B,GAAatxB,EAAEQ,UAAU,eACxBT,MAAM8wB,EAAa,IAExBS,GAAW/oB,QAAQ9N,OAAO,QACrBoC,KAAK,QAAS,UACdA,KAAK,KAAM,GACXA,KAAK,KAAMstB,GACXttB,KAAK,KAAMC,GACXD,KAAK,KAAMstB,GACXh1B,aACAE,SAASA,GACTwH,KAAK,KAAMs0B,GACXt0B,KAAK,KAAMs0B,GAEhBG,EAAWn8B,aACNE,SAASA,GACTwH,KAAK,KAAMs0B,GACXt0B,KAAK,KAAMs0B,EAGhB,IAAII,GAAUvxB,EAAEQ,UAAU,gBACrBT,KAAKkxB,MAEVM,GAAQhpB,QAAQN,OAAO,OAAQ,gBAC1BpL,KAAK,QAAS,WACdA,KAAK,KAAM,GACXA,KAAK,KAAMstB,GACXttB,KAAK,KAAMC,GACXD,KAAK,KAAMstB,GACXhpB,MAAM,UAAW,MACnBhM,aACEE,SAASA,GACTwH,KAAK,KAAMs0B,GACXt0B,KAAK,KAAMs0B,GACXhwB,MAAM,UAAW,GAEtBowB,EAAQp8B,aACHE,SAASA,GACTwH,KAAK,KAAMs0B,GACXt0B,KAAK,KAAMs0B,GACXhwB,MAAM,UAAW,GAEtBowB,EAAQ9oB,OAAOtT,aACVE,SAASA,GACTwH,KAAK,KAAMs0B,GACXt0B,KAAK,KAAMs0B,GACXhwB,MAAM,UAAW,MACjBH,QAGL,IAAIwwB,GAAUxxB,EAAEQ,UAAU,kBACrBT,KAAKmxB,EAAgBO,OAE1BD,GAAQjpB,QAAQN,OAAO,SAAU,QAC5BpL,KAAK,QAAS,WACdA,KAAK,IAAK,GACVA,KAAK,KAAMC,EAAQ,GACnBD,KAAK,KAAM,SAAU7I,GAAK,MAAOm2B,GAAGj0B,EAAElC,MACtCmN,MAAM,UAAW,MACjBhM,aACAE,SAASA,GACTwH,KAAK,KAAM,SAAU7I,GAAK,MAAOm9B,GAAGj7B,EAAElC,MACtCmN,MAAM,UAAW,GAEtBqwB,EAAQr8B,aACHE,SAASA,GACTwH,KAAK,KAAM,SAAU7I,GAAK,MAAOm9B,GAAGj7B,EAAElC,MACtCmN,MAAM,UAAW,GAEtBqwB,EAAQ/oB,OAAOtT,aACVE,SAASA,GACTwH,KAAK,KAAM,SAAU7I,GAAK,MAAOm9B,GAAGj7B,EAAElC,MACtCmN,MAAM,UAAW,MACjBH,QAGL,IAAI/I,GAASy5B,GAAcP,EAAGO,WAAW,GAGrCC,EAAU3xB,EAAEQ,UAAU,YACrBT,KAAK8wB,EAEVc,GAAQppB,QAAQ9N,OAAO,QAClBoC,KAAK,QAAS,OACdA,KAAK,KAAM,QACXA,KAAK,KAAM,SAAU3G,EAAGlC,GAAK,MAAW,GAAJA,EAAQ,EAAI,KAChD6I,KAAK,IAAK,SAAU3G,EAAGlC,GAAK,MAAW,GAAJA,EAAQ8I,EAAQ,IACnDD,KAAK,IAAKstB,GACVttB,KAAK,cAAe,SAAU3G,EAAGlC,GAAK,MAAW,GAAJA,EAAQ,QAAU,QAC/DoN,KAAKnJ,GACL9C,aACAE,SAASA,GACTwH,KAAK,IAAKs0B,GAEfQ,EAAQx8B,aACHE,SAASA,GACT+L,KAAKnJ,GACL4E,KAAK,IAAKs0B,EAKf,IAAIS,GAAc5xB,EAAEQ,UAAU,gBACzBT,KAAKkxB,MAEVW,GAAYrpB,QAAQ9N,OAAO,QACtBoC,KAAK,QAAS,WACdA,KAAK,KAAM,QACXA,KAAK,KAAM,GACXA,KAAK,IAAKC,GACVD,KAAK,IAAKstB,GACV/oB,KAAKnJ,GACLkJ,MAAM,UAAW,MACjBhM,aACAE,SAASA,GACTwH,KAAK,IAAKs0B,GACVhwB,MAAM,UAAW,GAEtBywB,EAAYz8B,aACPE,SAASA,GACT+L,KAAKnJ,GACL4E,KAAK,IAAKs0B,GACVhwB,MAAM,UAAW,GAEtBywB,EAAYnpB,OAAOtT,aACdE,SAASA,GACTwH,KAAK,IAAKs0B,GACVhwB,MAAM,UAAW,MACjBH,WAET3O,EAAGw/B,MAAMC,QArOb,GAAIh1B,GAAQ,EACRC,EAAS,EACT1H,EAAW,EACXS,EAAS,KACTkG,EAAQy1B,OACRT,EAAWP,EACXK,EAAYJ,EACZgB,EAAa,IAiSjB,OAhEAd,GAAI9zB,MAAQ,SAAUR,GAClB,MAAKrF,WAAUhD,QAGf6I,EAAQR,EACDs0B,GAHI9zB,GAMf8zB,EAAI7zB,OAAS,SAAUT,GACnB,MAAKrF,WAAUhD,QAGf8I,EAAST,EACFs0B,GAHI7zB,GAMf6zB,EAAIc,WAAa,SAAUp1B,GACvB,MAAKrF,WAAUhD,QAGfy9B,EAAap1B,EACNs0B,GAHIc,GAMfd,EAAIv7B,SAAW,SAAUiH,GACrB,MAAKrF,WAAUhD,QAGfoB,EAAWiH,EACJs0B,GAHIv7B,GAMfu7B,EAAI96B,OAAS,SAAUwG,GACnB,MAAKrF,WAAUhD,QAGf6B,EAAe,OAANwG,EAAaA,EAAIjK,EAAGoN,QAAQnD,GAC9Bs0B,GAHI96B,GAMf86B,EAAI50B,MAAQ,SAAUM,GAClB,MAAKrF,WAAUhD,QAGf+H,EAAQM,EACDs0B,GAHI50B,GAMf40B,EAAII,SAAW,SAAU10B,GACrB,MAAKrF,WAAUhD,QAGf+8B,EAAW10B,EACJs0B,GAHII,GAMfJ,EAAIE,UAAY,SAAUx0B,GACtB,MAAKrF,WAAUhD,QAGf68B,EAAYx0B,EACLs0B,GAHIE,GAMRF,MA6Cfr+B,EAAGw/B,QAAU,SAAU53B,EAAQuG,GAI3B,QAASsxB,GAAsBC,GAC3B,MAAO,UAAU/7B,GAQb,IAPA,GAAIg8B,GAAKh8B,EAAE46B,UAAU,GACjBqB,EAAKj8B,EAAE46B,UAAU,GACjBsB,GAAOD,EAAKD,GAAMD,EAClBj+B,EAAI,GACJywB,EAAIvuB,EAAEjC,OAGHiC,IAAIlC,GAAKk+B,EAAKE,IACrB,KAAOl8B,IAAIuuB,GAAK0N,EAAKC,IAErB,OAAQp+B,EAAGywB,IA0GnB,QAAS4N,GAAYC,GACjB,GAAIC,GAAcD,EAAO/pB,QAAQ9N,OAAO,IAExC83B,GACK11B,KAAK,QAAS,OACdA,KAAK,YAAa21B,GAClB/5B,KAAKg6B,GACLzuB,GAAG,QAAS,SAAU9N,GACnBuG,EAAOrE,OAAOlC,EAAEid,KAChB1W,EAAOuF,gBAInB,QAAS0wB,GAAYJ,GACjB//B,EAAG4C,WAAWm9B,EAAQ71B,EAAO6E,sBACxBzE,KAAK,YAAa21B,GAClB/5B,KAAKg6B,GACL5wB,KAAK,WACFxP,EAAGkI,OAAO7C,MAAM6C,OAAO,YAAYsC,KAAK,OAAQJ,EAAOwJ,YAInE,QAAS0sB,GAAYL,GACjBA,EAAO7pB,OAAOzH,SAASvI,KAAKg6B,GAhJhC,GAAIh2B,GAASlK,EAAG4T,wBAoBZysB,EAAoB,IACpBC,EAAeb,EACfc,EAAYD,EAAaD,GAEzBH,EAAOpgC,EAAGu+B,MACVmC,EAAc,KAEdC,EAAY,SAAUC,EAAiBjmB,GACvC,MAAIvQ,GAAOqK,YACArK,EAAOH,IAAIsd,YAEXqZ,GAAmB,EAAIx2B,EAAOy2B,cAAgBlmB,EAK7DvQ,GAAOoS,aAAa,IAGpBpS,EAAOH,EAAEjK,EAAG4S,MAAMpP,WAClB4G,EAAOuQ,OAAOza,EAAGkD,MAAMI,SAKvB4G,EAAOsD,KAAK,SAAUxM,GAClB,MAAOA,GAAMgM,MAAM+N,IAAI,SAAUpX,GAE7B,MADAA,GAAEoX,IAAM,SAAUgD,GAAY,MAAOA,GAAS7X,KAAKvC,EAAGA,IAC/CA,IACRkC,OAAO,SAAUlC,GAChB,GAAIsa,GAAS/T,EAAOoC,gBAAgB3I,EACpC,OAAyB,KAAlBsa,EAAOvc,WAYtBwI,EAAOy2B,WAAaz2B,EAAOgL,kBAC3BhL,EAAOy2B,WAAW,IASlBz2B,EAAOie,aAAeje,EAAOkL,uBAC7BlL,EAAOie,aAAa,IAQpBje,EAAOkzB,SAAW,SAAU34B,GACxB,MAAKC,WAAUhD,QAGf++B,EAAY3gC,EAAGoN,QAAQzI,GAChByF,GAHIu2B,EAMf,IAAIR,GAAe,SAAUt8B,EAAGlC,GAC5B,GAAIm/B,GAAU12B,EAAOH,IAAIG,EAAOmC,cAAc1I,EAAGlC,GACjD,OAAO,aAAem/B,EAAU,OA0GpC,OAvGA12B,GAAOkT,gBAAkB,WACjBlT,EAAOsK,YACPtK,EAAOH,IAAIxG,YAInB2G,EAAO6M,SAAW,WACd,GAAI8pB,GAAsBJ,EAAUv2B,EAAOoI,iBAAkBpI,EAAO0Q,aAEpEslB,GAAKzB,SAAS8B,GACTh2B,MAAMs2B,GACNr2B,OAAON,EAAOqI,mBACd9I,MAAMS,EAAOoC,iBACb/I,OAAO2G,EAAOF,IAAIzG,UAClBT,SAASoH,EAAO6E,sBAChBowB,WAAWqB,EAEhB,IAAIT,GAAS71B,EAAOqQ,aAAatM,UAAU,SAAST,KAAKtD,EAAOsD,OAAQ,SAAU7J,GAAK,MAAOA,GAAEid,KAEhGkf,GAAYC,GACZI,EAAYJ,GACZK,EAAYL,GAEZ71B,EAAO+S,sBA6BX/S,EAAO+S,mBAAqB,WAEpB/S,EAAOuD,IAAIQ,UAAU,SAASqB,KAD9BpF,EAAOgG,YAC4B,SAAUvM,GACrCuG,EAAOyY,eAAehf,GACtBuG,EAAOwG,kBAAkBvL,MAEzB+E,EAAOyG,eAAexL,OAIK,WAC/B+E,EAAO0G,eAAezL,SAKlC+E,EAAOyY,eAAiB,SAAUhf,GAC9B,MAAOuG,GAAOgG,UAAUvM,EAAEid,MAG9B1W,EAAOiR,SAAW,WACd,GAAI/T,GAAMtH,EAAGsH,IAAI8C,EAAOsD,OAAQ,SAAUpM,GACtC,MAAOtB,GAAGsH,IAAI8C,EAAOoC,gBAAgBlL,KAEzC,OAAOpB,GAAG6D,MAAMmD,SAASI,EAAK8C,EAAOoS,iBAGzCpS,EAAOkR,SAAW,WACd,GAAI/T,GAAMvH,EAAGuH,IAAI6C,EAAOsD,OAAQ,SAAUpM,GACtC,MAAOtB,GAAGuH,IAAI6C,EAAOoC,gBAAgBlL,KAEzC,OAAOpB,GAAG6D,MAAM0C,IAAIc,EAAK6C,EAAOoS,iBAYpCpS,EAAOi1B,WAAa,SAAUp1B,GAC1B,MAAKrF,WAAUhD,QAGf8+B,EAAcz2B,EACPG,GAHIs2B,GAMRt2B,EAAOgE,OAAOtG,EAAQuG,IAKjCnO,EAAG8gC,oBAAsB9gC,EAAGmhB,YAC5BnhB,EAAG+gC,UAAY/gC,EAAGiK,UAClBjK,EAAGghC,OAAShhC,EAAG8f,SACf9f,EAAGihC,WAAajhC,EAAGwS,WACnBxS,EAAGkhC,oBAAsBlhC,EAAG4T,oBAC5B5T,EAAGmhC,WAAanhC,EAAG8R,YACnB9R,EAAGohC,eAAiBphC,EAAG0d,WAIvB1d,EAAGF,GAAKA,EACRE,EAAGD,YAAcA,EAEVC,EACH,GAAqB,kBAAXqhC,SAAyBA,OAAOC,IACtCD,QAAQ,KAAM,eAAgBxhC,OAC3B,IAAqB,gBAAX0hC,SAAuBA,OAAOC,QAAS,CACpD,GAAIC,GAAMC,QAAQ,MACdC,EAAeD,QAAQ,cAMC,mBAAjBC,KACPA,EAAeA,EAAa5hC,aAEhCwhC,OAAOC,QAAU3hC,EAAI4hC,EAAKE,OAE1Bx8B,MAAKnF,GAAKH,EAAIC,GAAIC"} \ No newline at end of file +{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_legendLabelAccessor","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","legendLabelAccessor","label","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 65220df08..10ea7f340 100644 --- a/package.json +++ b/package.json @@ -26,37 +26,33 @@ }, "dependencies": { "crossfilter": "1.x", - "d3": "3.x", - "load-grunt-tasks": "^3.1.0", - "time-grunt": "^1.1.1" + "d3": "3.x" }, "devDependencies": { "emu": "~0.0.2", - "grunt": "~0.4.5", - "grunt-browserify": "~3.3.0", - "grunt-cli": "~0.1.13", + "grunt": "~0.4.1", + "grunt-browserify": "^3.2.1", + "grunt-cli": "~0.1.9", "grunt-contrib-concat": "~0.5.0", "grunt-contrib-connect": "~0.9.0", "grunt-contrib-copy": "~0.7.0", "grunt-contrib-jasmine": "~0.8.2", - "grunt-contrib-jshint": "~0.11.0", - "grunt-contrib-uglify": "~0.8.0", + "grunt-contrib-jshint": "~0.10.0", + "grunt-contrib-uglify": "~0.7.0", "grunt-contrib-watch": "~0.6.1", - "grunt-debug-task": "~0.1.5", + "grunt-debug-task": "~0.1.4", "grunt-docco2": "~0.2.0", "grunt-fileindex": "^0.1.0", "grunt-gh-pages": "~0.9.1", "grunt-jscs": "~1.2.0", "grunt-lib-phantomjs": "~0.6.0", - "grunt-markdown": "~0.7.0", - "grunt-saucelabs": "~8.5.0", + "grunt-markdown": "~0.6.1", + "grunt-saucelabs": "~8.4.1", + "grunt-sed": "~0.1.1", "grunt-shell": "~1.1.1", - "grunt-template-jasmine-istanbul": "~0.3.2", - "load-grunt-tasks": "~3.0.0", - "jsdifflib": "~1.1.0", - "marked": "~0.3.3", - "uglify-js": "2.4.x", - "time-grunt": "~1.0.0" + "grunt-template-jasmine-istanbul": "~0.3.1", + "marked": "~0.3.2", + "uglify-js": "2.4.x" }, "scripts": { "test": "grunt test" diff --git a/spec/composite-chart-spec.js b/spec/composite-chart-spec.js index 279786bcd..aa8524c17 100644 --- a/spec/composite-chart-spec.js +++ b/spec/composite-chart-spec.js @@ -327,7 +327,7 @@ describe('dc.compositeChart', function() { dateValueGroupLine2.on("click")(dateValueGroupLine2.datum()); expect(dateValueGroupLine2.text()).toBe('Date Value Group Line 2'); - expect(d3.select(chart.selectAll('g.dc-legend g.dc-legend-item')[0][3]).classed("fadeout")).toBeTruthy(); + expect(d3.select(chart.selectAll('g.dc-legend g.dc-legend-item')[0][3]).classed("fadeout")).toBeTruthy(); expect(chart.selectAll("path.line").size()).toEqual(3); }); }); diff --git a/spec/core-spec.js b/spec/core-spec.js index 2c51285c3..c1e60b57d 100644 --- a/spec/core-spec.js +++ b/spec/core-spec.js @@ -80,20 +80,6 @@ describe('dc.core', function() { dc.deregisterChart(chartGrouped, chartGroup); expect(dc.hasChart(chartGrouped)).toBeFalsy(); }); - - it('should have switched to an existing group', function () { - chart.chartGroup(chartGroup); - expect(dc.hasChart(chart)).toBeTruthy(); - expect(dc.chartRegistry.list(chartGroup).indexOf(chart) > -1).toBeTruthy(); - expect(dc.chartRegistry.list(null).indexOf(chart) > -1).toBeFalsy(); - }); - - it('should have switched to the global group', function () { - chart.chartGroup(null); - expect(dc.hasChart(chart)).toBeTruthy(); - expect(dc.chartRegistry.list(chartGroup).indexOf(chart) > -1).toBeFalsy(); - expect(dc.chartRegistry.list(null).indexOf(chart) > -1).toBeTruthy(); - }); }); describe('transition', function() { diff --git a/src/banner.js b/src/banner.js index 59be0972f..153885e9e 100644 --- a/src/banner.js +++ b/src/banner.js @@ -1,2 +1,20 @@ +/*! + * dc %VERSION% + * http://dc-js.github.io/dc.js/ + * Copyright 2012 Nick Zhu and other contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + (function() { function _dc(d3, crossfilter) { 'use strict'; diff --git a/src/base-mixin.js b/src/base-mixin.js index c7162cf68..370d1d99e 100644 --- a/src/base-mixin.js +++ b/src/base-mixin.js @@ -13,7 +13,6 @@ dc.baseMixin = function (_chart) { var _anchor; var _root; var _svg; - var _isChild; var _minWidth = 200; var _defaultWidth = function (element) { @@ -301,13 +300,11 @@ dc.baseMixin = function (_chart) { if (dc.instanceOfChart(a)) { _anchor = a.anchor(); _root = a.root(); - _isChild = true; } else { _anchor = a; _root = d3.select(_anchor); _root.classed(dc.constants.CHART_CLASS, true); dc.registerChart(_chart, chartGroup); - _isChild = false; } _chartGroup = chartGroup; return _chart; @@ -1033,13 +1030,7 @@ dc.baseMixin = function (_chart) { if (!arguments.length) { return _chartGroup; } - if (!_isChild) { - dc.deregisterChart(_chart, _chartGroup); - } _chartGroup = _; - if (!_isChild) { - dc.registerChart(_chart, _chartGroup); - } return _chart; }; diff --git a/src/core.js b/src/core.js index 3f08b65e9..1db554ccb 100644 --- a/src/core.js +++ b/src/core.js @@ -1,5 +1,5 @@ /** -#### Version <%= conf.pkg.version %> +#### Version %VERSION% The entire dc.js library is scoped under the **dc** name space. It does not introduce anything else into the global name space. #### Function Chaining @@ -20,7 +20,7 @@ that are chainable d3 objects.) /*jshint -W062*/ /*jshint -W079*/ var dc = { - version: '<%= conf.pkg.version %>', + version: '%VERSION%', constants: { CHART_CLASS: 'dc-chart', DEBUG_GROUP_CLASS: 'debug', diff --git a/web/docs/index.html b/web/docs/index.html index 808c5b20e..4d9184487 100644 --- a/web/docs/index.html +++ b/web/docs/index.html @@ -149,10 +149,9 @@

    Function Chaining

    Most dc functions are designed to allow function chaining, meaning they return the current chart instance whenever it is appropriate. This way chart configuration can be written in the following style:

    -
    chart.width(300)
    -.height(300)
    -.filter('sunday')
    -
    +
    chart.width(300)
    +.height(300)
    +.filter('sunday')

    The getter forms of functions do not participate in function chaining because they necessarily return values that are not the chart. (Although some, such as .svg and .xAxis, return values that are chainable d3 objects.)

    @@ -178,41 +177,37 @@

    dc.units.integers

    dc.units.integers is the default value for xUnits for the Coordinate Grid Chart and should be used when the x values are a sequence of integers.

    It is a function that counts the number of integers in the range supplied in its start and end parameters.

    -
    chart.xUnits(dc.units.integers) // already the default
    -
    +
    chart.xUnits(dc.units.integers) // already the default

    dc.units.ordinal

    This argument can be passed to the xUnits function of the to specify ordinal units for the x axis. Usually this parameter is used in combination with passing d3.scale.ordinal() to .x.

    It just returns the domain passed to it, which for ordinal charts is an array of all values.

    -
    chart.xUnits(dc.units.ordinal)
    -.x(d3.scale.ordinal())
    -
    +
    chart.xUnits(dc.units.ordinal)
    +.x(d3.scale.ordinal())

    dc.units.fp.precision(precision)

    -

    This function generates an argument for the Coordinate Grid Chart’s +

    This function generates an argument for the Coordinate Grid Chart's xUnits function specifying that the x values are floating-point numbers with the given precision.

    The returned function determines how many values at the given precision will fit into the range supplied in its start and end parameters.

    -
    // specify values (and ticks) every 0.1 units
    -chart.xUnits(dc.units.fp.precision(0.1)
    -// there are 500 units between 0.5 and 1 if the precision is 0.001
    -var thousandths = dc.units.fp.precision(0.001);
    -thousandths(0.5, 1.0) // returns 500
    -
    +
    // specify values (and ticks) every 0.1 units
    +chart.xUnits(dc.units.fp.precision(0.1)
    +// there are 500 units between 0.5 and 1 if the precision is 0.001
    +var thousandths = dc.units.fp.precision(0.001);
    +thousandths(0.5, 1.0) // returns 500

    dc.events.trigger(function[, delay])

    This function triggers a throttled event function with a specified delay (in milli-seconds). Events that are triggered repetitively due to user interaction such brush dragging might flood the library and invoke more renders than can be executed in time. Using this function to wrap your event function allows the library to smooth out the rendering by throttling events and only responding to the most recent event.

    -
    chart.renderlet(function(chart){
    -    // smooth the rendering through event throttling
    -    dc.events.trigger(function(){
    -        // focus some other chart to the range selected by user on this chart
    +
    chart.renderlet(function(chart){
    +    // smooth the rendering through event throttling
    +    dc.events.trigger(function(){
    +        // focus some other chart to the range selected by user on this chart
             someOtherChart.focus(chart.filter());
         });
    -})
    -
    +})

    Filters

    The dc.js filters are functions which are passed into crossfilter to chose which records will be accumulated to produce values for the charts. In the crossfilter model, any filters applied on one @@ -251,13 +246,12 @@

    .height([value])

    function, or falsy. If no value is specified then the value of the current height attribute will be returned.

    By default, without an explicit height being given, the chart will select the width of its -anchor element. If that isn’t possible it defaults to 200. Setting the value falsy will return +anchor element. If that isn't possible it defaults to 200. Setting the value falsy will return the chart to the default behavior

    Examples:

    -
    chart.height(250); // Set the chart's height to 250px;
    -chart.height(function(anchor) { return doSomethingWith(anchor); }); // set the chart's height with a function
    -chart.height(null); // reset the height to the default auto calculation
    -
    +
    chart.height(250); // Set the chart's height to 250px;
    +chart.height(function(anchor) { return doSomethingWith(anchor); }); // set the chart's height with a function
    +chart.height(null); // reset the height to the default auto calculation

    .minWidth([value])

    Set or get the minimum width attribute of a chart. This only applicable if the width is calculated by dc.

    @@ -270,13 +264,13 @@

    .dimension([value]) - mandatoryIf a value is given, then it will be used as the new dimension. If no value is specified then the current dimension will be returned.

    .data([callback])

    -

    Set the data callback or retrieve the chart’s data set. The data callback is passed the chart’s +

    Set the data callback or retrieve the chart's data set. The data callback is passed the chart's group and by default will return group.all(). This behavior may be modified to, for instance, return only the top 5 groups:

    -
        chart.data(function(group) {
    -        return group.top(5);
    -    });
    -

    .group([value, [name]]) - mandatory

    +
        chart.data(function(group) {
    +        return group.top(5);
    +    });
    +

    .group([value, [name]]) - mandatory

    Set or get the group attribute of a chart. In dc a group is a crossfilter group. Usually the group should be created from the particular dimension associated with the same chart. If a value is @@ -288,27 +282,25 @@

    .ordering([orderFunction])

    .filterAll()

    Clear all filters associated with this chart.

    .select(selector)

    -

    Execute d3 single selection in the chart’s scope using the given selector and return the d3 +

    Execute d3 single selection in the chart's scope using the given selector and return the d3 selection. Roughly the same as:

    -
    d3.select('#chart-id').select(selector);
    -
    +
    d3.select('#chart-id').select(selector);

    This function is not chainable since it does not return a chart instance; however the d3 selection result can be chained to d3 function calls.

    .selectAll(selector)

    Execute in scope d3 selectAll using the given selector and return d3 selection result. Roughly the same as:

    -
    d3.select('#chart-id').selectAll(selector);
    -
    +
    d3.select('#chart-id').selectAll(selector);

    This function is not chainable since it does not return a chart instance; however the d3 selection result can be chained to d3 function calls.

    .anchor([anchorChart|anchorSelector|anchorNode], [chartGroup])

    -

    Set the svg root to either be an existing chart’s root; or any valid d3 single +

    Set the svg root to either be an existing chart's root; or any valid d3 single selector specifying a dom block element such as a div; or a dom element or d3 selection. Optionally registers the chart within the chartGroup. This class is called internally on chart initialization, but be called again to relocate the chart. However, it will orphan any previously created SVG elements.

    .anchorName()

    -

    Returns the dom id for the chart’s anchored location.

    +

    Returns the dom id for the chart's anchored location.

    .root([rootElement])

    Returns the root element where a chart resides. Usually it will be the parent div element where the svg was created. You can also pass in a new root element however this is usually handled by @@ -319,7 +311,7 @@

    .svg([svgElement])

    however this is usually handled by dc internally. Resetting the svg element on a chart outside of dc internals may have unexpected consequences.

    .resetSvg()

    -

    Remove the chart’s SVG elements from the dom and recreate the container SVG element.

    +

    Remove the chart's SVG elements from the dom and recreate the container SVG element.

    .filterPrinter([filterPrinterFunction])

    Set or get the filter printer function. The filter printer function is used to generate human friendly text for filter value(s) associated with the chart instance. By default dc charts use a @@ -329,10 +321,10 @@

    .turnOnControls() & .turnOffContro

    Turn on/off optional control elements within the root element. dc currently supports the following html control elements.

      -
    • root.selectAll(‘.reset’) - elements are turned on if the chart has an active filter. This type +
    • root.selectAll('.reset') - elements are turned on if the chart has an active filter. This type of control element is usually used to store a reset link to allow user to reset filter on a certain chart. This element will be turned off automatically if the filter is cleared.
    • -
    • root.selectAll(‘.filter’) elements are turned on if the chart has an active filter. The text +
    • root.selectAll('.filter') elements are turned on if the chart has an active filter. The text content of this element is then replaced with the current filter value using the filter printer function. This type of element will be turned off automatically if the filter is cleared.
    @@ -349,96 +341,91 @@

    .redraw()

    change in the underlying data dimension then calling this method will have no effect on the chart. Most chart interaction in dc will automatically trigger this method through internal events (in particular dc.redrawAll); therefore, you only need to -manually invoke this function if data is manipulated outside of dc’s control (for example if +manually invoke this function if data is manipulated outside of dc's control (for example if data is loaded in the background using crossfilter.add()).

    .hasFilterHandler([function])

    Set or get the has filter handler. The has filter handler is a function that checks to see if -the chart’s current filters include a specific filter. Using a custom has filter handler allows +the chart's current filters include a specific filter. Using a custom has filter handler allows you to change the way filters are checked for and replaced.

    -
    // default has filter handler
    -function (filters, filter) {
    -    if (filter === null || typeof(filter) === 'undefined') {
    -        return filters.length > 0;
    +
    // default has filter handler
    +function (filters, filter) {
    +    if (filter === null || typeof(filter) === 'undefined') {
    +        return filters.length > 0;
         }
    -    return filters.some(function (f) {
    -        return filter <= f && filter >= f;
    +    return filters.some(function (f) {
    +        return filter <= f && filter >= f;
         });
     }
     
    -// custom filter handler (no-op)
    -chart.hasFilterHandler(function(filters, filter) {
    -    return false;
    -});
    -
    +// custom filter handler (no-op) +chart.hasFilterHandler(function(filters, filter) { + return false; +});

    .hasFilter([filter])

    Check whether any active filter or a specific filter is associated with particular chart instance. This function is not chainable.

    .removeFilterHandler([function])

    Set or get the remove filter handler. The remove filter handler is a function that removes a -filter from the chart’s current filters. Using a custom remove filter handler allows you to +filter from the chart's current filters. Using a custom remove filter handler allows you to change how filters are removed or perform additional work when removing a filter, e.g. when using a filter server other than crossfilter.

    Any changes should modify the filters array argument and return that array.

    -
    // default remove filter handler
    -function (filters, filter) {
    -    for (var i = 0; i < filters.length; i++) {
    -        if (filters[i] <= filter && filters[i] >= filter) {
    -            filters.splice(i, 1);
    -            break;
    +
    // default remove filter handler
    +function (filters, filter) {
    +    for (var i = 0; i < filters.length; i++) {
    +        if (filters[i] <= filter && filters[i] >= filter) {
    +            filters.splice(i, 1);
    +            break;
             }
         }
    -    return filters;
    +    return filters;
     }
     
    -// custom filter handler (no-op)
    -chart.removeFilterHandler(function(filters, filter) {
    -    return filters;
    -});
    -
    +// custom filter handler (no-op) +chart.removeFilterHandler(function(filters, filter) { + return filters; +});

    .addFilterHandler([function])

    Set or get the add filter handler. The add filter handler is a function that adds a filter to -the chart’s filter list. Using a custom add filter handler allows you to change the way filters +the chart's filter list. Using a custom add filter handler allows you to change the way filters are added or perform additional work when adding a filter, e.g. when using a filter server other than crossfilter.

    Any changes should modify the filters array argument and return that array.

    -
    // default add filter handler
    -function (filters, filter) {
    +
    // default add filter handler
    +function (filters, filter) {
         filters.push(filter);
    -    return filters;
    -}
    +    return filters;
    +}
     
    -// custom filter handler (no-op)
    -chart.addFilterHandler(function(filters, filter) {
    -    return filters;
    -});
    -
    +// custom filter handler (no-op) +chart.addFilterHandler(function(filters, filter) { + return filters; +});

    .resetFilterHandler([function])

    Set or get the reset filter handler. The reset filter handler is a function that resets the -chart’s filter list by returning a new list. Using a custom reset filter handler allows you to +chart's filter list by returning a new list. Using a custom reset filter handler allows you to change the way filters are reset, or perform additional work when resetting the filters, e.g. when using a filter server other than crossfilter.

    This function should return an array.

    -
    // default remove filter handler
    -function (filters) {
    -    return [];
    -}
    +
    // default remove filter handler
    +function (filters) {
    +    return [];
    +}
     
    -// custom filter handler (no-op)
    -chart.resetFilterHandler(function(filters) {
    -    return filters;
    -});
    -
    +// custom filter handler (no-op) +chart.resetFilterHandler(function(filters) { + return filters; +});

    .filter([filterValue])

    Filter the chart by the given value or return the current filter if the input parameter is missing.

    -
    // filter by a single string
    -chart.filter('Sunday');
    -// filter by a single age
    -chart.filter(18);
    -
    +
    // filter by a single string
    +chart.filter('Sunday');
    +// filter by a single age
    +chart.filter(18);

    .filters()

    Returns all current filters. This method does not perform defensive cloning of the internal filter array before returning, therefore any modification of the returned array will effect the -chart’s internal filter storage.

    +chart's internal filter storage.

    .onClick(datum)

    This function is passed to d3 as the onClick handler for each chart. The default behavior is to filter on the clicked datum (passed to the callback) and redraw the chart group.

    @@ -446,48 +433,44 @@

    .filterHandler([function])

    Set or get the filter handler. The filter handler is a function that performs the filter action on a specific dimension. Using a custom filter handler allows you to perform additional logic before or after filtering.

    -
    // default filter handler
    -function(dimension, filter){
    -    dimension.filter(filter); // perform filtering
    -    return filter; // return the actual filter value
    +
    // default filter handler
    +function(dimension, filter){
    +    dimension.filter(filter); // perform filtering
    +    return filter; // return the actual filter value
     }
     
    -// custom filter handler
    -chart.filterHandler(function(dimension, filter){
    -    var newFilter = filter + 10;
    -    dimension.filter(newFilter);
    -    return newFilter; // set the actual filter value to the new value
    -});
    -
    +// custom filter handler +chart.filterHandler(function(dimension, filter){ + var newFilter = filter + 10; + dimension.filter(newFilter); + return newFilter; // set the actual filter value to the new value +});

    .keyAccessor([keyAccessorFunction])

    Set or get the key accessor function. The key accessor function is used to retrieve the key value from the crossfilter group. Key values are used differently in different charts, for example keys correspond to slices in a pie chart and x axis positions in a grid coordinate chart.

    -
    // default key accessor
    -chart.keyAccessor(function(d) { return d.key; });
    -// custom key accessor for a multi-value crossfilter reduction
    -chart.keyAccessor(function(p) { return p.value.absGain; });
    -
    +
    // default key accessor
    +chart.keyAccessor(function(d) { return d.key; });
    +// custom key accessor for a multi-value crossfilter reduction
    +chart.keyAccessor(function(p) { return p.value.absGain; });

    .valueAccessor([valueAccessorFunction])

    Set or get the value accessor function. The value accessor function is used to retrieve the value from the crossfilter group. Group values are used differently in different charts, for example values correspond to slice sizes in a pie chart and y axis positions in a grid coordinate chart.

    -
    // default value accessor
    -chart.valueAccessor(function(d) { return d.value; });
    -// custom value accessor for a multi-value crossfilter reduction
    -chart.valueAccessor(function(p) { return p.value.percentageGain; });
    -
    +
    // default value accessor
    +chart.valueAccessor(function(d) { return d.value; });
    +// custom value accessor for a multi-value crossfilter reduction
    +chart.valueAccessor(function(p) { return p.value.percentageGain; });

    .label([labelFunction])

    Set or get the label function. The chart class will use this function to render labels for each child element in the chart, e.g. slices in a pie chart or bubbles in a bubble chart. Not every chart supports the label function for example bar chart and line chart do not use this function at all.

    -
    // default label function just return the key
    -chart.label(function(d) { return d.key; });
    -// label function has access to the standard d3 data binding and can get quite complicated
    -chart.label(function(d) { return d.data.key + '(' + Math.floor(d.data.value / all.value() * 100) + '%)'; });
    -
    +
    // default label function just return the key
    +chart.label(function(d) { return d.key; });
    +// label function has access to the standard d3 data binding and can get quite complicated
    +chart.label(function(d) { return d.data.key + '(' + Math.floor(d.data.value / all.value() * 100) + '%)'; });

    .renderLabel(boolean)

    Turn on/off label rendering

    .title([titleFunction])

    @@ -496,17 +479,16 @@

    .title([titleFunction])

    in a pie chart or a bubble in a bubble chart. Almost every chart supports the title function; however in grid coordinate charts you need to turn off the brush in order to see titles, because otherwise the brush layer will block tooltip triggering.

    -
    // default title function just return the key
    -chart.title(function(d) { return d.key + ': ' + d.value; });
    -// title function has access to the standard d3 data binding and can get quite complicated
    -chart.title(function(p) {
    -    return p.key.getFullYear()
    -        + '\n'
    -        + 'Index Gain: ' + numberFormat(p.value.absGain) + '\n'
    -        + 'Index Gain in Percentage: ' + numberFormat(p.value.percentageGain) + '%\n'
    -        + 'Fluctuation / Index Ratio: ' + numberFormat(p.value.fluctuationPercentage) + '%';
    -});
    -
    +
    // default title function just return the key
    +chart.title(function(d) { return d.key + ': ' + d.value; });
    +// title function has access to the standard d3 data binding and can get quite complicated
    +chart.title(function(p) {
    +    return p.key.getFullYear()
    +        + '\n'
    +        + 'Index Gain: ' + numberFormat(p.value.absGain) + '\n'
    +        + 'Index Gain in Percentage: ' + numberFormat(p.value.percentageGain) + '%\n'
    +        + 'Fluctuation / Index Ratio: ' + numberFormat(p.value.fluctuationPercentage) + '%';
    +});

    .renderTitle(boolean)

    Turn on/off title rendering, or return the state of the render title flag if no arguments are given.

    @@ -516,16 +498,15 @@

    .renderlet(renderletFunction)

    right after the chart finishes its own drawing routine, giving you a way to modify the svg elements. Renderlet functions take the chart instance as the only input parameter and you can use the dc API or use raw d3 to achieve pretty much any effect.

    -

    @Deprecated - Use Listeners with a ‘renderlet’ prefix +

    @Deprecated - Use Listeners with a 'renderlet' prefix Generates a random key for the renderlet, which makes it hard for removal.

    -
    // renderlet function
    -chart.renderlet(function(chart){
    -    // mix of dc API and d3 manipulation
    -    chart.select('g.y').style('display', 'none');
    -    // its a closure so you can also access other chart variable available in the closure scope
    +
    // renderlet function
    +chart.renderlet(function(chart){
    +    // mix of dc API and d3 manipulation
    +    chart.select('g.y').style('display', 'none');
    +    // its a closure so you can also access other chart variable available in the closure scope
         moveChart.filter(chart.filter());
    -});
    -
    +});

    .chartGroup([group])

    Get or set the chart group to which this chart belongs. Chart groups are rendered or redrawn together since it is expected they share the same underlying crossfilter data set.

    @@ -538,31 +519,30 @@

    .expireCache()

    .legend([dc.legend])

    Attach a dc.legend widget to this chart. The legend widget will automatically draw legend labels based on the color setting and names associated with each group.

    -
    chart.legend(dc.legend().x(400).y(10).itemHeight(13).gap(5))
    -
    +
    chart.legend(dc.legend().x(400).y(10).itemHeight(13).gap(5))

    .chartID()

    Returns the internal numeric ID of the chart.

    .options(optionsObject)

    Set chart options using a configuration object. Each key in the object will cause the method of the same name to be called with the value to set that attribute for the chart.

    Example:

    -
    chart.options({dimension: myDimension, group: myGroup});
    -

    Listeners

    +
    chart.options({dimension: myDimension, group: myGroup});
    +

    Listeners

    All dc chart instance supports the following listeners.

    -

    .on(‘renderlet’, function(chart, filter){…})

    +

    .on('renderlet', function(chart, filter){...})

    This listener function will be invoked after transitions after redraw and render. Replaces the deprecated .renderlet() method.

    -

    .on(‘preRender’, function(chart){…})

    +

    .on('preRender', function(chart){...})

    This listener function will be invoked before chart rendering.

    -

    .on(‘postRender’, function(chart){…})

    -

    This listener function will be invoked after chart finish rendering including all renderlets’ logic.

    -

    .on(‘preRedraw’, function(chart){…})

    +

    .on('postRender', function(chart){...})

    +

    This listener function will be invoked after chart finish rendering including all renderlets' logic.

    +

    .on('preRedraw', function(chart){...})

    This listener function will be invoked before chart redrawing.

    -

    .on(‘postRedraw’, function(chart){…})

    -

    This listener function will be invoked after chart finish redrawing including all renderlets’ logic.

    -

    .on(‘filtered’, function(chart, filter){…})

    +

    .on('postRedraw', function(chart){...})

    +

    This listener function will be invoked after chart finish redrawing including all renderlets' logic.

    +

    .on('filtered', function(chart, filter){...})

    This listener function will be invoked after a filter is applied, added or removed.

    -

    .on(‘zoomed’, function(chart, filter){…})

    +

    .on('zoomed', function(chart, filter){...})

    This listener function will be invoked after a zoom is triggered.

    Margin Mixin

    Margin is a mixin that provides margin utility functions for both the Row Chart and Coordinate Grid @@ -571,10 +551,9 @@

    .margins([margins])

    Get or set the margins for a particular coordinate grid chart instance. The margins is stored as an associative Javascript array. Default margins: {top: 10, right: 50, bottom: 30, left: 30}.

    The margins can be accessed directly from the getter.

    -
    var leftMargin = chart.margins().left; // 30 by default
    -chart.margins().left = 50;
    -leftMargin = chart.margins().left; // now 50
    -
    +
    var leftMargin = chart.margins().left; // 30 by default
    +chart.margins().left = 50;
    +leftMargin = chart.margins().left; // now 50

    Color Mixin

    The Color Mixin is an abstract chart functional class providing universal coloring support as a mix-in for any concrete chart implementation.

    @@ -582,17 +561,16 @@

    .colors([colorScale])

    Retrieve current color scale or set a new color scale. This methods accepts any function that operates like a d3 scale. If not set the default is d3.scale.category20c().

    -
    // alternate categorical scale
    +
    // alternate categorical scale
     chart.colors(d3.scale.category20b());
     
    -// ordinal scale
    -chart.colors(d3.scale.ordinal().range(['red','green','blue']));
    -// convenience method, the same as above
    -chart.ordinalColors(['red','green','blue']);
    +// ordinal scale
    +chart.colors(d3.scale.ordinal().range(['red','green','blue']));
    +// convenience method, the same as above
    +chart.ordinalColors(['red','green','blue']);
     
    -// set a linear scale
    -chart.linearColors(["#4575b4", "#ffffbf", "#a50026"]);
    -
    +// set a linear scale +chart.linearColors(["#4575b4", "#ffffbf", "#a50026"]);

    .ordinalColors(r)

    Convenience method to set the color scale to d3.scale.ordinal with range r.

    .linearColors(r)

    @@ -601,11 +579,10 @@

    .colorAccessor([colorAccessorFunc

    Set or the get color accessor function. This function will be used to map a data point in a crossfilter group to a color value on the color scale. The default function uses the key accessor.

    -
    // default index based color accessor
    -.colorAccessor(function (d, i){return i;})
    -// color accessor for a multi-value crossfilter reduction
    -.colorAccessor(function (d){return d.value.absGain;})
    -
    +
    // default index based color accessor
    +.colorAccessor(function (d, i){return i;})
    +// color accessor for a multi-value crossfilter reduction
    +.colorAccessor(function (d){return d.value.absGain;})

    .colorDomain([domain])

    Set or get the current domain for the color mapping function. The domain must be supplied as an array.

    @@ -613,7 +590,7 @@

    .colorDomain([domain])

    set by .colors.

    .calculateColorDomain()

    Set the domain by determining the min and max values as retrieved by .colorAccessor over the -chart’s dataset.

    +chart's dataset.

    .getColor(d [, i])

    Get the color for the datum d and counter i. This is used internally by charts to retrieve a color.

    .colorCalculator([value])

    @@ -646,11 +623,10 @@

    .x([xScale]) - mandatory

    Get or set the x scale. The x scale can be any d3 quantitive scale or ordinal scale.

    -
    // set x to a linear scale
    -chart.x(d3.scale.linear().domain([-2500, 2500]))
    -// set x to a time scale to generate histogram
    -chart.x(d3.time.scale().domain([new Date(1985, 0, 1), new Date(2012, 11, 31)]))
    -
    +
    // set x to a linear scale
    +chart.x(d3.scale.linear().domain([-2500, 2500]))
    +// set x to a time scale to generate histogram
    +chart.x(d3.time.scale().domain([new Date(1985, 0, 1), new Date(2012, 11, 31)]))

    .xUnits([xUnits function])

    Set or get the xUnits function. The coordinate grid chart uses the xUnits function to calculate the number of data projections on x axis such as the number of bars for a bar chart or the @@ -660,35 +636,32 @@

    .xUnits([xUnits function])

    d3.time.years are all valid xUnits function. dc.js also provides a few units function, see the Utilities section for a list of built-in units functions. The default xUnits function is dc.units.integers.

    -
    // set x units to count days
    -chart.xUnits(d3.time.days);
    -// set x units to count months
    -chart.xUnits(d3.time.months);
    -
    +
    // set x units to count days
    +chart.xUnits(d3.time.days);
    +// set x units to count months
    +chart.xUnits(d3.time.months);

    A custom xUnits function can be used as long as it follows the following interface:

    -
    // units in integer
    -function(start, end, xDomain) {
    -    // simply calculates how many integers in the domain
    -    return Math.abs(end - start);
    +
    // units in integer
    +function(start, end, xDomain) {
    +    // simply calculates how many integers in the domain
    +    return Math.abs(end - start);
     };
     
    -// fixed units
    -function(start, end, xDomain) {
    -    // be aware using fixed units will disable the focus/zoom ability on the chart
    -    return 1000;
    -};
    -
    +// fixed units +function(start, end, xDomain) { + // be aware using fixed units will disable the focus/zoom ability on the chart + return 1000; +};

    .xAxis([xAxis])

    Set or get the x axis used by a particular coordinate grid chart instance. This function is most useful when x axis customization is required. The x axis in dc.js is an instance of a d3 axis object; therefore it supports any valid d3 axis manipulation. Caution: The x axis is usually generated internally by dc; resetting it may cause unexpected results.

    -
    // customize x axis tick format
    -chart.xAxis().tickFormat(function(v) {return v + '%';});
    -// customize x axis tick values
    -chart.xAxis().tickValues([0, 100, 200, 300]);
    -
    +
    // customize x axis tick format
    +chart.xAxis().tickFormat(function(v) {return v + '%';});
    +// customize x axis tick values
    +chart.xAxis().tickValues([0, 100, 200, 300]);

    .elasticX([boolean])

    Turn on/off elastic x axis behavior. If x axis elasticity is turned on, then the grid chart will attempt to recalculate the x axis range whenever a redraw event is triggered.

    @@ -696,7 +669,7 @@

    .xAxisPadding([padding])

    Set or get x axis padding for the elastic x axis. The padding will be added to both end of the x axis if elasticX is turned on; otherwise it is ignored.

      -
    • padding can be an integer or percentage in string (e.g. ‘10%’). Padding can be applied to +
    • padding can be an integer or percentage in string (e.g. '10%'). Padding can be applied to number or date x axes. When padding a date axis, an integer represents number of days being padded and a percentage string will be treated the same as an integer.
    @@ -726,11 +699,10 @@

    .yAxis([yAxis])

    object; therefore it supports any valid d3 axis manipulation. Caution: The y axis is usually generated internally by dc; resetting it may cause unexpected results.

    -
    // customize y axis tick format
    -chart.yAxis().tickFormat(function(v) {return v + '%';});
    -// customize y axis tick values
    -chart.yAxis().tickValues([0, 100, 200, 300]);
    -
    +
    // customize y axis tick format
    +chart.yAxis().tickFormat(function(v) {return v + '%';});
    +// customize y axis tick values
    +chart.yAxis().tickValues([0, 100, 200, 300]);

    .elasticY([boolean])

    Turn on/off elastic y axis behavior. If y axis elasticity is turned on, then the grid chart will attempt to recalculate the y axis range whenever a redraw event is triggered.

    @@ -750,16 +722,15 @@

    .yAxisPadding([padding])

    Set or get y axis padding for the elastic y axis. The padding will be added to the top of the y axis if elasticY is turned on; otherwise it is ignored.

      -
    • padding can be an integer or percentage in string (e.g. ‘10%’). Padding can be applied to +
    • padding can be an integer or percentage in string (e.g. '10%'). Padding can be applied to number or date axes. When padding a date axis, an integer represents number of days being padded and a percentage string will be treated the same as an integer.

    .round([rounding function])

    Set or get the rounding function used to quantize the selection when brushing is enabled.

    -
    // set x unit round to by month, this will make sure range selection brush will
    -// select whole months
    -chart.round(d3.time.month.round);
    -
    +
    // set x unit round to by month, this will make sure range selection brush will
    +// select whole months
    +chart.round(d3.time.month.round);

    .clipPadding([padding])

    Get or set the padding in pixels for the clip path. Once set padding will be applied evenly to the top, left, right, and bottom when the clip path is generated. If set to zero, the clip area @@ -769,14 +740,13 @@

    .focus([range])

    2 elements ([start, end]) defining a range in the x domain. If the range is not given or set to null, then the zoom will be reset. For focus to work elasticX has to be turned off; otherwise focus will be ignored.

    -
    chart.renderlet(function(chart){
    -    // smooth the rendering through event throttling
    -    dc.events.trigger(function(){
    -        // focus some other chart to the range selected by user on this chart
    +
    chart.renderlet(function(chart){
    +    // smooth the rendering through event throttling
    +    dc.events.trigger(function(){
    +        // focus some other chart to the range selected by user on this chart
             someOtherChart.focus(chart.filter());
         });
    -})
    -
    +})

    .brushOn([boolean])

    Turn on/off the brush-based range filter. When brushing is on then user can drag the mouse across a chart with a quantitative scale to perform range filtering based on the extent of the @@ -792,11 +762,10 @@

    .stack(group[, name, accessor])

    For example, in a stacked bar chart, the bars of each stack will be positioned using the same set of keys on the x axis, while stacked vertically. If name is specified then it will be used to generate the legend label.

    -
    // stack group using default accessor
    -chart.stack(valueSumGroup)
    -// stack group using custom accessor
    -.stack(avgByDayGroup, function(d){return d.value.avgByDay;});
    -
    +
    // stack group using default accessor
    +chart.stack(valueSumGroup)
    +// stack group using custom accessor
    +.stack(avgByDayGroup, function(d){return d.value.avgByDay;});

    .hidableStacks([boolean])

    Allow named stacks to be hidden or shown by clicking on legend items. This does not affect the behavior of hideStack or showStack.

    @@ -813,12 +782,11 @@

    .title([stackName], [titleFunction])

    If the first argument is a stack name, the title function will get or set the title for that stack. If stackName is not provided, the first stack is implied.

    -
    // set a title function on 'first stack'
    -chart.title('first stack', function(d) { return d.key + ': ' + d.value; });
    -// get a title function from 'second stack'
    -var secondTitleFunction = chart.title('second stack');
    -);
    -
    +
    // set a title function on 'first stack'
    +chart.title('first stack', function(d) { return d.key + ': ' + d.value; });
    +// get a title function from 'second stack'
    +var secondTitleFunction = chart.title('second stack');
    +);

    .stackLayout([layout])

    Gets or sets the stack layout algorithm, which computes a baseline for each stack and propagates it to the next. The default is @@ -838,19 +806,18 @@

    .othersGrouper([grouperFunction])

    Get or set the grouper function that will perform the insertion of data for the Others slice if the slices cap is specified. If set to a falsy value, no others will be added. By default the grouper function computes the sum of all values below the cap.

    -
    chart.othersGrouper(function (data) {
    -    // compute the value for others, presumably the sum of all values below the cap
    -    var othersSum  = yourComputeOthersValueLogic(data)
    +
    chart.othersGrouper(function (data) {
    +    // compute the value for others, presumably the sum of all values below the cap
    +    var othersSum  = yourComputeOthersValueLogic(data)
     
    -    // the keys are needed to properly filter when the others element is clicked
    -    var othersKeys = yourComputeOthersKeysArrayLogic(data);
    +    // the keys are needed to properly filter when the others element is clicked
    +    var othersKeys = yourComputeOthersKeysArrayLogic(data);
     
    -    // add the others row to the dataset
    -    data.push({'key': 'Others', 'value': othersSum, 'others': othersKeys });
    +    // add the others row to the dataset
    +    data.push({'key': 'Others', 'value': othersSum, 'others': othersKeys });
     
    -    return data;
    -});
    -
    + return data; +});

    Bubble Mixin

    Includes: Color Mixin

    This Mixin provides reusable functionalities for any chart that needs to visualize data using bubbles.

    @@ -863,7 +830,7 @@

    .radiusValueAccessor([radiusV the r scale to the actual bubble radius. This allows you to encode a data dimension using bubble size.

    .minRadiusWithLabel([radius])

    -

    Get or set the minimum radius for label rendering. If a bubble’s radius is less than this value +

    Get or set the minimum radius for label rendering. If a bubble's radius is less than this value then no label will be rendered. Default: 10

    .maxBubbleRelativeSize([relativeSize])

    Get or set the maximum relative size of a bubble to the length of x axis. This value is useful @@ -886,16 +853,15 @@

    Pie Chart

    a dom block element such as a div; or a dom element or d3 selection.

  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart’s group.

    +Interaction with a chart will only trigger events and redraws within the chart's group.

  • Returns: A newly created pie chart instance

    -
    // create a pie chart under #chart-container1 element using the default global chart group
    -var chart1 = dc.pieChart('#chart-container1');
    -// create a pie chart under #chart-container2 element using chart group A
    -var chart2 = dc.pieChart('#chart-container2', 'chartGroupA');
    -
    +
    // create a pie chart under #chart-container1 element using the default global chart group
    +var chart1 = dc.pieChart('#chart-container1');
    +// create a pie chart under #chart-container2 element using chart group A
    +var chart2 = dc.pieChart('#chart-container2', 'chartGroupA');

    .slicesCap([cap])

    Get or set the maximum number of slices the pie chart will generate. The top slices are determined by value from high to low. Other slices exeeding the cap will be rolled up into one single Others slice. @@ -930,17 +896,16 @@

    Bar Chart

    If the bar chart is a sub-chart in a Composite Chart then pass in the parent composite chart instance.
  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart’s group.
  • +Interaction with a chart will only trigger events and redraws within the chart's group.

    Returns: A newly created bar chart instance

    -
    // create a bar chart under #chart-container1 element using the default global chart group
    -var chart1 = dc.barChart('#chart-container1');
    -// create a bar chart under #chart-container2 element using chart group A
    -var chart2 = dc.barChart('#chart-container2', 'chartGroupA');
    -// create a sub-chart under a composite parent chart
    -var chart3 = dc.barChart(compositeChart);
    -
    +
    // create a bar chart under #chart-container1 element using the default global chart group
    +var chart1 = dc.barChart('#chart-container1');
    +// create a bar chart under #chart-container2 element using chart group A
    +var chart2 = dc.barChart('#chart-container2', 'chartGroupA');
    +// create a sub-chart under a composite parent chart
    +var chart3 = dc.barChart(compositeChart);

    .centerBar(boolean)

    Whether the bar chart will render each bar centered around the data position on x axis. Default: false

    .barPadding([padding])

    @@ -960,11 +925,10 @@

    .alwaysUseRounding([boolean])

    Set or get whether rounding is enabled when bars are centered. Default: false. If false, using rounding with centered bars will result in a warning and rounding will be ignored. This flag has no effect if bars are not centered.

    -

    When using standard d3.js rounding methods, the brush often doesn’t align correctly with +

    When using standard d3.js rounding methods, the brush often doesn't align correctly with centered bars since the bars are offset. The rounding function must add an offset to compensate, such as in the following example.

    -
    chart.round(function(n) {return Math.floor(n)+0.5});
    -
    +
    chart.round(function(n) {return Math.floor(n)+0.5});

    Line Chart

    Includes Stack Mixin, Coordinate Grid Mixin

    Concrete line/area chart implementation.

    @@ -983,18 +947,17 @@

    Line Chart

    chart instance.

  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart’s group.

    +Interaction with a chart will only trigger events and redraws within the chart's group.

  • Returns: A newly created line chart instance

    -
    // create a line chart under #chart-container1 element using the default global chart group
    -var chart1 = dc.lineChart('#chart-container1');
    -// create a line chart under #chart-container2 element using chart group A
    -var chart2 = dc.lineChart('#chart-container2', 'chartGroupA');
    -// create a sub-chart under a composite parent chart
    -var chart3 = dc.lineChart(compositeChart);
    -
    +
    // create a line chart under #chart-container1 element using the default global chart group
    +var chart1 = dc.lineChart('#chart-container1');
    +// create a line chart under #chart-container2 element using chart group A
    +var chart2 = dc.lineChart('#chart-container2', 'chartGroupA');
    +// create a sub-chart under a composite parent chart
    +var chart3 = dc.lineChart(compositeChart);

    .interpolate([value])

    Gets or sets the interpolator to use for lines drawn, by string name, allowing e.g. step functions, splines, and cubic interpolation. This is passed to @@ -1016,11 +979,10 @@

    .defined([value])

    custom reduce functions to get this to work, depending on your data. See https://github.com/dc-js/dc.js/issues/615#issuecomment-49089248

    .dashStyle([array])

    -

    Set the line’s d3 dashstyle. This value becomes the ‘stroke-dasharray’ of line. Defaults to empty +

    Set the line's d3 dashstyle. This value becomes the 'stroke-dasharray' of line. Defaults to empty array (solid line).

    -
     // create a Dash Dot Dot Dot
    - chart.dashStyle([3,1,1,1]);
    -
    +
     // create a Dash Dot Dot Dot
    + chart.dashStyle([3,1,1,1]);

    .renderArea([boolean])

    Get or set render area flag. If the flag is set to true then the chart will render the area beneath each line and the line chart effectively becomes an area chart.

    @@ -1037,15 +999,15 @@

    .renderDataPoints([options])

    If options is falsy, it disables data point rendering.

    If no options are provided, the current options values are instead returned.

    Example:

    -
    chart.renderDataPoints({radius: 2, fillOpacity: 0.8, strokeOpacity: 0.8})
    -

    Data Count Widget

    +
    chart.renderDataPoints({radius: 2, fillOpacity: 0.8, strokeOpacity: 0.8})
    +

    Data Count Widget

    Includes: Base Mixin

    The data count widget is a simple widget designed to display the number of records selected by the current filters out of the total number of records in the data set. Once created the data count widget will automatically update the text content of the following elements under the parent element.

      -
    • ‘.total-count’ - total number of records
    • -
    • ‘.filter-count’ - number of records matched by the current filters
    • +
    • '.total-count' - total number of records
    • +
    • '.filter-count' - number of records matched by the current filters

    Examples:

      @@ -1066,13 +1028,12 @@

      .dimension(allData) - mandatoryFor the data count widget the only valid dimension is the entire data set.

      .group(groupAll) - mandatory

      For the data count widget the only valid group is the group returned by dimension.groupAll().

      -
      var ndx = crossfilter(data);
      -var all = ndx.groupAll();
      +
      var ndx = crossfilter(data);
      +var all = ndx.groupAll();
       
      -dc.dataCount('.dc-data-count')
      +dc.dataCount('.dc-data-count')
          .dimension(ndx)
      -   .group(all);
      -
      + .group(all);

      html([object])

      Gets or sets an optional object specifying HTML templates to use depending how many items are selected. The text %total-count will replaced with the total number of records, and the text @@ -1082,14 +1043,12 @@

      html([object])

    • some: HTML template to use if not all items are selected
    counter.html({
    -    some: '%filter-count out of %total-count records selected',
    -    all: 'All records selected. Click on charts to apply filters'
    -})
    -
    + some: '%filter-count out of %total-count records selected', + all: 'All records selected. Click on charts to apply filters' +})

    formatNumber([formatter])

    Gets or sets an optional function to format the filter count and total count.

    -
    counter.formatNumber(d3.format('.2g'))
    -
    +
    counter.formatNumber(d3.format('.2g'))

    Data Table Widget

    Includes: Base Mixin

    The data table is a simple widget designed to list crossfilter focused data set (rows being @@ -1106,7 +1065,7 @@

    Data Table Widget

    a dom block element such as a div; or a dom element or d3 selection.

  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart’s group.

    +Interaction with a chart will only trigger events and redraws within the chart's group.

  • Returns: @@ -1120,24 +1079,23 @@

    .columns([columnFunctionArray])

    argument d which represents a row in the data set. The return value of these functions will be used directly to generate table content for each cell. However, this method requires the .html table entry to have a fixed set of column headers.

    -
        chart.columns([
    -        function(d) {
    -            return d.date;
    +
        chart.columns([
    +        function(d) {
    +            return d.date;
             },
    -        function(d) {
    -            return d.open;
    +        function(d) {
    +            return d.open;
             },
    -        function(d) {
    -            return d.close;
    +        function(d) {
    +            return d.close;
             },
    -        function(d) {
    -            return numberFormat(d.close - d.open);
    +        function(d) {
    +            return numberFormat(d.close - d.open);
             },
    -        function(d) {
    -            return d.volume;
    +        function(d) {
    +            return d.volume;
             }
    -    ]);
    -
    + ]);

    The next example shows you can simply list the data (d) content directly without specifying it as a function, except where necessary (ie, computed columns). Note the data element accessor name is capitalized when displayed in the table. You can @@ -1145,60 +1103,56 @@

    .columns([columnFunctionArray])

    Object = [Label, Fn] method as shown below. You may wish to override the following two functions, which are internally used to translate the column information or function into a displayed header. The first one -is used on the simple “string” column specifier, the second is used to transform the +is used on the simple "string" column specifier, the second is used to transform the String(fn) into something displayable. For the Stock example, the function for Change -becomes a header of ‘d.close - d.open’. +becomes a header of 'd.close - d.open'. _chart._doColumnHeaderCapitalize _chart._doColumnHeaderFnToString You may use your own Object definition, however you must then override _chart._doColumnHeaderFormat , _chart._doColumnValueFormat Be aware that fields without numberFormat specification will be displayed just as they are stored in the data, unformatted.

        chart.columns([
    -            "date",    // d["date"], ie, a field accessor; capitalized automatically
    -            "open",    // ...
    -            "close",   // ...
    -            ["Change", // Specify an Object = [Label, Fn]
    -                  function (d) {
    -                      return numberFormat(d.close - d.open);
    +            "date",    // d["date"], ie, a field accessor; capitalized automatically
    +            "open",    // ...
    +            "close",   // ...
    +            ["Change", // Specify an Object = [Label, Fn]
    +                  function (d) {
    +                      return numberFormat(d.close - d.open);
                       }],
    -            "volume"   // d["volume"], ie, a field accessor; capitalized automatically
    -    ]);
    -
    + "volume" // d["volume"], ie, a field accessor; capitalized automatically + ]);

    A third example, where all fields are specified using the Object = [Label, Fn] method.

        chart.columns([
    -        ["Date",   // Specify an Object = [Label, Fn]
    -         function (d) {
    -             return d.date;
    +        ["Date",   // Specify an Object = [Label, Fn]
    +         function (d) {
    +             return d.date;
              }],
    -        ["Open",
    -         function (d) {
    -             return numberFormat(d.open);
    +        ["Open",
    +         function (d) {
    +             return numberFormat(d.open);
              }],
    -        ["Close",
    -         function (d) {
    -             return numberFormat(d.close);
    +        ["Close",
    +         function (d) {
    +             return numberFormat(d.close);
              }],
    -        ["Change",
    -         function (d) {
    -             return numberFormat(d.close - d.open);
    +        ["Change",
    +         function (d) {
    +             return numberFormat(d.close - d.open);
              }],
    -        ["Volume",
    -         function (d) {
    -             return d.volume;
    +        ["Volume",
    +         function (d) {
    +             return d.volume;
              }]
    -    ]);
    -
    + ]);

    .sortBy([sortByFunction])

    Get or set sort-by function. This function works as a value accessor at row level and returns a particular field to be sorted by. Default value: identity function

    -
       chart.sortBy(function(d) {
    -        return d.date;
    -    });
    -
    +
       chart.sortBy(function(d) {
    +        return d.date;
    +    });

    .order([order])

    Get or set sort order. Default value: d3.ascending

    -
        chart.order(d3.descending);
    -
    +
        chart.order(d3.descending);

    Data Grid Widget

    Includes: Base Mixin

    Data grid is a simple widget designed to list the filtered records, providing @@ -1216,35 +1170,31 @@

    dc.dataGrid(parent[, chartGroup])

    a dom block element such as a div; or a dom element or d3 selection.

  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart’s group.

    +Interaction with a chart will only trigger events and redraws within the chart's group.

  • Returns: A newly created data grid widget instance

    .size([size])

    Get or set the grid size which determines the number of items displayed by the widget.

    -

    .html( function (data) { return ‘‘; })

    +

    .html( function (data) { return ''; })

    Get or set the function that formats an item. The data grid widget uses a function to generate dynamic html. Use your favourite templating engine or generate the string directly.

    -
    chart.html(function (d) { return '<div class='item '+data.exampleCategory+''>'+data.exampleString+'</div>';});
    -
    -

    .htmlGroup( function (data) { return ‘‘; })

    +
    chart.html(function (d) { return '<div class='item '+data.exampleCategory+''>'+data.exampleString+'</div>';});
    +

    .htmlGroup( function (data) { return ''; })

    Get or set the function that formats a group label.

    -
    chart.htmlGroup (function (d) { return '<h2>'.d.key . 'with ' . d.values.length .' items</h2>'});
    -
    +
    chart.htmlGroup (function (d) { return '<h2>'.d.key . 'with ' . d.values.length .' items</h2>'});

    .sortBy([sortByFunction])

    Get or set sort-by function. This function works as a value accessor at the item level and returns a particular field to be sorted. by. Default: identity function

    -
    chart.sortBy(function(d) {
    -    return d.date;
    -});
    -
    +
    chart.sortBy(function(d) {
    +    return d.date;
    +});

    .order([order])

    Get or set sort order function. Default value: d3.ascending

    -
    chart.order(d3.descending);
    -
    +
    chart.order(d3.descending);

    Bubble Chart

    Includes: Bubble Mixin, Coordinate Grid Mixin

    A concrete implementation of a general purpose bubble chart that allows data visualization using the @@ -1267,15 +1217,14 @@

    Bubble Chart

    d3 single selector specifying a dom block element such as a div; or a dom element or d3 selection.
  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart’s group.
  • +Interaction with a chart will only trigger events and redraws within the chart's group.

    Returns: A newly created bubble chart instance

    -
    // create a bubble chart under #chart-container1 element using the default global chart group
    -var bubbleChart1 = dc.bubbleChart('#chart-container1');
    -// create a bubble chart under #chart-container2 element using chart group A
    -var bubbleChart2 = dc.bubbleChart('#chart-container2', 'chartGroupA');
    -
    +
    // create a bubble chart under #chart-container1 element using the default global chart group
    +var bubbleChart1 = dc.bubbleChart('#chart-container1');
    +// create a bubble chart under #chart-container2 element using chart group A
    +var bubbleChart2 = dc.bubbleChart('#chart-container2', 'chartGroupA');

    .elasticRadius([boolean])

    Turn on or off the elastic bubble radius feature, or return the value of the flag. If this feature is turned on, then bubble radii will be automatically rescaled to fit the chart better.

    @@ -1292,15 +1241,14 @@

    dc.compositeChart(parent[, chartGr d3 single selector specifying a dom block element such as a div; or a dom element or d3 selection.
  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart’s group.
  • +Interaction with a chart will only trigger events and redraws within the chart's group.

    Returns: A newly created composite chart instance

    -
    // create a composite chart under #chart-container1 element using the default global chart group
    -var compositeChart1 = dc.compositeChart('#chart-container1');
    -// create a composite chart under #chart-container2 element using chart group A
    -var compositeChart2 = dc.compositeChart('#chart-container2', 'chartGroupA');
    -
    +
    // create a composite chart under #chart-container1 element using the default global chart group
    +var compositeChart1 = dc.compositeChart('#chart-container1');
    +// create a composite chart under #chart-container2 element using chart group A
    +var compositeChart2 = dc.compositeChart('#chart-container2', 'chartGroupA');

    .useRightAxisGridLines(bool)

    Get or set whether to draw gridlines from the right y axis. Drawing from the left y axis is the default behavior. This option is only respected when subcharts with both left and right y-axes @@ -1312,25 +1260,24 @@

    .rightYAxisLabel([labelText])

    Set or get the right y axis label.

    .compose(subChartArray)

    Combine the given charts into one single composite coordinate grid chart.

    -
    // compose the given charts in the array into one single composite chart
    +
    // compose the given charts in the array into one single composite chart
     moveChart.compose([
    -    // when creating sub-chart you need to pass in the parent chart
    +    // when creating sub-chart you need to pass in the parent chart
         dc.lineChart(moveChart)
    -        .group(indexAvgByMonthGroup) // if group is missing then parent's group will be used
    -        .valueAccessor(function (d){return d.value.avg;})
    -        // most of the normal functions will continue to work in a composed chart
    -        .renderArea(true)
    -        .stack(monthlyMoveGroup, function (d){return d.value;})
    -        .title(function (d){
    -            var value = d.value.avg?d.value.avg:d.value;
    -            if(isNaN(value)) value = 0;
    -            return dateFormat(d.key) + '\n' + numberFormat(value);
    -        }),
    -    dc.barChart(moveChart)
    -        .group(volumeByMonthGroup)
    -        .centerBar(true)
    -]);
    -
    + .group(indexAvgByMonthGroup) // if group is missing then parent's group will be used + .valueAccessor(function (d){return d.value.avg;}) + // most of the normal functions will continue to work in a composed chart + .renderArea(true) + .stack(monthlyMoveGroup, function (d){return d.value;}) + .title(function (d){ + var value = d.value.avg?d.value.avg:d.value; + if(isNaN(value)) value = 0; + return dateFormat(d.key) + '\n' + numberFormat(value); + }), + dc.barChart(moveChart) + .group(volumeByMonthGroup) + .centerBar(true) +]);

    .children()

    Returns the child charts which are composed into the composite chart.

    .shareColors([boolean])

    @@ -1350,11 +1297,10 @@

    .rightYAxis([yAxis])

    object therefore it supports any valid d3 axis manipulation. Caution: The y axis is usually generated internally by dc; resetting it may cause unexpected results.

    -
    // customize y axis tick format
    -chart.rightYAxis().tickFormat(function (v) {return v + '%';});
    -// customize y axis tick values
    -chart.rightYAxis().tickValues([0, 100, 200, 300]);
    -
    +
    // customize y axis tick format
    +chart.rightYAxis().tickFormat(function (v) {return v + '%';});
    +// customize y axis tick values
    +chart.rightYAxis().tickValues([0, 100, 200, 300]);

    Series Chart

    Includes: Composite Chart

    A series chart is a chart that shows multiple series of data overlaid on one chart, where the @@ -1369,30 +1315,29 @@

    dc.seriesChart(parent[, chartGroup])< a dom block element such as a div; or a dom element or d3 selection.

  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart’s group.

    +Interaction with a chart will only trigger events and redraws within the chart's group.

  • Returns: A newly created series chart instance

    -
    // create a series chart under #chart-container1 element using the default global chart group
    -var seriesChart1 = dc.seriesChart("#chart-container1");
    -// create a series chart under #chart-container2 element using chart group A
    -var seriesChart2 = dc.seriesChart("#chart-container2", "chartGroupA");
    -
    +
    // create a series chart under #chart-container1 element using the default global chart group
    +var seriesChart1 = dc.seriesChart("#chart-container1");
    +// create a series chart under #chart-container2 element using chart group A
    +var seriesChart2 = dc.seriesChart("#chart-container2", "chartGroupA");

    .chart([function])

    Get or set the chart function, which generates the child charts. Default: dc.lineChart

    -
    // put interpolation on the line charts used for the series
    -chart.chart(function(c) { return dc.lineChart(c).interpolate('basis'); })
    -// do a scatter series chart
    -chart.chart(dc.scatterPlot)
    -

    .seriesAccessor([accessor])

    +
    // put interpolation on the line charts used for the series
    +chart.chart(function(c) { return dc.lineChart(c).interpolate('basis'); })
    +// do a scatter series chart
    +chart.chart(dc.scatterPlot)
    +

    .seriesAccessor([accessor])

    Get or set accessor function for the displayed series. Given a datum, this function should return the series that datum belongs to.

    .seriesSort([sortFunction])

    Get or set a function to sort the list of series by, given series values.

    Example:

    -
    chart.seriesSort(d3.descending);
    -

    .valueSort([sortFunction])

    +
    chart.seriesSort(d3.descending);
    +

    .valueSort([sortFunction])

    Get or set a function to sort each series values by. By default this is the key accessor which, for example, will ensure a lineChart series connects its points in increasing key/x order, rather than haphazardly.

    @@ -1413,16 +1358,15 @@

    Geo Choropleth Chart

    a dom block element such as a div; or a dom element or d3 selection.

  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart’s group.

    +Interaction with a chart will only trigger events and redraws within the chart's group.

  • Returns: A newly created choropleth chart instance

    -
    // create a choropleth chart under '#us-chart' element using the default global chart group
    -var chart1 = dc.geoChoroplethChart('#us-chart');
    -// create a choropleth chart under '#us-chart2' element using chart group A
    -var chart2 = dc.compositeChart('#us-chart2', 'chartGroupA');
    -
    +
    // create a choropleth chart under '#us-chart' element using the default global chart group
    +var chart1 = dc.geoChoroplethChart('#us-chart');
    +// create a choropleth chart under '#us-chart2' element using chart group A
    +var chart2 = dc.compositeChart('#us-chart2', 'chartGroupA');

    .overlayGeoJson(json, name, keyAccessor) - mandatory

    Use this function to insert a new GeoJson map layer. This function can be invoked multiple times if you have multiple GeoJson data layers to render on top of each other. If you overlay multiple @@ -1431,21 +1375,20 @@

    .overlayGeoJson(json,
    • json - GeoJson feed
    • name - name of the layer
    • -
    • keyAccessor - accessor function used to extract ‘key’ from the GeoJson data. The key extracted by +
    • keyAccessor - accessor function used to extract 'key' from the GeoJson data. The key extracted by this function should match the keys returned by the crossfilter groups.
    -
    // insert a layer for rendering US states
    -chart.overlayGeoJson(statesJson.features, 'state', function(d) {
    -    return d.properties.name;
    -});
    -
    +
    // insert a layer for rendering US states
    +chart.overlayGeoJson(statesJson.features, 'state', function(d) {
    +    return d.properties.name;
    +});

    .projection(projection)

    Set custom geo projection function. See the available d3 geo projection functions. Default value: albersUsa.

    .geoJsons()

    Returns all GeoJson layers currently registered with this chart. The returned array is a -reference to this chart’s internal data structure, so any modification to this array will also -modify this chart’s internal registration.

    +reference to this chart's internal data structure, so any modification to this array will also +modify this chart's internal registration.

    Returns an array of objects containing fields {name, data, accessor}

    .geoPath()

    Returns the d3.geo.path object used to @@ -1471,24 +1414,22 @@

    Bubble Overlay Chart

    a dom block element such as a div; or a dom element or d3 selection. off-screen. Typically this element should also be the parent of the underlying image.
  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart’s group.
  • +Interaction with a chart will only trigger events and redraws within the chart's group.

    Returns: A newly created bubble overlay chart instance

    -
    // create a bubble overlay chart on top of the '#chart-container1 svg' element using the default global chart group
    -var bubbleChart1 = dc.bubbleOverlayChart('#chart-container1').svg(d3.select('#chart-container1 svg'));
    -// create a bubble overlay chart on top of the '#chart-container2 svg' element using chart group A
    -var bubbleChart2 = dc.compositeChart('#chart-container2', 'chartGroupA').svg(d3.select('#chart-container2 svg'));
    -
    +
    // create a bubble overlay chart on top of the '#chart-container1 svg' element using the default global chart group
    +var bubbleChart1 = dc.bubbleOverlayChart('#chart-container1').svg(d3.select('#chart-container1 svg'));
    +// create a bubble overlay chart on top of the '#chart-container2 svg' element using chart group A
    +var bubbleChart2 = dc.compositeChart('#chart-container2', 'chartGroupA').svg(d3.select('#chart-container2 svg'));

    .svg(imageElement) - mandatory

    Set the underlying svg image element. Unlike other dc charts this chart will not generate a svg element; therefore the bubble overlay chart will not work if this function is not invoked. If the underlying image is a bitmap, then an empty svg will need to be created on top of the image.

    -
    // set up underlying svg element
    -chart.svg(d3.select('#chart svg'));
    -
    +
    // set up underlying svg element
    +chart.svg(d3.select('#chart svg'));

    .point(name, x, y) - mandatory

    -

    Set up a data point on the overlay. The name of a data point should match a specific ‘key’ among +

    Set up a data point on the overlay. The name of a data point should match a specific 'key' among data groups generated using keyAccessor. If a match is found (point name <-> data group key) then a bubble will be generated at the position specified by the function. x and y value specified here are relative to the underlying svg.

    @@ -1504,36 +1445,33 @@

    dc.rowChart(parent[, chartGroup])

    a dom block element such as a div; or a dom element or d3 selection.

  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart’s group.

    +Interaction with a chart will only trigger events and redraws within the chart's group.

  • Returns: A newly created row chart instance

    -
    // create a row chart under #chart-container1 element using the default global chart group
    -var chart1 = dc.rowChart('#chart-container1');
    -// create a row chart under #chart-container2 element using chart group A
    -var chart2 = dc.rowChart('#chart-container2', 'chartGroupA');
    -
    +
    // create a row chart under #chart-container1 element using the default global chart group
    +var chart1 = dc.rowChart('#chart-container1');
    +// create a row chart under #chart-container2 element using chart group A
    +var chart2 = dc.rowChart('#chart-container2', 'chartGroupA');

    .x([scale])

    Gets or sets the x scale. The x scale can be any d3 quantitive scale

    .renderTitleLabel(boolean)

    -

    Turn on/off Title label rendering (values) using SVG style of text-anchor ‘end’

    +

    Turn on/off Title label rendering (values) using SVG style of text-anchor 'end'

    .xAxis()

    Get the x axis for the row chart instance. Note: not settable for row charts. See the d3 axis object documention for more information.

    -
    // customize x axis tick format
    -chart.xAxis().tickFormat(function (v) {return v + '%';});
    -// customize x axis tick values
    -chart.xAxis().tickValues([0, 100, 200, 300]);
    -
    +
    // customize x axis tick format
    +chart.xAxis().tickFormat(function (v) {return v + '%';});
    +// customize x axis tick values
    +chart.xAxis().tickValues([0, 100, 200, 300]);

    .fixedBarHeight([height])

    Get or set the fixed bar height. Default is [false] which will auto-scale bars. For example, if you want to fix the height for a specific number of bars (useful in TopN charts) you could fix height as follows (where count = total number of bars in your TopN and gap is your vertical gap space).

    -
     chart.fixedBarHeight( chartheight - (count + 1) * gap / count);
    -
    +
     chart.fixedBarHeight( chartheight - (count + 1) * gap / count);

    .gap([gap])

    Get or set the vertical gap space between rows on a particular row chart instance. Default gap is 5px;

    .elasticX([boolean])

    @@ -1551,8 +1489,7 @@

    .titleLabelOffsetx([x])

    Legend

    Legend is a attachable widget that can be added to other dc charts to render horizontal legend labels.

    -
    chart.legend(dc.legend().x(400).y(10).itemHeight(13).gap(5))
    -
    +
    chart.legend(dc.legend().x(400).y(10).itemHeight(13).gap(5))

    Examples:

    • Nasdaq 100 Index
    • @@ -1589,18 +1526,17 @@

      dc.scatterPlot(parent[, chartGroup])< chart instance.

    • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart’s group.

      +Interaction with a chart will only trigger events and redraws within the chart's group.

    Returns: A newly created scatter plot instance

    -
    // create a scatter plot under #chart-container1 element using the default global chart group
    -var chart1 = dc.scatterPlot('#chart-container1');
    -// create a scatter plot under #chart-container2 element using chart group A
    -var chart2 = dc.scatterPlot('#chart-container2', 'chartGroupA');
    -// create a sub-chart under a composite parent chart
    -var chart3 = dc.scatterPlot(compositeChart);
    -
    +
    // create a scatter plot under #chart-container1 element using the default global chart group
    +var chart1 = dc.scatterPlot('#chart-container1');
    +// create a scatter plot under #chart-container2 element using chart group A
    +var chart2 = dc.scatterPlot('#chart-container2', 'chartGroupA');
    +// create a sub-chart under a composite parent chart
    +var chart3 = dc.scatterPlot(compositeChart);

    .existenceAccessor([accessor])

    Get or set the existence accessor. If a point exists, it is drawn with symbolSize radius and opacity 1; if it does not exist, it is drawn with hiddenSize radius and opacity 0. By default, @@ -1635,9 +1571,8 @@

    Number Display Widget

    Returns: A newly created number display instance

    -
    // create a number display under #chart-container1 element using the default global chart group
    -var display1 = dc.numberDisplay('#chart-container1');
    -
    +
    // create a number display under #chart-container1 element using the default global chart group
    +var display1 = dc.numberDisplay('#chart-container1');

    .html([object])

    Gets or sets an optional object specifying HTML templates to use depending on the number displayed. The text %number will be replaced with the current value.

    @@ -1646,10 +1581,9 @@

    .html([object])

  • zero: HTML template to use if the number is 0
  • some: HTML template to use otherwise

    numberWidget.html({
    -  one:'%number record',
    -  some:'%number records',
    -  none:'no records'})
    -
    + one:'%number record', + some:'%number records', + none:'no records'})
  • .value()

    @@ -1668,28 +1602,25 @@

    dc.heatMap(parent[, chartGroup])

    a dom block element such as a div; or a dom element or d3 selection.

  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart’s group.

    +Interaction with a chart will only trigger events and redraws within the chart's group.

  • Returns: A newly created heat map instance

    -
    // create a heat map under #chart-container1 element using the default global chart group
    -var heatMap1 = dc.heatMap('#chart-container1');
    -// create a heat map under #chart-container2 element using chart group A
    -var heatMap2 = dc.heatMap('#chart-container2', 'chartGroupA');
    -
    +
    // create a heat map under #chart-container1 element using the default global chart group
    +var heatMap1 = dc.heatMap('#chart-container1');
    +// create a heat map under #chart-container2 element using chart group A
    +var heatMap2 = dc.heatMap('#chart-container2', 'chartGroupA');

    .colsLabel([labelFunction])

    Set or get the column label function. The chart class uses this function to render column labels on the X axis. It is passed the column name.

    -
    // the default label function just returns the name
    -chart.colsLabel(function(d) { return d; });
    -
    +
    // the default label function just returns the name
    +chart.colsLabel(function(d) { return d; });

    .rowsLabel([labelFunction])

    Set or get the row label function. The chart class uses this function to render row labels on the Y axis. It is passed the row name.

    -
    // the default label function just returns the name
    -chart.rowsLabel(function(d) { return d; });
    -
    +
    // the default label function just returns the name
    +chart.rowsLabel(function(d) { return d; });

    .rows([values])

    Gets or sets the values used to create the rows of the heatmap, as an array. By default, all the values will be fetched from the data using the value accessor.

    @@ -1718,15 +1649,14 @@

    dc.boxPlot(parent[, chartGroup])

    d3 single selector representing a dom block element such as a div; or a dom element or d3 selection.
  • chartGroup : string (optional) - name of the chart group this chart instance should be placed in. -Interaction with a chart will only trigger events and redraws within the chart’s group.
  • +Interaction with a chart will only trigger events and redraws within the chart's group.

    Returns: A newly created box plot instance

    -
    // create a box plot under #chart-container1 element using the default global chart group
    -var boxPlot1 = dc.boxPlot('#chart-container1');
    -// create a box plot under #chart-container2 element using chart group A
    -var boxPlot2 = dc.boxPlot('#chart-container2', 'chartGroupA');
    -
    +
    // create a box plot under #chart-container1 element using the default global chart group
    +var boxPlot1 = dc.boxPlot('#chart-container1');
    +// create a box plot under #chart-container2 element using chart group A
    +var boxPlot2 = dc.boxPlot('#chart-container2', 'chartGroupA');

    .boxPadding([padding])

    Get or set the spacing between boxes as a fraction of box size. Valid values are within 0-1. See the d3 docs @@ -1736,16 +1666,15 @@

    .outerPadding([padding])

    Get or set the outer padding on an ordinal box chart. This setting has no effect on non-ordinal charts or on charts with a custom .boxWidth. Will pad the width by padding * barWidth on each side of the chart.

    Default: 0.5

    -

    .boxWidth(width || function(innerChartWidth, xUnits) { … })

    +

    .boxWidth(width || function(innerChartWidth, xUnits) { ... })

    Get or set the numerical width of the boxplot box. The width may also be a function taking as parameters the chart width excluding the right and left margins, as well as the number of x units.

    .tickFormat()

    Set the numerical format of the boxplot median, whiskers and quartile labels. Defaults to integer formatting.

    -
    // format ticks to 2 decimal places
    -chart.tickFormat(d3.format('.2f'));
    -
    +
    // format ticks to 2 decimal places
    +chart.tickFormat(d3.format('.2f'));
    diff --git a/web/js/dc.js b/web/js/dc.js index d7dc725e7..f82085ec4 100644 --- a/web/js/dc.js +++ b/web/js/dc.js @@ -1,8 +1,7 @@ /*! * dc 2.1.0-dev * http://dc-js.github.io/dc.js/ - * Copyright 2012-2015 Nick Zhu & the dc.js Developers - * https://github.com/dc-js/dc.js/blob/master/AUTHORS + * Copyright 2012 Nick Zhu and other contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + (function() { function _dc(d3, crossfilter) { 'use strict'; @@ -663,7 +663,6 @@ dc.baseMixin = function (_chart) { var _anchor; var _root; var _svg; - var _isChild; var _minWidth = 200; var _defaultWidth = function (element) { @@ -950,13 +949,11 @@ dc.baseMixin = function (_chart) { if (dc.instanceOfChart(a)) { _anchor = a.anchor(); _root = a.root(); - _isChild = true; } else { _anchor = a; _root = d3.select(_anchor); _root.classed(dc.constants.CHART_CLASS, true); dc.registerChart(_chart, chartGroup); - _isChild = false; } _chartGroup = chartGroup; return _chart; @@ -1661,13 +1658,7 @@ dc.baseMixin = function (_chart) { if (!arguments.length) { return _chartGroup; } - if (!_isChild) { - dc.deregisterChart(_chart, _chartGroup); - } _chartGroup = _; - if (!_isChild) { - dc.registerChart(_chart, _chartGroup); - } return _chart; }; @@ -8762,5 +8753,3 @@ return dc;} } } )(); - -//# sourceMappingURL=dc.js.map \ No newline at end of file diff --git a/web/js/dc.js.map b/web/js/dc.js.map index 53ab290ba..acaab9b7f 100644 --- a/web/js/dc.js.map +++ b/web/js/dc.js.map @@ -1 +1,35 @@ -{"version":3,"sources":["src/banner.js","src/core.js","src/errors.js","src/utils.js","src/logger.js","src/events.js","src/filters.js","src/base-mixin.js","src/margin-mixin.js","src/color-mixin.js","src/coordinate-grid-mixin.js","src/stack-mixin.js","src/cap-mixin.js","src/bubble-mixin.js","src/pie-chart.js","src/bar-chart.js","src/line-chart.js","src/data-count.js","src/data-table.js","src/data-grid.js","src/bubble-chart.js","src/composite-chart.js","src/series-chart.js","src/geo-choropleth-chart.js","src/bubble-overlay.js","src/row-chart.js","src/legend.js","src/scatter-plot.js","src/number-display.js","src/heatmap.js","src/d3.box.js","src/box-plot.js","src/footer.js"],"names":[],"mappings":"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","file":"dc.js","sourcesContent":["(function() { function _dc(d3, crossfilter) {\n'use strict';\n","/**\n#### Version 2.1.0-dev\nThe entire dc.js library is scoped under the **dc** name space. It does not introduce anything else\ninto the global name space.\n#### Function Chaining\nMost dc functions are designed to allow function chaining, meaning they return the current chart\ninstance whenever it is appropriate. This way chart configuration can be written in the following\nstyle:\n```js\nchart.width(300)\n .height(300)\n .filter('sunday')\n```\nThe getter forms of functions do not participate in function chaining because they necessarily\nreturn values that are not the chart. (Although some, such as `.svg` and `.xAxis`, return values\nthat are chainable d3 objects.)\n\n**/\n\n/*jshint -W062*/\n/*jshint -W079*/\nvar dc = {\n version: '2.1.0-dev',\n constants: {\n CHART_CLASS: 'dc-chart',\n DEBUG_GROUP_CLASS: 'debug',\n STACK_CLASS: 'stack',\n DESELECTED_CLASS: 'deselected',\n SELECTED_CLASS: 'selected',\n NODE_INDEX_NAME: '__index__',\n GROUP_INDEX_NAME: '__group_index__',\n DEFAULT_CHART_GROUP: '__default_chart_group__',\n EVENT_DELAY: 40,\n NEGLIGIBLE_NUMBER: 1e-10\n },\n _renderlet: null\n};\n\ndc.chartRegistry = function () {\n // chartGroup:string => charts:array\n var _chartMap = {};\n\n function initializeChartGroup(group) {\n if (!group) {\n group = dc.constants.DEFAULT_CHART_GROUP;\n }\n\n if (!_chartMap[group]) {\n _chartMap[group] = [];\n }\n\n return group;\n }\n\n return {\n has: function (chart) {\n for (var e in _chartMap) {\n if (_chartMap[e].indexOf(chart) >= 0) {\n return true;\n }\n }\n return false;\n },\n\n register: function (chart, group) {\n group = initializeChartGroup(group);\n _chartMap[group].push(chart);\n },\n\n deregister: function (chart, group) {\n group = initializeChartGroup(group);\n for (var i = 0; i < _chartMap[group].length; i++) {\n if (_chartMap[group][i].anchorName() === chart.anchorName()) {\n _chartMap[group].splice(i, 1);\n break;\n }\n }\n },\n\n clear: function (group) {\n if (group) {\n delete _chartMap[group];\n } else {\n _chartMap = {};\n }\n },\n\n list: function (group) {\n group = initializeChartGroup(group);\n return _chartMap[group];\n }\n };\n}();\n/*jshint +W062 */\n/*jshint +W079*/\n\ndc.registerChart = function (chart, group) {\n dc.chartRegistry.register(chart, group);\n};\n\ndc.deregisterChart = function (chart, group) {\n dc.chartRegistry.deregister(chart, group);\n};\n\ndc.hasChart = function (chart) {\n return dc.chartRegistry.has(chart);\n};\n\ndc.deregisterAllCharts = function (group) {\n dc.chartRegistry.clear(group);\n};\n\n/**\n## Utilities\n**/\n\n/**\n#### dc.filterAll([chartGroup])\nClear all filters on all charts within the given chart group. If the chart group is not given then\nonly charts that belong to the default chart group will be reset.\n**/\ndc.filterAll = function (group) {\n var charts = dc.chartRegistry.list(group);\n for (var i = 0; i < charts.length; ++i) {\n charts[i].filterAll();\n }\n};\n\n/**\n#### dc.refocusAll([chartGroup])\nReset zoom level / focus on all charts that belong to the given chart group. If the chart group is\nnot given then only charts that belong to the default chart group will be reset.\n**/\ndc.refocusAll = function (group) {\n var charts = dc.chartRegistry.list(group);\n for (var i = 0; i < charts.length; ++i) {\n if (charts[i].focus) {\n charts[i].focus();\n }\n }\n};\n\n/**\n#### dc.renderAll([chartGroup])\nRe-render all charts belong to the given chart group. If the chart group is not given then only\ncharts that belong to the default chart group will be re-rendered.\n**/\ndc.renderAll = function (group) {\n var charts = dc.chartRegistry.list(group);\n for (var i = 0; i < charts.length; ++i) {\n charts[i].render();\n }\n\n if (dc._renderlet !== null) {\n dc._renderlet(group);\n }\n};\n\n/**\n#### dc.redrawAll([chartGroup])\nRedraw all charts belong to the given chart group. If the chart group is not given then only charts\nthat belong to the default chart group will be re-drawn. Redraw is different from re-render since\nwhen redrawing dc tries to update the graphic incrementally, using transitions, instead of starting\nfrom scratch.\n**/\ndc.redrawAll = function (group) {\n var charts = dc.chartRegistry.list(group);\n for (var i = 0; i < charts.length; ++i) {\n charts[i].redraw();\n }\n\n if (dc._renderlet !== null) {\n dc._renderlet(group);\n }\n};\n\n/**\n#### dc.disableTransitions\nIf this boolean is set truthy, all transitions will be disabled, and changes to the charts will happen\nimmediately. Default: false\n**/\ndc.disableTransitions = false;\n\ndc.transition = function (selections, duration, callback) {\n if (duration <= 0 || duration === undefined || dc.disableTransitions) {\n return selections;\n }\n\n var s = selections\n .transition()\n .duration(duration);\n\n if (typeof(callback) === 'function') {\n callback(s);\n }\n\n return s;\n};\n\ndc.units = {};\n\n/**\n#### dc.units.integers\n`dc.units.integers` is the default value for `xUnits` for the [Coordinate Grid\nChart](#coordinate-grid-chart) and should be used when the x values are a sequence of integers.\n\nIt is a function that counts the number of integers in the range supplied in its start and end parameters.\n\n```js\nchart.xUnits(dc.units.integers) // already the default\n```\n\n**/\ndc.units.integers = function (s, e) {\n return Math.abs(e - s);\n};\n\n/**\n#### dc.units.ordinal\nThis argument can be passed to the `xUnits` function of the to specify ordinal units for the x\naxis. Usually this parameter is used in combination with passing `d3.scale.ordinal()` to `.x`.\n\nIt just returns the domain passed to it, which for ordinal charts is an array of all values.\n\n```js\nchart.xUnits(dc.units.ordinal)\n .x(d3.scale.ordinal())\n```\n\n**/\ndc.units.ordinal = function (s, e, domain) {\n return domain;\n};\n\n/**\n#### dc.units.fp.precision(precision)\nThis function generates an argument for the [Coordinate Grid Chart's](#coordinate-grid-chart)\n`xUnits` function specifying that the x values are floating-point numbers with the given\nprecision.\n\nThe returned function determines how many values at the given precision will fit into the range\nsupplied in its start and end parameters.\n\n```js\n// specify values (and ticks) every 0.1 units\nchart.xUnits(dc.units.fp.precision(0.1)\n// there are 500 units between 0.5 and 1 if the precision is 0.001\nvar thousandths = dc.units.fp.precision(0.001);\nthousandths(0.5, 1.0) // returns 500\n```\n**/\ndc.units.fp = {};\ndc.units.fp.precision = function (precision) {\n var _f = function (s, e) {\n var d = Math.abs((e - s) / _f.resolution);\n if (dc.utils.isNegligible(d - Math.floor(d))) {\n return Math.floor(d);\n } else {\n return Math.ceil(d);\n }\n };\n _f.resolution = precision;\n return _f;\n};\n\ndc.round = {};\ndc.round.floor = function (n) {\n return Math.floor(n);\n};\ndc.round.ceil = function (n) {\n return Math.ceil(n);\n};\ndc.round.round = function (n) {\n return Math.round(n);\n};\n\ndc.override = function (obj, functionName, newFunction) {\n var existingFunction = obj[functionName];\n obj['_' + functionName] = existingFunction;\n obj[functionName] = newFunction;\n};\n\ndc.renderlet = function (_) {\n if (!arguments.length) {\n return dc._renderlet;\n }\n dc._renderlet = _;\n return dc;\n};\n\ndc.instanceOfChart = function (o) {\n return o instanceof Object && o.__dcFlag__ && true;\n};\n","dc.errors = {};\n\ndc.errors.Exception = function (msg) {\n var _msg = msg || 'Unexpected internal error';\n\n this.message = _msg;\n\n this.toString = function () {\n return _msg;\n };\n};\n\ndc.errors.InvalidStateException = function () {\n dc.errors.Exception.apply(this, arguments);\n};\n","dc.dateFormat = d3.time.format('%m/%d/%Y');\n\ndc.printers = {};\n\ndc.printers.filters = function (filters) {\n var s = '';\n\n for (var i = 0; i < filters.length; ++i) {\n if (i > 0) {\n s += ', ';\n }\n s += dc.printers.filter(filters[i]);\n }\n\n return s;\n};\n\ndc.printers.filter = function (filter) {\n var s = '';\n\n if (typeof filter !== 'undefined' && filter !== null) {\n if (filter instanceof Array) {\n if (filter.length >= 2) {\n s = '[' + dc.utils.printSingleValue(filter[0]) + ' -> ' + dc.utils.printSingleValue(filter[1]) + ']';\n } else if (filter.length >= 1) {\n s = dc.utils.printSingleValue(filter[0]);\n }\n } else {\n s = dc.utils.printSingleValue(filter);\n }\n }\n\n return s;\n};\n\ndc.pluck = function (n, f) {\n if (!f) {\n return function (d) { return d[n]; };\n }\n return function (d, i) { return f.call(d, d[n], i); };\n};\n\ndc.utils = {};\n\ndc.utils.printSingleValue = function (filter) {\n var s = '' + filter;\n\n if (filter instanceof Date) {\n s = dc.dateFormat(filter);\n } else if (typeof(filter) === 'string') {\n s = filter;\n } else if (dc.utils.isFloat(filter)) {\n s = dc.utils.printSingleValue.fformat(filter);\n } else if (dc.utils.isInteger(filter)) {\n s = Math.round(filter);\n }\n\n return s;\n};\ndc.utils.printSingleValue.fformat = d3.format('.2f');\n\n// FIXME: these assume than any string r is a percentage (whether or not it\n// includes %). They also generate strange results if l is a string.\ndc.utils.add = function (l, r) {\n if (typeof r === 'string') {\n r = r.replace('%', '');\n }\n\n if (l instanceof Date) {\n if (typeof r === 'string') {\n r = +r;\n }\n var d = new Date();\n d.setTime(l.getTime());\n d.setDate(l.getDate() + r);\n return d;\n } else if (typeof r === 'string') {\n var percentage = (+r / 100);\n return l > 0 ? l * (1 + percentage) : l * (1 - percentage);\n } else {\n return l + r;\n }\n};\n\ndc.utils.subtract = function (l, r) {\n if (typeof r === 'string') {\n r = r.replace('%', '');\n }\n\n if (l instanceof Date) {\n if (typeof r === 'string') {\n r = +r;\n }\n var d = new Date();\n d.setTime(l.getTime());\n d.setDate(l.getDate() - r);\n return d;\n } else if (typeof r === 'string') {\n var percentage = (+r / 100);\n return l < 0 ? l * (1 + percentage) : l * (1 - percentage);\n } else {\n return l - r;\n }\n};\n\ndc.utils.isNumber = function (n) {\n return n === +n;\n};\n\ndc.utils.isFloat = function (n) {\n return n === +n && n !== (n | 0);\n};\n\ndc.utils.isInteger = function (n) {\n return n === +n && n === (n | 0);\n};\n\ndc.utils.isNegligible = function (n) {\n return !dc.utils.isNumber(n) || (n < dc.constants.NEGLIGIBLE_NUMBER && n > -dc.constants.NEGLIGIBLE_NUMBER);\n};\n\ndc.utils.clamp = function (val, min, max) {\n return val < min ? min : (val > max ? max : val);\n};\n\nvar _idCounter = 0;\ndc.utils.uniqueId = function () {\n return ++_idCounter;\n};\n\ndc.utils.nameToId = function (name) {\n return name.toLowerCase().replace(/[\\s]/g, '_').replace(/[\\.']/g, '');\n};\n\ndc.utils.appendOrSelect = function (parent, selector, tag) {\n tag = tag || selector;\n var element = parent.select(selector);\n if (element.empty()) {\n element = parent.append(tag);\n }\n return element;\n};\n\ndc.utils.safeNumber = function (n) { return dc.utils.isNumber(+n) ? +n : 0;};\n","dc.logger = {};\n\ndc.logger.enableDebugLog = false;\n\ndc.logger.warn = function (msg) {\n if (console) {\n if (console.warn) {\n console.warn(msg);\n } else if (console.log) {\n console.log(msg);\n }\n }\n\n return dc.logger;\n};\n\ndc.logger.debug = function (msg) {\n if (dc.logger.enableDebugLog && console) {\n if (console.debug) {\n console.debug(msg);\n } else if (console.log) {\n console.log(msg);\n }\n }\n\n return dc.logger;\n};\n\ndc.logger.deprecate = function (fn, msg) {\n // Allow logging of deprecation\n var warned = false;\n function deprecated() {\n if (!warned) {\n dc.logger.warn(msg);\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n};\n","dc.events = {\n current: null\n};\n\n/**\n#### dc.events.trigger(function[, delay])\nThis function triggers a throttled event function with a specified delay (in milli-seconds). Events\nthat are triggered repetitively due to user interaction such brush dragging might flood the library\nand invoke more renders than can be executed in time. Using this function to wrap your event\nfunction allows the library to smooth out the rendering by throttling events and only responding to\nthe most recent event.\n\n```js\n chart.renderlet(function(chart){\n // smooth the rendering through event throttling\n dc.events.trigger(function(){\n // focus some other chart to the range selected by user on this chart\n someOtherChart.focus(chart.filter());\n });\n })\n```\n**/\ndc.events.trigger = function (closure, delay) {\n if (!delay) {\n closure();\n return;\n }\n\n dc.events.current = closure;\n\n setTimeout(function () {\n if (closure === dc.events.current) {\n closure();\n }\n }, delay);\n};\n","dc.filters = {};\n\n/**\n## Filters\nThe dc.js filters are functions which are passed into crossfilter to chose which records will be\naccumulated to produce values for the charts. In the crossfilter model, any filters applied on one\ndimension will affect all the other dimensions but not that one. dc always applies a filter\nfunction to the dimension; the function combines multiple filters and if any of them accept a\nrecord, it is filtered in.\n\nThese filter constructors are used as appropriate by the various charts to implement brushing. We\nmention below which chart uses which filter. In some cases, many instances of a filter will be added.\n\n**/\n\n/**\n#### dc.filters.RangedFilter(low, high)\n RangedFilter is a filter which accepts keys between `low` and `high`. It is used to implement X\n axis brushing for the [coordinate grid charts](#coordinate-grid-mixin).\n**/\ndc.filters.RangedFilter = function (low, high) {\n var range = new Array(low, high);\n range.isFiltered = function (value) {\n return value >= this[0] && value < this[1];\n };\n\n return range;\n};\n\n/**\n#### dc.filters.TwoDimensionalFilter(array)\n TwoDimensionalFilter is a filter which accepts a single two-dimensional value. It is used by the\n [heat map chart](#heat-map) to include particular cells as they are clicked. (Rows and columns are\n filtered by filtering all the cells in the row or column.)\n**/\ndc.filters.TwoDimensionalFilter = function (array) {\n if (array === null) { return null; }\n\n var filter = array;\n filter.isFiltered = function (value) {\n return value.length && value.length === filter.length &&\n value[0] === filter[0] && value[1] === filter[1];\n };\n\n return filter;\n};\n\n/**\n#### dc.filters.RangedTwoDimensionalFilter(array)\n The RangedTwoDimensionalFilter allows filtering all values which fit within a rectangular\n region. It is used by the [scatter plot](#scatter-plot) to implement rectangular brushing.\n\n It takes two two-dimensional points in the form `[[x1,y1],[x2,y2]]`, and normalizes them so that\n `x1 <= x2` and `y1 <- y2`. It then returns a filter which accepts any points which are in the\n rectangular range including the lower values but excluding the higher values.\n\n If an array of two values are given to the RangedTwoDimensionalFilter, it interprets the values as\n two x coordinates `x1` and `x2` and returns a filter which accepts any points for which `x1 <= x <\n x2`.\n **/\ndc.filters.RangedTwoDimensionalFilter = function (array) {\n if (array === null) { return null; }\n\n var filter = array;\n var fromBottomLeft;\n\n if (filter[0] instanceof Array) {\n fromBottomLeft = [\n [Math.min(array[0][0], array[1][0]), Math.min(array[0][1], array[1][1])],\n [Math.max(array[0][0], array[1][0]), Math.max(array[0][1], array[1][1])]\n ];\n } else {\n fromBottomLeft = [[array[0], -Infinity], [array[1], Infinity]];\n }\n\n filter.isFiltered = function (value) {\n var x, y;\n\n if (value instanceof Array) {\n if (value.length !== 2) {\n return false;\n }\n x = value[0];\n y = value[1];\n } else {\n x = value;\n y = fromBottomLeft[0][1];\n }\n\n return x >= fromBottomLeft[0][0] && x < fromBottomLeft[1][0] &&\n y >= fromBottomLeft[0][1] && y < fromBottomLeft[1][1];\n };\n\n return filter;\n};\n","/**\n## Base Mixin\nBase Mixin is an abstract functional object representing a basic dc chart object\nfor all chart and widget implementations. Methods from the Base Mixin are inherited\nand available on all chart implementation in the DC library.\n**/\ndc.baseMixin = function (_chart) {\n _chart.__dcFlag__ = dc.utils.uniqueId();\n\n var _dimension;\n var _group;\n\n var _anchor;\n var _root;\n var _svg;\n var _isChild;\n\n var _minWidth = 200;\n var _defaultWidth = function (element) {\n var width = element && element.getBoundingClientRect && element.getBoundingClientRect().width;\n return (width && width > _minWidth) ? width : _minWidth;\n };\n var _width = _defaultWidth;\n\n var _minHeight = 200;\n var _defaultHeight = function (element) {\n var height = element && element.getBoundingClientRect && element.getBoundingClientRect().height;\n return (height && height > _minHeight) ? height : _minHeight;\n };\n var _height = _defaultHeight;\n\n var _keyAccessor = dc.pluck('key');\n var _valueAccessor = dc.pluck('value');\n var _label = dc.pluck('key');\n\n var _ordering = dc.pluck('key');\n var _orderSort;\n\n var _renderLabel = false;\n\n var _title = function (d) {\n return _chart.keyAccessor()(d) + ': ' + _chart.valueAccessor()(d);\n };\n var _renderTitle = true;\n\n var _transitionDuration = 750;\n\n var _filterPrinter = dc.printers.filters;\n\n var _mandatoryAttributes = ['dimension', 'group'];\n\n var _chartGroup = dc.constants.DEFAULT_CHART_GROUP;\n\n var _listeners = d3.dispatch(\n 'preRender',\n 'postRender',\n 'preRedraw',\n 'postRedraw',\n 'filtered',\n 'zoomed',\n 'renderlet');\n\n var _legend;\n\n var _filters = [];\n var _filterHandler = function (dimension, filters) {\n dimension.filter(null);\n\n if (filters.length === 0) {\n dimension.filter(null);\n } else {\n dimension.filterFunction(function (d) {\n for (var i = 0; i < filters.length; i++) {\n var filter = filters[i];\n if (filter.isFiltered && filter.isFiltered(d)) {\n return true;\n } else if (filter <= d && filter >= d) {\n return true;\n }\n }\n return false;\n });\n }\n return filters;\n };\n\n var _data = function (group) {\n return group.all();\n };\n\n /**\n #### .width([value])\n Set or get the width attribute of a chart. See `.height` below for further description of the\n behavior.\n\n **/\n _chart.width = function (w) {\n if (!arguments.length) {\n return _width(_root.node());\n }\n _width = d3.functor(w || _defaultWidth);\n return _chart;\n };\n\n /**\n #### .height([value])\n Set or get the height attribute of a chart. The height is applied to the SVG element generated by\n the chart when rendered (or rerendered). If a value is given, then it will be used to calculate\n the new height and the chart returned for method chaining. The value can either be a numeric, a\n function, or falsy. If no value is specified then the value of the current height attribute will\n be returned.\n\n By default, without an explicit height being given, the chart will select the width of its\n anchor element. If that isn't possible it defaults to 200. Setting the value falsy will return\n the chart to the default behavior\n\n Examples:\n\n ```js\n chart.height(250); // Set the chart's height to 250px;\n chart.height(function(anchor) { return doSomethingWith(anchor); }); // set the chart's height with a function\n chart.height(null); // reset the height to the default auto calculation\n ```\n\n **/\n _chart.height = function (h) {\n if (!arguments.length) {\n return _height(_root.node());\n }\n _height = d3.functor(h || _defaultHeight);\n return _chart;\n };\n\n /**\n #### .minWidth([value])\n Set or get the minimum width attribute of a chart. This only applicable if the width is\n calculated by dc.\n\n **/\n _chart.minWidth = function (w) {\n if (!arguments.length) {\n return _minWidth;\n }\n _minWidth = w;\n return _chart;\n };\n\n /**\n #### .minHeight([value])\n Set or get the minimum height attribute of a chart. This only applicable if the height is\n calculated by dc.\n\n **/\n _chart.minHeight = function (w) {\n if (!arguments.length) {\n return _minHeight;\n }\n _minHeight = w;\n return _chart;\n };\n\n /**\n #### .dimension([value]) - **mandatory**\n Set or get the dimension attribute of a chart. In dc a dimension can be any valid [crossfilter\n dimension](https://github.com/square/crossfilter/wiki/API-Reference#wiki-dimension).\n\n If a value is given, then it will be used as the new dimension. If no value is specified then\n the current dimension will be returned.\n\n **/\n _chart.dimension = function (d) {\n if (!arguments.length) {\n return _dimension;\n }\n _dimension = d;\n _chart.expireCache();\n return _chart;\n };\n\n /**\n #### .data([callback])\n Set the data callback or retrieve the chart's data set. The data callback is passed the chart's\n group and by default will return `group.all()`. This behavior may be modified to, for instance,\n return only the top 5 groups:\n ```\n chart.data(function(group) {\n return group.top(5);\n });\n ```\n **/\n _chart.data = function (d) {\n if (!arguments.length) {\n return _data.call(_chart, _group);\n }\n _data = d3.functor(d);\n _chart.expireCache();\n return _chart;\n };\n\n /**\n #### .group([value, [name]]) - **mandatory**\n Set or get the group attribute of a chart. In dc a group is a [crossfilter\n group](https://github.com/square/crossfilter/wiki/API-Reference#wiki-group). Usually the group\n should be created from the particular dimension associated with the same chart. If a value is\n given, then it will be used as the new group.\n\n If no value specified then the current group will be returned.\n If `name` is specified then it will be used to generate legend label.\n\n **/\n _chart.group = function (g, name) {\n if (!arguments.length) {\n return _group;\n }\n _group = g;\n _chart._groupName = name;\n _chart.expireCache();\n return _chart;\n };\n\n /**\n #### .ordering([orderFunction])\n Get or set an accessor to order ordinal charts\n **/\n _chart.ordering = function (o) {\n if (!arguments.length) {\n return _ordering;\n }\n _ordering = o;\n _orderSort = crossfilter.quicksort.by(_ordering);\n _chart.expireCache();\n return _chart;\n };\n\n _chart._computeOrderedGroups = function (data) {\n var dataCopy = data.slice(0);\n\n if (dataCopy.length <= 1) {\n return dataCopy;\n }\n\n if (!_orderSort) {\n _orderSort = crossfilter.quicksort.by(_ordering);\n }\n\n return _orderSort(dataCopy, 0, dataCopy.length);\n };\n\n /**\n #### .filterAll()\n Clear all filters associated with this chart.\n\n **/\n _chart.filterAll = function () {\n return _chart.filter(null);\n };\n\n /**\n #### .select(selector)\n Execute d3 single selection in the chart's scope using the given selector and return the d3\n selection. Roughly the same as:\n ```js\n d3.select('#chart-id').select(selector);\n ```\n This function is **not chainable** since it does not return a chart instance; however the d3\n selection result can be chained to d3 function calls.\n\n **/\n _chart.select = function (s) {\n return _root.select(s);\n };\n\n /**\n #### .selectAll(selector)\n Execute in scope d3 selectAll using the given selector and return d3 selection result. Roughly\n the same as:\n ```js\n d3.select('#chart-id').selectAll(selector);\n ```\n This function is **not chainable** since it does not return a chart instance; however the d3\n selection result can be chained to d3 function calls.\n\n **/\n _chart.selectAll = function (s) {\n return _root ? _root.selectAll(s) : null;\n };\n\n /**\n #### .anchor([anchorChart|anchorSelector|anchorNode], [chartGroup])\n Set the svg root to either be an existing chart's root; or any valid [d3 single\n selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying a dom\n block element such as a div; or a dom element or d3 selection. Optionally registers the chart\n within the chartGroup. This class is called internally on chart initialization, but be called\n again to relocate the chart. However, it will orphan any previously created SVG elements.\n **/\n _chart.anchor = function (a, chartGroup) {\n if (!arguments.length) {\n return _anchor;\n }\n if (dc.instanceOfChart(a)) {\n _anchor = a.anchor();\n _root = a.root();\n _isChild = true;\n } else {\n _anchor = a;\n _root = d3.select(_anchor);\n _root.classed(dc.constants.CHART_CLASS, true);\n dc.registerChart(_chart, chartGroup);\n _isChild = false;\n }\n _chartGroup = chartGroup;\n return _chart;\n };\n\n /**\n #### .anchorName()\n Returns the dom id for the chart's anchored location.\n\n **/\n _chart.anchorName = function () {\n var a = _chart.anchor();\n if (a && a.id) {\n return a.id;\n }\n if (a && a.replace) {\n return a.replace('#', '');\n }\n return 'dc-chart' + _chart.chartID();\n };\n\n /**\n #### .root([rootElement])\n Returns the root element where a chart resides. Usually it will be the parent div element where\n the svg was created. You can also pass in a new root element however this is usually handled by\n dc internally. Resetting the root element on a chart outside of dc internals may have\n unexpected consequences.\n\n **/\n _chart.root = function (r) {\n if (!arguments.length) {\n return _root;\n }\n _root = r;\n return _chart;\n };\n\n /**\n #### .svg([svgElement])\n Returns the top svg element for this specific chart. You can also pass in a new svg element,\n however this is usually handled by dc internally. Resetting the svg element on a chart outside\n of dc internals may have unexpected consequences.\n\n **/\n _chart.svg = function (_) {\n if (!arguments.length) {\n return _svg;\n }\n _svg = _;\n return _chart;\n };\n\n /**\n #### .resetSvg()\n Remove the chart's SVG elements from the dom and recreate the container SVG element.\n **/\n _chart.resetSvg = function () {\n _chart.select('svg').remove();\n return generateSvg();\n };\n\n function generateSvg() {\n _svg = _chart.root().append('svg')\n .attr('width', _chart.width())\n .attr('height', _chart.height());\n return _svg;\n }\n\n /**\n #### .filterPrinter([filterPrinterFunction])\n Set or get the filter printer function. The filter printer function is used to generate human\n friendly text for filter value(s) associated with the chart instance. By default dc charts use a\n default filter printer `dc.printers.filter` that provides simple printing support for both\n single value and ranged filters.\n\n **/\n _chart.filterPrinter = function (_) {\n if (!arguments.length) {\n return _filterPrinter;\n }\n _filterPrinter = _;\n return _chart;\n };\n\n /**\n #### .turnOnControls() & .turnOffControls()\n Turn on/off optional control elements within the root element. dc currently supports the\n following html control elements.\n\n * root.selectAll('.reset') - elements are turned on if the chart has an active filter. This type\n of control element is usually used to store a reset link to allow user to reset filter on a\n certain chart. This element will be turned off automatically if the filter is cleared.\n * root.selectAll('.filter') elements are turned on if the chart has an active filter. The text\n content of this element is then replaced with the current filter value using the filter printer\n function. This type of element will be turned off automatically if the filter is cleared.\n\n **/\n _chart.turnOnControls = function () {\n if (_root) {\n _chart.selectAll('.reset').style('display', null);\n _chart.selectAll('.filter').text(_filterPrinter(_chart.filters())).style('display', null);\n }\n return _chart;\n };\n\n _chart.turnOffControls = function () {\n if (_root) {\n _chart.selectAll('.reset').style('display', 'none');\n _chart.selectAll('.filter').style('display', 'none').text(_chart.filter());\n }\n return _chart;\n };\n\n /**\n #### .transitionDuration([duration])\n Set or get the animation transition duration(in milliseconds) for this chart instance. Default\n duration is 750ms.\n\n **/\n _chart.transitionDuration = function (d) {\n if (!arguments.length) {\n return _transitionDuration;\n }\n _transitionDuration = d;\n return _chart;\n };\n\n _chart._mandatoryAttributes = function (_) {\n if (!arguments.length) {\n return _mandatoryAttributes;\n }\n _mandatoryAttributes = _;\n return _chart;\n };\n\n function checkForMandatoryAttributes(a) {\n if (!_chart[a] || !_chart[a]()) {\n throw new dc.errors.InvalidStateException('Mandatory attribute chart.' + a +\n ' is missing on chart[#' + _chart.anchorName() + ']');\n }\n }\n\n /**\n #### .render()\n Invoking this method will force the chart to re-render everything from scratch. Generally it\n should only be used to render the chart for the first time on the page or if you want to make\n sure everything is redrawn from scratch instead of relying on the default incremental redrawing\n behaviour.\n\n **/\n _chart.render = function () {\n _listeners.preRender(_chart);\n\n if (_mandatoryAttributes) {\n _mandatoryAttributes.forEach(checkForMandatoryAttributes);\n }\n\n var result = _chart._doRender();\n\n if (_legend) {\n _legend.render();\n }\n\n _chart._activateRenderlets('postRender');\n\n return result;\n };\n\n _chart._activateRenderlets = function (event) {\n if (_chart.transitionDuration() > 0 && _svg) {\n _svg.transition().duration(_chart.transitionDuration())\n .each('end', function () {\n _listeners['renderlet'](_chart);\n if (event) {\n _listeners[event](_chart);\n }\n });\n } else {\n _listeners['renderlet'](_chart);\n if (event) {\n _listeners[event](_chart);\n }\n }\n };\n\n /**\n #### .redraw()\n Calling redraw will cause the chart to re-render data changes incrementally. If there is no\n change in the underlying data dimension then calling this method will have no effect on the\n chart. Most chart interaction in dc will automatically trigger this method through internal\n events (in particular [dc.redrawAll](#dcredrawallchartgroup)); therefore, you only need to\n manually invoke this function if data is manipulated outside of dc's control (for example if\n data is loaded in the background using `crossfilter.add()`).\n\n **/\n _chart.redraw = function () {\n _listeners.preRedraw(_chart);\n\n var result = _chart._doRedraw();\n\n if (_legend) {\n _legend.render();\n }\n\n _chart._activateRenderlets('postRedraw');\n\n return result;\n };\n\n _chart.redrawGroup = function () {\n dc.redrawAll(_chart.chartGroup());\n };\n\n _chart.renderGroup = function () {\n dc.renderAll(_chart.chartGroup());\n };\n\n _chart._invokeFilteredListener = function (f) {\n if (f !== undefined) {\n _listeners.filtered(_chart, f);\n }\n };\n\n _chart._invokeZoomedListener = function () {\n _listeners.zoomed(_chart);\n };\n\n var _hasFilterHandler = function (filters, filter) {\n if (filter === null || typeof(filter) === 'undefined') {\n return filters.length > 0;\n }\n return filters.some(function (f) {\n return filter <= f && filter >= f;\n });\n };\n\n /**\n #### .hasFilterHandler([function])\n Set or get the has filter handler. The has filter handler is a function that checks to see if\n the chart's current filters include a specific filter. Using a custom has filter handler allows\n you to change the way filters are checked for and replaced.\n\n ```js\n // default has filter handler\n function (filters, filter) {\n if (filter === null || typeof(filter) === 'undefined') {\n return filters.length > 0;\n }\n return filters.some(function (f) {\n return filter <= f && filter >= f;\n });\n }\n\n // custom filter handler (no-op)\n chart.hasFilterHandler(function(filters, filter) {\n return false;\n });\n ```\n **/\n _chart.hasFilterHandler = function (_) {\n if (!arguments.length) {\n return _hasFilterHandler;\n }\n _hasFilterHandler = _;\n return _chart;\n };\n\n /**\n #### .hasFilter([filter])\n Check whether any active filter or a specific filter is associated with particular chart instance.\n This function is **not chainable**.\n\n **/\n _chart.hasFilter = function (filter) {\n return _hasFilterHandler(_filters, filter);\n };\n\n var _removeFilterHandler = function (filters, filter) {\n for (var i = 0; i < filters.length; i++) {\n if (filters[i] <= filter && filters[i] >= filter) {\n filters.splice(i, 1);\n break;\n }\n }\n return filters;\n };\n\n /**\n #### .removeFilterHandler([function])\n Set or get the remove filter handler. The remove filter handler is a function that removes a\n filter from the chart's current filters. Using a custom remove filter handler allows you to\n change how filters are removed or perform additional work when removing a filter, e.g. when\n using a filter server other than crossfilter.\n\n Any changes should modify the `filters` array argument and return that array.\n\n ```js\n // default remove filter handler\n function (filters, filter) {\n for (var i = 0; i < filters.length; i++) {\n if (filters[i] <= filter && filters[i] >= filter) {\n filters.splice(i, 1);\n break;\n }\n }\n return filters;\n }\n\n // custom filter handler (no-op)\n chart.removeFilterHandler(function(filters, filter) {\n return filters;\n });\n ```\n **/\n _chart.removeFilterHandler = function (_) {\n if (!arguments.length) {\n return _removeFilterHandler;\n }\n _removeFilterHandler = _;\n return _chart;\n };\n\n var _addFilterHandler = function (filters, filter) {\n filters.push(filter);\n return filters;\n };\n\n /**\n #### .addFilterHandler([function])\n Set or get the add filter handler. The add filter handler is a function that adds a filter to\n the chart's filter list. Using a custom add filter handler allows you to change the way filters\n are added or perform additional work when adding a filter, e.g. when using a filter server other\n than crossfilter.\n\n Any changes should modify the `filters` array argument and return that array.\n\n ```js\n // default add filter handler\n function (filters, filter) {\n filters.push(filter);\n return filters;\n }\n\n // custom filter handler (no-op)\n chart.addFilterHandler(function(filters, filter) {\n return filters;\n });\n ```\n **/\n _chart.addFilterHandler = function (_) {\n if (!arguments.length) {\n return _addFilterHandler;\n }\n _addFilterHandler = _;\n return _chart;\n };\n\n var _resetFilterHandler = function (filters) {\n return [];\n };\n\n /**\n #### .resetFilterHandler([function])\n Set or get the reset filter handler. The reset filter handler is a function that resets the\n chart's filter list by returning a new list. Using a custom reset filter handler allows you to\n change the way filters are reset, or perform additional work when resetting the filters,\n e.g. when using a filter server other than crossfilter.\n\n This function should return an array.\n\n ```js\n // default remove filter handler\n function (filters) {\n return [];\n }\n\n // custom filter handler (no-op)\n chart.resetFilterHandler(function(filters) {\n return filters;\n });\n ```\n **/\n _chart.resetFilterHandler = function (_) {\n if (!arguments.length) {\n return _resetFilterHandler;\n }\n _resetFilterHandler = _;\n return _chart;\n };\n\n function applyFilters() {\n if (_chart.dimension() && _chart.dimension().filter) {\n var fs = _filterHandler(_chart.dimension(), _filters);\n _filters = fs ? fs : _filters;\n }\n }\n\n _chart.replaceFilter = function (_) {\n _filters = [];\n _chart.filter(_);\n };\n\n /**\n #### .filter([filterValue])\n Filter the chart by the given value or return the current filter if the input parameter is missing.\n ```js\n // filter by a single string\n chart.filter('Sunday');\n // filter by a single age\n chart.filter(18);\n ```\n **/\n _chart.filter = function (_) {\n if (!arguments.length) {\n return _filters.length > 0 ? _filters[0] : null;\n }\n if (_ instanceof Array && _[0] instanceof Array && !_.isFiltered) {\n _[0].forEach(function (d) {\n if (_chart.hasFilter(d)) {\n _removeFilterHandler(_filters, d);\n } else {\n _addFilterHandler(_filters, d);\n }\n });\n } else if (_ === null) {\n _filters = _resetFilterHandler(_filters);\n } else {\n if (_chart.hasFilter(_)) {\n _removeFilterHandler(_filters, _);\n } else {\n _addFilterHandler(_filters, _);\n }\n }\n applyFilters();\n _chart._invokeFilteredListener(_);\n\n if (_root !== null && _chart.hasFilter()) {\n _chart.turnOnControls();\n } else {\n _chart.turnOffControls();\n }\n\n return _chart;\n };\n\n /**\n #### .filters()\n Returns all current filters. This method does not perform defensive cloning of the internal\n filter array before returning, therefore any modification of the returned array will effect the\n chart's internal filter storage.\n\n **/\n _chart.filters = function () {\n return _filters;\n };\n\n _chart.highlightSelected = function (e) {\n d3.select(e).classed(dc.constants.SELECTED_CLASS, true);\n d3.select(e).classed(dc.constants.DESELECTED_CLASS, false);\n };\n\n _chart.fadeDeselected = function (e) {\n d3.select(e).classed(dc.constants.SELECTED_CLASS, false);\n d3.select(e).classed(dc.constants.DESELECTED_CLASS, true);\n };\n\n _chart.resetHighlight = function (e) {\n d3.select(e).classed(dc.constants.SELECTED_CLASS, false);\n d3.select(e).classed(dc.constants.DESELECTED_CLASS, false);\n };\n\n /**\n #### .onClick(datum)\n This function is passed to d3 as the onClick handler for each chart. The default behavior is to\n filter on the clicked datum (passed to the callback) and redraw the chart group.\n **/\n _chart.onClick = function (d) {\n var filter = _chart.keyAccessor()(d);\n dc.events.trigger(function () {\n _chart.filter(filter);\n _chart.redrawGroup();\n });\n };\n\n /**\n #### .filterHandler([function])\n Set or get the filter handler. The filter handler is a function that performs the filter action\n on a specific dimension. Using a custom filter handler allows you to perform additional logic\n before or after filtering.\n\n ```js\n // default filter handler\n function(dimension, filter){\n dimension.filter(filter); // perform filtering\n return filter; // return the actual filter value\n }\n\n // custom filter handler\n chart.filterHandler(function(dimension, filter){\n var newFilter = filter + 10;\n dimension.filter(newFilter);\n return newFilter; // set the actual filter value to the new value\n });\n ```\n\n **/\n _chart.filterHandler = function (_) {\n if (!arguments.length) {\n return _filterHandler;\n }\n _filterHandler = _;\n return _chart;\n };\n\n // abstract function stub\n _chart._doRender = function () {\n // do nothing in base, should be overridden by sub-function\n return _chart;\n };\n\n _chart._doRedraw = function () {\n // do nothing in base, should be overridden by sub-function\n return _chart;\n };\n\n _chart.legendables = function () {\n // do nothing in base, should be overridden by sub-function\n return [];\n };\n\n _chart.legendHighlight = function () {\n // do nothing in base, should be overridden by sub-function\n };\n\n _chart.legendReset = function () {\n // do nothing in base, should be overridden by sub-function\n };\n\n _chart.legendToggle = function () {\n // do nothing in base, should be overriden by sub-function\n };\n\n _chart.isLegendableHidden = function () {\n // do nothing in base, should be overridden by sub-function\n return false;\n };\n\n /**\n #### .keyAccessor([keyAccessorFunction])\n Set or get the key accessor function. The key accessor function is used to retrieve the key\n value from the crossfilter group. Key values are used differently in different charts, for\n example keys correspond to slices in a pie chart and x axis positions in a grid coordinate chart.\n ```js\n // default key accessor\n chart.keyAccessor(function(d) { return d.key; });\n // custom key accessor for a multi-value crossfilter reduction\n chart.keyAccessor(function(p) { return p.value.absGain; });\n ```\n\n **/\n _chart.keyAccessor = function (_) {\n if (!arguments.length) {\n return _keyAccessor;\n }\n _keyAccessor = _;\n return _chart;\n };\n\n /**\n #### .valueAccessor([valueAccessorFunction])\n Set or get the value accessor function. The value accessor function is used to retrieve the\n value from the crossfilter group. Group values are used differently in different charts, for\n example values correspond to slice sizes in a pie chart and y axis positions in a grid\n coordinate chart.\n ```js\n // default value accessor\n chart.valueAccessor(function(d) { return d.value; });\n // custom value accessor for a multi-value crossfilter reduction\n chart.valueAccessor(function(p) { return p.value.percentageGain; });\n ```\n\n **/\n _chart.valueAccessor = function (_) {\n if (!arguments.length) {\n return _valueAccessor;\n }\n _valueAccessor = _;\n return _chart;\n };\n\n /**\n #### .label([labelFunction])\n Set or get the label function. The chart class will use this function to render labels for each\n child element in the chart, e.g. slices in a pie chart or bubbles in a bubble chart. Not every\n chart supports the label function for example bar chart and line chart do not use this function\n at all.\n ```js\n // default label function just return the key\n chart.label(function(d) { return d.key; });\n // label function has access to the standard d3 data binding and can get quite complicated\n chart.label(function(d) { return d.data.key + '(' + Math.floor(d.data.value / all.value() * 100) + '%)'; });\n ```\n\n **/\n _chart.label = function (_) {\n if (!arguments.length) {\n return _label;\n }\n _label = _;\n _renderLabel = true;\n return _chart;\n };\n\n /**\n #### .renderLabel(boolean)\n Turn on/off label rendering\n\n **/\n _chart.renderLabel = function (_) {\n if (!arguments.length) {\n return _renderLabel;\n }\n _renderLabel = _;\n return _chart;\n };\n\n /**\n #### .title([titleFunction])\n Set or get the title function. The chart class will use this function to render the svg title\n (usually interpreted by browser as tooltips) for each child element in the chart, e.g. a slice\n in a pie chart or a bubble in a bubble chart. Almost every chart supports the title function;\n however in grid coordinate charts you need to turn off the brush in order to see titles, because\n otherwise the brush layer will block tooltip triggering.\n ```js\n // default title function just return the key\n chart.title(function(d) { return d.key + ': ' + d.value; });\n // title function has access to the standard d3 data binding and can get quite complicated\n chart.title(function(p) {\n return p.key.getFullYear()\n + '\\n'\n + 'Index Gain: ' + numberFormat(p.value.absGain) + '\\n'\n + 'Index Gain in Percentage: ' + numberFormat(p.value.percentageGain) + '%\\n'\n + 'Fluctuation / Index Ratio: ' + numberFormat(p.value.fluctuationPercentage) + '%';\n });\n ```\n\n **/\n _chart.title = function (_) {\n if (!arguments.length) {\n return _title;\n }\n _title = _;\n return _chart;\n };\n\n /**\n #### .renderTitle(boolean)\n Turn on/off title rendering, or return the state of the render title flag if no arguments are\n given.\n\n **/\n _chart.renderTitle = function (_) {\n if (!arguments.length) {\n return _renderTitle;\n }\n _renderTitle = _;\n return _chart;\n };\n\n /**\n #### .renderlet(renderletFunction)\n A renderlet is similar to an event listener on rendering event. Multiple renderlets can be added\n to an individual chart. Each time a chart is rerendered or redrawn the renderlets are invoked\n right after the chart finishes its own drawing routine, giving you a way to modify the svg\n elements. Renderlet functions take the chart instance as the only input parameter and you can\n use the dc API or use raw d3 to achieve pretty much any effect.\n\n @Deprecated - Use [Listeners](#Listeners) with a 'renderlet' prefix\n Generates a random key for the renderlet, which makes it hard for removal.\n ```js\n // renderlet function\n chart.renderlet(function(chart){\n // mix of dc API and d3 manipulation\n chart.select('g.y').style('display', 'none');\n // its a closure so you can also access other chart variable available in the closure scope\n moveChart.filter(chart.filter());\n });\n ```\n\n **/\n _chart.renderlet = dc.logger.deprecate(function (_) {\n _chart.on('renderlet.' + dc.utils.uniqueId(), _);\n return _chart;\n }, 'chart.renderlet has been deprecated. Please use chart.on(\"renderlet.\", renderletFunction)');\n\n /**\n #### .chartGroup([group])\n Get or set the chart group to which this chart belongs. Chart groups are rendered or redrawn\n together since it is expected they share the same underlying crossfilter data set.\n **/\n _chart.chartGroup = function (_) {\n if (!arguments.length) {\n return _chartGroup;\n }\n if (!_isChild) {\n dc.deregisterChart(_chart, _chartGroup);\n }\n _chartGroup = _;\n if (!_isChild) {\n dc.registerChart(_chart, _chartGroup);\n }\n return _chart;\n };\n\n /**\n #### .expireCache()\n Expire the internal chart cache. dc charts cache some data internally on a per chart basis to\n speed up rendering and avoid unnecessary calculation; however it might be useful to clear the\n cache if you have changed state which will affect rendering. For example if you invoke the\n `crossfilter.add` function or reset group or dimension after rendering it is a good idea to\n clear the cache to make sure charts are rendered properly.\n\n **/\n _chart.expireCache = function () {\n // do nothing in base, should be overridden by sub-function\n return _chart;\n };\n\n /**\n #### .legend([dc.legend])\n Attach a dc.legend widget to this chart. The legend widget will automatically draw legend labels\n based on the color setting and names associated with each group.\n\n ```js\n chart.legend(dc.legend().x(400).y(10).itemHeight(13).gap(5))\n ```\n\n **/\n _chart.legend = function (l) {\n if (!arguments.length) {\n return _legend;\n }\n _legend = l;\n _legend.parent(_chart);\n return _chart;\n };\n\n /**\n #### .chartID()\n Returns the internal numeric ID of the chart.\n **/\n _chart.chartID = function () {\n return _chart.__dcFlag__;\n };\n\n /**\n #### .options(optionsObject)\n Set chart options using a configuration object. Each key in the object will cause the method of\n the same name to be called with the value to set that attribute for the chart.\n\n Example:\n ```\n chart.options({dimension: myDimension, group: myGroup});\n ```\n **/\n _chart.options = function (opts) {\n for (var o in opts) {\n if (typeof(_chart[o]) === 'function') {\n _chart[o].call(_chart, opts[o]);\n } else {\n dc.logger.debug('Not a valid option setter name: ' + o);\n }\n }\n return _chart;\n };\n\n /**\n ## Listeners\n All dc chart instance supports the following listeners.\n\n #### .on('renderlet', function(chart, filter){...})\n This listener function will be invoked after transitions after redraw and render. Replaces the\n deprecated `.renderlet()` method.\n\n #### .on('preRender', function(chart){...})\n This listener function will be invoked before chart rendering.\n\n #### .on('postRender', function(chart){...})\n This listener function will be invoked after chart finish rendering including all renderlets' logic.\n\n #### .on('preRedraw', function(chart){...})\n This listener function will be invoked before chart redrawing.\n\n #### .on('postRedraw', function(chart){...})\n This listener function will be invoked after chart finish redrawing including all renderlets' logic.\n\n #### .on('filtered', function(chart, filter){...})\n This listener function will be invoked after a filter is applied, added or removed.\n\n #### .on('zoomed', function(chart, filter){...})\n This listener function will be invoked after a zoom is triggered.\n\n **/\n _chart.on = function (event, listener) {\n _listeners.on(event, listener);\n return _chart;\n };\n\n return _chart;\n};\n","/**\n## Margin Mixin\nMargin is a mixin that provides margin utility functions for both the Row Chart and Coordinate Grid\nCharts.\n\n**/\ndc.marginMixin = function (_chart) {\n var _margin = {top: 10, right: 50, bottom: 30, left: 30};\n\n /**\n #### .margins([margins])\n Get or set the margins for a particular coordinate grid chart instance. The margins is stored as\n an associative Javascript array. Default margins: {top: 10, right: 50, bottom: 30, left: 30}.\n\n The margins can be accessed directly from the getter.\n ```js\n var leftMargin = chart.margins().left; // 30 by default\n chart.margins().left = 50;\n leftMargin = chart.margins().left; // now 50\n ```\n\n **/\n _chart.margins = function (m) {\n if (!arguments.length) {\n return _margin;\n }\n _margin = m;\n return _chart;\n };\n\n _chart.effectiveWidth = function () {\n return _chart.width() - _chart.margins().left - _chart.margins().right;\n };\n\n _chart.effectiveHeight = function () {\n return _chart.height() - _chart.margins().top - _chart.margins().bottom;\n };\n\n return _chart;\n};\n","/**\n## Color Mixin\nThe Color Mixin is an abstract chart functional class providing universal coloring support\nas a mix-in for any concrete chart implementation.\n\n**/\n\ndc.colorMixin = function (_chart) {\n var _colors = d3.scale.category20c();\n var _defaultAccessor = true;\n\n var _colorAccessor = function (d) { return _chart.keyAccessor()(d); };\n\n /**\n #### .colors([colorScale])\n Retrieve current color scale or set a new color scale. This methods accepts any function that\n operates like a d3 scale. If not set the default is\n `d3.scale.category20c()`.\n ```js\n // alternate categorical scale\n chart.colors(d3.scale.category20b());\n\n // ordinal scale\n chart.colors(d3.scale.ordinal().range(['red','green','blue']));\n // convenience method, the same as above\n chart.ordinalColors(['red','green','blue']);\n\n // set a linear scale\n chart.linearColors([\"#4575b4\", \"#ffffbf\", \"#a50026\"]);\n ```\n **/\n _chart.colors = function (_) {\n if (!arguments.length) {\n return _colors;\n }\n if (_ instanceof Array) {\n _colors = d3.scale.quantize().range(_); // deprecated legacy support, note: this fails for ordinal domains\n } else {\n _colors = d3.functor(_);\n }\n return _chart;\n };\n\n /**\n #### .ordinalColors(r)\n Convenience method to set the color scale to d3.scale.ordinal with range `r`.\n\n **/\n _chart.ordinalColors = function (r) {\n return _chart.colors(d3.scale.ordinal().range(r));\n };\n\n /**\n #### .linearColors(r)\n Convenience method to set the color scale to an Hcl interpolated linear scale with range `r`.\n\n **/\n _chart.linearColors = function (r) {\n return _chart.colors(d3.scale.linear()\n .range(r)\n .interpolate(d3.interpolateHcl));\n };\n\n /**\n #### .colorAccessor([colorAccessorFunction])\n Set or the get color accessor function. This function will be used to map a data point in a\n crossfilter group to a color value on the color scale. The default function uses the key\n accessor.\n ```js\n // default index based color accessor\n .colorAccessor(function (d, i){return i;})\n // color accessor for a multi-value crossfilter reduction\n .colorAccessor(function (d){return d.value.absGain;})\n ```\n **/\n _chart.colorAccessor = function (_) {\n if (!arguments.length) {\n return _colorAccessor;\n }\n _colorAccessor = _;\n _defaultAccessor = false;\n return _chart;\n };\n\n // what is this?\n _chart.defaultColorAccessor = function () {\n return _defaultAccessor;\n };\n\n /**\n #### .colorDomain([domain])\n Set or get the current domain for the color mapping function. The domain must be supplied as an\n array.\n\n Note: previously this method accepted a callback function. Instead you may use a custom scale\n set by `.colors`.\n\n **/\n _chart.colorDomain = function (_) {\n if (!arguments.length) {\n return _colors.domain();\n }\n _colors.domain(_);\n return _chart;\n };\n\n /**\n #### .calculateColorDomain()\n Set the domain by determining the min and max values as retrieved by `.colorAccessor` over the\n chart's dataset.\n\n **/\n _chart.calculateColorDomain = function () {\n var newDomain = [d3.min(_chart.data(), _chart.colorAccessor()),\n d3.max(_chart.data(), _chart.colorAccessor())];\n _colors.domain(newDomain);\n return _chart;\n };\n\n /**\n #### .getColor(d [, i])\n Get the color for the datum d and counter i. This is used internally by charts to retrieve a color.\n\n **/\n _chart.getColor = function (d, i) {\n return _colors(_colorAccessor.call(this, d, i));\n };\n\n /**\n #### .colorCalculator([value])\n Gets or sets chart.getColor.\n **/\n _chart.colorCalculator = function (_) {\n if (!arguments.length) {\n return _chart.getColor;\n }\n _chart.getColor = _;\n return _chart;\n };\n\n return _chart;\n};\n","/**\n## Coordinate Grid Mixin\nIncludes: [Color Mixin](#color-mixin), [Margin Mixin](#margin-mixin), [Base Mixin](#base-mixin)\n\nCoordinate Grid is an abstract base chart designed to support a number of coordinate grid based\nconcrete chart types, e.g. bar chart, line chart, and bubble chart.\n\n**/\ndc.coordinateGridMixin = function (_chart) {\n var GRID_LINE_CLASS = 'grid-line';\n var HORIZONTAL_CLASS = 'horizontal';\n var VERTICAL_CLASS = 'vertical';\n var Y_AXIS_LABEL_CLASS = 'y-axis-label';\n var X_AXIS_LABEL_CLASS = 'x-axis-label';\n var DEFAULT_AXIS_LABEL_PADDING = 12;\n\n _chart = dc.colorMixin(dc.marginMixin(dc.baseMixin(_chart)));\n\n _chart.colors(d3.scale.category10());\n _chart._mandatoryAttributes().push('x');\n\n function zoomHandler () {\n _refocused = true;\n if (_zoomOutRestrict) {\n _chart.x().domain(constrainRange(_chart.x().domain(), _xOriginalDomain));\n if (_rangeChart) {\n _chart.x().domain(constrainRange(_chart.x().domain(), _rangeChart.x().domain()));\n }\n }\n\n var domain = _chart.x().domain();\n var domFilter = dc.filters.RangedFilter(domain[0], domain[1]);\n\n _chart.replaceFilter(domFilter);\n _chart.rescale();\n _chart.redraw();\n\n if (_rangeChart && !rangesEqual(_chart.filter(), _rangeChart.filter())) {\n dc.events.trigger(function () {\n _rangeChart.replaceFilter(domFilter);\n _rangeChart.redraw();\n });\n }\n\n _chart._invokeZoomedListener();\n\n dc.events.trigger(function () {\n _chart.redrawGroup();\n }, dc.constants.EVENT_DELAY);\n\n _refocused = !rangesEqual(domain, _xOriginalDomain);\n }\n\n var _parent;\n var _g;\n var _chartBodyG;\n\n var _x;\n var _xOriginalDomain;\n var _xAxis = d3.svg.axis().orient('bottom');\n var _xUnits = dc.units.integers;\n var _xAxisPadding = 0;\n var _xElasticity = false;\n var _xAxisLabel;\n var _xAxisLabelPadding = 0;\n var _lastXDomain;\n\n var _y;\n var _yAxis = d3.svg.axis().orient('left');\n var _yAxisPadding = 0;\n var _yElasticity = false;\n var _yAxisLabel;\n var _yAxisLabelPadding = 0;\n\n var _brush = d3.svg.brush();\n var _brushOn = true;\n var _round;\n\n var _renderHorizontalGridLine = false;\n var _renderVerticalGridLine = false;\n\n var _refocused = false;\n var _unitCount;\n\n var _zoomScale = [1, Infinity];\n var _zoomOutRestrict = true;\n\n var _zoom = d3.behavior.zoom().on('zoom', zoomHandler);\n var _nullZoom = d3.behavior.zoom().on('zoom', null);\n var _hasBeenMouseZoomable = false;\n\n var _rangeChart;\n var _focusChart;\n\n var _mouseZoomable = false;\n var _clipPadding = 0;\n\n var _outerRangeBandPadding = 0.5;\n var _rangeBandPadding = 0;\n\n var _useRightYAxis = false;\n\n _chart.rescale = function () {\n _unitCount = undefined;\n };\n\n /**\n #### .rangeChart([chart])\n Get or set the range selection chart associated with this instance. Setting the range selection\n chart using this function will automatically update its selection brush when the current chart\n zooms in. In return the given range chart will also automatically attach this chart as its focus\n chart hence zoom in when range brush updates. See the [Nasdaq 100\n Index](http://dc-js.github.com/dc.js/) example for this effect in action.\n\n **/\n _chart.rangeChart = function (_) {\n if (!arguments.length) {\n return _rangeChart;\n }\n _rangeChart = _;\n _rangeChart.focusChart(_chart);\n return _chart;\n };\n\n /**\n #### .zoomScale([extent])\n Get or set the scale extent for mouse zooms.\n\n **/\n _chart.zoomScale = function (_) {\n if (!arguments.length) {\n return _zoomScale;\n }\n _zoomScale = _;\n return _chart;\n };\n\n /**\n #### .zoomOutRestrict([true/false])\n Get or set the zoom restriction for the chart. If true limits the zoom to origional domain of the chart.\n **/\n _chart.zoomOutRestrict = function (r) {\n if (!arguments.length) {\n return _zoomOutRestrict;\n }\n _zoomScale[0] = r ? 1 : 0;\n _zoomOutRestrict = r;\n return _chart;\n };\n\n _chart._generateG = function (parent) {\n if (parent === undefined) {\n _parent = _chart.svg();\n } else {\n _parent = parent;\n }\n\n _g = _parent.append('g');\n\n _chartBodyG = _g.append('g').attr('class', 'chart-body')\n .attr('transform', 'translate(' + _chart.margins().left + ', ' + _chart.margins().top + ')')\n .attr('clip-path', 'url(#' + getClipPathId() + ')');\n\n return _g;\n };\n\n /**\n #### .g([gElement])\n Get or set the root g element. This method is usually used to retrieve the g element in order to\n overlay custom svg drawing programatically. **Caution**: The root g element is usually generated\n by dc.js internals, and resetting it might produce unpredictable result.\n\n **/\n _chart.g = function (_) {\n if (!arguments.length) {\n return _g;\n }\n _g = _;\n return _chart;\n };\n\n /**\n #### .mouseZoomable([boolean])\n Set or get mouse zoom capability flag (default: false). When turned on the chart will be\n zoomable using the mouse wheel. If the range selector chart is attached zooming will also update\n the range selection brush on the associated range selector chart.\n\n **/\n _chart.mouseZoomable = function (z) {\n if (!arguments.length) {\n return _mouseZoomable;\n }\n _mouseZoomable = z;\n return _chart;\n };\n\n /**\n #### .chartBodyG()\n Retrieve the svg group for the chart body.\n **/\n _chart.chartBodyG = function (_) {\n if (!arguments.length) {\n return _chartBodyG;\n }\n _chartBodyG = _;\n return _chart;\n };\n\n /**\n #### .x([xScale]) - **mandatory**\n Get or set the x scale. The x scale can be any d3\n [quantitive scale](https://github.com/mbostock/d3/wiki/Quantitative-Scales) or\n [ordinal scale](https://github.com/mbostock/d3/wiki/Ordinal-Scales).\n ```js\n // set x to a linear scale\n chart.x(d3.scale.linear().domain([-2500, 2500]))\n // set x to a time scale to generate histogram\n chart.x(d3.time.scale().domain([new Date(1985, 0, 1), new Date(2012, 11, 31)]))\n ```\n\n **/\n _chart.x = function (_) {\n if (!arguments.length) {\n return _x;\n }\n _x = _;\n _xOriginalDomain = _x.domain();\n return _chart;\n };\n\n _chart.xOriginalDomain = function () {\n return _xOriginalDomain;\n };\n\n /**\n #### .xUnits([xUnits function])\n Set or get the xUnits function. The coordinate grid chart uses the xUnits function to calculate\n the number of data projections on x axis such as the number of bars for a bar chart or the\n number of dots for a line chart. This function is expected to return a Javascript array of all\n data points on x axis, or the number of points on the axis. [d3 time range functions\n d3.time.days, d3.time.months, and\n d3.time.years](https://github.com/mbostock/d3/wiki/Time-Intervals#aliases) are all valid xUnits\n function. dc.js also provides a few units function, see the [Utilities](#utilities) section for\n a list of built-in units functions. The default xUnits function is dc.units.integers.\n ```js\n // set x units to count days\n chart.xUnits(d3.time.days);\n // set x units to count months\n chart.xUnits(d3.time.months);\n ```\n A custom xUnits function can be used as long as it follows the following interface:\n ```js\n // units in integer\n function(start, end, xDomain) {\n // simply calculates how many integers in the domain\n return Math.abs(end - start);\n };\n\n // fixed units\n function(start, end, xDomain) {\n // be aware using fixed units will disable the focus/zoom ability on the chart\n return 1000;\n };\n ```\n\n **/\n _chart.xUnits = function (_) {\n if (!arguments.length) {\n return _xUnits;\n }\n _xUnits = _;\n return _chart;\n };\n\n /**\n #### .xAxis([xAxis])\n Set or get the x axis used by a particular coordinate grid chart instance. This function is most\n useful when x axis customization is required. The x axis in dc.js is an instance of a [d3\n axis object](https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-axis); therefore it supports any\n valid d3 axis manipulation. **Caution**: The x axis is usually generated internally by dc;\n resetting it may cause unexpected results.\n ```js\n // customize x axis tick format\n chart.xAxis().tickFormat(function(v) {return v + '%';});\n // customize x axis tick values\n chart.xAxis().tickValues([0, 100, 200, 300]);\n ```\n\n **/\n _chart.xAxis = function (_) {\n if (!arguments.length) {\n return _xAxis;\n }\n _xAxis = _;\n return _chart;\n };\n\n /**\n #### .elasticX([boolean])\n Turn on/off elastic x axis behavior. If x axis elasticity is turned on, then the grid chart will\n attempt to recalculate the x axis range whenever a redraw event is triggered.\n\n **/\n _chart.elasticX = function (_) {\n if (!arguments.length) {\n return _xElasticity;\n }\n _xElasticity = _;\n return _chart;\n };\n\n /**\n #### .xAxisPadding([padding])\n Set or get x axis padding for the elastic x axis. The padding will be added to both end of the x\n axis if elasticX is turned on; otherwise it is ignored.\n\n * padding can be an integer or percentage in string (e.g. '10%'). Padding can be applied to\n number or date x axes. When padding a date axis, an integer represents number of days being padded\n and a percentage string will be treated the same as an integer.\n\n **/\n _chart.xAxisPadding = function (_) {\n if (!arguments.length) {\n return _xAxisPadding;\n }\n _xAxisPadding = _;\n return _chart;\n };\n\n /**\n #### .xUnitCount()\n Returns the number of units displayed on the x axis using the unit measure configured by\n .xUnits.\n **/\n _chart.xUnitCount = function () {\n if (_unitCount === undefined) {\n var units = _chart.xUnits()(_chart.x().domain()[0], _chart.x().domain()[1], _chart.x().domain());\n\n if (units instanceof Array) {\n _unitCount = units.length;\n } else {\n _unitCount = units;\n }\n }\n\n return _unitCount;\n };\n /**\n #### .useRightYAxis()\n Gets or sets whether the chart should be drawn with a right axis instead of a left axis. When\n used with a chart in a composite chart, allows both left and right Y axes to be shown on a\n chart.\n **/\n\n _chart.useRightYAxis = function (_) {\n if (!arguments.length) {\n return _useRightYAxis;\n }\n _useRightYAxis = _;\n return _chart;\n };\n\n /**\n #### isOrdinal()\n Returns true if the chart is using ordinal xUnits ([dc.units.ordinal](#dcunitsordinal)), or false\n otherwise. Most charts behave differently with ordinal data and use the result of this method to\n trigger the appropriate logic.\n **/\n _chart.isOrdinal = function () {\n return _chart.xUnits() === dc.units.ordinal;\n };\n\n _chart._useOuterPadding = function () {\n return true;\n };\n\n _chart._ordinalXDomain = function () {\n var groups = _chart._computeOrderedGroups(_chart.data());\n return groups.map(_chart.keyAccessor());\n };\n\n function prepareXAxis(g) {\n if (!_chart.isOrdinal()) {\n if (_chart.elasticX()) {\n _x.domain([_chart.xAxisMin(), _chart.xAxisMax()]);\n }\n }\n else { // _chart.isOrdinal()\n if (_chart.elasticX() || _x.domain().length === 0) {\n _x.domain(_chart._ordinalXDomain());\n }\n }\n\n // has the domain changed?\n var xdom = _x.domain();\n if (!_lastXDomain || xdom.some(function (elem, i) { return elem !== _lastXDomain[i]; })) {\n _chart.rescale();\n }\n _lastXDomain = xdom;\n\n // please can't we always use rangeBands for bar charts?\n if (_chart.isOrdinal()) {\n _x.rangeBands([0, _chart.xAxisLength()], _rangeBandPadding,\n _chart._useOuterPadding() ? _outerRangeBandPadding : 0);\n } else {\n _x.range([0, _chart.xAxisLength()]);\n }\n\n _xAxis = _xAxis.scale(_chart.x());\n\n renderVerticalGridLines(g);\n }\n\n _chart.renderXAxis = function (g) {\n var axisXG = g.selectAll('g.x');\n\n if (axisXG.empty()) {\n axisXG = g.append('g')\n .attr('class', 'axis x')\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart._xAxisY() + ')');\n }\n\n var axisXLab = g.selectAll('text.' + X_AXIS_LABEL_CLASS);\n if (axisXLab.empty() && _chart.xAxisLabel()) {\n axisXLab = g.append('text')\n .attr('transform', 'translate(' + (_chart.margins().left + _chart.xAxisLength() / 2) + ',' +\n (_chart.height() - _xAxisLabelPadding) + ')')\n .attr('class', X_AXIS_LABEL_CLASS)\n .attr('text-anchor', 'middle')\n .text(_chart.xAxisLabel());\n }\n if (_chart.xAxisLabel() && axisXLab.text() !== _chart.xAxisLabel()) {\n axisXLab.text(_chart.xAxisLabel());\n }\n\n dc.transition(axisXG, _chart.transitionDuration())\n .call(_xAxis);\n };\n\n function renderVerticalGridLines(g) {\n var gridLineG = g.selectAll('g.' + VERTICAL_CLASS);\n\n if (_renderVerticalGridLine) {\n if (gridLineG.empty()) {\n gridLineG = g.insert('g', ':first-child')\n .attr('class', GRID_LINE_CLASS + ' ' + VERTICAL_CLASS)\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')');\n }\n\n var ticks = _xAxis.tickValues() ? _xAxis.tickValues() :\n (typeof _x.ticks === 'function' ? _x.ticks(_xAxis.ticks()[0]) : _x.domain());\n\n var lines = gridLineG.selectAll('line')\n .data(ticks);\n\n // enter\n var linesGEnter = lines.enter()\n .append('line')\n .attr('x1', function (d) {\n return _x(d);\n })\n .attr('y1', _chart._xAxisY() - _chart.margins().top)\n .attr('x2', function (d) {\n return _x(d);\n })\n .attr('y2', 0)\n .attr('opacity', 0);\n dc.transition(linesGEnter, _chart.transitionDuration())\n .attr('opacity', 1);\n\n // update\n dc.transition(lines, _chart.transitionDuration())\n .attr('x1', function (d) {\n return _x(d);\n })\n .attr('y1', _chart._xAxisY() - _chart.margins().top)\n .attr('x2', function (d) {\n return _x(d);\n })\n .attr('y2', 0);\n\n // exit\n lines.exit().remove();\n }\n else {\n gridLineG.selectAll('line').remove();\n }\n }\n\n _chart._xAxisY = function () {\n return (_chart.height() - _chart.margins().bottom);\n };\n\n _chart.xAxisLength = function () {\n return _chart.effectiveWidth();\n };\n\n /**\n #### .xAxisLabel([labelText, [, padding]])\n Set or get the x axis label. If setting the label, you may optionally include additional padding to\n the margin to make room for the label. By default the padded is set to 12 to accomodate the text height.\n **/\n _chart.xAxisLabel = function (_, padding) {\n if (!arguments.length) {\n return _xAxisLabel;\n }\n _xAxisLabel = _;\n _chart.margins().bottom -= _xAxisLabelPadding;\n _xAxisLabelPadding = (padding === undefined) ? DEFAULT_AXIS_LABEL_PADDING : padding;\n _chart.margins().bottom += _xAxisLabelPadding;\n return _chart;\n };\n\n _chart._prepareYAxis = function (g) {\n if (_y === undefined || _chart.elasticY()) {\n _y = d3.scale.linear();\n var min = _chart.yAxisMin() || 0,\n max = _chart.yAxisMax() || 0;\n _y.domain([min, max]).rangeRound([_chart.yAxisHeight(), 0]);\n }\n\n _y.range([_chart.yAxisHeight(), 0]);\n _yAxis = _yAxis.scale(_y);\n\n if (_useRightYAxis) {\n _yAxis.orient('right');\n }\n\n _chart._renderHorizontalGridLinesForAxis(g, _y, _yAxis);\n };\n\n _chart.renderYAxisLabel = function (axisClass, text, rotation, labelXPosition) {\n labelXPosition = labelXPosition || _yAxisLabelPadding;\n\n var axisYLab = _chart.g().selectAll('text.' + Y_AXIS_LABEL_CLASS + '.' + axisClass + '-label');\n if (axisYLab.empty() && text) {\n\n var labelYPosition = (_chart.margins().top + _chart.yAxisHeight() / 2);\n axisYLab = _chart.g().append('text')\n .attr('transform', 'translate(' + labelXPosition + ',' + labelYPosition + '),rotate(' + rotation + ')')\n .attr('class', Y_AXIS_LABEL_CLASS + ' ' + axisClass + '-label')\n .attr('text-anchor', 'middle')\n .text(text);\n }\n if (text && axisYLab.text() !== text) {\n axisYLab.text(text);\n }\n };\n\n _chart.renderYAxisAt = function (axisClass, axis, position) {\n var axisYG = _chart.g().selectAll('g.' + axisClass);\n if (axisYG.empty()) {\n axisYG = _chart.g().append('g')\n .attr('class', 'axis ' + axisClass)\n .attr('transform', 'translate(' + position + ',' + _chart.margins().top + ')');\n }\n\n dc.transition(axisYG, _chart.transitionDuration()).call(axis);\n };\n\n _chart.renderYAxis = function () {\n var axisPosition = _useRightYAxis ? (_chart.width() - _chart.margins().right) : _chart._yAxisX();\n _chart.renderYAxisAt('y', _yAxis, axisPosition);\n var labelPosition = _useRightYAxis ? (_chart.width() - _yAxisLabelPadding) : _yAxisLabelPadding;\n var rotation = _useRightYAxis ? 90 : -90;\n _chart.renderYAxisLabel('y', _chart.yAxisLabel(), rotation, labelPosition);\n };\n\n _chart._renderHorizontalGridLinesForAxis = function (g, scale, axis) {\n var gridLineG = g.selectAll('g.' + HORIZONTAL_CLASS);\n\n if (_renderHorizontalGridLine) {\n var ticks = axis.tickValues() ? axis.tickValues() : scale.ticks(axis.ticks()[0]);\n\n if (gridLineG.empty()) {\n gridLineG = g.insert('g', ':first-child')\n .attr('class', GRID_LINE_CLASS + ' ' + HORIZONTAL_CLASS)\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')');\n }\n\n var lines = gridLineG.selectAll('line')\n .data(ticks);\n\n // enter\n var linesGEnter = lines.enter()\n .append('line')\n .attr('x1', 1)\n .attr('y1', function (d) {\n return scale(d);\n })\n .attr('x2', _chart.xAxisLength())\n .attr('y2', function (d) {\n return scale(d);\n })\n .attr('opacity', 0);\n dc.transition(linesGEnter, _chart.transitionDuration())\n .attr('opacity', 1);\n\n // update\n dc.transition(lines, _chart.transitionDuration())\n .attr('x1', 1)\n .attr('y1', function (d) {\n return scale(d);\n })\n .attr('x2', _chart.xAxisLength())\n .attr('y2', function (d) {\n return scale(d);\n });\n\n // exit\n lines.exit().remove();\n }\n else {\n gridLineG.selectAll('line').remove();\n }\n };\n\n _chart._yAxisX = function () {\n return _chart.useRightYAxis() ? _chart.width() - _chart.margins().right : _chart.margins().left;\n };\n\n /**\n #### .yAxisLabel([labelText, [, padding]])\n Set or get the y axis label. If setting the label, you may optionally include additional padding\n to the margin to make room for the label. By default the padded is set to 12 to accomodate the\n text height.\n **/\n _chart.yAxisLabel = function (_, padding) {\n if (!arguments.length) {\n return _yAxisLabel;\n }\n _yAxisLabel = _;\n _chart.margins().left -= _yAxisLabelPadding;\n _yAxisLabelPadding = (padding === undefined) ? DEFAULT_AXIS_LABEL_PADDING : padding;\n _chart.margins().left += _yAxisLabelPadding;\n return _chart;\n };\n\n /**\n #### .y([yScale])\n Get or set the y scale. The y scale is typically automatically determined by the chart implementation.\n\n **/\n _chart.y = function (_) {\n if (!arguments.length) {\n return _y;\n }\n _y = _;\n return _chart;\n };\n\n /**\n #### .yAxis([yAxis])\n Set or get the y axis used by the coordinate grid chart instance. This function is most useful\n when y axis customization is required. The y axis in dc.js is simply an instance of a [d3 axis\n object](https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-_axis); therefore it supports any\n valid d3 axis manipulation. **Caution**: The y axis is usually generated internally by dc;\n resetting it may cause unexpected results.\n ```js\n // customize y axis tick format\n chart.yAxis().tickFormat(function(v) {return v + '%';});\n // customize y axis tick values\n chart.yAxis().tickValues([0, 100, 200, 300]);\n ```\n\n **/\n _chart.yAxis = function (y) {\n if (!arguments.length) {\n return _yAxis;\n }\n _yAxis = y;\n return _chart;\n };\n\n /**\n #### .elasticY([boolean])\n Turn on/off elastic y axis behavior. If y axis elasticity is turned on, then the grid chart will\n attempt to recalculate the y axis range whenever a redraw event is triggered.\n\n **/\n _chart.elasticY = function (_) {\n if (!arguments.length) {\n return _yElasticity;\n }\n _yElasticity = _;\n return _chart;\n };\n\n /**\n #### .renderHorizontalGridLines([boolean])\n Turn on/off horizontal grid lines.\n\n **/\n _chart.renderHorizontalGridLines = function (_) {\n if (!arguments.length) {\n return _renderHorizontalGridLine;\n }\n _renderHorizontalGridLine = _;\n return _chart;\n };\n\n /**\n #### .renderVerticalGridLines([boolean])\n Turn on/off vertical grid lines.\n\n **/\n _chart.renderVerticalGridLines = function (_) {\n if (!arguments.length) {\n return _renderVerticalGridLine;\n }\n _renderVerticalGridLine = _;\n return _chart;\n };\n\n /**\n #### .xAxisMin()\n Calculates the minimum x value to display in the chart. Includes xAxisPadding if set.\n **/\n _chart.xAxisMin = function () {\n var min = d3.min(_chart.data(), function (e) {\n return _chart.keyAccessor()(e);\n });\n return dc.utils.subtract(min, _xAxisPadding);\n };\n\n /**\n #### .xAxisMax()\n Calculates the maximum x value to display in the chart. Includes xAxisPadding if set.\n **/\n _chart.xAxisMax = function () {\n var max = d3.max(_chart.data(), function (e) {\n return _chart.keyAccessor()(e);\n });\n return dc.utils.add(max, _xAxisPadding);\n };\n\n /**\n #### .yAxisMin()\n Calculates the minimum y value to display in the chart. Includes yAxisPadding if set.\n **/\n _chart.yAxisMin = function () {\n var min = d3.min(_chart.data(), function (e) {\n return _chart.valueAccessor()(e);\n });\n return dc.utils.subtract(min, _yAxisPadding);\n };\n\n /**\n #### .yAxisMax()\n Calculates the maximum y value to display in the chart. Includes yAxisPadding if set.\n **/\n _chart.yAxisMax = function () {\n var max = d3.max(_chart.data(), function (e) {\n return _chart.valueAccessor()(e);\n });\n return dc.utils.add(max, _yAxisPadding);\n };\n\n /**\n #### .yAxisPadding([padding])\n Set or get y axis padding for the elastic y axis. The padding will be added to the top of the y\n axis if elasticY is turned on; otherwise it is ignored.\n\n * padding can be an integer or percentage in string (e.g. '10%'). Padding can be applied to\n number or date axes. When padding a date axis, an integer represents number of days being padded\n and a percentage string will be treated the same as an integer.\n\n **/\n _chart.yAxisPadding = function (_) {\n if (!arguments.length) {\n return _yAxisPadding;\n }\n _yAxisPadding = _;\n return _chart;\n };\n\n _chart.yAxisHeight = function () {\n return _chart.effectiveHeight();\n };\n\n /**\n #### .round([rounding function])\n Set or get the rounding function used to quantize the selection when brushing is enabled.\n ```js\n // set x unit round to by month, this will make sure range selection brush will\n // select whole months\n chart.round(d3.time.month.round);\n ```\n\n **/\n _chart.round = function (_) {\n if (!arguments.length) {\n return _round;\n }\n _round = _;\n return _chart;\n };\n\n _chart._rangeBandPadding = function (_) {\n if (!arguments.length) {\n return _rangeBandPadding;\n }\n _rangeBandPadding = _;\n return _chart;\n };\n\n _chart._outerRangeBandPadding = function (_) {\n if (!arguments.length) {\n return _outerRangeBandPadding;\n }\n _outerRangeBandPadding = _;\n return _chart;\n };\n\n dc.override(_chart, 'filter', function (_) {\n if (!arguments.length) {\n return _chart._filter();\n }\n\n _chart._filter(_);\n\n if (_) {\n _chart.brush().extent(_);\n } else {\n _chart.brush().clear();\n }\n\n return _chart;\n });\n\n _chart.brush = function (_) {\n if (!arguments.length) {\n return _brush;\n }\n _brush = _;\n return _chart;\n };\n\n function brushHeight() {\n return _chart._xAxisY() - _chart.margins().top;\n }\n\n _chart.renderBrush = function (g) {\n if (_brushOn) {\n _brush.on('brush', _chart._brushing);\n _brush.on('brushstart', _chart._disableMouseZoom);\n _brush.on('brushend', configureMouseZoom);\n\n var gBrush = g.append('g')\n .attr('class', 'brush')\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')')\n .call(_brush.x(_chart.x()));\n _chart.setBrushY(gBrush);\n _chart.setHandlePaths(gBrush);\n\n if (_chart.hasFilter()) {\n _chart.redrawBrush(g);\n }\n }\n };\n\n _chart.setHandlePaths = function (gBrush) {\n gBrush.selectAll('.resize').append('path').attr('d', _chart.resizeHandlePath);\n };\n\n _chart.setBrushY = function (gBrush) {\n gBrush.selectAll('rect').attr('height', brushHeight());\n };\n\n _chart.extendBrush = function () {\n var extent = _brush.extent();\n if (_chart.round()) {\n extent[0] = extent.map(_chart.round())[0];\n extent[1] = extent.map(_chart.round())[1];\n\n _g.select('.brush')\n .call(_brush.extent(extent));\n }\n return extent;\n };\n\n _chart.brushIsEmpty = function (extent) {\n return _brush.empty() || !extent || extent[1] <= extent[0];\n };\n\n _chart._brushing = function () {\n var extent = _chart.extendBrush();\n\n _chart.redrawBrush(_g);\n\n if (_chart.brushIsEmpty(extent)) {\n dc.events.trigger(function () {\n _chart.filter(null);\n _chart.redrawGroup();\n }, dc.constants.EVENT_DELAY);\n } else {\n var rangedFilter = dc.filters.RangedFilter(extent[0], extent[1]);\n\n dc.events.trigger(function () {\n _chart.replaceFilter(rangedFilter);\n _chart.redrawGroup();\n }, dc.constants.EVENT_DELAY);\n }\n };\n\n _chart.redrawBrush = function (g) {\n if (_brushOn) {\n if (_chart.filter() && _chart.brush().empty()) {\n _chart.brush().extent(_chart.filter());\n }\n\n var gBrush = g.select('g.brush');\n gBrush.call(_chart.brush().x(_chart.x()));\n _chart.setBrushY(gBrush);\n }\n\n _chart.fadeDeselectedArea();\n };\n\n _chart.fadeDeselectedArea = function () {\n // do nothing, sub-chart should override this function\n };\n\n // borrowed from Crossfilter example\n _chart.resizeHandlePath = function (d) {\n var e = +(d === 'e'), x = e ? 1 : -1, y = brushHeight() / 3;\n return 'M' + (0.5 * x) + ',' + y +\n 'A6,6 0 0 ' + e + ' ' + (6.5 * x) + ',' + (y + 6) +\n 'V' + (2 * y - 6) +\n 'A6,6 0 0 ' + e + ' ' + (0.5 * x) + ',' + (2 * y) +\n 'Z' +\n 'M' + (2.5 * x) + ',' + (y + 8) +\n 'V' + (2 * y - 8) +\n 'M' + (4.5 * x) + ',' + (y + 8) +\n 'V' + (2 * y - 8);\n };\n\n function getClipPathId() {\n return _chart.anchorName().replace(/[ .#]/g, '-') + '-clip';\n }\n\n /**\n #### .clipPadding([padding])\n Get or set the padding in pixels for the clip path. Once set padding will be applied evenly to\n the top, left, right, and bottom when the clip path is generated. If set to zero, the clip area\n will be exactly the chart body area minus the margins. Default: 5\n\n **/\n _chart.clipPadding = function (p) {\n if (!arguments.length) {\n return _clipPadding;\n }\n _clipPadding = p;\n return _chart;\n };\n\n function generateClipPath() {\n var defs = dc.utils.appendOrSelect(_parent, 'defs');\n // cannot select elements; bug in WebKit, must select by id\n // https://groups.google.com/forum/#!topic/d3-js/6EpAzQ2gU9I\n var id = getClipPathId();\n var chartBodyClip = dc.utils.appendOrSelect(defs, '#' + id, 'clipPath').attr('id', id);\n\n var padding = _clipPadding * 2;\n\n dc.utils.appendOrSelect(chartBodyClip, 'rect')\n .attr('width', _chart.xAxisLength() + padding)\n .attr('height', _chart.yAxisHeight() + padding)\n .attr('transform', 'translate(-' + _clipPadding + ', -' + _clipPadding + ')');\n }\n\n _chart._preprocessData = function () {};\n\n _chart._doRender = function () {\n _chart.resetSvg();\n\n _chart._preprocessData();\n\n _chart._generateG();\n generateClipPath();\n\n drawChart(true);\n\n configureMouseZoom();\n\n return _chart;\n };\n\n _chart._doRedraw = function () {\n _chart._preprocessData();\n\n drawChart(false);\n generateClipPath();\n\n return _chart;\n };\n\n function drawChart (render) {\n if (_chart.isOrdinal()) {\n _brushOn = false;\n }\n\n prepareXAxis(_chart.g());\n _chart._prepareYAxis(_chart.g());\n\n _chart.plotData();\n\n if (_chart.elasticX() || _refocused || render) {\n _chart.renderXAxis(_chart.g());\n }\n\n if (_chart.elasticY() || render) {\n _chart.renderYAxis(_chart.g());\n }\n\n if (render) {\n _chart.renderBrush(_chart.g());\n } else {\n _chart.redrawBrush(_chart.g());\n }\n }\n\n function configureMouseZoom () {\n if (_mouseZoomable) {\n _chart._enableMouseZoom();\n }\n else if (_hasBeenMouseZoomable) {\n _chart._disableMouseZoom();\n }\n }\n\n _chart._enableMouseZoom = function () {\n _hasBeenMouseZoomable = true;\n _zoom.x(_chart.x())\n .scaleExtent(_zoomScale)\n .size([_chart.width(), _chart.height()])\n .duration(_chart.transitionDuration());\n _chart.root().call(_zoom);\n };\n\n _chart._disableMouseZoom = function () {\n _chart.root().call(_nullZoom);\n };\n\n function constrainRange(range, constraint) {\n var constrainedRange = [];\n constrainedRange[0] = d3.max([range[0], constraint[0]]);\n constrainedRange[1] = d3.min([range[1], constraint[1]]);\n return constrainedRange;\n }\n\n /**\n #### .focus([range])\n Zoom this chart to focus on the given range. The given range should be an array containing only\n 2 elements (`[start, end]`) defining a range in the x domain. If the range is not given or set\n to null, then the zoom will be reset. _For focus to work elasticX has to be turned off;\n otherwise focus will be ignored._\n ```js\n chart.renderlet(function(chart){\n // smooth the rendering through event throttling\n dc.events.trigger(function(){\n // focus some other chart to the range selected by user on this chart\n someOtherChart.focus(chart.filter());\n });\n })\n ```\n\n **/\n _chart.focus = function (range) {\n if (hasRangeSelected(range)) {\n _chart.x().domain(range);\n } else {\n _chart.x().domain(_xOriginalDomain);\n }\n\n _zoom.x(_chart.x());\n zoomHandler();\n };\n\n _chart.refocused = function () {\n return _refocused;\n };\n\n _chart.focusChart = function (c) {\n if (!arguments.length) {\n return _focusChart;\n }\n _focusChart = c;\n _chart.on('filtered', function (chart) {\n if (!chart.filter()) {\n dc.events.trigger(function () {\n _focusChart.x().domain(_focusChart.xOriginalDomain());\n });\n } else if (!rangesEqual(chart.filter(), _focusChart.filter())) {\n dc.events.trigger(function () {\n _focusChart.focus(chart.filter());\n });\n }\n });\n return _chart;\n };\n\n function rangesEqual(range1, range2) {\n if (!range1 && !range2) {\n return true;\n }\n else if (!range1 || !range2) {\n return false;\n }\n else if (range1.length === 0 && range2.length === 0) {\n return true;\n }\n else if (range1[0].valueOf() === range2[0].valueOf() &&\n range1[1].valueOf() === range2[1].valueOf()) {\n return true;\n }\n return false;\n }\n\n /**\n #### .brushOn([boolean])\n Turn on/off the brush-based range filter. When brushing is on then user can drag the mouse\n across a chart with a quantitative scale to perform range filtering based on the extent of the\n brush, or click on the bars of an ordinal bar chart or slices of a pie chart to filter and\n unfilter them. However turning on the brush filter will disable other interactive elements on\n the chart such as highlighting, tool tips, and reference lines. Zooming will still be possible\n if enabled, but only via scrolling (panning will be disabled.) Default: true\n\n **/\n _chart.brushOn = function (_) {\n if (!arguments.length) {\n return _brushOn;\n }\n _brushOn = _;\n return _chart;\n };\n\n function hasRangeSelected(range) {\n return range instanceof Array && range.length > 1;\n }\n\n return _chart;\n};\n","/**\n## Stack Mixin\nStack Mixin is an mixin that provides cross-chart support of stackability using d3.layout.stack.\n\n**/\ndc.stackMixin = function (_chart) {\n\n function prepareValues (layer, layerIdx) {\n var valAccessor = layer.accessor || _chart.valueAccessor();\n layer.name = String(layer.name || layerIdx);\n layer.values = layer.group.all().map(function (d, i) {\n return {\n x: _chart.keyAccessor()(d, i),\n y: layer.hidden ? null : valAccessor(d, i),\n data: d,\n layer: layer.name,\n hidden: layer.hidden\n };\n });\n\n layer.values = layer.values.filter(domainFilter());\n return layer.values;\n }\n\n var _stackLayout = d3.layout.stack()\n .values(prepareValues);\n\n var _stack = [];\n var _titles = {};\n\n var _hidableStacks = false;\n\n function domainFilter() {\n if (!_chart.x()) {\n return d3.functor(true);\n }\n var xDomain = _chart.x().domain();\n if (_chart.isOrdinal()) {\n // TODO #416\n //var domainSet = d3.set(xDomain);\n return function () {\n return true; //domainSet.has(p.x);\n };\n }\n if (_chart.elasticX()) {\n return function () { return true; };\n }\n return function (p) {\n //return true;\n return p.x >= xDomain[0] && p.x <= xDomain[xDomain.length - 1];\n };\n }\n\n /**\n #### .stack(group[, name, accessor])\n Stack a new crossfilter group onto this chart with an optional custom value accessor. All stacks\n in the same chart will share the same key accessor and therefore the same set of keys.\n\n For example, in a stacked bar chart, the bars of each stack will be positioned using the same set\n of keys on the x axis, while stacked vertically. If name is specified then it will be used to\n generate the legend label.\n ```js\n // stack group using default accessor\n chart.stack(valueSumGroup)\n // stack group using custom accessor\n .stack(avgByDayGroup, function(d){return d.value.avgByDay;});\n ```\n\n **/\n _chart.stack = function (group, name, accessor) {\n if (!arguments.length) {\n return _stack;\n }\n\n if (arguments.length <= 2) {\n accessor = name;\n }\n\n var layer = {group:group};\n if (typeof name === 'string') {\n layer.name = name;\n }\n if (typeof accessor === 'function') {\n layer.accessor = accessor;\n }\n _stack.push(layer);\n\n return _chart;\n };\n\n dc.override(_chart, 'group', function (g, n, f) {\n if (!arguments.length) {\n return _chart._group();\n }\n _stack = [];\n _titles = {};\n _chart.stack(g, n);\n if (f) {\n _chart.valueAccessor(f);\n }\n return _chart._group(g, n);\n });\n\n /**\n #### .hidableStacks([boolean])\n Allow named stacks to be hidden or shown by clicking on legend items.\n This does not affect the behavior of hideStack or showStack.\n\n **/\n _chart.hidableStacks = function (_) {\n if (!arguments.length) {\n return _hidableStacks;\n }\n _hidableStacks = _;\n return _chart;\n };\n\n function findLayerByName(n) {\n var i = _stack.map(dc.pluck('name')).indexOf(n);\n return _stack[i];\n }\n\n /**\n #### .hideStack(name)\n Hide all stacks on the chart with the given name.\n The chart must be re-rendered for this change to appear.\n\n **/\n _chart.hideStack = function (stackName) {\n var layer = findLayerByName(stackName);\n if (layer) {\n layer.hidden = true;\n }\n return _chart;\n };\n\n /**\n #### .showStack(name)\n Show all stacks on the chart with the given name.\n The chart must be re-rendered for this change to appear.\n\n **/\n _chart.showStack = function (stackName) {\n var layer = findLayerByName(stackName);\n if (layer) {\n layer.hidden = false;\n }\n return _chart;\n };\n\n _chart.getValueAccessorByIndex = function (index) {\n return _stack[index].accessor || _chart.valueAccessor();\n };\n\n _chart.yAxisMin = function () {\n var min = d3.min(flattenStack(), function (p) {\n return (p.y + p.y0 < p.y0) ? (p.y + p.y0) : p.y0;\n });\n\n return dc.utils.subtract(min, _chart.yAxisPadding());\n\n };\n\n _chart.yAxisMax = function () {\n var max = d3.max(flattenStack(), function (p) {\n return p.y + p.y0;\n });\n\n return dc.utils.add(max, _chart.yAxisPadding());\n };\n\n function flattenStack() {\n var valueses = _chart.data().map(function (layer) { return layer.values; });\n return Array.prototype.concat.apply([], valueses);\n }\n\n _chart.xAxisMin = function () {\n var min = d3.min(flattenStack(), dc.pluck('x'));\n return dc.utils.subtract(min, _chart.xAxisPadding());\n };\n\n _chart.xAxisMax = function () {\n var max = d3.max(flattenStack(), dc.pluck('x'));\n return dc.utils.add(max, _chart.xAxisPadding());\n };\n\n /**\n #### .title([stackName], [titleFunction])\n Set or get the title function. Chart class will use this function to render svg title (usually interpreted by\n browser as tooltips) for each child element in the chart, i.e. a slice in a pie chart or a bubble in a bubble chart.\n Almost every chart supports title function however in grid coordinate chart you need to turn off brush in order to\n use title otherwise the brush layer will block tooltip trigger.\n\n If the first argument is a stack name, the title function will get or set the title for that stack. If stackName\n is not provided, the first stack is implied.\n ```js\n // set a title function on 'first stack'\n chart.title('first stack', function(d) { return d.key + ': ' + d.value; });\n // get a title function from 'second stack'\n var secondTitleFunction = chart.title('second stack');\n );\n ```\n **/\n dc.override(_chart, 'title', function (stackName, titleAccessor) {\n if (!stackName) {\n return _chart._title();\n }\n\n if (typeof stackName === 'function') {\n return _chart._title(stackName);\n }\n if (stackName === _chart._groupName && typeof titleAccessor === 'function') {\n return _chart._title(titleAccessor);\n }\n\n if (typeof titleAccessor !== 'function') {\n return _titles[stackName] || _chart._title();\n }\n\n _titles[stackName] = titleAccessor;\n\n return _chart;\n });\n\n /**\n #### .stackLayout([layout])\n Gets or sets the stack layout algorithm, which computes a baseline for each stack and\n propagates it to the next. The default is\n [d3.layout.stack](https://github.com/mbostock/d3/wiki/Stack-Layout#stack).\n **/\n _chart.stackLayout = function (stack) {\n if (!arguments.length) {\n return _stackLayout;\n }\n _stackLayout = stack;\n return _chart;\n };\n\n function visability(l) {\n return !l.hidden;\n }\n\n _chart.data(function () {\n var layers = _stack.filter(visability);\n return layers.length ? _chart.stackLayout()(layers) : [];\n });\n\n _chart._ordinalXDomain = function () {\n var flat = flattenStack().map(dc.pluck('data'));\n var ordered = _chart._computeOrderedGroups(flat);\n return ordered.map(_chart.keyAccessor());\n };\n\n _chart.colorAccessor(function (d) {\n var layer = this.layer || this.name || d.name || d.layer;\n return layer;\n });\n\n _chart.legendables = function () {\n return _stack.map(function (layer, i) {\n return {\n chart:_chart,\n name:layer.name,\n hidden: layer.hidden || false,\n color:_chart.getColor.call(layer, layer.values, i)\n };\n });\n };\n\n _chart.isLegendableHidden = function (d) {\n var layer = findLayerByName(d.name);\n return layer ? layer.hidden : false;\n };\n\n _chart.legendToggle = function (d) {\n if (_hidableStacks) {\n if (_chart.isLegendableHidden(d)) {\n _chart.showStack(d.name);\n } else {\n _chart.hideStack(d.name);\n }\n //_chart.redraw();\n _chart.renderGroup();\n }\n };\n\n return _chart;\n};\n","/**\n## Cap Mixin\nCap is a mixin that groups small data elements below a _cap_ into an *others* grouping for both the\nRow and Pie Charts.\n\nThe top ordered elements in the group up to the cap amount will be kept in the chart, and the rest\nwill be replaced with an *others* element, with value equal to the sum of the replaced values. The\nkeys of the elements below the cap limit are recorded in order to filter by those keys when the\n*others* element is clicked.\n\n**/\ndc.capMixin = function (_chart) {\n\n var _cap = Infinity;\n\n var _othersLabel = 'Others';\n\n var _othersGrouper = function (topRows) {\n var topRowsSum = d3.sum(topRows, _chart.valueAccessor()),\n allRows = _chart.group().all(),\n allRowsSum = d3.sum(allRows, _chart.valueAccessor()),\n topKeys = topRows.map(_chart.keyAccessor()),\n allKeys = allRows.map(_chart.keyAccessor()),\n topSet = d3.set(topKeys),\n others = allKeys.filter(function (d) {return !topSet.has(d);});\n if (allRowsSum > topRowsSum) {\n return topRows.concat([{'others': others, 'key': _othersLabel, 'value': allRowsSum - topRowsSum}]);\n }\n return topRows;\n };\n\n _chart.cappedKeyAccessor = function (d, i) {\n if (d.others) {\n return d.key;\n }\n return _chart.keyAccessor()(d, i);\n };\n\n _chart.cappedValueAccessor = function (d, i) {\n if (d.others) {\n return d.value;\n }\n return _chart.valueAccessor()(d, i);\n };\n\n _chart.data(function (group) {\n if (_cap === Infinity) {\n return _chart._computeOrderedGroups(group.all());\n } else {\n var topRows = group.top(_cap); // ordered by crossfilter group order (default value)\n topRows = _chart._computeOrderedGroups(topRows); // re-order using ordering (default key)\n if (_othersGrouper) {\n return _othersGrouper(topRows);\n }\n return topRows;\n }\n });\n\n /**\n #### .cap([count])\n Get or set the count of elements to that will be included in the cap.\n **/\n _chart.cap = function (_) {\n if (!arguments.length) {\n return _cap;\n }\n _cap = _;\n return _chart;\n };\n\n /**\n #### .othersLabel([label])\n Get or set the label for *Others* slice when slices cap is specified. Default label is **Others**.\n **/\n _chart.othersLabel = function (_) {\n if (!arguments.length) {\n return _othersLabel;\n }\n _othersLabel = _;\n return _chart;\n };\n\n /**\n #### .othersGrouper([grouperFunction])\n Get or set the grouper function that will perform the insertion of data for the *Others* slice\n if the slices cap is specified. If set to a falsy value, no others will be added. By default the\n grouper function computes the sum of all values below the cap.\n ```js\n chart.othersGrouper(function (data) {\n // compute the value for others, presumably the sum of all values below the cap\n var othersSum = yourComputeOthersValueLogic(data)\n\n // the keys are needed to properly filter when the others element is clicked\n var othersKeys = yourComputeOthersKeysArrayLogic(data);\n\n // add the others row to the dataset\n data.push({'key': 'Others', 'value': othersSum, 'others': othersKeys });\n\n return data;\n });\n ```\n **/\n _chart.othersGrouper = function (_) {\n if (!arguments.length) {\n return _othersGrouper;\n }\n _othersGrouper = _;\n return _chart;\n };\n\n dc.override(_chart, 'onClick', function (d) {\n if (d.others) {\n _chart.filter([d.others]);\n }\n _chart._onClick(d);\n });\n\n return _chart;\n};\n","/**\n## Bubble Mixin\nIncludes: [Color Mixin](#color-mixin)\n\nThis Mixin provides reusable functionalities for any chart that needs to visualize data using bubbles.\n\n**/\ndc.bubbleMixin = function (_chart) {\n var _maxBubbleRelativeSize = 0.3;\n var _minRadiusWithLabel = 10;\n\n _chart.BUBBLE_NODE_CLASS = 'node';\n _chart.BUBBLE_CLASS = 'bubble';\n _chart.MIN_RADIUS = 10;\n\n _chart = dc.colorMixin(_chart);\n\n _chart.renderLabel(true);\n\n _chart.data(function (group) {\n return group.top(Infinity);\n });\n\n var _r = d3.scale.linear().domain([0, 100]);\n\n var _rValueAccessor = function (d) {\n return d.r;\n };\n\n /**\n #### .r([bubbleRadiusScale])\n Get or set the bubble radius scale. By default the bubble chart uses\n `d3.scale.linear().domain([0, 100])` as its r scale .\n\n **/\n _chart.r = function (_) {\n if (!arguments.length) {\n return _r;\n }\n _r = _;\n return _chart;\n };\n\n /**\n #### .radiusValueAccessor([radiusValueAccessor])\n Get or set the radius value accessor function. If set, the radius value accessor function will\n be used to retrieve a data value for each bubble. The data retrieved then will be mapped using\n the r scale to the actual bubble radius. This allows you to encode a data dimension using bubble\n size.\n\n **/\n _chart.radiusValueAccessor = function (_) {\n if (!arguments.length) {\n return _rValueAccessor;\n }\n _rValueAccessor = _;\n return _chart;\n };\n\n _chart.rMin = function () {\n var min = d3.min(_chart.data(), function (e) {\n return _chart.radiusValueAccessor()(e);\n });\n return min;\n };\n\n _chart.rMax = function () {\n var max = d3.max(_chart.data(), function (e) {\n return _chart.radiusValueAccessor()(e);\n });\n return max;\n };\n\n _chart.bubbleR = function (d) {\n var value = _chart.radiusValueAccessor()(d);\n var r = _chart.r()(value);\n if (isNaN(r) || value <= 0) {\n r = 0;\n }\n return r;\n };\n\n var labelFunction = function (d) {\n return _chart.label()(d);\n };\n\n var labelOpacity = function (d) {\n return (_chart.bubbleR(d) > _minRadiusWithLabel) ? 1 : 0;\n };\n\n _chart._doRenderLabel = function (bubbleGEnter) {\n if (_chart.renderLabel()) {\n var label = bubbleGEnter.select('text');\n\n if (label.empty()) {\n label = bubbleGEnter.append('text')\n .attr('text-anchor', 'middle')\n .attr('dy', '.3em')\n .on('click', _chart.onClick);\n }\n\n label\n .attr('opacity', 0)\n .text(labelFunction);\n dc.transition(label, _chart.transitionDuration())\n .attr('opacity', labelOpacity);\n }\n };\n\n _chart.doUpdateLabels = function (bubbleGEnter) {\n if (_chart.renderLabel()) {\n var labels = bubbleGEnter.selectAll('text')\n .text(labelFunction);\n dc.transition(labels, _chart.transitionDuration())\n .attr('opacity', labelOpacity);\n }\n };\n\n var titleFunction = function (d) {\n return _chart.title()(d);\n };\n\n _chart._doRenderTitles = function (g) {\n if (_chart.renderTitle()) {\n var title = g.select('title');\n\n if (title.empty()) {\n g.append('title').text(titleFunction);\n }\n }\n };\n\n _chart.doUpdateTitles = function (g) {\n if (_chart.renderTitle()) {\n g.selectAll('title').text(titleFunction);\n }\n };\n\n /**\n #### .minRadiusWithLabel([radius])\n Get or set the minimum radius for label rendering. If a bubble's radius is less than this value\n then no label will be rendered. Default: 10\n\n **/\n _chart.minRadiusWithLabel = function (_) {\n if (!arguments.length) {\n return _minRadiusWithLabel;\n }\n _minRadiusWithLabel = _;\n return _chart;\n };\n\n /**\n #### .maxBubbleRelativeSize([relativeSize])\n Get or set the maximum relative size of a bubble to the length of x axis. This value is useful\n when the difference in radius between bubbles is too great. Default: 0.3\n\n **/\n _chart.maxBubbleRelativeSize = function (_) {\n if (!arguments.length) {\n return _maxBubbleRelativeSize;\n }\n _maxBubbleRelativeSize = _;\n return _chart;\n };\n\n _chart.fadeDeselectedArea = function () {\n if (_chart.hasFilter()) {\n _chart.selectAll('g.' + _chart.BUBBLE_NODE_CLASS).each(function (d) {\n if (_chart.isSelectedNode(d)) {\n _chart.highlightSelected(this);\n } else {\n _chart.fadeDeselected(this);\n }\n });\n } else {\n _chart.selectAll('g.' + _chart.BUBBLE_NODE_CLASS).each(function () {\n _chart.resetHighlight(this);\n });\n }\n };\n\n _chart.isSelectedNode = function (d) {\n return _chart.hasFilter(d.key);\n };\n\n _chart.onClick = function (d) {\n var filter = d.key;\n dc.events.trigger(function () {\n _chart.filter(filter);\n _chart.redrawGroup();\n });\n };\n\n return _chart;\n};\n","/**\n## Pie Chart\nIncludes: [Cap Mixin](#cap-mixin), [Color Mixin](#color-mixin), [Base Mixin](#base-mixin)\n\nThe pie chart implementation is usually used to visualize a small categorical distribution. The pie\nchart uses keyAccessor to determine the slices, and valueAccessor to calculate the size of each\nslice relative to the sum of all values. Slices are ordered by `.ordering` which defaults to sorting\nby key.\n\nExamples:\n\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n#### dc.pieChart(parent[, chartGroup])\nCreate a pie chart instance and attaches it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created pie chart instance\n\n```js\n// create a pie chart under #chart-container1 element using the default global chart group\nvar chart1 = dc.pieChart('#chart-container1');\n// create a pie chart under #chart-container2 element using chart group A\nvar chart2 = dc.pieChart('#chart-container2', 'chartGroupA');\n```\n\n**/\ndc.pieChart = function (parent, chartGroup) {\n var DEFAULT_MIN_ANGLE_FOR_LABEL = 0.5;\n\n var _sliceCssClass = 'pie-slice';\n var _emptyCssClass = 'empty-chart';\n var _emptyTitle = 'empty';\n\n var _radius,\n _innerRadius = 0;\n\n var _g;\n var _cx;\n var _cy;\n var _minAngleForLabel = DEFAULT_MIN_ANGLE_FOR_LABEL;\n var _externalLabelRadius;\n var _chart = dc.capMixin(dc.colorMixin(dc.baseMixin({})));\n\n _chart.colorAccessor(_chart.cappedKeyAccessor);\n\n _chart.title(function (d) {\n return _chart.cappedKeyAccessor(d) + ': ' + _chart.cappedValueAccessor(d);\n });\n\n /**\n #### .slicesCap([cap])\n Get or set the maximum number of slices the pie chart will generate. The top slices are determined by\n value from high to low. Other slices exeeding the cap will be rolled up into one single *Others* slice.\n The resulting data will still be sorted by .ordering (default by key).\n\n **/\n _chart.slicesCap = _chart.cap;\n\n _chart.label(_chart.cappedKeyAccessor);\n _chart.renderLabel(true);\n\n _chart.transitionDuration(350);\n\n _chart._doRender = function () {\n _chart.resetSvg();\n\n _g = _chart.svg()\n .append('g')\n .attr('transform', 'translate(' + _chart.cx() + ',' + _chart.cy() + ')');\n\n drawChart();\n\n return _chart;\n };\n\n function drawChart() {\n // set radius on basis of chart dimension if missing\n _radius = _radius ? _radius : d3.min([_chart.width(), _chart.height()]) / 2;\n\n var arc = buildArcs();\n\n var pie = pieLayout();\n var pieData;\n // if we have data...\n if (d3.sum(_chart.data(), _chart.valueAccessor())) {\n pieData = pie(_chart.data());\n _g.classed(_emptyCssClass, false);\n } else {\n // otherwise we'd be getting NaNs, so override\n // note: abuse others for its ignoring the value accessor\n pieData = pie([{key:_emptyTitle, value:1, others: [_emptyTitle]}]);\n _g.classed(_emptyCssClass, true);\n }\n\n if (_g) {\n var slices = _g.selectAll('g.' + _sliceCssClass)\n .data(pieData);\n\n createElements(slices, arc, pieData);\n\n updateElements(pieData, arc);\n\n removeElements(slices);\n\n highlightFilter();\n }\n }\n\n function createElements(slices, arc, pieData) {\n var slicesEnter = createSliceNodes(slices);\n\n createSlicePath(slicesEnter, arc);\n\n createTitles(slicesEnter);\n\n createLabels(pieData, arc);\n }\n\n function createSliceNodes(slices) {\n var slicesEnter = slices\n .enter()\n .append('g')\n .attr('class', function (d, i) {\n return _sliceCssClass + ' _' + i;\n });\n return slicesEnter;\n }\n\n function createSlicePath(slicesEnter, arc) {\n var slicePath = slicesEnter.append('path')\n .attr('fill', fill)\n .on('click', onClick)\n .attr('d', function (d, i) {\n return safeArc(d, i, arc);\n });\n\n dc.transition(slicePath, _chart.transitionDuration(), function (s) {\n s.attrTween('d', tweenPie);\n });\n }\n\n function createTitles(slicesEnter) {\n if (_chart.renderTitle()) {\n slicesEnter.append('title').text(function (d) {\n return _chart.title()(d.data);\n });\n }\n }\n\n function positionLabels(labelsEnter, arc) {\n dc.transition(labelsEnter, _chart.transitionDuration())\n .attr('transform', function (d) {\n return labelPosition(d, arc);\n })\n .attr('text-anchor', 'middle')\n .text(function (d) {\n var data = d.data;\n if ((sliceHasNoData(data) || sliceTooSmall(d)) && !isSelectedSlice(d)) {\n return '';\n }\n return _chart.label()(d.data);\n });\n }\n\n function createLabels(pieData, arc) {\n if (_chart.renderLabel()) {\n var labels = _g.selectAll('text.' + _sliceCssClass)\n .data(pieData);\n\n labels.exit().remove();\n\n var labelsEnter = labels\n .enter()\n .append('text')\n .attr('class', function (d, i) {\n var classes = _sliceCssClass + ' _' + i;\n if (_externalLabelRadius) {\n classes += ' external';\n }\n return classes;\n })\n .on('click', onClick);\n positionLabels(labelsEnter, arc);\n }\n }\n\n function updateElements(pieData, arc) {\n updateSlicePaths(pieData, arc);\n updateLabels(pieData, arc);\n updateTitles(pieData);\n }\n\n function updateSlicePaths(pieData, arc) {\n var slicePaths = _g.selectAll('g.' + _sliceCssClass)\n .data(pieData)\n .select('path')\n .attr('d', function (d, i) {\n return safeArc(d, i, arc);\n });\n dc.transition(slicePaths, _chart.transitionDuration(),\n function (s) {\n s.attrTween('d', tweenPie);\n }).attr('fill', fill);\n }\n\n function updateLabels(pieData, arc) {\n if (_chart.renderLabel()) {\n var labels = _g.selectAll('text.' + _sliceCssClass)\n .data(pieData);\n positionLabels(labels, arc);\n }\n }\n\n function updateTitles(pieData) {\n if (_chart.renderTitle()) {\n _g.selectAll('g.' + _sliceCssClass)\n .data(pieData)\n .select('title')\n .text(function (d) {\n return _chart.title()(d.data);\n });\n }\n }\n\n function removeElements(slices) {\n slices.exit().remove();\n }\n\n function highlightFilter() {\n if (_chart.hasFilter()) {\n _chart.selectAll('g.' + _sliceCssClass).each(function (d) {\n if (isSelectedSlice(d)) {\n _chart.highlightSelected(this);\n } else {\n _chart.fadeDeselected(this);\n }\n });\n } else {\n _chart.selectAll('g.' + _sliceCssClass).each(function () {\n _chart.resetHighlight(this);\n });\n }\n }\n\n /**\n #### .innerRadius([innerRadius])\n Get or set the inner radius of the pie chart. If the inner radius is greater than 0px then the\n pie chart will be rendered as a doughnut chart. Default inner radius is 0px.\n\n **/\n _chart.innerRadius = function (r) {\n if (!arguments.length) {\n return _innerRadius;\n }\n _innerRadius = r;\n return _chart;\n };\n\n /**\n #### .radius([radius])\n Get or set the outer radius. If the radius is not set, it will be half of the minimum of the\n chart width and height.\n\n **/\n _chart.radius = function (r) {\n if (!arguments.length) {\n return _radius;\n }\n _radius = r;\n return _chart;\n };\n\n /**\n #### .cx([cx])\n Get or set center x coordinate position. Default is center of svg.\n\n **/\n _chart.cx = function (cx) {\n if (!arguments.length) {\n return (_cx || _chart.width() / 2);\n }\n _cx = cx;\n return _chart;\n };\n\n /**\n #### .cy([cy])\n Get or set center y coordinate position. Default is center of svg.\n\n **/\n _chart.cy = function (cy) {\n if (!arguments.length) {\n return (_cy || _chart.height() / 2);\n }\n _cy = cy;\n return _chart;\n };\n\n function buildArcs() {\n return d3.svg.arc().outerRadius(_radius).innerRadius(_innerRadius);\n }\n\n function isSelectedSlice(d) {\n return _chart.hasFilter(_chart.cappedKeyAccessor(d.data));\n }\n\n _chart._doRedraw = function () {\n drawChart();\n return _chart;\n };\n\n /**\n #### .minAngleForLabel([minAngle])\n Get or set the minimal slice angle for label rendering. Any slice with a smaller angle will not\n display a slice label. Default min angle is 0.5.\n **/\n _chart.minAngleForLabel = function (_) {\n if (!arguments.length) {\n return _minAngleForLabel;\n }\n _minAngleForLabel = _;\n return _chart;\n };\n\n function pieLayout() {\n return d3.layout.pie().sort(null).value(_chart.cappedValueAccessor);\n }\n\n function sliceTooSmall(d) {\n var angle = (d.endAngle - d.startAngle);\n return isNaN(angle) || angle < _minAngleForLabel;\n }\n\n function sliceHasNoData(d) {\n return _chart.cappedValueAccessor(d) === 0;\n }\n\n function tweenPie(b) {\n b.innerRadius = _innerRadius;\n var current = this._current;\n if (isOffCanvas(current)) {\n current = {startAngle: 0, endAngle: 0};\n }\n var i = d3.interpolate(current, b);\n this._current = i(0);\n return function (t) {\n return safeArc(i(t), 0, buildArcs());\n };\n }\n\n function isOffCanvas(current) {\n return !current || isNaN(current.startAngle) || isNaN(current.endAngle);\n }\n\n function fill(d, i) {\n return _chart.getColor(d.data, i);\n }\n\n function onClick(d, i) {\n if (_g.attr('class') !== _emptyCssClass) {\n _chart.onClick(d.data, i);\n }\n }\n\n function safeArc(d, i, arc) {\n var path = arc(d, i);\n if (path.indexOf('NaN') >= 0) {\n path = 'M0,0';\n }\n return path;\n }\n\n /**\n #### .emptyTitle([title])\n Title to use for the only slice when there is no data\n */\n _chart.emptyTitle = function (title) {\n if (arguments.length === 0) {\n return _emptyTitle;\n }\n _emptyTitle = title;\n return _chart;\n };\n\n /**\n #### .externalLabels([radius])\n Position slice labels offset from the outer edge of the chart\n\n The given argument sets the radial offset.\n */\n _chart.externalLabels = function (radius) {\n if (arguments.length === 0) {\n return _externalLabelRadius;\n } else if (radius) {\n _externalLabelRadius = radius;\n } else {\n _externalLabelRadius = undefined;\n }\n\n return _chart;\n };\n\n function labelPosition(d, arc) {\n var centroid;\n if (_externalLabelRadius) {\n centroid = d3.svg.arc()\n .outerRadius(_radius + _externalLabelRadius)\n .innerRadius(_radius + _externalLabelRadius)\n .centroid(d);\n } else {\n centroid = arc.centroid(d);\n }\n if (isNaN(centroid[0]) || isNaN(centroid[1])) {\n return 'translate(0,0)';\n } else {\n return 'translate(' + centroid + ')';\n }\n }\n\n _chart.legendables = function () {\n return _chart.data().map(function (d, i) {\n var legendable = {name: d.key, data: d.value, others: d.others, chart:_chart};\n legendable.color = _chart.getColor(d, i);\n return legendable;\n });\n };\n\n _chart.legendHighlight = function (d) {\n highlightSliceFromLegendable(d, true);\n };\n\n _chart.legendReset = function (d) {\n highlightSliceFromLegendable(d, false);\n };\n\n _chart.legendToggle = function (d) {\n _chart.onClick({key: d.name, others: d.others});\n };\n\n function highlightSliceFromLegendable(legendable, highlighted) {\n _chart.selectAll('g.pie-slice').each(function (d) {\n if (legendable.name === d.data.key) {\n d3.select(this).classed('highlight', highlighted);\n }\n });\n }\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Bar Chart\nIncludes: [Stack Mixin](#stack Mixin), [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nConcrete bar chart/histogram implementation.\n\nExamples:\n\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n* [Canadian City Crime Stats](http://dc-js.github.com/dc.js/crime/index.html)\n#### dc.barChart(parent[, chartGroup])\nCreate a bar chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection | compositeChart - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n If the bar chart is a sub-chart in a [Composite Chart](#composite-chart) then pass in the parent composite\n chart instance.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created bar chart instance\n\n```js\n// create a bar chart under #chart-container1 element using the default global chart group\nvar chart1 = dc.barChart('#chart-container1');\n// create a bar chart under #chart-container2 element using chart group A\nvar chart2 = dc.barChart('#chart-container2', 'chartGroupA');\n// create a sub-chart under a composite parent chart\nvar chart3 = dc.barChart(compositeChart);\n```\n\n**/\ndc.barChart = function (parent, chartGroup) {\n var MIN_BAR_WIDTH = 1;\n var DEFAULT_GAP_BETWEEN_BARS = 2;\n\n var _chart = dc.stackMixin(dc.coordinateGridMixin({}));\n\n var _gap = DEFAULT_GAP_BETWEEN_BARS;\n var _centerBar = false;\n var _alwaysUseRounding = false;\n\n var _barWidth;\n\n dc.override(_chart, 'rescale', function () {\n _chart._rescale();\n _barWidth = undefined;\n });\n\n dc.override(_chart, 'render', function () {\n if (_chart.round() && _centerBar && !_alwaysUseRounding) {\n dc.logger.warn('By default, brush rounding is disabled if bars are centered. ' +\n 'See dc.js bar chart API documentation for details.');\n }\n\n _chart._render();\n });\n\n _chart.plotData = function () {\n var layers = _chart.chartBodyG().selectAll('g.stack')\n .data(_chart.data());\n\n calculateBarWidth();\n\n layers\n .enter()\n .append('g')\n .attr('class', function (d, i) {\n return 'stack ' + '_' + i;\n });\n\n layers.each(function (d, i) {\n var layer = d3.select(this);\n\n renderBars(layer, i, d);\n });\n };\n\n function barHeight(d) {\n return dc.utils.safeNumber(Math.abs(_chart.y()(d.y + d.y0) - _chart.y()(d.y0)));\n }\n\n function renderBars(layer, layerIndex, d) {\n var bars = layer.selectAll('rect.bar')\n .data(d.values, dc.pluck('x'));\n\n var enter = bars.enter()\n .append('rect')\n .attr('class', 'bar')\n .attr('fill', dc.pluck('data', _chart.getColor))\n .attr('y', _chart.yAxisHeight())\n .attr('height', 0);\n\n if (_chart.renderTitle()) {\n enter.append('title').text(dc.pluck('data', _chart.title(d.name)));\n }\n\n if (_chart.isOrdinal()) {\n bars.on('click', _chart.onClick);\n }\n\n dc.transition(bars, _chart.transitionDuration())\n .attr('x', function (d) {\n var x = _chart.x()(d.x);\n if (_centerBar) {\n x -= _barWidth / 2;\n }\n if (_chart.isOrdinal() && _gap !== undefined) {\n x += _gap / 2;\n }\n return dc.utils.safeNumber(x);\n })\n .attr('y', function (d) {\n var y = _chart.y()(d.y + d.y0);\n\n if (d.y < 0) {\n y -= barHeight(d);\n }\n\n return dc.utils.safeNumber(y);\n })\n .attr('width', _barWidth)\n .attr('height', function (d) {\n return barHeight(d);\n })\n .attr('fill', dc.pluck('data', _chart.getColor))\n .select('title').text(dc.pluck('data', _chart.title(d.name)));\n\n dc.transition(bars.exit(), _chart.transitionDuration())\n .attr('height', 0)\n .remove();\n }\n\n function calculateBarWidth() {\n if (_barWidth === undefined) {\n var numberOfBars = _chart.xUnitCount();\n\n // please can't we always use rangeBands for bar charts?\n if (_chart.isOrdinal() && _gap === undefined) {\n _barWidth = Math.floor(_chart.x().rangeBand());\n } else if (_gap) {\n _barWidth = Math.floor((_chart.xAxisLength() - (numberOfBars - 1) * _gap) / numberOfBars);\n } else {\n _barWidth = Math.floor(_chart.xAxisLength() / (1 + _chart.barPadding()) / numberOfBars);\n }\n\n if (_barWidth === Infinity || isNaN(_barWidth) || _barWidth < MIN_BAR_WIDTH) {\n _barWidth = MIN_BAR_WIDTH;\n }\n }\n }\n\n _chart.fadeDeselectedArea = function () {\n var bars = _chart.chartBodyG().selectAll('rect.bar');\n var extent = _chart.brush().extent();\n\n if (_chart.isOrdinal()) {\n if (_chart.hasFilter()) {\n bars.classed(dc.constants.SELECTED_CLASS, function (d) {\n return _chart.hasFilter(d.x);\n });\n bars.classed(dc.constants.DESELECTED_CLASS, function (d) {\n return !_chart.hasFilter(d.x);\n });\n } else {\n bars.classed(dc.constants.SELECTED_CLASS, false);\n bars.classed(dc.constants.DESELECTED_CLASS, false);\n }\n } else {\n if (!_chart.brushIsEmpty(extent)) {\n var start = extent[0];\n var end = extent[1];\n\n bars.classed(dc.constants.DESELECTED_CLASS, function (d) {\n return d.x < start || d.x >= end;\n });\n } else {\n bars.classed(dc.constants.DESELECTED_CLASS, false);\n }\n }\n };\n\n /**\n #### .centerBar(boolean)\n Whether the bar chart will render each bar centered around the data position on x axis. Default: false\n\n **/\n _chart.centerBar = function (_) {\n if (!arguments.length) {\n return _centerBar;\n }\n _centerBar = _;\n return _chart;\n };\n\n dc.override(_chart, 'onClick', function (d) {\n _chart._onClick(d.data);\n });\n\n /**\n #### .barPadding([padding])\n Get or set the spacing between bars as a fraction of bar size. Valid values are between 0-1.\n Setting this value will also remove any previously set `gap`. See the\n [d3 docs](https://github.com/mbostock/d3/wiki/Ordinal-Scales#wiki-ordinal_rangeBands)\n for a visual description of how the padding is applied.\n **/\n _chart.barPadding = function (_) {\n if (!arguments.length) {\n return _chart._rangeBandPadding();\n }\n _chart._rangeBandPadding(_);\n _gap = undefined;\n return _chart;\n };\n\n _chart._useOuterPadding = function () {\n return _gap === undefined;\n };\n\n /**\n #### .outerPadding([padding])\n Get or set the outer padding on an ordinal bar chart. This setting has no effect on non-ordinal charts.\n Will pad the width by `padding * barWidth` on each side of the chart.\n\n Default: 0.5\n **/\n _chart.outerPadding = _chart._outerRangeBandPadding;\n\n /**\n #### .gap(gapBetweenBars)\n Manually set fixed gap (in px) between bars instead of relying on the default auto-generated\n gap. By default the bar chart implementation will calculate and set the gap automatically\n based on the number of data points and the length of the x axis.\n\n **/\n _chart.gap = function (_) {\n if (!arguments.length) {\n return _gap;\n }\n _gap = _;\n return _chart;\n };\n\n _chart.extendBrush = function () {\n var extent = _chart.brush().extent();\n if (_chart.round() && (!_centerBar || _alwaysUseRounding)) {\n extent[0] = extent.map(_chart.round())[0];\n extent[1] = extent.map(_chart.round())[1];\n\n _chart.chartBodyG().select('.brush')\n .call(_chart.brush().extent(extent));\n }\n\n return extent;\n };\n\n /**\n #### .alwaysUseRounding([boolean])\n Set or get whether rounding is enabled when bars are centered. Default: false. If false, using\n rounding with centered bars will result in a warning and rounding will be ignored. This flag\n has no effect if bars are not centered.\n\n When using standard d3.js rounding methods, the brush often doesn't align correctly with\n centered bars since the bars are offset. The rounding function must add an offset to\n compensate, such as in the following example.\n ```js\n chart.round(function(n) {return Math.floor(n)+0.5});\n ```\n **/\n _chart.alwaysUseRounding = function (_) {\n if (!arguments.length) {\n return _alwaysUseRounding;\n }\n _alwaysUseRounding = _;\n return _chart;\n };\n\n function colorFilter(color, inv) {\n return function () {\n var item = d3.select(this);\n var match = item.attr('fill') === color;\n return inv ? !match : match;\n };\n }\n\n _chart.legendHighlight = function (d) {\n if (!_chart.isLegendableHidden(d)) {\n _chart.g().selectAll('rect.bar')\n .classed('highlight', colorFilter(d.color))\n .classed('fadeout', colorFilter(d.color, true));\n }\n };\n\n _chart.legendReset = function () {\n _chart.g().selectAll('rect.bar')\n .classed('highlight', false)\n .classed('fadeout', false);\n };\n\n dc.override(_chart, 'xAxisMax', function () {\n var max = this._xAxisMax();\n if ('resolution' in _chart.xUnits()) {\n var res = _chart.xUnits().resolution;\n max += res;\n }\n return max;\n });\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Line Chart\nIncludes [Stack Mixin](#stack-mixin), [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nConcrete line/area chart implementation.\n\nExamples:\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n* [Canadian City Crime Stats](http://dc-js.github.com/dc.js/crime/index.html)\n#### dc.lineChart(parent[, chartGroup])\nCreate a line chart instance and attach it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection | compositeChart - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n If the line chart is a sub-chart in a [Composite Chart](#composite-chart) then pass in the parent composite\n chart instance.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created line chart instance\n\n```js\n// create a line chart under #chart-container1 element using the default global chart group\nvar chart1 = dc.lineChart('#chart-container1');\n// create a line chart under #chart-container2 element using chart group A\nvar chart2 = dc.lineChart('#chart-container2', 'chartGroupA');\n// create a sub-chart under a composite parent chart\nvar chart3 = dc.lineChart(compositeChart);\n```\n\n**/\ndc.lineChart = function (parent, chartGroup) {\n var DEFAULT_DOT_RADIUS = 5;\n var TOOLTIP_G_CLASS = 'dc-tooltip';\n var DOT_CIRCLE_CLASS = 'dot';\n var Y_AXIS_REF_LINE_CLASS = 'yRef';\n var X_AXIS_REF_LINE_CLASS = 'xRef';\n var DEFAULT_DOT_OPACITY = 1e-6;\n\n var _chart = dc.stackMixin(dc.coordinateGridMixin({}));\n var _renderArea = false;\n var _dotRadius = DEFAULT_DOT_RADIUS;\n var _dataPointRadius = null;\n var _dataPointFillOpacity = DEFAULT_DOT_OPACITY;\n var _dataPointStrokeOpacity = DEFAULT_DOT_OPACITY;\n var _interpolate = 'linear';\n var _tension = 0.7;\n var _defined;\n var _dashStyle;\n var _xyTipsOn = true;\n\n _chart.transitionDuration(500);\n _chart._rangeBandPadding(1);\n\n _chart.plotData = function () {\n var chartBody = _chart.chartBodyG();\n var layersList = chartBody.selectAll('g.stack-list');\n\n if (layersList.empty()) {\n layersList = chartBody.append('g').attr('class', 'stack-list');\n }\n\n var layers = layersList.selectAll('g.stack').data(_chart.data());\n\n var layersEnter = layers\n .enter()\n .append('g')\n .attr('class', function (d, i) {\n return 'stack ' + '_' + i;\n });\n\n drawLine(layersEnter, layers);\n\n drawArea(layersEnter, layers);\n\n drawDots(chartBody, layers);\n };\n\n /**\n #### .interpolate([value])\n Gets or sets the interpolator to use for lines drawn, by string name, allowing e.g. step\n functions, splines, and cubic interpolation. This is passed to\n [d3.svg.line.interpolate](https://github.com/mbostock/d3/wiki/SVG-Shapes#line_interpolate) and\n [d3.svg.area.interpolate](https://github.com/mbostock/d3/wiki/SVG-Shapes#area_interpolate),\n where you can find a complete list of valid arguments\n **/\n _chart.interpolate = function (_) {\n if (!arguments.length) {\n return _interpolate;\n }\n _interpolate = _;\n return _chart;\n };\n\n /**\n #### .tension([value])\n Gets or sets the tension to use for lines drawn, in the range 0 to 1.\n This parameter further customizes the interpolation behavior. It is passed to\n [d3.svg.line.tension](https://github.com/mbostock/d3/wiki/SVG-Shapes#line_tension) and\n [d3.svg.area.tension](https://github.com/mbostock/d3/wiki/SVG-Shapes#area_tension). Default:\n 0.7\n **/\n _chart.tension = function (_) {\n if (!arguments.length) {\n return _tension;\n }\n _tension = _;\n return _chart;\n };\n\n /**\n #### .defined([value])\n Gets or sets a function that will determine discontinuities in the line which should be\n skipped: the path will be broken into separate subpaths if some points are undefined.\n This function is passed to\n [d3.svg.line.defined](https://github.com/mbostock/d3/wiki/SVG-Shapes#line_defined)\n\n Note: crossfilter will sometimes coerce nulls to 0, so you may need to carefully write\n custom reduce functions to get this to work, depending on your data. See\n https://github.com/dc-js/dc.js/issues/615#issuecomment-49089248\n **/\n _chart.defined = function (_) {\n if (!arguments.length) {\n return _defined;\n }\n _defined = _;\n return _chart;\n };\n\n /**\n #### .dashStyle([array])\n Set the line's d3 dashstyle. This value becomes the 'stroke-dasharray' of line. Defaults to empty\n array (solid line).\n ```js\n // create a Dash Dot Dot Dot\n chart.dashStyle([3,1,1,1]);\n ```\n **/\n _chart.dashStyle = function (_) {\n if (!arguments.length) {\n return _dashStyle;\n }\n _dashStyle = _;\n return _chart;\n };\n\n /**\n #### .renderArea([boolean])\n Get or set render area flag. If the flag is set to true then the chart will render the area\n beneath each line and the line chart effectively becomes an area chart.\n\n **/\n _chart.renderArea = function (_) {\n if (!arguments.length) {\n return _renderArea;\n }\n _renderArea = _;\n return _chart;\n };\n\n function colors(d, i) {\n return _chart.getColor.call(d, d.values, i);\n }\n\n function drawLine(layersEnter, layers) {\n var line = d3.svg.line()\n .x(function (d) {\n return _chart.x()(d.x);\n })\n .y(function (d) {\n return _chart.y()(d.y + d.y0);\n })\n .interpolate(_interpolate)\n .tension(_tension);\n if (_defined) {\n line.defined(_defined);\n }\n\n var path = layersEnter.append('path')\n .attr('class', 'line')\n .attr('stroke', colors);\n if (_dashStyle) {\n path.attr('stroke-dasharray', _dashStyle);\n }\n\n dc.transition(layers.select('path.line'), _chart.transitionDuration())\n //.ease('linear')\n .attr('stroke', colors)\n .attr('d', function (d) {\n return safeD(line(d.values));\n });\n }\n\n function drawArea(layersEnter, layers) {\n if (_renderArea) {\n var area = d3.svg.area()\n .x(function (d) {\n return _chart.x()(d.x);\n })\n .y(function (d) {\n return _chart.y()(d.y + d.y0);\n })\n .y0(function (d) {\n return _chart.y()(d.y0);\n })\n .interpolate(_interpolate)\n .tension(_tension);\n if (_defined) {\n area.defined(_defined);\n }\n\n layersEnter.append('path')\n .attr('class', 'area')\n .attr('fill', colors)\n .attr('d', function (d) {\n return safeD(area(d.values));\n });\n\n dc.transition(layers.select('path.area'), _chart.transitionDuration())\n //.ease('linear')\n .attr('fill', colors)\n .attr('d', function (d) {\n return safeD(area(d.values));\n });\n }\n }\n\n function safeD (d) {\n return (!d || d.indexOf('NaN') >= 0) ? 'M0,0' : d;\n }\n\n function drawDots(chartBody, layers) {\n if (!_chart.brushOn() && _chart.xyTipsOn()) {\n var tooltipListClass = TOOLTIP_G_CLASS + '-list';\n var tooltips = chartBody.select('g.' + tooltipListClass);\n\n if (tooltips.empty()) {\n tooltips = chartBody.append('g').attr('class', tooltipListClass);\n }\n\n layers.each(function (d, layerIndex) {\n var points = d.values;\n if (_defined) {\n points = points.filter(_defined);\n }\n\n var g = tooltips.select('g.' + TOOLTIP_G_CLASS + '._' + layerIndex);\n if (g.empty()) {\n g = tooltips.append('g').attr('class', TOOLTIP_G_CLASS + ' _' + layerIndex);\n }\n\n createRefLines(g);\n\n var dots = g.selectAll('circle.' + DOT_CIRCLE_CLASS)\n .data(points, dc.pluck('x'));\n\n dots.enter()\n .append('circle')\n .attr('class', DOT_CIRCLE_CLASS)\n .attr('r', getDotRadius())\n .style('fill-opacity', _dataPointFillOpacity)\n .style('stroke-opacity', _dataPointStrokeOpacity)\n .on('mousemove', function () {\n var dot = d3.select(this);\n showDot(dot);\n showRefLines(dot, g);\n })\n .on('mouseout', function () {\n var dot = d3.select(this);\n hideDot(dot);\n hideRefLines(g);\n });\n\n dots\n .attr('cx', function (d) {\n return dc.utils.safeNumber(_chart.x()(d.x));\n })\n .attr('cy', function (d) {\n return dc.utils.safeNumber(_chart.y()(d.y + d.y0));\n })\n .attr('fill', _chart.getColor)\n .call(renderTitle, d);\n\n dots.exit().remove();\n });\n }\n }\n\n function createRefLines(g) {\n var yRefLine = g.select('path.' + Y_AXIS_REF_LINE_CLASS).empty() ?\n g.append('path').attr('class', Y_AXIS_REF_LINE_CLASS) : g.select('path.' + Y_AXIS_REF_LINE_CLASS);\n yRefLine.style('display', 'none').attr('stroke-dasharray', '5,5');\n\n var xRefLine = g.select('path.' + X_AXIS_REF_LINE_CLASS).empty() ?\n g.append('path').attr('class', X_AXIS_REF_LINE_CLASS) : g.select('path.' + X_AXIS_REF_LINE_CLASS);\n xRefLine.style('display', 'none').attr('stroke-dasharray', '5,5');\n }\n\n function showDot(dot) {\n dot.style('fill-opacity', 0.8);\n dot.style('stroke-opacity', 0.8);\n dot.attr('r', _dotRadius);\n return dot;\n }\n\n function showRefLines(dot, g) {\n var x = dot.attr('cx');\n var y = dot.attr('cy');\n var yAxisX = (_chart._yAxisX() - _chart.margins().left);\n var yAxisRefPathD = 'M' + yAxisX + ' ' + y + 'L' + (x) + ' ' + (y);\n var xAxisRefPathD = 'M' + x + ' ' + _chart.yAxisHeight() + 'L' + x + ' ' + y;\n g.select('path.' + Y_AXIS_REF_LINE_CLASS).style('display', '').attr('d', yAxisRefPathD);\n g.select('path.' + X_AXIS_REF_LINE_CLASS).style('display', '').attr('d', xAxisRefPathD);\n }\n\n function getDotRadius() {\n return _dataPointRadius || _dotRadius;\n }\n\n function hideDot(dot) {\n dot.style('fill-opacity', _dataPointFillOpacity)\n .style('stroke-opacity', _dataPointStrokeOpacity)\n .attr('r', getDotRadius());\n }\n\n function hideRefLines(g) {\n g.select('path.' + Y_AXIS_REF_LINE_CLASS).style('display', 'none');\n g.select('path.' + X_AXIS_REF_LINE_CLASS).style('display', 'none');\n }\n\n function renderTitle(dot, d) {\n if (_chart.renderTitle()) {\n dot.selectAll('title').remove();\n dot.append('title').text(dc.pluck('data', _chart.title(d.name)));\n }\n }\n\n /**\n #### .xyTipsOn([boolean])\n Turn on/off the mouseover behavior of an individual data point which renders a circle and x/y axis\n dashed lines back to each respective axis. This is ignored if the chart brush is on (`brushOn`)\n Default: true\n */\n _chart.xyTipsOn = function (_) {\n if (!arguments.length) {\n return _xyTipsOn;\n }\n _xyTipsOn = _;\n return _chart;\n };\n\n /**\n #### .dotRadius([dotRadius])\n Get or set the radius (in px) for dots displayed on the data points. Default dot radius is 5.\n **/\n _chart.dotRadius = function (_) {\n if (!arguments.length) {\n return _dotRadius;\n }\n _dotRadius = _;\n return _chart;\n };\n\n /**\n #### .renderDataPoints([options])\n Always show individual dots for each datapoint.\n\n Options, if given, is an object that can contain the following:\n\n * fillOpacity (default 0.8)\n * strokeOpacity (default 0.8)\n * radius (default 2)\n\n If `options` is falsy, it disables data point rendering.\n\n If no `options` are provided, the current `options` values are instead returned.\n\n Example:\n ```\n chart.renderDataPoints({radius: 2, fillOpacity: 0.8, strokeOpacity: 0.8})\n ```\n **/\n _chart.renderDataPoints = function (options) {\n if (!arguments.length) {\n return {\n fillOpacity: _dataPointFillOpacity,\n strokeOpacity: _dataPointStrokeOpacity,\n radius: _dataPointRadius\n };\n } else if (!options) {\n _dataPointFillOpacity = DEFAULT_DOT_OPACITY;\n _dataPointStrokeOpacity = DEFAULT_DOT_OPACITY;\n _dataPointRadius = null;\n } else {\n _dataPointFillOpacity = options.fillOpacity || 0.8;\n _dataPointStrokeOpacity = options.strokeOpacity || 0.8;\n _dataPointRadius = options.radius || 2;\n }\n return _chart;\n };\n\n function colorFilter(color, dashstyle, inv) {\n return function () {\n var item = d3.select(this);\n var match = (item.attr('stroke') === color &&\n item.attr('stroke-dasharray') === ((dashstyle instanceof Array) ?\n dashstyle.join(',') : null)) || item.attr('fill') === color;\n return inv ? !match : match;\n };\n }\n\n _chart.legendHighlight = function (d) {\n if (!_chart.isLegendableHidden(d)) {\n _chart.g().selectAll('path.line, path.area')\n .classed('highlight', colorFilter(d.color, d.dashstyle))\n .classed('fadeout', colorFilter(d.color, d.dashstyle, true));\n }\n };\n\n _chart.legendReset = function () {\n _chart.g().selectAll('path.line, path.area')\n .classed('highlight', false)\n .classed('fadeout', false);\n };\n\n dc.override(_chart, 'legendables', function () {\n var legendables = _chart._legendables();\n if (!_dashStyle) {\n return legendables;\n }\n return legendables.map(function (l) {\n l.dashstyle = _dashStyle;\n return l;\n });\n });\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Data Count Widget\nIncludes: [Base Mixin](#base-mixin)\n\nThe data count widget is a simple widget designed to display the number of records selected by the\ncurrent filters out of the total number of records in the data set. Once created the data count widget\nwill automatically update the text content of the following elements under the parent element.\n\n* '.total-count' - total number of records\n* '.filter-count' - number of records matched by the current filters\n\nExamples:\n\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n#### dc.dataCount(parent[, chartGroup])\nCreate a data count widget and attach it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this widget should be placed in.\n The data count widget will only react to filter changes in the chart group.\n\nReturns:\nA newly created data count widget instance\n#### .dimension(allData) - **mandatory**\nFor the data count widget the only valid dimension is the entire data set.\n#### .group(groupAll) - **mandatory**\nFor the data count widget the only valid group is the group returned by `dimension.groupAll()`.\n\n```js\nvar ndx = crossfilter(data);\nvar all = ndx.groupAll();\n\ndc.dataCount('.dc-data-count')\n .dimension(ndx)\n .group(all);\n```\n\n**/\ndc.dataCount = function (parent, chartGroup) {\n var _formatNumber = d3.format(',d');\n var _chart = dc.baseMixin({});\n var _html = {some:'', all:''};\n\n /**\n #### html([object])\n Gets or sets an optional object specifying HTML templates to use depending how many items are\n selected. The text `%total-count` will replaced with the total number of records, and the text\n `%filter-count` will be replaced with the number of selected records.\n - all: HTML template to use if all items are selected\n - some: HTML template to use if not all items are selected\n\n ```js\n counter.html({\n some: '%filter-count out of %total-count records selected',\n all: 'All records selected. Click on charts to apply filters'\n })\n ```\n **/\n _chart.html = function (s) {\n if (!arguments.length) {\n return _html;\n }\n if (s.all) {\n _html.all = s.all;\n }\n if (s.some) {\n _html.some = s.some;\n }\n return _chart;\n };\n\n /**\n #### formatNumber([formatter])\n Gets or sets an optional function to format the filter count and total count.\n\n ```js\n counter.formatNumber(d3.format('.2g'))\n ```\n **/\n _chart.formatNumber = function (s) {\n if (!arguments.length) {\n return _formatNumber;\n }\n _formatNumber = s;\n return _chart;\n };\n\n _chart._doRender = function () {\n var tot = _chart.dimension().size(),\n val = _chart.group().value();\n var all = _formatNumber(tot);\n var selected = _formatNumber(val);\n\n if ((tot === val) && (_html.all !== '')) {\n _chart.root().html(_html.all.replace('%total-count', all).replace('%filter-count', selected));\n } else if (_html.some !== '') {\n _chart.root().html(_html.some.replace('%total-count', all).replace('%filter-count', selected));\n } else {\n _chart.selectAll('.total-count').text(all);\n _chart.selectAll('.filter-count').text(selected);\n }\n return _chart;\n };\n\n _chart._doRedraw = function () {\n return _chart._doRender();\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Data Table Widget\nIncludes: [Base Mixin](#base-mixin)\n\nThe data table is a simple widget designed to list crossfilter focused data set (rows being\nfiltered) in a good old tabular fashion.\n\nExamples:\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n#### dc.dataTable(parent[, chartGroup])\nCreate a data table widget instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created data table widget instance\n\n**/\ndc.dataTable = function (parent, chartGroup) {\n var LABEL_CSS_CLASS = 'dc-table-label';\n var ROW_CSS_CLASS = 'dc-table-row';\n var COLUMN_CSS_CLASS = 'dc-table-column';\n var GROUP_CSS_CLASS = 'dc-table-group';\n var HEAD_CSS_CLASS = 'dc-table-head';\n\n var _chart = dc.baseMixin({});\n\n var _size = 25;\n var _columns = [];\n var _sortBy = function (d) {\n return d;\n };\n var _order = d3.ascending;\n\n _chart._doRender = function () {\n _chart.selectAll('tbody').remove();\n\n renderRows(renderGroups());\n\n return _chart;\n };\n\n _chart._doColumnValueFormat = function (v, d) {\n return ((typeof v === 'function') ?\n v(d) : // v as function\n ((typeof v === 'string') ?\n d[v] : // v is field name string\n v.format(d) // v is Object, use fn (element 2)\n )\n );\n };\n\n _chart._doColumnHeaderFormat = function (d) {\n // if 'function', convert to string representation\n // show a string capitalized\n // if an object then display it's label string as-is.\n return (typeof d === 'function') ?\n _chart._doColumnHeaderFnToString(d) :\n ((typeof d === 'string') ?\n _chart._doColumnHeaderCapitalize(d) : String(d.label));\n };\n\n _chart._doColumnHeaderCapitalize = function (s) {\n // capitalize\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n\n _chart._doColumnHeaderFnToString = function (f) {\n // columnString(f) {\n var s = String(f);\n var i1 = s.indexOf('return ');\n if (i1 >= 0) {\n var i2 = s.lastIndexOf(';');\n if (i2 >= 0) {\n s = s.substring(i1 + 7, i2);\n var i3 = s.indexOf('numberFormat');\n if (i3 >= 0) {\n s = s.replace('numberFormat', '');\n }\n }\n }\n return s;\n };\n\n function renderGroups() {\n // The 'original' example uses all 'functions'.\n\t// If all 'functions' are used, then don't remove/add a header, and leave\n\t// the html alone. This preserves the functionality of earlier releases.\n\t// A 2nd option is a string representing a field in the data.\n\t// A third option is to supply an Object such as an array of 'information', and\n\t// supply your own _doColumnHeaderFormat and _doColumnValueFormat functions to\n\t// create what you need.\n var bAllFunctions = true;\n _columns.forEach(function (f) {\n bAllFunctions = bAllFunctions & (typeof f === 'function');\n });\n\n if (!bAllFunctions) {\n _chart.selectAll('th').remove();\n var headcols = _chart.root().selectAll('th')\n .data(_columns);\n\n var headGroup = headcols\n .enter()\n .append('th');\n\n headGroup\n .attr('class', HEAD_CSS_CLASS)\n .html(function (d) {\n return (_chart._doColumnHeaderFormat(d));\n\n });\n }\n\n var groups = _chart.root().selectAll('tbody')\n .data(nestEntries(), function (d) {\n return _chart.keyAccessor()(d);\n });\n\n var rowGroup = groups\n .enter()\n .append('tbody');\n\n rowGroup\n .append('tr')\n .attr('class', GROUP_CSS_CLASS)\n .append('td')\n .attr('class', LABEL_CSS_CLASS)\n .attr('colspan', _columns.length)\n .html(function (d) {\n return _chart.keyAccessor()(d);\n });\n\n groups.exit().remove();\n\n return rowGroup;\n }\n\n function nestEntries() {\n var entries;\n if (_order === d3.ascending) {\n entries = _chart.dimension().bottom(_size);\n } else {\n entries = _chart.dimension().top(_size);\n }\n\n return d3.nest()\n .key(_chart.group())\n .sortKeys(_order)\n .entries(entries.sort(function (a, b) {\n return _order(_sortBy(a), _sortBy(b));\n }));\n }\n\n function renderRows(groups) {\n var rows = groups.order()\n .selectAll('tr.' + ROW_CSS_CLASS)\n .data(function (d) {\n return d.values;\n });\n\n var rowEnter = rows.enter()\n .append('tr')\n .attr('class', ROW_CSS_CLASS);\n\n _columns.forEach(function (v, i) {\n rowEnter.append('td')\n .attr('class', COLUMN_CSS_CLASS + ' _' + i)\n .html(function (d) {\n return _chart._doColumnValueFormat(v, d);\n });\n });\n\n rows.exit().remove();\n\n return rows;\n }\n\n _chart._doRedraw = function () {\n return _chart._doRender();\n };\n\n /**\n #### .size([size])\n Get or set the table size which determines the number of rows displayed by the widget.\n\n **/\n _chart.size = function (s) {\n if (!arguments.length) {\n return _size;\n }\n _size = s;\n return _chart;\n };\n\n /**\n #### .columns([columnFunctionArray])\n Get or set column functions. The data table widget now supports several methods of specifying\n the columns to display. The original method, first shown below, uses an array of functions to\n generate dynamic columns. Column functions are simple javascript functions with only one input\n argument `d` which represents a row in the data set. The return value of these functions will be\n used directly to generate table content for each cell. However, this method requires the .html\n table entry to have a fixed set of column headers.\n\n ```js\n chart.columns([\n function(d) {\n return d.date;\n },\n function(d) {\n return d.open;\n },\n function(d) {\n return d.close;\n },\n function(d) {\n return numberFormat(d.close - d.open);\n },\n function(d) {\n return d.volume;\n }\n ]);\n ```\n\n The next example shows you can simply list the data (d) content directly without\n specifying it as a function, except where necessary (ie, computed columns). Note\n the data element accessor name is capitalized when displayed in the table. You can\n also mix in functions as desired or necessary, but you must use the\n Object = [Label, Fn] method as shown below.\n You may wish to override the following two functions, which are internally used to\n translate the column information or function into a displayed header. The first one\n is used on the simple \"string\" column specifier, the second is used to transform the\n String(fn) into something displayable. For the Stock example, the function for Change\n becomes a header of 'd.close - d.open'.\n _chart._doColumnHeaderCapitalize _chart._doColumnHeaderFnToString\n You may use your own Object definition, however you must then override\n _chart._doColumnHeaderFormat , _chart._doColumnValueFormat\n Be aware that fields without numberFormat specification will be displayed just as\n they are stored in the data, unformatted.\n ```js\n chart.columns([\n \"date\", // d[\"date\"], ie, a field accessor; capitalized automatically\n \"open\", // ...\n \"close\", // ...\n [\"Change\", // Specify an Object = [Label, Fn]\n function (d) {\n return numberFormat(d.close - d.open);\n }],\n \"volume\" // d[\"volume\"], ie, a field accessor; capitalized automatically\n ]);\n ```\n\n A third example, where all fields are specified using the Object = [Label, Fn] method.\n\n ```js\n chart.columns([\n [\"Date\", // Specify an Object = [Label, Fn]\n function (d) {\n return d.date;\n }],\n [\"Open\",\n function (d) {\n return numberFormat(d.open);\n }],\n [\"Close\",\n function (d) {\n return numberFormat(d.close);\n }],\n [\"Change\",\n function (d) {\n return numberFormat(d.close - d.open);\n }],\n [\"Volume\",\n function (d) {\n return d.volume;\n }]\n ]);\n ```\n\n **/\n _chart.columns = function (_) {\n if (!arguments.length) {\n return _columns;\n }\n _columns = _;\n return _chart;\n };\n\n /**\n #### .sortBy([sortByFunction])\n Get or set sort-by function. This function works as a value accessor at row level and returns a\n particular field to be sorted by. Default value: identity function\n\n ```js\n chart.sortBy(function(d) {\n return d.date;\n });\n ```\n\n **/\n _chart.sortBy = function (_) {\n if (!arguments.length) {\n return _sortBy;\n }\n _sortBy = _;\n return _chart;\n };\n\n /**\n #### .order([order])\n Get or set sort order. Default value: ``` d3.ascending ```\n\n ```js\n chart.order(d3.descending);\n ```\n\n **/\n _chart.order = function (_) {\n if (!arguments.length) {\n return _order;\n }\n _order = _;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n ## Data Grid Widget\n\n Includes: [Base Mixin](#base-mixin)\n\n Data grid is a simple widget designed to list the filtered records, providing\n a simple way to define how the items are displayed.\n\n Examples:\n * [List of members of the european parliament](http://europarl.me/dc.js/web/ep/index.html)\n\n #### dc.dataGrid(parent[, chartGroup])\n Create a data grid widget instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created data grid widget instance\n\n **/\ndc.dataGrid = function (parent, chartGroup) {\n var LABEL_CSS_CLASS = 'dc-grid-label';\n var ITEM_CSS_CLASS = 'dc-grid-item';\n var GROUP_CSS_CLASS = 'dc-grid-group';\n var GRID_CSS_CLASS = 'dc-grid-top';\n\n var _chart = dc.baseMixin({});\n\n var _size = 999; // shouldn't be needed, but you might\n var _html = function (d) { return 'you need to provide an html() handling param: ' + JSON.stringify(d); };\n var _sortBy = function (d) {\n return d;\n };\n var _order = d3.ascending;\n\n var _htmlGroup = function (d) {\n return '

    ' +\n _chart.keyAccessor()(d) + '

    ';\n };\n\n _chart._doRender = function () {\n _chart.selectAll('div.' + GRID_CSS_CLASS).remove();\n\n renderItems(renderGroups());\n\n return _chart;\n };\n\n function renderGroups() {\n var groups = _chart.root().selectAll('div.' + GRID_CSS_CLASS)\n .data(nestEntries(), function (d) {\n return _chart.keyAccessor()(d);\n });\n\n var itemGroup = groups\n .enter()\n .append('div')\n .attr('class', GRID_CSS_CLASS);\n\n if (_htmlGroup) {\n itemGroup\n .html(function (d) {\n return _htmlGroup(d);\n });\n }\n\n groups.exit().remove();\n return itemGroup;\n }\n\n function nestEntries() {\n var entries = _chart.dimension().top(_size);\n\n return d3.nest()\n .key(_chart.group())\n .sortKeys(_order)\n .entries(entries.sort(function (a, b) {\n return _order(_sortBy(a), _sortBy(b));\n }));\n }\n\n function renderItems(groups) {\n var items = groups.order()\n .selectAll('div.' + ITEM_CSS_CLASS)\n .data(function (d) {\n return d.values;\n });\n\n items.enter()\n .append('div')\n .attr('class', ITEM_CSS_CLASS)\n .html(function (d) {\n return _html(d);\n });\n\n items.exit().remove();\n\n return items;\n }\n\n _chart._doRedraw = function () {\n return _chart._doRender();\n };\n\n /**\n #### .size([size])\n Get or set the grid size which determines the number of items displayed by the widget.\n\n **/\n _chart.size = function (s) {\n if (!arguments.length) {\n return _size;\n }\n _size = s;\n return _chart;\n };\n\n /**\n #### .html( function (data) { return ''; })\n Get or set the function that formats an item. The data grid widget uses a\n function to generate dynamic html. Use your favourite templating engine or\n generate the string directly.\n ```js\n chart.html(function (d) { return '
    '+data.exampleString+'
    ';});\n ```\n\n **/\n _chart.html = function (_) {\n if (!arguments.length) {\n return _html;\n }\n _html = _;\n return _chart;\n };\n\n /**\n #### .htmlGroup( function (data) { return ''; })\n Get or set the function that formats a group label.\n ```js\n chart.htmlGroup (function (d) { return '

    '.d.key . 'with ' . d.values.length .' items

    '});\n ```\n\n **/\n _chart.htmlGroup = function (_) {\n if (!arguments.length) {\n return _htmlGroup;\n }\n _htmlGroup = _;\n return _chart;\n };\n\n /**\n #### .sortBy([sortByFunction])\n Get or set sort-by function. This function works as a value accessor at the item\n level and returns a particular field to be sorted.\n by. Default: identity function\n\n ```js\n chart.sortBy(function(d) {\n return d.date;\n });\n ```\n\n **/\n _chart.sortBy = function (_) {\n if (!arguments.length) {\n return _sortBy;\n }\n _sortBy = _;\n return _chart;\n };\n\n /**\n #### .order([order])\n Get or set sort order function. Default value: ``` d3.ascending ```\n\n ```js\n chart.order(d3.descending);\n ```\n\n **/\n _chart.order = function (_) {\n if (!arguments.length) {\n return _order;\n }\n _order = _;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Bubble Chart\nIncludes: [Bubble Mixin](#bubble-mixin), [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nA concrete implementation of a general purpose bubble chart that allows data visualization using the\nfollowing dimensions:\n\n* x axis position\n* y axis position\n* bubble radius\n* color\n\nExamples:\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n* [US Venture Capital Landscape 2011](http://dc-js.github.com/dc.js/vc/index.html)\n#### dc.bubbleChart(parent[, chartGroup])\nCreate a bubble chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection | compositeChart - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created bubble chart instance\n\n```js\n// create a bubble chart under #chart-container1 element using the default global chart group\nvar bubbleChart1 = dc.bubbleChart('#chart-container1');\n// create a bubble chart under #chart-container2 element using chart group A\nvar bubbleChart2 = dc.bubbleChart('#chart-container2', 'chartGroupA');\n```\n\n**/\ndc.bubbleChart = function (parent, chartGroup) {\n var _chart = dc.bubbleMixin(dc.coordinateGridMixin({}));\n\n var _elasticRadius = false;\n\n _chart.transitionDuration(750);\n\n var bubbleLocator = function (d) {\n return 'translate(' + (bubbleX(d)) + ',' + (bubbleY(d)) + ')';\n };\n\n /**\n #### .elasticRadius([boolean])\n Turn on or off the elastic bubble radius feature, or return the value of the flag. If this\n feature is turned on, then bubble radii will be automatically rescaled to fit the chart better.\n\n **/\n _chart.elasticRadius = function (_) {\n if (!arguments.length) {\n return _elasticRadius;\n }\n _elasticRadius = _;\n return _chart;\n };\n\n _chart.plotData = function () {\n if (_elasticRadius) {\n _chart.r().domain([_chart.rMin(), _chart.rMax()]);\n }\n\n _chart.r().range([_chart.MIN_RADIUS, _chart.xAxisLength() * _chart.maxBubbleRelativeSize()]);\n\n var bubbleG = _chart.chartBodyG().selectAll('g.' + _chart.BUBBLE_NODE_CLASS)\n .data(_chart.data(), function (d) { return d.key; });\n\n renderNodes(bubbleG);\n\n updateNodes(bubbleG);\n\n removeNodes(bubbleG);\n\n _chart.fadeDeselectedArea();\n };\n\n function renderNodes(bubbleG) {\n var bubbleGEnter = bubbleG.enter().append('g');\n\n bubbleGEnter\n .attr('class', _chart.BUBBLE_NODE_CLASS)\n .attr('transform', bubbleLocator)\n .append('circle').attr('class', function (d, i) {\n return _chart.BUBBLE_CLASS + ' _' + i;\n })\n .on('click', _chart.onClick)\n .attr('fill', _chart.getColor)\n .attr('r', 0);\n dc.transition(bubbleG, _chart.transitionDuration())\n .selectAll('circle.' + _chart.BUBBLE_CLASS)\n .attr('r', function (d) {\n return _chart.bubbleR(d);\n })\n .attr('opacity', function (d) {\n return (_chart.bubbleR(d) > 0) ? 1 : 0;\n });\n\n _chart._doRenderLabel(bubbleGEnter);\n\n _chart._doRenderTitles(bubbleGEnter);\n }\n\n function updateNodes(bubbleG) {\n dc.transition(bubbleG, _chart.transitionDuration())\n .attr('transform', bubbleLocator)\n .selectAll('circle.' + _chart.BUBBLE_CLASS)\n .attr('fill', _chart.getColor)\n .attr('r', function (d) {\n return _chart.bubbleR(d);\n })\n .attr('opacity', function (d) {\n return (_chart.bubbleR(d) > 0) ? 1 : 0;\n });\n\n _chart.doUpdateLabels(bubbleG);\n _chart.doUpdateTitles(bubbleG);\n }\n\n function removeNodes(bubbleG) {\n bubbleG.exit().remove();\n }\n\n function bubbleX(d) {\n var x = _chart.x()(_chart.keyAccessor()(d));\n if (isNaN(x)) {\n x = 0;\n }\n return x;\n }\n\n function bubbleY(d) {\n var y = _chart.y()(_chart.valueAccessor()(d));\n if (isNaN(y)) {\n y = 0;\n }\n return y;\n }\n\n _chart.renderBrush = function () {\n // override default x axis brush from parent chart\n };\n\n _chart.redrawBrush = function () {\n // override default x axis brush from parent chart\n _chart.fadeDeselectedArea();\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Composite Chart\nIncludes: [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nComposite charts are a special kind of chart that render multiple charts on the same Coordinate\nGrid. You can overlay (compose) different bar/line/area charts in a single composite chart to\nachieve some quite flexible charting effects.\n#### dc.compositeChart(parent[, chartGroup])\nCreate a composite chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created composite chart instance\n\n```js\n// create a composite chart under #chart-container1 element using the default global chart group\nvar compositeChart1 = dc.compositeChart('#chart-container1');\n// create a composite chart under #chart-container2 element using chart group A\nvar compositeChart2 = dc.compositeChart('#chart-container2', 'chartGroupA');\n```\n\n**/\ndc.compositeChart = function (parent, chartGroup) {\n\n var SUB_CHART_CLASS = 'sub';\n var DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING = 12;\n\n var _chart = dc.coordinateGridMixin({});\n var _children = [];\n\n var _childOptions = {};\n\n var _shareColors = false,\n _shareTitle = true;\n\n var _rightYAxis = d3.svg.axis(),\n _rightYAxisLabel = 0,\n _rightYAxisLabelPadding = DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING,\n _rightY,\n _rightAxisGridLines = false;\n\n _chart._mandatoryAttributes([]);\n _chart.transitionDuration(500);\n\n dc.override(_chart, '_generateG', function () {\n var g = this.__generateG();\n\n for (var i = 0; i < _children.length; ++i) {\n var child = _children[i];\n\n generateChildG(child, i);\n\n if (!child.dimension()) {\n child.dimension(_chart.dimension());\n }\n if (!child.group()) {\n child.group(_chart.group());\n }\n\n child.chartGroup(_chart.chartGroup());\n child.svg(_chart.svg());\n child.xUnits(_chart.xUnits());\n child.transitionDuration(_chart.transitionDuration());\n child.brushOn(_chart.brushOn());\n child.renderTitle(_chart.renderTitle());\n }\n\n return g;\n });\n\n _chart._brushing = function () {\n var extent = _chart.extendBrush();\n var brushIsEmpty = _chart.brushIsEmpty(extent);\n\n for (var i = 0; i < _children.length; ++i) {\n _children[i].filter(null);\n if (!brushIsEmpty) {\n _children[i].filter(extent);\n }\n }\n };\n\n _chart._prepareYAxis = function () {\n if (leftYAxisChildren().length !== 0) { prepareLeftYAxis(); }\n if (rightYAxisChildren().length !== 0) { prepareRightYAxis(); }\n\n if (leftYAxisChildren().length > 0 && !_rightAxisGridLines) {\n _chart._renderHorizontalGridLinesForAxis(_chart.g(), _chart.y(), _chart.yAxis());\n }\n else if (rightYAxisChildren().length > 0) {\n _chart._renderHorizontalGridLinesForAxis(_chart.g(), _rightY, _rightYAxis);\n }\n };\n\n _chart.renderYAxis = function () {\n if (leftYAxisChildren().length !== 0) {\n _chart.renderYAxisAt('y', _chart.yAxis(), _chart.margins().left);\n _chart.renderYAxisLabel('y', _chart.yAxisLabel(), -90);\n }\n\n if (rightYAxisChildren().length !== 0) {\n _chart.renderYAxisAt('yr', _chart.rightYAxis(), _chart.width() - _chart.margins().right);\n _chart.renderYAxisLabel('yr', _chart.rightYAxisLabel(), 90, _chart.width() - _rightYAxisLabelPadding);\n }\n };\n\n function prepareRightYAxis() {\n if (_chart.rightY() === undefined || _chart.elasticY()) {\n _chart.rightY(d3.scale.linear());\n _chart.rightY().domain([rightYAxisMin(), rightYAxisMax()]).rangeRound([_chart.yAxisHeight(), 0]);\n }\n\n _chart.rightY().range([_chart.yAxisHeight(), 0]);\n _chart.rightYAxis(_chart.rightYAxis().scale(_chart.rightY()));\n\n _chart.rightYAxis().orient('right');\n }\n\n function prepareLeftYAxis() {\n if (_chart.y() === undefined || _chart.elasticY()) {\n _chart.y(d3.scale.linear());\n _chart.y().domain([yAxisMin(), yAxisMax()]).rangeRound([_chart.yAxisHeight(), 0]);\n }\n\n _chart.y().range([_chart.yAxisHeight(), 0]);\n _chart.yAxis(_chart.yAxis().scale(_chart.y()));\n\n _chart.yAxis().orient('left');\n }\n\n function generateChildG(child, i) {\n child._generateG(_chart.g());\n child.g().attr('class', SUB_CHART_CLASS + ' _' + i);\n }\n\n _chart.plotData = function () {\n for (var i = 0; i < _children.length; ++i) {\n var child = _children[i];\n\n if (!child.g()) {\n generateChildG(child, i);\n }\n\n if (_shareColors) {\n child.colors(_chart.colors());\n }\n\n child.x(_chart.x());\n\n child.xAxis(_chart.xAxis());\n\n if (child.useRightYAxis()) {\n child.y(_chart.rightY());\n child.yAxis(_chart.rightYAxis());\n }\n else {\n child.y(_chart.y());\n child.yAxis(_chart.yAxis());\n }\n\n child.plotData();\n\n child._activateRenderlets();\n }\n };\n\n /**\n #### .useRightAxisGridLines(bool)\n Get or set whether to draw gridlines from the right y axis. Drawing from the left y axis is the\n default behavior. This option is only respected when subcharts with both left and right y-axes\n are present.\n **/\n _chart.useRightAxisGridLines = function (_) {\n if (!arguments) {\n return _rightAxisGridLines;\n }\n\n _rightAxisGridLines = _;\n return _chart;\n };\n\n /**\n #### .childOptions({object})\n Get or set chart-specific options for all child charts. This is equivalent to calling `.options`\n on each child chart.\n **/\n _chart.childOptions = function (_) {\n if (!arguments.length) {\n return _childOptions;\n }\n _childOptions = _;\n _children.forEach(function (child) {\n child.options(_childOptions);\n });\n return _chart;\n };\n\n _chart.fadeDeselectedArea = function () {\n for (var i = 0; i < _children.length; ++i) {\n var child = _children[i];\n child.brush(_chart.brush());\n child.fadeDeselectedArea();\n }\n };\n\n /**\n #### .rightYAxisLabel([labelText])\n Set or get the right y axis label.\n **/\n _chart.rightYAxisLabel = function (_, padding) {\n if (!arguments.length) {\n return _rightYAxisLabel;\n }\n _rightYAxisLabel = _;\n _chart.margins().right -= _rightYAxisLabelPadding;\n _rightYAxisLabelPadding = (padding === undefined) ? DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING : padding;\n _chart.margins().right += _rightYAxisLabelPadding;\n return _chart;\n };\n\n /**\n #### .compose(subChartArray)\n Combine the given charts into one single composite coordinate grid chart.\n\n ```js\n // compose the given charts in the array into one single composite chart\n moveChart.compose([\n // when creating sub-chart you need to pass in the parent chart\n dc.lineChart(moveChart)\n .group(indexAvgByMonthGroup) // if group is missing then parent's group will be used\n .valueAccessor(function (d){return d.value.avg;})\n // most of the normal functions will continue to work in a composed chart\n .renderArea(true)\n .stack(monthlyMoveGroup, function (d){return d.value;})\n .title(function (d){\n var value = d.value.avg?d.value.avg:d.value;\n if(isNaN(value)) value = 0;\n return dateFormat(d.key) + '\\n' + numberFormat(value);\n }),\n dc.barChart(moveChart)\n .group(volumeByMonthGroup)\n .centerBar(true)\n ]);\n ```\n\n **/\n _chart.compose = function (charts) {\n _children = charts;\n _children.forEach(function (child) {\n child.height(_chart.height());\n child.width(_chart.width());\n child.margins(_chart.margins());\n\n if (_shareTitle) {\n child.title(_chart.title());\n }\n\n child.options(_childOptions);\n });\n return _chart;\n };\n\n /**\n #### .children()\n Returns the child charts which are composed into the composite chart.\n **/\n\n _chart.children = function () {\n return _children;\n };\n\n /**\n #### .shareColors([boolean])\n Get or set color sharing for the chart. If set, the `.colors()` value from this chart\n will be shared with composed children. Additionally if the child chart implements\n Stackable and has not set a custom .colorAccessor, then it will generate a color\n specific to its order in the composition.\n **/\n _chart.shareColors = function (_) {\n if (!arguments.length) {\n return _shareColors;\n }\n _shareColors = _;\n return _chart;\n };\n\n /**\n #### .shareTitle([[boolean])\n Get or set title sharing for the chart. If set, the `.title()` value from this chart will be\n shared with composed children. Default value is true.\n **/\n _chart.shareTitle = function (_) {\n if (!arguments.length) {\n return _shareTitle;\n }\n _shareTitle = _;\n return _chart;\n };\n\n /**\n #### .rightY([yScale])\n Get or set the y scale for the right axis. The right y scale is typically automatically\n generated by the chart implementation.\n\n **/\n _chart.rightY = function (_) {\n if (!arguments.length) {\n return _rightY;\n }\n _rightY = _;\n return _chart;\n };\n\n function leftYAxisChildren() {\n return _children.filter(function (child) {\n return !child.useRightYAxis();\n });\n }\n\n function rightYAxisChildren() {\n return _children.filter(function (child) {\n return child.useRightYAxis();\n });\n }\n\n function getYAxisMin(charts) {\n return charts.map(function (c) {\n return c.yAxisMin();\n });\n }\n\n delete _chart.yAxisMin;\n function yAxisMin() {\n return d3.min(getYAxisMin(leftYAxisChildren()));\n }\n\n function rightYAxisMin() {\n return d3.min(getYAxisMin(rightYAxisChildren()));\n }\n\n function getYAxisMax(charts) {\n return charts.map(function (c) {\n return c.yAxisMax();\n });\n }\n\n delete _chart.yAxisMax;\n function yAxisMax() {\n return dc.utils.add(d3.max(getYAxisMax(leftYAxisChildren())), _chart.yAxisPadding());\n }\n\n function rightYAxisMax() {\n return dc.utils.add(d3.max(getYAxisMax(rightYAxisChildren())), _chart.yAxisPadding());\n }\n\n function getAllXAxisMinFromChildCharts() {\n return _children.map(function (c) {\n return c.xAxisMin();\n });\n }\n\n dc.override(_chart, 'xAxisMin', function () {\n return dc.utils.subtract(d3.min(getAllXAxisMinFromChildCharts()), _chart.xAxisPadding());\n });\n\n function getAllXAxisMaxFromChildCharts() {\n return _children.map(function (c) {\n return c.xAxisMax();\n });\n }\n\n dc.override(_chart, 'xAxisMax', function () {\n return dc.utils.add(d3.max(getAllXAxisMaxFromChildCharts()), _chart.xAxisPadding());\n });\n\n _chart.legendables = function () {\n return _children.reduce(function (items, child) {\n if (_shareColors) {\n child.colors(_chart.colors());\n }\n items.push.apply(items, child.legendables());\n return items;\n }, []);\n };\n\n _chart.legendHighlight = function (d) {\n for (var j = 0; j < _children.length; ++j) {\n var child = _children[j];\n child.legendHighlight(d);\n }\n };\n\n _chart.legendReset = function (d) {\n for (var j = 0; j < _children.length; ++j) {\n var child = _children[j];\n child.legendReset(d);\n }\n };\n\n _chart.legendToggle = function () {\n console.log('composite should not be getting legendToggle itself');\n };\n\n /**\n #### .rightYAxis([yAxis])\n Set or get the right y axis used by the composite chart. This function is most useful when y\n axis customization is required. The y axis in dc.js is an instance of a [d3 axis\n object](https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-_axis) therefore it supports any valid\n d3 axis manipulation. **Caution**: The y axis is usually generated internally by dc;\n resetting it may cause unexpected results.\n ```jså\n // customize y axis tick format\n chart.rightYAxis().tickFormat(function (v) {return v + '%';});\n // customize y axis tick values\n chart.rightYAxis().tickValues([0, 100, 200, 300]);\n ```\n\n **/\n _chart.rightYAxis = function (rightYAxis) {\n if (!arguments.length) {\n return _rightYAxis;\n }\n _rightYAxis = rightYAxis;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n ## Series Chart\n\n Includes: [Composite Chart](#composite chart)\n\n A series chart is a chart that shows multiple series of data overlaid on one chart, where the\n series is specified in the data. It is a specialization of Composite Chart and inherits all\n composite features other than recomposing the chart.\n\n #### dc.seriesChart(parent[, chartGroup])\n Create a series chart instance and attach it to the given parent element.\n\n Parameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\n Returns:\n A newly created series chart instance\n\n ```js\n // create a series chart under #chart-container1 element using the default global chart group\n var seriesChart1 = dc.seriesChart(\"#chart-container1\");\n // create a series chart under #chart-container2 element using chart group A\n var seriesChart2 = dc.seriesChart(\"#chart-container2\", \"chartGroupA\");\n ```\n\n **/\ndc.seriesChart = function (parent, chartGroup) {\n var _chart = dc.compositeChart(parent, chartGroup);\n\n function keySort(a, b) {\n return d3.ascending(_chart.keyAccessor()(a), _chart.keyAccessor()(b));\n }\n\n var _charts = {};\n var _chartFunction = dc.lineChart;\n var _seriesAccessor;\n var _seriesSort = d3.ascending;\n var _valueSort = keySort;\n\n _chart._mandatoryAttributes().push('seriesAccessor', 'chart');\n _chart.shareColors(true);\n\n _chart._preprocessData = function () {\n var keep = [];\n var childrenChanged;\n var nester = d3.nest().key(_seriesAccessor);\n if (_seriesSort) {\n nester.sortKeys(_seriesSort);\n }\n if (_valueSort) {\n nester.sortValues(_valueSort);\n }\n var nesting = nester.entries(_chart.data());\n var children =\n nesting.map(function (sub, i) {\n var subChart = _charts[sub.key] || _chartFunction.call(_chart, _chart, chartGroup, sub.key, i);\n if (!_charts[sub.key]) {\n childrenChanged = true;\n }\n _charts[sub.key] = subChart;\n keep.push(sub.key);\n return subChart\n .dimension(_chart.dimension())\n .group({all:d3.functor(sub.values)}, sub.key)\n .keyAccessor(_chart.keyAccessor())\n .valueAccessor(_chart.valueAccessor())\n .brushOn(_chart.brushOn());\n });\n // this works around the fact compositeChart doesn't really\n // have a removal interface\n Object.keys(_charts)\n .filter(function (c) {return keep.indexOf(c) === -1;})\n .forEach(function (c) {\n clearChart(c);\n childrenChanged = true;\n });\n _chart._compose(children);\n if (childrenChanged && _chart.legend()) {\n _chart.legend().render();\n }\n };\n\n function clearChart(c) {\n if (_charts[c].g()) {\n _charts[c].g().remove();\n }\n delete _charts[c];\n }\n\n function resetChildren() {\n Object.keys(_charts).map(clearChart);\n _charts = {};\n }\n\n /**\n #### .chart([function])\n Get or set the chart function, which generates the child charts. Default: dc.lineChart\n\n ```\n // put interpolation on the line charts used for the series\n chart.chart(function(c) { return dc.lineChart(c).interpolate('basis'); })\n // do a scatter series chart\n chart.chart(dc.scatterPlot)\n ```\n\n **/\n _chart.chart = function (_) {\n if (!arguments.length) {\n return _chartFunction;\n }\n _chartFunction = _;\n resetChildren();\n return _chart;\n };\n\n /**\n #### .seriesAccessor([accessor])\n Get or set accessor function for the displayed series. Given a datum, this function\n should return the series that datum belongs to.\n **/\n _chart.seriesAccessor = function (_) {\n if (!arguments.length) {\n return _seriesAccessor;\n }\n _seriesAccessor = _;\n resetChildren();\n return _chart;\n };\n\n /**\n #### .seriesSort([sortFunction])\n Get or set a function to sort the list of series by, given series values.\n\n Example:\n ```\n chart.seriesSort(d3.descending);\n ```\n **/\n _chart.seriesSort = function (_) {\n if (!arguments.length) {\n return _seriesSort;\n }\n _seriesSort = _;\n resetChildren();\n return _chart;\n };\n\n /**\n #### .valueSort([sortFunction])\n Get or set a function to sort each series values by. By default this is the key accessor which,\n for example, will ensure a lineChart series connects its points in increasing key/x order,\n rather than haphazardly.\n **/\n _chart.valueSort = function (_) {\n if (!arguments.length) {\n return _valueSort;\n }\n _valueSort = _;\n resetChildren();\n return _chart;\n };\n\n // make compose private\n _chart._compose = _chart.compose;\n delete _chart.compose;\n\n return _chart;\n};\n","/**\n## Geo Choropleth Chart\nIncludes: [Color Mixin](#color-mixin), [Base Mixin](#base-mixin)\n\nThe geo choropleth chart is designed as an easy way to create a crossfilter driven choropleth map\nfrom GeoJson data. This chart implementation was inspired by [the great d3 choropleth\nexample](http://bl.ocks.org/4060606).\n\nExamples:\n* [US Venture Capital Landscape 2011](http://dc-js.github.com/dc.js/vc/index.html)\n#### dc.geoChoroplethChart(parent[, chartGroup])\nCreate a choropleth chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created choropleth chart instance\n\n```js\n// create a choropleth chart under '#us-chart' element using the default global chart group\nvar chart1 = dc.geoChoroplethChart('#us-chart');\n// create a choropleth chart under '#us-chart2' element using chart group A\nvar chart2 = dc.compositeChart('#us-chart2', 'chartGroupA');\n```\n\n**/\ndc.geoChoroplethChart = function (parent, chartGroup) {\n var _chart = dc.colorMixin(dc.baseMixin({}));\n\n _chart.colorAccessor(function (d) {\n return d || 0;\n });\n\n var _geoPath = d3.geo.path();\n var _projectionFlag;\n\n var _geoJsons = [];\n\n _chart._doRender = function () {\n _chart.resetSvg();\n for (var layerIndex = 0; layerIndex < _geoJsons.length; ++layerIndex) {\n var states = _chart.svg().append('g')\n .attr('class', 'layer' + layerIndex);\n\n var regionG = states.selectAll('g.' + geoJson(layerIndex).name)\n .data(geoJson(layerIndex).data)\n .enter()\n .append('g')\n .attr('class', geoJson(layerIndex).name);\n\n regionG\n .append('path')\n .attr('fill', 'white')\n .attr('d', _geoPath);\n\n regionG.append('title');\n\n plotData(layerIndex);\n }\n _projectionFlag = false;\n };\n\n function plotData(layerIndex) {\n var data = generateLayeredData();\n\n if (isDataLayer(layerIndex)) {\n var regionG = renderRegionG(layerIndex);\n\n renderPaths(regionG, layerIndex, data);\n\n renderTitle(regionG, layerIndex, data);\n }\n }\n\n function generateLayeredData() {\n var data = {};\n var groupAll = _chart.data();\n for (var i = 0; i < groupAll.length; ++i) {\n data[_chart.keyAccessor()(groupAll[i])] = _chart.valueAccessor()(groupAll[i]);\n }\n return data;\n }\n\n function isDataLayer(layerIndex) {\n return geoJson(layerIndex).keyAccessor;\n }\n\n function renderRegionG(layerIndex) {\n var regionG = _chart.svg()\n .selectAll(layerSelector(layerIndex))\n .classed('selected', function (d) {\n return isSelected(layerIndex, d);\n })\n .classed('deselected', function (d) {\n return isDeselected(layerIndex, d);\n })\n .attr('class', function (d) {\n var layerNameClass = geoJson(layerIndex).name;\n var regionClass = dc.utils.nameToId(geoJson(layerIndex).keyAccessor(d));\n var baseClasses = layerNameClass + ' ' + regionClass;\n if (isSelected(layerIndex, d)) {\n baseClasses += ' selected';\n }\n if (isDeselected(layerIndex, d)) {\n baseClasses += ' deselected';\n }\n return baseClasses;\n });\n return regionG;\n }\n\n function layerSelector(layerIndex) {\n return 'g.layer' + layerIndex + ' g.' + geoJson(layerIndex).name;\n }\n\n function isSelected(layerIndex, d) {\n return _chart.hasFilter() && _chart.hasFilter(getKey(layerIndex, d));\n }\n\n function isDeselected(layerIndex, d) {\n return _chart.hasFilter() && !_chart.hasFilter(getKey(layerIndex, d));\n }\n\n function getKey(layerIndex, d) {\n return geoJson(layerIndex).keyAccessor(d);\n }\n\n function geoJson(index) {\n return _geoJsons[index];\n }\n\n function renderPaths(regionG, layerIndex, data) {\n var paths = regionG\n .select('path')\n .attr('fill', function () {\n var currentFill = d3.select(this).attr('fill');\n if (currentFill) {\n return currentFill;\n }\n return 'none';\n })\n .on('click', function (d) {\n return _chart.onClick(d, layerIndex);\n });\n\n dc.transition(paths, _chart.transitionDuration()).attr('fill', function (d, i) {\n return _chart.getColor(data[geoJson(layerIndex).keyAccessor(d)], i);\n });\n }\n\n _chart.onClick = function (d, layerIndex) {\n var selectedRegion = geoJson(layerIndex).keyAccessor(d);\n dc.events.trigger(function () {\n _chart.filter(selectedRegion);\n _chart.redrawGroup();\n });\n };\n\n function renderTitle(regionG, layerIndex, data) {\n if (_chart.renderTitle()) {\n regionG.selectAll('title').text(function (d) {\n var key = getKey(layerIndex, d);\n var value = data[key];\n return _chart.title()({key: key, value: value});\n });\n }\n }\n\n _chart._doRedraw = function () {\n for (var layerIndex = 0; layerIndex < _geoJsons.length; ++layerIndex) {\n plotData(layerIndex);\n if (_projectionFlag) {\n _chart.svg().selectAll('g.' + geoJson(layerIndex).name + ' path').attr('d', _geoPath);\n }\n }\n _projectionFlag = false;\n };\n\n /**\n #### .overlayGeoJson(json, name, keyAccessor) - **mandatory**\n Use this function to insert a new GeoJson map layer. This function can be invoked multiple times\n if you have multiple GeoJson data layers to render on top of each other. If you overlay multiple\n layers with the same name the new overlay will override the existing one.\n\n Parameters:\n * json - GeoJson feed\n * name - name of the layer\n * keyAccessor - accessor function used to extract 'key' from the GeoJson data. The key extracted by\n this function should match the keys returned by the crossfilter groups.\n\n ```js\n // insert a layer for rendering US states\n chart.overlayGeoJson(statesJson.features, 'state', function(d) {\n return d.properties.name;\n });\n ```\n\n **/\n _chart.overlayGeoJson = function (json, name, keyAccessor) {\n for (var i = 0; i < _geoJsons.length; ++i) {\n if (_geoJsons[i].name === name) {\n _geoJsons[i].data = json;\n _geoJsons[i].keyAccessor = keyAccessor;\n return _chart;\n }\n }\n _geoJsons.push({name: name, data: json, keyAccessor: keyAccessor});\n return _chart;\n };\n\n /**\n #### .projection(projection)\n Set custom geo projection function. See the available [d3 geo projection\n functions](https://github.com/mbostock/d3/wiki/Geo-Projections). Default value: albersUsa.\n\n **/\n _chart.projection = function (projection) {\n _geoPath.projection(projection);\n _projectionFlag = true;\n return _chart;\n };\n\n /**\n #### .geoJsons()\n Returns all GeoJson layers currently registered with this chart. The returned array is a\n reference to this chart's internal data structure, so any modification to this array will also\n modify this chart's internal registration.\n\n Returns an array of objects containing fields {name, data, accessor}\n\n **/\n _chart.geoJsons = function () {\n return _geoJsons;\n };\n\n /**\n #### .geoPath()\n Returns the [d3.geo.path](https://github.com/mbostock/d3/wiki/Geo-Paths#path) object used to\n render the projection and features. Can be useful for figuring out the bounding box of the\n feature set and thus a way to calculate scale and translation for the projection.\n\n **/\n _chart.geoPath = function () {\n return _geoPath;\n };\n\n /**\n #### .removeGeoJson(name)\n Remove a GeoJson layer from this chart by name\n\n **/\n _chart.removeGeoJson = function (name) {\n var geoJsons = [];\n\n for (var i = 0; i < _geoJsons.length; ++i) {\n var layer = _geoJsons[i];\n if (layer.name !== name) {\n geoJsons.push(layer);\n }\n }\n\n _geoJsons = geoJsons;\n\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Bubble Overlay Chart\nIncludes: [Bubble Mixin](#bubble-mixin), [Base Mixin](#base-mixin)\n\nThe bubble overlay chart is quite different from the typical bubble chart. With the bubble overlay\nchart you can arbitrarily place bubbles on an existing svg or bitmap image, thus changing the\ntypical x and y positioning while retaining the capability to visualize data using bubble radius\nand coloring.\n\nExamples:\n* [Canadian City Crime Stats](http://dc-js.github.com/dc.js/crime/index.html)\n#### dc.bubbleOverlay(parent[, chartGroup])\nCreate a bubble overlay chart instance and attach it to the given parent element.\n\nParameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n off-screen. Typically this element should also be the parent of the underlying image.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created bubble overlay chart instance\n\n```js\n// create a bubble overlay chart on top of the '#chart-container1 svg' element using the default global chart group\nvar bubbleChart1 = dc.bubbleOverlayChart('#chart-container1').svg(d3.select('#chart-container1 svg'));\n// create a bubble overlay chart on top of the '#chart-container2 svg' element using chart group A\nvar bubbleChart2 = dc.compositeChart('#chart-container2', 'chartGroupA').svg(d3.select('#chart-container2 svg'));\n```\n#### .svg(imageElement) - **mandatory**\nSet the underlying svg image element. Unlike other dc charts this chart will not generate a svg\nelement; therefore the bubble overlay chart will not work if this function is not invoked. If the\nunderlying image is a bitmap, then an empty svg will need to be created on top of the image.\n\n```js\n// set up underlying svg element\nchart.svg(d3.select('#chart svg'));\n```\n\n**/\ndc.bubbleOverlay = function (root, chartGroup) {\n var BUBBLE_OVERLAY_CLASS = 'bubble-overlay';\n var BUBBLE_NODE_CLASS = 'node';\n var BUBBLE_CLASS = 'bubble';\n\n var _chart = dc.bubbleMixin(dc.baseMixin({}));\n var _g;\n var _points = [];\n\n _chart.transitionDuration(750);\n\n _chart.radiusValueAccessor(function (d) {\n return d.value;\n });\n\n /**\n #### .point(name, x, y) - **mandatory**\n Set up a data point on the overlay. The name of a data point should match a specific 'key' among\n data groups generated using keyAccessor. If a match is found (point name <-> data group key)\n then a bubble will be generated at the position specified by the function. x and y\n value specified here are relative to the underlying svg.\n\n **/\n _chart.point = function (name, x, y) {\n _points.push({name: name, x: x, y: y});\n return _chart;\n };\n\n _chart._doRender = function () {\n _g = initOverlayG();\n\n _chart.r().range([_chart.MIN_RADIUS, _chart.width() * _chart.maxBubbleRelativeSize()]);\n\n initializeBubbles();\n\n _chart.fadeDeselectedArea();\n\n return _chart;\n };\n\n function initOverlayG() {\n _g = _chart.select('g.' + BUBBLE_OVERLAY_CLASS);\n if (_g.empty()) {\n _g = _chart.svg().append('g').attr('class', BUBBLE_OVERLAY_CLASS);\n }\n return _g;\n }\n\n function initializeBubbles() {\n var data = mapData();\n\n _points.forEach(function (point) {\n var nodeG = getNodeG(point, data);\n\n var circle = nodeG.select('circle.' + BUBBLE_CLASS);\n\n if (circle.empty()) {\n circle = nodeG.append('circle')\n .attr('class', BUBBLE_CLASS)\n .attr('r', 0)\n .attr('fill', _chart.getColor)\n .on('click', _chart.onClick);\n }\n\n dc.transition(circle, _chart.transitionDuration())\n .attr('r', function (d) {\n return _chart.bubbleR(d);\n });\n\n _chart._doRenderLabel(nodeG);\n\n _chart._doRenderTitles(nodeG);\n });\n }\n\n function mapData() {\n var data = {};\n _chart.data().forEach(function (datum) {\n data[_chart.keyAccessor()(datum)] = datum;\n });\n return data;\n }\n\n function getNodeG(point, data) {\n var bubbleNodeClass = BUBBLE_NODE_CLASS + ' ' + dc.utils.nameToId(point.name);\n\n var nodeG = _g.select('g.' + dc.utils.nameToId(point.name));\n\n if (nodeG.empty()) {\n nodeG = _g.append('g')\n .attr('class', bubbleNodeClass)\n .attr('transform', 'translate(' + point.x + ',' + point.y + ')');\n }\n\n nodeG.datum(data[point.name]);\n\n return nodeG;\n }\n\n _chart._doRedraw = function () {\n updateBubbles();\n\n _chart.fadeDeselectedArea();\n\n return _chart;\n };\n\n function updateBubbles() {\n var data = mapData();\n\n _points.forEach(function (point) {\n var nodeG = getNodeG(point, data);\n\n var circle = nodeG.select('circle.' + BUBBLE_CLASS);\n\n dc.transition(circle, _chart.transitionDuration())\n .attr('r', function (d) {\n return _chart.bubbleR(d);\n })\n .attr('fill', _chart.getColor);\n\n _chart.doUpdateLabels(nodeG);\n\n _chart.doUpdateTitles(nodeG);\n });\n }\n\n _chart.debug = function (flag) {\n if (flag) {\n var debugG = _chart.select('g.' + dc.constants.DEBUG_GROUP_CLASS);\n\n if (debugG.empty()) {\n debugG = _chart.svg()\n .append('g')\n .attr('class', dc.constants.DEBUG_GROUP_CLASS);\n }\n\n var debugText = debugG.append('text')\n .attr('x', 10)\n .attr('y', 20);\n\n debugG\n .append('rect')\n .attr('width', _chart.width())\n .attr('height', _chart.height())\n .on('mousemove', function () {\n var position = d3.mouse(debugG.node());\n var msg = position[0] + ', ' + position[1];\n debugText.text(msg);\n });\n } else {\n _chart.selectAll('.debug').remove();\n }\n\n return _chart;\n };\n\n _chart.anchor(root, chartGroup);\n\n return _chart;\n};\n","/**\n## Row Chart\nIncludes: [Cap Mixin](#cap-mixin), [Margin Mixin](#margin-mixin), [Color Mixin](#color-mixin), [Base Mixin](#base-mixin)\n\nConcrete row chart implementation.\n#### dc.rowChart(parent[, chartGroup])\nCreate a row chart instance and attach it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created row chart instance\n\n```js\n// create a row chart under #chart-container1 element using the default global chart group\nvar chart1 = dc.rowChart('#chart-container1');\n// create a row chart under #chart-container2 element using chart group A\nvar chart2 = dc.rowChart('#chart-container2', 'chartGroupA');\n```\n\n**/\ndc.rowChart = function (parent, chartGroup) {\n\n var _g;\n\n var _labelOffsetX = 10;\n var _labelOffsetY = 15;\n var _hasLabelOffsetY = false;\n var _dyOffset = '0.35em'; // this helps center labels https://github.com/mbostock/d3/wiki/SVG-Shapes#svg_text\n var _titleLabelOffsetX = 2;\n\n var _gap = 5;\n\n var _fixedBarHeight = false;\n var _rowCssClass = 'row';\n var _titleRowCssClass = 'titlerow';\n var _renderTitleLabel = false;\n\n var _chart = dc.capMixin(dc.marginMixin(dc.colorMixin(dc.baseMixin({}))));\n\n var _x;\n\n var _elasticX;\n\n var _xAxis = d3.svg.axis().orient('bottom');\n\n var _rowData;\n\n _chart.rowsCap = _chart.cap;\n\n function calculateAxisScale() {\n if (!_x || _elasticX) {\n var extent = d3.extent(_rowData, _chart.cappedValueAccessor);\n if (extent[0] > 0) {\n extent[0] = 0;\n }\n _x = d3.scale.linear().domain(extent)\n .range([0, _chart.effectiveWidth()]);\n }\n _xAxis.scale(_x);\n }\n\n function drawAxis() {\n var axisG = _g.select('g.axis');\n\n calculateAxisScale();\n\n if (axisG.empty()) {\n axisG = _g.append('g').attr('class', 'axis')\n .attr('transform', 'translate(0, ' + _chart.effectiveHeight() + ')');\n }\n\n dc.transition(axisG, _chart.transitionDuration())\n .call(_xAxis);\n }\n\n _chart._doRender = function () {\n _chart.resetSvg();\n\n _g = _chart.svg()\n .append('g')\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')');\n\n drawChart();\n\n return _chart;\n };\n\n _chart.title(function (d) {\n return _chart.cappedKeyAccessor(d) + ': ' + _chart.cappedValueAccessor(d);\n });\n\n _chart.label(_chart.cappedKeyAccessor);\n\n /**\n #### .x([scale])\n Gets or sets the x scale. The x scale can be any d3\n [quantitive scale](https://github.com/mbostock/d3/wiki/Quantitative-Scales)\n **/\n _chart.x = function (x) {\n if (!arguments.length) {\n return _x;\n }\n _x = x;\n return _chart;\n };\n\n function drawGridLines() {\n _g.selectAll('g.tick')\n .select('line.grid-line')\n .remove();\n\n _g.selectAll('g.tick')\n .append('line')\n .attr('class', 'grid-line')\n .attr('x1', 0)\n .attr('y1', 0)\n .attr('x2', 0)\n .attr('y2', function () {\n return -_chart.effectiveHeight();\n });\n }\n\n function drawChart() {\n _rowData = _chart.data();\n\n drawAxis();\n drawGridLines();\n\n var rows = _g.selectAll('g.' + _rowCssClass)\n .data(_rowData);\n\n createElements(rows);\n removeElements(rows);\n updateElements(rows);\n }\n\n function createElements(rows) {\n var rowEnter = rows.enter()\n .append('g')\n .attr('class', function (d, i) {\n return _rowCssClass + ' _' + i;\n });\n\n rowEnter.append('rect').attr('width', 0);\n\n createLabels(rowEnter);\n updateLabels(rows);\n }\n\n function removeElements(rows) {\n rows.exit().remove();\n }\n\n function rootValue() {\n var root = _x(0);\n return (root === -Infinity || root !== root) ? _x(1) : root;\n }\n\n function updateElements(rows) {\n var n = _rowData.length;\n\n var height;\n if (!_fixedBarHeight) {\n height = (_chart.effectiveHeight() - (n + 1) * _gap) / n;\n } else {\n height = _fixedBarHeight;\n }\n\n // vertically align label in center unless they override the value via property setter\n if (!_hasLabelOffsetY) {\n _labelOffsetY = height / 2;\n }\n\n var rect = rows.attr('transform', function (d, i) {\n return 'translate(0,' + ((i + 1) * _gap + i * height) + ')';\n }).select('rect')\n .attr('height', height)\n .attr('fill', _chart.getColor)\n .on('click', onClick)\n .classed('deselected', function (d) {\n return (_chart.hasFilter()) ? !isSelectedRow(d) : false;\n })\n .classed('selected', function (d) {\n return (_chart.hasFilter()) ? isSelectedRow(d) : false;\n });\n\n dc.transition(rect, _chart.transitionDuration())\n .attr('width', function (d) {\n return Math.abs(rootValue() - _x(_chart.valueAccessor()(d)));\n })\n .attr('transform', translateX);\n\n createTitles(rows);\n updateLabels(rows);\n }\n\n function createTitles(rows) {\n if (_chart.renderTitle()) {\n rows.selectAll('title').remove();\n rows.append('title').text(_chart.title());\n }\n }\n\n function createLabels(rowEnter) {\n if (_chart.renderLabel()) {\n rowEnter.append('text')\n .on('click', onClick);\n }\n if (_chart.renderTitleLabel()) {\n rowEnter.append('text')\n .attr('class', _titleRowCssClass)\n .on('click', onClick);\n }\n }\n\n function updateLabels(rows) {\n if (_chart.renderLabel()) {\n var lab = rows.select('text')\n .attr('x', _labelOffsetX)\n .attr('y', _labelOffsetY)\n .attr('dy', _dyOffset)\n .on('click', onClick)\n .attr('class', function (d, i) {\n return _rowCssClass + ' _' + i;\n })\n .text(function (d) {\n return _chart.label()(d);\n });\n dc.transition(lab, _chart.transitionDuration())\n .attr('transform', translateX);\n }\n if (_chart.renderTitleLabel()) {\n var titlelab = rows.select('.' + _titleRowCssClass)\n .attr('x', _chart.effectiveWidth() - _titleLabelOffsetX)\n .attr('y', _labelOffsetY)\n .attr('text-anchor', 'end')\n .on('click', onClick)\n .attr('class', function (d, i) {\n return _titleRowCssClass + ' _' + i ;\n })\n .text(function (d) {\n return _chart.title()(d);\n });\n dc.transition(titlelab, _chart.transitionDuration())\n .attr('transform', translateX);\n }\n }\n\n /**\n #### .renderTitleLabel(boolean)\n Turn on/off Title label rendering (values) using SVG style of text-anchor 'end'\n\n **/\n _chart.renderTitleLabel = function (_) {\n if (!arguments.length) {\n return _renderTitleLabel;\n }\n _renderTitleLabel = _;\n return _chart;\n };\n\n function onClick(d) {\n _chart.onClick(d);\n }\n\n function translateX(d) {\n var x = _x(_chart.cappedValueAccessor(d)),\n x0 = rootValue(),\n s = x > x0 ? x0 : x;\n return 'translate(' + s + ',0)';\n }\n\n _chart._doRedraw = function () {\n drawChart();\n return _chart;\n };\n\n /**\n #### .xAxis()\n Get the x axis for the row chart instance. Note: not settable for row charts.\n See the [d3 axis object](https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-axis) documention for more information.\n ```js\n // customize x axis tick format\n chart.xAxis().tickFormat(function (v) {return v + '%';});\n // customize x axis tick values\n chart.xAxis().tickValues([0, 100, 200, 300]);\n ```\n\n **/\n _chart.xAxis = function () {\n return _xAxis;\n };\n\n /**\n #### .fixedBarHeight([height])\n Get or set the fixed bar height. Default is [false] which will auto-scale bars.\n For example, if you want to fix the height for a specific number of bars (useful in TopN charts)\n you could fix height as follows (where count = total number of bars in your TopN and gap is\n your vertical gap space).\n ```js\n chart.fixedBarHeight( chartheight - (count + 1) * gap / count);\n ```\n **/\n _chart.fixedBarHeight = function (g) {\n if (!arguments.length) {\n return _fixedBarHeight;\n }\n _fixedBarHeight = g;\n return _chart;\n };\n\n /**\n #### .gap([gap])\n Get or set the vertical gap space between rows on a particular row chart instance. Default gap is 5px;\n\n **/\n _chart.gap = function (g) {\n if (!arguments.length) {\n return _gap;\n }\n _gap = g;\n return _chart;\n };\n\n /**\n #### .elasticX([boolean])\n Get or set the elasticity on x axis. If this attribute is set to true, then the x axis will rescle to auto-fit the\n data range when filtered.\n\n **/\n _chart.elasticX = function (_) {\n if (!arguments.length) {\n return _elasticX;\n }\n _elasticX = _;\n return _chart;\n };\n\n /**\n #### .labelOffsetX([x])\n Get or set the x offset (horizontal space to the top left corner of a row) for labels on a particular row chart.\n Default x offset is 10px;\n\n **/\n _chart.labelOffsetX = function (o) {\n if (!arguments.length) {\n return _labelOffsetX;\n }\n _labelOffsetX = o;\n return _chart;\n };\n\n /**\n #### .labelOffsetY([y])\n Get or set the y offset (vertical space to the top left corner of a row) for labels on a particular row chart.\n Default y offset is 15px;\n\n **/\n _chart.labelOffsetY = function (o) {\n if (!arguments.length) {\n return _labelOffsetY;\n }\n _labelOffsetY = o;\n _hasLabelOffsetY = true;\n return _chart;\n };\n\n /**\n #### .titleLabelOffsetx([x])\n Get of set the x offset (horizontal space between right edge of row and right edge or text.\n Default x offset is 2px;\n\n **/\n _chart.titleLabelOffsetX = function (o) {\n if (!arguments.length) {\n return _titleLabelOffsetX;\n }\n _titleLabelOffsetX = o;\n return _chart;\n };\n\n function isSelectedRow (d) {\n return _chart.hasFilter(_chart.cappedKeyAccessor(d));\n }\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Legend\nLegend is a attachable widget that can be added to other dc charts to render horizontal legend\nlabels.\n\n```js\nchart.legend(dc.legend().x(400).y(10).itemHeight(13).gap(5))\n```\n\nExamples:\n* [Nasdaq 100 Index](http://dc-js.github.com/dc.js/)\n* [Canadian City Crime Stats](http://dc-js.github.com/dc.js/crime/index.html)\n\n**/\ndc.legend = function () {\n var LABEL_GAP = 2;\n\n var _legend = {},\n _parent,\n _x = 0,\n _y = 0,\n _itemHeight = 12,\n _gap = 5,\n _horizontal = false,\n _legendWidth = 560,\n _itemWidth = 70,\n _autoItemWidth = false;\n\n var _g;\n\n _legend.parent = function (p) {\n if (!arguments.length) {\n return _parent;\n }\n _parent = p;\n return _legend;\n };\n\n _legend.render = function () {\n _parent.svg().select('g.dc-legend').remove();\n _g = _parent.svg().append('g')\n .attr('class', 'dc-legend')\n .attr('transform', 'translate(' + _x + ',' + _y + ')');\n var legendables = _parent.legendables();\n\n var itemEnter = _g.selectAll('g.dc-legend-item')\n .data(legendables)\n .enter()\n .append('g')\n .attr('class', 'dc-legend-item')\n .on('mouseover', function (d) {\n _parent.legendHighlight(d);\n })\n .on('mouseout', function (d) {\n _parent.legendReset(d);\n })\n .on('click', function (d) {\n d.chart.legendToggle(d);\n });\n\n _g.selectAll('g.dc-legend-item')\n .classed('fadeout', function (d) {\n return d.chart.isLegendableHidden(d);\n });\n\n if (legendables.some(dc.pluck('dashstyle'))) {\n itemEnter\n .append('line')\n .attr('x1', 0)\n .attr('y1', _itemHeight / 2)\n .attr('x2', _itemHeight)\n .attr('y2', _itemHeight / 2)\n .attr('stroke-width', 2)\n .attr('stroke-dasharray', dc.pluck('dashstyle'))\n .attr('stroke', dc.pluck('color'));\n } else {\n itemEnter\n .append('rect')\n .attr('width', _itemHeight)\n .attr('height', _itemHeight)\n .attr('fill', function (d) {return d ? d.color : 'blue';});\n }\n\n itemEnter.append('text')\n .text(dc.pluck('name'))\n .attr('x', _itemHeight + LABEL_GAP)\n .attr('y', function () {\n return _itemHeight / 2 + (this.clientHeight ? this.clientHeight : 13) / 2 - 2;\n });\n\n var _cumulativeLegendTextWidth = 0;\n var row = 0;\n itemEnter.attr('transform', function (d, i) {\n if (_horizontal) {\n var translateBy = 'translate(' + _cumulativeLegendTextWidth + ',' + row * legendItemHeight() + ')';\n var itemWidth = _autoItemWidth === true ? this.getBBox().width + _gap : _itemWidth;\n\n if ((_cumulativeLegendTextWidth + itemWidth) >= _legendWidth) {\n ++row ;\n _cumulativeLegendTextWidth = 0 ;\n } else {\n _cumulativeLegendTextWidth += itemWidth;\n }\n return translateBy;\n }\n else {\n return 'translate(0,' + i * legendItemHeight() + ')';\n }\n });\n };\n\n function legendItemHeight() {\n return _gap + _itemHeight;\n }\n\n /**\n #### .x([value])\n Set or get x coordinate for legend widget. Default: 0.\n **/\n _legend.x = function (x) {\n if (!arguments.length) {\n return _x;\n }\n _x = x;\n return _legend;\n };\n\n /**\n #### .y([value])\n Set or get y coordinate for legend widget. Default: 0.\n **/\n _legend.y = function (y) {\n if (!arguments.length) {\n return _y;\n }\n _y = y;\n return _legend;\n };\n\n /**\n #### .gap([value])\n Set or get gap between legend items. Default: 5.\n **/\n _legend.gap = function (gap) {\n if (!arguments.length) {\n return _gap;\n }\n _gap = gap;\n return _legend;\n };\n\n /**\n #### .itemHeight([value])\n Set or get legend item height. Default: 12.\n **/\n _legend.itemHeight = function (h) {\n if (!arguments.length) {\n return _itemHeight;\n }\n _itemHeight = h;\n return _legend;\n };\n\n /**\n #### .horizontal([boolean])\n Position legend horizontally instead of vertically\n **/\n _legend.horizontal = function (_) {\n if (!arguments.length) {\n return _horizontal;\n }\n _horizontal = _;\n return _legend;\n };\n\n /**\n #### .legendWidth([value])\n Maximum width for horizontal legend. Default: 560.\n **/\n _legend.legendWidth = function (_) {\n if (!arguments.length) {\n return _legendWidth;\n }\n _legendWidth = _;\n return _legend;\n };\n\n /**\n #### .itemWidth([value])\n legendItem width for horizontal legend. Default: 70.\n **/\n _legend.itemWidth = function (_) {\n if (!arguments.length) {\n return _itemWidth;\n }\n _itemWidth = _;\n return _legend;\n };\n\n /**\n #### .autoItemWidth([value])\n Turn automatic width for legend items on or off. If true, itemWidth() is ignored.\n This setting takes into account gap(). Default: false.\n **/\n _legend.autoItemWidth = function (_) {\n if (!arguments.length) {\n return _autoItemWidth;\n }\n _autoItemWidth = _;\n return _legend;\n };\n\n return _legend;\n};\n","/**\n## Scatter Plot\nIncludes: [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\nA scatter plot chart\n#### dc.scatterPlot(parent[, chartGroup])\nCreate a scatter plot instance and attach it to the given parent element.\n\nParameters:\n\n* parent : string | node | selection | compositeChart - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n If the scatter plot is a sub-chart in a [Composite Chart](#composite-chart) then pass in the parent composite\n chart instance.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\nReturns:\nA newly created scatter plot instance\n\n```js\n// create a scatter plot under #chart-container1 element using the default global chart group\nvar chart1 = dc.scatterPlot('#chart-container1');\n// create a scatter plot under #chart-container2 element using chart group A\nvar chart2 = dc.scatterPlot('#chart-container2', 'chartGroupA');\n// create a sub-chart under a composite parent chart\nvar chart3 = dc.scatterPlot(compositeChart);\n```\n\n **/\ndc.scatterPlot = function (parent, chartGroup) {\n var _chart = dc.coordinateGridMixin({});\n var _symbol = d3.svg.symbol();\n\n var _existenceAccessor = function (d) { return d.value; };\n\n var originalKeyAccessor = _chart.keyAccessor();\n _chart.keyAccessor(function (d) { return originalKeyAccessor(d)[0]; });\n _chart.valueAccessor(function (d) { return originalKeyAccessor(d)[1]; });\n _chart.colorAccessor(function () { return _chart._groupName; });\n\n var _locator = function (d) {\n return 'translate(' + _chart.x()(_chart.keyAccessor()(d)) + ',' +\n _chart.y()(_chart.valueAccessor()(d)) + ')';\n };\n\n var _symbolSize = 3;\n var _highlightedSize = 5;\n var _hiddenSize = 0;\n\n _symbol.size(function (d) {\n if (!_existenceAccessor(d)) {\n return _hiddenSize;\n } else if (this.filtered) {\n return Math.pow(_highlightedSize, 2);\n } else {\n return Math.pow(_symbolSize, 2);\n }\n });\n\n dc.override(_chart, '_filter', function (filter) {\n if (!arguments.length) {\n return _chart.__filter();\n }\n\n return _chart.__filter(dc.filters.RangedTwoDimensionalFilter(filter));\n });\n\n _chart.plotData = function () {\n var symbols = _chart.chartBodyG().selectAll('path.symbol')\n .data(_chart.data());\n\n symbols\n .enter()\n .append('path')\n .attr('class', 'symbol')\n .attr('opacity', 0)\n .attr('fill', _chart.getColor)\n .attr('transform', _locator);\n\n dc.transition(symbols, _chart.transitionDuration())\n .attr('opacity', function (d) { return _existenceAccessor(d) ? 1 : 0; })\n .attr('fill', _chart.getColor)\n .attr('transform', _locator)\n .attr('d', _symbol);\n\n dc.transition(symbols.exit(), _chart.transitionDuration())\n .attr('opacity', 0).remove();\n };\n\n /**\n #### .existenceAccessor([accessor])\n Get or set the existence accessor. If a point exists, it is drawn with symbolSize radius and\n opacity 1; if it does not exist, it is drawn with hiddenSize radius and opacity 0. By default,\n the existence accessor checks if the reduced value is truthy.\n **/\n\n _chart.existenceAccessor = function (acc) {\n if (!arguments.length) {\n return _existenceAccessor;\n }\n _existenceAccessor = acc;\n return this;\n };\n\n /**\n #### .symbol([type])\n Get or set the symbol type used for each point. By default the symbol is a circle. See the D3\n [docs](https://github.com/mbostock/d3/wiki/SVG-Shapes#wiki-symbol_type) for acceptable types.\n Type can be a constant or an accessor.\n\n **/\n _chart.symbol = function (type) {\n if (!arguments.length) {\n return _symbol.type();\n }\n _symbol.type(type);\n return _chart;\n };\n\n /**\n #### .symbolSize([radius])\n Set or get radius for symbols. Default: 3.\n\n **/\n _chart.symbolSize = function (s) {\n if (!arguments.length) {\n return _symbolSize;\n }\n _symbolSize = s;\n return _chart;\n };\n\n /**\n #### .highlightedSize([radius])\n Set or get radius for highlighted symbols. Default: 4.\n\n **/\n _chart.highlightedSize = function (s) {\n if (!arguments.length) {\n return _highlightedSize;\n }\n _highlightedSize = s;\n return _chart;\n };\n\n /**\n #### .hiddenSize([radius])\n Set or get radius for symbols when the group is empty. Default: 0.\n\n **/\n _chart.hiddenSize = function (s) {\n if (!arguments.length) {\n return _hiddenSize;\n }\n _hiddenSize = s;\n return _chart;\n };\n\n _chart.legendables = function () {\n return [{chart: _chart, name: _chart._groupName, color: _chart.getColor()}];\n };\n\n _chart.legendHighlight = function (d) {\n resizeSymbolsWhere(function (symbol) {\n return symbol.attr('fill') === d.color;\n }, _highlightedSize);\n _chart.selectAll('.chart-body path.symbol').filter(function () {\n return d3.select(this).attr('fill') !== d.color;\n }).classed('fadeout', true);\n };\n\n _chart.legendReset = function (d) {\n resizeSymbolsWhere(function (symbol) {\n return symbol.attr('fill') === d.color;\n }, _symbolSize);\n _chart.selectAll('.chart-body path.symbol').filter(function () {\n return d3.select(this).attr('fill') !== d.color;\n }).classed('fadeout', false);\n };\n\n function resizeSymbolsWhere(condition, size) {\n var symbols = _chart.selectAll('.chart-body path.symbol').filter(function () {\n return condition(d3.select(this));\n });\n var oldSize = _symbol.size();\n _symbol.size(Math.pow(size, 2));\n dc.transition(symbols, _chart.transitionDuration()).attr('d', _symbol);\n _symbol.size(oldSize);\n }\n\n _chart.setHandlePaths = function () {\n // no handle paths for poly-brushes\n };\n\n _chart.extendBrush = function () {\n var extent = _chart.brush().extent();\n if (_chart.round()) {\n extent[0] = extent[0].map(_chart.round());\n extent[1] = extent[1].map(_chart.round());\n\n _chart.g().select('.brush')\n .call(_chart.brush().extent(extent));\n }\n return extent;\n };\n\n _chart.brushIsEmpty = function (extent) {\n return _chart.brush().empty() || !extent || extent[0][0] >= extent[1][0] || extent[0][1] >= extent[1][1];\n };\n\n function resizeFiltered(filter) {\n var symbols = _chart.selectAll('.chart-body path.symbol').each(function (d) {\n this.filtered = filter && filter.isFiltered(d.key);\n });\n\n dc.transition(symbols, _chart.transitionDuration()).attr('d', _symbol);\n }\n\n _chart._brushing = function () {\n var extent = _chart.extendBrush();\n\n _chart.redrawBrush(_chart.g());\n\n if (_chart.brushIsEmpty(extent)) {\n dc.events.trigger(function () {\n _chart.filter(null);\n _chart.redrawGroup();\n });\n\n resizeFiltered(false);\n\n } else {\n var ranged2DFilter = dc.filters.RangedTwoDimensionalFilter(extent);\n dc.events.trigger(function () {\n _chart.filter(null);\n _chart.filter(ranged2DFilter);\n _chart.redrawGroup();\n }, dc.constants.EVENT_DELAY);\n\n resizeFiltered(ranged2DFilter);\n }\n };\n\n _chart.setBrushY = function (gBrush) {\n gBrush.call(_chart.brush().y(_chart.y()));\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n## Number Display Widget\nIncludes: [Base Mixin](#base-mixin)\n\nA display of a single numeric value.\n\nExamples:\n\n* [Test Example](http://dc-js.github.io/dc.js/examples/number.html)\n#### dc.numberDisplay(parent[, chartGroup])\nCreate a Number Display instance and attach it to the given parent element.\n\nUnlike other charts, you do not need to set a dimension. Instead a group object must be provided and\na valueAccessor that returns a single value.\n\nParameters:\n\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n The number display widget will only react to filter changes in the chart group.\n\nReturns:\nA newly created number display instance\n\n```js\n// create a number display under #chart-container1 element using the default global chart group\nvar display1 = dc.numberDisplay('#chart-container1');\n```\n\n**/\ndc.numberDisplay = function (parent, chartGroup) {\n var SPAN_CLASS = 'number-display';\n var _formatNumber = d3.format('.2s');\n var _chart = dc.baseMixin({});\n var _html = {one:'', some:'', none:''};\n\n // dimension not required\n _chart._mandatoryAttributes(['group']);\n\n /**\n #### .html([object])\n Gets or sets an optional object specifying HTML templates to use depending on the number\n displayed. The text `%number` will be replaced with the current value.\n - one: HTML template to use if the number is 1\n - zero: HTML template to use if the number is 0\n - some: HTML template to use otherwise\n\n ```js\n numberWidget.html({\n one:'%number record',\n some:'%number records',\n none:'no records'})\n ```\n **/\n\n _chart.html = function (s) {\n if (!arguments.length) {\n return _html;\n }\n if (s.none) {\n _html.none = s.none;//if none available\n } else if (s.one) {\n _html.none = s.one;//if none not available use one\n } else if (s.some) {\n _html.none = s.some;//if none and one not available use some\n }\n if (s.one) {\n _html.one = s.one;//if one available\n } else if (s.some) {\n _html.one = s.some;//if one not available use some\n }\n if (s.some) {\n _html.some = s.some;//if some available\n } else if (s.one) {\n _html.some = s.one;//if some not available use one\n }\n return _chart;\n };\n\n /**\n #### .value()\n Calculate and return the underlying value of the display\n **/\n\n _chart.value = function () {\n return _chart.data();\n };\n\n _chart.data(function (group) {\n var valObj = group.value ? group.value() : group.top(1)[0];\n return _chart.valueAccessor()(valObj);\n });\n\n _chart.transitionDuration(250); // good default\n\n _chart._doRender = function () {\n var newValue = _chart.value(),\n span = _chart.selectAll('.' + SPAN_CLASS);\n\n if (span.empty()) {\n span = span.data([0])\n .enter()\n .append('span')\n .attr('class', SPAN_CLASS);\n }\n\n span.transition()\n .duration(_chart.transitionDuration())\n .ease('quad-out-in')\n .tween('text', function () {\n var interp = d3.interpolateNumber(this.lastValue || 0, newValue);\n this.lastValue = newValue;\n return function (t) {\n var html = null, num = _chart.formatNumber()(interp(t));\n if (newValue === 0 && (_html.none !== '')) {\n html = _html.none;\n } else if (newValue === 1 && (_html.one !== '')) {\n html = _html.one;\n } else if (_html.some !== '') {\n html = _html.some;\n }\n this.innerHTML = html ? html.replace('%number', num) : num;\n };\n });\n };\n\n _chart._doRedraw = function () {\n return _chart._doRender();\n };\n\n /**\n #### .formatNumber([formatter])\n Get or set a function to format the value for the display. By default `d3.format('.2s');` is used.\n\n **/\n _chart.formatNumber = function (_) {\n if (!arguments.length) {\n return _formatNumber;\n }\n _formatNumber = _;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","/**\n ## Heat Map\n\n Includes: [Color Mixin](#color-mixin), [Margin Mixin](#margin-mixin), [Base Mixin](#base-mixin)\n\n A heat map is matrix that represents the values of two dimensions of data using colors.\n\n #### dc.heatMap(parent[, chartGroup])\n Create a heat map instance and attach it to the given parent element.\n\n Parameters:\n* parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) specifying\n a dom block element such as a div; or a dom element or d3 selection.\n\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\n Returns:\n A newly created heat map instance\n\n ```js\n // create a heat map under #chart-container1 element using the default global chart group\n var heatMap1 = dc.heatMap('#chart-container1');\n // create a heat map under #chart-container2 element using chart group A\n var heatMap2 = dc.heatMap('#chart-container2', 'chartGroupA');\n ```\n\n **/\ndc.heatMap = function (parent, chartGroup) {\n\n var DEFAULT_BORDER_RADIUS = 6.75;\n\n var _chartBody;\n\n var _cols;\n var _rows;\n var _colOrdering = d3.ascending;\n var _rowOrdering = d3.ascending;\n var _colScale = d3.scale.ordinal();\n var _rowScale = d3.scale.ordinal();\n\n var _xBorderRadius = DEFAULT_BORDER_RADIUS;\n var _yBorderRadius = DEFAULT_BORDER_RADIUS;\n\n var _chart = dc.colorMixin(dc.marginMixin(dc.baseMixin({})));\n _chart._mandatoryAttributes(['group']);\n _chart.title(_chart.colorAccessor());\n\n var _colsLabel = function (d) {\n return d;\n };\n var _rowsLabel = function (d) {\n return d;\n };\n\n /**\n #### .colsLabel([labelFunction])\n Set or get the column label function. The chart class uses this function to render\n column labels on the X axis. It is passed the column name.\n ```js\n // the default label function just returns the name\n chart.colsLabel(function(d) { return d; });\n ```\n **/\n _chart.colsLabel = function (_) {\n if (!arguments.length) {\n return _colsLabel;\n }\n _colsLabel = _;\n return _chart;\n };\n\n /**\n #### .rowsLabel([labelFunction])\n Set or get the row label function. The chart class uses this function to render\n row labels on the Y axis. It is passed the row name.\n ```js\n // the default label function just returns the name\n chart.rowsLabel(function(d) { return d; });\n ```\n **/\n _chart.rowsLabel = function (_) {\n if (!arguments.length) {\n return _rowsLabel;\n }\n _rowsLabel = _;\n return _chart;\n };\n\n var _xAxisOnClick = function (d) { filterAxis(0, d); };\n var _yAxisOnClick = function (d) { filterAxis(1, d); };\n var _boxOnClick = function (d) {\n var filter = d.key;\n dc.events.trigger(function () {\n _chart.filter(filter);\n _chart.redrawGroup();\n });\n };\n\n function filterAxis(axis, value) {\n var cellsOnAxis = _chart.selectAll('.box-group').filter(function (d) {\n return d.key[axis] === value;\n });\n var unfilteredCellsOnAxis = cellsOnAxis.filter(function (d) {\n return !_chart.hasFilter(d.key);\n });\n dc.events.trigger(function () {\n if (unfilteredCellsOnAxis.empty()) {\n cellsOnAxis.each(function (d) {\n _chart.filter(d.key);\n });\n } else {\n unfilteredCellsOnAxis.each(function (d) {\n _chart.filter(d.key);\n });\n }\n _chart.redrawGroup();\n });\n }\n\n dc.override(_chart, 'filter', function (filter) {\n if (!arguments.length) {\n return _chart._filter();\n }\n\n return _chart._filter(dc.filters.TwoDimensionalFilter(filter));\n });\n\n /**\n #### .rows([values])\n Gets or sets the values used to create the rows of the heatmap, as an array. By default, all\n the values will be fetched from the data using the value accessor.\n **/\n\n _chart.rows = function (_) {\n if (!arguments.length) {\n return _rows;\n }\n _rows = _;\n return _chart;\n };\n\n /**\n #### .rowOrdering([orderFunction])\n Get or set an accessor to order the rows. Default is d3.ascending.\n */\n _chart.rowOrdering = function (_) {\n if (!arguments.length) {\n return _rowOrdering;\n }\n _rowOrdering = _;\n return _chart;\n };\n\n /**\n #### .cols([keys])\n Gets or sets the keys used to create the columns of the heatmap, as an array. By default, all\n the values will be fetched from the data using the key accessor.\n **/\n _chart.cols = function (_) {\n if (!arguments.length) {\n return _cols;\n }\n _cols = _;\n return _chart;\n };\n\n /**\n #### .colOrdering([orderFunction])\n Get or set an accessor to order the cols. Default is ascending.\n */\n _chart.colOrdering = function (_) {\n if (!arguments.length) {\n return _colOrdering;\n }\n _colOrdering = _;\n return _chart;\n };\n\n _chart._doRender = function () {\n _chart.resetSvg();\n\n _chartBody = _chart.svg()\n .append('g')\n .attr('class', 'heatmap')\n .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')');\n\n return _chart._doRedraw();\n };\n\n _chart._doRedraw = function () {\n var data = _chart.data(),\n rows = _chart.rows() || data.map(_chart.valueAccessor()),\n cols = _chart.cols() || data.map(_chart.keyAccessor());\n if (_rowOrdering) {\n rows = rows.sort(_rowOrdering);\n }\n if (_colOrdering) {\n cols = cols.sort(_colOrdering);\n }\n rows = _rowScale.domain(rows);\n cols = _colScale.domain(cols);\n\n var rowCount = rows.domain().length,\n colCount = cols.domain().length,\n boxWidth = Math.floor(_chart.effectiveWidth() / colCount),\n boxHeight = Math.floor(_chart.effectiveHeight() / rowCount);\n\n cols.rangeRoundBands([0, _chart.effectiveWidth()]);\n rows.rangeRoundBands([_chart.effectiveHeight(), 0]);\n\n var boxes = _chartBody.selectAll('g.box-group').data(_chart.data(), function (d, i) {\n return _chart.keyAccessor()(d, i) + '\\0' + _chart.valueAccessor()(d, i);\n });\n var gEnter = boxes.enter().append('g')\n .attr('class', 'box-group');\n\n gEnter.append('rect')\n .attr('class', 'heat-box')\n .attr('fill', 'white')\n .on('click', _chart.boxOnClick());\n\n if (_chart.renderTitle()) {\n gEnter.append('title');\n boxes.selectAll('title').text(_chart.title());\n }\n\n dc.transition(boxes.selectAll('rect'), _chart.transitionDuration())\n .attr('x', function (d, i) { return cols(_chart.keyAccessor()(d, i)); })\n .attr('y', function (d, i) { return rows(_chart.valueAccessor()(d, i)); })\n .attr('rx', _xBorderRadius)\n .attr('ry', _yBorderRadius)\n .attr('fill', _chart.getColor)\n .attr('width', boxWidth)\n .attr('height', boxHeight);\n\n boxes.exit().remove();\n\n var gCols = _chartBody.selectAll('g.cols');\n if (gCols.empty()) {\n gCols = _chartBody.append('g').attr('class', 'cols axis');\n }\n var gColsText = gCols.selectAll('text').data(cols.domain());\n gColsText.enter().append('text')\n .attr('x', function (d) { return cols(d) + boxWidth / 2; })\n .style('text-anchor', 'middle')\n .attr('y', _chart.effectiveHeight())\n .attr('dy', 12)\n .on('click', _chart.xAxisOnClick())\n .text(_chart.colsLabel());\n dc.transition(gColsText, _chart.transitionDuration())\n .text(_chart.colsLabel())\n .attr('x', function (d) { return cols(d) + boxWidth / 2; });\n gColsText.exit().remove();\n var gRows = _chartBody.selectAll('g.rows');\n if (gRows.empty()) {\n gRows = _chartBody.append('g').attr('class', 'rows axis');\n }\n var gRowsText = gRows.selectAll('text').data(rows.domain());\n gRowsText.enter().append('text')\n .attr('dy', 6)\n .style('text-anchor', 'end')\n .attr('x', 0)\n .attr('dx', -2)\n .on('click', _chart.yAxisOnClick())\n .text(_chart.rowsLabel());\n dc.transition(gRowsText, _chart.transitionDuration())\n .text(_chart.rowsLabel())\n .attr('y', function (d) { return rows(d) + boxHeight / 2; });\n gRowsText.exit().remove();\n\n if (_chart.hasFilter()) {\n _chart.selectAll('g.box-group').each(function (d) {\n if (_chart.isSelectedNode(d)) {\n _chart.highlightSelected(this);\n } else {\n _chart.fadeDeselected(this);\n }\n });\n } else {\n _chart.selectAll('g.box-group').each(function () {\n _chart.resetHighlight(this);\n });\n }\n return _chart;\n };\n /**\n #### .boxOnClick([handler])\n Gets or sets the handler that fires when an individual cell is clicked in the heatmap.\n By default, filtering of the cell will be toggled.\n **/\n _chart.boxOnClick = function (f) {\n if (!arguments.length) {\n return _boxOnClick;\n }\n _boxOnClick = f;\n return _chart;\n };\n\n /**\n #### .xAxisOnClick([handler])\n Gets or sets the handler that fires when a column tick is clicked in the x axis.\n By default, if any cells in the column are unselected, the whole column will be selected,\n otherwise the whole column will be unselected.\n **/\n _chart.xAxisOnClick = function (f) {\n if (!arguments.length) {\n return _xAxisOnClick;\n }\n _xAxisOnClick = f;\n return _chart;\n };\n\n /**\n #### .yAxisOnClick([handler])\n Gets or sets the handler that fires when a row tick is clicked in the y axis.\n By default, if any cells in the row are unselected, the whole row will be selected,\n otherwise the whole row will be unselected.\n **/\n _chart.yAxisOnClick = function (f) {\n if (!arguments.length) {\n return _yAxisOnClick;\n }\n _yAxisOnClick = f;\n return _chart;\n };\n\n /**\n #### .xBorderRadius([value])\n Gets or sets the X border radius. Set to 0 to get full rectangles. Default: 6.75\n */\n _chart.xBorderRadius = function (d) {\n if (!arguments.length) {\n return _xBorderRadius;\n }\n _xBorderRadius = d;\n return _chart;\n };\n\n /**\n #### .xBorderRadius([value])\n Gets or sets the Y border radius. Set to 0 to get full rectangles. Default: 6.75\n */\n _chart.yBorderRadius = function (d) {\n if (!arguments.length) {\n return _yBorderRadius;\n }\n _yBorderRadius = d;\n return _chart;\n };\n\n _chart.isSelectedNode = function (d) {\n return _chart.hasFilter(d.key);\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","// https://github.com/d3/d3-plugins/blob/master/box/box.js\n(function () {\n\n // Inspired by http://informationandvisualization.de/blog/box-plot\n d3.box = function () {\n var width = 1,\n height = 1,\n duration = 0,\n domain = null,\n value = Number,\n whiskers = boxWhiskers,\n quartiles = boxQuartiles,\n tickFormat = null;\n\n // For each small multiple…\n function box(g) {\n g.each(function (d, i) {\n d = d.map(value).sort(d3.ascending);\n var g = d3.select(this),\n n = d.length,\n min = d[0],\n max = d[n - 1];\n\n // Compute quartiles. Must return exactly 3 elements.\n var quartileData = d.quartiles = quartiles(d);\n\n // Compute whiskers. Must return exactly 2 elements, or null.\n var whiskerIndices = whiskers && whiskers.call(this, d, i),\n whiskerData = whiskerIndices && whiskerIndices.map(function (i) { return d[i]; });\n\n // Compute outliers. If no whiskers are specified, all data are 'outliers'.\n // We compute the outliers as indices, so that we can join across transitions!\n var outlierIndices = whiskerIndices ?\n d3.range(0, whiskerIndices[0]).concat(d3.range(whiskerIndices[1] + 1, n)) : d3.range(n);\n\n // Compute the new x-scale.\n var x1 = d3.scale.linear()\n .domain(domain && domain.call(this, d, i) || [min, max])\n .range([height, 0]);\n\n // Retrieve the old x-scale, if this is an update.\n var x0 = this.__chart__ || d3.scale.linear()\n .domain([0, Infinity])\n .range(x1.range());\n\n // Stash the new scale.\n this.__chart__ = x1;\n\n // Note: the box, median, and box tick elements are fixed in number,\n // so we only have to handle enter and update. In contrast, the outliers\n // and other elements are variable, so we need to exit them! Variable\n // elements also fade in and out.\n\n // Update center line: the vertical line spanning the whiskers.\n var center = g.selectAll('line.center')\n .data(whiskerData ? [whiskerData] : []);\n\n center.enter().insert('line', 'rect')\n .attr('class', 'center')\n .attr('x1', width / 2)\n .attr('y1', function (d) { return x0(d[0]); })\n .attr('x2', width / 2)\n .attr('y2', function (d) { return x0(d[1]); })\n .style('opacity', 1e-6)\n .transition()\n .duration(duration)\n .style('opacity', 1)\n .attr('y1', function (d) { return x1(d[0]); })\n .attr('y2', function (d) { return x1(d[1]); });\n\n center.transition()\n .duration(duration)\n .style('opacity', 1)\n .attr('y1', function (d) { return x1(d[0]); })\n .attr('y2', function (d) { return x1(d[1]); });\n\n center.exit().transition()\n .duration(duration)\n .style('opacity', 1e-6)\n .attr('y1', function (d) { return x1(d[0]); })\n .attr('y2', function (d) { return x1(d[1]); })\n .remove();\n\n // Update innerquartile box.\n var box = g.selectAll('rect.box')\n .data([quartileData]);\n\n box.enter().append('rect')\n .attr('class', 'box')\n .attr('x', 0)\n .attr('y', function (d) { return x0(d[2]); })\n .attr('width', width)\n .attr('height', function (d) { return x0(d[0]) - x0(d[2]); })\n .transition()\n .duration(duration)\n .attr('y', function (d) { return x1(d[2]); })\n .attr('height', function (d) { return x1(d[0]) - x1(d[2]); });\n\n box.transition()\n .duration(duration)\n .attr('y', function (d) { return x1(d[2]); })\n .attr('height', function (d) { return x1(d[0]) - x1(d[2]); });\n\n // Update median line.\n var medianLine = g.selectAll('line.median')\n .data([quartileData[1]]);\n\n medianLine.enter().append('line')\n .attr('class', 'median')\n .attr('x1', 0)\n .attr('y1', x0)\n .attr('x2', width)\n .attr('y2', x0)\n .transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1);\n\n medianLine.transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1);\n\n // Update whiskers.\n var whisker = g.selectAll('line.whisker')\n .data(whiskerData || []);\n\n whisker.enter().insert('line', 'circle, text')\n .attr('class', 'whisker')\n .attr('x1', 0)\n .attr('y1', x0)\n .attr('x2', width)\n .attr('y2', x0)\n .style('opacity', 1e-6)\n .transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1)\n .style('opacity', 1);\n\n whisker.transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1)\n .style('opacity', 1);\n\n whisker.exit().transition()\n .duration(duration)\n .attr('y1', x1)\n .attr('y2', x1)\n .style('opacity', 1e-6)\n .remove();\n\n // Update outliers.\n var outlier = g.selectAll('circle.outlier')\n .data(outlierIndices, Number);\n\n outlier.enter().insert('circle', 'text')\n .attr('class', 'outlier')\n .attr('r', 5)\n .attr('cx', width / 2)\n .attr('cy', function (i) { return x0(d[i]); })\n .style('opacity', 1e-6)\n .transition()\n .duration(duration)\n .attr('cy', function (i) { return x1(d[i]); })\n .style('opacity', 1);\n\n outlier.transition()\n .duration(duration)\n .attr('cy', function (i) { return x1(d[i]); })\n .style('opacity', 1);\n\n outlier.exit().transition()\n .duration(duration)\n .attr('cy', function (i) { return x1(d[i]); })\n .style('opacity', 1e-6)\n .remove();\n\n // Compute the tick format.\n var format = tickFormat || x1.tickFormat(8);\n\n // Update box ticks.\n var boxTick = g.selectAll('text.box')\n .data(quartileData);\n\n boxTick.enter().append('text')\n .attr('class', 'box')\n .attr('dy', '.3em')\n .attr('dx', function (d, i) { return i & 1 ? 6 : -6; })\n .attr('x', function (d, i) { return i & 1 ? width : 0; })\n .attr('y', x0)\n .attr('text-anchor', function (d, i) { return i & 1 ? 'start' : 'end'; })\n .text(format)\n .transition()\n .duration(duration)\n .attr('y', x1);\n\n boxTick.transition()\n .duration(duration)\n .text(format)\n .attr('y', x1);\n\n // Update whisker ticks. These are handled separately from the box\n // ticks because they may or may not exist, and we want don't want\n // to join box ticks pre-transition with whisker ticks post-.\n var whiskerTick = g.selectAll('text.whisker')\n .data(whiskerData || []);\n\n whiskerTick.enter().append('text')\n .attr('class', 'whisker')\n .attr('dy', '.3em')\n .attr('dx', 6)\n .attr('x', width)\n .attr('y', x0)\n .text(format)\n .style('opacity', 1e-6)\n .transition()\n .duration(duration)\n .attr('y', x1)\n .style('opacity', 1);\n\n whiskerTick.transition()\n .duration(duration)\n .text(format)\n .attr('y', x1)\n .style('opacity', 1);\n\n whiskerTick.exit().transition()\n .duration(duration)\n .attr('y', x1)\n .style('opacity', 1e-6)\n .remove();\n });\n d3.timer.flush();\n }\n\n box.width = function (x) {\n if (!arguments.length) {\n return width;\n }\n width = x;\n return box;\n };\n\n box.height = function (x) {\n if (!arguments.length) {\n return height;\n }\n height = x;\n return box;\n };\n\n box.tickFormat = function (x) {\n if (!arguments.length) {\n return tickFormat;\n }\n tickFormat = x;\n return box;\n };\n\n box.duration = function (x) {\n if (!arguments.length) {\n return duration;\n }\n duration = x;\n return box;\n };\n\n box.domain = function (x) {\n if (!arguments.length) {\n return domain;\n }\n domain = x === null ? x : d3.functor(x);\n return box;\n };\n\n box.value = function (x) {\n if (!arguments.length) {\n return value;\n }\n value = x;\n return box;\n };\n\n box.whiskers = function (x) {\n if (!arguments.length) {\n return whiskers;\n }\n whiskers = x;\n return box;\n };\n\n box.quartiles = function (x) {\n if (!arguments.length) {\n return quartiles;\n }\n quartiles = x;\n return box;\n };\n\n return box;\n };\n\n function boxWhiskers(d) {\n return [0, d.length - 1];\n }\n\n function boxQuartiles(d) {\n return [\n d3.quantile(d, 0.25),\n d3.quantile(d, 0.5),\n d3.quantile(d, 0.75)\n ];\n }\n\n})();\n","/**\n ## Box Plot\n\n Includes: [Coordinate Grid Mixin](#coordinate-grid-mixin)\n\n A box plot is a chart that depicts numerical data via their quartile ranges.\n\n #### dc.boxPlot(parent[, chartGroup])\n Create a box plot instance and attach it to the given parent element.\n\n Parameters:\n * parent : string | node | selection - any valid\n [d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) representing\n a dom block element such as a div; or a dom element or d3 selection.\n* chartGroup : string (optional) - name of the chart group this chart instance should be placed in.\n Interaction with a chart will only trigger events and redraws within the chart's group.\n\n Returns:\n A newly created box plot instance\n\n ```js\n // create a box plot under #chart-container1 element using the default global chart group\n var boxPlot1 = dc.boxPlot('#chart-container1');\n // create a box plot under #chart-container2 element using chart group A\n var boxPlot2 = dc.boxPlot('#chart-container2', 'chartGroupA');\n ```\n\n **/\ndc.boxPlot = function (parent, chartGroup) {\n var _chart = dc.coordinateGridMixin({});\n\n // Returns a function to compute the interquartile range.\n function DEFAULT_WHISKERS_IQR (k) {\n return function (d) {\n var q1 = d.quartiles[0],\n q3 = d.quartiles[2],\n iqr = (q3 - q1) * k,\n i = -1,\n j = d.length;\n /*jshint -W116*/\n /*jshint -W035*/\n while (d[++i] < q1 - iqr) {}\n while (d[--j] > q3 + iqr) {}\n /*jshint +W116*/\n return [i, j];\n /*jshint +W035*/\n };\n }\n\n var _whiskerIqrFactor = 1.5;\n var _whiskersIqr = DEFAULT_WHISKERS_IQR;\n var _whiskers = _whiskersIqr(_whiskerIqrFactor);\n\n var _box = d3.box();\n var _tickFormat = null;\n\n var _boxWidth = function (innerChartWidth, xUnits) {\n if (_chart.isOrdinal()) {\n return _chart.x().rangeBand();\n } else {\n return innerChartWidth / (1 + _chart.boxPadding()) / xUnits;\n }\n };\n\n // default padding to handle min/max whisker text\n _chart.yAxisPadding(12);\n\n // default to ordinal\n _chart.x(d3.scale.ordinal());\n _chart.xUnits(dc.units.ordinal);\n\n // valueAccessor should return an array of values that can be coerced into numbers\n // or if data is overloaded for a static array of arrays, it should be `Number`.\n // Empty arrays are not included.\n _chart.data(function (group) {\n return group.all().map(function (d) {\n d.map = function (accessor) { return accessor.call(d, d); };\n return d;\n }).filter(function (d) {\n var values = _chart.valueAccessor()(d);\n return values.length !== 0;\n });\n });\n\n /**\n #### .boxPadding([padding])\n Get or set the spacing between boxes as a fraction of box size. Valid values are within 0-1.\n See the [d3 docs](https://github.com/mbostock/d3/wiki/Ordinal-Scales#wiki-ordinal_rangeBands)\n for a visual description of how the padding is applied.\n\n Default: 0.8\n **/\n _chart.boxPadding = _chart._rangeBandPadding;\n _chart.boxPadding(0.8);\n\n /**\n #### .outerPadding([padding])\n Get or set the outer padding on an ordinal box chart. This setting has no effect on non-ordinal charts\n or on charts with a custom `.boxWidth`. Will pad the width by `padding * barWidth` on each side of the chart.\n\n Default: 0.5\n **/\n _chart.outerPadding = _chart._outerRangeBandPadding;\n _chart.outerPadding(0.5);\n\n /**\n #### .boxWidth(width || function(innerChartWidth, xUnits) { ... })\n Get or set the numerical width of the boxplot box. The width may also be a function taking as\n parameters the chart width excluding the right and left margins, as well as the number of x\n units.\n **/\n _chart.boxWidth = function (_) {\n if (!arguments.length) {\n return _boxWidth;\n }\n _boxWidth = d3.functor(_);\n return _chart;\n };\n\n var boxTransform = function (d, i) {\n var xOffset = _chart.x()(_chart.keyAccessor()(d, i));\n return 'translate(' + xOffset + ', 0)';\n };\n\n _chart._preprocessData = function () {\n if (_chart.elasticX()) {\n _chart.x().domain([]);\n }\n };\n\n _chart.plotData = function () {\n var _calculatedBoxWidth = _boxWidth(_chart.effectiveWidth(), _chart.xUnitCount());\n\n _box.whiskers(_whiskers)\n .width(_calculatedBoxWidth)\n .height(_chart.effectiveHeight())\n .value(_chart.valueAccessor())\n .domain(_chart.y().domain())\n .duration(_chart.transitionDuration())\n .tickFormat(_tickFormat);\n\n var boxesG = _chart.chartBodyG().selectAll('g.box').data(_chart.data(), function (d) { return d.key; });\n\n renderBoxes(boxesG);\n updateBoxes(boxesG);\n removeBoxes(boxesG);\n\n _chart.fadeDeselectedArea();\n };\n\n function renderBoxes(boxesG) {\n var boxesGEnter = boxesG.enter().append('g');\n\n boxesGEnter\n .attr('class', 'box')\n .attr('transform', boxTransform)\n .call(_box)\n .on('click', function (d) {\n _chart.filter(d.key);\n _chart.redrawGroup();\n });\n }\n\n function updateBoxes(boxesG) {\n dc.transition(boxesG, _chart.transitionDuration())\n .attr('transform', boxTransform)\n .call(_box)\n .each(function () {\n d3.select(this).select('rect.box').attr('fill', _chart.getColor);\n });\n }\n\n function removeBoxes(boxesG) {\n boxesG.exit().remove().call(_box);\n }\n\n _chart.fadeDeselectedArea = function () {\n if (_chart.hasFilter()) {\n _chart.g().selectAll('g.box').each(function (d) {\n if (_chart.isSelectedNode(d)) {\n _chart.highlightSelected(this);\n } else {\n _chart.fadeDeselected(this);\n }\n });\n } else {\n _chart.g().selectAll('g.box').each(function () {\n _chart.resetHighlight(this);\n });\n }\n };\n\n _chart.isSelectedNode = function (d) {\n return _chart.hasFilter(d.key);\n };\n\n _chart.yAxisMin = function () {\n var min = d3.min(_chart.data(), function (e) {\n return d3.min(_chart.valueAccessor()(e));\n });\n return dc.utils.subtract(min, _chart.yAxisPadding());\n };\n\n _chart.yAxisMax = function () {\n var max = d3.max(_chart.data(), function (e) {\n return d3.max(_chart.valueAccessor()(e));\n });\n return dc.utils.add(max, _chart.yAxisPadding());\n };\n\n /**\n #### .tickFormat()\n Set the numerical format of the boxplot median, whiskers and quartile labels. Defaults to\n integer formatting.\n ```js\n // format ticks to 2 decimal places\n chart.tickFormat(d3.format('.2f'));\n ```\n **/\n _chart.tickFormat = function (x) {\n if (!arguments.length) {\n return _tickFormat;\n }\n _tickFormat = x;\n return _chart;\n };\n\n return _chart.anchor(parent, chartGroup);\n};\n","// Renamed functions\n\ndc.abstractBubbleChart = dc.bubbleMixin;\ndc.baseChart = dc.baseMixin;\ndc.capped = dc.capMixin;\ndc.colorChart = dc.colorMixin;\ndc.coordinateGridChart = dc.coordinateGridMixin;\ndc.marginable = dc.marginMixin;\ndc.stackableChart = dc.stackMixin;\n\n// Expose d3 and crossfilter, so that clients in browserify\n// case can obtain them if they need them.\ndc.d3 = d3;\ndc.crossfilter = crossfilter;\n\nreturn dc;}\n if(typeof define === \"function\" && define.amd) {\n define([\"d3\", \"crossfilter\"], _dc);\n } else if(typeof module === \"object\" && module.exports) {\n var _d3 = require('d3');\n var _crossfilter = require('crossfilter');\n // When using npm + browserify, 'crossfilter' is a function,\n // since package.json specifies index.js as main function, and it\n // does special handling. When using bower + browserify,\n // there's no main in bower.json (in fact, there's no bower.json),\n // so we need to fix it.\n if (typeof _crossfilter !== \"function\") {\n _crossfilter = _crossfilter.crossfilter;\n }\n module.exports = _dc(_d3, _crossfilter);\n } else {\n this.dc = _dc(d3, crossfilter);\n }\n}\n)();\n"]} \ No newline at end of file +{ + "version": 3, + "file": "dc.js", + "sources": [ + "src/banner.js", + "src/core.js", + "src/errors.js", + "src/utils.js", + "src/events.js", + "src/cumulative.js", + "src/base-chart.js", + "src/marginable.js", + "src/coordinate-grid-chart.js", + "src/color-chart.js", + "src/stackable-chart.js", + "src/abstract-bubble-chart.js", + "src/pie-chart.js", + "src/bar-chart.js", + "src/line-chart.js", + "src/data-count.js", + "src/data-table.js", + "src/bubble-chart.js", + "src/composite-chart.js", + "src/geo-choropleth-chart.js", + "src/bubble-overlay.js", + "src/row-chart.js", + "src/legend.js", + "src/capped.js", + "src/scatter-plot.js", + "src/number-display.js", + "src/footer.js" + ], + "names": [], + "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACxOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC9MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC5HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACruBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC95BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AChQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC5WA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AClQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC/IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AChNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACjQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACrMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AClRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC5GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AChDA;A" +} \ No newline at end of file diff --git a/web/js/dc.min.js b/web/js/dc.min.js index 39f9a70af..cc05a5b90 100644 --- a/web/js/dc.min.js +++ b/web/js/dc.min.js @@ -1,24 +1,4 @@ -/*! - * dc 2.1.0-dev - * http://dc-js.github.io/dc.js/ - * Copyright 2012-2015 Nick Zhu & the dc.js Developers - * https://github.com/dc-js/dc.js/blob/master/AUTHORS - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -!function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&dp?b:p},r=q,s=200,t=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>s?b:s},u=t,v=c.pluck("key"),w=c.pluck("value"),x=c.pluck("key"),y=c.pluck("key"),z=!1,A=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},B=!0,C=750,D=c.printers.filters,E=["dimension","group"],F=c.constants.DEFAULT_CHART_GROUP,G=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),H=[],I=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c=d&&d>=a)return!0}return!1}),b},J=function(a){return a.all()};d.width=function(b){return arguments.length?(r=a.functor(b||q),d):r(k.node())},d.height=function(b){return arguments.length?(u=a.functor(b||t),d):u(k.node())},d.minWidth=function(a){return arguments.length?(p=a,d):p},d.minHeight=function(a){return arguments.length?(s=a,d):s},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(J=a.functor(b),d.expireCache(),d):J.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(y=a,n=b.quicksort.by(y),d.expireCache(),d):y},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(n||(n=b.quicksort.by(y)),n(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root(),m=!0):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e),m=!1),F=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(D=a,d):D},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(D(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(C=a,d):C},d._mandatoryAttributes=function(a){return arguments.length?(E=a,d):E},d.render=function(){G.preRender(d),E&&E.forEach(f);var a=d._doRender();return o&&o.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){G.renderlet(d),a&&G[a](d)}):(G.renderlet(d),a&&G[a](d))},d.redraw=function(){G.preRedraw(d);var a=d._doRedraw();return o&&o.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&G.filtered(d,a)},d._invokeZoomedListener=function(){G.zoomed(d)};var K=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(K=a,d):K},d.hasFilter=function(a){return K(H,a)};var L=function(a,b){for(var c=0;c=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(L=a,d):L};var M=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(M=a,d):M};var N=function(){return[]};return d.resetFilterHandler=function(a){return arguments.length?(N=a,d):N},d.replaceFilter=function(a){H=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?L(H,a):M(H,a)}):null===a?H=N(H):d.hasFilter(a)?L(H,a):M(H,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):H.length>0?H[0]:null},d.filters=function(){return H},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(I=a,d):I},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(v=a,d):v},d.valueAccessor=function(a){return arguments.length?(w=a,d):w},d.label=function(a){return arguments.length?(x=a,z=!0,d):x},d.renderLabel=function(a){return arguments.length?(z=a,d):z},d.title=function(a){return arguments.length?(A=a,d):A},d.renderTitle=function(a){return arguments.length?(B=a,d):B},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(m||c.deregisterChart(d,F),F=a,m||c.registerChart(d,F),d):F},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(o=a,o.parent(d),d):o},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return G.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],ba,b._useOuterPadding()?aa:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,aa=.5,ba=0,ca=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(ca=a,b):ca},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),ca&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=ca?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=ca?b.width()-P:P,d=ca?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(ba=a,b):ba},b._outerRangeBandPadding=function(a){return arguments.length?(aa=a,b):aa},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(d===1/0)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b),isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"; - -}function C(b,c){O.selectAll("g.pie-slice").each(function(d){b.name===d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G,H,I=.5,J="pie-slice",K="empty-chart",L="empty",M=0,N=I,O=c.capMixin(c.colorMixin(c.baseMixin({})));return O.colorAccessor(O.cappedKeyAccessor),O.title(function(a){return O.cappedKeyAccessor(a)+": "+O.cappedValueAccessor(a)}),O.slicesCap=O.cap,O.label(O.cappedKeyAccessor),O.renderLabel(!0),O.transitionDuration(350),O._doRender=function(){return O.resetSvg(),E=O.svg().append("g").attr("transform","translate("+O.cx()+","+O.cy()+")"),e(),O},O.innerRadius=function(a){return arguments.length?(M=a,O):M},O.radius=function(a){return arguments.length?(D=a,O):D},O.cx=function(a){return arguments.length?(F=a,O):F||O.width()/2},O.cy=function(a){return arguments.length?(G=a,O):G||O.height()/2},O._doRedraw=function(){return e(),O},O.minAngleForLabel=function(a){return arguments.length?(N=a,O):N},O.emptyTitle=function(a){return 0===arguments.length?L:(L=a,O)},O.externalLabels=function(a){return 0===arguments.length?H:(H=a?a:void 0,O)},O.legendables=function(){return O.data().map(function(a,b){var c={name:a.key,data:a.value,others:a.others,chart:O};return c.color=O.getColor(a,b),c})},O.legendHighlight=function(a){C(a,!0)},O.legendReset=function(a){C(a,!1)},O.legendToggle=function(a){O.onClick({key:a.name,others:a.others})},O.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(l.y()(a.y+a.y0)-l.y()(a.y0)))}function f(a,b,d){var f=a.selectAll("rect.bar").data(d.values,c.pluck("x")),g=f.enter().append("rect").attr("class","bar").attr("fill",c.pluck("data",l.getColor)).attr("y",l.yAxisHeight()).attr("height",0);l.renderTitle()&&g.append("title").text(c.pluck("data",l.title(d.name))),l.isOrdinal()&&f.on("click",l.onClick),c.transition(f,l.transitionDuration()).attr("x",function(a){var b=l.x()(a.x);return n&&(b-=i/2),l.isOrdinal()&&void 0!==m&&(b+=m/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=l.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",i).attr("height",function(a){return e(a)}).attr("fill",c.pluck("data",l.getColor)).select("title").text(c.pluck("data",l.title(d.name))),c.transition(f.exit(),l.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===i){var a=l.xUnitCount();i=Math.floor(l.isOrdinal()&&void 0===m?l.x().rangeBand():m?(l.xAxisLength()-(a-1)*m)/a:l.xAxisLength()/(1+l.barPadding())/a),(i===1/0||isNaN(i)||j>i)&&(i=j)}}function h(b,c){return function(){var d=a.select(this),e=d.attr("fill")===b;return c?!e:e}}var i,j=1,k=2,l=c.stackMixin(c.coordinateGridMixin({})),m=k,n=!1,o=!1;return c.override(l,"rescale",function(){l._rescale(),i=void 0}),c.override(l,"render",function(){l.round()&&n&&!o&&c.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),l._render()}),l.plotData=function(){var b=l.chartBodyG().selectAll("g.stack").data(l.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},l.fadeDeselectedArea=function(){var a=l.chartBodyG().selectAll("rect.bar"),b=l.brush().extent();if(l.isOrdinal())l.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return l.hasFilter(a.x)}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!l.hasFilter(a.x)})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(l.brushIsEmpty(b))a.classed(c.constants.DESELECTED_CLASS,!1);else{var d=b[0],e=b[1];a.classed(c.constants.DESELECTED_CLASS,function(a){return a.x=e})}},l.centerBar=function(a){return arguments.length?(n=a,l):n},c.override(l,"onClick",function(a){l._onClick(a.data)}),l.barPadding=function(a){return arguments.length?(l._rangeBandPadding(a),m=void 0,l):l._rangeBandPadding()},l._useOuterPadding=function(){return void 0===m},l.outerPadding=l._outerRangeBandPadding,l.gap=function(a){return arguments.length?(m=a,l):m},l.extendBrush=function(){var a=l.brush().extent();return!l.round()||n&&!o||(a[0]=a.map(l.round())[0],a[1]=a.map(l.round())[1],l.chartBodyG().select(".brush").call(l.brush().extent(a))),a},l.alwaysUseRounding=function(a){return arguments.length?(o=a,l):o},l.legendHighlight=function(a){l.isLegendableHidden(a)||l.g().selectAll("rect.bar").classed("highlight",h(a.color)).classed("fadeout",h(a.color,!0))},l.legendReset=function(){l.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},c.override(l,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in l.xUnits()){var b=l.xUnits().resolution;a+=b}return a}),l.anchor(b,d)},c.lineChart=function(b,d){function e(a,b){return z.getColor.call(a,a.values,b)}function f(b,d){var f=a.svg.line().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).interpolate(F).tension(G);r&&f.defined(r);var g=b.append("path").attr("class","line").attr("stroke",e);s&&g.attr("stroke-dasharray",s),c.transition(d.select("path.line"),z.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(b,d){if(A){var f=a.svg.area().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).y0(function(a){return z.y()(a.y0)}).interpolate(F).tension(G);r&&f.defined(r),b.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),c.transition(d.select("path.area"),z.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(b,d){if(!z.brushOn()&&z.xyTipsOn()){var e=u+"-list",f=b.select("g."+e);f.empty()&&(f=b.append("g").attr("class",e)),d.each(function(b,d){var e=b.values;r&&(e=e.filter(r));var g=f.select("g."+u+"._"+d);g.empty()&&(g=f.append("g").attr("class",u+" _"+d)),j(g);var h=g.selectAll("circle."+v).data(e,c.pluck("x"));h.enter().append("circle").attr("class",v).attr("r",m()).style("fill-opacity",D).style("stroke-opacity",E).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}),h.attr("cx",function(a){return c.utils.safeNumber(z.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(z.y()(a.y+a.y0))}).attr("fill",z.getColor).call(p,b),h.exit().remove()})}}function j(a){var b=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+x).empty()?a.append("path").attr("class",x):a.select("path."+x);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",B),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=z._yAxisX()-z.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+z.yAxisHeight()+"L"+c+" "+d;b.select("path."+w).style("display","").attr("d",f),b.select("path."+x).style("display","").attr("d",g)}function m(){return C||B}function n(a){a.style("fill-opacity",D).style("stroke-opacity",E).attr("r",m())}function o(a){a.select("path."+w).style("display","none"),a.select("path."+x).style("display","none")}function p(a,b){z.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(c.pluck("data",z.title(b.name))))}function q(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")===b&&e.attr("stroke-dasharray")===(c instanceof Array?c.join(","):null)||e.attr("fill")===b;return d?!f:f}}var r,s,t=5,u="dc-tooltip",v="dot",w="yRef",x="xRef",y=1e-6,z=c.stackMixin(c.coordinateGridMixin({})),A=!1,B=t,C=null,D=y,E=y,F="linear",G=.7,H=!0;return z.transitionDuration(500),z._rangeBandPadding(1),z.plotData=function(){var a=z.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(z.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},z.interpolate=function(a){return arguments.length?(F=a,z):F},z.tension=function(a){return arguments.length?(G=a,z):G},z.defined=function(a){return arguments.length?(r=a,z):r},z.dashStyle=function(a){return arguments.length?(s=a,z):s},z.renderArea=function(a){return arguments.length?(A=a,z):A},z.xyTipsOn=function(a){return arguments.length?(H=a,z):H},z.dotRadius=function(a){return arguments.length?(B=a,z):B},z.renderDataPoints=function(a){return arguments.length?(a?(D=a.fillOpacity||.8,E=a.strokeOpacity||.8,C=a.radius||2):(D=y,E=y,C=null),z):{fillOpacity:D,strokeOpacity:E,radius:C}},z.legendHighlight=function(a){z.isLegendableHidden(a)||z.g().selectAll("path.line, path.area").classed("highlight",q(a.color,a.dashstyle)).classed("fadeout",q(a.color,a.dashstyle,!0))},z.legendReset=function(){z.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},c.override(z,"legendables",function(){var a=z._legendables();return s?a.map(function(a){return a.dashstyle=s,a}):a}),z.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseMixin({}),g={some:"",all:""};return f.html=function(a){return arguments.length?(a.all&&(g.all=a.all),a.some&&(g.some=a.some),f):g},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f._doRender=function(){var a=f.dimension().size(),b=f.group().value(),c=e(a),d=e(b);return a===b&&""!==g.all?f.root().html(g.all.replace("%total-count",c).replace("%filter-count",d)):""!==g.some?f.root().html(g.some.replace("%total-count",c).replace("%filter-count",d)):(f.selectAll(".total-count").text(c),f.selectAll(".filter-count").text(d)),f},f._doRedraw=function(){return f._doRender()},f.anchor(b,d)},c.dataTable=function(b,d){function e(){var a=!0;if(o.forEach(function(b){a&="function"==typeof b}),!a){m.selectAll("th").remove();var b=m.root().selectAll("th").data(o),c=b.enter().append("th");c.attr("class",l).html(function(a){return m._doColumnHeaderFormat(a)})}var d=m.root().selectAll("tbody").data(f(),function(a){return m.keyAccessor()(a)}),e=d.enter().append("tbody");return e.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",o.length).html(function(a){return m.keyAccessor()(a)}),d.exit().remove(),e}function f(){var b;return b=q===a.ascending?m.dimension().bottom(n):m.dimension().top(n),a.nest().key(m.group()).sortKeys(q).entries(b.sort(function(a,b){return q(p(a),p(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return o.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(function(b){return m._doColumnValueFormat(a,b)})}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l="dc-table-head",m=c.baseMixin({}),n=25,o=[],p=function(a){return a},q=a.ascending;return m._doRender=function(){return m.selectAll("tbody").remove(),g(e()),m},m._doColumnValueFormat=function(a,b){return"function"==typeof a?a(b):"string"==typeof a?b[a]:a.format(b)},m._doColumnHeaderFormat=function(a){return"function"==typeof a?m._doColumnHeaderFnToString(a):"string"==typeof a?m._doColumnHeaderCapitalize(a):String(a.label)},m._doColumnHeaderCapitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},m._doColumnHeaderFnToString=function(a){var b=String(a),c=b.indexOf("return ");if(c>=0){var d=b.lastIndexOf(";");if(d>=0){b=b.substring(c+7,d);var e=b.indexOf("numberFormat");e>=0&&(b=b.replace("numberFormat",""))}}return b},m._doRedraw=function(){return m._doRender()},m.size=function(a){return arguments.length?(n=a,m):n},m.columns=function(a){return arguments.length?(o=a,m):o},m.sortBy=function(a){return arguments.length?(p=a,m):p},m.order=function(a){return arguments.length?(q=a,m):q},m.anchor(b,d)},c.dataGrid=function(b,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=c.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

    "+l.keyAccessor()(a)+"

    "};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,d)},c.bubbleChart=function(a,b){function d(a){var b=a.enter().append("g");b.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),c.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(b),i._doRenderTitles(b)}function e(a){c.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=c.bubbleMixin(c.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,b)},c.compositeChart=function(b,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return c.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return c.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=c.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),c.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),t=a.scale.linear().domain(b).range([0,G.effectiveWidth()])}H.scale(t)}function f(){var a=s.select("g.axis");e(),a.empty()&&(a=s.append("g").attr("class","axis").attr("transform","translate(0, "+G.effectiveHeight()+")")),c.transition(a,G.transitionDuration()).call(H)}function g(){s.selectAll("g.tick").select("line.grid-line").remove(),s.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-G.effectiveHeight()})}function h(){v=G.data(),f(),g();var a=s.selectAll("g."+D).data(v);i(a),j(a),l(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return D+" _"+b});b.append("rect").attr("width",0),n(b),o(a)}function j(a){a.exit().remove()}function k(){var a=t(0);return a===-(1/0)||a!==a?t(1):a}function l(a){var b,d=v.length;b=C?C:(G.effectiveHeight()-(d+1)*B)/d,y||(x=b/2);var e=a.attr("transform",function(a,c){return"translate(0,"+((c+1)*B+c*b)+")"}).select("rect").attr("height",b).attr("fill",G.getColor).on("click",p).classed("deselected",function(a){return G.hasFilter()?!r(a):!1}).classed("selected",function(a){return G.hasFilter()?r(a):!1});c.transition(e,G.transitionDuration()).attr("width",function(a){return Math.abs(k()-t(G.valueAccessor()(a)))}).attr("transform",q),m(a),o(a)}function m(a){G.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(G.title()))}function n(a){G.renderLabel()&&a.append("text").on("click",p),G.renderTitleLabel()&&a.append("text").attr("class",E).on("click",p)}function o(a){if(G.renderLabel()){var b=a.select("text").attr("x",w).attr("y",x).attr("dy",z).on("click",p).attr("class",function(a,b){return D+" _"+b}).text(function(a){return G.label()(a)});c.transition(b,G.transitionDuration()).attr("transform",q)}if(G.renderTitleLabel()){var d=a.select("."+E).attr("x",G.effectiveWidth()-A).attr("y",x).attr("text-anchor","end").on("click",p).attr("class",function(a,b){return E+" _"+b}).text(function(a){return G.title()(a)});c.transition(d,G.transitionDuration()).attr("transform",q)}}function p(a){G.onClick(a)}function q(a){var b=t(G.cappedValueAccessor(a)),c=k(),d=b>c?c:b;return"translate("+d+",0)"}function r(a){return G.hasFilter(G.cappedKeyAccessor(a))}var s,t,u,v,w=10,x=15,y=!1,z="0.35em",A=2,B=5,C=!1,D="row",E="titlerow",F=!1,G=c.capMixin(c.marginMixin(c.colorMixin(c.baseMixin({})))),H=a.svg.axis().orient("bottom");return G.rowsCap=G.cap,G._doRender=function(){return G.resetSvg(),s=G.svg().append("g").attr("transform","translate("+G.margins().left+","+G.margins().top+")"),h(),G},G.title(function(a){return G.cappedKeyAccessor(a)+": "+G.cappedValueAccessor(a)}),G.label(G.cappedKeyAccessor),G.x=function(a){return arguments.length?(t=a,G):t},G.renderTitleLabel=function(a){return arguments.length?(F=a,G):F},G._doRedraw=function(){return h(),G},G.xAxis=function(){return H},G.fixedBarHeight=function(a){return arguments.length?(C=a,G):C},G.gap=function(a){return arguments.length?(B=a,G):B},G.elasticX=function(a){return arguments.length?(u=a,G):u},G.labelOffsetX=function(a){return arguments.length?(w=a,G):w},G.labelOffsetY=function(a){return arguments.length?(x=a,y=!0,G):x},G.titleLabelOffsetX=function(a){return arguments.length?(A=a,G):A},G.anchor(b,d)},c.legend=function(){function a(){return j+i}var b,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70,n=!1;return f.parent=function(a){return arguments.length?(b=a,f):b},f.render=function(){b.svg().select("g.dc-legend").remove(),d=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=b.legendables(),o=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)}).on("click",function(a){a.chart.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(c.pluck("dashstyle"))?o.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",c.pluck("dashstyle")).attr("stroke",c.pluck("color")):o.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),o.append("text").text(c.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var p=0,q=0;o.attr("transform",function(b,c){if(k){var d="translate("+p+","+q*a()+")",e=n===!0?this.getBBox().width+j:m;return p+e>=l?(++q,p=0):p+=e,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f.autoItemWidth=function(a){return arguments.length?(n=a,f):n},f},c.scatterPlot=function(b,d){function e(b,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return b(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),c.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var b=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});c.transition(b,g.transitionDuration()).attr("d",h)}var g=c.coordinateGridMixin({}),h=a.svg.symbol(),i=function(a){return a.value},j=g.keyAccessor();g.keyAccessor(function(a){return j(a)[0]}),g.valueAccessor(function(a){return j(a)[1]}),g.colorAccessor(function(){return g._groupName});var k=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},l=3,m=5,n=0;return h.size(function(a){return i(a)?this.filtered?Math.pow(m,2):Math.pow(l,2):n}),c.override(g,"_filter",function(a){return arguments.length?g.__filter(c.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",k),c.transition(a,g.transitionDuration()).attr("opacity",function(a){return i(a)?1:0}).attr("fill",g.getColor).attr("transform",k).attr("d",h),c.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.existenceAccessor=function(a){return arguments.length?(i=a,this):i},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(l=a,g):l},g.highlightedSize=function(a){return arguments.length?(m=a,g):m},g.hiddenSize=function(a){return arguments.length?(n=a,g):n},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")===b.color},m),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")===b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))c.events.trigger(function(){g.filter(null),g.redrawGroup()}),f(!1);else{var b=c.filters.RangedTwoDimensionalFilter(a);c.events.trigger(function(){g.filter(null),g.filter(b),g.redrawGroup()},c.constants.EVENT_DELAY),f(b)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(b,d)},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseMixin({}),h={one:"",some:"",none:""};return g._mandatoryAttributes(["group"]),g.html=function(a){return arguments.length?(a.none?h.none=a.none:a.one?h.none=a.one:a.some&&(h.none=a.some),a.one?h.one=a.one:a.some&&(h.one=a.some),a.some?h.some=a.some:a.one&&(h.some=a.one),g):h},g.value=function(){return g.data()},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250), -g._doRender=function(){var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);return this.lastValue=b,function(a){var d=null,e=g.formatNumber()(c(a));0===b&&""!==h.none?d=h.none:1===b&&""!==h.one?d=h.one:""!==h.some&&(d=h.some),this.innerHTML=d?d.replace("%number",e):e}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},c.heatMap=function(b,d){function e(a,b){var d=p.selectAll(".box-group").filter(function(c){return c.key[a]===b}),e=d.filter(function(a){return!p.hasFilter(a.key)});c.events.trigger(function(){e.empty()?d.each(function(a){p.filter(a.key)}):e.each(function(a){p.filter(a.key)}),p.redrawGroup()})}var f,g,h,i=6.75,j=a.ascending,k=a.ascending,l=a.scale.ordinal(),m=a.scale.ordinal(),n=i,o=i,p=c.colorMixin(c.marginMixin(c.baseMixin({})));p._mandatoryAttributes(["group"]),p.title(p.colorAccessor());var q=function(a){return a},r=function(a){return a};p.colsLabel=function(a){return arguments.length?(q=a,p):q},p.rowsLabel=function(a){return arguments.length?(r=a,p):r};var s=function(a){e(0,a)},t=function(a){e(1,a)},u=function(a){var b=a.key;c.events.trigger(function(){p.filter(b),p.redrawGroup()})};return c.override(p,"filter",function(a){return arguments.length?p._filter(c.filters.TwoDimensionalFilter(a)):p._filter()}),p.rows=function(a){return arguments.length?(h=a,p):h},p.rowOrdering=function(a){return arguments.length?(k=a,p):k},p.cols=function(a){return arguments.length?(g=a,p):g},p.colOrdering=function(a){return arguments.length?(j=a,p):j},p._doRender=function(){return p.resetSvg(),f=p.svg().append("g").attr("class","heatmap").attr("transform","translate("+p.margins().left+","+p.margins().top+")"),p._doRedraw()},p._doRedraw=function(){var a=p.data(),b=p.rows()||a.map(p.valueAccessor()),d=p.cols()||a.map(p.keyAccessor());k&&(b=b.sort(k)),j&&(d=d.sort(j)),b=m.domain(b),d=l.domain(d);var e=b.domain().length,g=d.domain().length,h=Math.floor(p.effectiveWidth()/g),i=Math.floor(p.effectiveHeight()/e);d.rangeRoundBands([0,p.effectiveWidth()]),b.rangeRoundBands([p.effectiveHeight(),0]);var q=f.selectAll("g.box-group").data(p.data(),function(a,b){return p.keyAccessor()(a,b)+"\x00"+p.valueAccessor()(a,b)}),r=q.enter().append("g").attr("class","box-group");r.append("rect").attr("class","heat-box").attr("fill","white").on("click",p.boxOnClick()),p.renderTitle()&&(r.append("title"),q.selectAll("title").text(p.title())),c.transition(q.selectAll("rect"),p.transitionDuration()).attr("x",function(a,b){return d(p.keyAccessor()(a,b))}).attr("y",function(a,c){return b(p.valueAccessor()(a,c))}).attr("rx",n).attr("ry",o).attr("fill",p.getColor).attr("width",h).attr("height",i),q.exit().remove();var s=f.selectAll("g.cols");s.empty()&&(s=f.append("g").attr("class","cols axis"));var t=s.selectAll("text").data(d.domain());t.enter().append("text").attr("x",function(a){return d(a)+h/2}).style("text-anchor","middle").attr("y",p.effectiveHeight()).attr("dy",12).on("click",p.xAxisOnClick()).text(p.colsLabel()),c.transition(t,p.transitionDuration()).text(p.colsLabel()).attr("x",function(a){return d(a)+h/2}),t.exit().remove();var u=f.selectAll("g.rows");u.empty()&&(u=f.append("g").attr("class","rows axis"));var v=u.selectAll("text").data(b.domain());return v.enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",p.yAxisOnClick()).text(p.rowsLabel()),c.transition(v,p.transitionDuration()).text(p.rowsLabel()).attr("y",function(a){return b(a)+i/2}),v.exit().remove(),p.selectAll("g.box-group").each(p.hasFilter()?function(a){p.isSelectedNode(a)?p.highlightSelected(this):p.fadeDeselected(this)}:function(){p.resetHighlight(this)}),p},p.boxOnClick=function(a){return arguments.length?(u=a,p):u},p.xAxisOnClick=function(a){return arguments.length?(s=a,p):s},p.yAxisOnClick=function(a){return arguments.length?(t=a,p):t},p.xBorderRadius=function(a){return arguments.length?(n=a,p):n},p.yBorderRadius=function(a){return arguments.length?(o=a,p):o},p.isSelectedNode=function(a){return p.hasFilter(a.key)},p.anchor(b,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null===b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),c.boxPlot=function(b,d){function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}function f(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function g(b){c.transition(b,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function h(a){a.exit().remove().call(m)}var i=c.coordinateGridMixin({}),j=1.5,k=e,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(c.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+", 0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});f(b),g(b),h(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var b=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return c.utils.subtract(b,i.yAxisPadding())},i.yAxisMax=function(){var b=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return c.utils.add(b,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(b,d)},c.abstractBubbleChart=c.bubbleMixin,c.baseChart=c.baseMixin,c.capped=c.capMixin,c.colorChart=c.colorMixin,c.coordinateGridChart=c.coordinateGridMixin,c.marginable=c.marginMixin,c.stackableChart=c.stackMixin,c.d3=a,c.crossfilter=b,c}if("function"==typeof define&&define.amd)define(["d3","crossfilter"],a);else if("object"==typeof module&&module.exports){var b=require("d3"),c=require("crossfilter");"function"!=typeof c&&(c=c.crossfilter),module.exports=a(b,c)}else this.dc=a(d3,crossfilter)}(); +!function(){function a(a){"use strict";var b={version:"2.0.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};b.chartRegistry=function(){function a(a){return a||(a=b.constants.DEFAULT_CHART_GROUP),c[a]||(c[a]=[]),a}var c={};return{has:function(a){for(var b in c)if(c[b].indexOf(a)>=0)return!0;return!1},register:function(b,d){d=a(d),c[d].push(b)},deregister:function(b,d){d=a(d);for(var e=0;e=c||void 0===c||b.disableTransitions)return a;var e=a.transition().duration(c);return"function"==typeof d&&d(e),e},b.units={},b.units.integers=function(a,b){return Math.abs(b-a)},b.units.ordinal=function(a,b,c){return c},b.units.fp={},b.units.fp.precision=function(a){var c=function(a,d){var e=Math.abs((d-a)/c.resolution);return b.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return c.resolution=a,c},b.round={},b.round.floor=function(a){return Math.floor(a)},b.round.ceil=function(a){return Math.ceil(a)},b.round.round=function(a){return Math.round(a)},b.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},b.renderlet=function(a){return arguments.length?(b._renderlet=a,b):b._renderlet},b.instanceOfChart=function(a){return a instanceof Object&&a.__dc_flag__&&!0},b.errors={},b.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},b.errors.InvalidStateException=function(){b.errors.Exception.apply(this,arguments)},b.dateFormat=a.time.format("%m/%d/%Y"),b.printers={},b.printers.filters=function(a){for(var c="",d=0;d0&&(c+=", "),c+=b.printers.filter(a[d]);return c},b.printers.filter=function(a){var c="";return a&&(a instanceof Array?a.length>=2?c="["+b.utils.printSingleValue(a[0])+" -> "+b.utils.printSingleValue(a[1])+"]":a.length>=1&&(c=b.utils.printSingleValue(a[0])):c=b.utils.printSingleValue(a)),c},b.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},b.utils={},b.utils.printSingleValue=function(a){var c=""+a;return a instanceof Date?c=b.dateFormat(a):"string"==typeof a?c=a:b.utils.isFloat(a)?c=b.utils.printSingleValue.fformat(a):b.utils.isInteger(a)&&(c=Math.round(a)),c},b.utils.printSingleValue.fformat=a.format(".2f"),b.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},b.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},b.utils.isNumber=function(a){return a===+a},b.utils.isFloat=function(a){return a===+a&&a!==(0|a)},b.utils.isInteger=function(a){return a===+a&&a===(0|a)},b.utils.isNegligible=function(a){return!b.utils.isNumber(a)||a-b.constants.NEGLIGIBLE_NUMBER},b.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var c=0;return b.utils.uniqueId=function(){return++c},b.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},b.utils.appendOrSelect=function(a,b){var c=a.select(b);return c.empty()&&(c=a.append(b)),c},b.utils.safeNumber=function(a){return b.utils.isNumber(+a)?+a:0},b.logger={},b.logger.enableDebugLog=!1,b.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),b.logger},b.logger.debug=function(a){return b.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),b.logger},b.events={current:null},b.events.trigger=function(a,c){return c?(b.events.current=a,void setTimeout(function(){a==b.events.current&&a()},c)):void a()},b.filters={},b.filters.RangedFilter=function(a,b){var c=Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&dr?b:r},t=s,u=200,v=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>u?b:u},w=v,x=b.pluck("key"),y=b.pluck("value"),z=b.pluck("key"),A=b.pluck("key"),B=!1,C=function(a){return c.keyAccessor()(a)+": "+c.valueAccessor()(a)},D=!1,E=750,F=b.printers.filters,G=[],H=["dimension","group"],I=b.constants.DEFAULT_CHART_GROUP,J=function(){},K={preRender:J,postRender:J,preRedraw:J,postRedraw:J,filtered:J,zoomed:J},L=[],M=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c0&&o?o.transition().duration(c.transitionDuration()).each("end",function(){j(),a&&K[a](c)}):(j(),a&&K[a](c))},c.redraw=function(){K.preRedraw(c);var a=c._doRedraw();return q&&q.render(),c._activateRenderlets("postRedraw"),a},c.redrawGroup=function(){b.redrawAll(c.chartGroup())},c._invokeFilteredListener=function(a){void 0!==a&&K.filtered(c,a)},c._invokeZoomedListener=function(){K.zoomed(c)},c.hasFilter=function(a){return arguments.length?L.indexOf(a)>=0:L.length>0},c.replaceFilter=function(a){L=[],c.filter(a)},c.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?(a[0].forEach(function(a){c.hasFilter(a)?L.splice(L.indexOf(a),1):L.push(a)}),i(),c._invokeFilteredListener(a)):null===a?h():c.hasFilter(a)?f(a):g(a),null!==n&&c.hasFilter()?c.turnOnControls():c.turnOffControls(),c):L.length>0?L[0]:null},c.filters=function(){return L},c.highlightSelected=function(c){a.select(c).classed(b.constants.SELECTED_CLASS,!0),a.select(c).classed(b.constants.DESELECTED_CLASS,!1)},c.fadeDeselected=function(c){a.select(c).classed(b.constants.SELECTED_CLASS,!1),a.select(c).classed(b.constants.DESELECTED_CLASS,!0)},c.resetHighlight=function(c){a.select(c).classed(b.constants.SELECTED_CLASS,!1),a.select(c).classed(b.constants.DESELECTED_CLASS,!1)},c.onClick=function(a){var d=c.keyAccessor()(a);b.events.trigger(function(){c.filter(d),c.redrawGroup()})},c.filterHandler=function(a){return arguments.length?(M=a,c):M},c._doRender=function(){return c},c._doRedraw=function(){return c},c.legendables=function(){return[]},c.legendHighlight=function(){},c.legendReset=function(){},c.legendToggle=function(){},c.isLegendableHidden=function(){return!1},c.keyAccessor=function(a){return arguments.length?(x=a,c):x},c.valueAccessor=function(a){return arguments.length?(y=a,c):y},c.label=function(a){return arguments.length?(z=a,B=!0,c):z},c.renderLabel=function(a){return arguments.length?(B=a,c):B},c.title=function(a){return arguments.length?(C=a,D=!0,c):C},c.renderTitle=function(a){return arguments.length?(D=a,c):D},c.renderlet=function(a){return G.push(a),c},c.chartGroup=function(a){return arguments.length?(I=a,c):I},c.expireCache=function(){return c},c.legend=function(a){return arguments.length?(q=a,q.parent(c),c):q},c.chartID=function(){return c.__dc_flag__},c.options=function(a){for(var d in a)"function"==typeof c[d]?c[d].call(c,a[d]):b.logger.debug("Not a valid option setter name: "+d);return c},c.on=function(a,b){return K[a]=b,c},c},b.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},b.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];c.domain(d)},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},b.coordinateGridMixin=function(c){function d(a){c.elasticX()&&!c.isOrdinal()?x.domain([c.xAxisMin(),c.xAxisMax()]):c.isOrdinal()&&0===x.domain().length&&x.domain(c._ordinalXDomain()),c.isOrdinal()?x.rangeBands([0,c.xAxisLength()],ab,_):x.range([0,c.xAxisLength()]),G=G.scale(c.x()),e(a)}function e(a){var d=a.selectAll("g."+q);if(S){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+c.margins().left+","+c.margins().top+")"));var e=G.tickValues()?G.tickValues():x.ticks(G.ticks()[0]),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",c._xAxisY()-c.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);b.transition(g,c.transitionDuration()).attr("opacity",1),b.transition(f,c.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",c._xAxisY()-c.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function f(){return c._xAxisY()-c.margins().top}function g(){return c.anchorName()+"-clip"}function h(){var a=b.utils.appendOrSelect(u,"defs"),d=b.utils.appendOrSelect(a,"clipPath").attr("id",g()),e=2*$;b.utils.appendOrSelect(d,"rect").attr("width",c.xAxisLength()+e).attr("height",c.yAxisHeight()+e)}function i(a){c.isOrdinal()&&(Q=!1),d(c.g()),c._prepareYAxis(c.g()),c.plotData(),(c.elasticX()||T||a)&&c.renderXAxis(c.g()),(c.elasticY()||a)&&c.renderYAxis(c.g()),a?c.renderBrush(c.g()):c.redrawBrush(c.g())}function j(){Z?c._enableMouseZoom():Y&&c._disableMouseZoom()}function k(){T=!0,V&&(c.x().domain(l(c.x().domain(),y)),E&&c.x().domain(l(c.x().domain(),E.x().domain())));var a=c.x().domain(),d=b.filters.RangedFilter(a[0],a[1]);c.replaceFilter(d),c.rescale(),c.redraw(),E&&!m(c.filter(),E.filter())&&b.events.trigger(function(){E.replaceFilter(d),E.redraw()}),c._invokeZoomedListener(),b.events.trigger(function(){c.redrawGroup()},b.constants.EVENT_DELAY),T=!m(a,y)}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;c=b.colorMixin(b.marginMixin(b.baseMixin(c))),c.colors(a.scale.category10()),c._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G=a.svg.axis().orient("bottom"),H=b.units.integers,I=0,J=!1,K=0,L=a.svg.axis().orient("left"),M=0,N=!1,O=0,P=a.svg.brush(),Q=!0,R=!1,S=!1,T=!1,U=[1,1/0],V=!0,W=a.behavior.zoom().on("zoom",k),X=a.behavior.zoom().on("zoom",null),Y=!1,Z=!1,$=0,_=.5,ab=0,bb=!1;return c.rescale=function(){D=void 0},c.rangeChart=function(a){return arguments.length?(E=a,E.focusChart(c),c):E},c.zoomScale=function(a){return arguments.length?(U=a,c):U},c.zoomOutRestrict=function(a){return arguments.length?(U[0]=a?1:0,V=a,c):V},c._generateG=function(a){return u=void 0===a?c.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+c.margins().left+", "+c.margins().top+")").attr("clip-path","url(#"+g()+")"),v},c.g=function(a){return arguments.length?(v=a,c):v},c.mouseZoomable=function(a){return arguments.length?(Z=a,c):Z},c.chartBodyG=function(a){return arguments.length?(w=a,c):w},c.x=function(a){return arguments.length?(x=a,y=x.domain(),c):x},c.xOriginalDomain=function(){return y},c.xUnits=function(a){return arguments.length?(H=a,c):H},c.xAxis=function(a){return arguments.length?(G=a,c):G},c.elasticX=function(a){return arguments.length?(J=a,c):J},c.xAxisPadding=function(a){return arguments.length?(I=a,c):I},c.xUnitCount=function(){if(void 0===D){var a=c.xUnits()(c.x().domain()[0],c.x().domain()[1],c.x().domain());D=a instanceof Array?a.length:a}return D},c.useRightYAxis=function(a){return arguments.length?(bb=a,c):bb},c.isOrdinal=function(){return c.xUnits()===b.units.ordinal},c._ordinalXDomain=function(){var a=c._computeOrderedGroups(c.data());return a.map(c.keyAccessor())},c.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+c.margins().left+","+c._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&c.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(c.margins().left+c.xAxisLength()/2)+","+(c.height()-K)+")").attr("class",s).attr("text-anchor","middle").text(c.xAxisLabel())),c.xAxisLabel()&&e.text()!=c.xAxisLabel()&&e.text(c.xAxisLabel()),b.transition(d,c.transitionDuration()).call(G)},c._xAxisY=function(){return c.height()-c.margins().bottom},c.xAxisLength=function(){return c.effectiveWidth()},c.xAxisLabel=function(a,b){return arguments.length?(z=a,c.margins().bottom-=K,K=void 0===b?t:b,c.margins().bottom+=K,c):z},c._prepareYAxis=function(b){(void 0===A||c.elasticY())&&(A=a.scale.linear(),A.domain([c.yAxisMin(),c.yAxisMax()]).rangeRound([c.yAxisHeight(),0])),A.range([c.yAxisHeight(),0]),L=L.scale(A),bb&&L.orient("right"),c._renderHorizontalGridLinesForAxis(b,A,L)},c.renderYAxisLabel=function(a,b,d,e){e=e||O;var f=c.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&b){var g=c.margins().top+c.yAxisHeight()/2;f=c.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(b)}b&&f.text()!=b&&f.text(b)},c.renderYAxisAt=function(a,d,e){var f=c.g().selectAll("g."+a);f.empty()&&(f=c.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+c.margins().top+")")),b.transition(f,c.transitionDuration()).call(d)},c.renderYAxis=function(){var a=bb?c.width()-c.margins().right:c._yAxisX();c.renderYAxisAt("y",L,a);var b=bb?c.width()-O:O,d=bb?90:-90;c.renderYAxisLabel("y",c.yAxisLabel(),d,b)},c._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(R){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+c.margins().left+","+c.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",c.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);b.transition(i,c.transitionDuration()).attr("opacity",1),b.transition(h,c.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",c.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},c._yAxisX=function(){return c.useRightYAxis()?c.width()-c.margins().right:c.margins().left},c.yAxisLabel=function(a,b){return arguments.length?(B=a,c.margins().left-=O,O=void 0===b?t:b,c.margins().left+=O,c):B},c.y=function(a){return arguments.length?(A=a,c):A},c.yAxis=function(a){return arguments.length?(L=a,c):L},c.elasticY=function(a){return arguments.length?(N=a,c):N},c.renderHorizontalGridLines=function(a){return arguments.length?(R=a,c):R},c.renderVerticalGridLines=function(a){return arguments.length?(S=a,c):S},c.xAxisMin=function(){var d=a.min(c.data(),function(a){return c.keyAccessor()(a)});return b.utils.subtract(d,I)},c.xAxisMax=function(){var d=a.max(c.data(),function(a){return c.keyAccessor()(a)});return b.utils.add(d,I)},c.yAxisMin=function(){var d=a.min(c.data(),function(a){return c.valueAccessor()(a)});return b.utils.subtract(d,M)},c.yAxisMax=function(){var d=a.max(c.data(),function(a){return c.valueAccessor()(a)});return b.utils.add(d,M)},c.yAxisPadding=function(a){return arguments.length?(M=a,c):M},c.yAxisHeight=function(){return c.effectiveHeight()},c.round=function(a){return arguments.length?(C=a,c):C},c._rangeBandPadding=function(a){return arguments.length?(ab=a,c):ab},c._outerRangeBandPadding=function(a){return arguments.length?(_=a,c):_},b.override(c,"filter",function(a){return arguments.length?(c._filter(a),a?c.brush().extent(a):c.brush().clear(),c):c._filter()}),c.brush=function(a){return arguments.length?(P=a,c):P},c.renderBrush=function(a){if(Q){P.on("brush",c._brushing),P.on("brushstart",c._disableMouseZoom),P.on("brushend",j);var b=a.append("g").attr("class","brush").attr("transform","translate("+c.margins().left+","+c.margins().top+")").call(P.x(c.x()));c.setBrushY(b),c.setHandlePaths(b),c.hasFilter()&&c.redrawBrush(a)}},c.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",c.resizeHandlePath)},c.setBrushY=function(a){a.selectAll("rect").attr("height",f())},c.extendBrush=function(){var a=P.extent();return c.round()&&(a[0]=a.map(c.round())[0],a[1]=a.map(c.round())[1],v.select(".brush").call(P.extent(a))),a},c.brushIsEmpty=function(a){return P.empty()||!a||a[1]<=a[0]},c._brushing=function(){var a=c.extendBrush();if(c.redrawBrush(v),c.brushIsEmpty(a))b.events.trigger(function(){c.filter(null),c.redrawGroup()},b.constants.EVENT_DELAY);else{var d=b.filters.RangedFilter(a[0],a[1]);b.events.trigger(function(){c.replaceFilter(d),c.redrawGroup()},b.constants.EVENT_DELAY)}},c.redrawBrush=function(a){if(Q){c.filter()&&c.brush().empty()&&c.brush().extent(c.filter());var b=a.select("g.brush");b.call(c.brush().x(c.x())),c.setBrushY(b)}c.fadeDeselectedArea()},c.fadeDeselectedArea=function(){},c.resizeHandlePath=function(a){var b=+("e"==a),c=b?1:-1,d=f()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},c.clipPadding=function(a){return arguments.length?($=a,c):$},c._preprocessData=function(){},c._doRender=function(){return c.resetSvg(),c._preprocessData(),c._generateG(),h(),i(!0),j(),c},c._doRedraw=function(){return c._preprocessData(),i(!1),c},c._enableMouseZoom=function(){Y=!0,W.x(c.x()).scaleExtent(U).size([c.width(),c.height()]),c.root().call(W)},c._disableMouseZoom=function(){c.root().call(X)},c.focus=function(a){c.x().domain(n(a)?a:y),W.x(c.x()),k()},c.refocused=function(){return T},c.focusChart=function(a){return arguments.length?(F=a,c.on("filtered",function(a){a.filter()?m(a.filter(),F.filter())||b.events.trigger(function(){F.focus(a.filter())}):b.events.trigger(function(){F.x().domain(F.xOriginalDomain())})}),c):F},c.brushOn=function(a){return arguments.length?(Q=a,c):Q},c},b.stackMixin=function(c){function d(a,b){var d=a.accessor||c.valueAccessor();return a.name=String(a.name||b),a.values=a.group.all().map(function(b,e){return{x:c.keyAccessor()(b,e),y:a.hidden?null:d(b,e),data:b,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!c.x())return a.functor(!0);var b=c.x().domain();return c.isOrdinal()?function(){return!0}:function(a){return a.x>=b[0]&&a.x<=b[b.length-1]}}function f(a){var c=j.map(b.pluck("name")).indexOf(a);return j[c]}function g(){return c.data().reduce(function(a,b){return a.concat(b.values)},[])}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return c.stack=function(a,b,d){if(!arguments.length)return j;arguments.length<=2&&(d=b);var e={group:a};return"string"==typeof b&&(e.name=b),"function"==typeof d&&(e.accessor=d),j.push(e),c},b.override(c,"group",function(a,b,d){return arguments.length?(j=[],k={},c.stack(a,b),d&&c.valueAccessor(d),c._group(a,b)):c._group()}),c.hidableStacks=function(a){return arguments.length?(l=a,c):l},c.hideStack=function(a){var b=f(a);return b&&(b.hidden=!0),c},c.showStack=function(a){var b=f(a);return b&&(b.hidden=!1),c},c.getValueAccessorByIndex=function(a){return j[a].accessor||c.valueAccessor()},c.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?b.concat([{others:k,key:e,value:g-d}]):b};return c.cappedKeyAccessor=function(a,b){return a.others?a.key:c.keyAccessor()(a,b)},c.cappedValueAccessor=function(a,b){return a.others?a.value:c.valueAccessor()(a,b)},c.data(function(a){if(1/0==d)return c._computeOrderedGroups(a.all());var b=a.top(d);return b=c._computeOrderedGroups(b),f?f(b):b}),c.cap=function(a){return arguments.length?(d=a,c):d},c.othersLabel=function(a){return arguments.length?(e=a,c):e},c.othersGrouper=function(a){return arguments.length?(f=a,c):f},b.override(c,"onClick",function(a){a.others&&c.filter([a.others]),c._onClick(a)}),c},b.bubbleMixin=function(c){var d=.3,e=10;c.BUBBLE_NODE_CLASS="node",c.BUBBLE_CLASS="bubble",c.MIN_RADIUS=10,c=b.colorMixin(c),c.renderLabel(!0),c.renderTitle(!1),c.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};c.r=function(a){return arguments.length?(f=a,c):f},c.radiusValueAccessor=function(a){return arguments.length?(g=a,c):g},c.rMin=function(){var b=a.min(c.data(),function(a){return c.radiusValueAccessor()(a)});return b},c.rMax=function(){var b=a.max(c.data(),function(a){return c.radiusValueAccessor()(a)});return b},c.bubbleR=function(a){var b=c.radiusValueAccessor()(a),d=c.r()(b);return(isNaN(d)||0>=b)&&(d=0),d};var h=function(a){return c.label()(a)},i=function(a){return c.bubbleR(a)>e?1:0};c._doRenderLabel=function(a){if(c.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",c.onClick)),d.attr("opacity",0).text(h),b.transition(d,c.transitionDuration()).attr("opacity",i)}},c.doUpdateLabels=function(a){if(c.renderLabel()){var d=a.selectAll("text").text(h);b.transition(d,c.transitionDuration()).attr("opacity",i)}};var j=function(a){return c.title()(a)};return c._doRenderTitles=function(a){if(c.renderTitle()){var b=a.select("title");b.empty()&&a.append("title").text(j)}},c.doUpdateTitles=function(a){c.renderTitle()&&a.selectAll("title").text(j)},c.minRadiusWithLabel=function(a){return arguments.length?(e=a,c):e},c.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,c):d},c.fadeDeselectedArea=function(){c.selectAll("g."+c.BUBBLE_NODE_CLASS).each(c.hasFilter()?function(a){c.isSelectedNode(a)?c.highlightSelected(this):c.fadeDeselected(this)}:function(){c.resetHighlight(this)})},c.isSelectedNode=function(a){return c.hasFilter(a.key)},c.onClick=function(a){var d=a.key;b.events.trigger(function(){c.filter(d),b.redrawAll(c.chartGroup())})},c},b.pieChart=function(c,d){function e(){D=D?D:a.min([K.width(),K.height()])/2;var b=r(),c=t(),d=c(K.data());if(E){var e=E.selectAll("g."+H).data(d);f(e,b,d),l(d,b),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return H+" _"+b});return b}function h(a,c){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,b){return A(a,b,c)});b.transition(d,K.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){K.renderTitle()&&a.append("title").text(function(a){return K.title()(a)})}function j(a,c){b.transition(a,K.transitionDuration()).attr("transform",function(a){return B(a,c)}).attr("text-anchor","middle").text(function(a){var b=a.data;return v(b)||u(a)?"":K.label()(a.data)})}function k(a,b){if(K.renderLabel()){var c=E.selectAll("text."+H).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=H+" _"+b;return F&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,c){var d=E.selectAll("g."+H).data(a).select("path").attr("d",function(a,b){return A(a,b,c)});b.transition(d,K.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(K.renderLabel()){var c=E.selectAll("text."+H).data(a);j(c,b)}}function o(a){K.renderTitle()&&E.selectAll("g."+H).data(a).select("title").text(function(a){return K.title()(a.data)})}function p(a){a.exit().remove()}function q(){K.selectAll("g."+H).each(K.hasFilter()?function(a){s(a)?K.highlightSelected(this):K.fadeDeselected(this)}:function(){K.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(I)}function s(a){return K.hasFilter(K.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(K.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||J>b}function v(a){return 0===K.cappedValueAccessor(a)}function w(b){b.innerRadius=I;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return K.getColor(a.data,b)}function z(a,b){K.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=F?a.svg.arc().outerRadius(D+F).innerRadius(D+F).centroid(b):c.centroid(b),isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"}function C(b,c){K.selectAll("g.pie-slice").each(function(d){b.name==d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G=.5,H="pie-slice",I=0,J=G,K=b.capMixin(b.colorMixin(b.baseMixin({})));return K.colorAccessor(K.cappedKeyAccessor),K.title(function(a){return K.cappedKeyAccessor(a)+": "+K.cappedValueAccessor(a)}),K.slicesCap=K.cap,K.label(K.cappedKeyAccessor),K.renderLabel(!0),K.transitionDuration(350),K._doRender=function(){return K.resetSvg(),E=K.svg().append("g").attr("transform","translate("+K.cx()+","+K.cy()+")"),e(),K},K.innerRadius=function(a){return arguments.length?(I=a,K):I},K.radius=function(a){return arguments.length?(D=a,K):D},K.cx=function(){return K.width()/2},K.cy=function(){return K.height()/2},K._doRedraw=function(){return e(),K},K.minAngleForLabel=function(a){return arguments.length?(J=a,K):J},K.externalLabels=function(a){return 0===arguments.length?F:(F=a?a:void 0,K)},K.legendables=function(){return K.data().map(function(a,b){var c={name:a.key,data:a.value,others:a.others,chart:K};return c.color=K.getColor(a,b),c})},K.legendHighlight=function(a){C(a,!0)},K.legendReset=function(a){C(a,!1)},K.legendToggle=function(a){K.onClick({key:a.name,others:a.others})},K.anchor(c,d) +},b.barChart=function(c,d){function e(a){return b.utils.safeNumber(Math.abs(m.y()(a.y+a.y0)-m.y()(a.y0)))}function f(a,c,d){var f=a.selectAll("rect.bar").data(d.values,b.pluck("x"));f.enter().append("rect").attr("class","bar").attr("fill",b.pluck("data",m.getColor)).attr("height",0),m.renderTitle()&&f.append("title").text(b.pluck("data",m.title(d.name))),m.isOrdinal()&&f.on("click",h),b.transition(f,m.transitionDuration()).attr("x",function(a){var c=m.x()(a.x);return o&&(c-=j/2),m.isOrdinal()&&(c+=n/2),b.utils.safeNumber(c)}).attr("y",function(a){var c=m.y()(a.y+a.y0);return a.y<0&&(c-=e(a)),b.utils.safeNumber(c)}).attr("width",j).attr("height",function(a){return e(a)}).attr("fill",b.pluck("data",m.getColor)).select("title").text(b.pluck("data",m.title(d.name))),b.transition(f.exit(),m.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===j){var a=m.xUnitCount();j=Math.floor(m.isOrdinal()&&!n?m.x().rangeBand():n?(m.xAxisLength()-(a-1)*n)/a:m.xAxisLength()/(1+m.barPadding())/a),(1/0==j||isNaN(j)||k>j)&&(j=k)}}function h(a){m.onClick(a.data)}function i(b,c){return function(){var d=a.select(this),e=d.attr("fill")==b;return c?!e:e}}var j,k=1,l=2,m=b.stackMixin(b.coordinateGridMixin({})),n=l,o=!1,p=!1;return b.override(m,"rescale",function(){m._rescale(),j=void 0}),b.override(m,"render",function(){m.round()&&o&&!p&&b.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),m._render()}),m.plotData=function(){var b=m.chartBodyG().selectAll("g.stack").data(m.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},m.fadeDeselectedArea=function(){var a=m.chartBodyG().selectAll("rect.bar"),c=m.brush().extent();if(m.isOrdinal())m.hasFilter()?(a.classed(b.constants.SELECTED_CLASS,function(a){return m.hasFilter(a.x)}),a.classed(b.constants.DESELECTED_CLASS,function(a){return!m.hasFilter(a.x)})):(a.classed(b.constants.SELECTED_CLASS,!1),a.classed(b.constants.DESELECTED_CLASS,!1));else if(m.brushIsEmpty(c))a.classed(b.constants.DESELECTED_CLASS,!1);else{var d=c[0],e=c[1];a.classed(b.constants.DESELECTED_CLASS,function(a){return a.x=e})}},m.centerBar=function(a){return arguments.length?(o=a,m):o},m.barPadding=function(a){return arguments.length?(m._rangeBandPadding(a),n=0,m):m._rangeBandPadding()},m.outerPadding=m._outerRangeBandPadding,m.gap=function(a){return arguments.length?(n=a,m):n},m.extendBrush=function(){var a=m.brush().extent();return!m.round()||o&&!p||(a[0]=a.map(m.round())[0],a[1]=a.map(m.round())[1],m.chartBodyG().select(".brush").call(m.brush().extent(a))),a},m.alwaysUseRounding=function(a){return arguments.length?(p=a,m):p},m.legendHighlight=function(a){m.isLegendableHidden(a)||m.g().selectAll("rect.bar").classed("highlight",i(a.color)).classed("fadeout",i(a.color,!0))},m.legendReset=function(){m.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},b.override(m,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in m.xUnits()){var b=m.xUnits().resolution;a+=b}return a}),m.anchor(c,d)},b.lineChart=function(c,d){function e(a,b){return y.getColor.call(a,a.values,b)}function f(c,d){var f=a.svg.line().x(function(a){return y.x()(a.x)}).y(function(a){return y.y()(a.y+a.y0)}).interpolate(E).tension(F);q&&f.defined(q);var g=c.append("path").attr("class","line").attr("stroke",e);r&&g.attr("stroke-dasharray",r),b.transition(d.select("path.line"),y.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(c,d){if(z){var f=a.svg.area().x(function(a){return y.x()(a.x)}).y(function(a){return y.y()(a.y+a.y0)}).y0(function(a){return y.y()(a.y0)}).interpolate(E).tension(F);q&&f.defined(q),c.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),b.transition(d.select("path.area"),y.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(c,d){if(!y.brushOn()){var e=t+"-list",f=c.select("g."+e);f.empty()&&(f=c.append("g").attr("class",e)),d.each(function(c,d){var e=c.values;q&&(e=e.filter(q));var g=f.select("g."+t+"._"+d);g.empty()&&(g=f.append("g").attr("class",t+" _"+d)),j(g);var h=g.selectAll("circle."+u).data(e,b.pluck("x"));h.enter().append("circle").attr("class",u).attr("r",m()).attr("fill",y.getColor).style("fill-opacity",C).style("stroke-opacity",D).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}).append("title").text(b.pluck("data",y.title(c.name))),h.attr("cx",function(a){return b.utils.safeNumber(y.x()(a.x))}).attr("cy",function(a){return b.utils.safeNumber(y.y()(a.y+a.y0))}).attr("fill",y.getColor).select("title").text(b.pluck("data",y.title(c.name))),h.exit().remove()})}}function j(a){var b=a.select("path."+v).empty()?a.append("path").attr("class",v):a.select("path."+v);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",A),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=y._yAxisX()-y.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+y.yAxisHeight()+"L"+c+" "+d;b.select("path."+v).style("display","").attr("d",f),b.select("path."+w).style("display","").attr("d",g)}function m(){return B||A}function n(a){a.style("fill-opacity",C).style("stroke-opacity",D).attr("r",m())}function o(a){a.select("path."+v).style("display","none"),a.select("path."+w).style("display","none")}function p(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")==b&&e.attr("stroke-dasharray")==(c instanceof Array?c.join(","):null)||e.attr("fill")==b;return d?!f:f}}var q,r,s=5,t="dc-tooltip",u="dot",v="yRef",w="xRef",x=1e-6,y=b.stackMixin(b.coordinateGridMixin({})),z=!1,A=s,B=null,C=x,D=x,E="linear",F=.7;return y.transitionDuration(500),y._rangeBandPadding(1),y.plotData=function(){var a=y.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(y.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},y.interpolate=function(a){return arguments.length?(E=a,y):E},y.tension=function(a){return arguments.length?(F=a,y):F},y.defined=function(a){return arguments.length?(q=a,y):q},y.dashStyle=function(a){return arguments.length?(r=a,y):r},y.renderArea=function(a){return arguments.length?(z=a,y):z},y.dotRadius=function(a){return arguments.length?(A=a,y):A},y.renderDataPoints=function(a){return arguments.length?(a?(C=a.fillOpacity||.8,D=a.strokeOpacity||.8,B=a.radius||2):(C=x,D=x,B=null),y):{fillOpacity:C,strokeOpacity:D,radius:B}},y.legendHighlight=function(a){y.isLegendableHidden(a)||y.g().selectAll("path.line, path.area").classed("highlight",p(a.color,a.dashstyle)).classed("fadeout",p(a.color,a.dashstyle,!0))},y.legendReset=function(){y.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},b.override(y,"legendables",function(){var a=y._legendables();return r?a.map(function(a){return a.dashstyle=r,a}):a}),y.anchor(c,d)},b.dataCount=function(c,d){var e=a.format(",d"),f=b.baseMixin({});return f._doRender=function(){return f.selectAll(".total-count").text(e(f.dimension().size())),f.selectAll(".filter-count").text(e(f.group().value())),f},f._doRedraw=function(){return f._doRender()},f.anchor(c,d)},b.dataTable=function(c,d){function e(){var a=l.root().selectAll("tbody").data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("tbody");return b.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",n.length).html(function(a){return l.keyAccessor()(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return n.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(a)}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l=b.baseMixin({}),m=25,n=[],o=function(a){return a},p=a.ascending;return l._doRender=function(){return l.selectAll("tbody").remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.columns=function(a){return arguments.length?(n=a,l):n},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(c,d)},b.dataGrid=function(c,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=b.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

    "+l.keyAccessor()(a)+"

    "};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(c,d)},b.bubbleChart=function(a,c){function d(a){var c=a.enter().append("g");c.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),b.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(c),i._doRenderTitles(c)}function e(a){b.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=b.bubbleMixin(b.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,c)},b.compositeChart=function(c,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return b.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return b.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=b.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),b.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),s=a.scale.linear().domain(b).range([0,D.effectiveWidth()])}E.scale(s)}function f(){var a=r.select("g.axis");e(),a.empty()&&(a=r.append("g").attr("class","axis").attr("transform","translate(0, "+D.effectiveHeight()+")")),b.transition(a,D.transitionDuration()).call(E)}function g(){r.selectAll("g.tick").select("line.grid-line").remove(),r.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-D.effectiveHeight()})}function h(){u=D.data(),f(),g();var a=r.selectAll("g."+A).data(u);i(a),j(a),k(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return A+" _"+b});b.append("rect").attr("width",0),m(b),n(a)}function j(a){a.exit().remove()}function k(a){var c,d=u.length;c=z?z:(D.effectiveHeight()-(d+1)*y)/d;var e=a.attr("transform",function(a,b){return"translate(0,"+((b+1)*y+b*c)+")"}).select("rect").attr("height",c).attr("fill",D.getColor).on("click",o).classed("deselected",function(a){return D.hasFilter()?!q(a):!1}).classed("selected",function(a){return D.hasFilter()?q(a):!1});b.transition(e,D.transitionDuration()).attr("width",function(a){var b=s(s(0)==-1/0?1:0);return Math.abs(b-s(D.valueAccessor()(a)))}).attr("transform",p),l(a),n(a)}function l(a){D.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(D.title()))}function m(a){D.renderLabel()&&a.append("text").on("click",o),D.renderTitleLabel()&&a.append("text").attr("class",B).on("click",o)}function n(a){if(D.renderLabel()){var c=a.select("text").attr("x",v).attr("y",w).on("click",o).attr("class",function(a,b){return A+" _"+b}).text(function(a){return D.label()(a)});b.transition(c,D.transitionDuration()).attr("transform",p)}if(D.renderTitleLabel()){var d=a.select("."+B).attr("x",D.effectiveWidth()-x).attr("y",w).attr("text-anchor","end").on("click",o).attr("class",function(a,b){return B+" _"+b}).text(function(a){return D.title()(a)});b.transition(d,D.transitionDuration()).attr("transform",p)}}function o(a){D.onClick(a)}function p(a){var b=s(D.cappedValueAccessor(a)),c=s(0),d=b>c?c:b;return"translate("+d+",0)"}function q(a){return D.hasFilter(D.cappedKeyAccessor(a))}var r,s,t,u,v=10,w=15,x=2,y=5,z=!1,A="row",B="titlerow",C=!1,D=b.capMixin(b.marginMixin(b.colorMixin(b.baseMixin({})))),E=a.svg.axis().orient("bottom");return D.rowsCap=D.cap,D._doRender=function(){return D.resetSvg(),r=D.svg().append("g").attr("transform","translate("+D.margins().left+","+D.margins().top+")"),h(),D},D.title(function(a){return D.cappedKeyAccessor(a)+": "+D.cappedValueAccessor(a)}),D.label(D.cappedKeyAccessor),D.x=function(a){return arguments.length?(s=a,D):s},D.renderTitleLabel=function(a){return arguments.length?(C=a,D):C},D._doRedraw=function(){return h(),D},D.xAxis=function(){return E},D.fixedBarHeight=function(a){return arguments.length?(z=a,D):z},D.gap=function(a){return arguments.length?(y=a,D):y},D.elasticX=function(a){return arguments.length?(t=a,D):t},D.labelOffsetX=function(a){return arguments.length?(v=a,D):v},D.labelOffsetY=function(a){return arguments.length?(w=a,D):w},D.titleLabelOffsetX=function(a){return arguments.length?(x=a,D):x},D.anchor(c,d)},b.legend=function(){function a(){return j+i}var c,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70;return f.parent=function(a){return arguments.length?(c=a,f):c},f.render=function(){c.svg().select("g.dc-legend").remove(),d=c.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=c.legendables(),j=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){c.legendHighlight(a)}).on("mouseout",function(a){c.legendReset(a)}).on("click",function(a){c.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(b.pluck("dashstyle"))?j.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",b.pluck("dashstyle")).attr("stroke",b.pluck("color")):j.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),j.append("text").text(b.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var n=0,o=0;j.attr("transform",function(b,c){if(k){var d="translate("+n+","+o*a()+")";return n+m>=l?(++o,n=0):n+=m,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f},b.scatterPlot=function(c,d){function e(c,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return c(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),b.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var c=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});b.transition(c,g.transitionDuration()).attr("d",h)}var g=b.coordinateGridMixin({}),h=a.svg.symbol(),i=g.keyAccessor();g.keyAccessor(function(a){return i(a)[0]}),g.valueAccessor(function(a){return i(a)[1]}),g.colorAccessor(function(){return g._groupName});var j=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},k=3,l=5,m=0;return h.size(function(a){return 0===a.value?m:this.filtered?Math.pow(l,2):Math.pow(k,2)}),b.override(g,"_filter",function(a){return arguments.length?g.__filter(b.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",j),b.transition(a,g.transitionDuration()).attr("opacity",function(a){return a.value?1:0}).attr("fill",g.getColor).attr("transform",j).attr("d",h),b.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(k=a,g):k},g.highlightedSize=function(a){return arguments.length?(l=a,g):l},g.hiddenSize=function(a){return arguments.length?(m=a,g):m},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")==b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!=b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")==b.color},k),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!=b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))b.events.trigger(function(){g.filter(null),b.redrawAll(g.chartGroup())}),f(!1);else{var c=b.filters.RangedTwoDimensionalFilter(a);b.events.trigger(function(){g.filter(null),g.filter(c),b.redrawAll(g.chartGroup())},b.constants.EVENT_DELAY),f(c)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(c,d)},b.numberDisplay=function(c,d){var e="number-display",f=a.format(".2s"),g=b.baseMixin({});return g._mandatoryAttributes(["group"]),g.value=function(){return g.data()},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250),g._doRender=function(){var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);return this.lastValue=b,function(a){this.textContent=g.formatNumber()(c(a))}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(c,d)},b.heatMap=function(c,d){function e(a,c){var d=m.selectAll(".box-group").filter(function(b){return b.key[a]==c}),e=d.filter(function(a){return!m.hasFilter(a.key)});b.events.trigger(function(){e.empty()?d.each(function(a){m.filter(a.key)}):e.each(function(a){m.filter(a.key)}),m.redrawGroup()})}function f(a,b,c){return!b||c[b-1]!=a}var g,h,i,j=6.75,k=j,l=j,m=b.colorMixin(b.marginMixin(b.baseMixin({})));m._mandatoryAttributes(["group"]),m.title(m.colorAccessor());var n=function(a){e(0,a)},o=function(a){e(1,a)},p=function(a){var c=a.key;b.events.trigger(function(){m.filter(c),m.redrawGroup()})};return b.override(m,"filter",function(a){return arguments.length?m._filter(b.filters.TwoDimensionalFilter(a)):m._filter()}),m.rows=function(b){if(arguments.length)return i=b,m;if(i)return i;var c=m.data().map(m.valueAccessor());return c.sort(a.ascending),a.scale.ordinal().domain(c.filter(f))},m.cols=function(b){if(arguments.length)return h=b,m;if(h)return h;var c=m.data().map(m.keyAccessor());return c.sort(a.ascending),a.scale.ordinal().domain(c.filter(f))},m._doRender=function(){return m.resetSvg(),g=m.svg().append("g").attr("class","heatmap").attr("transform","translate("+m.margins().left+","+m.margins().top+")"),m._doRedraw()},m._doRedraw=function(){var a=m.rows(),c=m.cols(),d=a.domain().length,e=c.domain().length,f=Math.floor(m.effectiveWidth()/e),h=Math.floor(m.effectiveHeight()/d);c.rangeRoundBands([0,m.effectiveWidth()]),a.rangeRoundBands([m.effectiveHeight(),0]);var i=g.selectAll("g.box-group").data(m.data(),function(a,b){return m.keyAccessor()(a,b)+"\x00"+m.valueAccessor()(a,b)}),j=i.enter().append("g").attr("class","box-group");j.append("rect").attr("class","heat-box").attr("fill","white").on("click",m.boxOnClick()),j.append("title").text(m.title()),b.transition(i.selectAll("rect"),m.transitionDuration()).attr("x",function(a,b){return c(m.keyAccessor()(a,b))}).attr("y",function(b,c){return a(m.valueAccessor()(b,c))}).attr("rx",k).attr("ry",l).attr("fill",m.getColor).attr("width",f).attr("height",h),i.exit().remove();var n=g.selectAll("g.cols");n.empty()&&(n=g.append("g").attr("class","cols axis")),n.selectAll("text").data(c.domain()).enter().append("text").attr("x",function(a){return c(a)+f/2}).style("text-anchor","middle").attr("y",m.effectiveHeight()).attr("dy",12).on("click",m.xAxisOnClick()).text(function(a){return a});var o=g.selectAll("g.rows");return o.empty()&&(o=g.append("g").attr("class","rows axis")),o.selectAll("text").data(a.domain()).enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",m.yAxisOnClick()).text(function(a){return a}),b.transition(o.selectAll("text"),m.transitionDuration()).text(function(a){return a}).attr("y",function(b){return a(b)+h/2}),m.selectAll("g.box-group").each(m.hasFilter()?function(a){m.isSelectedNode(a)?m.highlightSelected(this):m.fadeDeselected(this)}:function(){m.resetHighlight(this)}),m},m.boxOnClick=function(a){return arguments.length?(p=a,m):p +},m.xAxisOnClick=function(a){return arguments.length?(n=a,m):n},m.yAxisOnClick=function(a){return arguments.length?(o=a,m):o},m.xBorderRadius=function(a){return arguments.length&&(k=a),k},m.yBorderRadius=function(a){return arguments.length&&(l=a),l},m.isSelectedNode=function(a){return m.hasFilter(a.key)},m.anchor(c,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null==b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),b.boxPlot=function(c,d){function e(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function f(c){b.transition(c,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function g(a){a.exit().remove().call(m)}function h(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}var i=b.coordinateGridMixin({}),j=1.5,k=h,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(b.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+",0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});e(b),f(b),g(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var c=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return b.utils.subtract(c,i.yAxisPadding())},i.yAxisMax=function(){var c=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return b.utils.add(c,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(c,d)},b.abstractBubbleChart=b.bubbleMixin,b.baseChart=b.baseMixin,b.capped=b.capMixin,b.colorChart=b.colorMixin,b.coordinateGridChart=b.coordinateGridMixin,b.marginable=b.marginMixin,b.stackableChart=b.stackMixin,b}"function"==typeof define&&define.amd?define(["d3"],a):"object"==typeof module&&module.exports?module.exports=a(d3):this.dc=a(d3)}(); //# sourceMappingURL=dc.min.js.map \ No newline at end of file diff --git a/web/js/dc.min.js.map b/web/js/dc.min.js.map index 8ea23f719..fb7ad0083 100644 --- a/web/js/dc.min.js.map +++ b/web/js/dc.min.js.map @@ -1 +1 @@ -{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_isChild","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","label","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dc_flag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","removeFilter","_filters","applyFilters","_invokeFilteredListener","addFilter","resetFilters","dimension","fs","_filterHandler","runAllRenderlets","_renderlets","_dimension","_group","_anchor","_root","_orderSort","_legend","_minWidth","_default_width","getBoundingClientRect","_width","_minHeight","_default_height","_height","_keyAccessor","_valueAccessor","_label","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","NULL_LISTENER","_listeners","preRender","postRender","preRedraw","postRedraw","filtered","zoomed","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","crossfilter","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","forEach","result","_doRender","_activateRenderlets","event","each","_doRedraw","redrawGroup","_invokeZoomedListener","hasFilter","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","label","renderLabel","title","renderTitle","legend","options","opts","on","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","prepareXAxis","elasticX","isOrdinal","_x","xAxisMin","xAxisMax","_ordinalXDomain","rangeBands","xAxisLength","_rangeBandPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","_refocused","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","zoomHandler","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","reduce","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","arc","buildArcs","pie","pieLayout","pieData","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","isSelectedSlice","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","dataTable","renderGroups","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","_columns","html","entries","_size","nest","sortKeys","_order","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","COLUMN_CSS_CLASS","ascending","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","_html","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","children_changed","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","_fixedBarHeight","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_labelOffsetY","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","itemEnter","some","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemHeight","horizontal","legendWidth","itemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","textContent","formatNumber","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","uniq","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_xBorderRadius","_yBorderRadius","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowValues","cols","colValues","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","xAxisOnClick","gRows","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","default_whiskers_iqr","k","q1","q3","iqr","_whisker_iqr_factor","_whiskers_iqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports"],"mappings":"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"} \ No newline at end of file