fromDynamic static method

LineChartBuilder fromDynamic(
  1. dynamic map, {
  2. JsonWidgetRegistry? registry,
})

Builds the builder from a Map-like dynamic structure. This expects the JSON format to be of the following structure:

{
  "animate": <bool>,
  "animationDuration": <Duration>,
  "behaviors": <List<charts.ChartBehavior<num>>>,
  "customSeriesRenderers": <List<charts.LineRendererConfig<num>>>,
  "defaultInteractions": <bool>,
  "defaultRenderer": <common.SeriesRendererConfig<num>>,
  "disjointMeasureAxes": <LinkedHashMap<String, common.NumericAxisSpec>>,
  "domainAxis": <common.AxisSpec>,
  "flipVerticalAxis": <bool>,
  "layoutConfig": <charts.LayoutConfig>,
  "primaryMeasureAxis": <common.NumericAxisSpec>,
  "rtlSpec": <common.RTLSpec>,
  "secondaryMeasureAxis": <common.NumericAxisSpec>,
  "series": <List<charts.Series<dynamic, num>>>,
  "selectionModels": <List<charts.SelectionModelConfig<num>>>,
  "userManagedState": <charts.UserManagedState<num>>
}

Implementation

static LineChartBuilder fromDynamic(
  dynamic map, {
  JsonWidgetRegistry? registry,
}) {
  if (map == null) {
    throw Exception('[LineChartBuilder]: map is null');
  }

  return LineChartBuilder(
    animate:
        map['animate'] == null ? null : JsonClass.parseBool(map['animate']),
    animationDuration:
        JsonClass.parseDurationFromMillis(map['animationDuration']),
    behaviors: JsonChartsDecoder.decodeChartBehaviorList<num>(
      map['behaviors'],
      validate: false,
    ),
    customSeriesRenderers:
        JsonChartsDecoder.decodeSeriesRendererConfigList<num>(
      map['customSeriesRenderers'],
      validate: false,
    ),
    defaultInteractions: JsonClass.parseBool(
      map['defaultInteractions'],
      whenNull: true,
    ),
    defaultRenderer: JsonChartsDecoder.decodeLineRendererConfig<num>(
      map['defaultRenderer'],
      validate: false,
    ),
    disjointMeasureAxes: map['disjointMeasureAxes'] == null
        ? null
        : LinkedHashMap.from(
            map['disjointMeasureAxes'].map(
              (k, v) => MapEntry<String, common.NumericAxisSpec>(
                k.toString(),
                JsonChartsDecoder.decodeNumericAxisSpec(v)!,
              ),
            ),
          ),
    domainAxis: JsonChartsDecoder.decodeAxisSpec(
      map['domainAxis'],
      validate: false,
    ),
    flipVerticalAxis: map['flipVerticalAxis'] == null
        ? null
        : JsonClass.parseBool(map['flipVerticalAxis']),
    layoutConfig: JsonChartsDecoder.decodeLayoutConfig(
      map['layoutConfig'],
      validate: false,
    ),
    primaryMeasureAxis: JsonChartsDecoder.decodeNumericAxisSpec(
      map['primaryMeasureAxis'],
      validate: false,
    ),
    rtlSpec: JsonChartsDecoder.decodeRTLSpec(
      map['rtlSpec'],
      validate: false,
    ),
    secondaryMeasureAxis: JsonChartsDecoder.decodeNumericAxisSpec(
      map['secondaryMeasureAxis'],
      validate: false,
    ),
    series: JsonChartsDecoder.decodeSeriesList(
      map['series'],
      validate: false,
    ),
    selectionModels: JsonChartsDecoder.decodeSelectionModelConfigList<num>(
      map['selectionModels'],
      validate: false,
    ),
    userManagedState: map['userManagedState'],
  );
}