@bwp-web/components 1.2.0 → 1.3.1
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 +1 -1
- package/dist/BiampTable/BiampTable.d.ts +43 -3
- package/dist/BiampTable/BiampTable.d.ts.map +1 -1
- package/dist/BiampTable/index.d.ts +1 -1
- package/dist/BiampTable/index.d.ts.map +1 -1
- package/dist/BiampTable/slotProps.d.ts +5 -0
- package/dist/BiampTable/slotProps.d.ts.map +1 -0
- package/dist/index.cjs +158 -83
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +161 -84
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -282,7 +282,7 @@ import BrokenImageIcon from '@mui/icons-material/BrokenImage';
|
|
|
282
282
|
|
|
283
283
|
### BiampTable
|
|
284
284
|
|
|
285
|
-
A composable data table built on TanStack React Table v8 with support for sorting, row selection, pagination, column visibility, global search, column filters, and
|
|
285
|
+
A composable data table built on TanStack React Table v8 with support for sorting, row selection, pagination, column visibility, global search, column filters, CSV export, and per-slot prop overrides for restyling internal MUI elements.
|
|
286
286
|
|
|
287
287
|
Requires `@tanstack/react-table` >= 8.0.0 as a peer dependency.
|
|
288
288
|
|
|
@@ -1,6 +1,29 @@
|
|
|
1
|
-
import { type BoxProps } from '@mui/material';
|
|
2
|
-
import { type Table } from '@tanstack/react-table';
|
|
1
|
+
import { type BoxProps, type TableBodyProps as MuiTableBodyProps, type TableCellProps as MuiTableCellProps, type TableHeadProps as MuiTableHeadProps, type TableProps as MuiTableProps, type TableRowProps as MuiTableRowProps } from '@mui/material';
|
|
2
|
+
import { type Cell, type Header, type Row, type Table } from '@tanstack/react-table';
|
|
3
3
|
import { type ReactNode } from 'react';
|
|
4
|
+
import { type SlotPropsOrFn } from './slotProps';
|
|
5
|
+
export type BiampTableSlotProps<TData> = {
|
|
6
|
+
/** Props merged onto the MUI `<Table>`. `sx` composes with defaults. */
|
|
7
|
+
table?: MuiTableProps;
|
|
8
|
+
/** Props merged onto the `<TableHead>`. `sx` composes with defaults. */
|
|
9
|
+
head?: MuiTableHeadProps;
|
|
10
|
+
/** Props merged onto the `<TableBody>`. `sx` composes with defaults. */
|
|
11
|
+
body?: MuiTableBodyProps;
|
|
12
|
+
/** Props merged onto the header `<TableRow>`. `sx` composes with defaults. */
|
|
13
|
+
headerRow?: MuiTableRowProps;
|
|
14
|
+
/** Props merged onto each header `<TableCell>`. Pass a function for per-column overrides. `sx` composes with defaults. */
|
|
15
|
+
headerCell?: SlotPropsOrFn<MuiTableCellProps, {
|
|
16
|
+
header: Header<TData, unknown>;
|
|
17
|
+
}>;
|
|
18
|
+
/** Props merged onto each body `<TableRow>`. Pass a function for per-row overrides. `sx` composes with defaults. */
|
|
19
|
+
row?: SlotPropsOrFn<MuiTableRowProps, {
|
|
20
|
+
row: Row<TData>;
|
|
21
|
+
}>;
|
|
22
|
+
/** Props merged onto each body `<TableCell>`. Pass a function for per-cell overrides. `sx` composes with defaults. */
|
|
23
|
+
cell?: SlotPropsOrFn<MuiTableCellProps, {
|
|
24
|
+
cell: Cell<TData, unknown>;
|
|
25
|
+
}>;
|
|
26
|
+
};
|
|
4
27
|
type RowClickProps<TData> = {
|
|
5
28
|
/** Called when a clickable body row is clicked. Receives the row's original data. */
|
|
6
29
|
onRowClick: (row: TData) => void;
|
|
@@ -34,7 +57,24 @@ export type BiampTableProps<TData> = BoxProps & RowClickProps<TData> & Selection
|
|
|
34
57
|
empty?: boolean | ReactNode;
|
|
35
58
|
/** Returns a human-readable name for a row, used in ARIA labels (e.g. "Select: Conference Room A"). Falls back to row index. */
|
|
36
59
|
getRowLabel?: (row: TData) => string;
|
|
60
|
+
/**
|
|
61
|
+
* Returns a background color for a row (any valid CSS color). Applied to
|
|
62
|
+
* the row and to all sticky cells (selection column, sticky action columns)
|
|
63
|
+
* so the row reads as a single tinted band. Hover and selected backgrounds
|
|
64
|
+
* override the custom color — whatever the theme defines for those states
|
|
65
|
+
* wins. Use opaque colors so sticky cells fully cover scrolled content.
|
|
66
|
+
* Return `undefined` to leave a row at its default color.
|
|
67
|
+
*/
|
|
68
|
+
setRowColor?: (row: TData) => string | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* Per-slot props merged onto the internal MUI elements (`table`, `head`, `body`,
|
|
71
|
+
* `headerRow`, `headerCell`, `row`, `cell`). `sx` composes with the defaults
|
|
72
|
+
* instead of replacing them. `row`, `cell`, and `headerCell` accept a function
|
|
73
|
+
* of the row/cell/header for data-aware overrides — memoize these callbacks to
|
|
74
|
+
* avoid breaking row memoization.
|
|
75
|
+
*/
|
|
76
|
+
slotProps?: BiampTableSlotProps<TData>;
|
|
37
77
|
};
|
|
38
|
-
export declare function BiampTable<TData>({ table, onRowClick, isRowClickable, loading, error, empty, enableRowSelection, enableExpanding, hideSelectAll, selectChildrenWithParent, getRowLabel, sx, ...boxProps }: BiampTableProps<TData>): import("react/jsx-runtime").JSX.Element;
|
|
78
|
+
export declare function BiampTable<TData>({ table, onRowClick, isRowClickable, loading, error, empty, enableRowSelection, enableExpanding, hideSelectAll, selectChildrenWithParent, getRowLabel, setRowColor, slotProps, sx, ...boxProps }: BiampTableProps<TData>): import("react/jsx-runtime").JSX.Element;
|
|
39
79
|
export {};
|
|
40
80
|
//# sourceMappingURL=BiampTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BiampTable.d.ts","sourceRoot":"","sources":["../../src/BiampTable/BiampTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"BiampTable.d.ts","sourceRoot":"","sources":["../../src/BiampTable/BiampTable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { BiampTable, type BiampTableProps } from './BiampTable';
|
|
1
|
+
export { BiampTable, type BiampTableProps, type BiampTableSlotProps, } from './BiampTable';
|
|
2
2
|
export { BiampTableContainer, type BiampTableContainerProps, } from './BiampTableContainer';
|
|
3
3
|
export { BiampTableCellActionButton, type BiampTableCellActionButtonProps, } from './BiampTableCellActionButton';
|
|
4
4
|
export { BiampTableColumnVisibility, type BiampTableColumnVisibilityProps, getColumnVisibilityDirtyCount, getDefaultColumnVisibility, toVisibilityState, type ColumnVisibility, } from './BiampTableColumnVisibility';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/BiampTable/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/BiampTable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,0BAA0B,EAC1B,KAAK,+BAA+B,GACrC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,0BAA0B,EAC1B,KAAK,+BAA+B,EACpC,6BAA6B,EAC7B,0BAA0B,EAC1B,iBAAiB,EACjB,KAAK,gBAAgB,GACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,iCAAiC,EACjC,KAAK,sCAAsC,GAC5C,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,oBAAoB,EACpB,KAAK,yBAAyB,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,oBAAoB,EACpB,KAAK,yBAAyB,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,oBAAoB,EACpB,KAAK,yBAAyB,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,uBAAuB,EACvB,KAAK,4BAA4B,GAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,6BAA6B,EAC7B,KAAK,kCAAkC,GACxC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,wBAAwB,EACxB,KAAK,6BAA6B,GACnC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,uBAAuB,EACvB,KAAK,4BAA4B,GAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,wBAAwB,EACxB,KAAK,6BAA6B,GACnC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,uBAAuB,EACvB,KAAK,4BAA4B,GAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EACL,uBAAuB,EACvB,KAAK,8BAA8B,GACpC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,cAAc,EACd,cAAc,EACd,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,kCAAkC,EAClC,wBAAwB,EACxB,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SxProps, Theme } from '@mui/material';
|
|
2
|
+
export type SlotPropsOrFn<TProps, TCtx> = TProps | ((ctx: TCtx) => TProps);
|
|
3
|
+
export declare function resolveSlot<TProps, TCtx>(slot: SlotPropsOrFn<TProps, TCtx> | undefined, ctx: TCtx): TProps | undefined;
|
|
4
|
+
export declare function mergeSx(...inputs: Array<SxProps<Theme> | false | null | undefined>): SxProps<Theme>;
|
|
5
|
+
//# sourceMappingURL=slotProps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slotProps.d.ts","sourceRoot":"","sources":["../../src/BiampTable/slotProps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,MAAM,aAAa,CAAC,MAAM,EAAE,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC;AAE3E,wBAAgB,WAAW,CAAC,MAAM,EAAE,IAAI,EACtC,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,EAC7C,GAAG,EAAE,IAAI,GACR,MAAM,GAAG,SAAS,CAGpB;AAED,wBAAgB,OAAO,CACrB,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,GAC1D,OAAO,CAAC,KAAK,CAAC,CAIhB"}
|
package/dist/index.cjs
CHANGED
|
@@ -1086,6 +1086,15 @@ function useLoadingDelay(loading, { delay = 150, minDuration = 500 } = {}) {
|
|
|
1086
1086
|
return status === "loading" || status === "ending";
|
|
1087
1087
|
}
|
|
1088
1088
|
|
|
1089
|
+
// src/BiampTable/slotProps.ts
|
|
1090
|
+
function resolveSlot(slot, ctx) {
|
|
1091
|
+
if (!slot) return void 0;
|
|
1092
|
+
return typeof slot === "function" ? slot(ctx) : slot;
|
|
1093
|
+
}
|
|
1094
|
+
function mergeSx(...inputs) {
|
|
1095
|
+
return inputs.filter((v) => Boolean(v)).flatMap((v) => Array.isArray(v) ? v : [v]);
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1089
1098
|
// src/BiampTable/BiampTable.tsx
|
|
1090
1099
|
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
1091
1100
|
var overlaySx = {
|
|
@@ -1156,42 +1165,71 @@ function BiampTableRowInner({
|
|
|
1156
1165
|
enableExpanding,
|
|
1157
1166
|
selectChildrenWithParent,
|
|
1158
1167
|
getRowLabel,
|
|
1159
|
-
hasExpandableRows
|
|
1168
|
+
hasExpandableRows,
|
|
1169
|
+
customColor,
|
|
1170
|
+
rowSlotProps,
|
|
1171
|
+
cellSlotProps
|
|
1160
1172
|
}) {
|
|
1161
1173
|
const clickable = onRowClick ? isRowClickable ? isRowClickable(row.original) : true : false;
|
|
1174
|
+
const resolvedRow = resolveSlot(rowSlotProps, { row });
|
|
1175
|
+
const {
|
|
1176
|
+
sx: userRowSx,
|
|
1177
|
+
onClick: userRowOnClick,
|
|
1178
|
+
onKeyDown: userRowOnKeyDown,
|
|
1179
|
+
...restRowProps
|
|
1180
|
+
} = resolvedRow ?? {};
|
|
1162
1181
|
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
1163
1182
|
import_material7.TableRow,
|
|
1164
1183
|
{
|
|
1184
|
+
...restRowProps,
|
|
1165
1185
|
hover: clickable,
|
|
1166
1186
|
selected: enableRowSelection ? isSelected : void 0,
|
|
1167
1187
|
role: clickable ? "button" : void 0,
|
|
1168
1188
|
tabIndex: clickable ? 0 : void 0,
|
|
1169
|
-
sx:
|
|
1170
|
-
|
|
1189
|
+
sx: mergeSx(
|
|
1190
|
+
clickable && rowCursorPointerSx,
|
|
1191
|
+
customColor ? { backgroundColor: customColor } : void 0,
|
|
1192
|
+
userRowSx
|
|
1193
|
+
),
|
|
1194
|
+
onClick: clickable && onRowClick ? (e) => {
|
|
1195
|
+
onRowClick(row.original);
|
|
1196
|
+
userRowOnClick?.(e);
|
|
1197
|
+
} : userRowOnClick,
|
|
1171
1198
|
onKeyDown: clickable && onRowClick ? (e) => {
|
|
1172
1199
|
if (e.key === "Enter" || e.key === " ") {
|
|
1173
1200
|
e.preventDefault();
|
|
1174
1201
|
onRowClick(row.original);
|
|
1175
1202
|
}
|
|
1176
|
-
|
|
1203
|
+
userRowOnKeyDown?.(e);
|
|
1204
|
+
} : userRowOnKeyDown,
|
|
1177
1205
|
children: [
|
|
1178
|
-
enableRowSelection && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1179
|
-
import_material7.
|
|
1206
|
+
enableRowSelection && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1207
|
+
import_material7.TableCell,
|
|
1180
1208
|
{
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1209
|
+
padding: "checkbox",
|
|
1210
|
+
sx: mergeSx(
|
|
1211
|
+
selectionCellSx,
|
|
1212
|
+
customColor ? { backgroundColor: customColor } : void 0
|
|
1213
|
+
),
|
|
1214
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1215
|
+
import_material7.Checkbox,
|
|
1216
|
+
{
|
|
1217
|
+
checked: isSelected,
|
|
1218
|
+
disabled: !row.getCanSelect(),
|
|
1219
|
+
onChange: (e) => row.toggleSelected(e.target.checked, {
|
|
1220
|
+
selectChildren: selectChildrenWithParent
|
|
1221
|
+
}),
|
|
1222
|
+
onClick: (e) => e.stopPropagation(),
|
|
1223
|
+
sx: !row.getCanSelect() ? checkboxHiddenSx : void 0,
|
|
1224
|
+
slotProps: {
|
|
1225
|
+
input: {
|
|
1226
|
+
"aria-label": getRowLabel ? `Select ${getRowLabel(row.original)}` : `Select row ${row.index + 1}`
|
|
1227
|
+
}
|
|
1228
|
+
}
|
|
1191
1229
|
}
|
|
1192
|
-
|
|
1230
|
+
)
|
|
1193
1231
|
}
|
|
1194
|
-
)
|
|
1232
|
+
),
|
|
1195
1233
|
row.getVisibleCells().map((cell, cellIndex, cells) => {
|
|
1196
1234
|
const sticky = cell.column.columnDef.meta?.sticky;
|
|
1197
1235
|
const isExpandCell = enableExpanding && !sticky && cellIndex === cells.findIndex((c) => !c.column.columnDef.meta?.sticky);
|
|
@@ -1199,14 +1237,19 @@ function BiampTableRowInner({
|
|
|
1199
1237
|
cell.column.columnDef.cell,
|
|
1200
1238
|
cell.getContext()
|
|
1201
1239
|
);
|
|
1240
|
+
const resolvedCell = resolveSlot(cellSlotProps, { cell });
|
|
1241
|
+
const { sx: userCellSx, ...restCellProps } = resolvedCell ?? {};
|
|
1202
1242
|
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1203
1243
|
import_material7.TableCell,
|
|
1204
1244
|
{
|
|
1245
|
+
...restCellProps,
|
|
1205
1246
|
"data-sticky": sticky || void 0,
|
|
1206
|
-
sx:
|
|
1207
|
-
|
|
1208
|
-
pl: isExpandCell ? "6px" : "12px"
|
|
1209
|
-
|
|
1247
|
+
sx: mergeSx(
|
|
1248
|
+
cellSx(sticky, cell.column.columnDef.meta?.minWidth, 2),
|
|
1249
|
+
{ pl: isExpandCell ? "6px" : "12px" },
|
|
1250
|
+
sticky && customColor ? { backgroundColor: customColor } : void 0,
|
|
1251
|
+
userCellSx
|
|
1252
|
+
),
|
|
1210
1253
|
children: (() => {
|
|
1211
1254
|
if (sticky) return content;
|
|
1212
1255
|
const truncate = cell.column.columnDef.meta?.truncate ?? true;
|
|
@@ -1262,7 +1305,7 @@ function BiampTableRowInner({
|
|
|
1262
1305
|
);
|
|
1263
1306
|
}
|
|
1264
1307
|
function biampTableRowPropsAreEqual(prev, next) {
|
|
1265
|
-
return prev.row.id === next.row.id && prev.row.original === next.row.original && prev.isSelected === next.isSelected && prev.isExpanded === next.isExpanded && prev.row.getVisibleCells().length === next.row.getVisibleCells().length && prev.enableRowSelection === next.enableRowSelection && prev.enableExpanding === next.enableExpanding && prev.hasExpandableRows === next.hasExpandableRows && prev.selectChildrenWithParent === next.selectChildrenWithParent && prev.onRowClick === next.onRowClick && prev.isRowClickable === next.isRowClickable && prev.getRowLabel === next.getRowLabel;
|
|
1308
|
+
return prev.row.id === next.row.id && prev.row.original === next.row.original && prev.isSelected === next.isSelected && prev.isExpanded === next.isExpanded && prev.row.getVisibleCells().length === next.row.getVisibleCells().length && prev.enableRowSelection === next.enableRowSelection && prev.enableExpanding === next.enableExpanding && prev.hasExpandableRows === next.hasExpandableRows && prev.selectChildrenWithParent === next.selectChildrenWithParent && prev.onRowClick === next.onRowClick && prev.isRowClickable === next.isRowClickable && prev.getRowLabel === next.getRowLabel && prev.customColor === next.customColor && prev.rowSlotProps === next.rowSlotProps && prev.cellSlotProps === next.cellSlotProps;
|
|
1266
1309
|
}
|
|
1267
1310
|
var BiampTableRow = import_react4.default.memo(
|
|
1268
1311
|
BiampTableRowInner,
|
|
@@ -1280,9 +1323,15 @@ function BiampTable({
|
|
|
1280
1323
|
hideSelectAll,
|
|
1281
1324
|
selectChildrenWithParent = false,
|
|
1282
1325
|
getRowLabel,
|
|
1326
|
+
setRowColor,
|
|
1327
|
+
slotProps,
|
|
1283
1328
|
sx,
|
|
1284
1329
|
...boxProps
|
|
1285
1330
|
}) {
|
|
1331
|
+
const { sx: userTableSx, ...restTableSlotProps } = slotProps?.table ?? {};
|
|
1332
|
+
const { sx: userHeadSx, ...restHeadSlotProps } = slotProps?.head ?? {};
|
|
1333
|
+
const { sx: userBodySx, ...restBodySlotProps } = slotProps?.body ?? {};
|
|
1334
|
+
const { sx: userHeaderRowSx, ...restHeaderRowSlotProps } = slotProps?.headerRow ?? {};
|
|
1286
1335
|
const tableMinWidth = table.getVisibleLeafColumns().reduce(
|
|
1287
1336
|
(sum, col) => {
|
|
1288
1337
|
const mw = col.columnDef.meta?.minWidth;
|
|
@@ -1314,73 +1363,99 @@ function BiampTable({
|
|
|
1314
1363
|
import_material7.Table,
|
|
1315
1364
|
{
|
|
1316
1365
|
"aria-busy": showLoading || void 0,
|
|
1317
|
-
|
|
1366
|
+
...restTableSlotProps,
|
|
1367
|
+
sx: mergeSx(
|
|
1368
|
+
{ minWidth: tableMinWidth, tableLayout: "auto" },
|
|
1369
|
+
userTableSx
|
|
1370
|
+
),
|
|
1318
1371
|
children: [
|
|
1319
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_material7.TableHead, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
}
|
|
1340
|
-
sx:
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
3
|
|
1344
|
-
),
|
|
1345
|
-
children: header.isPlaceholder ? null : header.column.getCanSort() ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1346
|
-
import_material7.TableSortLabel,
|
|
1372
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_material7.TableHead, { ...restHeadSlotProps, sx: mergeSx(userHeadSx), children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
1373
|
+
import_material7.TableRow,
|
|
1374
|
+
{
|
|
1375
|
+
...restHeaderRowSlotProps,
|
|
1376
|
+
sx: mergeSx(userHeaderRowSx),
|
|
1377
|
+
children: [
|
|
1378
|
+
enableRowSelection && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_material7.TableCell, { padding: "checkbox", sx: headerSelectionCellSx, children: !hideSelectAll && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1379
|
+
import_material7.Checkbox,
|
|
1380
|
+
{
|
|
1381
|
+
checked: table.getIsAllPageRowsSelected(),
|
|
1382
|
+
indeterminate: table.getIsSomePageRowsSelected(),
|
|
1383
|
+
onChange: table.getToggleAllPageRowsSelectedHandler(),
|
|
1384
|
+
sx: rows.length === 0 ? checkboxHiddenHeaderSx : void 0,
|
|
1385
|
+
slotProps: { input: { "aria-label": "Select all rows" } }
|
|
1386
|
+
}
|
|
1387
|
+
) }),
|
|
1388
|
+
headerGroup.headers.map((header) => {
|
|
1389
|
+
const sticky = header.column.columnDef.meta?.sticky;
|
|
1390
|
+
const resolvedHeaderCell = resolveSlot(slotProps?.headerCell, {
|
|
1391
|
+
header
|
|
1392
|
+
});
|
|
1393
|
+
const { sx: userHeaderCellSx, ...restHeaderCellProps } = resolvedHeaderCell ?? {};
|
|
1394
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1395
|
+
import_material7.TableCell,
|
|
1347
1396
|
{
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
...header.column.
|
|
1352
|
-
|
|
1397
|
+
...restHeaderCellProps,
|
|
1398
|
+
"data-sticky": sticky || void 0,
|
|
1399
|
+
sortDirection: header.column.getIsSorted() || false,
|
|
1400
|
+
...header.column.getCanSort() && {
|
|
1401
|
+
"aria-sort": header.column.getIsSorted() ? header.column.getIsSorted() === "asc" ? "ascending" : "descending" : "none"
|
|
1353
1402
|
},
|
|
1354
|
-
|
|
1403
|
+
sx: mergeSx(
|
|
1404
|
+
cellSx(sticky, header.column.columnDef.meta?.minWidth, 3),
|
|
1405
|
+
userHeaderCellSx
|
|
1406
|
+
),
|
|
1407
|
+
children: header.isPlaceholder ? null : header.column.getCanSort() ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1408
|
+
import_material7.TableSortLabel,
|
|
1409
|
+
{
|
|
1410
|
+
active: !!header.column.getIsSorted(),
|
|
1411
|
+
direction: header.column.getIsSorted() || "asc",
|
|
1412
|
+
onClick: header.column.getToggleSortingHandler(),
|
|
1413
|
+
...header.column.getIsSorted() && {
|
|
1414
|
+
IconComponent: header.column.getIsSorted() === "asc" ? import_assets5.DropdownChevronUpIcon : import_assets5.DropdownChevronDownIcon
|
|
1415
|
+
},
|
|
1416
|
+
children: (0, import_react_table.flexRender)(
|
|
1417
|
+
header.column.columnDef.header,
|
|
1418
|
+
header.getContext()
|
|
1419
|
+
)
|
|
1420
|
+
}
|
|
1421
|
+
) : (0, import_react_table.flexRender)(
|
|
1355
1422
|
header.column.columnDef.header,
|
|
1356
1423
|
header.getContext()
|
|
1357
1424
|
)
|
|
1358
|
-
}
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
},
|
|
1364
|
-
header.id
|
|
1365
|
-
);
|
|
1366
|
-
})
|
|
1367
|
-
] }, headerGroup.id)) }),
|
|
1368
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_material7.TableBody, { sx: { opacity: showLoading ? 0.3 : 1 }, children: !showError && rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1369
|
-
BiampTableRow,
|
|
1370
|
-
{
|
|
1371
|
-
row,
|
|
1372
|
-
isExpanded: row.getIsExpanded(),
|
|
1373
|
-
isSelected: row.getIsSelected(),
|
|
1374
|
-
onRowClick,
|
|
1375
|
-
isRowClickable,
|
|
1376
|
-
enableRowSelection,
|
|
1377
|
-
enableExpanding,
|
|
1378
|
-
selectChildrenWithParent,
|
|
1379
|
-
getRowLabel,
|
|
1380
|
-
hasExpandableRows
|
|
1425
|
+
},
|
|
1426
|
+
header.id
|
|
1427
|
+
);
|
|
1428
|
+
})
|
|
1429
|
+
]
|
|
1381
1430
|
},
|
|
1382
|
-
|
|
1383
|
-
)) })
|
|
1431
|
+
headerGroup.id
|
|
1432
|
+
)) }),
|
|
1433
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1434
|
+
import_material7.TableBody,
|
|
1435
|
+
{
|
|
1436
|
+
...restBodySlotProps,
|
|
1437
|
+
sx: mergeSx({ opacity: showLoading ? 0.3 : 1 }, userBodySx),
|
|
1438
|
+
children: !showError && rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1439
|
+
BiampTableRow,
|
|
1440
|
+
{
|
|
1441
|
+
row,
|
|
1442
|
+
isExpanded: row.getIsExpanded(),
|
|
1443
|
+
isSelected: row.getIsSelected(),
|
|
1444
|
+
onRowClick,
|
|
1445
|
+
isRowClickable,
|
|
1446
|
+
enableRowSelection,
|
|
1447
|
+
enableExpanding,
|
|
1448
|
+
selectChildrenWithParent,
|
|
1449
|
+
getRowLabel,
|
|
1450
|
+
hasExpandableRows,
|
|
1451
|
+
customColor: setRowColor?.(row.original),
|
|
1452
|
+
rowSlotProps: slotProps?.row,
|
|
1453
|
+
cellSlotProps: slotProps?.cell
|
|
1454
|
+
},
|
|
1455
|
+
row.id
|
|
1456
|
+
))
|
|
1457
|
+
}
|
|
1458
|
+
)
|
|
1384
1459
|
]
|
|
1385
1460
|
}
|
|
1386
1461
|
),
|