anchor.diff:    Color backgroundColor;
   
     AxisChartData({
  -    this.gridData = const FlGridData(),
  +    FlGridData gridData,
  +    FlAxisTitleData axisTitleData,
  +    RangeAnnotations rangeAnnotations,
  +    double minX,
  +    double maxX,
  +    double minY,
  +    double maxY,
  +    bool clipToBorder,
  +    Color backgroundColor,
       FlBorderData borderData,
       FlTouchData touchData,
  -    this.axisTitleData,
  -    this.rangeAnnotations = const RangeAnnotations(),
  -    this.minX,
  -    this.maxX,
  -    this.minY,
  -    this.maxY,
  -    this.clipToBorder = false,
  -    this.backgroundColor,
  -  }) : super(borderData: borderData, touchData: touchData);
  +  })
  +    : gridData = gridData ?? FlGridData(),
  +      axisTitleData = axisTitleData,
  +      rangeAnnotations = rangeAnnotations ?? RangeAnnotations(),
  +      minX = minX,
  +      maxX = maxX,
  +      minY = minY,
  +      maxY = maxY,
  +      clipToBorder = clipToBorder ?? false,
  +      backgroundColor = backgroundColor,
  +      super(borderData: borderData, touchData: touchData);
  +
  +  /// Used for equality check, see [EquatableMixin].
  +  @override
  +  List<Object> get props => [
  +    gridData,
  +    axisTitleData,
  +    rangeAnnotations,
  +    minX,
  +    maxX,
  +    minY,
  +    maxY,
  +    clipToBorder,
  +    backgroundColor,
  +    borderData,
  +    touchData,
  +  ];
  +
   }
   
   /// Holds data for showing a title in each side (left, top, right, bottom) of the chart.
  -class FlAxisTitleData {
  +class FlAxisTitleData with EquatableMixin {
     final bool show;
   
     final AxisTitle leftTitle, topTitle, rightTitle, bottomTitle;
  
positive.code:   /// a space for drawing this side title, it used for
    /// some calculations.
    /// [margin] determines margin of this title.
    const AxisTitle({
      this.showTitle = false,
      this.titleText = '',
      this.reservedSize = 14,
      this.textStyle = const TextStyle(
        color: Colors.black,
        fontSize: 11,
      ),
      this.textAlign = TextAlign.center,
      this.margin = 4,
    });
  
    /// Lerps an [AxisTitle] based on [t] value, check [Tween.lerp].
    static AxisTitle lerp(AxisTitle a, AxisTitle b, double t) {
  
negative.code:       dashArray: lerpIntList(a.dashArray, b.dashArray, t),
      );
    }
  
    /// Used for equality check, see [EquatableMixin].
    @override
    List<Object> get props => [
      color,
      strokeWidth,
      dashArray,
    ];
  
  }
  
  /// holds information about touched spot on the axis based charts.
  abstract class TouchedSpot with EquatableMixin {
  
    /// Represents the spot inside our axis based chart,
    /// 0, 0 is bottom left, and 1, 1 is top right.
    final FlSpot spot;
  