react-tabulator
Version:
React Tabulator is based on tabulator - a JS table library with many advanced features.
78 lines (56 loc) • 3.11 kB
Markdown
# react-tabulator
React Tabulator is based on Tabulator - a JS table library with many advanced features. [Link.](https://github.com/olifolkerd/tabulator)
- **NOTE: from v0.16.x (WIP) or later, this uses the latest tabulator-tables v5.x, many cases are not tested yet.**
- Live Demo: [Codesandbox](https://codesandbox.io/s/0mwpy612xw?module=/src/components/Home.js)
- Example code: [/src/ReactTabulatorExample.tsx](/src/ReactTabulatorExample.tsx)
- More Examples, Use cases, FAQ: [More Live Examples / Use cases](/docs/examples.md)
[<img src="docs/react-tabulator-demo.gif" />](https://codesandbox.io/s/0mwpy612xw?module=/src/components/Home.js)
### 🌟 Features
Tabulator's features:
```
Filters Sorting Formatting Grouping Ajax Editing Virtualization
Pagination Themes A11y I18n Layouts Frozen Cols/Rows
Key Binding Responsive Persisting History Calc Validation
Clipboard Tree Layout Nested Tables
```
#### Plus more features:
- React.
- Simple syntax; Import css, themes.
- Typescript, Tslint.
- Jest-puppeteer for testing.
- React Cell Editors: DateEditor, MultiSelectEditor, etc.
- React Cell Formatters: MultiValueFormatter, etc.
- React Filters (TBD).
- For the legacy React 15.x, use: import React15Tabulator.
### 📦 Usage
```
$ npm install react-tabulator --save
import 'react-tabulator/lib/styles.css'; // required styles
import 'react-tabulator/lib/css/tabulator.min.css'; // theme
import { ReactTabulator } from 'react-tabulator';
<ReactTabulator columns={columns} data={data} options={} events={{ rowClick: rowClickHandler }} />
* "options" will be passed directly to Tabulator's options.
* "events" is an object like { eventName: handlerFunction }
* use "ref.table" to access to all tabulator functions.
```
- More Examples, Use cases, FAQ: [More Live Examples / Use cases](/docs/examples.md)
### 🔧 Development - Commands
Require: `NodeJS`
```
$ npm install --legacy-peer-deps install dependencies for development.
$ export NODE_OPTIONS=--openssl-legacy-provider to work with Node 18+
$ export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true to work with ARM if you haven't chromium installed
$ npm run dev Launch DEV mode (with hot reload).
$ npm run build Make a build.
$ npm run test Run tests using jest-puppeteer (with headless Chrome).
```
- Development Doc - see [docs/development.md](docs/development.md)
### 📖 Documentation
- [Change Log](/CHANGELOG.md)
- [Todo / Roadmap](/TODO.md)
### 🙌 Thanks
All contributions are welcome!
- Main library [olifolkerd/tabulator](https://github.com/olifolkerd/tabulator) (Thanks olifolkerd for this great library!)
While you're here, also check out
- [Node-rem](https://github.com/ngduc/node-rem) - Node REM - NodeJS Rest Express MongoDB and more: typescript, passport, JWT, socket.io, HTTPS, HTTP2, async/await, nodemailer, templates, pagination, docker, etc.
- [VSCode - TODO.md Kanban Board](https://marketplace.visualstudio.com/items?itemName=coddx.coddx-alpha) or [TODO.md spec](https://github.com/todomd/todo.md)