npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-datatable-responsive

v1.0.12

Published

It's a datatable component on React. It comes with features like filtering, search, view/hide columns, export to excel file, printing, sorting, selectable rows, pagination, and responsible for mobile/tablet device. On top of the ability to put component,

Downloads

78

Readme

React DataTable Responsive

NPM Downloads npm package minimized gzipped size NPM Version

react-datatable-responsive

It's a datatable component on React. It comes with features like filtering, search, view/hide columns, export to excel file, printing, sorting, selectable rows, pagination, and responsible for mobile/tablet device. On top of the ability to put component, textbox, checkbox, button, img, ... in cells.

Features:

  • filtering
  • search
  • view/hide columns
  • export to excel file
  • printing
  • sorting
  • selectable rows
  • pagination
  • responsible for mobile/tablet
  • resizable columns
  • component, textbox, checkbox, button, img, and ... in cells

component

Table of contents

Install

npm i react-datatable-responsive

Usage

simple table

import ReactDataTable from 'react-datatable-responsive';
import { ColumnType } from 'react-datatable-responsive';

const columns: ColumnType[] = [
  { field: { title: 'title' }, label: 'Title' },
  { field: { title: 'price' }, label: 'Price' },
  { field: { title: 'category' }, label: 'Category' },
]

const data = [
  { title: "Fjallraven - Foldsack No. 1 Backpack, Fits 15 Laptops", price: 109.95, category: "men's clothing"},
  { title: "Mens Casual Premium Slim Fit T-Shirts ", price: 22.3, category: "men's clothing"},
  { title: "Mens Cotton Jacket", price: 55.99, category: "men's clothing"},
]

export default function Example() {
  return (
    <ReactDataTable rows={data} columns={columns} />
  )
}

custemized columns

import ReactDataTable from 'react-datatable-responsive';
import { ColumnType } from 'react-datatable-responsive';

const columns: ColumnType[] = [
  { field: { title: 'id' }, label: 'ID', options: { display: false } },
  { field: { title: 'title' }, label: 'Title', options: { sort: true } },
  { field: { title: 'price' }, label: 'Price', options: { filter: false, sort: true } },
  { field: { title: 'category' }, label: 'Category', options: { search: false } },
]

const data = [
  { id:1, title: "Fjallraven - Foldsack No. 1 Backpack, Fits 15 Laptops", price: 109.95, category: "men's clothing"},
  { id:2, title: "Mens Casual Premium Slim Fit T-Shirts ", price: 22.3, category: "men's clothing"},
  { id:3, title: "Mens Cotton Jacket", price: 55.99, category: "men's clothing"},
]

export default function Example(): React.JSX.Element {
  return (
    <ReactDataTable rows={data} columns={columns} />
  )
}

nested objects

import ReactDataTable from 'react-datatable-responsive';
import { ColumnType } from 'react-datatable-responsive';

const columns: ColumnType[] = [
  { field: { title: 'id' }, label: 'ID', options: { display: false } },
  { field: { title: 'firstName' }, label: 'First Name' },
  { field: { title: 'account.username' }, label: 'Username' },
  { field: { title: 'address.home.street' }, label: 'Home Street' },
]

const data = [
  { id:1, firstName:"Anna", account:{username:"annauser"}, address:{home:{street:"24"}}},
  { id:2, firstName:"Lena", account:{username:"lenauser"}, address:{home:{street:"24"}}},
]

export default function Example(): React.JSX.Element {
  return (
    <ReactDataTable rows={data} columns={columns} />
  )
}

API

ReactDataTable

The component accepts the following props:

|Name|Type|Description |:--:|:-----|:-----| |direction|lrt | rtl | inherit|Direction used to describe direction of table. |columns|array|Columns used to describe table. Must be either an array of simple strings or objects describing a column. (This field is required) |rows|array|Rows used to describe table. Must be either an array containing objects of key/value pairs. (This field is required) |options|object|Options used to describe table.

Table Options

|Name|Type|Default|Description |:--:|:-----|:--|:-----| |cells|object||User provided items in cells. Example |color|object||User provided colors to customized table. Example |download|boolean|true|Show/hide download icon from toolbar. Possible values:true: Button is visible and clickable.false: Button is not visible. |filter|boolean|true|Show/hide filter icon from toolbar. Possible values:true: Button is visiable and clickable.false: Button is not visible. |onRowClick|function||Callback function that triggers when a row is clicked. function(rowData: any) => void |onRowsDelete|function||Callback function that triggers when row(s) are deleted. function(rowsDeleted: any[]) => void |pagination|boolean|true|Show/hide pagination. |print|boolean|true|Show/hide print icon from toolbar. Possible values:true: Button is visiable and clickable.false: Button is not visible. |resizableColumns|boolean|true|Enable/disable resizable columns. |responsive|boolean|true|Enable/disable responsive table. |rowsPerPage|number|10|Number of rows allowed per page. |rowsPerPageOptions|array|[5,10,20,50,100]|Options to provide in pagination for number of rows a user can select. |search|boolean|true|Show/hide search icon from toolbar. Possible values:true: Button is visiable and clickable.false: Button is not visible. |searchPlaceholder|string||Search text placeholder. |selectableRowsHideCheckboxes|boolean|false|Hides the checkboxes that appear when selectableRows is set to "multiple" or "single". Can provide a more custom UX, especially when paired with selectableRowsOnClick. |textLabels|object||User provided labels to localize text. |viewColumns|boolean|true|Show/hide viewColumns icon from toolbar. Possible values:true: Button is visiable and clickable.false: Button is not visible.

