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({
'animationDuration':
kThemeChangeDuration == animationDuration
? null
: animationDuration.inMilliseconds,
'borderOnForeground':
true == borderOnForeground ? null : borderOnForeground,
'borderRadius': ThemeEncoder.encodeBorderRadius(borderRadius),
'clipBehavior':
Clip.none == clipBehavior
? null
: ThemeEncoder.encodeClip(clipBehavior),
'color': ThemeEncoder.encodeColor(color),
'elevation': 0.0 == elevation ? null : elevation,
'margin': ThemeEncoder.encodeEdgeInsetsGeometry(margin),
'materialType':
MaterialType.canvas == materialType
? null
: ThemeEncoder.encodeMaterialType(materialType),
'padding': ThemeEncoder.encodeEdgeInsetsGeometry(padding),
'shadowColor': ThemeEncoder.encodeColor(shadowColor),
'shape': ThemeEncoder.encodeShapeBorder(shape),
'surfaceTintColor': ThemeEncoder.encodeColor(surfaceTintColor),
'textStyle': ThemeEncoder.encodeTextStyle(textStyle),
'child': child?.toJson(),
...args,
});
}