@bit.rhplus/ag-grid 0.0.114 → 0.0.115

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 (153) hide show
  1. package/AgGridOnRowDataChanged.js +3 -8
  2. package/CheckBoxRenderer.jsx +1 -0
  3. package/Components/ExtendButton.jsx +1 -0
  4. package/Renderers/CheckboxRenderer.jsx +1 -0
  5. package/Renderers/CountrySelectRenderer.jsx +1 -0
  6. package/Renderers/SelectCellRenderer.jsx +1 -0
  7. package/dist/AgGridAddNewItem.d.ts +1 -0
  8. package/dist/AgGridAddNewItem.js +6 -0
  9. package/dist/AgGridAddNewItem.js.map +1 -0
  10. package/dist/AgGridColumn.d.ts +3 -0
  11. package/dist/AgGridColumn.js +357 -0
  12. package/dist/AgGridColumn.js.map +1 -0
  13. package/dist/AgGridColumnFilter.d.ts +4 -0
  14. package/dist/AgGridColumnFilter.js +19 -0
  15. package/dist/AgGridColumnFilter.js.map +1 -0
  16. package/dist/AgGridOnGridReady.d.ts +1 -0
  17. package/dist/AgGridOnGridReady.js +6 -0
  18. package/dist/AgGridOnGridReady.js.map +1 -0
  19. package/dist/AgGridOnRowDataChanged.d.ts +1 -0
  20. package/dist/AgGridOnRowDataChanged.js +4 -0
  21. package/dist/AgGridOnRowDataChanged.js.map +1 -0
  22. package/dist/AgGridOnRowDataUpdated.d.ts +1 -0
  23. package/dist/AgGridOnRowDataUpdated.js +27 -0
  24. package/dist/AgGridOnRowDataUpdated.js.map +1 -0
  25. package/dist/AgGridPostSort.d.ts +1 -0
  26. package/dist/AgGridPostSort.js +32 -0
  27. package/dist/AgGridPostSort.js.map +1 -0
  28. package/dist/AggregationNotification.d.ts +1 -0
  29. package/dist/AggregationNotification.js +121 -0
  30. package/dist/AggregationNotification.js.map +1 -0
  31. package/dist/AggregationStatusBar.d.ts +3 -0
  32. package/dist/AggregationStatusBar.js +122 -0
  33. package/dist/AggregationStatusBar.js.map +1 -0
  34. package/dist/Aggregations.d.ts +2 -0
  35. package/dist/Aggregations.js +313 -0
  36. package/dist/Aggregations.js.map +1 -0
  37. package/dist/BulkEdit/BulkEditButton.d.ts +14 -0
  38. package/dist/BulkEdit/BulkEditButton.js +140 -0
  39. package/dist/BulkEdit/BulkEditButton.js.map +1 -0
  40. package/dist/BulkEdit/BulkEditDatePicker.d.ts +11 -0
  41. package/dist/BulkEdit/BulkEditDatePicker.js +160 -0
  42. package/dist/BulkEdit/BulkEditDatePicker.js.map +1 -0
  43. package/dist/BulkEdit/BulkEditInput.d.ts +14 -0
  44. package/dist/BulkEdit/BulkEditInput.js +34 -0
  45. package/dist/BulkEdit/BulkEditInput.js.map +1 -0
  46. package/dist/BulkEdit/BulkEditModule.d.ts +11 -0
  47. package/dist/BulkEdit/BulkEditModule.js +34 -0
  48. package/dist/BulkEdit/BulkEditModule.js.map +1 -0
  49. package/dist/BulkEdit/BulkEditPopover.d.ts +14 -0
  50. package/dist/BulkEdit/BulkEditPopover.js +125 -0
  51. package/dist/BulkEdit/BulkEditPopover.js.map +1 -0
  52. package/dist/BulkEdit/BulkEditSelect.d.ts +18 -0
  53. package/dist/BulkEdit/BulkEditSelect.js +56 -0
  54. package/dist/BulkEdit/BulkEditSelect.js.map +1 -0
  55. package/dist/BulkEdit/BulkEditTagsSelect.d.ts +15 -0
  56. package/dist/BulkEdit/BulkEditTagsSelect.js +45 -0
  57. package/dist/BulkEdit/BulkEditTagsSelect.js.map +1 -0
  58. package/dist/BulkEdit/index.d.ts +1 -0
  59. package/dist/BulkEdit/index.js +11 -0
  60. package/dist/BulkEdit/index.js.map +1 -0
  61. package/dist/BulkEdit/useBulkCellEdit.d.ts +1 -0
  62. package/dist/BulkEdit/useBulkCellEdit.js +397 -0
  63. package/dist/BulkEdit/useBulkCellEdit.js.map +1 -0
  64. package/dist/BulkEdit/utils.d.ts +7 -0
  65. package/dist/BulkEdit/utils.js +568 -0
  66. package/dist/BulkEdit/utils.js.map +1 -0
  67. package/dist/CheckBoxRenderer.d.ts +6 -0
  68. package/dist/CheckBoxRenderer.js +19 -0
  69. package/dist/CheckBoxRenderer.js.map +1 -0
  70. package/dist/Components/ExtendButton.css +6 -0
  71. package/dist/Components/ExtendButton.d.ts +2 -0
  72. package/dist/Components/ExtendButton.js +13 -0
  73. package/dist/Components/ExtendButton.js.map +1 -0
  74. package/dist/CountryCellRenderer.d.ts +1 -0
  75. package/dist/CountryCellRenderer.js +12 -0
  76. package/dist/CountryCellRenderer.js.map +1 -0
  77. package/dist/Editors/DatePickerEditor.d.ts +9 -0
  78. package/dist/Editors/DatePickerEditor.js +55 -0
  79. package/dist/Editors/DatePickerEditor.js.map +1 -0
  80. package/dist/Editors/index.d.ts +1 -0
  81. package/dist/Editors/index.js +2 -0
  82. package/dist/Editors/index.js.map +1 -0
  83. package/dist/Functions/index.d.ts +2 -0
  84. package/dist/Functions/index.js +27 -0
  85. package/dist/Functions/index.js.map +1 -0
  86. package/dist/HeaderTemplates/CommonHeaderTemplate.d.ts +1 -0
  87. package/dist/HeaderTemplates/CommonHeaderTemplate.js +15 -0
  88. package/dist/HeaderTemplates/CommonHeaderTemplate.js.map +1 -0
  89. package/dist/HyperModuleEditor.d.ts +1 -0
  90. package/dist/HyperModuleEditor.js +119 -0
  91. package/dist/HyperModuleEditor.js.map +1 -0
  92. package/dist/HyperModuleRenderer.d.ts +1 -0
  93. package/dist/HyperModuleRenderer.js +138 -0
  94. package/dist/HyperModuleRenderer.js.map +1 -0
  95. package/dist/NotificationOptions.d.ts +10 -0
  96. package/dist/NotificationOptions.js +80 -0
  97. package/dist/NotificationOptions.js.map +1 -0
  98. package/dist/OnCellDoubleClicked.d.ts +1 -0
  99. package/dist/OnCellDoubleClicked.js +6 -0
  100. package/dist/OnCellDoubleClicked.js.map +1 -0
  101. package/dist/OnCellEditingStarted.d.ts +1 -0
  102. package/dist/OnCellEditingStarted.js +7 -0
  103. package/dist/OnCellEditingStarted.js.map +1 -0
  104. package/dist/OnCellValueChanged.d.ts +1 -0
  105. package/dist/OnCellValueChanged.js +10 -0
  106. package/dist/OnCellValueChanged.js.map +1 -0
  107. package/dist/Renderers/BooleanRenderer.d.ts +3 -0
  108. package/dist/Renderers/BooleanRenderer.js +55 -0
  109. package/dist/Renderers/BooleanRenderer.js.map +1 -0
  110. package/dist/Renderers/ButtonRenderer.d.ts +3 -0
  111. package/dist/Renderers/ButtonRenderer.js +66 -0
  112. package/dist/Renderers/ButtonRenderer.js.map +1 -0
  113. package/dist/Renderers/CheckboxRenderer.d.ts +7 -0
  114. package/dist/Renderers/CheckboxRenderer.js +37 -0
  115. package/dist/Renderers/CheckboxRenderer.js.map +1 -0
  116. package/dist/Renderers/CountrySelectRenderer.d.ts +7 -0
  117. package/dist/Renderers/CountrySelectRenderer.js +56 -0
  118. package/dist/Renderers/CountrySelectRenderer.js.map +1 -0
  119. package/dist/Renderers/IconRenderer.d.ts +3 -0
  120. package/dist/Renderers/IconRenderer.js +187 -0
  121. package/dist/Renderers/IconRenderer.js.map +1 -0
  122. package/dist/Renderers/ImageRenderer.d.ts +3 -0
  123. package/dist/Renderers/ImageRenderer.js +58 -0
  124. package/dist/Renderers/ImageRenderer.js.map +1 -0
  125. package/dist/Renderers/LinkRenderer.d.ts +3 -0
  126. package/dist/Renderers/LinkRenderer.js +76 -0
  127. package/dist/Renderers/LinkRenderer.js.map +1 -0
  128. package/dist/Renderers/ObjectRenderer.d.ts +3 -0
  129. package/dist/Renderers/ObjectRenderer.js +96 -0
  130. package/dist/Renderers/ObjectRenderer.js.map +1 -0
  131. package/dist/Renderers/SelectCellRenderer.d.ts +4 -0
  132. package/dist/Renderers/SelectCellRenderer.js +19 -0
  133. package/dist/Renderers/SelectCellRenderer.js.map +1 -0
  134. package/dist/Renderers/SelectRenderer.d.ts +3 -0
  135. package/dist/Renderers/SelectRenderer.js +56 -0
  136. package/dist/Renderers/SelectRenderer.js.map +1 -0
  137. package/dist/Renderers/StateRenderer.d.ts +3 -0
  138. package/dist/Renderers/StateRenderer.js +137 -0
  139. package/dist/Renderers/StateRenderer.js.map +1 -0
  140. package/dist/Renderers/index.d.ts +1 -0
  141. package/dist/Renderers/index.js +2 -0
  142. package/dist/Renderers/index.js.map +1 -0
  143. package/dist/index.d.ts +3 -0
  144. package/dist/index.js +868 -0
  145. package/dist/index.js.map +1 -0
  146. package/dist/preview-1773758831838.js +7 -0
  147. package/dist/util.d.ts +15 -0
  148. package/dist/util.js +108 -0
  149. package/dist/util.js.map +1 -0
  150. package/package.json +5 -5
  151. package/types/asset.d.ts +43 -0
  152. package/types/env.d.ts +15 -0
  153. package/types/style.d.ts +42 -0
