Package reference

JavaScript data table and data grid features

Build searchable, sortable, editable tables in JavaScript or TypeScript, with optional Angular, React, and Vue components. Choose the behaviors your application needs and keep state and data flow explicit.

Choose a data table workflow

Searchable tables and column filters

Combine global search with text, select, and numeric column filters. Sort the filtered rows to help users find a record without scanning every page.

Try data table search and filtering →

Editable data grids

Edit a cell, validate the proposed value, and handle the commit in your application. Saving to a database and checking user permissions remain responsibilities of your backend.

Try inline cell editing →

Responsive and mobile data tables

Keep important columns visible on small screens and disclose supporting fields in row details. Premium card view provides a separate table-to-cards layout.

Try responsive table details →

Server-side pagination and filtering

Let an API return the requested page instead of downloading the full dataset. Send sorting and filter state with each request, cancel stale responses, and return the total row count.

Connect a server-side data table →

Virtual scrolling and large datasets

Row virtualization limits rendered rows; it does not reduce the size of data already loaded in memory. Use server-side data for remote datasets, or licensed worker processing for background client-side operations.

Explore large-data worker processing →

Row grouping and aggregation

Group records by a field such as status and show aggregate totals. Expand a group to inspect its rows while keeping the summary visible.

Try data grid grouping and totals →

Checkbox selection and bulk actions

Select rows individually or as a set, then connect the selection to an application action. Stable row IDs keep the selection associated with records as the view changes.

Try row selection and bulk actions →

TypeScript tables for Angular, React, and Vue

Use the same typed table configuration through a native framework wrapper. Follow the framework guides for lifecycle cleanup, controlled state, custom cells, and server requests.

Choose a framework component →
Explore

Find the signal

✓Global search

✓Column filters

✓Advanced filter builder

✓Faceted search panes

✓Multi-column sorting

✓Grouping and aggregation

Operate

Act on the data

✓Row and cell selection

✓Bulk actions

✓Inline editing

✓Column resizing and pinning

✓Row pinning and ordering

✓Clipboard and export buttons

Scale

Stay fast and adaptable

✓Virtualized rendering

✓Server-driven data

✓Responsive details

✓Sticky headers and totals

✓Framework wrappers

✓Theme adapters and CSS variables

One engine, any UI

Use your preferred framework.

The typed core owns data operations and state. The DOM renderer and wrappers adapt that behavior to the interface you already use.

Choose an integration →
wts-data-tabletyped core + rendererAngularReactVueVanilla TS