@bit.rhplus/ag-grid 0.0.37 → 0.0.39
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/Aggregations.js +26 -3
- package/BulkEdit/BulkEditButton.jsx +149 -0
- package/BulkEdit/BulkEditPopover.jsx +301 -0
- package/BulkEdit/BulkEditSelect.jsx +80 -0
- package/BulkEdit/index.js +8 -0
- package/BulkEdit/useBulkCellEdit.js +348 -0
- package/BulkEdit/utils.js +532 -0
- package/Renderers/StateRenderer.jsx +17 -11
- package/dist/Aggregations.d.ts +2 -1
- package/dist/Aggregations.js +19 -2
- package/dist/Aggregations.js.map +1 -1
- package/dist/BulkEdit/BulkEditButton.d.ts +27 -0
- package/dist/BulkEdit/BulkEditButton.js +82 -0
- package/dist/BulkEdit/BulkEditButton.js.map +1 -0
- package/dist/BulkEdit/BulkEditPopover.d.ts +27 -0
- package/dist/BulkEdit/BulkEditPopover.js +122 -0
- package/dist/BulkEdit/BulkEditPopover.js.map +1 -0
- package/dist/BulkEdit/BulkEditSelect.d.ts +14 -0
- package/dist/BulkEdit/BulkEditSelect.js +31 -0
- package/dist/BulkEdit/BulkEditSelect.js.map +1 -0
- package/dist/BulkEdit/index.d.ts +5 -0
- package/dist/BulkEdit/index.js +7 -0
- package/dist/BulkEdit/index.js.map +1 -0
- package/dist/BulkEdit/useBulkCellEdit.d.ts +1 -0
- package/dist/BulkEdit/useBulkCellEdit.js +277 -0
- package/dist/BulkEdit/useBulkCellEdit.js.map +1 -0
- package/dist/BulkEdit/utils.d.ts +7 -0
- package/dist/BulkEdit/utils.js +472 -0
- package/dist/BulkEdit/utils.js.map +1 -0
- package/dist/Renderers/StateRenderer.js +16 -11
- package/dist/Renderers/StateRenderer.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +184 -25
- package/dist/index.js.map +1 -1
- package/index.jsx +249 -25
- package/package.json +5 -4
- /package/dist/{preview-1760103803977.js → preview-1760429814166.js} +0 -0
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { AgGridReact } from 'ag-grid-react';
|
|
@@ -18,12 +18,24 @@ import ButtonRenderer from './Renderers/ButtonRenderer';
|
|
|
18
18
|
import CountrySelectRenderer from './Renderers/CountrySelectRenderer';
|
|
19
19
|
import NotificationOptionsInit from "./NotificationOptions";
|
|
20
20
|
import { notification } from "antd";
|
|
21
|
-
import Aggregations from "./Aggregations";
|
|
21
|
+
import Aggregations, { hashRanges } from "./Aggregations";
|
|
22
|
+
import { useBulkCellEdit, BulkEditButton } from './BulkEdit';
|
|
22
23
|
const AgGrid = React.forwardRef((props, ref) => {
|
|
23
24
|
const internalRef = React.useRef();
|
|
24
|
-
const { rowData = [], newRowFlash = true, updatedRowFlash = false, onGridReady, enableNotification, notificationOptions: { notificationHead = NotificationOptionsInit.head, notificationBody = NotificationOptionsInit.body, style = NotificationOptionsInit.style, placement = NotificationOptionsInit.placement, } = {},
|
|
25
|
+
const { rowData = [], newRowFlash = true, updatedRowFlash = false, onGridReady, enableNotification, notificationOptions: { notificationHead = NotificationOptionsInit.head, notificationBody = NotificationOptionsInit.body, style = NotificationOptionsInit.style, placement = NotificationOptionsInit.placement, } = {},
|
|
26
|
+
// Bulk Edit props
|
|
27
|
+
enableBulkEdit = false, bulkEditOptions = {}, bulkEditAccessToken, onBulkEditStart, onBulkEditComplete, } = props;
|
|
25
28
|
const [, setIsGridReady] = React.useState(false);
|
|
29
|
+
const [isSelecting, setIsSelecting] = React.useState(false);
|
|
26
30
|
const previousRowDataRef = React.useRef(rowData);
|
|
31
|
+
// Bulk Edit hook
|
|
32
|
+
const { floatingButton, editPopover, handleRangeChange, handleOpenPopover, handleSubmitEdit, handleCancelEdit, handleValueChange, } = useBulkCellEdit(internalRef, {
|
|
33
|
+
enabled: enableBulkEdit,
|
|
34
|
+
accessToken: bulkEditAccessToken,
|
|
35
|
+
onBulkEditStart,
|
|
36
|
+
onBulkEditComplete,
|
|
37
|
+
...bulkEditOptions,
|
|
38
|
+
});
|
|
27
39
|
const findNewRows = (oldData, newData) => {
|
|
28
40
|
const oldIds = new Set(oldData.map((row) => row.id));
|
|
29
41
|
return newData.filter((row) => !oldIds.has(row.id));
|
|
@@ -39,9 +51,104 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
39
51
|
});
|
|
40
52
|
};
|
|
41
53
|
React.useImperativeHandle(ref, () => internalRef.current, [internalRef]);
|
|
42
|
-
//
|
|
54
|
+
// Detekce konce označování pomocí mouseup event
|
|
43
55
|
React.useEffect(() => {
|
|
56
|
+
const handleMouseUp = () => {
|
|
57
|
+
// Malé zpoždění (50ms) aby se stihla dokončit poslední range selection update
|
|
58
|
+
setTimeout(() => {
|
|
59
|
+
setIsSelecting(false);
|
|
60
|
+
}, 50);
|
|
61
|
+
};
|
|
62
|
+
document.addEventListener('mouseup', handleMouseUp);
|
|
63
|
+
document.addEventListener('touchend', handleMouseUp); // Pro touch zařízení
|
|
44
64
|
return () => {
|
|
65
|
+
document.removeEventListener('mouseup', handleMouseUp);
|
|
66
|
+
document.removeEventListener('touchend', handleMouseUp);
|
|
67
|
+
};
|
|
68
|
+
}, []);
|
|
69
|
+
// Helper funkce pro nastavení pointer-events na notifikace
|
|
70
|
+
const setNotificationPointerEvents = React.useCallback((enable) => {
|
|
71
|
+
const notifications = document.querySelectorAll('.ant-notification');
|
|
72
|
+
notifications.forEach((notif) => {
|
|
73
|
+
if (enable) {
|
|
74
|
+
// Obnovit pointer-events na notifikaci
|
|
75
|
+
const original = notif.dataset.originalPointerEvents || 'auto';
|
|
76
|
+
notif.style.pointerEvents = original;
|
|
77
|
+
notif.style.removeProperty('pointer-events');
|
|
78
|
+
delete notif.dataset.originalPointerEvents;
|
|
79
|
+
// Obnovit pointer-events na všechny child elementy
|
|
80
|
+
const allChildren = notif.querySelectorAll('*');
|
|
81
|
+
allChildren.forEach((child) => {
|
|
82
|
+
child.style.removeProperty('pointer-events');
|
|
83
|
+
delete child.dataset.originalPointerEvents;
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
// Zakázat pointer-events na notifikaci
|
|
88
|
+
if (!notif.dataset.originalPointerEvents) {
|
|
89
|
+
notif.dataset.originalPointerEvents = notif.style.pointerEvents || 'auto';
|
|
90
|
+
}
|
|
91
|
+
notif.style.setProperty('pointer-events', 'none', 'important');
|
|
92
|
+
// Zakázat pointer-events na všechny child elementy
|
|
93
|
+
const allChildren = notif.querySelectorAll('*');
|
|
94
|
+
allChildren.forEach((child) => {
|
|
95
|
+
if (!child.dataset.originalPointerEvents) {
|
|
96
|
+
child.dataset.originalPointerEvents = child.style.pointerEvents || '';
|
|
97
|
+
}
|
|
98
|
+
child.style.setProperty('pointer-events', 'none', 'important');
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}, []);
|
|
103
|
+
// Dynamicky přidávat/odebírat pointer-events na notifikace podle isSelecting stavu
|
|
104
|
+
React.useEffect(() => {
|
|
105
|
+
if (isSelecting) {
|
|
106
|
+
document.body.classList.add('ag-grid-selecting');
|
|
107
|
+
// Nastavit pointer-events na existující notifikace
|
|
108
|
+
setNotificationPointerEvents(false);
|
|
109
|
+
// KRITICKÉ: Sledovat DOM změny - když se objeví nová notifikace během označování
|
|
110
|
+
const observer = new MutationObserver((mutations) => {
|
|
111
|
+
mutations.forEach((mutation) => {
|
|
112
|
+
mutation.addedNodes.forEach((node) => {
|
|
113
|
+
if (node.nodeType === 1) { // Element node
|
|
114
|
+
// Zkontrolovat jestli je to notifikace nebo obsahuje notifikaci
|
|
115
|
+
if (node.classList?.contains('ant-notification') ||
|
|
116
|
+
node.querySelector?.('.ant-notification')) {
|
|
117
|
+
setNotificationPointerEvents(false);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
// Sledovat změny v document.body
|
|
124
|
+
observer.observe(document.body, {
|
|
125
|
+
childList: true,
|
|
126
|
+
subtree: true
|
|
127
|
+
});
|
|
128
|
+
// Uložit observer pro cleanup
|
|
129
|
+
return () => {
|
|
130
|
+
observer.disconnect();
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
document.body.classList.remove('ag-grid-selecting');
|
|
135
|
+
// Malé zpoždění před obnovením pointer-events (100ms)
|
|
136
|
+
// Zajistí že notifikace jsou interaktivní až když skutečně skončí označování
|
|
137
|
+
setTimeout(() => {
|
|
138
|
+
setNotificationPointerEvents(true);
|
|
139
|
+
}, 100);
|
|
140
|
+
}
|
|
141
|
+
}, [isSelecting, setNotificationPointerEvents]);
|
|
142
|
+
// Cleanup notifikací a timerů při zničení komponenty
|
|
143
|
+
React.useEffect(() => {
|
|
144
|
+
return () => {
|
|
145
|
+
// Clear debounce timers
|
|
146
|
+
if (notificationDebounceRef.current) {
|
|
147
|
+
clearTimeout(notificationDebounceRef.current);
|
|
148
|
+
}
|
|
149
|
+
if (bulkEditDebounceRef.current) {
|
|
150
|
+
clearTimeout(bulkEditDebounceRef.current);
|
|
151
|
+
}
|
|
45
152
|
if (enableNotification) {
|
|
46
153
|
const gridId = props.gridName || props.id || 'default';
|
|
47
154
|
const key = `aggregation-grid-${gridId}`;
|
|
@@ -121,33 +228,84 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
121
228
|
}
|
|
122
229
|
previousRowDataRef.current = rowData;
|
|
123
230
|
}, [rowData, newRowFlash, updatedRowFlash]);
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
231
|
+
// Debounce timer pro notifikace - čeká na konec označování
|
|
232
|
+
const notificationDebounceRef = React.useRef(null);
|
|
233
|
+
const lastRangeHashRef = React.useRef(null);
|
|
234
|
+
// Debounce timer pro bulk edit handler
|
|
235
|
+
const bulkEditDebounceRef = React.useRef(null);
|
|
236
|
+
// Helper funkce pro aktualizaci aggregace notifikace s cache check
|
|
237
|
+
const updateAggregationNotification = React.useCallback((event) => {
|
|
238
|
+
// Lightweight cache check PŘED voláním Aggregations()
|
|
239
|
+
const ranges = event.api.getCellRanges();
|
|
240
|
+
const currentRangeHash = hashRanges(ranges);
|
|
241
|
+
// Žádné ranges nebo jen jedna buňka - zavřít notifikaci
|
|
242
|
+
if (!ranges || ranges.length === 0 || !ranges[0]?.startRow) {
|
|
128
243
|
const gridId = props.gridName || props.id || 'default';
|
|
129
244
|
const key = `aggregation-grid-${gridId}`;
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
245
|
+
lastRangeHashRef.current = null;
|
|
246
|
+
notification.destroy(key);
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
// Cache hit - ranges se nezměnily, skip
|
|
250
|
+
if (currentRangeHash === lastRangeHashRef.current) {
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
// Cache miss - spočítat aggregace
|
|
254
|
+
const messageInfo = Aggregations(internalRef);
|
|
255
|
+
const gridId = props.gridName || props.id || 'default';
|
|
256
|
+
const key = `aggregation-grid-${gridId}`;
|
|
257
|
+
if (messageInfo.count > 1) {
|
|
258
|
+
// Uložit hash pro příští porovnání
|
|
259
|
+
lastRangeHashRef.current = currentRangeHash;
|
|
260
|
+
if (props.onAggregationChanged) {
|
|
261
|
+
props.onAggregationChanged(messageInfo);
|
|
142
262
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
263
|
+
// Dynamický style s pointer-events podle stavu označování
|
|
264
|
+
const dynamicStyle = {
|
|
265
|
+
...style,
|
|
266
|
+
pointerEvents: isSelecting ? 'none' : 'auto'
|
|
267
|
+
};
|
|
268
|
+
// Aktualizace existující notifikace nebo vytvoření nové
|
|
269
|
+
notification.info({
|
|
270
|
+
key,
|
|
271
|
+
message: notificationHead(messageInfo),
|
|
272
|
+
description: notificationBody(messageInfo),
|
|
273
|
+
duration: 0,
|
|
274
|
+
style: dynamicStyle,
|
|
275
|
+
placement,
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
// Jen jedna buňka - zavřít notifikaci
|
|
280
|
+
lastRangeHashRef.current = null;
|
|
281
|
+
notification.destroy(key);
|
|
282
|
+
}
|
|
283
|
+
}, [internalRef, props, notificationHead, notificationBody, style, placement, isSelecting]);
|
|
284
|
+
const RhPlusRangeSelectionChanged = React.useCallback((event) => {
|
|
285
|
+
// Detekovat začátek označování - nastavit isSelecting na true
|
|
286
|
+
setIsSelecting(true);
|
|
287
|
+
// 1. Aggregace notifikace s debounce (100ms)
|
|
288
|
+
if (internalRef && !!internalRef.current && enableNotification) {
|
|
289
|
+
if (notificationDebounceRef.current) {
|
|
290
|
+
clearTimeout(notificationDebounceRef.current);
|
|
291
|
+
}
|
|
292
|
+
notificationDebounceRef.current = setTimeout(() => {
|
|
293
|
+
updateAggregationNotification(event);
|
|
294
|
+
}, 100);
|
|
295
|
+
}
|
|
296
|
+
// 2. Bulk edit handler s debounce (150ms)
|
|
297
|
+
if (enableBulkEdit) {
|
|
298
|
+
if (bulkEditDebounceRef.current) {
|
|
299
|
+
clearTimeout(bulkEditDebounceRef.current);
|
|
146
300
|
}
|
|
301
|
+
bulkEditDebounceRef.current = setTimeout(() => {
|
|
302
|
+
handleRangeChange(event);
|
|
303
|
+
}, 150);
|
|
147
304
|
}
|
|
305
|
+
// 3. Custom onRangeSelectionChanged callback - bez debounce
|
|
148
306
|
if (props.onRangeSelectionChanged)
|
|
149
307
|
props.onRangeSelectionChanged(event);
|
|
150
|
-
}, [enableNotification,
|
|
308
|
+
}, [enableNotification, enableBulkEdit, handleRangeChange, props, updateAggregationNotification]);
|
|
151
309
|
const AgGridOnGridReady = (event, options) => {
|
|
152
310
|
if (onGridReady) {
|
|
153
311
|
onGridReady(event, options);
|
|
@@ -256,7 +414,8 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
256
414
|
context: { componentParent: { ...props } },
|
|
257
415
|
components,
|
|
258
416
|
};
|
|
259
|
-
return _jsx(AgGridReact, { ...allGridProps });
|
|
417
|
+
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, editPopover: editPopover, onOpenPopover: handleOpenPopover, onValueChange: handleValueChange, onSubmit: handleSubmitEdit, onCancel: handleCancelEdit }))] }));
|
|
260
418
|
});
|
|
261
419
|
export default AgGrid;
|
|
420
|
+
export { useBulkCellEdit, BulkEditButton, BulkEditPopover, BulkEditSelect } from './BulkEdit';
|
|
262
421
|
//# sourceMappingURL=index.js.map
|
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
|
@@ -17,7 +17,8 @@ import ButtonRenderer from './Renderers/ButtonRenderer';
|
|
|
17
17
|
import CountrySelectRenderer from './Renderers/CountrySelectRenderer';
|
|
18
18
|
import NotificationOptionsInit from "./NotificationOptions";
|
|
19
19
|
import { notification } from "antd";
|
|
20
|
-
import Aggregations from "./Aggregations";
|
|
20
|
+
import Aggregations, { hashRanges } from "./Aggregations";
|
|
21
|
+
import { useBulkCellEdit, BulkEditButton } from './BulkEdit';
|
|
21
22
|
|
|
22
23
|
const AgGrid = React.forwardRef((props, ref) => {
|
|
23
24
|
const internalRef = React.useRef();
|
|
@@ -33,10 +34,34 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
33
34
|
style = NotificationOptionsInit.style,
|
|
34
35
|
placement = NotificationOptionsInit.placement,
|
|
35
36
|
} = {},
|
|
37
|
+
// Bulk Edit props
|
|
38
|
+
enableBulkEdit = false,
|
|
39
|
+
bulkEditOptions = {},
|
|
40
|
+
bulkEditAccessToken,
|
|
41
|
+
onBulkEditStart,
|
|
42
|
+
onBulkEditComplete,
|
|
36
43
|
} = props;
|
|
37
44
|
const [, setIsGridReady] = React.useState(false);
|
|
45
|
+
const [isSelecting, setIsSelecting] = React.useState(false);
|
|
38
46
|
const previousRowDataRef = React.useRef(rowData);
|
|
39
47
|
|
|
48
|
+
// Bulk Edit hook
|
|
49
|
+
const {
|
|
50
|
+
floatingButton,
|
|
51
|
+
editPopover,
|
|
52
|
+
handleRangeChange,
|
|
53
|
+
handleOpenPopover,
|
|
54
|
+
handleSubmitEdit,
|
|
55
|
+
handleCancelEdit,
|
|
56
|
+
handleValueChange,
|
|
57
|
+
} = useBulkCellEdit(internalRef, {
|
|
58
|
+
enabled: enableBulkEdit,
|
|
59
|
+
accessToken: bulkEditAccessToken,
|
|
60
|
+
onBulkEditStart,
|
|
61
|
+
onBulkEditComplete,
|
|
62
|
+
...bulkEditOptions,
|
|
63
|
+
});
|
|
64
|
+
|
|
40
65
|
const findNewRows = (oldData, newData) => {
|
|
41
66
|
const oldIds = new Set(oldData.map((row) => row.id));
|
|
42
67
|
return newData.filter((row) => !oldIds.has(row.id));
|
|
@@ -55,9 +80,116 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
55
80
|
|
|
56
81
|
React.useImperativeHandle(ref, () => internalRef.current, [internalRef]);
|
|
57
82
|
|
|
58
|
-
//
|
|
83
|
+
// Detekce konce označování pomocí mouseup event
|
|
84
|
+
React.useEffect(() => {
|
|
85
|
+
const handleMouseUp = () => {
|
|
86
|
+
// Malé zpoždění (50ms) aby se stihla dokončit poslední range selection update
|
|
87
|
+
setTimeout(() => {
|
|
88
|
+
setIsSelecting(false);
|
|
89
|
+
}, 50);
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
document.addEventListener('mouseup', handleMouseUp);
|
|
93
|
+
document.addEventListener('touchend', handleMouseUp); // Pro touch zařízení
|
|
94
|
+
|
|
95
|
+
return () => {
|
|
96
|
+
document.removeEventListener('mouseup', handleMouseUp);
|
|
97
|
+
document.removeEventListener('touchend', handleMouseUp);
|
|
98
|
+
};
|
|
99
|
+
}, []);
|
|
100
|
+
|
|
101
|
+
// Helper funkce pro nastavení pointer-events na notifikace
|
|
102
|
+
const setNotificationPointerEvents = React.useCallback((enable) => {
|
|
103
|
+
const notifications = document.querySelectorAll('.ant-notification');
|
|
104
|
+
|
|
105
|
+
notifications.forEach((notif) => {
|
|
106
|
+
if (enable) {
|
|
107
|
+
// Obnovit pointer-events na notifikaci
|
|
108
|
+
const original = notif.dataset.originalPointerEvents || 'auto';
|
|
109
|
+
notif.style.pointerEvents = original;
|
|
110
|
+
notif.style.removeProperty('pointer-events');
|
|
111
|
+
delete notif.dataset.originalPointerEvents;
|
|
112
|
+
|
|
113
|
+
// Obnovit pointer-events na všechny child elementy
|
|
114
|
+
const allChildren = notif.querySelectorAll('*');
|
|
115
|
+
allChildren.forEach((child) => {
|
|
116
|
+
child.style.removeProperty('pointer-events');
|
|
117
|
+
delete child.dataset.originalPointerEvents;
|
|
118
|
+
});
|
|
119
|
+
} else {
|
|
120
|
+
// Zakázat pointer-events na notifikaci
|
|
121
|
+
if (!notif.dataset.originalPointerEvents) {
|
|
122
|
+
notif.dataset.originalPointerEvents = notif.style.pointerEvents || 'auto';
|
|
123
|
+
}
|
|
124
|
+
notif.style.setProperty('pointer-events', 'none', 'important');
|
|
125
|
+
|
|
126
|
+
// Zakázat pointer-events na všechny child elementy
|
|
127
|
+
const allChildren = notif.querySelectorAll('*');
|
|
128
|
+
allChildren.forEach((child) => {
|
|
129
|
+
if (!child.dataset.originalPointerEvents) {
|
|
130
|
+
child.dataset.originalPointerEvents = child.style.pointerEvents || '';
|
|
131
|
+
}
|
|
132
|
+
child.style.setProperty('pointer-events', 'none', 'important');
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}, []);
|
|
137
|
+
|
|
138
|
+
// Dynamicky přidávat/odebírat pointer-events na notifikace podle isSelecting stavu
|
|
139
|
+
React.useEffect(() => {
|
|
140
|
+
if (isSelecting) {
|
|
141
|
+
document.body.classList.add('ag-grid-selecting');
|
|
142
|
+
|
|
143
|
+
// Nastavit pointer-events na existující notifikace
|
|
144
|
+
setNotificationPointerEvents(false);
|
|
145
|
+
|
|
146
|
+
// KRITICKÉ: Sledovat DOM změny - když se objeví nová notifikace během označování
|
|
147
|
+
const observer = new MutationObserver((mutations) => {
|
|
148
|
+
mutations.forEach((mutation) => {
|
|
149
|
+
mutation.addedNodes.forEach((node) => {
|
|
150
|
+
if (node.nodeType === 1) { // Element node
|
|
151
|
+
// Zkontrolovat jestli je to notifikace nebo obsahuje notifikaci
|
|
152
|
+
if (node.classList?.contains('ant-notification') ||
|
|
153
|
+
node.querySelector?.('.ant-notification')) {
|
|
154
|
+
setNotificationPointerEvents(false);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
// Sledovat změny v document.body
|
|
162
|
+
observer.observe(document.body, {
|
|
163
|
+
childList: true,
|
|
164
|
+
subtree: true
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
// Uložit observer pro cleanup
|
|
168
|
+
return () => {
|
|
169
|
+
observer.disconnect();
|
|
170
|
+
};
|
|
171
|
+
} else {
|
|
172
|
+
document.body.classList.remove('ag-grid-selecting');
|
|
173
|
+
|
|
174
|
+
// Malé zpoždění před obnovením pointer-events (100ms)
|
|
175
|
+
// Zajistí že notifikace jsou interaktivní až když skutečně skončí označování
|
|
176
|
+
setTimeout(() => {
|
|
177
|
+
setNotificationPointerEvents(true);
|
|
178
|
+
}, 100);
|
|
179
|
+
}
|
|
180
|
+
}, [isSelecting, setNotificationPointerEvents]);
|
|
181
|
+
|
|
182
|
+
// Cleanup notifikací a timerů při zničení komponenty
|
|
59
183
|
React.useEffect(() => {
|
|
60
184
|
return () => {
|
|
185
|
+
// Clear debounce timers
|
|
186
|
+
if (notificationDebounceRef.current) {
|
|
187
|
+
clearTimeout(notificationDebounceRef.current);
|
|
188
|
+
}
|
|
189
|
+
if (bulkEditDebounceRef.current) {
|
|
190
|
+
clearTimeout(bulkEditDebounceRef.current);
|
|
191
|
+
}
|
|
192
|
+
|
|
61
193
|
if (enableNotification) {
|
|
62
194
|
const gridId = props.gridName || props.id || 'default';
|
|
63
195
|
const key = `aggregation-grid-${gridId}`;
|
|
@@ -147,36 +279,100 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
147
279
|
previousRowDataRef.current = rowData;
|
|
148
280
|
}, [rowData, newRowFlash, updatedRowFlash]);
|
|
149
281
|
|
|
282
|
+
// Debounce timer pro notifikace - čeká na konec označování
|
|
283
|
+
const notificationDebounceRef = React.useRef(null);
|
|
284
|
+
const lastRangeHashRef = React.useRef(null);
|
|
285
|
+
|
|
286
|
+
// Debounce timer pro bulk edit handler
|
|
287
|
+
const bulkEditDebounceRef = React.useRef(null);
|
|
288
|
+
|
|
289
|
+
// Helper funkce pro aktualizaci aggregace notifikace s cache check
|
|
290
|
+
const updateAggregationNotification = React.useCallback((event) => {
|
|
291
|
+
// Lightweight cache check PŘED voláním Aggregations()
|
|
292
|
+
const ranges = event.api.getCellRanges();
|
|
293
|
+
const currentRangeHash = hashRanges(ranges);
|
|
294
|
+
|
|
295
|
+
// Žádné ranges nebo jen jedna buňka - zavřít notifikaci
|
|
296
|
+
if (!ranges || ranges.length === 0 || !ranges[0]?.startRow) {
|
|
297
|
+
const gridId = props.gridName || props.id || 'default';
|
|
298
|
+
const key = `aggregation-grid-${gridId}`;
|
|
299
|
+
lastRangeHashRef.current = null;
|
|
300
|
+
notification.destroy(key);
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
// Cache hit - ranges se nezměnily, skip
|
|
305
|
+
if (currentRangeHash === lastRangeHashRef.current) {
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
// Cache miss - spočítat aggregace
|
|
310
|
+
const messageInfo = Aggregations(internalRef);
|
|
311
|
+
|
|
312
|
+
const gridId = props.gridName || props.id || 'default';
|
|
313
|
+
const key = `aggregation-grid-${gridId}`;
|
|
314
|
+
|
|
315
|
+
if (messageInfo.count > 1) {
|
|
316
|
+
// Uložit hash pro příští porovnání
|
|
317
|
+
lastRangeHashRef.current = currentRangeHash;
|
|
318
|
+
|
|
319
|
+
if (props.onAggregationChanged) {
|
|
320
|
+
props.onAggregationChanged(messageInfo);
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
// Dynamický style s pointer-events podle stavu označování
|
|
324
|
+
const dynamicStyle = {
|
|
325
|
+
...style,
|
|
326
|
+
pointerEvents: isSelecting ? 'none' : 'auto'
|
|
327
|
+
};
|
|
328
|
+
|
|
329
|
+
// Aktualizace existující notifikace nebo vytvoření nové
|
|
330
|
+
notification.info({
|
|
331
|
+
key,
|
|
332
|
+
message: notificationHead(messageInfo),
|
|
333
|
+
description: notificationBody(messageInfo),
|
|
334
|
+
duration: 0,
|
|
335
|
+
style: dynamicStyle,
|
|
336
|
+
placement,
|
|
337
|
+
});
|
|
338
|
+
} else {
|
|
339
|
+
// Jen jedna buňka - zavřít notifikaci
|
|
340
|
+
lastRangeHashRef.current = null;
|
|
341
|
+
notification.destroy(key);
|
|
342
|
+
}
|
|
343
|
+
}, [internalRef, props, notificationHead, notificationBody, style, placement, isSelecting]);
|
|
344
|
+
|
|
150
345
|
const RhPlusRangeSelectionChanged = React.useCallback(
|
|
151
346
|
(event) => {
|
|
347
|
+
// Detekovat začátek označování - nastavit isSelecting na true
|
|
348
|
+
setIsSelecting(true);
|
|
349
|
+
|
|
350
|
+
// 1. Aggregace notifikace s debounce (100ms)
|
|
152
351
|
if (internalRef && !!internalRef.current && enableNotification) {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
const gridId = props.gridName || props.id || 'default';
|
|
157
|
-
const key = `aggregation-grid-${gridId}`;
|
|
352
|
+
if (notificationDebounceRef.current) {
|
|
353
|
+
clearTimeout(notificationDebounceRef.current);
|
|
354
|
+
}
|
|
158
355
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
duration: 0,
|
|
169
|
-
style,
|
|
170
|
-
placement,
|
|
171
|
-
});
|
|
172
|
-
} else {
|
|
173
|
-
// Zavřít notifikaci pokud není nic označeno nebo jen jedna buňka
|
|
174
|
-
notification.destroy(key);
|
|
356
|
+
notificationDebounceRef.current = setTimeout(() => {
|
|
357
|
+
updateAggregationNotification(event);
|
|
358
|
+
}, 100);
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
// 2. Bulk edit handler s debounce (150ms)
|
|
362
|
+
if (enableBulkEdit) {
|
|
363
|
+
if (bulkEditDebounceRef.current) {
|
|
364
|
+
clearTimeout(bulkEditDebounceRef.current);
|
|
175
365
|
}
|
|
366
|
+
|
|
367
|
+
bulkEditDebounceRef.current = setTimeout(() => {
|
|
368
|
+
handleRangeChange(event);
|
|
369
|
+
}, 150);
|
|
176
370
|
}
|
|
371
|
+
|
|
372
|
+
// 3. Custom onRangeSelectionChanged callback - bez debounce
|
|
177
373
|
if (props.onRangeSelectionChanged) props.onRangeSelectionChanged(event);
|
|
178
374
|
},
|
|
179
|
-
[enableNotification,
|
|
375
|
+
[enableNotification, enableBulkEdit, handleRangeChange, props, updateAggregationNotification]
|
|
180
376
|
);
|
|
181
377
|
|
|
182
378
|
const AgGridOnGridReady = (event, options) => {
|
|
@@ -295,7 +491,35 @@ const AgGrid = React.forwardRef((props, ref) => {
|
|
|
295
491
|
context: { componentParent: { ...props } },
|
|
296
492
|
components,
|
|
297
493
|
};
|
|
298
|
-
|
|
494
|
+
|
|
495
|
+
return (
|
|
496
|
+
<>
|
|
497
|
+
<AgGridReact {...allGridProps} />
|
|
498
|
+
|
|
499
|
+
{/* Bulk Edit Floating Button */}
|
|
500
|
+
{enableBulkEdit && floatingButton.visible && (
|
|
501
|
+
<BulkEditButton
|
|
502
|
+
visible={floatingButton.visible}
|
|
503
|
+
position={floatingButton.position}
|
|
504
|
+
range={floatingButton.range}
|
|
505
|
+
column={floatingButton.column}
|
|
506
|
+
cellCount={floatingButton.cellCount}
|
|
507
|
+
editPopover={editPopover}
|
|
508
|
+
onOpenPopover={handleOpenPopover}
|
|
509
|
+
onValueChange={handleValueChange}
|
|
510
|
+
onSubmit={handleSubmitEdit}
|
|
511
|
+
onCancel={handleCancelEdit}
|
|
512
|
+
/>
|
|
513
|
+
)}
|
|
514
|
+
</>
|
|
515
|
+
);
|
|
299
516
|
});
|
|
300
517
|
|
|
301
518
|
export default AgGrid;
|
|
519
|
+
|
|
520
|
+
export {
|
|
521
|
+
useBulkCellEdit,
|
|
522
|
+
BulkEditButton,
|
|
523
|
+
BulkEditPopover,
|
|
524
|
+
BulkEditSelect
|
|
525
|
+
} from './BulkEdit';
|
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.39",
|
|
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.39"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"linq": "^4.0.3",
|
|
@@ -16,8 +16,9 @@
|
|
|
16
16
|
"antd": "^5.20.6",
|
|
17
17
|
"@ant-design/icons": "^5.4.0",
|
|
18
18
|
"lucide-react": "^0.503.0",
|
|
19
|
-
"@bit.rhplus/ui.grid": "0.0.
|
|
20
|
-
"@bit.rhplus/linq": "0.0.8"
|
|
19
|
+
"@bit.rhplus/ui.grid": "0.0.57",
|
|
20
|
+
"@bit.rhplus/linq": "0.0.8",
|
|
21
|
+
"@bit.rhplus/data": "0.0.51"
|
|
21
22
|
},
|
|
22
23
|
"devDependencies": {
|
|
23
24
|
"@teambit/react.react-env": "1.0.132"
|
|
File without changes
|