@bit.rhplus/ag-grid 0.0.81 → 0.0.83

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.
@@ -1,148 +1,148 @@
1
- /* eslint-disable */
2
- import * as React from 'react';
3
- import { createMemoComparison } from '@bit.rhplus/react-memo';
4
-
5
- // Helper function moved outside component
6
- function getValueByPath(obj, path) {
7
- if (!obj || !path) return null;
8
- return path.split('.').reduce((o, k) => (o && o[k] !== undefined) ? o[k] : null, obj);
9
- }
10
-
11
- function StateRenderer(props) {
12
- const { data, value, colDef: { stateRendererParams = {} } = {} } = props;
13
-
14
-
15
- if (!stateRendererParams) return null;
16
-
17
- const {
18
- visibleGetter = () => true,
19
- cellAlign = 'center',
20
- bgColor, // Barva pozadí nebo funkce vracející barvu
21
- color, // Barva textu nebo funkce vracející barvu (nový název)
22
- textColor, // Barva textu (starý název - zpětná kompatibilita)
23
- bgColorField, // Název pole obsahujícího barvu pozadí
24
- colorField, // Název pole obsahujícího barvu textu (nový název)
25
- textColorField, // Název pole obsahujícího barvu textu (starý název - zpětná kompatibilita)
26
- displayField, // Pole pro zobrazení textu
27
- minWidth = 80, // Minimální šířka kruhového pozadí
28
- fontSize = 12, // Velikost fontu
29
- showOnGroup = false, // Zda zobrazit na skupinových řádcích
30
- } = stateRendererParams;
31
-
32
- // Použít nový název s fallbackem na starý pro zpětnou kompatibilitu
33
- const finalColor = color || textColor || 'white';
34
- const finalColorField = colorField || textColorField;
35
-
36
- const visibleResult = React.useMemo(() =>
37
- visibleGetter ? visibleGetter(data) : true,
38
- [visibleGetter, data]
39
- );
40
-
41
- const computedBgColor = React.useMemo(() => {
42
- // Priorita: bgColorField (hodnota z dat) -> bgColor (funkce nebo string)
43
- if (bgColorField && data) {
44
- const fieldValue = getValueByPath(data, bgColorField);
45
- if (fieldValue) return fieldValue;
46
- }
47
-
48
- if (!bgColor) return '#666'; // default barva
49
-
50
- // Pokud je bgColor funkce, zavolej ji s daty
51
- if (typeof bgColor === 'function') {
52
- return bgColor({ data, value, props });
53
- }
54
-
55
- // Pokud je bgColor string/hodnota
56
- return bgColor;
57
- }, [bgColor, bgColorField, data, value, props]);
58
-
59
- const computedTextColor = React.useMemo(() => {
60
- // Priorita: colorField/textColorField (hodnota z dat) -> color/textColor (funkce nebo string)
61
- if (finalColorField && data) {
62
- const fieldValue = getValueByPath(data, finalColorField);
63
- if (fieldValue) return fieldValue;
64
- }
65
-
66
- if (!finalColor) return 'white'; // default barva
67
-
68
- // Pokud je finalColor funkce, zavolej ji s daty
69
- if (typeof finalColor === 'function') {
70
- return finalColor({ data, value, props });
71
- }
72
-
73
- // Pokud je finalColor string/hodnota
74
- return finalColor;
75
- }, [finalColor, finalColorField, data, value, props]);
76
-
77
- const displayText = React.useMemo(() => {
78
- if (displayField) {
79
- // Pokud je displayField funkce
80
- if (typeof displayField === 'function') {
81
- return displayField({ data, value, props });
82
- }
83
-
84
- // Pokud je displayField string (název pole)
85
- if (typeof displayField === 'string') {
86
- return data?.[displayField] || value;
87
- }
88
- }
89
-
90
- // Fallback na value
91
- return value || '';
92
- }, [displayField, data, value, props]);
93
-
94
- const showCondition = React.useMemo(() => {
95
- const newItem = (data && data._rh_plus_ag_grid_new_item) || false;
96
- return !newItem && (showOnGroup || !!data) && visibleResult;
97
- }, [data, showOnGroup, visibleResult]);
98
-
99
- if (!showCondition) return null;
100
-
101
- // Pokud nemáme text k zobrazení, nevrací nic
102
- if (!displayText) return null;
103
-
104
- const containerStyle = React.useMemo(() => ({
105
- width: '100%',
106
- display: 'flex',
107
- justifyContent: cellAlign === 'center' ? 'center' : cellAlign === 'right' ? 'flex-end' : 'flex-start',
108
- alignItems: 'center',
109
- height: '100%',
110
- }), [cellAlign]);
111
-
112
- const badgeStyle = React.useMemo(() => ({
113
- backgroundColor: computedBgColor,
114
- color: computedTextColor,
115
- borderRadius: '20px',
116
- padding: '2px 8px',
117
- minWidth: `${minWidth}px`,
118
- fontSize: `${fontSize}px`,
119
- fontWeight: '500',
120
- textAlign: 'center',
121
- display: 'inline-block',
122
- whiteSpace: 'nowrap',
123
- overflow: 'hidden',
124
- textOverflow: 'ellipsis',
125
- boxShadow: '0 1px 3px rgba(0, 0, 0, 0.1)',
126
- lineHeight: '1.2',
127
- height: 'auto',
128
- }), [computedBgColor, computedTextColor, minWidth, fontSize]);
129
-
130
- return (
131
- <div style={containerStyle}>
132
- <span style={badgeStyle}>
133
- {displayText}
134
- </span>
135
- </div>
136
- );
137
- }
138
-
139
- // React.memo optimalizace pro AG-Grid renderer
140
- // ✅ PERFORMANCE FIX: colDef NESMÍ být v kritických props!
141
- const arePropsEqual = createMemoComparison(
142
- ['value', 'data'],
143
- ['colDef'],
144
- false,
145
- 'StateRenderer'
146
- );
147
-
148
- export default React.memo(StateRenderer, arePropsEqual);
1
+ /* eslint-disable */
2
+ import * as React from 'react';
3
+ import { createMemoComparison } from '@bit.rhplus/react-memo';
4
+
5
+ // Helper function moved outside component
6
+ function getValueByPath(obj, path) {
7
+ if (!obj || !path) return null;
8
+ return path.split('.').reduce((o, k) => (o && o[k] !== undefined) ? o[k] : null, obj);
9
+ }
10
+
11
+ function StateRenderer(props) {
12
+ const { data, value, colDef: { stateRendererParams = {} } = {} } = props;
13
+
14
+
15
+ if (!stateRendererParams) return null;
16
+
17
+ const {
18
+ visibleGetter = () => true,
19
+ cellAlign = 'center',
20
+ bgColor, // Barva pozadí nebo funkce vracející barvu
21
+ color, // Barva textu nebo funkce vracející barvu (nový název)
22
+ textColor, // Barva textu (starý název - zpětná kompatibilita)
23
+ bgColorField, // Název pole obsahujícího barvu pozadí
24
+ colorField, // Název pole obsahujícího barvu textu (nový název)
25
+ textColorField, // Název pole obsahujícího barvu textu (starý název - zpětná kompatibilita)
26
+ displayField, // Pole pro zobrazení textu
27
+ minWidth = 80, // Minimální šířka kruhového pozadí
28
+ fontSize = 12, // Velikost fontu
29
+ showOnGroup = false, // Zda zobrazit na skupinových řádcích
30
+ } = stateRendererParams;
31
+
32
+ // Použít nový název s fallbackem na starý pro zpětnou kompatibilitu
33
+ const finalColor = color || textColor || 'white';
34
+ const finalColorField = colorField || textColorField;
35
+
36
+ const visibleResult = React.useMemo(() =>
37
+ visibleGetter ? visibleGetter(data) : true,
38
+ [visibleGetter, data]
39
+ );
40
+
41
+ const computedBgColor = React.useMemo(() => {
42
+ // Priorita: bgColorField (hodnota z dat) -> bgColor (funkce nebo string)
43
+ if (bgColorField && data) {
44
+ const fieldValue = getValueByPath(data, bgColorField);
45
+ if (fieldValue) return fieldValue;
46
+ }
47
+
48
+ if (!bgColor) return '#666'; // default barva
49
+
50
+ // Pokud je bgColor funkce, zavolej ji s daty
51
+ if (typeof bgColor === 'function') {
52
+ return bgColor({ data, value, props });
53
+ }
54
+
55
+ // Pokud je bgColor string/hodnota
56
+ return bgColor;
57
+ }, [bgColor, bgColorField, data, value, props]);
58
+
59
+ const computedTextColor = React.useMemo(() => {
60
+ // Priorita: colorField/textColorField (hodnota z dat) -> color/textColor (funkce nebo string)
61
+ if (finalColorField && data) {
62
+ const fieldValue = getValueByPath(data, finalColorField);
63
+ if (fieldValue) return fieldValue;
64
+ }
65
+
66
+ if (!finalColor) return 'white'; // default barva
67
+
68
+ // Pokud je finalColor funkce, zavolej ji s daty
69
+ if (typeof finalColor === 'function') {
70
+ return finalColor({ data, value, props });
71
+ }
72
+
73
+ // Pokud je finalColor string/hodnota
74
+ return finalColor;
75
+ }, [finalColor, finalColorField, data, value, props]);
76
+
77
+ const displayText = React.useMemo(() => {
78
+ if (displayField) {
79
+ // Pokud je displayField funkce
80
+ if (typeof displayField === 'function') {
81
+ return displayField({ data, value, props });
82
+ }
83
+
84
+ // Pokud je displayField string (název pole)
85
+ if (typeof displayField === 'string') {
86
+ return data?.[displayField] || value;
87
+ }
88
+ }
89
+
90
+ // Fallback na value
91
+ return value || '';
92
+ }, [displayField, data, value, props]);
93
+
94
+ const showCondition = React.useMemo(() => {
95
+ const newItem = (data && data._rh_plus_ag_grid_new_item) || false;
96
+ return !newItem && (showOnGroup || !!data) && visibleResult;
97
+ }, [data, showOnGroup, visibleResult]);
98
+
99
+ if (!showCondition) return null;
100
+
101
+ // Pokud nemáme text k zobrazení, nevrací nic
102
+ if (!displayText) return null;
103
+
104
+ const containerStyle = React.useMemo(() => ({
105
+ width: '100%',
106
+ display: 'flex',
107
+ justifyContent: cellAlign === 'center' ? 'center' : cellAlign === 'right' ? 'flex-end' : 'flex-start',
108
+ alignItems: 'center',
109
+ height: '100%',
110
+ }), [cellAlign]);
111
+
112
+ const badgeStyle = React.useMemo(() => ({
113
+ backgroundColor: computedBgColor,
114
+ color: computedTextColor,
115
+ borderRadius: '20px',
116
+ padding: '2px 8px',
117
+ minWidth: `${minWidth}px`,
118
+ fontSize: `${fontSize}px`,
119
+ fontWeight: '500',
120
+ textAlign: 'center',
121
+ display: 'inline-block',
122
+ whiteSpace: 'nowrap',
123
+ overflow: 'hidden',
124
+ textOverflow: 'ellipsis',
125
+ boxShadow: '0 1px 3px rgba(0, 0, 0, 0.1)',
126
+ lineHeight: '1.2',
127
+ height: 'auto',
128
+ }), [computedBgColor, computedTextColor, minWidth, fontSize]);
129
+
130
+ return (
131
+ <div style={containerStyle}>
132
+ <span style={badgeStyle}>
133
+ {displayText}
134
+ </span>
135
+ </div>
136
+ );
137
+ }
138
+
139
+ // React.memo optimalizace pro AG-Grid renderer
140
+ // ✅ PERFORMANCE FIX: colDef NESMÍ být v kritických props!
141
+ const arePropsEqual = createMemoComparison(
142
+ ['value', 'data'],
143
+ ['colDef'],
144
+ false,
145
+ 'StateRenderer'
146
+ );
147
+
148
+ export default React.memo(StateRenderer, arePropsEqual);
@@ -0,0 +1 @@
1
+ export {default as SelectCellRenderer} from './SelectCellRenderer';
@@ -8,41 +8,41 @@ import 'dayjs/locale/cs';
8
8
  import styled from 'styled-components';
