parseDashArray method
Parses an @stroke-dasharray attribute into a CircularIntervalList.
Does not currently support percentages.
Implementation
CircularIntervalList<double>? parseDashArray() {
final String? rawDashArray = getAttribute(attributes, 'stroke-dasharray');
if (rawDashArray == '') {
return null;
} else if (rawDashArray == 'none') {
return DrawableStyle.emptyDashArray;
}
final List<String> parts = rawDashArray!.split(RegExp(r'[ ,]+'));
final List<double> doubles = <double>[];
bool atLeastOneNonZeroDash = false;
for (final String part in parts) {
final double dashOffset = parseDoubleWithUnits(part)!;
if (dashOffset != 0) {
atLeastOneNonZeroDash = true;
}
doubles.add(dashOffset);
}
if (doubles.isEmpty || !atLeastOneNonZeroDash) {
return null;
}
return CircularIntervalList<double>(doubles);
}