mirror of
https://github.com/apache/superset.git
synced 2026-04-19 16:14:52 +00:00
fix: Time shifts calculation for ECharts plugins (#28432)
This commit is contained in:
committed by
GitHub
parent
f0b7b95d05
commit
821c7d7f2c
@@ -45,9 +45,10 @@ import {
|
||||
extractExtraMetrics,
|
||||
getOriginalSeries,
|
||||
isDerivedSeries,
|
||||
getTimeOffset,
|
||||
} from '@superset-ui/chart-controls';
|
||||
import { EChartsCoreOption, SeriesOption } from 'echarts';
|
||||
import { ZRLineType } from 'echarts/types/src/util/types';
|
||||
import { LineStyleOption } from 'echarts/types/src/util/types';
|
||||
import {
|
||||
EchartsTimeseriesChartProps,
|
||||
EchartsTimeseriesFormData,
|
||||
@@ -273,10 +274,22 @@ export default function transformProps(
|
||||
const array = ensureIsArray(chartProps.rawFormData?.time_compare);
|
||||
const inverted = invert(verboseMap);
|
||||
|
||||
const offsetLineWidths = {};
|
||||
|
||||
rawSeries.forEach(entry => {
|
||||
const lineStyle = isDerivedSeries(entry, chartProps.rawFormData)
|
||||
? { type: 'dashed' as ZRLineType }
|
||||
: {};
|
||||
const derivedSeries = isDerivedSeries(entry, chartProps.rawFormData);
|
||||
const lineStyle: LineStyleOption = {};
|
||||
if (derivedSeries) {
|
||||
const offset = getTimeOffset(
|
||||
entry,
|
||||
ensureIsArray(chartProps.rawFormData?.time_compare),
|
||||
)!;
|
||||
if (!offsetLineWidths[offset]) {
|
||||
offsetLineWidths[offset] = Object.keys(offsetLineWidths).length + 1;
|
||||
}
|
||||
lineStyle.type = 'dashed';
|
||||
lineStyle.width = offsetLineWidths[offset];
|
||||
}
|
||||
|
||||
const entryName = String(entry.name || '');
|
||||
const seriesName = inverted[entryName] || entryName;
|
||||
@@ -288,6 +301,7 @@ export default function transformProps(
|
||||
colorScaleKey,
|
||||
{
|
||||
area,
|
||||
connectNulls: derivedSeries,
|
||||
filterState,
|
||||
seriesContexts,
|
||||
markerEnabled,
|
||||
|
||||
@@ -143,6 +143,7 @@ export function transformSeries(
|
||||
colorScaleKey: string,
|
||||
opts: {
|
||||
area?: boolean;
|
||||
connectNulls?: boolean;
|
||||
filterState?: FilterState;
|
||||
seriesContexts?: { [key: string]: ForecastSeriesEnum[] };
|
||||
markerEnabled?: boolean;
|
||||
@@ -170,6 +171,7 @@ export function transformSeries(
|
||||
const { name } = series;
|
||||
const {
|
||||
area,
|
||||
connectNulls,
|
||||
filterState,
|
||||
seriesContexts = {},
|
||||
markerEnabled,
|
||||
@@ -268,6 +270,7 @@ export function transformSeries(
|
||||
: { ...opts.lineStyle, opacity };
|
||||
return {
|
||||
...series,
|
||||
connectNulls,
|
||||
queryIndex,
|
||||
yAxisIndex,
|
||||
name: forecastSeries.name,
|
||||
|
||||
Reference in New Issue
Block a user