@pdg/react-table 1.0.48 → 1.0.50

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/index.js CHANGED
@@ -3037,55 +3037,7 @@ var TableBodyRow = function (_a) {
3037
3037
  return (React.createElement(StyledBodyRow, __assign$3({ className: classNames('TableBodyRow', className), style: finalStyle }, props, sortableProps), columns.map(function (column, columnIdx) { return (React.createElement(TableBodyCell, { key: columnIdx, index: index, item: item, defaultAlign: defaultAlign, defaultEllipsis: defaultEllipsis, column: column, onClick: onClick, onCheckChange: onCheckChange })); })));
3038
3038
  };
3039
3039
  TableBodyRow.displayName = 'TableBodyRow';
3040
- TableBodyRow.defaultProps = TableBodyRowDefaultProps;var TableHeadCell = function (_a) {
3041
- // Use ---------------------------------------------------------------------------------------------------------------
3042
- var column = _a.column, defaultAlign = _a.defaultAlign, top = _a.top, onCheckChange = _a.onCheckChange;
3043
- var _b = useTableState(), setHeadColumnChecked = _b.setHeadColumnChecked, setHeadColumnCommands = _b.setHeadColumnCommands;
3044
- // State -------------------------------------------------------------------------------------------------------------
3045
- var _c = React.useState(false), checked = _c[0], setChecked = _c[1];
3046
- var _d = React.useState(false), checkDisabled = _d[0], setCheckDisabled = _d[1];
3047
- // Effect ------------------------------------------------------------------------------------------------------------
3048
- React.useEffect(function () {
3049
- if (column.type === 'check') {
3050
- setHeadColumnChecked(column, checked);
3051
- }
3052
- }, [column, checked, setHeadColumnChecked]);
3053
- React.useEffect(function () {
3054
- setHeadColumnCommands(column, {
3055
- setChecked: function (checked) {
3056
- if (column.type === 'check') {
3057
- setChecked(checked);
3058
- }
3059
- },
3060
- setCheckDisabled: function (checkDisabled) {
3061
- if (column.type === 'check') {
3062
- setCheckDisabled(checkDisabled);
3063
- }
3064
- },
3065
- });
3066
- }, [setHeadColumnCommands, column]);
3067
- // Memo --------------------------------------------------------------------------------------------------------------
3068
- var style = React.useMemo(function () { return (top !== undefined ? { top: top } : undefined); }, [top]);
3069
- var data = React.useMemo(function () {
3070
- var _a, _b;
3071
- if (column.type === 'check') {
3072
- return (React.createElement(material.Checkbox, { checked: checked, disabled: checkDisabled, onChange: function (e, newChecked) {
3073
- setChecked(newChecked);
3074
- onCheckChange && onCheckChange(column, newChecked);
3075
- } }));
3076
- }
3077
- else {
3078
- if ((_a = column.head) === null || _a === void 0 ? void 0 : _a.onRender) {
3079
- return (_b = column.head) === null || _b === void 0 ? void 0 : _b.onRender();
3080
- }
3081
- else {
3082
- return column.label;
3083
- }
3084
- }
3085
- }, [checkDisabled, checked, column, onCheckChange]);
3086
- // Render ------------------------------------------------------------------------------------------------------------
3087
- return (React.createElement(TableCommonCell, { type: 'head', className: 'TableHeadCell', style: style, column: column, defaultAlign: defaultAlign }, data));
3088
- };var TableFooterCell = function (_a) {
3040
+ TableBodyRow.defaultProps = TableBodyRowDefaultProps;var TableFooterCell = function (_a) {
3089
3041
  var column = _a.column, defaultAlign = _a.defaultAlign;
3090
3042
  var data = React.useMemo(function () {
3091
3043
  var _a, _b, _c;
@@ -3261,19 +3213,65 @@ var native = {
3261
3213
  fontWeight: 700,
3262
3214
  },
3263
3215
  });
3264
- });var BottomLine = material.styled('div')(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["\n height: 1px;\n position: absolute;\n left: 3px;\n right: 3px;\n bottom: 0;\n"], ["\n height: 1px;\n position: absolute;\n left: 3px;\n right: 3px;\n bottom: 0;\n"])));
3216
+ });var TableHeadCell = function (_a) {
3217
+ // Use ---------------------------------------------------------------------------------------------------------------
3218
+ var column = _a.column, defaultAlign = _a.defaultAlign, top = _a.top, onCheckChange = _a.onCheckChange;
3219
+ var _b = useTableState(), setHeadColumnChecked = _b.setHeadColumnChecked, setHeadColumnCommands = _b.setHeadColumnCommands;
3220
+ // State -------------------------------------------------------------------------------------------------------------
3221
+ var _c = React.useState(false), checked = _c[0], setChecked = _c[1];
3222
+ var _d = React.useState(false), checkDisabled = _d[0], setCheckDisabled = _d[1];
3223
+ // Effect ------------------------------------------------------------------------------------------------------------
3224
+ React.useEffect(function () {
3225
+ if (column.type === 'check') {
3226
+ setHeadColumnChecked(column, checked);
3227
+ }
3228
+ }, [column, checked, setHeadColumnChecked]);
3229
+ React.useEffect(function () {
3230
+ setHeadColumnCommands(column, {
3231
+ setChecked: function (checked) {
3232
+ if (column.type === 'check') {
3233
+ setChecked(checked);
3234
+ }
3235
+ },
3236
+ setCheckDisabled: function (checkDisabled) {
3237
+ if (column.type === 'check') {
3238
+ setCheckDisabled(checkDisabled);
3239
+ }
3240
+ },
3241
+ });
3242
+ }, [setHeadColumnCommands, column]);
3243
+ // Memo --------------------------------------------------------------------------------------------------------------
3244
+ var style = React.useMemo(function () { return (top !== undefined ? { top: top } : undefined); }, [top]);
3245
+ var data = React.useMemo(function () {
3246
+ var _a, _b;
3247
+ if (column.type === 'check') {
3248
+ return (React.createElement(material.Checkbox, { checked: checked, disabled: checkDisabled, onChange: function (e, newChecked) {
3249
+ setChecked(newChecked);
3250
+ onCheckChange && onCheckChange(column, newChecked);
3251
+ } }));
3252
+ }
3253
+ else {
3254
+ if ((_a = column.head) === null || _a === void 0 ? void 0 : _a.onRender) {
3255
+ return (_b = column.head) === null || _b === void 0 ? void 0 : _b.onRender();
3256
+ }
3257
+ else {
3258
+ return column.label;
3259
+ }
3260
+ }
3261
+ }, [checkDisabled, checked, column, onCheckChange]);
3262
+ // Render ------------------------------------------------------------------------------------------------------------
3263
+ return (React.createElement(TableCommonCell, { type: 'head', className: 'TableHeadCell', style: style, column: column, defaultAlign: defaultAlign }, data));
3264
+ };var BottomLine = material.styled('div')(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["\n height: 1px;\n position: absolute;\n left: 3px;\n right: 3px;\n bottom: 0;\n"], ["\n height: 1px;\n position: absolute;\n left: 3px;\n right: 3px;\n bottom: 0;\n"])));
3265
3265
  var TableTopHead = function (_a) {
3266
3266
  // Use ---------------------------------------------------------------------------------------------------------------
3267
- var columnLength = _a.columnLength, rows = _a.rows, caption = _a.caption, onHeightChange = _a.onHeightChange;
3267
+ var columns = _a.columns, rows = _a.rows, caption = _a.caption, defaultAlign = _a.defaultAlign, onCheckChange = _a.onCheckChange;
3268
3268
  var theme = material.useTheme();
3269
3269
  // Ref ---------------------------------------------------------------------------------------------------------------
3270
- var headRef = React.useRef(null);
3271
3270
  var captionRef = React.useRef(null);
3272
3271
  var row1Ref = React.useRef(null);
3273
3272
  var row2Ref = React.useRef(null);
3274
3273
  var row3Ref = React.useRef(null);
3275
3274
  // ResizeDetector ----------------------------------------------------------------------------------------------------
3276
- var headHeight = useResizeDetector({ targetRef: headRef, handleWidth: false, handleHeight: true }).height;
3277
3275
  var captionHeight = useResizeDetector({
3278
3276
  targetRef: captionRef,
3279
3277
  handleWidth: false,
@@ -3282,15 +3280,11 @@ var TableTopHead = function (_a) {
3282
3280
  var row1Height = useResizeDetector({ targetRef: row1Ref, handleWidth: false, handleHeight: true }).height;
3283
3281
  var row2Height = useResizeDetector({ targetRef: row2Ref, handleWidth: false, handleHeight: true }).height;
3284
3282
  var row3Height = useResizeDetector({ targetRef: row3Ref, handleWidth: false, handleHeight: true }).height;
3285
- React.useEffect(function () {
3286
- onHeightChange && onHeightChange(headHeight || 0);
3287
- // eslint-disable-next-line react-hooks/exhaustive-deps
3288
- }, [headHeight]);
3289
3283
  // Function ----------------------------------------------------------------------------------------------------------
3290
3284
  var captionRow = React.useMemo(function () {
3291
3285
  return !!caption && (React.createElement(TableTopHeadCaptionRow, { ref: captionRef, className: 'TableTopHeadCaptionRow' },
3292
- React.createElement(material.TableCell, { colSpan: columnLength }, caption)));
3293
- }, [caption, columnLength]);
3286
+ React.createElement(material.TableCell, { colSpan: columns.length }, caption)));
3287
+ }, [caption, columns]);
3294
3288
  var makeRowCells = React.useCallback(function (row, top) {
3295
3289
  var cells = row
3296
3290
  .map(function (info, idx) {
@@ -3302,17 +3296,19 @@ var TableTopHead = function (_a) {
3302
3296
  info.label != null && React.createElement(BottomLine, { style: { backgroundColor: theme.palette.divider } })));
3303
3297
  })
3304
3298
  .filter(function (cell) { return !!cell; });
3305
- if (cells.length < columnLength) {
3306
- cells.push(React.createElement(material.TableCell, { key: columnLength, colSpan: columnLength - cells.length, style: { top: top, borderBottom: 0 } }));
3299
+ if (cells.length < columns.length) {
3300
+ cells.push(React.createElement(material.TableCell, { key: columns.length, colSpan: columns.length - cells.length, style: { top: top, borderBottom: 0 } }));
3307
3301
  }
3308
3302
  return cells;
3309
- }, [columnLength, theme.palette.divider]);
3303
+ }, [columns, theme.palette.divider]);
3304
+ var columnRow = React.useMemo(function () {
3305
+ var top = (captionHeight || 0) + (row1Height || 0) + (row2Height || 0) + (row3Height || 0);
3306
+ return (React.createElement(material.TableRow, null, columns.map(function (column, idx) { return (React.createElement(TableHeadCell, { key: idx, column: column, defaultAlign: defaultAlign, top: top, onCheckChange: onCheckChange })); })));
3307
+ }, [captionHeight, columns, defaultAlign, onCheckChange, row1Height, row2Height, row3Height]);
3310
3308
  // Render ------------------------------------------------------------------------------------------------------------