@@ -0,0 +1,56 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /* eslint-disable */
3
+ import React, { useRef, useEffect, useState } from 'react';
4
+ import { createMemoComparison } from '@bit.rhplus/react-memo';
5
+ import { Select, Button, Space } from 'antd';
6
+ import * as LucideIcons from 'lucide-react';
7
+ const BulkEditSelect = ({ value, onChange, onSubmit, onCancel, loading, options = [], placeholder = 'Vyberte hodnotu...', allowClear = true, fieldLabel = 'value', fieldValue = 'id', fieldIcon = null, showSearch = false, autoSubmit = false, autoOpen = false, }) => {
8
+ const selectRef = useRef(null);
9
+ const [dropdownOpen, setDropdownOpen] = useState(false);
10
+ useEffect(() => {
11
+ if (selectRef.current) {
12
+ setTimeout(() => {
13
+ selectRef.current?.focus();
14
+ if (autoOpen) {
15
+ setDropdownOpen(true);
16
+ }
17
+ }, 100);
18
+ }
19
+ }, []);
20
+ const handleChange = (newValue) => {
21
+ onChange(newValue);
22
+ if (autoSubmit) {
23
+ onSubmit(newValue);
24
+ }
25
+ };
26
+ const handleKeyDown = (e) => {
27
+ if (e.key === 'Enter' && !loading && !autoSubmit) {
28
+ e.preventDefault();
29
+ onSubmit(value);
30
+ }
31
+ else if (e.key === 'Escape') {
32
+ e.preventDefault();
33
+ onCancel();
34
+ }
35
+ };
36
+ return (_jsxs(_Fragment, { children: [_jsx("div", { style: { marginBottom: autoSubmit ? '0' : '12px' }, onClick: (e) => e.stopPropagation(), children: _jsx(Select, { ref: selectRef, style: { width: '100%' }, value: value, onChange: handleChange, placeholder: placeholder, disabled: loading, allowClear: allowClear, showSearch: showSearch, open: autoOpen ? dropdownOpen : undefined, onDropdownVisibleChange: autoOpen ? setDropdownOpen : undefined, filterOption: showSearch ? (input, option) => {
37
+ const originalItem = options.find(item => item[fieldValue] === option.value);
38
+ const searchText = originalItem?.[fieldLabel] || '';
39
+ return searchText.toLowerCase().includes(input.toLowerCase());
40
+ } : false, options: options.map(item => {
41
+ const iconName = fieldIcon ? item[fieldIcon] : null;
42
+ const LucideIcon = iconName ? LucideIcons[iconName] : null;
43
+ return {
44
+ label: (_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: '8px' }, children: [LucideIcon && _jsx(LucideIcon, { size: 16 }), _jsx("span", { children: item[fieldLabel] })] })),
45
+ value: item[fieldValue],
46
+ searchText: item[fieldLabel]
47
+ };
48
+ }), onKeyDown: handleKeyDown, onClick: (e) => e.stopPropagation(), getPopupContainer: (trigger) => trigger.parentNode }) }), !autoSubmit && (_jsxs(Space, { style: { width: '100%', justifyContent: 'flex-end' }, children: [_jsx(Button, { size: "small", onClick: onCancel, disabled: loading, children: "Zru\u0161it" }), _jsx(Button, { type: "primary", size: "small", onClick: () => onSubmit(value), loading: loading, children: "Pou\u017E\u00EDt" })] }))] }));
49
+ };
50
+ // React.memo optimalizace
51
+ // ✅ PERFORMANCE FIX: Ignore callback references
52
+ const arePropsEqual = createMemoComparison(['value', 'loading', 'options', 'placeholder', 'allowClear', 'autoSubmit', 'autoOpen'], // Kritické props
53
+ ['onChange', 'onSubmit', 'onCancel'], // Ignorované callbacky
54
+ false, 'BulkEditSelect');
55
+ export default React.memo(BulkEditSelect, arePropsEqual);
56
+ //# sourceMappingURL=BulkEditSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BulkEditSelect.js","sourceRoot":"","sources":["../../BulkEdit/BulkEditSelect.jsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ declare const _default: React.NamedExoticComponent<{
2
+ value: any;
3
+ onChange: any;
4
+ onSubmit: any;
5
+ onCancel: any;
6
+ loading: any;
7
+ colDef: any;
8
+ range: any;
9
+ gridApi: any;
10
+ placeholder?: string;
11
+ allowClear?: boolean;
12
+ showSearch?: boolean;
13
+ }>;
14
+ export default _default;
15
+ import React from 'react';
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /* eslint-disable */
3
+ import React, { useRef, useEffect } from 'react';
4
+ import { createMemoComparison } from '@bit.rhplus/react-memo';
5
+ import { Select, Button, Space } from 'antd';
6
+ const BulkEditTagsSelect = ({ value, onChange, onSubmit, onCancel, loading, colDef, range, gridApi, placeholder = 'Vyberte nebo zadejte hodnoty...', allowClear = true, showSearch = true, }) => {
7
+ const selectRef = useRef(null);
8
+ // Options čteme z colDef.bulkEditTagsOptions (string[])
9
+ const options = colDef?.bulkEditTagsOptions || [];
10
+ // Normalizace value — editPopover state začíná jako '', my potřebujeme []
11
+ // Když value === '' (sentinel po otevření popoveru) → sběrnost union tagů z všech řádků v range
12
+ const normalizedValue = React.useMemo(() => {
13
+ if (Array.isArray(value))
14
+ return value;
15
+ if (value === '' && colDef?.field && range && gridApi) {
16
+ const field = colDef.field;
17
+ const startRow = Math.min(range.startRow.rowIndex, range.endRow.rowIndex);
18
+ const endRow = Math.max(range.startRow.rowIndex, range.endRow.rowIndex);
19
+ const allTags = new Set();
20
+ for (let i = startRow; i <= endRow; i++) {
21
+ const node = gridApi.getDisplayedRowAtIndex(i);
22
+ const tags = node?.data?.[field];
23
+ if (Array.isArray(tags))
24
+ tags.forEach(t => allTags.add(t));
25
+ }
26
+ return [...allTags];
27
+ }
28
+ return [];
29
+ }, [value, colDef?.field, range, gridApi]);
30
+ useEffect(() => {
31
+ if (selectRef.current) {
32
+ setTimeout(() => {
33
+ selectRef.current?.focus();
34
+ }, 100);
35
+ }
36
+ }, []);
37
+ return (_jsxs(_Fragment, { children: [_jsx("div", { style: { marginBottom: '12px' }, onClick: (e) => e.stopPropagation(), children: _jsx(Select, { ref: selectRef, mode: "tags", style: { width: '100%' }, value: normalizedValue, onChange: onChange, placeholder: placeholder, disabled: loading, allowClear: allowClear, showSearch: showSearch, options: options.map((item) => ({
38
+ label: item,
39
+ value: item,
40
+ })), onClick: (e) => e.stopPropagation(), getPopupContainer: (trigger) => trigger.parentNode }) }), _jsxs(Space, { style: { width: '100%', justifyContent: 'flex-end' }, children: [_jsx(Button, { size: "small", onClick: onCancel, disabled: loading, children: "Zru\u0161it" }), _jsx(Button, { type: "primary", size: "small", onClick: () => onSubmit(normalizedValue), loading: loading, children: "Pou\u017E\u00EDt" })] })] }));
41
+ };
42
+ // React.memo optimalizace
43
+ const arePropsEqual = createMemoComparison(['value', 'loading', 'colDef', 'range', 'gridApi', 'placeholder', 'allowClear'], ['onChange', 'onSubmit', 'onCancel'], false, 'BulkEditTagsSelect');
44
+ export default React.memo(BulkEditTagsSelect, arePropsEqual);
45
+ //# sourceMappingURL=BulkEditTagsSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BulkEditTagsSelect.js","sourceRoot":"","sources":["../../BulkEdit/BulkEditTagsSelect.jsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ /* eslint-disable */
2
+ export { useBulkCellEdit } from './useBulkCellEdit';
3
+ export { default as BulkEditButton } from './BulkEditButton';
4
+ export { default as BulkEditPopover } from './BulkEditPopover';
5
+ export { default as BulkEditSelect } from './BulkEditSelect';
6
+ export { default as BulkEditDatePicker } from './BulkEditDatePicker';
7
+ export { default as BulkEditModule } from './BulkEditModule';
8
+ export { default as BulkEditInput } from './BulkEditInput';
9
+ export { default as BulkEditTagsSelect } from './BulkEditTagsSelect';
10
+ export * from './utils';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../BulkEdit/index.js"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAErE,cAAc,SAAS,CAAC"}
@@ -0,0 +1 @@
1
+ export function useBulkCellEdit(gridRef: any, options?: any): any;
@@ -0,0 +1,397 @@
1
+ /* eslint-disable */
2
+ import { useState, useCallback, useEffect, useRef } from 'react';
3
+ import { validateRangeEditable, applyBulkChanges, applyBulkChangesWithApi, } from './utils';
4
+ import useData from '@bit.rhplus/data';
5
+ /**
6
+ * Hook pro bulk cell edit funkcionalitu v AG Grid
7
+ * @param {Object} gridRef - Reference na AG Grid
8
+ * @param {Object} options - Konfigurace bulk edit
9
+ * @returns {Object} - State a handlery pro bulk edit
10
+ */
11
+ export const useBulkCellEdit = (gridRef, options = {}) => {
12
+ const { enabled = false, minCells = 2, allowMultiColumn = false, buttonPosition = 'bottom-right', buttonOffset = { x: 5, y: 5 }, accessToken = null, onBulkEditStart, onBulkEditComplete, } = options;
13
+ const { fetchDataUIAsync } = useData();
14
+ const [floatingButton, setFloatingButton] = useState({
15
+ visible: false,
16
+ position: null,
17
+ range: null,
18
+ column: null,
19
+ cellCount: 0,
20
+ rowsContainer: null, // ✅ Container specifický pro tento grid
21
+ });
22
+ const [editPopover, setEditPopover] = useState({
23
+ visible: false,
24
+ value: '',
25
+ loading: false,
26
+ error: null,
27
+ });
28
+ const scrollListenerRef = useRef(null);
29
+ const debounceTimeoutRef = useRef(null);
30
+ const pendingEventRef = useRef(null);
31
+ // ✅ FIX #2: Ref pro pending floating button data (eliminuje intermediate state update)
32
+ const pendingFloatingButtonRef = useRef(null);
33
+ // ✅ OPTIMALIZACE: Cache pro pozice buněk - eliminuje opakované getBoundingClientRect
34
+ const positionCacheRef = useRef({ endRowIndex: null, colId: null, position: null });
35
+ /**
36
+ * Helper funkce pro výpočet pozice buttonu (relativní k rows container)
37
+ * ✅ OPTIMALIZACE: Žádné viewport adjustments - button je position: absolute v containeru
38
+ */
39
+ const calculateButtonPosition = useCallback((cellPosition) => {
40
+ // Jednoduše použij pozici z cellPosition + offset podle buttonPosition
41
+ let buttonX, buttonY;
42
+ switch (buttonPosition) {
43
+ case 'bottom-right':
44
+ buttonX = cellPosition.right + buttonOffset.x;
45
+ buttonY = cellPosition.bottom + buttonOffset.y;
46
+ break;
47
+ case 'bottom-left':
48
+ buttonX = cellPosition.left - buttonOffset.x - 32; // 32 = button size
49
+ buttonY = cellPosition.bottom + buttonOffset.y;
50
+ break;
51
+ case 'top-right':
52
+ buttonX = cellPosition.right + buttonOffset.x;
53
+ buttonY = cellPosition.top - buttonOffset.y - 32;
54
+ break;
55
+ case 'top-left':
56
+ buttonX = cellPosition.left - buttonOffset.x - 32;
57
+ buttonY = cellPosition.top - buttonOffset.y - 32;
58
+ break;
59
+ default:
60
+ buttonX = cellPosition.right + buttonOffset.x;
61
+ buttonY = cellPosition.bottom + buttonOffset.y;
62
+ }
63
+ return { x: buttonX, y: buttonY };
64
+ }, [buttonPosition, buttonOffset]);
65
+ /**
66
+ * Handler pro změnu range selection s konsolidovanou validací
67
+ * ✅ FIX #2: Lightweight validace ukládá pouze do ref, heavy validace provede jediný setFloatingButton
68
+ */
69
+ const handleRangeChange = useCallback((event) => {
70
+ // Lightweight pre-checks - okamžitě bez debounce
71
+ if (!enabled) {
72
+ pendingFloatingButtonRef.current = null;
73
+ // ✅ FIX #14: Nevolat setFloatingButton OKAMŽITĚ - způsobuje rerendery!
74
+ // Nechej to na debounced validaci
75
+ return;
76
+ }
77
+ const ranges = event.api.getCellRanges();
78
+ if (!ranges || ranges.length === 0) {
79
+ pendingFloatingButtonRef.current = null;
80
+ // ✅ FIX #14: Nevolat setFloatingButton OKAMŽITĚ - způsobuje rerendery!
81
+ // Nechej to na debounced validaci
82
+ return;
83
+ }
84
+ const range = ranges[0];
85
+ // ✨ OKAŽITÁ lightweight validace - zobraz button HNED
86
+ if (allowMultiColumn || range.columns.length === 1) {
87
+ const cellCount = Math.abs(range.endRow.rowIndex - range.startRow.rowIndex) + 1;
88
+ if (cellCount >= minCells) {
89
+ // Kontrola zda má sloupec bulkEditApi (rychlá kontrola)
90
+ const column = range.columns[0];
91
+ const colDef = column?.getColDef();
92
+ const hasBulkEditApi = colDef?.bulkEditApi || colDef?.bulkEditPopover;
93
+ // Zobraz button jen pokud má bulkEditApi nebo bulkEditPopover
94
+ if (hasBulkEditApi) {
95
+ const endRowIndex = Math.max(range.startRow.rowIndex, range.endRow.rowIndex);
96
+ const colId = column.getColId();
97
+ // ✅ KLÍČOVÉ ŘEŠENÍ: Najít container relativně od OZNAČENÉ BUŇKY
98
+ // Když jsou v DOM více gridů (shared/master), querySelector najde první
99
+ // Ale my potřebujeme container od AKTUÁLNĚ AKTIVNÍHO gridu
100
+ // ✅ KLÍČOVÉ ŘEŠENÍ: Najít POSLEDNÍ buňku v range (endRow) pro správné umístění
101
+ // API ví přesně, která buňka patří do kterého gridu (řeší multi-grid problém!)
102
+ // DŮLEŽITÉ: Používáme endRow (ne startRow), aby pozice byla stejná jako v heavy validaci
103
+ const endRowForCalc = Math.max(range.startRow.rowIndex, range.endRow.rowIndex) === range.startRow.rowIndex ? range.startRow : range.endRow;
104
+ let targetCell = null;
105
+ // Metoda 1: Použít getCellRendererInstances (nejspolehlivější)
106
+ try {
107
+ const cellRenderers = event.api.getCellRendererInstances({
108
+ rowNodes: [endRowForCalc],
109
+ columns: [column]
110
+ });
111
+ if (cellRenderers && cellRenderers.length > 0) {
112
+ targetCell = cellRenderers[0].eGui || cellRenderers[0].getGui?.();
113
+ }
114
+ }
115
+ catch (e) {
116
+ // Tiché selhání, fallback
117
+ }
118
+ // Metoda 2: Fallback - najít aktivní grid container a pak hledat row
119
+ if (!targetCell) {
120
+ // Nejprve najdeme jakoukoliv viditelnou buňku z TOHOTO gridu
121
+ const allCellsWithColId = Array.from(document.querySelectorAll(`[col-id="${colId}"].ag-cell`));
122
+ const visibleCell = allCellsWithColId.find(cell => {
123
+ const rect = cell.getBoundingClientRect();
124
+ return rect.width > 0 && rect.height > 0;
125
+ });
126
+ if (visibleCell) {
127
+ // Od viditelné buňky najdeme její grid container
128
+ const activeGridContainer = visibleCell.closest('.ag-center-cols-container');
129
+ if (activeGridContainer) {
130
+ // V aktivním containeru hledáme row podle row-index
131
+ const rowId = endRowForCalc.id || endRowForCalc.data?.id;
132
+ const endRowIndex = Math.max(range.startRow.rowIndex, range.endRow.rowIndex);
133
+ const rowsInActiveGrid = Array.from(activeGridContainer.querySelectorAll('.ag-row'));
134
+ let targetRow = rowsInActiveGrid.find(row => row.getAttribute('row-id') === rowId);
135
+ if (!targetRow) {
136
+ targetRow = rowsInActiveGrid.find(row => row.getAttribute('row-index') === String(endRowIndex));
137
+ }
138
+ if (targetRow) {
139
+ targetCell = targetRow.querySelector(`[col-id="${colId}"]`);
140
+ }
141
+ }
142
+ }
143
+ }
144
+ if (!targetCell) {
145
+ // ✅ FIX #14: Nevolat setFloatingButton OKAMŽITĚ
146
+ pendingFloatingButtonRef.current = null;
147
+ return;
148
+ }
149
+ // Od buňky najdeme její .ag-center-cols-container (specifický pro tento grid)
150
+ const rowsContainer = targetCell.closest('.ag-center-cols-container');
151
+ if (!rowsContainer) {
152
+ // ✅ FIX #14: Nevolat setFloatingButton OKAMŽITĚ
153
+ pendingFloatingButtonRef.current = null;
154
+ return;
155
+ }
156
+ // ✅ OPTIMALIZACE: Vypočítat pozici z POSLEDNÍ buňky (stejně jako heavy validace)
157
+ // Tím eliminujeme přeblikávání mezi firstCell a lastCell
158
+ const cellRect = targetCell.getBoundingClientRect();
159
+ const containerRect = rowsContainer.getBoundingClientRect();
160
+ const cellPosition = {
161
+ x: cellRect.right - containerRect.left,
162
+ y: cellRect.bottom - containerRect.top,
163
+ width: cellRect.width,
164
+ height: cellRect.height,
165
+ top: cellRect.top - containerRect.top,
166
+ left: cellRect.left - containerRect.left,
167
+ right: cellRect.right - containerRect.left,
168
+ bottom: cellRect.bottom - containerRect.top
169
+ };
170
+ // ✅ FIX #2: Uložit pouze do ref, ne state (eliminuje rerender #1)
171
+ pendingFloatingButtonRef.current = {
172
+ visible: true,
173
+ position: calculateButtonPosition(cellPosition),
174
+ range,
175
+ column: column,
176
+ cellCount,
177
+ rowsContainer, // ✅ Předat container specifický pro tento grid
178
+ };
179
+ }
180
+ else {
181
+ // Sloupec nemá bulk edit podporu
182
+ pendingFloatingButtonRef.current = null;
183
+ }
184
+ }
185
+ }
186
+ // Uložit event pro debounced těžkou validaci (editable check)
187
+ pendingEventRef.current = event;
188
+ // ✅ FIX #2: Debounce zvýšen z 15ms na 50ms pro lepší UX a konsolidaci rerenderů
189
+ if (debounceTimeoutRef.current) {
190
+ clearTimeout(debounceTimeoutRef.current);
191
+ }
192
+ debounceTimeoutRef.current = setTimeout(() => {
193
+ if (pendingEventRef.current) {
194
+ executeRangeValidation(pendingEventRef.current);
195
+ }
196
+ }, 50);
197
+ }, [enabled, allowMultiColumn, minCells, calculateButtonPosition]);
198
+ /**
199
+ * Těžké validace a výpočty v debounced callbacku
200
+ * ✅ FIX #2: Konsolidovaná validace - využívá lightweight data z ref + provede těžké kontroly
201
+ */
202
+ const executeRangeValidation = useCallback((event) => {
203
+ const ranges = event.api.getCellRanges();
204
+ if (!ranges || ranges.length === 0) {
205
+ pendingFloatingButtonRef.current = null;
206
+ setFloatingButton({ visible: false });
207
+ return;
208
+ }
209
+ const range = ranges[0];
210
+ // ✅ FIX #2: Pokud lightweight validace neprošla, nemá smysl pokračovat
211
+ if (!pendingFloatingButtonRef.current) {
212
+ setFloatingButton({ visible: false });
213
+ return;
214
+ }
215
+ // Kontrola single column
216
+ if (!allowMultiColumn && range.columns.length !== 1) {
217
+ pendingFloatingButtonRef.current = null;
218
+ setFloatingButton({ visible: false });
219
+ return;
220
+ }
221
+ // Výpočet počtu buněk
222
+ const cellCount = Math.abs(range.endRow.rowIndex - range.startRow.rowIndex) + 1;
223
+ // Kontrola min počtu buněk
224
+ if (cellCount < minCells) {
225
+ pendingFloatingButtonRef.current = null;
226
+ setFloatingButton({ visible: false });
227
+ return;
228
+ }
229
+ // ✅ FIX #2: KLÍČOVÁ TĚŽKÁ VALIDACE - kontrola editovatelnosti buněk
230
+ if (!validateRangeEditable(range, event.api)) {
231
+ pendingFloatingButtonRef.current = null;
232
+ setFloatingButton({ visible: false });
233
+ return;
234
+ }
235
+ // ✅ FIX #2: Všechny validace prošly - použij data z lightweight validace (pendingFloatingButtonRef)
236
+ // Jediný setFloatingButton call → eliminuje rerender #2
237
+ setFloatingButton(pendingFloatingButtonRef.current);
238
+ }, [minCells, allowMultiColumn, buttonPosition, buttonOffset, calculateButtonPosition, gridRef]);
239
+ /**
240
+ * Handler pro kliknutí na bulk edit button - otevře popover
241
+ */
242
+ const handleOpenPopover = useCallback(() => {
243
+ if (onBulkEditStart) {
244
+ onBulkEditStart({
245
+ range: floatingButton.range,
246
+ column: floatingButton.column,
247
+ cellCount: floatingButton.cellCount,
248
+ });
249
+ }
250
+ setEditPopover({
251
+ visible: true,
252
+ value: '',
253
+ loading: false,
254
+ error: null,
255
+ });
256
+ }, [floatingButton, onBulkEditStart]);
257
+ /**
258
+ * Handler pro submit bulk edit změn
259
+ */
260
+ const handleSubmitEdit = useCallback(async (newValue) => {
261
+ if (!gridRef.current || !floatingButton.range) {
262
+ return;
263
+ }
264
+ setEditPopover((prev) => ({ ...prev, loading: true, error: null }));
265
+ try {
266
+ const colDef = floatingButton.column?.getColDef();
267
+ const bulkEditApi = colDef?.bulkEditApi;
268
+ let result;
269
+ // Pokud je definováno bulkEditApi, použij API volání
270
+ if (bulkEditApi?.endpoint) {
271
+ result = await applyBulkChangesWithApi(floatingButton.range, newValue, gridRef.current.api, bulkEditApi, accessToken, fetchDataUIAsync, (result) => {
272
+ if (onBulkEditComplete) {
273
+ onBulkEditComplete({
274
+ ...result,
275
+ range: floatingButton.range,
276
+ column: floatingButton.column,
277
+ newValue,
278
+ });
279
+ }
280
+ });
281
+ }
282
+ else {
283
+ // Pokud není API, použij lokální změnu
284
+ result = applyBulkChanges(floatingButton.range, newValue, gridRef.current.api, (result) => {
285
+ if (onBulkEditComplete) {
286
+ onBulkEditComplete({
287
+ ...result,
288
+ range: floatingButton.range,
289
+ column: floatingButton.column,
290
+ newValue,
291
+ });
292
+ }
293
+ });
294
+ }
295
+ if (result.success) {
296
+ // Úspěch - zavřít popover a skrýt button
297
+ setEditPopover({
298
+ visible: false,
299
+ value: '',
300
+ loading: false,
301
+ error: null,
302
+ });
303
+ setFloatingButton({ visible: false });
304
+ }
305
+ else {
306
+ // Chyba - zobrazit error
307
+ setEditPopover((prev) => ({
308
+ ...prev,
309
+ loading: false,
310
+ error: result.error || result.errors?.[0] || 'Chyba při aplikaci změn',
311
+ }));
312
+ }
313
+ }
314
+ catch (error) {
315
+ setEditPopover((prev) => ({
316
+ ...prev,
317
+ loading: false,
318
+ error: error?.message || 'Neznámá chyba',
319
+ }));
320
+ }
321
+ }, [gridRef, floatingButton, onBulkEditComplete, accessToken, fetchDataUIAsync]);
322
+ /**
323
+ * Handler pro zrušení bulk edit
324
+ */
325
+ const handleCancelEdit = useCallback(() => {
326
+ setEditPopover({
327
+ visible: false,
328
+ value: '',
329
+ loading: false,
330
+ error: null,
331
+ });
332
+ setFloatingButton({ visible: false });
333
+ }, []);
334
+ /**
335
+ * Handler pro změnu hodnoty v popover inputu
336
+ */
337
+ const handleValueChange = useCallback((value) => {
338
+ setEditPopover((prev) => ({ ...prev, value, error: null }));
339
+ }, []);
340
+ /**
341
+ * Scroll listener - skrýt button při scrollování
342
+ */
343
+ useEffect(() => {
344
+ if (!enabled || !gridRef.current)
345
+ return;
346
+ const gridViewport = gridRef.current.api?.gridBodyCtrl?.eBodyViewport;
347
+ if (!gridViewport)
348
+ return;
349
+ const handleScroll = () => {
350
+ // ✅ OPTIMALIZACE: Button se nyní scrolluje automaticky s gridem (position: absolute v viewport)
351
+ // Není potřeba skrývat button ani invalidovat cache - button zůstává přilepený k buňce
352
+ // Cache zůstává validní, protože relativní pozice se nemění při scrollu
353
+ };
354
+ scrollListenerRef.current = handleScroll;
355
+ gridViewport.addEventListener('scroll', handleScroll);
356
+ return () => {
357
+ if (gridViewport && scrollListenerRef.current) {
358
+ gridViewport.removeEventListener('scroll', scrollListenerRef.current);
359
+ }
360
+ };
361
+ }, [enabled, gridRef, floatingButton.visible]);
362
+ /**
363
+ * Window resize listener - přepočítat pozici
364
+ */
365
+ useEffect(() => {
366
+ if (!enabled || !floatingButton.visible)
367
+ return;
368
+ const handleResize = () => {
369
+ // Při resize okna skryjeme button (user musí znovu označit)
370
+ setFloatingButton({ visible: false });
371
+ };
372
+ window.addEventListener('resize', handleResize);
373
+ return () => {
374
+ window.removeEventListener('resize', handleResize);
375
+ };
376
+ }, [enabled, floatingButton.visible]);
377
+ /**
378
+ * Cleanup timeout on unmount
379
+ */
380
+ useEffect(() => {
381
+ return () => {
382
+ if (debounceTimeoutRef.current) {
383
+ clearTimeout(debounceTimeoutRef.current);
384
+ }
385
+ };
386
+ }, []);
387
+ return {
388
+ floatingButton,
389
+ editPopover,
390
+ handleRangeChange,
391
+ handleOpenPopover,
392
+ handleSubmitEdit,
393
+ handleCancelEdit,
394
+ handleValueChange,
395
+ };
396
+ };
397
+ //# sourceMappingURL=useBulkCellEdit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBulkCellEdit.js","sourceRoot":"","sources":["../../BulkEdit/useBulkCellEdit.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export function isColumnEditable(column: any, gridApi: any): boolean;
2
+ export function validateRangeEditable(range: any, gridApi: any): boolean;
3
+ export function getLastCellPosition(range: any, gridApi: any, rowsContainer: HTMLElement): any;
4
+ export function applyBulkChanges(range: any, newValue: any, gridApi: any, onComplete: Function): any;
5
+ export function validateValue(value: any, colDef: any): any;
6
+ export function getInputType(colDef: any): string;
7
+ export function applyBulkChangesWithApi(range: any, newValue: any, gridApi: any, bulkEditApi: any, accessToken: string, fetchDataUIAsync: Function, onComplete: Function): any;