Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More โ†’
Socket
Sign inDemoInstall
Socket

ka-table

Package Overview
Dependencies
Maintainers
1
Versions
194
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ka-table

[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/komarovalexander/ka-table/blob/master/LICENSE) [![Build Status](https://travis-ci.com/komarovalexander/ka-table.svg?token=9QUEx9r7MWqF44f9VDer&branch=dev)](https://

  • 1.0.3
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
5.9K
increased by92.83%
Maintainers
1
Weekly downloads
ย 
Created
Source

GitHub license Build Status

Overview

The customizable, extendable, lightweight (~50kb for js or ts scripts) and free React Table Component

Can easily be included in react projects, never mind it is ts or js

Table Demo link

Examples

Command Column - Functional columns which are not bound to data and used to add custom command to table

Custom Cell - Best way to customise look of every column in table

Custom Editor - Table supports user created editors

Custom Header Cell - Customisation of header cell

Editing - Editing out of the box

Events - Most events are trackable

Filter Extended - Easy filtered by extended filters

Filter Row - Built-in filter row

Filter Row - Custom Editor - Customise filter cell every way you want

Grouping - Group data for most convenient work with it

25000 Rows - Virtualisation are supported

10000 Grouped Rows - Virtualisation work well with grouping

Search - Search by the whole Table is easy

Selection - Select and process specific rows

Sorting

Validation

Installation

npm

npm install ka-table

yarn

yarn add ka-table

Usage

A basic example

import React, { useState } from 'react';

import { ITableOption, Table } from 'ka-table';
import { DataType, SortDirection, SortingMode } from 'ka-table/enums';
import { OptionChangeFunc } from 'ka-table/types';

const dataArray: any[] = [
  { id: 1, name: 'Mike Wazowski', score: 80, passed: true },
  { id: 2, name: 'Billi Bob', score: 55, passed: false },
  { id: 3, name: 'Tom Williams', score: 45, passed: false },
  { id: 4, name: 'Kurt Cobain', score: 75, passed: true },
  { id: 5, name: 'Marshall Bruce', score: 77, passed: true },
  { id: 6, name: 'Sunny Fox', score: 33, passed: false },
];

const tableOption: ITableOption = {
  columns: [
    {
      dataType: DataType.String,
      key: 'name',
      sortDirection: SortDirection.Descend,
      style: { width: '33%' },
      title: 'Name',
    },
    { key: 'score', title: 'Score', style: { width: '10%' }, dataType: DataType.Number },
    { key: 'passed', title: 'Passed', dataType: DataType.Boolean },
  ],
  rowKeyField: 'id',
  sortingMode: SortingMode.Single,
};

const SortingDemo: React.FC = () => {
  const [option, changeOptions] = useState(tableOption);
  const onOptionChange: OptionChangeFunc = (value) => {
    changeOptions({...option, ...value });
  };
  return (
    <Table
      {...option}
      data={dataArray}
      onOptionChange={onOptionChange}
    />
  );
};

export default SortingDemo;

Demo link

API

Table

Properties

NameTypeDescription
columnsColumn[]Columns in table and their look and behaviour
dataany[]The data which is shown in Table's rows
editableCellsCell[]This property contains the array of cells which are being edited
editingModeEditingModeSets the table's editing mode
filterRowFilterCondition[]Sets filters for columns
groupsGroup[]Group's in the table
groupsExpandedany[][]Contains groups which are expanded in the grid
rowKeyFieldstringProperty of data's item which is used to identitify row
search stringSpecifies the text which should be found in the data
selectedRowsany[]Specifies the array of rows keys which are should be marked as selected
sortingModeSortingModeSorting mode
virtualScrollingVirtualScrollingVirtual scrolling options - set it as empty object {} to enable virtual scrolling and auto calculate its parameters

Column

Describes column of table its look and behaviour Properties

NameTypeDescription
cellCellFuncReturns a custom cell if it is not in editable mode
dataTypeDataTypeSpecifies the type of column
editorEditorFuncReturns an editor if cell is in editable mode
filterCellEditorFuncReturns an editor for filter row cell
fieldstringSpecifies the property of data's object which value will be used in column, if null value from key option will be used
formatFormatFuncReturns formated cell string
headCellHeaderCellFuncReturns a custom header cell
isEditablebooleanSpecifies can column be editable or not
keystringMandatory field, specifies unique key for the column
searchSearchFuncOverrides the default search method for the cell. Executes if Table.search option is set
sortDirectionSortDirectionSets the direction of sorting for the column
styleReact.CSSPropertiesSets the style options of the elements
titlestringSpecifies the text of the header
validationValidationFuncReturns the validation error string or does not return anything in case of passed validation

Cell

Describes the position of a cell in the table

Properties

NameTypeDescription
fieldstringThe field of
specific column
rowKeyValueanyData's key value of ะตั€ัƒ specific row

FilterCondition

Properties

NameTypeDescription
fieldstringThe filtered column's field
operatorstringOperator which will be applied for filtering
valueanyFiltered value

Group

Properties

NameTypeDescription
fieldstringThe grouped column's field

VirtualScrolling

Properties

NameTypeDescription
scrollPositionnumberCurrent scroll top position
itemHeight((data: any) => number) | numberReturns height of specific row
tbodyHeightnumbertbody height

DataType

PropertyString value
Boolean'boolean'
Date'date'
Number'number'
Object'object'
String'string'

EditingMode

PropertyString valueDescription
None'none'Editing is disabled
Cell'cell'Data is edited by cell to cell, click by cell activates editing

SortDirection

PropertyString value
Ascend'ascend'
Descend'descend'

SortingMode

PropertyString value
None'none'
Single'single'

CellFunc

(props: ICellContentProps) => any;

Function which obtains ICellContentProps as parameter and returns React component which should be shown instead of cell content.

EditorFunc

(props: ICellEditorProps) => any;

Function which obtains ICellEditorProps as parameter and returns React component which should be shown instead of default editor.

FormatFunc

(value: any) => any;

Function which obtains value as parameter and returns formated value which will be shown in cell.

SearchFunc

(searchText?: string, rowData?: any, column?: Column) => boolean;

Function which obtains searchText?: string, rowData?: any, column?: Column - as parameters and returns boolean value which is true if cell's value is matched with searched value and false otherwise.

ValidationFunc

(value: any, rowData: any) => string | void;

Function which obtains value of specific cell and row - as parameters and returns validation error string or does not return anything in case of passed validation.

ICellEditorProps

Properties

NameTypeDescription
columnColumnsettings of the column in which editor is shown
rowDataanydata of the row in which editor is shown
close() => voidcall this method to close editor
onValueChange(newValue: any) => voidcall this method to change value of the row: onValueChange({ ...rowData, ...{ [field]: value } })

ICellEditorProps

Properties

NameTypeDescription
columnColumnsettings of the column in which editor is shown
openEditor() => voidcall this method to open editor of the cell
rowDataanydata of the row in which editor is shown

Keywords

FAQs

Package last updated on 14 Dec 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with โšก๏ธ by Socket Inc