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-customize-data-table

v1.0.8

Published

A React table component designed to display large data with high performance.

Downloads

5

Readme

react-customize-data-table

A React table component designed to display large data with high performance.

Features

  • 🚀High Performance: Turn on virtual scrolling when the amount of data is large
  • 🎨Customization: Simple and flexible API, rich customization capabilities
  • 💎Useful Properties: Support complex functions such as sorting, searching, pagination, fixed header, left/right lock columns, custom operations, etc.

Example

http://localhost:8000

online example: https://haianweifeng.github.io/react-customize-data-table

Install

npm i react-customize-data-table

Development

Install dependencies,

$ npm i

Start the dev server,

$ npm start

Build documentation,

$ npm run docs:build

Run test,

$ npm test

Build library via father,

$ npm run compile

Usage

import Table from 'react-customize-data-table';

ReactDOM.render(<Table />, container);

API

Table

| Property | Description | Type | Default | | --- | --- | --- | --- | | className | Custom class names for table | string | - | | style | Custom style for table | React.CSSProperties | - | | dataSource | Data record array to be displayed | object[] | - | | columns | Columns of table | ColumnsType<T> | - | | rowKey | Row's unique key, the default value is key | string | ((row: T) => string | number) | key | | striped | Show stripe or not. | boolean | false | | bordered | Whether to show all table borders | boolean | false | | loading | Loading status of table | boolean | React.ReactNode | false | | showHeader | Whether to show table header | boolean | true | | size | Size of table | default | small | large | default | | rowClassName | Row's className | (record: T, index: number) => string | - | | rowStyle | Row's style | ((record: T, index: number) => React.CSSProperties) | React.CSSProperties | - | | cellClassName | custom class names for a cell | ((column: ColumnType<T>, rowIndex: number, colIndex: number) => string) | string | - | | cellStyle | custom style for a cell | ((column: ColumnType<T>, rowIndex: number, colIndex: number) => React.CSSProperties) | React.CSSProperties | - | | headerCellClassName | custom class names for a cell in table header | ((column: ColumnType<T> | ColumnGroupType<T>, rowIndex: number, colIndex: number) => string) | string | - | | headerCellStyle | custom style for a cell in table header | ((column: ColumnType<T> | ColumnGroupType<T>, rowIndex: number, colIndex: number) => React.CSSProperties) | React.CSSProperties | - | | headerRowClassName | custom class names for a row in table header | ((rowIndex: number) => string) | string | - | | headerRowStyle | custom style for a row in table header | ((rowIndex: number) => React.CSSProperties) | React.CSSProperties | - | | onHeaderRowEvents | Set events on per header row | (rowIndex: number) => object | - | | onHeaderCellEvents | Set events on per header cell | (column: ColumnType<T> | ColumnGroupType<T>, rowIndex: number) => object | - | | onRowEvents | Set events on per row | (record: T, rowIndex: number) => object | - | | onCellEvents | Set events on per cell | (record: T, rowIndex: number) => object | - | | pagination | Config of pagination | PaginationProps | - | | empty | Displayed text when data is empty | string | React.ReactNode | - | | locale | The i18n text | LocalType | - | | rowHeight | The expected height of the table row | number | - | | renderMaxRows | Maximum number of rows per render | number | - | | width | The width of the table | number | - | | height | The height of the table. Unit: px / When this prop is set, if the content height is larger then the set value, the header will be fixed at the top. | number | - | | virtualized | Whether to enable the virtual list | boolean | - | | onScroll | The callback function after scrolling. | (x: number, y: number) => void | - | | onColumnResize | columns resize callback | (newWidth: number, oldWidth: number, column: ColumnType<T>, event: Event) => void | - | | rowSelection | Row selection, config | object | - | | onSort | Sort event | (sortResult: { column: ColumnType<T>, order: asc | desc | null, field: string | undefined }) => void | - | | onFilter | Filter event | (filterInfo: Record<React.Key, React.Key[]>) => void | - | | expandable | Config expandable content, config | object | - | | treeProps | Configure tree data properties, config | object | - | | summary | Render footer | { render: () => React.ReactNode; colSpan?: number; rowSpan?: number }[][] | - |

Column

One of the Table columns prop for describing the table's columns, Column has the same API.

