feat: Add currencies controls in control panels (#24718)

This commit is contained in:
Kamil Gabryjelski
2023-08-02 19:22:45 +02:00
committed by GitHub
parent 1a9c559a8f
commit f7e76d02b7
63 changed files with 697 additions and 306 deletions

View File

@@ -36,9 +36,9 @@ import {
ensureIsArray,
buildCustomFormatters,
ValueFormatter,
NumberFormatter,
QueryFormMetric,
getCustomFormatter,
CurrencyFormatter,
} from '@superset-ui/core';
import { getOriginalSeries } from '@superset-ui/chart-controls';
import { EChartsCoreOption, SeriesOption } from 'echarts';
@@ -92,7 +92,7 @@ import { getYAxisFormatter } from '../utils/getYAxisFormatter';
const getFormatter = (
customFormatters: Record<string, ValueFormatter>,
defaultFormatter: NumberFormatter,
defaultFormatter: ValueFormatter,
metrics: QueryFormMetric[],
formatterKey: string,
forcePercentFormat: boolean,
@@ -167,7 +167,9 @@ export default function transformProps(
truncateYAxis,
tooltipTimeFormat,
yAxisFormat,
currencyFormat,
yAxisFormatSecondary,
currencyFormatSecondary,
xAxisTimeFormat,
yAxisBounds,
yAxisBoundsSecondary,
@@ -221,21 +223,32 @@ export default function transformProps(
const xAxisDataType = dataTypes?.[xAxisLabel] ?? dataTypes?.[xAxisOrig];
const xAxisType = getAxisType(xAxisDataType);
const series: SeriesOption[] = [];
const formatter = getNumberFormatter(contributionMode ? ',.0%' : yAxisFormat);
const formatterSecondary = getNumberFormatter(
contributionMode ? ',.0%' : yAxisFormatSecondary,
);
const formatter = contributionMode
? getNumberFormatter(',.0%')
: currencyFormat?.symbol
? new CurrencyFormatter({ d3Format: yAxisFormat, currency: currencyFormat })
: getNumberFormatter(yAxisFormat);
const formatterSecondary = contributionMode
? getNumberFormatter(',.0%')
: currencyFormatSecondary?.symbol
? new CurrencyFormatter({
d3Format: yAxisFormatSecondary,
currency: currencyFormatSecondary,
})
: getNumberFormatter(yAxisFormatSecondary);
const customFormatters = buildCustomFormatters(
[...ensureIsArray(metrics), ...ensureIsArray(metricsB)],
currencyFormats,
columnFormats,
yAxisFormat,
currencyFormat,
);
const customFormattersSecondary = buildCustomFormatters(
[...ensureIsArray(metrics), ...ensureIsArray(metricsB)],
currencyFormats,
columnFormats,
yAxisFormatSecondary,
currencyFormatSecondary,
);
const primarySeries = new Set<string>();
@@ -498,7 +511,7 @@ export default function transformProps(
metrics,
!!contributionMode,
customFormatters,
yAxisFormat,
formatter,
),
},
scale: truncateYAxis,
@@ -520,7 +533,7 @@ export default function transformProps(
metricsB,
!!contributionMode,
customFormattersSecondary,
yAxisFormatSecondary,
formatterSecondary,
),
},
scale: truncateYAxis,