Skip to content

Commit 2e650ea

Browse files
authored
fix(plugin-chart-echarts): tooltip overflow bug (#22218)
Co-authored-by: Ville Brofeldt <ville.brofeldt@apple.com>
1 parent 3bc0865 commit 2e650ea

13 files changed

Lines changed: 105 additions & 74 deletions

File tree

superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberWithTrendline/transformProps.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import {
3636
TimeSeriesDatum,
3737
} from '../types';
3838
import { getDateFormatter, parseMetricValue } from '../utils';
39-
import { getDefaultPosition } from '../../utils/tooltip';
39+
import { getDefaultTooltip } from '../../utils/tooltip';
4040
import { Refs } from '../../types';
4141

4242
const defaultNumberFormatter = getNumberFormatter();
@@ -234,8 +234,7 @@ export default function transformProps(
234234
bottom: 0,
235235
},
236236
tooltip: {
237-
position: getDefaultPosition(refs),
238-
appendToBody: true,
237+
...getDefaultTooltip(refs),
239238
show: !inContextMenu,
240239
trigger: 'axis',
241240
formatter: renderTooltipFactory(formatTime, headerFormatter),

superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/transformProps.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ import { convertInteger } from '../utils/convertInteger';
3939
import { defaultGrid, defaultYAxis } from '../defaults';
4040
import { getPadding } from '../Timeseries/transformers';
4141
import { OpacityEnum } from '../constants';
42-
import { getDefaultPosition } from '../utils/tooltip';
42+
import { getDefaultTooltip } from '../utils/tooltip';
4343
import { Refs } from '../types';
4444

4545
export default function transformProps(
@@ -139,6 +139,7 @@ export default function transformProps(
139139
type: 'scatter',
140140
data: outlierDatum.map(val => [name, val]),
141141
tooltip: {
142+
...getDefaultTooltip(refs),
142143
formatter: (param: { data: [string, number] }) => {
143144
const [outlierName, stats] = param.data;
144145
const headline = groupbyLabels.length
@@ -197,6 +198,7 @@ export default function transformProps(
197198
type: 'boxplot',
198199
data: transformedData,
199200
tooltip: {
201+
...getDefaultTooltip(refs),
200202
formatter: (param: CallbackDataParams) => {
201203
// @ts-ignore
202204
const {
@@ -273,7 +275,7 @@ export default function transformProps(
273275
nameLocation: yAxisTitlePosition === 'Left' ? 'middle' : 'end',
274276
},
275277
tooltip: {
276-
position: getDefaultPosition(refs),
278+
...getDefaultTooltip(refs),
277279
show: !inContextMenu,
278280
trigger: 'item',
279281
axisPointer: {

superset-frontend/plugins/plugin-chart-echarts/src/Funnel/transformProps.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ import {
4242
} from '../utils/series';
4343
import { defaultGrid } from '../defaults';
4444
import { OpacityEnum, DEFAULT_LEGEND_FORM_DATA } from '../constants';
45-
import { getDefaultPosition } from '../utils/tooltip';
45+
import { getDefaultTooltip } from '../utils/tooltip';
4646
import { Refs } from '../types';
4747

4848
const percentFormatter = getNumberFormatter(NumberFormats.PERCENT_2_POINT);
@@ -215,7 +215,7 @@ export default function transformProps(
215215
...defaultGrid,
216216
},
217217
tooltip: {
218-
position: getDefaultPosition(refs),
218+
...getDefaultTooltip(refs),
219219
show: !inContextMenu,
220220
trigger: 'item',
221221
formatter: (params: any) =>

superset-frontend/plugins/plugin-chart-echarts/src/Gauge/transformProps.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ import {
4444
FONT_SIZE_MULTIPLIERS,
4545
} from './constants';
4646
import { OpacityEnum } from '../constants';
47-
import { getDefaultPosition } from '../utils/tooltip';
47+
import { getDefaultTooltip } from '../utils/tooltip';
4848
import { Refs } from '../types';
4949

5050
const setIntervalBoundsAndColors = (
@@ -261,7 +261,7 @@ export default function transformProps(
261261
color: gaugeSeriesOptions.detail?.color,
262262
};
263263
const tooltip = {
264-
position: getDefaultPosition(refs),
264+
...getDefaultTooltip(refs),
265265
formatter: (params: CallbackDataParams) => {
266266
const { name, value } = params;
267267
return `${name} : ${formatValue(value as number)}`;
@@ -315,7 +315,7 @@ export default function transformProps(
315315

316316
const echartOptions: EChartsCoreOption = {
317317
tooltip: {
318-
appendToBody: true,
318+
...getDefaultTooltip(refs),
319319
trigger: 'item',
320320
},
321321
series,

superset-frontend/plugins/plugin-chart-echarts/src/Graph/transformProps.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import {
3535
} from './types';
3636
import { DEFAULT_GRAPH_SERIES_OPTION } from './constants';
3737
import { getChartPadding, getLegendProps, sanitizeHtml } from '../utils/series';
38-
import { getDefaultPosition } from '../utils/tooltip';
38+
import { getDefaultTooltip } from '../utils/tooltip';
3939
import { Refs } from '../types';
4040

4141
type EdgeWithStyles = GraphEdgeItemOption & {
@@ -192,6 +192,7 @@ export default function transformProps(
192192
sliceId,
193193
}: EchartsGraphFormData = { ...DEFAULT_GRAPH_FORM_DATA, ...formData };
194194

195+
const refs: Refs = {};
195196
const metricLabel = getMetricLabel(metric);
196197
const colorFn = CategoricalColorNamespace.getScale(colorScheme as string);
197198
const nodes: { [name: string]: number } = {};
@@ -212,7 +213,10 @@ export default function transformProps(
212213
value: 0,
213214
category,
214215
select: DEFAULT_GRAPH_SERIES_OPTION.select,
215-
tooltip: DEFAULT_GRAPH_SERIES_OPTION.tooltip,
216+
tooltip: {
217+
...getDefaultTooltip(refs),
218+
...DEFAULT_GRAPH_SERIES_OPTION.tooltip,
219+
},
216220
});
217221
}
218222
const node = echartNodes[nodes[name]];
@@ -296,13 +300,12 @@ export default function transformProps(
296300
},
297301
];
298302

299-
const refs: Refs = {};
300303
const echartOptions: EChartsCoreOption = {
301304
animationDuration: DEFAULT_GRAPH_SERIES_OPTION.animationDuration,
302305
animationEasing: DEFAULT_GRAPH_SERIES_OPTION.animationEasing,
303306
tooltip: {
307+
...getDefaultTooltip(refs),
304308
show: !inContextMenu,
305-
position: getDefaultPosition(refs),
306309
formatter: (params: any): string =>
307310
edgeFormatter(
308311
params.data.source,

superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ import {
8080
transformTimeseriesAnnotation,
8181
} from '../Timeseries/transformers';
8282
import { TIMESERIES_CONSTANTS, TIMEGRAIN_TO_TIMESTAMP } from '../constants';
83-
import { getDefaultPosition } from '../utils/tooltip';
83+
import { getDefaultTooltip } from '../utils/tooltip';
8484

8585
export default function transformProps(
8686
chartProps: EchartsMixedTimeseriesProps,
@@ -425,9 +425,8 @@ export default function transformProps(
425425
},
426426
],
427427
tooltip: {
428-
position: getDefaultPosition(refs),
428+
...getDefaultTooltip(refs),
429429
show: !inContextMenu,
430-
appendToBody: true,
431430
trigger: richTooltip ? 'axis' : 'item',
432431
formatter: (params: any) => {
433432
const xValue: number = richTooltip

superset-frontend/plugins/plugin-chart-echarts/src/Pie/transformProps.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ import {
4545
} from '../utils/series';
4646
import { defaultGrid } from '../defaults';
4747
import { convertInteger } from '../utils/convertInteger';
48-
import { getDefaultPosition } from '../utils/tooltip';
48+
import { getDefaultTooltip } from '../utils/tooltip';
4949
import { Refs } from '../types';
5050

5151
const percentFormatter = getNumberFormatter(NumberFormats.PERCENT_2_POINT);
@@ -303,8 +303,8 @@ export default function transformProps(
303303
...defaultGrid,
304304
},
305305
tooltip: {
306+
...getDefaultTooltip(refs),
306307
show: !inContextMenu,
307-
position: getDefaultPosition(refs),
308308
trigger: 'item',
309309
formatter: (params: any) =>
310310
formatPieLabel({

superset-frontend/plugins/plugin-chart-echarts/src/Radar/transformProps.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ import {
4444
} from '../utils/series';
4545
import { defaultGrid } from '../defaults';
4646
import { Refs } from '../types';
47-
import { getDefaultPosition } from '../utils/tooltip';
47+
import { getDefaultTooltip } from '../utils/tooltip';
4848

4949
export function formatLabel({
5050
params,
@@ -232,7 +232,7 @@ export default function transformProps(
232232
...defaultGrid,
233233
},
234234
tooltip: {
235-
position: getDefaultPosition(refs),
235+
...getDefaultTooltip(refs),
236236
show: !inContextMenu,
237237
trigger: 'item',
238238
},

superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformProps.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ import {
8484
TIMESERIES_CONSTANTS,
8585
TIMEGRAIN_TO_TIMESTAMP,
8686
} from '../constants';
87-
import { getDefaultPosition } from '../utils/tooltip';
87+
import { getDefaultTooltip } from '../utils/tooltip';
8888

8989
export default function transformProps(
9090
chartProps: EchartsTimeseriesChartProps,
@@ -381,9 +381,8 @@ export default function transformProps(
381381
xAxis,
382382
yAxis,
383383
tooltip: {
384+
...getDefaultTooltip(refs),
384385
show: !inContextMenu,
385-
position: getDefaultPosition(refs),
386-
appendToBody: true,
387386
trigger: richTooltip ? 'axis' : 'item',
388387
formatter: (params: any) => {
389388
const [xIndex, yIndex] = isHorizontal ? [1, 0] : [0, 1];

superset-frontend/plugins/plugin-chart-echarts/src/Tree/transformProps.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import {
3131
} from './types';
3232
import { DEFAULT_FORM_DATA, DEFAULT_TREE_SERIES_OPTION } from './constants';
3333
import { Refs } from '../types';
34+
import { getDefaultTooltip } from '../utils/tooltip';
3435

3536
export function formatTooltip({
3637
params,
@@ -205,6 +206,7 @@ export default function transformProps(
205206
animationEasing: DEFAULT_TREE_SERIES_OPTION.animationEasing,
206207
series,
207208
tooltip: {
209+
...getDefaultTooltip(refs),
208210
trigger: 'item',
209211
triggerOn: 'mousemove',
210212
formatter: (params: any) =>

0 commit comments

Comments
 (0)