@ackplus/react-tanstack-data-table 1.1.13 → 1.1.16
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/lib/data-table.d.ts.map +1 -1
- package/dist/lib/data-table.js +77 -136
- package/dist/lib/features/selection.feature.d.ts.map +1 -1
- package/dist/lib/features/selection.feature.js +1 -2
- package/dist/lib/types/data-table-api.d.ts +1 -1
- package/dist/lib/types/data-table-api.d.ts.map +1 -1
- package/dist/lib/types/data-table.types.d.ts +2 -1
- package/dist/lib/types/data-table.types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/lib/data-table.tsx +78 -161
- package/src/lib/features/selection.feature.ts +1 -3
- package/src/lib/types/data-table-api.ts +1 -1
- package/src/lib/types/data-table.types.ts +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../src/lib/data-table.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../src/lib/data-table.tsx"],"names":[],"mappings":"AAoFA;;GAEG;AACH,eAAO,MAAM,SAAS,KA2jEpB,CAAC"}
|
package/dist/lib/data-table.js
CHANGED
|
@@ -89,7 +89,10 @@ const DEFAULT_INITIAL_STATE = {
|
|
|
89
89
|
*/
|
|
90
90
|
exports.DataTable = (0, react_1.forwardRef)(function DataTable({ initialState, columns, data = [], totalRow = 0, idKey = 'id', extraFilter = null, footerFilter = null,
|
|
91
91
|
// Data management mode (MUI DataGrid style)
|
|
92
|
-
dataMode = 'client', initialLoadData = true, onFetchData,
|
|
92
|
+
dataMode = 'client', initialLoadData = true, onFetchData, // callback to fetch data from the server need to with response { data: T[], total: number }
|
|
93
|
+
onFetchStateChange, // callback to fetch data from the server no need to resonce , this for filter data
|
|
94
|
+
onDataChange, // callback to change data
|
|
95
|
+
onDataStateChange, // callback to change data state
|
|
93
96
|
// Selection props
|
|
94
97
|
enableRowSelection = false, enableMultiRowSelection = true, selectMode = 'page', isRowSelectable, onSelectionChange,
|
|
95
98
|
// Row click props
|
|
@@ -111,7 +114,9 @@ enablePagination = false, paginationMode = 'client',
|
|
|
111
114
|
// Filtering props
|
|
112
115
|
enableGlobalFilter = true, enableColumnFilter = false, filterMode = 'client',
|
|
113
116
|
// Sorting props
|
|
114
|
-
enableSorting = true, sortingMode = 'client', onSortingChange,
|
|
117
|
+
enableSorting = true, sortingMode = 'client', onSortingChange,
|
|
118
|
+
//export props
|
|
119
|
+
exportFilename = 'export', exportConcurrency = 'cancelAndRestart', exportChunkSize = 1000, exportStrictTotalCheck = false, exportSanitizeCSV = true, onExportProgress, onExportComplete, onExportError, onServerExport, onExportCancel, onExportStateChange,
|
|
115
120
|
// Styling props
|
|
116
121
|
enableHover = true, enableStripes = false, tableProps = {}, fitToScreen = true, tableSize: initialTableSize = 'medium',
|
|
117
122
|
// Sticky header/footer props
|
|
@@ -194,7 +199,7 @@ logging, }, ref) {
|
|
|
194
199
|
const internalApiRef = (0, react_1.useRef)(null);
|
|
195
200
|
const exportControllerRef = (0, react_1.useRef)(null);
|
|
196
201
|
const exportQueueRef = (0, react_1.useRef)(Promise.resolve());
|
|
197
|
-
const isExternallyControlledData = (0, react_1.useMemo)(() => !onFetchData && (!!onDataChange || !!
|
|
202
|
+
const isExternallyControlledData = (0, react_1.useMemo)(() => !onFetchData && (!!onDataChange || !!onFetchStateChange), [onFetchData, onDataChange, onFetchStateChange]);
|
|
198
203
|
const { debouncedFetch, isLoading: fetchLoading } = (0, debounced_fetch_utils_1.useDebouncedFetch)(onFetchData);
|
|
199
204
|
const tableData = (0, react_1.useMemo)(() => {
|
|
200
205
|
if (isExternallyControlledData)
|
|
@@ -250,12 +255,6 @@ logging, }, ref) {
|
|
|
250
255
|
// -------------------------------
|
|
251
256
|
const fetchData = (0, react_1.useCallback)(async (overrides = {}, options) => {
|
|
252
257
|
var _a, _b, _c, _d, _e;
|
|
253
|
-
if (!onFetchData) {
|
|
254
|
-
if (logger.isLevelEnabled('debug')) {
|
|
255
|
-
logger.debug('onFetchData not provided, skipping fetch', { overrides, columnFilter, sorting, pagination });
|
|
256
|
-
}
|
|
257
|
-
return;
|
|
258
|
-
}
|
|
259
258
|
const filters = {
|
|
260
259
|
globalFilter,
|
|
261
260
|
pagination,
|
|
@@ -263,6 +262,15 @@ logging, }, ref) {
|
|
|
263
262
|
sorting,
|
|
264
263
|
...overrides,
|
|
265
264
|
};
|
|
265
|
+
if (onFetchStateChange) {
|
|
266
|
+
onFetchStateChange(filters, options === null || options === void 0 ? void 0 : options.meta);
|
|
267
|
+
}
|
|
268
|
+
if (!onFetchData) {
|
|
269
|
+
if (logger.isLevelEnabled('debug')) {
|
|
270
|
+
logger.debug('onFetchData not provided, skipping fetch', { overrides, columnFilter, sorting, pagination });
|
|
271
|
+
}
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
266
274
|
if (logger.isLevelEnabled('info')) {
|
|
267
275
|
logger.info('Requesting data', {
|
|
268
276
|
filters,
|
|
@@ -303,6 +311,7 @@ logging, }, ref) {
|
|
|
303
311
|
sorting,
|
|
304
312
|
debouncedFetch,
|
|
305
313
|
logger,
|
|
314
|
+
onFetchStateChange,
|
|
306
315
|
]);
|
|
307
316
|
const normalizeRefreshOptions = (0, react_1.useCallback)((options, fallbackReason = 'refresh') => {
|
|
308
317
|
var _a, _b, _c;
|
|
@@ -326,13 +335,6 @@ logging, }, ref) {
|
|
|
326
335
|
return next;
|
|
327
336
|
});
|
|
328
337
|
}, [onSelectionChange]);
|
|
329
|
-
const handleColumnFilterStateChange = (0, react_1.useCallback)((filterState) => {
|
|
330
|
-
if (!filterState || typeof filterState !== 'object')
|
|
331
|
-
return;
|
|
332
|
-
setColumnFilter(filterState);
|
|
333
|
-
onColumnFiltersChange === null || onColumnFiltersChange === void 0 ? void 0 : onColumnFiltersChange(filterState);
|
|
334
|
-
return filterState;
|
|
335
|
-
}, [onColumnFiltersChange]);
|
|
336
338
|
const resetPageToFirst = (0, react_1.useCallback)(() => {
|
|
337
339
|
if (logger.isLevelEnabled('info')) {
|
|
338
340
|
logger.info('Resetting to first page due to state change', {
|
|
@@ -411,30 +413,21 @@ logging, }, ref) {
|
|
|
411
413
|
}
|
|
412
414
|
return next;
|
|
413
415
|
});
|
|
414
|
-
}, [isServerMode, isServerFiltering, onGlobalFilterChange, fetchData, pagination.pageSize]);
|
|
415
|
-
const
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
const pagination = resetPageToFirst();
|
|
430
|
-
if (isServerFiltering) {
|
|
431
|
-
fetchData({
|
|
432
|
-
columnFilter: appliedState,
|
|
433
|
-
pagination,
|
|
434
|
-
});
|
|
435
|
-
}
|
|
436
|
-
onColumnFiltersChange === null || onColumnFiltersChange === void 0 ? void 0 : onColumnFiltersChange(appliedState);
|
|
437
|
-
}, [resetPageToFirst, isServerFiltering, fetchData, onColumnFiltersChange]);
|
|
416
|
+
}, [isServerMode, isServerFiltering, onGlobalFilterChange, fetchData, pagination === null || pagination === void 0 ? void 0 : pagination.pageSize]);
|
|
417
|
+
const handleColumnFilterChangeHandler = (0, react_1.useCallback)((updater, isApply = false) => {
|
|
418
|
+
setColumnFilter((prev) => {
|
|
419
|
+
const newState = typeof updater === 'function' ? updater(prev) : updater;
|
|
420
|
+
if (isApply) {
|
|
421
|
+
if (isServerMode || isServerFiltering) {
|
|
422
|
+
const nextPagination = { pageIndex: 0, pageSize: pagination.pageSize };
|
|
423
|
+
setPagination(nextPagination);
|
|
424
|
+
fetchData({ columnFilter: newState, pagination: nextPagination }, { delay: 0 });
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
onColumnFiltersChange === null || onColumnFiltersChange === void 0 ? void 0 : onColumnFiltersChange(newState, isApply);
|
|
428
|
+
return newState;
|
|
429
|
+
});
|
|
430
|
+
}, [fetchData, isServerFiltering, isServerMode, onColumnFiltersChange, pagination.pageSize]);
|
|
438
431
|
// -------------------------------
|
|
439
432
|
// Table creation (after callbacks/memo)
|
|
440
433
|
// -------------------------------
|
|
@@ -464,8 +457,8 @@ logging, }, ref) {
|
|
|
464
457
|
...(enableRowSelection ? { onSelectionStateChange: handleSelectionStateChange } : {}),
|
|
465
458
|
// Column filter
|
|
466
459
|
enableAdvanceColumnFilter: enableColumnFilter,
|
|
467
|
-
onColumnFilterChange:
|
|
468
|
-
onColumnFilterApply:
|
|
460
|
+
onColumnFilterChange: handleColumnFilterChangeHandler, // Handle column filters change
|
|
461
|
+
onColumnFilterApply: (state) => handleColumnFilterChangeHandler(state, true), // Handle when filters are actually applied
|
|
469
462
|
...(enableSorting ? { onSortingChange: handleSortingChange } : {}),
|
|
470
463
|
...(enablePagination ? { onPaginationChange: handlePaginationChange } : {}),
|
|
471
464
|
...(enableGlobalFilter ? { onGlobalFilterChange: handleGlobalFilterChange } : {}),
|
|
@@ -563,7 +556,7 @@ logging, }, ref) {
|
|
|
563
556
|
setServerTotal(0);
|
|
564
557
|
}, [isExternallyControlledData, serverData]);
|
|
565
558
|
(0, react_1.useEffect)(() => {
|
|
566
|
-
if (initialLoadData && onFetchData) {
|
|
559
|
+
if (initialLoadData && (onFetchData || onFetchStateChange)) {
|
|
567
560
|
if (logger.isLevelEnabled('info')) {
|
|
568
561
|
logger.info('Initial data load triggered', { initialLoadData });
|
|
569
562
|
}
|
|
@@ -672,29 +665,6 @@ logging, }, ref) {
|
|
|
672
665
|
}
|
|
673
666
|
return nextData;
|
|
674
667
|
}, [isExternallyControlledData, logger, onDataChange, tableData, tableTotalRow]);
|
|
675
|
-
const buildRefreshContext = (0, react_1.useCallback)((options, paginationOverride) => {
|
|
676
|
-
const state = table.getState();
|
|
677
|
-
const nextPagination = paginationOverride || state.pagination || pagination;
|
|
678
|
-
return {
|
|
679
|
-
filters: {
|
|
680
|
-
globalFilter,
|
|
681
|
-
pagination: nextPagination,
|
|
682
|
-
columnFilter,
|
|
683
|
-
sorting,
|
|
684
|
-
},
|
|
685
|
-
state: {
|
|
686
|
-
sorting,
|
|
687
|
-
pagination: nextPagination,
|
|
688
|
-
globalFilter,
|
|
689
|
-
columnFilter,
|
|
690
|
-
columnVisibility: state.columnVisibility,
|
|
691
|
-
columnSizing: state.columnSizing,
|
|
692
|
-
columnOrder: state.columnOrder,
|
|
693
|
-
columnPinning: state.columnPinning,
|
|
694
|
-
},
|
|
695
|
-
options,
|
|
696
|
-
};
|
|
697
|
-
}, [table, pagination, globalFilter, columnFilter, sorting]);
|
|
698
668
|
const triggerRefresh = (0, react_1.useCallback)(async (options, fallbackReason = 'refresh') => {
|
|
699
669
|
const normalizedOptions = normalizeRefreshOptions(options, fallbackReason);
|
|
700
670
|
const nextPagination = enablePagination
|
|
@@ -709,35 +679,15 @@ logging, }, ref) {
|
|
|
709
679
|
setPagination(nextPagination);
|
|
710
680
|
onPaginationChange === null || onPaginationChange === void 0 ? void 0 : onPaginationChange(nextPagination);
|
|
711
681
|
}
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
reason: normalizedOptions.reason,
|
|
722
|
-
force: normalizedOptions.force,
|
|
723
|
-
},
|
|
724
|
-
});
|
|
725
|
-
return;
|
|
726
|
-
}
|
|
727
|
-
if (logger.isLevelEnabled('debug')) {
|
|
728
|
-
logger.debug('Refresh skipped because no refresh handler is configured', refreshContext);
|
|
729
|
-
}
|
|
730
|
-
}, [
|
|
731
|
-
normalizeRefreshOptions,
|
|
732
|
-
enablePagination,
|
|
733
|
-
pagination,
|
|
734
|
-
onPaginationChange,
|
|
735
|
-
buildRefreshContext,
|
|
736
|
-
onRefreshData,
|
|
737
|
-
onFetchData,
|
|
738
|
-
fetchData,
|
|
739
|
-
logger,
|
|
740
|
-
]);
|
|
682
|
+
await fetchData(nextPagination ? { pagination: nextPagination } : {}, {
|
|
683
|
+
delay: 0,
|
|
684
|
+
meta: {
|
|
685
|
+
reason: normalizedOptions.reason,
|
|
686
|
+
force: normalizedOptions.force,
|
|
687
|
+
},
|
|
688
|
+
});
|
|
689
|
+
return;
|
|
690
|
+
}, [normalizeRefreshOptions, enablePagination, pagination, onPaginationChange, fetchData]);
|
|
741
691
|
const resetAllAndReload = (0, react_1.useCallback)(() => {
|
|
742
692
|
var _a;
|
|
743
693
|
const resetState = getResetState();
|
|
@@ -760,31 +710,14 @@ logging, }, ref) {
|
|
|
760
710
|
force: true,
|
|
761
711
|
reason: 'reset',
|
|
762
712
|
}, 'reset');
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
meta: {
|
|
772
|
-
reason: resetOptions.reason,
|
|
773
|
-
force: resetOptions.force,
|
|
774
|
-
},
|
|
775
|
-
});
|
|
776
|
-
}
|
|
777
|
-
}, [
|
|
778
|
-
getResetState,
|
|
779
|
-
initialSelectionState,
|
|
780
|
-
initialStateConfig,
|
|
781
|
-
onPaginationChange,
|
|
782
|
-
normalizeRefreshOptions,
|
|
783
|
-
buildRefreshContext,
|
|
784
|
-
onRefreshData,
|
|
785
|
-
onFetchData,
|
|
786
|
-
fetchData,
|
|
787
|
-
]);
|
|
713
|
+
void fetchData(resetState, {
|
|
714
|
+
delay: 0,
|
|
715
|
+
meta: {
|
|
716
|
+
reason: resetOptions.reason,
|
|
717
|
+
force: resetOptions.force,
|
|
718
|
+
},
|
|
719
|
+
});
|
|
720
|
+
}, [getResetState, initialSelectionState, initialStateConfig, onPaginationChange, normalizeRefreshOptions, fetchData]);
|
|
788
721
|
const setExportControllerSafely = (0, react_1.useCallback)((value) => {
|
|
789
722
|
setExportController((current) => {
|
|
790
723
|
const next = typeof value === 'function' ? value(current) : value;
|
|
@@ -1032,8 +965,8 @@ logging, }, ref) {
|
|
|
1032
965
|
clearGlobalFilter: () => {
|
|
1033
966
|
applyGlobalFilter("");
|
|
1034
967
|
},
|
|
1035
|
-
setColumnFilters: (filters) => {
|
|
1036
|
-
|
|
968
|
+
setColumnFilters: (filters, isApply = false) => {
|
|
969
|
+
handleColumnFilterChangeHandler(filters, isApply);
|
|
1037
970
|
},
|
|
1038
971
|
addColumnFilter: (columnId, operator, value) => {
|
|
1039
972
|
const newFilter = {
|
|
@@ -1045,46 +978,54 @@ logging, }, ref) {
|
|
|
1045
978
|
const current = table.getState().columnFilter;
|
|
1046
979
|
const currentFilters = (current === null || current === void 0 ? void 0 : current.filters) || [];
|
|
1047
980
|
const nextFilters = [...currentFilters, newFilter];
|
|
1048
|
-
|
|
981
|
+
const nextPendingFilters = [...((current === null || current === void 0 ? void 0 : current.pendingFilters) || []), newFilter];
|
|
982
|
+
handleColumnFilterChangeHandler({
|
|
1049
983
|
filters: nextFilters,
|
|
1050
984
|
logic: current === null || current === void 0 ? void 0 : current.logic,
|
|
1051
|
-
pendingFilters:
|
|
985
|
+
pendingFilters: nextPendingFilters,
|
|
1052
986
|
pendingLogic: (current === null || current === void 0 ? void 0 : current.pendingLogic) || "AND",
|
|
1053
|
-
});
|
|
987
|
+
}, true);
|
|
1054
988
|
if (logger.isLevelEnabled("debug")) {
|
|
1055
989
|
logger.debug(`Adding column filter ${columnId} ${operator} ${value}`, nextFilters);
|
|
1056
990
|
}
|
|
1057
991
|
},
|
|
1058
992
|
removeColumnFilter: (filterId) => {
|
|
993
|
+
var _a, _b;
|
|
1059
994
|
const current = table.getState().columnFilter;
|
|
1060
995
|
const currentFilters = (current === null || current === void 0 ? void 0 : current.filters) || [];
|
|
996
|
+
const isApplied = (_a = current === null || current === void 0 ? void 0 : current.pendingFilters) === null || _a === void 0 ? void 0 : _a.some((f) => f.id === filterId);
|
|
1061
997
|
const nextFilters = currentFilters.filter((f) => f.id !== filterId);
|
|
1062
|
-
|
|
998
|
+
const nextPendingFilters = ((_b = current === null || current === void 0 ? void 0 : current.pendingFilters) === null || _b === void 0 ? void 0 : _b.filter((f) => f.id !== filterId)) || [];
|
|
999
|
+
handleColumnFilterChangeHandler({
|
|
1063
1000
|
filters: nextFilters,
|
|
1064
1001
|
logic: current === null || current === void 0 ? void 0 : current.logic,
|
|
1065
|
-
pendingFilters:
|
|
1002
|
+
pendingFilters: nextPendingFilters,
|
|
1066
1003
|
pendingLogic: (current === null || current === void 0 ? void 0 : current.pendingLogic) || "AND",
|
|
1067
|
-
});
|
|
1004
|
+
}, isApplied);
|
|
1068
1005
|
if (logger.isLevelEnabled("debug")) {
|
|
1069
1006
|
logger.debug(`Removing column filter ${filterId}`, nextFilters);
|
|
1070
1007
|
}
|
|
1071
1008
|
},
|
|
1072
1009
|
clearAllFilters: () => {
|
|
1010
|
+
var _a, _b;
|
|
1073
1011
|
applyGlobalFilter("");
|
|
1074
|
-
|
|
1012
|
+
const isApplied = ((_b = (_a = table.getState().columnFilter) === null || _a === void 0 ? void 0 : _a.filters) === null || _b === void 0 ? void 0 : _b.length) > 0;
|
|
1013
|
+
handleColumnFilterChangeHandler({
|
|
1075
1014
|
filters: [],
|
|
1076
1015
|
logic: "AND",
|
|
1077
1016
|
pendingFilters: [],
|
|
1078
1017
|
pendingLogic: "AND",
|
|
1079
|
-
});
|
|
1018
|
+
}, isApplied);
|
|
1080
1019
|
},
|
|
1081
1020
|
resetFilters: () => {
|
|
1082
|
-
|
|
1021
|
+
var _a, _b;
|
|
1022
|
+
const isApplied = ((_b = (_a = table.getState().columnFilter) === null || _a === void 0 ? void 0 : _a.filters) === null || _b === void 0 ? void 0 : _b.length) > 0;
|
|
1023
|
+
handleColumnFilterChangeHandler({
|
|
1083
1024
|
filters: [],
|
|
1084
1025
|
logic: "AND",
|
|
1085
1026
|
pendingFilters: [],
|
|
1086
1027
|
pendingLogic: "AND",
|
|
1087
|
-
});
|
|
1028
|
+
}, isApplied);
|
|
1088
1029
|
if (logger.isLevelEnabled("debug")) {
|
|
1089
1030
|
logger.debug("Resetting filters");
|
|
1090
1031
|
}
|
|
@@ -1337,6 +1278,7 @@ logging, }, ref) {
|
|
|
1337
1278
|
columnFilter: table.getState().columnFilter,
|
|
1338
1279
|
}),
|
|
1339
1280
|
restoreLayout: (layout) => {
|
|
1281
|
+
var _a, _b;
|
|
1340
1282
|
if (layout.columnVisibility)
|
|
1341
1283
|
applyVisibility(layout.columnVisibility);
|
|
1342
1284
|
if (layout.columnSizing)
|
|
@@ -1352,7 +1294,7 @@ logging, }, ref) {
|
|
|
1352
1294
|
if (layout.globalFilter !== undefined)
|
|
1353
1295
|
applyGlobalFilter(layout.globalFilter);
|
|
1354
1296
|
if (layout.columnFilter)
|
|
1355
|
-
|
|
1297
|
+
handleColumnFilterChangeHandler(layout.columnFilter, ((_b = (_a = layout.columnFilter) === null || _a === void 0 ? void 0 : _a.filters) === null || _b === void 0 ? void 0 : _b.length) > 0);
|
|
1356
1298
|
},
|
|
1357
1299
|
},
|
|
1358
1300
|
// -------------------------------
|
|
@@ -1581,7 +1523,6 @@ logging, }, ref) {
|
|
|
1581
1523
|
},
|
|
1582
1524
|
},
|
|
1583
1525
|
};
|
|
1584
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
1585
1526
|
}, [
|
|
1586
1527
|
table,
|
|
1587
1528
|
enhancedColumns,
|
|
@@ -1592,7 +1533,7 @@ logging, }, ref) {
|
|
|
1592
1533
|
handlePaginationChange,
|
|
1593
1534
|
handleSortingChange,
|
|
1594
1535
|
handleGlobalFilterChange,
|
|
1595
|
-
|
|
1536
|
+
handleColumnFilterChangeHandler,
|
|
1596
1537
|
initialStateConfig,
|
|
1597
1538
|
enablePagination,
|
|
1598
1539
|
idKey,
|
|
@@ -1698,7 +1639,7 @@ logging, }, ref) {
|
|
|
1698
1639
|
// -------------------------------
|
|
1699
1640
|
return ((0, jsx_runtime_1.jsx)(data_table_context_1.DataTableProvider, { table: table, apiRef: internalApiRef, dataMode: dataMode, tableSize: tableSize, onTableSizeChange: (size) => {
|
|
1700
1641
|
setTableSize(size);
|
|
1701
|
-
}, columnFilter: columnFilter, onChangeColumnFilter:
|
|
1642
|
+
}, columnFilter: columnFilter, onChangeColumnFilter: handleColumnFilterChangeHandler, slots: slots, slotProps: slotProps, isExporting: isExporting, exportController: exportController, exportPhase: exportPhase, exportProgress: exportProgress, onCancelExport: handleCancelExport, exportFilename: exportFilename, onExportProgress: onExportProgress, onExportComplete: onExportComplete, onExportError: onExportError, onServerExport: onServerExport, children: (0, jsx_runtime_1.jsxs)(RootComponent, { ...rootSlotProps, children: [(enableGlobalFilter || extraFilter) ? ((0, jsx_runtime_1.jsx)(ToolbarComponent, { extraFilter: extraFilter, enableGlobalFilter: enableGlobalFilter, enableColumnVisibility: enableColumnVisibility, enableColumnFilter: enableColumnFilter, enableExport: enableExport, enableReset: enableReset, enableTableSizeControl: enableTableSizeControl, enableColumnPinning: enableColumnPinning, enableRefresh: enableRefresh, ...toolbarSlotProps, refreshButtonProps: {
|
|
1702
1643
|
loading: tableLoading, // disable while fetching
|
|
1703
1644
|
showSpinnerWhileLoading: false,
|
|
1704
1645
|
onRefresh: () => { var _a, _b, _c; return (_c = (_b = (_a = internalApiRef.current) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.refresh) === null || _c === void 0 ? void 0 : _c.call(_b, true); },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection.feature.d.ts","sourceRoot":"","sources":["../../../src/lib/features/selection.feature.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAEH,YAAY,EACZ,OAAO,EACP,OAAO,EAGP,GAAG,EACN,MAAM,uBAAuB,CAAC;AAG/B,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CAC/B;AAGD,MAAM,MAAM,uBAAuB,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE,CAAC,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC;AAG3F,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,KAAK,CAAC;AAGxC,MAAM,WAAW,gBAAgB;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAC1C,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;CACvE;AAGD,MAAM,WAAW,mBAAmB;IAChC,cAAc,EAAE,cAAc,CAAC;CAClC;AAGD,OAAO,QAAQ,uBAAuB,CAAC;IACnC,UAAU,UAAW,SAAQ,mBAAmB;KAAI;IACpD,UAAU,oBAAoB,CAAC,KAAK,SAAS,OAAO,CAChD,SAAQ,gBAAgB;KAAI;IAChC,UAAU,KAAK,CAAC,KAAK,SAAS,OAAO,CAAE,SAAQ,iBAAiB,CAAC,KAAK,CAAC;KAAI;CAC9E;AAGD,MAAM,WAAW,iBAAiB,CAAC,KAAK,SAAS,OAAO;IAEpD,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAC9D,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,IAAI,CAAC;IAGxB,oBAAoB,EAAE,MAAM,OAAO,CAAC;IACpC,qBAAqB,EAAE,MAAM,OAAO,CAAC;IACrC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAG7C,iBAAiB,EAAE,MAAM,cAAc,CAAC;IACxC,gBAAgB,EAAE,MAAM,MAAM,CAAC;IAC/B,eAAe,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IACpC,iBAAiB,EAAE,MAAM,MAAM,EAAE,CAAC;IAGlC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5C;AAGD,eAAO,MAAM,gBAAgB,EAAE,YAAY,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"selection.feature.d.ts","sourceRoot":"","sources":["../../../src/lib/features/selection.feature.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAEH,YAAY,EACZ,OAAO,EACP,OAAO,EAGP,GAAG,EACN,MAAM,uBAAuB,CAAC;AAG/B,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CAC/B;AAGD,MAAM,MAAM,uBAAuB,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE,CAAC,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC;AAG3F,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,KAAK,CAAC;AAGxC,MAAM,WAAW,gBAAgB;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAC1C,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;CACvE;AAGD,MAAM,WAAW,mBAAmB;IAChC,cAAc,EAAE,cAAc,CAAC;CAClC;AAGD,OAAO,QAAQ,uBAAuB,CAAC;IACnC,UAAU,UAAW,SAAQ,mBAAmB;KAAI;IACpD,UAAU,oBAAoB,CAAC,KAAK,SAAS,OAAO,CAChD,SAAQ,gBAAgB;KAAI;IAChC,UAAU,KAAK,CAAC,KAAK,SAAS,OAAO,CAAE,SAAQ,iBAAiB,CAAC,KAAK,CAAC;KAAI;CAC9E;AAGD,MAAM,WAAW,iBAAiB,CAAC,KAAK,SAAS,OAAO;IAEpD,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAC9D,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,IAAI,CAAC;IAGxB,oBAAoB,EAAE,MAAM,OAAO,CAAC;IACpC,qBAAqB,EAAE,MAAM,OAAO,CAAC;IACrC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAG7C,iBAAiB,EAAE,MAAM,cAAc,CAAC;IACxC,gBAAgB,EAAE,MAAM,MAAM,CAAC;IAC/B,eAAe,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IACpC,iBAAiB,EAAE,MAAM,MAAM,EAAE,CAAC;IAGlC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5C;AAGD,eAAO,MAAM,gBAAgB,EAAE,YAAY,CAAC,GAAG,CAoP9C,CAAC"}
|
|
@@ -110,8 +110,7 @@ exports.SelectionFeature = {
|
|
|
110
110
|
if (!table.options.enableAdvanceSelection)
|
|
111
111
|
return;
|
|
112
112
|
const selectMode = table.options.selectMode || 'page';
|
|
113
|
-
const currentRows = ((_b = (_a = table.getPaginationRowModel) === null || _a === void 0 ? void 0 : _a.call(table)) === null || _b === void 0 ? void 0 : _b.rows) ||
|
|
114
|
-
table.getRowModel().rows;
|
|
113
|
+
const currentRows = ((_b = (_a = table.getPaginationRowModel) === null || _a === void 0 ? void 0 : _a.call(table)) === null || _b === void 0 ? void 0 : _b.rows) || table.getRowModel().rows;
|
|
115
114
|
if (selectMode === 'all') {
|
|
116
115
|
// In 'all' mode, use exclude type with empty list (select all)
|
|
117
116
|
table.setSelectionState((old) => ({
|
|
@@ -50,7 +50,7 @@ export interface DataTableApi<T = any> {
|
|
|
50
50
|
filtering: {
|
|
51
51
|
setGlobalFilter: (filter: string) => void;
|
|
52
52
|
clearGlobalFilter: () => void;
|
|
53
|
-
setColumnFilters: (filters: ColumnFilterState) => void;
|
|
53
|
+
setColumnFilters: (filters: ColumnFilterState, isApply?: boolean) => void;
|
|
54
54
|
addColumnFilter: (columnId: string, operator: string, value: any) => void;
|
|
55
55
|
removeColumnFilter: (filterId: string) => void;
|
|
56
56
|
clearAllFilters: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table-api.d.ts","sourceRoot":"","sources":["../../../src/lib/types/data-table-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnH,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,WAAW,qBAAqB;IAClC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,qBAAqB,CAAC;AAElE,MAAM,WAAW,yBAAyB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,GAAG;IAEjC,gBAAgB,EAAE;QACd,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QACvC,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QACvC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QACzC,cAAc,EAAE,MAAM,IAAI,CAAC;QAC3B,cAAc,EAAE,MAAM,IAAI,CAAC;QAC3B,qBAAqB,EAAE,MAAM,IAAI,CAAC;KACrC,CAAC;IAEF,KAAK,EAAE;QACH,QAAQ,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;KAC5B,CAAA;IAGD,cAAc,EAAE;QACZ,cAAc,EAAE,CAAC,WAAW,EAAE,gBAAgB,KAAK,IAAI,CAAC;QACxD,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QACxD,gBAAgB,EAAE,MAAM,IAAI,CAAC;KAChC,CAAC;IAGF,aAAa,EAAE;QACX,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QAC1C,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QAC3C,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QACxC,UAAU,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;QAClD,kBAAkB,EAAE,MAAM,IAAI,CAAC;KAClC,CAAC;IAGF,cAAc,EAAE;QACZ,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QACxD,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QAC3C,kBAAkB,EAAE,MAAM,IAAI,CAAC;QAC/B,iBAAiB,EAAE,MAAM,IAAI,CAAC;KACjC,CAAC;IAGF,SAAS,EAAE;QACP,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;QAC1C,iBAAiB,EAAE,MAAM,IAAI,CAAC;QAC9B,gBAAgB,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"data-table-api.d.ts","sourceRoot":"","sources":["../../../src/lib/types/data-table-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,7 @@ export interface DataTableProps<T> {
|
|
|
49
49
|
data: T[];
|
|
50
50
|
total: number;
|
|
51
51
|
}>;
|
|
52
|
+
onFetchStateChange?: (filters: Partial<TableState>, meta?: DataFetchMeta) => void;
|
|
52
53
|
onRefreshData?: (context: DataRefreshContext) => void | Promise<void>;
|
|
53
54
|
onDataChange?: (nextData: T[], context: DataMutationContext<T>) => void;
|
|
54
55
|
exportFilename?: string;
|
|
@@ -118,7 +119,7 @@ export interface DataTableProps<T> {
|
|
|
118
119
|
loading?: boolean;
|
|
119
120
|
emptyMessage?: string | ReactNode;
|
|
120
121
|
skeletonRows?: number;
|
|
121
|
-
onColumnFiltersChange?: (filterState: ColumnFilterState) => void;
|
|
122
|
+
onColumnFiltersChange?: (filterState: ColumnFilterState, isApplied?: boolean) => void;
|
|
122
123
|
onPaginationChange?: (pagination: PaginationState) => void;
|
|
123
124
|
onGlobalFilterChange?: (globalFilter: string) => void;
|
|
124
125
|
onColumnFilterChange?: (columnFilter: ColumnFilterState) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table.types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/data-table.types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"data-table.types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/data-table.types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/lib/data-table.tsx
CHANGED
|
@@ -45,7 +45,6 @@ import {
|
|
|
45
45
|
DataFetchMeta,
|
|
46
46
|
DataMutationAction,
|
|
47
47
|
DataMutationContext,
|
|
48
|
-
DataRefreshContext,
|
|
49
48
|
DataRefreshOptions,
|
|
50
49
|
DataTableProps,
|
|
51
50
|
} from './types/data-table.types';
|
|
@@ -98,10 +97,10 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
98
97
|
// Data management mode (MUI DataGrid style)
|
|
99
98
|
dataMode = 'client',
|
|
100
99
|
initialLoadData = true,
|
|
101
|
-
onFetchData,
|
|
102
|
-
|
|
103
|
-
onDataChange,
|
|
104
|
-
onDataStateChange,
|
|
100
|
+
onFetchData, // callback to fetch data from the server need to with response { data: T[], total: number }
|
|
101
|
+
onFetchStateChange, // callback to fetch data from the server no need to resonce , this for filter data
|
|
102
|
+
onDataChange, // callback to change data
|
|
103
|
+
onDataStateChange, // callback to change data state
|
|
105
104
|
|
|
106
105
|
// Selection props
|
|
107
106
|
enableRowSelection = false,
|
|
@@ -153,6 +152,8 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
153
152
|
enableSorting = true,
|
|
154
153
|
sortingMode = 'client',
|
|
155
154
|
onSortingChange,
|
|
155
|
+
|
|
156
|
+
//export props
|
|
156
157
|
exportFilename = 'export',
|
|
157
158
|
exportConcurrency = 'cancelAndRestart',
|
|
158
159
|
exportChunkSize = 1000,
|
|
@@ -279,8 +280,8 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
279
280
|
const exportQueueRef = useRef<Promise<void>>(Promise.resolve());
|
|
280
281
|
|
|
281
282
|
const isExternallyControlledData = useMemo(
|
|
282
|
-
() => !onFetchData && (!!onDataChange || !!
|
|
283
|
-
[onFetchData, onDataChange,
|
|
283
|
+
() => !onFetchData && (!!onDataChange || !!onFetchStateChange),
|
|
284
|
+
[onFetchData, onDataChange, onFetchStateChange]
|
|
284
285
|
);
|
|
285
286
|
|
|
286
287
|
const { debouncedFetch, isLoading: fetchLoading } = useDebouncedFetch(onFetchData);
|
|
@@ -343,13 +344,6 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
343
344
|
overrides: Partial<TableState> = {},
|
|
344
345
|
options?: { delay?: number; meta?: DataFetchMeta }
|
|
345
346
|
) => {
|
|
346
|
-
if (!onFetchData) {
|
|
347
|
-
if (logger.isLevelEnabled('debug')) {
|
|
348
|
-
logger.debug('onFetchData not provided, skipping fetch', { overrides, columnFilter, sorting, pagination });
|
|
349
|
-
}
|
|
350
|
-
return;
|
|
351
|
-
}
|
|
352
|
-
|
|
353
347
|
const filters: Partial<TableFiltersForFetch> = {
|
|
354
348
|
globalFilter,
|
|
355
349
|
pagination,
|
|
@@ -358,6 +352,16 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
358
352
|
...overrides,
|
|
359
353
|
};
|
|
360
354
|
|
|
355
|
+
if (onFetchStateChange) {
|
|
356
|
+
onFetchStateChange(filters, options?.meta);
|
|
357
|
+
}
|
|
358
|
+
if (!onFetchData) {
|
|
359
|
+
if (logger.isLevelEnabled('debug')) {
|
|
360
|
+
logger.debug('onFetchData not provided, skipping fetch', { overrides, columnFilter, sorting, pagination });
|
|
361
|
+
}
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
|
|
361
365
|
if (logger.isLevelEnabled('info')) {
|
|
362
366
|
logger.info('Requesting data', {
|
|
363
367
|
filters,
|
|
@@ -400,6 +404,7 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
400
404
|
sorting,
|
|
401
405
|
debouncedFetch,
|
|
402
406
|
logger,
|
|
407
|
+
onFetchStateChange,
|
|
403
408
|
]);
|
|
404
409
|
|
|
405
410
|
const normalizeRefreshOptions = useCallback((
|
|
@@ -431,15 +436,6 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
431
436
|
});
|
|
432
437
|
}, [onSelectionChange]);
|
|
433
438
|
|
|
434
|
-
const handleColumnFilterStateChange = useCallback((filterState: ColumnFilterState) => {
|
|
435
|
-
if (!filterState || typeof filterState !== 'object') return;
|
|
436
|
-
|
|
437
|
-
setColumnFilter(filterState);
|
|
438
|
-
onColumnFiltersChange?.(filterState);
|
|
439
|
-
return filterState;
|
|
440
|
-
}, [onColumnFiltersChange]);
|
|
441
|
-
|
|
442
|
-
|
|
443
439
|
const resetPageToFirst = useCallback(() => {
|
|
444
440
|
if (logger.isLevelEnabled('info')) {
|
|
445
441
|
logger.info('Resetting to first page due to state change', {
|
|
@@ -455,7 +451,6 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
455
451
|
|
|
456
452
|
|
|
457
453
|
const handleSortingChange = useCallback((updaterOrValue: any) => {
|
|
458
|
-
|
|
459
454
|
setSorting((prev) => {
|
|
460
455
|
const next = typeof updaterOrValue === 'function' ? updaterOrValue(prev) : updaterOrValue;
|
|
461
456
|
const cleaned = next.filter((s: any) => s?.id);
|
|
@@ -535,33 +530,22 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
535
530
|
|
|
536
531
|
return next;
|
|
537
532
|
});
|
|
538
|
-
}, [isServerMode, isServerFiltering, onGlobalFilterChange, fetchData, pagination
|
|
539
|
-
|
|
540
|
-
const
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
const onColumnFilterApplyHandler = useCallback((appliedState: ColumnFilterState) => {
|
|
555
|
-
const pagination = resetPageToFirst();
|
|
556
|
-
if (isServerFiltering) {
|
|
557
|
-
fetchData({
|
|
558
|
-
columnFilter: appliedState,
|
|
559
|
-
pagination,
|
|
560
|
-
});
|
|
561
|
-
}
|
|
562
|
-
|
|
563
|
-
onColumnFiltersChange?.(appliedState);
|
|
564
|
-
}, [resetPageToFirst, isServerFiltering, fetchData, onColumnFiltersChange]);
|
|
533
|
+
}, [isServerMode, isServerFiltering, onGlobalFilterChange, fetchData, pagination?.pageSize]);
|
|
534
|
+
|
|
535
|
+
const handleColumnFilterChangeHandler = useCallback((updater: any, isApply = false) => {
|
|
536
|
+
setColumnFilter((prev) => {
|
|
537
|
+
const newState = typeof updater === 'function' ? updater(prev) : updater
|
|
538
|
+
if (isApply){
|
|
539
|
+
if (isServerMode || isServerFiltering) {
|
|
540
|
+
const nextPagination = { pageIndex: 0, pageSize: pagination.pageSize };
|
|
541
|
+
setPagination(nextPagination);
|
|
542
|
+
fetchData({ columnFilter: newState, pagination: nextPagination }, { delay: 0 });
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
onColumnFiltersChange?.(newState, isApply);
|
|
546
|
+
return newState;
|
|
547
|
+
});
|
|
548
|
+
}, [fetchData, isServerFiltering, isServerMode, onColumnFiltersChange, pagination.pageSize]);
|
|
565
549
|
|
|
566
550
|
// -------------------------------
|
|
567
551
|
// Table creation (after callbacks/memo)
|
|
@@ -592,8 +576,8 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
592
576
|
...(enableRowSelection ? { onSelectionStateChange: handleSelectionStateChange } : {}),
|
|
593
577
|
// Column filter
|
|
594
578
|
enableAdvanceColumnFilter: enableColumnFilter,
|
|
595
|
-
onColumnFilterChange:
|
|
596
|
-
onColumnFilterApply:
|
|
579
|
+
onColumnFilterChange: handleColumnFilterChangeHandler, // Handle column filters change
|
|
580
|
+
onColumnFilterApply: (state: ColumnFilterState) => handleColumnFilterChangeHandler(state, true), // Handle when filters are actually applied
|
|
597
581
|
|
|
598
582
|
|
|
599
583
|
...(enableSorting ? { onSortingChange: handleSortingChange } : {}),
|
|
@@ -698,7 +682,7 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
698
682
|
}, [isExternallyControlledData, serverData]);
|
|
699
683
|
|
|
700
684
|
useEffect(() => {
|
|
701
|
-
if (initialLoadData && onFetchData) {
|
|
685
|
+
if (initialLoadData && (onFetchData || onFetchStateChange)) {
|
|
702
686
|
if (logger.isLevelEnabled('info')) {
|
|
703
687
|
logger.info('Initial data load triggered', { initialLoadData });
|
|
704
688
|
}
|
|
@@ -825,34 +809,6 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
825
809
|
return nextData;
|
|
826
810
|
}, [isExternallyControlledData, logger, onDataChange, tableData, tableTotalRow]);
|
|
827
811
|
|
|
828
|
-
const buildRefreshContext = useCallback((
|
|
829
|
-
options: ReturnType<typeof normalizeRefreshOptions>,
|
|
830
|
-
paginationOverride?: { pageIndex: number; pageSize: number }
|
|
831
|
-
): DataRefreshContext => {
|
|
832
|
-
const state = table.getState();
|
|
833
|
-
const nextPagination = paginationOverride || state.pagination || pagination;
|
|
834
|
-
|
|
835
|
-
return {
|
|
836
|
-
filters: {
|
|
837
|
-
globalFilter,
|
|
838
|
-
pagination: nextPagination,
|
|
839
|
-
columnFilter,
|
|
840
|
-
sorting,
|
|
841
|
-
},
|
|
842
|
-
state: {
|
|
843
|
-
sorting,
|
|
844
|
-
pagination: nextPagination,
|
|
845
|
-
globalFilter,
|
|
846
|
-
columnFilter,
|
|
847
|
-
columnVisibility: state.columnVisibility,
|
|
848
|
-
columnSizing: state.columnSizing,
|
|
849
|
-
columnOrder: state.columnOrder,
|
|
850
|
-
columnPinning: state.columnPinning,
|
|
851
|
-
},
|
|
852
|
-
options,
|
|
853
|
-
};
|
|
854
|
-
}, [table, pagination, globalFilter, columnFilter, sorting]);
|
|
855
|
-
|
|
856
812
|
const triggerRefresh = useCallback(async (
|
|
857
813
|
options?: boolean | DataRefreshOptions,
|
|
858
814
|
fallbackReason: string = 'refresh'
|
|
@@ -873,41 +829,18 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
873
829
|
onPaginationChange?.(nextPagination);
|
|
874
830
|
}
|
|
875
831
|
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
meta: {
|
|
889
|
-
reason: normalizedOptions.reason,
|
|
890
|
-
force: normalizedOptions.force,
|
|
891
|
-
},
|
|
892
|
-
}
|
|
893
|
-
);
|
|
894
|
-
return;
|
|
895
|
-
}
|
|
896
|
-
|
|
897
|
-
if (logger.isLevelEnabled('debug')) {
|
|
898
|
-
logger.debug('Refresh skipped because no refresh handler is configured', refreshContext);
|
|
899
|
-
}
|
|
900
|
-
}, [
|
|
901
|
-
normalizeRefreshOptions,
|
|
902
|
-
enablePagination,
|
|
903
|
-
pagination,
|
|
904
|
-
onPaginationChange,
|
|
905
|
-
buildRefreshContext,
|
|
906
|
-
onRefreshData,
|
|
907
|
-
onFetchData,
|
|
908
|
-
fetchData,
|
|
909
|
-
logger,
|
|
910
|
-
]);
|
|
832
|
+
await fetchData(
|
|
833
|
+
nextPagination ? { pagination: nextPagination } : {},
|
|
834
|
+
{
|
|
835
|
+
delay: 0,
|
|
836
|
+
meta: {
|
|
837
|
+
reason: normalizedOptions.reason,
|
|
838
|
+
force: normalizedOptions.force,
|
|
839
|
+
},
|
|
840
|
+
}
|
|
841
|
+
);
|
|
842
|
+
return;
|
|
843
|
+
}, [normalizeRefreshOptions, enablePagination, pagination, onPaginationChange, fetchData]);
|
|
911
844
|
|
|
912
845
|
const resetAllAndReload = useCallback(() => {
|
|
913
846
|
const resetState = getResetState();
|
|
@@ -936,33 +869,14 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
936
869
|
reason: 'reset',
|
|
937
870
|
}, 'reset');
|
|
938
871
|
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
void fetchData(resetState, {
|
|
948
|
-
delay: 0,
|
|
949
|
-
meta: {
|
|
950
|
-
reason: resetOptions.reason,
|
|
951
|
-
force: resetOptions.force,
|
|
952
|
-
},
|
|
953
|
-
});
|
|
954
|
-
}
|
|
955
|
-
}, [
|
|
956
|
-
getResetState,
|
|
957
|
-
initialSelectionState,
|
|
958
|
-
initialStateConfig,
|
|
959
|
-
onPaginationChange,
|
|
960
|
-
normalizeRefreshOptions,
|
|
961
|
-
buildRefreshContext,
|
|
962
|
-
onRefreshData,
|
|
963
|
-
onFetchData,
|
|
964
|
-
fetchData,
|
|
965
|
-
]);
|
|
872
|
+
void fetchData(resetState, {
|
|
873
|
+
delay: 0,
|
|
874
|
+
meta: {
|
|
875
|
+
reason: resetOptions.reason,
|
|
876
|
+
force: resetOptions.force,
|
|
877
|
+
},
|
|
878
|
+
});
|
|
879
|
+
}, [getResetState, initialSelectionState, initialStateConfig, onPaginationChange, normalizeRefreshOptions, fetchData]);
|
|
966
880
|
|
|
967
881
|
const setExportControllerSafely = useCallback((
|
|
968
882
|
value: AbortController | null | ((current: AbortController | null) => AbortController | null)
|
|
@@ -1247,8 +1161,8 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
1247
1161
|
clearGlobalFilter: () => {
|
|
1248
1162
|
applyGlobalFilter("");
|
|
1249
1163
|
},
|
|
1250
|
-
setColumnFilters: (filters: ColumnFilterState) => {
|
|
1251
|
-
|
|
1164
|
+
setColumnFilters: (filters: ColumnFilterState, isApply = false) => {
|
|
1165
|
+
handleColumnFilterChangeHandler(filters, isApply);
|
|
1252
1166
|
},
|
|
1253
1167
|
addColumnFilter: (columnId: string, operator: string, value: any) => {
|
|
1254
1168
|
const newFilter = {
|
|
@@ -1261,13 +1175,14 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
1261
1175
|
const current = table.getState().columnFilter;
|
|
1262
1176
|
const currentFilters = current?.filters || [];
|
|
1263
1177
|
const nextFilters = [...currentFilters, newFilter];
|
|
1178
|
+
const nextPendingFilters = [...(current?.pendingFilters || []), newFilter];
|
|
1264
1179
|
|
|
1265
|
-
|
|
1180
|
+
handleColumnFilterChangeHandler({
|
|
1266
1181
|
filters: nextFilters,
|
|
1267
1182
|
logic: current?.logic,
|
|
1268
|
-
pendingFilters:
|
|
1183
|
+
pendingFilters: nextPendingFilters,
|
|
1269
1184
|
pendingLogic: current?.pendingLogic || "AND",
|
|
1270
|
-
});
|
|
1185
|
+
}, true);
|
|
1271
1186
|
|
|
1272
1187
|
if (logger.isLevelEnabled("debug")) {
|
|
1273
1188
|
logger.debug(`Adding column filter ${columnId} ${operator} ${value}`, nextFilters);
|
|
@@ -1276,14 +1191,15 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
1276
1191
|
removeColumnFilter: (filterId: string) => {
|
|
1277
1192
|
const current = table.getState().columnFilter;
|
|
1278
1193
|
const currentFilters = current?.filters || [];
|
|
1194
|
+
const isApplied = current?.pendingFilters?.some((f: any) => f.id === filterId);
|
|
1279
1195
|
const nextFilters = currentFilters.filter((f: any) => f.id !== filterId);
|
|
1280
|
-
|
|
1281
|
-
|
|
1196
|
+
const nextPendingFilters = current?.pendingFilters?.filter((f: any) => f.id !== filterId) || [];
|
|
1197
|
+
handleColumnFilterChangeHandler({
|
|
1282
1198
|
filters: nextFilters,
|
|
1283
1199
|
logic: current?.logic,
|
|
1284
|
-
pendingFilters:
|
|
1200
|
+
pendingFilters: nextPendingFilters,
|
|
1285
1201
|
pendingLogic: current?.pendingLogic || "AND",
|
|
1286
|
-
});
|
|
1202
|
+
}, isApplied);
|
|
1287
1203
|
|
|
1288
1204
|
if (logger.isLevelEnabled("debug")) {
|
|
1289
1205
|
logger.debug(`Removing column filter ${filterId}`, nextFilters);
|
|
@@ -1291,20 +1207,22 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
1291
1207
|
},
|
|
1292
1208
|
clearAllFilters: () => {
|
|
1293
1209
|
applyGlobalFilter("");
|
|
1294
|
-
|
|
1210
|
+
const isApplied = table.getState().columnFilter?.filters?.length > 0;
|
|
1211
|
+
handleColumnFilterChangeHandler({
|
|
1295
1212
|
filters: [],
|
|
1296
1213
|
logic: "AND",
|
|
1297
1214
|
pendingFilters: [],
|
|
1298
1215
|
pendingLogic: "AND",
|
|
1299
|
-
});
|
|
1216
|
+
}, isApplied);
|
|
1300
1217
|
},
|
|
1301
1218
|
resetFilters: () => {
|
|
1302
|
-
|
|
1219
|
+
const isApplied = table.getState().columnFilter?.filters?.length > 0;
|
|
1220
|
+
handleColumnFilterChangeHandler({
|
|
1303
1221
|
filters: [],
|
|
1304
1222
|
logic: "AND",
|
|
1305
1223
|
pendingFilters: [],
|
|
1306
1224
|
pendingLogic: "AND",
|
|
1307
|
-
});
|
|
1225
|
+
}, isApplied);
|
|
1308
1226
|
|
|
1309
1227
|
if (logger.isLevelEnabled("debug")) {
|
|
1310
1228
|
logger.debug("Resetting filters");
|
|
@@ -1593,7 +1511,7 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
1593
1511
|
if (layout.sorting) applySorting(layout.sorting as any);
|
|
1594
1512
|
if (layout.pagination && enablePagination) applyPagination(layout.pagination as any);
|
|
1595
1513
|
if (layout.globalFilter !== undefined) applyGlobalFilter(layout.globalFilter);
|
|
1596
|
-
if (layout.columnFilter)
|
|
1514
|
+
if (layout.columnFilter) handleColumnFilterChangeHandler(layout.columnFilter as any, layout.columnFilter?.filters?.length > 0);
|
|
1597
1515
|
},
|
|
1598
1516
|
},
|
|
1599
1517
|
|
|
@@ -1878,7 +1796,6 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
1878
1796
|
},
|
|
1879
1797
|
},
|
|
1880
1798
|
};
|
|
1881
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
1882
1799
|
}, [
|
|
1883
1800
|
table,
|
|
1884
1801
|
enhancedColumns,
|
|
@@ -1889,7 +1806,7 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
1889
1806
|
handlePaginationChange,
|
|
1890
1807
|
handleSortingChange,
|
|
1891
1808
|
handleGlobalFilterChange,
|
|
1892
|
-
|
|
1809
|
+
handleColumnFilterChangeHandler,
|
|
1893
1810
|
initialStateConfig,
|
|
1894
1811
|
enablePagination,
|
|
1895
1812
|
idKey,
|
|
@@ -2132,7 +2049,7 @@ export const DataTable = forwardRef<DataTableApi<any>, DataTableProps<any>>(func
|
|
|
2132
2049
|
setTableSize(size);
|
|
2133
2050
|
}}
|
|
2134
2051
|
columnFilter={columnFilter}
|
|
2135
|
-
onChangeColumnFilter={
|
|
2052
|
+
onChangeColumnFilter={handleColumnFilterChangeHandler}
|
|
2136
2053
|
slots={slots}
|
|
2137
2054
|
slotProps={slotProps}
|
|
2138
2055
|
isExporting={isExporting}
|
|
@@ -175,9 +175,7 @@ export const SelectionFeature: TableFeature<any> = {
|
|
|
175
175
|
if (!table.options.enableAdvanceSelection) return;
|
|
176
176
|
const selectMode = table.options.selectMode || 'page';
|
|
177
177
|
|
|
178
|
-
const currentRows =
|
|
179
|
-
table.getPaginationRowModel?.()?.rows ||
|
|
180
|
-
table.getRowModel().rows;
|
|
178
|
+
const currentRows = table.getPaginationRowModel?.()?.rows || table.getRowModel().rows;
|
|
181
179
|
|
|
182
180
|
if (selectMode === 'all') {
|
|
183
181
|
// In 'all' mode, use exclude type with empty list (select all)
|
|
@@ -65,7 +65,7 @@ export interface DataTableApi<T = any> {
|
|
|
65
65
|
filtering: {
|
|
66
66
|
setGlobalFilter: (filter: string) => void;
|
|
67
67
|
clearGlobalFilter: () => void;
|
|
68
|
-
setColumnFilters: (filters: ColumnFilterState) => void;
|
|
68
|
+
setColumnFilters: (filters: ColumnFilterState, isApply?: boolean) => void;
|
|
69
69
|
addColumnFilter: (columnId: string, operator: string, value: any) => void;
|
|
70
70
|
removeColumnFilter: (filterId: string) => void;
|
|
71
71
|
clearAllFilters: () => void;
|
|
@@ -73,6 +73,7 @@ export interface DataTableProps<T> {
|
|
|
73
73
|
initialLoadData?: boolean; // Initial load data (default: true)
|
|
74
74
|
onDataStateChange?: (filters: Partial<TableState>) => void; // Callback when any filter/state changes
|
|
75
75
|
onFetchData?: (filters: Partial<TableFilters>, meta?: DataFetchMeta) => Promise<{ data: T[]; total: number }>;
|
|
76
|
+
onFetchStateChange?: (filters: Partial<TableState>, meta?: DataFetchMeta) => void;
|
|
76
77
|
onRefreshData?: (context: DataRefreshContext) => void | Promise<void>;
|
|
77
78
|
onDataChange?: (nextData: T[], context: DataMutationContext<T>) => void;
|
|
78
79
|
|
|
@@ -179,7 +180,7 @@ export interface DataTableProps<T> {
|
|
|
179
180
|
skeletonRows?: number;
|
|
180
181
|
|
|
181
182
|
// Column filters props
|
|
182
|
-
onColumnFiltersChange?: (filterState: ColumnFilterState) => void;
|
|
183
|
+
onColumnFiltersChange?: (filterState: ColumnFilterState, isApplied?: boolean) => void;
|
|
183
184
|
onPaginationChange?: (pagination: PaginationState) => void;
|
|
184
185
|
onGlobalFilterChange?: (globalFilter: string) => void;
|
|
185
186
|
onColumnFilterChange?: (columnFilter: ColumnFilterState) => void;
|