diff --git a/src/config.js b/src/config.js index ae9aa9f..44cbe4a 100644 --- a/src/config.js +++ b/src/config.js @@ -208,6 +208,9 @@ c3_chart_internal_fn.getDefaultConfig = function () { tooltip_init_position: {top: '0px', left: '50px'}, tooltip_onshow: function () {}, tooltip_onhide: function () {}, + tooltip_total_show: false, + tooltip_total_name: undefined, + tooltip_total_format_value: undefined, // title title_text: undefined, title_padding: { diff --git a/src/tooltip.js b/src/tooltip.js index ce76601..720c33b 100644 --- a/src/tooltip.js +++ b/src/tooltip.js @@ -29,7 +29,9 @@ c3_chart_internal_fn.getTooltipContent = function (d, defaultTitleFormat, defaul titleFormat = config.tooltip_format_title || defaultTitleFormat, nameFormat = config.tooltip_format_name || function (name) { return name; }, valueFormat = config.tooltip_format_value || defaultValueFormat, - text, i, title, value, name, bgcolor, + totalName = config.tooltip_total_name || "Total", + totalValueFormat = config.tooltip_total_format_value || valueFormat, + text, i, title, value, name, bgcolor, totalValue, orderAsc = $$.isOrderAsc(); if (config.data_groups.length === 0) { @@ -70,6 +72,17 @@ c3_chart_internal_fn.getTooltipContent = function (d, defaultTitleFormat, defaul text += ""; } } + // adding a "Total" row to the tooltip - if a formatter is not given then the total + // value will be formatted the same way as the other values + if (config.tooltip_total_show) { + totalValue = 0; + for (i=0; i < d.length; i++) { + totalValue += d[i].value; + } + totalValue = totalValueFormat(totalValue); + text += "