geniuslink_editable_table library

Classes

CellRef
An immutable cell address (row + column index) — the controller's cursor.
ColorPickerColumn
A colour column — the cell shows a swatch + the stored #RRGGBB hex, and editing opens a swatch menu built from swatches.
ComboBoxColumn
A combo box — a free-text field with an attached suggestions dropdown. The user may type any value OR pick one of options.
ComputedColumn
A read-only column whose value is derived from the whole row by compute, recomputed on every change (e.g. qty × price, a status, a concatenation).
DateColumn
An ISO YYYY-MM-DD date column: masked keyboard entry plus a calendar button that opens the Material date picker. first / last bound the picker's range.
DateInputFormatter
Masks digit input to YYYY-MM-DD as the user types (auto-inserts dashes, caps at 8 digits) — mirrors a web date field's segmented entry.
A strict dropdown — the value must be one of options (no free typing). Edits via a popup menu.
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.
EditableTable
EditableTableController
EditableTableFormat
Value-formatting helpers shared by the controller and the view.
EditableTableScope
Exposes controller to descendants; rebuilds dependents on notify.
EditableTableThemeData
EditableTemporal
Pure parse / format helpers for the date & time columns. Dates are ISO YYYY-MM-DD; times are 24h HH:mm — both matching the HTML <input type=date|time> value formats.
NumericColumn
A numeric column with optional min / max clamp and fixed decimals. Right-aligned & monospace by default; summable via includeInTotal.
ReadonlyColumn
A non-editable column — the value is shown (or rendered via cellBuilder) but can never be selected into an editor.
TimeColumn
A 24-hour HH:mm time column: masked keyboard entry plus a clock button that opens the Material time picker.
TimeInputFormatter
Masks digit input to HH:mm (auto-inserts the colon, caps at 4 digits).

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.

Constants

kEditableSwatches → const List<String>
The default swatch palette offered by ColorPickerColumn.

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.