feat(plugin-chart-echarts): add Gantt Chart plugin (#33716)

This commit is contained in:
Vladislav Korenkov
2025-07-04 07:23:50 +10:00
committed by GitHub
parent cb6342fc73
commit 9f0523977d
36 changed files with 1845 additions and 108 deletions

View File

@@ -685,3 +685,20 @@ export function extractTooltipKeys(
}
return [forecastValue[0][TOOLTIP_SERIES_KEY]];
}
export function groupData(data: DataRecord[], by?: string | null) {
const seriesMap: Map<DataRecordValue | undefined, DataRecord[]> = new Map();
if (by) {
data.forEach(datum => {
const value = seriesMap.get(datum[by]);
if (value) {
value.push(datum);
} else {
seriesMap.set(datum[by], [datum]);
}
});
} else {
seriesMap.set(undefined, data);
}
return seriesMap;
}

View File

@@ -18,6 +18,12 @@
*/
import type { CallbackDataParams } from 'echarts/types/src/util/types';
import {
QueryFormColumn,
QueryFormMetric,
getColumnLabel,
getMetricLabel,
} from '@superset-ui/core';
import { TOOLTIP_OVERFLOW_MARGIN, TOOLTIP_POINTER_MARGIN } from '../constants';
import { Refs } from '../types';
@@ -80,3 +86,16 @@ export function getDefaultTooltip(refs: Refs) {
},
};
}
export function getTooltipLabels({
tooltipMetrics,
tooltipColumns,
}: {
tooltipMetrics?: QueryFormMetric[];
tooltipColumns?: QueryFormColumn[];
}) {
return [
...(tooltipMetrics ?? []).map(v => getMetricLabel(v)),
...(tooltipColumns ?? []).map(v => getColumnLabel(v)),
];
}