@pdg/react-table 1.0.65 → 1.0.67

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
@@ -3021,6 +3021,16 @@ var TableBodyCell = function (_a) {
3021
3021
  if (typeof data === 'string' || typeof data === 'number') {
3022
3022
  data = numberWithThousandSeparator(data);
3023
3023
  }
3024
+ if (column.numberPrefix) {
3025
+ data = (React.createElement(React.Fragment, null,
3026
+ React.createElement("span", { style: { opacity: 0.5, marginRight: 2 } }, column.numberPrefix),
3027
+ data));
3028
+ }
3029
+ if (column.numberSuffix) {
3030
+ data = (React.createElement(React.Fragment, null,
3031
+ data,
3032
+ React.createElement("span", { style: { opacity: 0.5, marginLeft: 2 } }, column.numberSuffix)));
3033
+ }
3024
3034
  break;
3025
3035
  case 'tel':
3026
3036
  if (typeof data === 'string') {
@@ -3041,8 +3051,6 @@ var TableBodyCell = function (_a) {
3041
3051
  case 'buttons':
3042
3052
  data = (React.createElement(StyledButtonsBox, { className: 'TableBodyCell-buttons-box', justifyContent: buttonsBoxJustifyContent, onClick: menuOpen ? undefined : function (e) { return e.stopPropagation(); } }, data));
3043
3053
  break;
3044
- }
3045
- switch (column.type) {
3046
3054
  case 'img':
3047
3055
  {
3048
3056
  var img = React.createElement("img", { src: data, style: { maxWidth: '100%', verticalAlign: 'middle' }, alt: '' });
@@ -3459,6 +3467,7 @@ TableTopHead.defaultProps = TableTopHeadDefaultProps;
3459
3467
  var templateObject_1$1;function columnFilter(v) {
3460
3468
  return v !== undefined && v !== null && v !== false;
3461
3469
  }
3470
+ var _columnId = 0;
3462
3471
  var Table = React.forwardRef(function (_a, ref) {
3463
3472
  // Ref ---------------------------------------------------------------------------------------------------------------
3464
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$1 = _a.sortable, onClick = _a.onClick, onGetBodyRowSx = _a.onGetBodyRowSx, onPageChange = _a.onPageChange, onSortChange = _a.onSortChange, onCheckChange = _a.onCheckChange,
@@ -3469,6 +3478,7 @@ var Table = React.forwardRef(function (_a, ref) {
3469
3478
  var updateHeadCheckTimer = React.useRef();
3470
3479
  var fireOnCheckChangeTimer = React.useRef({});
3471
3480
  var simpleBarRef = React.useRef(null);
3481
+ var finalColumnsIdRef = React.useRef([]);
3472
3482
  // sortable --------------------------------------------------------------------------------------------------------
3473
3483
  var sensors = core.useSensors(core.useSensor(core.MouseSensor, {
3474
3484
  // Require the mouse to move by 10 pixels before activating
@@ -3539,18 +3549,28 @@ var Table = React.forwardRef(function (_a, ref) {
3539
3549
  return __assign$3({ id: id == null ? "".concat(v4(), "_").concat(index) : id }, item);
3540
3550
  });
3541
3551
  }, []);
3552
+ var getFinalColumnId = React.useCallback(function (column) {
3553
+ if (finalColumns && finalColumnsIdRef.current) {
3554
+ var idx = finalColumns.indexOf(column);
3555
+ return finalColumnsIdRef.current[idx];
3556
+ }
3557
+ else {
3558
+ return '';
3559
+ }
3560
+ }, [finalColumns]);
3542
3561
  var updateHeadCheck = React.useCallback(function (column) {
3543
3562
  if (updateHeadCheckTimer.current) {
3544
3563
  clearTimeout(updateHeadCheckTimer.current);
3545
3564
  updateHeadCheckTimer.current = undefined;
3546
3565
  }
3547
- var headColumnData = localHeaderDataRef.current[column.id];
3566
+ var columnId = getFinalColumnId(column);
3567
+ var headColumnData = localHeaderDataRef.current[columnId];
3548
3568
  if (headColumnData) {
3549
3569
  updateHeadCheckTimer.current = setTimeout(function () {
3550
3570
  var _a, _b;
3551
3571
  updateHeadCheckTimer.current = undefined;
3552
3572
  var enabledCheckExists = !!Object.keys(localBodyDataRef.current).find(function (key) {
3553
- var columnData = localBodyDataRef.current[key].columns[column.id];
3573
+ var columnData = localBodyDataRef.current[key].columns[columnId];
3554
3574
  if (columnData) {
3555
3575
  if (!columnData.checkDisabled) {
3556
3576
  return true;
@@ -3559,7 +3579,7 @@ var Table = React.forwardRef(function (_a, ref) {
3559
3579
  });
3560
3580
  var allChecked = enabledCheckExists &&
3561
3581
  !Object.keys(localBodyDataRef.current).find(function (key) {
3562
- var columnData = localBodyDataRef.current[key].columns[column.id];
3582
+ var columnData = localBodyDataRef.current[key].columns[columnId];
3563
3583
  if (columnData) {
3564
3584
  if (!columnData.checkDisabled) {
3565
3585
  return !columnData.checked;
@@ -3570,7 +3590,7 @@ var Table = React.forwardRef(function (_a, ref) {
3570
3590
  (_b = headColumnData.commands) === null || _b === void 0 ? void 0 : _b.setChecked(allChecked);
3571
3591
  }, 100);
3572
3592
  }
3573
- }, []);
3593
+ }, [getFinalColumnId]);
3574
3594
  var getCheckedItems = React.useCallback(function (columnId) {
3575
3595
  var checkedItems = [];
3576
3596
  Object.keys(localBodyDataRef.current).forEach(function (key) {
@@ -3643,7 +3663,17 @@ var Table = React.forwardRef(function (_a, ref) {
3643
3663
  React.useEffect(function () {
3644
3664
  stopHeadCheckTimer();
3645
3665
  clearFireOnCheckChangeTimer();
3646
- setFinalColumns(columns === null || columns === void 0 ? void 0 : columns.filter(columnFilter));
3666
+ var newFinalColumns = columns === null || columns === void 0 ? void 0 : columns.filter(columnFilter);
3667
+ setFinalColumns(newFinalColumns);
3668
+ finalColumnsIdRef.current = newFinalColumns === null || newFinalColumns === void 0 ? void 0 : newFinalColumns.map(function (col) {
3669
+ if (col.id) {
3670
+ return col.id;
3671
+ }
3672
+ else {
3673
+ _columnId += 1;
3674
+ return "$c$".concat(_columnId, "$");
3675
+ }
3676
+ });
3647
3677
  // eslint-disable-next-line react-hooks/exhaustive-deps
3648
3678
  }, [columns]);
3649
3679
  React.useLayoutEffect(function () {
@@ -3657,7 +3687,7 @@ var Table = React.forwardRef(function (_a, ref) {
3657
3687
  if (finalColumns) {
3658
3688
  finalColumns.forEach(function (c) {
3659
3689
  var _a;
3660
- var columnId = c.id;
3690
+ var columnId = getFinalColumnId(c);
3661
3691
  if ((_a = localBodyDataRef.current[item.id]) === null || _a === void 0 ? void 0 : _a.columns[columnId]) {
3662
3692
  res[item.id].columns[columnId] = localBodyDataRef.current[item.id].columns[columnId];
3663
3693
  }
@@ -3676,18 +3706,18 @@ var Table = React.forwardRef(function (_a, ref) {
3676
3706
  else {
3677
3707
  localBodyDataRef.current = {};
3678
3708
  }
3679
- }, [sortableItems, finalColumns, clearFireOnCheckChangeTimer]);
3709
+ }, [sortableItems, finalColumns, clearFireOnCheckChangeTimer, getFinalColumnId]);
3680
3710
  React.useLayoutEffect(function () {
3681
3711
  if (finalColumns) {
3682
3712
  localHeaderDataRef.current = finalColumns.reduce(function (res, c) {
3683
- res[c.id] = { column: c, checked: false };
3713
+ res[getFinalColumnId(c)] = { column: c, checked: false };
3684
3714
  return res;
3685
3715
  }, {});
3686
3716
  }
3687
3717
  else {
3688
3718
  localHeaderDataRef.current = {};
3689
3719
  }
3690
- }, [finalColumns]);
3720
+ }, [finalColumns, getFinalColumnId]);
3691
3721
  // Commands --------------------------------------------------------------------------------------------------------
3692
3722
  React.useLayoutEffect(function () {
3693
3723
  if (ref) {
@@ -3768,14 +3798,14 @@ var Table = React.forwardRef(function (_a, ref) {
3768
3798
  var handleHeadCheckChange = React.useCallback(function (column, checked) {
3769
3799
  Object.keys(localBodyDataRef.current).forEach(function (key) {
3770
3800
  var _a;
3771
- var data = localBodyDataRef.current[key].columns[column.id];
3801
+ var data = localBodyDataRef.current[key].columns[getFinalColumnId(column)];
3772
3802
  if (data) {
3773
3803
  if (!data.checkDisabled) {
3774
3804
  (_a = data.commands) === null || _a === void 0 ? void 0 : _a.setChecked(checked);
3775
3805
  }
3776
3806
  }
3777
3807
  });
3778
- }, []);
3808
+ }, [getFinalColumnId]);
3779
3809
  var handleBodyCheckChange = React.useCallback(function (item, column) {
3780
3810
  updateHeadCheck(column);
3781
3811
  }, [updateHeadCheck]);
@@ -3798,39 +3828,40 @@ var Table = React.forwardRef(function (_a, ref) {
3798
3828
  }, [openMenuId]);
3799
3829
  var TableContextSetItemColumnChecked = React.useCallback(function (item, column, checked) {
3800
3830
  var _a;
3801
- var data = (_a = localBodyDataRef.current[item.id]) === null || _a === void 0 ? void 0 : _a.columns[column.id];
3831
+ var columnId = getFinalColumnId(column);
3832
+ var data = (_a = localBodyDataRef.current[item.id]) === null || _a === void 0 ? void 0 : _a.columns[columnId];
3802
3833
  if (data) {
3803
3834
  data.checked = checked;
3804
- fireOnCheckChange(column.id);
3835
+ fireOnCheckChange(columnId);
3805
3836
  }
3806
- }, [fireOnCheckChange]);
3837
+ }, [fireOnCheckChange, getFinalColumnId]);
3807
3838
  var TableContextSetItemColumnCheckDisabled = React.useCallback(function (item, column, disabled) {
3808
3839
  var _a;
3809
- var data = (_a = localBodyDataRef.current[item.id]) === null || _a === void 0 ? void 0 : _a.columns[column.id];
3840
+ var data = (_a = localBodyDataRef.current[item.id]) === null || _a === void 0 ? void 0 : _a.columns[getFinalColumnId(column)];
3810
3841
  if (data) {
3811
3842
  data.checkDisabled = disabled;
3812
3843
  updateHeadCheck(column);
3813
3844
  }
3814
- }, [updateHeadCheck]);
3845
+ }, [getFinalColumnId, updateHeadCheck]);
3815
3846
  var TableContextSetItemColumnCommands = React.useCallback(function (item, column, commands) {
3816
3847
  var _a;
3817
- var data = (_a = localBodyDataRef.current[item.id]) === null || _a === void 0 ? void 0 : _a.columns[column.id];
3848
+ var data = (_a = localBodyDataRef.current[item.id]) === null || _a === void 0 ? void 0 : _a.columns[getFinalColumnId(column)];
3818
3849
  if (data) {
3819
3850
  data.commands = commands;
3820
3851
  }
3821
- }, []);
3852
+ }, [getFinalColumnId]);
3822
3853
  var TableContextSetHeadColumnChecked = React.useCallback(function (column, checked) {
3823
- var data = localHeaderDataRef.current[column.id];
3854
+ var data = localHeaderDataRef.current[getFinalColumnId(column)];
3824
3855
  if (data) {
3825
3856
  data.checked = checked;
3826
3857
  }
3827
- }, []);
3858
+ }, [getFinalColumnId]);
3828
3859
  var TableContextSetHeadColumnCommands = React.useCallback(function (column, commands) {
3829
- var data = localHeaderDataRef.current[column.id];
3860
+ var data = localHeaderDataRef.current[getFinalColumnId(column)];
3830
3861
  if (data) {
3831
3862
  data.commands = commands;
3832
3863
  }
3833
- }, []);
3864
+ }, [getFinalColumnId]);
3834
3865
  // Memo --------------------------------------------------------------------------------------------------------------
3835
3866
  var tableContextValue = React.useMemo(function () { return ({
3836
3867
  menuOpen: menuOpen,