From 65a803af434e38aab0c978066e062c1751757637 Mon Sep 17 00:00:00 2001 From: Peter Pisljar Date: Tue, 1 Aug 2017 10:06:59 +0200 Subject: [PATCH] in percentage mode tooltip should also show percentages (#13217) --- src/ui/public/vislib/lib/dispatch.js | 5 +++-- src/ui/public/vislib/visualizations/point_series.js | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/ui/public/vislib/lib/dispatch.js b/src/ui/public/vislib/lib/dispatch.js index 1d3280b66513b4..02f059960a23c5 100644 --- a/src/ui/public/vislib/lib/dispatch.js +++ b/src/ui/public/vislib/lib/dispatch.js @@ -40,7 +40,6 @@ export function VislibLibDispatchProvider(Private, config) { const slices = isSlices ? data.slices : undefined; const handler = this.handler; const color = _.get(handler, 'data.color'); - const isPercentage = (handler && handler.visConfig.get('mode', 'normal') === 'percentage'); const eventData = { value: d.y, @@ -59,11 +58,13 @@ export function VislibLibDispatchProvider(Private, config) { if (isSeries) { // Find object with the actual d value and add it to the point object + const aggId = d3.event.target.parentElement.__data__.aggId; + const percentageMode = handler.charts[0].getSeries(aggId).getValueAxis().axisConfig.isPercentage(); const object = _.find(series, { 'label': label }); if (object) { eventData.value = +object.values[i].y; - if (isPercentage) { + if (percentageMode) { // Add the formatted percentage to the point object eventData.percent = (100 * d.y).toFixed(1) + '%'; } diff --git a/src/ui/public/vislib/visualizations/point_series.js b/src/ui/public/vislib/visualizations/point_series.js index 6847f98adec5f9..53ed508ac5cd57 100644 --- a/src/ui/public/vislib/visualizations/point_series.js +++ b/src/ui/public/vislib/visualizations/point_series.js @@ -40,6 +40,10 @@ export function VislibVisualizationsPointSeriesProvider(Private) { return charts[chartIndex]; } + getSeries(seriesId) { + return this.series.find(series => series.chartData.aggId === seriesId); + } + addBackground(svg, width, height) { const startX = 0; const startY = 0;