react-table-edit 0.3.8 → 0.4.0
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 +74 -164
- package/dist/index.mjs +74 -164
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1525,42 +1525,15 @@ var TableEdit = (0, import_react12.forwardRef)((props, ref) => {
|
|
|
1525
1525
|
const [columnLastEdit, setColumnlastEdit] = (0, import_react12.useState)(0);
|
|
1526
1526
|
const [objWidthFix, setObjWidthFix] = (0, import_react12.useState)({});
|
|
1527
1527
|
const [openPopupTree, setOpenPopupTree] = (0, import_react12.useState)(false);
|
|
1528
|
-
const [dataDisplay, setDataDisplay] = (0, import_react12.useState)([]);
|
|
1529
1528
|
const [openPopupSetupColumn, setOpenPopupSetupColumn] = (0, import_react12.useState)(false);
|
|
1530
|
-
const [totalCount, setTotalCount] = (0, import_react12.useState)(0);
|
|
1531
1529
|
const tableElement = (0, import_react12.useRef)(null);
|
|
1532
1530
|
const gridRef = (0, import_react12.useRef)();
|
|
1533
1531
|
const lag = window.localStorage.getItem("i18nextLng");
|
|
1534
1532
|
const lang = lag ? lag : "vi";
|
|
1535
1533
|
const pagingClient = pagingSetting?.allowPaging && !(editDisable || addDisable);
|
|
1534
|
+
const totalCount = dataSource.length;
|
|
1536
1535
|
const fieldKey = columns.find((item) => item.isPrimarykey === true)?.field ?? "id";
|
|
1537
1536
|
const fieldUniKey = columns.filter((item) => item.isUnikey === true)?.map((item) => item.field);
|
|
1538
|
-
(0, import_react12.useEffect)(() => {
|
|
1539
|
-
if (pagingClient) {
|
|
1540
|
-
const length = dataSource.length;
|
|
1541
|
-
if (length > 0) {
|
|
1542
|
-
const arr = [];
|
|
1543
|
-
for (let i = (pagingSetting?.pageSize ?? 0) * ((pagingSetting?.currentPage ?? 0) - 1); i < dataSource.length && i < (pagingSetting?.pageSize ?? 0) * (pagingSetting?.currentPage ?? 0); i++) {
|
|
1544
|
-
arr.push(dataSource[i]);
|
|
1545
|
-
}
|
|
1546
|
-
setDataDisplay(arr);
|
|
1547
|
-
}
|
|
1548
|
-
setTotalCount(length);
|
|
1549
|
-
}
|
|
1550
|
-
}, [pagingSetting?.currentPage, pagingSetting?.pageSize]);
|
|
1551
|
-
(0, import_react12.useEffect)(() => {
|
|
1552
|
-
if (pagingClient && dataDisplay.length > 0) {
|
|
1553
|
-
const length = dataSource?.length ?? 0;
|
|
1554
|
-
if (length > 0) {
|
|
1555
|
-
const arr = [];
|
|
1556
|
-
for (let i = (pagingSetting?.pageSize ?? 0) * ((pagingSetting?.currentPage ?? 0) - 1); i < dataSource.length && i < (pagingSetting?.pageSize ?? 0) * (pagingSetting?.currentPage ?? 0); i++) {
|
|
1557
|
-
arr.push(dataSource[i]);
|
|
1558
|
-
}
|
|
1559
|
-
setDataDisplay(arr);
|
|
1560
|
-
}
|
|
1561
|
-
setTotalCount(length);
|
|
1562
|
-
}
|
|
1563
|
-
}, [dataSource]);
|
|
1564
1537
|
(0, import_react12.useEffect)(() => {
|
|
1565
1538
|
let indexFirst = -1;
|
|
1566
1539
|
let indexlast = -1;
|
|
@@ -1666,7 +1639,7 @@ var TableEdit = (0, import_react12.forwardRef)((props, ref) => {
|
|
|
1666
1639
|
}
|
|
1667
1640
|
}
|
|
1668
1641
|
}
|
|
1669
|
-
changeDataSource(
|
|
1642
|
+
changeDataSource(dataSource);
|
|
1670
1643
|
if (dataSourceChange) {
|
|
1671
1644
|
dataSourceChange(dataSource);
|
|
1672
1645
|
}
|
|
@@ -1686,7 +1659,7 @@ var TableEdit = (0, import_react12.forwardRef)((props, ref) => {
|
|
|
1686
1659
|
}
|
|
1687
1660
|
}
|
|
1688
1661
|
}
|
|
1689
|
-
changeDataSource(
|
|
1662
|
+
changeDataSource(dataSource);
|
|
1690
1663
|
if (dataSourceChange) {
|
|
1691
1664
|
dataSourceChange(dataSource);
|
|
1692
1665
|
}
|
|
@@ -1730,7 +1703,7 @@ var TableEdit = (0, import_react12.forwardRef)((props, ref) => {
|
|
|
1730
1703
|
onChange: (val) => {
|
|
1731
1704
|
row[col.field] = val.target.value;
|
|
1732
1705
|
if (col.callback) {
|
|
1733
|
-
col.callback(val.target.value, indexRow);
|
|
1706
|
+
col.callback(row, val.target.value, indexRow);
|
|
1734
1707
|
}
|
|
1735
1708
|
handleDataChange(row, col, indexRow);
|
|
1736
1709
|
},
|
|
@@ -2142,35 +2115,25 @@ var TableEdit = (0, import_react12.forwardRef)((props, ref) => {
|
|
|
2142
2115
|
);
|
|
2143
2116
|
}) }) });
|
|
2144
2117
|
};
|
|
2145
|
-
const moveIndexRowToNewPage = (
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
tableElement.current?.scrollTo(0, tableElement.current.scrollHeight);
|
|
2162
|
-
const element = document.getElementById(`${idTable}-col${columnFistEdit}-row${index + 1}`);
|
|
2163
|
-
if (element) {
|
|
2164
|
-
if (element.className.includes("react-select") || element.className.includes("form-edit")) {
|
|
2165
|
-
element.getElementsByTagName("input")[0]?.focus();
|
|
2166
|
-
} else {
|
|
2167
|
-
element.focus();
|
|
2168
|
-
element.scrollIntoView();
|
|
2169
|
-
}
|
|
2118
|
+
const moveIndexRowToNewPage = () => {
|
|
2119
|
+
changeDataSource(dataSource, true);
|
|
2120
|
+
if (pagingClient && pagingSetting?.setCurrentPage && totalCount % (pagingSetting?.pageSize ?? 0) === 0) {
|
|
2121
|
+
pagingSetting?.setCurrentPage((pagingSetting?.currentPage ?? 0) + 1);
|
|
2122
|
+
}
|
|
2123
|
+
if (tableElement) {
|
|
2124
|
+
setIndexFocus(totalCount);
|
|
2125
|
+
setTimeout(() => {
|
|
2126
|
+
tableElement.current?.scrollTo(0, tableElement.current.scrollHeight);
|
|
2127
|
+
const element = document.getElementById(`${idTable}-col${columnFistEdit}-row${totalCount + 1}`);
|
|
2128
|
+
if (element) {
|
|
2129
|
+
if (element.className.includes("react-select") || element.className.includes("form-edit")) {
|
|
2130
|
+
element.getElementsByTagName("input")[0]?.focus();
|
|
2131
|
+
} else {
|
|
2132
|
+
element.focus();
|
|
2133
|
+
element.scrollIntoView();
|
|
2170
2134
|
}
|
|
2171
|
-
}
|
|
2172
|
-
}
|
|
2173
|
-
} else {
|
|
2135
|
+
}
|
|
2136
|
+
}, 100);
|
|
2174
2137
|
}
|
|
2175
2138
|
};
|
|
2176
2139
|
const checkKeyDown = (e, row, col, indexRow, indexCol) => {
|
|
@@ -2217,17 +2180,13 @@ var TableEdit = (0, import_react12.forwardRef)((props, ref) => {
|
|
|
2217
2180
|
} else if (e.code === "ArrowUp") {
|
|
2218
2181
|
const element = document.getElementById(`${idTable}-col${indexCol}-row${indexRow}`);
|
|
2219
2182
|
if (element && !(element.getElementsByClassName("select__control--menu-is-open").length > 0 || element.getElementsByClassName("select-100__control--menu-is-open").length > 0 || element.getElementsByClassName("select-200__control--menu-is-open").length > 0 || element.getElementsByClassName("select-300__control--menu-is-open").length > 0 || element.getElementsByClassName("select-400__control--menu-is-open").length > 0 || element.getElementsByClassName("select-500__control--menu-is-open").length > 0)) {
|
|
2220
|
-
let index = -1;
|
|
2221
2183
|
if (indexRow > 1) {
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2225
|
-
|
|
2226
|
-
}
|
|
2227
|
-
if (index !== -1) {
|
|
2228
|
-
setIndexFocus(index);
|
|
2184
|
+
if (pagingClient && (pagingSetting?.currentPage ?? 0) !== 1 && indexRow % (pagingSetting?.pageSize ?? 0) === 1) {
|
|
2185
|
+
pagingSetting?.setCurrentPage((pagingSetting?.currentPage ?? 1) - 1);
|
|
2186
|
+
}
|
|
2187
|
+
setIndexFocus(indexRow - 2);
|
|
2229
2188
|
setTimeout(() => {
|
|
2230
|
-
const element2 = document.getElementById(`${idTable}-col${indexCol}-row${
|
|
2189
|
+
const element2 = document.getElementById(`${idTable}-col${indexCol}-row${indexRow - 1}`);
|
|
2231
2190
|
if (element2) {
|
|
2232
2191
|
if (element2.className.includes("react-select") || element2.className.includes("form-edit")) {
|
|
2233
2192
|
element2.getElementsByTagName("input")[0]?.focus();
|
|
@@ -2243,17 +2202,13 @@ var TableEdit = (0, import_react12.forwardRef)((props, ref) => {
|
|
|
2243
2202
|
} else if (e.code === "ArrowDown") {
|
|
2244
2203
|
const element = document.getElementById(`${idTable}-col${indexCol}-row${indexRow}`);
|
|
2245
2204
|
if (element && !(element.getElementsByClassName("select__control--menu-is-open").length > 0 || element.getElementsByClassName("select-100__control--menu-is-open").length > 0 || element.getElementsByClassName("select-200__control--menu-is-open").length > 0 || element.getElementsByClassName("select-300__control--menu-is-open").length > 0 || element.getElementsByClassName("select-400__control--menu-is-open").length > 0 || element.getElementsByClassName("select-500__control--menu-is-open").length > 0)) {
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
pagingSetting?.setCurrentPage((pagingSetting?.currentPage ?? 1) + 1);
|
|
2252
|
-
}
|
|
2253
|
-
if (index !== -1) {
|
|
2254
|
-
setIndexFocus(index);
|
|
2205
|
+
if (indexRow < totalCount) {
|
|
2206
|
+
if (pagingClient && indexRow % (pagingSetting?.pageSize ?? 0) === 0) {
|
|
2207
|
+
pagingSetting?.setCurrentPage((pagingSetting?.currentPage ?? 1) + 1);
|
|
2208
|
+
}
|
|
2209
|
+
setIndexFocus(indexRow);
|
|
2255
2210
|
setTimeout(() => {
|
|
2256
|
-
const element2 = document.getElementById(`${idTable}-col${indexCol}-row${
|
|
2211
|
+
const element2 = document.getElementById(`${idTable}-col${indexCol}-row${indexRow + 1}`);
|
|
2257
2212
|
if (element2) {
|
|
2258
2213
|
if (element2.className.includes("react-select") || element2.className.includes("form-edit")) {
|
|
2259
2214
|
element2.getElementsByTagName("input")[0]?.focus();
|
|
@@ -2267,12 +2222,15 @@ var TableEdit = (0, import_react12.forwardRef)((props, ref) => {
|
|
|
2267
2222
|
}
|
|
2268
2223
|
}
|
|
2269
2224
|
} else if (e.code === "Tab" && indexCol === columnLastEdit) {
|
|
2270
|
-
if (indexRow ===
|
|
2271
|
-
moveIndexRowToNewPage(
|
|
2225
|
+
if (indexRow === totalCount) {
|
|
2226
|
+
moveIndexRowToNewPage();
|
|
2272
2227
|
} else {
|
|
2228
|
+
if (pagingClient && indexRow % (pagingSetting?.pageSize ?? 0) === 0) {
|
|
2229
|
+
pagingSetting?.setCurrentPage((pagingSetting?.currentPage ?? 1) + 1);
|
|
2230
|
+
}
|
|
2273
2231
|
setIndexFocus(indexRow);
|
|
2274
2232
|
setTimeout(() => {
|
|
2275
|
-
const element = document.getElementById(`${idTable}-col${
|
|
2233
|
+
const element = document.getElementById(`${idTable}-col${indexCol}-row${indexRow + 1}`);
|
|
2276
2234
|
if (element) {
|
|
2277
2235
|
if (element.className.includes("react-select") || element.className.includes("form-edit")) {
|
|
2278
2236
|
element.getElementsByTagName("input")[0]?.focus();
|
|
@@ -2283,15 +2241,19 @@ var TableEdit = (0, import_react12.forwardRef)((props, ref) => {
|
|
|
2283
2241
|
}, 100);
|
|
2284
2242
|
}
|
|
2285
2243
|
e.preventDefault();
|
|
2244
|
+
return e.code;
|
|
2286
2245
|
} else if ((e.code === "Enter" || e.code === "NumpadEnter") && (!editDisable && !addDisable)) {
|
|
2287
2246
|
const element = document.getElementById(`${idTable}-col${indexCol}-row${indexRow}`);
|
|
2288
2247
|
if (element && !(element.getElementsByClassName("select__control--menu-is-open").length > 0 || element.getElementsByClassName("select-100__control--menu-is-open").length > 0 || element.getElementsByClassName("select-200__control--menu-is-open").length > 0 || element.getElementsByClassName("select-300__control--menu-is-open").length > 0 || element.getElementsByClassName("select-400__control--menu-is-open").length > 0 || element.getElementsByClassName("select-500__control--menu-is-open").length > 0)) {
|
|
2289
|
-
if (indexRow ===
|
|
2290
|
-
moveIndexRowToNewPage(
|
|
2248
|
+
if (indexRow === totalCount) {
|
|
2249
|
+
moveIndexRowToNewPage();
|
|
2291
2250
|
} else {
|
|
2251
|
+
if (pagingClient && indexRow % (pagingSetting?.pageSize ?? 0) === 0) {
|
|
2252
|
+
pagingSetting?.setCurrentPage((pagingSetting?.currentPage ?? 1) + 1);
|
|
2253
|
+
}
|
|
2292
2254
|
setIndexFocus(indexRow);
|
|
2293
2255
|
setTimeout(() => {
|
|
2294
|
-
const element2 = document.getElementById(`${idTable}-col${
|
|
2256
|
+
const element2 = document.getElementById(`${idTable}-col${indexCol}-row${indexRow + 1}`);
|
|
2295
2257
|
if (element2) {
|
|
2296
2258
|
if (element2.className.includes("react-select") || element2.className.includes("form-edit")) {
|
|
2297
2259
|
element2.getElementsByTagName("input")[0]?.focus();
|
|
@@ -2339,18 +2301,13 @@ var TableEdit = (0, import_react12.forwardRef)((props, ref) => {
|
|
|
2339
2301
|
}
|
|
2340
2302
|
});
|
|
2341
2303
|
const handleAdd = () => {
|
|
2342
|
-
changeDataSource(
|
|
2343
|
-
|
|
2344
|
-
if (pagingClient && dataDisplay.length > (pagingSetting?.pageSize ?? 0) && pagingSetting?.setCurrentPage) {
|
|
2345
|
-
pagingSetting?.setCurrentPage((pagingSetting?.currentPage ?? 0) + 1);
|
|
2346
|
-
} else {
|
|
2347
|
-
index = dataDisplay.length - 1;
|
|
2348
|
-
}
|
|
2304
|
+
changeDataSource(dataSource, true);
|
|
2305
|
+
pagingSetting?.setCurrentPage(Math.floor(totalCount / (pagingSetting?.pageSize ?? 0)) + 1);
|
|
2349
2306
|
if (tableElement) {
|
|
2350
|
-
setIndexFocus(
|
|
2307
|
+
setIndexFocus(totalCount);
|
|
2351
2308
|
setTimeout(() => {
|
|
2352
2309
|
tableElement.current?.scrollTo(0, tableElement.current.scrollHeight);
|
|
2353
|
-
const element = document.getElementById(`${idTable}-col${columnFistEdit}-row${
|
|
2310
|
+
const element = document.getElementById(`${idTable}-col${columnFistEdit}-row${totalCount + 1}`);
|
|
2354
2311
|
if (element && !(element.getElementsByClassName("select__control--menu-is-open").length > 0 || element.getElementsByClassName("select-100__control--menu-is-open").length > 0 || element.getElementsByClassName("select-200__control--menu-is-open").length > 0 || element.getElementsByClassName("select-300__control--menu-is-open").length > 0 || element.getElementsByClassName("select-400__control--menu-is-open").length > 0 || element.getElementsByClassName("select-500__control--menu-is-open").length > 0)) {
|
|
2355
2312
|
if (element.className.includes("react-select") || element.className.includes("form-edit")) {
|
|
2356
2313
|
element.getElementsByTagName("input")[0]?.focus();
|
|
@@ -2370,15 +2327,12 @@ var TableEdit = (0, import_react12.forwardRef)((props, ref) => {
|
|
|
2370
2327
|
data[fieldKey] = defaultValue[fieldKey];
|
|
2371
2328
|
}
|
|
2372
2329
|
if (pagingClient) {
|
|
2373
|
-
if (dataDisplay.length < (pagingSetting?.pageSize ?? 0)) {
|
|
2374
|
-
dataDisplay.splice(index, 0, data);
|
|
2375
|
-
}
|
|
2376
2330
|
dataSource.splice(((pagingSetting?.currentPage ?? 1) - 1) * (pagingSetting?.pageSize ?? 0) + index, 0, { ...data });
|
|
2377
2331
|
} else {
|
|
2378
2332
|
dataSource.splice(index, 0, data);
|
|
2379
2333
|
}
|
|
2380
|
-
changeDataSource(
|
|
2381
|
-
if (tableElement && index ===
|
|
2334
|
+
changeDataSource(dataSource);
|
|
2335
|
+
if (tableElement && index === totalCount) {
|
|
2382
2336
|
setTimeout(() => {
|
|
2383
2337
|
tableElement.current?.scrollTo(0, tableElement.current.scrollHeight);
|
|
2384
2338
|
}, 100);
|
|
@@ -2388,15 +2342,12 @@ var TableEdit = (0, import_react12.forwardRef)((props, ref) => {
|
|
|
2388
2342
|
const handleInsertAfter = () => {
|
|
2389
2343
|
if (toolbarSetting?.showBottomToolbar && !buttonSetting?.insertAfterDisable && !editDisable && !addDisable) {
|
|
2390
2344
|
if (pagingClient) {
|
|
2391
|
-
if (dataDisplay.length < (pagingSetting?.pageSize ?? 0)) {
|
|
2392
|
-
dataDisplay.splice((indexFocus ?? -1) + 1, 0, { ...defaultValue });
|
|
2393
|
-
}
|
|
2394
2345
|
dataSource.splice(((pagingSetting?.currentPage ?? 1) - 1) * (pagingSetting?.pageSize ?? 0) + (indexFocus ?? -1) + 1, 0, { ...{ ...defaultValue } });
|
|
2395
2346
|
} else {
|
|
2396
2347
|
dataSource.splice((indexFocus ?? -1) + 1, 0, { ...defaultValue });
|
|
2397
2348
|
}
|
|
2398
|
-
changeDataSource(
|
|
2399
|
-
if (tableElement && indexFocus ===
|
|
2349
|
+
changeDataSource(dataSource);
|
|
2350
|
+
if (tableElement && indexFocus === totalCount) {
|
|
2400
2351
|
setTimeout(() => {
|
|
2401
2352
|
tableElement.current?.scrollTo(0, tableElement.current.scrollHeight);
|
|
2402
2353
|
}, 100);
|
|
@@ -2406,14 +2357,11 @@ var TableEdit = (0, import_react12.forwardRef)((props, ref) => {
|
|
|
2406
2357
|
const handleInsertBefore = () => {
|
|
2407
2358
|
if (toolbarSetting?.showBottomToolbar && !buttonSetting?.insertBeforeDisable && !editDisable && !addDisable) {
|
|
2408
2359
|
if (pagingClient) {
|
|
2409
|
-
if (dataDisplay.length < (pagingSetting?.pageSize ?? 0)) {
|
|
2410
|
-
dataDisplay.splice(indexFocus ?? -1, 0, { ...defaultValue });
|
|
2411
|
-
}
|
|
2412
2360
|
dataSource.splice(((pagingSetting?.currentPage ?? 1) - 1) * (pagingSetting?.pageSize ?? 0) + (indexFocus ?? -1), 0, { ...{ ...defaultValue } });
|
|
2413
2361
|
} else {
|
|
2414
2362
|
dataSource.splice(indexFocus ?? -1, 0, { ...defaultValue });
|
|
2415
2363
|
}
|
|
2416
|
-
changeDataSource(
|
|
2364
|
+
changeDataSource(dataSource);
|
|
2417
2365
|
}
|
|
2418
2366
|
};
|
|
2419
2367
|
const handleDeleteAll = () => {
|
|
@@ -2446,29 +2394,15 @@ var TableEdit = (0, import_react12.forwardRef)((props, ref) => {
|
|
|
2446
2394
|
rowChange(dataRow, row + indexRow, "");
|
|
2447
2395
|
});
|
|
2448
2396
|
handleRefeshRow();
|
|
2449
|
-
changeDataSource(
|
|
2397
|
+
changeDataSource(dataSource);
|
|
2450
2398
|
};
|
|
2451
2399
|
const changeDataSource = (data, haveNew = false) => {
|
|
2452
|
-
if (
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
if (pagingClient) {
|
|
2457
|
-
if (haveNew) {
|
|
2458
|
-
data.push(defaultValue ? { ...defaultValue, [fieldKey]: generateUUID() } : {});
|
|
2459
|
-
setDataDisplay(data);
|
|
2460
|
-
dataSource.push(defaultValue ? { ...defaultValue, [fieldKey]: generateUUID() } : {});
|
|
2461
|
-
} else {
|
|
2462
|
-
setDataDisplay([...data]);
|
|
2463
|
-
}
|
|
2464
|
-
setTotalCount(dataSource?.length ?? 0);
|
|
2400
|
+
if (!editDisable && !addDisable && setDataSource) {
|
|
2401
|
+
if (haveNew) {
|
|
2402
|
+
data.push(defaultValue ? { ...defaultValue, [fieldKey]: generateUUID() } : {});
|
|
2403
|
+
setDataSource([...data]);
|
|
2465
2404
|
} else {
|
|
2466
|
-
|
|
2467
|
-
data.push(defaultValue ? { ...defaultValue, [fieldKey]: generateUUID() } : {});
|
|
2468
|
-
setDataSource([...data]);
|
|
2469
|
-
} else {
|
|
2470
|
-
setDataSource([...data]);
|
|
2471
|
-
}
|
|
2405
|
+
setDataSource([...data]);
|
|
2472
2406
|
}
|
|
2473
2407
|
}
|
|
2474
2408
|
};
|
|
@@ -2554,18 +2488,11 @@ var TableEdit = (0, import_react12.forwardRef)((props, ref) => {
|
|
|
2554
2488
|
onPaste: (e) => {
|
|
2555
2489
|
if (!editDisable && (e.target.nodeName === "DIV" || e.target.nodeName === "TD")) {
|
|
2556
2490
|
navigator.clipboard.readText().then((rs) => {
|
|
2557
|
-
|
|
2558
|
-
|
|
2559
|
-
|
|
2560
|
-
dataDisplay[indexRow][fieldKey] = defaultValue[fieldKey];
|
|
2561
|
-
}
|
|
2562
|
-
} else {
|
|
2563
|
-
dataSource[indexRow] = JSON.parse(rs);
|
|
2564
|
-
if (fieldKey) {
|
|
2565
|
-
dataSource[indexRow][fieldKey] = defaultValue[fieldKey];
|
|
2566
|
-
}
|
|
2491
|
+
dataSource[indexRow] = JSON.parse(rs);
|
|
2492
|
+
if (fieldKey) {
|
|
2493
|
+
dataSource[indexRow][fieldKey] = defaultValue[fieldKey];
|
|
2567
2494
|
}
|
|
2568
|
-
changeDataSource(
|
|
2495
|
+
changeDataSource(dataSource);
|
|
2569
2496
|
notificationSuccess(t("PasteSuccessful"));
|
|
2570
2497
|
}).catch((ex) => {
|
|
2571
2498
|
alert(ex);
|
|
@@ -2772,22 +2699,16 @@ var TableEdit = (0, import_react12.forwardRef)((props, ref) => {
|
|
|
2772
2699
|
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2773
2700
|
import_reactstrap8.Input,
|
|
2774
2701
|
{
|
|
2775
|
-
checked:
|
|
2702
|
+
checked: totalCount > 0 && selectedRows?.length >= totalCount,
|
|
2776
2703
|
type: "checkbox",
|
|
2777
2704
|
className: (0, import_classnames10.default)("cursor-pointer", { "d-none": !isMulti }),
|
|
2778
2705
|
style: { textAlign: col.textAlign ?? "left", marginTop: 6 },
|
|
2779
2706
|
onChange: (e) => {
|
|
2780
2707
|
if (selectEnable) {
|
|
2781
2708
|
if (e.target.checked) {
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
}));
|
|
2786
|
-
} else {
|
|
2787
|
-
setSelectedRows(dataSource.map((item) => {
|
|
2788
|
-
return item;
|
|
2789
|
-
}));
|
|
2790
|
-
}
|
|
2709
|
+
setSelectedRows(dataSource.map((item) => {
|
|
2710
|
+
return item;
|
|
2711
|
+
}));
|
|
2791
2712
|
} else {
|
|
2792
2713
|
setSelectedRows([]);
|
|
2793
2714
|
}
|
|
@@ -2919,7 +2840,7 @@ var TableEdit = (0, import_react12.forwardRef)((props, ref) => {
|
|
|
2919
2840
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: (0, import_classnames10.default)("r-toolbar-item", { "d-none": editDisable || addDisable }), "aria-disabled": "false", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_reactstrap8.Button, { color: "success", outline: true, onClick: handleAdd, className: "d-flex", children: t("Add item") }) }),
|
|
2920
2841
|
(indexFocus ?? -1) > -1 ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
|
|
2921
2842
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: (0, import_classnames10.default)("r-toolbar-item", { "d-none": editDisable || addDisable || buttonSetting?.duplicateDisable }), "aria-disabled": "false", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_reactstrap8.Button, { color: "success", outline: true, onClick: () => {
|
|
2922
|
-
handleDuplicate(
|
|
2843
|
+
handleDuplicate(dataSource[indexFocus ?? -1], indexFocus ?? -1);
|
|
2923
2844
|
}, className: "d-flex", children: t("Duplicate") }) }),
|
|
2924
2845
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: (0, import_classnames10.default)("r-toolbar-item", { "d-none": editDisable || addDisable || buttonSetting?.insertBeforeDisable }), "aria-disabled": "false", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_reactstrap8.Button, { color: "success", outline: true, onClick: handleInsertBefore, className: "d-flex", children: t("Insert item before") }) }),
|
|
2925
2846
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: (0, import_classnames10.default)("r-toolbar-item", { "d-none": editDisable || addDisable || buttonSetting?.insertAfterDisable }), "aria-disabled": "false", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_reactstrap8.Button, { color: "success", outline: true, onClick: handleInsertAfter, className: "d-flex", children: t("Insert item after") }) })
|
|
@@ -2959,24 +2880,13 @@ var TableEdit = (0, import_react12.forwardRef)((props, ref) => {
|
|
|
2959
2880
|
return renderHeaderCol(col, index, indexParent);
|
|
2960
2881
|
}) }, indexParent);
|
|
2961
2882
|
}) }),
|
|
2962
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("tbody", { className: "r-gridcontent", children:
|
|
2963
|
-
const isSelected = selectedRows?.some((x) => x[fieldKey] === row[fieldKey]);
|
|
2964
|
-
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2965
|
-
"tr",
|
|
2966
|
-
{
|
|
2967
|
-
className: (0, import_classnames10.default)("r-row", { "last-row": indexRow === dataDisplay.length - 1 }, { "fisrt-row": indexRow === 0 }),
|
|
2968
|
-
children: contentColumns.map((col, indexCol) => {
|
|
2969
|
-
return renderContentCol(col, row, indexRow, indexCol, isSelected);
|
|
2970
|
-
})
|
|
2971
|
-
},
|
|
2972
|
-
`row-${indexRow}`
|
|
2973
|
-
);
|
|
2974
|
-
}) : dataSource.map((row, indexRow) => {
|
|
2883
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("tbody", { className: "r-gridcontent", children: dataSource.map((row, indexRow) => {
|
|
2975
2884
|
const isSelected = selectedRows?.some((x) => x[fieldKey] === row[fieldKey]);
|
|
2976
|
-
|
|
2885
|
+
const flagDisplay = !pagingClient || indexRow + 1 > (pagingSetting.pageSize ?? 0) * ((pagingSetting.currentPage ?? 0) - 1) && indexRow < (pagingSetting.pageSize ?? 0) * (pagingSetting.currentPage ?? 0);
|
|
2886
|
+
return flagDisplay && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2977
2887
|
"tr",
|
|
2978
2888
|
{
|
|
2979
|
-
className: (0, import_classnames10.default)("r-row", { "last-row": indexRow ===
|
|
2889
|
+
className: (0, import_classnames10.default)("r-row", { "last-row": indexRow === (pagingClient ? totalCount % (pagingSetting?.pageSize ?? 0) : totalCount - 1) }, { "fisrt-row": indexRow === 0 }),
|
|
2980
2890
|
children: contentColumns.map((col, indexCol) => {
|
|
2981
2891
|
return renderContentCol(col, row, indexRow, indexCol, isSelected);
|
|
2982
2892
|
})
|
package/dist/index.mjs
CHANGED
|
@@ -1484,42 +1484,15 @@ var TableEdit = forwardRef2((props, ref) => {
|
|
|
1484
1484
|
const [columnLastEdit, setColumnlastEdit] = useState5(0);
|
|
1485
1485
|
const [objWidthFix, setObjWidthFix] = useState5({});
|
|
1486
1486
|
const [openPopupTree, setOpenPopupTree] = useState5(false);
|
|
1487
|
-
const [dataDisplay, setDataDisplay] = useState5([]);
|
|
1488
1487
|
const [openPopupSetupColumn, setOpenPopupSetupColumn] = useState5(false);
|
|
1489
|
-
const [totalCount, setTotalCount] = useState5(0);
|
|
1490
1488
|
const tableElement = useRef2(null);
|
|
1491
1489
|
const gridRef = useRef2();
|
|
1492
1490
|
const lag = window.localStorage.getItem("i18nextLng");
|
|
1493
1491
|
const lang = lag ? lag : "vi";
|
|
1494
1492
|
const pagingClient = pagingSetting?.allowPaging && !(editDisable || addDisable);
|
|
1493
|
+
const totalCount = dataSource.length;
|
|
1495
1494
|
const fieldKey = columns.find((item) => item.isPrimarykey === true)?.field ?? "id";
|
|
1496
1495
|
const fieldUniKey = columns.filter((item) => item.isUnikey === true)?.map((item) => item.field);
|
|
1497
|
-
useEffect5(() => {
|
|
1498
|
-
if (pagingClient) {
|
|
1499
|
-
const length = dataSource.length;
|
|
1500
|
-
if (length > 0) {
|
|
1501
|
-
const arr = [];
|
|
1502
|
-
for (let i = (pagingSetting?.pageSize ?? 0) * ((pagingSetting?.currentPage ?? 0) - 1); i < dataSource.length && i < (pagingSetting?.pageSize ?? 0) * (pagingSetting?.currentPage ?? 0); i++) {
|
|
1503
|
-
arr.push(dataSource[i]);
|
|
1504
|
-
}
|
|
1505
|
-
setDataDisplay(arr);
|
|
1506
|
-
}
|
|
1507
|
-
setTotalCount(length);
|
|
1508
|
-
}
|
|
1509
|
-
}, [pagingSetting?.currentPage, pagingSetting?.pageSize]);
|
|
1510
|
-
useEffect5(() => {
|
|
1511
|
-
if (pagingClient && dataDisplay.length > 0) {
|
|
1512
|
-
const length = dataSource?.length ?? 0;
|
|
1513
|
-
if (length > 0) {
|
|
1514
|
-
const arr = [];
|
|
1515
|
-
for (let i = (pagingSetting?.pageSize ?? 0) * ((pagingSetting?.currentPage ?? 0) - 1); i < dataSource.length && i < (pagingSetting?.pageSize ?? 0) * (pagingSetting?.currentPage ?? 0); i++) {
|
|
1516
|
-
arr.push(dataSource[i]);
|
|
1517
|
-
}
|
|
1518
|
-
setDataDisplay(arr);
|
|
1519
|
-
}
|
|
1520
|
-
setTotalCount(length);
|
|
1521
|
-
}
|
|
1522
|
-
}, [dataSource]);
|
|
1523
1496
|
useEffect5(() => {
|
|
1524
1497
|
let indexFirst = -1;
|
|
1525
1498
|
let indexlast = -1;
|
|
@@ -1625,7 +1598,7 @@ var TableEdit = forwardRef2((props, ref) => {
|
|
|
1625
1598
|
}
|
|
1626
1599
|
}
|
|
1627
1600
|
}
|
|
1628
|
-
changeDataSource(
|
|
1601
|
+
changeDataSource(dataSource);
|
|
1629
1602
|
if (dataSourceChange) {
|
|
1630
1603
|
dataSourceChange(dataSource);
|
|
1631
1604
|
}
|
|
@@ -1645,7 +1618,7 @@ var TableEdit = forwardRef2((props, ref) => {
|
|
|
1645
1618
|
}
|
|
1646
1619
|
}
|
|
1647
1620
|
}
|
|
1648
|
-
changeDataSource(
|
|
1621
|
+
changeDataSource(dataSource);
|
|
1649
1622
|
if (dataSourceChange) {
|
|
1650
1623
|
dataSourceChange(dataSource);
|
|
1651
1624
|
}
|
|
@@ -1689,7 +1662,7 @@ var TableEdit = forwardRef2((props, ref) => {
|
|
|
1689
1662
|
onChange: (val) => {
|
|
1690
1663
|
row[col.field] = val.target.value;
|
|
1691
1664
|
if (col.callback) {
|
|
1692
|
-
col.callback(val.target.value, indexRow);
|
|
1665
|
+
col.callback(row, val.target.value, indexRow);
|
|
1693
1666
|
}
|
|
1694
1667
|
handleDataChange(row, col, indexRow);
|
|
1695
1668
|
},
|
|
@@ -2101,35 +2074,25 @@ var TableEdit = forwardRef2((props, ref) => {
|
|
|
2101
2074
|
);
|
|
2102
2075
|
}) }) });
|
|
2103
2076
|
};
|
|
2104
|
-
const moveIndexRowToNewPage = (
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
tableElement.current?.scrollTo(0, tableElement.current.scrollHeight);
|
|
2121
|
-
const element = document.getElementById(`${idTable}-col${columnFistEdit}-row${index + 1}`);
|
|
2122
|
-
if (element) {
|
|
2123
|
-
if (element.className.includes("react-select") || element.className.includes("form-edit")) {
|
|
2124
|
-
element.getElementsByTagName("input")[0]?.focus();
|
|
2125
|
-
} else {
|
|
2126
|
-
element.focus();
|
|
2127
|
-
element.scrollIntoView();
|
|
2128
|
-
}
|
|
2077
|
+
const moveIndexRowToNewPage = () => {
|
|
2078
|
+
changeDataSource(dataSource, true);
|
|
2079
|
+
if (pagingClient && pagingSetting?.setCurrentPage && totalCount % (pagingSetting?.pageSize ?? 0) === 0) {
|
|
2080
|
+
pagingSetting?.setCurrentPage((pagingSetting?.currentPage ?? 0) + 1);
|
|
2081
|
+
}
|
|
2082
|
+
if (tableElement) {
|
|
2083
|
+
setIndexFocus(totalCount);
|
|
2084
|
+
setTimeout(() => {
|
|
2085
|
+
tableElement.current?.scrollTo(0, tableElement.current.scrollHeight);
|
|
2086
|
+
const element = document.getElementById(`${idTable}-col${columnFistEdit}-row${totalCount + 1}`);
|
|
2087
|
+
if (element) {
|
|
2088
|
+
if (element.className.includes("react-select") || element.className.includes("form-edit")) {
|
|
2089
|
+
element.getElementsByTagName("input")[0]?.focus();
|
|
2090
|
+
} else {
|
|
2091
|
+
element.focus();
|
|
2092
|
+
element.scrollIntoView();
|
|
2129
2093
|
}
|
|
2130
|
-
}
|
|
2131
|
-
}
|
|
2132
|
-
} else {
|
|
2094
|
+
}
|
|
2095
|
+
}, 100);
|
|
2133
2096
|
}
|
|
2134
2097
|
};
|
|
2135
2098
|
const checkKeyDown = (e, row, col, indexRow, indexCol) => {
|
|
@@ -2176,17 +2139,13 @@ var TableEdit = forwardRef2((props, ref) => {
|
|
|
2176
2139
|
} else if (e.code === "ArrowUp") {
|
|
2177
2140
|
const element = document.getElementById(`${idTable}-col${indexCol}-row${indexRow}`);
|
|
2178
2141
|
if (element && !(element.getElementsByClassName("select__control--menu-is-open").length > 0 || element.getElementsByClassName("select-100__control--menu-is-open").length > 0 || element.getElementsByClassName("select-200__control--menu-is-open").length > 0 || element.getElementsByClassName("select-300__control--menu-is-open").length > 0 || element.getElementsByClassName("select-400__control--menu-is-open").length > 0 || element.getElementsByClassName("select-500__control--menu-is-open").length > 0)) {
|
|
2179
|
-
let index = -1;
|
|
2180
2142
|
if (indexRow > 1) {
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
}
|
|
2186
|
-
if (index !== -1) {
|
|
2187
|
-
setIndexFocus(index);
|
|
2143
|
+
if (pagingClient && (pagingSetting?.currentPage ?? 0) !== 1 && indexRow % (pagingSetting?.pageSize ?? 0) === 1) {
|
|
2144
|
+
pagingSetting?.setCurrentPage((pagingSetting?.currentPage ?? 1) - 1);
|
|
2145
|
+
}
|
|
2146
|
+
setIndexFocus(indexRow - 2);
|
|
2188
2147
|
setTimeout(() => {
|
|
2189
|
-
const element2 = document.getElementById(`${idTable}-col${indexCol}-row${
|
|
2148
|
+
const element2 = document.getElementById(`${idTable}-col${indexCol}-row${indexRow - 1}`);
|
|
2190
2149
|
if (element2) {
|
|
2191
2150
|
if (element2.className.includes("react-select") || element2.className.includes("form-edit")) {
|
|
2192
2151
|
element2.getElementsByTagName("input")[0]?.focus();
|
|
@@ -2202,17 +2161,13 @@ var TableEdit = forwardRef2((props, ref) => {
|
|
|
2202
2161
|
} else if (e.code === "ArrowDown") {
|
|
2203
2162
|
const element = document.getElementById(`${idTable}-col${indexCol}-row${indexRow}`);
|
|
2204
2163
|
if (element && !(element.getElementsByClassName("select__control--menu-is-open").length > 0 || element.getElementsByClassName("select-100__control--menu-is-open").length > 0 || element.getElementsByClassName("select-200__control--menu-is-open").length > 0 || element.getElementsByClassName("select-300__control--menu-is-open").length > 0 || element.getElementsByClassName("select-400__control--menu-is-open").length > 0 || element.getElementsByClassName("select-500__control--menu-is-open").length > 0)) {
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
|
|
2209
|
-
|
|
2210
|
-
pagingSetting?.setCurrentPage((pagingSetting?.currentPage ?? 1) + 1);
|
|
2211
|
-
}
|
|
2212
|
-
if (index !== -1) {
|
|
2213
|
-
setIndexFocus(index);
|
|
2164
|
+
if (indexRow < totalCount) {
|
|
2165
|
+
if (pagingClient && indexRow % (pagingSetting?.pageSize ?? 0) === 0) {
|
|
2166
|
+
pagingSetting?.setCurrentPage((pagingSetting?.currentPage ?? 1) + 1);
|
|
2167
|
+
}
|
|
2168
|
+
setIndexFocus(indexRow);
|
|
2214
2169
|
setTimeout(() => {
|
|
2215
|
-
const element2 = document.getElementById(`${idTable}-col${indexCol}-row${
|
|
2170
|
+
const element2 = document.getElementById(`${idTable}-col${indexCol}-row${indexRow + 1}`);
|
|
2216
2171
|
if (element2) {
|
|
2217
2172
|
if (element2.className.includes("react-select") || element2.className.includes("form-edit")) {
|
|
2218
2173
|
element2.getElementsByTagName("input")[0]?.focus();
|
|
@@ -2226,12 +2181,15 @@ var TableEdit = forwardRef2((props, ref) => {
|
|
|
2226
2181
|
}
|
|
2227
2182
|
}
|
|
2228
2183
|
} else if (e.code === "Tab" && indexCol === columnLastEdit) {
|
|
2229
|
-
if (indexRow ===
|
|
2230
|
-
moveIndexRowToNewPage(
|
|
2184
|
+
if (indexRow === totalCount) {
|
|
2185
|
+
moveIndexRowToNewPage();
|
|
2231
2186
|
} else {
|
|
2187
|
+
if (pagingClient && indexRow % (pagingSetting?.pageSize ?? 0) === 0) {
|
|
2188
|
+
pagingSetting?.setCurrentPage((pagingSetting?.currentPage ?? 1) + 1);
|
|
2189
|
+
}
|
|
2232
2190
|
setIndexFocus(indexRow);
|
|
2233
2191
|
setTimeout(() => {
|
|
2234
|
-
const element = document.getElementById(`${idTable}-col${
|
|
2192
|
+
const element = document.getElementById(`${idTable}-col${indexCol}-row${indexRow + 1}`);
|
|
2235
2193
|
if (element) {
|
|
2236
2194
|
if (element.className.includes("react-select") || element.className.includes("form-edit")) {
|
|
2237
2195
|
element.getElementsByTagName("input")[0]?.focus();
|
|
@@ -2242,15 +2200,19 @@ var TableEdit = forwardRef2((props, ref) => {
|
|
|
2242
2200
|
}, 100);
|
|
2243
2201
|
}
|
|
2244
2202
|
e.preventDefault();
|
|
2203
|
+
return e.code;
|
|
2245
2204
|
} else if ((e.code === "Enter" || e.code === "NumpadEnter") && (!editDisable && !addDisable)) {
|
|
2246
2205
|
const element = document.getElementById(`${idTable}-col${indexCol}-row${indexRow}`);
|
|
2247
2206
|
if (element && !(element.getElementsByClassName("select__control--menu-is-open").length > 0 || element.getElementsByClassName("select-100__control--menu-is-open").length > 0 || element.getElementsByClassName("select-200__control--menu-is-open").length > 0 || element.getElementsByClassName("select-300__control--menu-is-open").length > 0 || element.getElementsByClassName("select-400__control--menu-is-open").length > 0 || element.getElementsByClassName("select-500__control--menu-is-open").length > 0)) {
|
|
2248
|
-
if (indexRow ===
|
|
2249
|
-
moveIndexRowToNewPage(
|
|
2207
|
+
if (indexRow === totalCount) {
|
|
2208
|
+
moveIndexRowToNewPage();
|
|
2250
2209
|
} else {
|
|
2210
|
+
if (pagingClient && indexRow % (pagingSetting?.pageSize ?? 0) === 0) {
|
|
2211
|
+
pagingSetting?.setCurrentPage((pagingSetting?.currentPage ?? 1) + 1);
|
|
2212
|
+
}
|
|
2251
2213
|
setIndexFocus(indexRow);
|
|
2252
2214
|
setTimeout(() => {
|
|
2253
|
-
const element2 = document.getElementById(`${idTable}-col${
|
|
2215
|
+
const element2 = document.getElementById(`${idTable}-col${indexCol}-row${indexRow + 1}`);
|
|
2254
2216
|
if (element2) {
|
|
2255
2217
|
if (element2.className.includes("react-select") || element2.className.includes("form-edit")) {
|
|
2256
2218
|
element2.getElementsByTagName("input")[0]?.focus();
|
|
@@ -2298,18 +2260,13 @@ var TableEdit = forwardRef2((props, ref) => {
|
|
|
2298
2260
|
}
|
|
2299
2261
|
});
|
|
2300
2262
|
const handleAdd = () => {
|
|
2301
|
-
changeDataSource(
|
|
2302
|
-
|
|
2303
|
-
if (pagingClient && dataDisplay.length > (pagingSetting?.pageSize ?? 0) && pagingSetting?.setCurrentPage) {
|
|
2304
|
-
pagingSetting?.setCurrentPage((pagingSetting?.currentPage ?? 0) + 1);
|
|
2305
|
-
} else {
|
|
2306
|
-
index = dataDisplay.length - 1;
|
|
2307
|
-
}
|
|
2263
|
+
changeDataSource(dataSource, true);
|
|
2264
|
+
pagingSetting?.setCurrentPage(Math.floor(totalCount / (pagingSetting?.pageSize ?? 0)) + 1);
|
|
2308
2265
|
if (tableElement) {
|
|
2309
|
-
setIndexFocus(
|
|
2266
|
+
setIndexFocus(totalCount);
|
|
2310
2267
|
setTimeout(() => {
|
|
2311
2268
|
tableElement.current?.scrollTo(0, tableElement.current.scrollHeight);
|
|
2312
|
-
const element = document.getElementById(`${idTable}-col${columnFistEdit}-row${
|
|
2269
|
+
const element = document.getElementById(`${idTable}-col${columnFistEdit}-row${totalCount + 1}`);
|
|
2313
2270
|
if (element && !(element.getElementsByClassName("select__control--menu-is-open").length > 0 || element.getElementsByClassName("select-100__control--menu-is-open").length > 0 || element.getElementsByClassName("select-200__control--menu-is-open").length > 0 || element.getElementsByClassName("select-300__control--menu-is-open").length > 0 || element.getElementsByClassName("select-400__control--menu-is-open").length > 0 || element.getElementsByClassName("select-500__control--menu-is-open").length > 0)) {
|
|
2314
2271
|
if (element.className.includes("react-select") || element.className.includes("form-edit")) {
|
|
2315
2272
|
element.getElementsByTagName("input")[0]?.focus();
|
|
@@ -2329,15 +2286,12 @@ var TableEdit = forwardRef2((props, ref) => {
|
|
|
2329
2286
|
data[fieldKey] = defaultValue[fieldKey];
|
|
2330
2287
|
}
|
|
2331
2288
|
if (pagingClient) {
|
|
2332
|
-
if (dataDisplay.length < (pagingSetting?.pageSize ?? 0)) {
|
|
2333
|
-
dataDisplay.splice(index, 0, data);
|
|
2334
|
-
}
|
|
2335
2289
|
dataSource.splice(((pagingSetting?.currentPage ?? 1) - 1) * (pagingSetting?.pageSize ?? 0) + index, 0, { ...data });
|
|
2336
2290
|
} else {
|
|
2337
2291
|
dataSource.splice(index, 0, data);
|
|
2338
2292
|
}
|
|
2339
|
-
changeDataSource(
|
|
2340
|
-
if (tableElement && index ===
|
|
2293
|
+
changeDataSource(dataSource);
|
|
2294
|
+
if (tableElement && index === totalCount) {
|
|
2341
2295
|
setTimeout(() => {
|
|
2342
2296
|
tableElement.current?.scrollTo(0, tableElement.current.scrollHeight);
|
|
2343
2297
|
}, 100);
|
|
@@ -2347,15 +2301,12 @@ var TableEdit = forwardRef2((props, ref) => {
|
|
|
2347
2301
|
const handleInsertAfter = () => {
|
|
2348
2302
|
if (toolbarSetting?.showBottomToolbar && !buttonSetting?.insertAfterDisable && !editDisable && !addDisable) {
|
|
2349
2303
|
if (pagingClient) {
|
|
2350
|
-
if (dataDisplay.length < (pagingSetting?.pageSize ?? 0)) {
|
|
2351
|
-
dataDisplay.splice((indexFocus ?? -1) + 1, 0, { ...defaultValue });
|
|
2352
|
-
}
|
|
2353
2304
|
dataSource.splice(((pagingSetting?.currentPage ?? 1) - 1) * (pagingSetting?.pageSize ?? 0) + (indexFocus ?? -1) + 1, 0, { ...{ ...defaultValue } });
|
|
2354
2305
|
} else {
|
|
2355
2306
|
dataSource.splice((indexFocus ?? -1) + 1, 0, { ...defaultValue });
|
|
2356
2307
|
}
|
|
2357
|
-
changeDataSource(
|
|
2358
|
-
if (tableElement && indexFocus ===
|
|
2308
|
+
changeDataSource(dataSource);
|
|
2309
|
+
if (tableElement && indexFocus === totalCount) {
|
|
2359
2310
|
setTimeout(() => {
|
|
2360
2311
|
tableElement.current?.scrollTo(0, tableElement.current.scrollHeight);
|
|
2361
2312
|
}, 100);
|
|
@@ -2365,14 +2316,11 @@ var TableEdit = forwardRef2((props, ref) => {
|
|
|
2365
2316
|
const handleInsertBefore = () => {
|
|
2366
2317
|
if (toolbarSetting?.showBottomToolbar && !buttonSetting?.insertBeforeDisable && !editDisable && !addDisable) {
|
|
2367
2318
|
if (pagingClient) {
|
|
2368
|
-
if (dataDisplay.length < (pagingSetting?.pageSize ?? 0)) {
|
|
2369
|
-
dataDisplay.splice(indexFocus ?? -1, 0, { ...defaultValue });
|
|
2370
|
-
}
|
|
2371
2319
|
dataSource.splice(((pagingSetting?.currentPage ?? 1) - 1) * (pagingSetting?.pageSize ?? 0) + (indexFocus ?? -1), 0, { ...{ ...defaultValue } });
|
|
2372
2320
|
} else {
|
|
2373
2321
|
dataSource.splice(indexFocus ?? -1, 0, { ...defaultValue });
|
|
2374
2322
|
}
|
|
2375
|
-
changeDataSource(
|
|
2323
|
+
changeDataSource(dataSource);
|
|
2376
2324
|
}
|
|
2377
2325
|
};
|
|
2378
2326
|
const handleDeleteAll = () => {
|
|
@@ -2405,29 +2353,15 @@ var TableEdit = forwardRef2((props, ref) => {
|
|
|
2405
2353
|
rowChange(dataRow, row + indexRow, "");
|
|
2406
2354
|
});
|
|
2407
2355
|
handleRefeshRow();
|
|
2408
|
-
changeDataSource(
|
|
2356
|
+
changeDataSource(dataSource);
|
|
2409
2357
|
};
|
|
2410
2358
|
const changeDataSource = (data, haveNew = false) => {
|
|
2411
|
-
if (
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
if (pagingClient) {
|
|
2416
|
-
if (haveNew) {
|
|
2417
|
-
data.push(defaultValue ? { ...defaultValue, [fieldKey]: generateUUID() } : {});
|
|
2418
|
-
setDataDisplay(data);
|
|
2419
|
-
dataSource.push(defaultValue ? { ...defaultValue, [fieldKey]: generateUUID() } : {});
|
|
2420
|
-
} else {
|
|
2421
|
-
setDataDisplay([...data]);
|
|
2422
|
-
}
|
|
2423
|
-
setTotalCount(dataSource?.length ?? 0);
|
|
2359
|
+
if (!editDisable && !addDisable && setDataSource) {
|
|
2360
|
+
if (haveNew) {
|
|
2361
|
+
data.push(defaultValue ? { ...defaultValue, [fieldKey]: generateUUID() } : {});
|
|
2362
|
+
setDataSource([...data]);
|
|
2424
2363
|
} else {
|
|
2425
|
-
|
|
2426
|
-
data.push(defaultValue ? { ...defaultValue, [fieldKey]: generateUUID() } : {});
|
|
2427
|
-
setDataSource([...data]);
|
|
2428
|
-
} else {
|
|
2429
|
-
setDataSource([...data]);
|
|
2430
|
-
}
|
|
2364
|
+
setDataSource([...data]);
|
|
2431
2365
|
}
|
|
2432
2366
|
}
|
|
2433
2367
|
};
|
|
@@ -2513,18 +2447,11 @@ var TableEdit = forwardRef2((props, ref) => {
|
|
|
2513
2447
|
onPaste: (e) => {
|
|
2514
2448
|
if (!editDisable && (e.target.nodeName === "DIV" || e.target.nodeName === "TD")) {
|
|
2515
2449
|
navigator.clipboard.readText().then((rs) => {
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
dataDisplay[indexRow][fieldKey] = defaultValue[fieldKey];
|
|
2520
|
-
}
|
|
2521
|
-
} else {
|
|
2522
|
-
dataSource[indexRow] = JSON.parse(rs);
|
|
2523
|
-
if (fieldKey) {
|
|
2524
|
-
dataSource[indexRow][fieldKey] = defaultValue[fieldKey];
|
|
2525
|
-
}
|
|
2450
|
+
dataSource[indexRow] = JSON.parse(rs);
|
|
2451
|
+
if (fieldKey) {
|
|
2452
|
+
dataSource[indexRow][fieldKey] = defaultValue[fieldKey];
|
|
2526
2453
|
}
|
|
2527
|
-
changeDataSource(
|
|
2454
|
+
changeDataSource(dataSource);
|
|
2528
2455
|
notificationSuccess(t("PasteSuccessful"));
|
|
2529
2456
|
}).catch((ex) => {
|
|
2530
2457
|
alert(ex);
|
|
@@ -2731,22 +2658,16 @@ var TableEdit = forwardRef2((props, ref) => {
|
|
|
2731
2658
|
children: /* @__PURE__ */ jsx12(
|
|
2732
2659
|
Input6,
|
|
2733
2660
|
{
|
|
2734
|
-
checked:
|
|
2661
|
+
checked: totalCount > 0 && selectedRows?.length >= totalCount,
|
|
2735
2662
|
type: "checkbox",
|
|
2736
2663
|
className: classnames6("cursor-pointer", { "d-none": !isMulti }),
|
|
2737
2664
|
style: { textAlign: col.textAlign ?? "left", marginTop: 6 },
|
|
2738
2665
|
onChange: (e) => {
|
|
2739
2666
|
if (selectEnable) {
|
|
2740
2667
|
if (e.target.checked) {
|
|
2741
|
-
|
|
2742
|
-
|
|
2743
|
-
|
|
2744
|
-
}));
|
|
2745
|
-
} else {
|
|
2746
|
-
setSelectedRows(dataSource.map((item) => {
|
|
2747
|
-
return item;
|
|
2748
|
-
}));
|
|
2749
|
-
}
|
|
2668
|
+
setSelectedRows(dataSource.map((item) => {
|
|
2669
|
+
return item;
|
|
2670
|
+
}));
|
|
2750
2671
|
} else {
|
|
2751
2672
|
setSelectedRows([]);
|
|
2752
2673
|
}
|
|
@@ -2878,7 +2799,7 @@ var TableEdit = forwardRef2((props, ref) => {
|
|
|
2878
2799
|
/* @__PURE__ */ jsx12("div", { className: classnames6("r-toolbar-item", { "d-none": editDisable || addDisable }), "aria-disabled": "false", children: /* @__PURE__ */ jsx12(Button3, { color: "success", outline: true, onClick: handleAdd, className: "d-flex", children: t("Add item") }) }),
|
|
2879
2800
|
(indexFocus ?? -1) > -1 ? /* @__PURE__ */ jsxs11(Fragment13, { children: [
|
|
2880
2801
|
/* @__PURE__ */ jsx12("div", { className: classnames6("r-toolbar-item", { "d-none": editDisable || addDisable || buttonSetting?.duplicateDisable }), "aria-disabled": "false", children: /* @__PURE__ */ jsx12(Button3, { color: "success", outline: true, onClick: () => {
|
|
2881
|
-
handleDuplicate(
|
|
2802
|
+
handleDuplicate(dataSource[indexFocus ?? -1], indexFocus ?? -1);
|
|
2882
2803
|
}, className: "d-flex", children: t("Duplicate") }) }),
|
|
2883
2804
|
/* @__PURE__ */ jsx12("div", { className: classnames6("r-toolbar-item", { "d-none": editDisable || addDisable || buttonSetting?.insertBeforeDisable }), "aria-disabled": "false", children: /* @__PURE__ */ jsx12(Button3, { color: "success", outline: true, onClick: handleInsertBefore, className: "d-flex", children: t("Insert item before") }) }),
|
|
2884
2805
|
/* @__PURE__ */ jsx12("div", { className: classnames6("r-toolbar-item", { "d-none": editDisable || addDisable || buttonSetting?.insertAfterDisable }), "aria-disabled": "false", children: /* @__PURE__ */ jsx12(Button3, { color: "success", outline: true, onClick: handleInsertAfter, className: "d-flex", children: t("Insert item after") }) })
|
|
@@ -2918,24 +2839,13 @@ var TableEdit = forwardRef2((props, ref) => {
|
|
|
2918
2839
|
return renderHeaderCol(col, index, indexParent);
|
|
2919
2840
|
}) }, indexParent);
|
|
2920
2841
|
}) }),
|
|
2921
|
-
/* @__PURE__ */ jsx12("tbody", { className: "r-gridcontent", children:
|
|
2922
|
-
const isSelected = selectedRows?.some((x) => x[fieldKey] === row[fieldKey]);
|
|
2923
|
-
return /* @__PURE__ */ jsx12(
|
|
2924
|
-
"tr",
|
|
2925
|
-
{
|
|
2926
|
-
className: classnames6("r-row", { "last-row": indexRow === dataDisplay.length - 1 }, { "fisrt-row": indexRow === 0 }),
|
|
2927
|
-
children: contentColumns.map((col, indexCol) => {
|
|
2928
|
-
return renderContentCol(col, row, indexRow, indexCol, isSelected);
|
|
2929
|
-
})
|
|
2930
|
-
},
|
|
2931
|
-
`row-${indexRow}`
|
|
2932
|
-
);
|
|
2933
|
-
}) : dataSource.map((row, indexRow) => {
|
|
2842
|
+
/* @__PURE__ */ jsx12("tbody", { className: "r-gridcontent", children: dataSource.map((row, indexRow) => {
|
|
2934
2843
|
const isSelected = selectedRows?.some((x) => x[fieldKey] === row[fieldKey]);
|
|
2935
|
-
|
|
2844
|
+
const flagDisplay = !pagingClient || indexRow + 1 > (pagingSetting.pageSize ?? 0) * ((pagingSetting.currentPage ?? 0) - 1) && indexRow < (pagingSetting.pageSize ?? 0) * (pagingSetting.currentPage ?? 0);
|
|
2845
|
+
return flagDisplay && /* @__PURE__ */ jsx12(
|
|
2936
2846
|
"tr",
|
|
2937
2847
|
{
|
|
2938
|
-
className: classnames6("r-row", { "last-row": indexRow ===
|
|
2848
|
+
className: classnames6("r-row", { "last-row": indexRow === (pagingClient ? totalCount % (pagingSetting?.pageSize ?? 0) : totalCount - 1) }, { "fisrt-row": indexRow === 0 }),
|
|
2939
2849
|
children: contentColumns.map((col, indexCol) => {
|
|
2940
2850
|
return renderContentCol(col, row, indexRow, indexCol, isSelected);
|
|
2941
2851
|
})
|