encodeTableColumnWidth static method

Map<String, dynamic>? encodeTableColumnWidth(
  1. TableColumnWidth? value
)

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);
}