Repository navigation
The largest release the grid has had: sixteen feature modules, nine parts to draw them with, and a second entry point for writing spreadsheets. Every module is opt-in, and a build test proves a feature you do not register is code your bundle never sees.
Upgrading from 1.x is four behaviour changes, each with the diff that fixes it, in MIGRATING.md.
Added
- Grouping by any number of columns, thirteen aggregators, footers and a grand total
- Show values as a share of the grand total, the parent group or the row
- Tree data from nested children or a parent id, and a detail panel under any row
- Calculated columns from an expression: 31 functions, a dependency graph, no
eval - A filter builder for nested
(A AND B) OR C, beside the column filters - Excel-style cell ranges: multiple selections, a fill handle, cut and move, HTML clipboard
- Find and replace across the rows a filter left
- Conditional formatting: colour scales, data bars, duplicates, top N, expression rules
- An import wizard for CSV, TSV, XLSX and the clipboard, staged in the grid to fix in place
- Saved views, and a link that carries the whole grid state
- Value masking at render, export, clipboard, search, facet and edit
- A server row model fetching by page or by block, and a worker row model that filters off the main thread
- A command palette behind
Ctrl/Cmd+K @sv5ui/datagrid/xlsx: real workbooks with styles, Excel's own conditional rules and formula cells, written in chunksGridFeature.componentandGridFeature.rowCountas extension points;GridState.statusandgrid.filteredNodeson the grid- 147 more label keys and 66 more slots, in all twelve languages
Changed
- Breaking.
DataGridLabelsgains 147 required members;DataGridLabelsInput, the type an app normally passes, is unaffected - Breaking.
neqon a number column keeps a blank cell, asnotEqualon text always has - Breaking. A typed column draws text it cannot parse instead of an empty cell
- The loading skeleton gives its cells
role="gridcell"
Fixed
Five in code 1.3.1 already ships:
- The footer no longer runs page numbers together on a grid of many pages
gateReadercomposes readers once per pass: 15,000 compositions became three- A boolean column no longer draws a tick for the string
false - A height on a non-virtual
DataGridholds the rows inside it - A typed column no longer swallows text it cannot parse
And the rest in the new modules, found while the documentation was written against them: a column with an accessor shows what a feature computed for it, the status bar and the screen reader agree on how many rows a filter left, a server hierarchy is a treegrid, a saved view asks the server once, and Find's next match scrolls into view on any grid.
Every change has its paragraph and its reasoning in the CHANGELOG.