CSS Classes

These class names are useful for styling with CSS. They are applied to the component.

|Name|Description |:--:|:-----| |rdtdatatable|Styles applied to the data table| |rdtmenu-main|Styles applied to the menu box| |rdtmenu-select|Styles applied to the select menu box| |rdtmenu-title|Styles applied to the caption table| |rdtfilter|Styles applied to the filter box| |rdtfilter__title|Styles applied to the title of the filter box| |rdtfilter-item|Styles applied to the filter items box| |rdtfilter-column|Styles applied to the columns select tag | |rdtfilter-column__option|Styles applied to options of the columns select tag| |rdtfilter-condition|Styles applied to the conditions select tag| |rdtfilter-condition__option|Styles applied to options of conditions select tag| |rdtfilter-item__text|Styles applied to the input on the filter box| |rdtfilter__add|Styles applied to the add button on the filter box| |rdtfilter-list|Styles applied to the filter list box| |rdtfilter-list__li|Styles applied to the filter list item| |rdtfilter-list__remove|Styles applied to the remove button on filter list item| |rdtsearch|Styles applied to the search box| |rdtsearch__input|Styles applied to the input on search box| |rdtsearch__close|Styles applied to the close button on search box| |rdtshowcolumn|Styles applied to the show column box| |rdtshowcolumn__title|Styles applied to the caption show column box| |rdtshowcolumn__li|Styles applied to the list columns on show column box| |rdtshowcolumn__label|Styles applied to the label list columns on show column box| |rdttable|Styles applied to the table| |rdttable-nodata|Styles applied to the no data alert| |rdttable-header__label|Styles applied to the header label| |rdtcell-input|Styles applied to the input in cells| |rdtcell-textarea|Styles applied to the textarea in cells| |rdtcell-image|Styles applied to the image in cells| |rdtcell-checkbox|Styles applied to the checkbox in cells| |rdtcell-text|Styles applied to the text in cells| |rdtcell-progress|Styles applied to the progress in cells| |rdtcell-select|Styles applied to the to select in cells| |rdtcell-select__option|Styles applied to options in select| |rdtcell-button|Styles applied to the button in cells| |rdtpagination|Styles applied to the pagination box| |rdtpagination-pages|Styles applied to the number pagination box| |rdtpagination-pages__no|Styles applied to the number pagination| |rdtpagination-pages__no--select|Styles applied to the current page no| |rdtpagination-per-page|Styles applied to the per page select|

Customize Columns

On each column object, you have the ability to customize columns to your liking with the 'options' property. Example:

const columns = [
 {
  name: "Name",
  options: {
   filter: true,
   sort: false,
   ...
  }
 },
 ...
];

Column:

|Name|Type|Description |:--:|:-----|:-----| |field|object|Title of column (This field is required) and function to handle cell event |label|string|Column Header Name (This field is required) |kind|input/textbox | input/date | input/datetime-local | input/number | input/file | input/password | textarea | button | image | boolean | select | progress | component,|kind of column |options|object|Options for customizing column |eventHandlerHeader|function|function to handle column event

Column Options:

|Name|Type|Default|Description |:--:|:-----|:--|:-----| |component|function||Function that returns a React component. Used to display data within all table cells of a given column. Example |display|boolean|true|Display column in table. Possible values:true: Column is visible and toggleable via the View Columns popover in the Toolbar.false: Column is not visible but can be made visible via the View Columns popover in the Toolbar. Example |filter|boolean|true|Display column in filter list.Example |search|boolean|true|Exclude/include column from search results.Example |sort|boolean|false|Enable/disable sorting on column.Example

Options

Change default options

const defaultOptions {
  color: {
    color: '#000',
    backgroundColor: '#fff',
    borderColor: '#ddd'
  },
  download: true,
  filter: true,
  print: true,
  search: true,
  viewColumns: true,
  pagination: true,
  resizableColumns: true,
  responsive: true,
  rowsPerPage: 10,
  rowsPerPageOptions: [5, 10, 20, 50, 100],
  searchPlaceholder: '',
  selectableRowsHideCheckboxes: false,
  cells: {
    imageWidth: 60,
  },
  textLabels: {
    body: {
      title: '',
      noMatch: "Sorry, no data found",
      toolTip: "Sort",
    },
    ...
  }
}

License

The files included in this repository are licensed under the MIT license.