fix: Tooltip no longer highlights hovered data series (#24756)
This commit is contained in:
parent
341b8d41c5
commit
ac19f58cf6
|
|
@ -45,6 +45,7 @@ export default function EchartsMixedTimeseries({
|
|||
emitCrossFilters,
|
||||
seriesBreakdown,
|
||||
onContextMenu,
|
||||
onFocusedSeries,
|
||||
xValueFormatter,
|
||||
xAxis,
|
||||
refs,
|
||||
|
|
@ -123,6 +124,12 @@ export default function EchartsMixedTimeseries({
|
|||
const { seriesName, seriesIndex } = props;
|
||||
handleChange(seriesName, seriesIndex);
|
||||
},
|
||||
mouseout: () => {
|
||||
onFocusedSeries(null);
|
||||
},
|
||||
mouseover: params => {
|
||||
onFocusedSeries(params.seriesName);
|
||||
},
|
||||
contextmenu: async eventParams => {
|
||||
if (onContextMenu) {
|
||||
eventParams.event.stop();
|
||||
|
|
|
|||
|
|
@ -121,6 +121,9 @@ export default function transformProps(
|
|||
inContextMenu,
|
||||
emitCrossFilters,
|
||||
} = chartProps;
|
||||
|
||||
let focusedSeries: string | null = null;
|
||||
|
||||
const {
|
||||
verboseMap = {},
|
||||
currencyFormats = {},
|
||||
|
|
@ -576,7 +579,9 @@ export default function transformProps(
|
|||
? tooltipFormatter
|
||||
: tooltipFormatterSecondary,
|
||||
});
|
||||
rows.push(`<span style="opacity: 0.7">${content}</span>`);
|
||||
const contentStyle =
|
||||
key === focusedSeries ? 'font-weight: 700' : 'opacity: 0.7';
|
||||
rows.push(`<span style="${contentStyle}">${content}</span>`);
|
||||
});
|
||||
return rows.join('<br />');
|
||||
},
|
||||
|
|
@ -627,6 +632,10 @@ export default function transformProps(
|
|||
: [],
|
||||
};
|
||||
|
||||
const onFocusedSeries = (seriesName: string | null) => {
|
||||
focusedSeries = seriesName;
|
||||
};
|
||||
|
||||
return {
|
||||
formData,
|
||||
width,
|
||||
|
|
@ -641,6 +650,7 @@ export default function transformProps(
|
|||
seriesBreakdown: rawSeriesA.length,
|
||||
selectedValues: filterState.selectedValues || [],
|
||||
onContextMenu,
|
||||
onFocusedSeries,
|
||||
xValueFormatter: tooltipFormatter,
|
||||
xAxis: {
|
||||
label: xAxisLabel,
|
||||
|
|
|
|||
|
|
@ -150,4 +150,5 @@ export type EchartsMixedTimeseriesChartTransformedProps =
|
|||
label: string;
|
||||
type: AxisType;
|
||||
};
|
||||
onFocusedSeries: (series: string | null) => void;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ export default function EchartsTimeseries({
|
|||
legendData = [],
|
||||
onContextMenu,
|
||||
onLegendStateChanged,
|
||||
onFocusedSeries,
|
||||
xValueFormatter,
|
||||
xAxis,
|
||||
refs,
|
||||
|
|
@ -146,6 +147,12 @@ export default function EchartsTimeseries({
|
|||
handleChange(name);
|
||||
}, TIMER_DURATION);
|
||||
},
|
||||
mouseout: () => {
|
||||
onFocusedSeries(null);
|
||||
},
|
||||
mouseover: params => {
|
||||
onFocusedSeries(params.seriesName);
|
||||
},
|
||||
legendselectchanged: payload => {
|
||||
onLegendStateChanged?.(payload.selected);
|
||||
},
|
||||
|
|
|
|||
|
|
@ -112,6 +112,9 @@ export default function transformProps(
|
|||
inContextMenu,
|
||||
emitCrossFilters,
|
||||
} = chartProps;
|
||||
|
||||
let focusedSeries: string | null = null;
|
||||
|
||||
const {
|
||||
verboseMap = {},
|
||||
columnFormats = {},
|
||||
|
|
@ -524,11 +527,9 @@ export default function transformProps(
|
|||
: getCustomFormatter(customFormatters, metrics, formatterKey) ??
|
||||
defaultFormatter,
|
||||
});
|
||||
if (!legendState || legendState[key]) {
|
||||
rows.push(`<span style="font-weight: 700">${content}</span>`);
|
||||
} else {
|
||||
rows.push(`<span style="opacity: 0.7">${content}</span>`);
|
||||
}
|
||||
const contentStyle =
|
||||
key === focusedSeries ? 'font-weight: 700' : 'opacity: 0.7';
|
||||
rows.push(`<span style="${contentStyle}">${content}</span>`);
|
||||
});
|
||||
if (stack) {
|
||||
rows.reverse();
|
||||
|
|
@ -575,6 +576,10 @@ export default function transformProps(
|
|||
: [],
|
||||
};
|
||||
|
||||
const onFocusedSeries = (seriesName: string | null) => {
|
||||
focusedSeries = seriesName;
|
||||
};
|
||||
|
||||
return {
|
||||
echartOptions,
|
||||
emitCrossFilters,
|
||||
|
|
@ -589,6 +594,7 @@ export default function transformProps(
|
|||
legendData,
|
||||
onContextMenu,
|
||||
onLegendStateChanged,
|
||||
onFocusedSeries,
|
||||
xValueFormatter: tooltipFormatter,
|
||||
xAxis: {
|
||||
label: xAxisLabel,
|
||||
|
|
|
|||
|
|
@ -107,4 +107,5 @@ export type TimeseriesChartTransformedProps =
|
|||
label: string;
|
||||
type: AxisType;
|
||||
};
|
||||
onFocusedSeries: (series: string | null) => void;
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue