@pdg/react-table 1.0.64 → 1.0.66
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/@util/index.d.ts +1 -0
- package/dist/@util/tel.d.ts +1 -0
- package/dist/Table/Table.types.d.ts +3 -2
- package/dist/index.esm.js +139 -23
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +139 -23
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2721,6 +2721,72 @@ function typographyColorToSxColor(color) {
|
|
|
2721
2721
|
else {
|
|
2722
2722
|
return color;
|
|
2723
2723
|
}
|
|
2724
|
+
}function getTelAutoDash(tel) {
|
|
2725
|
+
if (tel == null)
|
|
2726
|
+
return null;
|
|
2727
|
+
var str = tel.replace(/[^0-9*]/g, '');
|
|
2728
|
+
var isLastDash = tel.substr(tel.length - 1, 1) === '-';
|
|
2729
|
+
if (str.substr(0, 1) !== '0' && !['15', '16', '18'].includes(str.substr(0, 2))) {
|
|
2730
|
+
return tel;
|
|
2731
|
+
}
|
|
2732
|
+
var tmp = '';
|
|
2733
|
+
var preLen;
|
|
2734
|
+
switch (str.substr(0, 2)) {
|
|
2735
|
+
case '02':
|
|
2736
|
+
preLen = 2;
|
|
2737
|
+
break;
|
|
2738
|
+
case '15':
|
|
2739
|
+
case '16':
|
|
2740
|
+
case '18':
|
|
2741
|
+
preLen = 4;
|
|
2742
|
+
break;
|
|
2743
|
+
default:
|
|
2744
|
+
preLen = 3;
|
|
2745
|
+
}
|
|
2746
|
+
if (['15', '16', '18'].includes(str.substr(0, 2))) {
|
|
2747
|
+
if (str.length <= preLen) {
|
|
2748
|
+
tmp = str;
|
|
2749
|
+
}
|
|
2750
|
+
else if (str.length <= preLen + 4) {
|
|
2751
|
+
tmp += str.substr(0, preLen);
|
|
2752
|
+
tmp += '-';
|
|
2753
|
+
tmp += str.substr(preLen);
|
|
2754
|
+
}
|
|
2755
|
+
else {
|
|
2756
|
+
tmp = str;
|
|
2757
|
+
}
|
|
2758
|
+
}
|
|
2759
|
+
else if (str.length <= preLen) {
|
|
2760
|
+
tmp = str;
|
|
2761
|
+
}
|
|
2762
|
+
else if (str.length <= preLen + 3) {
|
|
2763
|
+
tmp += str.substr(0, preLen);
|
|
2764
|
+
tmp += '-';
|
|
2765
|
+
tmp += str.substr(preLen);
|
|
2766
|
+
}
|
|
2767
|
+
else if (str.length <= preLen + 7) {
|
|
2768
|
+
tmp += str.substr(0, preLen);
|
|
2769
|
+
tmp += '-';
|
|
2770
|
+
tmp += str.substr(preLen, 3);
|
|
2771
|
+
tmp += '-';
|
|
2772
|
+
tmp += str.substr(preLen + 3);
|
|
2773
|
+
}
|
|
2774
|
+
else if (str.length <= preLen + 8) {
|
|
2775
|
+
tmp += str.substr(0, preLen);
|
|
2776
|
+
tmp += '-';
|
|
2777
|
+
tmp += str.substr(preLen, 4);
|
|
2778
|
+
tmp += '-';
|
|
2779
|
+
tmp += str.substr(preLen + 4);
|
|
2780
|
+
}
|
|
2781
|
+
else {
|
|
2782
|
+
tmp = str;
|
|
2783
|
+
}
|
|
2784
|
+
if (isLastDash) {
|
|
2785
|
+
if (str.length === preLen) {
|
|
2786
|
+
tmp += '-';
|
|
2787
|
+
}
|
|
2788
|
+
}
|
|
2789
|
+
return tmp;
|
|
2724
2790
|
}var TableContextDefaultValue = {
|
|
2725
2791
|
menuOpen: false,
|
|
2726
2792
|
openMenuId: undefined,
|
|
@@ -2956,6 +3022,11 @@ var TableBodyCell = function (_a) {
|
|
|
2956
3022
|
data = numberWithThousandSeparator(data);
|
|
2957
3023
|
}
|
|
2958
3024
|
break;
|
|
3025
|
+
case 'tel':
|
|
3026
|
+
if (typeof data === 'string') {
|
|
3027
|
+
data = getTelAutoDash(data);
|
|
3028
|
+
}
|
|
3029
|
+
break;
|
|
2959
3030
|
case 'check':
|
|
2960
3031
|
data = (React.createElement(material.Box, { className: 'TableBoxyCell-check-box', onClick: menuOpen ? undefined : function (e) { return e.stopPropagation(); } },
|
|
2961
3032
|
React.createElement(material.Checkbox, { checked: checked, disabled: checkDisabled, onChange: function (e, newChecked) {
|
|
@@ -2991,7 +3062,29 @@ var TableBodyCell = function (_a) {
|
|
|
2991
3062
|
break;
|
|
2992
3063
|
case 'datetime':
|
|
2993
3064
|
if (data) {
|
|
2994
|
-
|
|
3065
|
+
var dt = dayjs(data, column.dateFormat);
|
|
3066
|
+
data = (React.createElement(React.Fragment, null,
|
|
3067
|
+
React.createElement("span", null, dt.format('YYYY-MM-DD')),
|
|
3068
|
+
column.dateTwoLine ? React.createElement("br", null) : ' ',
|
|
3069
|
+
React.createElement("span", { style: { opacity: 0.5 } }, dt.format('HH:mm:ss'))));
|
|
3070
|
+
}
|
|
3071
|
+
break;
|
|
3072
|
+
case 'date-hour':
|
|
3073
|
+
if (data) {
|
|
3074
|
+
var dt = dayjs(data, column.dateFormat);
|
|
3075
|
+
data = (React.createElement(React.Fragment, null,
|
|
3076
|
+
React.createElement("span", null, dt.format('YYYY-MM-DD')),
|
|
3077
|
+
column.dateTwoLine ? React.createElement("br", null) : ' ',
|
|
3078
|
+
React.createElement("span", { style: { opacity: 0.5 } }, dt.format('HH시'))));
|
|
3079
|
+
}
|
|
3080
|
+
break;
|
|
3081
|
+
case 'date-minute':
|
|
3082
|
+
if (data) {
|
|
3083
|
+
var dt = dayjs(data, column.dateFormat);
|
|
3084
|
+
data = (React.createElement(React.Fragment, null,
|
|
3085
|
+
React.createElement("span", null, dt.format('YYYY-MM-DD')),
|
|
3086
|
+
column.dateTwoLine ? React.createElement("br", null) : ' ',
|
|
3087
|
+
React.createElement("span", { style: { opacity: 0.5 } }, dt.format('HH시 MM분'))));
|
|
2995
3088
|
}
|
|
2996
3089
|
break;
|
|
2997
3090
|
}
|
|
@@ -3366,6 +3459,7 @@ TableTopHead.defaultProps = TableTopHeadDefaultProps;
|
|
|
3366
3459
|
var templateObject_1$1;function columnFilter(v) {
|
|
3367
3460
|
return v !== undefined && v !== null && v !== false;
|
|
3368
3461
|
}
|
|
3462
|
+
var _columnId = 0;
|
|
3369
3463
|
var Table = React.forwardRef(function (_a, ref) {
|
|
3370
3464
|
// Ref ---------------------------------------------------------------------------------------------------------------
|
|
3371
3465
|
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,
|
|
@@ -3376,6 +3470,7 @@ var Table = React.forwardRef(function (_a, ref) {
|
|
|
3376
3470
|
var updateHeadCheckTimer = React.useRef();
|
|
3377
3471
|
var fireOnCheckChangeTimer = React.useRef({});
|
|
3378
3472
|
var simpleBarRef = React.useRef(null);
|
|
3473
|
+
var finalColumnsIdRef = React.useRef([]);
|
|
3379
3474
|
// sortable --------------------------------------------------------------------------------------------------------
|
|
3380
3475
|
var sensors = core.useSensors(core.useSensor(core.MouseSensor, {
|
|
3381
3476
|
// Require the mouse to move by 10 pixels before activating
|
|
@@ -3446,18 +3541,28 @@ var Table = React.forwardRef(function (_a, ref) {
|
|
|
3446
3541
|
return __assign$3({ id: id == null ? "".concat(v4(), "_").concat(index) : id }, item);
|
|
3447
3542
|
});
|
|
3448
3543
|
}, []);
|
|
3544
|
+
var getFinalColumnId = React.useCallback(function (column) {
|
|
3545
|
+
if (finalColumns && finalColumnsIdRef.current) {
|
|
3546
|
+
var idx = finalColumns.indexOf(column);
|
|
3547
|
+
return finalColumnsIdRef.current[idx];
|
|
3548
|
+
}
|
|
3549
|
+
else {
|
|
3550
|
+
return '';
|
|
3551
|
+
}
|
|
3552
|
+
}, [finalColumns]);
|
|
3449
3553
|
var updateHeadCheck = React.useCallback(function (column) {
|
|
3450
3554
|
if (updateHeadCheckTimer.current) {
|
|
3451
3555
|
clearTimeout(updateHeadCheckTimer.current);
|
|
3452
3556
|
updateHeadCheckTimer.current = undefined;
|
|
3453
3557
|
}
|
|
3454
|
-
var
|
|
3558
|
+
var columnId = getFinalColumnId(column);
|
|
3559
|
+
var headColumnData = localHeaderDataRef.current[columnId];
|
|
3455
3560
|
if (headColumnData) {
|
|
3456
3561
|
updateHeadCheckTimer.current = setTimeout(function () {
|
|
3457
3562
|
var _a, _b;
|
|
3458
3563
|
updateHeadCheckTimer.current = undefined;
|
|
3459
3564
|
var enabledCheckExists = !!Object.keys(localBodyDataRef.current).find(function (key) {
|
|
3460
|
-
var columnData = localBodyDataRef.current[key].columns[
|
|
3565
|
+
var columnData = localBodyDataRef.current[key].columns[columnId];
|
|
3461
3566
|
if (columnData) {
|
|
3462
3567
|
if (!columnData.checkDisabled) {
|
|
3463
3568
|
return true;
|
|
@@ -3466,7 +3571,7 @@ var Table = React.forwardRef(function (_a, ref) {
|
|
|
3466
3571
|
});
|
|
3467
3572
|
var allChecked = enabledCheckExists &&
|
|
3468
3573
|
!Object.keys(localBodyDataRef.current).find(function (key) {
|
|
3469
|
-
var columnData = localBodyDataRef.current[key].columns[
|
|
3574
|
+
var columnData = localBodyDataRef.current[key].columns[columnId];
|
|
3470
3575
|
if (columnData) {
|
|
3471
3576
|
if (!columnData.checkDisabled) {
|
|
3472
3577
|
return !columnData.checked;
|
|
@@ -3477,7 +3582,7 @@ var Table = React.forwardRef(function (_a, ref) {
|
|
|
3477
3582
|
(_b = headColumnData.commands) === null || _b === void 0 ? void 0 : _b.setChecked(allChecked);
|
|
3478
3583
|
}, 100);
|
|
3479
3584
|
}
|
|
3480
|
-
}, []);
|
|
3585
|
+
}, [getFinalColumnId]);
|
|
3481
3586
|
var getCheckedItems = React.useCallback(function (columnId) {
|
|
3482
3587
|
var checkedItems = [];
|
|
3483
3588
|
Object.keys(localBodyDataRef.current).forEach(function (key) {
|
|
@@ -3550,7 +3655,17 @@ var Table = React.forwardRef(function (_a, ref) {
|
|
|
3550
3655
|
React.useEffect(function () {
|
|
3551
3656
|
stopHeadCheckTimer();
|
|
3552
3657
|
clearFireOnCheckChangeTimer();
|
|
3553
|
-
|
|
3658
|
+
var newFinalColumns = columns === null || columns === void 0 ? void 0 : columns.filter(columnFilter);
|
|
3659
|
+
setFinalColumns(newFinalColumns);
|
|
3660
|
+
finalColumnsIdRef.current = newFinalColumns === null || newFinalColumns === void 0 ? void 0 : newFinalColumns.map(function (col) {
|
|
3661
|
+
if (col.id) {
|
|
3662
|
+
return col.id;
|
|
3663
|
+
}
|
|
3664
|
+
else {
|
|
3665
|
+
_columnId += 1;
|
|
3666
|
+
return "$c$".concat(_columnId, "$");
|
|
3667
|
+
}
|
|
3668
|
+
});
|
|
3554
3669
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
3555
3670
|
}, [columns]);
|
|
3556
3671
|
React.useLayoutEffect(function () {
|
|
@@ -3564,7 +3679,7 @@ var Table = React.forwardRef(function (_a, ref) {
|
|
|
3564
3679
|
if (finalColumns) {
|
|
3565
3680
|
finalColumns.forEach(function (c) {
|
|
3566
3681
|
var _a;
|
|
3567
|
-
var columnId = c
|
|
3682
|
+
var columnId = getFinalColumnId(c);
|
|
3568
3683
|
if ((_a = localBodyDataRef.current[item.id]) === null || _a === void 0 ? void 0 : _a.columns[columnId]) {
|
|
3569
3684
|
res[item.id].columns[columnId] = localBodyDataRef.current[item.id].columns[columnId];
|
|
3570
3685
|
}
|
|
@@ -3583,18 +3698,18 @@ var Table = React.forwardRef(function (_a, ref) {
|
|
|
3583
3698
|
else {
|
|
3584
3699
|
localBodyDataRef.current = {};
|
|
3585
3700
|
}
|
|
3586
|
-
}, [sortableItems, finalColumns, clearFireOnCheckChangeTimer]);
|
|
3701
|
+
}, [sortableItems, finalColumns, clearFireOnCheckChangeTimer, getFinalColumnId]);
|
|
3587
3702
|
React.useLayoutEffect(function () {
|
|
3588
3703
|
if (finalColumns) {
|
|
3589
3704
|
localHeaderDataRef.current = finalColumns.reduce(function (res, c) {
|
|
3590
|
-
res[c
|
|
3705
|
+
res[getFinalColumnId(c)] = { column: c, checked: false };
|
|
3591
3706
|
return res;
|
|
3592
3707
|
}, {});
|
|
3593
3708
|
}
|
|
3594
3709
|
else {
|
|
3595
3710
|
localHeaderDataRef.current = {};
|
|
3596
3711
|
}
|
|
3597
|
-
}, [finalColumns]);
|
|
3712
|
+
}, [finalColumns, getFinalColumnId]);
|
|
3598
3713
|
// Commands --------------------------------------------------------------------------------------------------------
|
|
3599
3714
|
React.useLayoutEffect(function () {
|
|
3600
3715
|
if (ref) {
|
|
@@ -3675,14 +3790,14 @@ var Table = React.forwardRef(function (_a, ref) {
|
|
|
3675
3790
|
var handleHeadCheckChange = React.useCallback(function (column, checked) {
|
|
3676
3791
|
Object.keys(localBodyDataRef.current).forEach(function (key) {
|
|
3677
3792
|
var _a;
|
|
3678
|
-
var data = localBodyDataRef.current[key].columns[column
|
|
3793
|
+
var data = localBodyDataRef.current[key].columns[getFinalColumnId(column)];
|
|
3679
3794
|
if (data) {
|
|
3680
3795
|
if (!data.checkDisabled) {
|
|
3681
3796
|
(_a = data.commands) === null || _a === void 0 ? void 0 : _a.setChecked(checked);
|
|
3682
3797
|
}
|
|
3683
3798
|
}
|
|
3684
3799
|
});
|
|
3685
|
-
}, []);
|
|
3800
|
+
}, [getFinalColumnId]);
|
|
3686
3801
|
var handleBodyCheckChange = React.useCallback(function (item, column) {
|
|
3687
3802
|
updateHeadCheck(column);
|
|
3688
3803
|
}, [updateHeadCheck]);
|
|
@@ -3705,39 +3820,40 @@ var Table = React.forwardRef(function (_a, ref) {
|
|
|
3705
3820
|
}, [openMenuId]);
|
|
3706
3821
|
var TableContextSetItemColumnChecked = React.useCallback(function (item, column, checked) {
|
|
3707
3822
|
var _a;
|
|
3708
|
-
var
|
|
3823
|
+
var columnId = getFinalColumnId(column);
|
|
3824
|
+
var data = (_a = localBodyDataRef.current[item.id]) === null || _a === void 0 ? void 0 : _a.columns[columnId];
|
|
3709
3825
|
if (data) {
|
|
3710
3826
|
data.checked = checked;
|
|
3711
|
-
fireOnCheckChange(
|
|
3827
|
+
fireOnCheckChange(columnId);
|
|
3712
3828
|
}
|
|
3713
|
-
}, [fireOnCheckChange]);
|
|
3829
|
+
}, [fireOnCheckChange, getFinalColumnId]);
|
|
3714
3830
|
var TableContextSetItemColumnCheckDisabled = React.useCallback(function (item, column, disabled) {
|
|
3715
3831
|
var _a;
|
|
3716
|
-
var data = (_a = localBodyDataRef.current[item.id]) === null || _a === void 0 ? void 0 : _a.columns[column
|
|
3832
|
+
var data = (_a = localBodyDataRef.current[item.id]) === null || _a === void 0 ? void 0 : _a.columns[getFinalColumnId(column)];
|
|
3717
3833
|
if (data) {
|
|
3718
3834
|
data.checkDisabled = disabled;
|
|
3719
3835
|
updateHeadCheck(column);
|
|
3720
3836
|
}
|
|
3721
|
-
}, [updateHeadCheck]);
|
|
3837
|
+
}, [getFinalColumnId, updateHeadCheck]);
|
|
3722
3838
|
var TableContextSetItemColumnCommands = React.useCallback(function (item, column, commands) {
|
|
3723
3839
|
var _a;
|
|
3724
|
-
var data = (_a = localBodyDataRef.current[item.id]) === null || _a === void 0 ? void 0 : _a.columns[column
|
|
3840
|
+
var data = (_a = localBodyDataRef.current[item.id]) === null || _a === void 0 ? void 0 : _a.columns[getFinalColumnId(column)];
|
|
3725
3841
|
if (data) {
|
|
3726
3842
|
data.commands = commands;
|
|
3727
3843
|
}
|
|
3728
|
-
}, []);
|
|
3844
|
+
}, [getFinalColumnId]);
|
|
3729
3845
|
var TableContextSetHeadColumnChecked = React.useCallback(function (column, checked) {
|
|
3730
|
-
var data = localHeaderDataRef.current[column
|
|
3846
|
+
var data = localHeaderDataRef.current[getFinalColumnId(column)];
|
|
3731
3847
|
if (data) {
|
|
3732
3848
|
data.checked = checked;
|
|
3733
3849
|
}
|
|
3734
|
-
}, []);
|
|
3850
|
+
}, [getFinalColumnId]);
|
|
3735
3851
|
var TableContextSetHeadColumnCommands = React.useCallback(function (column, commands) {
|
|
3736
|
-
var data = localHeaderDataRef.current[column
|
|
3852
|
+
var data = localHeaderDataRef.current[getFinalColumnId(column)];
|
|
3737
3853
|
if (data) {
|
|
3738
3854
|
data.commands = commands;
|
|
3739
3855
|
}
|
|
3740
|
-
}, []);
|
|
3856
|
+
}, [getFinalColumnId]);
|
|
3741
3857
|
// Memo --------------------------------------------------------------------------------------------------------------
|
|
3742
3858
|
var tableContextValue = React.useMemo(function () { return ({
|
|
3743
3859
|
menuOpen: menuOpen,
|