gridColumnWidths function

List<int> gridColumnWidths(
  1. List<int> twelfths,
  2. int chars
)

Zwölftel → Zeichen je Spalte (ganze Zeichen, Rest an die letzte, mindestens 1).

Implementation

List<int> gridColumnWidths(List<int> twelfths, int chars) {
  final out = <int>[];
  var vergeben = 0;
  for (var i = 0; i < twelfths.length; i++) {
    final letzte = i == twelfths.length - 1;
    final b = letzte ? (chars - vergeben < 1 ? 1 : chars - vergeben) : ((chars * twelfths[i]) ~/ 12).clamp(1, 1 << 30);
    out.add(b);
    vergeben += b;
  }
  return out;
}