decodeChipThemeData static method

ChipThemeData? decodeChipThemeData(
  1. dynamic value, {
  2. bool validate = true,
})

Decodes the given value to an CardTheme. This expects the given value to follow the structure below:

{
  "backgroundColor": "<Color>",
  "brightness": "<Brightness>",
  "checkmarkColor": "<Color>",
  "color": "<WidgetStateProperty<Color>>"
  "deleteIconColor": "<Color>",
  "disabledColor": "<Color>",
  "elevation": "<double>",
  "iconTheme": "<IconThemeData>",
  "labelPadding": "<EdgeInsetsGeometry>",
  "labelStyle": "<TextStyle>",
  "padding": "<EdgeInsetsGeometry>",
  "pressElevation": "<double>",
  "secondaryLabelStyle": "<TextStyle>",
  "secondarySelectedColor": "<Color>",
  "selectedColor": "<Color>",
  "shape": "<ShapeBorder>",
  "side": "<BorderSide>",
  "selectedShadowColor": "<Color>",
  "shadowColor": "<Color>",
  "showCheckmark": "<bool>",
  "surfaceTintColor": "<Color>"
}

See also:

Implementation

static ChipThemeData? decodeChipThemeData(
  dynamic value, {
  bool validate = true,
}) {
  ChipThemeData? result;

  if (value is ChipThemeData) {
    result = value;
  } else if (value != null) {
    assert(SchemaValidator.validate(
      schemaId: '$_baseSchemaUrl/chip_theme_data',
      value: value,
      validate: validate,
    ));
    result = ChipThemeData(
      backgroundColor: decodeColor(
        value['backgroundColor'],
        validate: false,
      ),
      brightness: decodeBrightness(
        value['brightness'],
        validate: false,
      ),
      checkmarkColor: decodeColor(
        value['checkmarkColor'],
        validate: false,
      ),
      color: decodeWidgetStatePropertyColor(
        value['color'],
        validate: false,
      ),
      deleteIconColor: decodeColor(
        value['deleteIconColor'],
        validate: false,
      ),
      disabledColor: decodeColor(
        value['disabledColor'],
        validate: false,
      ),
      elevation: JsonClass.maybeParseDouble(value['elevation']),
      iconTheme: decodeIconThemeData(
        value['iconTheme'],
        validate: false,
      ),
      labelPadding: decodeEdgeInsetsGeometry(
        value['labelPadding'],
        validate: false,
      ),
      labelStyle: decodeTextStyle(
        value['labelStyle'],
        validate: false,
      ),
      padding: decodeEdgeInsetsGeometry(
        value['padding'],
        validate: false,
      ),
      pressElevation: JsonClass.maybeParseDouble(value['pressElevation']),
      secondaryLabelStyle: decodeTextStyle(
        value['secondaryLabelStyle'],
        validate: false,
      ),
      secondarySelectedColor: decodeColor(
        value['secondarySelectedColor'],
        validate: false,
      ),
      selectedColor: decodeColor(
        value['selectedColor'],
        validate: false,
      ),
      shape: decodeShapeBorder(
        value['shape'],
        validate: false,
      ) as OutlinedBorder?,
      side: decodeBorderSide(
        value['side'],
        validate: false,
      ),
      selectedShadowColor: decodeColor(
        value['selectedShadowColor'],
        validate: false,
      ),
      shadowColor: decodeColor(
        value['shadowColor'],
        validate: false,
      ),
      showCheckmark: JsonClass.maybeParseBool(value['showCheckmark']),
      surfaceTintColor: decodeColor(
        value['surfaceTintColor'],
        validate: false,
      ),
    );
  }

  return result;
}