v1.2.0
Fifteen defects, found by putting the shapes a JSON API actually delivers through every feature that reads a value.
Fixed
- Dates. A
Datecell was filtered, sorted and exported by its instant rather than its day, so east of Greenwich a row reading 10 January went unfound by a filter asking for 10 January, and an export wrote the 9th. A plain2026-03-14drew as 13 March west of it. - Quick filter. It searched the value behind the cell, so no formatted column could be found by what it showed. It matches both now, and got faster doing it: 29ms to 6ms per keystroke at 100k rows.
- Percent columns. The filter panel wanted
0.05for a cell reading5%. It takes 5, and stores the ratio. - Editors. A date editor opened empty over a cell holding a
Date, and committing wrote the emptiness back. Pasting42into a number column stored the string. - Set filters could not match a column of
Dateobjects at all, and did not survive a snapshot. - Export called one page "All rows" under
rowModel: 'server'. It says "Loaded rows", andonExportAllpoints the item at your own endpoint. - Enter no longer turns the page when it commits the last row of one.
- Edit chrome. A row edit drew a box inside a box, and the row separator painted over the ring of the cell editor it rings.
Changed
- Sorting, at 100k rows: 73ms to 18ms by number, 386ms to 265ms by string.
- Wide grids. Every column rendered until the container was measured. 2,000 columns mounted in 2.3s, now 37ms; 20,000 mounts in 304ms.
- Locale packs layer over English, so a pack of five strings works and a new label breaks nobody.
- The server request carries
nullsandquickFields, which a backend cannot otherwise know.
Full detail in CHANGELOG.md.