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({
    'autofocus': false == autofocus ? null : autofocus,
    'borderRadius': ThemeEncoder.encodeBorderRadius(
      borderRadius,
    ),
    'canRequestFocus': true == canRequestFocus ? null : canRequestFocus,
    'customBorder': ThemeEncoder.encodeShapeBorder(
      customBorder,
    ),
    'enableFeedback': true == enableFeedback ? null : enableFeedback,
    'excludeFromSemantics':
        false == excludeFromSemantics ? null : excludeFromSemantics,
    'focusColor': ThemeEncoder.encodeColor(
      focusColor,
    ),
    'focusNode': focusNode,
    'highlightColor': ThemeEncoder.encodeColor(
      highlightColor,
    ),
    'hoverColor': ThemeEncoder.encodeColor(
      hoverColor,
    ),
    'hoverDuration': hoverDuration?.inMilliseconds,
    'mouseCursor': ThemeEncoder.encodeMouseCursor(
      mouseCursor,
    ),
    'onDoubleTap': onDoubleTap,
    'onFocusChange': onFocusChange,
    'onHighlightChanged': onHighlightChanged,
    'onHover': onHover,
    'onLongPress': onLongPress,
    'onSecondaryTap': onSecondaryTap,
    'onSecondaryTapCancel': onSecondaryTapCancel,
    'onSecondaryTapDown': onSecondaryTapDown,
    'onSecondaryTapUp': onSecondaryTapUp,
    'onTap': onTap,
    'onTapCancel': onTapCancel,
    'onTapDown': onTapDown,
    'onTapUp': onTapUp,
    'overlayColor': overlayColor,
    'radius': radius,
    'splashColor': ThemeEncoder.encodeColor(
      splashColor,
    ),
    'splashFactory': ThemeEncoder.encodeInteractiveInkFeatureFactory(
      splashFactory,
    ),
    'statesController': statesController,
    'child': child?.toJson(),
    ...args,
  });
}