blob: 30595cb4b8fb560523335b8f5b88a36374ef8587 [file] [log] [blame]
import React from 'react';
import { isDefined, TooltipFrame, TooltipTable } from '@superset-ui/core';
import { BoxPlotEncoder } from './Encoder';
import { BoxPlotDataRow } from './types';
export default function DefaultTooltipRenderer({
datum,
color,
encoder,
}: {
datum: BoxPlotDataRow;
color: string;
encoder: BoxPlotEncoder;
}) {
const { label, min, max, median, firstQuartile, thirdQuartile, outliers } = datum;
const { channels } = encoder;
const { formatValue } = channels.y;
const data: { key: string; valueColumn: number | string }[] = [];
if (isDefined(min)) {
data.push({ key: 'Min', valueColumn: formatValue(min) });
}
if (isDefined(max)) {
data.push({ key: 'Max', valueColumn: formatValue(max) });
}
if (isDefined(median)) {
data.push({ key: 'Median', valueColumn: formatValue(median) });
}
if (isDefined(firstQuartile)) {
data.push({ key: '1st Quartile', valueColumn: formatValue(firstQuartile) });
}
if (isDefined(thirdQuartile)) {
data.push({ key: '3rd Quartile', valueColumn: formatValue(thirdQuartile) });
}
if (isDefined(outliers) && outliers.length > 0) {
data.push({ key: '# Outliers', valueColumn: outliers.length });
}
return (
<TooltipFrame>
<div>
<strong style={{ color }}>{label}</strong>
</div>
{data.length > 0 && <br />}
<TooltipTable data={data} />
</TooltipFrame>
);
}