feat(plugin-chart-echarts): support horizontal bar chart (#19918)

* feat(plugin-chart-echarts): support horizontal bar chart

* Update superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx

Co-authored-by: Evan Rusackas <evan@preset.io>

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

Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>

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

Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>

* Update superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx

Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>

* improve controlpanel

* default value

* fix ut

Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
This commit is contained in:
Stephen Liu
2022-05-16 21:48:36 +08:00
committed by GitHub
parent d5802f7896
commit 9854d2d0e8
7 changed files with 322 additions and 138 deletions

View File

@@ -53,12 +53,13 @@ export const extractForecastSeriesContexts = (
export const extractForecastValuesFromTooltipParams = (
params: any[],
isHorizontal = false,
): Record<string, ForecastValue> => {
const values: Record<string, ForecastValue> = {};
params.forEach(param => {
const { marker, seriesId, value } = param;
const context = extractForecastSeriesContext(seriesId);
const numericValue = (value as [Date, number])[1];
const numericValue = isHorizontal ? value[0] : value[1];
if (numericValue) {
if (!(context.name in values))
values[context.name] = {

View File

@@ -42,9 +42,15 @@ export function extractSeries(
fillNeighborValue?: number;
xAxis?: string;
removeNulls?: boolean;
isHorizontal?: boolean;
} = {},
): SeriesOption[] {
const { fillNeighborValue, xAxis = DTTM_ALIAS, removeNulls = false } = opts;
const {
fillNeighborValue,
xAxis = DTTM_ALIAS,
removeNulls = false,
isHorizontal = false,
} = opts;
if (data.length === 0) return [];
const rows: DataRecord[] = data.map(datum => ({
...datum,
@@ -69,7 +75,8 @@ export function extractSeries(
: row[key],
];
})
.filter(obs => !removeNulls || (obs[0] !== null && obs[1] !== null)),
.filter(obs => !removeNulls || (obs[0] !== null && obs[1] !== null))
.map(obs => (isHorizontal ? [obs[1], obs[0]] : obs)),
}));
}