ChartAxisConfig.fromJson constructor
ChartAxisConfig.fromJson(
- Object? raw
Implementation
factory ChartAxisConfig.fromJson(Object? raw) {
final json = JsonValue.map(raw);
if (json == null) return const ChartAxisConfig();
final scaleStr = json['scale']?.toString().toLowerCase() ?? 'linear';
final scale = switch (scaleStr) {
'log' => AxisScaleType.log,
'time' => AxisScaleType.time,
'category' => AxisScaleType.category,
'percent' => AxisScaleType.percent,
_ => AxisScaleType.linear,
};
final posStr = json['position']?.toString().toLowerCase() ?? 'left';
final pos = switch (posStr) {
'right' => AxisPosition.right,
'top' => AxisPosition.top,
'bottom' => AxisPosition.bottom,
_ => AxisPosition.left,
};
return ChartAxisConfig(
scaleType: scale,
position: pos,
label: json['label']?.toString(),
min: JsonValue.doubleOrNull(json['min']),
max: JsonValue.doubleOrNull(json['max']),
tickCount: JsonValue.intOrNull(json['tickCount']) ?? 5,
logBase: JsonValue.doubleOrNull(json['logBase']) ?? 10,
categories: JsonValue.stringList(json['categories']),
showAxisLine: JsonValue.boolOrNull(json['showAxisLine']) ?? true,
showTicks: JsonValue.boolOrNull(json['showTicks']) ?? true,
showGrid: JsonValue.boolOrNull(json['showGrid']) ?? true,
showLabels: JsonValue.boolOrNull(json['showLabels']) ?? true,
inverted: JsonValue.boolOrNull(json['inverted']) ?? false,
);
}