toJson method

  1. @override
Map<String, dynamic> toJson()
override

Abstract function that concrete classes must implement. This must encode the internal data model to a JSON compatible representation.

While not required, it is suggested to call removeNull before returning.

Implementation

@override
Map<String, dynamic> toJson() {
  return JsonClass.removeNull({
    'alignment': ThemeEncoder.encodeAlignmentGeometry(
      alignment,
    ),
    'autofocus': false == autofocus ? null : autofocus,
    'color': ThemeEncoder.encodeColor(
      color,
    ),
    'constraints': ThemeEncoder.encodeBoxConstraints(
      constraints,
    ),
    'disabledColor': ThemeEncoder.encodeColor(
      disabledColor,
    ),
    'enableFeedback': enableFeedback,
    'focusColor': ThemeEncoder.encodeColor(
      focusColor,
    ),
    'focusNode': focusNode,
    'highlightColor': ThemeEncoder.encodeColor(
      highlightColor,
    ),
    'hoverColor': ThemeEncoder.encodeColor(
      hoverColor,
    ),
    'icon': icon.toJson(),
    'iconSize': iconSize,
    'isSelected': isSelected,
    'mouseCursor': ThemeEncoder.encodeMouseCursor(
      mouseCursor,
    ),
    'onPressed': onPressed,
    'padding': ThemeEncoder.encodeEdgeInsetsGeometry(
      padding,
    ),
    'selectedIcon': selectedIcon?.toJson(),
    'splashColor': ThemeEncoder.encodeColor(
      splashColor,
    ),
    'splashRadius': splashRadius,
    'style': ThemeEncoder.encodeButtonStyle(
      style,
    ),
    'tooltip': tooltip,
    'visualDensity': ThemeEncoder.encodeVisualDensity(
      visualDensity,
    ),
    ...args,
  });
}