parseGradient function

Gradient? parseGradient(
  1. Map<String, dynamic>? map
)

Implementation

Gradient? parseGradient(Map<String, dynamic>? map) {
  if (map == null) return null;
  List<Color> colors = (map["colors"] as List)
      .map((e) => parseColor(e) ?? Colors.white)
      .toList();
  List<double>? stops =
      (map["stops"] as List?)?.map((e) => e.toDouble()).toList().cast<double>();
  TileMode tileMode = parseTileMode(map["tileMode"]) ?? TileMode.clamp;
  if (map["type"] == "RadialGradient") {
    Alignment center = parseAlignment(map["center"]) ?? Alignment.center;
    double radius = map["radius"].toDouble();
    return RadialGradient(
        center: center,
        radius: radius,
        colors: colors,
        stops: stops,
        tileMode: tileMode);
  } else if (map["type"] == "SweepGradient") {
    Alignment center = parseAlignment(map["center"]) ?? Alignment.center;
    double startAngle = map["startAngle"].toDouble();
    double endAngle = map["endAngle"].toDouble();
    return SweepGradient(
        center: center,
        startAngle: startAngle,
        endAngle: endAngle,
        colors: colors,
        stops: stops,
        tileMode: tileMode);
  } else {
    Alignment begin = parseAlignment(map["begin"]) ?? Alignment.centerLeft;
    Alignment end = parseAlignment(map["end"]) ?? Alignment.centerRight;
    return LinearGradient(
        begin: begin,
        end: end,
        colors: colors,
        stops: stops,
        tileMode: tileMode);
  }
}