parseSvgDocument function
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);
}