Data grid / foldkit-mixins-data-grid

Limits

  • Every row is one height.
  • A Shift click over rows does not extend a row range yet: the click's Message carries the cell, not the rows between, and the grid's update holds no row order. Shift+Space does it from the keyboard.
  • Keys read the state the last render drew, so two keys inside one frame both start from the same cell, as GridNavigation's do. Where a Message could carry a stale result it carries the intent instead (EditTyped, MenuChosen, a drag's offset), and update works it out from the Model; see Messages carry intent.
  • A header dragged with the pointer reorders within its region; pinning goes through the column menu. On touch the browser's scroll takes the gesture.
  • A column menu opens below its header, inside the scroll container: a grid shorter than the menu clips it.
  • A DateFromString column is CellEditor.Date and edits in a date field. The draft is the local calendar day, YYYY-MM-DD, unless the column's draft returns a string. Committing decodes that text through the schema.
  • A copy's text is drawn with the grid, built once per range and rows, so copying a very large range costs its size each time the range changes.
  • Cells say their value as text unless cell draws them; the Display vocabulary of foldkit-crud arrives with the CRUD adapter in Phase 7.