anchor.diff:      }
   
       final List<double> groupsX = _calculateGroupsX(size, data.barGroups, data.alignment);
  -    _groupBarsPosition = _calculateGroupAndBarsPosition(size, groupsX, data.barGroups);
  +    final List<_GroupBarsPosition> _groupBarsPosition =
  +    _calculateGroupAndBarsPosition(size, groupsX, data.barGroups);
   
       _drawBars(canvas, size, _groupBarsPosition);
       drawAxisTitles(canvas, size);
  
positive.code:   /// find the nearest spot base on the touched offset
    BarTouchedSpot _getNearestTouchedSpot(
        Size viewSize, Offset touchedPoint, List<_GroupBarsPosition> groupBarsPosition) {
  //    if (groupBarsPosition == null) {
  //      return null;
  //    }
      final Size chartViewSize = getChartUsableDrawSize(viewSize);
  
      /// Find the nearest barRod
  
negative.code: /// Paints [BarChartData] in the canvas, it can be used in a [CustomPainter]
  class BarChartPainter extends AxisChartPainter<BarChartData> with TouchHandler<BarTouchResponse> {
    Paint _barPaint, _bgTouchTooltipPaint;
  
    /// Paints [data] into canvas, it is the animating [BarChartData],
    /// [targetData] is the animation's target and remains the same
  