@bsol-oss/react-datatable5 1.0.16 → 1.0.18
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 +61 -8
- package/dist/index.mjs +62 -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,11 @@ const TableFooter = () => {
|
|
|
262
312
|
backgroundColor: header.column.getIsPinned()
|
|
263
313
|
? "gray.700"
|
|
264
314
|
: undefined,
|
|
265
|
-
},
|
|
266
|
-
|
|
267
|
-
|
|
315
|
+
},
|
|
316
|
+
// styling resize and pinning end
|
|
317
|
+
display: "flex", alignItems: "center", children: header.isPlaceholder
|
|
318
|
+
? null
|
|
319
|
+
: reactTable.flexRender(header.column.columnDef.footer, header.getContext()) }, crypto.randomUUID())))] }, crypto.randomUUID()))) }));
|
|
268
320
|
};
|
|
269
321
|
|
|
270
322
|
const TableHeader = ({ canResize }) => {
|
|
@@ -321,7 +373,7 @@ const TableHeader = ({ canResize }) => {
|
|
|
321
373
|
|
|
322
374
|
const TablePagination = ({}) => {
|
|
323
375
|
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(),
|
|
376
|
+
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
377
|
};
|
|
326
378
|
|
|
327
379
|
const TextCell = ({ label, children }) => {
|
|
@@ -332,6 +384,7 @@ const TextCell = ({ label, children }) => {
|
|
|
332
384
|
};
|
|
333
385
|
|
|
334
386
|
exports.DataTable = DataTable;
|
|
387
|
+
exports.DataTableServer = DataTableServer;
|
|
335
388
|
exports.EditFilterButton = EditFilterButton;
|
|
336
389
|
exports.EditSortingButton = EditSortingButton;
|
|
337
390
|
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,11 @@ const TableFooter = () => {
|
|
|
260
310
|
backgroundColor: header.column.getIsPinned()
|
|
261
311
|
? "gray.700"
|
|
262
312
|
: undefined,
|
|
263
|
-
},
|
|
264
|
-
|
|
265
|
-
|
|
313
|
+
},
|
|
314
|
+
// styling resize and pinning end
|
|
315
|
+
display: "flex", alignItems: "center", children: header.isPlaceholder
|
|
316
|
+
? null
|
|
317
|
+
: flexRender(header.column.columnDef.footer, header.getContext()) }, crypto.randomUUID())))] }, crypto.randomUUID()))) }));
|
|
266
318
|
};
|
|
267
319
|
|
|
268
320
|
const TableHeader = ({ canResize }) => {
|
|
@@ -319,7 +371,7 @@ const TableHeader = ({ canResize }) => {
|
|
|
319
371
|
|
|
320
372
|
const TablePagination = ({}) => {
|
|
321
373
|
const { firstPage, getCanPreviousPage, previousPage, getState, nextPage, getCanNextPage, lastPage, } = useDataTable().table;
|
|
322
|
-
return (jsxs(ButtonGroup, { isAttached: true, children: [jsx(IconButton, { icon: jsx(MdFirstPage, {}), onClick: () => firstPage(),
|
|
374
|
+
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
375
|
};
|
|
324
376
|
|
|
325
377
|
const TextCell = ({ label, children }) => {
|
|
@@ -329,4 +381,4 @@ const TextCell = ({ label, children }) => {
|
|
|
329
381
|
return (jsx(Text, { as: "span", overflow: "hidden", textOverflow: "ellipsis", noOfLines: [1, 2, 3], children: children }));
|
|
330
382
|
};
|
|
331
383
|
|
|
332
|
-
export { DataTable, EditFilterButton, EditSortingButton, EditViewButton, PageSizeControl, ResetFilteringButton, ResetSortingButton, Table, TableBody, TableCardContainer, TableCards, TableFilter, TableFooter, TableHeader, TablePagination, TableSorter, TextCell, useDataFromUrl, useDataTable };
|
|
384
|
+
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
|
-
};
|