9
9
  import Holidays from 'date-holidays';
10
10
  dayjs.locale('cs');
11
- const CalendarContainer = styled.div `
12
- display: flex;
13
- gap: 8px;
14
- margin-bottom: 12px;
15
- width: 900px;
16
- justify-content: space-between;
17
-
18
- .ant-picker-calendar {
19
- max-width: 260px;
20
- flex: 1;
21
- }
22
-
23
- .ant-picker-calendar-header {
24
- padding: 8px 12px;
25
- }
26
-
27
- .ant-picker-cell-selected .ant-picker-cell-inner {
28
- background: transparent !important;
29
- color: inherit !important;
30
- font-weight: normal !important;
31
- }
32
-
33
- .ant-picker-cell-disabled {
34
- pointer-events: none;
35
- }
36
-
37
- .ant-picker-cell-disabled .ant-picker-cell-inner {
38
- color: rgba(0, 0, 0, 0.25) !important;
39
- background: transparent !important;
40
- }
41
-
42
- .ant-picker-cell:not(.ant-picker-cell-in-view) .ant-picker-cell-inner {
43
- color: rgba(0, 0, 0, 0.25) !important;
44
- background: transparent !important;
45
- }
11
+ const CalendarContainer = styled.div `
12
+ display: flex;
13
+ gap: 8px;
14
+ margin-bottom: 12px;
15
+ width: 900px;
16
+ justify-content: space-between;
17
+
18
+ .ant-picker-calendar {
19
+ max-width: 260px;
20
+ flex: 1;
21
+ }
22
+
23
+ .ant-picker-calendar-header {
24
+ padding: 8px 12px;
25
+ }
26
+
27
+ .ant-picker-cell-selected .ant-picker-cell-inner {
28
+ background: transparent !important;
29
+ color: inherit !important;
30
+ font-weight: normal !important;
31
+ }
32
+
33
+ .ant-picker-cell-disabled {
34
+ pointer-events: none;
35
+ }
36
+
37
+ .ant-picker-cell-disabled .ant-picker-cell-inner {
38
+ color: rgba(0, 0, 0, 0.25) !important;
39
+ background: transparent !important;
40
+ }
41
+
42
+ .ant-picker-cell:not(.ant-picker-cell-in-view) .ant-picker-cell-inner {
43
+ color: rgba(0, 0, 0, 0.25) !important;
44
+ background: transparent !important;
45
+ }
46
46
  `;
47
47
  const BulkEditDatePicker = ({ value, onChange, onSubmit, onCancel, loading, format = 'DD.MM.YYYY', showTime = false, }) => {
48
48
  const today = dayjs();
@@ -0,0 +1,9 @@
1
+ export default DatePickerEditor;
2
+ /**
3
+ * DatePickerEditor - AG Grid cell editor s Ant Design DatePicker
4
+ * Automaticky se otevře při vstupu do editačního módu
5
+ * Podporuje formátování data a validaci
6
+ * Správně ukládá hodnotu při zavření pickeru nebo přechodu na jinou buňku
7
+ */
8
+ declare const DatePickerEditor: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
9
+ import React from 'react';
@@ -0,0 +1,55 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /* eslint-disable */
3
+ import React, { useState, useEffect } from 'react';
4
+ import { default as DatePicker } from 'antd/es/date-picker';
5
+ import { useGridCellEditor } from 'ag-grid-react';
6
+ import dayjs from 'dayjs';
7
+ /**
8
+ * DatePickerEditor - AG Grid cell editor s Ant Design DatePicker
9
+ * Automaticky se otevře při vstupu do editačního módu
10
+ * Podporuje formátování data a validaci
11
+ * Správně ukládá hodnotu při zavření pickeru nebo přechodu na jinou buňku
12
+ */
13
+ const DatePickerEditor = React.forwardRef(({ value, initialValue, onValueChange, stopEditing, format = 'DD.MM.YYYY' }, ref) => {
14
+ const [dateValue, setDateValue] = useState(value ? dayjs(value) : null);
15
+ const [open, setOpen] = useState(false);
16
+ // Expose getValue method to AG Grid - nutné pro správné uložení hodnoty
17
+ React.useImperativeHandle(ref, () => ({
18
+ getValue: () => {
19
+ return dateValue ? dateValue.toISOString() : null;
20
+ }
21
+ }));
22
+ // AG-Grid callback - zrušit editaci pokud se hodnota nezměnila
23
+ useGridCellEditor({
24
+ isCancelAfterEnd: () => {
25
+ return !dateValue || (initialValue && dateValue.isSame(dayjs(initialValue)));
26
+ }
27
+ });
28
+ // Auto-open picker při mount
29
+ useEffect(() => {
30
+ setOpen(true);
31
+ }, []);
32
+ const handleChange = (newDate) => {
33
+ setDateValue(newDate);
34
+ if (onValueChange) {
35
+ onValueChange(newDate ? newDate.toISOString() : null);
36
+ }
37
+ };
38
+ const handleOk = () => {
39
+ stopEditing();
40
+ };
41
+ const handleOpenChange = (newOpen) => {
42
+ setOpen(newOpen);
43
+ // Když se picker zavře (uživatel klikl mimo), ukončíme editaci
44
+ if (!newOpen) {
45
+ // Malé zpoždění aby se hodnota stihla uložit
46
+ setTimeout(() => {
47
+ stopEditing();
48
+ }, 0);
49
+ }
50
+ };
51
+ return (_jsx(DatePicker, { value: dateValue, onChange: handleChange, onOk: handleOk, format: format, style: { width: '100%' }, open: open, onOpenChange: handleOpenChange, autoFocus: true }));
52
+ });
53
+ DatePickerEditor.displayName = 'DatePickerEditor';
54
+ export default DatePickerEditor;
55
+ //# sourceMappingURL=DatePickerEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePickerEditor.js","sourceRoot":"","sources":["../../Editors/DatePickerEditor.jsx"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,YAAY,EAAE,EAAE,GAAG,EAAE,EAAE;IAC5H,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExC,wEAAwE;IACxE,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QACpC,QAAQ,EAAE,GAAG,EAAE;YACb,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,CAAC;KACF,CAAC,CAAC,CAAC;IAEJ,+DAA+D;IAC/D,iBAAiB,CAAC;QAChB,gBAAgB,EAAE,GAAG,EAAE;YACrB,OAAO,CAAC,SAAS,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;KACF,CAAC,CAAC;IAEH,6BAA6B;IAC7B,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,EAAE;QAC/B,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,aAAa,EAAE,CAAC;YAClB,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,WAAW,EAAE,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,EAAE;QACnC,OAAO,CAAC,OAAO,CAAC,CAAC;QACjB,+DAA+D;QAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,6CAA6C;YAC7C,UAAU,CAAC,GAAG,EAAE;gBACd,WAAW,EAAE,CAAC;YAChB,CAAC,EAAE,CAAC,CAAC,CAAC;QACR,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,UAAU,IACT,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EACxB,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,gBAAgB,EAC9B,SAAS,SACT,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC;AAElD,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1 @@
1
+ export { default as DatePickerEditor } from "./DatePickerEditor";
@@ -0,0 +1,2 @@
1
+ export { default as DatePickerEditor } from './DatePickerEditor';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../Editors/index.jsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,4 @@
1
+ declare function _default({ value }: {
2
+ value: any;
3
+ }): import("react/jsx-runtime").JSX.Element | null;
4
+ export default _default;
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import * as LucideIcons from 'lucide-react';
4
+ export default ({ value }) => {
5
+ if (value == null)
6
+ return null;
7
+ const { name, icon } = value;
8
+ // Přímý přístup ke komponentě ikony
9
+ const Icon = icon && LucideIcons[icon] ? LucideIcons[icon] : null;
10
+ return (_jsxs("div", { style: {
11
+ display: 'flex',
12
+ alignItems: 'center',
13
+ gap: '8px',
14
+ overflow: 'hidden',
15
+ textOverflow: 'ellipsis'
16
+ }, children: [Icon && _jsx(Icon, { size: 16 }), _jsx("span", { style: { overflow: 'hidden', textOverflow: 'ellipsis' }, children: name })] }));
17
+ };
18
+ //# sourceMappingURL=SelectCellRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectCellRenderer.js","sourceRoot":"","sources":["../../Renderers/SelectCellRenderer.jsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAE5C,eAAe,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE;IACvB,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,EAAC,IAAI,EAAE,IAAI,EAAC,GAAG,KAAK,CAAC;IAE3B,oCAAoC;IACpC,MAAM,IAAI,GAAG,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAElE,OAAO,CACH,eAAK,KAAK,EAAE;YACR,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,KAAK;YACV,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,UAAU;SAC3B,aACI,IAAI,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,EAC3B,eAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,YACxD,IAAI,GACF,IACL,CACT,CAAA;AACL,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export { default as SelectCellRenderer } from "./SelectCellRenderer";
@@ -0,0 +1,2 @@
1
+ export { default as SelectCellRenderer } from './SelectCellRenderer';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../Renderers/index.jsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,sBAAsB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  declare const _default: React.NamedExoticComponent<React.RefAttributes<any>>;
2
2
  export default _default;
3
3
  export { default as CheckboxRenderer } from "./Renderers/CheckboxRenderer";
4
+ export * from "./Renderers";
5
+ export * from "./Editors";
4
6
  import * as React from 'react';
5
7
  export { useBulkCellEdit, BulkEditButton, BulkEditPopover, BulkEditSelect, BulkEditDatePicker, BulkEditModule, BulkEditInput } from "./BulkEdit";
package/dist/index.js CHANGED
@@ -740,6 +740,7 @@ const AgGrid = React.forwardRef((props, ref) => {
740
740
  allGridPropsRef.current.gridId = props.gridId;
741
741
  allGridPropsRef.current.id = props.id;
742
742
  allGridPropsRef.current.gridName = props.gridName;
743
+ allGridPropsRef.current.getContextMenuItems = props.getContextMenuItems;
743
744
  // ✅ Detekovat změny které VYŽADUJÍ re-render AG Gridu
744
745
  React.useEffect(() => {
745
746
  const rowDataChanged = prevRowDataRef.current !== props.rowData;
@@ -796,4 +797,6 @@ export default React.memo(AgGrid, createGridComparison(process.env.NODE_ENV !==
796
797
  ));
797
798
  export { useBulkCellEdit, BulkEditButton, BulkEditPopover, BulkEditSelect, BulkEditDatePicker, BulkEditModule, BulkEditInput } from './BulkEdit';
798
799
  export { default as CheckboxRenderer } from './Renderers/CheckboxRenderer';
800
+ export * from './Renderers';
801
+ export * from './Editors';
799
802
  //# sourceMappingURL=index.js.map