resizedTableColumns function
Implementation
Map<String, double> resizedTableColumns(
List<TableColumn> columns,
List<double> widths,
Map<String, double> overrides,
int boundary,
double delta,
) {
final resized = [...widths];
if (delta > 0) {
var rest = delta;
for (var index = boundary + 1; index < columns.length; index++) {
if (rest <= 0) {
break;
}
if (!columns[index].resizable) {
continue;
}
final taken = rest.clamp(
0.0,
(resized[index] - tableColumnMinWidth).clamp(0.0, double.infinity),
);
resized[index] -= taken;
rest -= taken;
}
resized[boundary] += delta - rest;
} else {
final given = (-delta).clamp(
0.0,
(resized[boundary] - tableColumnMinWidth).clamp(0.0, double.infinity),
);
resized[boundary] -= given;
resized[boundary + 1] += given;
}
return {
...overrides,
for (final (index, column) in columns.indexed)
if (resized[index] != widths[index]) column.id: resized[index],
};
}