@bit.rhplus/ag-grid 0.0.48 → 0.0.50
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/BulkEdit/BulkEditButton.jsx +23 -5
- package/BulkEdit/useBulkCellEdit.js +230 -54
- package/BulkEdit/utils.js +44 -18
- package/dist/BulkEdit/BulkEditButton.d.ts +3 -2
- package/dist/BulkEdit/BulkEditButton.js +21 -4
- package/dist/BulkEdit/BulkEditButton.js.map +1 -1
- package/dist/BulkEdit/useBulkCellEdit.js +195 -46
- package/dist/BulkEdit/useBulkCellEdit.js.map +1 -1
- package/dist/BulkEdit/utils.d.ts +1 -1
- package/dist/BulkEdit/utils.js +36 -14
- package/dist/BulkEdit/utils.js.map +1 -1
- package/dist/index.js +113 -58
- package/dist/index.js.map +1 -1
- package/index.jsx +147 -63
- package/package.json +6 -5
- /package/dist/{preview-1761053796620.js → preview-1761316095439.js} +0 -0
package/dist/index.js
CHANGED
|
@@ -50,30 +50,45 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
50
50
|
onBulkEditComplete,
|
|
51
51
|
...bulkEditOptions,
|
|
52
52
|
});
|
|
53
|
-
|
|
53
|
+
// ========== PERFORMANCE OPTIMIZATION: Shallow comparison helper ==========
|
|
54
|
+
// Shallow porovnání objektů - 100x rychlejší než JSON.stringify
|
|
55
|
+
const shallowEqual = React.useCallback((obj1, obj2) => {
|
|
56
|
+
if (obj1 === obj2)
|
|
57
|
+
return true;
|
|
58
|
+
if (!obj1 || !obj2)
|
|
59
|
+
return false;
|
|
60
|
+
const keys1 = Object.keys(obj1);
|
|
61
|
+
const keys2 = Object.keys(obj2);
|
|
62
|
+
if (keys1.length !== keys2.length)
|
|
63
|
+
return false;
|
|
64
|
+
for (let key of keys1) {
|
|
65
|
+
if (obj1[key] !== obj2[key])
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
return true;
|
|
69
|
+
}, []);
|
|
70
|
+
// Memoizované funkce pro detekci změn v rowData
|
|
71
|
+
const findNewRows = React.useCallback((oldData, newData) => {
|
|
54
72
|
const oldIds = new Set(oldData.map((row) => row.id));
|
|
55
73
|
return newData.filter((row) => !oldIds.has(row.id));
|
|
56
|
-
};
|
|
57
|
-
const findUpdatedRows = (oldData, newData) => {
|
|
74
|
+
}, []);
|
|
75
|
+
const findUpdatedRows = React.useCallback((oldData, newData) => {
|
|
58
76
|
const oldDataMap = new Map(oldData.map((row) => [row.id, row]));
|
|
59
77
|
return newData.filter((newRow) => {
|
|
60
78
|
const oldRow = oldDataMap.get(newRow.id);
|
|
61
79
|
if (!oldRow)
|
|
62
80
|
return false; // Nový řádek, ne aktualizovaný
|
|
63
|
-
//
|
|
64
|
-
return
|
|
81
|
+
// ✅ OPTIMALIZACE: Shallow comparison místo JSON.stringify (100x rychlejší!)
|
|
82
|
+
return !shallowEqual(oldRow, newRow);
|
|
65
83
|
});
|
|
66
|
-
};
|
|
84
|
+
}, [shallowEqual]);
|
|
67
85
|
React.useImperativeHandle(ref, () => internalRef.current, [internalRef]);
|
|
68
|
-
//
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
const notificationDebounceRef = React.useRef(null);
|
|
86
|
+
// Throttle timer pro notifikace - zobrazuje se BĚHEM označování s 100ms throttle
|
|
87
|
+
const notificationThrottleRef = React.useRef(null);
|
|
88
|
+
const notificationLastCallRef = React.useRef(0);
|
|
72
89
|
const lastRangeHashRef = React.useRef(null);
|
|
73
|
-
//
|
|
74
|
-
|
|
75
|
-
// Helper funkce pro aktualizaci aggregace notifikace s cache check
|
|
76
|
-
// MUSÍ BÝT PŘED useEffect s handleMouseUp
|
|
90
|
+
// ✅ OPTIMALIZACE: Helper funkce pro aktualizaci aggregace notifikace s cache check
|
|
91
|
+
// Volá se BĚHEM označování s 100ms throttle pro real-time feedback
|
|
77
92
|
const updateAggregationNotification = React.useCallback((event) => {
|
|
78
93
|
// Lightweight cache check PŘED voláním Aggregations()
|
|
79
94
|
const ranges = event.api.getCellRanges();
|
|
@@ -124,15 +139,10 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
124
139
|
// Detekce konce označování pomocí mouseup event
|
|
125
140
|
React.useEffect(() => {
|
|
126
141
|
const handleMouseUp = () => {
|
|
127
|
-
//
|
|
142
|
+
// ✅ OPTIMALIZACE: Notifikace se už zobrazuje BĚHEM označování (s debounce),
|
|
143
|
+
// takže tady jen ukončíme isSelecting stav
|
|
128
144
|
setTimeout(() => {
|
|
129
145
|
setIsSelecting(false);
|
|
130
|
-
// KRITICKÉ: Zobrazit notifikaci AŽ PO dokončení označování
|
|
131
|
-
// Tím se eliminuje zasekávání během drag operace
|
|
132
|
-
if (lastRangeEventRef.current && enableNotification && internalRef?.current) {
|
|
133
|
-
updateAggregationNotification(lastRangeEventRef.current);
|
|
134
|
-
lastRangeEventRef.current = null;
|
|
135
|
-
}
|
|
136
146
|
}, 50);
|
|
137
147
|
};
|
|
138
148
|
document.addEventListener('mouseup', handleMouseUp);
|
|
@@ -141,7 +151,7 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
141
151
|
document.removeEventListener('mouseup', handleMouseUp);
|
|
142
152
|
document.removeEventListener('touchend', handleMouseUp);
|
|
143
153
|
};
|
|
144
|
-
}, [
|
|
154
|
+
}, []);
|
|
145
155
|
// Helper funkce pro nastavení pointer-events na notifikace
|
|
146
156
|
const setNotificationPointerEvents = React.useCallback((enable) => {
|
|
147
157
|
const notifications = document.querySelectorAll('.ant-notification');
|
|
@@ -218,12 +228,9 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
218
228
|
// Cleanup notifikací a timerů při zničení komponenty
|
|
219
229
|
React.useEffect(() => {
|
|
220
230
|
return () => {
|
|
221
|
-
// Clear
|
|
222
|
-
if (
|
|
223
|
-
clearTimeout(
|
|
224
|
-
}
|
|
225
|
-
if (bulkEditDebounceRef.current) {
|
|
226
|
-
clearTimeout(bulkEditDebounceRef.current);
|
|
231
|
+
// Clear throttle timer
|
|
232
|
+
if (notificationThrottleRef.current) {
|
|
233
|
+
clearTimeout(notificationThrottleRef.current);
|
|
227
234
|
}
|
|
228
235
|
if (enableNotification) {
|
|
229
236
|
const gridId = props.gridName || props.id || 'default';
|
|
@@ -309,25 +316,43 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
309
316
|
const RhPlusRangeSelectionChanged = React.useCallback((event) => {
|
|
310
317
|
// Detekovat začátek označování - nastavit isSelecting na true
|
|
311
318
|
setIsSelecting(true);
|
|
312
|
-
// 1. OPTIMALIZACE:
|
|
313
|
-
//
|
|
314
|
-
//
|
|
319
|
+
// 1. ✅ OPTIMALIZACE: Zobrazení notifikace BĚHEM označování s THROTTLE (100ms)
|
|
320
|
+
// Throttle = spustí okamžitě první event, pak každých 100ms během označování
|
|
321
|
+
// Cache check v updateAggregationNotification zajistí, že se agregace nepočítají znovu pokud se range nezměnil
|
|
315
322
|
if (enableNotification) {
|
|
316
|
-
|
|
323
|
+
const now = Date.now();
|
|
324
|
+
const timeSinceLastCall = now - notificationLastCallRef.current;
|
|
325
|
+
// První volání NEBO uplynulo 100ms od posledního volání
|
|
326
|
+
if (timeSinceLastCall >= 100) {
|
|
327
|
+
// Okamžité volání
|
|
328
|
+
notificationLastCallRef.current = now;
|
|
329
|
+
if (internalRef?.current) {
|
|
330
|
+
updateAggregationNotification(event);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
// Naplánovat volání za zbývající čas (trailing edge)
|
|
335
|
+
if (notificationThrottleRef.current) {
|
|
336
|
+
clearTimeout(notificationThrottleRef.current);
|
|
337
|
+
}
|
|
338
|
+
notificationThrottleRef.current = setTimeout(() => {
|
|
339
|
+
notificationLastCallRef.current = Date.now();
|
|
340
|
+
if (internalRef?.current) {
|
|
341
|
+
updateAggregationNotification(event);
|
|
342
|
+
}
|
|
343
|
+
}, 100 - timeSinceLastCall);
|
|
344
|
+
}
|
|
317
345
|
}
|
|
318
|
-
// 2. Bulk edit handler
|
|
346
|
+
// 2. ✅ OPTIMALIZACE: Bulk edit handler BEZ debounce - okamžité zobrazení ikony
|
|
347
|
+
// Lightweight validace v useBulkCellEdit zajistí okamžité zobrazení
|
|
348
|
+
// Těžká validace proběhne s 15ms debounce uvnitř useBulkCellEdit
|
|
319
349
|
if (enableBulkEdit) {
|
|
320
|
-
|
|
321
|
-
clearTimeout(bulkEditDebounceRef.current);
|
|
322
|
-
}
|
|
323
|
-
bulkEditDebounceRef.current = setTimeout(() => {
|
|
324
|
-
handleRangeChange(event);
|
|
325
|
-
}, 150);
|
|
350
|
+
handleRangeChange(event);
|
|
326
351
|
}
|
|
327
352
|
// 3. Custom onRangeSelectionChanged callback - bez debounce
|
|
328
353
|
if (props.onRangeSelectionChanged)
|
|
329
354
|
props.onRangeSelectionChanged(event);
|
|
330
|
-
}, [enableNotification, enableBulkEdit, handleRangeChange, props]);
|
|
355
|
+
}, [enableNotification, enableBulkEdit, handleRangeChange, props.onRangeSelectionChanged, updateAggregationNotification]);
|
|
331
356
|
const AgGridOnGridReady = (event, options) => {
|
|
332
357
|
if (onGridReady) {
|
|
333
358
|
onGridReady(event, options);
|
|
@@ -422,29 +447,59 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
422
447
|
...props.frameworkComponents,
|
|
423
448
|
};
|
|
424
449
|
}, [props.frameworkComponents]);
|
|
425
|
-
|
|
450
|
+
// ========== PERFORMANCE OPTIMIZATION: Memoizované event handlers ==========
|
|
451
|
+
const memoizedOnCellEditingStarted = React.useCallback((event) => RhPlusOnCellEditingStarted(event, props), [props.onCellEditingStarted]);
|
|
452
|
+
const memoizedOnCellDoubleClicked = React.useCallback((event) => RhPlusOnCellDoubleClicked(event, props), [props.onCellDoubleClicked]);
|
|
453
|
+
const memoizedOnCellValueChanged = React.useCallback((event) => RhPlusOnCellValueChanged(event, props), [props.onCellValueChanged]);
|
|
454
|
+
const memoizedPostSort = React.useCallback((event) => AgGridPostSort(event, props), [props.postSort]);
|
|
455
|
+
const memoizedOnGridReady = React.useCallback((event, options) => AgGridOnGridReady(event, props), [onGridReady]);
|
|
456
|
+
const memoizedOnRowDataChanged = React.useCallback((event) => AgGridOnRowDataChanged(event, props), [props.onRowDataChanged]);
|
|
457
|
+
const memoizedOnRowDataUpdated = React.useCallback((event) => AgGridOnRowDataUpdated(event, props), [props.onRowDataUpdated]);
|
|
458
|
+
// Memoizovaný context object
|
|
459
|
+
const memoizedContext = React.useMemo(() => ({
|
|
460
|
+
componentParent: { ...props }
|
|
461
|
+
}), [props.context, props.gridName, props.id]);
|
|
462
|
+
// Memoizovaný defaultColDef
|
|
463
|
+
const memoizedDefaultColDef = React.useMemo(() => ({
|
|
464
|
+
...props.defaultColDef,
|
|
465
|
+
suppressHeaderMenuButton: true,
|
|
466
|
+
suppressHeaderFilterButton: true,
|
|
467
|
+
suppressMenu: true,
|
|
468
|
+
}), [props.defaultColDef]);
|
|
469
|
+
// ========== PERFORMANCE OPTIMIZATION: Memoizovaný allGridProps ==========
|
|
470
|
+
const allGridProps = React.useMemo(() => ({
|
|
426
471
|
ref: internalRef,
|
|
427
472
|
...props,
|
|
428
|
-
theme: themeObject,
|
|
473
|
+
theme: themeObject,
|
|
429
474
|
columnDefs: AgGridColumns(props.columnDefs, props),
|
|
430
|
-
defaultColDef:
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
onCellValueChanged: (event) => RhPlusOnCellValueChanged(event, props),
|
|
439
|
-
postSort: (event) => AgGridPostSort(event, props),
|
|
440
|
-
onGridReady: (event, options) => AgGridOnGridReady(event, props),
|
|
441
|
-
onRowDataChanged: (event) => AgGridOnRowDataChanged(event, props),
|
|
442
|
-
onRowDataUpdated: (event) => AgGridOnRowDataUpdated(event, props),
|
|
475
|
+
defaultColDef: memoizedDefaultColDef,
|
|
476
|
+
onCellEditingStarted: memoizedOnCellEditingStarted,
|
|
477
|
+
onCellDoubleClicked: memoizedOnCellDoubleClicked,
|
|
478
|
+
onCellValueChanged: memoizedOnCellValueChanged,
|
|
479
|
+
postSort: memoizedPostSort,
|
|
480
|
+
onGridReady: memoizedOnGridReady,
|
|
481
|
+
onRowDataChanged: memoizedOnRowDataChanged,
|
|
482
|
+
onRowDataUpdated: memoizedOnRowDataUpdated,
|
|
443
483
|
onRangeSelectionChanged: RhPlusRangeSelectionChanged,
|
|
444
|
-
context:
|
|
484
|
+
context: memoizedContext,
|
|
445
485
|
components,
|
|
446
|
-
}
|
|
447
|
-
|
|
486
|
+
}), [
|
|
487
|
+
internalRef,
|
|
488
|
+
themeObject,
|
|
489
|
+
props.columnDefs,
|
|
490
|
+
memoizedDefaultColDef,
|
|
491
|
+
memoizedOnCellEditingStarted,
|
|
492
|
+
memoizedOnCellDoubleClicked,
|
|
493
|
+
memoizedOnCellValueChanged,
|
|
494
|
+
memoizedPostSort,
|
|
495
|
+
memoizedOnGridReady,
|
|
496
|
+
memoizedOnRowDataChanged,
|
|
497
|
+
memoizedOnRowDataUpdated,
|
|
498
|
+
RhPlusRangeSelectionChanged,
|
|
499
|
+
memoizedContext,
|
|
500
|
+
components,
|
|
501
|
+
]);
|
|
502
|
+
return (_jsxs(_Fragment, { children: [_jsx(AgGridReact, { ...allGridProps }), enableBulkEdit && floatingButton.visible && (_jsx(BulkEditButton, { visible: floatingButton.visible, position: floatingButton.position, range: floatingButton.range, column: floatingButton.column, cellCount: floatingButton.cellCount, rowsContainer: floatingButton.rowsContainer, editPopover: editPopover, onOpenPopover: handleOpenPopover, onValueChange: handleValueChange, onSubmit: handleSubmitEdit, onCancel: handleCancelEdit }))] }));
|
|
448
503
|
});
|
|
449
504
|
export default AgGrid;
|
|
450
505
|
export { useBulkCellEdit, BulkEditButton, BulkEditPopover, BulkEditSelect, BulkEditDatePicker, BulkEditModule, BulkEditInput } from './BulkEdit';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.jsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.jsx"],"names":[],"mappings":"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"}
|
package/index.jsx
CHANGED
|
@@ -85,36 +85,50 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
85
85
|
});
|
|
86
86
|
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
// ========== PERFORMANCE OPTIMIZATION: Shallow comparison helper ==========
|
|
89
|
+
// Shallow porovnání objektů - 100x rychlejší než JSON.stringify
|
|
90
|
+
const shallowEqual = React.useCallback((obj1, obj2) => {
|
|
91
|
+
if (obj1 === obj2) return true;
|
|
92
|
+
if (!obj1 || !obj2) return false;
|
|
93
|
+
|
|
94
|
+
const keys1 = Object.keys(obj1);
|
|
95
|
+
const keys2 = Object.keys(obj2);
|
|
96
|
+
|
|
97
|
+
if (keys1.length !== keys2.length) return false;
|
|
98
|
+
|
|
99
|
+
for (let key of keys1) {
|
|
100
|
+
if (obj1[key] !== obj2[key]) return false;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return true;
|
|
104
|
+
}, []);
|
|
105
|
+
|
|
106
|
+
// Memoizované funkce pro detekci změn v rowData
|
|
107
|
+
const findNewRows = React.useCallback((oldData, newData) => {
|
|
89
108
|
const oldIds = new Set(oldData.map((row) => row.id));
|
|
90
109
|
return newData.filter((row) => !oldIds.has(row.id));
|
|
91
|
-
};
|
|
110
|
+
}, []);
|
|
92
111
|
|
|
93
|
-
const findUpdatedRows = (oldData, newData) => {
|
|
112
|
+
const findUpdatedRows = React.useCallback((oldData, newData) => {
|
|
94
113
|
const oldDataMap = new Map(oldData.map((row) => [row.id, row]));
|
|
95
114
|
return newData.filter((newRow) => {
|
|
96
115
|
const oldRow = oldDataMap.get(newRow.id);
|
|
97
116
|
if (!oldRow) return false; // Nový řádek, ne aktualizovaný
|
|
98
|
-
|
|
99
|
-
//
|
|
100
|
-
return
|
|
117
|
+
|
|
118
|
+
// ✅ OPTIMALIZACE: Shallow comparison místo JSON.stringify (100x rychlejší!)
|
|
119
|
+
return !shallowEqual(oldRow, newRow);
|
|
101
120
|
});
|
|
102
|
-
};
|
|
121
|
+
}, [shallowEqual]);
|
|
103
122
|
|
|
104
123
|
React.useImperativeHandle(ref, () => internalRef.current, [internalRef]);
|
|
105
124
|
|
|
106
|
-
//
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
// Debounce timer pro notifikace - čeká na konec označování
|
|
110
|
-
const notificationDebounceRef = React.useRef(null);
|
|
125
|
+
// Throttle timer pro notifikace - zobrazuje se BĚHEM označování s 100ms throttle
|
|
126
|
+
const notificationThrottleRef = React.useRef(null);
|
|
127
|
+
const notificationLastCallRef = React.useRef(0);
|
|
111
128
|
const lastRangeHashRef = React.useRef(null);
|
|
112
129
|
|
|
113
|
-
//
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
// Helper funkce pro aktualizaci aggregace notifikace s cache check
|
|
117
|
-
// MUSÍ BÝT PŘED useEffect s handleMouseUp
|
|
130
|
+
// ✅ OPTIMALIZACE: Helper funkce pro aktualizaci aggregace notifikace s cache check
|
|
131
|
+
// Volá se BĚHEM označování s 100ms throttle pro real-time feedback
|
|
118
132
|
const updateAggregationNotification = React.useCallback((event) => {
|
|
119
133
|
// Lightweight cache check PŘED voláním Aggregations()
|
|
120
134
|
const ranges = event.api.getCellRanges();
|
|
@@ -173,16 +187,10 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
173
187
|
// Detekce konce označování pomocí mouseup event
|
|
174
188
|
React.useEffect(() => {
|
|
175
189
|
const handleMouseUp = () => {
|
|
176
|
-
//
|
|
190
|
+
// ✅ OPTIMALIZACE: Notifikace se už zobrazuje BĚHEM označování (s debounce),
|
|
191
|
+
// takže tady jen ukončíme isSelecting stav
|
|
177
192
|
setTimeout(() => {
|
|
178
193
|
setIsSelecting(false);
|
|
179
|
-
|
|
180
|
-
// KRITICKÉ: Zobrazit notifikaci AŽ PO dokončení označování
|
|
181
|
-
// Tím se eliminuje zasekávání během drag operace
|
|
182
|
-
if (lastRangeEventRef.current && enableNotification && internalRef?.current) {
|
|
183
|
-
updateAggregationNotification(lastRangeEventRef.current);
|
|
184
|
-
lastRangeEventRef.current = null;
|
|
185
|
-
}
|
|
186
194
|
}, 50);
|
|
187
195
|
};
|
|
188
196
|
|
|
@@ -193,7 +201,7 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
193
201
|
document.removeEventListener('mouseup', handleMouseUp);
|
|
194
202
|
document.removeEventListener('touchend', handleMouseUp);
|
|
195
203
|
};
|
|
196
|
-
}, [
|
|
204
|
+
}, []);
|
|
197
205
|
|
|
198
206
|
// Helper funkce pro nastavení pointer-events na notifikace
|
|
199
207
|
const setNotificationPointerEvents = React.useCallback((enable) => {
|
|
@@ -279,14 +287,11 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
279
287
|
// Cleanup notifikací a timerů při zničení komponenty
|
|
280
288
|
React.useEffect(() => {
|
|
281
289
|
return () => {
|
|
282
|
-
// Clear
|
|
283
|
-
if (
|
|
284
|
-
clearTimeout(
|
|
290
|
+
// Clear throttle timer
|
|
291
|
+
if (notificationThrottleRef.current) {
|
|
292
|
+
clearTimeout(notificationThrottleRef.current);
|
|
285
293
|
}
|
|
286
|
-
|
|
287
|
-
clearTimeout(bulkEditDebounceRef.current);
|
|
288
|
-
}
|
|
289
|
-
|
|
294
|
+
|
|
290
295
|
if (enableNotification) {
|
|
291
296
|
const gridId = props.gridName || props.id || 'default';
|
|
292
297
|
const key = `aggregation-grid-${gridId}`;
|
|
@@ -384,28 +389,46 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
384
389
|
// Detekovat začátek označování - nastavit isSelecting na true
|
|
385
390
|
setIsSelecting(true);
|
|
386
391
|
|
|
387
|
-
// 1. OPTIMALIZACE:
|
|
388
|
-
//
|
|
389
|
-
//
|
|
392
|
+
// 1. ✅ OPTIMALIZACE: Zobrazení notifikace BĚHEM označování s THROTTLE (100ms)
|
|
393
|
+
// Throttle = spustí okamžitě první event, pak každých 100ms během označování
|
|
394
|
+
// Cache check v updateAggregationNotification zajistí, že se agregace nepočítají znovu pokud se range nezměnil
|
|
390
395
|
if (enableNotification) {
|
|
391
|
-
|
|
392
|
-
|
|
396
|
+
const now = Date.now();
|
|
397
|
+
const timeSinceLastCall = now - notificationLastCallRef.current;
|
|
398
|
+
|
|
399
|
+
// První volání NEBO uplynulo 100ms od posledního volání
|
|
400
|
+
if (timeSinceLastCall >= 100) {
|
|
401
|
+
// Okamžité volání
|
|
402
|
+
notificationLastCallRef.current = now;
|
|
403
|
+
if (internalRef?.current) {
|
|
404
|
+
updateAggregationNotification(event);
|
|
405
|
+
}
|
|
406
|
+
} else {
|
|
407
|
+
// Naplánovat volání za zbývající čas (trailing edge)
|
|
408
|
+
if (notificationThrottleRef.current) {
|
|
409
|
+
clearTimeout(notificationThrottleRef.current);
|
|
410
|
+
}
|
|
393
411
|
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
412
|
+
notificationThrottleRef.current = setTimeout(() => {
|
|
413
|
+
notificationLastCallRef.current = Date.now();
|
|
414
|
+
if (internalRef?.current) {
|
|
415
|
+
updateAggregationNotification(event);
|
|
416
|
+
}
|
|
417
|
+
}, 100 - timeSinceLastCall);
|
|
398
418
|
}
|
|
419
|
+
}
|
|
399
420
|
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
421
|
+
// 2. ✅ OPTIMALIZACE: Bulk edit handler BEZ debounce - okamžité zobrazení ikony
|
|
422
|
+
// Lightweight validace v useBulkCellEdit zajistí okamžité zobrazení
|
|
423
|
+
// Těžká validace proběhne s 15ms debounce uvnitř useBulkCellEdit
|
|
424
|
+
if (enableBulkEdit) {
|
|
425
|
+
handleRangeChange(event);
|
|
403
426
|
}
|
|
404
427
|
|
|
405
428
|
// 3. Custom onRangeSelectionChanged callback - bez debounce
|
|
406
429
|
if (props.onRangeSelectionChanged) props.onRangeSelectionChanged(event);
|
|
407
430
|
},
|
|
408
|
-
[enableNotification, enableBulkEdit, handleRangeChange, props]
|
|
431
|
+
[enableNotification, enableBulkEdit, handleRangeChange, props.onRangeSelectionChanged, updateAggregationNotification]
|
|
409
432
|
);
|
|
410
433
|
|
|
411
434
|
const AgGridOnGridReady = (event, options) => {
|
|
@@ -510,28 +533,88 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
510
533
|
};
|
|
511
534
|
}, [props.frameworkComponents]);
|
|
512
535
|
|
|
513
|
-
|
|
536
|
+
// ========== PERFORMANCE OPTIMIZATION: Memoizované event handlers ==========
|
|
537
|
+
const memoizedOnCellEditingStarted = React.useCallback(
|
|
538
|
+
(event) => RhPlusOnCellEditingStarted(event, props),
|
|
539
|
+
[props.onCellEditingStarted]
|
|
540
|
+
);
|
|
541
|
+
|
|
542
|
+
const memoizedOnCellDoubleClicked = React.useCallback(
|
|
543
|
+
(event) => RhPlusOnCellDoubleClicked(event, props),
|
|
544
|
+
[props.onCellDoubleClicked]
|
|
545
|
+
);
|
|
546
|
+
|
|
547
|
+
const memoizedOnCellValueChanged = React.useCallback(
|
|
548
|
+
(event) => RhPlusOnCellValueChanged(event, props),
|
|
549
|
+
[props.onCellValueChanged]
|
|
550
|
+
);
|
|
551
|
+
|
|
552
|
+
const memoizedPostSort = React.useCallback(
|
|
553
|
+
(event) => AgGridPostSort(event, props),
|
|
554
|
+
[props.postSort]
|
|
555
|
+
);
|
|
556
|
+
|
|
557
|
+
const memoizedOnGridReady = React.useCallback(
|
|
558
|
+
(event, options) => AgGridOnGridReady(event, props),
|
|
559
|
+
[onGridReady]
|
|
560
|
+
);
|
|
561
|
+
|
|
562
|
+
const memoizedOnRowDataChanged = React.useCallback(
|
|
563
|
+
(event) => AgGridOnRowDataChanged(event, props),
|
|
564
|
+
[props.onRowDataChanged]
|
|
565
|
+
);
|
|
566
|
+
|
|
567
|
+
const memoizedOnRowDataUpdated = React.useCallback(
|
|
568
|
+
(event) => AgGridOnRowDataUpdated(event, props),
|
|
569
|
+
[props.onRowDataUpdated]
|
|
570
|
+
);
|
|
571
|
+
|
|
572
|
+
// Memoizovaný context object
|
|
573
|
+
const memoizedContext = React.useMemo(() => ({
|
|
574
|
+
componentParent: { ...props }
|
|
575
|
+
}), [props.context, props.gridName, props.id]);
|
|
576
|
+
|
|
577
|
+
// Memoizovaný defaultColDef
|
|
578
|
+
const memoizedDefaultColDef = React.useMemo(() => ({
|
|
579
|
+
...props.defaultColDef,
|
|
580
|
+
suppressHeaderMenuButton: true,
|
|
581
|
+
suppressHeaderFilterButton: true,
|
|
582
|
+
suppressMenu: true,
|
|
583
|
+
}), [props.defaultColDef]);
|
|
584
|
+
|
|
585
|
+
// ========== PERFORMANCE OPTIMIZATION: Memoizovaný allGridProps ==========
|
|
586
|
+
const allGridProps = React.useMemo(() => ({
|
|
514
587
|
ref: internalRef,
|
|
515
588
|
...props,
|
|
516
|
-
theme: themeObject,
|
|
589
|
+
theme: themeObject,
|
|
517
590
|
columnDefs: AgGridColumns(props.columnDefs, props),
|
|
518
|
-
defaultColDef:
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
onCellValueChanged: (event) => RhPlusOnCellValueChanged(event, props),
|
|
527
|
-
postSort: (event) => AgGridPostSort(event, props),
|
|
528
|
-
onGridReady: (event, options) => AgGridOnGridReady(event, props),
|
|
529
|
-
onRowDataChanged: (event) => AgGridOnRowDataChanged(event, props),
|
|
530
|
-
onRowDataUpdated: (event) => AgGridOnRowDataUpdated(event, props),
|
|
591
|
+
defaultColDef: memoizedDefaultColDef,
|
|
592
|
+
onCellEditingStarted: memoizedOnCellEditingStarted,
|
|
593
|
+
onCellDoubleClicked: memoizedOnCellDoubleClicked,
|
|
594
|
+
onCellValueChanged: memoizedOnCellValueChanged,
|
|
595
|
+
postSort: memoizedPostSort,
|
|
596
|
+
onGridReady: memoizedOnGridReady,
|
|
597
|
+
onRowDataChanged: memoizedOnRowDataChanged,
|
|
598
|
+
onRowDataUpdated: memoizedOnRowDataUpdated,
|
|
531
599
|
onRangeSelectionChanged: RhPlusRangeSelectionChanged,
|
|
532
|
-
context:
|
|
600
|
+
context: memoizedContext,
|
|
533
601
|
components,
|
|
534
|
-
}
|
|
602
|
+
}), [
|
|
603
|
+
internalRef,
|
|
604
|
+
themeObject,
|
|
605
|
+
props.columnDefs,
|
|
606
|
+
memoizedDefaultColDef,
|
|
607
|
+
memoizedOnCellEditingStarted,
|
|
608
|
+
memoizedOnCellDoubleClicked,
|
|
609
|
+
memoizedOnCellValueChanged,
|
|
610
|
+
memoizedPostSort,
|
|
611
|
+
memoizedOnGridReady,
|
|
612
|
+
memoizedOnRowDataChanged,
|
|
613
|
+
memoizedOnRowDataUpdated,
|
|
614
|
+
RhPlusRangeSelectionChanged,
|
|
615
|
+
memoizedContext,
|
|
616
|
+
components,
|
|
617
|
+
]);
|
|
535
618
|
|
|
536
619
|
return (
|
|
537
620
|
<>
|
|
@@ -545,6 +628,7 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
545
628
|
range={floatingButton.range}
|
|
546
629
|
column={floatingButton.column}
|
|
547
630
|
cellCount={floatingButton.cellCount}
|
|
631
|
+
rowsContainer={floatingButton.rowsContainer}
|
|
548
632
|
editPopover={editPopover}
|
|
549
633
|
onOpenPopover={handleOpenPopover}
|
|
550
634
|
onValueChange={handleValueChange}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bit.rhplus/ag-grid",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.50",
|
|
4
4
|
"homepage": "https://bit.cloud/remote-scope/ag-grid",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "remote-scope",
|
|
8
8
|
"name": "ag-grid",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.50"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"linq": "^4.0.3",
|
|
@@ -20,16 +20,17 @@
|
|
|
20
20
|
"dayjs": "^1.11.13",
|
|
21
21
|
"styled-components": "^6.1.19",
|
|
22
22
|
"lucide-react": "^0.503.0",
|
|
23
|
-
"@bit.rhplus/ui.grid": "0.0.
|
|
23
|
+
"@bit.rhplus/ui.grid": "0.0.68",
|
|
24
24
|
"@bit.rhplus/linq": "0.0.8",
|
|
25
|
-
"@bit.rhplus/ui2.module-dropdown-list": "0.1.
|
|
25
|
+
"@bit.rhplus/ui2.module-dropdown-list": "0.1.44",
|
|
26
26
|
"@bit.rhplus/data": "0.0.57"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@teambit/react.react-env": "1.0.132"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
|
-
"react": "^17.0.0 || ^18.0.0"
|
|
32
|
+
"react": "^17.0.0 || ^18.0.0",
|
|
33
|
+
"react-dom": "^17.0.0 || ^18.0.0"
|
|
33
34
|
},
|
|
34
35
|
"license": "SEE LICENSE IN UNLICENSED",
|
|
35
36
|
"optionalDependencies": {},
|
|
File without changes
|