| Property | Description | Type | Default | | --- | --- | --- | --- | | type | Set column type | expand | checkbox | radio | default | default | | align | The specify which way that column is aligned | left | center | right | left | | className | The className of this column | string | - | | dataIndex | Display field of the data record | string | - | | key | Unique key of this column, you can ignore this prop if you've set a unique dataIndex | string | - | | fixed | Column fixed If multiple adjacent columns need to be locked, you only need to specify the outermost column, and it will take effect with horizontal scrolling | left | right | - | | render | Renderer of the table cell. The return value should be a ReactNode | (text: any, record: T, index: number) => React.ReactNode | - | | title | Title of this column | React.ReactNode | - | | width | Width of this column | number | string | - | | maxWidth | Maximum column width | number | string | - | | minWidth | Minimum column width | number | string | - | | ellipsis | The ellipsis cell content | boolean | { tooltip: boolean; tooltipTheme?: dark | light; renderTooltip?: (trigger: React.ReactNode, tip: React.ReactNode) => React.ReactNode;} | - | | colSpan | The header columns are merged, when set to 0, no rendering | number | - | | resizable | Whether to allow drag and drop to adjust the width The border attribute needs to be enabled, and for multi-level headers only supports drag and drop to adjust the width of the last level header | boolean | - | | onCell | Set props on per cell | (record: T, rowIndex: number) => { colSpan?: number; rowSpan?: number } | - | | defaultSortOrder | Default order of sorted values | asc | desc | - | | sortOrder | Order of sorted values | asc | desc | null | - | | sorter | Sort function | ((rowA: T, rowB: T) => number) | { compare: (rowA: T, rowB: T) => number; weight: number; } | - | | renderSorter | Customize sort icons | (params: { activeAsc: boolean; activeDesc: boolean; triggerAsc: (event: React.MouseEvent) => void; triggerDesc: (event: React.MouseEvent) => void; }) => React.ReactNode | - | | defaultFilteredValue | Default filtered values | React.Key[] | - | | filteredValue | Controlled filtered value | React.Key[] | - | | filterMultiple | Whether multiple filters can be selected | boolean | - | | filterIcon | Customized filter icon | (filtered: boolean) => React.ReactNode | - | | filterSearch | Whether to be searchable for filter menu | ((value: string, record: FilterMenus) => boolean) | boolean | - | | filters | Filter menu config | { label: string; value: string }[] | - | | filterMethod | Function that determines if the row is displayed when filtered | (value: React.Key, record: T) => boolean | - |

ColumnGroup

Refer to config of column, but ignore dataIndex and type attribute, add children attribute, children is the collection of column configuration attributes.

expandable

Properties for expandable.

| Property | Description | Type | Default | | --- | --- | --- | --- | | columnTitle | Set the title of the expand column | React.ReactNode | - | | columnWidth | Set the width of the expand column | string | number | - | | expandedRowRender | Expanded container render for each row | (record: T, index: number, expanded: boolean) => React.ReactNode | - | | expandedRowClassName | Expanded row's className | (record: T, index: number) => string | - | | rowExpandable | Enable row can be expandable | (record: T) => boolean | - | | defaultExpandAllRows | Expand all rows initially | boolean | false | | defaultExpandedRowKeys | Initial expanded row keys | string[] | number[] | - | | expandedRowKeys | Current expanded row keys | string[] | number[] | - | | expandIcon | Customize row expand Icon | (record: T, expanded: boolean, onExpand?: (expanded: boolean, record: T) => void) => React.ReactNode | - | | onExpand | Callback executed when the row expand icon is clicked | (expanded: boolean, record: T) => void | - |

TreeExpandable

Configuration of tree functions.

| Property | Description | Type | Default | | --- | --- | --- | --- | | indentSize | indent of each level | number | 15 | | treeColumnsName | The name of the column where the icon is expanded | string | - | | defaultExpandAllRows | Expand all rows initially | boolean | false | | defaultExpandedRowKeys | Initial expanded row keys | string[] | number[] | - | | expandedRowKeys | Current expanded row keys | string[] | number[] | - | | expandIcon | Customize row expand Icon | (record: T, expanded: boolean, onExpand?: (expanded: boolean, record: T) => void) => React.ReactNode | - | | onExpand | Callback executed when the row expand icon is clicked | (expanded: boolean, record: T) => void | - |

rowSelection

Properties for row selection.

| Property | Description | Type | Default | | --- | --- | --- | --- | | columnTitle | Set the title of the selection column | React.ReactNode | - | | columnWidth | Set the width of the selection column | string | number | 44px | | getCheckboxProps | Get Checkbox or Radio props | (record: T) => any | - | | renderCell | Renderer of the table cell. Same as render in column | (checked: boolean, record: T, index: number, originNode: React.ReactNode) => React.ReactNode | - | | selectedRowKeys | Controlled selected row keys | string[] | number[] | - | | defaultSelectedRowKeys | Initial selected row keys | string[] | number[] | - | | type | checkbox or radio | checkbox | radio | checkbox | | onChange | Callback executed when selected rows change | (selectedRowKeys: (string | number)[], selectedRows: T[]) => void | - | | onSelect | Callback executed when select/deselect one row | (record: T, selected: boolean, selectedRows: T[], nativeEvent: Event) => void | - | | onSelectAll | Callback executed when select/deselect all rows | (selected: boolean, selectedRows: T[], changeRows: T[]) => void | - |

LocalType

The i18n text for filter。

| Property | Description | Type | Default | | --- | --- | --- | --- | | filterSearchPlaceholder | Filter Search Box Prompts | string | 'Search in filters' | | filterEmptyText | Prompt copy when there is no filter menu | string | 'No filters' | | filterResult | filter search results | string | 'Not Found' | | filterConfirm | filter OK button | string | 'Filter' | | filterReset | filter reset button | string | 'Reset' |