parseSvgDocument function

UISvgParsedData? parseSvgDocument(
  1. String svg
)

Extracts path data and view box from a simple SVG document.

Implementation

UISvgParsedData? parseSvgDocument(String svg) {
  final pathMatches = RegExp(r'd="([^"]+)"', caseSensitive: false)
      .allMatches(svg)
      .map((match) => match.group(1))
      .whereType<String>()
      .toList(growable: false);
  if (pathMatches.isEmpty) return null;

  final paths = <Path>[];
  for (final pathData in pathMatches) {
    try {
      paths.add(parseSvgPathData(pathData));
    } on UnsupportedError {
      return null;
    }
  }

  final viewBox = _parseViewBox(svg) ?? _defaultViewBox;
  return UISvgParsedData(paths: paths, viewBox: viewBox);
}