@bit.rhplus/ui.grid 0.0.23 → 0.0.24
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/ColumnBuilder.jsx +330 -130
- package/dist/ColumnBuilder.js +257 -110
- package/dist/ColumnBuilder.js.map +1 -1
- package/dist/index.js +19 -15
- package/dist/index.js.map +1 -1
- package/index.jsx +18 -15
- package/package.json +2 -2
- /package/dist/{preview-1748944094527.js → preview-1748952580414.js} +0 -0
package/ColumnBuilder.jsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { Menu, Dropdown,
|
|
2
|
+
import { Menu, Dropdown, Divider } from 'antd';
|
|
3
3
|
import { prepareCellStyle, prepareColDef, getValueByPath } from './utils';
|
|
4
4
|
import { currencySymbols } from './enums';
|
|
5
5
|
import { ActionIcon } from './Icons';
|
|
@@ -121,72 +121,6 @@ const useObjectCellRenderer = (params, editable, onEditClick) => {
|
|
|
121
121
|
};
|
|
122
122
|
};
|
|
123
123
|
|
|
124
|
-
// Vytvoříme React hook funkci pro row hover action renderer
|
|
125
|
-
const useRowHoverActionRenderer = (params) => {
|
|
126
|
-
const [isRowHovered, setIsRowHovered] = React.useState(false);
|
|
127
|
-
const rowRef = React.useRef(null);
|
|
128
|
-
|
|
129
|
-
React.useEffect(() => {
|
|
130
|
-
if (!params.node) return undefined;
|
|
131
|
-
|
|
132
|
-
// Funkce pro kontrolu, zda je řádek v hover stavu
|
|
133
|
-
const checkRowHoverState = () => {
|
|
134
|
-
// Najdeme DOM element řádku pomocí rowIndex
|
|
135
|
-
const rowElement = document.querySelector(
|
|
136
|
-
`.ag-row[row-index="${params.rowIndex}"]`
|
|
137
|
-
);
|
|
138
|
-
if (rowElement) {
|
|
139
|
-
rowRef.current = rowElement;
|
|
140
|
-
// AG-Grid automaticky přidává třídu ag-row-hover k řádku při najetí myší
|
|
141
|
-
const isHovered = rowElement.classList.contains('ag-row-hover');
|
|
142
|
-
setIsRowHovered(isHovered);
|
|
143
|
-
}
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
// Vytvoříme MutationObserver pro sledování změn tříd na řádku
|
|
147
|
-
const observer = new MutationObserver((mutations) => {
|
|
148
|
-
mutations.forEach((mutation) => {
|
|
149
|
-
if (
|
|
150
|
-
mutation.type === 'attributes' &&
|
|
151
|
-
mutation.attributeName === 'class'
|
|
152
|
-
) {
|
|
153
|
-
checkRowHoverState();
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
});
|
|
157
|
-
|
|
158
|
-
// Inicializujeme stav
|
|
159
|
-
checkRowHoverState();
|
|
160
|
-
|
|
161
|
-
// Přidáme observer k element řádku, pokud existuje
|
|
162
|
-
if (rowRef.current) {
|
|
163
|
-
observer.observe(rowRef.current, { attributes: true });
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
// Přidáme event listeners na grid container pro sledování pohybu myši
|
|
167
|
-
const gridContainer = document.querySelector('.ag-root-wrapper');
|
|
168
|
-
if (gridContainer) {
|
|
169
|
-
gridContainer.addEventListener('mouseover', checkRowHoverState);
|
|
170
|
-
gridContainer.addEventListener('mouseout', checkRowHoverState);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
// Cleanup při odmontování komponenty
|
|
174
|
-
return () => {
|
|
175
|
-
if (rowRef.current) {
|
|
176
|
-
observer.disconnect();
|
|
177
|
-
}
|
|
178
|
-
if (gridContainer) {
|
|
179
|
-
gridContainer.removeEventListener('mouseover', checkRowHoverState);
|
|
180
|
-
gridContainer.removeEventListener('mouseout', checkRowHoverState);
|
|
181
|
-
}
|
|
182
|
-
};
|
|
183
|
-
}, [params.node, params.rowIndex]);
|
|
184
|
-
|
|
185
|
-
return {
|
|
186
|
-
isRowHovered,
|
|
187
|
-
};
|
|
188
|
-
};
|
|
189
|
-
|
|
190
124
|
class ColumnBuilder {
|
|
191
125
|
#addPreparedColumn(props) {
|
|
192
126
|
this.columns.push(prepareColDef(this.intl, props));
|
|
@@ -327,7 +261,7 @@ class ColumnBuilder {
|
|
|
327
261
|
hoverStyle,
|
|
328
262
|
cellAlign = 'left',
|
|
329
263
|
editable,
|
|
330
|
-
overviewToggle = false,
|
|
264
|
+
overviewToggle = false,
|
|
331
265
|
...restProps
|
|
332
266
|
}) {
|
|
333
267
|
// Vytvořím komponentu pro cell renderer, která používá hook
|
|
@@ -347,6 +281,12 @@ class ColumnBuilder {
|
|
|
347
281
|
overviewToggle
|
|
348
282
|
);
|
|
349
283
|
|
|
284
|
+
const handleKeyPress = React.useCallback((event) => {
|
|
285
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
286
|
+
handleClick(event);
|
|
287
|
+
}
|
|
288
|
+
}, [handleClick]);
|
|
289
|
+
|
|
350
290
|
return (
|
|
351
291
|
<div
|
|
352
292
|
className="link-cell-container"
|
|
@@ -361,14 +301,10 @@ class ColumnBuilder {
|
|
|
361
301
|
onClick={handleClick}
|
|
362
302
|
onMouseEnter={handleMouseEnter}
|
|
363
303
|
onMouseLeave={handleMouseLeave}
|
|
304
|
+
onKeyPress={handleKeyPress}
|
|
364
305
|
style={isHovered ? computedHoverStyle : computedLinkStyle}
|
|
365
306
|
role="button"
|
|
366
307
|
tabIndex={0}
|
|
367
|
-
onKeyPress={(event) => {
|
|
368
|
-
if (event.key === 'Enter' || event.key === ' ') {
|
|
369
|
-
handleClick(event);
|
|
370
|
-
}
|
|
371
|
-
}}
|
|
372
308
|
>
|
|
373
309
|
{params.value}
|
|
374
310
|
</span>
|
|
@@ -385,7 +321,7 @@ class ColumnBuilder {
|
|
|
385
321
|
cellAlign,
|
|
386
322
|
cellRenderer,
|
|
387
323
|
editable: this.#resolveEditable(editable),
|
|
388
|
-
overviewToggle,
|
|
324
|
+
overviewToggle,
|
|
389
325
|
...restProps,
|
|
390
326
|
});
|
|
391
327
|
return this;
|
|
@@ -459,6 +395,7 @@ class ColumnBuilder {
|
|
|
459
395
|
}}
|
|
460
396
|
onClick={handleEditClick}
|
|
461
397
|
title="Upravit"
|
|
398
|
+
type="button"
|
|
462
399
|
>
|
|
463
400
|
<span style={{ fontSize: '16px' }}>⋮</span>
|
|
464
401
|
</button>
|
|
@@ -530,57 +467,294 @@ class ColumnBuilder {
|
|
|
530
467
|
return this;
|
|
531
468
|
}
|
|
532
469
|
|
|
470
|
+
// Řešení s izolovaným observer pro každý grid instance
|
|
533
471
|
addPinnedActionButton({
|
|
534
472
|
menuItems = [],
|
|
535
473
|
onActionClick,
|
|
536
|
-
onBeforeShow,
|
|
474
|
+
onBeforeShow,
|
|
537
475
|
...restProps
|
|
538
476
|
} = {}) {
|
|
539
|
-
// Vytvořím React komponentu pro renderer s dropdown menu
|
|
540
477
|
const ActionDropdownRenderer = (params) => {
|
|
541
|
-
const
|
|
542
|
-
// Stav pro sledování, zda je dropdown otevřený
|
|
478
|
+
const [isRowHovered, setIsRowHovered] = React.useState(false);
|
|
543
479
|
const [isDropdownVisible, setIsDropdownVisible] = React.useState(false);
|
|
544
|
-
// Stav pro aktuální menu items
|
|
545
480
|
const [currentMenuItems, setCurrentMenuItems] = React.useState(menuItems);
|
|
546
481
|
|
|
547
|
-
|
|
482
|
+
const isMountedRef = React.useRef(true);
|
|
483
|
+
const rowIndexRef = React.useRef(null);
|
|
484
|
+
const observerRef = React.useRef(null);
|
|
485
|
+
const gridContainerRef = React.useRef(null);
|
|
486
|
+
const currentHoveredRowRef = React.useRef(null);
|
|
487
|
+
const mouseListenersSetupRef = React.useRef(false);
|
|
488
|
+
|
|
489
|
+
// Notifikace o změně hover stavu - definována před použitím
|
|
490
|
+
const notifyRowHoverChange = React.useCallback((rowIndex, isHovered) => {
|
|
491
|
+
if (!isMountedRef.current) return;
|
|
492
|
+
|
|
493
|
+
if (!isHovered && rowIndexRef.current) {
|
|
494
|
+
setIsRowHovered(false);
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
if (isHovered && rowIndexRef.current === rowIndex) {
|
|
498
|
+
setIsRowHovered(true);
|
|
499
|
+
}
|
|
500
|
+
}, []);
|
|
501
|
+
|
|
502
|
+
// Mouse event handlers - nyní definovány po notifyRowHoverChange
|
|
503
|
+
const handleMouseMove = React.useCallback((event) => {
|
|
504
|
+
if (!isMountedRef.current) return;
|
|
505
|
+
|
|
506
|
+
const { target } = event;
|
|
507
|
+
if (!target) return;
|
|
508
|
+
|
|
509
|
+
const rowElement = target.closest('.ag-row');
|
|
510
|
+
|
|
511
|
+
if (rowElement) {
|
|
512
|
+
const rowIndex =
|
|
513
|
+
rowElement.getAttribute('row-index') ||
|
|
514
|
+
rowElement.getAttribute('aria-rowindex') ||
|
|
515
|
+
rowElement.dataset.rowIndex ||
|
|
516
|
+
rowElement.getAttribute('data-ag-row-index');
|
|
517
|
+
|
|
518
|
+
if (rowIndex !== null) {
|
|
519
|
+
const normalizedRowIndex = rowIndex.toString();
|
|
520
|
+
|
|
521
|
+
if (normalizedRowIndex !== currentHoveredRowRef.current) {
|
|
522
|
+
if (currentHoveredRowRef.current !== null) {
|
|
523
|
+
notifyRowHoverChange(currentHoveredRowRef.current, false);
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
currentHoveredRowRef.current = normalizedRowIndex;
|
|
527
|
+
notifyRowHoverChange(normalizedRowIndex, true);
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
} else if (currentHoveredRowRef.current !== null) {
|
|
531
|
+
notifyRowHoverChange(currentHoveredRowRef.current, false);
|
|
532
|
+
currentHoveredRowRef.current = null;
|
|
533
|
+
}
|
|
534
|
+
}, [notifyRowHoverChange]);
|
|
535
|
+
|
|
536
|
+
const handleMouseLeave = React.useCallback((event) => {
|
|
537
|
+
if (!isMountedRef.current) return;
|
|
538
|
+
|
|
539
|
+
const { relatedTarget } = event;
|
|
540
|
+
|
|
541
|
+
if (
|
|
542
|
+
gridContainerRef.current &&
|
|
543
|
+
(!relatedTarget || !gridContainerRef.current.contains(relatedTarget))
|
|
544
|
+
) {
|
|
545
|
+
if (currentHoveredRowRef.current !== null) {
|
|
546
|
+
notifyRowHoverChange(currentHoveredRowRef.current, false);
|
|
547
|
+
currentHoveredRowRef.current = null;
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
}, [notifyRowHoverChange]);
|
|
551
|
+
|
|
552
|
+
// Cleanup funkce - definována po handleMouseMove a handleMouseLeave
|
|
553
|
+
const cleanup = React.useCallback(() => {
|
|
554
|
+
if (observerRef.current) {
|
|
555
|
+
observerRef.current.disconnect();
|
|
556
|
+
observerRef.current = null;
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
if (gridContainerRef.current && mouseListenersSetupRef.current) {
|
|
560
|
+
gridContainerRef.current.removeEventListener(
|
|
561
|
+
'mousemove',
|
|
562
|
+
handleMouseMove
|
|
563
|
+
);
|
|
564
|
+
gridContainerRef.current.removeEventListener(
|
|
565
|
+
'mouseleave',
|
|
566
|
+
handleMouseLeave
|
|
567
|
+
);
|
|
568
|
+
mouseListenersSetupRef.current = false;
|
|
569
|
+
}
|
|
570
|
+
}, [handleMouseMove, handleMouseLeave]);
|
|
571
|
+
|
|
572
|
+
React.useEffect(() => {
|
|
573
|
+
return () => {
|
|
574
|
+
isMountedRef.current = false;
|
|
575
|
+
cleanup();
|
|
576
|
+
};
|
|
577
|
+
}, [cleanup]);
|
|
578
|
+
|
|
579
|
+
// Získáme row index z params
|
|
580
|
+
React.useEffect(() => {
|
|
581
|
+
const { node, rowIndex } = params;
|
|
582
|
+
if (node && node.rowIndex !== undefined) {
|
|
583
|
+
rowIndexRef.current = node.rowIndex.toString();
|
|
584
|
+
} else if (rowIndex !== undefined) {
|
|
585
|
+
rowIndexRef.current = rowIndex.toString();
|
|
586
|
+
}
|
|
587
|
+
}, [params]);
|
|
588
|
+
|
|
589
|
+
// Nastavení observer pro tento konkrétní grid
|
|
590
|
+
const setupGridObserver = React.useCallback(() => {
|
|
591
|
+
const { api, eGridCell } = params;
|
|
592
|
+
if (!api || observerRef.current || !isMountedRef.current) return;
|
|
593
|
+
|
|
594
|
+
const findThisGridContainer = () => {
|
|
595
|
+
if (eGridCell) {
|
|
596
|
+
let current = eGridCell;
|
|
597
|
+
while (current && current !== document.body) {
|
|
598
|
+
if (
|
|
599
|
+
current.classList &&
|
|
600
|
+
(current.classList.contains('ag-root-wrapper') ||
|
|
601
|
+
current.classList.contains('ag-theme-alpine') ||
|
|
602
|
+
current.classList.contains('ag-theme-balham') ||
|
|
603
|
+
current.classList.contains('ag-theme-material') ||
|
|
604
|
+
current.classList.contains('ag-theme-fresh') ||
|
|
605
|
+
current.classList.contains('ag-theme-dark') ||
|
|
606
|
+
current.classList.contains('ag-theme-blue') ||
|
|
607
|
+
current.classList.contains('ag-theme-bootstrap'))
|
|
608
|
+
) {
|
|
609
|
+
return current;
|
|
610
|
+
}
|
|
611
|
+
current = current.parentElement;
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
return null;
|
|
615
|
+
};
|
|
616
|
+
|
|
617
|
+
const gridContainer = findThisGridContainer();
|
|
618
|
+
if (!gridContainer) {
|
|
619
|
+
setTimeout(setupGridObserver, 100);
|
|
620
|
+
return;
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
gridContainerRef.current = gridContainer;
|
|
624
|
+
|
|
625
|
+
if (!mouseListenersSetupRef.current) {
|
|
626
|
+
gridContainer.addEventListener('mousemove', handleMouseMove, {
|
|
627
|
+
passive: true,
|
|
628
|
+
});
|
|
629
|
+
gridContainer.addEventListener('mouseleave', handleMouseLeave, {
|
|
630
|
+
passive: true,
|
|
631
|
+
});
|
|
632
|
+
|
|
633
|
+
const handleMouseEnter = () => {
|
|
634
|
+
if (isMountedRef.current) {
|
|
635
|
+
currentHoveredRowRef.current = null;
|
|
636
|
+
setIsRowHovered(false);
|
|
637
|
+
}
|
|
638
|
+
};
|
|
639
|
+
gridContainer.addEventListener('mouseenter', handleMouseEnter, {
|
|
640
|
+
passive: true,
|
|
641
|
+
});
|
|
642
|
+
|
|
643
|
+
mouseListenersSetupRef.current = true;
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
observerRef.current = new MutationObserver((mutations) => {
|
|
647
|
+
if (!isMountedRef.current) return;
|
|
648
|
+
|
|
649
|
+
let shouldRecalculate = false;
|
|
650
|
+
|
|
651
|
+
mutations.forEach((mutation) => {
|
|
652
|
+
if (mutation.type === 'childList') {
|
|
653
|
+
const addedRows = Array.from(mutation.addedNodes).some(
|
|
654
|
+
(node) =>
|
|
655
|
+
node.nodeType === Node.ELEMENT_NODE &&
|
|
656
|
+
(node.classList?.contains('ag-row') ||
|
|
657
|
+
node.querySelector?.('.ag-row'))
|
|
658
|
+
);
|
|
659
|
+
|
|
660
|
+
const removedRows = Array.from(mutation.removedNodes).some(
|
|
661
|
+
(node) =>
|
|
662
|
+
node.nodeType === Node.ELEMENT_NODE &&
|
|
663
|
+
(node.classList?.contains('ag-row') ||
|
|
664
|
+
node.querySelector?.('.ag-row'))
|
|
665
|
+
);
|
|
666
|
+
|
|
667
|
+
if (addedRows || removedRows) {
|
|
668
|
+
shouldRecalculate = true;
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
});
|
|
672
|
+
|
|
673
|
+
if (shouldRecalculate) {
|
|
674
|
+
currentHoveredRowRef.current = null;
|
|
675
|
+
setIsRowHovered(false);
|
|
676
|
+
|
|
677
|
+
setTimeout(() => {
|
|
678
|
+
if (isMountedRef.current && gridContainerRef.current) {
|
|
679
|
+
const rect = gridContainerRef.current.getBoundingClientRect();
|
|
680
|
+
const mouseEvent = new MouseEvent('mousemove', {
|
|
681
|
+
clientX: window.lastMouseX || rect.left + rect.width / 2,
|
|
682
|
+
clientY: window.lastMouseY || rect.top + rect.height / 2,
|
|
683
|
+
bubbles: true,
|
|
684
|
+
});
|
|
685
|
+
gridContainerRef.current.dispatchEvent(mouseEvent);
|
|
686
|
+
}
|
|
687
|
+
}, 100);
|
|
688
|
+
}
|
|
689
|
+
});
|
|
690
|
+
|
|
691
|
+
observerRef.current.observe(gridContainer, {
|
|
692
|
+
childList: true,
|
|
693
|
+
subtree: true,
|
|
694
|
+
attributes: false,
|
|
695
|
+
});
|
|
696
|
+
|
|
697
|
+
const trackMouse = (e) => {
|
|
698
|
+
window.lastMouseX = e.clientX;
|
|
699
|
+
window.lastMouseY = e.clientY;
|
|
700
|
+
};
|
|
701
|
+
|
|
702
|
+
document.addEventListener('mousemove', trackMouse, { passive: true });
|
|
703
|
+
|
|
704
|
+
const removeMouseListener = () => {
|
|
705
|
+
document.removeEventListener('mousemove', trackMouse);
|
|
706
|
+
};
|
|
707
|
+
|
|
708
|
+
removeMouseListener();
|
|
709
|
+
}, [params, handleMouseMove, handleMouseLeave]);
|
|
710
|
+
|
|
711
|
+
React.useEffect(() => {
|
|
712
|
+
setupGridObserver();
|
|
713
|
+
}, [setupGridObserver]);
|
|
714
|
+
|
|
548
715
|
const handleVisibleChange = React.useCallback(
|
|
549
716
|
async (visible) => {
|
|
550
|
-
|
|
717
|
+
if (!isMountedRef.current) return;
|
|
718
|
+
|
|
551
719
|
if (visible && onBeforeShow) {
|
|
552
720
|
try {
|
|
553
|
-
// Zavoláme onBeforeShow callback a předáme mu parametry řádku
|
|
554
721
|
const updatedMenuItems = await onBeforeShow(params, menuItems);
|
|
555
|
-
|
|
556
|
-
|
|
722
|
+
if (
|
|
723
|
+
updatedMenuItems &&
|
|
724
|
+
Array.isArray(updatedMenuItems) &&
|
|
725
|
+
isMountedRef.current
|
|
726
|
+
) {
|
|
557
727
|
setCurrentMenuItems(updatedMenuItems);
|
|
558
728
|
}
|
|
559
729
|
} catch (error) {
|
|
560
|
-
console.error
|
|
561
|
-
|
|
562
|
-
|
|
730
|
+
// Odstraněn console.error pro ESLint
|
|
731
|
+
if (isMountedRef.current) {
|
|
732
|
+
setCurrentMenuItems(menuItems);
|
|
733
|
+
}
|
|
563
734
|
}
|
|
564
735
|
}
|
|
565
|
-
|
|
736
|
+
|
|
737
|
+
if (isMountedRef.current) {
|
|
738
|
+
setIsDropdownVisible(visible);
|
|
739
|
+
}
|
|
566
740
|
},
|
|
567
|
-
[params
|
|
741
|
+
[params]
|
|
568
742
|
);
|
|
569
743
|
|
|
570
|
-
// Reset menu items při změně props
|
|
571
744
|
React.useEffect(() => {
|
|
572
|
-
|
|
573
|
-
|
|
745
|
+
if (isMountedRef.current) {
|
|
746
|
+
setCurrentMenuItems(menuItems);
|
|
747
|
+
}
|
|
748
|
+
}, []);
|
|
574
749
|
|
|
575
|
-
// Vytvoření menu komponentu
|
|
576
750
|
const menu = React.useMemo(
|
|
577
751
|
() => (
|
|
578
752
|
<Menu
|
|
579
753
|
onClick={(e) => {
|
|
580
754
|
if (onActionClick) {
|
|
581
|
-
|
|
755
|
+
const item = currentMenuItems.filter(f => f.key === e.key)[0];
|
|
756
|
+
onActionClick(e.key, params, item);
|
|
582
757
|
}
|
|
583
|
-
// Po kliknutí na položku zavřeme dropdown
|
|
584
758
|
setIsDropdownVisible(false);
|
|
585
759
|
}}
|
|
586
760
|
>
|
|
@@ -589,17 +763,14 @@ class ColumnBuilder {
|
|
|
589
763
|
return <Divider key={item.key} style={{ margin: '4px 0' }} />;
|
|
590
764
|
}
|
|
591
765
|
|
|
592
|
-
|
|
766
|
+
const { disable, disabled } = item;
|
|
593
767
|
let isDisabled = false;
|
|
594
|
-
if (typeof
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
isDisabled =
|
|
600
|
-
} else if (item.disabled !== undefined) {
|
|
601
|
-
// Zachováme zpětnou kompatibilitu s disabled vlastností
|
|
602
|
-
isDisabled = item.disabled;
|
|
768
|
+
if (typeof disable === 'function') {
|
|
769
|
+
isDisabled = disable(params);
|
|
770
|
+
} else if (typeof disable === 'boolean') {
|
|
771
|
+
isDisabled = disable;
|
|
772
|
+
} else if (disabled !== undefined) {
|
|
773
|
+
isDisabled = disabled;
|
|
603
774
|
}
|
|
604
775
|
|
|
605
776
|
return (
|
|
@@ -610,13 +781,22 @@ class ColumnBuilder {
|
|
|
610
781
|
})}
|
|
611
782
|
</Menu>
|
|
612
783
|
),
|
|
613
|
-
[currentMenuItems,
|
|
784
|
+
[currentMenuItems, params]
|
|
614
785
|
);
|
|
615
786
|
|
|
616
|
-
|
|
787
|
+
const containerStyle = {
|
|
788
|
+
width: '32px',
|
|
789
|
+
height: '32px',
|
|
790
|
+
display: 'flex',
|
|
791
|
+
alignItems: 'center',
|
|
792
|
+
justifyContent: 'center',
|
|
793
|
+
position: 'relative',
|
|
794
|
+
};
|
|
795
|
+
|
|
617
796
|
const buttonStyle = {
|
|
618
797
|
minWidth: 'auto',
|
|
619
798
|
width: '32px',
|
|
799
|
+
height: '32px',
|
|
620
800
|
padding: '0',
|
|
621
801
|
background: 'transparent',
|
|
622
802
|
border: 'none',
|
|
@@ -624,40 +804,60 @@ class ColumnBuilder {
|
|
|
624
804
|
display: 'flex',
|
|
625
805
|
alignItems: 'center',
|
|
626
806
|
justifyContent: 'center',
|
|
807
|
+
opacity: isRowHovered || isDropdownVisible ? 1 : 0,
|
|
808
|
+
visibility: isRowHovered || isDropdownVisible ? 'visible' : 'hidden',
|
|
809
|
+
transition: 'opacity 0.15s ease-in-out, visibility 0.15s ease-in-out',
|
|
810
|
+
pointerEvents: isRowHovered || isDropdownVisible ? 'auto' : 'none',
|
|
627
811
|
};
|
|
628
812
|
|
|
629
|
-
|
|
630
|
-
|
|
813
|
+
const handleDropdownClick = React.useCallback((e) => {
|
|
814
|
+
e.stopPropagation();
|
|
815
|
+
}, []);
|
|
816
|
+
|
|
817
|
+
const handleKeyDown = React.useCallback((e) => {
|
|
818
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
819
|
+
e.preventDefault();
|
|
820
|
+
setIsDropdownVisible(!isDropdownVisible);
|
|
821
|
+
}
|
|
822
|
+
}, [isDropdownVisible]);
|
|
631
823
|
|
|
632
824
|
return (
|
|
633
|
-
<
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
style={buttonStyle}
|
|
642
|
-
// Zastavíme propagaci události mouseLeave, aby nedošlo k zavření dropdown
|
|
643
|
-
onMouseEnter={(e) => {
|
|
644
|
-
e.stopPropagation();
|
|
645
|
-
}}
|
|
825
|
+
<div style={containerStyle}>
|
|
826
|
+
<Dropdown
|
|
827
|
+
overlayStyle={{ zIndex: 5000 }}
|
|
828
|
+
overlay={menu}
|
|
829
|
+
trigger={['click']}
|
|
830
|
+
visible={isDropdownVisible}
|
|
831
|
+
onVisibleChange={handleVisibleChange}
|
|
832
|
+
getPopupContainer={() => document.body}
|
|
646
833
|
>
|
|
647
|
-
<
|
|
648
|
-
|
|
649
|
-
|
|
834
|
+
<div
|
|
835
|
+
style={buttonStyle}
|
|
836
|
+
onClick={handleDropdownClick}
|
|
837
|
+
onKeyDown={handleKeyDown}
|
|
838
|
+
role="button"
|
|
839
|
+
tabIndex={0}
|
|
840
|
+
aria-label="Otevřít akční menu"
|
|
841
|
+
>
|
|
842
|
+
<ActionIcon />
|
|
843
|
+
</div>
|
|
844
|
+
</Dropdown>
|
|
845
|
+
</div>
|
|
650
846
|
);
|
|
651
847
|
};
|
|
652
848
|
|
|
653
849
|
this.#addPreparedColumn({
|
|
654
850
|
headerName: '',
|
|
655
851
|
pinned: 'right',
|
|
656
|
-
maxWidth:
|
|
852
|
+
maxWidth: 40,
|
|
853
|
+
minWidth: 40,
|
|
657
854
|
suppressSizeToFit: true,
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
855
|
+
suppressMenu: true,
|
|
856
|
+
sortable: false,
|
|
857
|
+
filter: false,
|
|
858
|
+
resizable: false,
|
|
859
|
+
cellRenderer: ActionDropdownRenderer,
|
|
860
|
+
cellClass: 'action-button-cell-observer',
|
|
661
861
|
...restProps,
|
|
662
862
|
});
|
|
663
863
|
|
|
@@ -694,4 +894,4 @@ class ColumnBuilder {
|
|
|
694
894
|
}
|
|
695
895
|
}
|
|
696
896
|
|
|
697
|
-
export default ColumnBuilder;
|
|
897
|
+
export default ColumnBuilder;
|
package/dist/ColumnBuilder.js
CHANGED
|
@@ -6,7 +6,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
6
6
|
var _ColumnBuilder_instances, _ColumnBuilder_addPreparedColumn, _ColumnBuilder_resolveEditable;
|
|
7
7
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
8
|
import * as React from 'react';
|
|
9
|
-
import { Menu, Dropdown,
|
|
9
|
+
import { Menu, Dropdown, Divider } from 'antd';
|
|
10
10
|
import { prepareCellStyle, prepareColDef, getValueByPath } from './utils';
|
|
11
11
|
import { currencySymbols } from './enums';
|
|
12
12
|
import { ActionIcon } from './Icons';
|
|
@@ -87,60 +87,6 @@ const useObjectCellRenderer = (params, editable, onEditClick) => {
|
|
|
87
87
|
handleEditClick,
|
|
88
88
|
};
|
|
89
89
|
};
|
|
90
|
-
// Vytvoříme React hook funkci pro row hover action renderer
|
|
91
|
-
const useRowHoverActionRenderer = (params) => {
|
|
92
|
-
const [isRowHovered, setIsRowHovered] = React.useState(false);
|
|
93
|
-
const rowRef = React.useRef(null);
|
|
94
|
-
React.useEffect(() => {
|
|
95
|
-
if (!params.node)
|
|
96
|
-
return undefined;
|
|
97
|
-
// Funkce pro kontrolu, zda je řádek v hover stavu
|
|
98
|
-
const checkRowHoverState = () => {
|
|
99
|
-
// Najdeme DOM element řádku pomocí rowIndex
|
|
100
|
-
const rowElement = document.querySelector(`.ag-row[row-index="${params.rowIndex}"]`);
|
|
101
|
-
if (rowElement) {
|
|
102
|
-
rowRef.current = rowElement;
|
|
103
|
-
// AG-Grid automaticky přidává třídu ag-row-hover k řádku při najetí myší
|
|
104
|
-
const isHovered = rowElement.classList.contains('ag-row-hover');
|
|
105
|
-
setIsRowHovered(isHovered);
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
// Vytvoříme MutationObserver pro sledování změn tříd na řádku
|
|
109
|
-
const observer = new MutationObserver((mutations) => {
|
|
110
|
-
mutations.forEach((mutation) => {
|
|
111
|
-
if (mutation.type === 'attributes' &&
|
|
112
|
-
mutation.attributeName === 'class') {
|
|
113
|
-
checkRowHoverState();
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
// Inicializujeme stav
|
|
118
|
-
checkRowHoverState();
|
|
119
|
-
// Přidáme observer k element řádku, pokud existuje
|
|
120
|
-
if (rowRef.current) {
|
|
121
|
-
observer.observe(rowRef.current, { attributes: true });
|
|
122
|
-
}
|
|
123
|
-
// Přidáme event listeners na grid container pro sledování pohybu myši
|
|
124
|
-
const gridContainer = document.querySelector('.ag-root-wrapper');
|
|
125
|
-
if (gridContainer) {
|
|
126
|
-
gridContainer.addEventListener('mouseover', checkRowHoverState);
|
|
127
|
-
gridContainer.addEventListener('mouseout', checkRowHoverState);
|
|
128
|
-
}
|
|
129
|
-
// Cleanup při odmontování komponenty
|
|
130
|
-
return () => {
|
|
131
|
-
if (rowRef.current) {
|
|
132
|
-
observer.disconnect();
|
|
133
|
-
}
|
|
134
|
-
if (gridContainer) {
|
|
135
|
-
gridContainer.removeEventListener('mouseover', checkRowHoverState);
|
|
136
|
-
gridContainer.removeEventListener('mouseout', checkRowHoverState);
|
|
137
|
-
}
|
|
138
|
-
};
|
|
139
|
-
}, [params.node, params.rowIndex]);
|
|
140
|
-
return {
|
|
141
|
-
isRowHovered,
|
|
142
|
-
};
|
|
143
|
-
};
|
|
144
90
|
class ColumnBuilder {
|
|
145
91
|
constructor(intl) {
|
|
146
92
|
_ColumnBuilder_instances.add(this);
|
|
@@ -229,21 +175,21 @@ class ColumnBuilder {
|
|
|
229
175
|
});
|
|
230
176
|
return this;
|
|
231
177
|
}
|
|
232
|
-
addLinkColumn({ onClick, linkStyle, hoverStyle, cellAlign = 'left', editable, overviewToggle = false,
|
|
233
|
-
...restProps }) {
|
|
178
|
+
addLinkColumn({ onClick, linkStyle, hoverStyle, cellAlign = 'left', editable, overviewToggle = false, ...restProps }) {
|
|
234
179
|
// Vytvořím komponentu pro cell renderer, která používá hook
|
|
235
180
|
const LinkCellRenderer = React.memo((params) => {
|
|
236
181
|
const { isHovered, handleMouseEnter, handleMouseLeave, handleClick, computedLinkStyle, computedHoverStyle, } = useLinkCellRenderer(params, onClick, linkStyle, hoverStyle, overviewToggle);
|
|
182
|
+
const handleKeyPress = React.useCallback((event) => {
|
|
183
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
184
|
+
handleClick(event);
|
|
185
|
+
}
|
|
186
|
+
}, [handleClick]);
|
|
237
187
|
return (_jsx("div", { className: "link-cell-container", style: {
|
|
238
188
|
width: '100%',
|
|
239
189
|
height: '100%',
|
|
240
190
|
display: 'flex',
|
|
241
191
|
alignItems: 'center',
|
|
242
|
-
}, children: _jsx("span", { onClick: handleClick, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, style: isHovered ? computedHoverStyle : computedLinkStyle, role: "button", tabIndex: 0,
|
|
243
|
-
if (event.key === 'Enter' || event.key === ' ') {
|
|
244
|
-
handleClick(event);
|
|
245
|
-
}
|
|
246
|
-
}, children: params.value }) }));
|
|
192
|
+
}, children: _jsx("span", { onClick: handleClick, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onKeyPress: handleKeyPress, style: isHovered ? computedHoverStyle : computedLinkStyle, role: "button", tabIndex: 0, children: params.value }) }));
|
|
247
193
|
});
|
|
248
194
|
// Používáme funkci, která vrátí React komponentu
|
|
249
195
|
const cellRenderer = (params) => {
|
|
@@ -253,7 +199,7 @@ class ColumnBuilder {
|
|
|
253
199
|
cellAlign,
|
|
254
200
|
cellRenderer,
|
|
255
201
|
editable: __classPrivateFieldGet(this, _ColumnBuilder_instances, "m", _ColumnBuilder_resolveEditable).call(this, editable),
|
|
256
|
-
overviewToggle,
|
|
202
|
+
overviewToggle,
|
|
257
203
|
...restProps,
|
|
258
204
|
});
|
|
259
205
|
return this;
|
|
@@ -292,7 +238,7 @@ class ColumnBuilder {
|
|
|
292
238
|
display: 'flex',
|
|
293
239
|
alignItems: 'center',
|
|
294
240
|
justifyContent: 'center',
|
|
295
|
-
}, onClick: handleEditClick, title: "Upravit", children: _jsx("span", { style: { fontSize: '16px' }, children: "\u22EE" }) }))] }));
|
|
241
|
+
}, onClick: handleEditClick, title: "Upravit", type: "button", children: _jsx("span", { style: { fontSize: '16px' }, children: "\u22EE" }) }))] }));
|
|
296
242
|
});
|
|
297
243
|
// Používáme funkci, která vrátí React komponentu
|
|
298
244
|
const cellRenderer = (params) => {
|
|
@@ -339,70 +285,261 @@ class ColumnBuilder {
|
|
|
339
285
|
});
|
|
340
286
|
return this;
|
|
341
287
|
}
|
|
342
|
-
|
|
343
|
-
...restProps } = {}) {
|
|
344
|
-
// Vytvořím React komponentu pro renderer s dropdown menu
|
|
288
|
+
// Řešení s izolovaným observer pro každý grid instance
|
|
289
|
+
addPinnedActionButton({ menuItems = [], onActionClick, onBeforeShow, ...restProps } = {}) {
|
|
345
290
|
const ActionDropdownRenderer = (params) => {
|
|
346
|
-
const
|
|
347
|
-
// Stav pro sledování, zda je dropdown otevřený
|
|
291
|
+
const [isRowHovered, setIsRowHovered] = React.useState(false);
|
|
348
292
|
const [isDropdownVisible, setIsDropdownVisible] = React.useState(false);
|
|
349
|
-
// Stav pro aktuální menu items
|
|
350
293
|
const [currentMenuItems, setCurrentMenuItems] = React.useState(menuItems);
|
|
351
|
-
|
|
294
|
+
const isMountedRef = React.useRef(true);
|
|
295
|
+
const rowIndexRef = React.useRef(null);
|
|
296
|
+
const observerRef = React.useRef(null);
|
|
297
|
+
const gridContainerRef = React.useRef(null);
|
|
298
|
+
const currentHoveredRowRef = React.useRef(null);
|
|
299
|
+
const mouseListenersSetupRef = React.useRef(false);
|
|
300
|
+
// Notifikace o změně hover stavu - definována před použitím
|
|
301
|
+
const notifyRowHoverChange = React.useCallback((rowIndex, isHovered) => {
|
|
302
|
+
if (!isMountedRef.current)
|
|
303
|
+
return;
|
|
304
|
+
if (!isHovered && rowIndexRef.current) {
|
|
305
|
+
setIsRowHovered(false);
|
|
306
|
+
}
|
|
307
|
+
if (isHovered && rowIndexRef.current === rowIndex) {
|
|
308
|
+
setIsRowHovered(true);
|
|
309
|
+
}
|
|
310
|
+
}, []);
|
|
311
|
+
// Mouse event handlers - nyní definovány po notifyRowHoverChange
|
|
312
|
+
const handleMouseMove = React.useCallback((event) => {
|
|
313
|
+
if (!isMountedRef.current)
|
|
314
|
+
return;
|
|
315
|
+
const { target } = event;
|
|
316
|
+
if (!target)
|
|
317
|
+
return;
|
|
318
|
+
const rowElement = target.closest('.ag-row');
|
|
319
|
+
if (rowElement) {
|
|
320
|
+
const rowIndex = rowElement.getAttribute('row-index') ||
|
|
321
|
+
rowElement.getAttribute('aria-rowindex') ||
|
|
322
|
+
rowElement.dataset.rowIndex ||
|
|
323
|
+
rowElement.getAttribute('data-ag-row-index');
|
|
324
|
+
if (rowIndex !== null) {
|
|
325
|
+
const normalizedRowIndex = rowIndex.toString();
|
|
326
|
+
if (normalizedRowIndex !== currentHoveredRowRef.current) {
|
|
327
|
+
if (currentHoveredRowRef.current !== null) {
|
|
328
|
+
notifyRowHoverChange(currentHoveredRowRef.current, false);
|
|
329
|
+
}
|
|
330
|
+
currentHoveredRowRef.current = normalizedRowIndex;
|
|
331
|
+
notifyRowHoverChange(normalizedRowIndex, true);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
else if (currentHoveredRowRef.current !== null) {
|
|
336
|
+
notifyRowHoverChange(currentHoveredRowRef.current, false);
|
|
337
|
+
currentHoveredRowRef.current = null;
|
|
338
|
+
}
|
|
339
|
+
}, [notifyRowHoverChange]);
|
|
340
|
+
const handleMouseLeave = React.useCallback((event) => {
|
|
341
|
+
if (!isMountedRef.current)
|
|
342
|
+
return;
|
|
343
|
+
const { relatedTarget } = event;
|
|
344
|
+
if (gridContainerRef.current &&
|
|
345
|
+
(!relatedTarget || !gridContainerRef.current.contains(relatedTarget))) {
|
|
346
|
+
if (currentHoveredRowRef.current !== null) {
|
|
347
|
+
notifyRowHoverChange(currentHoveredRowRef.current, false);
|
|
348
|
+
currentHoveredRowRef.current = null;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}, [notifyRowHoverChange]);
|
|
352
|
+
// Cleanup funkce - definována po handleMouseMove a handleMouseLeave
|
|
353
|
+
const cleanup = React.useCallback(() => {
|
|
354
|
+
if (observerRef.current) {
|
|
355
|
+
observerRef.current.disconnect();
|
|
356
|
+
observerRef.current = null;
|
|
357
|
+
}
|
|
358
|
+
if (gridContainerRef.current && mouseListenersSetupRef.current) {
|
|
359
|
+
gridContainerRef.current.removeEventListener('mousemove', handleMouseMove);
|
|
360
|
+
gridContainerRef.current.removeEventListener('mouseleave', handleMouseLeave);
|
|
361
|
+
mouseListenersSetupRef.current = false;
|
|
362
|
+
}
|
|
363
|
+
}, [handleMouseMove, handleMouseLeave]);
|
|
364
|
+
React.useEffect(() => {
|
|
365
|
+
return () => {
|
|
366
|
+
isMountedRef.current = false;
|
|
367
|
+
cleanup();
|
|
368
|
+
};
|
|
369
|
+
}, [cleanup]);
|
|
370
|
+
// Získáme row index z params
|
|
371
|
+
React.useEffect(() => {
|
|
372
|
+
const { node, rowIndex } = params;
|
|
373
|
+
if (node && node.rowIndex !== undefined) {
|
|
374
|
+
rowIndexRef.current = node.rowIndex.toString();
|
|
375
|
+
}
|
|
376
|
+
else if (rowIndex !== undefined) {
|
|
377
|
+
rowIndexRef.current = rowIndex.toString();
|
|
378
|
+
}
|
|
379
|
+
}, [params]);
|
|
380
|
+
// Nastavení observer pro tento konkrétní grid
|
|
381
|
+
const setupGridObserver = React.useCallback(() => {
|
|
382
|
+
const { api, eGridCell } = params;
|
|
383
|
+
if (!api || observerRef.current || !isMountedRef.current)
|
|
384
|
+
return;
|
|
385
|
+
const findThisGridContainer = () => {
|
|
386
|
+
if (eGridCell) {
|
|
387
|
+
let current = eGridCell;
|
|
388
|
+
while (current && current !== document.body) {
|
|
389
|
+
if (current.classList &&
|
|
390
|
+
(current.classList.contains('ag-root-wrapper') ||
|
|
391
|
+
current.classList.contains('ag-theme-alpine') ||
|
|
392
|
+
current.classList.contains('ag-theme-balham') ||
|
|
393
|
+
current.classList.contains('ag-theme-material') ||
|
|
394
|
+
current.classList.contains('ag-theme-fresh') ||
|
|
395
|
+
current.classList.contains('ag-theme-dark') ||
|
|
396
|
+
current.classList.contains('ag-theme-blue') ||
|
|
397
|
+
current.classList.contains('ag-theme-bootstrap'))) {
|
|
398
|
+
return current;
|
|
399
|
+
}
|
|
400
|
+
current = current.parentElement;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
return null;
|
|
404
|
+
};
|
|
405
|
+
const gridContainer = findThisGridContainer();
|
|
406
|
+
if (!gridContainer) {
|
|
407
|
+
setTimeout(setupGridObserver, 100);
|
|
408
|
+
return;
|
|
409
|
+
}
|
|
410
|
+
gridContainerRef.current = gridContainer;
|
|
411
|
+
if (!mouseListenersSetupRef.current) {
|
|
412
|
+
gridContainer.addEventListener('mousemove', handleMouseMove, {
|
|
413
|
+
passive: true,
|
|
414
|
+
});
|
|
415
|
+
gridContainer.addEventListener('mouseleave', handleMouseLeave, {
|
|
416
|
+
passive: true,
|
|
417
|
+
});
|
|
418
|
+
const handleMouseEnter = () => {
|
|
419
|
+
if (isMountedRef.current) {
|
|
420
|
+
currentHoveredRowRef.current = null;
|
|
421
|
+
setIsRowHovered(false);
|
|
422
|
+
}
|
|
423
|
+
};
|
|
424
|
+
gridContainer.addEventListener('mouseenter', handleMouseEnter, {
|
|
425
|
+
passive: true,
|
|
426
|
+
});
|
|
427
|
+
mouseListenersSetupRef.current = true;
|
|
428
|
+
}
|
|
429
|
+
observerRef.current = new MutationObserver((mutations) => {
|
|
430
|
+
if (!isMountedRef.current)
|
|
431
|
+
return;
|
|
432
|
+
let shouldRecalculate = false;
|
|
433
|
+
mutations.forEach((mutation) => {
|
|
434
|
+
if (mutation.type === 'childList') {
|
|
435
|
+
const addedRows = Array.from(mutation.addedNodes).some((node) => node.nodeType === Node.ELEMENT_NODE &&
|
|
436
|
+
(node.classList?.contains('ag-row') ||
|
|
437
|
+
node.querySelector?.('.ag-row')));
|
|
438
|
+
const removedRows = Array.from(mutation.removedNodes).some((node) => node.nodeType === Node.ELEMENT_NODE &&
|
|
439
|
+
(node.classList?.contains('ag-row') ||
|
|
440
|
+
node.querySelector?.('.ag-row')));
|
|
441
|
+
if (addedRows || removedRows) {
|
|
442
|
+
shouldRecalculate = true;
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
});
|
|
446
|
+
if (shouldRecalculate) {
|
|
447
|
+
currentHoveredRowRef.current = null;
|
|
448
|
+
setIsRowHovered(false);
|
|
449
|
+
setTimeout(() => {
|
|
450
|
+
if (isMountedRef.current && gridContainerRef.current) {
|
|
451
|
+
const rect = gridContainerRef.current.getBoundingClientRect();
|
|
452
|
+
const mouseEvent = new MouseEvent('mousemove', {
|
|
453
|
+
clientX: window.lastMouseX || rect.left + rect.width / 2,
|
|
454
|
+
clientY: window.lastMouseY || rect.top + rect.height / 2,
|
|
455
|
+
bubbles: true,
|
|
456
|
+
});
|
|
457
|
+
gridContainerRef.current.dispatchEvent(mouseEvent);
|
|
458
|
+
}
|
|
459
|
+
}, 100);
|
|
460
|
+
}
|
|
461
|
+
});
|
|
462
|
+
observerRef.current.observe(gridContainer, {
|
|
463
|
+
childList: true,
|
|
464
|
+
subtree: true,
|
|
465
|
+
attributes: false,
|
|
466
|
+
});
|
|
467
|
+
const trackMouse = (e) => {
|
|
468
|
+
window.lastMouseX = e.clientX;
|
|
469
|
+
window.lastMouseY = e.clientY;
|
|
470
|
+
};
|
|
471
|
+
document.addEventListener('mousemove', trackMouse, { passive: true });
|
|
472
|
+
const removeMouseListener = () => {
|
|
473
|
+
document.removeEventListener('mousemove', trackMouse);
|
|
474
|
+
};
|
|
475
|
+
removeMouseListener();
|
|
476
|
+
}, [params, handleMouseMove, handleMouseLeave]);
|
|
477
|
+
React.useEffect(() => {
|
|
478
|
+
setupGridObserver();
|
|
479
|
+
}, [setupGridObserver]);
|
|
352
480
|
const handleVisibleChange = React.useCallback(async (visible) => {
|
|
353
|
-
|
|
481
|
+
if (!isMountedRef.current)
|
|
482
|
+
return;
|
|
354
483
|
if (visible && onBeforeShow) {
|
|
355
484
|
try {
|
|
356
|
-
// Zavoláme onBeforeShow callback a předáme mu parametry řádku
|
|
357
485
|
const updatedMenuItems = await onBeforeShow(params, menuItems);
|
|
358
|
-
|
|
359
|
-
|
|
486
|
+
if (updatedMenuItems &&
|
|
487
|
+
Array.isArray(updatedMenuItems) &&
|
|
488
|
+
isMountedRef.current) {
|
|
360
489
|
setCurrentMenuItems(updatedMenuItems);
|
|
361
490
|
}
|
|
362
491
|
}
|
|
363
492
|
catch (error) {
|
|
364
|
-
console.error
|
|
365
|
-
|
|
366
|
-
|
|
493
|
+
// Odstraněn console.error pro ESLint
|
|
494
|
+
if (isMountedRef.current) {
|
|
495
|
+
setCurrentMenuItems(menuItems);
|
|
496
|
+
}
|
|
367
497
|
}
|
|
368
498
|
}
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
499
|
+
if (isMountedRef.current) {
|
|
500
|
+
setIsDropdownVisible(visible);
|
|
501
|
+
}
|
|
502
|
+
}, [params]);
|
|
372
503
|
React.useEffect(() => {
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
504
|
+
if (isMountedRef.current) {
|
|
505
|
+
setCurrentMenuItems(menuItems);
|
|
506
|
+
}
|
|
507
|
+
}, []);
|
|
376
508
|
const menu = React.useMemo(() => (_jsx(Menu, { onClick: (e) => {
|
|
377
509
|
if (onActionClick) {
|
|
378
|
-
|
|
510
|
+
const item = currentMenuItems.filter(f => f.key === e.key)[0];
|
|
511
|
+
onActionClick(e.key, params, item);
|
|
379
512
|
}
|
|
380
|
-
// Po kliknutí na položku zavřeme dropdown
|
|
381
513
|
setIsDropdownVisible(false);
|
|
382
514
|
}, children: currentMenuItems.map((item) => {
|
|
383
515
|
if (item.type === 'divider') {
|
|
384
516
|
return _jsx(Divider, { style: { margin: '4px 0' } }, item.key);
|
|
385
517
|
}
|
|
386
|
-
|
|
518
|
+
const { disable, disabled } = item;
|
|
387
519
|
let isDisabled = false;
|
|
388
|
-
if (typeof
|
|
389
|
-
|
|
390
|
-
isDisabled = item.disable(params);
|
|
520
|
+
if (typeof disable === 'function') {
|
|
521
|
+
isDisabled = disable(params);
|
|
391
522
|
}
|
|
392
|
-
else if (typeof
|
|
393
|
-
|
|
394
|
-
isDisabled = item.disable;
|
|
523
|
+
else if (typeof disable === 'boolean') {
|
|
524
|
+
isDisabled = disable;
|
|
395
525
|
}
|
|
396
|
-
else if (
|
|
397
|
-
|
|
398
|
-
isDisabled = item.disabled;
|
|
526
|
+
else if (disabled !== undefined) {
|
|
527
|
+
isDisabled = disabled;
|
|
399
528
|
}
|
|
400
529
|
return (_jsx(Menu.Item, { disabled: isDisabled, children: item.label }, item.key));
|
|
401
|
-
}) })), [currentMenuItems,
|
|
402
|
-
|
|
530
|
+
}) })), [currentMenuItems, params]);
|
|
531
|
+
const containerStyle = {
|
|
532
|
+
width: '32px',
|
|
533
|
+
height: '32px',
|
|
534
|
+
display: 'flex',
|
|
535
|
+
alignItems: 'center',
|
|
536
|
+
justifyContent: 'center',
|
|
537
|
+
position: 'relative',
|
|
538
|
+
};
|
|
403
539
|
const buttonStyle = {
|
|
404
540
|
minWidth: 'auto',
|
|
405
541
|
width: '32px',
|
|
542
|
+
height: '32px',
|
|
406
543
|
padding: '0',
|
|
407
544
|
background: 'transparent',
|
|
408
545
|
border: 'none',
|
|
@@ -410,24 +547,34 @@ class ColumnBuilder {
|
|
|
410
547
|
display: 'flex',
|
|
411
548
|
alignItems: 'center',
|
|
412
549
|
justifyContent: 'center',
|
|
550
|
+
opacity: isRowHovered || isDropdownVisible ? 1 : 0,
|
|
551
|
+
visibility: isRowHovered || isDropdownVisible ? 'visible' : 'hidden',
|
|
552
|
+
transition: 'opacity 0.15s ease-in-out, visibility 0.15s ease-in-out',
|
|
553
|
+
pointerEvents: isRowHovered || isDropdownVisible ? 'auto' : 'none',
|
|
413
554
|
};
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
555
|
+
const handleDropdownClick = React.useCallback((e) => {
|
|
556
|
+
e.stopPropagation();
|
|
557
|
+
}, []);
|
|
558
|
+
const handleKeyDown = React.useCallback((e) => {
|
|
559
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
560
|
+
e.preventDefault();
|
|
561
|
+
setIsDropdownVisible(!isDropdownVisible);
|
|
562
|
+
}
|
|
563
|
+
}, [isDropdownVisible]);
|
|
564
|
+
return (_jsx("div", { style: containerStyle, children: _jsx(Dropdown, { overlayStyle: { zIndex: 5000 }, overlay: menu, trigger: ['click'], visible: isDropdownVisible, onVisibleChange: handleVisibleChange, getPopupContainer: () => document.body, children: _jsx("div", { style: buttonStyle, onClick: handleDropdownClick, onKeyDown: handleKeyDown, role: "button", tabIndex: 0, "aria-label": "Otev\u0159\u00EDt ak\u010Dn\u00ED menu", children: _jsx(ActionIcon, {}) }) }) }));
|
|
422
565
|
};
|
|
423
566
|
__classPrivateFieldGet(this, _ColumnBuilder_instances, "m", _ColumnBuilder_addPreparedColumn).call(this, {
|
|
424
567
|
headerName: '',
|
|
425
568
|
pinned: 'right',
|
|
426
|
-
maxWidth:
|
|
569
|
+
maxWidth: 40,
|
|
570
|
+
minWidth: 40,
|
|
427
571
|
suppressSizeToFit: true,
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
572
|
+
suppressMenu: true,
|
|
573
|
+
sortable: false,
|
|
574
|
+
filter: false,
|
|
575
|
+
resizable: false,
|
|
576
|
+
cellRenderer: ActionDropdownRenderer,
|
|
577
|
+
cellClass: 'action-button-cell-observer',
|
|
431
578
|
...restProps,
|
|
432
579
|
});
|
|
433
580
|
return this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnBuilder.js","sourceRoot":"","sources":["../ColumnBuilder.jsx"],"names":[],"mappings":";;;;;;;AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,qDAAqD;AACrD,MAAM,mBAAmB,GAAG,CAC1B,MAAM,EACN,OAAO,EACP,SAAS,EACT,UAAU,EACV,cAAc,EACd,EAAE;IACF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExD,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC9C,YAAY,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC9C,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACnC,CAAC,KAAK,EAAE,EAAE;QACR,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,cAAc,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;gBACvB,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,EACD,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAClC,CAAC;IAEF,sDAAsD;IACtD,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CACpC,GAAG,EAAE,CAAC,CAAC;QACL,KAAK,EAAE,SAAS;QAChB,cAAc,EAAE,MAAM;QACtB,MAAM,EAAE,SAAS;KAClB,CAAC,EACF,EAAE,CACH,CAAC;IAEF,sDAAsD;IACtD,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CACrC,GAAG,EAAE,CAAC,CAAC;QACL,cAAc,EAAE,WAAW;KAC5B,CAAC,EACF,EAAE,CACH,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CACrC,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,gBAAgB;QACnB,GAAG,CAAC,OAAO,SAAS,KAAK,UAAU;YACjC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;YACnB,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;KACrB,CAAC,EACF,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,CAAC,CACtC,CAAC;IAEF,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CACtC,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,gBAAgB;QACnB,GAAG,iBAAiB;QACpB,GAAG,iBAAiB;QACpB,GAAG,CAAC,OAAO,UAAU,KAAK,UAAU;YAClC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;YACpB,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC;KACtB,CAAC,EACF,CAAC,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAC7E,CAAC;IAEF,OAAO;QACL,SAAS;QACT,gBAAgB;QAChB,gBAAgB;QAChB,WAAW;QACX,iBAAiB;QACjB,kBAAkB;KACnB,CAAC;AACJ,CAAC,CAAC;AAEF,uDAAuD;AACvD,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE;IAC9D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExD,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC9C,YAAY,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC9C,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CACvC,CAAC,KAAK,EAAE,EAAE;QACR,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EACD,CAAC,WAAW,EAAE,MAAM,CAAC,CACtB,CAAC;IAEF,OAAO;QACL,SAAS;QACT,gBAAgB;QAChB,gBAAgB;QAChB,eAAe;KAChB,CAAC;AACJ,CAAC,CAAC;AAEF,4DAA4D;AAC5D,MAAM,yBAAyB,GAAG,CAAC,MAAM,EAAE,EAAE;IAC3C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAElC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAEnC,kDAAkD;QAClD,MAAM,kBAAkB,GAAG,GAAG,EAAE;YAC9B,4CAA4C;YAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CACvC,sBAAsB,MAAM,CAAC,QAAQ,IAAI,CAC1C,CAAC;YACF,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC;gBAC5B,yEAAyE;gBACzE,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBAChE,eAAe,CAAC,SAAS,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC;QAEF,8DAA8D;QAC9D,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAAS,EAAE,EAAE;YAClD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC7B,IACE,QAAQ,CAAC,IAAI,KAAK,YAAY;oBAC9B,QAAQ,CAAC,aAAa,KAAK,OAAO,EAClC,CAAC;oBACD,kBAAkB,EAAE,CAAC;gBACvB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,kBAAkB,EAAE,CAAC;QAErB,mDAAmD;QACnD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,sEAAsE;QACtE,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QACjE,IAAI,aAAa,EAAE,CAAC;YAClB,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;YAChE,aAAa,CAAC,gBAAgB,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QACjE,CAAC;QAED,qCAAqC;QACrC,OAAO,GAAG,EAAE;YACV,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,CAAC;YACD,IAAI,aAAa,EAAE,CAAC;gBAClB,aAAa,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;gBACnE,aAAa,CAAC,mBAAmB,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;YACpE,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEnC,OAAO;QACL,YAAY;KACb,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,aAAa;IAKjB,YAAY,IAAI;;QACd,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,SAAS,CAAC,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE;QAChC,4CAA4C;QAC5C,MAAM,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC;QAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;QAE1C,mEAAmE;QACnE,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,EAAE;gBACnC,wBAAwB;gBACxB,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,iBAAiB,EAAE,CAAC;oBACtB,IAAI,OAAO,iBAAiB,KAAK,UAAU,EAAE,CAAC;wBAC5C,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;oBACxC,CAAC;yBAAM,CAAC;wBACN,SAAS,GAAG,iBAAiB,CAAC;oBAChC,CAAC;gBACH,CAAC;gBAED,8BAA8B;gBAC9B,MAAM,UAAU,GACd,MAAM,CAAC,IAAI,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBACzD,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC1C,2BAA2B;gBAC3B,OAAO,UAAU;oBACf,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE;oBACnD,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC;YACrC,CAAC,CAAC;YAEF,8CAA8C;YAC9C,uBAAA,IAAI,kEAAmB,MAAvB,IAAI,EAAoB,EAAE,GAAG,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,8DAA8D;YAC9D,uBAAA,IAAI,kEAAmB,MAAvB,IAAI,EAAoB,KAAK,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8DAA8D;IAC9D,oBAAoB,CAAC,EACnB,KAAK,GAAG,SAAS,EACjB,UAAU,GAAG,EAAE,EACf,KAAK,GAAG,GAAG,EACX,gBAAgB,EAChB,GAAG,SAAS,EACb,GAAG,EAAE;QACJ,MAAM,YAAY,GAAG,qBAAqB,CAAC;QAE3C,uBAAA,IAAI,kEAAmB,MAAvB,IAAI,EAAoB;YACtB,UAAU;YACV,KAAK;YACL,KAAK;YACL,YAAY;YACZ,iBAAiB,EAAE,IAAI;YACvB,kBAAkB,EAAE;gBAClB,gBAAgB,EACd,gBAAgB;oBAChB,CAAC,GAAG,EAAE;wBACJ,yBAAyB;oBAC3B,CAAC,CAAC;aACL;YACD,GAAG,SAAS;SACb,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB,CAAC,EAChB,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,SAAS,GAAG,OAAO,EACnB,QAAQ,EACR,GAAG,SAAS,EACb;QACC,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,EAAE;YAC9B,MAAM,aAAa,GACjB,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC/D,MAAM,MAAM,GAAG,eAAe,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC;YAE/D,4CAA4C;YAC5C,MAAM,KAAK,GACT,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzB,CAAC,CAAC,MAAM,CAAC;YAEb,MAAM,KAAK,GACT,OAAO,aAAa,KAAK,UAAU;gBACjC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC;gBACvB,CAAC,CAAC,aAAa,CAAC;YAEpB,OAAO,CACL,yBACG,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,CACrB,8BACE,eAAM,KAAK,EAAE,KAAK,YAAG,MAAM,GAAQ,OAAE,KAAK,IACzC,CACJ,CAAC,CAAC,CAAC,CACF,8BACG,KAAK,OAAE,eAAM,KAAK,EAAE,KAAK,YAAG,MAAM,GAAQ,IAC1C,CACJ,GACI,CACR,CAAC;QACJ,CAAC,CAAC;QAEF,uBAAA,IAAI,kEAAmB,MAAvB,IAAI,EAAoB;YACtB,SAAS;YACT,YAAY;YACZ,QAAQ,EAAE,uBAAA,IAAI,gEAAiB,MAArB,IAAI,EAAkB,QAAQ,CAAC;YACzC,GAAG,SAAS;SACb,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,EAAE,UAAU,GAAG,YAAY,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE;QACjE,uBAAA,IAAI,kEAAmB,MAAvB,IAAI,EAAoB;YACtB,YAAY,EAAE,UAAU;YACxB,QAAQ,EAAE,uBAAA,IAAI,gEAAiB,MAArB,IAAI,EAAkB,QAAQ,CAAC;YACzC,GAAG,SAAS;SACb,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,EACZ,OAAO,EACP,SAAS,EACT,UAAU,EACV,SAAS,GAAG,MAAM,EAClB,QAAQ,EACR,cAAc,GAAG,KAAK,EAAE,uCAAuC;IAC/D,GAAG,SAAS,EACb;QACC,4DAA4D;QAC5D,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7C,MAAM,EACJ,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,GACnB,GAAG,mBAAmB,CACrB,MAAM,EACN,OAAO,EACP,SAAS,EACT,UAAU,EACV,cAAc,CACf,CAAC;YAEF,OAAO,CACL,cACE,SAAS,EAAC,qBAAqB,EAC/B,KAAK,EAAE;oBACL,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,QAAQ;iBACrB,YAED,eACE,OAAO,EAAE,WAAW,EACpB,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,gBAAgB,EAC9B,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,EACzD,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,EACX,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;wBACpB,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;4BAC/C,WAAW,CAAC,KAAK,CAAC,CAAC;wBACrB,CAAC;oBACH,CAAC,YAEA,MAAM,CAAC,KAAK,GACR,GACH,CACP,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,iDAAiD;QACjD,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,EAAE;YAC9B,OAAO,KAAC,gBAAgB,OAAK,MAAM,GAAI,CAAC;QAC1C,CAAC,CAAC;QAEF,uBAAA,IAAI,kEAAmB,MAAvB,IAAI,EAAoB;YACtB,SAAS;YACT,YAAY;YACZ,QAAQ,EAAE,uBAAA,IAAI,gEAAiB,MAArB,IAAI,EAAkB,QAAQ,CAAC;YACzC,cAAc,EAAE,uBAAuB;YACvC,GAAG,SAAS;SACb,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0CAA0C;IAC1C,qBAAqB,CAAC,EACpB,KAAK,GAAG,gBAAgB,EACxB,UAAU,GAAG,EAAE,EACf,KAAK,GAAG,GAAG,EACX,SAAS,GAAG,MAAM,EAClB,SAAS,EACT,UAAU,EACV,QAAQ,GAAG,KAAK,EAChB,GAAG,IAAI,EACR,GAAG,EAAE;QACJ,OAAO,IAAI,CAAC,aAAa,CAAC;YACxB,KAAK;YACL,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,IAAI,UAAU;YACzE,KAAK;YACL,SAAS;YACT,SAAS;YACT,UAAU;YACV,QAAQ;YACR,cAAc,EAAE,IAAI;YACpB,GAAG,IAAI;SACR,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,EACd,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,GAAG,GAAG,EACtB,QAAQ,EACR,WAAW,EACX,GAAG,SAAS,EACb;QACC,4DAA4D;QAC5D,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/C,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,GACtE,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YAEvD,OAAO,CACL,eACE,SAAS,EAAC,uBAAuB,EACjC,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,QAAQ;iBACrB,EACD,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,gBAAgB,aAE9B,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAG,MAAM,CAAC,KAAK,GAAO,EAChD,SAAS,IAAI,QAAQ,IAAI,CACxB,iBACE,SAAS,EAAC,oBAAoB,EAC9B,KAAK,EAAE;4BACL,QAAQ,EAAE,UAAU;4BACpB,KAAK,EAAE,KAAK;4BACZ,UAAU,EAAE,aAAa;4BACzB,MAAM,EAAE,MAAM;4BACd,MAAM,EAAE,SAAS;4BACjB,OAAO,EAAE,KAAK;4BACd,OAAO,EAAE,MAAM;4BACf,UAAU,EAAE,QAAQ;4BACpB,cAAc,EAAE,QAAQ;yBACzB,EACD,OAAO,EAAE,eAAe,EACxB,KAAK,EAAC,SAAS,YAEf,eAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,uBAAU,GACpC,CACV,IACG,CACP,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,iDAAiD;QACjD,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,EAAE;YAC9B,OAAO,KAAC,kBAAkB,OAAK,MAAM,GAAI,CAAC;QAC5C,CAAC,CAAC;QAEF,uBAAA,IAAI,kEAAmB,MAAvB,IAAI,EAAoB;YACtB,cAAc;YACd,YAAY;YACZ,kBAAkB;YAClB,gBAAgB;YAChB,YAAY;YACZ,QAAQ,EAAE,uBAAA,IAAI,gEAAiB,MAArB,IAAI,EAAkB,QAAQ,CAAC;YACzC,GAAG,SAAS;SACb,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,EACZ,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,EAC1B,SAAS,EACT,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,GAAG,SAAS,EACb;QACC,MAAM,kBAAkB,GAAG;YACzB,SAAS;YACT,aAAa;YACb,IAAI;YACJ,KAAK;YACL,QAAQ;SACT,CAAC;QACF,uBAAA,IAAI,kEAAmB,MAAvB,IAAI,EAAoB;YACtB,YAAY,EAAE,IAAI;YAClB,kBAAkB;YAClB,GAAG,SAAS;SACb,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,EACf,YAAY,GAAG,IAAI,EACnB,WAAW,GAAG,IAAI,EAClB,SAAS,EACT,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,EAC1B,QAAQ,EACR,GAAG,SAAS,EACb;QACC,MAAM,qBAAqB,GAAG;YAC5B,SAAS;YACT,YAAY;YACZ,WAAW;YACX,aAAa;SACd,CAAC;QACF,uBAAA,IAAI,kEAAmB,MAAvB,IAAI,EAAoB;YACtB,eAAe,EAAE,IAAI;YACrB,qBAAqB;YACrB,QAAQ,EAAE,uBAAA,IAAI,gEAAiB,MAArB,IAAI,EAAkB,QAAQ,CAAC;YACzC,GAAG,SAAS;SACb,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qBAAqB,CAAC,EACpB,SAAS,GAAG,EAAE,EACd,aAAa,EACb,YAAY,EAAE,2CAA2C;IACzD,GAAG,SAAS,EACb,GAAG,EAAE;QACJ,yDAAyD;QACzD,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAAE,EAAE;YACxC,MAAM,EAAE,YAAY,EAAE,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;YAC3D,+CAA+C;YAC/C,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACxE,+BAA+B;YAC/B,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAE1E,0CAA0C;YAC1C,MAAM,mBAAmB,GAAG,KAAK,CAAC,WAAW,CAC3C,KAAK,EAAE,OAAO,EAAE,EAAE;gBAChB,4BAA4B;gBAC5B,IAAI,OAAO,IAAI,YAAY,EAAE,CAAC;oBAC5B,IAAI,CAAC;wBACH,8DAA8D;wBAC9D,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;wBAC/D,qDAAqD;wBACrD,IAAI,gBAAgB,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;4BACxD,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;wBACxC,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;wBACvD,+CAA+C;wBAC/C,mBAAmB,CAAC,SAAS,CAAC,CAAC;oBACjC,CAAC;gBACH,CAAC;gBACD,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC,EACD,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,CAClC,CAAC;YAEF,mCAAmC;YACnC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;gBACnB,mBAAmB,CAAC,SAAS,CAAC,CAAC;YACjC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;YAEhB,4BAA4B;YAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CACxB,GAAG,EAAE,CAAC,CACJ,KAAC,IAAI,IACH,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oBACb,IAAI,aAAa,EAAE,CAAC;wBAClB,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBAC/B,CAAC;oBACD,0CAA0C;oBAC1C,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC,YAEA,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;wBAC5B,OAAO,KAAC,OAAO,IAAgB,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAApC,IAAI,CAAC,GAAG,CAAgC,CAAC;oBAChE,CAAC;oBAED,gCAAgC;oBAChC,IAAI,UAAU,GAAG,KAAK,CAAC;oBACvB,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;wBACvC,yDAAyD;wBACzD,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACpC,CAAC;yBAAM,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;wBAC7C,4CAA4C;wBAC5C,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;oBAC5B,CAAC;yBAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;wBACvC,wDAAwD;wBACxD,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAC7B,CAAC;oBAED,OAAO,CACL,KAAC,IAAI,CAAC,IAAI,IAAgB,QAAQ,EAAE,UAAU,YAC3C,IAAI,CAAC,KAAK,IADG,IAAI,CAAC,GAAG,CAEZ,CACb,CAAC;gBACJ,CAAC,CAAC,GACG,CACR,EACD,CAAC,gBAAgB,EAAE,aAAa,EAAE,MAAM,CAAC,CAC1C,CAAC;YAEF,qBAAqB;YACrB,MAAM,WAAW,GAAG;gBAClB,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,GAAG;gBACZ,UAAU,EAAE,aAAa;gBACzB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE,QAAQ;gBACpB,cAAc,EAAE,QAAQ;aACzB,CAAC;YAEF,kFAAkF;YAClF,IAAI,CAAC,YAAY,IAAI,CAAC,iBAAiB;gBAAE,OAAO,IAAI,CAAC;YAErD,OAAO,CACL,KAAC,QAAQ,IACP,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAC9B,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,CAAC,OAAO,CAAC,EAClB,OAAO,EAAE,iBAAiB,EAC1B,eAAe,EAAE,mBAAmB,YAEpC,KAAC,MAAM,IACL,KAAK,EAAE,WAAW;oBAClB,0EAA0E;oBAC1E,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;wBAClB,CAAC,CAAC,eAAe,EAAE,CAAC;oBACtB,CAAC,YAED,KAAC,UAAU,KAAG,GACP,GACA,CACZ,CAAC;QACJ,CAAC,CAAC;QAEF,uBAAA,IAAI,kEAAmB,MAAvB,IAAI,EAAoB;YACtB,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE,EAAE;YACZ,iBAAiB,EAAE,IAAI;YACvB,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE;gBACvB,OAAO,KAAC,sBAAsB,OAAK,MAAM,GAAI,CAAC;YAChD,CAAC;YACD,GAAG,SAAS;SACb,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,EACd,OAAO,EACP,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,EAC1B,QAAQ,EACR,GAAG,SAAS,EACb;QACC,MAAM,oBAAoB,GAAG;YAC3B,OAAO;YACP,aAAa;SACd,CAAC;QACF,uBAAA,IAAI,kEAAmB,MAAvB,IAAI,EAAoB;YACtB,cAAc,EAAE,IAAI;YACpB,oBAAoB;YACpB,QAAQ,EAAE,uBAAA,IAAI,gEAAiB,MAArB,IAAI,EAAkB,QAAQ,CAAC;YACzC,GAAG,SAAS;SACb,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAQD,KAAK;QACH,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;uHAxfoB,KAAK;IACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACrD,CAAC,2EA8egB,QAAQ;IACvB,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAOH,eAAe,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"ColumnBuilder.js","sourceRoot":"","sources":["../ColumnBuilder.jsx"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,9 @@ import { OperationType, useSharedGrid } from '@bit.rhplus/shared-grid-form';
|
|
|
6
6
|
import { AgGridColumns } from './AgGridColumns';
|
|
7
7
|
const Grid = (props) => {
|
|
8
8
|
const gridRef = React.useRef(null);
|
|
9
|
-
const { appearance = 'ag-theme-alpine', columnDefs, height = '100%', defaultColDef, gridOptions, rowClassRules, editableDefault = true,
|
|
9
|
+
const { appearance = 'ag-theme-alpine', columnDefs, height = '100%', defaultColDef, gridOptions, rowClassRules, editableDefault = true,
|
|
10
|
+
// onRowDoubleClicked - odstraněna nepoužitá proměnná
|
|
11
|
+
} = props;
|
|
10
12
|
const { items, onGridReady, addItem, updateItem, deleteItem, pendingChanges = [], isCellEditable } = useSharedGrid();
|
|
11
13
|
const [gridApi, setGridApi] = useState(null);
|
|
12
14
|
// Handler pro připravení gridu
|
|
@@ -23,7 +25,7 @@ const Grid = (props) => {
|
|
|
23
25
|
const changes = { [colDef.field]: newValue };
|
|
24
26
|
updateItem(data.id, changes);
|
|
25
27
|
}, [updateItem]);
|
|
26
|
-
// Handler pro dvojklik na buňku
|
|
28
|
+
// Handler pro dvojklik na buňku - komentovaný kód pro budoucí použití
|
|
27
29
|
// const handleCellDoubleClicked = useCallback((params) => {
|
|
28
30
|
// const { colDef } = params;
|
|
29
31
|
// // Pokud je buňka needitovatelná, vyvoláme událost onRowDoubleClicked
|
|
@@ -80,20 +82,23 @@ const Grid = (props) => {
|
|
|
80
82
|
// Vlastní CSS třídy pro řádky s čekajícími změnami
|
|
81
83
|
const defaultRowClassRules = {
|
|
82
84
|
'row-pending-add': (params) => {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
+
const { data } = params;
|
|
86
|
+
return pendingChanges[data.id] &&
|
|
87
|
+
pendingChanges[data.id].operation === OperationType.ADD;
|
|
85
88
|
},
|
|
86
89
|
'row-pending-update': (params) => {
|
|
87
|
-
|
|
88
|
-
|
|
90
|
+
const { data } = params;
|
|
91
|
+
return pendingChanges[data.id] &&
|
|
92
|
+
pendingChanges[data.id].operation === OperationType.UPDATE;
|
|
89
93
|
},
|
|
90
94
|
'row-pending-delete': (params) => {
|
|
91
|
-
|
|
92
|
-
|
|
95
|
+
const { data } = params;
|
|
96
|
+
return pendingChanges[data.id] &&
|
|
97
|
+
pendingChanges[data.id].operation === OperationType.DELETE;
|
|
93
98
|
}
|
|
94
99
|
};
|
|
95
|
-
// Kombinované rowClassRules
|
|
96
|
-
const combinedRowClassRules = { ...defaultRowClassRules, ...rowClassRules };
|
|
100
|
+
// Kombinované rowClassRules - odstraněna nepoužitá proměnná
|
|
101
|
+
// const combinedRowClassRules = { ...defaultRowClassRules, ...rowClassRules };
|
|
97
102
|
// Exportovat metody pro přidání/odstranění řádků
|
|
98
103
|
useEffect(() => {
|
|
99
104
|
if (gridApi) {
|
|
@@ -108,11 +113,10 @@ const Grid = (props) => {
|
|
|
108
113
|
resizable: true,
|
|
109
114
|
...defaultColDef,
|
|
110
115
|
}, isRowSelectable: (params) => {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
getRowId: (params) => params.data.id, ...gridOptions, context: {
|
|
116
|
+
const { data } = params;
|
|
117
|
+
return !pendingChanges[data.id] ||
|
|
118
|
+
pendingChanges[data.id].operation !== OperationType.DELETE;
|
|
119
|
+
}, isEditable: isCellEditable, onGridReady: handleGridReady, onCellValueChanged: handleCellValueChanged, rowClassRules: { ...defaultRowClassRules, ...rowClassRules }, getRowId: (params) => params.data.id, ...gridOptions, context: {
|
|
116
120
|
componentParent: this,
|
|
117
121
|
}, ...props, ref: gridRef, columnDefs: AgGridColumns(columnDefs, props) }) }));
|
|
118
122
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.jsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE;IACrB,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,EACJ,UAAU,GAAG,iBAAiB,EAC9B,UAAU,EACV,MAAM,GAAG,MAAM,EACf,aAAa,EACb,WAAW,EACX,aAAa,EACb,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.jsx"],"names":[],"mappings":"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"}
|
package/index.jsx
CHANGED
|
@@ -14,7 +14,7 @@ const Grid = (props) => {
|
|
|
14
14
|
gridOptions,
|
|
15
15
|
rowClassRules,
|
|
16
16
|
editableDefault = true,
|
|
17
|
-
onRowDoubleClicked
|
|
17
|
+
// onRowDoubleClicked - odstraněna nepoužitá proměnná
|
|
18
18
|
} = props;
|
|
19
19
|
|
|
20
20
|
const {
|
|
@@ -45,7 +45,7 @@ const Grid = (props) => {
|
|
|
45
45
|
updateItem(data.id, changes);
|
|
46
46
|
}, [updateItem]);
|
|
47
47
|
|
|
48
|
-
// Handler pro dvojklik na buňku
|
|
48
|
+
// Handler pro dvojklik na buňku - komentovaný kód pro budoucí použití
|
|
49
49
|
// const handleCellDoubleClicked = useCallback((params) => {
|
|
50
50
|
// const { colDef } = params;
|
|
51
51
|
|
|
@@ -112,21 +112,24 @@ const Grid = (props) => {
|
|
|
112
112
|
// Vlastní CSS třídy pro řádky s čekajícími změnami
|
|
113
113
|
const defaultRowClassRules = {
|
|
114
114
|
'row-pending-add': (params) => {
|
|
115
|
-
|
|
116
|
-
|
|
115
|
+
const { data } = params;
|
|
116
|
+
return pendingChanges[data.id] &&
|
|
117
|
+
pendingChanges[data.id].operation === OperationType.ADD;
|
|
117
118
|
},
|
|
118
119
|
'row-pending-update': (params) => {
|
|
119
|
-
|
|
120
|
-
|
|
120
|
+
const { data } = params;
|
|
121
|
+
return pendingChanges[data.id] &&
|
|
122
|
+
pendingChanges[data.id].operation === OperationType.UPDATE;
|
|
121
123
|
},
|
|
122
124
|
'row-pending-delete': (params) => {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
+
const { data } = params;
|
|
126
|
+
return pendingChanges[data.id] &&
|
|
127
|
+
pendingChanges[data.id].operation === OperationType.DELETE;
|
|
125
128
|
}
|
|
126
129
|
};
|
|
127
130
|
|
|
128
|
-
// Kombinované rowClassRules
|
|
129
|
-
const combinedRowClassRules = { ...defaultRowClassRules, ...rowClassRules };
|
|
131
|
+
// Kombinované rowClassRules - odstraněna nepoužitá proměnná
|
|
132
|
+
// const combinedRowClassRules = { ...defaultRowClassRules, ...rowClassRules };
|
|
130
133
|
|
|
131
134
|
// Exportovat metody pro přidání/odstranění řádků
|
|
132
135
|
useEffect(() => {
|
|
@@ -138,7 +141,6 @@ const Grid = (props) => {
|
|
|
138
141
|
}, [gridApi, handleAddRow, handleDeleteRow]);
|
|
139
142
|
|
|
140
143
|
return (
|
|
141
|
-
|
|
142
144
|
<div className={classnames(appearance)} style={{ height }}>
|
|
143
145
|
<AgGrid
|
|
144
146
|
rowData={items}
|
|
@@ -149,13 +151,14 @@ const Grid = (props) => {
|
|
|
149
151
|
...defaultColDef,
|
|
150
152
|
}}
|
|
151
153
|
isRowSelectable={(params) => {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
+
const { data } = params;
|
|
155
|
+
return !pendingChanges[data.id] ||
|
|
156
|
+
pendingChanges[data.id].operation !== OperationType.DELETE;
|
|
154
157
|
}}
|
|
155
158
|
isEditable={isCellEditable}
|
|
156
159
|
onGridReady={handleGridReady}
|
|
157
160
|
onCellValueChanged={handleCellValueChanged}
|
|
158
|
-
|
|
161
|
+
rowClassRules={{ ...defaultRowClassRules, ...rowClassRules }}
|
|
159
162
|
getRowId={(params) => params.data.id}
|
|
160
163
|
{...gridOptions}
|
|
161
164
|
context={{
|
|
@@ -172,4 +175,4 @@ const Grid = (props) => {
|
|
|
172
175
|
export default Grid;
|
|
173
176
|
export * from './enums';
|
|
174
177
|
export { default as ColumnBuilder } from './ColumnBuilder';
|
|
175
|
-
export { default as ContextBuilder } from './ContextBuilder';
|
|
178
|
+
export { default as ContextBuilder } from './ContextBuilder';
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bit.rhplus/ui.grid",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.24",
|
|
4
4
|
"homepage": "https://bit.cloud/remote-scope/ui/grid",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "remote-scope",
|
|
8
8
|
"name": "ui/grid",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.24"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"antd": "^5.20.6",
|
|
File without changes
|