parsePlacement static method
Implementation
static GridPlacement parsePlacement(String value) {
final String trimmed = value.trim();
if (trimmed.isEmpty || trimmed.toLowerCase() == 'auto') {
return const GridPlacement.auto();
}
final String lower = trimmed.toLowerCase();
if (lower.startsWith('span')) {
final String number = lower.substring(4).trim();
final int? spanValue = int.tryParse(number);
if (spanValue != null && spanValue > 0) {
return GridPlacement.span(spanValue);
}
return const GridPlacement.span(1);
}
final int? lineValue = int.tryParse(trimmed);
if (lineValue != null) {
return GridPlacement.line(lineValue);
}
final List<String> tokens = trimmed.split(RegExp(r'\s+'));
if (tokens.length == 2) {
final int? occurrence = int.tryParse(tokens[1]);
if (occurrence != null && occurrence != 0 && isCustomIdent(tokens[0])) {
return GridPlacement.named(
tokens[0],
occurrence: occurrence,
explicitOccurrence: true,
);
}
}
if (isCustomIdent(trimmed)) {
return GridPlacement.named(trimmed);
}
return const GridPlacement.auto();
}