react-table-edit 1.4.21 → 1.4.23
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/component/input/input-date/index.d.ts +2 -0
- package/dist/index.js +50 -21
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +50 -21
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -39883,13 +39883,18 @@ if (process.env.NODE_ENV === 'production') {
|
|
|
39883
39883
|
var InputMask = reactInputMask.exports;
|
|
39884
39884
|
|
|
39885
39885
|
const DateInput = (props) => {
|
|
39886
|
-
const { id, onKeyDown, dateFormat, className, onChange, value } = props;
|
|
39886
|
+
const { id, onKeyDown, dateFormat, className, onChange, value, onPaste } = props;
|
|
39887
39887
|
const [open, setOpen] = useState(false);
|
|
39888
39888
|
return (jsx(DatePicker, { id: id, open: open, className: className, selected: value, onChange: (date) => {
|
|
39889
39889
|
if (onChange) {
|
|
39890
39890
|
onChange(date);
|
|
39891
39891
|
}
|
|
39892
|
-
}, dateFormat: dateFormat, locale: "vi", showMonthDropdown: true, showYearDropdown: true, dropdownMode: "select", isClearable: true, onCalendarClose: () => setOpen(false), onCalendarOpen: () => setOpen(true), customInput: jsx(InputMask, { mask: "99/99/9999", placeholder: dateFormat
|
|
39892
|
+
}, dateFormat: dateFormat, locale: "vi", showMonthDropdown: true, showYearDropdown: true, dropdownMode: "select", isClearable: true, onCalendarClose: () => setOpen(false), onCalendarOpen: () => setOpen(true), customInput: jsx(InputMask, { mask: "99/99/9999", placeholder: dateFormat, onPaste: (e) => {
|
|
39893
|
+
if (onPaste) {
|
|
39894
|
+
onPaste(e);
|
|
39895
|
+
setOpen(false);
|
|
39896
|
+
}
|
|
39897
|
+
} }), onKeyDown: (e) => {
|
|
39893
39898
|
if (e.code === 'Space') {
|
|
39894
39899
|
setOpen(!open);
|
|
39895
39900
|
setTimeout(() => {
|
|
@@ -39899,12 +39904,10 @@ const DateInput = (props) => {
|
|
|
39899
39904
|
}
|
|
39900
39905
|
}, 100);
|
|
39901
39906
|
}
|
|
39902
|
-
else {
|
|
39903
|
-
|
|
39904
|
-
|
|
39905
|
-
|
|
39906
|
-
setOpen(false);
|
|
39907
|
-
}
|
|
39907
|
+
else if (onKeyDown && (!open || ((e.ctrlKey || e.metaKey || e.altKey) && e.shiftKey))) {
|
|
39908
|
+
const rs = onKeyDown(e);
|
|
39909
|
+
if (rs) {
|
|
39910
|
+
setOpen(false);
|
|
39908
39911
|
}
|
|
39909
39912
|
}
|
|
39910
39913
|
} }));
|
|
@@ -42763,6 +42766,11 @@ const TableEdit = forwardRef((props, ref) => {
|
|
|
42763
42766
|
if (checkKeyDown(e, row, col, indexRow + 1, indexCol + 1)) {
|
|
42764
42767
|
return true;
|
|
42765
42768
|
}
|
|
42769
|
+
}, onPaste: (e) => {
|
|
42770
|
+
if (toolbarSetting?.showBottomToolbar && !editDisable && !addDisable) {
|
|
42771
|
+
pasteDataFromExcel(indexRow, indexCol, e);
|
|
42772
|
+
e.preventDefault();
|
|
42773
|
+
}
|
|
42766
42774
|
} }));
|
|
42767
42775
|
case 'datetime':
|
|
42768
42776
|
return (jsx(DateInput, { id: `${idTable}-col${indexCol + 1}-row${indexRow + 1}`, className: classNames$1('form-control border-0 rounded-0 input-numeric', { 'is-invalid': col.validate && col.validate(row[col.field], row) }), value: row[col.field], onChange: (date) => {
|
|
@@ -42773,6 +42781,11 @@ const TableEdit = forwardRef((props, ref) => {
|
|
|
42773
42781
|
handleDataChange(row, col, indexRow);
|
|
42774
42782
|
}, dateFormat: "dd/MM/yyyy HH:mm", onKeyDown: (e) => {
|
|
42775
42783
|
checkKeyDown(e, row, col, indexRow + 1, indexCol + 1);
|
|
42784
|
+
}, onPaste: (e) => {
|
|
42785
|
+
if (toolbarSetting?.showBottomToolbar && !editDisable && !addDisable) {
|
|
42786
|
+
pasteDataFromExcel(indexRow, indexCol, e);
|
|
42787
|
+
e.preventDefault();
|
|
42788
|
+
}
|
|
42776
42789
|
} }));
|
|
42777
42790
|
case 'select':
|
|
42778
42791
|
let valueSelect;
|
|
@@ -43155,7 +43168,28 @@ const TableEdit = forwardRef((props, ref) => {
|
|
|
43155
43168
|
}
|
|
43156
43169
|
else {
|
|
43157
43170
|
if (column.editType === 'date') {
|
|
43158
|
-
const
|
|
43171
|
+
const [day, month, year] = stringData.split('/');
|
|
43172
|
+
const date = new Date(`${year}-${month}-${day}`);
|
|
43173
|
+
if (!isNaN(date.getTime())) {
|
|
43174
|
+
if (column.onPaste) {
|
|
43175
|
+
dataRow[column.field] = column.onPaste(dataRow, date);
|
|
43176
|
+
}
|
|
43177
|
+
else {
|
|
43178
|
+
dataRow[column.field] = date;
|
|
43179
|
+
}
|
|
43180
|
+
if (column.callback) {
|
|
43181
|
+
column.callback(date, currenRowIndex + indexRow, dataRow);
|
|
43182
|
+
}
|
|
43183
|
+
}
|
|
43184
|
+
else {
|
|
43185
|
+
notificationError(t('PasteExcelIncorrectFormat', { index: (currenRowIndex + indexRow + 1), field: t(column.headerText ?? ''), value: stringData }));
|
|
43186
|
+
}
|
|
43187
|
+
}
|
|
43188
|
+
else if (column.editType === 'datetime') {
|
|
43189
|
+
const [datePart, timePart] = stringData.split(' ');
|
|
43190
|
+
const [day, month, year] = datePart.split('/');
|
|
43191
|
+
const [hour, minute] = timePart.split(':');
|
|
43192
|
+
const date = new Date(year, month - 1, day, hour, minute);
|
|
43159
43193
|
if (!isNaN(date.getTime())) {
|
|
43160
43194
|
if (column.onPaste) {
|
|
43161
43195
|
dataRow[column.field] = column.onPaste(dataRow, date);
|
|
@@ -65494,19 +65528,14 @@ const RenderFilterElement = ({ filter, optionsFilter, formatSetting, filterBy, s
|
|
|
65494
65528
|
}, placeholder: t('Select') }) }));
|
|
65495
65529
|
};
|
|
65496
65530
|
const handleSave = () => {
|
|
65497
|
-
if (
|
|
65498
|
-
|
|
65499
|
-
|
|
65500
|
-
filter.value = valueFilter;
|
|
65501
|
-
}
|
|
65502
|
-
else {
|
|
65503
|
-
filterBy.push({ key: column.field, ope: operator, value: valueFilter });
|
|
65504
|
-
}
|
|
65505
|
-
changeFilter([...filterBy]);
|
|
65531
|
+
if (filter) {
|
|
65532
|
+
filter.ope = operator;
|
|
65533
|
+
filter.value = valueFilter ?? '';
|
|
65506
65534
|
}
|
|
65507
65535
|
else {
|
|
65508
|
-
|
|
65536
|
+
filterBy.push({ key: column.field, ope: operator, value: valueFilter ?? '' });
|
|
65509
65537
|
}
|
|
65538
|
+
changeFilter([...filterBy]);
|
|
65510
65539
|
setOpenFilter(false);
|
|
65511
65540
|
};
|
|
65512
65541
|
return (jsxs("div", { className: 'r-filter-popup', onKeyDown: (e) => {
|
|
@@ -65514,7 +65543,7 @@ const RenderFilterElement = ({ filter, optionsFilter, formatSetting, filterBy, s
|
|
|
65514
65543
|
handleSave();
|
|
65515
65544
|
e.stopPropagation();
|
|
65516
65545
|
}
|
|
65517
|
-
}, children: [((!column.filterType && column.type === 'numeric') || column.filterType === 'numeric') ? jsxs(Fragment$1, { children: [RenderNumberFilter(), " "] }) : (column.filterType === 'select' ? jsxs(Fragment$1, { children: [RenderSelectFilter(), " "] }) : RenderStringFilter()), jsxs("div", { className: 'd-flex justify-content-end', children: [jsx(Button$1, {
|
|
65546
|
+
}, children: [((!column.filterType && column.type === 'numeric') || column.filterType === 'numeric') ? jsxs(Fragment$1, { children: [RenderNumberFilter(), " "] }) : (column.filterType === 'select' ? jsxs(Fragment$1, { children: [RenderSelectFilter(), " "] }) : RenderStringFilter()), jsxs("div", { className: 'd-flex justify-content-end', children: [jsx(Button$1, { color: 'primary', style: { borderRadius: 3 }, className: 'me-50 py-25 px-50 fw-bold', onClick: handleSave, children: t('Filter') }), jsx(Button$1, { className: 'py-25 px-50 fw-bold', outline: true, style: { borderRadius: 3 }, onClick: () => {
|
|
65518
65547
|
if (filterBy) {
|
|
65519
65548
|
changeFilter(filterBy.filter((x) => x.key !== column.field));
|
|
65520
65549
|
}
|
|
@@ -65697,7 +65726,7 @@ const VirtualTable = ({ idTable, dataSource, rowHeight = 33, height = 400, colum
|
|
|
65697
65726
|
}
|
|
65698
65727
|
}
|
|
65699
65728
|
};
|
|
65700
|
-
return (jsxs("div", { className: "react-table-edit", children: [jsxs("div", { className: 'r-grid', children: [toolbarSetting?.showTopToolbar && jsx(RenderToolbarTop, { toolbarTopOption: toolbarTopOption }), jsxs("div", { ref: gridRef, className: "r-gridtable", onScroll: handleScroll, style: { height: `${height ? `${height}px` : 'auto'}` }, children: [jsxs("table", { style: { width: '100%' }, children: [jsx(RenderColGroup, { contentColumns: flatVisble }), jsx("thead", { className: 'r-gridheader', children: headerColumns.map((rowColumn, indexParent) => (jsx("tr", { className: "r-row", role: "row", children: rowColumn.map((column, indexColumn) => (jsx(HeaderTableCol, { idTable: idTable, col: column, dataSource: dataSource, indexCol: indexColumn, indexParent: indexParent, isMulti: isMutil ?? false, selectEnable: selectEnable ?? false, selectedRows: selectedRows, setSelectedRows: setSelectedRows, columns: contentColumns, setColumns: setColumns, objWidthFixLeft: objWidthFixLeft, objWidthFixRight: objWidthFixRight, fisrtObjWidthFixRight: fisrtObjWidthFixRight, lastObjWidthFixLeft: lastObjWidthFixLeft, orderBy: orderBy, allowFilter: allowFilter, allowOrder: allowOrder, filterBy: filterBy, optionsFilter: optionsFilter, changeFilter: (val) => {
|
|
65729
|
+
return (jsxs("div", { className: "react-table-edit r-virtualized-table", children: [jsxs("div", { className: 'r-grid', children: [toolbarSetting?.showTopToolbar && jsx(RenderToolbarTop, { toolbarTopOption: toolbarTopOption }), jsxs("div", { ref: gridRef, className: "r-gridtable", onScroll: handleScroll, style: { height: `${height ? `${height}px` : 'auto'}` }, children: [jsxs("table", { style: { width: '100%' }, children: [jsx(RenderColGroup, { contentColumns: flatVisble }), jsx("thead", { className: 'r-gridheader', children: headerColumns.map((rowColumn, indexParent) => (jsx("tr", { className: "r-row", role: "row", children: rowColumn.map((column, indexColumn) => (jsx(HeaderTableCol, { idTable: idTable, col: column, dataSource: dataSource, indexCol: indexColumn, indexParent: indexParent, isMulti: isMutil ?? false, selectEnable: selectEnable ?? false, selectedRows: selectedRows, setSelectedRows: setSelectedRows, columns: contentColumns, setColumns: setColumns, objWidthFixLeft: objWidthFixLeft, objWidthFixRight: objWidthFixRight, fisrtObjWidthFixRight: fisrtObjWidthFixRight, lastObjWidthFixLeft: lastObjWidthFixLeft, orderBy: orderBy, allowFilter: allowFilter, allowOrder: allowOrder, filterBy: filterBy, optionsFilter: optionsFilter, changeFilter: (val) => {
|
|
65701
65730
|
setFilterBy([...val]);
|
|
65702
65731
|
if (changeFilter) {
|
|
65703
65732
|
changeFilter(val);
|