computeWidths method

void computeWidths(
  1. List<List<String>> rows
)

Computes column widths based on header and row data.

Respects ColumnConfig.minWidth and ColumnConfig.maxWidth constraints.

Implementation

void computeWidths(List<List<String>> rows) {
  _widths = List.generate(columns.length, (i) {
    final config = columns[i];
    int width = text.visibleLength(config.header);

    for (final row in rows) {
      if (i < row.length) {
        width = max(width, text.visibleLength(row[i]));
      }
    }

    // Apply constraints
    if (config.minWidth != null) {
      width = max(width, config.minWidth!);
    }
    if (config.maxWidth != null) {
      width = min(width, config.maxWidth!);
    }

    return width + cellPadding;
  });
}