@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.
Files changed (37) hide show
  1. package/Aggregations.js +26 -3
  2. package/BulkEdit/BulkEditButton.jsx +149 -0
  3. package/BulkEdit/BulkEditPopover.jsx +301 -0
  4. package/BulkEdit/BulkEditSelect.jsx +80 -0
  5. package/BulkEdit/index.js +8 -0
  6. package/BulkEdit/useBulkCellEdit.js +348 -0
  7. package/BulkEdit/utils.js +532 -0
  8. package/Renderers/StateRenderer.jsx +17 -11
  9. package/dist/Aggregations.d.ts +2 -1
  10. package/dist/Aggregations.js +19 -2
  11. package/dist/Aggregations.js.map +1 -1
  12. package/dist/BulkEdit/BulkEditButton.d.ts +27 -0
  13. package/dist/BulkEdit/BulkEditButton.js +82 -0
  14. package/dist/BulkEdit/BulkEditButton.js.map +1 -0
  15. package/dist/BulkEdit/BulkEditPopover.d.ts +27 -0
  16. package/dist/BulkEdit/BulkEditPopover.js +122 -0
  17. package/dist/BulkEdit/BulkEditPopover.js.map +1 -0
  18. package/dist/BulkEdit/BulkEditSelect.d.ts +14 -0
  19. package/dist/BulkEdit/BulkEditSelect.js +31 -0
  20. package/dist/BulkEdit/BulkEditSelect.js.map +1 -0
  21. package/dist/BulkEdit/index.d.ts +5 -0
  22. package/dist/BulkEdit/index.js +7 -0
  23. package/dist/BulkEdit/index.js.map +1 -0
  24. package/dist/BulkEdit/useBulkCellEdit.d.ts +1 -0
  25. package/dist/BulkEdit/useBulkCellEdit.js +277 -0
  26. package/dist/BulkEdit/useBulkCellEdit.js.map +1 -0
  27. package/dist/BulkEdit/utils.d.ts +7 -0
  28. package/dist/BulkEdit/utils.js +472 -0
  29. package/dist/BulkEdit/utils.js.map +1 -0
  30. package/dist/Renderers/StateRenderer.js +16 -11
  31. package/dist/Renderers/StateRenderer.js.map +1 -1
  32. package/dist/index.d.ts +1 -0
  33. package/dist/index.js +184 -25
  34. package/dist/index.js.map +1 -1
  35. package/index.jsx +249 -25
  36. package/package.json +5 -4
  37. /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, } = {}, } = props;
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
- // Cleanup notifikací při zničení komponenty
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
- const RhPlusRangeSelectionChanged = React.useCallback((event) => {
125
- if (internalRef && !!internalRef.current && enableNotification) {
126
- const messageInfo = Aggregations(internalRef);
127
- // Statický klíč pro tento grid instance
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
- if (messageInfo.count > 1) {
131
- if (props.onAggregationChanged)
132
- props.onAggregationChanged(messageInfo);
133
- // Aktualizace existující notifikace nebo vytvoření nové
134
- notification.info({
135
- key, // Stejný klíč = aktualizace existující notifikace
136
- message: notificationHead(messageInfo),
137
- description: notificationBody(messageInfo),
138
- duration: 0,
139
- style,
140
- placement,
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
- else {
144
- // Zavřít notifikaci pokud není nic označeno nebo jen jedna buňka
145
- notification.destroy(key);
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, notificationHead, notificationBody, style, placement, props]);
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":";AAAA,oBAAoB;AACpB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,gBAAgB,MAAM,8BAA8B,CAAC;AAC5D,OAAO,eAAe,MAAM,6BAA6B,CAAC;AAC1D,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,aAAa,MAAM,2BAA2B,CAAC;AACtD,OAAO,cAAc,MAAM,4BAA4B,CAAC;AACxD,OAAO,cAAc,MAAM,4BAA4B,CAAC;AACxD,OAAO,qBAAqB,MAAM,mCAAmC,CAAC;AACtE,OAAO,uBAAuB,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,YAAY,EAAE,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAC7C,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;IACnC,MAAM,EACJ,OAAO,GAAG,EAAE,EACZ,WAAW,GAAG,IAAI,EAClB,eAAe,GAAG,KAAK,EACvB,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EAAE,EACnB,gBAAgB,GAAG,uBAAuB,CAAC,IAAI,EAC/C,gBAAgB,GAAG,uBAAuB,CAAC,IAAI,EAC/C,KAAK,GAAG,uBAAuB,CAAC,KAAK,EACrC,SAAS,GAAG,uBAAuB,CAAC,SAAS,GAC9C,GAAG,EAAE;IACN,kBAAkB;IAClB,cAAc,GAAG,KAAK,EACtB,eAAe,GAAG,EAAE,EACpB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACnB,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEjD,iBAAiB;IACjB,MAAM,EACJ,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GAClB,GAAG,eAAe,CAAC,WAAW,EAAE;QAC/B,OAAO,EAAE,cAAc;QACvB,WAAW,EAAE,mBAAmB;QAChC,eAAe;QACf,kBAAkB;QAClB,GAAG,eAAe;KACnB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QAC3C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAChE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC,CAAC,+BAA+B;YAE1D,mDAAmD;YACnD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAEzE,gDAAgD;IAChD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,8EAA8E;YAC9E,UAAU,CAAC,GAAG,EAAE;gBACd,cAAc,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACpD,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,qBAAqB;QAE3E,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACvD,QAAQ,CAAC,mBAAmB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC1D,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,2DAA2D;IAC3D,MAAM,4BAA4B,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE;QAChE,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;QAErE,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,IAAI,MAAM,EAAE,CAAC;gBACX,uCAAuC;gBACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,qBAAqB,IAAI,MAAM,CAAC;gBAC/D,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC;gBACrC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;gBAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC;gBAE3C,mDAAmD;gBACnD,MAAM,WAAW,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAChD,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC5B,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;oBAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC;gBAC7C,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,uCAAuC;gBACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;oBACzC,KAAK,CAAC,OAAO,CAAC,qBAAqB,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,IAAI,MAAM,CAAC;gBAC5E,CAAC;gBACD,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBAE/D,mDAAmD;gBACnD,MAAM,WAAW,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAChD,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;wBACzC,KAAK,CAAC,OAAO,CAAC,qBAAqB,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC;oBACxE,CAAC;oBACD,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,mFAAmF;IACnF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YAEjD,mDAAmD;YACnD,4BAA4B,CAAC,KAAK,CAAC,CAAC;YAEpC,iFAAiF;YACjF,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAAS,EAAE,EAAE;gBAClD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;oBAC7B,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;wBACnC,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC,CAAC,eAAe;4BACxC,gEAAgE;4BAChE,IAAI,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,kBAAkB,CAAC;gCAC5C,IAAI,CAAC,aAAa,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC;gCAC9C,4BAA4B,CAAC,KAAK,CAAC,CAAC;4BACtC,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,iCAAiC;YACjC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAC9B,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YAEH,8BAA8B;YAC9B,OAAO,GAAG,EAAE;gBACV,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,CAAC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAEpD,sDAAsD;YACtD,6EAA6E;YAC7E,UAAU,CAAC,GAAG,EAAE;gBACd,4BAA4B,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,4BAA4B,CAAC,CAAC,CAAC;IAEhD,qDAAqD;IACrD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,GAAG,EAAE;YACV,wBAAwB;YACxB,IAAI,uBAAuB,CAAC,OAAO,EAAE,CAAC;gBACpC,YAAY,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAChD,CAAC;YACD,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC;gBAChC,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,kBAAkB,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,IAAI,SAAS,CAAC;gBACvD,MAAM,GAAG,GAAG,oBAAoB,MAAM,EAAE,CAAC;gBACzC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,WAAW,IAAI,CAAC,eAAe;YAAE,OAAO;QAE7C,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC;QACnD,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAErF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC;oBACH,wCAAwC;oBACxC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC;wBACzE,OAAO;oBACT,CAAC;oBAED,2DAA2D;oBAC3D,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,EAAE,SAAS,IAAI,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC;oBAC7E,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC;wBAC/B,OAAO;oBACT,CAAC;oBAED,MAAM,YAAY,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC;oBAChD,MAAM,UAAU,GAAG,YAAY;yBAC5B,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,gCAAgC;yBACnE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAErC,mCAAmC;oBACnC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC5B,OAAO;oBACT,CAAC;oBAED,sEAAsE;oBACtE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzB,MAAM,WAAW,GAAG,EAAE,CAAC;wBACvB,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;4BAC3C,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gCACrD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACzB,CAAC;wBACH,CAAC,CAAC,CAAC;wBAEH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC3B,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;gCACjC,QAAQ,EAAE,WAAW;gCACrB,OAAO,EAAE,UAAU;gCACnB,UAAU,EAAE,CAAC;gCACb,SAAS,EAAE,IAAI;6BAChB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBAED,oDAAoD;oBACpD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC3B,MAAM,eAAe,GAAG,EAAE,CAAC;wBAC3B,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;4BAC3C,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gCACvD,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC7B,CAAC;wBACH,CAAC,CAAC,CAAC;wBAEH,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC/B,iDAAiD;4BACjD,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gCAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;gCACzF,IAAI,UAAU,EAAE,CAAC;oCACf,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;oCACjD,UAAU,CAAC,GAAG,EAAE;wCACd,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;oCACtD,CAAC,EAAE,IAAI,CAAC,CAAC;gCACX,CAAC;4BACH,CAAC,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,oDAAoD;gBACtD,CAAC;YACH,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,wCAAwC;QACnD,CAAC;QAED,kBAAkB,CAAC,OAAO,GAAG,OAAO,CAAC;IACvC,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;IAE5C,2DAA2D;IAC3D,MAAM,uBAAuB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE5C,uCAAuC;IACvC,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/C,mEAAmE;IACnE,MAAM,6BAA6B,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE;QAChE,sDAAsD;QACtD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACzC,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAE5C,wDAAwD;QACxD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;YAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,IAAI,SAAS,CAAC;YACvD,MAAM,GAAG,GAAG,oBAAoB,MAAM,EAAE,CAAC;YACzC,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;YAChC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,wCAAwC;QACxC,IAAI,gBAAgB,KAAK,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAClD,OAAO;QACT,CAAC;QAED,kCAAkC;QAClC,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;QAE9C,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,IAAI,SAAS,CAAC;QACvD,MAAM,GAAG,GAAG,oBAAoB,MAAM,EAAE,CAAC;QAEzC,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAC1B,mCAAmC;YACnC,gBAAgB,CAAC,OAAO,GAAG,gBAAgB,CAAC;YAE5C,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;gBAC/B,KAAK,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;YAC1C,CAAC;YAED,0DAA0D;YAC1D,MAAM,YAAY,GAAG;gBACnB,GAAG,KAAK;gBACR,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;aAC7C,CAAC;YAEF,wDAAwD;YACxD,YAAY,CAAC,IAAI,CAAC;gBAChB,GAAG;gBACH,OAAO,EAAE,gBAAgB,CAAC,WAAW,CAAC;gBACtC,WAAW,EAAE,gBAAgB,CAAC,WAAW,CAAC;gBAC1C,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,YAAY;gBACnB,SAAS;aACV,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,sCAAsC;YACtC,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;YAChC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAE5F,MAAM,2BAA2B,GAAG,KAAK,CAAC,WAAW,CACnD,CAAC,KAAK,EAAE,EAAE;QACR,8DAA8D;QAC9D,cAAc,CAAC,IAAI,CAAC,CAAC;QAErB,6CAA6C;QAC7C,IAAI,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,IAAI,kBAAkB,EAAE,CAAC;YAC/D,IAAI,uBAAuB,CAAC,OAAO,EAAE,CAAC;gBACpC,YAAY,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAChD,CAAC;YAED,uBAAuB,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChD,6BAA6B,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;QAED,0CAA0C;QAC1C,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC;gBAChC,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC5C,CAAC;YAED,mBAAmB,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5C,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;QAED,4DAA4D;QAC5D,IAAI,KAAK,CAAC,uBAAuB;YAAE,KAAK,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC1E,CAAC,EACD,CAAC,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,EAAE,KAAK,EAAE,6BAA6B,CAAC,CAC9F,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC3C,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9B,CAAC;QAED,sDAAsD;QACtD,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,WAAW,CAAC,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;YACpC,WAAW,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,8BAA8B;QAC9F,CAAC;QAED,qEAAqE;QACrE,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,CAAC;YACnD,MAAM,CAAC,yBAAyB,GAAG,CAAC,eAAe,EAAE,EAAE;gBACrD,IAAI,CAAC;oBACH,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE;wBAAE,OAAO;oBAEpD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC;oBAE/C,QAAQ,SAAS,EAAE,CAAC;wBAClB,KAAK,KAAK;4BACR,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;4BAC7C,6BAA6B;4BAC7B,UAAU,CAAC,GAAG,EAAE;gCACd,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oCACvB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oCAChD,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;wCAClC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;wCACzD,UAAU,CAAC,GAAG,EAAE;4CACd,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;wCAC9D,CAAC,EAAE,IAAI,CAAC,CAAC;oCACX,CAAC;gCACH,CAAC,CAAC,CAAC;4BACL,CAAC,EAAE,GAAG,CAAC,CAAC;4BACR,MAAM;wBAER,KAAK,QAAQ;4BACX,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;4BAChD,sCAAsC;4BACtC,UAAU,CAAC,GAAG,EAAE;gCACd,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oCACvB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oCAChD,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;wCAClC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;wCACzD,UAAU,CAAC,GAAG,EAAE;4CACd,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;wCAC9D,CAAC,EAAE,IAAI,CAAC,CAAC;oCACX,CAAC;gCACH,CAAC,CAAC,CAAC;4BACL,CAAC,EAAE,GAAG,CAAC,CAAC;4BACR,MAAM;wBAER,KAAK,QAAQ;4BACX,4BAA4B;4BAC5B,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gCACvB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gCAChD,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;oCAClC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gCAC3D,CAAC;4BACH,CAAC,CAAC,CAAC;4BAEH,UAAU,CAAC,GAAG,EAAE;gCACd,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;4BAClD,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,6CAA6C;4BACtD,MAAM;oBACV,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,mBAAmB;gBACrB,CAAC;YACH,CAAC,CAAC;QACJ,CAAC;QAED,0DAA0D;QAC1D,kEAAkE;QAClE,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,wCAAwC;YAC1C,CAAC;QACH,CAAC;QAED,+CAA+C;QAC/C,UAAU,CAAC,GAAG,EAAE;YACd,cAAc,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACpC,OAAO;YACL,gBAAgB,EAAE,gBAAgB;YAClC,cAAc,EAAE,cAAc;YAC9B,qBAAqB,EAAE,qBAAqB;YAC5C,eAAe,EAAE,eAAe;YAChC,cAAc,EAAE,cAAc;YAC9B,YAAY,EAAE,YAAY;YAC1B,aAAa,EAAE,aAAa;YAC5B,GAAG,KAAK,CAAC,mBAAmB;SAC7B,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAEhC,MAAM,YAAY,GAAG;QACnB,GAAG,EAAE,WAAW;QAChB,GAAG,KAAK;QACR,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;QAClD,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,0BAA0B,CAAC,KAAK,EAAE,KAAK,CAAC;QACzE,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC;QACvE,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC;QACrE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC;QACjD,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC;QAChE,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC;QACjE,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC;QACjE,uBAAuB,EAAE,2BAA2B;QACpD,OAAO,EAAE,EAAE,eAAe,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE;QAC1C,UAAU;KACX,CAAC;IAEF,OAAO,CACL,8BACE,KAAC,WAAW,OAAK,YAAY,GAAI,EAGhC,cAAc,IAAI,cAAc,CAAC,OAAO,IAAI,CAC3C,KAAC,cAAc,IACb,OAAO,EAAE,cAAc,CAAC,OAAO,EAC/B,QAAQ,EAAE,cAAc,CAAC,QAAQ,EACjC,KAAK,EAAE,cAAc,CAAC,KAAK,EAC3B,MAAM,EAAE,cAAc,CAAC,MAAM,EAC7B,SAAS,EAAE,cAAc,CAAC,SAAS,EACnC,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,iBAAiB,EAChC,aAAa,EAAE,iBAAiB,EAChC,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,gBAAgB,GAC1B,CACH,IACA,CACJ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,MAAM,CAAC;AAEtB,OAAO,EACL,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,EACf,MAAM,YAAY,CAAC"}
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
- // Cleanup notifikací při zničení komponenty
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
- const messageInfo = Aggregations(internalRef);
154
-
155
- // Statický klíč pro tento grid instance
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
- if (messageInfo.count > 1) {
160
- if (props.onAggregationChanged)
161
- props.onAggregationChanged(messageInfo);
162
-
163
- // Aktualizace existující notifikace nebo vytvoření nové
164
- notification.info({
165
- key, // Stejný klíč = aktualizace existující notifikace
166
- message: notificationHead(messageInfo),
167
- description: notificationBody(messageInfo),
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, notificationHead, notificationBody, style, placement, props]
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
- return <AgGridReact {...allGridProps} />;
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.37",
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.37"
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.55",
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"