decodeDateTimeTickFormatterSpec<D> static method

DateTimeTickFormatterSpec? decodeDateTimeTickFormatterSpec<D>(
  1. dynamic map, {
  2. bool validate = true,
})

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

{
  "format": <String>
}

Implementation

static charts.DateTimeTickFormatterSpec? decodeDateTimeTickFormatterSpec<D>(
  dynamic map, {
  bool validate = true,
}) {
  charts.DateTimeTickFormatterSpec? result;

  if (map is charts.DateTimeTickFormatterSpec) {
    result = map;
  } else if (map is DateFormat) {
    charts.BasicDateTimeTickFormatterSpec.fromDateFormat(map);
  } else if (map != null) {
    assert(SchemaValidator.validate(
      schemaId: '$_baseSchemaUrl/tick_formatter_spec',
      value: map,
      validate: validate,
    ));

    final type = map['type'];
    if (type == 'auto_date_time') {
      result = charts.AutoDateTimeTickFormatterSpec(
        day: decodeTimeFormatterSpec(map['day']),
        hour: decodeTimeFormatterSpec(map['hour']),
        minute: decodeTimeFormatterSpec(map['minute']),
        month: decodeTimeFormatterSpec(map['month']),
        year: decodeTimeFormatterSpec(map['year']),
      );
    } else {
      result = charts.BasicDateTimeTickFormatterSpec.fromDateFormat(
        DateFormat(map['format'] ?? 'MM/dd/yyyy'),
      );
    }
  }

  return result;
}