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.
-
DropdownColumn
-
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.
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.