react-table-edit 1.4.22 → 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 +43 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +43 -9
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ClipboardEvent } from 'react';
|
|
1
2
|
interface IFFormInput {
|
|
2
3
|
id?: string;
|
|
3
4
|
onKeyDown: any;
|
|
@@ -5,6 +6,7 @@ interface IFFormInput {
|
|
|
5
6
|
onChange: any;
|
|
6
7
|
className?: string;
|
|
7
8
|
value: Date;
|
|
9
|
+
onPaste?: (e: ClipboardEvent<HTMLElement>) => void;
|
|
8
10
|
}
|
|
9
11
|
declare const DateInput: (props: IFFormInput) => import("react/jsx-runtime").JSX.Element;
|
|
10
12
|
export default DateInput;
|
package/dist/index.js
CHANGED
|
@@ -39911,13 +39911,18 @@ if (process.env.NODE_ENV === 'production') {
|
|
|
39911
39911
|
var InputMask = reactInputMask.exports;
|
|
39912
39912
|
|
|
39913
39913
|
const DateInput = (props) => {
|
|
39914
|
-
const { id, onKeyDown, dateFormat, className, onChange, value } = props;
|
|
39914
|
+
const { id, onKeyDown, dateFormat, className, onChange, value, onPaste } = props;
|
|
39915
39915
|
const [open, setOpen] = React$5.useState(false);
|
|
39916
39916
|
return (jsxRuntime.jsx(DatePicker, { id: id, open: open, className: className, selected: value, onChange: (date) => {
|
|
39917
39917
|
if (onChange) {
|
|
39918
39918
|
onChange(date);
|
|
39919
39919
|
}
|
|
39920
|
-
}, dateFormat: dateFormat, locale: "vi", showMonthDropdown: true, showYearDropdown: true, dropdownMode: "select", isClearable: true, onCalendarClose: () => setOpen(false), onCalendarOpen: () => setOpen(true), customInput: jsxRuntime.jsx(InputMask, { mask: "99/99/9999", placeholder: dateFormat
|
|
39920
|
+
}, dateFormat: dateFormat, locale: "vi", showMonthDropdown: true, showYearDropdown: true, dropdownMode: "select", isClearable: true, onCalendarClose: () => setOpen(false), onCalendarOpen: () => setOpen(true), customInput: jsxRuntime.jsx(InputMask, { mask: "99/99/9999", placeholder: dateFormat, onPaste: (e) => {
|
|
39921
|
+
if (onPaste) {
|
|
39922
|
+
onPaste(e);
|
|
39923
|
+
setOpen(false);
|
|
39924
|
+
}
|
|
39925
|
+
} }), onKeyDown: (e) => {
|
|
39921
39926
|
if (e.code === 'Space') {
|
|
39922
39927
|
setOpen(!open);
|
|
39923
39928
|
setTimeout(() => {
|
|
@@ -39927,12 +39932,10 @@ const DateInput = (props) => {
|
|
|
39927
39932
|
}
|
|
39928
39933
|
}, 100);
|
|
39929
39934
|
}
|
|
39930
|
-
else {
|
|
39931
|
-
|
|
39932
|
-
|
|
39933
|
-
|
|
39934
|
-
setOpen(false);
|
|
39935
|
-
}
|
|
39935
|
+
else if (onKeyDown && (!open || ((e.ctrlKey || e.metaKey || e.altKey) && e.shiftKey))) {
|
|
39936
|
+
const rs = onKeyDown(e);
|
|
39937
|
+
if (rs) {
|
|
39938
|
+
setOpen(false);
|
|
39936
39939
|
}
|
|
39937
39940
|
}
|
|
39938
39941
|
} }));
|
|
@@ -42791,6 +42794,11 @@ const TableEdit = React$5.forwardRef((props, ref) => {
|
|
|
42791
42794
|
if (checkKeyDown(e, row, col, indexRow + 1, indexCol + 1)) {
|
|
42792
42795
|
return true;
|
|
42793
42796
|
}
|
|
42797
|
+
}, onPaste: (e) => {
|
|
42798
|
+
if (toolbarSetting?.showBottomToolbar && !editDisable && !addDisable) {
|
|
42799
|
+
pasteDataFromExcel(indexRow, indexCol, e);
|
|
42800
|
+
e.preventDefault();
|
|
42801
|
+
}
|
|
42794
42802
|
} }));
|
|
42795
42803
|
case 'datetime':
|
|
42796
42804
|
return (jsxRuntime.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) => {
|
|
@@ -42801,6 +42809,11 @@ const TableEdit = React$5.forwardRef((props, ref) => {
|
|
|
42801
42809
|
handleDataChange(row, col, indexRow);
|
|
42802
42810
|
}, dateFormat: "dd/MM/yyyy HH:mm", onKeyDown: (e) => {
|
|
42803
42811
|
checkKeyDown(e, row, col, indexRow + 1, indexCol + 1);
|
|
42812
|
+
}, onPaste: (e) => {
|
|
42813
|
+
if (toolbarSetting?.showBottomToolbar && !editDisable && !addDisable) {
|
|
42814
|
+
pasteDataFromExcel(indexRow, indexCol, e);
|
|
42815
|
+
e.preventDefault();
|
|
42816
|
+
}
|
|
42804
42817
|
} }));
|
|
42805
42818
|
case 'select':
|
|
42806
42819
|
let valueSelect;
|
|
@@ -43183,7 +43196,28 @@ const TableEdit = React$5.forwardRef((props, ref) => {
|
|
|
43183
43196
|
}
|
|
43184
43197
|
else {
|
|
43185
43198
|
if (column.editType === 'date') {
|
|
43186
|
-
const
|
|
43199
|
+
const [day, month, year] = stringData.split('/');
|
|
43200
|
+
const date = new Date(`${year}-${month}-${day}`);
|
|
43201
|
+
if (!isNaN(date.getTime())) {
|
|
43202
|
+
if (column.onPaste) {
|
|
43203
|
+
dataRow[column.field] = column.onPaste(dataRow, date);
|
|
43204
|
+
}
|
|
43205
|
+
else {
|
|
43206
|
+
dataRow[column.field] = date;
|
|
43207
|
+
}
|
|
43208
|
+
if (column.callback) {
|
|
43209
|
+
column.callback(date, currenRowIndex + indexRow, dataRow);
|
|
43210
|
+
}
|
|
43211
|
+
}
|
|
43212
|
+
else {
|
|
43213
|
+
notificationError(t('PasteExcelIncorrectFormat', { index: (currenRowIndex + indexRow + 1), field: t(column.headerText ?? ''), value: stringData }));
|
|
43214
|
+
}
|
|
43215
|
+
}
|
|
43216
|
+
else if (column.editType === 'datetime') {
|
|
43217
|
+
const [datePart, timePart] = stringData.split(' ');
|
|
43218
|
+
const [day, month, year] = datePart.split('/');
|
|
43219
|
+
const [hour, minute] = timePart.split(':');
|
|
43220
|
+
const date = new Date(year, month - 1, day, hour, minute);
|
|
43187
43221
|
if (!isNaN(date.getTime())) {
|
|
43188
43222
|
if (column.onPaste) {
|
|
43189
43223
|
dataRow[column.field] = column.onPaste(dataRow, date);
|