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({
    'autocorrect': true == autocorrect ? null : autocorrect,
    'autofillHints': autofillHints,
    'autofocus': false == autofocus ? null : autofocus,
    'autovalidateMode': ThemeEncoder.encodeAutovalidateMode(
      autovalidateMode,
    ),
    'buildCounter': buildCounter,
    'canRequestFocus': true == canRequestFocus ? null : canRequestFocus,
    'clipBehavior': Clip.hardEdge == clipBehavior
        ? null
        : ThemeEncoder.encodeClip(
            clipBehavior,
          ),
    'contentInsertionConfiguration': contentInsertionConfiguration,
    'contextMenuBuilder': contextMenuBuilder,
    'controller': controller,
    'cursorColor': ThemeEncoder.encodeColor(
      cursorColor,
    ),
    'cursorHeight': cursorHeight,
    'cursorOpacityAnimates': cursorOpacityAnimates,
    'cursorRadius': ThemeEncoder.encodeRadius(
      cursorRadius,
    ),
    'cursorWidth': 2.0 == cursorWidth ? null : cursorWidth,
    'decoration': decoration,
    'dragStartBehavior': DragStartBehavior.start == dragStartBehavior
        ? null
        : ThemeEncoder.encodeDragStartBehavior(
            dragStartBehavior,
          ),
    'enableIMEPersonalizedLearning': true == enableIMEPersonalizedLearning
        ? null
        : enableIMEPersonalizedLearning,
    'enableInteractiveSelection': enableInteractiveSelection,
    'enableSuggestions': true == enableSuggestions ? null : enableSuggestions,
    'enabled': enabled,
    'expands': false == expands ? null : expands,
    'focusNode': focusNode,
    'initialValue': initialValue,
    'inputFormatters': inputFormatters,
    'keyboardAppearance': ThemeEncoder.encodeBrightness(
      keyboardAppearance,
    ),
    'keyboardType': ThemeEncoder.encodeTextInputType(
      keyboardType,
    ),
    'magnifierConfiguration': magnifierConfiguration,
    'maxLength': maxLength,
    'maxLengthEnforcement': ThemeEncoder.encodeMaxLengthEnforcement(
      maxLengthEnforcement,
    ),
    'maxLines': 1 == maxLines ? null : maxLines,
    'minLines': minLines,
    'mouseCursor': ThemeEncoder.encodeMouseCursor(
      mouseCursor,
    ),
    'obscureText': false == obscureText ? null : obscureText,
    'obscuringCharacter':
        '•' == obscuringCharacter ? null : obscuringCharacter,
    'onAppPrivateCommand': onAppPrivateCommand,
    'onChanged': onChanged,
    'onEditingComplete': onEditingComplete,
    'onFieldSubmitted': onFieldSubmitted,
    'onSaved': onSaved,
    'onTap': onTap,
    'onTapOutside': onTapOutside,
    'readOnly': false == readOnly ? null : readOnly,
    'restorationId': restorationId,
    'scribbleEnabled': true == scribbleEnabled ? null : scribbleEnabled,
    'scrollController': scrollController,
    'scrollPadding': const EdgeInsets.all(20.0) == scrollPadding
        ? null
        : ThemeEncoder.encodeEdgeInsets(
            scrollPadding,
          ),
    'scrollPhysics': ThemeEncoder.encodeScrollPhysics(
      scrollPhysics,
    ),
    'selectionControls': selectionControls,
    'selectionHeightStyle': BoxHeightStyle.tight == selectionHeightStyle
        ? null
        : ThemeEncoder.encodeBoxHeightStyle(
            selectionHeightStyle,
          ),
    'selectionWidthStyle': BoxWidthStyle.tight == selectionWidthStyle
        ? null
        : ThemeEncoder.encodeBoxWidthStyle(
            selectionWidthStyle,
          ),
    'showCursor': showCursor,
    'smartDashesType': ThemeEncoder.encodeSmartDashesType(
      smartDashesType,
    ),
    'smartQuotesType': ThemeEncoder.encodeSmartQuotesType(
      smartQuotesType,
    ),
    'spellCheckConfiguration': spellCheckConfiguration,
    'strutStyle': ThemeEncoder.encodeStrutStyle(
      strutStyle,
    ),
    'style': ThemeEncoder.encodeTextStyle(
      style,
    ),
    'textAlign': TextAlign.start == textAlign
        ? null
        : ThemeEncoder.encodeTextAlign(
            textAlign,
          ),
    'textAlignVertical': ThemeEncoder.encodeTextAlignVertical(
      textAlignVertical,
    ),
    'textCapitalization': TextCapitalization.none == textCapitalization
        ? null
        : ThemeEncoder.encodeTextCapitalization(
            textCapitalization,
          ),
    'textDirection': ThemeEncoder.encodeTextDirection(
      textDirection,
    ),
    'textInputAction': ThemeEncoder.encodeTextInputAction(
      textInputAction,
    ),
    'undoController': undoController,
    'validators': validators,
    ...args,
  });
}