parsePlacement static method

GridPlacement parsePlacement(
  1. String value
)

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();
}