@bsol-oss/react-datatable5 1.0.16 → 1.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -8
- package/dist/index.d.ts +12 -2
- package/dist/index.js +59 -8
- package/dist/index.mjs +60 -10
- package/dist/types/components/DataTable.d.ts +2 -10
- package/dist/types/components/DataTableServer.d.ts +19 -0
- package/dist/types/index.d.ts +1 -0
- package/package.json +1 -1
- package/dist/types/stories/CardViewShowcase.d.ts +0 -2
- package/dist/types/stories/DataTable.stories.d.ts +0 -14
- package/dist/types/stories/TablePinningShowcase.d.ts +0 -2
- package/dist/types/stories/TableViewShowcase.d.ts +0 -2
package/README.md
CHANGED
|
@@ -32,17 +32,22 @@ npm install @tanstack/react-table @chakra-ui/react @bsol-oss/react-datatable5
|
|
|
32
32
|
columns={columns}
|
|
33
33
|
url={"http://localhost:8333/api/v1/gpt/chat/history/all"}
|
|
34
34
|
>
|
|
35
|
-
<
|
|
36
|
-
|
|
37
|
-
<
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
35
|
+
<Flex gap="0.25rem">
|
|
36
|
+
<TablePagination />
|
|
37
|
+
<ButtonGroup isAttached>
|
|
38
|
+
<EditViewButton />
|
|
39
|
+
<EditFilterButton />
|
|
40
|
+
<EditSortingButton />
|
|
41
|
+
</ButtonGroup>
|
|
42
|
+
<EditOrderButton />
|
|
43
|
+
<PageSizeControl />
|
|
44
|
+
<ButtonGroup isAttached>
|
|
45
|
+
<TableSelector />
|
|
46
|
+
</ButtonGroup>
|
|
47
|
+
</Flex>
|
|
42
48
|
<TableCardContainer>
|
|
43
49
|
<TableCards />
|
|
44
50
|
</TableCardContainer>
|
|
45
|
-
<PageSizeControl />
|
|
46
51
|
<TablePagination />
|
|
47
52
|
</DataTable>
|
|
48
53
|
```
|
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,16 @@ import { ReactNode } from 'react';
|
|
|
5
5
|
import * as _tanstack_table_core from '@tanstack/table-core';
|
|
6
6
|
|
|
7
7
|
interface DataTableProps<T> {
|
|
8
|
+
children: JSX.Element | JSX.Element[];
|
|
9
|
+
data: T[];
|
|
10
|
+
columns: ColumnDef<T, any>[];
|
|
11
|
+
enableRowSelection?: boolean;
|
|
12
|
+
enableMultiRowSelection?: boolean;
|
|
13
|
+
enableSubRowSelection?: boolean;
|
|
14
|
+
}
|
|
15
|
+
declare const DataTable: <TData>({ columns, data, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, children, }: DataTableProps<TData>) => react_jsx_runtime.JSX.Element;
|
|
16
|
+
|
|
17
|
+
interface DataTableServerProps<T> {
|
|
8
18
|
children: JSX.Element | JSX.Element[];
|
|
9
19
|
url: string;
|
|
10
20
|
columns: ColumnDef<T, any>[];
|
|
@@ -20,7 +30,7 @@ interface DataResponse<T> extends Result<T> {
|
|
|
20
30
|
count: number;
|
|
21
31
|
filterCount: number;
|
|
22
32
|
}
|
|
23
|
-
declare const
|
|
33
|
+
declare const DataTableServer: <TData>({ columns, url, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, children, }: DataTableServerProps<TData>) => react_jsx_runtime.JSX.Element;
|
|
24
34
|
|
|
25
35
|
declare const EditViewButton: () => react_jsx_runtime.JSX.Element;
|
|
26
36
|
|
|
@@ -92,4 +102,4 @@ interface TextCellProps {
|
|
|
92
102
|
}
|
|
93
103
|
declare const TextCell: ({ label, children }: TextCellProps) => react_jsx_runtime.JSX.Element;
|
|
94
104
|
|
|
95
|
-
export { type DataResponse, DataTable, type DataTableProps, EditFilterButton, EditSortingButton, EditViewButton, PageSizeControl, type PageSizeControlProps, type PaginationProps, ResetFilteringButton, ResetSortingButton, type Result, Table, TableBody, TableCardContainer, type TableCardContainerProps, TableCards, type TableCardsProps, TableFilter, TableFooter, TableHeader, type TableHeaderProps, TablePagination, type TableProps, TableSorter, TextCell, type TextCellProps, useDataFromUrl, type useDataFromUrlProps, type useDataFromUrlReturn, useDataTable };
|
|
105
|
+
export { type DataResponse, DataTable, type DataTableProps, DataTableServer, type DataTableServerProps, EditFilterButton, EditSortingButton, EditViewButton, PageSizeControl, type PageSizeControlProps, type PaginationProps, ResetFilteringButton, ResetSortingButton, type Result, Table, TableBody, TableCardContainer, type TableCardContainerProps, TableCards, type TableCardsProps, TableFilter, TableFooter, TableHeader, type TableHeaderProps, TablePagination, type TableProps, TableSorter, TextCell, type TextCellProps, useDataFromUrl, type useDataFromUrlProps, type useDataFromUrlReturn, useDataTable };
|
package/dist/index.js
CHANGED
|
@@ -15,6 +15,57 @@ const TableContext = react.createContext({
|
|
|
15
15
|
refreshData: () => { },
|
|
16
16
|
});
|
|
17
17
|
|
|
18
|
+
const DataTable = ({ columns, data, enableRowSelection = true, enableMultiRowSelection = true, enableSubRowSelection = true, children, }) => {
|
|
19
|
+
const [sorting, setSorting] = react.useState([]);
|
|
20
|
+
const [columnFilters, setColumnFilters] = react.useState([]); // can set initial column filter state here
|
|
21
|
+
const [pagination, setPagination] = react.useState({
|
|
22
|
+
pageIndex: 0, //initial page index
|
|
23
|
+
pageSize: 10, //default page size
|
|
24
|
+
});
|
|
25
|
+
const [rowSelection, setRowSelection] = react.useState({});
|
|
26
|
+
const [columnOrder, setColumnOrder] = react.useState([]);
|
|
27
|
+
const table = reactTable.useReactTable({
|
|
28
|
+
data: data,
|
|
29
|
+
columns: columns,
|
|
30
|
+
getCoreRowModel: reactTable.getCoreRowModel(),
|
|
31
|
+
manualPagination: true,
|
|
32
|
+
manualSorting: true,
|
|
33
|
+
onPaginationChange: setPagination,
|
|
34
|
+
onSortingChange: setSorting,
|
|
35
|
+
onColumnFiltersChange: setColumnFilters,
|
|
36
|
+
columnResizeMode: "onChange",
|
|
37
|
+
onRowSelectionChange: setRowSelection,
|
|
38
|
+
state: {
|
|
39
|
+
pagination,
|
|
40
|
+
sorting,
|
|
41
|
+
columnFilters,
|
|
42
|
+
rowSelection,
|
|
43
|
+
columnOrder,
|
|
44
|
+
},
|
|
45
|
+
defaultColumn: {
|
|
46
|
+
size: 150, //starting column size
|
|
47
|
+
minSize: 10, //enforced during column resizing
|
|
48
|
+
maxSize: 10000, //enforced during column resizing
|
|
49
|
+
},
|
|
50
|
+
enableRowSelection: enableRowSelection,
|
|
51
|
+
enableMultiRowSelection: enableMultiRowSelection,
|
|
52
|
+
enableSubRowSelection: enableSubRowSelection,
|
|
53
|
+
onColumnOrderChange: (state) => {
|
|
54
|
+
setColumnOrder(state);
|
|
55
|
+
},
|
|
56
|
+
rowCount: data.filterCount,
|
|
57
|
+
});
|
|
58
|
+
react.useEffect(() => {
|
|
59
|
+
setColumnOrder(table.getAllLeafColumns().map((column) => column.id));
|
|
60
|
+
}, []);
|
|
61
|
+
return (jsxRuntime.jsx(TableContext.Provider, { value: {
|
|
62
|
+
table: { ...table },
|
|
63
|
+
refreshData: () => {
|
|
64
|
+
throw new Error("not implemented");
|
|
65
|
+
},
|
|
66
|
+
}, children: children }));
|
|
67
|
+
};
|
|
68
|
+
|
|
18
69
|
const useDataFromUrl = ({ url, params = {}, defaultData, }) => {
|
|
19
70
|
const [loading, setLoading] = react.useState(true);
|
|
20
71
|
const [hasError, setHasError] = react.useState(false);
|
|
@@ -44,7 +95,7 @@ const useDataFromUrl = ({ url, params = {}, defaultData, }) => {
|
|
|
44
95
|
return { data, loading, hasError, refreshData };
|
|
45
96
|
};
|
|
46
97
|
|
|
47
|
-
const
|
|
98
|
+
const DataTableServer = ({ columns, url, enableRowSelection = true, enableMultiRowSelection = true, enableSubRowSelection = true, children, }) => {
|
|
48
99
|
const [sorting, setSorting] = react.useState([]);
|
|
49
100
|
const [columnFilters, setColumnFilters] = react.useState([]); // can set initial column filter state here
|
|
50
101
|
const [pagination, setPagination] = react.useState({
|
|
@@ -105,6 +156,7 @@ const DataTable = ({ columns, url, enableRowSelection = true, enableMultiRowSele
|
|
|
105
156
|
onColumnOrderChange: (state) => {
|
|
106
157
|
setColumnOrder(state);
|
|
107
158
|
},
|
|
159
|
+
rowCount: data.filterCount,
|
|
108
160
|
});
|
|
109
161
|
react.useEffect(() => {
|
|
110
162
|
refreshData();
|
|
@@ -179,9 +231,7 @@ const EditSortingButton = () => {
|
|
|
179
231
|
|
|
180
232
|
const PageSizeControl = ({ pageSizes = [10, 20, 30, 40, 50], }) => {
|
|
181
233
|
const { table } = react.useContext(TableContext);
|
|
182
|
-
return (jsxRuntime.jsx(react$1.
|
|
183
|
-
table.setPageSize(Number(e.target.value));
|
|
184
|
-
}, children: pageSizes.map((pageSize) => (jsxRuntime.jsx("option", { value: pageSize, children: pageSize }, pageSize))) }));
|
|
234
|
+
return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs(react$1.Menu, { children: [jsxRuntime.jsx(react$1.MenuButton, { as: react$1.Button, rightIcon: jsxRuntime.jsx(icons.ChevronDownIcon, {}), children: table.getState().pagination.pageSize }), jsxRuntime.jsx(react$1.MenuList, { children: pageSizes.map((pageSize) => (jsxRuntime.jsx(react$1.MenuItem, { onClick: () => { table.setPageSize(Number(pageSize)); }, children: pageSize }))) })] }) }));
|
|
185
235
|
};
|
|
186
236
|
|
|
187
237
|
const Table = ({ children }) => {
|
|
@@ -262,9 +312,9 @@ const TableFooter = () => {
|
|
|
262
312
|
backgroundColor: header.column.getIsPinned()
|
|
263
313
|
? "gray.700"
|
|
264
314
|
: undefined,
|
|
265
|
-
}, children:
|
|
266
|
-
|
|
267
|
-
|
|
315
|
+
}, children: header.isPlaceholder
|
|
316
|
+
? null
|
|
317
|
+
: reactTable.flexRender(header.column.columnDef.footer, header.getContext()) }, crypto.randomUUID())))] }, crypto.randomUUID()))) }));
|
|
268
318
|
};
|
|
269
319
|
|
|
270
320
|
const TableHeader = ({ canResize }) => {
|
|
@@ -321,7 +371,7 @@ const TableHeader = ({ canResize }) => {
|
|
|
321
371
|
|
|
322
372
|
const TablePagination = ({}) => {
|
|
323
373
|
const { firstPage, getCanPreviousPage, previousPage, getState, nextPage, getCanNextPage, lastPage, } = useDataTable().table;
|
|
324
|
-
return (jsxRuntime.jsxs(react$1.ButtonGroup, { isAttached: true, children: [jsxRuntime.jsx(react$1.IconButton, { icon: jsxRuntime.jsx(md.MdFirstPage, {}), onClick: () => firstPage(),
|
|
374
|
+
return (jsxRuntime.jsxs(react$1.ButtonGroup, { isAttached: true, children: [jsxRuntime.jsx(react$1.IconButton, { icon: jsxRuntime.jsx(md.MdFirstPage, {}), onClick: () => firstPage(), isDisabled: !getCanPreviousPage(), "aria-label": "first-page" }), jsxRuntime.jsx(react$1.IconButton, { icon: jsxRuntime.jsx(md.MdArrowBack, {}), onClick: () => previousPage(), isDisabled: !getCanPreviousPage(), "aria-label": "previous-page" }), jsxRuntime.jsx(react$1.Button, { onClick: () => { }, disabled: !getCanPreviousPage(), children: getState().pagination.pageIndex + 1 }), jsxRuntime.jsx(react$1.IconButton, { onClick: () => nextPage(), isDisabled: !getCanNextPage(), "aria-label": "next-page", children: jsxRuntime.jsx(md.MdArrowForward, {}) }), jsxRuntime.jsx(react$1.IconButton, { onClick: () => lastPage(), isDisabled: !getCanNextPage(), "aria-label": "last-page", children: jsxRuntime.jsx(md.MdLastPage, {}) })] }));
|
|
325
375
|
};
|
|
326
376
|
|
|
327
377
|
const TextCell = ({ label, children }) => {
|
|
@@ -332,6 +382,7 @@ const TextCell = ({ label, children }) => {
|
|
|
332
382
|
};
|
|
333
383
|
|
|
334
384
|
exports.DataTable = DataTable;
|
|
385
|
+
exports.DataTableServer = DataTableServer;
|
|
335
386
|
exports.EditFilterButton = EditFilterButton;
|
|
336
387
|
exports.EditSortingButton = EditSortingButton;
|
|
337
388
|
exports.EditViewButton = EditViewButton;
|
package/dist/index.mjs
CHANGED
|
@@ -2,7 +2,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
|
2
2
|
import { createContext, useState, useEffect, useContext } from 'react';
|
|
3
3
|
import { useReactTable, getCoreRowModel, flexRender } from '@tanstack/react-table';
|
|
4
4
|
import axios from 'axios';
|
|
5
|
-
import { Popover, PopoverTrigger, IconButton, PopoverContent, PopoverArrow, PopoverBody, Flex, FormControl, Checkbox, Button, Box, Text, Input, Tooltip,
|
|
5
|
+
import { Popover, PopoverTrigger, IconButton, PopoverContent, PopoverArrow, PopoverBody, Flex, FormControl, Checkbox, Button, Box, Text, Input, Tooltip, Menu, MenuButton, MenuList, MenuItem, Container, Table as Table$1, Grid, Card, CardBody, Tfoot, Tr as Tr$1, Th, Thead, Portal, ButtonGroup } from '@chakra-ui/react';
|
|
6
6
|
import { IoMdEye, IoMdClose } from 'react-icons/io';
|
|
7
7
|
import { MdFilterAlt, MdOutlineSort, MdPushPin, MdCancel, MdSort, MdFilterListAlt, MdFirstPage, MdArrowBack, MdArrowForward, MdLastPage } from 'react-icons/md';
|
|
8
8
|
import { ChevronUpIcon, UpDownIcon, ChevronDownIcon, CloseIcon } from '@chakra-ui/icons';
|
|
@@ -13,6 +13,57 @@ const TableContext = createContext({
|
|
|
13
13
|
refreshData: () => { },
|
|
14
14
|
});
|
|
15
15
|
|
|
16
|
+
const DataTable = ({ columns, data, enableRowSelection = true, enableMultiRowSelection = true, enableSubRowSelection = true, children, }) => {
|
|
17
|
+
const [sorting, setSorting] = useState([]);
|
|
18
|
+
const [columnFilters, setColumnFilters] = useState([]); // can set initial column filter state here
|
|
19
|
+
const [pagination, setPagination] = useState({
|
|
20
|
+
pageIndex: 0, //initial page index
|
|
21
|
+
pageSize: 10, //default page size
|
|
22
|
+
});
|
|
23
|
+
const [rowSelection, setRowSelection] = useState({});
|
|
24
|
+
const [columnOrder, setColumnOrder] = useState([]);
|
|
25
|
+
const table = useReactTable({
|
|
26
|
+
data: data,
|
|
27
|
+
columns: columns,
|
|
28
|
+
getCoreRowModel: getCoreRowModel(),
|
|
29
|
+
manualPagination: true,
|
|
30
|
+
manualSorting: true,
|
|
31
|
+
onPaginationChange: setPagination,
|
|
32
|
+
onSortingChange: setSorting,
|
|
33
|
+
onColumnFiltersChange: setColumnFilters,
|
|
34
|
+
columnResizeMode: "onChange",
|
|
35
|
+
onRowSelectionChange: setRowSelection,
|
|
36
|
+
state: {
|
|
37
|
+
pagination,
|
|
38
|
+
sorting,
|
|
39
|
+
columnFilters,
|
|
40
|
+
rowSelection,
|
|
41
|
+
columnOrder,
|
|
42
|
+
},
|
|
43
|
+
defaultColumn: {
|
|
44
|
+
size: 150, //starting column size
|
|
45
|
+
minSize: 10, //enforced during column resizing
|
|
46
|
+
maxSize: 10000, //enforced during column resizing
|
|
47
|
+
},
|
|
48
|
+
enableRowSelection: enableRowSelection,
|
|
49
|
+
enableMultiRowSelection: enableMultiRowSelection,
|
|
50
|
+
enableSubRowSelection: enableSubRowSelection,
|
|
51
|
+
onColumnOrderChange: (state) => {
|
|
52
|
+
setColumnOrder(state);
|
|
53
|
+
},
|
|
54
|
+
rowCount: data.filterCount,
|
|
55
|
+
});
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
setColumnOrder(table.getAllLeafColumns().map((column) => column.id));
|
|
58
|
+
}, []);
|
|
59
|
+
return (jsx(TableContext.Provider, { value: {
|
|
60
|
+
table: { ...table },
|
|
61
|
+
refreshData: () => {
|
|
62
|
+
throw new Error("not implemented");
|
|
63
|
+
},
|
|
64
|
+
}, children: children }));
|
|
65
|
+
};
|
|
66
|
+
|
|
16
67
|
const useDataFromUrl = ({ url, params = {}, defaultData, }) => {
|
|
17
68
|
const [loading, setLoading] = useState(true);
|
|
18
69
|
const [hasError, setHasError] = useState(false);
|
|
@@ -42,7 +93,7 @@ const useDataFromUrl = ({ url, params = {}, defaultData, }) => {
|
|
|
42
93
|
return { data, loading, hasError, refreshData };
|
|
43
94
|
};
|
|
44
95
|
|
|
45
|
-
const
|
|
96
|
+
const DataTableServer = ({ columns, url, enableRowSelection = true, enableMultiRowSelection = true, enableSubRowSelection = true, children, }) => {
|
|
46
97
|
const [sorting, setSorting] = useState([]);
|
|
47
98
|
const [columnFilters, setColumnFilters] = useState([]); // can set initial column filter state here
|
|
48
99
|
const [pagination, setPagination] = useState({
|
|
@@ -103,6 +154,7 @@ const DataTable = ({ columns, url, enableRowSelection = true, enableMultiRowSele
|
|
|
103
154
|
onColumnOrderChange: (state) => {
|
|
104
155
|
setColumnOrder(state);
|
|
105
156
|
},
|
|
157
|
+
rowCount: data.filterCount,
|
|
106
158
|
});
|
|
107
159
|
useEffect(() => {
|
|
108
160
|
refreshData();
|
|
@@ -177,9 +229,7 @@ const EditSortingButton = () => {
|
|
|
177
229
|
|
|
178
230
|
const PageSizeControl = ({ pageSizes = [10, 20, 30, 40, 50], }) => {
|
|
179
231
|
const { table } = useContext(TableContext);
|
|
180
|
-
return (jsx(
|
|
181
|
-
table.setPageSize(Number(e.target.value));
|
|
182
|
-
}, children: pageSizes.map((pageSize) => (jsx("option", { value: pageSize, children: pageSize }, pageSize))) }));
|
|
232
|
+
return (jsx(Fragment, { children: jsxs(Menu, { children: [jsx(MenuButton, { as: Button, rightIcon: jsx(ChevronDownIcon, {}), children: table.getState().pagination.pageSize }), jsx(MenuList, { children: pageSizes.map((pageSize) => (jsx(MenuItem, { onClick: () => { table.setPageSize(Number(pageSize)); }, children: pageSize }))) })] }) }));
|
|
183
233
|
};
|
|
184
234
|
|
|
185
235
|
const Table = ({ children }) => {
|
|
@@ -260,9 +310,9 @@ const TableFooter = () => {
|
|
|
260
310
|
backgroundColor: header.column.getIsPinned()
|
|
261
311
|
? "gray.700"
|
|
262
312
|
: undefined,
|
|
263
|
-
}, children:
|
|
264
|
-
|
|
265
|
-
|
|
313
|
+
}, children: header.isPlaceholder
|
|
314
|
+
? null
|
|
315
|
+
: flexRender(header.column.columnDef.footer, header.getContext()) }, crypto.randomUUID())))] }, crypto.randomUUID()))) }));
|
|
266
316
|
};
|
|
267
317
|
|
|
268
318
|
const TableHeader = ({ canResize }) => {
|
|
@@ -319,7 +369,7 @@ const TableHeader = ({ canResize }) => {
|
|
|
319
369
|
|
|
320
370
|
const TablePagination = ({}) => {
|
|
321
371
|
const { firstPage, getCanPreviousPage, previousPage, getState, nextPage, getCanNextPage, lastPage, } = useDataTable().table;
|
|
322
|
-
return (jsxs(ButtonGroup, { isAttached: true, children: [jsx(IconButton, { icon: jsx(MdFirstPage, {}), onClick: () => firstPage(),
|
|
372
|
+
return (jsxs(ButtonGroup, { isAttached: true, children: [jsx(IconButton, { icon: jsx(MdFirstPage, {}), onClick: () => firstPage(), isDisabled: !getCanPreviousPage(), "aria-label": "first-page" }), jsx(IconButton, { icon: jsx(MdArrowBack, {}), onClick: () => previousPage(), isDisabled: !getCanPreviousPage(), "aria-label": "previous-page" }), jsx(Button, { onClick: () => { }, disabled: !getCanPreviousPage(), children: getState().pagination.pageIndex + 1 }), jsx(IconButton, { onClick: () => nextPage(), isDisabled: !getCanNextPage(), "aria-label": "next-page", children: jsx(MdArrowForward, {}) }), jsx(IconButton, { onClick: () => lastPage(), isDisabled: !getCanNextPage(), "aria-label": "last-page", children: jsx(MdLastPage, {}) })] }));
|
|
323
373
|
};
|
|
324
374
|
|
|
325
375
|
const TextCell = ({ label, children }) => {
|
|
@@ -329,4 +379,4 @@ const TextCell = ({ label, children }) => {
|
|
|
329
379
|
return (jsx(Text, { as: "span", overflow: "hidden", textOverflow: "ellipsis", noOfLines: [1, 2, 3], children: children }));
|
|
330
380
|
};
|
|
331
381
|
|
|
332
|
-
export { DataTable, EditFilterButton, EditSortingButton, EditViewButton, PageSizeControl, ResetFilteringButton, ResetSortingButton, Table, TableBody, TableCardContainer, TableCards, TableFilter, TableFooter, TableHeader, TablePagination, TableSorter, TextCell, useDataFromUrl, useDataTable };
|
|
382
|
+
export { DataTable, DataTableServer, EditFilterButton, EditSortingButton, EditViewButton, PageSizeControl, ResetFilteringButton, ResetSortingButton, Table, TableBody, TableCardContainer, TableCards, TableFilter, TableFooter, TableHeader, TablePagination, TableSorter, TextCell, useDataFromUrl, useDataTable };
|
|
@@ -2,18 +2,10 @@
|
|
|
2
2
|
import { ColumnDef } from "@tanstack/react-table";
|
|
3
3
|
export interface DataTableProps<T> {
|
|
4
4
|
children: JSX.Element | JSX.Element[];
|
|
5
|
-
|
|
5
|
+
data: T[];
|
|
6
6
|
columns: ColumnDef<T, any>[];
|
|
7
7
|
enableRowSelection?: boolean;
|
|
8
8
|
enableMultiRowSelection?: boolean;
|
|
9
9
|
enableSubRowSelection?: boolean;
|
|
10
10
|
}
|
|
11
|
-
export
|
|
12
|
-
results: T[];
|
|
13
|
-
}
|
|
14
|
-
export interface DataResponse<T> extends Result<T> {
|
|
15
|
-
success: boolean;
|
|
16
|
-
count: number;
|
|
17
|
-
filterCount: number;
|
|
18
|
-
}
|
|
19
|
-
export declare const DataTable: <TData>({ columns, url, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, children, }: DataTableProps<TData>) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare const DataTable: <TData>({ columns, data, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, children, }: DataTableProps<TData>) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ColumnDef } from "@tanstack/react-table";
|
|
3
|
+
export interface DataTableServerProps<T> {
|
|
4
|
+
children: JSX.Element | JSX.Element[];
|
|
5
|
+
url: string;
|
|
6
|
+
columns: ColumnDef<T, any>[];
|
|
7
|
+
enableRowSelection?: boolean;
|
|
8
|
+
enableMultiRowSelection?: boolean;
|
|
9
|
+
enableSubRowSelection?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface Result<T> {
|
|
12
|
+
results: T[];
|
|
13
|
+
}
|
|
14
|
+
export interface DataResponse<T> extends Result<T> {
|
|
15
|
+
success: boolean;
|
|
16
|
+
count: number;
|
|
17
|
+
filterCount: number;
|
|
18
|
+
}
|
|
19
|
+
export declare const DataTableServer: <TData>({ columns, url, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, children, }: DataTableServerProps<TData>) => import("react/jsx-runtime").JSX.Element;
|
package/dist/types/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { StoryObj } from "@storybook/react";
|
|
2
|
-
declare const meta: {
|
|
3
|
-
title: string;
|
|
4
|
-
component: () => import("react/jsx-runtime").JSX.Element;
|
|
5
|
-
parameters: {};
|
|
6
|
-
argTypes: {};
|
|
7
|
-
};
|
|
8
|
-
export default meta;
|
|
9
|
-
type Story = StoryObj<typeof meta>;
|
|
10
|
-
export declare const TableView: Story;
|
|
11
|
-
export declare const TablePinningView: Story;
|
|
12
|
-
export declare const CardView: {
|
|
13
|
-
render: () => import("react/jsx-runtime").JSX.Element;
|
|
14
|
-
};
|