1.14.5 • Published 4 months ago

@vincjo/datatables v1.14.5

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

Presentation

This lib provides an API to dynamically interact with iterable data on the client-side: filtering, paging, sorting, selecting...

  • Headless by design
  • Typescript support
  • SSR friendly
  • no dependencies

Also provides some showcase components, which you can grab and customize in your own project.

:globe_with_meridians: Live examples

:satellite: Server-side data processing

Support for server-side pagination, sort, filters is located in @vincjo/datatables/remote namespace.

Basic usage | Examples

Install

npm i -D @vincjo/datatables

Sample code

<script lang="ts">
    import { DataHandler } from '@vincjo/datatables'
    import { someData } from './data'

    const handler = new DataHandler(someData, { rowsPerPage: 50 })
    const rows = handler.getRows()
</script>

<table>
    <thead>
        <tr>
            <th>First name</th>
            <th>Last name</th>
        </tr>
    </thead>
    <tbody>
        {#each $rows as row}
            <tr>
                <td>{row.first_name}</td>
                <td>{row.last_name}</td>
            </tr>
        {/each}
    </tbody>
</table>

:globe_with_meridians: See full documentation

DataHandler methods

getRows(): Readable<Row[]>
setRows( data: Row[] ): void
sort( orderBy: Field<Row> ): void
sortAsc( orderBy: Field<Row> ): void
sortDesc( orderBy: Field<Row> ): void
getSort(): Writable<(Sort<Row>)>
applySort( params: { orderBy?: Field<Row>, direction?: 'asc' | 'desc'} = null ): void
defineSort( params: { orderBy?: Field<Row>, direction?: 'asc' | 'desc'} = null ): void
clearSort(): void
filter( value: string, filterBy: Field<Row>, comparator: Comparator<Row> ): void
clearFilters(): void
getFilterCount(): Readable<number>
search( value: string, scope?: Field<Row>[] ): void
clearSearch(): void
getRowsPerPage(): Writable<number | null>
getRowCount(): Readable<{ total: number; start: number; end: number; }>
getPages( param: { ellipsis: boolean } ): Readable<number[]>
getPageCount(): Readable<number>
getPageNumber(): Readable<number>
setPage( value: number | ‘previous’ | ‘next’ ): void
select(value: Row[] | (Row[keyof Row])[]): void
getSelected(): Writable<Row[] | (Row[keyof Row])[]>
selectAll(params: { selectBy?: keyof Row, scope?: 'all' | 'currentPage' } = { scope: 'all' }): void
isAllSelected(): Readable<boolean>
on(event: 'change' | 'clearFilters' | 'clearSearch', callback: () => void)
1.14.5

4 months ago

1.14.4

4 months ago

1.14.3

4 months ago

1.14.2

5 months ago

1.14.1

5 months ago

1.12.3

10 months ago

1.14.0

6 months ago

1.12.2

10 months ago

1.12.1

10 months ago

1.12.0

10 months ago

1.12.7

8 months ago

1.10.9

11 months ago

1.12.6

8 months ago

1.10.8

11 months ago

1.12.5

8 months ago

1.12.4

9 months ago

1.12.8

7 months ago

1.11.0

11 months ago

1.13.1

6 months ago

1.11.3

10 months ago

1.13.0

6 months ago

1.11.2

10 months ago

1.11.1

10 months ago

1.10.5

11 months ago

1.10.4

11 months ago

1.10.3

11 months ago

1.10.2

12 months ago

1.10.7

11 months ago

1.10.6

11 months ago

1.9.1

12 months ago

1.8.2

12 months ago

1.9.0

12 months ago

1.9.5

12 months ago

1.9.4

12 months ago

1.9.3

12 months ago

1.9.2

12 months ago

1.10.1

12 months ago

1.10.0

12 months ago

1.7.2

1 year ago

1.7.1

1 year ago

1.7.0

1 year ago

1.6.1

1 year ago

1.5.2

1 year ago

1.6.0

1 year ago

1.5.1

1 year ago

1.5.0

1 year ago

1.4.1

1 year ago

1.4.0

1 year ago

1.3.0

1 year ago

1.2.0

1 year ago

1.1.0

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

0.9.991

1 year ago

0.9.992

1 year ago

0.9.993

1 year ago

0.9.994

1 year ago

0.9.995

1 year ago

0.9.99

1 year ago

0.9.98

1 year ago

0.9.97

1 year ago

0.9.96

1 year ago

0.9.95

1 year ago

0.9.94

1 year ago

0.9.93

1 year ago