3311
- if ((!rows || rows.length === 0) && caption === null)
3312
- return null;
3313
3309
  if (rows) {
3314
3310
  if (Array.isArray(rows[0])) {
3315
- return (React.createElement(material.TableHead, { className: 'TableTopHead', ref: headRef },
3311
+ return (React.createElement(material.TableHead, { className: 'TableHead' },
3316
3312
  captionRow,
3317
3313
  rows.map(function (row, idx) {
3318
3314
  var ref = undefined;
@@ -3333,17 +3329,20 @@ var TableTopHead = function (_a) {
3333
3329
  case 3:
3334
3330
  top = (captionHeight || 0) + (row1Height || 0) + (row2Height || 0) + (row3Height || 0);
3335
3331
  }
3336
- return (React.createElement(material.TableRow, { key: idx, ref: ref, className: 'TableTopHeadRow' }, makeRowCells(row, top)));
3332
+ return (React.createElement(material.TableRow, { key: idx, ref: ref, className: 'TableHeadRow' }, makeRowCells(row, top)));
3337
3333
  })));
3338
3334
  }
3339
3335
  else {
3340
- return (React.createElement(material.TableHead, { className: 'TableTopHead', ref: headRef },
3336
+ return (React.createElement(material.TableHead, { className: 'TableHead' },
3341
3337
  captionRow,
3342
- React.createElement(material.TableRow, { className: 'TableTopHeadRow' }, makeRowCells(rows, captionHeight))));
3338
+ React.createElement(material.TableRow, { ref: row1Ref, className: 'TableHeadRow' }, makeRowCells(rows, captionHeight)),
3339
+ columnRow));
3343
3340
  }
3344
3341
  }
3345
3342
  else {
3346
- return (React.createElement(material.TableHead, { className: 'TableTopHead', ref: headRef }, captionRow));
3343
+ return (React.createElement(material.TableHead, { className: 'TableHead' },
3344
+ captionRow,
3345
+ columnRow));
3347
3346
  }
3348
3347
  };
3349
3348
  TableTopHead.displayName = 'TableTopHead';
@@ -3379,9 +3378,8 @@ var Table = React.forwardRef(function (_a, ref) {
3379
3378
  // State -------------------------------------------------------------------------------------------------------------
3380
3379
  var _b = React.useState(false), menuOpen = _b[0], setMenuOpen = _b[1];
3381
3380
  var _c = React.useState(undefined), openMenuId = _c[0], setOpenMenuId = _c[1];
3382
- var _d = React.useState(0), topHeadHeight = _d[0], setTopHeadHeight = _d[1];
3383
3381
  // State - containerHeight -------------------------------------------------------------------------------------------
3384
- var _e = React.useState(), containerHeight = _e[0], setContainerHeight = _e[1];
3382
+ var _d = React.useState(), containerHeight = _d[0], setContainerHeight = _d[1];
3385
3383
  var containerHeightDetector = useResizeDetector({
3386
3384
  handleHeight: true,
3387
3385
  handleWidth: false,
@@ -3395,7 +3393,7 @@ var Table = React.forwardRef(function (_a, ref) {
3395
3393
  },
3396
3394
  }).ref;
3397
3395
  // State - footerHeight --------------------------------------------------------------------------------------------
3398
- var _f = React.useState(), pagingHeight = _f[0], setPagingHeight = _f[1];
3396
+ var _e = React.useState(), pagingHeight = _e[0], setPagingHeight = _e[1];
3399
3397
  var pagingHeightResizeDetector = useResizeDetector({
3400
3398
  handleHeight: true,
3401
3399
  handleWidth: false,
@@ -3409,11 +3407,11 @@ var Table = React.forwardRef(function (_a, ref) {
3409
3407
  },
3410
3408
  }).ref;
3411
3409
  // State -----------------------------------------------------------------------------------------------------------
3412
- var _g = useAutoUpdateLayoutState(initColumns), columns = _g[0], setColumns = _g[1];
3413
- var _h = React.useState(), finalColumns = _h[0], setFinalColumns = _h[1];
3414
- var _j = useAutoUpdateLayoutState(initItems), items = _j[0], setItems = _j[1];
3415
- var _k = React.useState(), sortableItems = _k[0], setSortableItems = _k[1];
3416
- var _l = useAutoUpdateLayoutState(initPaging), paging = _l[0], setPaging = _l[1];
3410
+ var _f = useAutoUpdateLayoutState(initColumns), columns = _f[0], setColumns = _f[1];
3411
+ var _g = React.useState(), finalColumns = _g[0], setFinalColumns = _g[1];
3412
+ var _h = useAutoUpdateLayoutState(initItems), items = _h[0], setItems = _h[1];
3413
+ var _j = React.useState(), sortableItems = _j[0], setSortableItems = _j[1];
3414
+ var _k = useAutoUpdateLayoutState(initPaging), paging = _k[0], setPaging = _k[1];
3417
3415
  // Memo --------------------------------------------------------------------------------------------------------------
3418
3416
  var tableSx = React.useMemo(function () {
3419
3417
  var sx = {
@@ -3785,12 +3783,8 @@ var Table = React.forwardRef(function (_a, ref) {
3785
3783
  return style;
3786
3784
  }, [fullHeight]);
3787
3785
  var tableTopHead = React.useMemo(function () {
3788
- return finalColumns && (React.createElement(TableTopHead, { columnLength: finalColumns.length, caption: caption, rows: topHeadRows, onHeightChange: setTopHeadHeight }));
3789
- }, [caption, finalColumns, topHeadRows]);
3790
- var tableHead = React.useMemo(function () {
3791
- return finalColumns && (React.createElement(material.TableHead, null,
3792
- React.createElement(material.TableRow, null, finalColumns.map(function (column, idx) { return (React.createElement(TableHeadCell, { key: idx, column: column, defaultAlign: defaultAlign, top: stickyHeader ? topHeadHeight : undefined, onCheckChange: handleHeadCheckChange })); }))));
3793
- }, [defaultAlign, finalColumns, handleHeadCheckChange, stickyHeader, topHeadHeight]);
3786
+ return finalColumns && (React.createElement(TableTopHead, { caption: caption, rows: topHeadRows, columns: finalColumns, defaultAlign: defaultAlign, onCheckChange: handleHeadCheckChange }));
3787
+ }, [caption, defaultAlign, finalColumns, handleHeadCheckChange, topHeadRows]);
3794
3788
  var tableBody = React.useMemo(function () {
3795
3789
  return finalColumns && (React.createElement(material.TableBody, null, sortableItems ? (sortableItems.length > 0 ? (React.createElement(sortable.SortableContext, { items: sortableItems, strategy: sortable.verticalListSortingStrategy }, sortableItems.map(function (item, idx) { return (React.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$1, columns: finalColumns, item: item, onClick: onClick, onCheckChange: handleBodyCheckChange })); }))) : (React.createElement(StyledBodyRow$1, null,
3796
3790
  React.createElement(material.TableCell, { colSpan: finalColumns.length, style: { flex: 1 } }, noData ? (noData) : (React.createElement(StyledNoDataDiv, null,
@@ -3840,7 +3834,6 @@ var Table = React.forwardRef(function (_a, ref) {
3840
3834
  React.createElement(core.DndContext, { sensors: sensors, collisionDetection: core.closestCenter, onDragEnd: handleDragEnd },
3841
3835
  React.createElement(material.Table, { stickyHeader: stickyHeader, sx: tableSx, style: tableStyle },
3842
3836
  tableTopHead,
3843
- tableHead,
3844
3837
  tableBody,
3845
3838
  tableFooter))),
3846
3839
  tablePaging))) : null;