ChartAxisConfig.fromJson constructor

ChartAxisConfig.fromJson(
  1. 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,
  );
}