toJson method
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,
});
}