From 918d4a3c3ce0233e6054f43bb147c0eec0bd4ac3 Mon Sep 17 00:00:00 2001 From: Javier Date: Sat, 3 Apr 2021 12:48:33 -0400 Subject: [PATCH] Added modified files and bb js/css --- ihatemoney/models.py | 27 +++ ihatemoney/static/css/billboard.min.css | 9 + ihatemoney/static/js/billboard.min.js | 10 + ihatemoney/templates/layout.html | 5 + ihatemoney/templates/statistics.html | 237 ++++++++++++++++++++++++ ihatemoney/tests/api_test.py | 4 + 6 files changed, 292 insertions(+) create mode 100644 ihatemoney/static/css/billboard.min.css create mode 100644 ihatemoney/static/js/billboard.min.js diff --git a/ihatemoney/models.py b/ihatemoney/models.py index 7984ab76..b1a1331a 100644 --- a/ihatemoney/models.py +++ b/ihatemoney/models.py @@ -144,6 +144,7 @@ class Project(db.Model): ] ), "balance": self.balance[member.id], + "monthly_exp": self.get_monthly_expenditure(member.id), } for member in self.active_members ] @@ -164,6 +165,32 @@ class Project(db.Model): def uses_weights(self): return len([i for i in self.members if i.weight != 1]) > 0 + def get_monthly_expenditure(self, member_id): + """ + Computes monthly expenses for member_id + + :return: a list of tuples of the form (date, expenditure) + """ + query_result = {} + member_monthly = defaultdict(lambda: defaultdict(float)) + member_monthly_exp = [] + query_result[member_id] = self.get_member_bills(member_id).all() + for bill in query_result[member_id]: + member_monthly[bill.date.year][bill.date.month] += bill.converted_amount + for year in member_monthly: + for month in member_monthly[year]: + amount = member_monthly[year][month] + str_month = "" + # Datetime requires month as a zero padded decimal number (ie, 01, 02.. 11, 12) + if month > 9: + str_month = str(month) + else: + str_month = "0" + str(month) + # Convert date into datetime object + date = datetime.strptime(str(year) + " " + str_month, "%Y %m") + member_monthly_exp.append((date, amount)) + return member_monthly_exp + def get_transactions_to_settle_bill(self, pretty_output=False): """Return a list of transactions that could be made to settle the bill""" diff --git a/ihatemoney/static/css/billboard.min.css b/ihatemoney/static/css/billboard.min.css new file mode 100644 index 00000000..35da5f08 --- /dev/null +++ b/ihatemoney/static/css/billboard.min.css @@ -0,0 +1,9 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.0.2 + */.bb svg{font:10px sans-serif;-webkit-tap-highlight-color:rgba(0,0,0,0)}.bb line,.bb path{fill:none;stroke:#000}.bb .bb-button,.bb text{-webkit-user-select:none;-moz-user-select:none;user-select:none}.bb-bars path,.bb-event-rect,.bb-legend-item-tile,.bb-xgrid-focus,.bb-ygrid,.bb-ygrid-focus{shape-rendering:crispEdges}.bb-chart-arc .bb-gauge-value{fill:#000}.bb-chart-arc path{stroke:#fff}.bb-chart-arc rect{stroke:#fff;stroke-width:1}.bb-chart-arc text{fill:#fff;font-size:13px}.bb-axis{shape-rendering:crispEdges}.bb-grid line{stroke:#aaa}.bb-grid text{fill:#aaa}.bb-xgrid,.bb-ygrid{stroke-dasharray:3 3}.bb-text.bb-empty{fill:grey;font-size:2em}.bb-line{stroke-width:1px}.bb-circle._expanded_{stroke-width:1px;stroke:#fff}.bb-selected-circle{fill:#fff;stroke-width:2px}.bb-bar{stroke-width:0}.bb-bar._expanded_{fill-opacity:.75}.bb-circles.bb-focused,.bb-target.bb-focused{opacity:1}.bb-circles.bb-focused path.bb-line,.bb-circles.bb-focused path.bb-step,.bb-target.bb-focused path.bb-line,.bb-target.bb-focused path.bb-step{stroke-width:2px}.bb-circles.bb-defocused,.bb-target.bb-defocused{opacity:.3!important}.bb-circles.bb-defocused .text-overlapping,.bb-target.bb-defocused .text-overlapping{opacity:.05!important}.bb-region{fill:#4682b4;fill-opacity:.1}.bb-brush .extent,.bb-zoom-brush{fill-opacity:.1}.bb-legend-item{font-size:12px;user-select:none}.bb-legend-item-hidden{opacity:.15}.bb-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.bb-title{font:14px sans-serif}.bb-tooltip-container{z-index:10;user-select:none}.bb-tooltip{border-collapse:collapse;border-spacing:0;background-color:#fff;empty-cells:show;opacity:.9;-webkit-box-shadow:7px 7px 12px -9px #777;-moz-box-shadow:7px 7px 12px -9px #777;box-shadow:7px 7px 12px -9px #777}.bb-tooltip tr{border:1px solid #ccc}.bb-tooltip th{background-color:#aaa;font-size:14px;padding:2px 5px;text-align:left;color:#fff}.bb-tooltip td{font-size:13px;padding:3px 6px;background-color:#fff;border-left:1px dotted #999}.bb-tooltip td>span,.bb-tooltip td>svg{display:inline-block;width:10px;height:10px;margin-right:6px}.bb-tooltip.value{text-align:right}.bb-area{stroke-width:0;opacity:.2}.bb-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}.bb-chart-arcs-gauge-title{dominant-baseline:middle;font-size:2.7em}.bb-chart-arcs .bb-chart-arcs-background{fill:#e0e0e0;stroke:#fff}.bb-chart-arcs .bb-chart-arcs-gauge-unit{fill:#000;font-size:16px}.bb-chart-arcs .bb-chart-arcs-gauge-max,.bb-chart-arcs .bb-chart-arcs-gauge-min{fill:#777}.bb-chart-radars .bb-levels polygon{fill:none;stroke:#848282;stroke-width:.5px}.bb-chart-radars .bb-levels text{fill:#848282}.bb-chart-radars .bb-axis line{stroke:#848282;stroke-width:.5px}.bb-chart-radars .bb-axis text{font-size:1.15em;cursor:default}.bb-chart-radars .bb-shapes polygon{fill-opacity:.2;stroke-width:1px}.bb-button{position:absolute;top:10px;right:10px}.bb-button .bb-zoom-reset{font-size:11px;border:1px solid #ccc;background-color:#fff;padding:5px;border-radius:5px;cursor:pointer} \ No newline at end of file diff --git a/ihatemoney/static/js/billboard.min.js b/ihatemoney/static/js/billboard.min.js new file mode 100644 index 00000000..a11cefd4 --- /dev/null +++ b/ihatemoney/static/js/billboard.min.js @@ -0,0 +1,10 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.0.2 + */ +!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e(require("d3-axis"),require("d3-brush"),require("d3-color"),require("d3-drag"),require("d3-dsv"),require("d3-ease"),require("d3-interpolate"),require("d3-scale"),require("d3-selection"),require("d3-shape"),require("d3-time-format"),require("d3-transition"),require("d3-zoom"));else if("function"==typeof define&&define.amd)define(["d3-axis","d3-brush","d3-color","d3-drag","d3-dsv","d3-ease","d3-interpolate","d3-scale","d3-selection","d3-shape","d3-time-format","d3-transition","d3-zoom"],e);else{var i="object"==typeof exports?e(require("d3-axis"),require("d3-brush"),require("d3-color"),require("d3-drag"),require("d3-dsv"),require("d3-ease"),require("d3-interpolate"),require("d3-scale"),require("d3-selection"),require("d3-shape"),require("d3-time-format"),require("d3-transition"),require("d3-zoom")):e(t.d3,t.d3,t.d3,t.d3,t.d3,t.d3,t.d3,t.d3,t.d3,t.d3,t.d3,t.d3,t.d3);for(var n in i)("object"==typeof exports?exports:t)[n]=i[n]}}(this,(function(t,e,i,n,a,r,s,o,c,l,u,d,h){return function(){"use strict";var g=[,,function(t){t.exports=c},function(t){t.exports=e},function(t){t.exports=u},function(t){t.exports=a},function(t){t.exports=o},function(t){t.exports=n},function(t){t.exports=d},function(t){t.exports=l},function(e){e.exports=t},function(t){t.exports=r},function(t){t.exports=s},function(t){t.exports=i},function(t){t.exports=h}],f={};function p(t){var e=f[t];if(void 0!==e)return e.exports;var i=f[t]={exports:{}};return g[t](i,i.exports,p),i.exports}p.d=function(t,e){for(var i in e)p.o(e,i)&&!p.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},p.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},p.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var x={};return function(){p.r(x),p.d(x,{bb:function(){return Qi},default:function(){return Qi}});var t={};p.r(t),p.d(t,{area:function(){return mi},areaLineRange:function(){return yi},areaSpline:function(){return bi},areaSplineRange:function(){return Ti},areaStep:function(){return wi},bar:function(){return Ri},bubble:function(){return Di},candlestick:function(){return Ii},donut:function(){return Ci},gauge:function(){return Li},line:function(){return Ai},pie:function(){return Ei},radar:function(){return Oi},scatter:function(){return Pi},spline:function(){return ki},step:function(){return Si}});var e={};p.r(e),p.d(e,{selection:function(){return Zi},subchart:function(){return qi},zoom:function(){return Ki}});var i=p(4),n=p(2),a={arc:"bb-arc",arcLabelLine:"bb-arc-label-line",arcs:"bb-arcs",area:"bb-area",areas:"bb-areas",axis:"bb-axis",axisX:"bb-axis-x",axisXLabel:"bb-axis-x-label",axisY:"bb-axis-y",axisY2:"bb-axis-y2",axisY2Label:"bb-axis-y2-label",axisYLabel:"bb-axis-y-label",bar:"bb-bar",bars:"bb-bars",brush:"bb-brush",button:"bb-button",buttonZoomReset:"bb-zoom-reset",candlestick:"bb-candlestick",candlesticks:"bb-candlesticks",chart:"bb-chart",chartArc:"bb-chart-arc",chartArcs:"bb-chart-arcs",chartArcsBackground:"bb-chart-arcs-background",chartArcsGaugeMax:"bb-chart-arcs-gauge-max",chartArcsGaugeMin:"bb-chart-arcs-gauge-min",chartArcsGaugeUnit:"bb-chart-arcs-gauge-unit",chartArcsTitle:"bb-chart-arcs-title",chartArcsGaugeTitle:"bb-chart-arcs-gauge-title",chartBar:"bb-chart-bar",chartBars:"bb-chart-bars",chartCandlestick:"bb-chart-candlestick",chartCandlesticks:"bb-chart-candlesticks",chartCircles:"bb-chart-circles",chartLine:"bb-chart-line",chartLines:"bb-chart-lines",chartRadar:"bb-chart-radar",chartRadars:"bb-chart-radars",chartText:"bb-chart-text",chartTexts:"bb-chart-texts",circle:"bb-circle",circles:"bb-circles",colorPattern:"bb-color-pattern",colorScale:"bb-colorscale",defocused:"bb-defocused",dragarea:"bb-dragarea",empty:"bb-empty",eventRect:"bb-event-rect",eventRects:"bb-event-rects",eventRectsMultiple:"bb-event-rects-multiple",eventRectsSingle:"bb-event-rects-single",focused:"bb-focused",gaugeValue:"bb-gauge-value",grid:"bb-grid",gridLines:"bb-grid-lines",legend:"bb-legend",legendBackground:"bb-legend-background",legendItem:"bb-legend-item",legendItemEvent:"bb-legend-item-event",legendItemFocused:"bb-legend-item-focused",legendItemHidden:"bb-legend-item-hidden",legendItemPoint:"bb-legend-item-point",legendItemTile:"bb-legend-item-tile",level:"bb-level",levels:"bb-levels",line:"bb-line",lines:"bb-lines",main:"bb-main",region:"bb-region",regions:"bb-regions",selectedCircle:"bb-selected-circle",selectedCircles:"bb-selected-circles",shape:"bb-shape",shapes:"bb-shapes",stanfordElements:"bb-stanford-elements",stanfordLine:"bb-stanford-line",stanfordLines:"bb-stanford-lines",stanfordRegion:"bb-stanford-region",stanfordRegions:"bb-stanford-regions",subchart:"bb-subchart",target:"bb-target",text:"bb-text",texts:"bb-texts",title:"bb-title",tooltip:"bb-tooltip",tooltipContainer:"bb-tooltip-container",tooltipName:"bb-tooltip-name",valueDown:"bb-value-down",valueUp:"bb-value-up",xgrid:"bb-xgrid",xgridFocus:"bb-xgrid-focus",xgridLine:"bb-xgrid-line",xgridLines:"bb-xgrid-lines",xgrids:"bb-xgrids",ygrid:"bb-ygrid",ygridFocus:"bb-ygrid-focus",ygridLine:"bb-ygrid-line",ygridLines:"bb-ygrid-lines",ygrids:"bb-ygrids",zoomBrush:"bb-zoom-brush",EXPANDED:"_expanded_",SELECTED:"_selected_",INCLUDED:"_included_",TextOverlapping:"text-overlapping"},r={element:function(){return{chart:null,main:null,svg:null,axis:{x:null,y:null,y2:null,subX:null},defs:null,tooltip:null,legend:null,title:null,subchart:{main:null,bar:null,line:null,area:null},arcs:null,bar:null,candlestick:null,line:null,area:null,circle:null,radar:null,text:null,grid:{main:null,x:null,y:null},gridLines:{main:null,x:null,y:null},region:{main:null,list:null},eventRect:null}},state:function(){return{width:0,width2:0,height:0,height2:0,margin:{top:0,bottom:0,left:0,right:0},margin2:{top:0,bottom:0,left:0,right:0},margin3:{top:0,bottom:0,left:0,right:0},arcWidth:0,arcHeight:0,xAxisHeight:0,hasAxis:!1,hasRadar:!1,current:{width:0,height:0,dataMax:0,maxTickWidths:{x:{size:0,ticks:[],clipPath:0,domain:""},y:{size:0,domain:""},y2:{size:0,domain:""}},types:[]},isLegendRight:!1,isLegendInset:!1,isLegendTop:!1,isLegendLeft:!1,legendStep:0,legendItemWidth:0,legendItemHeight:0,legendHasRendered:!1,eventReceiver:{currentIdx:-1,rect:{},data:[],coords:[]},axis:{x:{padding:{left:0,right:0},tickCount:0}},rotatedPadding:{left:30,right:0,top:5},withoutFadeIn:{},inputType:"",datetimeId:"",clip:{id:"",idXAxis:"",idYAxis:"",idXAxisTickTexts:"",idGrid:"",idSubchart:"",path:"",pathXAxis:"",pathYAxis:"",pathXAxisTickTexts:"",pathGrid:""},event:null,dragStart:null,dragging:!1,flowing:!1,cancelClick:!1,mouseover:!1,rendered:!1,transiting:!1,redrawing:!1,resizing:!1,toggling:!1,zooming:!1,hasNegativeValue:!1,hasPositiveValue:!0,orgAreaOpacity:"0.2",hiddenTargetIds:[],hiddenLegendIds:[],focusedTargetIds:[],defocusedTargetIds:[],radius:0,innerRadius:0,outerRadius:void 0,innerRadiusRatio:0,gaugeArcWidth:0,radiusExpanded:0,xgridAttr:{x1:null,x2:null,y1:null,y2:null}}}},s=function(){function t(){var t=this;Object.keys(r).forEach((function(e){t[e]=new r[e]}))}return t.prototype.getStore=function(t){return this[t]},t}();function o(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}var c={bindto:"#chart",background:{},clipPath:!0,svg_classname:void 0,size_width:void 0,size_height:void 0,padding_left:void 0,padding_right:void 0,padding_top:void 0,padding_bottom:void 0,resize_auto:!0,onover:void 0,onout:void 0,onresize:void 0,onresized:void 0,onbeforeinit:void 0,oninit:void 0,onafterinit:void 0,onrendered:void 0,transition_duration:350,plugins:[],render:{},regions:[]},l={data_x:void 0,data_idConverter:function(t){return t},data_names:{},data_classes:{},data_type:void 0,data_types:{},data_order:"desc",data_groups:[],data_color:void 0,data_colors:{},data_labels:{},data_labels_colors:void 0,data_labels_position:{},data_hide:!1,data_filter:void 0,data_onclick:function(){},data_onover:function(){},data_onout:function(){},data_onmin:void 0,data_onmax:void 0,data_url:void 0,data_headers:void 0,data_json:void 0,data_rows:void 0,data_columns:void 0,data_mimeType:"csv",data_keys:void 0,data_empty_label_text:""},u={color_pattern:[],color_tiles:void 0,color_threshold:{},color_onover:void 0},d={interaction_enabled:!0,interaction_brighten:!0,interaction_inputType_mouse:!0,interaction_inputType_touch:{}},h={legend_show:!0,legend_hide:!1,legend_contents_bindto:void 0,legend_contents_template:void 0,legend_position:"bottom",legend_inset_anchor:"top-left",legend_inset_x:10,legend_inset_y:0,legend_inset_step:void 0,legend_item_onclick:void 0,legend_item_onover:void 0,legend_item_onout:void 0,legend_equally:!1,legend_padding:0,legend_item_tile_width:10,legend_item_tile_height:10,legend_usePoint:!1},g={title_text:void 0,title_padding:{top:0,right:0,bottom:0,left:0},title_position:"center"},f={tooltip_show:!0,tooltip_doNotHide:!1,tooltip_grouped:!0,tooltip_format_title:void 0,tooltip_format_name:void 0,tooltip_format_value:void 0,tooltip_position:void 0,tooltip_contents:{},tooltip_init_show:!1,tooltip_init_x:0,tooltip_init_position:{top:"0px",left:"50px"},tooltip_linked:!1,tooltip_linked_name:"",tooltip_onshow:function(){},tooltip_onhide:function(){},tooltip_onshown:function(){},tooltip_onhidden:function(){},tooltip_order:null},v=p(3),_="object"==typeof globalThis&&null!==globalThis&&globalThis.Object===Object&&globalThis||"object"==typeof global&&null!==global&&global.Object===Object&&global||"object"==typeof self&&null!==self&&self.Object===Object&&self||Function("return this")(),m=_&&_.document;function y(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function b(t){for(var e,i=1;i1?i-1:0),a=1;a/g,">"):t}function N(t,e,i,n){if(void 0===i&&(i=[-1,1]),void 0===n&&(n=!1),t&&A(e))if(-1===e.indexOf("\n"))t.text(e);else{var a=[t.text(),e].map((function(t){return t.replace(/[\s\n]/g,"")}));if(a[0]!==a[1]){var r=e.split("\n"),s=n?r.length-1:1;t.html(""),r.forEach((function(e,n){t.append("tspan").attr("x",0).attr("dy",(0===n?i[0]*s:i[1])+"em").text(e)}))}}}function Y(t){var e=t.getBBox(),i=e.x,n=e.y,a=e.width,r=e.height;return[{x:i,y:n+r},{x:i,y:n},{x:i+a,y:n},{x:i+a,y:n+r}]}function G(t,e){var i=t&&(t.touches||t.sourceEvent&&t.sourceEvent.touches);return t?(0,n.pointer)(i?i[0]:t,e):[0,0]}function j(t){var e,i=t.event,n=t.$el,r=n.subchart.main||n.main;return i&&"brush"===i.type?e=i.selection:r&&(e=r.select("."+a.brush).node())&&(e=(0,v.brushSelection)(e)),e}function V(t){return!("rect"in t)||"rect"in t&&t.hasAttribute("width")&&t.rect.width!==+t.getAttribute("width")?t.rect=t.getBoundingClientRect():t.rect}function H(t){void 0===t&&(t=!0);var e=Math.random();return t?e+"":e}function W(t,e,i,n,a){if(i>n)return-1;var r=Math.floor((i+n)/2),s=t[r],o=s.x,c=s.w,l=void 0===c?0:c;return a&&(o=t[r].y,l=t[r].h),e>=o&&e<=o+l?r:e1?e-1:0),n=1;ne?-1:t0){var a={};t.forEach((function(t,i){if(S(t))throw new Error("Source data is missing a component at ("+n+", "+i+")!");a[e[i]]=t})),i.push(a)}})),i},convertColumnsToData:function(t){var e=[];return t.forEach((function(t,i){var n=t[0];t.forEach((function(t,a){if(a>0){if(S(e[a-1])&&(e[a-1]={}),S(t))throw new Error("Source data is missing a component at ("+i+", "+a+")!");e[a-1][n]=t}}))})),e},convertDataToTargets:function(t,e){var i=this,n=this,a=n.axis,r=n.config,s=n.state,o=!1,c=!1,l=!1;a&&(o=a.isCategorized(),c=a.isTimeSeries(),l=a.isCustomX());var u,d=Object.keys(t[0]||{}),h=d.length?d.filter(n.isNotX,n):[],g=d.length?d.filter(n.isX,n):[];h.forEach((function(a){var s=i.getXKey(a);l||c?g.indexOf(s)>=0?u=(e&&n.data.xs[a]||[]).concat(t.map((function(t){return t[s]})).filter(T).map((function(t,e){return n.generateTargetX(t,a,e)}))):r.data_x?u=i.getOtherTargetXs():P(r.data_xs)&&(u=n.getXValuesOfXKey(s,n.data.targets)):u=t.map((function(t,e){return e})),u&&(i.data.xs[a]=u)})),h.forEach((function(t){if(!i.data.xs[t])throw new Error('x is not defined for id = "'+t+'".')}));var f=h.map((function(e,i){var a=r.data_idConverter.bind(n.api)(e),c=n.getXKey(e),u=l&&o,d=u&&t.map((function(t){return t.x})).every((function(t){return r.axis_x_categories.indexOf(t)>-1}));return{id:a,id_org:e,values:t.map((function(t,o){var l,h=t[c],g=t[e];return g=null===g||isNaN(g)||X(g)?z(g)||X(g)?g:null:+g,!u&&!s.hasRadar||0!==i||S(h)?l=n.generateTargetX(h,e,o):(!d&&0===i&&0===o&&(r.axis_x_categories=[]),-1===(l=r.axis_x_categories.indexOf(h))&&(l=r.axis_x_categories.length,r.axis_x_categories.push(h))),(S(g)||n.data.xs[e].length<=o)&&(l=void 0),{x:l,value:g,id:a}})).filter((function(t){return C(t.x)}))}}));return f.forEach((function(t){r.data_xSort&&(t.values=t.values.sort((function(t,e){return(t.x||0===t.x?t.x:1/0)-(e.x||0===e.x?e.x:1/0)}))),t.values.forEach((function(t,e){return t.index=e})),n.data.xs[t.id].sort((function(t,e){return t-e}))})),s.hasNegativeValue=n.hasNegativeValueInTargets(f),s.hasPositiveValue=n.hasPositiveValueInTargets(f),r.data_type&&n.setTargetType(n.mapToIds(f).filter((function(t){return!(t in r.data_types)})),r.data_type),f.forEach((function(t){return n.cache.add(t.id_org,t,!0)})),f}},Lt={isX:function(t){var e,i,n,a=this.config,r=a.data_x&&t===a.data_x,s=P(a.data_xs)&&(e=a.data_xs,i=t,n=!1,Object.keys(e).forEach((function(t){return e[t]===i&&(n=!0)})),n);return r||s},isNotX:function(t){return!this.isX(t)},isStackNormalized:function(){var t=this.config;return!(!t.data_stack_normalize||!t.data_groups.length)},isGrouped:function(t){var e=this.config.data_groups;return t?e.some((function(e){return e.indexOf(t)>=0&&e.length>1})):e.length>0},getXKey:function(t){var e=this.config;return e.data_x?e.data_x:P(e.data_xs)?e.data_xs[t]:null},getXValuesOfXKey:function(t,e){var i,n=this;return(e&&P(e)?n.mapToIds(e):[]).forEach((function(e){n.getXKey(e)===t&&(i=n.data.xs[e])})),i},getIndexByX:function(t,e){return e?e.indexOf(A(t)?t:+t):(this.filterByX(this.data.targets,t)[0]||{index:null}).index},getXValue:function(t,e){var i=this;return t in i.data.xs&&i.data.xs[t]&&T(i.data.xs[t][e])?i.data.xs[t][e]:e},getOtherTargetXs:function(){var t=Object.keys(this.data.xs);return t.length?this.data.xs[t[0]]:null},getOtherTargetX:function(t){var e=this.getOtherTargetXs();return e&&t1?t=it(Q(t=t.map((function(t){return t.values})).reduce((function(t,e){return t.concat(e)})).map((function(t){return t.x})))).map((function(t,e){return{x:t,index:e}})):e&&(t=t[0].values),t},mapToIds:function(t){return t.map((function(t){return t.id}))},mapToTargetIds:function(t){return t?z(t)?t.concat():[t]:this.mapToIds(this.data.targets)},hasTarget:function(t,e){for(var i,n=this.mapToIds(t),a=0;i=n[a];a++)if(i===e)return!0;return!1},isTargetToShow:function(t){return this.state.hiddenTargetIds.indexOf(t)<0},isLegendToShow:function(t){return this.state.hiddenLegendIds.indexOf(t)<0},filterTargetsToShow:function(t){var e=this;return(t||e.data.targets).filter((function(t){return e.isTargetToShow(t.id)}))},mapTargetsToUniqueXs:function(t){var e=this.axis,i=[];return t&&t.length&&(i=Q(tt(t.map((function(t){return t.values.map((function(t){return+t.x}))})))),i=e&&e.isTimeSeries()?i.map((function(t){return new Date(+t)})):i.map((function(t){return+t}))),it(i)},addHiddenTargetIds:function(t){this.state.hiddenTargetIds=this.state.hiddenTargetIds.concat(t)},removeHiddenTargetIds:function(t){this.state.hiddenTargetIds=this.state.hiddenTargetIds.filter((function(e){return t.indexOf(e)<0}))},addHiddenLegendIds:function(t){this.state.hiddenLegendIds=this.state.hiddenLegendIds.concat(t)},removeHiddenLegendIds:function(t){this.state.hiddenLegendIds=this.state.hiddenLegendIds.filter((function(e){return t.indexOf(e)<0}))},getValuesAsIdKeyed:function(t){var e=this,i=e.state.hasAxis,n={},a=e.isMultipleX(),r=a?e.mapTargetsToUniqueXs(t).map((function(t){return A(t)?t:+t})):null;return t.forEach((function(t){var s=[];t.values.filter((function(t){return T(t.value)})).forEach((function(t){var n=t.value;e.isCandlestickType(t)&&(n=z(n)?n.slice(0,4):[n.open,n.high,n.low,n.close]),z(n)?s.push.apply(s,n):X(n)&&"high"in n?s.push.apply(s,Object.values(n)):e.isBubbleZType(t)?s.push(i&&e.getBubbleZData(n,"y")):a?s[e.getIndexByX(t.x,r)]=n:s.push(n)})),n[t.id]=s})),n},checkValueInTargets:function(t,e){for(var i,n=Object.keys(t),a=0;a1},hasNegativeValueInTargets:function(t){return this.checkValueInTargets(t,(function(t){return t<0}))},hasPositiveValueInTargets:function(t){return this.checkValueInTargets(t,(function(t){return t>0}))},_checkOrder:function(t){var e=this.config.data_order;return A(e)&&e.toLowerCase()===t},isOrderDesc:function(){return this._checkOrder("desc")},isOrderAsc:function(){return this._checkOrder("asc")},orderTargets:function(t){var e=[].concat(t),i=this.getSortCompareFn();return i&&e.sort(i),e},getSortCompareFn:function(t){void 0===t&&(t=!1);var e,i=this,n=i.config,a=i.isOrderAsc(),r=i.isOrderDesc();return a||r?e=function(e,i){var n=function(t,e){return t+Math.abs(e.value)},r=e.values.reduce(n,0),s=i.values.reduce(n,0);return t?a?r-s:s-r:a?s-r:r-s}:w(n.data_order)&&(e=n.data_order.bind(i.api)),e||null},filterByX:function(t,e){return tt(t.map((function(t){return t.values}))).filter((function(t){return t.x-e==0}))},filterRemoveNull:function(t){var e=this;return t.filter((function(t){return T(e.getBaseValue(t))}))},filterByXDomain:function(t,e){return t.map((function(t){return{id:t.id,id_org:t.id_org,values:t.values.filter((function(t){return e[0]<=t.x&&t.x<=e[1]}))}}))},hasDataLabel:function(){var t=this.config.data_labels;return L(t)&&t||D(t)&&P(t)},getDataIndexFromEvent:function(t){var e=this.config,i=this.state,n=i.inputType,a=i.eventReceiver,r=a.coords,s=a.rect,o=e.axis_rotated,c="touch"===n&&t.changedTouches?t.changedTouches[0]:t;return W(r,o?c.clientY-s.top:c.clientX-s.left,0,r.length-1,o)},getDataLabelLength:function(t,e,i){var n=this,a=[0,0];return n.$el.chart.select("svg").selectAll(".dummy").data([t,e]).enter().append("text").text((function(t){return n.dataLabelFormat(t.id)(t)})).each((function(t,e){a[e]=1.3*this.getBoundingClientRect()[i]})).remove(),a},isNoneArc:function(t){return this.hasTarget(this.data.targets,t.id)},isArc:function(t){return"data"in t&&this.hasTarget(this.data.targets,t.data.id)},findSameXOfValues:function(t,e){var i,n=t[e].x,a=[];for(i=e-1;i>=0&&n===t[i].x;i--)a.push(t[i]);for(i=e;i=0&&n?n[a]:void 0}return n?n[e]:n},getRatio:function(t,e,i){var n=this,a=n.config,r=n.state,s=n.api,o=0;if(e&&s.data.shown().length)if(o=e.ratio||e.value,"arc"===t)if(n.pie.padAngle()())o=e.value/n.getTotalDataSum(!0);else{var c=a.gauge_fullCircle?n.getArcLength():-2*n.getStartAngle(),l=n.hasType("gauge")?c:2*Math.PI;o=(e.endAngle-e.startAngle)/l}else if("index"===t){var u=s.data.values.bind(s),d=this.getTotalPerIndex();if(r.hiddenTargetIds.length){var h=u(r.hiddenTargetIds,!1);h.length&&(h=h.reduce((function(t,e){return t.map((function(t,i){return(k(t)?t:0)+e[i]}))})),d=d.map((function(t,e){return t-h[e]})))}e.ratio=k(e.value)&&d&&d[e.index]>0?e.value/d[e.index]:0,o=e.ratio}else if("radar"===t)o=parseFloat(Math.max(e.value,0)+"")/r.current.dataMax*a.radar_size_ratio;else if("bar"===t){var g=n.getYScaleById.bind(n)(e.id).domain().reduce((function(t,e){return e-t}));o=Math.abs(e.value)/g}return i&&o?100*o:o},updateDataIndexByX:function(t){var e=t.reduce((function(t,e,i){return t[+e.x]=i,t}),{});this.data.targets.forEach((function(t){t.values.forEach((function(t,i){var n=e[+t.x];void 0===n&&(n=i),t.index=n}))}))},isBubbleZType:function(t){return this.isBubbleType(t)&&(X(t.value)&&("z"in t.value||"y"in t.value)||z(t.value)&&2===t.value.length)},getDataById:function(t){var e=this.cache.get(t)||this.api.data(t);return z(e)?e[0]:e}},Et={load:function(t,e){var i=this,n=t;n&&(e.filter&&(n=n.filter(e.filter)),(e.type||e.types)&&n.forEach((function(t){var n=e.types&&e.types[t.id]||e.type;i.setTargetType(t.id,n)})),i.data.targets.forEach((function(t){for(var e=0;e0&&d.empty()&&(l=r.data_onout.bind(i.api),u.forEach((function(t){return l((0,n.select)(t).datum(),t)})),u=[]),i.cache.add(mt,u)}}},callOverOutForTouch:function(t){var e=this,i=e.cache.get(yt);(X(t)&&i?t.id!==i.id:t!==i)&&((i||k(i))&&e.setOverOut(!1,i),(t||k(t))&&e.setOverOut(!0,t),e.cache.add(yt,t))},getDraggableSelection:function(){var t=this,e=t.config,i=t.state;return e.interaction_enabled&&e.data_selection_draggable&&t.drag?(0,Ot.drag)().on("drag",(function(e){i.event=e,t.drag(G(e,this))})).on("start",(function(e){i.event=e,t.dragstart(G(e,this))})).on("end",(function(e){i.event=e,t.dragend()})):function(){}},dispatchEvent:function(t,e,i){var n=this,r=n.config,s=n.state,o=s.eventReceiver,c=s.hasAxis,l=s.hasRadar,u=n.$el,d=u.eventRect,h=u.arcs,g=u.radar,f=n.isMultipleX(),p=(l?g.axes.select("."+a.axis+"-"+e+" text"):d||h.selectAll("."+a.target+" path").filter((function(t,i){return i===e}))).node(),x=p.getBoundingClientRect(),v=x.width,_=x.left,m=x.top;if(c&&!l&&!f){var y=o.coords[e];v=y.w,_+=y.x,m+=y.y}var b=_+(i?i[0]:0)+(f||r.axis_rotated?0:v/2),T=m+(i?i[1]:0);rt[/^(mouse|click)/.test(t)?"mouse":"touch"](p,t,{screenX:b,screenY:T,clientX:b,clientY:T})},setDragStatus:function(t){this.state.dragging=t}},Dt={generateClass:function(t,e){return" "+t+" "+(t+this.getTargetSelectorSuffix(e))},getClass:function(t,e){var i=this,n=/s$/.test(t),r=/^(area|arc|line)s?$/.test(t),s=n?"id":"index";return function(o){var c=o.data||o;return((e?i.generateClass(a[n?"shapes":"shape"],c[s]):"")+i.generateClass(a[t],c[r?"id":s])).trim()}},getChartClass:function(t){var e=this;return function(i){return a["chart"+t]+e.classTarget((i.data?i.data:i).id)}},generateExtraLineClass:function(){var t=this.config.line_classes||[],e=[];return function(i){var n=i.id||i.data&&i.data.id||i;return e.indexOf(n)<0&&e.push(n),t[e.indexOf(n)%t.length]}},classRegion:function(t,e){return this.generateClass(a.region,e)+" "+("class"in t?t.class:"")},classTarget:function(t){var e=this.config.data_classes[t],i="";return e&&(i=" "+a.target+"-"+e),this.generateClass(a.target,t)+i},classFocus:function(t){return this.classFocused(t)+this.classDefocused(t)},classFocused:function(t){return" "+(this.state.focusedTargetIds.indexOf(t.id)>=0?a.focused:"")},classDefocused:function(t){return" "+(this.state.defocusedTargetIds.indexOf(t.id)>=0?a.defocused:"")},getTargetSelectorSuffix:function(t){return t||0===t?("-"+t).replace(/[\s?!@#$%^&*()_=+,.<>'":;\[\]\/|~`{}\\]/g,"-"):""},selectorTarget:function(t,e){var i=e||"",n=this.getTargetSelectorSuffix(t);return i+"."+(a.target+n)+", "+i+"."+(a.circles+n)},selectorTargets:function(t,e){var i=this,n=t||[];return n.length?n.map((function(t){return i.selectorTarget(t,e)})):null},selectorLegend:function(t){return"."+(a.legendItem+this.getTargetSelectorSuffix(t))},selectorLegends:function(t){var e=this;return t&&t.length?t.map((function(t){return e.selectorLegend(t)})):null}},It=p(6),Pt=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],zt={getColorFromCss:function(){var t=gt,e=m.body,i=e[t];if(!i){var n=m.createElement("span");n.className=a.colorPattern,n.style.display="none",e.appendChild(n);var r=_.getComputedStyle(n).backgroundImage;n.parentNode.removeChild(n),r.indexOf(";")>-1&&(i=r.replace(/url[^#]*|["'()]|(\s|%20)/g,"").split(";").map((function(t){return t.trim().replace(/[\"'\s]/g,"")})).filter(Boolean),e[t]=i)}return i},generateColor:function(){var t=this,e=t.config,i=e.data_colors,a=e.data_color,r=[],s=P(e.color_pattern)?e.color_pattern:(0,It.scaleOrdinal)(t.getColorFromCss()||Pt).range(),o=s;if(w(e.color_tiles)){var c=e.color_tiles.bind(t.api)(),l=s.map((function(e,i){var a=e.replace(/[#\(\)\s,]/g,""),r=t.state.datetimeId+"-pattern-"+a+"-"+i;return function(t,e,i){var a=(0,n.select)(t.cloneNode(!0));return a.attr("id",i).insert("rect",":first-child").attr("width",a.attr("width")).attr("height",a.attr("height")).style("fill",e),{id:i,node:a.node()}}(c[i%c.length],e,r)}));s=l.map((function(t){return"url(#"+t.id+")"})),t.patterns=l}return function(n){var c,l=n.id||n.data&&n.data.id||n,u=t.isTypeOf(l,["line","spline","step"])||!e.data_types[l];return w(i[l])?c=i[l].bind(t.api)(n):i[l]?c=i[l]:(r.indexOf(l)<0&&r.push(l),c=u?o[r.indexOf(l)%o.length]:s[r.indexOf(l)%s.length],i[l]=c),w(a)?a.bind(t.api)(c,n):c}},generateLevelColor:function(){var t=this.config,e=t.color_pattern,i=t.color_threshold,n="value"===i.unit,a=i.max||100,r=i.values&&i.values.length?i.values:[];return P(i)?function(t){for(var i=n?t:100*t/a,s=e[e.length-1],o=0,c=r.length;o0&&function(){for(var e,a=i["has"+(r?"Negative":"Positive")+"ValueInTargets"](t),l=function(t,i){if(0===(i=i.filter((function(t){return o.indexOf(t)>=0}))).length)return e=i,"continue";var s=i[0],l=n.getId(s);a&&c[s]&&(c[s]=c[s].map((function(t){return(r?t<0:t>0)?t:0})));for(var u,d=function(t,e){if(!c[e])return"continue";var i=n.getId(e);c[e].forEach((function(t,e){var n=+t;i!==l||a&&(r?n>0:n<0)||(c[s][e]+=n)}))},h=1;u=i[h];h++)d(0,u);e=i},u=0;e=s[u];u++)l(0,e)}(),nt(e,Object.keys(c).map((function(t){return nt(e,c[t])})))},getYDomainMin:function(t){return this.getYDomainMinMax(t,"min")},getYDomainMax:function(t){return this.getYDomainMinMax(t,"max")},isHiddenTargetWithYDomain:function(t){var e=this;return e.state.hiddenTargetIds.some((function(i){return e.axis.getId(i)===t}))},getYDomain:function(t,e,i){var n=this,a=n.axis,r=n.config,s=n.scale,o="axis_"+e;if(n.isStackNormalized())return[0,100];var c=s&&s[e]&&"log"===s[e].type,l=t.filter((function(t){return a.getId(t.id)===e})),u=i?n.filterByXDomain(l,i):l;if(0===u.length)return n.isHiddenTargetWithYDomain(e)?s[e].domain():"y2"===e?s.y.domain():n.getYDomain(t,"y2",i);var d=r[o+"_min"],h=r[o+"_max"],g=n.getYDomainMin(u),f=n.getYDomainMax(u),p=r[o+"_center"],x=[Xt.BAR,Xt.BUBBLE,Xt.SCATTER].concat(Mt.Line).some((function(t){var e=t.indexOf("area")>-1?"area":t;return n.hasType(t,u)&&r[e+"_zerobased"]})),v=r[o+"_inverted"],_=n.hasDataLabel()&&r.axis_rotated,m=n.hasDataLabel()&&!r.axis_rotated;g=T(d)?d:T(h)?g=0&&f>=0,b=g<=0&&f<=0;(T(d)&&y||T(h)&&b)&&(x=!1),x&&(y&&(g=0),b&&(f=0));var w=Math.abs(f-g),A={top:.1*w,bottom:.1*w};if(C(p)){var k=Math.max(Math.abs(g),Math.abs(f));f=p+k,g=p-k}if(_){var S=R(s.y.range()),L=n.getDataLabelLength(g,f,"width").map((function(t){return t/S}));["bottom","top"].forEach((function(t,e){A[t]+=w*(L[e]/(1-L[0]-L[1]))}))}else if(m){var E=n.getDataLabelLength(g,f,"height");["bottom","top"].forEach((function(t,e){A[t]+=a.convertPixelsToAxisPadding(E[e],w)}))}var O=r[o+"_padding"];P(O)&&["bottom","top"].forEach((function(t){A[t]=a.getPadding(O,t,A[t],w)})),x&&(y&&(A.bottom=g),b&&(A.top=-f));var D=c?[g,f].map((function(t){return t<0?0:t})):[g-A.bottom,f+A.top];return v?D.reverse():D},getXDomainMinMax:function(t,e){var i=this.config["axis_x_"+e],n=nt(e,t.map((function(t){return nt(e,t.values.map((function(t){return t.x})))}))),a=X(i)?i.value:i;return a=C(a)&&this.axis.isTimeSeries()?ot.bind(this)(a):a,X(i)&&i.fit&&("min"===e&&an)&&(a=void 0),C(a)?a:n},getXDomainMin:function(t){return this.getXDomainMinMax(t,"min")},getXDomainMax:function(t){return this.getXDomainMinMax(t,"max")},getXDomainPadding:function(t){var e,i,n=this,a=n.axis,r=n.config,s=t[1]-t[0],o=r.axis_x_padding;a.isCategorized()?i=0:n.hasType("bar")?i=(e=n.getMaxDataCount())>1?s/(e-1)/2:.5:i=.01*s;var c=i,l=i;return X(o)&&P(o)?(c=T(o.left)?o.left:i,l=T(o.right)?o.right:i):k(r.axis_x_padding)&&(c=o,l=o),{left:c,right:l}},getXDomain:function(t){var e=this,i="log"===e.scale.x.type,n=[e.getXDomainMin(t),e.getXDomainMax(t)],a=0,r=0;if(i)a=n[0],r=n[1];else{var s=e.axis.isCategorized(),o=e.axis.isTimeSeries(),c=e.getXDomainPadding(n),l=n[0],u=n[1];l-u!=0||s||(o?(l=new Date(.5*l.getTime()),u=new Date(1.5*u.getTime())):(l=0===l?1:.5*l,u=0===u?-1:1.5*u)),(l||0===l)&&(a=o?new Date(l.getTime()-c.left):l-c.left),(u||0===u)&&(r=o?new Date(u.getTime()+c.right):u+c.right)}return[a,r]},updateXDomain:function(t,e,i,n,a){var r=this,s=r.config,o=r.org,c=r.scale,l=c.x,u=c.subX,d=s.zoom_enabled;if(i&&(l.domain(a||it(r.getXDomain(t))),o.xDomain=l.domain(),d&&r.zoom.updateScaleExtent(),u.domain(l.domain()),r.brush&&r.brush.scale(u)),e){var h=a||!r.brush||U(r)?o.xDomain:j(r).map(u.invert);l.domain(h),d&&r.zoom.updateScaleExtent()}return n&&l.domain(r.trimXDomain(l.orgDomain())),l.domain()},trimXDomain:function(t){var e=this.getZoomDomain(),i=e[0],n=e[1];return t[0]<=i&&(t[1]=+t[1]+(i-t[0]),t[0]=i),n<=t[1]&&(t[0]=+t[0]-(t[1]-n),t[1]=n),t},getZoomDomain:function(){var t=this.config,e=this.org.xDomain,i=e[0],n=e[1];return C(t.zoom_x_min)&&(i=nt("min",[i,t.zoom_x_min])),C(t.zoom_x_max)&&(n=nt("max",[n,t.zoom_x_max])),[i,n]}};function Bt(t,e,i){var n=t.config,a="axis_"+e+"_tick_format";return(n[a]?n[a]:t.defaultValueFormat)(i)}var $t={getYFormat:function(t){var e=this,i=e.yFormat,n=e.y2Format;return t&&!e.hasType("gauge")&&(i=e.defaultArcValueFormat,n=e.defaultArcValueFormat),function(t,a,r){return(e.axis&&"y2"===e.axis.getId(r)?n:i).call(e,t,a)}},yFormat:function(t){return Bt(this,"y",t)},y2Format:function(t){return Bt(this,"y2",t)},defaultValueFormat:function(t){return T(t)?+t:""},defaultArcValueFormat:function(t,e){return(100*e).toFixed(1)+"%"},dataLabelFormat:function(t){var e=this.config.data_labels,i=function(t){return T(t)?+t:""},n=i;return w(e.format)?n=e.format:D(e.format)&&(n=e.format[t]?!0===e.format[t]?i:e.format[t]:function(){return""}),n.bind(this.api)}},Nt={initLegend:function(){var t=this,e=t.config,i=t.$el;t.legendItemTextBox={},t.state.legendHasRendered=!1,e.legend_show?(!e.legend_contents_bindto&&(i.legend=t.$el.svg.append("g").classed(a.legend,!0).attr("transform",t.getTranslate("legend"))),t.updateLegend()):t.state.hiddenLegendIds=t.mapToIds(t.data.targets)},updateLegend:function(t,e,i){var n=this,r=n.config,s=n.state,o=n.scale,c=n.$el,l=e||{withTransform:!1,withTransitionForTransform:!1,withTransition:!1};l.withTransition=M(l,"withTransition",!0),l.withTransitionForTransform=M(l,"withTransitionForTransform",!0),r.legend_contents_bindto&&r.legend_contents_template?n.updateLegendTemplate():n.updateLegendElement(t||n.mapToIds(n.data.targets),l,i),c.legend.selectAll("."+a.legendItem).classed(a.legendItemHidden,(function(t){var e=!n.isTargetToShow(t);return e&&(this.style.opacity=null),e})),n.updateScales(!1,!o.zoom),n.updateSvgSize(),n.transformAll(l.withTransitionForTransform,i),s.legendHasRendered=!0},updateLegendTemplate:function(){var t=this,e=t.config,i=t.$el,a=(0,n.select)(e.legend_contents_bindto),r=e.legend_contents_template;if(!a.empty()){var s=t.mapToIds(t.data.targets),o=[],c="";s.forEach((function(e){var i=w(r)?r.bind(t.api)(e,t.color(e),t.api.data(e)[0].values):st(r,{COLOR:t.color(e),TITLE:e});i&&(o.push(e),c+=i)}));var l=a.html(c).selectAll((function(){return this.childNodes})).data(o);t.setLegendItem(l),i.legend=a}},updateSizeForLegend:function(t){var e=this,i=e.config,n=e.state,a=n.isLegendTop,r=n.isLegendLeft,s=n.isLegendRight,o=n.isLegendInset,c=n.current,l=t.width,u=t.height,d={top:a?e.getCurrentPaddingTop()+i.legend_inset_y+5.5:c.height-u-e.getCurrentPaddingBottom()-i.legend_inset_y,left:r?e.getCurrentPaddingLeft()+i.legend_inset_x+.5:c.width-l-e.getCurrentPaddingRight()-i.legend_inset_x+.5};e.state.margin3={top:s?0:o?d.top:c.height-u,right:NaN,bottom:0,left:s?c.width-l:o?d.left:0}},transformLegend:function(t){var e=this.$el.legend;(t?e.transition():e).attr("transform",this.getTranslate("legend"))},updateLegendStep:function(t){this.state.legendStep=t},updateLegendItemWidth:function(t){this.state.legendItemWidth=t},updateLegendItemHeight:function(t){this.state.legendItemHeight=t},updateLegendItemColor:function(t,e){var i=this.$el.legend;i&&i.select("."+a.legendItem+"-"+t+" line").style("stroke",e)},getLegendWidth:function(){var t=this.state,e=t.current.width,i=t.isLegendRight,n=t.isLegendInset,a=t.legendItemWidth,r=t.legendStep;return this.config.legend_show?i||n?a*(r+1):e:0},getLegendHeight:function(){var t=this.state,e=t.current,i=t.isLegendRight,n=t.legendItemHeight,a=t.legendStep;return this.config.legend_show?i?e.height:Math.max(20,n)*(a+1):0},opacityForLegend:function(t){return t.classed(a.legendItemHidden)?null:"1"},opacityForUnfocusedLegend:function(t){return t.classed(a.legendItemHidden)?null:"0.3"},toggleFocusLegend:function(t,e){var i=this,r=i.$el.legend,s=i.mapToTargetIds(t);r&&r.selectAll("."+a.legendItem).filter((function(t){return s.indexOf(t)>=0})).classed(a.legendItemFocused,e).transition().duration(100).style("opacity",(function(){return(e?i.opacityForLegend:i.opacityForUnfocusedLegend).call(i,(0,n.select)(this))}))},revertLegend:function(){var t=this,e=t.$el.legend;e&&e.selectAll("."+a.legendItem).classed(a.legendItemFocused,!1).transition().duration(100).style("opacity",(function(){return t.opacityForLegend((0,n.select)(this))}))},showLegend:function(t){var e=this,i=e.config,a=e.$el;i.legend_show||(i.legend_show=!0,a.legend?a.legend.style("visibility","visible"):e.initLegend(),!e.state.legendHasRendered&&e.updateLegend()),e.removeHiddenLegendIds(t),a.legend.selectAll(e.selectorLegends(t)).style("visibility","visible").transition().style("opacity",(function(){return e.opacityForLegend((0,n.select)(this))}))},hideLegend:function(t){var e=this,i=e.config,n=e.$el.legend;i.legend_show&&I(t)&&(i.legend_show=!1,n.style("visibility","hidden")),e.addHiddenLegendIds(t),n.selectAll(e.selectorLegends(t)).style("opacity","0").style("visibility","hidden")},getLegendItemTextBox:function(t,e){var i,n=this,r=n.cache,s=n.state,o=vt;return t&&(!(i=!s.redrawing&&r.get(o)||{})[t]&&(i[t]=n.getTextRect(e,a.legendItem),r.add(o,i)),i=i[t]),i},setLegendItem:function(t){var e=this,i=e.api,r=e.config,s=e.state,o="touch"===s.inputType,c=e.hasType("gauge");t.attr("class",(function(t){var i=(0,n.select)(this);return(!i.empty()&&i.attr("class")||"")+e.generateClass(a.legendItem,t)})).style("visibility",(function(t){return e.isLegendToShow(t)?"visible":"hidden"})),r.interaction_enabled&&(t.style("cursor","pointer").on("click",(function(t,s){F(r.legend_item_onclick,i,s)||(t.altKey?(i.hide(),i.show(s)):(i.toggle(s),(0,n.select)(this).classed(a.legendItemFocused,!1).style("opacity",null))),o&&e.hideTooltip()})),!o&&t.on("mouseout",(function(t,s){F(r.legend_item_onout,i,s)||((0,n.select)(this).classed(a.legendItemFocused,!1),c&&e.undoMarkOverlapped(e,"."+a.gaugeValue),e.api.revert())})).on("mouseover",(function(t,o){F(r.legend_item_onover,i,o)||((0,n.select)(this).classed(a.legendItemFocused,!0),c&&e.markOverlapped(o,e,"."+a.gaugeValue),!s.transiting&&e.isTargetToShow(o)&&i.focus(o))})))},updateLegendElement:function(t,e){var i,r,s,o=this,c=o.config,l=o.state,u=o.$el.legend,d=c.legend_item_tile_width+5,h=0,g=0,f=0,p={},x={},v={},_=[0],y={},b=0,T=l.isLegendRight||l.isLegendInset,w=t.filter((function(t){return!C(c.data_names[t])||null!==c.data_names[t]})),A=e.withTransition,k=function(t,e,i){var n,a=i===w.length-1,r=o.getLegendItemTextBox(e,t),s=r.width+d+(a&&!T?0:10)+c.legend_padding,u=r.height+4,m=T?u:s,A=T?o.getLegendHeight():o.getLegendWidth(),k=function(t,e){e||(n=(A-f-m)/2)<10&&(n=(A-m)/2,f=0,b++),y[t]=b,_[b]=l.isLegendInset?10:n,p[t]=f,f+=m};if(0===i&&(f=0,b=0,h=0,g=0),c.legend_show&&!o.isLegendToShow(e))return x[e]=0,v[e]=0,y[e]=0,void(p[e]=0);x[e]=s,v[e]=u,(!h||s>=h)&&(h=s),(!g||u>=g)&&(g=u);var S=T?g:h;c.legend_equally?(Object.keys(x).forEach((function(t){return x[t]=h})),Object.keys(v).forEach((function(t){return v[t]=g})),(n=(A-S*w.length)/2)<10?(f=0,b=0,w.forEach((function(t){return k(t)}))):k(e,!0)):k(e)};l.isLegendInset&&(b=c.legend_inset_step?c.legend_inset_step:w.length,o.updateLegendStep(b)),l.isLegendRight?(i=function(t){return h*y[t]},r=function(t){return _[y[t]]+p[t]}):l.isLegendInset?(i=function(t){return h*y[t]+10},r=function(t){return _[y[t]]+p[t]}):(i=function(t){return _[y[t]]+p[t]},r=function(t){return g*y[t]});var S=function(t,e){return i(t,e)+4+c.legend_item_tile_width},L=function(t,e){return i(t,e)},E=function(t,e){return i(t,e)-2},O=function(t,e){return i(t,e)-2+c.legend_item_tile_width},R=function(t,e){return r(t,e)+9},D=function(t,e){return r(t,e)-5},I=function(t,e){return r(t,e)+4},z=-200,X=u.selectAll("."+a.legendItem).data(w).enter().append("g");o.setLegendItem(X),X.append("text").text((function(t){return C(c.data_names[t])?c.data_names[t]:t})).each((function(t,e){k(this,t,e)})).style("pointer-events","none").attr("x",T?S:z).attr("y",T?z:R),X.append("rect").attr("class",a.legendItemEvent).style("fill-opacity","0").attr("x",T?L:z).attr("y",T?z:D);var M=function(t){var e=o.getDataById(t);return o.levelColor?o.levelColor(e.values[0].value):o.color(e)},F=c.legend_usePoint;if(F){var B=[];X.append((function(t){var e=P(c.point_pattern)?c.point_pattern:[c.point_type];-1===B.indexOf(t)&&B.push(t);var i=e[B.indexOf(t)%e.length];return"rectangle"===i&&(i="rect"),m.createElementNS(n.namespaces.svg,"hasValidPointType"in o&&o.hasValidPointType(i)?i:"use")})).attr("class",a.legendItemPoint).style("fill",M).style("pointer-events","none").attr("href",(function(t,e,i){return"use"===i[e].nodeName.toLowerCase()?"#"+l.datetimeId+"-point-"+t:void 0}))}else X.append("line").attr("class",a.legendItemTile).style("stroke",M).style("pointer-events","none").attr("x1",T?E:z).attr("y1",T?z:I).attr("x2",T?O:z).attr("y2",T?z:I).attr("stroke-width",c.legend_item_tile_height);s=u.select("."+a.legendBackground+" rect"),l.isLegendInset&&h>0&&0===s.size()&&(s=u.insert("g","."+a.legendItem).attr("class",a.legendBackground).append("rect"));var $=u.selectAll("text").data(w).text((function(t){return C(c.data_names[t])?c.data_names[t]:t})).each((function(t,e){k(this,t,e)}));(A?$.transition():$).attr("x",S).attr("y",R);var N=u.selectAll("rect."+a.legendItemEvent).data(w);if((A?N.transition():N).attr("width",(function(t){return x[t]})).attr("height",(function(t){return v[t]})).attr("x",L).attr("y",D),F){var Y=u.selectAll("."+a.legendItemPoint).data(w);(A?Y.transition():Y).each((function(){var t,e,i,a=this.nodeName.toLowerCase(),r=c.point_r,s="x",o="y",l=2,u=2.5;if("circle"===a){var d=.2*r;s="cx",o="cy",t=r+d,l=2*r,u=-d}else if("rect"===a){var h=2.5*r;e=h,i=h,u=3}(0,n.select)(this).attr(s,(function(t){return E(t)+l})).attr(o,(function(t){return I(t)-u})).attr("r",t).attr("width",e).attr("height",i)}))}else{var G=u.selectAll("line."+a.legendItemTile).data(w);(A?G.transition():G).style("stroke",M).attr("x1",E).attr("y1",I).attr("x2",O).attr("y2",I)}s&&(A?s.transition():s).attr("height",o.getLegendHeight()-12).attr("width",h*(b+1)+10),o.updateLegendItemWidth(h),o.updateLegendItemHeight(g),o.updateLegendStep(b)}},Yt=p(8),Gt={redraw:function(t){void 0===t&&(t={});var e=this,i=e.config,n=e.state,r=e.$el,s=r.main;n.redrawing=!0;var o=e.filterTargetsToShow(e.data.targets),c=t.initializing,l=t.flow,u=e.getWithOption(t),d=u.Transition?i.transition_duration:0,h=u.TransitionForExit?d:0,g=u.TransitionForAxis?d:0,f=e.axis&&e.axis.generateTransitions(g);e.updateSizes(c),u.Legend&&i.legend_show?(t.withTransition=!!d,e.updateLegend(e.mapToIds(e.data.targets),t,f)):u.Dimension&&e.updateDimension(!0),(!e.hasArcType()||n.hasRadar)&&e.updateCircleY&&(e.circleY=e.updateCircleY()),n.hasAxis?(e.axis.redrawAxis(o,u,f,l,c),i.data_empty_label_text&&s.select("text."+a.text+"."+a.empty).attr("x",n.width/2).attr("y",n.height/2).text(i.data_empty_label_text).style("display",o.length?"none":null),e.hasGrid()&&e.updateGrid(d),i.regions.length&&e.updateRegion(d),["bar","candlestick","line","area"].forEach((function(t){var i=q(t);(/^(line|area)$/.test(t)&&e.hasTypeOf(i)||e.hasType(t))&&e["update"+i](h)})),r.text&&s.selectAll("."+a.selectedCircles).filter(e.isBarType.bind(e)).selectAll("circle").remove(),i.interaction_enabled&&!l&&u.EventRect&&(e.redrawEventRect(),e.bindZoomEvent&&e.bindZoomEvent())):(r.arcs&&e.redrawArc(d,h,u.Transform),r.radar&&e.redrawRadar(h)),!n.resizing&&(e.hasPointType()||n.hasRadar)&&e.updateCircle(),e.hasDataLabel()&&!e.hasArcType(null,["radar"])&&e.updateText(h),e.redrawTitle&&e.redrawTitle(),c&&e.updateTypesElements(),e.generateRedrawList(o,l,d,u.Subchart),e.callPluginHook("$redraw",t,d)},generateRedrawList:function(t,e,i,n){var a=this,r=a.config,s=a.state,o=a.getDrawShape();s.hasAxis&&r.subchart_show&&a.redrawSubchart(n,i,o);var c=e&&a.generateFlow({targets:t,flow:e,duration:e.duration,shape:o,xv:a.xv.bind(a)}),l=(i||c)&&ct(),u=a.getRedrawList(o,e,c,l),d=e||r.onrendered?function(){c&&c(),s.redrawing=!1,F(r.onrendered,a.api)}:null;if(d)if(l&&u.length){var h=kt();(0,Yt.transition)().duration(i).each((function(){u.reduce((function(t,e){return t.concat(e)}),[]).forEach((function(t){return h.add(t)}))})).call(h,d)}else s.transiting||d();a.mapToIds(a.data.targets).forEach((function(t){s.withoutFadeIn[t]=!0}))},getRedrawList:function(t,e,i,n){var a=this,r=a.config,s=a.state,o=s.hasAxis,c=s.hasRadar,l=a.$el.grid,u=t.pos,d=u.cx,h=u.cy,g=u.xForText,f=u.yForText,p=[];return o&&((r.grid_x_lines.length||r.grid_y_lines.length)&&p.push(a.redrawGrid(n)),r.regions.length&&p.push(a.redrawRegion(n)),Object.keys(t.type).forEach((function(e){var i=q(e),r=t.type[e];(/^(area|line)$/.test(e)&&a.hasTypeOf(i)||a.hasType(e))&&p.push(a["redraw"+i](r,n))})),!e&&l.main&&p.push(a.updateGridFocus())),(!a.hasArcType()||c)&&P(r.data_labels)&&!1!==r.data_labels&&p.push(a.redrawText(g,f,e,n)),(a.hasPointType()||c)&&!r.point_focus_only&&a.redrawCircle&&p.push(a.redrawCircle(d,h,n,i)),p},updateAndRedraw:function(t){void 0===t&&(t={});var e,i=this,n=i.config,a=i.state;t.withTransition=M(t,"withTransition",!0),t.withTransform=M(t,"withTransform",!1),t.withLegend=M(t,"withLegend",!1),t.withUpdateXDomain=!0,t.withUpdateOrgXDomain=!0,t.withTransitionForExit=!1,t.withTransitionForTransform=M(t,"withTransitionForTransform",t.withTransition),t.withLegend&&n.legend_show||(a.hasAxis&&(e=i.axis.generateTransitions(t.withTransitionForAxis?n.transition_duration:0)),i.updateScales(),i.updateSvgSize(),i.transformAll(t.withTransitionForTransform,e)),i.redraw(t,e)},redrawWithoutRescale:function(){this.redraw({withY:!1,withSubchart:!1,withEventRect:!1,withTransitionForAxis:!1})}};function jt(t,e,i){void 0===t&&(t="linear"),void 0===e&&(e=0),void 0===i&&(i=1);var n={linear:It.scaleLinear,log:It.scaleSymlog,_log:It.scaleLog,time:It.scaleTime}[t]();return n.type=t,/_?log/.test(t)&&n.clamp(!0),n.range([e,i])}var Vt={getXScale:function(t,e,i,n){var a=this,r=a.scale.zoom||jt(a.axis.getAxisType("x"),t,e);return a.getCustomizedScale(i?r.domain(i):r,n)},getYScale:function(t,e,i,n){var a=jt(this.axis.getAxisType(t),e,i);return n&&a.domain(n),a},getYScaleById:function(t,e){void 0===e&&(e=!1);var i="y2"===this.axis.getId(t),n=e?i?"subY2":"subY":i?"y2":"y";return this.scale[n]},getCustomizedScale:function(t,e){var i=this,n=e||function(){return i.axis.x.tickOffset()},a=function(e,i){var a=t(e)+n();return i?a:Math.ceil(a)};for(var r in t)a[r]=t[r];return a.orgDomain=function(){return t.domain()},a.orgScale=function(){return t},i.axis.isCategorized()&&(a.domain=function(e){var i=e;return arguments.length?(t.domain(i),a):[(i=this.orgDomain())[0],i[1]+1]}),a},updateScales:function(t,e){void 0===e&&(e=!0);var i=this,n=i.axis,a=i.config,r=i.format,s=i.org,o=i.scale,c=i.state,l=c.width,u=c.height,d=c.width2,h=c.height2;if(c.hasAxis){var g=a.axis_rotated,f={x:g?1:0,y:g?0:u,subX:g?1:0,subY:g?0:h},p={x:g?u:l,y:g?l:1,subX:g?u:l,subY:g?d:1},x=e&&o.x&&o.x.orgDomain(),v=e&&s.xDomain;o.x=i.getXScale(f.x,p.x,x,(function(){return n.x.tickOffset()})),o.subX=i.getXScale(f.x,p.x,v,(function(t){return t%1?0:n.subX.tickOffset()})),r.xAxisTick=n.getXAxisTickFormat(),n.setAxis("x",o.x,a.axis_x_tick_outer,t),a.subchart_show&&n.setAxis("subX",o.subX,a.axis_x_tick_outer,t),o.y=i.getYScale("y",f.y,p.y,o.y?o.y.domain():a.axis_y_default),o.subY=i.getYScale("y",f.subY,p.subY,o.subY?o.subY.domain():a.axis_y_default),n.setAxis("y",o.y,a.axis_y_tick_outer,t),a.axis_y2_show&&(o.y2=i.getYScale("y2",f.y,p.y,o.y2?o.y2.domain():a.axis_y2_default),o.subY2=i.getYScale("y2",f.subY,p.subY,o.subY2?o.subY2.domain():a.axis_y2_default),n.setAxis("y2",o.y2,a.axis_y2_tick_outer,t))}else i.updateArc&&i.updateArc()},xx:function(t){var e=this.config,i=this.scale,n=i.x,a=i.zoom,r=e.zoom_enabled&&a?a:n;return t?r(T(t.x)?t.x:t):null},xv:function(t){var e=this,i=e.axis,n=e.config,a=e.scale.x,r=e.getBaseValue(t);return i.isTimeSeries()?r=ot.call(e,r):i.isCategorized()&&A(r)&&(r=n.axis_x_categories.indexOf(r)),Math.ceil(a(r))},yv:function(t){var e=this.scale,i=e.y,n=e.y2,a=t.axis&&"y2"===t.axis?n:i;return Math.ceil(a(this.getBaseValue(t)))},subxx:function(t){return t?this.scale.subX(t.x):null}},Ht=p(9),Wt={getDrawShape:function(){var t=this,e=t.config.axis_rotated,i=t.state.hasRadar,n={type:{},indices:{},pos:{}};if(["bar","candlestick","line","area"].forEach((function(e){var i=q(/^(bubble|scatter)$/.test(e)?"line":e);if(t.hasType(e)||t.hasTypeOf(i)||"line"===e&&(t.hasType("bubble")||t.hasType("scatter"))){var a=t.getShapeIndices(t["is"+i+"Type"]),r=t["generateDraw"+i];n.indices[e]=a,n.type[e]=r?r.bind(t)(a,!1):void 0}})),!t.hasArcType()||i){var a=i?t.radarCircleX:e?t.circleY:t.circleX,r=i?t.radarCircleY:e?t.circleX:t.circleY;n.pos={xForText:t.generateXYForText(n.indices,!0),yForText:t.generateXYForText(n.indices,!1),cx:(a||function(){}).bind(t),cy:(r||function(){}).bind(t)}}return n},getShapeIndices:function(t){var e=this,i=e.config,n=i.data_xs,a=P(n),r={},s=a?{}:0;return a&&Q(Object.keys(n).map((function(t){return n[t]}))).forEach((function(t){s[t]=0,r[t]={}})),e.filterTargetsToShow(e.data.targets.filter(t,e)).forEach((function(t){for(var e,a=(t.id in n?n[t.id]:""),o=a?r[a]:r,c=0;e=i.data_groups[c];c++)if(!(e.indexOf(t.id)<0))for(var l,u=0;l=e[u];u++)if(l in o){o[t.id]=o[l];break}S(o[t.id])&&(o[t.id]=a?s[a]++:s++,o.__max__=(a?s[a]:s)-1)})),r},getIndices:function(t,e){var i=this.config.data_xs;return P(i)?t[i[e]]:t},getIndicesMax:function(t){return P(this.config.data_xs)?Object.keys(t).map((function(e){return t[e].__max__||0})).reduce((function(t,e){return t+e})):t.__max__},getShapeX:function(t,e,i){var n=this,a=n.config,r=n.scale,s=i?r.subX:r.zoom||r.x,o=a.bar_padding,c=function(t,e){return t+e},l=D(t)&&(t._$total.length?t._$total.reduce(c)/2:0);return function(i){var a=n.getIndices(e,i.id),r=i.id in a?a[i.id]:0,u=(a.__max__||0)+1,d=0;if(P(i.x)){var h=s(i.x,!0);d=l?h-(t[i.id]||t._$width)+t._$total.slice(0,r+1).reduce(c)-l:h-(k(t)?t:t._$width)*(u/2-r)}return t&&d&&u>1&&o&&(r&&(d+=o*r),u>2?d-=(u-1)*o/2:2===u&&(d-=o/2)),d}},getShapeY:function(t){var e=this,i=e.isStackNormalized();return function(n){var a=n.value;return k(n)?a=n:i?a=e.getRatio("index",n,!0):e.isBubbleZType(n)&&(a=e.getBubbleZData(n.value,"y")),e.getYScaleById(n.id,t)(a)}},getShapeYMin:function(t){var e=this,i=e.scale[e.axis.getId(t)].domain()[0];return!e.isGrouped(t)&&i>0?i:0},getShapeOffsetData:function(t){var e=this,i=e.orderTargets(e.filterTargetsToShow(e.data.targets.filter(t,e))),n=e.isStackNormalized(),a=i.map((function(t){var i=t.values,a={};e.isStepType(t)&&(i=e.convertValuesToStep(i));var r=i.reduce((function(t,i){var r=+i.x;return t[r]=i,a[r]=n?e.getRatio("index",i,!0):i.value,t}),{});return{id:t.id,rowValues:i,rowValueMapByXValue:r,values:a}}));return{indexMapByTargetId:i.reduce((function(t,e,i){return t[e.id]=i,t}),{}),shapeOffsetTargets:a}},getShapeOffset:function(t,e,i){var n=this,a=n.getShapeOffsetData(t),r=a.shapeOffsetTargets,s=a.indexMapByTargetId;return function(t,a){var o=n.getIndices(e,t.id),c=n.getYScaleById(t.id,i),l=c(n.getShapeYMin(t.id)),u=+t.x,d=l;return r.filter((function(e){return e.id!==t.id})).forEach((function(e){if(o[e.id]===o[t.id]&&s[e.id]=0&&(d+=c(e.values[u])-l)}})),d}},getBarW:function(t,e,i){var n=this,a=n.config,r=n.org,s=n.scale,o=n.getMaxDataCount(),c="bar"===t&&a.data_groups.length,l=t+"_width",u=s.zoom&&!n.axis.isCategorized()?r.xDomain.map((function(t){return s.zoom(t)})).reduce((function(t,e){return Math.abs(t)+e}))/o:e.tickInterval(o),d=function(t){var e=t?a[l][t]:a[l],n=t?e.ratio:a[l+"_ratio"],r=t?e.max:a[l+"_max"],s=k(e)?e:i?u*n/i:0;return r&&s>r?r:s},h=d();return!c&&D(a[l])&&(h={_$width:h,_$total:[]},n.filterTargetsToShow(n.data.targets).forEach((function(t){a[l][t.id]&&(h[t.id]=d(t.id),h._$total.push(h[t.id]||h._$width))}))),h},isWithinShape:function(t,e){var i,r=this,s=(0,n.select)(t);return r.isTargetToShow(e.id)?"hasValidPointType"in r&&r.hasValidPointType(t.nodeName)?i=r.isStepType(e)?r.isWithinStep(t,r.getYScaleById(e.id)(e.value)):r.isWithinCircle(t,r.isBubbleType(e)?1.5*r.pointSelectR(e):0):"path"===t.nodeName&&(i=!s.classed(a.bar)||r.isWithinBar(t)):i=!1,i},getInterpolate:function(t){var e=this.getInterpolateType(t);return{basis:Ht.curveBasis,"basis-closed":Ht.curveBasisClosed,"basis-open":Ht.curveBasisOpen,bundle:Ht.curveBundle,cardinal:Ht.curveCardinal,"cardinal-closed":Ht.curveCardinalClosed,"cardinal-open":Ht.curveCardinalOpen,"catmull-rom":Ht.curveCatmullRom,"catmull-rom-closed":Ht.curveCatmullRomClosed,"catmull-rom-open":Ht.curveCatmullRomOpen,"monotone-x":Ht.curveMonotoneX,"monotone-y":Ht.curveMonotoneY,natural:Ht.curveNatural,"linear-closed":Ht.curveLinearClosed,linear:Ht.curveLinear,step:Ht.curveStep,"step-after":Ht.curveStepAfter,"step-before":Ht.curveStepBefore}[e]},getInterpolateType:function(t){var e=this,i=e.config,n=i.spline_interpolation_type,a=e.isInterpolationType(n)?n:"cardinal";return e.isSplineType(t)?a:e.isStepType(t)?i.line_step_type:"linear"}},Ut={setContainerSize:function(){var t=this,e=t.state;e.current.width=t.getCurrentWidth(),e.current.height=t.getCurrentHeight()},getCurrentWidth:function(){return this.config.size_width||this.getParentWidth()},getCurrentHeight:function(){var t=this,e=t.config,i=e.size_height||t.getParentHeight();return i>0?i:320/(t.hasType("gauge")&&!e.gauge_fullCircle?2:1)},getCurrentPaddingTop:function(){var t=this,e=t.config,i=t.state.hasAxis,n=t.$el,a=i?e.axis_y2_axes.length:0,r=T(e.padding_top)?e.padding_top:0;return n.title&&n.title.node()&&(r+=t.getTitlePadding()),a&&e.axis_rotated&&(r+=t.getHorizontalAxisHeight("y2")*a),r},getCurrentPaddingBottom:function(){var t=this,e=t.config,i=t.state.hasAxis,n=e.axis_rotated?"y":"x",a=i?e["axis_"+n+"_axes"].length:0;return(T(e.padding_bottom)?e.padding_bottom:0)+(a?t.getHorizontalAxisHeight(n)*a:0)},getCurrentPaddingLeft:function(t){var e=this,i=e.config,n=e.state.hasAxis,a=i.axis_rotated,r=a?"x":"y",s=n?i["axis_"+r+"_axes"].length:0,o=n?e.getAxisWidthByAxisId(r,t):0;return(T(i.padding_left)?i.padding_left:n&&a?i.axis_x_show?Math.max(E(o),40):1:!n||i.axis_y_show&&!i.axis_y_inner?E(o):e.axis.getAxisLabelPosition("y").isOuter?30:1)+o*s},getCurrentPaddingRight:function(t){void 0===t&&(t=!1);var e=this,i=e.config,n=e.state.hasAxis,a=e.state.isLegendRight?e.getLegendWidth()+20:0,r=n?i.axis_y2_axes.length:0,s=n?e.getAxisWidthByAxisId("y2"):0,o=t?e.axis.getXAxisTickTextY2Overflow(10):0;return(T(i.padding_right)?i.padding_right+1:e.axis&&i.axis_rotated?10+a:!e.axis||i.axis_y2_show&&!i.axis_y2_inner?Math.max(E(s)+a,o):Math.max(2+a+(e.axis.getAxisLabelPosition("y2").isOuter?20:0),o))+s*r},getParentRectValue:function(t){for(var e,i="offset"+q(t),n=this.$el.chart.node();!e&&n&&"BODY"!==n.tagName;){try{e=n.getBoundingClientRect()[t]}catch(t){i in n&&(e=n[i])}n=n.parentNode}if("width"===t){var a=m.body.offsetWidth;e>a&&(e=a)}return e},getParentWidth:function(){return this.getParentRectValue("width")},getParentHeight:function(){var t=this.$el.chart.style("height");return t.indexOf("px")>0?parseInt(t,10):0},getSvgLeft:function(t){var e=this,i=e.config,n=e.$el,r=i.axis_rotated||!i.axis_rotated&&!i.axis_y_inner,s=i.axis_rotated?a.axisX:a.axisY,o=n.main.select("."+s).node(),c=o&&r?o.getBoundingClientRect():{right:0},l=n.chart.node().getBoundingClientRect(),u=e.hasArcType(),d=c.right-l.left-(u?0:e.getCurrentPaddingLeft(t));return d>0?d:0},updateDimension:function(t){var e=this,i=e.config,n=e.state.hasAxis,a=e.$el;n&&!t&&e.axis.x&&i.axis_rotated&&e.axis.subX&&e.axis.subX.create(a.axis.subX),e.updateScales(t),e.updateSvgSize(),e.transformAll(!1)},updateSvgSize:function(){var t=this,e=t.state,i=e.clip,n=e.current,r=e.hasAxis,s=e.width,o=e.height,c=t.$el.svg;if(c.attr("width",n.width).attr("height",n.height),r){var l=c.select("."+a.brush+" .overlay"),u={width:0,height:0};l.size()&&(u.width=+l.attr("width"),u.height=+l.attr("height")),c.selectAll(["#"+i.id,"#"+i.idGrid]).select("rect").attr("width",s).attr("height",o),c.select("#"+i.idXAxis).select("rect").call(t.setXAxisClipPath.bind(t)),c.select("#"+i.idYAxis).select("rect").call(t.setYAxisClipPath.bind(t)),i.idSubchart&&c.select("#"+i.idSubchart).select("rect").attr("width",s).attr("height",u.height)}},updateSizes:function(t){var e=this,i=e.config,n=e.state,a=e.$el.legend,r=i.axis_rotated,s=e.hasArcType();t||e.setContainerSize();var o={width:a?e.getLegendWidth():0,height:a?e.getLegendHeight():0};!s&&i.axis_x_show&&i.axis_x_tick_autorotate&&e.updateXAxisTickClip();var c=n.isLegendRight||n.isLegendInset?0:o.height,l=r||s?0:e.getHorizontalAxisHeight("x"),u=i.subchart_axis_x_show&&i.subchart_axis_x_tick_text_show?l:30,d=i.subchart_show&&!s?i.subchart_size_height+u:0;n.margin=!s&&r?{top:e.getHorizontalAxisHeight("y2")+e.getCurrentPaddingTop(),right:s?0:e.getCurrentPaddingRight(!0),bottom:e.getHorizontalAxisHeight("y")+c+e.getCurrentPaddingBottom(),left:d+(s?0:e.getCurrentPaddingLeft())}:{top:4+e.getCurrentPaddingTop(),right:s?0:e.getCurrentPaddingRight(!0),bottom:l+d+c+e.getCurrentPaddingBottom(),left:s?0:e.getCurrentPaddingLeft()},n.margin2=r?{top:n.margin.top,right:NaN,bottom:20+c,left:e.state.rotatedPadding.left}:{top:n.current.height-d-c,right:NaN,bottom:u+c,left:n.margin.left},n.margin3={top:0,right:NaN,bottom:0,left:0},e.updateSizeForLegend&&e.updateSizeForLegend(o),n.width=n.current.width-n.margin.left-n.margin.right,n.height=n.current.height-n.margin.top-n.margin.bottom,n.width<0&&(n.width=0),n.height<0&&(n.height=0),n.width2=r?n.margin.left-n.rotatedPadding.left-n.rotatedPadding.right:n.width,n.height2=r?n.height:n.current.height-n.margin2.top-n.margin2.bottom,n.width2<0&&(n.width2=0),n.height2<0&&(n.height2=0);var h=e.hasType("gauge"),g=i.legend_show&&n.isLegendRight;n.arcWidth=n.width-(g?o.width+10:0),n.arcHeight=n.height-(g&&!h?0:10),h&&!i.gauge_fullCircle&&(n.arcHeight+=n.height-e.getPaddingBottomForGauge()),e.updateRadius&&e.updateRadius(),n.isLegendRight&&s&&(n.margin3.left=n.arcWidth/2+1.1*n.radiusExpanded)}},Zt={opacityForText:function(t){var e=this;return e.isBarType(t)&&!e.meetsLabelThreshold(Math.abs(e.getRatio("bar",t)),"bar")?"0":e.hasDataLabel?"1":"0"},initText:function(){this.$el.main.select("."+a.chart).append("g").attr("class",a.chartTexts)},updateTargetsForText:function(t){var e=this,i=e.getChartClass("Text"),n=e.getClass("texts","id"),r=e.classFocus.bind(e);e.$el.main.select("."+a.chartTexts).selectAll("."+a.chartText).data(t).attr("class",(function(t){return i(t)+r(t)})).enter().append("g").style("opacity","0").attr("class",i).style("pointer-events","none").append("g").attr("class",n)},updateText:function(t){var e=this,i=e.config,r=e.$el,s=e.getClass("text","index"),o=r.main.selectAll("."+a.texts).selectAll("."+a.text).data(e.labelishData.bind(e));o.exit().transition().duration(t).style("fill-opacity","0").remove(),r.text=o.enter().append("text").merge(o).attr("class",s).attr("text-anchor",(function(t){var n=t.value<0;if(e.isCandlestickType(t)){var a=e.getCandlestickData(t);n=a&&!a._isUp}return i.axis_rotated?n?"end":"start":"middle"})).style("fill",e.updateTextColor.bind(e)).style("fill-opacity","0").each((function(t,i,a){var r=(0,n.select)(this),s=t.value;if(e.isBubbleZType(t))s=e.getBubbleZData(s,"z");else if(e.isCandlestickType(t)){var o=e.getCandlestickData(t);o&&(s=o.close)}s=e.dataLabelFormat(t.id)(s,t.id,i,a),k(s)?this.textContent=s:N(r,s)}))},updateTextColor:function(t){var e,i=this,n=i.config,a=n.data_labels_colors,r=i.isArcType(t)&&!i.isRadarType(t)?null:i.color(t);if(A(a))e=a;else if(X(a)){e=a[(t.data||t).id]}else w(a)&&(e=a.bind(i.api)(r,t));if(i.isCandlestickType(t)&&!w(a)){var s=i.getCandlestickData(t);if(s&&!s._isUp){var o=n.candlestick_color_down;e=X(o)?o[t.id]:o}}return e||r},redrawText:function(t,e,i,a){var r=this,s=H(!0);return r.$el.text.style("fill",r.updateTextColor.bind(r)).style("fill-opacity",i?0:r.opacityForText.bind(r)).each((function(i,r){var o=a&&this.getAttribute("x")?(0,n.select)(this).transition(s):(0,n.select)(this),c=t.bind(this)(i,r),l=e.bind(this)(i,r);this.childElementCount?o.attr("transform","translate("+c+" "+l+")"):o.attr("x",c).attr("y",l)})),!0},getTextRect:function(t,e){var i=this,a=t.node?t.node():t;/text/i.test(a.tagName)||(a=a.querySelector("text"));var r=a.textContent,s=bt+"-"+r.replace(/\W/g,"_"),o=i.cache.get(s);return o||(i.$el.svg.append("text").style("visibility","hidden").style("font",(0,n.select)(a).style("font")).classed(e,!0).text(r).call((function(t){o=V(t.node())})).remove(),i.cache.add(s,o)),o},generateXYForText:function(t,e){var i=this,n=Object.keys(t),a={},r=e?i.getXForText:i.getYForText;return i.hasType("radar")&&n.push("radar"),n.forEach((function(e){a[e]=i["generateGet"+q(e)+"Points"](t[e],!1)})),function(t,e){var n=(i.isAreaType(t)?"area":i.isBarType(t)&&"bar")||i.isCandlestickType(t)&&"candlestick"||i.isRadarType(t)&&"radar"||"line";return r.call(i,a[n](t,e),t,this)}},getCenteredTextPos:function(t,e,i){var n=this.config,a=n.axis_rotated;if(n.data_labels.centered&&this.isBarType(t)){var r=V(i),s=t.value>=0;if(a){var o=(s?e[1][1]-e[0][1]:e[0][1]-e[1][1])/2+r.width/2;return s?-o-3:o+2}var c=(s?e[0][1]-e[1][1]:e[1][1]-e[0][1])/2+r.height/2;return s?c:-c-2}return 0},getTextPos:function(t,e){var i=this.config.data_labels_position;return(t in i?i[t]:i)[e]||0},getXForText:function(t,e,i){var n=this,a=n.config,r=n.state,s=a.axis_rotated,o=t[0][0];if(n.hasType("candlestick"))s?o=n.getCandlestickData(e)._isUp?t[2][2]+4:t[2][1]-4:o+=(t[1][0]-o)/2;else if(s){var c=n.isBarType(e)?4:6;o=t[2][1]+c*(e.value<0?-1:1)}else o=n.hasType("bar")?(t[2][0]+t[0][0])/2:o;if(null===e.value)if(o>r.width){var l=V(i).width;o=r.width-l}else o<0&&(o=4);return s&&(o+=n.getCenteredTextPos(e,t,i)),o+n.getTextPos(e.id,"x")},getYForText:function(t,e,i){var n,a=this,r=a.config,s=a.state,o=r.axis_rotated,c=r.point_r,l=V(i),u=e.value,d=3;if(a.isCandlestickType(e))u=a.getCandlestickData(e),o?(n=t[0][0],n+=(t[1][0]-n)/2+d):n=u&&u._isUp?t[2][2]-d:t[2][1]+4*d;else if(o)n=(t[0][0]+t[2][0]+.6*l.height)/2;else if(n=t[2][1],k(c)&&c>5&&(a.isLineType(e)||a.isScatterType(e))&&(d+=r.point_r/2.3),u<0||0===u&&!s.hasPositiveValue&&s.hasNegativeValue)n+=l.height+(a.isBarType(e)?-d:d);else{var h=2*-d;a.isBarType(e)?h=-d:a.isBubbleType(e)&&(h=d),n+=h}if(null===e.value&&!o){var g=l.height;ns.height&&(n=s.height-4)}return o||(n+=a.getCenteredTextPos(e,t,i)),n+a.getTextPos(e.id,"y")},markOverlapped:function(t,e,i){var r=e.$el.arcs.selectAll(i),s=r.filter((function(e){return e.data.id!==t})),o=r.filter((function(e){return e.data.id===t})),c=J(o.node()),l=function(t,e){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2))};o.node()&&s.each((function(){var t=J(this),e=(0,n.select)(this),i=l(c.e,c.f)>l(t.e,t.f)?o:e,r=Math.ceil(Math.abs(c.e-t.e))=(this.config[e+"_label_threshold"]||0)}};function qt(t,e){void 0===t&&(t="left");var i=k(e);return t.indexOf("center")>-1?i?e/2:"middle":t.indexOf("right")>-1?i?e:"end":i?0:"start"}var Kt={initTitle:function(){var t=this.config,e=this.$el;t.title_text&&(e.title=e.svg.append("g"),N(e.title.append("text").style("text-anchor",qt(t.title_position)).attr("class",a.title),t.title_text,[.3,1.5]))},redrawTitle:function(){var t=this,e=t.config,i=t.state.current,n=t.$el.title;if(n){var a=t.yForTitle.call(t);/g/i.test(n.node().tagName)?n.attr("transform","translate("+qt(e.title_position,i.width)+", "+a+")"):n.attr("x",t.xForTitle.call(t)).attr("y",a)}},xForTitle:function(){var t,e=this,i=e.config,n=e.state.current,r=i.title_position||"left",s=e.getTextRect(e.$el.title,a.title).width;return/(right|center)/.test(r)?(t=n.width-s,r.indexOf("right")>=0?t=n.width-s-i.title_padding.right:r.indexOf("center")>=0&&(t=(n.width-s)/2)):t=i.title_padding.left||0,t},yForTitle:function(){var t=this;return(t.config.title_padding.top||0)+t.getTextRect(t.$el.title,a.title).height},getTitlePadding:function(){return this.yForTitle()+(this.config.title_padding.bottom||0)}},Jt={initTooltip:function(){var t=this,e=t.config,i=t.$el;i.tooltip=(0,n.select)(e.tooltip_contents.bindto),i.tooltip.empty()&&(i.tooltip=i.chart.style("position","relative").append("div").attr("class",a.tooltipContainer).style("position","absolute").style("pointer-events","none").style("display","none")),t.bindTooltipResizePos()},initShowTooltip:function(){var t=this,e=t.config,i=t.$el,n=t.state,a=n.hasAxis,r=n.hasRadar;if(e.tooltip_init_show){var s=!(a&&r);if(t.axis&&t.axis.isTimeSeries()&&A(e.tooltip_init_x)){var o,c,l=t.data.targets[0];for(e.tooltip_init_x=ot.call(t,e.tooltip_init_x),o=0;(c=l.values[o])&&c.x-e.tooltip_init_x!=0;o++);e.tooltip_init_x=o}var u=t.data.targets.map((function(i){var n=s?0:e.tooltip_init_x;return t.addName(i.values[n])}));s&&(u=[u[e.tooltip_init_x]]),i.tooltip.html(t.getTooltipHTML(u,t.axis&&t.axis.getXAxisTickFormat(),t.getYFormat(t.hasArcType(null,["radar"])),t.color)),e.tooltip_contents.bindto||i.tooltip.style("top",e.tooltip_init_position.top).style("left",e.tooltip_init_position.left).style("display","block")}},getTooltipHTML:function(){var t=this,e=t.api,i=t.config;return w(i.tooltip_contents)?i.tooltip_contents.bind(e).apply(void 0,arguments):t.getTooltipContent.apply(t,arguments)},getTooltipContent:function(t,e,i,n){var r=this,s=r.api,o=r.config,c=r.state,l=["title","name","value"].map((function(t){var e=o["tooltip_format_"+t];return w(e)?e.bind(s):e})),u=l[0],d=l[1],h=l[2];u=u||e,d=d||function(t){return t},h=h||(r.isStackNormalized()?function(t,e){return(100*e).toFixed(2)+"%"}:i);var g=o.tooltip_order,f=function(t){return r.axis&&r.isBubbleZType(t)?r.getBubbleZData(t.value,"z"):r.getBaseValue(t)},p=r.levelColor?function(t){return r.levelColor(t.value)}:function(t){return n(t)},x=o.tooltip_contents,v=x.template,_=r.mapToTargetIds();if(null===g&&o.data_groups.length){var m=r.orderTargets(r.data.targets).map((function(t){return t.id})).reverse();t.sort((function(t,e){var i=t?t.value:null,n=e?e.value:null;return i>0&&n>0&&(i=t.id?m.indexOf(t.id):null,n=e.id?m.indexOf(e.id):null),i-n}))}else/^(asc|desc)$/.test(g)?t.sort((function(t,e){var i=t?f(t):null,n=e?f(e):null;return"asc"===g?i-n:n-i})):w(g)&&t.sort(g.bind(s));var y,b,A,k,C,L=r.getTooltipContentTemplate(v),E=t.length;for(C=0;C'+O+"":""})}if(!b.ratio&&r.$el.arcs&&(b.ratio=r.getRatio("arc",r.$el.arcs.select("path."+a.arc+"-"+b.id).data()[0])),A=[b.ratio,b.id,b.index,t],k=$(h.apply(void 0,[f(b)].concat(A))),r.isAreaRangeType(b)){var R=["high","low"].map((function(t){return $(h.apply(void 0,[r.getRangedData(b,t)].concat(A)))})),D=R[0],I=R[1];k="Mid: "+k+" High: "+D+" Low: "+I}else if(r.isCandlestickType(b)){var P=["open","high","low","close","volume"].map((function(t){return $(h.apply(void 0,[r.getRangedData(b,t,"candlestick")].concat(A)))})),z=P[0],M=P[1],F=P[2],B=P[3],N=P[4];k="Open: "+z+" High: "+M+" Low: "+F+" Close: "+B+(N?" Volume: "+N:"")}if(void 0!==k)if("continue"===function(){if(null===b.name)return"continue";var t=$(d.apply(void 0,[b.name].concat(A))),e=p(b),i={CLASS_TOOLTIP_NAME:a.tooltipName+r.getTargetSelectorSuffix(b.id),COLOR:v||!r.patterns?e:'',NAME:t,VALUE:k};if(v&&X(x.text)){var n=_.indexOf(b.id);Object.keys(x.text).forEach((function(t){i[t]=x.text[t][n]}))}y+=st(L[1],i)}())continue}return y+""},getTooltipContentTemplate:function(t){return(t||'\n\t\t\t\t{=TITLE}\n\t\t\t\t{{\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t}}\n\t\t\t
'+(this.patterns?"{=COLOR}":'')+'{=NAME}{=VALUE}
').replace(/(\r?\n|\t)/g,"").split(/{{(.*)}}/)},tooltipPosition:function(t,e,i,n){var a=this,r=a.config,s=a.scale,o=a.state,c=o.width,l=o.height,u=o.current,d=o.isLegendRight,h=o.inputType,g=o.event,f=a.hasType("gauge")&&!r.gauge_fullCircle,p=a.getSvgLeft(!0),x=p+u.width-a.getCurrentPaddingRight(),v=a.getCurrentPaddingLeft(!0),_=G(g,n),m=_[0],y=_[1];if(a.hasArcType()){"touch"===h||a.hasType("radar")||(y+=f?l:l/2,m+=(c-(d?a.getLegendWidth():0))/2)}else{var b=s.x(t[0].x);r.axis_rotated?(y=b+20,m+=p+100,x-=p):(y-=5,m=p+v+20+(a.zoomScale?m:b))}m+e+15>x&&(m-=e+v),y+i>u.height&&(y-=f?3*i:i+30);var T={top:y,left:m};return Object.keys(T).forEach((function(t){T[t]<0&&(T[t]=0)})),T},showTooltip:function(t,e){var i=this,n=i.config,a=i.state,r=i.$el.tooltip,s=n.tooltip_contents.bindto,o=i.hasArcType(null,["radar"]),c=t.filter((function(t){return t&&T(i.getBaseValue(t))}));if(r&&0!==c.length&&n.tooltip_show){var l=r.datum(),u=l||{},d=u.width,h=void 0===d?0:d,g=u.height,f=void 0===g?0:g,p=JSON.stringify(t);if(!l||l.current!==p){var x=t.concat().sort()[0].index;F(n.tooltip_onshow,i.api,t),r.html(i.getTooltipHTML(t,i.axis?i.axis.getXAxisTickFormat():i.categoryName.bind(i),i.getYFormat(o),i.color)).style("display",null).style("visibility",null).datum(l={index:x,current:p,width:h=r.property("offsetWidth"),height:f=r.property("offsetHeight")}),F(n.tooltip_onshown,i.api,t),i._handleLinkedCharts(!0,x)}if(!s){var v=(n.tooltip_position||i.tooltipPosition).call(this,c,h,f,e);["top","left"].forEach((function(t){var e=v[t];r.style(t,e+"px"),"left"!==t||l.xPosInPercent||(l.xPosInPercent=e/a.current.width*100)}))}}},bindTooltipResizePos:function(){var t=this,e=t.resizeFunction,i=t.state,n=t.$el.tooltip;e.add((function(){if("block"===n.style("display")){var t=i.current,e=n.datum(),a=e.width,r=e.xPosInPercent,s=t.width/100*r,o=t.width-(s+a);o<0&&(s+=o),n.style("left",s+"px")}}))},hideTooltip:function(t){var e=this,i=e.api,n=e.config,a=e.$el.tooltip;if(a&&"none"!==a.style("display")&&(!n.tooltip_doNotHide||t)){var r=JSON.parse(a.datum().current);F(n.tooltip_onhide,i,r),a.style("display","none").style("visibility","hidden").datum(null),F(n.tooltip_onhidden,i,r)}},_handleLinkedCharts:function(t,e){var i=this,n=i.charts,a=i.config,r=i.state.event;if(r&&r.isTrusted&&a.tooltip_linked&&n.length>1){var s=a.tooltip_linked_name;n.filter((function(t){return t!==i.api})).forEach((function(i){var n=i.internal,a=n.config,r=n.$el,o=a.tooltip_linked,c=a.tooltip_linked_name,l=m.body.contains(r.chart.node());if(o&&s===c&&l){var u=r.tooltip.data()[0],d=e!==(u&&u.index);try{i.tooltip[t&&d?"show":"hide"]({index:e})}catch(t){}}}))}}},Qt={getTranslate:function(t,e){void 0===e&&(e=0);var i,n,a=this,r=a.config,s=a.state,o=r.axis_rotated,c=0;if(e&&/^(x|y2?)$/.test(t)&&(c=a.getAxisSize(t)*e),"main"===t)i=O(s.margin.left),n=O(s.margin.top);else if("context"===t)i=O(s.margin2.left),n=O(s.margin2.top);else if("legend"===t)i=s.margin3.left,n=s.margin3.top;else if("x"===t)i=o?-c:0,n=o?0:s.height+c;else if("y"===t)i=o?0:-c,n=o?s.height+c:0;else if("y2"===t)i=o?0:s.width+c,n=o?1-c:0;else if("subX"===t)i=0,n=o?0:s.height2;else if("arc"===t)i=s.arcWidth/2,n=s.arcHeight/2;else if("radar"===t){var l=a.getRadarSize()[0];i=s.width/2-l,n=O(s.margin.top)}return"translate("+i+", "+n+")"},transformMain:function(t,e){var i,n,r,s=this,o=s.$el.main;e&&e.axisX?i=e.axisX:(i=o.select("."+a.axisX),t&&(i=i.transition())),e&&e.axisY?n=e.axisY:(n=o.select("."+a.axisY),t&&(n=n.transition())),e&&e.axisY2?r=e.axisY2:(r=o.select("."+a.axisY2),t&&(r=r.transition())),(t?o.transition():o).attr("transform",s.getTranslate("main")),i.attr("transform",s.getTranslate("x")),n.attr("transform",s.getTranslate("y")),r.attr("transform",s.getTranslate("y2")),o.select("."+a.chartArcs).attr("transform",s.getTranslate("arc"))},transformAll:function(t,e){var i=this,n=i.config,a=i.state.hasAxis,r=i.$el;i.transformMain(t,e),a&&n.subchart_show&&i.transformContext(t,e),r.legend&&i.transformLegend(t)}},te={setTargetType:function(t,e){var i=this,n=i.config,a=i.state.withoutFadeIn;i.mapToTargetIds(t).forEach((function(t){a[t]=e===n.data_types[t],n.data_types[t]=e})),t||(n.data_type=e)},updateTypesElements:function(){var t=this,e=t.state.current;Object.keys(Xt).forEach((function(i){var n=Xt[i],a=t.hasType(n,null,!0),r=e.types.indexOf(n);-1===r&&a?e.types.push(n):r>-1&&!a&&e.types.splice(r,1)})),t.setChartElements()},hasType:function(t,e,i){void 0===i&&(i=!1);var n=this,a=n.config,r=n.state.current,s=a.data_types,o=e||n.data.targets,c=!1;return!i&&r.types.length&&r.types.indexOf(t)>-1?c=!0:o&&o.length?o.forEach((function(e){var i=s[e.id];i!==t&&(i||"line"!==t)||(c=!0)})):Object.keys(s).length?Object.keys(s).forEach((function(e){s[e]===t&&(c=!0)})):c=a.data_type===t,c},hasTypeOf:function(t,e,i){var n=this;return void 0===i&&(i=[]),!!(t in Mt)&&!Mt[t].filter((function(t){return-1===i.indexOf(t)})).every((function(t){return!n.hasType(t,e)}))},isTypeOf:function(t,e){var i=A(t)?t:t.id,n=this.config.data_types[i]||this.config.data_type;return z(e)?e.indexOf(n)>=0:n===e},hasPointType:function(){var t=this;return t.hasTypeOf("Line")||t.hasType("bubble")||t.hasType("scatter")},hasArcType:function(t,e){return this.hasTypeOf("Arc",t,e)},hasMultiArcGauge:function(){return this.hasType("gauge")&&"multi"===this.config.gauge_type},isLineType:function(t){var e=A(t)?t:t.id;return!this.config.data_types[e]||this.isTypeOf(e,Mt.Line)},isStepType:function(t){return this.isTypeOf(t,Mt.Step)},isSplineType:function(t){return this.isTypeOf(t,Mt.Spline)},isAreaType:function(t){return this.isTypeOf(t,Mt.Area)},isAreaRangeType:function(t){return this.isTypeOf(t,Mt.AreaRange)},isBarType:function(t){return this.isTypeOf(t,"bar")},isBubbleType:function(t){return this.isTypeOf(t,"bubble")},isCandlestickType:function(t){return this.isTypeOf(t,"candlestick")},isScatterType:function(t){return this.isTypeOf(t,"scatter")},isPieType:function(t){return this.isTypeOf(t,"pie")},isGaugeType:function(t){return this.isTypeOf(t,"gauge")},isDonutType:function(t){return this.isTypeOf(t,"donut")},isRadarType:function(t){return this.isTypeOf(t,"radar")},isArcType:function(t){return this.isPieType(t)||this.isDonutType(t)||this.isGaugeType(t)||this.isRadarType(t)},isCirclePoint:function(t){var e=this.config,i=e.point_pattern;return!(!t||"circle"!==t.tagName)||"circle"===e.point_type&&(!i||z(i)&&0===i.length)},lineData:function(t){return this.isLineType(t)?[t]:[]},arcData:function(t){return this.isArcType(t.data)?[t]:[]},labelishData:function(t){return this.isBarType(t)||this.isLineType(t)||this.isScatterType(t)||this.isBubbleType(t)||this.isCandlestickType(t)||this.isRadarType(t)?t.values.filter((function(t){return k(t.value)||!!t.value})):[]},barLineBubbleData:function(t){return this.isBarType(t)||this.isLineType(t)||this.isBubbleType(t)?t.values:[]},isInterpolationType:function(t){return["basis","basis-closed","basis-open","bundle","cardinal","cardinal-closed","cardinal-open","catmull-rom","catmull-rom-closed","catmull-rom-open","linear","linear-closed","monotone-x","monotone-y","natural"].indexOf(t)>=0}},ee=function(){function t(t){this.api=void 0,this.config=void 0,this.cache=void 0,this.$el=void 0,this.state=void 0,this.charts=void 0,this.data={xs:{},targets:[]},this.axis=void 0,this.scale={x:null,y:null,y2:null,subX:null,subY:null,subY2:null,zoom:null},this.org={xScale:null,xDomain:null},this.color=void 0,this.patterns=void 0,this.levelColor=void 0,this.point=void 0,this.brush=void 0,this.format={extraLineClasses:null,xAxisTick:null,dataTime:null,defaultAxisTime:null,axisTime:null};var e=this;e.api=t,e.config=new dt,e.cache=new Tt;var i=new s;e.$el=i.getStore("element"),e.state=i.getStore("state")}var e=t.prototype;return e.beforeInit=function(){var t=this;t.callPluginHook("$beforeInit"),F(t.config.onbeforeinit,t.api)},e.afterInit=function(){var t=this;t.callPluginHook("$afterInit"),F(t.config.onafterinit,t.api)},e.init=function(){var t=this,e=t.config,i=t.state,a=t.$el;i.hasAxis=!t.hasArcType(),i.hasRadar=!i.hasAxis&&t.hasType("radar"),t.initParams();var r={element:e.bindto,classname:"bb"};X(e.bindto)&&(r.element=e.bindto.element||"#chart",r.classname=e.bindto.classname||r.classname),a.chart=w(r.element.node)?e.bindto.element:(0,n.select)(r.element||[]),a.chart.empty()&&(a.chart=(0,n.select)(m.body.appendChild(m.createElement("div")))),a.chart.html("").classed(r.classname,!0),t.initToRender()},e.initToRender=function(t){var e=this,i=e.config,n=e.state,a=e.$el.chart,r=function(){return"none"===a.style("display")||"hidden"===a.style("visibility")},s=i.render.lazy||r(),o=_.MutationObserver;if(s&&o&&!1!==i.render.observe&&!t&&new o((function(t,i){r()||(i.disconnect(),!n.rendered&&e.initToRender(!0))})).observe(a.node(),{attributes:!0,attributeFilter:["class","style"]}),!s||t){var c=e.convertData(i,e.initWithData);c&&e.initWithData(c),e.afterInit()}},e.initParams=function(){var t=this,e=t,n=e.config,a=e.format,r=e.state,s=n.axis_rotated;if(r.datetimeId="bb-"+ +new Date,t.color=t.generateColor(),t.levelColor=t.generateLevelColor(),t.hasPointType()&&(t.point=t.generatePoint()),r.hasAxis){t.initClip(),a.extraLineClasses=t.generateExtraLineClass(),a.dataTime=n.data_xLocaltime?i.timeParse:i.utcParse,a.axisTime=n.axis_x_localtime?i.timeFormat:i.utcFormat;var o=t.config.zoom_enabled&&"drag"===t.config.zoom_type;a.defaultAxisTime=function(e){var i=t.scale,n=i.x,r=i.zoom,s=o?r:r&&n.orgDomain().toString()!==r.domain().toString(),c=(e.getMilliseconds()?".%L":e.getSeconds()&&".:%S")||e.getMinutes()&&"%I:%M"||e.getHours()&&"%I %p"||1!==e.getDate()&&"%b %d"||s&&1===e.getDate()&&"%b'%y"||e.getMonth()&&"%-m/%-d"||"%Y";return a.axisTime(c)(e)}}r.isLegendRight="right"===n.legend_position,r.isLegendInset="inset"===n.legend_position,r.isLegendTop="top-left"===n.legend_inset_anchor||"top-right"===n.legend_inset_anchor,r.isLegendLeft="top-left"===n.legend_inset_anchor||"bottom-left"===n.legend_inset_anchor,r.rotatedPaddingRight=s&&!n.axis_x_show?0:30,r.inputType=function(t,e){var i=!1;if(/Mobi/.test(_.navigator.userAgent)&&e){var n=_.navigator&&"maxTouchPoints"in _.navigator&&_.navigator.maxTouchPoints>0,a="ontouchmove"in _||_.DocumentTouch&&m instanceof _.DocumentTouch;i=n||a}return(t&&!i&&"onmouseover"in _?"mouse":i&&"touch")||null}(n.interaction_inputType_mouse,n.interaction_inputType_touch)},e.initWithData=function(t){var e=this,i=e.config,n=e.scale,r=e.state,s=e.$el,o=e.org,c=r.hasAxis,l=i.interaction_enabled;c&&(e.axis=e.getAxisInstance(),i.zoom_enabled&&e.initZoom()),e.data.xs={},e.data.targets=e.convertDataToTargets(t),i.data_filter&&(e.data.targets=e.data.targets.filter(i.data_filter.bind(e.api))),i.data_hide&&e.addHiddenTargetIds(!0===i.data_hide?e.mapToIds(e.data.targets):i.data_hide),i.legend_hide&&e.addHiddenLegendIds(!0===i.legend_hide?e.mapToIds(e.data.targets):i.legend_hide),e.updateSizes(),e.updateScales(!0);var u=n.x,d=n.y,h=n.y2,g=n.subX,f=n.subY,p=n.subY2;if(u&&(u.domain(it(e.getXDomain(e.data.targets))),g.domain(u.domain()),o.xDomain=u.domain()),d&&(d.domain(e.getYDomain(e.data.targets,"y")),f.domain(d.domain())),h&&(h.domain(e.getYDomain(e.data.targets,"y2")),p&&p.domain(h.domain())),s.svg=s.chart.append("svg").style("overflow","hidden").style("display","block"),l&&r.inputType){var x="touch"===r.inputType;s.svg.on(x?"touchstart":"mouseenter",(function(){return F(i.onover,e.api)})).on(x?"touchend":"mouseleave",(function(){return F(i.onout,e.api)}))}i.svg_classname&&s.svg.attr("class",i.svg_classname);var v=w(i.color_tiles)&&e.patterns;(c||v)&&(s.defs=s.svg.append("defs"),c&&["id","idXAxis","idYAxis","idGrid"].forEach((function(t){e.appendClip(s.defs,r.clip[t])})),v&&e.patterns.forEach((function(t){return s.defs.append((function(){return t.node}))}))),e.updateSvgSize(),e.bindResize();var _=s.svg.append("g").classed(a.main,!0).attr("transform",e.getTranslate("main"));if(s.main=_,i.subchart_show&&e.initSubchart(),i.tooltip_show&&e.initTooltip(),i.title_text&&e.initTitle(),i.legend_show&&e.initLegend(),i.data_empty_label_text&&_.append("text").attr("class",a.text+" "+a.empty).attr("text-anchor","middle").attr("dominant-baseline","middle"),c&&(i.regions.length&&e.initRegion(),!i.clipPath&&e.axis.init()),_.append("g").attr("class",a.chart).attr("clip-path",r.clip.path),e.callPluginHook("$init"),c&&(l&&e.initEventRect&&e.initEventRect(),e.initGrid(),i.clipPath&&e.axis&&e.axis.init()),e.initChartElements(),e.updateTargets(e.data.targets),e.updateDimension(),F(i.oninit,e.api),e.setBackground(),e.redraw({withTransition:!1,withTransform:!0,withUpdateXDomain:!0,withUpdateOrgXDomain:!0,withTransitionForAxis:!1,initializing:!0}),i.data_onmin||i.data_onmax){var m=e.getMinMaxData();F(i.data_onmin,e.api,m.min),F(i.data_onmax,e.api,m.max)}i.tooltip_show&&e.initShowTooltip(),r.rendered=!0},e.initChartElements=function(){var t=this,e=t.state,i=e.hasAxis,n=e.hasRadar,a=[];i?["bar","bubble","candlestick","line"].forEach((function(e){var i=q(e);("line"===e&&t.hasTypeOf(i)||t.hasType(e))&&a.push(i)})):(!n&&a.push("Arc","Pie"),t.hasType("gauge")?a.push("Gauge"):n&&a.push("Radar")),a.forEach((function(e){t["init"+e]()})),P(t.config.data_labels)&&!t.hasArcType(null,["radar"])&&t.initText()},e.setChartElements=function(){var t=this.$el,e=t.chart,i=t.svg,n=t.defs,a=t.main,r=t.tooltip,s=t.legend,o=t.title,c=t.grid,l=t.arcs,u=t.circle,d=t.bar,h=t.candlestick,g=t.line,f=t.area,p=t.text;this.api.$={chart:e,svg:i,defs:n,main:a,tooltip:r,legend:s,title:o,grid:c,arc:l,circles:u,bar:{bars:d},candlestick:h,line:{lines:g,areas:f},text:{texts:p}}},e.setBackground=function(){var t=this,e=t.config.background,i=t.state,n=t.$el.svg;if(P(e)){var a=n.select("g").insert(e.imgUrl?"image":"rect",":first-child");e.imgUrl?a.attr("href",e.imgUrl):e.color&&a.style("fill",e.color).attr("clip-path",i.clip.path),a.attr("class",e.class||null).attr("width","100%").attr("height","100%")}},e.updateTargets=function(t){var e=this,i=e.state,n=i.hasAxis,a=i.hasRadar;e.updateTargetsForText(t),n?(["bar","candlestick","line"].forEach((function(i){var n=q(i);("line"===i&&e.hasTypeOf(n)||e.hasType(i))&&e["updateTargetsFor"+n](t.filter(e["is"+n+"Type"].bind(e)))})),e.updateTargetsForSubchart&&e.updateTargetsForSubchart(t)):e.hasArcType(t)&&(a?e.updateTargetsForRadar(t.filter(e.isRadarType.bind(e))):e.updateTargetsForArc(t.filter(e.isArcType.bind(e)))),(e.hasType("bubble")||e.hasType("scatter"))&&e.updateTargetForCircle&&e.updateTargetForCircle(),e.showTargets()},e.showTargets=function(){var t=this,e=t.config;t.$el.svg.selectAll("."+a.target).filter((function(e){return t.isTargetToShow(e.id)})).transition().duration(e.transition_duration).style("opacity","1")},e.getWithOption=function(t){var e={Y:!0,Subchart:!0,Transition:!0,EventRect:!0,Dimension:!0,TrimXDomain:!0,Transform:!1,UpdateXDomain:!1,UpdateOrgXDomain:!1,Legend:!1,UpdateXAxis:"UpdateXDomain",TransitionForExit:"Transition",TransitionForAxis:"Transition"};return Object.keys(e).forEach((function(i){var n=e[i];A(n)&&(n=e[n]),e[i]=M(t,"with"+i,n)})),e},e.initialOpacity=function(t){var e=this.state.withoutFadeIn;return null!==this.getBaseValue(t)&&e[t.id]?"1":"0"},e.bindResize=function(){var t,e,i,n=this,a=n.config,r=n.state,s=(e=[],(i=function(){i.clear(),t=wt((function(){e.forEach((function(t){return t()}))}),200)}).clear=function(){t&&(At(t),t=null)},i.add=function(t){return e.push(t)},i.remove=function(t){return e.splice(e.indexOf(t),1)},i),o=[];o.push((function(){return F(a.onresize,n,n.api)})),a.resize_auto&&o.push((function(){r.resizing=!0,n.api.flush(!1)})),o.push((function(){F(a.onresized,n,n.api),r.resizing=!1})),o.forEach((function(t){return s.add(t)})),n.resizeFunction=s,_.addEventListener("resize",n.resizeFunction=s)},e.callPluginHook=function(t){for(var e=this,i=arguments.length,n=Array(i>1?i-1:0),a=1;a\n\t\t\t\n\t\t\t\t'+f+"\n\t\t\t\t"+h.replace(/(url\()[^#]+/g,"$1")+"\n\t\t\t").replace("/\n/g","%0A");return"data:image/svg+xml;base64,"+btoa(encodeURIComponent(p).replace(/%([0-9A-F]{2})/g,(function(t,e){return String.fromCharCode(+("0x"+e))})))}var se={export:function(t,e){var i=this,n=this.internal,a=n.state,r=n.$el.chart,s=a.current,o=s.width,c=s.height,l=et({width:o,height:c,preserveAspectRatio:!0,mimeType:"image/png"},t),u=re(r.node(),l,{width:o,height:c});if(e&&w(e)){var d=new Image;d.crossOrigin="Anonymous",d.onload=function(){var t=m.createElement("canvas"),n=t.getContext("2d");t.width=l.width||o,t.height=l.height||c,n.drawImage(d,0,0),e.bind(i)(t.toDataURL(l.mimeType))},d.src=u}return u}};function oe(t,e,i){var n=this.internal,a=n.mapToTargetIds(e);n.state.toggling=!0,n[(t?"remove":"add")+"HiddenTargetIds"](a);var r=n.$el.svg.selectAll(n.selectorTargets(a)),s=t?"1":"0";t&&r.style("display",null),r.transition().style("opacity",s,"important").call(B,(function(){t||r.style("display","none"),r.style("opacity",s)})),i.withLegend&&n[(t?"show":"hide")+"Legend"](a),n.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0,withLegend:!0}),n.state.toggling=!1}var ce=function t(e){this.plugins=[],this.internal=void 0;var i=new ee(this);this.internal=i,function t(e,i,n){Object.keys(e).forEach((function(a){var r=w(e[a]),s=i!==n,o=Object.keys(e[a]).length>0;r&&(!s&&o||s)?i[a]=e[a].bind(n):!r&&(i[a]={}),o&&t(e[a],i[a],n)}))}(t.prototype,this,this),ie.call(i,e),i.beforeInit(),i.init()};function le(t,e,i){var n=t.config,a="axis_y_"+e,r="axis_y2_"+e;C(i)&&(D(i)?(T(i.x)&&(n["axis_x_"+e]=i.x),T(i.y)&&(n[a]=i.y),T(i.y2)&&(n[r]=i.y2)):(n[a]=i,n[r]=i),t.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0}))}function ue(t,e){var i=t.config;return{x:i["axis_x_"+e],y:i["axis_y_"+e],y2:i["axis_y2_"+e]}}Z(ce.prototype,[ne,{color:function(t){return this.internal.color(t)}},{data:ae},se,{focus:function(t){var e=this.internal,i=e.state,n=e.mapToTargetIds(t),r=e.$el.svg.selectAll(e.selectorTargets(n.filter(e.isTargetToShow,e)));this.revert(),this.defocus(),r.classed(a.focused,!0).classed(a.defocused,!1),e.hasArcType()&&!i.hasRadar&&(e.expandArc(n),e.hasType("gauge")&&e.markOverlapped(t,e,"."+a.gaugeValue)),e.toggleFocusLegend(n,!0),i.focusedTargetIds=n,i.defocusedTargetIds=i.defocusedTargetIds.filter((function(t){return n.indexOf(t)<0}))},defocus:function(t){var e=this.internal,i=e.state,n=e.mapToTargetIds(t);e.$el.svg.selectAll(e.selectorTargets(n.filter(e.isTargetToShow,e))).classed(a.focused,!1).classed(a.defocused,!0),e.hasArcType()&&(e.unexpandArc(n),e.hasType("gauge")&&e.undoMarkOverlapped(e,"."+a.gaugeValue)),e.toggleFocusLegend(n,!1),i.focusedTargetIds=i.focusedTargetIds.filter((function(t){return n.indexOf(t)<0})),i.defocusedTargetIds=n},revert:function(t){var e=this.internal,i=e.config,r=e.state,s=e.$el,o=e.mapToTargetIds(t);s.svg.selectAll(e.selectorTargets(o)).classed(a.focused,!1).classed(a.defocused,!1),e.hasArcType()&&e.unexpandArc(o),i.legend_show&&(e.showLegend(o.filter(e.isLegendToShow.bind(e))),s.legend.selectAll(e.selectorLegends(o)).filter((function(){return(0,n.select)(this).classed(a.legendItemFocused)})).classed(a.legendItemFocused,!1)),r.focusedTargetIds=[],r.defocusedTargetIds=[]}},{legend:{show:function(t){var e=this.internal;e.showLegend(e.mapToTargetIds(t)),e.updateAndRedraw({withLegend:!0})},hide:function(t){var e=this.internal;e.hideLegend(e.mapToTargetIds(t)),e.updateAndRedraw({withLegend:!0})}}},{load:function(t){var e=this.internal,i=e.config;t.xs&&e.addXs(t.xs),"names"in t&&this.data.names(t.names),"classes"in t&&Object.keys(t.classes).forEach((function(e){i.data_classes[e]=t.classes[e]})),"categories"in t&&e.axis.isCategorized()&&(i.axis_x_categories=t.categories),"axes"in t&&Object.keys(t.axes).forEach((function(e){i.data_axes[e]=t.axes[e]})),"colors"in t&&Object.keys(t.colors).forEach((function(e){i.data_colors[e]=t.colors[e]})),"unload"in t&&!1!==t.unload?e.unload(e.mapToTargetIds(!0===t.unload?null:t.unload),(function(){return e.loadFromArgs(t)})):e.loadFromArgs(t)},unload:function(t){var e=this,i=this.internal,n=t||{};z(n)?n={ids:n}:A(n)&&(n={ids:[n]});var a=i.mapToTargetIds(n.ids);i.unload(a,(function(){i.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0,withLegend:!0}),i.cache.remove(a),n.done&&n.done.call(e)}))}},{show:function(t,e){void 0===e&&(e={}),oe.call(this,!0,t,e)},hide:function(t,e){void 0===e&&(e={}),oe.call(this,!1,t,e)},toggle:function(t,e){var i=this;void 0===e&&(e={});var n=this.internal,a={show:[],hide:[]};n.mapToTargetIds(t).forEach((function(t){return a[n.isTargetToShow(t)?"hide":"show"].push(t)})),a.show.length&&this.show(a.show,e),a.hide.length&&setTimeout((function(){return i.hide(a.hide,e)}),0)}},{tooltip:{show:function(t){var e,i,n=this.internal,a=n.config,r=n.state.inputType;if(t.mouse&&(i=t.mouse),t.data){var s=t.data,o=n.getYScaleById(s.id)(s.value);n.isMultipleX()?i=[n.scale.x(s.x),o]:(!a.tooltip_grouped&&(i=[0,o]),e=T(s.index)?s.index:n.getIndexByX(s.x))}else C(t.x)?e=n.getIndexByX(t.x):C(t.index)&&(e=t.index);("mouse"===r?["mouseover","mousemove"]:["touchstart"]).forEach((function(t){n.dispatchEvent(t,e,i)}))},hide:function(){var t=this.internal,e=t.state.inputType,i=t.$el.tooltip,n=i&&i.datum();if(n){var a=JSON.parse(n.current)[0].index;("mouse"===e?["mouseout"]:["touchend"]).forEach((function(e){t.dispatchEvent(e,a)}))}"touch"===e&&t.callOverOutForTouch(),t.hideTooltip(!0),t.hideGridFocus(),t.unexpandCircles&&t.unexpandCircles(),t.unexpandBars&&t.unexpandBars()}}}]);var de={axis:{labels:function(t){var e,i=this.internal;return t&&(Object.keys(t).forEach((function(e){i.axis.setLabelText(e,t[e])})),i.axis.updateLabels()),["x","y","y2"].forEach((function(t){var n=i.axis.getLabelText(t);n&&(!e&&(e={}),e[t]=n)})),e},min:function(t){var e=this.internal;return T(t)?le(e,"min",t):ue(e,"min")},max:function(t){var e=this.internal;return arguments.length?le(e,"max",t):ue(e,"max")},range:function(t){var e=this.axis;if(!arguments.length)return{max:e.max(),min:e.min()};C(t.max)&&e.max(t.max),C(t.min)&&e.min(t.min)}}};function he(t){var e=this.internal,i=e.config;return t?(i.grid_x_lines=t,e.redrawWithoutRescale(),i.grid_x_lines):i.grid_x_lines}Z(he,{add:function(t){return this.xgrids(this.internal.config.grid_x_lines.concat(t||[]))},remove:function(t){this.internal.removeGridLines(t,!0)}});var ge={xgrids:he};function fe(t){var e=this.internal,i=e.config;return t?(i.grid_y_lines=t,e.redrawWithoutRescale(),i.grid_y_lines):i.grid_y_lines}Z(fe,{add:function(t){return this.ygrids(this.internal.config.grid_y_lines.concat(t||[]))},remove:function(t){this.internal.removeGridLines(t,!1)}});var pe={ygrids:fe},xe={groups:function(t){var e=this.internal,i=e.config;return S(t)||(i.data_groups=t,e.redraw()),i.data_groups}};function ve(t){var e=this.internal,i=e.config;return t?(i.regions=t,e.redrawWithoutRescale(),t):i.regions}Z(ve,{add:function(t){var e=this.internal,i=e.config;return t?(i.regions=i.regions.concat(t),e.redrawWithoutRescale(),i.regions):i.regions},remove:function(t){var e=this.internal,i=e.config,n=t||{},r=M(n,"duration",i.transition_duration),s=M(n,"classes",[a.region]),o=e.$el.main.select("."+a.regions).selectAll(s.map((function(t){return"."+t})));return(r?o.transition().duration(r):o).style("opacity","0").remove(),o=i.regions,Object.keys(n).length?(o=o.filter((function(t){var e=!1;return!t.class||(t.class.split(" ").forEach((function(t){s.indexOf(t)>=0&&(e=!0)})),!e)})),i.regions=o):i.regions=[],o}});var _e={regions:ve},me={x:function(t){var e=this.internal,i=e.axis,n=e.data,a=i.isCustomX()&&i.isCategorized();return z(t)&&(a?this.categories(t):(e.updateTargetX(n.targets,t),e.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0}))),a?this.categories():n.xs},xs:function(t){var e=this.internal;return X(t)&&(e.updateTargetXs(e.data.targets,t),e.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0})),e.data.xs}},ye={flow:function(t){var e,i,n,a,r=this.internal,s=0,o=0;if((t.json||t.rows||t.columns)&&(e=r.convertData(t)),e&&ct()){var c=[],l=r.getMaxDataCount(),u=r.convertDataToTargets(e,!0),d=r.axis.isTimeSeries();r.data.targets.forEach((function(t){for(var e=!1,i=0;i1?h.values[h.values.length-1].x-g.x:g.x-r.getXDomain(r.data.targets)[0]:1,i=[g.x-n,g.x]),i&&r.updateXDomain(null,!0,!0,!1,i),r.updateTargets(r.data.targets),r.redraw({flow:{index:g.index,length:s,duration:T(t.duration)?t.duration:r.config.transition_duration,done:t.done,orgDataCount:l},withLegend:!0,withTransition:l>1,withTrimXDomain:!1,withUpdateXAxis:!0})}}},be=p(10),Te=function(){function t(t){this.owner=void 0,this.config=void 0,this.scale=void 0;var e=jt(),i=t.config,n=t.params;this.owner=t,this.config=i,this.scale=e,(i.noTransition||!n.config.transition_duration)&&(i.withoutTransition=!0),i.range=this.scaleExtent((n.orgXScale||e).range())}t.getSizeFor1Char=function(t){var e={w:5.5,h:11.5};return t.empty()||t.select("text").text("0").call((function(t){try{var i=t.node().getBBox(),n=i.width,a=i.height;n&&a&&(e.w=n,e.h=a)}catch(t){}finally{t.text("")}})),this.getSizeFor1Char=function(){return e},e};var e=t.prototype;return e.getTickTransformSetter=function(t){var e=this.config,i="x"===t?function(t){return"translate("+(t+e.tickOffset)+",0)"}:function(t){return"translate(0,"+t+")"};return function(t,e){t.attr("transform",(function(t){return i(Math.ceil(e(t)))}))}},e.scaleExtent=function(t){var e=t[0],i=t[t.length-1];return e0?a:1,r]).range(t.range());s=l.ticks();for(var u=r.toFixed().length;s.length>15;u--)s=l.ticks(u);s.splice(0,1,a),s.splice(s.length-1,1,r)}s=s.map((function(t){return A(t)&&k(t)&&!isNaN(t)&&Math.round(10*t)/10||t}))}else{for(var d=Math.ceil(a);d0&&s[0]>0&&s.unshift(s[0]-(s[1]-s[0]))}return s},e.copyScale=function(){var t=this.scale.copy();return t.domain().length||t.domain(this.scale.domain()),t.type=this.scale.type,t},e.textFormatted=function(t){var e=this.config.tickFormat,i=/\d+\.\d+0{5,}\d$/.test(t)?+(t+"").replace(/0+\d$/,""):t,n=e?e(i):i;return C(n)?n:""},e.transitionise=function(t){var e=this.config;return e.withoutTransition?t.interrupt():t.transition(e.transition)},t}(),we=function(){function t(t){void 0===t&&(t={}),this.helper=void 0,this.config=void 0,this.params=void 0,this.g=void 0;var e={innerTickSize:6,outerTickSize:t.outerTick?6:0,orient:"bottom",range:[],tickArguments:null,tickCentered:null,tickCulling:!0,tickFormat:null,tickLength:9,tickOffset:0,tickPadding:3,tickValues:null,transition:null,noTransition:t.noTransition};e.tickLength=Math.max(e.innerTickSize,0)+e.tickPadding,this.config=e,this.params=t,this.helper=new Te(this)}var e=t.prototype;return e.create=function(t){var e=this,i=this.config,a=this.helper,r=this.params,s=a.scale,o=i.orient,c=this.splitTickText.bind(this),l=/^(left|right)$/.test(o),u=/^(top|bottom)$/.test(o),d=a.getTickTransformSetter(u?"x":"y"),h=d===a.axisX?"y":"x",g=/^(top|left)$/.test(o)?-1:1,f=r.tickTextRotate;this.config.range=s.rangeExtent?s.rangeExtent():a.scaleExtent((r.orgXScale||s).range());var p,x=i,v=x.innerTickSize,_=x.tickLength,m=x.range,y=r.id,b=y&&/^(x|y|y2)$/.test(y)?r.config["axis_"+y+"_tick_text_position"]:{x:0,y:0},T="subX"===y?"subchart_axis_x":"axis_"+y,w=r.config[T+"_show"],A=!!w&&r.config[T+"_tick_show"],S=!!w&&r.config[T+"_tick_text_show"];t.each((function(){var t=(0,n.select)(this),x=this.__chart__||s,y=a.copyScale();p=t,this.__chart__=y,i.tickOffset=r.isCategory?Math.ceil((y(1)-y(0))/2):0;var T=t.selectAll(".domain").data([0]);if(T.enter().append("path").attr("class","domain").merge(a.transitionise(T).selection()).attr("d",(function(){var t=i.outerTickSize*g;return u?"M"+m[0]+","+t+"V0H"+m[1]+"V"+t:"M"+t+","+m[0]+"H0V"+m[1]+"H"+t})),A||S){var w=i.tickValues||a.generateTicks(y,l),C=t.selectAll(".tick").data(w,y),L=C.enter().insert("g",".domain").attr("class","tick").style("opacity","1"),E=C.exit().remove();C=L.merge(C),A&&L.append("line"),S&&L.append("text");var O=Te.getSizeFor1Char(C),R=[],D=C.select("text").selectAll("tspan").data((function(t,e){var i=r.tickMultiline?c(t,y,w,l,O.w):z(a.textFormatted(t))?a.textFormatted(t).concat():[a.textFormatted(t)];return R[e]=i.length,i.map((function(t){return{index:e,splitted:t}}))}));D.exit().remove(),(D=D.enter().append("tspan").merge(D).text((function(t){return t.splitted}))).attr("x",u?0:_*g).attr("dx",function(){var t=0;return/(top|bottom)/.test(o)&&f&&(t=8*Math.sin(Math.PI*(f/180))*("top"===o?-1:1)),t+(b.x||0)}()).attr("dy",(function(t,e){var i=0;return"top"!==o&&(i=O.h,0===e&&(i=l?-((R[t.index]-1)*(O.h/2)-3):0===b.y?".71em":0)),k(i)&&b.y?i+b.y:i||".71em"}));var I=C.select("line"),P=C.select("text");if(L.select("line").attr(h+"2",v*g),L.select("text").attr(h,_*g),e.setTickLineTextPosition(I,P),r.tickTitle){var X=P.select("title");(X.empty()?P.append("title"):X).text((function(t){return r.tickTitle[t]}))}if(y.bandwidth){var M=y,F=M.bandwidth()/2;y=x=function(t){return M(t)+F}}else x.bandwidth?x=y:d(E,y);d(L,x),d(a.transitionise(C).style("opacity","1"),y)}})),this.g=p},e.getTickXY=function(){var t=this.config,e={x:0,y:0};return this.params.isCategory&&(e.x=t.tickCentered?0:t.tickOffset,e.y=t.tickCentered?t.tickOffset:0),e},e.getTickSize=function(t){var e=this.helper.scale,i=this.config,n=i,a=n.innerTickSize,r=n.range,s=e(t)+(i.tickCentered?0:i.tickOffset);return r[0]0?e[0]:e[1]:"middle"},u=function(t){return t?"rotate("+t+")":null},d=function(t){return t?11.5-2.5*(t/("bottom"===r?15:23))*(t>0?1:-1):s};"bottom"===r?(t.attr("x1",i.x).attr("x2",i.x).attr("y2",this.getTickSize.bind(this)),e.attr("x",0).attr("y",d(c)).style("text-anchor",l(c)).attr("transform",u(c))):"top"===r?(t.attr("x2",0).attr("y2",-a),e.attr("x",0).attr("y",2*-d(c)).style("text-anchor",l(c)).attr("transform",u(c))):"left"===r?(t.attr("x2",-a).attr("y1",i.y).attr("y2",i.y),e.attr("x",-s).attr("y",o).style("text-anchor","end")):"right"===r&&(t.attr("x2",a).attr("y2",0),e.attr("x",s).attr("y",0).style("text-anchor","start"))},e.splitTickText=function(t,e,i,n,a){var r=this.params,s=this.helper.textFormatted(t),o=A(s)&&s.indexOf("\n")>-1?s.split("\n"):[];if(o.length)return o;if(z(s))return s;var c=r.tickWidth;return(!c||c<=0)&&(c=n?95:r.isCategory?Math.ceil(e(i[1])-e(i[0]))-12:110),function t(e,i){for(var n,r,s,o=1;o=0||i.hasRadar},e.isCustomX=function(){var t=this.owner.config;return!this.isTimeSeries()&&(t.data_x||P(t.data_xs))},e.isTimeSeries=function(t){return void 0===t&&(t="x"),"timeseries"===this.owner.config["axis_"+t+"_type"]},e.isLog=function(t){return void 0===t&&(t="x"),"log"===this.owner.config["axis_"+t+"_type"]},e.isTimeSeriesY=function(){return this.isTimeSeries("y")},e.getAxisType=function(t){void 0===t&&(t="x");var e="linear";return this.isTimeSeries(t)?e="time":this.isLog(t)&&(e="log"),e},e.init=function(){var t=this,e=this.owner,i=e.config,n=e.$el,r=n.main,s=n.axis,o=e.state.clip,c=i.axis_rotated,l=["x","y"];i.axis_y2_show&&l.push("y2"),l.forEach((function(n){var l=t.getAxisClassName(n),u=a["axis"+n.toUpperCase()+"Label"];s[n]=r.append("g").attr("class",l).attr("clip-path",(function(){var t=null;return"x"===n?t=o.pathXAxis:"y"===n&&(t=o.pathYAxis),t})).attr("transform",e.getTranslate(n)).style("visibility",i["axis_"+n+"_show"]?"visible":"hidden"),s[n].append("text").attr("class",u).attr("transform",["rotate(-90)",null]["x"===n?+!c:+c]).style("text-anchor",(function(){return t.textAnchorForAxisLabel(n)})),t.generateAxes(n)}))},e.setOrient=function(){var t=this.owner.config,e=t.axis_rotated,i=t.axis_y_inner,n=t.axis_y2_inner;this.orient={x:e?"left":"bottom",y:e?i?"top":"bottom":i?"right":"left",y2:e?n?"bottom":"top":n?"left":"right",subX:e?"left":"bottom"}},e.generateAxes=function(t){var e,i=this.owner,n=i.config,a=[],r=n["axis_"+t+"_axes"],s=n.axis_rotated;"x"===t?e=s?be.axisLeft:be.axisBottom:"y"===t?e=s?be.axisBottom:be.axisLeft:"y2"===t&&(e=s?be.axisTop:be.axisRight),r.length&&r.forEach((function(n){var r=n.tick||{},s=i.scale[t].copy();n.domain&&s.domain(n.domain),a.push(e(s).ticks(r.count).tickFormat(w(r.format)?r.format.bind(i.api):function(t){return t}).tickValues(r.values).tickSizeOuter(!1===r.outer?0:6))})),this.axesList[t]=a},e.updateAxes=function(){var t=this,e=this.owner,i=e.config,n=e.$el.main;Object.keys(this.axesList).forEach((function(a){var r=i["axis_"+a+"_axes"],s=e.scale[a].copy(),o=s.range();t.axesList[a].forEach((function(c,l){var u=c.scale().range();o.every((function(t,e){return t===u[e]}))||c.scale().range(o);var d=t.getAxisClassName(a)+"-"+(l+1),h=n.select("."+d.replace(/\s/,"."));h.empty()?h=n.append("g").attr("class",d).style("visibility",i["axis_"+a+"_show"]?"visible":"hidden").call(c):(r[l].domain&&s.domain(r[l].domain),t.x.helper.transitionise(h).call(c.scale(s))),h.attr("transform",e.getTranslate(a,l+1))}))}))},e.setAxis=function(t,e,i,n){var a=this.owner;"subX"!==t&&(this.tick[t]=this.getTickValues(t)),this[t]=this.getAxis(t,e,i,!("x"!==t||!(a.scale.zoom||a.config.subchart_show||a.state.resizing))||n)},e.getAxis=function(t,e,i,n,a){var r,s=this.owner,o=s.config,c=/^(x|subX)$/.test(t),l=c?"x":t,u=c&&this.isCategorized(),d=this.orient[t],h=a?0:s.getAxisTickRotate(l);if(c)r=s.format.xAxisTick;else{var g=o["axis_"+t+"_tick_format"];w(g)&&(r=g.bind(s.api))}var f=this.tick[l],p=et({outerTick:i,noTransition:n,config:o,id:t,tickTextRotate:h},c&&{isCategory:u,tickMultiline:o.axis_x_tick_multiline,tickWidth:o.axis_x_tick_width,tickTitle:u&&o.axis_x_tick_tooltip&&s.api.categories(),orgXScale:s.scale.x});c||(p.tickStepSize=o["axis_"+l+"_tick_stepSize"]);var x=new we(p).scale(c&&s.scale.zoom||e).orient(d);if(c&&this.isTimeSeries()&&f&&!w(f)){var v=ot.bind(s);f=f.map((function(t){return v(t)}))}else!c&&this.isTimeSeriesY()&&(x.ticks(o.axis_y_tick_time_value),f=null);f&&x.tickValues(f),x.tickFormat(r||!c&&s.isStackNormalized()&&function(t){return t+"%"}),u&&(x.tickCentered(o.axis_x_tick_centered),I(o.axis_x_tick_culling)&&(o.axis_x_tick_culling=!1));var _=o["axis_"+l+"_tick_count"];return _&&x.ticks(_),x},e.updateXAxisTickValues=function(t,e){var i,n=this.owner,a=n.config,r=a.axis_x_tick_fit,s=a.axis_x_tick_count;return(r||s&&r)&&(i=n.mapTargetsToUniqueXs(t),this.isCategorized()&&s>i.length&&(s=i.length),i=this.generateTickValues(i,s,this.isTimeSeries())),e?e.tickValues(i):this.x&&(this.x.tickValues(i),this.subX&&this.subX.tickValues(i)),i},e.getId=function(t){var e=this.owner,i=e.config,n=e.scale,a=i.data_axes[t];return a&&n[a]||(a="y"),a},e.getXAxisTickFormat=function(){var t,e=this.owner,i=e.config,n=e.format,a=i.axis_x_tick_format,r=this.isTimeSeries(),s=this.isCategorized();return a?w(a)?t=a.bind(e.api):r&&(t=function(t){return t?n.axisTime(a)(t):""}):t=r?n.defaultAxisTime:s?e.categoryName:function(t){return t<0?t.toFixed(0):t},w(t)?function(i){return t.apply(e,s?[i,e.categoryName(i)]:[i])}:t},e.getTickValues=function(t){var e=this.owner,i=e.config["axis_"+t+"_tick_values"],n=e[t+"Axis"];return(w(i)?i.call(e.api):i)||(n?n.tickValues():void 0)},e.getLabelOptionByAxisId=function(t){return this.owner.config["axis_"+t+"_label"]},e.getLabelText=function(t){var e=this.getLabelOptionByAxisId(t);return A(e)?e:e?e.text:null},e.setLabelText=function(t,e){var i=this.owner.config,n=this.getLabelOptionByAxisId(t);A(n)?i["axis_"+t+"_label"]=e:n&&(n.text=e)},e.getLabelPosition=function(t,e){var i=this.owner.config.axis_rotated,n=this.getLabelOptionByAxisId(t),a=D(n)&&n.position?n.position:e[+!i],r=function(t){return!!~a.indexOf(t)};return{isInner:r("inner"),isOuter:r("outer"),isLeft:r("left"),isCenter:r("center"),isRight:r("right"),isTop:r("top"),isMiddle:r("middle"),isBottom:r("bottom")}},e.getAxisLabelPosition=function(t){return this.getLabelPosition(t,"x"===t?["inner-top","inner-right"]:["inner-right","inner-top"])},e.getLabelPositionById=function(t){return this.getAxisLabelPosition(t)},e.xForAxisLabel=function(t){var e=this.owner,i=e.state,n=i.width,a=i.height,r=this.getAxisLabelPosition(t),s=r.isMiddle?-a/2:0;return this.isHorizontal(e,"x"!==t)?s=r.isLeft?0:r.isCenter?n/2:n:r.isBottom&&(s=-a),s},e.dxForAxisLabel=function(t){var e=this.owner,i=this.getAxisLabelPosition(t),n=i.isBottom?"0.5em":"0";return this.isHorizontal(e,"x"!==t)?n=i.isLeft?"0.5em":i.isRight?"-0.5em":"0":i.isTop&&(n="-0.5em"),n},e.textAnchorForAxisLabel=function(t){var e=this.owner,i=this.getAxisLabelPosition(t),n=i.isMiddle?"middle":"end";return this.isHorizontal(e,"x"!==t)?n=i.isLeft?"start":i.isCenter?"middle":"end":i.isBottom&&(n="start"),n},e.dyForAxisLabel=function(t){var e,i=this.owner,n=i.config,a=n.axis_rotated,r=this.getAxisLabelPosition(t).isInner,s=n["axis_"+t+"_tick_rotate"]?i.getHorizontalAxisHeight(t):0,o=this.getMaxTickWidth(t);if("x"===t){var c=n.axis_x_height;e=a?r?"1.2em":-25-o:r?"-0.5em":c?c-10:s?s-10:"3em"}else e={y:["-0.5em",10,"3em","1.2em",10],y2:["1.2em",-20,"-2.2em","-0.5em",15]}[t],e=a?r?e[0]:s?s*("y2"===t?-1:1)-e[1]:e[2]:r?e[3]:(e[4]+(n["axis_"+t+"_inner"]?0:o+e[4]))*("y"===t?-1:1);return e},e.getMaxTickWidth=function(t,e){var i=this.owner,n=i.config,a=i.state.current,r=i.$el,s=r.svg,o=r.chart,c=a.maxTickWidths[t],l=0;if(e||!n["axis_"+t+"_show"]||0===i.filterTargetsToShow().length)return c.size;if(s){var u=/^y2?$/.test(t),d=i.filterTargetsToShow(i.data.targets),h=i.scale[t].copy().domain(i["get"+(u?"Y":"X")+"Domain"](d,t)),g=h.domain(),f=g[0]===g[1]&&g.every((function(t){return t>0})),p=z(c.domain)&&c.domain[0]===c.domain[1]&&c.domain.every((function(t){return t>0}));if(f||p)return c.size;c.domain=g,u||c.ticks.splice(0);var x=this.getAxis(t,h,!1,!1,!0),v=n["axis_"+t+"_tick_count"];!n["axis_"+t+"_tick_values"]&&v&&x.tickValues(this.generateTickValues(g,v,u?this.isTimeSeriesY():this.isTimeSeries())),u||this.updateXAxisTickValues(d,x);var _=o.append("svg").style("visibility","hidden").style("position","fixed").style("top","0px").style("left","0px");x.create(_),_.selectAll("text").each((function(t,e){var i=this.getBoundingClientRect().width;l=Math.max(l,i),u||(c.ticks[e]=i)})),_.remove()}return l>0&&(c.size=l),c.size},e.getXAxisTickTextY2Overflow=function(t){var e=this.owner,i=e.axis,n=e.config,a=e.state,r=e.getAxisTickRotate("x");if((i.isCategorized()||i.isTimeSeries())&&n.axis_x_tick_fit&&!n.axis_x_tick_culling&&!n.axis_x_tick_multiline&&r>0&&r<90){var s=a.current.width-e.getCurrentPaddingLeft(),o=this.getXAxisTickMaxOverflow(r,s-t),c=Math.max(0,o)+t;return Math.min(c,s/2)}return 0},e.getXAxisTickMaxOverflow=function(t,e){for(var i=this.owner,n=i.axis,a=i.config,r=i.state,s=n.isTimeSeries(),o=r.current.maxTickWidths.x.ticks,c=o.length,l=r.axis.x.padding,u=l.left,d=l.right,h=0,g=c-(s&&a.axis_x_tick_fit?.5:0),f=0;f2){var r,s=this.isCategorized(),o=a-2,c=t[0],l=t[t.length-1];n=[c];for(var u=0;u1)return;(function(t){var i=t.type,a=t.changedTouches[0]["client"+(n.axis_rotated?"Y":"X")];"touchstart"===i?d?t.preventDefault():null!==h&&(e=a):"touchmove"===i&&(d||!0===e||null!==h&&Math.abs(e-a)>=h)&&(e=!0,t.preventDefault())})(s),function(e){if(t)i.selectRectForMultipleXs(e);else{var n=i.getDataIndexFromEvent(r.event);i.callOverOutForTouch(n),-1===n?i.unselectRect():i.selectRectForSingle(e,o,n)}}(o.node())}else l()}),!0).on("touchend.eventRect",(function(t){r.event=t,!o.empty()&&o.classed(a.eventRect)&&(i.hasArcType()||!i.toggleShape||r.cancelClick)&&r.cancelClick&&(r.cancelClick=!1)}),!0),c.on("touchstart",(function(t){r.event=t;var e=t.target;e&&e!==o.node()&&l()}))},updateEventRect:function(t,e){void 0===e&&(e=!1);var i=this.state,n=this.$el,r=i,s=r.eventReceiver,o=r.width,c=r.height,l=r.rendered,u=r.resizing,d=t||n.eventRect;(!l||u||e)&&(d.attr("x",0).attr("y",0).attr("width",o).attr("height",c),!l&&d.attr("class",a.eventRect)),s&&(s.rect=d.node().getBoundingClientRect())},updateEventRectData:function(){var t,e,i,n,a=this,r=a.config,s=a.scale,o=a.state,c=s.zoom||s.x,l=r.axis_rotated;if(a.isMultipleX())t=0,e=0,i=o.width,n=o.height;else{var u,d;if(a.axis.isCategorized())u=a.getEventRectWidth(),d=function(t){return c(t.x)-u/2};else{var h=function(t){var e=t.index;return{prev:a.getPrevX(e),next:a.getNextX(e)}};u=function(t){var e=h(t);return null===e.prev&&null===e.next?l?o.height:o.width:(null===e.prev&&(e.prev=c.domain()[0]),null===e.next&&(e.next=c.domain()[1]),Math.max(0,(c(e.next)-c(e.prev))/2))},d=function(t){var e=h(t),i=t.x;return null===e.prev&&null===e.next?0:(null===e.prev&&(e.prev=c.domain()[0]),(c(i)+c(e.prev))/2)}}t=l?0:d,e=l?d:0,i=l?o.width:u,n=l?u:o.height}var g=o.eventReceiver,f=function(t,e){return w(t)?t(e):t};g.coords.splice(g.data.length),g.data.forEach((function(a,r){g.coords[r]={x:f(t,a),y:f(e,a),w:f(i,a),h:f(n,a)}}))},selectRectForMultipleXs:function(t){var e=this,i=e.config,n=e.state,r=e.filterTargetsToShow(e.data.targets);if(!n.dragging&&!e.hasArcType(r)){var s=G(n.event,t),o=e.findClosestFromTargets(r,s);if(n.mouseover&&(!o||o.id!==n.mouseover.id)&&(i.data_onout.call(e.api,n.mouseover),n.mouseover=void 0),!o)return void e.unselectRect();var c=(e.isBubbleType(o)||e.isScatterType(o)||!i.tooltip_grouped?[o]:e.filterByX(r,o.x)).map((function(t){return e.addName(t)}));e.showTooltip(c,t),e.expandCirclesBars(o.index,o.id,!0),e.showGridFocus(c),(e.isBarType(o.id)||e.dist(o,s)-1?a.data[i]:null}(t);if(n.event=t,!(n.dragging||n.flowing||e.hasArcType()||!s||i.tooltip_grouped&&s&&s.index===a.currentIdx)){var o=s.index;e.isStepType(s)&&"step-after"===i.line_step_type&&G(t,this)[0]1&&(i=i[e[1]]),i&&i.size()&&(s[t]=i)})),e.hideGridFocus(),e.setFlowList(s,t)}},setFlowList:function(t,e){var i,n=this,a=e.flow,r=e.targets,s=a,o=s.duration,c=void 0===o?e.duration:o,l=s.index,u=s.length,d=s.orgDataCount,h=n.getFlowTransform(r,d,l,u),g=kt();g.add(Object.keys(t).map((function(e){return i=t[e].transition().ease(Ce.easeLinear).duration(c),i="axis.x"===e?i.call((function(t){n.axis.x.setTransition(t).create(t)})):"region.list"===e?i.filter(n.isRegionOnX).attr("transform",h):i.attr("transform",h)}))),i.call(g,(function(){n.cleanUpFlow(t,e)}))},cleanUpFlow:function(t,e){var i=this,n=i.config,r=i.state,s=i.$el.svg,o=n.axis_rotated,c=e.flow,l=e.shape,u=e.xv,d=l.pos,h=d.cx,g=d.cy,f=d.xForText,p=d.yForText,x=c,v=x.done,_=void 0===v?function(){}:v,m=x.length;m&&(["circle","text","shape","eventRect"].forEach((function(t){for(var e=[],i=0;i=0?"":m.URL.split("#")[0])+"#"+t+")"},appendClip:function(t,e){e&&t.append("clipPath").attr("id",e).append("rect")},setXAxisClipPath:function(t){var e=this.config,i=this.state,n=i.margin,a=i.width,r=i.height,s=e.axis_rotated,o=Math.max(30,n.left)-(s?0:20),c=s?-(1+o):-(o-1),l=-Math.max(15,n.top),u=s?n.left+20:a+10+o,d=(s?n.top+r+10:n.bottom)+20;t.attr("x",c).attr("y",l).attr("width",u).attr("height",d)},setYAxisClipPath:function(t){var e=this.config,i=this.state,n=i.margin,a=i.width,r=i.height,s=e.axis_rotated,o=Math.max(30,n.left)-(s?20:0),c=e.axis_y_inner,l=c?-1:s?-(1+o):-(o-1),u=-(s?20:n.top),d=(s?a+15+o:n.left+20)+(c?20:0),h=(s?n.bottom:n.top+r)+10;t.attr("x",l).attr("y",u).attr("width",d).attr("height",h)},updateXAxisTickClip:function(){var t=this,e=t.config,i=t.state,n=i.clip,a=i.xAxisHeight,r=t.$el.defs,s=t.getHorizontalAxisHeight("x");if(r&&!n.idXAxisTickTexts){var o=n.id+"-xaxisticktexts";t.appendClip(r,o),n.pathXAxisTickTexts=t.getClipPath(n.idXAxisTickTexts),n.idXAxisTickTexts=o}!e.axis_x_tick_multiline&&t.getAxisTickRotate("x")&&s!==a&&(t.setXAxisTickClipWidth(),t.setXAxisTickTextClipPathWidth()),t.state.xAxisHeight=s},setXAxisTickClipWidth:function(){var t=this,e=t.config,i=t.state.current.maxTickWidths,n=t.getAxisTickRotate("x");if(!e.axis_x_tick_multiline&&n){var a=Math.sin(Math.PI/180*Math.abs(n));i.x.clipPath=(t.getHorizontalAxisHeight("x")-20)/a}else i.x.clipPath=null},setXAxisTickTextClipPathWidth:function(){var t=this.state,e=t.clip,i=t.current,n=this.$el.svg;n&&n.select("#"+e.idXAxisTickTexts+" rect").attr("width",i.maxTickWidths.x.clipPath).attr("height",30)}},Oe=function(t){return T(t.position)||"end"},Re=function(t){return"start"===t.position?4:"middle"===t.position?0:-4};function De(t,e,i){return function(n){var a=t?0:e;return"start"===n.position?a=t?-i:0:"middle"===n.position&&(a=(t?-i:e)/2),a}}function Ie(t,e){"grid"===e&&t.each((function(){var t=(0,n.select)(this);["x1","x2","y1","y2"].forEach((function(e){return t.attr(e,Math.ceil(+t.attr(e)))}))}))}var Pe={hasGrid:function(){var t=this.config;return["x","y"].some((function(e){return t["grid_"+e+"_show"]||t["grid_"+e+"_lines"].length}))},initGrid:function(){var t=this;t.hasGrid()&&t.initGridLines(),t.initFocusGrid()},initGridLines:function(){var t=this,e=t.config,i=t.state.clip,r=t.$el;(e.grid_x_lines.length||e.grid_y_lines.length)&&(r.gridLines.main=r.main.insert("g","."+a.chart+(e.grid_lines_front?" + *":"")).attr("clip-path",i.pathGrid).attr("class",a.grid+" "+a.gridLines),r.gridLines.main.append("g").attr("class",a.xgridLines),r.gridLines.main.append("g").attr("class",a.ygridLines),r.gridLines.x=(0,n.selectAll)([]))},updateXGrid:function(t){var e=this,i=e.config,r=e.scale,s=e.state,o=e.$el,c=o.main,l=o.grid,u=i.axis_rotated,d=e.generateGridData(i.grid_x_type,r.x),h=e.axis.isCategorized()?e.axis.x.tickOffset():0,g=function(t){return(r.zoom||r.x)(t)+h*(u?-1:1)};s.xgridAttr=u?{x1:0,x2:s.width,y1:g,y2:g}:{x1:g,x2:g,y1:0,y2:s.height},l.x=c.select("."+a.xgrids).selectAll("."+a.xgrid).data(d),l.x.exit().remove(),l.x=l.x.enter().append("line").attr("class",a.xgrid).merge(l.x),t||l.x.each((function(){var t=(0,n.select)(this);Object.keys(s.xgridAttr).forEach((function(e){t.attr(e,s.xgridAttr[e]).style("opacity",(function(){return t.attr(u?"y1":"x1")===(u?s.height:0)?"0":"1"}))}))}))},updateYGrid:function(){var t=this,e=t.config,i=t.state,n=t.$el,r=n.grid,s=n.main,o=e.axis_rotated,c=t.axis.y.tickValues()||t.scale.y.ticks(e.grid_y_ticks),l=function(e){return Math.ceil(t.scale.y(e))};r.y=s.select("."+a.ygrids).selectAll("."+a.ygrid).data(c),r.y.exit().remove(),r.y=r.y.enter().append("line").attr("class",a.ygrid).merge(r.y),r.y.attr("x1",o?l:0).attr("x2",o?l:i.width).attr("y1",o?0:l).attr("y2",o?i.height:l),Ie(r.y,"grid")},updateGrid:function(t){var e=this,i=e.$el,n=i.grid;i.gridLines.main||e.initGridLines(),n.main.style("visibility",e.hasArcType()?"hidden":"visible"),e.hideGridFocus(),e.updateXGridLines(t),e.updateYGridLines(t)},updateXGridLines:function(t){var e=this,i=e.config,n=e.$el,r=n.gridLines,s=n.main,o=i.axis_rotated;i.grid_x_show&&e.updateXGrid();var c=s.select("."+a.xgridLines).selectAll("."+a.xgridLine).data(i.grid_x_lines);c.exit().transition().duration(t).style("opacity","0").remove();var l=c.enter().append("g");l.append("line").style("opacity","0"),l.append("text").attr("transform",o?"":"rotate(-90)").attr("dy",-5).style("opacity","0"),(c=l.merge(c)).attr("class",(function(t){return(a.xgridLine+" "+(t.class||"")).trim()})).select("text").attr("text-anchor",Oe).attr("dx",Re).transition().duration(t).text((function(t){return t.text})).transition().style("opacity","1"),r.x=c},updateYGridLines:function(t){var e=this,i=e.config,n=e.state,r=n.width,s=n.height,o=e.$el,c=i.axis_rotated;i.grid_y_show&&e.updateYGrid();var l=o.main.select("."+a.ygridLines).selectAll("."+a.ygridLine).data(i.grid_y_lines);l.exit().transition().duration(t).style("opacity","0").remove();var u=l.enter().append("g");u.append("line").style("opacity","0"),u.append("text").attr("transform",c?"rotate(-90)":"").style("opacity","0"),l=u.merge(l);var d=e.yv.bind(e);l.attr("class",(function(t){return(a.ygridLine+" "+(t.class||"")).trim()})).select("line").transition().duration(t).attr("x1",c?d:0).attr("x2",c?d:r).attr("y1",c?0:d).attr("y2",c?s:d).transition().style("opacity","1"),l.select("text").attr("text-anchor",Oe).attr("dx",Re).transition().duration(t).attr("dy",-5).attr("x",De(c,r,s)).attr("y",d).text((function(t){return t.text})).transition().style("opacity","1"),o.gridLines.y=l},redrawGrid:function(t){var e=this,i=e.config.axis_rotated,n=e.state,a=n.width,r=n.height,s=e.$el.gridLines,o=e.xv.bind(e),c=s.x.select("line"),l=s.x.select("text");return c=(t?c.transition():c).attr("x1",i?0:o).attr("x2",i?a:o).attr("y1",i?o:0).attr("y2",i?o:r),l=(t?l.transition():l).attr("x",De(!i,a,r)).attr("y",o).text((function(t){return t.text})),[c.style("opacity","1"),l.style("opacity","1")]},initFocusGrid:function(){var t=this,e=t.config,i=t.state.clip,n=t.$el,r=e.grid_front,s="."+a[r&&n.gridLines.main?"gridLines":"chart"]+(r?" + *":""),o=n.main.insert("g",s).attr("clip-path",i.pathGrid).attr("class",a.grid);n.grid.main=o,e.grid_x_show&&o.append("g").attr("class",a.xgrids),e.grid_y_show&&o.append("g").attr("class",a.ygrids),e.interaction_enabled&&e.grid_focus_show&&(o.append("g").attr("class",a.xgridFocus).append("line").attr("class",a.xgridFocus),e.grid_focus_y&&!e.tooltip_grouped&&o.append("g").attr("class",a.ygridFocus).append("line").attr("class",a.ygridFocus))},showGridFocus:function(t){var e=this,i=e.config,r=e.state,s=r.width,o=r.height,c=i.axis_rotated,l=e.$el.main.selectAll("line."+a.xgridFocus+", line."+a.ygridFocus),u=(t||[l.datum()]).filter((function(t){return t&&T(e.getBaseValue(t))}));if(i.tooltip_show&&0!==u.length&&!e.hasType("bubble")&&!e.hasArcType()){var d=i.grid_focus_edge&&!i.tooltip_grouped,h=e.xx.bind(e);l.style("visibility","visible").data(u.concat(u)).each((function(t){var i,r=(0,n.select)(this),l={x:h(t),y:e.getYScaleById(t.id)(t.value)};if(r.classed(a.xgridFocus))i=c?[null,l.x,d?l.y:s,l.x]:[l.x,d?l.y:null,l.x,o];else{var u="y2"===e.axis.getId(t.id);i=c?[l.y,d&&!u?l.x:null,l.y,d&&u?l.x:o]:[d&&u?l.x:null,l.y,d&&!u?l.x:s,l.y]}["x1","y1","x2","y2"].forEach((function(t,e){return r.attr(t,i[e])}))})),Ie(l,"grid"),e.showCircleFocus&&e.showCircleFocus(t)}},hideGridFocus:function(){var t=this,e=t.state,i=e.inputType,n=e.resizing,r=t.$el.main;"mouse"!==i&&n||(r.selectAll("line."+a.xgridFocus+", line."+a.ygridFocus).style("visibility","hidden"),t.hideCircleFocus&&t.hideCircleFocus())},updateGridFocus:function(){var t=this,e=t.state,i=e.inputType,n=e.width,r=e.height,s=e.resizing,o=t.$el.grid.main.select("line."+a.xgridFocus);if("touch"===i)o.empty()?s&&t.showCircleFocus():t.showGridFocus();else{var c=t.config.axis_rotated;o.attr("x1",c?0:-10).attr("x2",c?n:-10).attr("y1",c?-10:0).attr("y2",c?-10:r)}return!0},generateGridData:function(t,e){var i=this.$el.main.select("."+a.axisX).selectAll(".tick").size(),n=[];if("year"===t)for(var r=this.getXDomain(),s=r[0].getFullYear(),o=r[1].getFullYear(),c=s;c<=o;c++)n.push(new Date(c+"-01-01 00:00:00"));else(n=e.ticks(10)).length>i&&(n=n.filter((function(t){return(t+"").indexOf(".")<0})));return n},getGridFilterToRemove:function(t){return t?function(e){var i=!1;return(z(t)?t.concat():[t]).forEach((function(t){("value"in t&&e.value===t.value||"class"in t&&e.class===t.class)&&(i=!0)})),i}:function(){return!0}},removeGridLines:function(t,e){var i=this,n=i.config,r=i.getGridFilterToRemove(t),s=e?a.xgridLines:a.ygridLines,o=e?a.xgridLine:a.ygridLine;i.$el.main.select("."+s).selectAll("."+o).filter(r).transition().duration(n.transition_duration).style("opacity","0").remove();var c="grid_"+(e?"x":"y")+"_lines";n[c]=n[c].filter((function(t){return!r(t)}))}},ze={initRegion:function(){var t=this.$el;t.region.main=t.main.append("g").attr("clip-path",this.state.clip.path).attr("class",a.regions)},updateRegion:function(t){var e=this,i=e.config,n=e.$el;n.region.main||e.initRegion(),n.region.main.style("visibility",e.hasArcType()?"hidden":"visible");var r=n.main.select("."+a.regions).selectAll("."+a.region).data(i.regions);r.exit().transition().duration(t).style("opacity","0").remove(),(r=r.enter().append("g").merge(r).attr("class",e.classRegion.bind(e))).append("rect").style("fill-opacity","0"),n.region.list=r},redrawRegion:function(t){var e=this,i=e.$el.region.list.select("rect");return i=(t?i.transition():i).attr("x",e.regionX.bind(e)).attr("y",e.regionY.bind(e)).attr("width",e.regionWidth.bind(e)).attr("height",e.regionHeight.bind(e)),[(t?i.transition():i).style("fill-opacity",(function(t){return T(t.opacity)?t.opacity:"0.1"})).on("end",(function(){(0,n.select)(this.parentNode).selectAll("rect:not([x])").remove()}))]},getRegionXY:function(t,e){var i=this,n=i.config,a=i.scale,r=n.axis_rotated,s="x"===t,o="start",c=0;return"y"===e.axis||"y2"===e.axis?(!s&&(o="end"),(s?r:!r)&&o in e&&(c=(0,a[e.axis])(e[o]))):(s?!r:r)&&o in e&&(c=(a.zoom||a.x)(i.axis.isTimeSeries()?ot.call(i,e[o]):e[o])),c},regionX:function(t){return this.getRegionXY("x",t)},regionY:function(t){return this.getRegionXY("y",t)},getRegionSize:function(t,e){var i=this,n=i.config,a=i.scale,r=i.state,s=n.axis_rotated,o="width"===t,c=i[o?"regionX":"regionY"](e),l="end",u=r[t];return"y"===e.axis||"y2"===e.axis?(!o&&(l="start"),(o?s:!s)&&l in e&&(u=(0,a[e.axis])(e[l]))):(o?!s:s)&&l in e&&(u=(a.zoom||a.x)(i.axis.isTimeSeries()?ot.call(i,e[l]):e[l])),ua.height/2&&(l=a.height/2)),l+(e.axis.getLabelPositionById(t).isInner?0:10)+("y2"!==t||c?0:-10)},getEventRectWidth:function(){return Math.max(0,this.axis.x.tickInterval())},getAxisTickRotate:function(t){var e=this,i=e.axis,n=e.config,a=e.state,r=e.$el,s=n["axis_"+t+"_tick_rotate"];if("x"===t){var o=i.isCategorized()||i.isTimeSeries();if(n.axis_x_tick_fit&&o){var c=n.axis_x_tick_count,l=a.current.maxTickWidths.x.ticks.length,u=0;c?u=c>l?l:c:l&&(u=l),u!==a.axis.x.tickCount&&(a.axis.x.padding=e.axis.getXAxisPadding(u)),a.axis.x.tickCount=u}r.svg&&n.axis_x_tick_fit&&!n.axis_x_tick_multiline&&!n.axis_x_tick_culling&&n.axis_x_tick_autorotate&&o&&(s=e.needToRotateXAxisTickTexts()?n.axis_x_tick_rotate:0)}return s},needToRotateXAxisTickTexts:function(){var t=this,e=t.state,i=e.axis,n=e.current.width-t.getCurrentPaddingLeft(!1)-t.getCurrentPaddingRight(),a=i.x.tickCount+i.x.padding.left+i.x.padding.right;return t.axis.getMaxTickWidth("x")>(a?n/a:0)}},Me={axis_y_clipPath:!0,axis_y_show:!0,axis_y_type:"indexed",axis_y_max:void 0,axis_y_min:void 0,axis_y_inverted:!1,axis_y_center:void 0,axis_y_inner:!1,axis_y_label:{},axis_y_tick_format:void 0,axis_y_tick_culling:!1,axis_y_tick_culling_max:5,axis_y_tick_outer:!0,axis_y_tick_values:null,axis_y_tick_rotate:0,axis_y_tick_count:void 0,axis_y_tick_show:!0,axis_y_tick_stepSize:null,axis_y_tick_text_show:!0,axis_y_tick_text_position:{x:0,y:0},axis_y_tick_time_value:void 0,axis_y_padding:{},axis_y_default:void 0,axis_y_axes:[]},Fe={axis_y2_show:!1,axis_y2_type:"indexed",axis_y2_max:void 0,axis_y2_min:void 0,axis_y2_inverted:!1,axis_y2_center:void 0,axis_y2_inner:!1,axis_y2_label:{},axis_y2_tick_format:void 0,axis_y2_tick_culling:!1,axis_y2_tick_culling_max:5,axis_y2_tick_outer:!0,axis_y2_tick_values:null,axis_y2_tick_rotate:0,axis_y2_tick_count:void 0,axis_y2_tick_show:!0,axis_y2_tick_stepSize:null,axis_y2_tick_text_show:!0,axis_y2_tick_text_position:{x:0,y:0},axis_y2_padding:{},axis_y2_default:void 0,axis_y2_axes:[]};function Be(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function $e(t){for(var e,i=1;i1&&(n.axis_x_categories[t]=e,i.redraw()),n.axis_x_categories[t]},categories:function(t){var e=this.internal,i=e.config;return arguments.length?(i.axis_x_categories=t,e.redraw(),i.axis_x_categories):i.axis_x_categories}},ge,pe,ye,xe,_e,me],Ge=[Ae,Ee,Se,Le,Pe,ze,Xe],je=[{data_xs:{},data_xFormat:"%Y-%m-%d",data_xLocaltime:!0,data_xSort:!0,data_axes:{},data_regions:{},data_stack_normalize:!1},Ne,{grid_x_show:!1,grid_x_type:"tick",grid_x_lines:[],grid_y_show:!1,grid_y_lines:[],grid_y_ticks:10,grid_focus_edge:!1,grid_focus_show:!0,grid_focus_y:!1,grid_front:!1,grid_lines_front:!0}],Ve=p(12),He={initPie:function(){var t=this,e=t.config,i=e.data_type,n=e.pie_padding,a=e[i+"_startingAngle"]||0,r=(t.hasType("pie")&&n?.01*n:e[i+"_padAngle"])||0;t.pie=(0,Ht.pie)().startAngle(a).endAngle(a+2*Math.PI).padAngle(r).value((function(t){return t.values.reduce((function(t,e){return t+e.value}),0)})).sort(t.getSortCompareFn.bind(t)(!0))},updateRadius:function(){var t=this,e=t.config,i=t.state,n=e.pie_padding,a=e.gauge_width||e.donut_width,r=t.filterTargetsToShow(t.data.targets).length*e.gauge_arcs_minWidth;i.radiusExpanded=Math.min(i.arcWidth,i.arcHeight)/2*(t.hasMultiArcGauge()?.85:1),i.radius=.95*i.radiusExpanded,i.innerRadiusRatio=a?(i.radius-a)/i.radius:.6,i.gaugeArcWidth=a||(r<=i.radius-i.innerRadius?i.radius-i.innerRadius:r<=i.radius?r:i.radius);var s=e.pie_innerRadius||(n?n*(i.innerRadiusRatio+.1):0);i.outerRadius=e.pie_outerRadius,i.innerRadius=t.hasType("donut")||t.hasType("gauge")?i.radius*i.innerRadiusRatio:s},getRadius:function(t){var e=t&&t.data,i=this.state,n=i.innerRadius,a=i.outerRadius;return!k(n)&&e&&(n=n[e.id]||0),X(a)&&e&&e.id in a?a=a[e.id]:!k(a)&&(a=this.state.radius),{innerRadius:n,outerRadius:a}},updateArc:function(){var t=this;t.updateRadius(),t.svgArc=t.getSvgArc(),t.svgArcExpanded=t.getSvgArcExpanded()},getArcLength:function(){var t=3.6*this.config.gauge_arcLength,e=t/360*2;return t<-360?e=-2:t>360&&(e=2),e*Math.PI},getStartAngle:function(){var t=this.config,e=t.gauge_fullCircle,i=-1*Math.PI/2,n=Math.PI/2,a=t.gauge_startingAngle;return!e&&a<=i?a=i:!e&&a>=n?a=n:(a>Math.PI||a<-1*Math.PI)&&(a=Math.PI),a},updateAngle:function(t){var e=this,i=e.config,n=e.state,a=e.pie,r=t,s=!1;if(!i)return null;var o=e.getStartAngle(),c=i.gauge_fullCircle?e.getArcLength():-2*o;if(r.data&&e.isGaugeType(r.data)&&!e.hasMultiArcGauge()){var l=c*(e.getTotalDataSum(n.rendered)/(i.gauge_max-i.gauge_min));a=a.startAngle(o).endAngle(l+o)}if(a(e.filterTargetsToShow()).forEach((function(t,e){s||t.data.id!==r.data.id||(s=!0,(r=t).index=e)})),isNaN(r.startAngle)&&(r.startAngle=0),isNaN(r.endAngle)&&(r.endAngle=r.startAngle),r.data&&e.hasMultiArcGauge()){var u=i.gauge_min,d=i.gauge_max,h=r.value1){var o=e.getRadius(t).outerRadius,c=this.svgArc.centroid(a),l=isNaN(c[0])?0:c[0],u=isNaN(c[1])?0:c[1],d=Math.sqrt(l*l+u*u),h=e.hasType("donut")&&i.donut_label_ratio||e.hasType("pie")&&i.pie_label_ratio;r="translate("+l*(h=h?w(h)?h.bind(e.api)(t,o,d):h:o&&(d?(36/o>.375?1.175-36/o:.8)*o/d:0))+","+u*h+")"}return r},convertToArcData:function(t){return this.addName({id:t.data?t.data.id:t.id,value:t.value,ratio:this.getRatio("arc",t),index:t.index})},textForArcLabel:function(t){var e=this,i=e.hasType("gauge");e.shouldShowArcLabel()&&t.style("fill",e.updateTextColor.bind(e)).each((function(t){var a=(0,n.select)(this),r=e.updateAngle(t),s=e.getRatio("arc",r);if(e.meetsLabelThreshold(s,(e.hasType("donut")?"donut":e.hasType("gauge")&&"gauge")||e.hasType("pie")&&"pie")){var o=(r||t).value;N(a,(e.getArcLabelFormat()||e.defaultArcValueFormat)(o,s,t.data.id).toString(),[-1,1],i)}else a.text("")}))},expandArc:function(t){var e=this,i=e.state.transiting,r=e.$el;if(i)var s=setInterval((function(){i||(clearInterval(s),r.legend.selectAll("."+a.legendItemFocused).size()>0&&e.expandArc(t))}),10);else{var o=e.mapToTargetIds(t);r.svg.selectAll(e.selectorTargets(o,"."+a.chartArc)).each((function(t){if(e.shouldExpand(t.data.id)){var i=e.getExpandConfig(t.data.id,"duration"),a=e.getSvgArcExpanded(e.getExpandConfig(t.data.id,"rate"));(0,n.select)(this).selectAll("path").transition().duration(i).attr("d",e.svgArcExpanded).transition().duration(2*i).attr("d",a)}}))}},unexpandArc:function(t){var e=this,i=e.state.transiting,n=e.$el.svg;if(!i){var r=e.mapToTargetIds(t);n.selectAll(e.selectorTargets(r,"."+a.chartArc)).selectAll("path").transition().duration((function(t){return e.getExpandConfig(t.data.id,"duration")})).attr("d",e.svgArc),n.selectAll(""+a.arc).style("opacity","1")}},getExpandConfig:function(t,e){var i,n=this,a=n.config;return n.isDonutType(t)?i="donut":n.isGaugeType(t)?i="gauge":n.isPieType(t)&&(i="pie"),i?a[i+"_expand_"+e]:{duration:50,rate:.98}[e]},shouldExpand:function(t){var e=this,i=e.config;return e.isDonutType(t)&&i.donut_expand||e.isGaugeType(t)&&i.gauge_expand||e.isPieType(t)&&i.pie_expand},shouldShowArcLabel:function(){var t=this,e=t.config;return["pie","donut","gauge"].some((function(i){return t.hasType(i)&&e[i+"_label_show"]}))},getArcLabelFormat:function(){var t=this,e=t.config,i=e.pie_label_format;return t.hasType("gauge")?i=e.gauge_label_format:t.hasType("donut")&&(i=e.donut_label_format),w(i)?i.bind(t.api):i},getArcTitle:function(){var t=this,e=t.hasType("donut")?"donut":t.hasType("gauge")&&"gauge";return e?t.config[e+"_title"]:""},updateTargetsForArc:function(t){var e=this,i=e.$el,n=e.hasType("gauge"),r=e.getChartClass("Arc"),s=e.getClass("arcs",!0),o=e.classFocus.bind(e),c=i.main.select("."+a.chartArcs),l=c.selectAll("."+a.chartArc).data(e.pie(t)).attr("class",(function(t){return r(t)+o(t.data)})),u=l.enter().append("g").attr("class",r);u.append("g").attr("class",s).merge(l),u.append("text").attr("dy",n&&!e.hasMultiTargets()?"-.1em":".35em").style("opacity","0").style("text-anchor","middle").style("pointer-events","none"),i.text=c.selectAll("."+a.target+" text")},initArc:function(){var t=this,e=t.$el;e.arcs=e.main.select("."+a.chart).append("g").attr("class",a.chartArcs).attr("transform",t.getTranslate("arc")),t.setArcTitle()},setArcTitle:function(){var t=this,e=t.getArcTitle(),i=t.hasType("gauge");if(e){var n=t.$el.arcs.append("text").attr("class",a[i?"chartArcsGaugeTitle":"chartArcsTitle"]).style("text-anchor","middle");i&&n.attr("dy","-0.3em").style("font-size","27px"),N(n,e,i?void 0:[-.6,1.35],!0)}},redrawArc:function(t,e,i){var r=this,s=r.config,o=r.state,c=r.$el.main,l=s.interaction_enabled,u=l&&s.data_selection_isselectable,d=c.selectAll("."+a.arcs).selectAll("."+a.arc).data(r.arcData.bind(r));d.exit().transition().duration(e).style("opacity","0").remove(),d=d.enter().append("path").attr("class",r.getClass("arc",!0)).style("fill",(function(t){return r.color(t.data)})).style("cursor",(function(t){return u&&u.bind(r.api)(t)?"pointer":null})).style("opacity","0").each((function(t){r.isGaugeType(t.data)&&(t.startAngle=s.gauge_startingAngle,t.endAngle=s.gauge_startingAngle),this._current=t})).merge(d),r.hasType("gauge")&&(r.updateGaugeMax(),r.hasMultiArcGauge()&&r.redrawMultiArcGauge()),d.attr("transform",(function(t){return!r.isGaugeType(t.data)&&i?"scale(0)":""})).style("opacity",(function(t){return t===this._current?"0":"1"})).each((function(){o.transiting=!0})).transition().duration(t).attrTween("d",(function(t){var e=r.updateAngle(t);if(!e)return function(){return"M 0 0"};isNaN(this._current.startAngle)&&(this._current.startAngle=0),isNaN(this._current.endAngle)&&(this._current.endAngle=this._current.startAngle);var i=(0,Ve.interpolate)(this._current,e);return this._current=i(0),function(e){var n=i(e);return n.data=t.data,r.getArc(n,!0)}})).attr("transform",i?"scale(1)":"").style("fill",(function(t){var e;return r.levelColor?(e=r.levelColor(t.data.values[0].value),s.data_colors[t.data.id]=e):e=r.color(t.data),e})).style("opacity","1").call(B,(function(){if(r.levelColor){var t=(0,n.select)(this),e=t.datum();r.updateLegendItemColor(e.data.id,t.style("fill"))}o.transiting=!1,F(s.onrendered,r.api)})),l&&r.bindArcEvent(d),r.hasType("gauge")&&r.redrawBackgroundArcs(),r.redrawArcText(t)},redrawBackgroundArcs:function(){var t=this,e=t.config,i=t.state,n=t.hasMultiArcGauge(),r=e.gauge_fullCircle,s=t.getStartAngle(),o=r?s+t.getArcLength():-1*s,c=t.$el.arcs.select((n?"g":"")+"."+a.chartArcsBackground);if(n){var l=0;(c=c.selectAll("path."+a.chartArcsBackground).data(t.data.targets)).enter().append("path").attr("class",(function(t,e){return a.chartArcsBackground+" "+a.chartArcsBackground+"-"+e})).merge(c).style("fill",e.gauge_background||null).attr("d",(function(n){var a=n.id;if(i.hiddenTargetIds.indexOf(a)>=0)return"M 0 0";var r={data:[{value:e.gauge_max}],startAngle:s,endAngle:o,index:l++};return t.getArc(r,!0,!0)})),c.exit().remove()}else c.attr("d",(function(){var i={data:[{value:e.gauge_max}],startAngle:s,endAngle:o};return t.getArc(i,!0,!0)}))},bindArcEvent:function(t){function e(t,e,i){a.expandArc(i),a.api.focus(i),a.toggleFocusLegend(i,!0),a.showTooltip([e],t)}function i(t){var e=t&&t.id||void 0;a.unexpandArc(e),a.api.revert(),a.revertLegend(),a.hideTooltip()}var a=this,r=a.config,s=a.state,o="touch"===s.inputType,c="mouse"===s.inputType;if(t.on("click",(function(t,e,i){var n,s=a.updateAngle(e);s&&(n=a.convertToArcData(s),a.toggleShape&&a.toggleShape(this,n,i),r.data_onclick.bind(a.api)(n,this))})),c&&t.on("mouseover",(function(t,i){if(!s.transiting){s.event=t;var n=a.updateAngle(i),r=n?a.convertToArcData(n):null;e(this,r,r&&r.id||void 0),a.setOverOut(!0,r)}})).on("mouseout",(function(t,e){if(!s.transiting){s.event=t;var n=a.updateAngle(e),r=n?a.convertToArcData(n):null;i(),a.setOverOut(!1,r)}})).on("mousemove",(function(t,e){var i=a.updateAngle(e),n=i?a.convertToArcData(i):null;s.event=t,a.showTooltip([n],this)})),o&&a.hasArcType()&&!a.radars){a.$el.svg.on("touchstart touchmove",(function(t){if(!s.transiting){var r=function(t){var e=t.changedTouches[0];return(0,n.select)(m.elementFromPoint(e.clientX,e.clientY))}(t).datum(),o=r&&r.data&&r.data.id?a.updateAngle(r):null,c=o?a.convertToArcData(o):null,l=c&&c.id||void 0;a.callOverOutForTouch(c),S(l)?i():e(this,c,l)}}))}},redrawArcText:function(t){var e,i=this,n=i.config,r=i.state,s=i.$el,o=s.main,c=s.arcs,l=i.hasType("gauge"),u=i.hasMultiArcGauge();if(l&&1===i.data.targets.length&&n.gauge_title||(e=o.selectAll("."+a.chartArc).select("text").style("opacity","0").attr("class",(function(t){return i.isGaugeType(t.data)?a.gaugeValue:null})).call(i.textForArcLabel.bind(i)).attr("transform",i.transformForArcLabel.bind(i)).style("font-size",(function(t){return i.isGaugeType(t.data)&&1===i.data.targets.length&&!u?Math.round(r.radius/5)+"px":null})).transition().duration(t).style("opacity",(function(t){return i.isTargetToShow(t.data.id)&&i.isArcType(t.data)?"1":"0"})),u&&e.attr("dy","-.1em")),o.select("."+a.chartArcsTitle).style("opacity",i.hasType("donut")||l?"1":"0"),l){var d=n.gauge_fullCircle;d&&e&&e.attr("dy",""+(u?0:Math.round(r.radius/14))),n.gauge_label_show&&(c.select("."+a.chartArcsGaugeUnit).attr("dy",(d?1.5:.75)+"em").text(n.gauge_units),c.select("."+a.chartArcsGaugeMin).attr("dx",-1*(r.innerRadius+(r.radius-r.innerRadius)/(d?1:2))+"px").attr("dy","1.2em").text(i.textForGaugeMinMax(n.gauge_min,!1)),!d&&c.select("."+a.chartArcsGaugeMax).attr("dx",r.innerRadius+(r.radius-r.innerRadius)/2+"px").attr("dy","1.2em").text(i.textForGaugeMinMax(n.gauge_max,!0)))}}},We={initArea:function(t){var e=this.config;t.insert("g","."+a[e.area_front?"circles":"lines"]).attr("class",this.getClass("areas",!0))},updateAreaGradient:function(){var t=this,e=t.config,i=t.state.datetimeId,n=t.$el.defs;t.data.targets.forEach((function(a){var r=i+"-areaGradient"+t.getTargetSelectorSuffix(a.id);if(t.isAreaType(a)&&n.select("#"+r).empty()){var s=t.color(a),o=e.area_linearGradient,c=o.x,l=void 0===c?[0,0]:c,u=o.y,d=void 0===u?[0,1]:u,h=o.stops,g=void 0===h?[[0,s,1],[1,s,0]]:h,f=n.append("linearGradient").attr("id",""+r).attr("x1",l[0]).attr("x2",l[1]).attr("y1",d[0]).attr("y2",d[1]);g.forEach((function(e){var i=w(e[1])?e[1].bind(t.api)(a.id):e[1];f.append("stop").attr("offset",e[0]).attr("stop-color",i||s).attr("stop-opacity",e[2])}))}}))},updateAreaColor:function(t){var e=this;return e.config.area_linearGradient?"url(#"+e.state.datetimeId+"-areaGradient"+e.getTargetSelectorSuffix(t.id)+")":e.color(t)},updateArea:function(t,e){void 0===e&&(e=!1);var i=this,r=i.config,s=i.state,o=i.$el,c=e?o.subchart:o;r.area_linearGradient&&i.updateAreaGradient();var l=c.main.selectAll("."+a.areas).selectAll("."+a.area).data(i.lineData.bind(i));l.exit().transition().duration(t).style("opacity","0").remove(),c.area=l.enter().append("path").attr("class",i.getClass("area",!0)).style("fill",i.updateAreaColor.bind(i)).style("opacity",(function(){return s.orgAreaOpacity=(0,n.select)(this).style("opacity"),"0"})).merge(l),l.style("opacity",s.orgAreaOpacity)},redrawArea:function(t,e,i){void 0===i&&(i=!1);var n=this,a=(i?this.$el.subchart:this.$el).area,r=n.state.orgAreaOpacity;return[(e?a.transition(H()):a).attr("d",t).style("fill",n.updateAreaColor.bind(n)).style("opacity",(function(t){return(n.isAreaRangeType(t)?r/1.75:r)+""}))]},generateDrawArea:function(t,e){var i=this,n=i.config,a=n.line_connectNull,r=n.axis_rotated,s=i.generateGetAreaPoints(t,e),o=i.getYScaleById.bind(i),c=function(t){return(e?i.subxx:i.xx).call(i,t)},l=function(t,n){return i.isGrouped(t.id)?s(t,n)[0][1]:o(t.id,e)(i.isAreaRangeType(t)?i.getRangedData(t,"high"):i.getShapeYMin(t.id))},u=function(t,n){return i.isGrouped(t.id)?s(t,n)[1][1]:o(t.id,e)(i.isAreaRangeType(t)?i.getRangedData(t,"low"):t.value)};return function(t){var e,s=a?i.filterRemoveNull(t.values):t.values,o=0,d=0;if(i.isAreaType(t)){var h=(0,Ht.area)();h=r?h.y(c).x0(l).x1(u):h.x(c).y0(n.area_above?0:l).y1(u),a||(h=h.defined((function(t){return null!==i.getBaseValue(t)}))),i.isStepType(t)&&(s=i.convertValuesToStep(s)),e=h.curve(i.getCurve(t))(s)}else s[0]&&(o=i.scale.x(s[0].x),d=i.getYScaleById(t.id)(s[0].value)),e=r?"M "+d+" "+o:"M "+o+" "+d;return e||"M 0 0"}},generateGetAreaPoints:function(t,e){var i=this,n=i.config,a=i.getShapeX(0,t,e),r=i.getShapeY(!!e),s=i.getShapeOffset(i.isAreaType,t,e),o=i.getYScaleById.bind(i);return function(t,c){var l=o.call(i,t.id,e)(i.getShapeYMin(t.id)),u=s(t,c)||l,d=a(t),h=r(t);return n.axis_rotated&&(t.value>0&&h0?function(){return s}:k(o)?function(t){return t*o}:null;return function(t,e){var i=n(t,e),s=+a,o=+!s,l=t.value<0,u=["",""],d=0;if(c&&!r){var h=a?o:s,g=i[2][h]-i[0][h],f="a"+(d=c(g))+","+d+" "+(l?"1 0 0":"0 0 1")+" ";u[+!a]=""+f+d+","+d,u[+a]=""+f+[-d,d][a?"sort":"reverse"](),l&&u.reverse()}var p=a?"H"+(i[1][s]-d)+" "+u[0]+"V"+(i[2][o]-d)+" "+u[1]+"H"+i[3][s]:"V"+(i[1][o]+(l?-d:d))+" "+u[0]+"H"+(i[2][s]-d)+" "+u[1]+"V"+i[3][o];return"M"+i[0][s]+","+i[0][o]+p+"z"}},generateGetBarPoints:function(t,e){var i=this,n=i.config,a=e?i.axis.subX:i.axis.x,r=i.getIndicesMax(t)+1,s=i.getBarW("bar",a,r),o=i.getShapeX(s,t,!!e),c=i.getShapeY(!!e),l=i.getShapeOffset(i.isBarType,t,!!e),u=i.getYScaleById.bind(i);return function(t,a){var r=u.call(i,t.id,e)(i.getShapeYMin(t.id)),d=l(t,a)||r,h=k(s)?s:s[t.id]||s._$width,g=o(t),f=c(t);n.axis_rotated&&(t.value>0&&f0&&x.start=e.open),e||null}},Ke={initGauge:function(){var t=this,e=t.config,i=t.$el.arcs,n=function(t){i.append("text").attr("class",t).style("text-anchor","middle").style("pointer-events","none")};if(t.hasType("gauge")){var r=t.hasMultiArcGauge();i.append(r?"g":"path").attr("class",a.chartArcsBackground).style("fill",!r&&e.gauge_background||null),e.gauge_units&&n(a.chartArcsGaugeUnit),e.gauge_label_show&&(n(a.chartArcsGaugeMin),!e.gauge_fullCircle&&n(a.chartArcsGaugeMax))}},updateGaugeMax:function(){var t=this,e=t.config,i=t.state,n=t.hasMultiArcGauge()?t.getMinMaxData().max[0].value:t.getTotalDataSum(i.rendered);n>e.gauge_max&&(e.gauge_max=n)},redrawMultiArcGauge:function(){var t=this,e=t.config,i=t.state,r=t.$el,s=t.state.hiddenTargetIds,o=r.main.selectAll("."+a.arcs).selectAll("."+a.arcLabelLine).data(t.arcData.bind(t));o.enter().append("rect").attr("class",(function(t){return a.arcLabelLine+" "+a.target+" "+a.target+"-"+t.data.id})).merge(o).style("fill",(function(e){return t.levelColor?t.levelColor(e.data.values[0].value):t.color(e.data)})).style("display",e.gauge_label_show?"":"none").each((function(e){var a=0,r=0,o=0,c="";if(s.indexOf(e.data.id)<0){var l=t.updateAngle(e),u=i.gaugeArcWidth/t.filterTargetsToShow(t.data.targets).length*(l.index+1),d=l.endAngle-Math.PI/2,h=i.radius-u,g=d-(0===h?0:1/h);a=i.radiusExpanded-i.radius+u,r=Math.cos(g)*h,o=Math.sin(g)*h,c="rotate("+180*d/Math.PI+", "+r+", "+o+")"}(0,n.select)(this).attr("x",r).attr("y",o).attr("width",a).attr("height",2).attr("transform",c).style("stroke-dasharray","0, "+(a+2)+", 0")}))},textForGaugeMinMax:function(t,e){var i=this.config.gauge_label_extents;return w(i)?i.bind(this.api)(t,e):t},getGaugeLabelHeight:function(){var t=this.config;return this.config.gauge_label_show&&!t.gauge_fullCircle?20:0},getPaddingBottomForGauge:function(){return this.getGaugeLabelHeight()*(this.config.gauge_label_show?2:2.5)}},Je={initBubble:function(){var t=this.config;this.hasType("bubble")&&(t.point_show=!0,t.point_type="circle",t.point_sensitivity=25)},getBaseLength:function(){var t=this,e=t.state,i=e.width,n=e.height,a=ht,r=t.cache.get(a);return r||t.cache.add(a,r=nt("min",[i,n])),r},getBubbleR:function(t){var e=this,i=e.config.bubble_maxR;w(i)?i=i.bind(e.api)(t):!k(i)&&(i=e.getBaseLength()/(2*e.getMaxDataCount())+12);var n=nt("max",e.getMinMaxData().max.map((function(t){return e.isBubbleZType(t)?e.getBubbleZData(t.value,"y"):X(t.value)?t.value.mid:t.value}))),a=i*i*Math.PI,r=(e.isBubbleZType(t)?e.getBubbleZData(t.value,"z"):t.value)*(a/n);return Math.sqrt(r/Math.PI)},getBubbleZData:function(t,e){return X(t)?t[e]:t["y"===e?0:1]}},Qe={initLine:function(){var t=this.$el;t.line=t.main.select("."+a.chart).append("g").attr("class",a.chartLines)},updateTargetsForLine:function(t){var e=this,i=e.$el,n=i.area,r=i.line,s=i.main,o=e.getChartClass("Line"),c=e.getClass("lines",!0),l=e.classFocus.bind(e);r||e.initLine();var u=t.filter((function(t){return!(e.isScatterType(t)||e.isBubbleType(t))})),d=s.select("."+a.chartLines).selectAll("."+a.chartLine).data(u).attr("class",(function(t){return o(t)+l(t)})),h=d.enter().append("g").attr("class",o).style("opacity","0").style("pointer-events","none");h.append("g").attr("class",c),e.hasTypeOf("Area")&&e.initArea(!n&&h.empty()?d:h),e.updateTargetForCircle(u,h)},updateLine:function(t,e){void 0===e&&(e=!1);var i=this,n=i.format.extraLineClasses,r=i.$el,s=e?r.subchart:r,o=s.main.selectAll("."+a.lines).selectAll("."+a.line).data(i.lineData.bind(i));o.exit().transition().duration(t).style("opacity","0").remove(),s.line=o.enter().append("path").attr("class",(function(t){return i.getClass("line",!0)(t)+" "+(n(t)||"")})).style("stroke",i.color).merge(o).style("opacity",i.initialOpacity.bind(i)).style("shape-rendering",(function(t){return i.isStepType(t)?"crispEdges":""})).attr("transform",null)},redrawLine:function(t,e,i){void 0===i&&(i=!1);var n=(i?this.$el.subchart:this.$el).line;return[(e?n.transition(H()):n).attr("d",t).style("stroke",this.color).style("opacity","1")]},getCurve:function(t){var e=this;return e.config.axis_rotated&&e.isStepType(t)?function(i){var n=e.getInterpolate(t)(i);return n.orgPoint=n.point,n.pointRotated=function(t,e){1===this._point&&(this._point=2);var i=this._y*(1-this._t)+e*this._t;this._context.lineTo(this._x,i),this._context.lineTo(t,i),this._x=t,this._y=e},n.point=function(t,e){0===this._point?this.orgPoint(t,e):this.pointRotated(t,e)},n}:e.getInterpolate(t)},generateDrawLine:function(t,e){var i=this,n=i.config,a=i.scale,r=n.line_connectNull,s=n.axis_rotated,o=i.generateGetLinePoints(t,e),c=i.getYScaleById.bind(i),l=function(t){return(e?i.subxx:i.xx).call(i,t)},u=function(t,n){return i.isGrouped(t.id)?o(t,n)[0][1]:c(t.id,e)(i.getBaseValue(t))},d=(0,Ht.line)();d=s?d.x(u).y(l):d.x(l).y(u),r||(d=d.defined((function(t){return null!==i.getBaseValue(t)})));var h=e?a.subX:a.x;return function(t){var a,o=c(t.id,e),l=r?i.filterRemoveNull(t.values):t.values,u=0,g=0;if(i.isLineType(t)){var f=n.data_regions[t.id];f?a=i.lineWithRegions(l,h,o,f):(i.isStepType(t)&&(l=i.convertValuesToStep(l)),a=d.curve(i.getCurve(t))(l))}else l[0]&&(u=h(l[0].x),g=o(l[0].value)),a=s?"M "+g+" "+u:"M "+u+" "+g;return a||"M 0 0"}},lineWithRegions:function(t,e,i,n){var a,r,s,o,c=this,l=c.config.axis_rotated,u=c.axis.isTimeSeries(),d=c.axis.isCategorized()?.5:0,h=[],g=function(t,e){for(var i,n=0;i=e[n];n++)if(i.start=1&&(E+=k(R,y,1,0))}}else E+=(O&&D?"L":"M")+b(y)+","+w(y)}return E},isWithinStep:function(t,e){return Math.abs(e-G(this.state.event,t)[1])<30},shouldDrawPointsForLine:function(t){var e=this.config.line_point;return!0===e||z(e)&&-1!==e.indexOf(t.id)}},ti=function(){return H()},ei={hasValidPointType:function(t){return/^(circle|rect(angle)?|polygon|ellipse|use)$/i.test(t||this.config.point_type)},hasValidPointDrawMethods:function(t){var e=t||this.config.point_type;return D(e)&&w(e.create)&&w(e.update)},initialOpacityForCircle:function(t){var e=this.config,i=this.state.withoutFadeIn,n=e.point_opacity;return S(n)&&(n=null!==this.getBaseValue(t)&&i[t.id]?this.opacityForCircle(t):"0"),n},opacityForCircle:function(t){var e=this.config,i=e.point_opacity;return S(i)&&(i=e.point_show&&!e.point_focus_only?"1":"0",i=T(this.getBaseValue(t))?this.isBubbleType(t)||this.isScatterType(t)?"0.5":i:"0"),i},initCircle:function(){var t=this,e=t.$el.main;t.point=t.generatePoint(),(t.hasType("bubble")||t.hasType("scatter"))&&e.select("."+a.chartCircles).empty()&&e.select("."+a.chart).append("g").attr("class",a.chartCircles)},updateTargetForCircle:function(t,e){var i=this,n=this,r=n.config,s=n.data,o=n.$el,c=r.interaction_enabled&&r.data_selection_enabled,l=c&&r.data_selection_isselectable,u=n.getClass("circles",!0);if(r.point_show){o.circle||n.initCircle();var d=t,h=e;if(!d){d=s.targets.filter((function(t){return i.isScatterType(t)||i.isBubbleType(t)}));var g=o.main.select("."+a.chartCircles).style("pointer-events","none").selectAll("."+a.circles).data(d).attr("class",u);g.exit().remove(),h=g.enter()}c&&h.append("g").attr("class",(function(t){return n.generateClass(a.selectedCircles,t.id)})),h.append("g").attr("class",u).style("cursor",(function(t){return l&&l(t)?"pointer":null})),c&&d.forEach((function(t){o.main.selectAll("."+a.selectedCircles+n.getTargetSelectorSuffix(t.id)).selectAll(""+a.selectedCircle).each((function(e){e.value=t.values[e.index].value}))}))}},updateCircle:function(t){void 0===t&&(t=!1);var e=this,i=e.config,n=e.state,r=e.$el,s=i.point_focus_only,o=t?r.subchart:r;if(i.point_show&&!n.toggling){var c=o.main.selectAll("."+a.circles).selectAll("."+a.circle).data((function(t){return e.isLineType(t)&&e.shouldDrawPointsForLine(t)||e.isBubbleType(t)||e.isRadarType(t)||e.isScatterType(t)?s?[t.values[0]]:t.values:[]}));c.exit().remove(),c.enter().filter(Boolean).append(e.point("create",this,e.pointR.bind(e),e.color)),o.circle=o.main.selectAll("."+a.circles+" ."+a.circle).style("stroke",e.color).style("opacity",e.initialOpacityForCircle.bind(e))}},redrawCircle:function(t,e,i,n,r){void 0===r&&(r=!1);var s=this,o=s.state.rendered,c=s.$el,l=r?c.subchart:c,u=l.main.selectAll("."+a.selectedCircle);if(!s.config.point_show)return[];var d=s.point("update",s,t,e,s.color,i,n,u),h=s.isCirclePoint()?"c":"",g=H(),f=s.opacityForCircle.bind(s),p=[];return l.circle.each((function(t){var e=d.bind(this)(t);e=(i||!o?e.transition(g):e).style("opacity",f),p.push(e)})),[p,(i?u.transition():u).attr(h+"x",t).attr(h+"y",e)]},showCircleFocus:function(t){var e=this,i=e.config,a=e.state,r=a.hasRadar,s=a.resizing,o=a.toggling,c=a.transiting,l=e.$el.circle;if(!1===c&&i.point_focus_only&&l){var u=(r?e.radarCircleX:e.circleX).bind(e),d=(r?e.radarCircleY:e.circleY).bind(e),h=o||S(t),g=e.point("update",e,u,d,e.color,!s&&h);t&&(l=l.filter((function(e){var i=t.filter((function(t){return t.id===e.id}));return!!i.length&&(0,n.select)(this).datum(i[0])}))),l.attr("class",this.updatePointClass.bind(this)).style("opacity","1").each((function(t){var i=t.id,n=t.index,a=t.value,r="hidden";T(a)&&(g.bind(this)(t),e.expandCircles(n,i),r=""),this.style.visibility=r}))}},hideCircleFocus:function(){var t=this,e=t.config,i=t.$el.circle;e.point_focus_only&&i&&(t.unexpandCircles(),i.style("visibility","hidden"))},circleX:function(t){return this.xx(t)},updateCircleY:function(t){void 0===t&&(t=!1);var e=this,i=e.generateGetLinePoints(e.getShapeIndices(e.isLineType),t);return function(n,a){var r=n.id;return e.isGrouped(r)?i(n,a)[0][1]:e.getYScaleById(r,t)(e.getBaseValue(n))}},getCircles:function(t,e){var i=this,n=T(t)?"-"+t:"";return(e?i.$el.main.selectAll("."+a.circles+i.getTargetSelectorSuffix(e)):i.$el.main).selectAll("."+a.circle+n)},expandCircles:function(t,e,i){var r=this,s=r.pointExpandedR.bind(r);i&&r.unexpandCircles();var o=r.getCircles(t,e).classed(a.EXPANDED,!0),c=s(o)/r.config.point_r,l=1-c;r.isCirclePoint()?o.attr("r",s):o.each((function(){var t=(0,n.select)(this);if("circle"===this.tagName)t.attr("r",s);else{var e=this.getBBox(),i=e.width,a=e.height,r=l*(+t.attr("x")+i/2),o=l*(+t.attr("y")+a/2);t.attr("transform","translate("+r+" "+o+") scale("+c+")")}}))},unexpandCircles:function(t){var e=this,i=e.pointR.bind(e),r=e.getCircles(t).filter((function(){return(0,n.select)(this).classed(a.EXPANDED)})).classed(a.EXPANDED,!1);r.attr("r",i),e.isCirclePoint()||r.attr("transform","scale("+i(r)/e.config.point_r+")")},pointR:function(t){var e=this,i=e.config.point_r,n=i;return e.isBubbleType(t)?n=e.getBubbleR(t):w(i)&&(n=i.bind(e.api)(t)),n},pointExpandedR:function(t){var e=this,i=e.config,n=e.isBubbleType(t)?1.15:1.75;return i.point_focus_expand_enabled?i.point_focus_expand_r||e.pointR(t)*n:e.pointR(t)},pointSelectR:function(t){var e=this.config.point_select_r;return w(e)?e(t):e||4*this.pointR(t)},isWithinCircle:function(t,e){var i=G(this.state.event,t),a=(0,n.select)(t),r=this.isCirclePoint(t)?"c":"",s=+a.attr(r+"x"),o=+a.attr(r+"y");if(!s&&!o&&1===t.nodeType){var c=V(t);s=c.x,o=c.y}return Math.sqrt(Math.pow(s-i[0],2)+Math.pow(o-i[1],2))<(e||this.config.point_sensitivity)},insertPointInfoDefs:function(t,e){var i=function(t,e){for(var i,n=t.attributes,a=0;i=n[a];a++)i=i.name,e.setAttribute(i,t.getAttribute(i))},a=(new DOMParser).parseFromString(t,"image/svg+xml").documentElement,r=m.createElementNS(n.namespaces.svg,a.nodeName.toLowerCase());if(r.id=e,r.style.fill="inherit",r.style.stroke="inherit",i(a,r),a.childNodes&&a.childNodes.length){var s=(0,n.select)(r);"innerHTML"in r?s.html(a.innerHTML):K(a.childNodes).forEach((function(t){i(t,s.append(t.tagName).node())}))}this.$el.defs.node().appendChild(r)},pointFromDefs:function(t){return this.$el.defs.select("#"+t)},updatePointClass:function(t){var e=this,i=e.$el.circle,n=!1;return(X(t)||i)&&(n=!0===t?i.each((function(t){var i=e.getClass("circle",!0)(t);this.getAttribute("class").indexOf(a.EXPANDED)>-1&&(i+=" "+a.EXPANDED),this.setAttribute("class",i)})):e.getClass("circle",!0)(t)),n},generateGetLinePoints:function(t,e){var i=this,n=i.config,a=i.getShapeX(0,t,e),r=i.getShapeY(e),s=i.getShapeOffset(i.isLineType,t,e),o=i.getYScaleById.bind(i);return function(t,c){var l=o.call(i,t.id,e)(i.getShapeYMin(t.id)),u=s(t,c)||l,d=a(t),h=r(t);n.axis_rotated&&(t.value>0&&h2?o-2:0),l=2;l0?i-n:n,o=2*Math.PI;return a*(1-r*("x"===e?Math.sin:Math.cos)(s*o/i))}(l,r,c,e,C(i)?i:"x"===t?s:o,k(n)?n:a.radar_size_ratio)}));return 1===u.length?u[0]:u},generateRadarPoints:function(){var t=this,e=t.data.targets,i=t.getRadarSize(),n=i[0],a=i[1],r=t.cache.get(ii)||{},s=r._size;s&&(s.width===n||s.height===a)||(e.forEach((function(e){r[e.id]=e.values.map((function(e,i){return t.getRadarPosition(["x","y"],i,void 0,t.getRatio("radar",e))}))})),r._size={width:n,height:a},t.cache.add(ii,r))},redrawRadar:function(t){var e=this,i=e.$el,n=i.radar,r=i.main,s=e.getTranslate("radar");s&&(n.attr("transform",s),r.select("."+a.chartTexts).attr("transform",s),e.generateRadarPoints(),e.updateRadarLevel(),e.updateRadarAxes(),e.updateRadarShape(t))},generateGetRadarPoints:function(){var t=this.cache.get(ii);return function(e,i){var n=t[e.id][i];return[n,n,n,n]}},updateRadarLevel:function(){var t=this,e=t.config,i=t.state,n=t.$el.radar,r=t.getRadarSize(),s=r[0],o=r[1],c=e.radar_level_depth,l=e.axis_x_categories.length,u=e.radar_level_text_show,d=n.levels,h=at(0,c),g=e.radar_size_ratio*Math.min(s,o),f=h.map((function(t){return g*((t+1)/c)})),p=(e.radar_level_text_format||function(){}).bind(t.api),x=h.map((function(e){var i=f[e];return at(0,l).map((function(e){return t.getRadarPosition(["x","y"],e,i,1).join(",")})).join(" ")})),v=d.selectAll("."+a.level).data(h);v.exit().remove();var _=v.enter().append("g").attr("class",(function(t,e){return a.level+" "+a.level+"-"+e}));_.append("polygon").style("visibility",e.radar_level_show?null:"hidden"),u&&(d.select("text").empty()&&d.append("text").attr("dx","-.5em").attr("dy","-.7em").style("text-anchor","end").text((function(){return p(0)})),_.append("text").attr("dx","-.5em").style("text-anchor","end").text((function(t){return p(i.current.dataMax/h.length*(t+1))}))),_.merge(v).attr("transform",(function(t){return"translate("+(s-f[t])+", "+(o-f[t])+")"})).selectAll("polygon").attr("points",(function(t){return x[t]})),u&&d.selectAll("text").attr("x",(function(t){return S(t)?s:x[t].split(",")[0]})).attr("y",(function(t){return S(t)?o:0}))},updateRadarAxes:function(){var t=this,e=t.config,i=t.$el.radar,r=t.getRadarSize(),s=r[0],o=r[1],c=e.axis_x_categories,l=i.axes.selectAll("g").data(c);l.exit().remove();var u=l.enter().append("g").attr("class",(function(t,e){return a.axis+"-"+e}));if(e.radar_axis_line_show&&u.append("line"),e.radar_axis_text_show&&u.append("text"),l=u.merge(l),e.radar_axis_line_show&&l.select("line").attr("x1",s).attr("y1",o).attr("x2",(function(e,i){return t.getRadarPosition("x",i)})).attr("y2",(function(e,i){return t.getRadarPosition("y",i)})),e.radar_axis_text_show){var d=e.radar_axis_text_position,h=d.x,g=void 0===h?0:h,f=d.y,p=void 0===f?0:f;l.select("text").style("text-anchor","middle").attr("dy",".5em").call((function(t){t.each((function(t){N((0,n.select)(this),t+"",[-.6,1.2])}))})).datum((function(t,e){return{index:e}})).attr("transform",(function(e){S(this.width)&&(this.width=this.getBoundingClientRect().width/2);var i=t.getRadarPosition("x",e.index,void 0,1),n=Math.round(t.getRadarPosition("y",e.index,void 0,1));return i>s?i+=this.width+g:Math.round(i)o?(n/2===o&&"tspan"===this.firstChild.tagName&&this.firstChild.setAttribute("dy","0em"),n+=p):n=0,g=!e||e.indexOf(c)>=0,f=l.classed(a.SELECTED);l.classed(a.line)||l.classed(a.area)||(h&&g?s.data_selection_isselectable.bind(r.api)(o)&&!f&&d(!0,l.classed(a.SELECTED,!0),o,c):C(i)&&i&&f&&d(!1,l.classed(a.SELECTED,!1),o,c))}))},unselect:function(t,e){var i=this.internal,r=i.config,s=i.$el;r.data_selection_enabled&&s.main.selectAll("."+a.shapes).selectAll("."+a.shape).each((function(s,o){var c=(0,n.select)(this),l=s.data?s.data.id:s.id,u=i.getToggle(this,s).bind(i),d=r.data_selection_grouped||!t||t.indexOf(l)>=0,h=!e||e.indexOf(o)>=0,g=c.classed(a.SELECTED);c.classed(a.line)||c.classed(a.area)||d&&h&&r.data_selection_isselectable.bind(i.api)(s)&&g&&u(!1,c.classed(a.SELECTED,!1),s,o)}))}},Xi={subchart:{show:function(){var t=this.internal,e=t.$el.subchart,i=t.config,n=i.subchart_show;if(!n){i.subchart_show=!n,e.main||t.initSubchart();var r=e.main.selectAll("."+a.target);t.data.targets.length!==r.size()&&(t.updateSizes(),t.updateTargetsForSubchart(t.data.targets),r=e.main.selectAll("."+a.target)),r.style("opacity","1"),e.main.style("display",null),this.flush()}},hide:function(){var t=this.internal,e=t.$el.subchart,i=t.config;i.subchart_show&&"none"!==e.main.style("display")&&(i.subchart_show=!1,e.main.style("display","none"),this.flush())},toggle:function(){var t=this.internal.config;this.subchart[t.subchart_show?"hide":"show"]()}}},Mi=p(14);var Fi=function(t){var e,i=this.internal,n=i.config,a=i.scale,r=t;if(n.zoom_enabled&&r){if(i.axis.isTimeSeries()&&(r=r.map((function(t){return ot.bind(i)(t)}))),function(t,e){var i=e[0],n=e[1];return t.every((function(t,e){return 0===e?t>=i:t<=n}))}(r,i.getZoomDomain())){if(i.api.tooltip.hide(),n.subchart_show){var s=a.zoom||a.x;i.brush.getSelection().call(i.brush.move,[s(r[0]),s(r[1])]),e=r}else a.x.domain(r),a.zoom=a.x,i.axis.x.scale(a.zoom),e=a.zoom.orgDomain();i.redraw({withTransition:!0,withY:n.zoom_rescale,withDimension:!1}),i.setZoomResetButton(),F(n.zoom_onzoom,i.api,e)}}else e=a.zoom?a.zoom.domain():a.x.orgDomain();return e};Z(Fi,{enable:function(t){var e=this.internal,i=e.config;/^(drag|wheel)$/.test(t)&&(i.zoom_type=t),i.zoom_enabled=!!t,e.zoom?!1===t&&e.bindZoomEvent(!1):(e.initZoom(),e.bindZoomEvent()),e.updateAndRedraw()},max:function(t){var e=this.internal,i=e.config,n=e.org.xDomain;return(0===t||t)&&(i.zoom_x_max=nt("max",[n[1],t])),i.zoom_x_max},min:function(t){var e=this.internal,i=e.config,n=e.org.xDomain;return(0===t||t)&&(i.zoom_x_min=nt("min",[n[0],t])),i.zoom_x_min},range:function(t){var e=this.zoom;if(X(t)){var i=t.min,n=t.max;C(i)&&e.min(i),C(n)&&e.max(n)}return{min:e.min(),max:e.max()}}});var Bi={zoom:Fi,unzoom:function(){var t=this.internal,e=t.config;if(t.scale.zoom){e.subchart_show?t.brush.getSelection().call(t.brush.move,null):t.zoom.updateTransformScale(Mi.zoomIdentity),t.updateZoom(!0),t.zoom.resetBtn&&t.zoom.resetBtn.style("display","none");var i=t.$el.main.select("."+a.eventRects);(0,Mi.zoomTransform)(i.node())!==Mi.zoomIdentity&&t.zoom.transform(i,Mi.zoomIdentity),t.redraw({withTransition:!0,withUpdateXDomain:!0,withUpdateOrgXDomain:!0,withY:e.zoom_rescale})}}},$i=p(13);function Ni(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function Yi(t){for(var e,i=1;i0?o:e]}))),s&&c[1].reverse(),this.extent(c),this.update()},t.brush.getSelection=function(){return r.main?r.main.select("."+a.brush):(0,n.select)([])}},initSubchart:function(){var t=this,e=t.config,i=t.state,n=i.clip,r=i.hasAxis,s=t.$el,o=s.defs,c=s.svg,l=s.subchart,u=s.axis;if(r){var d=e.subchart_show?"visible":"hidden",h=n.id+"-subchart",g=t.getClipPath(h);n.idSubchart=h,t.appendClip(o,h),t.initBrush(),l.main=c.append("g").classed(a.subchart,!0).attr("transform",t.getTranslate("context"));var f=l.main;f.style("visibility",d),f.append("g").attr("clip-path",g).attr("class",a.chart),["bar","line","bubble","candlestick","scatter"].forEach((function(e){var i=q(/^(bubble|scatter)$/.test(e)?"circle":e);if(t.hasType(e)||t.hasTypeOf(i)){var n=f.select("."+a.chart),r=a["chart"+i+"s"];n.select("."+r).empty()&&n.append("g").attr("class",r)}})),f.append("g").attr("clip-path",g).attr("class",a.brush).call(t.brush),u.subX=f.append("g").attr("class",a.axisX).attr("transform",t.getTranslate("subX")).attr("clip-path",e.axis_rotated?"":n.pathXAxis).style("visibility",e.subchart_axis_x_show?d:"hidden")}},updateTargetsForSubchart:function(t){var e=this,i=e.config,n=e.state,r=e.$el.subchart.main;i.subchart_show&&(["bar","line","bubble","candlestick","scatter"].filter((function(t){return e.hasType(t)||e.hasTypeOf(q(t))})).forEach((function(i){var n=/^(bubble|scatter)$/.test(i),s=q(n?"circle":i),o=e.getChartClass(s,!0),c=e.getClass(n?"circles":i+"s",!0),l=r.select("."+a["chart"+s+"s"]);if(n){var u=l.selectAll("."+a.circles).data(t.filter(e["is"+q(i)+"Type"].bind(e))).attr("class",c);u.exit().remove(),u.enter().append("g").attr("class",c)}else{var d=l.selectAll("."+a["chart"+s]).attr("class",o).data(t.filter(e["is"+s+"Type"].bind(e))),h=d.enter().append("g").style("opacity","0").attr("class",o).append("g").attr("class",c);d.exit().remove(),"line"===i&&e.hasTypeOf("Area")&&h.append("g").attr("class",e.getClass("areas",!0))}})),r.selectAll("."+a.brush+" rect").attr(i.axis_rotated?"width":"height",i.axis_rotated?n.width2:n.height2))},redrawSubchart:function(t,e,i){var n=this,a=n.config,r=n.$el.subchart.main,s=n.state,o=!!e;if(r.style("visibility",a.subchart_show?"visible":"hidden"),a.subchart_show&&(s.event&&"zoom"===s.event.type&&n.brush.update(),t&&(U(n)||n.brush.update(),Object.keys(i.type).forEach((function(t){var a=q(t),r=n["generateDraw"+a](i.indices[t],!0);n["update"+a](e,!0),n["redraw"+a](r,o,!0)})),n.hasType("bubble")||n.hasType("scatter")))){var c=i.pos.cx,l=n.updateCircleY(!0);n.updateCircle(!0),n.redrawCircle(c,l,o,void 0,!0)}},redrawForBrush:function(){var t=this,e=t.config,i=e.subchart_onbrush,n=e.zoom_rescale,a=t.scale;t.redraw({withTransition:!1,withY:n,withSubchart:!1,withUpdateXDomain:!0,withDimension:!1}),i.bind(t.api)(a.x.orgDomain())},transformContext:function(t,e){var i,n=this,r=n.$el.subchart.main;e&&e.axisSubX?i=e.axisSubX:(i=r.select("."+a.axisX),t&&(i=i.transition())),r.attr("transform",n.getTranslate("context")),i.attr("transform",n.getTranslate("subX"))},getExtent:function(){var t=this,e=t.config,i=t.scale,n=e.axis_x_extent;if(n)if(w(n))n=n.bind(t.api)(t.getXDomain(t.data.targets),i.subX);else if(t.axis.isTimeSeries()&&n.every(isNaN)){var a=ot.bind(t);n=n.map((function(t){return i.subX(a(t))}))}return n}},Vi={initZoom:function(){var t=this;t.scale.zoom=null,t.generateZoom(),t.initZoomBehaviour()},bindZoomEvent:function(t){void 0===t&&(t=!0);var e=this,i=e.config,n=e.$el.main,r=i.zoom_enabled,s=n.select("."+a.eventRects);r&&t?!i.subchart_show&&e.bindZoomOnEventRect(s,i.zoom_type):!1===t&&(e.api.unzoom(),s.on(".zoom",null).on(".drag",null))},generateZoom:function(){var t=this,e=t.config,i=t.org,n=t.scale,a=(0,Mi.zoom)().duration(0).on("start",t.onZoomStart.bind(t)).on("zoom",t.onZoom.bind(t)).on("end",t.onZoomEnd.bind(t));a.orgScaleExtent=function(){var i=e.zoom_extent||[1,10];return[i[0],Math.max(t.getMaxDataCount()/i[1],i[1])]},a.updateScaleExtent=function(){var e=R(t.scale.x.orgDomain())/R(t.getZoomDomain()),i=this.orgScaleExtent();return this.scaleExtent([i[0]*e,i[1]*e]),this},a.updateTransformScale=function(a){i.xScale&&i.xScale.range(n.x.range());var r=a[e.axis_rotated?"rescaleY":"rescaleX"](i.xScale||n.x),s=t.trimXDomain(r.domain()),o=e.zoom_rescale;r.domain(s,i.xDomain),n.zoom=t.getCustomizedScale(r),t.axis.x.scale(n.zoom),o&&(!i.xScale&&(i.xScale=n.x.copy()),n.x.domain(s))},t.zoom=a},onZoomStart:function(t){var e=this,i=t.sourceEvent;i&&(e.zoom.startEvent=i,e.state.zooming=!0,F(e.config.zoom_onzoomstart,e.api,t))},onZoom:function(t){var e=this,i=e.config,n=e.scale,a=e.org,r=t.sourceEvent;if(i.zoom_enabled&&t.sourceEvent&&0!==e.filterTargetsToShow(e.data.targets).length&&(n.zoom||!(r.type.indexOf("touch")>-1)||1!==r.touches.length)){var s="mousemove"===r.type,o=r.wheelDelta<0,c=t.transform;!s&&o&&n.x.domain().every((function(t,e){return t!==a.xDomain[e]}))&&n.x.domain(a.xDomain),e.zoom.updateTransformScale(c),e.axis.isCategorized()&&n.x.orgDomain()[0]===a.xDomain[0]&&n.x.domain([a.xDomain[0]-1e-10,n.x.orgDomain()[1]]),e.redraw({withTransition:!1,withY:i.zoom_rescale,withSubchart:!1,withEventRect:!1,withDimension:!1}),e.state.cancelClick=s,F(i.zoom_onzoom,e.api,n.zoom.domain())}},onZoomEnd:function(t){var e=this,i=e.config,n=e.scale,a=e.zoom.startEvent,r=t&&t.sourceEvent;a&&a.type.indexOf("touch")>-1&&(a=a.changedTouches[0],r=r.changedTouches[0]),!a||r&&a.clientX===r.clientX&&a.clientY===r.clientY||(e.redrawEventRect(),e.updateZoom(),e.state.zooming=!1,F(i.zoom_onzoomend,e.api,n[n.zoom?"zoom":"subX"].domain()))},getZoomDomain:function(){var t=this.config,e=this.org.xDomain,i=e[0],n=e[1];return C(t.zoom_x_min)&&(i=nt("min",[i,t.zoom_x_min])),C(t.zoom_x_max)&&(n=nt("max",[n,t.zoom_x_max])),[i,n]},updateZoom:function(t){var e=this,i=e.scale,n=i.subX,a=i.x,r=i.zoom;if(r){var s=r.domain(),o=n.domain(),c=(s[0]<=o[0]||s[0]-.015<=o[0])&&(o[1]<=s[1]||o[1]<=s[1]-.015);(t||c)&&(e.axis.x.scale(n),a.domain(n.orgDomain()),e.scale.zoom=null)}},bindZoomOnEventRect:function(t,e){var i=this,n="drag"===e?i.zoomBehaviour:i.zoom;i.$el.svg.on("wheel",(function(){})),t.call(n).on("dblclick.zoom",null)},initZoomBehaviour:function(){var t,e=this,i=e.config,r=e.state,s=i.axis_rotated,o=0,c=0,l={axis:s?"y":"x",attr:s?"height":"width",index:s?1:0};e.zoomBehaviour=(0,Ot.drag)().clickDistance(4).on("start",(function(i){r.event=i,e.setDragStatus(!0),e.unselectRect(),t||(t=e.$el.main.append("rect").attr("clip-path",r.clip.path).attr("class",a.zoomBrush).attr("width",s?r.width:0).attr("height",s?0:r.height)),o=G(i,this)[l.index],c=o,t.attr(l.axis,o).attr(l.attr,0),e.onZoomStart(i)})).on("drag",(function(e){c=G(e,this)[l.index],t.attr(l.axis,Math.min(o,c)).attr(l.attr,Math.abs(c-o))})).on("end",(function(i){var a,s=e.scale.zoom||e.scale.x;if(r.event=i,e.setDragStatus(!1),t.attr(l.axis,0).attr(l.attr,0),o>c&&(o=(a=[c,o])[0],c=a[1]),o<0&&(c+=Math.abs(o),o=0),o!==c)e.api.zoom([o,c].map((function(t){return s.invert(t)}))),e.onZoomEnd(i);else if(e.isMultipleX())e.clickHandlerForMultipleXS.bind(this)(e);else{var u=G(i),d=u[0],h=u[1],g=m.elementFromPoint(d,h);e.clickHandlerForSingleX.bind(g)((0,n.select)(g).datum(),e)}}))},setZoomResetButton:function(){var t=this,e=t.config,i=e.zoom_resetButton;i&&"drag"===e.zoom_type&&(t.zoom.resetBtn?t.zoom.resetBtn.style("display",null):t.zoom.resetBtn=t.$el.chart.append("div").classed(a.button,!0).append("span").on("click",(function(){w(i.onclick)&&i.onclick.bind(t.api)(this),t.api.unzoom()})).classed(a.buttonZoomReset,!0).text(i.text||"Reset Zoom"))}},Hi={data_selection_enabled:!1,data_selection_grouped:!1,data_selection_isselectable:function(){return!0},data_selection_multiple:!0,data_selection_draggable:!1,data_onselected:function(){},data_onunselected:function(){}},Wi={subchart_show:!1,subchart_size_height:60,subchart_axis_x_show:!0,subchart_axis_x_tick_show:!0,subchart_axis_x_tick_text_show:!0,subchart_onbrush:function(){}},Ui={zoom_enabled:!1,zoom_type:"wheel",zoom_extent:void 0,zoom_privileged:!1,zoom_rescale:!1,zoom_onzoom:void 0,zoom_onzoomstart:void 0,zoom_onzoomend:void 0,zoom_resetButton:!0,zoom_x_min:void 0,zoom_x_max:void 0},Zi=function(){return Z(ee.prototype,Gi),Z(ce.prototype,zi),dt.setOptions([Hi]),(Zi=function(){return!0})()},qi=function(){return Z(ee.prototype,ji),Z(ce.prototype,Xi),dt.setOptions([Wi]),(qi=function(){return!0})()},Ki=function(){return Z(ee.prototype,Vi),Z(ce.prototype,Bi),dt.setOptions([Ui]),(Ki=function(){return!0})()},Ji={},Qi={version:"3.0.2",generate:function(t){var e=et({},Ji,t),i=new ce(e);return i.internal.charts=this.instance,this.instance.push(i),i},defaults:function(t){return X(t)&&(Ji=t),Ji},instance:[],plugin:{}};Object.keys(t).forEach((function(e){return t[e]()})),Object.keys(e).forEach((function(t){return e[t]()}))}(),x}()})); \ No newline at end of file diff --git a/ihatemoney/templates/layout.html b/ihatemoney/templates/layout.html index f79270e4..03d6e965 100644 --- a/ihatemoney/templates/layout.html +++ b/ihatemoney/templates/layout.html @@ -6,6 +6,11 @@ + + + + + {% block css %}{% endblock %} diff --git a/ihatemoney/templates/statistics.html b/ihatemoney/templates/statistics.html index 9e7a10de..e34ea176 100644 --- a/ihatemoney/templates/statistics.html +++ b/ihatemoney/templates/statistics.html @@ -33,6 +33,243 @@ {% endfor %} +

{{ _("Visualization") }}

+ + + + +
+
+
+
+
+
+
+
+ + + + + + + + + {% endblock %} diff --git a/ihatemoney/tests/api_test.py b/ihatemoney/tests/api_test.py index 41f5ab2d..317ffbef 100644 --- a/ihatemoney/tests/api_test.py +++ b/ihatemoney/tests/api_test.py @@ -602,6 +602,9 @@ class APITestCase(IhatemoneyTestCase): }, "paid": 25.0, "spent": 12.5, + "monthly_exp": [ + ["2011-08-01T00:00:00", 25.0] + ], # Day returned will always be 01, and h/m/s always 00 }, { "balance": -12.5, @@ -613,6 +616,7 @@ class APITestCase(IhatemoneyTestCase): }, "paid": 0, "spent": 12.5, + "monthly_exp": [], }, ], json.loads(req.data.decode("utf-8")),