encodeTableColumnWidth static method
Encodes the given value
to a TableColumnWidth. This expects the
value
to have the following structure:
{
"a": "<TableColumnWidth>",
"b": "<TableColumnWidth>",
"type": "<"fixed" | "flex" | "fraction" | "intrinsic" | "max" | "min">",
"value": "<double>"
}
Implementation
static Map<String, dynamic>? encodeTableColumnWidth(TableColumnWidth? value) {
Map<String, dynamic>? result;
if (value is FixedColumnWidth) {
result = {
'type': 'fixed',
'value': value.value,
};
} else if (value is FlexColumnWidth) {
result = {
'type': 'flex',
'value': value.value,
};
} else if (value is FractionColumnWidth) {
result = {
'type': 'fraction',
'value': value.value,
};
} else if (value is IntrinsicColumnWidth) {
result = {
'type': 'intrinsic',
'value': value.flex(const <RenderBox>[]),
};
} else if (value is MaxColumnWidth) {
result = {
'a': encodeTableColumnWidth(value.a),
'b': encodeTableColumnWidth(value.b),
'type': 'max',
};
} else if (value is MinColumnWidth) {
result = {
'a': encodeTableColumnWidth(value.a),
'b': encodeTableColumnWidth(value.b),
'type': 'min',
};
} else if (value != null) {
throw Exception(
'[encodeTableColumnWidth]: unknown value type: [${value.runtimeType}]',
);
}
return _stripDynamicNull(result);
}