@pdg/react-table 1.0.68 → 1.0.70

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.
@@ -91,7 +91,12 @@ export interface TableProps<T = TableItem> extends CommonSxProps {
91
91
  };
92
92
  sortable?: boolean;
93
93
  onClick?(item: T, index: number): void;
94
+ onGetBodyRowClassName?(item: T, index: number): CommonSxProps['className'] | undefined;
95
+ onGetBodyRowStyle?(item: T, index: number): CommonSxProps['style'] | undefined;
94
96
  onGetBodyRowSx?(item: T, index: number): CommonSxProps['sx'] | undefined;
97
+ onGetBodyColumnClassName?(column: TableColumn<T>, item: T, index: number): CommonSxProps['className'] | undefined;
98
+ onGetBodyColumnStyle?(column: TableColumn<T>, item: T, index: number): CommonSxProps['style'] | undefined;
99
+ onGetBodyColumnSx?(column: TableColumn<T>, item: T, index: number): CommonSxProps['sx'] | undefined;
95
100
  onPageChange?(page: number): void;
96
101
  onSortChange?(items: T[]): void;
97
102
  onCheckChange?(columnId: string, items: T[]): void;
@@ -101,6 +106,7 @@ export interface TableCommands<T = TableItem> {
101
106
  getColumns(): TableProps<T>['columns'];
102
107
  setColumns(columns: TableProps<T>['columns']): void;
103
108
  getItems(): TableProps<T>['items'];
109
+ setItems(items: TableProps<T>['items']): void;
104
110
  getPaging(): TableProps<T>['paging'];
105
111
  setItemsPaging(items: TableProps<T>['items'], paging: TableProps<T>['paging']): void;
106
112
  resetSort(): void;
@@ -1,9 +1,13 @@
1
1
  import { TableColumn, TableItem, TableProps } from '../Table/Table.types';
2
+ import { CommonSxProps } from '../@types';
2
3
  export interface TableBodyCellCommands {
3
4
  setChecked(checked: boolean): void;
4
5
  setCheckDisabled(disabled: boolean): void;
5
6
  }
6
7
  export interface TableBodyCellProps {
8
+ className?: CommonSxProps['className'];
9
+ style?: CommonSxProps['style'];
10
+ sx?: CommonSxProps['sx'];
7
11
  index: number;
8
12
  item: TableItem;
9
13
  column: TableColumn;
@@ -1,15 +1,19 @@
1
1
  import { TableCellProps, TableRowProps } from '@mui/material';
2
2
  import { TableColumn, TableItem, TableProps } from '../Table';
3
3
  import { TableBodyCellProps } from '../TableBodyCell';
4
+ import { CommonSxProps } from '../@types';
4
5
  export interface TableBodyRowProps extends Omit<TableRowProps, 'id' | 'onClick'> {
5
6
  id: string | number;
6
7
  index: number;
7
8
  defaultAlign?: TableCellProps['align'];
8
9
  defaultEllipsis?: boolean;
9
10
  sortable?: boolean;
10
- columns: TableColumn<TableItem>[];
11
+ columns: TableColumn[];
11
12
  item: TableItem;
12
13
  onClick: TableProps['onClick'];
13
14
  onCheckChange: TableBodyCellProps['onCheckChange'];
15
+ onGetColumnClassName?(column: TableColumn, item: TableItem, index: number): CommonSxProps['className'] | undefined;
16
+ onGetColumnStyle?(column: TableColumn, item: TableItem, index: number): CommonSxProps['style'] | undefined;
17
+ onGetColumnSx?(column: TableColumn, item: TableItem, index: number): CommonSxProps['sx'] | undefined;
14
18
  }
15
19
  export declare const TableBodyRowDefaultProps: {};
package/dist/index.esm.js CHANGED
@@ -2953,7 +2953,7 @@ var TableCommonCell = function (_a) {
2953
2953
  var templateObject_1$3;var StyledButtonsBox = styled(Box)(templateObject_1$2 || (templateObject_1$2 = __makeTemplateObject(["\n display: flex;\n flex-wrap: wrap;\n gap: 5px;\n"], ["\n display: flex;\n flex-wrap: wrap;\n gap: 5px;\n"])));
2954
2954
  var TableBodyCell = function (_a) {
2955
2955
  // Use ---------------------------------------------------------------------------------------------------------------
2956
- var item = _a.item, index = _a.index, column = _a.column, defaultAlign = _a.defaultAlign, defaultEllipsis = _a.defaultEllipsis, onClick = _a.onClick, onCheckChange = _a.onCheckChange;
2956
+ var className = _a.className, style = _a.style, sx = _a.sx, item = _a.item, index = _a.index, column = _a.column, defaultAlign = _a.defaultAlign, defaultEllipsis = _a.defaultEllipsis, onClick = _a.onClick, onCheckChange = _a.onCheckChange;
2957
2957
  var _b = useTableState(), menuOpen = _b.menuOpen, setItemColumnChecked = _b.setItemColumnChecked, setItemColumnCheckDisabled = _b.setItemColumnCheckDisabled, setItemColumnCommands = _b.setItemColumnCommands;
2958
2958
  // State -------------------------------------------------------------------------------------------------------------
2959
2959
  var _c = useState(false), checked = _c[0], setChecked = _c[1];
@@ -3118,7 +3118,7 @@ var TableBodyCell = function (_a) {
3118
3118
  }
3119
3119
  }, [column, onClick]);
3120
3120
  // Render ----------------------------------------------------------------------------------------------------------
3121
- return (React__default.createElement(TableCommonCell, { type: 'body', className: 'TableBodyCell', column: column, defaultAlign: defaultAlign, defaultEllipsis: defaultEllipsis, item: item, index: index, onClick: column.onClick || onClick ? handleClick : undefined }, !isHidden && data));
3121
+ return (React__default.createElement(TableCommonCell, { type: 'body', className: classNames('TableBodyCell', className), style: style, sx: sx, column: column, defaultAlign: defaultAlign, defaultEllipsis: defaultEllipsis, item: item, index: index, onClick: column.onClick || onClick ? handleClick : undefined }, !isHidden && data));
3122
3122
  };
3123
3123
  var templateObject_1$2;var StyledBodyRow = styled(TableRow)(function (_a) {
3124
3124
  var theme = _a.theme;
@@ -3134,9 +3134,9 @@ var templateObject_1$2;var StyledBodyRow = styled(TableRow)(function (_a) {
3134
3134
  var TableBodyRow = function (_a) {
3135
3135
  var className = _a.className, style = _a.style,
3136
3136
  //--------------------------------------------------------------------------------------------------------------------
3137
- id = _a.id, index = _a.index, defaultAlign = _a.defaultAlign, defaultEllipsis = _a.defaultEllipsis, sortable = _a.sortable, columns = _a.columns, item = _a.item, onClick = _a.onClick, onCheckChange = _a.onCheckChange,
3137
+ id = _a.id, index = _a.index, defaultAlign = _a.defaultAlign, defaultEllipsis = _a.defaultEllipsis, sortable = _a.sortable, columns = _a.columns, item = _a.item, onClick = _a.onClick, onCheckChange = _a.onCheckChange, onGetColumnClassName = _a.onGetColumnClassName, onGetColumnStyle = _a.onGetColumnStyle, onGetColumnSx = _a.onGetColumnSx,
3138
3138
  // -------------------------------------------------------------------------------------------------------------------
3139
- props = __rest$2(_a, ["className", "style", "id", "index", "defaultAlign", "defaultEllipsis", "sortable", "columns", "item", "onClick", "onCheckChange"]);
3139
+ props = __rest$2(_a, ["className", "style", "id", "index", "defaultAlign", "defaultEllipsis", "sortable", "columns", "item", "onClick", "onCheckChange", "onGetColumnClassName", "onGetColumnStyle", "onGetColumnSx"]);
3140
3140
  var _b = useSortable({ id: id }), attributes = _b.attributes, listeners = _b.listeners, setNodeRef = _b.setNodeRef, transform = _b.transform, transition = _b.transition;
3141
3141
  var finalStyle = useMemo(function () {
3142
3142
  return sortable
@@ -3146,7 +3146,7 @@ var TableBodyRow = function (_a) {
3146
3146
  return sortable
3147
3147
  ? __assign$3(__assign$3({ ref: setNodeRef }, attributes), listeners) : {};
3148
3148
  }, [attributes, listeners, setNodeRef, sortable]);
3149
- return (React__default.createElement(StyledBodyRow, __assign$3({ className: classNames('TableBodyRow', className), style: finalStyle }, props, sortableProps), columns.map(function (column, columnIdx) { return (React__default.createElement(TableBodyCell, { key: columnIdx, index: index, item: item, defaultAlign: defaultAlign, defaultEllipsis: defaultEllipsis, column: column, onClick: onClick, onCheckChange: onCheckChange })); })));
3149
+ return (React__default.createElement(StyledBodyRow, __assign$3({ className: classNames('TableBodyRow', className), style: finalStyle }, props, sortableProps), columns.map(function (column, columnIdx) { return (React__default.createElement(TableBodyCell, { className: onGetColumnClassName ? onGetColumnClassName(column, item, index) : undefined, sx: onGetColumnSx ? onGetColumnSx(column, item, index) : undefined, style: onGetColumnStyle ? onGetColumnStyle(column, item, index) : undefined, key: columnIdx, index: index, item: item, defaultAlign: defaultAlign, defaultEllipsis: defaultEllipsis, column: column, onClick: onClick, onCheckChange: onCheckChange })); })));
3150
3150
  };
3151
3151
  TableBodyRow.displayName = 'TableBodyRow';
3152
3152
  TableBodyRow.defaultProps = TableBodyRowDefaultProps;var TableFooterCell = function (_a) {
@@ -3470,7 +3470,7 @@ var templateObject_1$1;function columnFilter(v) {
3470
3470
  var _columnId = 0;
3471
3471
  var Table = React__default.forwardRef(function (_a, ref) {
3472
3472
  // Ref ---------------------------------------------------------------------------------------------------------------
3473
- var caption = _a.caption, topHeadRows = _a.topHeadRows, initColumns = _a.columns, initItems = _a.items, initPaging = _a.paging, pagingAlign = _a.pagingAlign, defaultAlign = _a.defaultAlign, defaultEllipsis = _a.defaultEllipsis, initStickyHeader = _a.stickyHeader, height = _a.height, minHeight = _a.minHeight, maxHeight = _a.maxHeight, fullHeight = _a.fullHeight, showOddColor = _a.showOddColor, showEvenColor = _a.showEvenColor, cellPadding = _a.cellPadding, footer = _a.footer, noData = _a.noData, pagination = _a.pagination, sortable = _a.sortable, onClick = _a.onClick, onGetBodyRowSx = _a.onGetBodyRowSx, onPageChange = _a.onPageChange, onSortChange = _a.onSortChange, onCheckChange = _a.onCheckChange,
3473
+ var caption = _a.caption, topHeadRows = _a.topHeadRows, initColumns = _a.columns, initItems = _a.items, initPaging = _a.paging, pagingAlign = _a.pagingAlign, defaultAlign = _a.defaultAlign, defaultEllipsis = _a.defaultEllipsis, initStickyHeader = _a.stickyHeader, height = _a.height, minHeight = _a.minHeight, maxHeight = _a.maxHeight, fullHeight = _a.fullHeight, showOddColor = _a.showOddColor, showEvenColor = _a.showEvenColor, cellPadding = _a.cellPadding, footer = _a.footer, noData = _a.noData, pagination = _a.pagination, sortable = _a.sortable, onClick = _a.onClick, onGetBodyRowClassName = _a.onGetBodyRowClassName, onGetBodyRowStyle = _a.onGetBodyRowStyle, onGetBodyRowSx = _a.onGetBodyRowSx, onGetBodyColumnClassName = _a.onGetBodyColumnClassName, onGetBodyColumnStyle = _a.onGetBodyColumnStyle, onGetBodyColumnSx = _a.onGetBodyColumnSx, onPageChange = _a.onPageChange, onSortChange = _a.onSortChange, onCheckChange = _a.onCheckChange,
3474
3474
  // ---------------------------------------------------------------------------------------------------------------
3475
3475
  className = _a.className, initStyle = _a.style, sx = _a.sx;
3476
3476
  var localHeaderDataRef = useRef({});
@@ -3731,6 +3731,10 @@ var Table = React__default.forwardRef(function (_a, ref) {
3731
3731
  setColumns(lastColumns_1);
3732
3732
  },
3733
3733
  getItems: function () { return lastItems_1; },
3734
+ setItems: function (items) {
3735
+ lastItems_1 = items;
3736
+ setItems(items);
3737
+ },
3734
3738
  getPaging: function () { return lastPaging_1; },
3735
3739
  setItemsPaging: function (items, paging) {
3736
3740
  lastItems_1 = items;
@@ -3926,7 +3930,7 @@ var Table = React__default.forwardRef(function (_a, ref) {
3926
3930
  return finalColumns && (React__default.createElement(TableTopHead, { caption: caption, rows: topHeadRows, columns: finalColumns, defaultAlign: defaultAlign, onCheckChange: handleHeadCheckChange }));
3927
3931
  }, [caption, defaultAlign, finalColumns, handleHeadCheckChange, topHeadRows]);
3928
3932
  var tableBody = useMemo(function () {
3929
- return finalColumns && (React__default.createElement(TableBody, null, sortableItems ? (sortableItems.length > 0 ? (React__default.createElement(SortableContext, { items: sortableItems, strategy: verticalListSortingStrategy }, sortableItems.map(function (item, idx) { return (React__default.createElement(TableBodyRow, { key: item.id, className: classNames(!!showOddColor && 'odd-color', !!showEvenColor && 'even-color'), hover: true, sx: onGetBodyRowSx ? onGetBodyRowSx(item, idx) : undefined, id: item.id, index: idx, defaultAlign: defaultAlign, defaultEllipsis: defaultEllipsis, sortable: sortable, columns: finalColumns, item: item, onClick: onClick, onCheckChange: handleBodyCheckChange })); }))) : (React__default.createElement(StyledBodyRow$1, null,
3933
+ return finalColumns && (React__default.createElement(TableBody, null, sortableItems ? (sortableItems.length > 0 ? (React__default.createElement(SortableContext, { items: sortableItems, strategy: verticalListSortingStrategy }, sortableItems.map(function (item, idx) { return (React__default.createElement(TableBodyRow, { key: item.id, className: classNames(!!showOddColor && 'odd-color', !!showEvenColor && 'even-color', onGetBodyRowClassName ? onGetBodyRowClassName(item, idx) : undefined), style: onGetBodyRowStyle ? onGetBodyRowStyle(item, idx) : undefined, sx: onGetBodyRowSx ? onGetBodyRowSx(item, idx) : undefined, onGetColumnClassName: onGetBodyColumnClassName, onGetColumnStyle: onGetBodyColumnStyle, onGetColumnSx: onGetBodyColumnSx, hover: true, id: item.id, index: idx, defaultAlign: defaultAlign, defaultEllipsis: defaultEllipsis, sortable: sortable, columns: finalColumns, item: item, onClick: onClick, onCheckChange: handleBodyCheckChange })); }))) : (React__default.createElement(StyledBodyRow$1, null,
3930
3934
  React__default.createElement(TableCell, { colSpan: finalColumns.length, style: { flex: 1 } }, noData ? (noData) : (React__default.createElement(StyledNoDataDiv, null,
3931
3935
  React__default.createElement("div", null,
3932
3936
  React__default.createElement(Icon, null, "error")),
@@ -3938,6 +3942,11 @@ var Table = React__default.forwardRef(function (_a, ref) {
3938
3942
  handleBodyCheckChange,
3939
3943
  noData,
3940
3944
  onClick,
3945
+ onGetBodyColumnClassName,
3946
+ onGetBodyColumnStyle,
3947
+ onGetBodyColumnSx,
3948
+ onGetBodyRowClassName,
3949
+ onGetBodyRowStyle,
3941
3950
  onGetBodyRowSx,
3942
3951
  showEvenColor,
3943
3952
  showOddColor,