github olifolkerd/tabulator 3.0.0
Virtual DOM, Extensions, Components and So Much More...

latest releases: 6.2.1, 6.2.0, 6.1.0...
6 years ago

A complete ground up rebuild of Tabulator to make it faster, more feature packed, and more extensible than ever before.

There are a lot of changes in 3.0 so here is a highlight of the updates, checkout the Documentation for full details of all the changes.

Virtual DOM

Tabulator now uses a virtual DOM to render only the rows that are currently visible in the display. This allows the table to process 10,000's of rows with no performance overhead!

For more information checkout the Virtual DOM Documentation

Modular Structure

The Tabulator code base has now been split into core modules and extensions to make it easier to maintain and much more extensible.

The extension modules can be removed as needed to allow you to build your own version of Tabulator including only the extensions you will use.

To make the process of creating your own custom build easier, Tabulator now uses the Gulp task runner.

As a bonus, the new modular structure has exposed even more configuration options that you can customise to personalize your tables.

For more information checkout the Extensions Documentation

Components

One of the biggest changes of this release is the introduction of the component.

Version 2 struggled with many callbacks, each with their own set of arguments that constantly needed updating to match users needs. To simplify this, callbacks are now passed component objects that represent the cells, rows, columns and groups of the table.

Each object has its own set of functions that you can call on it to access DOM elements, get parent components, set values and trigger actions.

Any future functionality needed in callbacks will be added to the components, keeping the argument lists the same, making it easier to move from version to version.

For more information checkout the Components Documentation

SASS Stylesheets

Tabulator is now styled using SASS instead of LESS.

Minified Source Files

Minified JS and CSS files are now available in the /dist/ folder.

Console Logging

To help developers out, Tabulator now produces a wide array of console warnings and errors when you try and make it do something it shouldn't.

New Callbacks

The callback system has been completely overhauled, with components passed into every callback. Existing callbacks have had functionality changes and loads of new callbacks have been created.

For more information checkout the Callback Documentation

Naming Conventions

The naming of configuration options and callbacks in version 2 had become a bit erratic. To help make things more intuative a number of properties and functions have been renamed to follow a standard convention.

Have a look through the documentation to familiarize yourself with the changes.

Remote Sorting and Filtering

The ajaxFiltering and ajaxSorting options now give you the choice of passing filter and sort parameters a remote server to let it do the filtering and sorting instead of Tabulator.

For more information checkout the Ajax Documentation

Empty Table Placeholder

Empty tables can look a bit dull and confuse your users. There is now a placeholder option that lets you add placeholder text or elements to your table to show your users it is supposed to be empty.

For more information checkout the Placeholder Documentation

Excel Downloads

The long awaited ability to download table data as an xlsx file is now available.

For more information checkout the Download Documentation

Improved Sorters and Formatters

Tabulator will now automatically try and guess the appropriate sorter for a column based on its data, without you having to declare it in the column definition array.

Sorters and formatters have all received a bit of a polish to make them eaiser to use, and faster. The updated date and time formatters use the moment.js library to perform even more complex sorting functionality.

For more information checkout the Sorting Documentation and Formatting Documentation

Multiple Filters

You can now apply multiple filters at the same time, as well as independently apply header filters and programmatic filters.

For more information checkout the Filter Documentation

New Editor Functionality

Editors have been completly overhauled, custom editors now have access to the success, cancel and onRendered functions, to make interaction with the table simpler than ever.

The new editable column option allows you to use a callback to check whether a cell should be editable.

For more information checkout the Editors Documentation

Improved Column Resizing

Columns can now be resized from the edge of the column anywhere in the table, rather than just the table header.

For more information checkout the Column Resizing Documentation

Column Widths

The default "fit to data" column width calculations now take column header titles into account so you don't end up with titles with ellipsis when the column data is small.

Additional Paramters

The editorParams, headerFilterParams, mutatorParams and accessorParams column definition properties have been added to allow you to pass additional data into editors, mutators and accessors, allowing for better code reuse and simple configuration.

Row Styling

Styling of rows in the virtual DOM has been fixed. Rows are now assigned a tabulator-row-odd or tabulator-row-even class based on their position in the table.

Data Sanitization

Text based formatters now sanitize data before it is added to the table to prevent HTML and JavaScript injection attacks. To display HTML directly in the cell you can now use the new html formatter.

For more information checkout the Formatting Documentation

Improved Framework Compatibility

A new wrapper has been added around the jQuery widget binding to allow for better compatibility with node.js and Joomla.

IE 11 Compatibility

A number of polyfills have been included in the library to give IE 11 and other older browsers access to all of Tabulators functionality.

Don't miss a new tabulator release

NewReleases is sending notifications on new releases.