/** * Matomo - free/libre analytics platform * * DataTable UI class for JqplotGraph/Bar. * * @link http://www.jqplot.com * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ (function ($, require) { var exports = require('piwik/UI'), JqplotGraphDataTable = exports.JqplotGraphDataTable; exports.JqplotBarGraphDataTable = function (element) { JqplotGraphDataTable.call(this, element); }; $.extend(exports.JqplotBarGraphDataTable.prototype, JqplotGraphDataTable.prototype, { _setJqplotParameters: function (params) { JqplotGraphDataTable.prototype._setJqplotParameters.call(this, params); var barMargin = this.data[0].length > 10 ? 2 : 10; var minBarWidth = 10; this.jqplotParams.seriesDefaults = { renderer: $.jqplot.BarRenderer, rendererOptions: { shadowOffset: 1, shadowDepth: 2, shadowAlpha: .2, fillToZero: true, barMargin: barMargin } }; this.jqplotParams.piwikTicks = { showTicks: true, showGrid: false, showHighlight: false, tickColor: this.tickColor }; this.jqplotParams.axes.xaxis.renderer = $.jqplot.CategoryAxisRenderer; this.jqplotParams.axes.xaxis.tickOptions = { showGridline: false }; this.jqplotParams.canvasLegend = { show: true }; var comparisonService = piwikHelper.getAngularDependency('piwikComparisonsService'); if (comparisonService.isComparing()) { var seriesCount = this.jqplotParams.series.length; var dataCount = this.data[0].length; var totalBars = seriesCount * dataCount; var totalMinWidth = (minBarWidth + barMargin) * totalBars + 50; this.$element.find('.piwik-graph').css('min-width', totalMinWidth + 'px'); this.$element.css('overflow-x', 'scroll'); } }, _bindEvents: function () { this.setYTicks(); JqplotGraphDataTable.prototype._bindEvents.call(this); }, _showDataPointTooltip: function (element, seriesIndex, valueIndex) { var value = this.formatY(this.data[seriesIndex][valueIndex], seriesIndex); var series = this.jqplotParams.series[seriesIndex].label; var percentage = ''; if (typeof this.tooltip.percentages != 'undefined') { percentage = this.tooltip.percentages[seriesIndex][valueIndex]; percentage = ' (' + NumberFormatter.formatPercent(percentage) + ')'; } var label = this.jqplotParams.axes.xaxis.labels[valueIndex]; var text = '' + value + ' ' + series + percentage; $(element).tooltip({ track: true, items: '*', content: '

' + label + '

' + text, show: false, hide: false }).trigger('mouseover'); } }); })(jQuery, require);