design_system/components/data/editable_table_models
library
Classes
-
CellRef
-
An immutable cell address (row + column index) — the controller's cursor.
-
EditableCellData
-
Everything a EditableCellBuilder needs to paint a custom, read-only cell:
the value, its address, the whole row (for cross-column rendering), the
owning column, and the cell's current selected / invalid state. A
requestEdit callback lets a custom cell open the normal editor on tap.
-
EditableColumn
-
The schema for a single column. This is the customisation surface: a host
builds a
List<EditableColumn> to define its table.
-
EditableTableFormat
-
Value-formatting helpers shared by the controller and the view.
Enums
-
CellAlign
-
Horizontal alignment of a column's content.
-
EditableColumnType
-
How a column's cells edit & render. The concrete column subclasses in
editable_table_columns.dart (NumericColumn, DateColumn, …) each set the
right kind; you rarely pass type by hand.
-
SortDir
-
Sort direction for a column header. none means unsorted.
Typedefs
-
EditableCellBuilder
= Widget Function(BuildContext context, EditableCellData cell)
-
Builds the read-only content of a cell — a host hook for chips, badges,
progress bars, icons, links… Returned widget replaces the default text.
The cell stays selectable/editable; this only changes how it looks when
not being edited.
-
EditableCellValidator
= String? Function(String value, EditableRow row)
-
Row-aware validator for a column. Receives the cell
value and the full
row it belongs to (so it can validate against sibling cells), and
returns an error message, or null when valid.
-
EditableRow
= Map<String, String>
-
One row of data — a column-key → cell-value map. Values are kept as
strings (what the user types); the host parses on read. Kept deliberately
generic so the widget carries no business-model coupling.