Skip to content

v0.10.0 — annotations at a million, scrolling gutters, a new demo

Latest

Choose a tag to compare

@jeyabbalas jeyabbalas released this 11 Oct 10:24
9f27cad

Highlights

  • Annotations at a million. A table holds a million annotations:

    • lookups take microseconds;
    • a scroll step stays within 2 ms of the same table without annotations;
    • a save writes the annotations only when they change.

    F8 / Shift+F8 (or Alt+↓ / Alt+↑) go from one annotation to the next, and actions.showAnnotatedRows() shows only the rows that have any.

  • Gutters that scroll. Hidden columns sit in one row of chips that scrolls sideways, as active filters do, so hiding hundreds of columns no longer takes the table's height. Both rows glide to the chips a change adds.

  • A new demo. The demo opens on the table, reads Excel workbooks, and lists every key and gesture on a Shortcuts page. The examples share its look.

Upgrading

Most integrations upgrade with a version bump. These cases can break one:

  • A stylesheet that styles the filter bar or the hidden-columns gutter by their structure. Their buttons moved into the rows' new scrollers, .dt-filter-scroll and .dt-hidden-scroll.
  • A TypeScript switch exhaustive over filter.type. It needs a case for the new 'annotated' filter.
  • Code that relies on the old annotation behaviour:
    • code that reads getByCell for a whole row or column: it now returns the exact intersection at one cell;
    • code that asserts on annotation events: loadJSON(file, 'replace') fires cleared, then added;
    • running 0.9 against sessions 0.10 saved: annotations now persist in a second IndexedDB database, dt-annotations, and 0.9 restores those sessions without them.

The 0.9 → 0.10 migration guide walks through each of these, and lists the other behaviour changes upgraders may notice.

Known issues

  • Two tabs writing at once. Two tabs that write the same table's annotations at the same moment can lose them. Otherwise the last tab to write wins.
  • Deep sorted jumps. An F8 jump that has to query DuckDB, deep in a sorted ten-million-row view, takes about a second. A jump among the rows the grid holds takes milliseconds.
  • 0.9.0's known issues still apply. Nothing in 0.10.0 changes them: the icu extension needed offline, a seventh fractional-second digit in CSV and JSON, and the chart and brush issues listed in the v0.9.0 notes.

Full list of changes: CHANGELOG.md.