sfAreaCartesianChart method

Widget sfAreaCartesianChart({
  1. List<ChartData>? dados,
  2. List<List<ChartData>>? dadosList,
})

Implementation

Widget sfAreaCartesianChart({List<ChartData>? dados, List<List<ChartData>>? dadosList}) {
  return (dados == null && dadosList == null)
      ? const SizedBox()
      : Column(
          mainAxisAlignment: MainAxisAlignment.start,
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            if (dados != null)
              if ((dados[0].title ?? '').isNotEmpty)
                Padding(
                  padding: const EdgeInsets.only(left: 30, top: 0),
                  child: Text('${dados[0].title}'),
                ),
            if (dadosList != null)
              if ((dadosList[1][0].title ?? '').isNotEmpty)
                Padding(
                  padding: const EdgeInsets.only(left: 30, top: 0),
                  child: Text('${dadosList[1][0].title}'),
                ),
            SfCartesianChart(
              primaryXAxis: const CategoryAxis(),
              margin: const EdgeInsets.only(left: 0, top: 15, right: 0, bottom: 0),
              series: <CartesianSeries>[
                if (dados != null && dadosList == null)
                  AreaSeries<ChartData, String>(
                    dataSource: dados,
                    xValueMapper: (ChartData data, _) => data.nome,
                    yValueMapper: (ChartData data, _) => data.valor,
                    dataLabelMapper: (ChartData data, _) {
                      if (data.type == int) {
                        return '${Features.toFormatNumber(data.valor.toString(), qtCasasDecimais: 0)}';
                      } else {
                        return 'R\$ ${Features.toFormatNumber(data.valor.toString())}';
                      }
                    },
                    pointColorMapper: (ChartData data, _) => data.color,
                    color: dados[0].color,
                    enableTooltip: true,
                    markerSettings: const MarkerSettings(
                      isVisible: true,
                      height: 4,
                      width: 4,
                      shape: DataMarkerType.circle,
                      borderWidth: 3,
                      borderColor: Colors.red,
                    ),
                    dataLabelSettings: const DataLabelSettings(
                      useSeriesColor: true,
                      labelAlignment: ChartDataLabelAlignment.auto,
                      textStyle: TextStyle(fontSize: 10),
                      showZeroValue: false,
                      isVisible: true,
                      labelPosition: ChartDataLabelPosition.outside,
                      showCumulativeValues: true,
                      borderRadius: 7,
                    ),
                  ),
                if (dados == null && dadosList != null)
                  for (var dados in dadosList)
                    AreaSeries<ChartData, String>(
                      dataSource: dados,
                      xValueMapper: (ChartData data, _) => data.nome,
                      yValueMapper: (ChartData data, _) => data.valor,
                      dataLabelMapper: (ChartData data, _) {
                        if (data.type == int) {
                          return '${Features.toFormatNumber(data.valor.toString(), qtCasasDecimais: 0)}';
                        } else {
                          return 'R\$ ${Features.toFormatNumber(data.valor.toString())}';
                        }
                      },
                      pointColorMapper: (ChartData data, _) => data.color,
                      color: dados[0].color,
                      enableTooltip: true,
                      markerSettings: const MarkerSettings(
                        isVisible: true,
                        height: 4,
                        width: 4,
                        shape: DataMarkerType.circle,
                        borderWidth: 3,
                        borderColor: Colors.red,
                      ),
                      dataLabelSettings: const DataLabelSettings(
                        useSeriesColor: true,
                        labelAlignment: ChartDataLabelAlignment.auto,
                        textStyle: TextStyle(fontSize: 10),
                        showZeroValue: false,
                        isVisible: true,
                        labelPosition: ChartDataLabelPosition.outside,
                        showCumulativeValues: true,
                        borderRadius: 7,
                      ),
                    ),
              ],
            ),
            const SizedBox(
              height: 30,
            ),
          ],
        );
}