@bsol-oss/react-datatable5 1.0.19 → 1.0.20

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 CHANGED
@@ -64,3 +64,9 @@ npm install @tanstack/react-table @chakra-ui/react @bsol-oss/react-datatable5
64
64
  <TablePagination />
65
65
  </DataTableServer>
66
66
  ```
67
+
68
+ Example Url generated by the DataTableServer
69
+
70
+ ```
71
+ GET http://localhost:8333/api/v1/gpt/chat/history/all?pagination={"offset":0,"rows":10}&sorting={"field":"session_id","sort":"asc"}&where={"last_user_message":"vdsdf"}
72
+ ```
package/dist/index.d.ts CHANGED
@@ -32,12 +32,14 @@ interface DataResponse<T> extends Result<T> {
32
32
  }
33
33
  declare const DataTableServer: <TData>({ columns, url, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, children, }: DataTableServerProps<TData>) => react_jsx_runtime.JSX.Element;
34
34
 
35
- declare const EditViewButton: () => react_jsx_runtime.JSX.Element;
36
-
37
35
  declare const EditFilterButton: () => react_jsx_runtime.JSX.Element;
38
36
 
37
+ declare const EditOrderButton: () => react_jsx_runtime.JSX.Element;
38
+
39
39
  declare const EditSortingButton: () => react_jsx_runtime.JSX.Element;
40
40
 
41
+ declare const EditViewButton: () => react_jsx_runtime.JSX.Element;
42
+
41
43
  interface PageSizeControlProps {
42
44
  pageSizes?: number[];
43
45
  }
@@ -45,6 +47,8 @@ declare const PageSizeControl: ({ pageSizes, }: PageSizeControlProps) => react_j
45
47
 
46
48
  declare const ResetFilteringButton: () => react_jsx_runtime.JSX.Element;
47
49
 
50
+ declare const ResetSelectionButton: () => react_jsx_runtime.JSX.Element;
51
+
48
52
  declare const ResetSortingButton: () => react_jsx_runtime.JSX.Element;
49
53
 
50
54
  interface TableProps {
@@ -72,8 +76,20 @@ interface TableHeaderProps {
72
76
  }
73
77
  declare const TableHeader: ({ canResize }: TableHeaderProps) => react_jsx_runtime.JSX.Element;
74
78
 
79
+ declare const TableOrderer: () => react_jsx_runtime.JSX.Element;
80
+
81
+ interface PaginationProps {
82
+ }
83
+ declare const TablePagination: ({}: PaginationProps) => react_jsx_runtime.JSX.Element;
84
+
75
85
  declare const TableSorter: () => react_jsx_runtime.JSX.Element;
76
86
 
87
+ interface TextCellProps {
88
+ label?: string;
89
+ children: string | number | JSX.Element | JSX.Element[];
90
+ }
91
+ declare const TextCell: ({ label, children }: TextCellProps) => react_jsx_runtime.JSX.Element;
92
+
77
93
  interface useDataFromUrlReturn<T> {
78
94
  data: T;
79
95
  loading: boolean;
@@ -92,14 +108,4 @@ declare const useDataTable: () => {
92
108
  refreshData: () => void;
93
109
  };
94
110
 
95
- interface PaginationProps {
96
- }
97
- declare const TablePagination: ({}: PaginationProps) => react_jsx_runtime.JSX.Element;
98
-
99
- interface TextCellProps {
100
- label?: string;
101
- children: string | number | JSX.Element | JSX.Element[];
102
- }
103
- declare const TextCell: ({ label, children }: TextCellProps) => react_jsx_runtime.JSX.Element;
104
-
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 };
111
+ export { type DataResponse, DataTable, type DataTableProps, DataTableServer, type DataTableServerProps, EditFilterButton, EditOrderButton, EditSortingButton, EditViewButton, PageSizeControl, type PageSizeControlProps, type PaginationProps, ResetFilteringButton, ResetSelectionButton, ResetSortingButton, type Result, Table, TableBody, TableCardContainer, type TableCardContainerProps, TableCards, type TableCardsProps, TableFilter, TableFooter, TableHeader, type TableHeaderProps, TableOrderer, TablePagination, type TableProps, TableSorter, TextCell, type TextCellProps, useDataFromUrl, type useDataFromUrlProps, type useDataFromUrlReturn, useDataTable };
package/dist/index.js CHANGED
@@ -5,9 +5,9 @@ var reactTable = require('@tanstack/react-table');
5
5
  var react = require('react');
6
6
  var axios = require('axios');
7
7
  var react$1 = require('@chakra-ui/react');
8
- var io = require('react-icons/io');
9
8
  var md = require('react-icons/md');
10
9
  var icons = require('@chakra-ui/icons');
10
+ var io = require('react-icons/io');
11
11
  var table = require('@chakra-ui/table');
12
12
 
13
13
  const TableContext = react.createContext({
@@ -142,13 +142,6 @@ const DataTableServer = ({ columns, url, enableRowSelection = true, enableMultiR
142
142
  return (jsxRuntime.jsx(TableContext.Provider, { value: { table: { ...table }, refreshData: refreshData }, children: children }));
143
143
  };
144
144
 
145
- const EditViewButton = () => {
146
- const { table } = react.useContext(TableContext);
147
- return (jsxRuntime.jsxs(react$1.Popover, { placement: "auto", children: [jsxRuntime.jsx(react$1.PopoverTrigger, { children: jsxRuntime.jsx(react$1.IconButton, { "aria-label": "view", icon: jsxRuntime.jsx(io.IoMdEye, {}) }) }), jsxRuntime.jsxs(react$1.PopoverContent, { width: "auto", children: [jsxRuntime.jsx(react$1.PopoverArrow, {}), jsxRuntime.jsx(react$1.PopoverBody, { children: jsxRuntime.jsx(react$1.Flex, { flexFlow: "column", gap: "1rem", children: table.getAllLeafColumns().map((column) => {
148
- return (jsxRuntime.jsx(react$1.FormControl, { width: "auto", children: jsxRuntime.jsx(react$1.Checkbox, { isChecked: column.getIsVisible(), onChange: column.getToggleVisibilityHandler(), children: column.id }) }, crypto.randomUUID()));
149
- }) }) })] })] }));
150
- };
151
-
152
145
  const ResetFilteringButton = () => {
153
146
  const { table } = react.useContext(TableContext);
154
147
  return (jsxRuntime.jsx(react$1.Button, { onClick: () => {
@@ -176,6 +169,53 @@ const EditFilterButton = () => {
176
169
  return (jsxRuntime.jsxs(react$1.Popover, { placement: "auto", children: [jsxRuntime.jsx(react$1.Tooltip, { label: "Filter", children: jsxRuntime.jsx(react$1.PopoverTrigger, { children: jsxRuntime.jsx(react$1.IconButton, { "aria-label": "filter", icon: jsxRuntime.jsx(md.MdFilterAlt, {}) }) }) }), jsxRuntime.jsxs(react$1.PopoverContent, { width: "auto", children: [jsxRuntime.jsx(react$1.PopoverArrow, {}), jsxRuntime.jsx(react$1.PopoverBody, { children: jsxRuntime.jsxs(react$1.Flex, { flexFlow: "column", gap: "1rem", children: [jsxRuntime.jsx(TableFilter, {}), jsxRuntime.jsx(ResetFilteringButton, {})] }) })] })] }));
177
170
  };
178
171
 
172
+ const ColumnOrderChanger = ({ columns }) => {
173
+ const [order, setOrder] = react.useState([]);
174
+ const [originalOrder, setOriginalOrder] = react.useState([]);
175
+ const { table } = useDataTable();
176
+ const handleChangeOrder = (startIndex, endIndex) => {
177
+ const newOrder = Array.from(order);
178
+ const [removed] = newOrder.splice(startIndex, 1);
179
+ newOrder.splice(endIndex, 0, removed);
180
+ setOrder(newOrder);
181
+ };
182
+ react.useEffect(() => {
183
+ setOrder(columns);
184
+ }, [columns]);
185
+ react.useEffect(() => {
186
+ if (originalOrder.length > 0) {
187
+ return;
188
+ }
189
+ if (columns.length <= 0) {
190
+ return;
191
+ }
192
+ setOriginalOrder(columns);
193
+ }, [columns]);
194
+ return (jsxRuntime.jsxs(react$1.Flex, { gap: "0.5rem", flexFlow: "column", children: [jsxRuntime.jsx(react$1.Flex, { gap: "0.5rem", flexFlow: "column", children: order.map((column, index) => (jsxRuntime.jsxs(react$1.Flex, { gap: "0.25rem", alignItems: "center", justifyContent: "center", children: [jsxRuntime.jsx(react$1.IconButton, { onClick: () => {
195
+ const prevIndex = index - 1;
196
+ if (prevIndex >= 0) {
197
+ handleChangeOrder(index, prevIndex);
198
+ }
199
+ }, disabled: index === 0, "aria-label": "", children: jsxRuntime.jsx(md.MdArrowUpward, {}) }), column, jsxRuntime.jsx(react$1.IconButton, { onClick: () => {
200
+ const nextIndex = index + 1;
201
+ if (nextIndex < order.length) {
202
+ handleChangeOrder(index, nextIndex);
203
+ }
204
+ }, disabled: index === order.length - 1, "aria-label": "", children: jsxRuntime.jsx(md.MdArrowDownward, {}) })] }, column))) }), jsxRuntime.jsxs(react$1.Box, { children: [jsxRuntime.jsx(react$1.Button, { onClick: () => {
205
+ table.setColumnOrder(order);
206
+ }, children: "Apply" }), jsxRuntime.jsx(react$1.Button, { onClick: () => {
207
+ table.setColumnOrder(originalOrder);
208
+ }, children: "Reset" })] })] }));
209
+ };
210
+ const TableOrderer = () => {
211
+ const { table } = useDataTable();
212
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx(ColumnOrderChanger, { columns: table.getState().columnOrder }) }));
213
+ };
214
+
215
+ const EditOrderButton = () => {
216
+ return (jsxRuntime.jsxs(react$1.Popover, { placement: "auto", children: [jsxRuntime.jsx(react$1.Tooltip, { label: "Change Order", children: jsxRuntime.jsx(react$1.PopoverTrigger, { children: jsxRuntime.jsx(react$1.IconButton, { "aria-label": "filter", icon: jsxRuntime.jsx(md.MdOutlineMoveDown, {}) }) }) }), jsxRuntime.jsxs(react$1.PopoverContent, { width: "auto", children: [jsxRuntime.jsx(react$1.PopoverArrow, {}), jsxRuntime.jsx(react$1.PopoverBody, { children: jsxRuntime.jsx(react$1.Flex, { flexFlow: "column", gap: "0.25rem", children: jsxRuntime.jsx(TableOrderer, {}) }) })] })] }));
217
+ };
218
+
179
219
  const ResetSortingButton = () => {
180
220
  const { table } = react.useContext(TableContext);
181
221
  return (jsxRuntime.jsx(react$1.Button, { onClick: () => {
@@ -204,11 +244,25 @@ const EditSortingButton = () => {
204
244
  return (jsxRuntime.jsxs(react$1.Popover, { placement: "auto", children: [jsxRuntime.jsx(react$1.Tooltip, { label: "Filter", children: jsxRuntime.jsx(react$1.PopoverTrigger, { children: jsxRuntime.jsx(react$1.IconButton, { "aria-label": "filter", icon: jsxRuntime.jsx(md.MdOutlineSort, {}) }) }) }), jsxRuntime.jsxs(react$1.PopoverContent, { width: "auto", children: [jsxRuntime.jsx(react$1.PopoverArrow, {}), jsxRuntime.jsx(react$1.PopoverBody, { children: jsxRuntime.jsxs(react$1.Flex, { flexFlow: "column", gap: "0.25rem", children: [jsxRuntime.jsx(TableSorter, {}), jsxRuntime.jsx(ResetSortingButton, {})] }) })] })] }));
205
245
  };
206
246
 
247
+ const EditViewButton = () => {
248
+ const { table } = react.useContext(TableContext);
249
+ return (jsxRuntime.jsxs(react$1.Popover, { placement: "auto", children: [jsxRuntime.jsx(react$1.PopoverTrigger, { children: jsxRuntime.jsx(react$1.IconButton, { "aria-label": "view", icon: jsxRuntime.jsx(io.IoMdEye, {}) }) }), jsxRuntime.jsxs(react$1.PopoverContent, { width: "auto", children: [jsxRuntime.jsx(react$1.PopoverArrow, {}), jsxRuntime.jsx(react$1.PopoverBody, { children: jsxRuntime.jsx(react$1.Flex, { flexFlow: "column", gap: "1rem", children: table.getAllLeafColumns().map((column) => {
250
+ return (jsxRuntime.jsx(react$1.FormControl, { width: "auto", children: jsxRuntime.jsx(react$1.Checkbox, { isChecked: column.getIsVisible(), onChange: column.getToggleVisibilityHandler(), children: column.id }) }, crypto.randomUUID()));
251
+ }) }) })] })] }));
252
+ };
253
+
207
254
  const PageSizeControl = ({ pageSizes = [10, 20, 30, 40, 50], }) => {
208
255
  const { table } = react.useContext(TableContext);
209
256
  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 }))) })] }) }));
210
257
  };
211
258
 
259
+ const ResetSelectionButton = () => {
260
+ const { table } = react.useContext(TableContext);
261
+ return (jsxRuntime.jsx(react$1.Button, { onClick: () => {
262
+ table.resetRowSelection();
263
+ }, children: "Reset Selection" }));
264
+ };
265
+
212
266
  const Table = ({ children }) => {
213
267
  const { table } = useDataTable();
214
268
  return (jsxRuntime.jsx(react$1.Container, { padding: '0rem', maxW: "100%", overflowX: "scroll", children: jsxRuntime.jsx(react$1.Table, { width: table.getCenterTotalSize(), variant: "simple", children: children }) }));
@@ -361,10 +415,12 @@ const TextCell = ({ label, children }) => {
361
415
  exports.DataTable = DataTable;
362
416
  exports.DataTableServer = DataTableServer;
363
417
  exports.EditFilterButton = EditFilterButton;
418
+ exports.EditOrderButton = EditOrderButton;
364
419
  exports.EditSortingButton = EditSortingButton;
365
420
  exports.EditViewButton = EditViewButton;
366
421
  exports.PageSizeControl = PageSizeControl;
367
422
  exports.ResetFilteringButton = ResetFilteringButton;
423
+ exports.ResetSelectionButton = ResetSelectionButton;
368
424
  exports.ResetSortingButton = ResetSortingButton;
369
425
  exports.Table = Table;
370
426
  exports.TableBody = TableBody;
@@ -373,6 +429,7 @@ exports.TableCards = TableCards;
373
429
  exports.TableFilter = TableFilter;
374
430
  exports.TableFooter = TableFooter;
375
431
  exports.TableHeader = TableHeader;
432
+ exports.TableOrderer = TableOrderer;
376
433
  exports.TablePagination = TablePagination;
377
434
  exports.TableSorter = TableSorter;
378
435
  exports.TextCell = TextCell;
package/dist/index.mjs CHANGED
@@ -1,11 +1,11 @@
1
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
1
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
2
  import { useReactTable, getCoreRowModel, getFilteredRowModel, getSortedRowModel, getPaginationRowModel, flexRender } from '@tanstack/react-table';
3
3
  import { createContext, useState, useEffect, useContext } from 'react';
4
4
  import axios from 'axios';
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
- import { IoMdEye, IoMdClose } from 'react-icons/io';
7
- import { MdFilterAlt, MdOutlineSort, MdPushPin, MdCancel, MdSort, MdFilterListAlt, MdFirstPage, MdArrowBack, MdArrowForward, MdLastPage } from 'react-icons/md';
5
+ import { Button, Box, Text, Input, Popover, Tooltip, PopoverTrigger, IconButton, PopoverContent, PopoverArrow, PopoverBody, Flex, FormControl, Checkbox, 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
+ import { MdFilterAlt, MdArrowUpward, MdArrowDownward, MdOutlineMoveDown, MdOutlineSort, MdPushPin, MdCancel, MdSort, MdFilterListAlt, MdFirstPage, MdArrowBack, MdArrowForward, MdLastPage } from 'react-icons/md';
8
7
  import { ChevronUpIcon, UpDownIcon, ChevronDownIcon, CloseIcon } from '@chakra-ui/icons';
8
+ import { IoMdEye, IoMdClose } from 'react-icons/io';
9
9
  import { Tbody, Tr, Td } from '@chakra-ui/table';
10
10
 
11
11
  const TableContext = createContext({
@@ -140,13 +140,6 @@ const DataTableServer = ({ columns, url, enableRowSelection = true, enableMultiR
140
140
  return (jsx(TableContext.Provider, { value: { table: { ...table }, refreshData: refreshData }, children: children }));
141
141
  };
142
142
 
143
- const EditViewButton = () => {
144
- const { table } = useContext(TableContext);
145
- return (jsxs(Popover, { placement: "auto", children: [jsx(PopoverTrigger, { children: jsx(IconButton, { "aria-label": "view", icon: jsx(IoMdEye, {}) }) }), jsxs(PopoverContent, { width: "auto", children: [jsx(PopoverArrow, {}), jsx(PopoverBody, { children: jsx(Flex, { flexFlow: "column", gap: "1rem", children: table.getAllLeafColumns().map((column) => {
146
- return (jsx(FormControl, { width: "auto", children: jsx(Checkbox, { isChecked: column.getIsVisible(), onChange: column.getToggleVisibilityHandler(), children: column.id }) }, crypto.randomUUID()));
147
- }) }) })] })] }));
148
- };
149
-
150
143
  const ResetFilteringButton = () => {
151
144
  const { table } = useContext(TableContext);
152
145
  return (jsx(Button, { onClick: () => {
@@ -174,6 +167,53 @@ const EditFilterButton = () => {
174
167
  return (jsxs(Popover, { placement: "auto", children: [jsx(Tooltip, { label: "Filter", children: jsx(PopoverTrigger, { children: jsx(IconButton, { "aria-label": "filter", icon: jsx(MdFilterAlt, {}) }) }) }), jsxs(PopoverContent, { width: "auto", children: [jsx(PopoverArrow, {}), jsx(PopoverBody, { children: jsxs(Flex, { flexFlow: "column", gap: "1rem", children: [jsx(TableFilter, {}), jsx(ResetFilteringButton, {})] }) })] })] }));
175
168
  };
176
169
 
170
+ const ColumnOrderChanger = ({ columns }) => {
171
+ const [order, setOrder] = useState([]);
172
+ const [originalOrder, setOriginalOrder] = useState([]);
173
+ const { table } = useDataTable();
174
+ const handleChangeOrder = (startIndex, endIndex) => {
175
+ const newOrder = Array.from(order);
176
+ const [removed] = newOrder.splice(startIndex, 1);
177
+ newOrder.splice(endIndex, 0, removed);
178
+ setOrder(newOrder);
179
+ };
180
+ useEffect(() => {
181
+ setOrder(columns);
182
+ }, [columns]);
183
+ useEffect(() => {
184
+ if (originalOrder.length > 0) {
185
+ return;
186
+ }
187
+ if (columns.length <= 0) {
188
+ return;
189
+ }
190
+ setOriginalOrder(columns);
191
+ }, [columns]);
192
+ return (jsxs(Flex, { gap: "0.5rem", flexFlow: "column", children: [jsx(Flex, { gap: "0.5rem", flexFlow: "column", children: order.map((column, index) => (jsxs(Flex, { gap: "0.25rem", alignItems: "center", justifyContent: "center", children: [jsx(IconButton, { onClick: () => {
193
+ const prevIndex = index - 1;
194
+ if (prevIndex >= 0) {
195
+ handleChangeOrder(index, prevIndex);
196
+ }
197
+ }, disabled: index === 0, "aria-label": "", children: jsx(MdArrowUpward, {}) }), column, jsx(IconButton, { onClick: () => {
198
+ const nextIndex = index + 1;
199
+ if (nextIndex < order.length) {
200
+ handleChangeOrder(index, nextIndex);
201
+ }
202
+ }, disabled: index === order.length - 1, "aria-label": "", children: jsx(MdArrowDownward, {}) })] }, column))) }), jsxs(Box, { children: [jsx(Button, { onClick: () => {
203
+ table.setColumnOrder(order);
204
+ }, children: "Apply" }), jsx(Button, { onClick: () => {
205
+ table.setColumnOrder(originalOrder);
206
+ }, children: "Reset" })] })] }));
207
+ };
208
+ const TableOrderer = () => {
209
+ const { table } = useDataTable();
210
+ return (jsx(Fragment, { children: jsx(ColumnOrderChanger, { columns: table.getState().columnOrder }) }));
211
+ };
212
+
213
+ const EditOrderButton = () => {
214
+ return (jsxs(Popover, { placement: "auto", children: [jsx(Tooltip, { label: "Change Order", children: jsx(PopoverTrigger, { children: jsx(IconButton, { "aria-label": "filter", icon: jsx(MdOutlineMoveDown, {}) }) }) }), jsxs(PopoverContent, { width: "auto", children: [jsx(PopoverArrow, {}), jsx(PopoverBody, { children: jsx(Flex, { flexFlow: "column", gap: "0.25rem", children: jsx(TableOrderer, {}) }) })] })] }));
215
+ };
216
+
177
217
  const ResetSortingButton = () => {
178
218
  const { table } = useContext(TableContext);
179
219
  return (jsx(Button, { onClick: () => {
@@ -202,11 +242,25 @@ const EditSortingButton = () => {
202
242
  return (jsxs(Popover, { placement: "auto", children: [jsx(Tooltip, { label: "Filter", children: jsx(PopoverTrigger, { children: jsx(IconButton, { "aria-label": "filter", icon: jsx(MdOutlineSort, {}) }) }) }), jsxs(PopoverContent, { width: "auto", children: [jsx(PopoverArrow, {}), jsx(PopoverBody, { children: jsxs(Flex, { flexFlow: "column", gap: "0.25rem", children: [jsx(TableSorter, {}), jsx(ResetSortingButton, {})] }) })] })] }));
203
243
  };
204
244
 
245
+ const EditViewButton = () => {
246
+ const { table } = useContext(TableContext);
247
+ return (jsxs(Popover, { placement: "auto", children: [jsx(PopoverTrigger, { children: jsx(IconButton, { "aria-label": "view", icon: jsx(IoMdEye, {}) }) }), jsxs(PopoverContent, { width: "auto", children: [jsx(PopoverArrow, {}), jsx(PopoverBody, { children: jsx(Flex, { flexFlow: "column", gap: "1rem", children: table.getAllLeafColumns().map((column) => {
248
+ return (jsx(FormControl, { width: "auto", children: jsx(Checkbox, { isChecked: column.getIsVisible(), onChange: column.getToggleVisibilityHandler(), children: column.id }) }, crypto.randomUUID()));
249
+ }) }) })] })] }));
250
+ };
251
+
205
252
  const PageSizeControl = ({ pageSizes = [10, 20, 30, 40, 50], }) => {
206
253
  const { table } = useContext(TableContext);
207
254
  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 }))) })] }) }));
208
255
  };
209
256
 
257
+ const ResetSelectionButton = () => {
258
+ const { table } = useContext(TableContext);
259
+ return (jsx(Button, { onClick: () => {
260
+ table.resetRowSelection();
261
+ }, children: "Reset Selection" }));
262
+ };
263
+
210
264
  const Table = ({ children }) => {
211
265
  const { table } = useDataTable();
212
266
  return (jsx(Container, { padding: '0rem', maxW: "100%", overflowX: "scroll", children: jsx(Table$1, { width: table.getCenterTotalSize(), variant: "simple", children: children }) }));
@@ -356,4 +410,4 @@ const TextCell = ({ label, children }) => {
356
410
  return (jsx(Text, { as: "span", overflow: "hidden", textOverflow: "ellipsis", noOfLines: [1, 2, 3], children: children }));
357
411
  };
358
412
 
359
- export { DataTable, DataTableServer, EditFilterButton, EditSortingButton, EditViewButton, PageSizeControl, ResetFilteringButton, ResetSortingButton, Table, TableBody, TableCardContainer, TableCards, TableFilter, TableFooter, TableHeader, TablePagination, TableSorter, TextCell, useDataFromUrl, useDataTable };
413
+ export { DataTable, DataTableServer, EditFilterButton, EditOrderButton, EditSortingButton, EditViewButton, PageSizeControl, ResetFilteringButton, ResetSelectionButton, ResetSortingButton, Table, TableBody, TableCardContainer, TableCards, TableFilter, TableFooter, TableHeader, TableOrderer, TablePagination, TableSorter, TextCell, useDataFromUrl, useDataTable };
@@ -1 +1 @@
1
- export declare const ResetSortingButton: () => import("react/jsx-runtime").JSX.Element;
1
+ export declare const ResetSelectionButton: () => import("react/jsx-runtime").JSX.Element;
@@ -1,10 +1,12 @@
1
1
  export * from "./components/DataTable";
2
2
  export * from "./components/DataTableServer";
3
- export * from "./components/EditViewButton";
4
3
  export * from "./components/EditFilterButton";
4
+ export * from "./components/EditOrderButton";
5
5
  export * from "./components/EditSortingButton";
6
+ export * from "./components/EditViewButton";
6
7
  export * from "./components/PageSizeControl";
7
8
  export * from "./components/ResetFilteringButton";
9
+ export * from "./components/ResetSelectionButton";
8
10
  export * from "./components/ResetSortingButton";
9
11
  export * from "./components/Table";
10
12
  export * from "./components/TableBody";
@@ -13,8 +15,9 @@ export * from "./components/TableCards";
13
15
  export * from "./components/TableFilter";
14
16
  export * from "./components/TableFooter";
15
17
  export * from "./components/TableHeader";
18
+ export * from "./components/TableOrderer";
19
+ export * from "./components/TablePagination";
16
20
  export * from "./components/TableSorter";
21
+ export * from "./components/TextCell";
17
22
  export * from "./components/useDataFromUrl";
18
23
  export * from "./components/useDataTable";
19
- export * from "./components/TablePagination";
20
- export * from "./components/TextCell";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsol-oss/react-datatable5",
3
- "version": "1.0.19",
3
+ "version": "1.0.20",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",