@redis-ui/table 2.4.0 → 2.12.0
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/dist/Table/Table.cjs +58 -34
- package/dist/Table/Table.d.ts +3 -1
- package/dist/Table/Table.js +60 -36
- package/dist/Table/Table.style.cjs +24 -13
- package/dist/Table/Table.style.d.ts +4 -1
- package/dist/Table/Table.style.js +25 -14
- package/dist/Table/Table.types.d.ts +25 -8
- package/dist/Table/components/EmptyStateRow/EmptyStateRow.cjs +16 -0
- package/dist/Table/components/EmptyStateRow/EmptyStateRow.d.ts +8 -0
- package/dist/Table/components/EmptyStateRow/EmptyStateRow.js +16 -0
- package/dist/Table/components/ExpandRowButton/ExpandRowButton.cjs +1 -0
- package/dist/Table/components/ExpandRowButton/ExpandRowButton.js +1 -0
- package/dist/Table/components/RowSelection/HeaderMultiRowSelectionButton.cjs +29 -0
- package/dist/Table/components/RowSelection/HeaderMultiRowSelectionButton.d.ts +7 -0
- package/dist/Table/components/RowSelection/HeaderMultiRowSelectionButton.js +29 -0
- package/dist/Table/components/RowSelection/HeaderMultiRowSelectionButton.test.d.ts +1 -0
- package/dist/Table/components/RowSelection/RowSelectionButton.cjs +15 -0
- package/dist/Table/components/RowSelection/RowSelectionButton.d.ts +6 -0
- package/dist/Table/components/RowSelection/RowSelectionButton.js +15 -0
- package/dist/Table/components/RowSelection/RowSelectionButton.test.d.ts +1 -0
- package/dist/Table/components/TableExpandedRow/TableAnimatedExpandedRow.style.cjs +1 -1
- package/dist/Table/components/TableExpandedRow/TableAnimatedExpandedRow.style.js +1 -1
- package/dist/Table/components/TableExpandedRow/TableExpandedRow.style.cjs +2 -2
- package/dist/Table/components/TableExpandedRow/TableExpandedRow.style.js +2 -2
- package/dist/Table/components/TableHeaderCell/TableHeaderCell.cjs +37 -0
- package/dist/Table/components/TableHeaderCell/TableHeaderCell.d.ts +4 -0
- package/dist/Table/components/TableHeaderCell/TableHeaderCell.js +37 -0
- package/dist/Table/components/TableHeaderCell/TableHeaderCell.types.d.ts +13 -0
- package/dist/Table/components/TableHeaderCell/TableHeaderCell.utils.cjs +101 -0
- package/dist/Table/components/TableHeaderCell/TableHeaderCell.utils.d.ts +11 -0
- package/dist/Table/components/TableHeaderCell/TableHeaderCell.utils.js +101 -0
- package/dist/Table/components/TablePagination/TablePagination.cjs +27 -8
- package/dist/Table/components/TablePagination/TablePagination.js +26 -7
- package/dist/Table/components/TablePagination/TablePagination.style.cjs +14 -9
- package/dist/Table/components/TablePagination/TablePagination.style.d.ts +8 -7
- package/dist/Table/components/TablePagination/TablePagination.style.js +14 -9
- package/dist/node_modules/@radix-ui/react-id/dist/index.cjs +32 -0
- package/dist/node_modules/@radix-ui/react-id/dist/index.js +14 -0
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs +55 -0
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +37 -0
- package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs +100 -0
- package/dist/node_modules/@radix-ui/react-slot/dist/index.js +82 -0
- package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.cjs +24 -0
- package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +6 -0
- package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.cjs +51 -0
- package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js +33 -0
- package/package.json +5 -4
package/dist/Table/Table.cjs
CHANGED
|
@@ -2,14 +2,19 @@
|
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const jsxRuntime = require("../node_modules/react/jsx-runtime.cjs");
|
|
4
4
|
const React = require("react");
|
|
5
|
+
const index$3 = require("../node_modules/@radix-ui/react-visually-hidden/dist/index.cjs");
|
|
5
6
|
const index$1 = require("../node_modules/@tanstack/react-table/build/lib/index.cjs");
|
|
6
|
-
const redisUiIcons = require("@redislabsdev/redis-ui-icons");
|
|
7
7
|
const index = require("../node_modules/@radix-ui/react-use-controllable-state/dist/index.cjs");
|
|
8
8
|
const TablePagination = require("./components/TablePagination/TablePagination.cjs");
|
|
9
9
|
const ExpandRowButton = require("./components/ExpandRowButton/ExpandRowButton.cjs");
|
|
10
10
|
const TableExpandedRow = require("./components/TableExpandedRow/TableExpandedRow.cjs");
|
|
11
11
|
const TableAnimatedExpandedRow = require("./components/TableExpandedRow/TableAnimatedExpandedRow.cjs");
|
|
12
12
|
const Table_context = require("./Table.context.cjs");
|
|
13
|
+
const TableHeaderCell = require("./components/TableHeaderCell/TableHeaderCell.cjs");
|
|
14
|
+
const TableHeaderCell_utils = require("./components/TableHeaderCell/TableHeaderCell.utils.cjs");
|
|
15
|
+
const EmptyStateRow = require("./components/EmptyStateRow/EmptyStateRow.cjs");
|
|
16
|
+
const RowSelectionButton = require("./components/RowSelection/RowSelectionButton.cjs");
|
|
17
|
+
const HeaderMultiRowSelectionButton = require("./components/RowSelection/HeaderMultiRowSelectionButton.cjs");
|
|
13
18
|
const Table_style = require("./Table.style.cjs");
|
|
14
19
|
const index$2 = require("../node_modules/@tanstack/table-core/build/lib/index.cjs");
|
|
15
20
|
const getTrue = () => true;
|
|
@@ -17,29 +22,42 @@ const DEFAULT_PAGINATION = {
|
|
|
17
22
|
pageIndex: 0,
|
|
18
23
|
pageSize: 10
|
|
19
24
|
};
|
|
25
|
+
const DEFAULT_ROW_SELECTION = {};
|
|
20
26
|
const Table = Object.assign(({
|
|
21
27
|
columns,
|
|
28
|
+
caption,
|
|
22
29
|
onRowClick,
|
|
23
30
|
data,
|
|
24
|
-
|
|
31
|
+
getRowId,
|
|
25
32
|
emptyState,
|
|
26
33
|
maxHeight,
|
|
27
34
|
stripedRows = false,
|
|
35
|
+
// sorting
|
|
36
|
+
defaultSorting,
|
|
28
37
|
onSortingChange,
|
|
29
38
|
sorting,
|
|
30
39
|
manualSorting = false,
|
|
40
|
+
// row expansion
|
|
31
41
|
getIsRowExpandable,
|
|
32
42
|
renderExpandedRow,
|
|
33
43
|
expandRowOnClick,
|
|
34
44
|
expandedRowComponent: ExpandedRow = TableExpandedRow.TableExpandedRow,
|
|
45
|
+
// pagination
|
|
35
46
|
pagination,
|
|
36
47
|
defaultPagination,
|
|
37
48
|
onPaginationChange,
|
|
38
49
|
manualPagination,
|
|
39
50
|
totalRowCount,
|
|
40
51
|
pageSizes,
|
|
41
|
-
paginationEnabled = (pagination || defaultPagination || onPaginationChange || pageSizes) !== void 0 || manualPagination !== void 0
|
|
52
|
+
paginationEnabled = (pagination || defaultPagination || onPaginationChange || pageSizes) !== void 0 || manualPagination !== void 0,
|
|
53
|
+
// row selection
|
|
54
|
+
rowSelection,
|
|
55
|
+
defaultRowSelection,
|
|
56
|
+
onRowSelectionChange,
|
|
57
|
+
rowSelectionMode,
|
|
58
|
+
getRowCanSelect
|
|
42
59
|
}) => {
|
|
60
|
+
const [userSorted, setUserSorted] = React.useState(false);
|
|
43
61
|
const [sortingState, setSortingState] = index.useControllableState({
|
|
44
62
|
prop: sorting,
|
|
45
63
|
defaultProp: defaultSorting,
|
|
@@ -50,6 +68,11 @@ const Table = Object.assign(({
|
|
|
50
68
|
defaultProp: defaultPagination ?? DEFAULT_PAGINATION,
|
|
51
69
|
onChange: onPaginationChange
|
|
52
70
|
});
|
|
71
|
+
const [rowSelectionState = DEFAULT_ROW_SELECTION, setRowSelectionState] = index.useControllableState({
|
|
72
|
+
prop: rowSelection,
|
|
73
|
+
defaultProp: defaultRowSelection,
|
|
74
|
+
onChange: onRowSelectionChange
|
|
75
|
+
});
|
|
53
76
|
const isExpandable = !!renderExpandedRow;
|
|
54
77
|
const paginationSettings = {
|
|
55
78
|
getPaginationRowModel: index$2.getPaginationRowModel(),
|
|
@@ -61,19 +84,29 @@ const Table = Object.assign(({
|
|
|
61
84
|
const table = index$1.useReactTable({
|
|
62
85
|
data,
|
|
63
86
|
columns,
|
|
87
|
+
getRowId,
|
|
64
88
|
getCoreRowModel: index$2.getCoreRowModel(),
|
|
65
89
|
getSortedRowModel: index$2.getSortedRowModel(),
|
|
66
90
|
state: {
|
|
67
91
|
sorting: sortingState,
|
|
68
92
|
...paginationEnabled && {
|
|
69
93
|
pagination: paginationState
|
|
94
|
+
},
|
|
95
|
+
...rowSelectionMode && {
|
|
96
|
+
rowSelection: rowSelectionState
|
|
70
97
|
}
|
|
71
98
|
},
|
|
72
99
|
manualSorting,
|
|
73
|
-
onSortingChange:
|
|
100
|
+
onSortingChange: (value) => {
|
|
101
|
+
setSortingState(value);
|
|
102
|
+
setUserSorted(true);
|
|
103
|
+
},
|
|
74
104
|
getExpandedRowModel: isExpandable ? index$2.getExpandedRowModel() : void 0,
|
|
75
105
|
getRowCanExpand: isExpandable ? getIsRowExpandable && ((row) => getIsRowExpandable(row.original)) || getTrue : void 0,
|
|
76
|
-
...paginationEnabled && paginationSettings
|
|
106
|
+
...paginationEnabled && paginationSettings,
|
|
107
|
+
enableRowSelection: rowSelectionMode && (getRowCanSelect ?? true),
|
|
108
|
+
enableMultiRowSelection: rowSelectionMode === "multiple",
|
|
109
|
+
onRowSelectionChange: setRowSelectionState
|
|
77
110
|
});
|
|
78
111
|
const {
|
|
79
112
|
pageIndex
|
|
@@ -85,42 +118,28 @@ const Table = Object.assign(({
|
|
|
85
118
|
const {
|
|
86
119
|
rows
|
|
87
120
|
} = table.getRowModel();
|
|
88
|
-
return jsxRuntime.jsxRuntimeExports.
|
|
121
|
+
return jsxRuntime.jsxRuntimeExports.jsxs(Table_context.TableContext.Provider, {
|
|
89
122
|
value: {
|
|
90
123
|
table
|
|
91
124
|
},
|
|
92
|
-
children: jsxRuntime.jsxRuntimeExports.jsxs(Table_style.TableContainer, {
|
|
125
|
+
children: [jsxRuntime.jsxRuntimeExports.jsxs(Table_style.TableContainer, {
|
|
93
126
|
children: [jsxRuntime.jsxRuntimeExports.jsxs(Table_style.Table, {
|
|
94
|
-
children: [jsxRuntime.jsxRuntimeExports.jsx(
|
|
127
|
+
children: [caption && jsxRuntime.jsxRuntimeExports.jsx(index$3.VisuallyHidden, {
|
|
128
|
+
asChild: true,
|
|
129
|
+
children: jsxRuntime.jsxRuntimeExports.jsx("caption", {
|
|
130
|
+
children: caption
|
|
131
|
+
})
|
|
132
|
+
}), jsxRuntime.jsxRuntimeExports.jsx(Table_style.TableHead, {
|
|
95
133
|
children: table.getHeaderGroups().map((headerGroup) => jsxRuntime.jsxRuntimeExports.jsx(Table_style.TableHeaderRow, {
|
|
96
|
-
children: headerGroup.headers.map((header) => jsxRuntime.jsxRuntimeExports.jsx(
|
|
97
|
-
|
|
98
|
-
style: {
|
|
99
|
-
width: header.column.getSize()
|
|
100
|
-
},
|
|
101
|
-
children: jsxRuntime.jsxRuntimeExports.jsxs(Table_style.HeaderCellInnerWrapper, {
|
|
102
|
-
size: "XS",
|
|
103
|
-
children: [header.isPlaceholder ? null : index$1.flexRender(header.column.columnDef.header, header.getContext()), {
|
|
104
|
-
asc: jsxRuntime.jsxRuntimeExports.jsx(redisUiIcons.ArrowUpIcon, {
|
|
105
|
-
size: "S",
|
|
106
|
-
color: "neutral700"
|
|
107
|
-
}),
|
|
108
|
-
desc: jsxRuntime.jsxRuntimeExports.jsx(redisUiIcons.ArrowDownIcon, {
|
|
109
|
-
size: "S",
|
|
110
|
-
color: "neutral700"
|
|
111
|
-
})
|
|
112
|
-
}[header.column.getIsSorted()] ?? null]
|
|
113
|
-
})
|
|
134
|
+
children: headerGroup.headers.map((header) => jsxRuntime.jsxRuntimeExports.jsx(TableHeaderCell.TableHeaderCell, {
|
|
135
|
+
header
|
|
114
136
|
}, header.id))
|
|
115
137
|
}, headerGroup.id))
|
|
116
138
|
}), jsxRuntime.jsxRuntimeExports.jsxs(Table_style.TableBody, {
|
|
117
139
|
maxHeight,
|
|
118
|
-
children: [!rows.length ? jsxRuntime.jsxRuntimeExports.jsx(
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
colSpan: columns.length,
|
|
122
|
-
children: emptyState ? emptyState() : "No data to display"
|
|
123
|
-
})
|
|
140
|
+
children: [!rows.length ? jsxRuntime.jsxRuntimeExports.jsx(EmptyStateRow.EmptyStateRow, {
|
|
141
|
+
table,
|
|
142
|
+
emptyState
|
|
124
143
|
}) : null, rows.map((row) => {
|
|
125
144
|
const isRowExpandable = isExpandable && row.getCanExpand();
|
|
126
145
|
const isRowExpanded = isRowExpandable && row.getIsExpanded();
|
|
@@ -163,11 +182,16 @@ const Table = Object.assign(({
|
|
|
163
182
|
}), jsxRuntime.jsxRuntimeExports.jsx(TablePagination.default, {
|
|
164
183
|
pageSizes
|
|
165
184
|
})]
|
|
166
|
-
})
|
|
185
|
+
}), userSorted && jsxRuntime.jsxRuntimeExports.jsx(index$3.VisuallyHidden, {
|
|
186
|
+
"aria-live": "polite",
|
|
187
|
+
children: TableHeaderCell_utils.getTableSortLabel(table, TableHeaderCell_utils.formatTableSortNotification)
|
|
188
|
+
})]
|
|
167
189
|
});
|
|
168
190
|
}, {
|
|
169
191
|
ExpandRowButton: ExpandRowButton.ExpandRowButton,
|
|
170
192
|
ExpandedRow: TableExpandedRow.TableExpandedRow,
|
|
171
|
-
AnimatedExpandedRow: TableAnimatedExpandedRow.TableAnimatedExpandedRow
|
|
193
|
+
AnimatedExpandedRow: TableAnimatedExpandedRow.TableAnimatedExpandedRow,
|
|
194
|
+
RowSelectionButton: RowSelectionButton.RowSelectionButton,
|
|
195
|
+
HeaderMultiRowSelectionButton: HeaderMultiRowSelectionButton.HeaderMultiRowSelectionButton
|
|
172
196
|
});
|
|
173
197
|
exports.default = Table;
|
package/dist/Table/Table.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { TableProps } from './Table.types';
|
|
2
|
-
declare const Table: (<T extends object>({ columns, onRowClick, data,
|
|
2
|
+
declare const Table: (<T extends object>({ columns, caption, onRowClick, data, getRowId, emptyState, maxHeight, stripedRows, defaultSorting, onSortingChange, sorting, manualSorting, getIsRowExpandable, renderExpandedRow, expandRowOnClick, expandedRowComponent: ExpandedRow, pagination, defaultPagination, onPaginationChange, manualPagination, totalRowCount, pageSizes, paginationEnabled, rowSelection, defaultRowSelection, onRowSelectionChange, rowSelectionMode, getRowCanSelect }: TableProps<T>) => import("react/jsx-runtime").JSX.Element) & {
|
|
3
3
|
ExpandRowButton: ({ row, expandedIcon, collapsedIcon, ...restProps }: import("./components/ExpandRowButton/ExpandRowButton").ExpandRowButtonProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
4
4
|
ExpandedRow: <T_1 extends object>({ row, renderExpandedRow, keepInDom, expanded, rowRef, ...restProps }: import("./components/TableExpandedRow").TableExpandedRowProps<T_1>) => import("react/jsx-runtime").JSX.Element | null;
|
|
5
5
|
AnimatedExpandedRow: <T_2 extends object>({ expanded, rowRef, ...restProps }: import("./components/TableExpandedRow").TableExpandedRowProps<T_2>) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
RowSelectionButton: <T_3 extends object>({ row, ...restProps }: import("./components/RowSelection/RowSelectionButton").RowSelectionButtonProps<T_3>) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
HeaderMultiRowSelectionButton: <T_4 extends object>({ table, managePage, ...restProps }: import("./components/RowSelection/HeaderMultiRowSelectionButton").HeaderMultiRowSelectionButtonProps<T_4>) => import("react/jsx-runtime").JSX.Element;
|
|
6
8
|
};
|
|
7
9
|
export default Table;
|
package/dist/Table/Table.js
CHANGED
|
@@ -1,43 +1,61 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports } from "../node_modules/react/jsx-runtime.js";
|
|
2
|
-
import { useEffect, Fragment } from "react";
|
|
2
|
+
import { useState, useEffect, Fragment } from "react";
|
|
3
|
+
import { VisuallyHidden } from "../node_modules/@radix-ui/react-visually-hidden/dist/index.js";
|
|
3
4
|
import { useReactTable, flexRender } from "../node_modules/@tanstack/react-table/build/lib/index.js";
|
|
4
|
-
import { ArrowUpIcon, ArrowDownIcon } from "@redislabsdev/redis-ui-icons";
|
|
5
5
|
import { useControllableState } from "../node_modules/@radix-ui/react-use-controllable-state/dist/index.js";
|
|
6
6
|
import TablePagination from "./components/TablePagination/TablePagination.js";
|
|
7
7
|
import { ExpandRowButton } from "./components/ExpandRowButton/ExpandRowButton.js";
|
|
8
8
|
import { TableExpandedRow } from "./components/TableExpandedRow/TableExpandedRow.js";
|
|
9
9
|
import { TableAnimatedExpandedRow } from "./components/TableExpandedRow/TableAnimatedExpandedRow.js";
|
|
10
10
|
import { TableContext } from "./Table.context.js";
|
|
11
|
-
import {
|
|
11
|
+
import { TableHeaderCell } from "./components/TableHeaderCell/TableHeaderCell.js";
|
|
12
|
+
import { getTableSortLabel, formatTableSortNotification } from "./components/TableHeaderCell/TableHeaderCell.utils.js";
|
|
13
|
+
import { EmptyStateRow } from "./components/EmptyStateRow/EmptyStateRow.js";
|
|
14
|
+
import { RowSelectionButton } from "./components/RowSelection/RowSelectionButton.js";
|
|
15
|
+
import { HeaderMultiRowSelectionButton } from "./components/RowSelection/HeaderMultiRowSelectionButton.js";
|
|
16
|
+
import { TableContainer, Table as Table$1, TableHead, TableHeaderRow, TableBody, TableBodyRow, TableBodyCell } from "./Table.style.js";
|
|
12
17
|
import { getCoreRowModel, getSortedRowModel, getExpandedRowModel, getPaginationRowModel } from "../node_modules/@tanstack/table-core/build/lib/index.js";
|
|
13
18
|
const getTrue = () => true;
|
|
14
19
|
const DEFAULT_PAGINATION = {
|
|
15
20
|
pageIndex: 0,
|
|
16
21
|
pageSize: 10
|
|
17
22
|
};
|
|
23
|
+
const DEFAULT_ROW_SELECTION = {};
|
|
18
24
|
const Table = Object.assign(({
|
|
19
25
|
columns,
|
|
26
|
+
caption,
|
|
20
27
|
onRowClick,
|
|
21
28
|
data,
|
|
22
|
-
|
|
29
|
+
getRowId,
|
|
23
30
|
emptyState,
|
|
24
31
|
maxHeight,
|
|
25
32
|
stripedRows = false,
|
|
33
|
+
// sorting
|
|
34
|
+
defaultSorting,
|
|
26
35
|
onSortingChange,
|
|
27
36
|
sorting,
|
|
28
37
|
manualSorting = false,
|
|
38
|
+
// row expansion
|
|
29
39
|
getIsRowExpandable,
|
|
30
40
|
renderExpandedRow,
|
|
31
41
|
expandRowOnClick,
|
|
32
42
|
expandedRowComponent: ExpandedRow = TableExpandedRow,
|
|
43
|
+
// pagination
|
|
33
44
|
pagination,
|
|
34
45
|
defaultPagination,
|
|
35
46
|
onPaginationChange,
|
|
36
47
|
manualPagination,
|
|
37
48
|
totalRowCount,
|
|
38
49
|
pageSizes,
|
|
39
|
-
paginationEnabled = (pagination || defaultPagination || onPaginationChange || pageSizes) !== void 0 || manualPagination !== void 0
|
|
50
|
+
paginationEnabled = (pagination || defaultPagination || onPaginationChange || pageSizes) !== void 0 || manualPagination !== void 0,
|
|
51
|
+
// row selection
|
|
52
|
+
rowSelection,
|
|
53
|
+
defaultRowSelection,
|
|
54
|
+
onRowSelectionChange,
|
|
55
|
+
rowSelectionMode,
|
|
56
|
+
getRowCanSelect
|
|
40
57
|
}) => {
|
|
58
|
+
const [userSorted, setUserSorted] = useState(false);
|
|
41
59
|
const [sortingState, setSortingState] = useControllableState({
|
|
42
60
|
prop: sorting,
|
|
43
61
|
defaultProp: defaultSorting,
|
|
@@ -48,6 +66,11 @@ const Table = Object.assign(({
|
|
|
48
66
|
defaultProp: defaultPagination ?? DEFAULT_PAGINATION,
|
|
49
67
|
onChange: onPaginationChange
|
|
50
68
|
});
|
|
69
|
+
const [rowSelectionState = DEFAULT_ROW_SELECTION, setRowSelectionState] = useControllableState({
|
|
70
|
+
prop: rowSelection,
|
|
71
|
+
defaultProp: defaultRowSelection,
|
|
72
|
+
onChange: onRowSelectionChange
|
|
73
|
+
});
|
|
51
74
|
const isExpandable = !!renderExpandedRow;
|
|
52
75
|
const paginationSettings = {
|
|
53
76
|
getPaginationRowModel: getPaginationRowModel(),
|
|
@@ -59,19 +82,29 @@ const Table = Object.assign(({
|
|
|
59
82
|
const table = useReactTable({
|
|
60
83
|
data,
|
|
61
84
|
columns,
|
|
85
|
+
getRowId,
|
|
62
86
|
getCoreRowModel: getCoreRowModel(),
|
|
63
87
|
getSortedRowModel: getSortedRowModel(),
|
|
64
88
|
state: {
|
|
65
89
|
sorting: sortingState,
|
|
66
90
|
...paginationEnabled && {
|
|
67
91
|
pagination: paginationState
|
|
92
|
+
},
|
|
93
|
+
...rowSelectionMode && {
|
|
94
|
+
rowSelection: rowSelectionState
|
|
68
95
|
}
|
|
69
96
|
},
|
|
70
97
|
manualSorting,
|
|
71
|
-
onSortingChange:
|
|
98
|
+
onSortingChange: (value) => {
|
|
99
|
+
setSortingState(value);
|
|
100
|
+
setUserSorted(true);
|
|
101
|
+
},
|
|
72
102
|
getExpandedRowModel: isExpandable ? getExpandedRowModel() : void 0,
|
|
73
103
|
getRowCanExpand: isExpandable ? getIsRowExpandable && ((row) => getIsRowExpandable(row.original)) || getTrue : void 0,
|
|
74
|
-
...paginationEnabled && paginationSettings
|
|
104
|
+
...paginationEnabled && paginationSettings,
|
|
105
|
+
enableRowSelection: rowSelectionMode && (getRowCanSelect ?? true),
|
|
106
|
+
enableMultiRowSelection: rowSelectionMode === "multiple",
|
|
107
|
+
onRowSelectionChange: setRowSelectionState
|
|
75
108
|
});
|
|
76
109
|
const {
|
|
77
110
|
pageIndex
|
|
@@ -83,42 +116,28 @@ const Table = Object.assign(({
|
|
|
83
116
|
const {
|
|
84
117
|
rows
|
|
85
118
|
} = table.getRowModel();
|
|
86
|
-
return jsxRuntimeExports.
|
|
119
|
+
return jsxRuntimeExports.jsxs(TableContext.Provider, {
|
|
87
120
|
value: {
|
|
88
121
|
table
|
|
89
122
|
},
|
|
90
|
-
children: jsxRuntimeExports.jsxs(TableContainer, {
|
|
123
|
+
children: [jsxRuntimeExports.jsxs(TableContainer, {
|
|
91
124
|
children: [jsxRuntimeExports.jsxs(Table$1, {
|
|
92
|
-
children: [jsxRuntimeExports.jsx(
|
|
125
|
+
children: [caption && jsxRuntimeExports.jsx(VisuallyHidden, {
|
|
126
|
+
asChild: true,
|
|
127
|
+
children: jsxRuntimeExports.jsx("caption", {
|
|
128
|
+
children: caption
|
|
129
|
+
})
|
|
130
|
+
}), jsxRuntimeExports.jsx(TableHead, {
|
|
93
131
|
children: table.getHeaderGroups().map((headerGroup) => jsxRuntimeExports.jsx(TableHeaderRow, {
|
|
94
|
-
children: headerGroup.headers.map((header) => jsxRuntimeExports.jsx(
|
|
95
|
-
|
|
96
|
-
style: {
|
|
97
|
-
width: header.column.getSize()
|
|
98
|
-
},
|
|
99
|
-
children: jsxRuntimeExports.jsxs(HeaderCellInnerWrapper, {
|
|
100
|
-
size: "XS",
|
|
101
|
-
children: [header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext()), {
|
|
102
|
-
asc: jsxRuntimeExports.jsx(ArrowUpIcon, {
|
|
103
|
-
size: "S",
|
|
104
|
-
color: "neutral700"
|
|
105
|
-
}),
|
|
106
|
-
desc: jsxRuntimeExports.jsx(ArrowDownIcon, {
|
|
107
|
-
size: "S",
|
|
108
|
-
color: "neutral700"
|
|
109
|
-
})
|
|
110
|
-
}[header.column.getIsSorted()] ?? null]
|
|
111
|
-
})
|
|
132
|
+
children: headerGroup.headers.map((header) => jsxRuntimeExports.jsx(TableHeaderCell, {
|
|
133
|
+
header
|
|
112
134
|
}, header.id))
|
|
113
135
|
}, headerGroup.id))
|
|
114
136
|
}), jsxRuntimeExports.jsxs(TableBody, {
|
|
115
137
|
maxHeight,
|
|
116
|
-
children: [!rows.length ? jsxRuntimeExports.jsx(
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
colSpan: columns.length,
|
|
120
|
-
children: emptyState ? emptyState() : "No data to display"
|
|
121
|
-
})
|
|
138
|
+
children: [!rows.length ? jsxRuntimeExports.jsx(EmptyStateRow, {
|
|
139
|
+
table,
|
|
140
|
+
emptyState
|
|
122
141
|
}) : null, rows.map((row) => {
|
|
123
142
|
const isRowExpandable = isExpandable && row.getCanExpand();
|
|
124
143
|
const isRowExpanded = isRowExpandable && row.getIsExpanded();
|
|
@@ -161,12 +180,17 @@ const Table = Object.assign(({
|
|
|
161
180
|
}), jsxRuntimeExports.jsx(TablePagination, {
|
|
162
181
|
pageSizes
|
|
163
182
|
})]
|
|
164
|
-
})
|
|
183
|
+
}), userSorted && jsxRuntimeExports.jsx(VisuallyHidden, {
|
|
184
|
+
"aria-live": "polite",
|
|
185
|
+
children: getTableSortLabel(table, formatTableSortNotification)
|
|
186
|
+
})]
|
|
165
187
|
});
|
|
166
188
|
}, {
|
|
167
189
|
ExpandRowButton,
|
|
168
190
|
ExpandedRow: TableExpandedRow,
|
|
169
|
-
AnimatedExpandedRow: TableAnimatedExpandedRow
|
|
191
|
+
AnimatedExpandedRow: TableAnimatedExpandedRow,
|
|
192
|
+
RowSelectionButton,
|
|
193
|
+
HeaderMultiRowSelectionButton
|
|
170
194
|
});
|
|
171
195
|
export {
|
|
172
196
|
Table as default
|
|
@@ -8,37 +8,47 @@ const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
|
8
8
|
const _styled__default = /* @__PURE__ */ _interopDefault(_styled);
|
|
9
9
|
const TableContainer = _styled__default.default.div.withConfig({
|
|
10
10
|
displayName: "Tablestyle__TableContainer",
|
|
11
|
-
componentId: "
|
|
11
|
+
componentId: "RedisUI__sc-o0xfty-0"
|
|
12
12
|
})(["width:100%;border-radius:0.8rem;box-shadow:", ";background-color:", ";overflow:hidden;"], () => redisUiStyles.useTheme().components.table.table.tableContainer.boxShadow, () => redisUiStyles.useTheme().components.table.table.tableContainer.backgroundColor);
|
|
13
13
|
const Table = _styled__default.default.table.withConfig({
|
|
14
14
|
displayName: "Tablestyle__Table",
|
|
15
|
-
componentId: "
|
|
16
|
-
})(["width:100%;border-collapse:collapse;border-spacing:0;overflow-x:auto;display:block;table-layout:fixed
|
|
15
|
+
componentId: "RedisUI__sc-o0xfty-1"
|
|
16
|
+
})(["width:100%;border-collapse:collapse;border-spacing:0;overflow-x:auto;display:block;table-layout:fixed;"]);
|
|
17
17
|
const TableHead = _styled__default.default.thead.withConfig({
|
|
18
18
|
displayName: "Tablestyle__TableHead",
|
|
19
|
-
componentId: "
|
|
19
|
+
componentId: "RedisUI__sc-o0xfty-2"
|
|
20
20
|
})(["display:table;table-layout:fixed;"]);
|
|
21
21
|
const TableHeaderRow = _styled__default.default.tr.withConfig({
|
|
22
22
|
displayName: "Tablestyle__TableHeaderRow",
|
|
23
|
-
componentId: "
|
|
23
|
+
componentId: "RedisUI__sc-o0xfty-3"
|
|
24
24
|
})(["height:5.6rem;display:table;width:100%;table-layout:fixed;"]);
|
|
25
|
-
const HeaderCellInnerWrapper = _styled__default.default
|
|
25
|
+
const HeaderCellInnerWrapper = _styled__default.default.button.withConfig({
|
|
26
26
|
displayName: "Tablestyle__HeaderCellInnerWrapper",
|
|
27
|
-
componentId: "
|
|
28
|
-
})(["display:flex;align-items:center;justify-content:flex-start;height:
|
|
27
|
+
componentId: "RedisUI__sc-o0xfty-4"
|
|
28
|
+
})(["all:unset;border-radius:0.03rem;display:flex;align-items:center;justify-content:flex-start;gap:0.8rem;height:100%;width:100%;min-height:35px;max-width:100%;overflow:hidden;", " svg{flex:none;}"], redisUiStyles.getFocusStyle("0.6rem"));
|
|
29
|
+
const HeaderTitleWrapper = _styled__default.default(redisUiComponents.Typography.Body).withConfig({
|
|
30
|
+
displayName: "Tablestyle__HeaderTitleWrapper",
|
|
31
|
+
componentId: "RedisUI__sc-o0xfty-5"
|
|
32
|
+
})(["flex:0 1 auto;white-space:inherit;text-align:start;", ""], ({
|
|
33
|
+
$isTextual
|
|
34
|
+
}) => $isTextual ? null : _styled.css`
|
|
35
|
+
display: flex;
|
|
36
|
+
align-items: center;
|
|
37
|
+
justify-content: flex-start;
|
|
38
|
+
`);
|
|
29
39
|
const TableTh = _styled__default.default.th.withConfig({
|
|
30
40
|
displayName: "Tablestyle__TableTh",
|
|
31
|
-
componentId: "
|
|
32
|
-
})(["padding:1.05rem
|
|
41
|
+
componentId: "RedisUI__sc-o0xfty-6"
|
|
42
|
+
})(["padding:1.05rem 1.2rem;color:", ";user-select:none;white-space:nowrap;word-break:break-word;line-height:normal;position:relative;&:not(:last-child)::after{content:'';position:absolute;inset:1.05rem 0 1.05rem auto;border-right:1px solid ", ";}"], () => redisUiStyles.useTheme().components.table.table.tableTh.color, () => redisUiStyles.useTheme().components.table.table.tableTh.borderRight);
|
|
33
43
|
const TableBody = _styled__default.default.tbody.withConfig({
|
|
34
44
|
displayName: "Tablestyle__TableBody",
|
|
35
|
-
componentId: "
|
|
45
|
+
componentId: "RedisUI__sc-o0xfty-7"
|
|
36
46
|
})(["max-height:", ";overflow-y:auto;overflow-x:hidden;display:inline-block;table-layout:fixed;"], ({
|
|
37
47
|
maxHeight
|
|
38
48
|
}) => maxHeight);
|
|
39
49
|
const TableBodyRow = _styled__default.default.tr.withConfig({
|
|
40
50
|
displayName: "Tablestyle__TableBodyRow",
|
|
41
|
-
componentId: "
|
|
51
|
+
componentId: "RedisUI__sc-o0xfty-8"
|
|
42
52
|
})(["border-top:1px solid ", ";height:4.8rem;transition:box-shadow 0.2s ease-in-out;position:relative;&:hover,&:focus{cursor:", ";z-index:1;box-shadow:", ";", "{opacity:1;visibility:visible;}}", " display:table;width:100%;table-layout:fixed;"], () => redisUiStyles.useTheme().components.table.table.tableBodyRow.borderTop, ({
|
|
43
53
|
$hasOnClick
|
|
44
54
|
}) => $hasOnClick ? "pointer" : "default", () => redisUiStyles.useTheme().components.table.table.tableBodyRow.hoverBoxShadow, ShowOnRowHover_style.ShowOnRowHover, ({
|
|
@@ -50,9 +60,10 @@ const TableBodyRow = _styled__default.default.tr.withConfig({
|
|
|
50
60
|
`);
|
|
51
61
|
const TableBodyCell = _styled__default.default.td.withConfig({
|
|
52
62
|
displayName: "Tablestyle__TableBodyCell",
|
|
53
|
-
componentId: "
|
|
63
|
+
componentId: "RedisUI__sc-o0xfty-9"
|
|
54
64
|
})(["color:", ";padding:0 1.2rem;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;"], () => redisUiStyles.useTheme().components.table.table.tableBodyCell.color);
|
|
55
65
|
exports.HeaderCellInnerWrapper = HeaderCellInnerWrapper;
|
|
66
|
+
exports.HeaderTitleWrapper = HeaderTitleWrapper;
|
|
56
67
|
exports.Table = Table;
|
|
57
68
|
exports.TableBody = TableBody;
|
|
58
69
|
exports.TableBodyCell = TableBodyCell;
|
|
@@ -2,7 +2,10 @@ export declare const TableContainer: import("styled-components").StyledComponent
|
|
|
2
2
|
export declare const Table: import("styled-components").StyledComponent<"table", any, {}, never>;
|
|
3
3
|
export declare const TableHead: import("styled-components").StyledComponent<"thead", any, {}, never>;
|
|
4
4
|
export declare const TableHeaderRow: import("styled-components").StyledComponent<"tr", any, {}, never>;
|
|
5
|
-
export declare const HeaderCellInnerWrapper: import("styled-components").StyledComponent<
|
|
5
|
+
export declare const HeaderCellInnerWrapper: import("styled-components").StyledComponent<"button", any, {}, never>;
|
|
6
|
+
export declare const HeaderTitleWrapper: import("styled-components").StyledComponent<({ size, variant, color, component, ellipsis, ...restProps }: import("@redislabsdev/redis-ui-components/dist/Typography/components/Body/Body.types").BodyProps) => import("react/jsx-runtime").JSX.Element, any, {
|
|
7
|
+
$isTextual: boolean;
|
|
8
|
+
}, never>;
|
|
6
9
|
export declare const TableTh: import("styled-components").StyledComponent<"th", any, {}, never>;
|
|
7
10
|
export declare const TableBody: import("styled-components").StyledComponent<"tbody", any, {
|
|
8
11
|
maxHeight?: string | undefined;
|
|
@@ -1,40 +1,50 @@
|
|
|
1
1
|
import _styled, { css } from "styled-components";
|
|
2
|
-
import { useTheme } from "@redislabsdev/redis-ui-styles";
|
|
2
|
+
import { useTheme, getFocusStyle } from "@redislabsdev/redis-ui-styles";
|
|
3
3
|
import { Typography } from "@redislabsdev/redis-ui-components";
|
|
4
4
|
import { ShowOnRowHover } from "./components/ShowOnRowHover/ShowOnRowHover.style.js";
|
|
5
5
|
const TableContainer = _styled.div.withConfig({
|
|
6
6
|
displayName: "Tablestyle__TableContainer",
|
|
7
|
-
componentId: "
|
|
7
|
+
componentId: "RedisUI__sc-o0xfty-0"
|
|
8
8
|
})(["width:100%;border-radius:0.8rem;box-shadow:", ";background-color:", ";overflow:hidden;"], () => useTheme().components.table.table.tableContainer.boxShadow, () => useTheme().components.table.table.tableContainer.backgroundColor);
|
|
9
9
|
const Table = _styled.table.withConfig({
|
|
10
10
|
displayName: "Tablestyle__Table",
|
|
11
|
-
componentId: "
|
|
12
|
-
})(["width:100%;border-collapse:collapse;border-spacing:0;overflow-x:auto;display:block;table-layout:fixed
|
|
11
|
+
componentId: "RedisUI__sc-o0xfty-1"
|
|
12
|
+
})(["width:100%;border-collapse:collapse;border-spacing:0;overflow-x:auto;display:block;table-layout:fixed;"]);
|
|
13
13
|
const TableHead = _styled.thead.withConfig({
|
|
14
14
|
displayName: "Tablestyle__TableHead",
|
|
15
|
-
componentId: "
|
|
15
|
+
componentId: "RedisUI__sc-o0xfty-2"
|
|
16
16
|
})(["display:table;table-layout:fixed;"]);
|
|
17
17
|
const TableHeaderRow = _styled.tr.withConfig({
|
|
18
18
|
displayName: "Tablestyle__TableHeaderRow",
|
|
19
|
-
componentId: "
|
|
19
|
+
componentId: "RedisUI__sc-o0xfty-3"
|
|
20
20
|
})(["height:5.6rem;display:table;width:100%;table-layout:fixed;"]);
|
|
21
|
-
const HeaderCellInnerWrapper = _styled
|
|
21
|
+
const HeaderCellInnerWrapper = _styled.button.withConfig({
|
|
22
22
|
displayName: "Tablestyle__HeaderCellInnerWrapper",
|
|
23
|
-
componentId: "
|
|
24
|
-
})(["display:flex;align-items:center;justify-content:flex-start;height:
|
|
23
|
+
componentId: "RedisUI__sc-o0xfty-4"
|
|
24
|
+
})(["all:unset;border-radius:0.03rem;display:flex;align-items:center;justify-content:flex-start;gap:0.8rem;height:100%;width:100%;min-height:35px;max-width:100%;overflow:hidden;", " svg{flex:none;}"], getFocusStyle("0.6rem"));
|
|
25
|
+
const HeaderTitleWrapper = _styled(Typography.Body).withConfig({
|
|
26
|
+
displayName: "Tablestyle__HeaderTitleWrapper",
|
|
27
|
+
componentId: "RedisUI__sc-o0xfty-5"
|
|
28
|
+
})(["flex:0 1 auto;white-space:inherit;text-align:start;", ""], ({
|
|
29
|
+
$isTextual
|
|
30
|
+
}) => $isTextual ? null : css`
|
|
31
|
+
display: flex;
|
|
32
|
+
align-items: center;
|
|
33
|
+
justify-content: flex-start;
|
|
34
|
+
`);
|
|
25
35
|
const TableTh = _styled.th.withConfig({
|
|
26
36
|
displayName: "Tablestyle__TableTh",
|
|
27
|
-
componentId: "
|
|
28
|
-
})(["padding:1.05rem
|
|
37
|
+
componentId: "RedisUI__sc-o0xfty-6"
|
|
38
|
+
})(["padding:1.05rem 1.2rem;color:", ";user-select:none;white-space:nowrap;word-break:break-word;line-height:normal;position:relative;&:not(:last-child)::after{content:'';position:absolute;inset:1.05rem 0 1.05rem auto;border-right:1px solid ", ";}"], () => useTheme().components.table.table.tableTh.color, () => useTheme().components.table.table.tableTh.borderRight);
|
|
29
39
|
const TableBody = _styled.tbody.withConfig({
|
|
30
40
|
displayName: "Tablestyle__TableBody",
|
|
31
|
-
componentId: "
|
|
41
|
+
componentId: "RedisUI__sc-o0xfty-7"
|
|
32
42
|
})(["max-height:", ";overflow-y:auto;overflow-x:hidden;display:inline-block;table-layout:fixed;"], ({
|
|
33
43
|
maxHeight
|
|
34
44
|
}) => maxHeight);
|
|
35
45
|
const TableBodyRow = _styled.tr.withConfig({
|
|
36
46
|
displayName: "Tablestyle__TableBodyRow",
|
|
37
|
-
componentId: "
|
|
47
|
+
componentId: "RedisUI__sc-o0xfty-8"
|
|
38
48
|
})(["border-top:1px solid ", ";height:4.8rem;transition:box-shadow 0.2s ease-in-out;position:relative;&:hover,&:focus{cursor:", ";z-index:1;box-shadow:", ";", "{opacity:1;visibility:visible;}}", " display:table;width:100%;table-layout:fixed;"], () => useTheme().components.table.table.tableBodyRow.borderTop, ({
|
|
39
49
|
$hasOnClick
|
|
40
50
|
}) => $hasOnClick ? "pointer" : "default", () => useTheme().components.table.table.tableBodyRow.hoverBoxShadow, ShowOnRowHover, ({
|
|
@@ -46,10 +56,11 @@ const TableBodyRow = _styled.tr.withConfig({
|
|
|
46
56
|
`);
|
|
47
57
|
const TableBodyCell = _styled.td.withConfig({
|
|
48
58
|
displayName: "Tablestyle__TableBodyCell",
|
|
49
|
-
componentId: "
|
|
59
|
+
componentId: "RedisUI__sc-o0xfty-9"
|
|
50
60
|
})(["color:", ";padding:0 1.2rem;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;"], () => useTheme().components.table.table.tableBodyCell.color);
|
|
51
61
|
export {
|
|
52
62
|
HeaderCellInnerWrapper,
|
|
63
|
+
HeaderTitleWrapper,
|
|
53
64
|
Table,
|
|
54
65
|
TableBody,
|
|
55
66
|
TableBodyCell,
|
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
import { ComponentType, ReactNode } from 'react';
|
|
2
|
-
import type {
|
|
2
|
+
import type { CellContext, ColumnDef, PaginationState, Row, RowSelectionState, SortingState } from '@tanstack/react-table';
|
|
3
3
|
import type { TableExpandedRowProps } from './components/TableExpandedRow';
|
|
4
|
+
import './tableTypes';
|
|
4
5
|
export type ColumnDefinition<T extends object> = ColumnDef<T>;
|
|
5
6
|
export type RowDefinition<T extends object> = Row<T>;
|
|
6
7
|
export type CellDefinition<T extends object, D> = CellContext<T, D>;
|
|
7
8
|
export type PaginationTypes = PaginationState;
|
|
8
9
|
export type SortingTypes = SortingState;
|
|
9
|
-
export interface
|
|
10
|
-
data: T[];
|
|
11
|
-
columns: ColumnDefinition<T>[];
|
|
12
|
-
onRowClick?: (row: T) => void;
|
|
13
|
-
emptyState?: () => ReactNode;
|
|
10
|
+
export interface TableSortingProps {
|
|
14
11
|
defaultSorting?: SortingState;
|
|
15
|
-
maxHeight?: string;
|
|
16
|
-
stripedRows?: boolean;
|
|
17
12
|
onSortingChange?: (state: SortingState) => void;
|
|
18
13
|
sorting?: SortingState;
|
|
19
14
|
manualSorting?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface TableExpandableRowProps<T extends object> {
|
|
20
17
|
getIsRowExpandable?: (row: T) => boolean;
|
|
21
18
|
renderExpandedRow?: (row: RowDefinition<T>) => ReactNode;
|
|
22
19
|
expandRowOnClick?: boolean;
|
|
23
20
|
expandedRowComponent?: ComponentType<TableExpandedRowProps<T>>;
|
|
21
|
+
}
|
|
22
|
+
interface TablePaginationProps {
|
|
24
23
|
pagination?: PaginationState;
|
|
25
24
|
defaultPagination?: PaginationState;
|
|
26
25
|
onPaginationChange?: (state: PaginationState) => void;
|
|
@@ -29,3 +28,21 @@ export interface TableProps<T extends object> {
|
|
|
29
28
|
pageSizes?: number[];
|
|
30
29
|
paginationEnabled?: boolean;
|
|
31
30
|
}
|
|
31
|
+
interface TableRowSelectionState<T extends object> {
|
|
32
|
+
rowSelection?: RowSelectionState;
|
|
33
|
+
defaultRowSelection?: RowSelectionState;
|
|
34
|
+
onRowSelectionChange?: (state: RowSelectionState) => void;
|
|
35
|
+
rowSelectionMode?: 'single' | 'multiple';
|
|
36
|
+
getRowCanSelect?: (row: Row<T>) => boolean;
|
|
37
|
+
}
|
|
38
|
+
export interface TableProps<T extends object> extends TableSortingProps, TableExpandableRowProps<T>, TablePaginationProps, TableRowSelectionState<T> {
|
|
39
|
+
data: T[];
|
|
40
|
+
columns: ColumnDefinition<T>[];
|
|
41
|
+
getRowId?: (row: T, index: number) => string;
|
|
42
|
+
onRowClick?: (row: T) => void;
|
|
43
|
+
emptyState?: () => ReactNode;
|
|
44
|
+
maxHeight?: string;
|
|
45
|
+
stripedRows?: boolean;
|
|
46
|
+
caption?: string;
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("../../../node_modules/react/jsx-runtime.cjs");
|
|
4
|
+
const TableHeaderCell_utils = require("../TableHeaderCell/TableHeaderCell.utils.cjs");
|
|
5
|
+
const Table_style = require("../../Table.style.cjs");
|
|
6
|
+
const EmptyStateRow = ({
|
|
7
|
+
table,
|
|
8
|
+
emptyState
|
|
9
|
+
}) => jsxRuntime.jsxRuntimeExports.jsx(Table_style.TableBodyRow, {
|
|
10
|
+
"$stripedRows": false,
|
|
11
|
+
children: jsxRuntime.jsxRuntimeExports.jsx(Table_style.TableBodyCell, {
|
|
12
|
+
colSpan: TableHeaderCell_utils.normalizeCellSpan(table.getVisibleLeafColumns().length),
|
|
13
|
+
children: (emptyState == null ? void 0 : emptyState()) ?? "No data to display"
|
|
14
|
+
})
|
|
15
|
+
});
|
|
16
|
+
exports.EmptyStateRow = EmptyStateRow;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { Table } from '@tanstack/react-table';
|
|
3
|
+
type EmptyStateRowProps<T extends object> = {
|
|
4
|
+
table: Table<T>;
|
|
5
|
+
emptyState?: () => ReactNode;
|
|
6
|
+
};
|
|
7
|
+
export declare const EmptyStateRow: <T extends object>({ table, emptyState }: EmptyStateRowProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { j as jsxRuntimeExports } from "../../../node_modules/react/jsx-runtime.js";
|
|
2
|
+
import { normalizeCellSpan } from "../TableHeaderCell/TableHeaderCell.utils.js";
|
|
3
|
+
import { TableBodyRow, TableBodyCell } from "../../Table.style.js";
|
|
4
|
+
const EmptyStateRow = ({
|
|
5
|
+
table,
|
|
6
|
+
emptyState
|
|
7
|
+
}) => jsxRuntimeExports.jsx(TableBodyRow, {
|
|
8
|
+
"$stripedRows": false,
|
|
9
|
+
children: jsxRuntimeExports.jsx(TableBodyCell, {
|
|
10
|
+
colSpan: normalizeCellSpan(table.getVisibleLeafColumns().length),
|
|
11
|
+
children: (emptyState == null ? void 0 : emptyState()) ?? "No data to display"
|
|
12
|
+
})
|
|
13
|
+
});
|
|
14
|
+
export {
|
|
15
|
+
EmptyStateRow
|
|
16
|
+
};
|