diff --git a/lib/js/src/compose/types/chart/chart.ts b/lib/js/src/compose/types/chart/chart.ts index da8406fd4..f81198c5f 100644 --- a/lib/js/src/compose/types/chart/chart.ts +++ b/lib/js/src/compose/types/chart/chart.ts @@ -142,7 +142,9 @@ export default class Chart extends BaseChart { options.series = datasets.map(({ type, label, data, stack, tooltip, fill, smooth, step, roseType, symbol }: any, index: number) => { const { fixed, relative } = tooltip - const tooltipFormatter = t?.formatting ? t.formatting : `{a}
{b} : {c}${relative ? ' ({d}%)' : ''}` + const tooltipFormatter = t?.formatting ? t.formatting : (params: any) => { + return `${params.seriesName}
${params.marker}${params.name}${params.value}${relative ? ' (' + params.percent + '%)' : ''}` + } const labelFormatter = `{@[1]}${relative ? ' ({d}%)' : ''}` // We should render the first metric in the dataset as the last @@ -189,6 +191,7 @@ export default class Chart extends BaseChart { tooltip: { trigger: 'item', formatter: tooltipFormatter, + appendToBody: true, }, label: { ...lbl, @@ -257,6 +260,7 @@ export default class Chart extends BaseChart { tooltip: { trigger: 'axis', formatter: tooltipFormatter, + appendToBody: true, }, label: { show: fixed, diff --git a/lib/js/src/compose/types/chart/funnel.ts b/lib/js/src/compose/types/chart/funnel.ts index 01abd900d..f56bf9a0e 100644 --- a/lib/js/src/compose/types/chart/funnel.ts +++ b/lib/js/src/compose/types/chart/funnel.ts @@ -92,7 +92,9 @@ export default class FunnelChart extends BaseChart { const { legend: l } = reports[0] || {} const colors = getColorschemeColors(colorScheme, data.customColorSchemes) - const tooltipFormatter = `{b}
{c} ${tooltip.relative ? ' ({d}%)' : ''}` + const tooltipFormatter = (params: any) => { + return `${params.seriesName}
${params.marker}${params.name}${params.value}${tooltip.relative ? ' (' + params.percent + '%)' : ''}` + } const labelFormatter = `{c}${tooltip.relative ? ' ({d}%)' : ''}` return { @@ -112,7 +114,6 @@ export default class FunnelChart extends BaseChart { right: 5, }, tooltip: { - show: true, trigger: 'item', formatter: tooltipFormatter, appendToBody: true, @@ -134,8 +135,9 @@ export default class FunnelChart extends BaseChart { pageIconColor: themeVariables.black, pageIconInactiveColor: themeVariables.light, }, - series: datasets.map(({ data }: any) => { + series: datasets.map(({ data, label }: any) => { return { + name: label, type: 'funnel', sort: 'descending', top: 45, @@ -177,6 +179,7 @@ export default class FunnelChart extends BaseChart { const values = [] let tooltip = {} + let label = '' // Above provided data sets might not have their labels/values ordered // correctly @@ -190,6 +193,7 @@ export default class FunnelChart extends BaseChart { }) tooltip = { ...tooltip, ...r.datasets[0].tooltip } + label = r.datasets[0].label // Construct labels & data based on provided reports const report = this.config.reports?.[ri] @@ -236,6 +240,7 @@ export default class FunnelChart extends BaseChart { return { labels, datasets: [{ + label, data, }], tooltip, diff --git a/lib/js/src/reporter/types/display-elements/chart/basic.ts b/lib/js/src/reporter/types/display-elements/chart/basic.ts index 7349521d2..e1cdaaf23 100644 --- a/lib/js/src/reporter/types/display-elements/chart/basic.ts +++ b/lib/js/src/reporter/types/display-elements/chart/basic.ts @@ -50,7 +50,10 @@ export class BasicChartOptions extends ChartOptions { radius: [`${sr}%`, `${er}%`], center: ['50%', '55%'], tooltip: { - formatter: '{a}
{b} : {c} ({d}%)', + formatter: (params: any) => { + return `${params.seriesName}
${params.marker}${params.name}${params.value} (${params.percent}%)` + }, + appendToBody: true, }, label: { show: this.tooltips.showAlways, diff --git a/lib/js/src/reporter/types/display-elements/chart/funnel.ts b/lib/js/src/reporter/types/display-elements/chart/funnel.ts index 794a1b1ee..ea3a14e67 100644 --- a/lib/js/src/reporter/types/display-elements/chart/funnel.ts +++ b/lib/js/src/reporter/types/display-elements/chart/funnel.ts @@ -42,7 +42,9 @@ export class FunnelChartOptions extends ChartOptions { tooltip: { show: true, trigger: 'item', - formatter: '{b} : {c} ({d}%)', + formatter: (params: any) => { + return `${params.seriesName}
${params.marker}${params.name}${params.value} (${params.percent}%)` + }, appendToBody: true, }, legend: {