Table Sorter

Table with sorting, searching, selecting capabilities

Anna

3/4/1970

Analyst

Bernard

5/8/1980

Bookkeeper

Claire

7/12/1972

CEO

Daniel

3/24/1946

Developer

Emma

8/1/1947

Economist

Frank

12/14/1978

Freelancer

Gwyneth

2/4/1992

Geographer

Howard

10/19/2001

HR head

Iva

7/12/1925

Investor

John

4/2/1994

Journalist

6 element valgt

Viser 1-10 av 25 element

<TableSorter
  items={[
    { key: '01', name: 'Anna', date: new Date(1970, 2, 4), type: 'Analyst' , selected: true },
     { key: '02', name: 'Bernard', date: new Date(1980, 4, 8), type: 'Bookkeeper', disabled: true },
     { key: '03', name: 'Claire', date: new Date(1972, 6, 12), type: 'CEO' },
     { key: '03', hasSubrows: true, openSubrows: false, name: 'Claire', date: new Date(1972, 6, 12), type: 'CEO' },
     { key: '03_01', parentKey: '03', name: 'Charles', date: new Date(1970, 2, 4), type: 'co-CEO', selected: true },
     { key: '03_02', parentKey: '03', name: 'Chad', date: new Date(1970, 2, 4), type: 'co-CEO', selected: false },
     { key: '03_03', parentKey: '03', name: 'Christine', date: new Date(1970, 2, 4), type: 'co-CEO', selected: false },
     { key: '04', name: 'Daniel', date: new Date(1946, 2, 24), type: 'Developer' },
     { key: '05', name: 'Emma', date: new Date(1947, 7, 1), type: 'Economist' , selected: true },
     { key: '06', name: 'Frank', date: new Date(1978, 11, 14), type: 'Freelancer' },
     { key: '07', name: 'Gwyneth', date: new Date(1992, 1, 4), type: 'Geographer' },
     { key: '08', name: 'Howard', date: new Date(2001, 9, 19), type: 'HR head' , disabled: true },
     { key: '09', name: 'Iva', date: new Date(1925, 6, 12), type: 'Investor' , selected: true },
     { key: '10', name: 'John', date: new Date(1994, 3, 2), type: 'Journalist' },
     { key: '11', name: 'Karen', date: new Date(1999, 9, 22), type: 'Knowledge engineer' },
     { key: '12', name: 'Leonard', date: new Date(1991, 10, 26), type: 'Lawyer' },
     { key: '13', name: 'Mary', date: new Date(1962, 10, 25), type: 'Marketing' },
     { key: '14', name: 'Neville', date: new Date(1983, 1, 22), type: 'Nurse' },
     { key: '15', name: 'Olivia', date: new Date(1992, 7, 2), type: 'Operations manager' , selected: true },
     { key: '16', name: 'Peter', date: new Date(1927, 6, 13), type: 'Project manager' },
     { key: '17', name: 'Quincey', date: new Date(1965, 3, 11), type: 'Quality control' },
     { key: '18', name: 'Ronald', date: new Date(1982, 8, 18), type: 'Realtor' , disabled: true },
     { key: '19', name: 'Sally', date: new Date(1942, 8, 20), type: 'Sales manager' },
     { key: '20', name: 'Ted', date: new Date(1968, 3, 22), type: 'Tester' },
     { key: '21', name: 'Uma', date: new Date(1985, 9, 17), type: 'UI expert' , selected: true },
     { key: '22', name: 'Victor', date: new Date(2012, 12, 13), type: 'Video editor' },
     { key: '23', name: 'Wanda', date: new Date(1947, 2, 2), type: 'Web designer', disabled: true  },
     { key: '24', name: 'Xavier', date: new Date(1932, 7, 5), type: 'XML developer' },
     { key: '25', name: 'Yvonne', date: new Date(1993, 2, 28), type: 'Yoga instructor' },
     { key: '26', name: 'Ziggy', date: new Date(1929, 1, 14), type: 'Zoo keeper' }
   ]}
   itemsPerPage={ 10 }
   loading={ false }
   animatable={ true }
   searchable={ true }
   selectable={ true }
   sortable={ true }
   striped={ true }
   summary={ true }
   compact={ false }
   sort=
   columns={[
     {id: 'name', label: 'Name', type: 'string', filterText: '' },
     {id: 'date', label: 'Date', type: 'date', filterText: '' },
     {id: 'type', label: 'Occupation', type: 'string', filterText: '',
       renderCell: (item, value) => <EtikettLiten>{value}</EtikettLiten>
     }
   ]}/>

Component import

import TableSorter from 'tabell'

React props

PropertyTypeRequiredDescriptionDefault
animatablebooleanfalseAnimate rowstrue
classNamestringfalseAdditional classnames-
compactbooleanfalseBoolean for less padding on the cells (from 1rem to 0.35rem).-
contextobjectfalseOptional context params to be passed when adding callback functions to cell elements-
columnsarrayfalseList with column data. Elements should be objects with keys id, label, type, filterText, defaulsSortOrder[]
highContrastbooleanfalseHigh contrast mode.false
itemsarrayfalseList with row data. List elements should be objects where keys match a given column id.[]
itemsPerPagenumberfalseIf pagination is true, sets the number of items per page.10
initialPagenumberfalseIf pagination is true, set the initial page to be seen (default is 1)1
labelsobjectfalseTranslation object with labels, if you want to override the default labels.
loadingbooleanfalseLoading spinner, useful for lazy data fetch.false
onColumnSortfunctionfalseCallback function after sorting column is performed-
onRowSelectChangefunctionfalseCallback function when selection mode of at least one row changes. The table items are returned as param-
paginationbooleanfalseTurns pagination on the table, to keep big tables in a manageable size.true
searchablebooleanfalseAdds a search icon that allows row search fields to showtrue
selectablebooleanfalseRenders a first column with checkboxes that trigger the onRowSelectChange callback functionfalse
sortablebooleanfalseAllow sortable table headerstrue
sortobjectfalseInitial sorting information.{ column: '', order: '' }
stripedbooleanfalseUse striped rowstrue
summarybooleanfalseDisplays a total selected elements and extended pagination info, if truefalse