fix: preserve wordcloud config in EChartsOptionBuilder ensureStyle

Same bug as chartSlice - the builder's ensureStyle was stripping
custom properties like wordcloud. Now preserves all non-standard keys.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
hailin 2026-04-05 21:10:00 -07:00
parent b124bae83c
commit e515aed960
1 changed files with 7 additions and 1 deletions

View File

@ -23,8 +23,13 @@ const DEFAULT_STYLE: StyleConfig = {
animation: { enabled: true, duration: 500, easing: 'ease-out' }, animation: { enabled: true, duration: 500, easing: 'ease-out' },
}; };
function ensureStyle(style: any): StyleConfig { function ensureStyle(style: any): StyleConfig & Record<string, any> {
if (!style || typeof style !== 'object') return DEFAULT_STYLE; if (!style || typeof style !== 'object') return DEFAULT_STYLE;
const known = new Set(['title','colors','legend','xAxis','yAxis','dataLabel','background','border','animation']);
const custom: Record<string, any> = {};
for (const key of Object.keys(style)) {
if (!known.has(key)) custom[key] = style[key];
}
return { return {
title: { ...DEFAULT_STYLE.title, ...(style.title ?? {}) }, title: { ...DEFAULT_STYLE.title, ...(style.title ?? {}) },
colors: (Array.isArray(style.colors) && style.colors.length > 0) ? style.colors : DEFAULT_STYLE.colors, colors: (Array.isArray(style.colors) && style.colors.length > 0) ? style.colors : DEFAULT_STYLE.colors,
@ -35,6 +40,7 @@ function ensureStyle(style: any): StyleConfig {
background: { ...DEFAULT_STYLE.background, ...(style.background ?? {}) }, background: { ...DEFAULT_STYLE.background, ...(style.background ?? {}) },
border: { ...DEFAULT_STYLE.border, ...(style.border ?? {}) }, border: { ...DEFAULT_STYLE.border, ...(style.border ?? {}) },
animation: { ...DEFAULT_STYLE.animation, ...(style.animation ?? {}) }, animation: { ...DEFAULT_STYLE.animation, ...(style.animation ?? {}) },
...custom,
}; };
} }