ChartTheme.fromJson constructor
ChartTheme.fromJson(
- Object? raw
Parse from JSON config (e.g., passed alongside chart config).
Implementation
factory ChartTheme.fromJson(Object? raw) {
final json = JsonValue.map(raw);
if (json == null) return ChartTheme.light;
final mode = json['mode']?.toString().toLowerCase();
if (mode == 'dark') return ChartTheme.dark;
if (mode == 'highcontrast') return ChartTheme.highContrast;
Color? bgColor;
if (json['backgroundColor'] != null) {
try {
bgColor = colorCache.resolve(json['backgroundColor']);
} catch (_) {}
}
final rawPalette = JsonValue.list(json['palette']);
final paletteColors = rawPalette == null
? null
: [
for (final value in rawPalette)
if (_isResolvableColor(value?.toString())) value!.toString(),
];
return ChartTheme.light.copyWith(
backgroundColor: bgColor,
palette: paletteColors != null && paletteColors.isNotEmpty
? ChartPalette(paletteColors)
: null,
);
}