decodeNumericAxisSpec static method
Decodes the object from a Map-like dynamic structure. This expects the JSON format to be of the following structure:
{
"renderSpec": <RenderSpec<num>>,
"scaleSpec": <ScaleSpec<num>>,
"showAxisLine": <bool>,
"tickFormatterSpec": <NumericTickFormatterSpec>,
"tickProviderSpec": <NumericTickProviderSpec>,
"viewport": <NumericExtents>
}
Implementation
static charts.NumericAxisSpec? decodeNumericAxisSpec(
dynamic map, {
bool validate = true,
}) {
charts.NumericAxisSpec? result;
if (map is charts.NumericAxisSpec) {
result = map;
} else if (map != null) {
final type = map['type'];
if (type == 'bucketing') {
result = decodeBucketingAxisSpec(
map,
validate: false,
);
} else if (type == 'percent') {
result = decodePercentAxisSpec<num>(
map,
validate: false,
);
} else {
assert(SchemaValidator.validate(
schemaId: '$_baseSchemaUrl/numeric_axis_spec',
value: map,
validate: validate,
));
result = charts.NumericAxisSpec(
renderSpec: decodeRenderSpec<num>(
map['renderSpec'],
validate: false,
),
scaleSpec: map['scaleSpec'],
showAxisLine: map['showAxisLine'] == null
? null
: JsonClass.parseBool(map['showAxisLine']),
tickFormatterSpec: decodeNumericTickFormatterSpec(
map['tickFormatterSpec'],
validate: false,
),
tickProviderSpec: decodeNumericTickProviderSpec(
map['tickProviderSpec'],
),
viewport: decodeNumericExtents(
map['viewport'],
validate: false,
),
);
}
}
return result;
}